張冬雨
(中山大學(xué)計(jì)算機(jī)學(xué)院,廣州510006)
“雙一流”學(xué)科建設(shè)項(xiàng)目的實(shí)施,標(biāo)志著繼“985工程”“211工程”之后中國(guó)高等教育水平進(jìn)入了一個(gè)新的階段。通過(guò)“雙一流”學(xué)科建設(shè),可以培養(yǎng)出一大批具有較強(qiáng)創(chuàng)新能力,并且能夠積極參與社會(huì)經(jīng)濟(jì)建設(shè)與發(fā)展的人才,從而為建設(shè)創(chuàng)新型國(guó)家和人才強(qiáng)國(guó)戰(zhàn)略服務(wù)[1]。
“雙一流”建設(shè)對(duì)高校計(jì)算機(jī)專業(yè)課程的教學(xué)提出了新的挑戰(zhàn)[2]?!队?jì)算機(jī)組成原理》是高校計(jì)算機(jī)相關(guān)專業(yè)的重要核心課程之一,其課程的內(nèi)容是計(jì)算機(jī)課程體系中最重要的組成部分之一。通過(guò)該課程的學(xué)習(xí),學(xué)生可以掌握計(jì)算機(jī)硬件系統(tǒng)各部件的內(nèi)部結(jié)構(gòu)和基本工作原理,為后續(xù)課程的學(xué)習(xí)打下良好基礎(chǔ)[3-5]。在“雙一流”學(xué)科建設(shè)的背景下,為了提升課程的教學(xué)質(zhì)量,解決學(xué)生理論知識(shí)有余、實(shí)踐能力不足的問(wèn)題,學(xué)習(xí)、借鑒國(guó)內(nèi)相關(guān)大學(xué)的教學(xué)實(shí)踐[6-8],《計(jì)算機(jī)組成原理》綜合實(shí)踐課程進(jìn)行了一系列的探索。
處理器的設(shè)計(jì)是《計(jì)算機(jī)組成原理》實(shí)踐中最重要的實(shí)驗(yàn)內(nèi)容,通過(guò)該實(shí)驗(yàn)學(xué)生能夠?qū)⒔M成原理課程中介紹的關(guān)于運(yùn)算器、存儲(chǔ)器、寄存器、數(shù)據(jù)總線、地址總線、數(shù)據(jù)線復(fù)用、控制器等各個(gè)部分的知識(shí)融會(huì)貫通,是一個(gè)綜合性、創(chuàng)新性的實(shí)驗(yàn)。然而通過(guò)多年實(shí)踐教學(xué)發(fā)現(xiàn),在進(jìn)行處理器設(shè)計(jì)時(shí),大部分的學(xué)生往往是理論上比較清楚,但是實(shí)際動(dòng)手時(shí)卻不知道從哪里開(kāi)始。通過(guò)觀察發(fā)現(xiàn),學(xué)生們的主要問(wèn)題是對(duì)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)能力比較欠缺。一方面是平時(shí)接觸比較少,缺少實(shí)際的操作經(jīng)驗(yàn);另一方面是對(duì)設(shè)計(jì)任務(wù)抽象、規(guī)劃能力不足。為解決上述實(shí)踐中的問(wèn)題,《計(jì)算機(jī)組成原理》設(shè)計(jì)綜合實(shí)驗(yàn)課劃分為兩個(gè)部分,即理論課和實(shí)驗(yàn)課。理論課6學(xué)時(shí),主要講解理論知識(shí),包括如何劃分處理器的基本模塊以及各個(gè)模塊的功能、輸入輸出接口、數(shù)據(jù)通路的實(shí)現(xiàn)等等;實(shí)驗(yàn)課為54學(xué)時(shí),主要由學(xué)生動(dòng)手實(shí)驗(yàn),實(shí)際設(shè)計(jì)處理器的各個(gè)不同模塊。設(shè)計(jì)與仿真環(huán)境使用Xilinx ISE軟件,驗(yàn)證環(huán)境使用專用的FPGA實(shí)驗(yàn)平臺(tái)。
在實(shí)驗(yàn)設(shè)計(jì)上根據(jù)處理器的主要功能,課程組將實(shí)驗(yàn)分成了不同的模塊,便于將設(shè)計(jì)任務(wù)分解、細(xì)化。實(shí)驗(yàn)指導(dǎo)書(shū)總體介紹處理器的整體設(shè)計(jì)過(guò)程,然后講解各模塊的具體的功能,最后介紹模塊仿真和整體仿真驗(yàn)證方法。一般來(lái)講,指令的執(zhí)行過(guò)程分為取指、譯碼、執(zhí)行、訪存、寫(xiě)回等五個(gè)階段。每個(gè)階段的作用如表1所示。
表1 指令執(zhí)行的一般過(guò)程
對(duì)應(yīng)指令的執(zhí)行過(guò)程,在實(shí)驗(yàn)內(nèi)容設(shè)置方面,將處理器實(shí)現(xiàn)劃分為不同的基礎(chǔ)實(shí)驗(yàn)?zāi)K,如表2所示。各個(gè)模塊間通過(guò)信號(hào)連接,構(gòu)成數(shù)據(jù)通路。通過(guò)實(shí)現(xiàn)各個(gè)基礎(chǔ)的模塊功能最終組合出完整的處理器功能。各模塊的具體實(shí)現(xiàn)可根據(jù)學(xué)生情況,完全由學(xué)生利用VHDL語(yǔ)言實(shí)現(xiàn)。學(xué)生在實(shí)驗(yàn)中可以逐個(gè)模塊實(shí)現(xiàn)與仿真。
表2 處理器實(shí)驗(yàn)?zāi)K劃分與設(shè)計(jì)功能
在完成上述實(shí)驗(yàn)后學(xué)生就完成了簡(jiǎn)單的處理器的設(shè)計(jì),并且對(duì)計(jì)算機(jī)組成原理課程中所學(xué)的取指、訪存、回寫(xiě)等過(guò)程的數(shù)據(jù)的流通方向,以及指令的詳細(xì)執(zhí)行過(guò)程有更加清晰的認(rèn)識(shí)。通過(guò)實(shí)驗(yàn),學(xué)生也掌握了如何使用計(jì)算機(jī)輔助軟件,如Xilinx ISE進(jìn)行處理器設(shè)計(jì)。在此基礎(chǔ)上,鼓勵(lì)學(xué)生進(jìn)行指令的擴(kuò)展實(shí)驗(yàn),優(yōu)化與完善處理器的功能,比如設(shè)計(jì)實(shí)現(xiàn)流水線的功能等。
教學(xué)內(nèi)容圍繞著處理器的指令集、運(yùn)算器、存儲(chǔ)器、程序計(jì)數(shù)器、輸入輸出接口的設(shè)計(jì),通過(guò)模塊化的分解實(shí)驗(yàn),從簡(jiǎn)單到復(fù)雜,從單一功能到多功能的實(shí)現(xiàn),一步一步幫助學(xué)生掌握處理器的設(shè)計(jì)方法,并熟練掌握硬件設(shè)計(jì)語(yǔ)言以及相應(yīng)設(shè)計(jì)軟件的開(kāi)發(fā)和調(diào)試手段。
(1)教師課堂講授模塊化的處理器設(shè)計(jì)方法,在此時(shí)可以將最基本的各個(gè)不同功能模塊功能及實(shí)現(xiàn)原理進(jìn)行說(shuō)明。
(2)利用幾個(gè)簡(jiǎn)單的驗(yàn)證性實(shí)驗(yàn),讓同學(xué)們熟悉VHDL硬件編程語(yǔ)言以及相關(guān)軟件Xilinx ISE的使用、調(diào)試、下載等方法。
(3)由學(xué)生自行確定所需要的功指令集的設(shè)計(jì)。作出設(shè)計(jì)的初始方案,然后同指導(dǎo)教師討論。指導(dǎo)教師此時(shí)要對(duì)學(xué)生的方案進(jìn)行評(píng)估,指出方案中可能存在問(wèn)題的地方,提出改進(jìn)意見(jiàn)。
(4)利用軟件進(jìn)行仿真。借助計(jì)算機(jī)輔助設(shè)計(jì)軟件Xilinx ISE進(jìn)行各個(gè)功能模塊的仿真實(shí)驗(yàn),實(shí)現(xiàn)各單元模塊的設(shè)計(jì)。實(shí)驗(yàn)指導(dǎo)教師分多次驗(yàn)收,檢查學(xué)生設(shè)計(jì)的功能是否正確,了解學(xué)生對(duì)知識(shí)的理解掌握程度,指出設(shè)計(jì)中需要改進(jìn)的方面,解答學(xué)生在設(shè)計(jì)過(guò)程中的疑問(wèn)并評(píng)定階段成績(jī)。
(5)綜合調(diào)試與驗(yàn)證,實(shí)現(xiàn)最初的設(shè)計(jì)需求。在FPGA實(shí)驗(yàn)平臺(tái)上下載仿真完成的代碼,分模塊調(diào)試、驗(yàn)證功能是否正確。此時(shí)實(shí)驗(yàn)指導(dǎo)教師綜合考察學(xué)生的實(shí)驗(yàn)結(jié)果,解答其在調(diào)試過(guò)程中的疑問(wèn),并根據(jù)實(shí)驗(yàn)的完成質(zhì)量評(píng)定階段成績(jī)。
(6)學(xué)生展示設(shè)計(jì)的成果,介紹自己實(shí)現(xiàn)的處理器的功能,以及設(shè)計(jì)方案的實(shí)現(xiàn)過(guò)程。同時(shí)需要將設(shè)計(jì)過(guò)程、調(diào)試過(guò)程中遇到的問(wèn)題、解決的方法與經(jīng)驗(yàn)總結(jié)成實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)指導(dǎo)教師綜合學(xué)生的表現(xiàn)并結(jié)合各階段成績(jī)給出學(xué)生實(shí)驗(yàn)的最終成績(jī)。
(1)《計(jì)算機(jī)組成原理》設(shè)計(jì)綜合實(shí)踐課程注重對(duì)學(xué)生綜合素質(zhì)的培養(yǎng),鼓勵(lì)開(kāi)拓創(chuàng)新。本實(shí)驗(yàn)可以自行設(shè)計(jì)指令集,學(xué)生可以在基礎(chǔ)的實(shí)驗(yàn)上加入新的指令,實(shí)現(xiàn)新的功能,大大增加了實(shí)驗(yàn)的趣味性與創(chuàng)新性。
(2)以處理器為核心把硬件的編程與軟件的仿真聯(lián)合起來(lái)。學(xué)生通過(guò)不斷的學(xué)習(xí)與改進(jìn)把以往學(xué)過(guò)的碎片化知識(shí)集成起來(lái),對(duì)計(jì)算機(jī)系統(tǒng)有了更加深刻、更加整體的理解。
(3)分階段進(jìn)行實(shí)驗(yàn)的驗(yàn)收和成績(jī)?cè)u(píng)定的方式提供了更多的靈活性,也提高了學(xué)生主動(dòng)學(xué)習(xí)的熱情。通過(guò)現(xiàn)場(chǎng)交流和實(shí)驗(yàn)指導(dǎo)教師的把關(guān),能夠充分保證學(xué)生在遇到問(wèn)題時(shí)可以及時(shí)地得到老師的幫助,從而能夠順利地進(jìn)行實(shí)驗(yàn),進(jìn)一步提高學(xué)生實(shí)驗(yàn)的積極性。
(4)學(xué)生們?cè)趯?shí)驗(yàn)的過(guò)程中會(huì)不斷的遇到問(wèn)題,思考問(wèn)題產(chǎn)生的原因,努力解決問(wèn)題。通過(guò)這種方式可以培養(yǎng)學(xué)生的科研探索精神;通過(guò)現(xiàn)場(chǎng)的講解與展示,學(xué)生的表達(dá)能力也得到提高。
《計(jì)算機(jī)組成原理》是實(shí)踐性非常強(qiáng)的一門(mén)課程,處理器的設(shè)計(jì)實(shí)驗(yàn)?zāi)軌蚓C合考察學(xué)生對(duì)該課程內(nèi)容中不同部分的理解程度?!队?jì)算機(jī)組成原理》綜合實(shí)踐課程經(jīng)過(guò)不斷地探索和實(shí)踐,提出了模塊化實(shí)驗(yàn)的設(shè)置,同時(shí)采用了分不同階段驗(yàn)收,結(jié)合實(shí)驗(yàn)教師的啟發(fā)式指導(dǎo)的教學(xué)模式,極大地增強(qiáng)了學(xué)生對(duì)實(shí)驗(yàn)的興趣。學(xué)生們普遍認(rèn)為這門(mén)實(shí)踐課程對(duì)他們理解整個(gè)計(jì)算機(jī)系統(tǒng)非常有幫助,能夠?qū)⒁酝鶎W(xué)習(xí)的專業(yè)課知識(shí)有機(jī)的整合起來(lái),為后續(xù)計(jì)算機(jī)體結(jié)構(gòu)等專業(yè)課程的學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。《計(jì)算機(jī)組成原理》綜合實(shí)踐為高校實(shí)驗(yàn)教學(xué)提供了有益的借鑒。