譚小蘭 ,陳 多,陳華光
(湖南工程學(xué)院計(jì)算機(jī)與通信學(xué)院,湘潭 411101)
8位模型機(jī)的設(shè)計(jì)與實(shí)現(xiàn)
譚小蘭 ,陳 多,陳華光
(湖南工程學(xué)院計(jì)算機(jī)與通信學(xué)院,湘潭 411101)
為了幫助學(xué)生理解計(jì)算機(jī)組成原理整機(jī)實(shí)驗(yàn)教學(xué)內(nèi)容,我們設(shè)計(jì)了一種8位模型機(jī),并用VHDL實(shí)現(xiàn)它.它具有模塊化、開放性和經(jīng)濟(jì)實(shí)用的特點(diǎn),學(xué)生通過使用QuartusII可以調(diào)試模型機(jī)并觀察模型機(jī)內(nèi)部信息流動(dòng)的過程,從而便于學(xué)生理解計(jì)算機(jī)的工作原理.學(xué)生反映通過調(diào)試模型機(jī)后,覺得計(jì)算機(jī)組成原理整機(jī)實(shí)驗(yàn)不再抽象難懂.
模型機(jī);設(shè)計(jì)與實(shí)現(xiàn);VHDL
計(jì)算機(jī)組成原理是計(jì)算機(jī)科學(xué)專業(yè)的一門重要的專業(yè)基礎(chǔ)課,內(nèi)容包括計(jì)算機(jī)部件和整機(jī)的組成與工作原理.由于課程的專業(yè)性很強(qiáng)、概念繁雜抽象,計(jì)算機(jī)組成原理實(shí)驗(yàn)的難度很大,特別在整機(jī)實(shí)驗(yàn)教學(xué)中,學(xué)生很難理解教學(xué)內(nèi)容.因此為了幫助學(xué)生理解計(jì)算機(jī)整機(jī)的工作原理,我們設(shè)計(jì)了一種8位模型機(jī),讓學(xué)生從設(shè)計(jì)角度來理解計(jì)算機(jī)的結(jié)構(gòu)與工作原理.
8位模型機(jī)主要由運(yùn)算器ALU、控制器、地址寄存器AR、數(shù)據(jù)寄存器DR、指令寄存器IR、存儲(chǔ)器RAM、程序計(jì)數(shù)器PC和累加器A八大部件組成,這八大部件是通過總線連結(jié)起來的,它們的邏輯結(jié)構(gòu)和數(shù)據(jù)通路如圖1所示.控制器是整個(gè)模型機(jī)的中心,由它來控制計(jì)算機(jī)指令的執(zhí)行.模型機(jī)執(zhí)行指令的具體過程為:首先控制器從指令寄存器取得指令,編譯指令,再輸出微控制信號,控制ALU的運(yùn)算,PC加1,并且從RAM 中取出數(shù)據(jù)運(yùn)算,運(yùn)算后再把結(jié)果通過數(shù)據(jù)總線存到RAM,再從指令寄存器讀取下一條指令,依次循環(huán).
圖1 8位模型機(jī)的邏輯結(jié)構(gòu)與數(shù)據(jù)通路
指令系統(tǒng)是表征一臺(tái)計(jì)算機(jī)性能的重要因素,它的格式與功能不僅直接影響到機(jī)器的硬件結(jié)構(gòu),而且直接影響到系統(tǒng)軟件,影響到機(jī)器的適用范圍.為了便于教學(xué),使學(xué)生易于理解其工作原理,模型機(jī)采用了8位字長指令,每條指令的低4位用于保存立即數(shù)或存儲(chǔ)單元等操作數(shù),高4位用于保存指令操作碼,模型機(jī)的指令格式如圖2所示.模型機(jī)指令系統(tǒng)包括數(shù)據(jù)傳送類指令、算術(shù)邏輯運(yùn)算類指令、轉(zhuǎn)移類指令、停機(jī)指令4類指令,共10條指令.每條指令的助記符、指令格式、機(jī)器碼和指令功能如表1所示.
圖2 8位模型機(jī)的指令格式
尋址方式就是尋找操作數(shù)或操作數(shù)地址的方式,它也是影響計(jì)算機(jī)性能的一個(gè)重要因素.由文獻(xiàn)[2]可知直接尋址和立即尋址在現(xiàn)代程序中占絕對多數(shù),是現(xiàn)代RICS計(jì)算機(jī)倡導(dǎo)的主要尋址方式.而且,這兩種方式的指令執(zhí)行流程比較簡單,可以簡化模型機(jī)的設(shè)計(jì)與實(shí)現(xiàn).同時(shí),學(xué)生掌握了這兩種尋址方式后,要掌握其它類型的尋址方式(間接尋址等)就比較容易了.又由于我們設(shè)計(jì)模型機(jī)的主要目的是為了使學(xué)生掌握計(jì)算機(jī)的工作原理及指令在計(jì)算機(jī)中執(zhí)行的流程,而不是真正要實(shí)現(xiàn)一臺(tái)計(jì)算機(jī)產(chǎn)品,所以我們只在模型機(jī)中實(shí)現(xiàn)這兩種尋址方式.
表1 8位模型機(jī)的指令系統(tǒng)
設(shè)計(jì)好了模型機(jī)的邏輯結(jié)構(gòu)、數(shù)據(jù)通路和指令系統(tǒng)后,我們就可以對指令系統(tǒng)中每一條指令的執(zhí)行流程進(jìn)行設(shè)計(jì)了.我們由文獻(xiàn)[2]可知,計(jì)算機(jī)每條指令的執(zhí)行過程可以分為取指令、指令譯碼、取操作數(shù)和執(zhí)行指令四個(gè)階段.在每個(gè)階段控制器會(huì)調(diào)用不同部件來完成每個(gè)階段的功能,如取指令階段的主要功能是把要運(yùn)行的指令從存儲(chǔ)器中取到譯碼器中,在這一個(gè)過程中主要用到了程序計(jì)數(shù)器PC、地址寄存器AR、數(shù)據(jù)寄存器DR、存儲(chǔ)器RAM 和指令寄存器IR等部件.指令譯碼階段則主要是對所要執(zhí)行的指令進(jìn)行譯碼以產(chǎn)生相應(yīng)指令的控制信號,主要用到了指令寄存器IR和控制器.取操作數(shù)階段則是把指令運(yùn)算的操作數(shù)取到運(yùn)算器中,主要用到了地址寄存器AR、數(shù)據(jù)寄存器DR和存儲(chǔ)器RAM等,執(zhí)行指令階段則執(zhí)行指令所規(guī)定的功能,如算術(shù)運(yùn)算、轉(zhuǎn)移或停機(jī)等功能.根據(jù)前面的設(shè)計(jì)好的數(shù)據(jù)通路和指令系統(tǒng),我們設(shè)計(jì)了模型機(jī)的指令執(zhí)行流程如圖3所示.
圖3 8位模型機(jī)的指令執(zhí)行流程
VHDL是一種被美國國防部和IEEE確定為標(biāo)準(zhǔn)的硬件描述語言,它支持模塊化設(shè)計(jì),在基于FPGA和ASIC的數(shù)位系統(tǒng)設(shè)計(jì)中有著廣泛的應(yīng)用.為了實(shí)現(xiàn)模型機(jī),我們把圖1中的每一個(gè)部件用一個(gè)VHDL文件來實(shí)現(xiàn)它.在每一個(gè)VHDL文件中,我們在entity結(jié)構(gòu)中定義部件的接口(端口接口),在architecture部分定義部件的功能.而模型機(jī)則由一個(gè)頂層模塊VHDL文件來定義,在頂層模塊中調(diào)用已定義好的八大部件模塊,并通過端口映射從而使這八大部件組合成一個(gè)模型機(jī).下面以累加器A為例介紹模型機(jī)部件的實(shí)現(xiàn).累加器A的實(shí)現(xiàn)如圖4所示:
圖4 累加器A的實(shí)現(xiàn)
我們在entity accumulator的port部分定義累加器的端口.clk為時(shí)鐘輸入信號線,en-D為累加器選擇線,ld為選擇從數(shù)據(jù)總線裝入累加器控制線,selAlu為ALU輸入累加器控制線,reset為復(fù)位線,aluD接ALU數(shù)據(jù)線,dbus接數(shù)據(jù)總線,q為輸出線.累加器A的功能則是由architecture部分來實(shí)現(xiàn)的.累加器主要功能是運(yùn)算器做運(yùn)算時(shí)為運(yùn)算器的一個(gè)輸入端和運(yùn)算器運(yùn)算完成以后用于保存運(yùn)算結(jié)果.由圖4可知它主要通過AluD、q與運(yùn)算器ALU連接起來.通過dBus與ram連接起來.
其它七大部件和頂層模型機(jī)的實(shí)現(xiàn)方法類似,在這里就不再詳述了.
QuartusII是Altera公司生產(chǎn)的專門針對他們公司生產(chǎn)的FPGA和CPLD的開發(fā)軟件.為了驗(yàn)證模型機(jī)的功能,我們用模型機(jī)的指令系統(tǒng)編寫了一段計(jì)算10H+08H和的簡單程序.程序如表2所示,然后在Quartus II中對模型機(jī)進(jìn)行仿真.仿真結(jié)果如圖5所示
表2 計(jì)算10H+08H的模型機(jī)器程序
圖5 8位模型機(jī)仿真結(jié)果圖
從圖5可以看出,把程序輸入到存儲(chǔ)單元以后,從clk輸入時(shí)鐘信號,同時(shí)從reset輸入復(fù)位信息以后,模型機(jī)首先執(zhí)行07號存儲(chǔ)單元的指令,然后依次執(zhí)行08號、09號存儲(chǔ)單元的指令,最后執(zhí)行0A號存儲(chǔ)單元停機(jī)指令并停機(jī).
本文介紹了8位模型計(jì)算機(jī)的設(shè)計(jì)與VHDL的實(shí)現(xiàn).采用了參數(shù)化和層次化的設(shè)計(jì)方法,使得設(shè)計(jì)易于修改,能夠讓學(xué)生通過修改與擴(kuò)展指令系統(tǒng)的指令而參與設(shè)計(jì)、從設(shè)計(jì)的角度深入理解計(jì)算機(jī)的內(nèi)部結(jié)構(gòu)和工作原理,適合現(xiàn)代教學(xué)原則.通過近二年教學(xué)實(shí)踐,學(xué)生反映通過調(diào)試8位模型機(jī)后,覺得計(jì)算機(jī)組成原理整機(jī)實(shí)驗(yàn)不再抽象難懂了.當(dāng)然8位模型機(jī)還有許多不完善的地方,如模型機(jī)指令數(shù)偏少,不支持流水線工作方式等,我們將在下一個(gè)版本中克服這些弱點(diǎn).
[1]陳華光.計(jì)算機(jī)組成原理(第2版)[M].北京:機(jī)械工業(yè)出版社,2004.
[2]D.A.Patterson and J.L.Hennessy.Computer organization and design:the hardware/software in terface[M].New York:Morgan Kaufmann Pub,2006.
[3]張宇華,周 瑩.計(jì)算機(jī)組成原理綜合性、設(shè)計(jì)性實(shí)驗(yàn)的開發(fā)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2004,(9):98-100.
The Design and Realization for 8-bit Model Computer
TAN Xiao-lan,CHEN Duo,CHEN Hua-guang
(College of Computer and Communication,Hunan Institute of Engineering,Xiangtan 411101,China)
In order to assist students with understanding the experiment content of complete computer in computer organization and architecture class,an 8-bit model computer is designed and realized with VHDL.It has the characteristics of modularization,opening and practicality.Students can debug the model computer and observe the information flow in the instruction process through Quartus II,which can assist students to understand the operational principle of computer.Students feel that the experiment of complete computer in computer organization and architecture is no longer difficult to understand after debugging the model computer.
model computer;design and realization;VHDL
TP303
A
1671-119X(2011)01-0071-03
2010-06-10
譚小蘭(1973-),女,實(shí)驗(yàn)師,研究方向:計(jì)算機(jī)網(wǎng)絡(luò).