文章編號:1672-5913(2008)08-0027-02
摘要:本文介紹了我院如何將EDA技術(shù)引入“計算機組成原理”課程來解決該課程在教學(xué)內(nèi)容和實驗教學(xué)方面的問題。
關(guān)鍵詞:計算機組成原理;EDA;課程建設(shè)
中圖分類號:G642
文獻標識碼:B
1存在的問題
“計算機組成原理”是計算機專業(yè)一門重要的專業(yè)基礎(chǔ)課,但現(xiàn)在該課程在教學(xué)活動中存在一些問題。
(1) 學(xué)習(xí)“計算機組成原理”課程有什么用?
現(xiàn)在的學(xué)生相對比較浮躁,他們關(guān)心的是學(xué)這門課程有沒有直接作用,對以后找工作有沒有用。同時硬件類課程相對都比較枯燥點、難學(xué)點,所以他們對這門基礎(chǔ)課提不起興趣,自然也難學(xué)好。
(2) 本科教學(xué)多個知識點之間存在鴻溝
現(xiàn)有計算機專業(yè)學(xué)習(xí)的課程主要包括“數(shù)字邏輯”、“計算機組成原理”、“微機原理”、“微機接口技術(shù)”、“匯編語言”、“計算機系統(tǒng)結(jié)構(gòu)”等,各門課程相互之間內(nèi)容相對獨立,缺乏課程間的系統(tǒng)性和科學(xué)性,知識點分散獨立,學(xué)生很難將多層次的硬件和軟件知識點融會貫通,也就無法從真正意義上掌握計算機組成原理。
(3) 課程內(nèi)容組織需要改進
在傳統(tǒng)的教學(xué)方法中,課程內(nèi)容的組織一般采用從基本原理->零件->部件->整機->系統(tǒng)的教學(xué)思路。但是從實際教學(xué)效果來看,由于采用這種“自底向上”的方法,學(xué)生在學(xué)習(xí)前面局部知識的時候,缺乏整機系統(tǒng)概念,不能融會貫通,產(chǎn)生“教什么,學(xué)什么”而不知“為什么”的現(xiàn)象。學(xué)到整機、系統(tǒng)概念的時候,前面學(xué)的知識有遺忘和不能貫通的現(xiàn)象。
(4) 傳統(tǒng)實驗教學(xué)模式存在的問題
“計算機組成原理”課程實驗一般采用的是現(xiàn)成的計算機模型實驗系統(tǒng),這類實驗系統(tǒng)已將CPU的各個組成部件全部做好,學(xué)生按要求連線、撥動開關(guān)或編寫微程序就能完成實驗。該類系統(tǒng)對提高學(xué)生的動手能力、提高學(xué)生對計算機整體和各組成部分的理解、提高學(xué)生的計算機系統(tǒng)綜合設(shè)計能力有很大幫助。但是在實驗過程中,我們也發(fā)現(xiàn)這種實驗方法局限性較大,器件的擴展相對困難,學(xué)生的設(shè)計難以突破實驗箱的限制。有些學(xué)生對實驗過程不求甚解,缺乏對實驗的主動思考能力,僅關(guān)心盡快完成電路連接,對原理電路中功能和工作邏輯并不深究,只是按老師安排好的實驗步驟完成實驗,而對于步驟的原因及電路結(jié)構(gòu)根本不假思索。這樣做實驗,根本無法真正做到理論與實際的結(jié)合,有時結(jié)果出來還不知道是怎么回事,也就很難培養(yǎng)出動手能力強、有創(chuàng)新能力的學(xué)生。
2改革方案
我們認為,在“計算機組成原理”課程中引入先進的數(shù)字系統(tǒng)設(shè)計方法EDA,可以在一定程度上解決上述難題。針對上面的問題,下面分別詳述。
(1) EDA技術(shù)是電子設(shè)計領(lǐng)域的一場革命,目前正處于高速發(fā)展階段,廣泛應(yīng)用于多個重要領(lǐng)域。從目前就業(yè)市場反饋的信息看,計算機軟件人才已經(jīng)在一定程度上供大于求,而熟悉硬件設(shè)計的人才則供不應(yīng)求,年薪也遠遠高于同等的軟件人才。掌握這一先進技術(shù)在將來工作時更有競爭力,學(xué)習(xí)也就有了更切實際的目標。在EDA工具的幫助下,學(xué)習(xí)“計算機組成原理”課程也能在一定程度上擺脫枯燥難學(xué)的弱點,增加學(xué)生學(xué)習(xí)的興趣,從而提高學(xué)習(xí)的效率和效果。
(2) 為解決這一問題,我們適當拓展“計算機組成原理與結(jié)構(gòu)”課程內(nèi)容,將該課程作為橫跨數(shù)字電路課程和軟件課程的橋梁,使學(xué)生從系統(tǒng)的角度能夠?qū)τ嬎銠C的組成(包括軟件和硬件及它們之間的配合)有清晰透徹的理解。例如,在中央處理器、存儲系統(tǒng)、指令系統(tǒng)等章節(jié)中,講解基本原理的同時增加采用EDA工具(如QuartusII或Max+plusII)設(shè)計過程,從數(shù)字電路與非門等基本邏輯電路開始,參考MIPS等指令格式,采用圖形輸入或硬件描述語言,搭建一個單周期“玩具CPU”,使其支持加、減、轉(zhuǎn)移等多種操作,然后設(shè)計自己的程序段,在該CPU上運行,驗證運行的結(jié)果。很多學(xué)生對于這種用基本邏輯電路搭建“玩具CPU”相當感興趣,也就能夠較快地了解和掌握計算機組成的基本原理。
(3) 針對課程的要求和特點,我們提出整體“自頂向下”,細節(jié)“自底向上”的教學(xué)組織方法。一開始就給出計算機系統(tǒng)的概述,然后講述現(xiàn)代系統(tǒng)總線標準,通過系統(tǒng)總線連接了計算機的三大組成部分:外圍設(shè)備與I/O技術(shù)、存儲系統(tǒng)、中央處理器。這樣可以讓學(xué)生有非常直接、整體的把握,為接下去學(xué)習(xí)掌握每一個部分的組成原理奠定基礎(chǔ)、把握總體方向。以中央處理器為例,中央處理器通過CPU內(nèi)部總線,連接了寄存器、控制器和運算器,在講述具體的運算方法與運算器的時候,涉及到具體細節(jié)知識點的時候,我們還是采用傳統(tǒng)的“自底向上”的教學(xué)組織方法,因為在涉及到具體原理的時候,必須遵循“循序漸進”的方法,不然沒有足夠的基礎(chǔ)知識,學(xué)生無法理解與掌握。例如,如果沒有數(shù)據(jù)表示與運算方法的基礎(chǔ),學(xué)生不可能理解定點ALU與浮點運算的原理與結(jié)構(gòu)。
(4) 傳統(tǒng)的實驗箱方法局限性相對較大,器件的擴展相對困難,學(xué)生的設(shè)計難以突破實驗箱的限制。我們將基于EDA的實驗技術(shù)適當引入“計算機組成原理”實驗教學(xué),改變傳統(tǒng)計算機組成原理實驗“芯片+連線”的做法,投入較少,效率較高。大規(guī)??删幊踢壿嬈骷?如FPGA)使得硬件的功能也可通過編程實現(xiàn),學(xué)生可以從簡單到復(fù)雜,創(chuàng)新自主地設(shè)計實現(xiàn)實驗內(nèi)容,改變以往實驗僅僅進行部件工作原理驗證的模式。我們將設(shè)計實現(xiàn)“玩具CPU”各組成部分作為學(xué)生實驗或短學(xué)期實踐的內(nèi)容,利用EDA軟件的輔助,從基本邏輯電路的設(shè)計出發(fā),進而開發(fā)較復(fù)雜的數(shù)字電路,增加學(xué)生學(xué)習(xí)的興趣,培養(yǎng)學(xué)生的創(chuàng)新能力,提高計算機系統(tǒng)性能的技術(shù)和方法,掌握計算機系統(tǒng)設(shè)計軟、硬件取舍的原則,加深對計算機組織結(jié)構(gòu)的理解。
3基于EDA設(shè)計單周期CPU
下面通過設(shè)計一個具有三條單周期指令(MOV, ADD, JMP)的“玩具CPU”過程來演示采用EDA設(shè)計的過程。
(1) 設(shè)計指令。作為演示,指令集只有三條,格式如圖1所示。
圖1 指令格式
(2)根據(jù)指令格式,我們在Quartus II EDA軟件輔助下,設(shè)計能執(zhí)行上述三條指令的CPU,邏輯設(shè)計如圖2所示。
圖2 邏輯電路圖
(3) 在該CPU的指令存儲器中設(shè)置以下的程序:
0: 0100010000010(0882h);mov 00010, 000010
1: 0000001000101(0045h);add00001, 00010
2: 1000000001000(1008h);jmp 00000001
這是一段死循環(huán)的程序,每執(zhí)行一次循環(huán),寄存器00001的值加2。通過Quartus II軟件模擬運行,pc為當前指令地址,ins為當前指令,觀察Res的值,其值依次為2,4,6,8,10…,結(jié)果正確。時序圖見圖3。
圖3 時序圖
從以上簡單的例子可以看到,在EDA軟件的輔助下,可以從指令設(shè)計開始,非常容易的設(shè)計出自己的CPU,并驗證正確性。如果在教學(xué)過程中,溶入EDA設(shè)計過程,將使學(xué)生對CPU的組成及工作原理有非常透徹的理解和領(lǐng)悟,同時也鞏固了邏輯電路的相關(guān)知識。這將對大面積地提高教學(xué)質(zhì)量,增強學(xué)生學(xué)習(xí)興趣,培養(yǎng)學(xué)生的科學(xué)素質(zhì)和鉆研能力等都有積極的作用。
參考文獻
[1] 白中英. 計算機組成原理[M]. 北京:科學(xué)出版社,2000.
[2] 朱子玉,李亞民. CPU芯片邏輯設(shè)計技術(shù)[M]. 北京:清華大學(xué)出版社,2005.
[3] 陳金兒,王讓定等. 基于CC2005的“計算機組成原理與結(jié)構(gòu)”課程改革[J]. 計算機教育,2006,(11):33-37.
[4] 王讓定等. 匯編語言與接口技術(shù)(第2版)[M]. 北京:清華大學(xué)出版社,2007.