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