葛桂萍, 肖鐵軍, 陳才扣,馬學文
(1. 揚州大學 信息工程學院, 江蘇 揚州 225127;2. 江蘇大學 計算機科學與通信工程學院, 江蘇 鎮江 212013)
“計算機組成原理”是計算機專業一門重要的專業基礎課程,重點介紹計算機的結構、組成,使學生掌握計算機各部件的基本工作原理、設計方法及計算機整體的互連技術,為培養學生具有硬件系統的開發能力打下一定的基礎。該課程的先修課程是“數字邏輯”,后續課程有“操作系統”“編譯原理”“計算機系統結構”等,在整個計算機專業課程體系中起著承上啟下的作用?!坝嬎銠C組成原理”是一門理論性和實踐性都很強的課程,其中的實踐環節,包括硬件實驗及課程設計,是“計算機組成原理”課程教學的關鍵。如何提高“計算機組成原理”的實踐教學水平,適應工業界對畢業生實踐能力不斷增長的需求,培養學生的硬件設計能力,已成為高校計算機專業所面臨的重要課題。
在“計算機組成原理”課程中,理論是基礎,但是要深入理解計算機基本原理及體系結構等理論必須結合硬件實踐[1]。目前,不少高校的計算機專業在教學內容和教學模式上普遍存在“重軟輕硬”[1]、重理論輕實踐的現象,理論教學所占比重較大,輕視硬件實踐教學的建設,硬件實踐教學課時一再縮減,無法保證硬件實踐教學的質量,從而導致了學生參加實踐課的積極性不高,培養出來的學生硬件能力較差,無法承擔計算機硬件方面的設計與開發工作。
傳統的“計算機組成原理”實驗方案大都是將中小規模數字集成電路安裝在面包板上,學生通過在面包板上進行手工連線,完成一定的邏輯功能。這種實驗方法能熟悉通用集成電路的用法,是一種低級的培養“動手能力”的手段。由于給定的集成電路只能實現固定的功能,無法改變,本質上是屬于驗證型實驗。如果連線較多,極易出現錯誤,或者由于設備老化、導線內部接觸不良容易造成實驗失敗。這種實驗設備比較落后,實驗手段還處于上世紀80年代的水平,與當前工業界的實際應用嚴重脫節,和現代快速發展的計算機硬件技術形成了明顯的差距,對學生缺乏吸引力,學生興趣不高,極大地限制了學生創新能力的培養[2-4]。
“計算機組成原理”教材眾多,理論課教材通常會給出一種由簡化的處理器所構成的模型計算機,因為并非真實的商用處理器,所以不同的教材給出的模型機結構不盡相同。傳統的實驗設備部件是固化的,無法自主確定實驗內容,無法擴展,難以適應不同的教材,造成了實踐教學內容與理論教學不配套的問題,常常出現“講一套、做一套” 的尷尬現象,導致學生不能通過實驗更好地理解理論教學的內容,影響了實驗教學的效果。
對于計算機類的不同專業,如計算機偏硬專業和計算機偏軟專業,專業不同,教學對象不同,課程教學的目標和要求也不盡相同。但是,目前很多高校由于各種原因,針對不同的專業,并沒有體現出教學要求的不同,理論教學內容基本一致,實驗要求也沒有區分[2],沒有體現出專業的特色,不能適應多層次計算機人才培養的需要。
2.1.1 設計背景
由于早期的面包板手工布線的實驗設備比較落后,不能自主確定實驗內容,以驗證性實驗為主,為把“計算機組成原理”實驗從驗證性轉化為設計性,許多高校已把FPGA引入到計算機硬件實驗教學中來。以可編程邏輯器件FPGA作為實驗平臺,利用硬件描述語言Verilog進行電路設計,并把設計好的實驗電路下載到FPGA板上,相對早期的小規模集成電路功能固化的實驗平臺,可以大大提高實驗的靈活性和可操作性、創新性[3]。目前,清華大學、浙江大學等國內一流高校開發了計算機系統實驗平臺,能貫通“數字邏輯”“計算機組成原理”“操作系統”“編譯原理”等多門課程,對教師和學生的要求都較高,而普通高校師資較為缺乏、部分學生主動性不夠,為了調動學生的積極性,提高實驗效率,我們通過分析研究,將重心放在課程的基本要求上,開發設計了適應地方高校應用型人才培養需求的基于FPGA的全新“計算機組成原理”實驗平臺。
2.1.2 新實驗平臺的構成
新實驗平臺采用虛擬與現實相結合的方法,學生把通過Verilog設計的實驗電路下載到實際的FPGA實驗板上,通過計算機上的虛擬實驗板進行操作,操作結果同步顯示在虛擬實驗板和實際實驗板上。
本實驗平臺包括實驗系統軟件、JUPOD調試適配器、片上調試器和實驗電路等,結構框架如圖1所示。

