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