段珊,王金娟
(湖南涉外經濟學院信息,長沙 410205)
基于計算思維的《計算機組成原理》教學內容的探析
段珊,王金娟
(湖南涉外經濟學院信息,長沙 410205)
計算思維能力的培養作為計算機專業課程的基本要求早已提出,但如何從計算思維的角度去理解課程內容,培養計算思維的能力,一直都處在一個摸索的階段。計算機系統本身就是計算思維運用的最顯著成果,探討如何從計算思維的角度去組織計算機組成原理的教學內容,指導學生站在計算思維角度去理解課程內容,有意識地培養計算思維有利于提升課程的廣度和深度。
計算思維;計算機系統;計算機組成原理
圖靈獎得主Edsger Dijkstr很早就提出了“工具影響思維”論。計算機的廣泛應用不僅為不同專業領域提供了解決專業問題的有效方法和手段,而且提供了一種獨特的處理問題的思維方式——用計算的方法對問題求解。這種思維方式運用于不同學科領域,產生了一些新學科,如計算生物學(生物信息學)、計算力學、計量經濟學等。所以“計算思維”的概念一經提出,在計算機學術界和教育界,引起了廣泛的關注。教育部高等學校計算機科學與技術教學指導委員會在2010年出版的《高等學校計算機科學與技術專業人才專業能力構成與培養》中,也正式把計算思維列為計算機專業基本能力。
雖然早在2006年周以真教授明確的給出了計算思維的定義,并對之進行了具體內容的解釋。但這些思維體現在哪些知識點上,如何在計算機專業課程中認識、理解、貫通并培養計算思維,還處在一個摸索階段。
《計算機組成原理》作為計算機學科的專業核心基礎課程,它的教學目標就是要求學生系統理解計算機硬件系統的邏輯組成及工作原理,形成整機系統的概念。該課程概念多、內容涉及面廣、抽象,既不象數學那樣有很強的邏輯推理,也不象數據結構算法有可視化的實現形式,讓學生感覺理論性也不明晰,規律性不強,知識內容零散,表達形式抽象,一直都被認為是一門難學、難教的課程。但它所闡述的每一個原理,每一個概念,每一種實現方法都是支撐計算思維的重要內容。本質上來講計算機系統自身就是計算思維運用的最顯著的成果,它是數學思維與工程思維相互融合的最好體現。隨著計算機思維能力培養的提出,《計算機組成原理》不再只是單純的要求學生掌握計算機的工作原理,設計思想,實現方法。更需要理解這些顯性知識所抽象出來的解決問題的數學理論,工程方法,并將他們變成自己解決問題的一種思維模式,即計算思維能力的培養。
思維是個抽象的概念,它是基于一系列知識來求解問題的思路,其每個環節都由一定的知識來鋪墊。對這些知識進行理解,并將這些環節進行貫通,就得到解決整個問題的思維。思維雖然概念化,抽象化,但可以將它們以可視化,形象化的方式傳授給學生。《計算機組成原理》進行教學時,內容的講授不只是知識的簡單化、概念化的呈現,更是在知識的傳授過程中,進行思路的清理、思維的提取與訓練。本段從計算思維的角度出發對計算機基本系統(運算器、存儲器和控制器三大部件)的基本原理和實現方法的內容進行解讀。
計算機是以計算手段來求解客觀世界,首先必須解決計算機內信息的表示問題。
(1)信息表示
不管是數值信息還是非數值信息在計算機中都是以二進制代碼的形式存在,機器碼和編碼是關鍵內容。數值信息對應的是機器碼,非數值信息對應的是編碼。討論機器碼時,強調機器碼的數學定義,即機器碼的碼值與真值之間的函數關系,讓學生從數學的角度去理解機器碼-機器碼通過真值的運算來得到,便于后續內容中運算算法的推理,讓學生更好理解機器運算與自然數學運算之間本質關聯,體現計算機中的數學思維。
編碼本質上是按某種規則用二進制符號組合來表示某個文字或某個概念。書上闡述了ASCII編碼和中文的各種編碼。這些顯性的知識蘊含了語義符號化的概念。語義符號化的過程是一個理解與抽象的過程,通過對客觀世界現象的深入理解,抽象出普適的概念,進而將概念符號化,進行各種運算;再將符號賦予不同語義,便可以完成不同問題的處理。這是計算機求解問題的第一個出發點。
如何在機器上實現數學的計算這是計算機面對的一個關鍵。
(2)運算方法和運算器
運算方法與運算器討論的就是基本的四則運算算法及其在計算機上的實現。
運算方法討論時首先要關注自然算術運算與機器運算區別所在,自然數學面對的是真值,計算機中無論運算結果還是操作數都是機器碼。撇開具體的機器碼形式和運算種類,運算方法根本上就是討論真值運算結果的機器碼如何由操作數的機器碼計算后得到。例如,兩個真值x,Y相加得到x+y,機器中對應的是求[x+y]補,如何由[x]補和[Y]補替換x,Y得到[x+y]補。這就是補碼加法運算規則要討論的。根據真值運算的定義,真值與機器碼的數學關系,進行數學變換即可得到運算算法。
運算方法決定了運算器的結構。不同的機器碼,不同運算對應的運算器的內部結構不同。加法器是所有運算器的基本構件,它由多個全加器(半加器)通過進位鏈連接得到;串行進位與并行進位均可以由進位函數推理得到;計算進位鏈的延時來選擇并行加法器的組織結構。
ALU的設計更是體現了計算機系統解決問題的思路和方法,把復雜的運算分解為簡單的處理,用正確簡單的芯片實現,通過層層構造,得到更復雜的功能部件,實現更復雜的多種不同的運算。
浮點數的表示和運算是定點整數和定點小數的相應組合。
內容多、廣、雜是本章的特色。運算方法的推理,進位鏈的構造,ALU的設計不僅涉及到了算術運算、邏輯函數、邏輯電路,更體現了算術與邏輯貫通,數學與工程的融合。組合與分解是構造算法和硬件的常用方法。不管多么復雜的運算都可以用數學的方法分解為基本算術運算,算術運算可以化為簡單的加法運算。因為0、1數據的引入,加法運算可以用邏輯函數實現的加法單元與進位鏈實現,算術與邏輯在這里會聚;邏輯函數和進位鏈用門電路組合實現,工程與數學在這里進行了融合。
要實現計算處理的自動化,必須將相關的程序和數據存儲在計算機的存儲系統內。(這里談存儲器系統,主要談內存系統)
(3)存儲系統
存儲機理、存儲器操作,存儲器的構造是本小節的要點。
存儲元的存儲機理揭示了符號代碼與電路之間的本質關聯,即0、1為電路狀態的符號表示。存儲元電路不同所構成的存儲器結構、性能也不同。SRAM、DRAM、ROM存儲器因為其性能不同,用途也不相同。存儲器是由若干個存儲單元的集合,每個存儲單元由若干個存儲元構成。存儲單元由地址編碼進行區分,地址編碼的位數反映了存儲器的容量:M=2N(M為存儲器的容量,N為地址編碼的位數)。CPU所需要的程序,數據就放在存儲單元中,CPU按地址訪問存儲單元的內容。
存儲器采用模塊化的方式構造,利用多個存儲芯片從位、字的方向進行擴展。存儲模塊的組織方式將影響它與CPU的信號線的連接、片選邏輯的生成及單元地址的語義。順序組織,地址編碼的高位部分放映的是模塊的編號,低位部分反映的是單元在塊內地址的序號,交叉組織,則反之。利用地址本身的語義,利于CPU實現對存儲單元的快速尋址,也利于存儲器組織管理。
CPU對存儲器系統的要求是容量足夠大,速度足夠快,價格足夠低。沒有存儲器同時滿足這三個要求。采用資源組合優化的思維,將cache、內存、外存這三種不同性能的存儲器組合成了速度、容量、價格不同層次的一個存儲系統并采用了緩沖、并行技術保證系統的效率實現。
計算機問題求解的方法和步驟,用程序來描述,程序是指令的有序集合。
(4)指令系統
這里談的指令是指機器指令,它是CPU可以直接分析與執行的指令。它告訴計算機做什么,對誰操作,并給出下一條指令的地址。從形式上來看指令是一連串的二進制代碼,操作碼告訴計算機要完成的操作,地址碼和尋址方式一起組合給出操作對象,下一條指令地址的給出,保證了指令的自動執行。不同機器指令格式不同,同一機器中指令的長度可以不同。在進行指令格式設計時,希望指令能表示的操作越多越好,指令長度越短越好,尋址的范圍越廣越好。為了便于學生的理解,列舉一條指令來闡述指令內容,格式,與設計要點。本章內容不關注單個指令,強調站在抽象和概述的角度來認識指令本質。功能確定內容,內容確定形式。從這種思路出發,引導學生去理解指令,并掌握指令設計的方法。
機器如何去理解和執行指令?這就要理解控制器系統的工作原理和實現方法。這是本課程的重點和難點。
(5)控制器系統
考慮到功能部件的完整性,往往把控制器和時序系統合在一起作為控制器系統來進行理解。根據系統求解的思路,從系統功能角度出發得到控制器的組織結構模塊,這是指令分析與執行的物理實體;分析CPU執行指令過程,得到CPU內部的數據通路及相關控制信號,控制信號控制數據通路的建立;指令的執行必須有序進行,引入時序信號對操作進行時間約束。這樣功能結構塊、操作控制流、時序體系從三個不同方向組合構成了一個控制器系統的立體。這是一個復雜的綜合系統,這個立體可分為三層,下層是對上層的支撐,每一個層次都包含了三個面的內容。功能結構塊從上到下三個層次依次得到控制器、微控制器-單元集成門電路;操作控制流有兩股內容相互依存-控制流和操作流。控制流依次為指令、微指令、微命令;微命令譯碼轉化為微操作控制信號,直接控制最底層-門電路的開關(微操作),這里是軟件與硬件的融合面;具有一定時序關系的微操作組合共同完成一個基本功能,這些微操作的集合稱為基本操作,或者說機器操作,它往往對應一條或幾條微指令控制;多個機器操作組合完成一條指令的功能—-指令控制操作。操作從下至上為微操作—機器操作—指令操作,和對應的控制流相互依存。操作除了受控制流的控制,還必須受時間的限制,時序信號通過加在控制信號上了,實現對操作約束。時序體制面的從上之下定義了指令周期,機器周期,時鐘周期來為不同級別的操作進行時間定時。這樣三個面三個層次相互嵌套融合,分解組合,分層構造就得到一個完整的控制器系統。
整個系統遵循一個整體到局部,從宏觀到微觀,從概念到實現,從高層到低層的相互轉換,并在低層實現了軟硬的融合。這不僅讓學生從立體角度、層次的觀點去理解控制器系統的結構、操作、時序之間的融合貫通,也提供許多軟硬綜合系統設計的基本思路和方法,比如微程序入口地址的設計,微指令下址的形成方式,微命令控制字段的編碼原則,這些內容的掌握更好地幫助學生透徹理解控制器工作理論,也為后續的CPU設計、軟、硬件的編程提供方法和技巧。
計算機組成原理的內容多,覆蓋廣,其中體現的計算思維可以歸納為以下幾個方面:
①數學、工程的思維:例如機器碼的數學定義,機器碼的運算規則的推理實際上是數學方法的運用。存儲器的設計,運算器的實現、微控制器的構造都體現硬件系統實現的基本原則。
②軟硬融合思維:計算機是個軟硬綜合的復雜系統,軟件范疇類的數學運算算法實現和控制命令要轉化為機器的操作,必定存在軟硬融合切入點。運算器中運算分解為簡單的邏輯運算在邏輯電路上的實現;微控制器中,指令分解為微命令后向微操作的轉變;存儲元中的0、1信息實際上是電路的狀態描述等都體現了軟硬融合的本質。
③系統構建的思維:不管是硬件系統的構造還是軟件指令的執行,都體現了實現由簡單入手,層層構造,軟件功能層層分解,部分實現的一系列普適的系統思維。
從計算思維的角度去講授教學內容,指導學生站在計算思維角度去理解課程內容,對本課程來說不僅可以有助于學生對知識點的舉一反三理解,將看似零散知識進行有效貫通、融合,形成解決問題的完整思路;從全局的角度來講,有意思的培養計算思維有利于提升課程的廣度和深度,對學生分析問題、求解問題的能力提高及相關課程的學習提供本質上的幫助。計算思維雖然在計算機領域內提出,但它覆蓋著廣泛的科學與工程范疇,對于技術與知識的創新,思維往往都是源頭。
[1]Wing J M.Computational Thinking[J].Communication of the ACM,2006,49(3):33-35.
[2]譚浩強.研究計算思維,堅持面向應用[J].計算機教育,2012(21).
[3]戰德臣,聶蘭順.大學計算機—計算思維導論[M].電子工業出版社,2013.
[4]董榮勝,古天龍.計算思維與計算機方法論[J].計算機科學,2009(1).
[5]聶蘭順,戰德臣等.計算思維的教學內容與方法研究[J].工業和信息化教育,2013(6).
[6]李暾,王挺,寧洪,劉越.計算思維教的內容設計[J].計算機教育,2013(5).
Exploration of Computer Principle Teaching Content Based on Computational Thinking
DUAN Shan,WANG Jin-juan
(Hunan International Economics University Changsha,Hunan 410205)
The cultivation of the ability of computational thinking as the basic requirement of computer professional course has already been put forward,but how to understand the course content from the perspective of computational thinking,developing computational thinking ability,has been in a groping stage.Computer system itself is the most significant achievements of computational thinking.Discusses how to organize the teaching content of computer composition principle from the Angle of the computational thinking,guides students to understand the course content standing by computational thinking,the cultivation of the computational thinking is helpful to improve the breadth and depth of course.
Computational Thinking;Computer System;Computer Composition Principle
1007-1423(2016)33-0049-04
10.3969/j.issn.1007-1423.2016.33.011
段珊(1969-),女,碩士,研究方向為模型檢測、高性能計算
2016-10-13
2016-11-16
王金娟(1981-),女,湖南長沙人,碩士,系統分析師,研究方向為軟件工程技術與應用