圖1 基于FPGA的實驗平臺結構
FPGA開發板選擇基于Xilinx新一代的Artix-7系列Nexys4 DDR (簡稱N4)。N4板是基于FPGA的即用型數字電路開發板,以Artix-7系列的XC7A100T-1CSG324C FPGA為核心,包含發光二極管、開關、七段顯示器等外圍設備,可以擴展連接眾多接口。實驗以Verilog作為硬件描述語言,以Vivado作為設計開發工具。
針對基于FPGA的“計算機組成原理”新實驗平臺,其中的關鍵是如何把計算機中的信息作用于實驗電路并獲取反饋,本實驗平臺通過在FPGA中構建基于IEEE 1149.1 JTAG標準的調試電路,實現信息傳輸以及實驗CPU的運行控制[4-5]。調試適配器作為計算機和FPGA之間的互連設備,用于數據解碼以及協議轉換。片上調試器是基于JTAG標準設計的邊界掃描結構,與實驗電路位于同一FPGA內部,直接和實驗電路進行數據交互,改變或讀取實驗電路的內部節點狀態[6-8]。
計算機中的實驗系統軟件提供操作實驗電路的人機交互平臺,具有實驗數據組織、實驗數據寫入以及實驗結果回收和顯示等功能。實驗時,通過對計算機中的實驗系統軟件進行相應操作,就可改變實驗電路狀態。具體原理是:實驗系統軟件通過USB把相關實驗操作數據發送給調試適配器,調試適配器把數據按照JTAG協議傳遞到片上調試器,再由片上調試器對實驗電路進行寫入、讀取操作,之后把實驗結果返回實驗系統軟件,顯示于交互界面上供實驗人員觀察[5]。不同的實驗可定義不同的虛擬實驗板的外觀,和傳統的實際實驗板相比,學生不需去記憶輸入輸出元件與實驗原理的對應,直觀高效,計算機部件實驗中的ALU運算器實驗、數據通路實驗的虛擬實驗板如圖2所示。

