馬 莉,秦彩云
(北京石油化工學(xué)院 信息工程學(xué)院,北京 102617)
計(jì)算機(jī)組成原理是計(jì)算機(jī)專業(yè)一門非常重要的硬件類專業(yè)基礎(chǔ)課。計(jì)算機(jī)組成原理課程設(shè)計(jì)是組成原理的一門實(shí)踐類課程,課程主要教學(xué)內(nèi)容為運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備,即馮·諾依曼結(jié)構(gòu)計(jì)算機(jī)的五大組成部分。教師在教學(xué)中須把握整體與局部、軟件和硬件、微觀現(xiàn)實(shí)和宏觀結(jié)構(gòu)這3條主線,引導(dǎo)學(xué)生認(rèn)識(shí)計(jì)算機(jī)硬件系統(tǒng),了解各功能部件的基本組織結(jié)構(gòu)和工作原理,掌握各部件的設(shè)計(jì)方法。對(duì)程序員來(lái)說(shuō),計(jì)算機(jī)各功能部件的許多硬件細(xì)節(jié)都是透明抽象的,怎樣設(shè)計(jì)實(shí)驗(yàn)環(huán)節(jié)為理論教學(xué)服務(wù),使原本透明抽象的、“看不到摸不到”的部件變得具體化,是非常重要的。為了實(shí)現(xiàn)深刻理解計(jì)算機(jī)各主要功能部件的結(jié)構(gòu)、功能以及相互之間聯(lián)系這個(gè)實(shí)驗(yàn)教學(xué)目標(biāo),對(duì)實(shí)驗(yàn)教學(xué)內(nèi)容和實(shí)驗(yàn)步驟方法進(jìn)行精心科學(xué)地設(shè)計(jì),是非常必要的。同時(shí),好的實(shí)驗(yàn)教學(xué)環(huán)節(jié)的設(shè)計(jì)對(duì)提升學(xué)生學(xué)習(xí)興趣、建立學(xué)生的成就感、培養(yǎng)學(xué)生自學(xué)能力也是非常有效的。
目前,我國(guó)高校計(jì)算機(jī)組成原理及課程設(shè)計(jì)的實(shí)驗(yàn)教學(xué)主要以傳統(tǒng)方式為主,實(shí)驗(yàn)平臺(tái)基于特定的實(shí)驗(yàn)系統(tǒng),實(shí)驗(yàn)內(nèi)容大多是完成運(yùn)算器、存儲(chǔ)器、控制器等各部件的功能驗(yàn)證實(shí)驗(yàn),其缺點(diǎn)非常明顯,即實(shí)驗(yàn)以驗(yàn)證各部件功能為主,學(xué)生缺少通過(guò)實(shí)驗(yàn)訓(xùn)練硬件系統(tǒng)的設(shè)計(jì)能力。大多數(shù)高校的計(jì)算機(jī)組成原理實(shí)驗(yàn)采用這種傳統(tǒng)方式,少部分985、211高校,如清華大學(xué)、國(guó)防科技大學(xué)、南京大學(xué)等,計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)采用另一種方式,即基于硬件描述語(yǔ)言進(jìn)行CPU的設(shè)計(jì)。如清華大學(xué)設(shè)計(jì)了“基于FPGA的開(kāi)放式教學(xué)的CPU設(shè)計(jì)與測(cè)試系統(tǒng)”綜合實(shí)驗(yàn)平臺(tái)[1];南京大學(xué)和東南大學(xué)硬件教學(xué)通過(guò)Altera DE2實(shí)驗(yàn)板開(kāi)展基于硬件描述語(yǔ)言和FPGA的CPU設(shè)計(jì);浙江大學(xué)計(jì)算機(jī)組成原理課程的實(shí)驗(yàn)選用Xinlix NS3的FPGA開(kāi)發(fā)板完成[2];國(guó)防科技大學(xué)[3]、武漢大學(xué)[4]等高校的計(jì)算機(jī)組成原理實(shí)驗(yàn)是進(jìn)行基于FPGA的CPU系統(tǒng)的設(shè)計(jì),這種方式難度較大,采用此方案的高校還不多。
為緊跟計(jì)算機(jī)新技術(shù)的發(fā)展,培養(yǎng)具有計(jì)算機(jī)硬件系統(tǒng)分析、綜合運(yùn)用和設(shè)計(jì)能力的計(jì)算機(jī)專業(yè)人才,對(duì)現(xiàn)有計(jì)算機(jī)組成原理及課程設(shè)計(jì)的實(shí)驗(yàn)進(jìn)行教學(xué)改革,構(gòu)建一個(gè)計(jì)算機(jī)組成原理及課程設(shè)計(jì)的層次化和系列化實(shí)驗(yàn)方案,是非常有必要的。
基于FPGA+VHDL的實(shí)驗(yàn)方案具體如下。硬件實(shí)驗(yàn)平臺(tái)選用THINPAD教學(xué)計(jì)算機(jī)系統(tǒng)和實(shí)驗(yàn)室的PC機(jī)搭建,以VHDL為硬件描述語(yǔ)言,以RISC為主要設(shè)計(jì)思想。THINPAD教學(xué)計(jì)算機(jī)系統(tǒng)的硬件電路如圖1所示。教學(xué)計(jì)算機(jī)的主要實(shí)驗(yàn)芯片是Xilinx公司生產(chǎn)的FPGA芯片,型號(hào)為Spartan-3E系列的XC3S1200EFGG320,存儲(chǔ)器使用兩片容量為256K×16B的SRAM和8MB的Flash存儲(chǔ)芯片,采用哈佛結(jié)構(gòu),指令和數(shù)據(jù)獨(dú)立存儲(chǔ)的,為實(shí)現(xiàn)更加靈活方便的實(shí)驗(yàn)方式,還配置有豐富的外圍接口[5]。
圖1 THINPAD教學(xué)機(jī)實(shí)驗(yàn)板
實(shí)驗(yàn)方案是層次化的,設(shè)計(jì)難度逐步深入,分為兩個(gè)層次。
(1)計(jì)算機(jī)組成原理的實(shí)驗(yàn)教學(xué):完成4個(gè)部件實(shí)驗(yàn),每個(gè)實(shí)驗(yàn)占用1次4學(xué)時(shí)的實(shí)驗(yàn)學(xué)時(shí),實(shí)驗(yàn)內(nèi)容和理論教學(xué)同步,實(shí)驗(yàn)內(nèi)容是環(huán)環(huán)相扣的,最終是為后續(xù)多周期CPU的設(shè)計(jì)打下基礎(chǔ)。
實(shí)驗(yàn)一是熟悉開(kāi)發(fā)環(huán)境的實(shí)驗(yàn)。通過(guò)完成秒表的設(shè)計(jì),熟悉FPGA工具軟件ISE,學(xué)習(xí)使用ISE創(chuàng)建工程并進(jìn)行調(diào)試,以及如何在THINPAD硬件平臺(tái)上進(jìn)行配置。
實(shí)驗(yàn)二是THCO MIPS指令系統(tǒng)的實(shí)驗(yàn)。實(shí)驗(yàn)方案以多周期CPU的設(shè)計(jì)為主,要求學(xué)生至少設(shè)計(jì)實(shí)現(xiàn)7條指令,必須包括寄存器(R)型、立即數(shù)(I)型和轉(zhuǎn)移(B)型,每條指令的機(jī)器代碼、格式及尋址方式在符合MIPS16e的規(guī)定的前提下,可自行定義;實(shí)驗(yàn)要求學(xué)生使用自己設(shè)計(jì)的指令編寫(xiě)2個(gè)能完成特定功能的測(cè)試程序,并在模擬器上測(cè)試通過(guò)。實(shí)驗(yàn)過(guò)程中使用終端程序Term協(xié)助開(kāi)展實(shí)驗(yàn)。
實(shí)驗(yàn)三是算術(shù)邏輯運(yùn)算單元實(shí)驗(yàn)。實(shí)驗(yàn)內(nèi)容是設(shè)計(jì)和實(shí)現(xiàn)算術(shù)邏輯運(yùn)算單元。該實(shí)驗(yàn)的目的是練習(xí)使用THINPAD硬件實(shí)驗(yàn)系統(tǒng),對(duì)硬件系統(tǒng)開(kāi)發(fā)的基本過(guò)程有一定了解,分析運(yùn)算器的數(shù)據(jù)傳送通路,掌握算術(shù)邏輯運(yùn)算單元的基本設(shè)計(jì)方法。該實(shí)驗(yàn)是一個(gè)設(shè)計(jì)性實(shí)驗(yàn),設(shè)計(jì)好的算術(shù)邏輯運(yùn)算單元會(huì)被當(dāng)作后續(xù)系統(tǒng)實(shí)驗(yàn)中處理器的一個(gè)重要組成部分[6]。
實(shí)驗(yàn)四是內(nèi)存儲(chǔ)器實(shí)驗(yàn),實(shí)驗(yàn)的主要內(nèi)容是設(shè)計(jì)一個(gè)狀態(tài)機(jī)和內(nèi)存讀寫(xiě)邏輯,完成對(duì)THINPAD實(shí)驗(yàn)板上存儲(chǔ)器RAM的訪問(wèn)。為了實(shí)現(xiàn)該實(shí)驗(yàn)內(nèi)容,學(xué)生必須熟悉內(nèi)存儲(chǔ)器的配置,了解與總線的連接方式,設(shè)計(jì)教學(xué)機(jī)內(nèi)存的訪問(wèn)時(shí)序和方法,理解總線數(shù)據(jù)傳輸?shù)幕驹?。本次?shí)驗(yàn)需使用數(shù)據(jù)通訊程序Flash And Ram協(xié)助開(kāi)展實(shí)驗(yàn)[6]。
(2)課程設(shè)計(jì)的實(shí)驗(yàn)教學(xué):完成4個(gè)基礎(chǔ)實(shí)驗(yàn)之后,在2周的課程設(shè)計(jì)期間要求學(xué)生設(shè)計(jì)并實(shí)現(xiàn)一個(gè)多周期CPU,CPU需具有16位數(shù)據(jù)總線,18位地址總線,至少8個(gè)16位的通用寄存器,其硬件實(shí)現(xiàn)能夠支持基礎(chǔ)實(shí)驗(yàn)二設(shè)計(jì)的指令執(zhí)行。該CPU能夠在THINPAD開(kāi)發(fā)系統(tǒng)上運(yùn)行,能夠訪問(wèn)開(kāi)發(fā)板上的內(nèi)存,能夠通過(guò)基礎(chǔ)實(shí)驗(yàn)二的2個(gè)測(cè)試程序的測(cè)試。
考慮到本校學(xué)生的實(shí)際情況,2016—2017學(xué)年,首先在北京石油化工學(xué)院計(jì)算機(jī)專業(yè)的大三學(xué)生中抽選20名學(xué)生,組成5個(gè)實(shí)驗(yàn)小組,完成4個(gè)部件實(shí)驗(yàn)和多周期CPU的設(shè)計(jì),其中,4組設(shè)計(jì)的CPU支持13條含R型、I型、B型的指令,1組學(xué)生設(shè)計(jì)的CPU支持25條指令,并設(shè)計(jì)實(shí)現(xiàn)了CPU系統(tǒng)的串口通訊,5個(gè)小組的設(shè)計(jì)方案全部通過(guò)測(cè)試程序的測(cè)試,且對(duì)CPU的性能進(jìn)行了評(píng)測(cè)。
為了提高教學(xué)質(zhì)量,有效跟蹤課程教學(xué)效果,北京石油化工學(xué)院計(jì)算機(jī)專業(yè)采用畢業(yè)指標(biāo)達(dá)成度的評(píng)價(jià)方法對(duì)課程進(jìn)行量化評(píng)價(jià)。計(jì)算機(jī)組成原理課程設(shè)計(jì)的評(píng)價(jià)采用評(píng)分量表形式,對(duì)學(xué)生進(jìn)行過(guò)程性評(píng)價(jià),最終形成達(dá)成度計(jì)算結(jié)果,通過(guò)對(duì)達(dá)成度的總結(jié)分析,實(shí)現(xiàn)對(duì)教學(xué)方法、內(nèi)容和評(píng)價(jià)方法進(jìn)行必要的教學(xué)改革。
北京石油化工學(xué)院計(jì)算機(jī)組成原理課程設(shè)計(jì)的課程與畢業(yè)要求指標(biāo)點(diǎn)的對(duì)應(yīng)關(guān)系及權(quán)重系數(shù)見(jiàn)表1。
計(jì)算機(jī)專業(yè)2014計(jì)算機(jī)組成原理課程設(shè)計(jì)畢業(yè)指標(biāo)點(diǎn)達(dá)成度統(tǒng)計(jì)表見(jiàn)表2,分為2套實(shí)驗(yàn)方案的學(xué)生達(dá)成度統(tǒng)計(jì),第1套實(shí)驗(yàn)方案的樣本數(shù)為58人,第2套實(shí)驗(yàn)方案的樣本數(shù)為20人。
其中,第1套實(shí)驗(yàn)方案基于16位機(jī)指令系統(tǒng)的設(shè)計(jì)與微程序控制器實(shí)現(xiàn),第2套實(shí)驗(yàn)方案基于FPGA+VHDL的CPU設(shè)計(jì)。通過(guò)表2的數(shù)據(jù)分析可知,完成第2套實(shí)驗(yàn)方案學(xué)生在指標(biāo)點(diǎn)3.1、4.2、4.3、5.1、5.3的達(dá)成度明顯高于采用第1套實(shí)驗(yàn)方案的學(xué)生,在對(duì)學(xué)生的系統(tǒng)設(shè)計(jì)/開(kāi)發(fā)解決方案、研究、使用現(xiàn)代工具這3個(gè)畢業(yè)要求的培養(yǎng)上,第2套實(shí)驗(yàn)方案優(yōu)于第1套方案。
表1 計(jì)算機(jī)組成原理課程設(shè)計(jì)與畢業(yè)要求指標(biāo)點(diǎn)對(duì)應(yīng)關(guān)系及權(quán)重系數(shù)
表2 計(jì)算機(jī)專業(yè)2014計(jì)算機(jī)組成原理課程設(shè)計(jì)指標(biāo)點(diǎn)達(dá)成度統(tǒng)計(jì)表
在之前改革試點(diǎn)取得一定成果的基礎(chǔ)上,我們計(jì)劃在計(jì)算機(jī)專業(yè)分層次推行2套實(shí)驗(yàn)和課程設(shè)計(jì)方案,第1套繼續(xù)使用原有實(shí)驗(yàn)教學(xué)內(nèi)容,完成運(yùn)算器、存儲(chǔ)器、微程序控制器等模塊的驗(yàn)證實(shí)驗(yàn),課程設(shè)計(jì)的內(nèi)容是16位教學(xué)機(jī)指令系統(tǒng)的設(shè)計(jì)與微程序控制器實(shí)現(xiàn),但要增加擴(kuò)展指令的功能設(shè)計(jì);第2套采用FPGA+VHDL技術(shù)方案,在THINPAD開(kāi)發(fā)板上完成寄存器堆、算術(shù)邏輯運(yùn)算單元、內(nèi)存儲(chǔ)器訪問(wèn)等模塊的設(shè)計(jì)實(shí)驗(yàn),在課程設(shè)計(jì)的教學(xué)環(huán)節(jié)完成多周期的CPU的設(shè)計(jì),并逐步向流水CPU設(shè)計(jì)過(guò)渡。通過(guò)2套不同層次方案的實(shí)踐,為今后的計(jì)算機(jī)組成實(shí)驗(yàn)全面鋪開(kāi)FPGA+VHDL技術(shù)方案,從實(shí)驗(yàn)內(nèi)容、指導(dǎo)方法、考核方式等多方面積累經(jīng)驗(yàn)。
改革的目標(biāo)是通過(guò)一兩年的實(shí)施,全面過(guò)渡到采用FPGA+VHDL技術(shù)方案的CPU系統(tǒng)設(shè)計(jì),減少甚至最終取消驗(yàn)證性為主的實(shí)驗(yàn)教學(xué)內(nèi)容,全面增加設(shè)計(jì)性和綜合性實(shí)驗(yàn)內(nèi)容。支持學(xué)生自主學(xué)習(xí)、小組合作研究,全面開(kāi)放實(shí)驗(yàn)室,改進(jìn)實(shí)驗(yàn)教學(xué)模式,完成實(shí)驗(yàn)項(xiàng)目的設(shè)計(jì)和調(diào)試,努力實(shí)現(xiàn)使計(jì)算機(jī)專業(yè)培養(yǎng)的學(xué)生具有扎實(shí)的計(jì)算機(jī)基礎(chǔ)知識(shí)和基本技能,具有社會(huì)責(zé)任感、職業(yè)道德、創(chuàng)新意識(shí)和人文素養(yǎng),且工程實(shí)踐能力強(qiáng),成為面向軟件與信息服務(wù)行業(yè)的高級(jí)計(jì)算機(jī)應(yīng)用型人才這一培養(yǎng)目標(biāo)。
(1)掌握硬件描述語(yǔ)言對(duì)學(xué)生的發(fā)展是極為有益的。目前,北京石油化工學(xué)院計(jì)算機(jī)組成原理課程的理論學(xué)時(shí)為48學(xué)時(shí),完成課程教學(xué)大綱所要求的教學(xué)內(nèi)容已經(jīng)很緊張,再增加硬件描述語(yǔ)言的教學(xué)內(nèi)容,幾乎是不可能的。北京石油化工學(xué)院信息工程學(xué)院利用網(wǎng)絡(luò)教學(xué)的軟教學(xué)環(huán)境,組織學(xué)習(xí)小組,提前分配實(shí)驗(yàn)任務(wù),指導(dǎo)學(xué)生自主學(xué)習(xí),是非??尚械?。同時(shí),為緩解計(jì)算機(jī)組成原理課程的學(xué)時(shí)壓力,學(xué)院還統(tǒng)籌安排硬件類課程的教學(xué)內(nèi)容,修改先修的數(shù)字邏輯課程和電子工程設(shè)計(jì)課程的教學(xué)大綱,將硬件描述語(yǔ)言的有關(guān)內(nèi)容增加到理論和實(shí)驗(yàn)教學(xué)中。
(2)修訂教學(xué)大綱,將控制器設(shè)計(jì)的教學(xué)內(nèi)容過(guò)渡成組合邏輯控制器的工作原理和設(shè)計(jì)方法為主、微程序控制器為輔的教學(xué)內(nèi)容??刂破髯鳛橛?jì)算機(jī)的核心部件,其設(shè)計(jì)一直是該課程的教學(xué)重點(diǎn)。從控制信號(hào)的產(chǎn)生原理、實(shí)現(xiàn)方式的角度而言,控制器可以分為微程序控制器和組合邏輯控制器。北京石油化工學(xué)院的教學(xué)重點(diǎn)主要是微程序控制器設(shè)計(jì)方案,并有配套的實(shí)驗(yàn)教學(xué)內(nèi)容,該方案通過(guò)設(shè)計(jì)指令微程序,產(chǎn)生指令實(shí)現(xiàn)所需的控制信號(hào),易教易學(xué)。伴隨計(jì)算機(jī)新技術(shù)尤其是EDA技術(shù)的發(fā)展,新興計(jì)算機(jī)結(jié)構(gòu)如RISC中廣泛應(yīng)用的是執(zhí)行速度更快、硬件上由組合邏輯門電路和觸發(fā)器構(gòu)成的組合邏輯控制器[7]。通過(guò)計(jì)算機(jī)組成原理課程的學(xué)習(xí),使學(xué)生掌握硬件描述語(yǔ)言,掌握基于EDA的CPU設(shè)計(jì)技術(shù),這對(duì)于提高學(xué)生的就業(yè)競(jìng)爭(zhēng)力和提高我國(guó)計(jì)算機(jī)的設(shè)計(jì)水平方面都是很有價(jià)值且值得一做的。
北京石油化工學(xué)院通過(guò)對(duì)計(jì)算機(jī)組成原理及課程設(shè)計(jì)實(shí)驗(yàn)方案和考核方法的精心設(shè)計(jì),在實(shí)驗(yàn)內(nèi)容上增加了基于FPGA+VHDL的CPU設(shè)計(jì),在考核方法上采用評(píng)分量表的形式對(duì)學(xué)生進(jìn)行過(guò)程性評(píng)價(jià),并且在2016—2017學(xué)年初步實(shí)施,在課程設(shè)計(jì)的組織、管理、考核方面獲得了可觀的教學(xué)經(jīng)驗(yàn)。實(shí)用性、前沿技術(shù)和硬件實(shí)驗(yàn)的趣味性是該實(shí)驗(yàn)方案的特點(diǎn)和優(yōu)點(diǎn)所在,通過(guò)三者的結(jié)合,教師在課程教學(xué)內(nèi)容和教學(xué)重點(diǎn)上也做出了相應(yīng)的教學(xué)改革,使之更加有針對(duì)性和對(duì)應(yīng)性,特點(diǎn)鮮明;學(xué)生在設(shè)計(jì)實(shí)現(xiàn)多周期CPU時(shí),選用的是現(xiàn)代計(jì)算機(jī)主流應(yīng)用開(kāi)發(fā)技術(shù),學(xué)生具有很高的學(xué)習(xí)興趣,課程受到學(xué)生的歡迎,學(xué)生反映非常好。
總之,改革計(jì)算機(jī)組成原理實(shí)驗(yàn)中的陳舊內(nèi)容、教學(xué)模式及其實(shí)驗(yàn)平臺(tái),在實(shí)驗(yàn)中引入硬件描述語(yǔ)言、硬件開(kāi)發(fā)工具和技術(shù),是計(jì)算機(jī)組成原理及課程設(shè)計(jì)實(shí)驗(yàn)今后的發(fā)展趨勢(shì)。
參考文獻(xiàn):
[1]李山山, 湯志忠, 周繼群. 基于FPGA的開(kāi)放式教學(xué)CPU的設(shè)計(jì)與測(cè)試系統(tǒng)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2005(14): 98-100.
[2]陳天洲. 多核精品課程建設(shè)與拓展[J]. 計(jì)算機(jī)教育, 2008(1): 61-62.
[3]姜晶菲, 肖濃, 王志英, 等. “計(jì)算機(jī)體系結(jié)構(gòu)”課程建設(shè)及改革思考[J]. 計(jì)算機(jī)教育, 2009(18): 3-5.
[4]楊劍鋒, 田茂, 謝銀波. “多核架構(gòu)及編程技術(shù)”課程建設(shè)[J]. 計(jì)算機(jī)教育, 2007(12): 82-83.
[5]劉亞楠, 劉衛(wèi)東, 張小平. THINPAD教學(xué)計(jì)算機(jī)實(shí)驗(yàn)平臺(tái)設(shè)計(jì)[J]. 實(shí)驗(yàn)技術(shù)與管理, 2012(11): 115-118.
[6]李山山, 劉衛(wèi)東. 面向系統(tǒng)能力的計(jì)算機(jī)組成原理實(shí)驗(yàn)實(shí)施[J]. 計(jì)算機(jī)教育, 2015(15): 107-110.
[7]高艷. 基于FPGA模型機(jī)的組合邏輯控制器[J]. 實(shí)驗(yàn)室研究與探索, 2015(4): 86-91.