費 翔 高天迎 張運杰
(天津城建大學(xué) 計算機與信息工程學(xué)院,天津 300384)
計算機組成原理(后面簡稱“組成”)是計算機方向一門重要的專業(yè)基礎(chǔ)課[3],內(nèi)容偏向原理,為了深化學(xué)生的理解,必須在實踐環(huán)節(jié)配合具體、形象的教學(xué)內(nèi)容。但是由于計算機結(jié)構(gòu)的高度復(fù)雜性,很難選取合適的具體元件來進行實踐教學(xué),而FPGA 技術(shù)既可以進行波形仿真以便學(xué)生分析實驗原理,又能夠?qū)崿F(xiàn)開發(fā)板驗證,直觀的展示現(xiàn)象,極大地滿足了教學(xué)需求。我校計算機專業(yè)在第三學(xué)期會進行分方向培養(yǎng),其中的嵌入式方向與物聯(lián)網(wǎng)方向以ARM 處理器為學(xué)習(xí)對象。“組成”課程實驗包括馮諾依曼結(jié)構(gòu)定義的計算機五部分,并逐步構(gòu)建出RISC型模型機以銜接后續(xù)方向課。而且,前期的數(shù)字邏輯設(shè)計課程(后面簡稱“數(shù)電”)也根據(jù)計算機專業(yè)的特點[4],在課程內(nèi)容上做出了革新,進而形成“數(shù)電——組成——ARM”相互連接的知識鏈。
模型機以RISC,4 位數(shù)據(jù)/地址寬度,哈佛存儲結(jié)構(gòu),定長度(12bits)、定周期(8 節(jié)拍)指令為總體思路。按實驗內(nèi)容的漸進順序,總體框圖如圖1 所示。
圖1 總體結(jié)構(gòu)框圖
“組成”實驗采用Altera 的EP4CE6 芯片,其具有10320 個邏輯單元。因此該型號芯片可以適應(yīng)各類數(shù)字信號系統(tǒng)的設(shè)計,同時擁有較靈活的時序設(shè)計資源[5]。實驗開發(fā)環(huán)境采用官方的Quartus II 13.0。
課程實驗總體思路,包括以下幾點:
2.2.1 實驗項目串接知識鏈
這里的知識鏈,既包含課程內(nèi)容的漸進順序,也包括不同課程之間的銜接[6-8]。比如,在前期“數(shù)電”中,組合邏輯部分突出全加器及加減電路的講解,并且設(shè)計“一位全加器實驗”、“加減電路實驗”,然后在其課設(shè)中包含“ALU 系統(tǒng)設(shè)計”題目,傳導(dǎo)ALU是CPU 運算器的核心部件[9]的思想。時序邏輯部分突出D 觸發(fā)器與地址譯碼器的結(jié)合應(yīng)用,設(shè)計“寄存器實驗”、“地址譯碼器實驗”,然后在其課設(shè)中包含“存儲體設(shè)計”題目。
這樣在進入“組成”后,學(xué)生已經(jīng)積累了ALU、存儲體等知識。然后,課程教學(xué)上引入運算器內(nèi)部緩存概念,利用CPU 內(nèi)總線,將存儲體變形為寄存器堆,與ALU 構(gòu)建完整的運算器。同樣,儲存系統(tǒng)環(huán)節(jié)突出存儲器擴展原理的講解,利用存儲體和譯碼器進行存儲器長度擴展[10]。
2.2.2 針對計算機的專業(yè)特點靈活使用FPGA
FPGA 的靈活性,很大原因是因為可以采用可編程邏輯語言如:VHDL、Verilog 等進行代碼開發(fā)。雖然,計算機專業(yè)的基本功就是編程能力,但是可編程邏輯語言的學(xué)習(xí)卻不是本專業(yè)的重點。本專業(yè)學(xué)習(xí)更看重邏輯關(guān)系轉(zhuǎn)化為功能電路的過程。
因此,前期基礎(chǔ)電路實驗,比如:全加器、D 觸發(fā)器等,是要求學(xué)生以繪制電路原理圖的形式完成的。然后,利用Quartus II的代碼轉(zhuǎn)換功能,生成Verilog 源碼,接著對這種語言特性進行學(xué)習(xí)和理解。后面的綜合電路實驗,則是利用基礎(chǔ)電路構(gòu)建的IP 核,進行原理圖綜合設(shè)計,這樣更加直觀的體現(xiàn)“組成”的完整過程。
實驗?zāi)P蜋C包括:數(shù)據(jù)通路模塊,取指通路模塊和控制模塊三個部分[11]。
數(shù)據(jù)通路是運算器與數(shù)據(jù)存儲器通過數(shù)據(jù)總線和地址總線[12]進行連接而成,闡述一次計算機運算的完成過程的子模型。它的結(jié)構(gòu)及各級結(jié)點說明如圖2、表1 所示。
表1 數(shù)據(jù)通路控制信號說明表
圖2 數(shù)據(jù)通路模塊
取指部件的主要功能是根據(jù)指令地址從指令存儲器中取出指令[13-15],包括程序計數(shù)器PC、指令存儲器和指令寄存器IR,闡述程序指令序列讀取過程。它的結(jié)構(gòu)及各級結(jié)點說明如圖3、表2 所示。
圖3 取指通路模塊
表2 控制器取指通路控制信號說明表
控制模塊包含時序系統(tǒng)和控制單元。所有指令采用定周期設(shè)計,包含2 個機器周期(4 節(jié)拍每周期)共計8 個節(jié)拍。控制單元使用Verilog 編寫,依據(jù)組合邏輯指令譯碼思想,對IR 中操作碼、地址碼等展開解析[16]。它的結(jié)構(gòu)如圖4 所示。
圖4 控制模塊
通過引入FPGA 技術(shù),設(shè)計一個RISC 模型機,形象具體的實踐模式增強了學(xué)生對“組成”理論的理解。同時,該模型機也提供向后擴展的接口,在實驗階段后的課程設(shè)計環(huán)節(jié)學(xué)生可以在這個模型基礎(chǔ)上進行自主設(shè)計,完成諸如“堆棧程序設(shè)計”、“中斷系統(tǒng)設(shè)計”、“外圍接口系統(tǒng)設(shè)計”等內(nèi)容。