平緩學(xué)習(xí)曲線的“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程改革探索_第1頁(yè)
平緩學(xué)習(xí)曲線的“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程改革探索_第2頁(yè)
平緩學(xué)習(xí)曲線的“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程改革探索_第3頁(yè)
平緩學(xué)習(xí)曲線的“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程改革探索_第4頁(yè)
平緩學(xué)習(xí)曲線的“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程改革探索_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

“計(jì)算機(jī)組成原理”是信息安全專業(yè)學(xué)生接觸到的第一門(mén)硬件專業(yè)基礎(chǔ)課程,向?qū)W生綜合展示計(jì)算機(jī)系統(tǒng)的基本結(jié)構(gòu)和工作原理,為后續(xù)的專業(yè)課程學(xué)習(xí)做好準(zhǔn)備,CPU原理和設(shè)計(jì)是這門(mén)課程的核心[1]。以CPU為核心的各類芯片也是構(gòu)建信息產(chǎn)業(yè)的核心基礎(chǔ),是影響“自主可控”國(guó)家信息產(chǎn)業(yè)戰(zhàn)略實(shí)施的關(guān)鍵,對(duì)信息安全專業(yè)的學(xué)生尤為重要[2]。目前高校開(kāi)設(shè)“計(jì)算機(jī)組成原理”實(shí)驗(yàn)課的主要方式如下[3-6]:(1)使用純硬件搭建實(shí)驗(yàn)平臺(tái),雖然該方式可深入接觸計(jì)算機(jī)硬件模塊,但實(shí)驗(yàn)操作機(jī)械死板,硬件平臺(tái)開(kāi)發(fā)成本較高;(2)采用軟件系統(tǒng)仿真的方式,該方法不依賴硬件,成本較低、易于上手,但學(xué)生不能在實(shí)驗(yàn)過(guò)程中較好體會(huì)到計(jì)算機(jī)與硬件的緊密結(jié)合;(3)基于FPGA的組成原理實(shí)驗(yàn)平臺(tái)具有可編程、直觀、學(xué)生動(dòng)手程度高等優(yōu)點(diǎn),然而存在對(duì)學(xué)生的軟硬件預(yù)備知識(shí)要求高、設(shè)備調(diào)試復(fù)雜的缺點(diǎn),難以在較短的實(shí)驗(yàn)課時(shí)內(nèi)完成。武漢大學(xué)信息安全專業(yè)曾開(kāi)展過(guò)基于FPGA的開(kāi)放式CPU教學(xué)實(shí)踐,學(xué)生普遍反映課程難度高。由于學(xué)生初次涉足CPU結(jié)構(gòu),對(duì)計(jì)算機(jī)原理尚處于初步認(rèn)識(shí)和理解階段,CPU設(shè)計(jì)實(shí)踐只是初試身手,要求過(guò)高容易使部分學(xué)生在遇到問(wèn)題時(shí)無(wú)法解決,產(chǎn)生迷茫和挫敗感,導(dǎo)致學(xué)生對(duì)硬件課程失去興趣,這更為短時(shí)間內(nèi)(例如24課時(shí))完成實(shí)驗(yàn)任務(wù)提出了巨大的挑戰(zhàn)。CPU設(shè)計(jì)過(guò)于專業(yè),相關(guān)書(shū)籍晦澀難懂,相關(guān)設(shè)計(jì)工具不易上手。面對(duì)復(fù)雜系統(tǒng)、陡峭的學(xué)習(xí)曲線,教育經(jīng)驗(yàn)表明模仿是最佳的學(xué)習(xí)方法。筆者所在的教學(xué)團(tuán)隊(duì)對(duì)“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程進(jìn)行了教學(xué)改革,為學(xué)生提供了一個(gè)極簡(jiǎn)功能的MIPS單周期CPU示例SCCPU0。SCCPU0支持少量指令,僅能完成非常簡(jiǎn)單的處理。學(xué)生無(wú)需對(duì)SCCPU0做任何修改或代碼補(bǔ)充即可較快上手,這與提倡“從零”開(kāi)始設(shè)計(jì)CPU不同。學(xué)生通過(guò)SCCPU0掌握實(shí)驗(yàn)環(huán)境的使用,初步了解CPU設(shè)計(jì)的全流程,理解CPU實(shí)現(xiàn)框架,學(xué)習(xí)VerilogHDL代碼風(fēng)格和編寫(xiě)規(guī)范。SCCPU0是實(shí)驗(yàn)的起點(diǎn),后續(xù)任務(wù)是對(duì)SCCPU0進(jìn)行迭代擴(kuò)展,使CPU功能更加完善和復(fù)雜。精心的課程設(shè)計(jì)和任務(wù)分解可引導(dǎo)學(xué)生在比較有限的課時(shí)內(nèi)在FPGA上完成驗(yàn)證CPU的目標(biāo)。教學(xué)團(tuán)隊(duì)還設(shè)計(jì)了用戶友好的仿真驗(yàn)證平臺(tái)和SOC驗(yàn)證平臺(tái),統(tǒng)一的驗(yàn)證平臺(tái)既方便了學(xué)生調(diào)試和驗(yàn)證CPU,也為教師現(xiàn)場(chǎng)驗(yàn)收實(shí)驗(yàn)提供了便利。教學(xué)改革成效證明多種課程改革措施有效地平緩了“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程陡峭的學(xué)習(xí)曲線,激發(fā)了學(xué)生學(xué)習(xí)硬件課程的興趣和潛力。一、以CPU設(shè)計(jì)為核心的“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程(一)實(shí)驗(yàn)?zāi)康摹坝?jì)算機(jī)設(shè)計(jì)實(shí)踐”課程的目的是融會(huì)貫通“計(jì)算機(jī)組成原理”課程所教授的知識(shí),通過(guò)對(duì)知識(shí)的綜合應(yīng)用,加深對(duì)CPU系統(tǒng)各模塊的工作原理及相互聯(lián)系的認(rèn)識(shí);學(xué)習(xí)采用EDA(electronicdesignautomation)技術(shù)設(shè)計(jì)MIPS單周期CPU、多周期CPU和流水線CPU的技術(shù)與方法;培養(yǎng)科學(xué)研究的獨(dú)立工作能力,取得CPU設(shè)計(jì)與仿真的實(shí)踐和經(jīng)驗(yàn);了解SOC系統(tǒng),并在FPGA開(kāi)發(fā)板上實(shí)現(xiàn)簡(jiǎn)單的SOC系統(tǒng)。(二)實(shí)驗(yàn)?zāi)繕?biāo)使用VerilogHDL設(shè)計(jì)實(shí)現(xiàn)支持指定MIPS指令子集的單周期、多周期和流水線CPU,并在CPU上運(yùn)行某任務(wù)程序(例如學(xué)號(hào)數(shù)位排序),在FPGA開(kāi)發(fā)板上通過(guò)七段數(shù)碼管等外設(shè)顯示任務(wù)處理結(jié)果。(三)實(shí)驗(yàn)環(huán)境實(shí)驗(yàn)需要使用如下軟硬件。1.Nexys4-DDR數(shù)字電路開(kāi)發(fā)板。Nexys4-DDR采用了XilinxArtix-7FPGA芯片,它是一款簡(jiǎn)單易用的數(shù)字電路開(kāi)發(fā)平臺(tái),可以支持在課堂環(huán)境中設(shè)計(jì)一些行業(yè)應(yīng)用。2.MARS。MARS是一個(gè)輕量級(jí)的、用于教學(xué)的MIPS匯編語(yǔ)言集成開(kāi)發(fā)環(huán)境(IDE)。本課程使用MARS進(jìn)行MIPS匯編語(yǔ)言的學(xué)習(xí)、編寫(xiě)和運(yùn)行。3.ModelSim。Mentor公司的ModelSim是業(yè)界最優(yōu)秀的HDL語(yǔ)言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。4.Vivado。該設(shè)計(jì)套件是Xilinx公司最新為其產(chǎn)品定制的集成開(kāi)發(fā)環(huán)境,可以完成從設(shè)計(jì)輸入、綜合適配、仿真到下載的完整FPGA設(shè)計(jì)流程。(四)實(shí)驗(yàn)任務(wù)分解本課程的實(shí)驗(yàn)環(huán)境包括多種功能繁雜、使用較復(fù)雜的工業(yè)級(jí)軟件和硬件,實(shí)驗(yàn)?zāi)繕?biāo)CPU設(shè)計(jì)本身就具有較高的挑戰(zhàn)性,這兩大困難是學(xué)習(xí)曲線陡峭的主要原因。我們通過(guò)精心的課程設(shè)計(jì)和任務(wù)分解引導(dǎo)學(xué)生在比較有限的課時(shí)內(nèi)在FPGA上完成驗(yàn)證CPU的目標(biāo)。實(shí)驗(yàn)被分解為任務(wù)1—6,其中任務(wù)1—4是必做任務(wù),任務(wù)5—6是選做任務(wù)。為了幫助學(xué)生在較短的時(shí)間內(nèi)清晰理解實(shí)驗(yàn)環(huán)境各組成部分的作用并熟練掌握其使用方法,建立對(duì)以VerilogVDL實(shí)現(xiàn)的CPU框架的基本認(rèn)知,筆者所在的教學(xué)團(tuán)隊(duì)為學(xué)生提供了一個(gè)極簡(jiǎn)功能的MIPS單周期CPU示例SCCPU0。SCCPU0實(shí)現(xiàn)了add、sub、and、slt、or、addi、ori、lw、sw、beq、j共11條指令,支持少量算術(shù)邏輯運(yùn)算、存儲(chǔ)器讀寫(xiě)、條件轉(zhuǎn)移和無(wú)條件跳轉(zhuǎn),僅能完成非常簡(jiǎn)單的處理。SCCPU0是任務(wù)1的操作學(xué)習(xí)對(duì)象。SCCPU0在平緩學(xué)生學(xué)習(xí)曲線方面有以下作用:(1)使用SCCPU0進(jìn)行仿真、綜合和下載,初步了解CPU設(shè)計(jì)的全流程,掌握實(shí)驗(yàn)環(huán)境的使用;(2)理解CPU實(shí)現(xiàn)框架,把CPU原理與具體實(shí)現(xiàn)建立連接;(3)將SCCPU0的源碼作為Verilog代碼的示范,快速理解各種語(yǔ)法規(guī)則和編碼規(guī)范。與以往的教學(xué)方法不同,SCCPU0“麻雀雖小,五臟俱全”,學(xué)生無(wú)需對(duì)SCCPU0做任何修改或代碼補(bǔ)充即可較快上手。即使在課程初期給學(xué)生安排簡(jiǎn)單的設(shè)計(jì)型任務(wù),學(xué)生也有可能由于對(duì)實(shí)驗(yàn)環(huán)境熟悉、操作失誤導(dǎo)致無(wú)法及時(shí)完成任務(wù),從而失去繼續(xù)學(xué)習(xí)的興趣和信心。SCCPU0是實(shí)驗(yàn)的起點(diǎn),后續(xù)任務(wù)是對(duì)SCCPU0進(jìn)行迭代擴(kuò)展,使CPU功能更加完善和復(fù)雜。為了幫助學(xué)生進(jìn)一步理解CPU功能的擴(kuò)展方法,任務(wù)2是在SCCPU0中添加對(duì)jal指令的支持形成單周處理器SCCPU1。教學(xué)團(tuán)隊(duì)通過(guò)現(xiàn)場(chǎng)授課方式,逐步演示添加jal指令的過(guò)程,并講解如何對(duì)新擴(kuò)展的指令進(jìn)行測(cè)試。雖然任務(wù)2只包括少量的設(shè)計(jì)工作,但它已能清楚地展示指令擴(kuò)展從什么地方入手,涉及哪些方面的修改以及測(cè)試方法。值得注意的是,擴(kuò)展CPU后不僅需要驗(yàn)證新增指令的功能是否正確,還需確認(rèn)原有指令功能是否會(huì)因新增指令引入的bug而受到影響。任務(wù)1~2對(duì)學(xué)生沒(méi)有太多設(shè)計(jì)要求,但它們對(duì)降低課程初始的難度具有重要的作用。當(dāng)CPU設(shè)計(jì)下載到FPGA開(kāi)發(fā)板上運(yùn)行結(jié)果正確時(shí),微小的成功也會(huì)激發(fā)學(xué)生學(xué)習(xí)硬件的熱情,提高學(xué)習(xí)的積極性。任務(wù)1和任務(wù)2可消除復(fù)雜實(shí)驗(yàn)環(huán)境對(duì)學(xué)生造成的困擾,也有利于學(xué)生更準(zhǔn)確地理解實(shí)驗(yàn)?zāi)繕?biāo)。任務(wù)3是對(duì)SCCPU1擴(kuò)展指令sll、nor、sltu、lui、slti、bne、andi、srl、sllv、srlv、jr、jalr,形成單周期處理器SCCPU2,SCCPU2共支持24條指令,已經(jīng)可以完成相對(duì)復(fù)雜的算法,例如排序。任務(wù)3由學(xué)生完全獨(dú)立完成。由于已提供單周期CPU的設(shè)計(jì)框架,該任務(wù)的設(shè)計(jì)工作量中等。任務(wù)4是實(shí)現(xiàn)多周期處理器MCCPU,MCCPU實(shí)現(xiàn)的指令與SCCPU2相同。多周期CPU設(shè)計(jì)的難點(diǎn)是如何通過(guò)有限狀態(tài)機(jī)實(shí)現(xiàn)控制器,教學(xué)團(tuán)隊(duì)會(huì)為該任務(wù)提供一個(gè)簡(jiǎn)單的有限狀態(tài)機(jī)FSM代碼示例,其余部分由學(xué)生獨(dú)立完成。由于沒(méi)有提供多周期CPU的設(shè)計(jì)框架,該任務(wù)的設(shè)計(jì)工作量較高。任務(wù)5是實(shí)現(xiàn)五級(jí)流水線處理器PLCPU,MIPS五級(jí)流水線需要處理數(shù)據(jù)相關(guān)和冒險(xiǎn)相關(guān),實(shí)現(xiàn)比較復(fù)雜,該任務(wù)是可選任務(wù),供學(xué)有余力的學(xué)生選做,設(shè)計(jì)工作量高。任務(wù)6是在SCCPU2、MCCPU或PLCPU上實(shí)現(xiàn)具有異常和中斷功能的處理器ECPU,該任務(wù)是可選任務(wù),供學(xué)有余力的學(xué)生選做,設(shè)計(jì)工作量較高。二、以CPU設(shè)計(jì)為核心的實(shí)驗(yàn)驗(yàn)證平臺(tái)計(jì)算機(jī)設(shè)計(jì)實(shí)踐以CPU設(shè)計(jì)為核心,為了驗(yàn)證CPU功能的正確性,需要搭建用戶友好的驗(yàn)證平臺(tái)。CPU功能的驗(yàn)證通過(guò)兩個(gè)步驟進(jìn)行,首先使用ModelSim完成仿真驗(yàn)證,再通過(guò)Vivado綜合、下載比特流文件至FPGA開(kāi)發(fā)板完成SOC驗(yàn)證。為了方便使用,搭建CPU驗(yàn)證平臺(tái)需滿足:(1)仿真驗(yàn)證平臺(tái)中的CPU模塊與SOC驗(yàn)證平臺(tái)中的CPU模塊接口完全相同,即仿真驗(yàn)證平臺(tái)測(cè)試通過(guò)的CPU可完全不做修改用于SOC驗(yàn)證;(2)驗(yàn)證平臺(tái)中的CPU模塊可指單周期CPU、多周期CPU和流水線CPU,因?yàn)樗鼈兊耐獠拷涌谕耆恢?。(一)使用ModelSim搭建仿真驗(yàn)證平臺(tái)Modelsim仿真驗(yàn)證平臺(tái)包含了CPU模塊、指令存儲(chǔ)器im和數(shù)據(jù)存儲(chǔ)器dm。MIPS程序二進(jìn)制文件固化在指令存儲(chǔ)器im中,當(dāng)testbench提供時(shí)鐘激勵(lì)信號(hào)時(shí),CPU從im中不斷取指令、執(zhí)行指令。需要指出的是,當(dāng)驗(yàn)證多周期CPU時(shí),只需使用同時(shí)存放代碼和數(shù)據(jù)的存儲(chǔ)器mem。(二)使用Vivado搭建SOC驗(yàn)證平臺(tái)SOC驗(yàn)證框架中除了CPU、指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器以外,還包含時(shí)鐘分頻模塊、多數(shù)據(jù)通路模塊、總線譯碼模塊和七段數(shù)碼管接口模塊,以利用Nexys4-DDR上的IO部件實(shí)現(xiàn)數(shù)據(jù)輸入(開(kāi)關(guān)輸入)和結(jié)果輸出(七段數(shù)碼管),這些模塊的源碼提供學(xué)生直接使用。指令存儲(chǔ)器可由Vivado的IP核生成。當(dāng)比特流文件下載至FPGA后,CPU運(yùn)行的結(jié)果只能通過(guò)開(kāi)發(fā)板上的IO部件如七段數(shù)碼管顯示。SOC驗(yàn)證平臺(tái)通過(guò)多數(shù)據(jù)通路模塊對(duì)開(kāi)發(fā)板上的開(kāi)關(guān)設(shè)置進(jìn)行了配置,不同的開(kāi)關(guān)設(shè)置可在七段數(shù)碼管上顯示不同的內(nèi)容。當(dāng)CPU運(yùn)行不正確時(shí),開(kāi)發(fā)者可將開(kāi)關(guān)撥動(dòng)到相應(yīng)位置,從七段數(shù)碼管上觀察關(guān)注的內(nèi)容,協(xié)助代碼調(diào)試。需要說(shuō)明的是,調(diào)試時(shí)將開(kāi)關(guān)SW15置為1,CPU慢速運(yùn)行(利用時(shí)鐘分頻得到的慢速時(shí)鐘提供給CPU),模擬指令單步執(zhí)行,方便觀察。(三)以學(xué)號(hào)數(shù)位排序?yàn)槔栽贑PU上運(yùn)行學(xué)號(hào)數(shù)位排序?yàn)槔f(shuō)明CPU的功能驗(yàn)證。每位學(xué)生使用各自學(xué)號(hào)的后8位作為待排序的數(shù)據(jù),學(xué)號(hào)的每一位采用BCD編碼,構(gòu)成32位二進(jìn)制數(shù)據(jù),MIPS程序?qū)W(xué)號(hào)的各數(shù)位按升序排列,例如某學(xué)生的學(xué)號(hào)后8位為“54873530”,排序后應(yīng)為“03345578”,排序前后的數(shù)值能夠通過(guò)開(kāi)關(guān)控制在七段數(shù)碼管上顯示。由于每位學(xué)生的學(xué)號(hào)不同,待排序的數(shù)據(jù)不同。差異化的任務(wù)對(duì)減少學(xué)生抄襲作弊有一定的作用,也方便教學(xué)團(tuán)隊(duì)進(jìn)行驗(yàn)收。三、課程改革成效筆者所在的武漢大學(xué)國(guó)家網(wǎng)絡(luò)安全學(xué)院自2018年以來(lái)推行計(jì)算機(jī)實(shí)踐設(shè)計(jì)改革,取得了顯著成效。調(diào)查表明,在改革前,學(xué)生平均累計(jì)花費(fèi)12小時(shí)才能比較熟練地掌握實(shí)驗(yàn)環(huán)境使用和擴(kuò)展指令的方法,學(xué)習(xí)曲線陡峭;在改革后,學(xué)生平均累計(jì)花費(fèi)4小時(shí)即可達(dá)到同等效果,實(shí)驗(yàn)完成度也明顯提高。改革鞏固了學(xué)生的理論知識(shí),使學(xué)生對(duì)所學(xué)知識(shí)融會(huì)貫通,取得了較好的教學(xué)成果。越來(lái)越多學(xué)有余力的學(xué)生選做具有異常和中斷功能的流水線CPU,提升了學(xué)生學(xué)習(xí)硬件課程的興趣,提高了硬件設(shè)計(jì)水平。教學(xué)團(tuán)隊(duì)近4年的評(píng)教成績(jī)位于學(xué)院前列,常有學(xué)生在評(píng)教系統(tǒng)中留言表明“終于真正理解CPU了”“這是到目前為止(大學(xué)二年級(jí))收獲最大的課程”。結(jié)語(yǔ)“計(jì)算機(jī)設(shè)計(jì)實(shí)踐”課程改革幫助學(xué)生克服了害怕甚至反感硬件課程的情緒,極大地調(diào)動(dòng)了學(xué)生的學(xué)習(xí)積極性,取得了較好的教學(xué)效果,使學(xué)生更加深刻地理解了MIPS單周期CPU、多周期CPU、流水線CPU的設(shè)計(jì)方法

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論