段珊,王金娟
(湖南涉外經(jīng)濟(jì)學(xué)院信息,長(zhǎng)沙 410205)
基于計(jì)算思維的《計(jì)算機(jī)組成原理》教學(xué)內(nèi)容的探析
段珊,王金娟
(湖南涉外經(jīng)濟(jì)學(xué)院信息,長(zhǎng)沙 410205)
計(jì)算思維能力的培養(yǎng)作為計(jì)算機(jī)專業(yè)課程的基本要求早已提出,但如何從計(jì)算思維的角度去理解課程內(nèi)容,培養(yǎng)計(jì)算思維的能力,一直都處在一個(gè)摸索的階段。計(jì)算機(jī)系統(tǒng)本身就是計(jì)算思維運(yùn)用的最顯著成果,探討如何從計(jì)算思維的角度去組織計(jì)算機(jī)組成原理的教學(xué)內(nèi)容,指導(dǎo)學(xué)生站在計(jì)算思維角度去理解課程內(nèi)容,有意識(shí)地培養(yǎng)計(jì)算思維有利于提升課程的廣度和深度。
計(jì)算思維;計(jì)算機(jī)系統(tǒng);計(jì)算機(jī)組成原理
圖靈獎(jiǎng)得主Edsger Dijkstr很早就提出了“工具影響思維”論。計(jì)算機(jī)的廣泛應(yīng)用不僅為不同專業(yè)領(lǐng)域提供了解決專業(yè)問(wèn)題的有效方法和手段,而且提供了一種獨(dú)特的處理問(wèn)題的思維方式——用計(jì)算的方法對(duì)問(wèn)題求解。這種思維方式運(yùn)用于不同學(xué)科領(lǐng)域,產(chǎn)生了一些新學(xué)科,如計(jì)算生物學(xué)(生物信息學(xué))、計(jì)算力學(xué)、計(jì)量經(jīng)濟(jì)學(xué)等。所以“計(jì)算思維”的概念一經(jīng)提出,在計(jì)算機(jī)學(xué)術(shù)界和教育界,引起了廣泛的關(guān)注。教育部高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會(huì)在2010年出版的《高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)人才專業(yè)能力構(gòu)成與培養(yǎng)》中,也正式把計(jì)算思維列為計(jì)算機(jī)專業(yè)基本能力。
雖然早在2006年周以真教授明確的給出了計(jì)算思維的定義,并對(duì)之進(jìn)行了具體內(nèi)容的解釋。但這些思維體現(xiàn)在哪些知識(shí)點(diǎn)上,如何在計(jì)算機(jī)專業(yè)課程中認(rèn)識(shí)、理解、貫通并培養(yǎng)計(jì)算思維,還處在一個(gè)摸索階段。
《計(jì)算機(jī)組成原理》作為計(jì)算機(jī)學(xué)科的專業(yè)核心基礎(chǔ)課程,它的教學(xué)目標(biāo)就是要求學(xué)生系統(tǒng)理解計(jì)算機(jī)硬件系統(tǒng)的邏輯組成及工作原理,形成整機(jī)系統(tǒng)的概念。該課程概念多、內(nèi)容涉及面廣、抽象,既不象數(shù)學(xué)那樣有很強(qiáng)的邏輯推理,也不象數(shù)據(jù)結(jié)構(gòu)算法有可視化的實(shí)現(xiàn)形式,讓學(xué)生感覺理論性也不明晰,規(guī)律性不強(qiáng),知識(shí)內(nèi)容零散,表達(dá)形式抽象,一直都被認(rèn)為是一門難學(xué)、難教的課程。但它所闡述的每一個(gè)原理,每一個(gè)概念,每一種實(shí)現(xiàn)方法都是支撐計(jì)算思維的重要內(nèi)容。本質(zhì)上來(lái)講計(jì)算機(jī)系統(tǒng)自身就是計(jì)算思維運(yùn)用的最顯著的成果,它是數(shù)學(xué)思維與工程思維相互融合的最好體現(xiàn)。隨著計(jì)算機(jī)思維能力培養(yǎng)的提出,《計(jì)算機(jī)組成原理》不再只是單純的要求學(xué)生掌握計(jì)算機(jī)的工作原理,設(shè)計(jì)思想,實(shí)現(xiàn)方法。更需要理解這些顯性知識(shí)所抽象出來(lái)的解決問(wèn)題的數(shù)學(xué)理論,工程方法,并將他們變成自己解決問(wèn)題的一種思維模式,即計(jì)算思維能力的培養(yǎng)。
思維是個(gè)抽象的概念,它是基于一系列知識(shí)來(lái)求解問(wèn)題的思路,其每個(gè)環(huán)節(jié)都由一定的知識(shí)來(lái)鋪墊。對(duì)這些知識(shí)進(jìn)行理解,并將這些環(huán)節(jié)進(jìn)行貫通,就得到解決整個(gè)問(wèn)題的思維。思維雖然概念化,抽象化,但可以將它們以可視化,形象化的方式傳授給學(xué)生?!队?jì)算機(jī)組成原理》進(jìn)行教學(xué)時(shí),內(nèi)容的講授不只是知識(shí)的簡(jiǎn)單化、概念化的呈現(xiàn),更是在知識(shí)的傳授過(guò)程中,進(jìn)行思路的清理、思維的提取與訓(xùn)練。本段從計(jì)算思維的角度出發(fā)對(duì)計(jì)算機(jī)基本系統(tǒng)(運(yùn)算器、存儲(chǔ)器和控制器三大部件)的基本原理和實(shí)現(xiàn)方法的內(nèi)容進(jìn)行解讀。
計(jì)算機(jī)是以計(jì)算手段來(lái)求解客觀世界,首先必須解決計(jì)算機(jī)內(nèi)信息的表示問(wèn)題。
(1)信息表示
不管是數(shù)值信息還是非數(shù)值信息在計(jì)算機(jī)中都是以二進(jìn)制代碼的形式存在,機(jī)器碼和編碼是關(guān)鍵內(nèi)容。數(shù)值信息對(duì)應(yīng)的是機(jī)器碼,非數(shù)值信息對(duì)應(yīng)的是編碼。討論機(jī)器碼時(shí),強(qiáng)調(diào)機(jī)器碼的數(shù)學(xué)定義,即機(jī)器碼的碼值與真值之間的函數(shù)關(guān)系,讓學(xué)生從數(shù)學(xué)的角度去理解機(jī)器碼-機(jī)器碼通過(guò)真值的運(yùn)算來(lái)得到,便于后續(xù)內(nèi)容中運(yùn)算算法的推理,讓學(xué)生更好理解機(jī)器運(yùn)算與自然數(shù)學(xué)運(yùn)算之間本質(zhì)關(guān)聯(lián),體現(xiàn)計(jì)算機(jī)中的數(shù)學(xué)思維。
編碼本質(zhì)上是按某種規(guī)則用二進(jìn)制符號(hào)組合來(lái)表示某個(gè)文字或某個(gè)概念。書上闡述了ASCII編碼和中文的各種編碼。這些顯性的知識(shí)蘊(yùn)含了語(yǔ)義符號(hào)化的概念。語(yǔ)義符號(hào)化的過(guò)程是一個(gè)理解與抽象的過(guò)程,通過(guò)對(duì)客觀世界現(xiàn)象的深入理解,抽象出普適的概念,進(jìn)而將概念符號(hào)化,進(jìn)行各種運(yùn)算;再將符號(hào)賦予不同語(yǔ)義,便可以完成不同問(wèn)題的處理。這是計(jì)算機(jī)求解問(wèn)題的第一個(gè)出發(fā)點(diǎn)。
如何在機(jī)器上實(shí)現(xiàn)數(shù)學(xué)的計(jì)算這是計(jì)算機(jī)面對(duì)的一個(gè)關(guān)鍵。
(2)運(yùn)算方法和運(yùn)算器
運(yùn)算方法與運(yùn)算器討論的就是基本的四則運(yùn)算算法及其在計(jì)算機(jī)上的實(shí)現(xiàn)。
運(yùn)算方法討論時(shí)首先要關(guān)注自然算術(shù)運(yùn)算與機(jī)器運(yùn)算區(qū)別所在,自然數(shù)學(xué)面對(duì)的是真值,計(jì)算機(jī)中無(wú)論運(yùn)算結(jié)果還是操作數(shù)都是機(jī)器碼。撇開具體的機(jī)器碼形式和運(yùn)算種類,運(yùn)算方法根本上就是討論真值運(yùn)算結(jié)果的機(jī)器碼如何由操作數(shù)的機(jī)器碼計(jì)算后得到。例如,兩個(gè)真值x,Y相加得到x+y,機(jī)器中對(duì)應(yīng)的是求[x+y]補(bǔ),如何由[x]補(bǔ)和[Y]補(bǔ)替換x,Y得到[x+y]補(bǔ)。這就是補(bǔ)碼加法運(yùn)算規(guī)則要討論的。根據(jù)真值運(yùn)算的定義,真值與機(jī)器碼的數(shù)學(xué)關(guān)系,進(jìn)行數(shù)學(xué)變換即可得到運(yùn)算算法。
運(yùn)算方法決定了運(yùn)算器的結(jié)構(gòu)。不同的機(jī)器碼,不同運(yùn)算對(duì)應(yīng)的運(yùn)算器的內(nèi)部結(jié)構(gòu)不同。加法器是所有運(yùn)算器的基本構(gòu)件,它由多個(gè)全加器(半加器)通過(guò)進(jìn)位鏈連接得到;串行進(jìn)位與并行進(jìn)位均可以由進(jìn)位函數(shù)推理得到;計(jì)算進(jìn)位鏈的延時(shí)來(lái)選擇并行加法器的組織結(jié)構(gòu)。
ALU的設(shè)計(jì)更是體現(xiàn)了計(jì)算機(jī)系統(tǒng)解決問(wèn)題的思路和方法,把復(fù)雜的運(yùn)算分解為簡(jiǎn)單的處理,用正確簡(jiǎn)單的芯片實(shí)現(xiàn),通過(guò)層層構(gòu)造,得到更復(fù)雜的功能部件,實(shí)現(xiàn)更復(fù)雜的多種不同的運(yùn)算。
浮點(diǎn)數(shù)的表示和運(yùn)算是定點(diǎn)整數(shù)和定點(diǎn)小數(shù)的相應(yīng)組合。
內(nèi)容多、廣、雜是本章的特色。運(yùn)算方法的推理,進(jìn)位鏈的構(gòu)造,ALU的設(shè)計(jì)不僅涉及到了算術(shù)運(yùn)算、邏輯函數(shù)、邏輯電路,更體現(xiàn)了算術(shù)與邏輯貫通,數(shù)學(xué)與工程的融合。組合與分解是構(gòu)造算法和硬件的常用方法。不管多么復(fù)雜的運(yùn)算都可以用數(shù)學(xué)的方法分解為基本算術(shù)運(yùn)算,算術(shù)運(yùn)算可以化為簡(jiǎn)單的加法運(yùn)算。因?yàn)?、1數(shù)據(jù)的引入,加法運(yùn)算可以用邏輯函數(shù)實(shí)現(xiàn)的加法單元與進(jìn)位鏈實(shí)現(xiàn),算術(shù)與邏輯在這里會(huì)聚;邏輯函數(shù)和進(jìn)位鏈用門電路組合實(shí)現(xiàn),工程與數(shù)學(xué)在這里進(jìn)行了融合。
要實(shí)現(xiàn)計(jì)算處理的自動(dòng)化,必須將相關(guān)的程序和數(shù)據(jù)存儲(chǔ)在計(jì)算機(jī)的存儲(chǔ)系統(tǒng)內(nèi)。(這里談存儲(chǔ)器系統(tǒng),主要談內(nèi)存系統(tǒng))
(3)存儲(chǔ)系統(tǒng)
存儲(chǔ)機(jī)理、存儲(chǔ)器操作,存儲(chǔ)器的構(gòu)造是本小節(jié)的要點(diǎn)。
存儲(chǔ)元的存儲(chǔ)機(jī)理揭示了符號(hào)代碼與電路之間的本質(zhì)關(guān)聯(lián),即0、1為電路狀態(tài)的符號(hào)表示。存儲(chǔ)元電路不同所構(gòu)成的存儲(chǔ)器結(jié)構(gòu)、性能也不同。SRAM、DRAM、ROM存儲(chǔ)器因?yàn)槠湫阅懿煌?,用途也不相同。存?chǔ)器是由若干個(gè)存儲(chǔ)單元的集合,每個(gè)存儲(chǔ)單元由若干個(gè)存儲(chǔ)元構(gòu)成。存儲(chǔ)單元由地址編碼進(jìn)行區(qū)分,地址編碼的位數(shù)反映了存儲(chǔ)器的容量:M=2N(M為存儲(chǔ)器的容量,N為地址編碼的位數(shù))。CPU所需要的程序,數(shù)據(jù)就放在存儲(chǔ)單元中,CPU按地址訪問(wèn)存儲(chǔ)單元的內(nèi)容。
存儲(chǔ)器采用模塊化的方式構(gòu)造,利用多個(gè)存儲(chǔ)芯片從位、字的方向進(jìn)行擴(kuò)展。存儲(chǔ)模塊的組織方式將影響它與CPU的信號(hào)線的連接、片選邏輯的生成及單元地址的語(yǔ)義。順序組織,地址編碼的高位部分放映的是模塊的編號(hào),低位部分反映的是單元在塊內(nèi)地址的序號(hào),交叉組織,則反之。利用地址本身的語(yǔ)義,利于CPU實(shí)現(xiàn)對(duì)存儲(chǔ)單元的快速尋址,也利于存儲(chǔ)器組織管理。
CPU對(duì)存儲(chǔ)器系統(tǒng)的要求是容量足夠大,速度足夠快,價(jià)格足夠低。沒有存儲(chǔ)器同時(shí)滿足這三個(gè)要求。采用資源組合優(yōu)化的思維,將cache、內(nèi)存、外存這三種不同性能的存儲(chǔ)器組合成了速度、容量、價(jià)格不同層次的一個(gè)存儲(chǔ)系統(tǒng)并采用了緩沖、并行技術(shù)保證系統(tǒng)的效率實(shí)現(xiàn)。
計(jì)算機(jī)問(wèn)題求解的方法和步驟,用程序來(lái)描述,程序是指令的有序集合。
(4)指令系統(tǒng)
這里談的指令是指機(jī)器指令,它是CPU可以直接分析與執(zhí)行的指令。它告訴計(jì)算機(jī)做什么,對(duì)誰(shuí)操作,并給出下一條指令的地址。從形式上來(lái)看指令是一連串的二進(jìn)制代碼,操作碼告訴計(jì)算機(jī)要完成的操作,地址碼和尋址方式一起組合給出操作對(duì)象,下一條指令地址的給出,保證了指令的自動(dòng)執(zhí)行。不同機(jī)器指令格式不同,同一機(jī)器中指令的長(zhǎng)度可以不同。在進(jìn)行指令格式設(shè)計(jì)時(shí),希望指令能表示的操作越多越好,指令長(zhǎng)度越短越好,尋址的范圍越廣越好。為了便于學(xué)生的理解,列舉一條指令來(lái)闡述指令內(nèi)容,格式,與設(shè)計(jì)要點(diǎn)。本章內(nèi)容不關(guān)注單個(gè)指令,強(qiáng)調(diào)站在抽象和概述的角度來(lái)認(rèn)識(shí)指令本質(zhì)。功能確定內(nèi)容,內(nèi)容確定形式。從這種思路出發(fā),引導(dǎo)學(xué)生去理解指令,并掌握指令設(shè)計(jì)的方法。
機(jī)器如何去理解和執(zhí)行指令?這就要理解控制器系統(tǒng)的工作原理和實(shí)現(xiàn)方法。這是本課程的重點(diǎn)和難點(diǎn)。
(5)控制器系統(tǒng)
考慮到功能部件的完整性,往往把控制器和時(shí)序系統(tǒng)合在一起作為控制器系統(tǒng)來(lái)進(jìn)行理解。根據(jù)系統(tǒng)求解的思路,從系統(tǒng)功能角度出發(fā)得到控制器的組織結(jié)構(gòu)模塊,這是指令分析與執(zhí)行的物理實(shí)體;分析CPU執(zhí)行指令過(guò)程,得到CPU內(nèi)部的數(shù)據(jù)通路及相關(guān)控制信號(hào),控制信號(hào)控制數(shù)據(jù)通路的建立;指令的執(zhí)行必須有序進(jìn)行,引入時(shí)序信號(hào)對(duì)操作進(jìn)行時(shí)間約束。這樣功能結(jié)構(gòu)塊、操作控制流、時(shí)序體系從三個(gè)不同方向組合構(gòu)成了一個(gè)控制器系統(tǒng)的立體。這是一個(gè)復(fù)雜的綜合系統(tǒng),這個(gè)立體可分為三層,下層是對(duì)上層的支撐,每一個(gè)層次都包含了三個(gè)面的內(nèi)容。功能結(jié)構(gòu)塊從上到下三個(gè)層次依次得到控制器、微控制器-單元集成門電路;操作控制流有兩股內(nèi)容相互依存-控制流和操作流??刂屏饕来螢橹噶?、微指令、微命令;微命令譯碼轉(zhuǎn)化為微操作控制信號(hào),直接控制最底層-門電路的開關(guān)(微操作),這里是軟件與硬件的融合面;具有一定時(shí)序關(guān)系的微操作組合共同完成一個(gè)基本功能,這些微操作的集合稱為基本操作,或者說(shuō)機(jī)器操作,它往往對(duì)應(yīng)一條或幾條微指令控制;多個(gè)機(jī)器操作組合完成一條指令的功能—-指令控制操作。操作從下至上為微操作—機(jī)器操作—指令操作,和對(duì)應(yīng)的控制流相互依存。操作除了受控制流的控制,還必須受時(shí)間的限制,時(shí)序信號(hào)通過(guò)加在控制信號(hào)上了,實(shí)現(xiàn)對(duì)操作約束。時(shí)序體制面的從上之下定義了指令周期,機(jī)器周期,時(shí)鐘周期來(lái)為不同級(jí)別的操作進(jìn)行時(shí)間定時(shí)。這樣三個(gè)面三個(gè)層次相互嵌套融合,分解組合,分層構(gòu)造就得到一個(gè)完整的控制器系統(tǒng)。
整個(gè)系統(tǒng)遵循一個(gè)整體到局部,從宏觀到微觀,從概念到實(shí)現(xiàn),從高層到低層的相互轉(zhuǎn)換,并在低層實(shí)現(xiàn)了軟硬的融合。這不僅讓學(xué)生從立體角度、層次的觀點(diǎn)去理解控制器系統(tǒng)的結(jié)構(gòu)、操作、時(shí)序之間的融合貫通,也提供許多軟硬綜合系統(tǒng)設(shè)計(jì)的基本思路和方法,比如微程序入口地址的設(shè)計(jì),微指令下址的形成方式,微命令控制字段的編碼原則,這些內(nèi)容的掌握更好地幫助學(xué)生透徹理解控制器工作理論,也為后續(xù)的CPU設(shè)計(jì)、軟、硬件的編程提供方法和技巧。
計(jì)算機(jī)組成原理的內(nèi)容多,覆蓋廣,其中體現(xiàn)的計(jì)算思維可以歸納為以下幾個(gè)方面:
①數(shù)學(xué)、工程的思維:例如機(jī)器碼的數(shù)學(xué)定義,機(jī)器碼的運(yùn)算規(guī)則的推理實(shí)際上是數(shù)學(xué)方法的運(yùn)用。存儲(chǔ)器的設(shè)計(jì),運(yùn)算器的實(shí)現(xiàn)、微控制器的構(gòu)造都體現(xiàn)硬件系統(tǒng)實(shí)現(xiàn)的基本原則。
②軟硬融合思維:計(jì)算機(jī)是個(gè)軟硬綜合的復(fù)雜系統(tǒng),軟件范疇類的數(shù)學(xué)運(yùn)算算法實(shí)現(xiàn)和控制命令要轉(zhuǎn)化為機(jī)器的操作,必定存在軟硬融合切入點(diǎn)。運(yùn)算器中運(yùn)算分解為簡(jiǎn)單的邏輯運(yùn)算在邏輯電路上的實(shí)現(xiàn);微控制器中,指令分解為微命令后向微操作的轉(zhuǎn)變;存儲(chǔ)元中的0、1信息實(shí)際上是電路的狀態(tài)描述等都體現(xiàn)了軟硬融合的本質(zhì)。
③系統(tǒng)構(gòu)建的思維:不管是硬件系統(tǒng)的構(gòu)造還是軟件指令的執(zhí)行,都體現(xiàn)了實(shí)現(xiàn)由簡(jiǎn)單入手,層層構(gòu)造,軟件功能層層分解,部分實(shí)現(xiàn)的一系列普適的系統(tǒng)思維。
從計(jì)算思維的角度去講授教學(xué)內(nèi)容,指導(dǎo)學(xué)生站在計(jì)算思維角度去理解課程內(nèi)容,對(duì)本課程來(lái)說(shuō)不僅可以有助于學(xué)生對(duì)知識(shí)點(diǎn)的舉一反三理解,將看似零散知識(shí)進(jìn)行有效貫通、融合,形成解決問(wèn)題的完整思路;從全局的角度來(lái)講,有意思的培養(yǎng)計(jì)算思維有利于提升課程的廣度和深度,對(duì)學(xué)生分析問(wèn)題、求解問(wèn)題的能力提高及相關(guān)課程的學(xué)習(xí)提供本質(zhì)上的幫助。計(jì)算思維雖然在計(jì)算機(jī)領(lǐng)域內(nèi)提出,但它覆蓋著廣泛的科學(xué)與工程范疇,對(duì)于技術(shù)與知識(shí)的創(chuàng)新,思維往往都是源頭。
[1]Wing J M.Computational Thinking[J].Communication of the ACM,2006,49(3):33-35.
[2]譚浩強(qiáng).研究計(jì)算思維,堅(jiān)持面向應(yīng)用[J].計(jì)算機(jī)教育,2012(21).
[3]戰(zhàn)德臣,聶蘭順.大學(xué)計(jì)算機(jī)—計(jì)算思維導(dǎo)論[M].電子工業(yè)出版社,2013.
[4]董榮勝,古天龍.計(jì)算思維與計(jì)算機(jī)方法論[J].計(jì)算機(jī)科學(xué),2009(1).
[5]聶蘭順,戰(zhàn)德臣等.計(jì)算思維的教學(xué)內(nèi)容與方法研究[J].工業(yè)和信息化教育,2013(6).
[6]李暾,王挺,寧洪,劉越.計(jì)算思維教的內(nèi)容設(shè)計(jì)[J].計(jì)算機(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-),女,碩士,研究方向?yàn)槟P蜋z測(cè)、高性能計(jì)算
2016-10-13
2016-11-16
王金娟(1981-),女,湖南長(zhǎng)沙人,碩士,系統(tǒng)分析師,研究方向?yàn)檐浖こ碳夹g(shù)與應(yīng)用