張 磊 劉 劍 羅新祥
北京科技大學(xué)計算機與通信工程學(xué)院 北京 100083
模型機演示系統(tǒng)輔助計算機組成原理教學(xué)的方法
張 磊 劉 劍 羅新祥
北京科技大學(xué)計算機與通信工程學(xué)院 北京 100083
根據(jù)多年來計算機組成原理課程的教學(xué)實驗情況,提出了一種用模型機演示系統(tǒng)輔助計算機組成原理教學(xué)的方法。該方法是在EDA平臺中用軟件實現(xiàn)硬件實驗箱模型機的功能,并將設(shè)計過程錄制成視頻,形成一套完整的演示系統(tǒng)。在理論教學(xué)中引入該演示系統(tǒng),使教學(xué)內(nèi)容與實驗內(nèi)容直接相關(guān),有助于學(xué)生真正理解原理并對小學(xué)期自行設(shè)計模型機打好基礎(chǔ)。該方法已應(yīng)用到實際教學(xué)中,取得了良好的教學(xué)效果。
模型機;演示系統(tǒng);輔助教學(xué);計算機組成原理
計算機組成原理是計算機專業(yè)的一門核心課程,是大學(xué)生學(xué)習(xí)計算機硬件課程以及建立計算機系統(tǒng)整體認識的入門課程[1]。它涉及的知識面非常廣,內(nèi)容包括中央處理器、指令系統(tǒng)、存儲系統(tǒng)、總線和輸入輸出系統(tǒng)等方面。學(xué)生在學(xué)習(xí)該課程時,普遍覺得概念抽象難于理解,缺乏對所學(xué)知識的直觀型驗證方法,知識要點艱澀難懂,而授課時間和實驗時間都很有限,無法建立計算機單機系統(tǒng)的整體認識。盡管經(jīng)過一系列的課程改革[2],教學(xué)效果已有所好轉(zhuǎn),但還是存在一些問題:(1)學(xué)生需要花很長時間和精力將理論課與實驗內(nèi)容進行關(guān)聯(lián)。(2)在小學(xué)期課程設(shè)計中很多學(xué)生感覺難度太大而放棄自己動手,或者在現(xiàn)成的版本基礎(chǔ)上做簡單修改。
經(jīng)過認真分析這些問題,可總結(jié)歸納為如下原因:(1)理論課內(nèi)容與實驗內(nèi)容互相獨立,學(xué)生如果想明確實驗?zāi)康模瑒t需要認識全新實驗箱的結(jié)構(gòu)和實現(xiàn),這樣所需要的時間是教學(xué)計劃的實驗學(xué)時遠遠不能滿足的。(2)很多學(xué)生對于原理很明白,用Quartus II軟件進行設(shè)計就很茫然,不知道這個做硬件設(shè)計的軟件能提供哪些功能。一方面是因為對軟件使用和硬件描述語言不夠熟練;另一方面學(xué)生普遍對硬件設(shè)計有畏難情緒而更偏重純軟件設(shè)計。結(jié)合本校學(xué)生實際情況,同時為了加強理論與實驗內(nèi)容的聯(lián)系,以西安唐都科教儀器公司推出的CM3+計算機組成原理教學(xué)實驗系統(tǒng)為藍本,將實驗系統(tǒng)模型機的整個設(shè)計用Quartus II軟件實現(xiàn),并錄制整個設(shè)計制作過程,作為模型機設(shè)計演示系統(tǒng)輔助計算機組成原理教學(xué)。一方面學(xué)生可以在理論課講述過程中了解實驗環(huán)境,并將理論課講述的部分直接對應(yīng)到模型機上,對實驗內(nèi)容有整體把握,一定程度上簡化了實驗環(huán)節(jié)。另一方面學(xué)生通過這套演示系統(tǒng)可以清楚地看到Quartus II軟件在模型機設(shè)計過程發(fā)揮的作用,對于自己動手設(shè)計模型機起到很好的指示作用。
經(jīng)過深入研究CM3+實驗箱,該模型機為8位字長、單周期、支持15條機器指令的模型機。借助EDA工具軟件Quartus II進行電路和代碼設(shè)計。下面具體分析模型機系統(tǒng)設(shè)計過程。
1.1 模型機的指令系統(tǒng)設(shè)計
總共設(shè)計了15條基本指令,其中包括運算類指令、控制轉(zhuǎn)移類指令、數(shù)據(jù)傳送類指令。運算類指令包含3種運算,分別是算術(shù)運算、邏輯運算和移位運算,所有運算類指令都為單字節(jié),尋址方式采用寄存器直接尋址??刂破鬓D(zhuǎn)移類指令有3條,用以控制程序的分支和轉(zhuǎn)移。數(shù)據(jù)傳送類指令有6條指令,用以完成寄存器和寄存器、寄存器和I/O、寄存器和存儲器之間的數(shù)據(jù)交換。15條基本指令的指令的格式、匯編符號、指令功能參見實驗指導(dǎo)書[3]。
1.2 模型機的數(shù)據(jù)通路設(shè)計
根據(jù)該8位模型機要實現(xiàn)的指令,設(shè)計其數(shù)據(jù)通路(如圖1所示)。
圖1 數(shù)據(jù)通路框圖
1.3 指令執(zhí)行流程設(shè)計
將每條指令執(zhí)行流程和相應(yīng)的控制信號變化列出來,以ADD指令為例進行分析(如圖2所示)。
圖2 指令流程及控制信號分析圖
1.4 控制器部件設(shè)計
模型機采用微程序控制器,需要設(shè)計微指令。在視頻中介紹微指令的設(shè)計方法。模型機設(shè)計過程直接采用設(shè)計好的微程序。用EDA平臺提供的宏功能模塊庫中LPM_ROM單元實現(xiàn)微程序控制存儲器,建立一個后綴為.mif的文件存儲微程序,借助該宏功能模塊庫可充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。
模型機系統(tǒng)設(shè)計完成后,在演示系統(tǒng)中需要將設(shè)計和實現(xiàn)過程講清楚,采用微視頻的方式,演示系統(tǒng)由5個20分鐘左右的視頻構(gòu)成。重點講述的內(nèi)容包括模型機的設(shè)計思路,ALU模塊設(shè)計,微程序控制器設(shè)計,指令譯碼電路設(shè)計、時序控制部分等。
2.1 ALU模塊設(shè)計
ALU主要包括算數(shù)運算部件、邏輯運算部件、移位運算部件,運算功能由控制信號S3,S2,S1,S0決定,所以總共可以設(shè)置16種邏輯功能。運算器邏輯表參見實驗指導(dǎo)書[3]。使用Verilog語言實現(xiàn)此邏輯運算功能。
2.2 微程序控制器模塊設(shè)計
程序控制器采用微程序設(shè)計?;救蝿?wù)是完成當(dāng)前指令的譯碼和執(zhí)行環(huán)節(jié),即將當(dāng)前指令的功能轉(zhuǎn)換成可以控制的硬件邏輯部件工作的微命令序列,完成數(shù)據(jù)的傳送和各種處理操作[4]。每條微指令用24位微代碼來表示,24位微代碼信號的功能見實驗指導(dǎo)書[3]。微程序控制器原理圖如圖3所示。
圖3 微程序控制器原理圖
2.3 指令寄存器IR及指令譯碼電路
指令寄存器主要鎖存取得的指令,供控制電路解碼分析執(zhí)行。用Quartus II設(shè)計的原理圖如圖4所示,借助了EDA平臺提供的LPM_LATCH。
圖4 指令寄存器IR原理圖
根據(jù)指令譯碼電路得到以入口微地址為輸出的邏輯表達式,為什么進行這樣的設(shè)計,如何設(shè)計均在演示系統(tǒng)中進行講解。
2.4 演示系統(tǒng)的測試
模型機系統(tǒng)的頂層原理圖如圖5所示,首先進行每條指令功能測試,確保所有指令功能正確后,用指令設(shè)計累加和的程序即從IN單元讀入一個數(shù)據(jù),根據(jù)讀入數(shù)據(jù)的低四位值X,求1+2+3+……+X的累加和,01H到0FH共15個數(shù)據(jù)存于60H到6EH單元。將程序存入該模型機主存執(zhí)行,經(jīng)仿真驗證結(jié)果正確。
圖5 模型機系統(tǒng)頂層原理圖
由于理論課是以X86處理器為模型機貫穿整個教學(xué)過程,講解順序[1]如圖6所示。
圖6 理論課講解順序
該演示系統(tǒng)與課堂教學(xué)進行配合,當(dāng)講完運算器部分,讓學(xué)生結(jié)合視頻,將演示模型機系統(tǒng)的加法部分用超前進位加法器代替,也可將算術(shù)運算擴展乘法運算,用陣列乘法器實現(xiàn),這樣學(xué)生就能對該設(shè)計實驗有整體的認識,避免造成知其然而不知其所以然的情況。
講完存儲器部分,可以讓學(xué)生結(jié)合視頻,觀察存儲器周圍的電路連接,為驗證性實驗做準備。也可讓學(xué)生在CPU和存儲器中間設(shè)計Cache控制器,提高性能。
講完控制器部分,可讓學(xué)生把微程序進行重新編碼,或者擴展指令,充分理解微程序的概念;也可將微程序控制器改為硬布線控制器,在演示模型機上重新編譯,但這個工作量是比較大的,因此僅供參考。
在理論課中穿插實驗內(nèi)容,使理論實驗無縫結(jié)合,這套模型機系統(tǒng)和演示系統(tǒng)起到至關(guān)重要的作用。
通過建立模型機演示系統(tǒng)進行計算機組成原理輔助教學(xué)不僅有助于學(xué)生理解模型機,而且對學(xué)生親自動手設(shè)計模型機很有幫助。學(xué)生不再覺得硬件設(shè)計高深莫測了,而是覺得只要一步一個腳印地認真做下去就能設(shè)計出屬于自己的一臺模型機。該演示系統(tǒng)已在2012級計算機專業(yè)和信息安全專業(yè)學(xué)生中開始使用,在評教環(huán)節(jié),該演示系統(tǒng)獲得了學(xué)生的一致好評,認為“很有幫助”“解決了我學(xué)習(xí)過程中的疑惑”“是很好很強大的學(xué)習(xí)資料”。相信只要站在學(xué)生角度去看問題,想學(xué)生之所想,解學(xué)生之所惑,就會不斷地提升教學(xué)質(zhì)量。
[1] 張磊,鄭榕,田軍峰.計算機組成原理理論實驗教學(xué)無縫結(jié)合的新方法[J].實驗室研究與探索,2013,32(5):168-173.
[2] 張磊,鄭榕,田軍峰.《計算機組成原理》實驗教學(xué)改革[J].實驗科學(xué)與技術(shù),2013,11(2):107-110.
[3] 李濤.計算機組成原理實驗教程[M].北京:中國電力出版社,2009.
[4] 丁紅勝.CPU與簡單模型機設(shè)計實驗中的關(guān)鍵問題分析[J].計算機教育,2013(15):13-17.
A method of Facilitating Computer Organization Teaching by Using a Demo System of Design and Achievement of Model Machine
Zhang Lei, Liu Jian, Luo Xinxiang
University of Science and Technology Beijing, Beijing, 100083, China
According to the teaching practice of the course of computer organization for many years, it is presented a method offacilitating teaching with a demo system of design and achievement of model machine. This auxiliary method is that carrying out the function of the experimental box based on the EDA platform firstly, and then recording the video of the whole procedure, making a completed demo system at last. Bringing it into teaching will connect the contents of theories and experiments better, as is helpful to students’ understanding actual principles and designing model machine by themselves. This method has been used for practical teaching and obtained good results.
model machine; demo system; auxiliary teaching; computer organization
2014-06-09
張磊,碩士,工程師。