譚小蘭 ,陳 多,陳華光
(湖南工程學院計算機與通信學院,湘潭 411101)
8位模型機的設計與實現
譚小蘭 ,陳 多,陳華光
(湖南工程學院計算機與通信學院,湘潭 411101)
為了幫助學生理解計算機組成原理整機實驗教學內容,我們設計了一種8位模型機,并用VHDL實現它.它具有模塊化、開放性和經濟實用的特點,學生通過使用QuartusII可以調試模型機并觀察模型機內部信息流動的過程,從而便于學生理解計算機的工作原理.學生反映通過調試模型機后,覺得計算機組成原理整機實驗不再抽象難懂.
模型機;設計與實現;VHDL
計算機組成原理是計算機科學專業(yè)的一門重要的專業(yè)基礎課,內容包括計算機部件和整機的組成與工作原理.由于課程的專業(yè)性很強、概念繁雜抽象,計算機組成原理實驗的難度很大,特別在整機實驗教學中,學生很難理解教學內容.因此為了幫助學生理解計算機整機的工作原理,我們設計了一種8位模型機,讓學生從設計角度來理解計算機的結構與工作原理.
8位模型機主要由運算器ALU、控制器、地址寄存器AR、數據寄存器DR、指令寄存器IR、存儲器RAM、程序計數器PC和累加器A八大部件組成,這八大部件是通過總線連結起來的,它們的邏輯結構和數據通路如圖1所示.控制器是整個模型機的中心,由它來控制計算機指令的執(zhí)行.模型機執(zhí)行指令的具體過程為:首先控制器從指令寄存器取得指令,編譯指令,再輸出微控制信號,控制ALU的運算,PC加1,并且從RAM 中取出數據運算,運算后再把結果通過數據總線存到RAM,再從指令寄存器讀取下一條指令,依次循環(huán).
圖1 8位模型機的邏輯結構與數據通路
指令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結構,而且直接影響到系統(tǒng)軟件,影響到機器的適用范圍.為了便于教學,使學生易于理解其工作原理,模型機采用了8位字長指令,每條指令的低4位用于保存立即數或存儲單元等操作數,高4位用于保存指令操作碼,模型機的指令格式如圖2所示.模型機指令系統(tǒng)包括數據傳送類指令、算術邏輯運算類指令、轉移類指令、停機指令4類指令,共10條指令.每條指令的助記符、指令格式、機器碼和指令功能如表1所示.
圖2 8位模型機的指令格式
尋址方式就是尋找操作數或操作數地址的方式,它也是影響計算機性能的一個重要因素.由文獻[2]可知直接尋址和立即尋址在現代程序中占絕對多數,是現代RICS計算機倡導的主要尋址方式.而且,這兩種方式的指令執(zhí)行流程比較簡單,可以簡化模型機的設計與實現.同時,學生掌握了這兩種尋址方式后,要掌握其它類型的尋址方式(間接尋址等)就比較容易了.又由于我們設計模型機的主要目的是為了使學生掌握計算機的工作原理及指令在計算機中執(zhí)行的流程,而不是真正要實現一臺計算機產品,所以我們只在模型機中實現這兩種尋址方式.
表1 8位模型機的指令系統(tǒng)
設計好了模型機的邏輯結構、數據通路和指令系統(tǒng)后,我們就可以對指令系統(tǒng)中每一條指令的執(zhí)行流程進行設計了.我們由文獻[2]可知,計算機每條指令的執(zhí)行過程可以分為取指令、指令譯碼、取操作數和執(zhí)行指令四個階段.在每個階段控制器會調用不同部件來完成每個階段的功能,如取指令階段的主要功能是把要運行的指令從存儲器中取到譯碼器中,在這一個過程中主要用到了程序計數器PC、地址寄存器AR、數據寄存器DR、存儲器RAM 和指令寄存器IR等部件.指令譯碼階段則主要是對所要執(zhí)行的指令進行譯碼以產生相應指令的控制信號,主要用到了指令寄存器IR和控制器.取操作數階段則是把指令運算的操作數取到運算器中,主要用到了地址寄存器AR、數據寄存器DR和存儲器RAM等,執(zhí)行指令階段則執(zhí)行指令所規(guī)定的功能,如算術運算、轉移或停機等功能.根據前面的設計好的數據通路和指令系統(tǒng),我們設計了模型機的指令執(zhí)行流程如圖3所示.
圖3 8位模型機的指令執(zhí)行流程
VHDL是一種被美國國防部和IEEE確定為標準的硬件描述語言,它支持模塊化設計,在基于FPGA和ASIC的數位系統(tǒng)設計中有著廣泛的應用.為了實現模型機,我們把圖1中的每一個部件用一個VHDL文件來實現它.在每一個VHDL文件中,我們在entity結構中定義部件的接口(端口接口),在architecture部分定義部件的功能.而模型機則由一個頂層模塊VHDL文件來定義,在頂層模塊中調用已定義好的八大部件模塊,并通過端口映射從而使這八大部件組合成一個模型機.下面以累加器A為例介紹模型機部件的實現.累加器A的實現如圖4所示:
圖4 累加器A的實現
我們在entity accumulator的port部分定義累加器的端口.clk為時鐘輸入信號線,en-D為累加器選擇線,ld為選擇從數據總線裝入累加器控制線,selAlu為ALU輸入累加器控制線,reset為復位線,aluD接ALU數據線,dbus接數據總線,q為輸出線.累加器A的功能則是由architecture部分來實現的.累加器主要功能是運算器做運算時為運算器的一個輸入端和運算器運算完成以后用于保存運算結果.由圖4可知它主要通過AluD、q與運算器ALU連接起來.通過dBus與ram連接起來.
其它七大部件和頂層模型機的實現方法類似,在這里就不再詳述了.
QuartusII是Altera公司生產的專門針對他們公司生產的FPGA和CPLD的開發(fā)軟件.為了驗證模型機的功能,我們用模型機的指令系統(tǒng)編寫了一段計算10H+08H和的簡單程序.程序如表2所示,然后在Quartus II中對模型機進行仿真.仿真結果如圖5所示
表2 計算10H+08H的模型機器程序
圖5 8位模型機仿真結果圖
從圖5可以看出,把程序輸入到存儲單元以后,從clk輸入時鐘信號,同時從reset輸入復位信息以后,模型機首先執(zhí)行07號存儲單元的指令,然后依次執(zhí)行08號、09號存儲單元的指令,最后執(zhí)行0A號存儲單元停機指令并停機.
本文介紹了8位模型計算機的設計與VHDL的實現.采用了參數化和層次化的設計方法,使得設計易于修改,能夠讓學生通過修改與擴展指令系統(tǒng)的指令而參與設計、從設計的角度深入理解計算機的內部結構和工作原理,適合現代教學原則.通過近二年教學實踐,學生反映通過調試8位模型機后,覺得計算機組成原理整機實驗不再抽象難懂了.當然8位模型機還有許多不完善的地方,如模型機指令數偏少,不支持流水線工作方式等,我們將在下一個版本中克服這些弱點.
[1]陳華光.計算機組成原理(第2版)[M].北京:機械工業(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]張宇華,周 瑩.計算機組成原理綜合性、設計性實驗的開發(fā)與實現[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-),女,實驗師,研究方向:計算機網絡.