圖2 部件實驗虛擬實驗板示例
和其他FPGA實驗平臺相比,采用JTAG調試技術使得系統更簡潔、可靠性更高;和單純使用FPGA開發板相比,虛擬實驗軟件突破了開發板開關等元件數量的限制,同時避免了由于反復人為操作而造成的損耗;和一般的以實物照片為界面的虛擬實驗平臺相比,基于原理圖的虛擬實驗板使學生能夠將注意力集中在實驗原理而不是操作上。
加強“計算機組成原理”課程的實踐教學,構建課程實驗、課程設計等多層次的實踐教學體系。課程實驗指的是部件實驗,包含基本電路實驗、ALU運算器實驗、存儲器實驗、數據通路實驗等4個實驗。每個實驗又包含基礎、提高2部分實驗,并把簡單驗證性實驗逐步改為“驗證性-設計性-綜合性”的多層次實驗模式[9]。根據不同專業的教學要求不同、學生能力不同,可以安排不同層次和難度的實驗,充分發揮學生的能動性[10]。如對于計算機偏軟專業,學生以了解計算機的組成、結構為目標,無需深入設計系統,不需要掌握具體的實驗電路的編寫方法,利用Verilog設計的實驗電路由教師提供,直接下載到FPGA的實驗板上,通過實驗平臺提供的實驗軟件驗證結果,完成簡單的驗證性實驗;而對于計算機偏硬專業,側重培養學生系統設計、分析和解決問題的能力,需要學生根據設計要求利用Verilog設計實驗電路,然后下載到FPGA實驗板,完成一定難度的設計性實驗。鼓勵能力較強的學生積極參與綜合性實驗,通過實驗難度的不斷提高,循序漸進、由淺入深、不斷加強學生的動手能力。
在課程設計環節上,同樣針對不同的專業,要求不一樣,如計算機偏軟專業,主要完成微程序設計,而對于計算機偏硬專業,則主要完成單周期MIPS CPU的設計,要求完成至少7條指令的擴展。另外,根據學生能力的強弱,還可以擴展多條指令或進行多周期、流水線CPU設計,通過這類復雜的工程問題,培養學生的創新能力和綜合能力。
(1) 結合新的實驗平臺,編寫實驗指導書。指導書包括學生版和教師版,學生版對實驗內容、實驗步驟做詳細的說明,但關鍵的代碼空缺,由學生填空,教師版則提供完整的程序,供教師備課參考。同時制作多媒體實驗課件,有助于學生預習、準備實驗。
(2) 加強實驗過程的指導。在學生實驗出現錯誤,無法得出正確的結果時,既不是代替學生調試,也不是簡單的指出錯誤,而是引導學生利用所學知識分析問題、解決問題[9]。
(3) 改革實驗考核方法,完善考核機制。實驗考核是實驗中非常重要的環節,是檢驗實驗教學質量和教學效果的主要手段。在實驗考核中,除了檢查學生實驗的完成情況,增加答辯環節,檢查學生靈活運用、分析問題的能力,另外還須檢查學生撰寫的實驗報告。最后的實驗成績由實驗完成情況(占50%)、答辯情況(占30%)、實驗報告內容(占20%)3個部分構成,以優、良、中、及格、不及格作為實驗的最終成績。
在考核學生實驗完成情況時,還須注意到教學對象的不同則考核的內容不同。如對于ALU運算器實驗,計算機偏軟專業的學生無需自己編程設計電路,學生把教師設計好的實驗電路下載到FPGA板,考核時主要考核學生是否熟悉ALU運算器的原理、驗證運算結果的正確性;而對于計算機偏硬專業的學生,須根據要求設計實驗電路,主要考核學生所設計的ALU功能是否能夠實現,并對想實驗成績得優的學生增加難度,隨機增加一個運算功能,讓學生當場修改電路,以測試學生是否完全掌握,是否能夠真正達到優。
近幾年來,我們基于FPGA對“計算機組成原理”實踐教學進行了改革。我校從2015年開始,從計科12班、計科13班各選拔10名優秀學生進行試點,2017年春季將課程的改革擴展到計科14全班41名學生。在課程設計環節,大部分學生完成了至少7條指令的單周期CPU的設計,有4名學生完成了流水線CPU的設計,學生的實踐能力大為提高,進一步加深了理論知識的理解,也有了一定的成就感。
在近幾年的實驗教學改革過程中,逐年進步,積累了一定的經驗,也遇到了一些問題,今后還需不斷地改進和提高。
近年來,計算機教指委從計算機能力培養的角度提出:計算機專業學生除了具有計算思維能力、程序設計與實現能力、算法設計與分析能力外,更重要的是要加強系統能力培養[11]。通過開發設計基于FPGA的“計算機組成原理”新實驗平臺,已經可以貫通“數字邏輯”“計算機組成原理”課程,后續還將進一步更新實驗平臺,貫通“操作系統”“編譯原理”等課程,實現硬件和軟件的貫通,提高學生的系統設計能力。
由于地方高校師資較為缺乏,需加強實驗教師的培養,積極鼓勵實驗教師不斷充電學習,參加各類學術會議進行交流和培訓,提升實驗教師的專業技術水平,同時充分發揮傳幫帶的作用,把優秀的上屆學生作為助教,可以減輕實驗教師的壓力,彌補助教人手不夠的問題。
根據我校自身培養目標,接軌新技術、修訂實驗教材,使教學內容與時俱進。同時依托學校網絡教學平臺,使實驗課件、實驗指導等教學資源上網,方便學生課后自學。
目前實驗設備依然不足,淘汰老式的“計算機組成原理”實驗儀后,實驗室配備了20套FPGA開發板及實驗調試系統,構成新的實驗平臺。由于開課班級較多,實驗設備數量不夠,實驗排課壓力很大,除了向學校爭取經費、加大實驗設備投入之外,建立開放式實驗室,滿足對學生課后實驗開放的需求,將大大提升實驗設備的技術含量和使用效率。
“計算機組成原理”課程的理論性、實踐性、應用性都很強,同時授課專業面較廣,針對不同專業、不同層次的教學要求引入了“驗證性—設計性—綜合性”的多層次實驗模式,做到既因材施教,又培養學生的動手能力、創新能力。開發的“計算機組成原理”新實驗平臺有力地支撐了實驗教學的開展,一方面提升了實驗教學效果,促進了課程教學質量的提高,另一方面提高了實驗效率,降低了實驗板的故障率和日常維護成本。
參考文獻(References)
[1] 陳輝,李敬兆.計算機專業硬件課程教學改革探索[J].計算機教育,2014(5):39-42.
[2] 袁春風,張澤生.計算機組成原理課程實踐教學探索[J].計算機教育,2011(10):110-114.
[3] 張麗艷,韓德強,邵溫.基于 FPGA平臺的計算機硬件實踐教學探索[J]. 計算機教育,2010(7):113-116.
[4] 肖鐵軍,史順波,沈健.基于JTAG的計算機硬件實驗系統的設計與實現[J]. 數據通信,2013(2):24-28.
[5] 常志恒,肖鐵軍,史順波.基于JTAG的片上調試器與調試系統的設計實現[J]. 計算機工程與應用,2012(10):78-82.
[6] 趙蕙,肖鐵軍.邊界掃描測試技術在硬件實驗中的應用[J]. 微計算機信息 (嵌入式與SOC),2007(8):279-281.
[7] 于洋,肖鐵軍,丁偉.面向教學的16位CISC微處理器的設計[J]. 計算機工程與設計,2010,31(16):3584-3587.
[8] 秦磊華,王小蘭,張園.“計算機組成原理”設計性實踐教學模式研究[J]. 電氣電子教學學報,2009(4):68-70.
[9] 李山山, 全成斌. 計算機組成原理課程實驗教學的調查與研究[J]. 計算機教育,2010(22):127-129.
[10] 蔣宗禮.計算機類專業能力構成與培養[J]. 中國大學教學, 2011(10):11-14.
[11] 姜欣寧,陳宇.“計算機組成原理專題實驗”的教學改革[J]. 實驗技術與管理,2013,30(4):162-165.