葛桂萍, 肖鐵軍, 陳才扣,馬學文
(1. 揚州大學 信息工程學院, 江蘇 揚州 225127;2. 江蘇大學 計算機科學與通信工程學院, 江蘇 鎮(zhèn)江 212013)
“計算機組成原理”是計算機專業(yè)一門重要的專業(yè)基礎(chǔ)課程,重點介紹計算機的結(jié)構(gòu)、組成,使學生掌握計算機各部件的基本工作原理、設(shè)計方法及計算機整體的互連技術(shù),為培養(yǎng)學生具有硬件系統(tǒng)的開發(fā)能力打下一定的基礎(chǔ)。該課程的先修課程是“數(shù)字邏輯”,后續(xù)課程有“操作系統(tǒng)”“編譯原理”“計算機系統(tǒng)結(jié)構(gòu)”等,在整個計算機專業(yè)課程體系中起著承上啟下的作用?!坝嬎銠C組成原理”是一門理論性和實踐性都很強的課程,其中的實踐環(huán)節(jié),包括硬件實驗及課程設(shè)計,是“計算機組成原理”課程教學的關(guān)鍵。如何提高“計算機組成原理”的實踐教學水平,適應(yīng)工業(yè)界對畢業(yè)生實踐能力不斷增長的需求,培養(yǎng)學生的硬件設(shè)計能力,已成為高校計算機專業(yè)所面臨的重要課題。
在“計算機組成原理”課程中,理論是基礎(chǔ),但是要深入理解計算機基本原理及體系結(jié)構(gòu)等理論必須結(jié)合硬件實踐[1]。目前,不少高校的計算機專業(yè)在教學內(nèi)容和教學模式上普遍存在“重軟輕硬”[1]、重理論輕實踐的現(xiàn)象,理論教學所占比重較大,輕視硬件實踐教學的建設(shè),硬件實踐教學課時一再縮減,無法保證硬件實踐教學的質(zhì)量,從而導(dǎo)致了學生參加實踐課的積極性不高,培養(yǎng)出來的學生硬件能力較差,無法承擔計算機硬件方面的設(shè)計與開發(fā)工作。
傳統(tǒng)的“計算機組成原理”實驗方案大都是將中小規(guī)模數(shù)字集成電路安裝在面包板上,學生通過在面包板上進行手工連線,完成一定的邏輯功能。這種實驗方法能熟悉通用集成電路的用法,是一種低級的培養(yǎng)“動手能力”的手段。由于給定的集成電路只能實現(xiàn)固定的功能,無法改變,本質(zhì)上是屬于驗證型實驗。如果連線較多,極易出現(xiàn)錯誤,或者由于設(shè)備老化、導(dǎo)線內(nèi)部接觸不良容易造成實驗失敗。這種實驗設(shè)備比較落后,實驗手段還處于上世紀80年代的水平,與當前工業(yè)界的實際應(yīng)用嚴重脫節(jié),和現(xiàn)代快速發(fā)展的計算機硬件技術(shù)形成了明顯的差距,對學生缺乏吸引力,學生興趣不高,極大地限制了學生創(chuàng)新能力的培養(yǎng)[2-4]。
“計算機組成原理”教材眾多,理論課教材通常會給出一種由簡化的處理器所構(gòu)成的模型計算機,因為并非真實的商用處理器,所以不同的教材給出的模型機結(jié)構(gòu)不盡相同。傳統(tǒng)的實驗設(shè)備部件是固化的,無法自主確定實驗內(nèi)容,無法擴展,難以適應(yīng)不同的教材,造成了實踐教學內(nèi)容與理論教學不配套的問題,常常出現(xiàn)“講一套、做一套” 的尷尬現(xiàn)象,導(dǎo)致學生不能通過實驗更好地理解理論教學的內(nèi)容,影響了實驗教學的效果。
對于計算機類的不同專業(yè),如計算機偏硬專業(yè)和計算機偏軟專業(yè),專業(yè)不同,教學對象不同,課程教學的目標和要求也不盡相同。但是,目前很多高校由于各種原因,針對不同的專業(yè),并沒有體現(xiàn)出教學要求的不同,理論教學內(nèi)容基本一致,實驗要求也沒有區(qū)分[2],沒有體現(xiàn)出專業(yè)的特色,不能適應(yīng)多層次計算機人才培養(yǎng)的需要。
2.1.1 設(shè)計背景
由于早期的面包板手工布線的實驗設(shè)備比較落后,不能自主確定實驗內(nèi)容,以驗證性實驗為主,為把“計算機組成原理”實驗從驗證性轉(zhuǎn)化為設(shè)計性,許多高校已把FPGA引入到計算機硬件實驗教學中來。以可編程邏輯器件FPGA作為實驗平臺,利用硬件描述語言Verilog進行電路設(shè)計,并把設(shè)計好的實驗電路下載到FPGA板上,相對早期的小規(guī)模集成電路功能固化的實驗平臺,可以大大提高實驗的靈活性和可操作性、創(chuàng)新性[3]。目前,清華大學、浙江大學等國內(nèi)一流高校開發(fā)了計算機系統(tǒng)實驗平臺,能貫通“數(shù)字邏輯”“計算機組成原理”“操作系統(tǒng)”“編譯原理”等多門課程,對教師和學生的要求都較高,而普通高校師資較為缺乏、部分學生主動性不夠,為了調(diào)動學生的積極性,提高實驗效率,我們通過分析研究,將重心放在課程的基本要求上,開發(fā)設(shè)計了適應(yīng)地方高校應(yīng)用型人才培養(yǎng)需求的基于FPGA的全新“計算機組成原理”實驗平臺。
2.1.2 新實驗平臺的構(gòu)成
新實驗平臺采用虛擬與現(xiàn)實相結(jié)合的方法,學生把通過Verilog設(shè)計的實驗電路下載到實際的FPGA實驗板上,通過計算機上的虛擬實驗板進行操作,操作結(jié)果同步顯示在虛擬實驗板和實際實驗板上。
本實驗平臺包括實驗系統(tǒng)軟件、JUPOD調(diào)試適配器、片上調(diào)試器和實驗電路等,結(jié)構(gòu)框架如圖1所示。
圖1 基于FPGA的實驗平臺結(jié)構(gòu)
FPGA開發(fā)板選擇基于Xilinx新一代的Artix-7系列Nexys4 DDR (簡稱N4)。N4板是基于FPGA的即用型數(shù)字電路開發(fā)板,以Artix-7系列的XC7A100T-1CSG324C FPGA為核心,包含發(fā)光二極管、開關(guān)、七段顯示器等外圍設(shè)備,可以擴展連接眾多接口。實驗以Verilog作為硬件描述語言,以Vivado作為設(shè)計開發(fā)工具。
針對基于FPGA的“計算機組成原理”新實驗平臺,其中的關(guān)鍵是如何把計算機中的信息作用于實驗電路并獲取反饋,本實驗平臺通過在FPGA中構(gòu)建基于IEEE 1149.1 JTAG標準的調(diào)試電路,實現(xiàn)信息傳輸以及實驗CPU的運行控制[4-5]。調(diào)試適配器作為計算機和FPGA之間的互連設(shè)備,用于數(shù)據(jù)解碼以及協(xié)議轉(zhuǎn)換。片上調(diào)試器是基于JTAG標準設(shè)計的邊界掃描結(jié)構(gòu),與實驗電路位于同一FPGA內(nèi)部,直接和實驗電路進行數(shù)據(jù)交互,改變或讀取實驗電路的內(nèi)部節(jié)點狀態(tài)[6-8]。
計算機中的實驗系統(tǒng)軟件提供操作實驗電路的人機交互平臺,具有實驗數(shù)據(jù)組織、實驗數(shù)據(jù)寫入以及實驗結(jié)果回收和顯示等功能。實驗時,通過對計算機中的實驗系統(tǒng)軟件進行相應(yīng)操作,就可改變實驗電路狀態(tài)。具體原理是:實驗系統(tǒng)軟件通過USB把相關(guān)實驗操作數(shù)據(jù)發(fā)送給調(diào)試適配器,調(diào)試適配器把數(shù)據(jù)按照JTAG協(xié)議傳遞到片上調(diào)試器,再由片上調(diào)試器對實驗電路進行寫入、讀取操作,之后把實驗結(jié)果返回實驗系統(tǒng)軟件,顯示于交互界面上供實驗人員觀察[5]。不同的實驗可定義不同的虛擬實驗板的外觀,和傳統(tǒng)的實際實驗板相比,學生不需去記憶輸入輸出元件與實驗原理的對應(yīng),直觀高效,計算機部件實驗中的ALU運算器實驗、數(shù)據(jù)通路實驗的虛擬實驗板如圖2所示。
圖2 部件實驗虛擬實驗板示例
和其他FPGA實驗平臺相比,采用JTAG調(diào)試技術(shù)使得系統(tǒng)更簡潔、可靠性更高;和單純使用FPGA開發(fā)板相比,虛擬實驗軟件突破了開發(fā)板開關(guān)等元件數(shù)量的限制,同時避免了由于反復(fù)人為操作而造成的損耗;和一般的以實物照片為界面的虛擬實驗平臺相比,基于原理圖的虛擬實驗板使學生能夠?qū)⒆⒁饬性趯嶒炘矶皇遣僮魃稀?/p>
加強“計算機組成原理”課程的實踐教學,構(gòu)建課程實驗、課程設(shè)計等多層次的實踐教學體系。課程實驗指的是部件實驗,包含基本電路實驗、ALU運算器實驗、存儲器實驗、數(shù)據(jù)通路實驗等4個實驗。每個實驗又包含基礎(chǔ)、提高2部分實驗,并把簡單驗證性實驗逐步改為“驗證性-設(shè)計性-綜合性”的多層次實驗?zāi)J絒9]。根據(jù)不同專業(yè)的教學要求不同、學生能力不同,可以安排不同層次和難度的實驗,充分發(fā)揮學生的能動性[10]。如對于計算機偏軟專業(yè),學生以了解計算機的組成、結(jié)構(gòu)為目標,無需深入設(shè)計系統(tǒng),不需要掌握具體的實驗電路的編寫方法,利用Verilog設(shè)計的實驗電路由教師提供,直接下載到FPGA的實驗板上,通過實驗平臺提供的實驗軟件驗證結(jié)果,完成簡單的驗證性實驗;而對于計算機偏硬專業(yè),側(cè)重培養(yǎng)學生系統(tǒng)設(shè)計、分析和解決問題的能力,需要學生根據(jù)設(shè)計要求利用Verilog設(shè)計實驗電路,然后下載到FPGA實驗板,完成一定難度的設(shè)計性實驗。鼓勵能力較強的學生積極參與綜合性實驗,通過實驗難度的不斷提高,循序漸進、由淺入深、不斷加強學生的動手能力。
在課程設(shè)計環(huán)節(jié)上,同樣針對不同的專業(yè),要求不一樣,如計算機偏軟專業(yè),主要完成微程序設(shè)計,而對于計算機偏硬專業(yè),則主要完成單周期MIPS CPU的設(shè)計,要求完成至少7條指令的擴展。另外,根據(jù)學生能力的強弱,還可以擴展多條指令或進行多周期、流水線CPU設(shè)計,通過這類復(fù)雜的工程問題,培養(yǎng)學生的創(chuàng)新能力和綜合能力。
(1) 結(jié)合新的實驗平臺,編寫實驗指導(dǎo)書。指導(dǎo)書包括學生版和教師版,學生版對實驗內(nèi)容、實驗步驟做詳細的說明,但關(guān)鍵的代碼空缺,由學生填空,教師版則提供完整的程序,供教師備課參考。同時制作多媒體實驗課件,有助于學生預(yù)習、準備實驗。
(2) 加強實驗過程的指導(dǎo)。在學生實驗出現(xiàn)錯誤,無法得出正確的結(jié)果時,既不是代替學生調(diào)試,也不是簡單的指出錯誤,而是引導(dǎo)學生利用所學知識分析問題、解決問題[9]。
(3) 改革實驗考核方法,完善考核機制。實驗考核是實驗中非常重要的環(huán)節(jié),是檢驗實驗教學質(zhì)量和教學效果的主要手段。在實驗考核中,除了檢查學生實驗的完成情況,增加答辯環(huán)節(jié),檢查學生靈活運用、分析問題的能力,另外還須檢查學生撰寫的實驗報告。最后的實驗成績由實驗完成情況(占50%)、答辯情況(占30%)、實驗報告內(nèi)容(占20%)3個部分構(gòu)成,以優(yōu)、良、中、及格、不及格作為實驗的最終成績。
在考核學生實驗完成情況時,還須注意到教學對象的不同則考核的內(nèi)容不同。如對于ALU運算器實驗,計算機偏軟專業(yè)的學生無需自己編程設(shè)計電路,學生把教師設(shè)計好的實驗電路下載到FPGA板,考核時主要考核學生是否熟悉ALU運算器的原理、驗證運算結(jié)果的正確性;而對于計算機偏硬專業(yè)的學生,須根據(jù)要求設(shè)計實驗電路,主要考核學生所設(shè)計的ALU功能是否能夠?qū)崿F(xiàn),并對想實驗成績得優(yōu)的學生增加難度,隨機增加一個運算功能,讓學生當場修改電路,以測試學生是否完全掌握,是否能夠真正達到優(yōu)。
近幾年來,我們基于FPGA對“計算機組成原理”實踐教學進行了改革。我校從2015年開始,從計科12班、計科13班各選拔10名優(yōu)秀學生進行試點,2017年春季將課程的改革擴展到計科14全班41名學生。在課程設(shè)計環(huán)節(jié),大部分學生完成了至少7條指令的單周期CPU的設(shè)計,有4名學生完成了流水線CPU的設(shè)計,學生的實踐能力大為提高,進一步加深了理論知識的理解,也有了一定的成就感。
在近幾年的實驗教學改革過程中,逐年進步,積累了一定的經(jīng)驗,也遇到了一些問題,今后還需不斷地改進和提高。
近年來,計算機教指委從計算機能力培養(yǎng)的角度提出:計算機專業(yè)學生除了具有計算思維能力、程序設(shè)計與實現(xiàn)能力、算法設(shè)計與分析能力外,更重要的是要加強系統(tǒng)能力培養(yǎng)[11]。通過開發(fā)設(shè)計基于FPGA的“計算機組成原理”新實驗平臺,已經(jīng)可以貫通“數(shù)字邏輯”“計算機組成原理”課程,后續(xù)還將進一步更新實驗平臺,貫通“操作系統(tǒng)”“編譯原理”等課程,實現(xiàn)硬件和軟件的貫通,提高學生的系統(tǒng)設(shè)計能力。
由于地方高校師資較為缺乏,需加強實驗教師的培養(yǎng),積極鼓勵實驗教師不斷充電學習,參加各類學術(shù)會議進行交流和培訓(xùn),提升實驗教師的專業(yè)技術(shù)水平,同時充分發(fā)揮傳幫帶的作用,把優(yōu)秀的上屆學生作為助教,可以減輕實驗教師的壓力,彌補助教人手不夠的問題。
根據(jù)我校自身培養(yǎng)目標,接軌新技術(shù)、修訂實驗教材,使教學內(nèi)容與時俱進。同時依托學校網(wǎng)絡(luò)教學平臺,使實驗課件、實驗指導(dǎo)等教學資源上網(wǎng),方便學生課后自學。
目前實驗設(shè)備依然不足,淘汰老式的“計算機組成原理”實驗儀后,實驗室配備了20套FPGA開發(fā)板及實驗調(diào)試系統(tǒng),構(gòu)成新的實驗平臺。由于開課班級較多,實驗設(shè)備數(shù)量不夠,實驗排課壓力很大,除了向?qū)W校爭取經(jīng)費、加大實驗設(shè)備投入之外,建立開放式實驗室,滿足對學生課后實驗開放的需求,將大大提升實驗設(shè)備的技術(shù)含量和使用效率。
“計算機組成原理”課程的理論性、實踐性、應(yīng)用性都很強,同時授課專業(yè)面較廣,針對不同專業(yè)、不同層次的教學要求引入了“驗證性—設(shè)計性—綜合性”的多層次實驗?zāi)J?做到既因材施教,又培養(yǎng)學生的動手能力、創(chuàng)新能力。開發(fā)的“計算機組成原理”新實驗平臺有力地支撐了實驗教學的開展,一方面提升了實驗教學效果,促進了課程教學質(zhì)量的提高,另一方面提高了實驗效率,降低了實驗板的故障率和日常維護成本。
參考文獻(References)
[1] 陳輝,李敬兆.計算機專業(yè)硬件課程教學改革探索[J].計算機教育,2014(5):39-42.
[2] 袁春風,張澤生.計算機組成原理課程實踐教學探索[J].計算機教育,2011(10):110-114.
[3] 張麗艷,韓德強,邵溫.基于 FPGA平臺的計算機硬件實踐教學探索[J]. 計算機教育,2010(7):113-116.
[4] 肖鐵軍,史順波,沈健.基于JTAG的計算機硬件實驗系統(tǒng)的設(shè)計與實現(xiàn)[J]. 數(shù)據(jù)通信,2013(2):24-28.
[5] 常志恒,肖鐵軍,史順波.基于JTAG的片上調(diào)試器與調(diào)試系統(tǒng)的設(shè)計實現(xiàn)[J]. 計算機工程與應(yīng)用,2012(10):78-82.
[6] 趙蕙,肖鐵軍.邊界掃描測試技術(shù)在硬件實驗中的應(yīng)用[J]. 微計算機信息 (嵌入式與SOC),2007(8):279-281.
[7] 于洋,肖鐵軍,丁偉.面向教學的16位CISC微處理器的設(shè)計[J]. 計算機工程與設(shè)計,2010,31(16):3584-3587.
[8] 秦磊華,王小蘭,張園.“計算機組成原理”設(shè)計性實踐教學模式研究[J]. 電氣電子教學學報,2009(4):68-70.
[9] 李山山, 全成斌. 計算機組成原理課程實驗教學的調(diào)查與研究[J]. 計算機教育,2010(22):127-129.
[10] 蔣宗禮.計算機類專業(yè)能力構(gòu)成與培養(yǎng)[J]. 中國大學教學, 2011(10):11-14.
[11] 姜欣寧,陳宇.“計算機組成原理專題實驗”的教學改革[J]. 實驗技術(shù)與管理,2013,30(4):162-165.