




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
“計算機組成原理”是信息安全專業(yè)學生接觸到的第一門硬件專業(yè)基礎課程,向學生綜合展示計算機系統(tǒng)的基本結構和工作原理,為后續(xù)的專業(yè)課程學習做好準備,CPU原理和設計是這門課程的核心[1]。以CPU為核心的各類芯片也是構建信息產(chǎn)業(yè)的核心基礎,是影響“自主可控”國家信息產(chǎn)業(yè)戰(zhàn)略實施的關鍵,對信息安全專業(yè)的學生尤為重要[2]。目前高校開設“計算機組成原理”實驗課的主要方式如下[3-6]:(1)使用純硬件搭建實驗平臺,雖然該方式可深入接觸計算機硬件模塊,但實驗操作機械死板,硬件平臺開發(fā)成本較高;(2)采用軟件系統(tǒng)仿真的方式,該方法不依賴硬件,成本較低、易于上手,但學生不能在實驗過程中較好體會到計算機與硬件的緊密結合;(3)基于FPGA的組成原理實驗平臺具有可編程、直觀、學生動手程度高等優(yōu)點,然而存在對學生的軟硬件預備知識要求高、設備調(diào)試復雜的缺點,難以在較短的實驗課時內(nèi)完成。武漢大學信息安全專業(yè)曾開展過基于FPGA的開放式CPU教學實踐,學生普遍反映課程難度高。由于學生初次涉足CPU結構,對計算機原理尚處于初步認識和理解階段,CPU設計實踐只是初試身手,要求過高容易使部分學生在遇到問題時無法解決,產(chǎn)生迷茫和挫敗感,導致學生對硬件課程失去興趣,這更為短時間內(nèi)(例如24課時)完成實驗任務提出了巨大的挑戰(zhàn)。CPU設計過于專業(yè),相關書籍晦澀難懂,相關設計工具不易上手。面對復雜系統(tǒng)、陡峭的學習曲線,教育經(jīng)驗表明模仿是最佳的學習方法。筆者所在的教學團隊對“計算機設計實踐”課程進行了教學改革,為學生提供了一個極簡功能的MIPS單周期CPU示例SCCPU0。SCCPU0支持少量指令,僅能完成非常簡單的處理。學生無需對SCCPU0做任何修改或代碼補充即可較快上手,這與提倡“從零”開始設計CPU不同。學生通過SCCPU0掌握實驗環(huán)境的使用,初步了解CPU設計的全流程,理解CPU實現(xiàn)框架,學習VerilogHDL代碼風格和編寫規(guī)范。SCCPU0是實驗的起點,后續(xù)任務是對SCCPU0進行迭代擴展,使CPU功能更加完善和復雜。精心的課程設計和任務分解可引導學生在比較有限的課時內(nèi)在FPGA上完成驗證CPU的目標。教學團隊還設計了用戶友好的仿真驗證平臺和SOC驗證平臺,統(tǒng)一的驗證平臺既方便了學生調(diào)試和驗證CPU,也為教師現(xiàn)場驗收實驗提供了便利。教學改革成效證明多種課程改革措施有效地平緩了“計算機設計實踐”課程陡峭的學習曲線,激發(fā)了學生學習硬件課程的興趣和潛力。一、以CPU設計為核心的“計算機設計實踐”課程(一)實驗目的“計算機設計實踐”課程的目的是融會貫通“計算機組成原理”課程所教授的知識,通過對知識的綜合應用,加深對CPU系統(tǒng)各模塊的工作原理及相互聯(lián)系的認識;學習采用EDA(electronicdesignautomation)技術設計MIPS單周期CPU、多周期CPU和流水線CPU的技術與方法;培養(yǎng)科學研究的獨立工作能力,取得CPU設計與仿真的實踐和經(jīng)驗;了解SOC系統(tǒng),并在FPGA開發(fā)板上實現(xiàn)簡單的SOC系統(tǒng)。(二)實驗目標使用VerilogHDL設計實現(xiàn)支持指定MIPS指令子集的單周期、多周期和流水線CPU,并在CPU上運行某任務程序(例如學號數(shù)位排序),在FPGA開發(fā)板上通過七段數(shù)碼管等外設顯示任務處理結果。(三)實驗環(huán)境實驗需要使用如下軟硬件。1.Nexys4-DDR數(shù)字電路開發(fā)板。Nexys4-DDR采用了XilinxArtix-7FPGA芯片,它是一款簡單易用的數(shù)字電路開發(fā)平臺,可以支持在課堂環(huán)境中設計一些行業(yè)應用。2.MARS。MARS是一個輕量級的、用于教學的MIPS匯編語言集成開發(fā)環(huán)境(IDE)。本課程使用MARS進行MIPS匯編語言的學習、編寫和運行。3.ModelSim。Mentor公司的ModelSim是業(yè)界最優(yōu)秀的HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。4.Vivado。該設計套件是Xilinx公司最新為其產(chǎn)品定制的集成開發(fā)環(huán)境,可以完成從設計輸入、綜合適配、仿真到下載的完整FPGA設計流程。(四)實驗任務分解本課程的實驗環(huán)境包括多種功能繁雜、使用較復雜的工業(yè)級軟件和硬件,實驗目標CPU設計本身就具有較高的挑戰(zhàn)性,這兩大困難是學習曲線陡峭的主要原因。我們通過精心的課程設計和任務分解引導學生在比較有限的課時內(nèi)在FPGA上完成驗證CPU的目標。實驗被分解為任務1—6,其中任務1—4是必做任務,任務5—6是選做任務。為了幫助學生在較短的時間內(nèi)清晰理解實驗環(huán)境各組成部分的作用并熟練掌握其使用方法,建立對以VerilogVDL實現(xiàn)的CPU框架的基本認知,筆者所在的教學團隊為學生提供了一個極簡功能的MIPS單周期CPU示例SCCPU0。SCCPU0實現(xiàn)了add、sub、and、slt、or、addi、ori、lw、sw、beq、j共11條指令,支持少量算術邏輯運算、存儲器讀寫、條件轉移和無條件跳轉,僅能完成非常簡單的處理。SCCPU0是任務1的操作學習對象。SCCPU0在平緩學生學習曲線方面有以下作用:(1)使用SCCPU0進行仿真、綜合和下載,初步了解CPU設計的全流程,掌握實驗環(huán)境的使用;(2)理解CPU實現(xiàn)框架,把CPU原理與具體實現(xiàn)建立連接;(3)將SCCPU0的源碼作為Verilog代碼的示范,快速理解各種語法規(guī)則和編碼規(guī)范。與以往的教學方法不同,SCCPU0“麻雀雖小,五臟俱全”,學生無需對SCCPU0做任何修改或代碼補充即可較快上手。即使在課程初期給學生安排簡單的設計型任務,學生也有可能由于對實驗環(huán)境熟悉、操作失誤導致無法及時完成任務,從而失去繼續(xù)學習的興趣和信心。SCCPU0是實驗的起點,后續(xù)任務是對SCCPU0進行迭代擴展,使CPU功能更加完善和復雜。為了幫助學生進一步理解CPU功能的擴展方法,任務2是在SCCPU0中添加對jal指令的支持形成單周處理器SCCPU1。教學團隊通過現(xiàn)場授課方式,逐步演示添加jal指令的過程,并講解如何對新擴展的指令進行測試。雖然任務2只包括少量的設計工作,但它已能清楚地展示指令擴展從什么地方入手,涉及哪些方面的修改以及測試方法。值得注意的是,擴展CPU后不僅需要驗證新增指令的功能是否正確,還需確認原有指令功能是否會因新增指令引入的bug而受到影響。任務1~2對學生沒有太多設計要求,但它們對降低課程初始的難度具有重要的作用。當CPU設計下載到FPGA開發(fā)板上運行結果正確時,微小的成功也會激發(fā)學生學習硬件的熱情,提高學習的積極性。任務1和任務2可消除復雜實驗環(huán)境對學生造成的困擾,也有利于學生更準確地理解實驗目標。任務3是對SCCPU1擴展指令sll、nor、sltu、lui、slti、bne、andi、srl、sllv、srlv、jr、jalr,形成單周期處理器SCCPU2,SCCPU2共支持24條指令,已經(jīng)可以完成相對復雜的算法,例如排序。任務3由學生完全獨立完成。由于已提供單周期CPU的設計框架,該任務的設計工作量中等。任務4是實現(xiàn)多周期處理器MCCPU,MCCPU實現(xiàn)的指令與SCCPU2相同。多周期CPU設計的難點是如何通過有限狀態(tài)機實現(xiàn)控制器,教學團隊會為該任務提供一個簡單的有限狀態(tài)機FSM代碼示例,其余部分由學生獨立完成。由于沒有提供多周期CPU的設計框架,該任務的設計工作量較高。任務5是實現(xiàn)五級流水線處理器PLCPU,MIPS五級流水線需要處理數(shù)據(jù)相關和冒險相關,實現(xiàn)比較復雜,該任務是可選任務,供學有余力的學生選做,設計工作量高。任務6是在SCCPU2、MCCPU或PLCPU上實現(xiàn)具有異常和中斷功能的處理器ECPU,該任務是可選任務,供學有余力的學生選做,設計工作量較高。二、以CPU設計為核心的實驗驗證平臺計算機設計實踐以CPU設計為核心,為了驗證CPU功能的正確性,需要搭建用戶友好的驗證平臺。CPU功能的驗證通過兩個步驟進行,首先使用ModelSim完成仿真驗證,再通過Vivado綜合、下載比特流文件至FPGA開發(fā)板完成SOC驗證。為了方便使用,搭建CPU驗證平臺需滿足:(1)仿真驗證平臺中的CPU模塊與SOC驗證平臺中的CPU模塊接口完全相同,即仿真驗證平臺測試通過的CPU可完全不做修改用于SOC驗證;(2)驗證平臺中的CPU模塊可指單周期CPU、多周期CPU和流水線CPU,因為它們的外部接口完全一致。(一)使用ModelSim搭建仿真驗證平臺Modelsim仿真驗證平臺包含了CPU模塊、指令存儲器im和數(shù)據(jù)存儲器dm。MIPS程序二進制文件固化在指令存儲器im中,當testbench提供時鐘激勵信號時,CPU從im中不斷取指令、執(zhí)行指令。需要指出的是,當驗證多周期CPU時,只需使用同時存放代碼和數(shù)據(jù)的存儲器mem。(二)使用Vivado搭建SOC驗證平臺SOC驗證框架中除了CPU、指令存儲器和數(shù)據(jù)存儲器以外,還包含時鐘分頻模塊、多數(shù)據(jù)通路模塊、總線譯碼模塊和七段數(shù)碼管接口模塊,以利用Nexys4-DDR上的IO部件實現(xiàn)數(shù)據(jù)輸入(開關輸入)和結果輸出(七段數(shù)碼管),這些模塊的源碼提供學生直接使用。指令存儲器可由Vivado的IP核生成。當比特流文件下載至FPGA后,CPU運行的結果只能通過開發(fā)板上的IO部件如七段數(shù)碼管顯示。SOC驗證平臺通過多數(shù)據(jù)通路模塊對開發(fā)板上的開關設置進行了配置,不同的開關設置可在七段數(shù)碼管上顯示不同的內(nèi)容。當CPU運行不正確時,開發(fā)者可將開關撥動到相應位置,從七段數(shù)碼管上觀察關注的內(nèi)容,協(xié)助代碼調(diào)試。需要說明的是,調(diào)試時將開關SW15置為1,CPU慢速運行(利用時鐘分頻得到的慢速時鐘提供給CPU),模擬指令單步執(zhí)行,方便觀察。(三)以學號數(shù)位排序為例以在CPU上運行學號數(shù)位排序為例說明CPU的功能驗證。每位學生使用各自學號的后8位作為待排序的數(shù)據(jù),學號的每一位采用BCD編碼,構成32位二進制數(shù)據(jù),MIPS程序對學號的各數(shù)位按升序排列,例如某學生的學號后8位為“54873530”,排序后應為“03345578”,排序前后的數(shù)值能夠通過開關控制在七段數(shù)碼管上顯示。由于每位學生的學號不同,待排序的數(shù)據(jù)不同。差異化的任務對減少學生抄襲作弊有一定的作用,也方便教學團隊進行驗收。三、課程改革成效筆者所在的武漢大學國家網(wǎng)絡安全學院自2018年以來推行計算機實踐設計改革,取得了顯著成效。調(diào)查表明,在改革前,學生平均累計花費12小時才能比較熟練地掌握實驗環(huán)境使用和擴展指令的方法,學習曲線陡峭;在改革后,學生平均累計花費4小時即可達到同等效果,實驗完成度也明顯提高。改革鞏固了學生的理論知識,使學生對所學知識融會貫通,取得了較好的教學成果。越來越多學有余力的學生選做具有異常和中斷功能的流水線CPU,提升了學生學習硬件課程的興趣,提高了硬件設計水平。教學團隊近4年的評教成績位于學院前列,常有學生在評教系統(tǒng)中留言表明“終于真正理解CPU了”“這是到目前為止(大學二年級)收獲最大的課程”。結語“計算機設計實踐”課程改革幫助學生克服了害怕甚至反感硬件課程的情緒,極大地調(diào)動了學生的學習積極性,取得了較好的教學效果,使學生更加深刻地理解了MIPS單周期CPU、多周期CPU、流水線CPU的設計方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深圳護師考試試題及答案
- 基礎拼音試題及答案
- 門窗培訓考試題及答案
- 中醫(yī)臨床三基(醫(yī)技)臨床基礎知識考試題庫 (含答案)
- 樹洞秘密課件
- 數(shù)字化物流商業(yè)運營 習題答案-模塊2
- 2025年夾具廠家供貨合同范文大全
- 2025年材料員網(wǎng)絡培訓考試題庫及答案
- 北京安全應急知識培訓中心課件
- 北京醫(yī)院看病知識培訓班課件
- 2025四川綿陽市建設工程質量檢測中心有限責任公司市場部業(yè)務拓展員崗招聘1人筆試備考試題及答案解析
- 廣東省東莞市2024-2025學年七年級下學期期末語文試題(含答案)
- 項目成本預算管理制度
- 2025年成都教師招聘考試教育公共基礎知識真題及答案
- 中學語文教學資源開發(fā)與利用指南
- 《幼兒園工作規(guī)程》知識測試卷(含答案)
- 2025年材料管理崗位考試題庫
- 年級主任職責詳解及管理要點
- 儲能項目投資測算方案
- 2025至2030中國乙烯醋酸乙烯酯(EVA)樹脂行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 【25秋】統(tǒng)編版小學語文二年級上冊-《第八單元大單元設計》課件
評論
0/150
提交評論