摘要:本文主要研究如何利用MAX+PlusII或QuartusII虛擬平臺進行計算機系統硬件課程設計的虛擬實踐方案。
關鍵詞:EDA;硬件課程;實踐方案
中圖分類號:G642文獻標識碼:B
文章編號:1672-5913(2007)14-0090-04
在當前的培養方案中,各高校都非常重視計算機專業課程的教學和實踐過程,訓練學生的思考能力、動手能力和創新能力。而虛擬實踐的實現既能夠達到教學目標,又能夠節省實驗資源,還可激發學生的學習興趣,鼓勵優秀的學生不受實驗器件的限制而自行設計新的實踐內容,以達到進一步提高動手能力及創新能力的目的。
1國內外計算機硬件課程實踐教學現狀
對于計算機組成原理等這樣較大規模的硬件系統課程實踐而言,為了加深學生對計算機組成、工作原理及整機概念的理解,學生需要利用中大規模集成電路等器件對計算機系統的組成進行分析、設計、實現、測試和驗證。當前,這些器件和整機的設計與實現基本上是在實驗室特定的硬件平臺上進行的,由于實驗經費有限、硬件平臺數量的限制,學生參與的實驗多半是驗證性的實驗,導致學生對實驗喪失興趣,抄寫實驗報告的現象非常嚴重。因此,在進行課程實踐過程中,傳統的實驗模式不能對學生因材施教,束縛了對學生創新能力的培養。
各大學提供的課程項目實驗的內容差別不大,一般都有運算器實驗、控制器實驗、存貯系統實驗等單項實驗。研究型大學會要求學生分組完成一、兩個綜合性的實驗項目。如計算機系統的整機設計。雖然各大學提供的課程實驗的內容差別不大,但各大學在如何完成課程實驗的實現方式上有較大區別,綜合起來有五種模式:
(1) 基于匯編:實驗通過編寫相應的匯編語言程序來完成,可幫助學生理解與系統組成有關的一部分主要思想。這種實驗方式簡單易行,但無法了解到詳細的硬件設計。
(2) 基于仿真系統:實驗通過專門設計的仿真系統來完成,這也是一種用軟的方法來完成硬件實驗的主要途徑。國外有很多大學采用,也有很多流行的仿真軟件。比如winDLX,使用DLX仿真器、對程序進行性能分析,認識數據相關、控制相關、結構相關、相關專用通路的概念以及它們對性能的影響。還可以設計不同的流水線控制策略,評價不同流水線對性能的影響。通過仿真的手段,設計并驗證cache組織對計算機性能的影響等。
(3) 基于高級語言:學生通過JAVA、DELPHI、PowerBuilder、C/C++、VC、Vb等編程語言自己編寫類似WinDLE的仿真環境。
(4) 基于EDA平臺:實驗借助于EDA(比如,Altera公司的MAX+PlusII及QuartusII)平臺,利用硬件編程語言(VHDL)編寫程序,編譯后下載到在系統可編程芯片SoC上,即可完成諸如數據通路、CPU等的設計。這種實驗方式可充分利用VHDL自身的特點,即用軟件的方式來設計硬件,修改起來十分方便。這無疑是一種較為先進的實驗方式,但一方面學生理解掌握VHDL語言需要一定的時間,另一方面對實驗室的硬件配置也有較高的要求,需要有相應的EDA工具等等。
(5) 基于專門的實驗計算機系統:在專門設計的實驗計算機系統上完成課程實驗。這種實驗方式國內的大學采用的較多。如清華大學根據目前計算機和集成電路技術的發展現狀,設計研制了“開放式教學CPU設計與測試系統”,通過這個開放式的設計型、研究型大型教學實驗,使實驗者不僅能夠學習CPU的設計、驗證和測試方法,還能夠更進一步的理解計算機原理和組成以及系統結構方面的知識,同時學習一些相關EDA工具軟件的使用方法。在04年,清華本科生使用該實驗裝置成功的完成了課程實踐。他們不僅設計出自己的CPU,而且百花齊放,設計中簡單的有無流水無cache的、稍復雜的有2級流水(無cache)到5級流水(無cache)到5級流水(帶cache)到超標量的CPU。
上述幾種實現方式雖然不同,但都具有幫助學生加深對基本概念和理論知識的理解的作用。同時每種實現方式也都具有自身的特點,各校一般都結合本校的特點和具體的實驗內容選取其中一種或綜合采用其中某幾種。
2虛擬化實驗平臺的選擇
通過對國內外相關情況的調查、分析、研究,我們考慮可以利用復雜可編程邏輯設計器件(CPLD)設計軟件作為電子設計自動化(EDA)實驗平臺,模擬真實的硬件平臺,從而達到虛擬化計算機系統硬件實驗的目的。Altera公司的MAX+PlusII及QuartusII平臺是完全集成化、易學易用的可編程邏輯設計環境,主要用于設計新器件和中大規模CPLD/FPGA。它具有硬件描述語言、電路原理圖、時序圖等多種輸入方式,利用其所提供的標準門電路、芯片等邏輯器件,完成數字電路從設計輸入、編輯、編譯、仿真、封裝到下載的全過程。MAX+PlusII及QuartusII平臺可以保證所設計系統的可靠性、高效性和靈活性,其強大的圖形界面和完整的幫助文檔,使學生能夠輕松快速地掌握和使用該EDA平臺,進行邏輯電路及相關系統的設計。
近幾年來隨著計算機和微電子技術的發展,CPU的設計一直是國內外研究的熱點。計算機系統設計方法和手段都發生了巨大變化。美國加州伯克力分校、西北大學等著名高校開設的計算機組成與系統結構的課程實驗都是通過Verilog HDL硬件描述語言來進行計算機功能部件的設計。而國內清華大學、北京工業大學、北京理工大學、國防科學技術大學、湖南大學等都已經采用這種實驗方式,并自主開發了適合自己的實驗平臺。
國內部分高校通過實踐發現,采用虛擬化方式來完成計算機系統硬件課程設計不僅是可能的,而且能夠擺脫以往采用的實踐平臺的束縛,并且可以根據需要設計出各種不同水平的實驗及課程設計。此外,由于虛擬平臺的靈活性和可保存性,極大地方便了課程實踐的設計者和參與實踐的學生。教師可以根據課時的要求,方便地調整課程實踐的方案;學生可以根據每個人的時間,隨意安排進行實踐的時間。同時可以充分發揮出學生的潛能,進行具有創新性的設計及實踐。
通過調研發現,現在越來越多的高校已經認識到將硬件描述語言引入計算機硬件類課程的重要性,作為計算機專業的學生應該有機會在大學里把分散在各門計算機系統相關課程中的知識鏈接起來,學會在設計實際系統時做復雜的設計選擇和折衷,獲得設計一個“可用的”計算機系統的重要經歷。通過思考整個系統的設計,樹立起計算機工程的概念,掌握使用工業的EDA軟件工具和技術,使他們進入工業界和研究界后能很快適應工作需要。而在大學里構建一個實際的計算機系統,時間、人力和資源都是不允許的。快速原形技術以及新一代的大規模現場可編程邏輯器件使得完成計算機系統原型設計成為可能。先建立處理器微體系結構模型;用高級語言(如C)寫出處理器模擬器(定義處理器的高層結構,獲得一個可執行的處理器微體系結構定義);再用硬件描述語言(如Verilog)寫出處理器仿真器(代表處理器的仿真實現);然后在模擬器和仿真器上運行交叉編譯的應用程序,可以觀察指令的逐條執行,分析實際機器的行為,以及應用特征、各種設計條件和約束對處理器體系結構設計的影響;最后,在一塊可重構的FPGA上實現驗證可運行真實程序和操作系統的處理器設計。在整個設計中,處理器體系結構設計是計算機系統結構設計中最重要的部分之一。學生能夠設計一個處理器,就能夠設計其它任何復雜的數字系統;理解如何設計出一個基本的通用CPU,對于設計更復雜的處理器或計算機系統是十分重要的開端。可以以一個精簡的CPU設計為載體,基于高密度現場可編程器件(FPGA)構建可重構的計算機系統結構快速原型設計實驗平臺,給學生創造一個構建真實計算機系統原型的機會,學習在整個系統構建過程中作出軟硬件設計的決定。實驗開始時,先向學生提供一個已構建好的基本CPU模型、測試程序、以及經過裁剪的在該模型上可執行的操作系統和經過修改的編譯器。要求學生為其添加新的功能需求,思考如何提出或選擇某個候選的解決方案,如何評估解決方案,以及如何作出設計改動。學生在此過程中獲得復雜數字系統設計、模擬、驗證和評估方面的經驗。盡管整個過程是在已有的模型下經過改造和擴充完成,但在整個實驗過程中,學生獲得了復雜硬件設計的實際經驗,對他們未來從事計算機系統的設計和研究是極為重要的。
3實施方案的選擇
現在國內外計算機硬件課程的開設有三種情況:第一,只開設一門課程。國外有些大學只開設一門課程,比如,MIT的Computing Structure(計算結構),Harvard的Computer Hardware(計算機硬件)。課程的內容從基本的MOS管、集成電路、流水線到整個計算機系統。課程有十幾位老師分專題講授;第二,分別設置三門課:計算機系統結構、計算機組成原理和數字邏輯;第三,設置兩門課:計算機組成與系統結構,數字邏輯。國內的學校一般采用第二、第三種方式。
教學的主要內容包括:計算機系統結構的基本概念、指令系統、CPU設計、流水線技術、存儲系統、輸入輸出系統、向量標量處理機等。根據各高校學生的特點,在實施計算機組成原理及系統結構課程的實踐教學時采用不同的教學安排,大概分為以下四類:
(1)“計算機組成原理”理論教學54學時,基礎實驗教學18學時,兩周課程設計;
(2) 在“計算機組成原理”學習完后,單獨開設“計算機組成原理課程設計”,總學時48學時,其中8學時課堂講授EDA知識、課內實驗40學時;
(3) 在“數字邏輯”學習完后,與“計算機組成原理”同一學期開設專業選修課“VHDL和計算機硬件模塊設計”;
(4) 在第三學期(短學期)一個月時間進行系統設計。
從計算機組成實驗的發展看,逐步加入VHDL實現的實驗內容,以取代部分傳統的硬連線實驗是現在的發展方向。
高等教育是分層次、分對象的。作為重點大學主要培養的是研究型的人才,而作為普通本科院校培養的是“研究+實踐型”的面向一線的應用型工程人員。所以教育的對象既要有理論基礎,又要有很強的實踐的能力。普通高校培養的不是設計CPU的人才,所以在實踐教學上可以選擇第3種安排,作為計算機應用專業的一個研究方向,通過選修課的方式培養人才。在教學中一邊介紹EDA的知識,一邊通過實踐掌握基本組合電路和常用時序邏輯電路的設計方法,比如門電路、編譯器和譯碼器、多路選擇器、比較器、加法器、觸發器、鎖存器、寄存器和一位寄存器、計數器、分頻器。通過先復習基本概念、邏輯表達式、邏輯電路圖和真值表,再給出該電路的功能描述的VHDL源代碼的方法,這些在數字系統中應用十分廣泛的基本電路,通過實驗不斷的去研究它們的內在邏輯,掌握用VHDL描述硬件電路的思路和方法。從基本電路的實現到運算器、存儲器甚至控制器等計算機功能模塊的設計,最后完成基本模型機的設計要求。
4總結
針對二類本科學生的特點,在進行計算機硬件課程實踐教學實施方案的研究過程中,需要考慮好以下幾點:
(1) 要提出多個難易程度不等的實驗項目設計方案,這個工作可以通過畢業設計由畢業生和老師一起研究,然后在實驗班實施。
(2) 根據設計中運用的VHDL的語法等組織教學內容。在教學過程中,要特別注意VHDL編程與一般高級語言編程的區別,注意不能完全脫離硬件電路,注意理論和實踐相結合,注意難點和誤點內容的講解。在教學中,要多講實際例子,比如從最簡單的計算機運算部件的設計開始,設計加法器、乘法器、除法器、邏輯運算器、移位器、計數器、比較器、譯碼器等。再設計存儲器、核心是處理器CPU的設計。
(3) 合理安排課程內容,調整教學計劃。作為硬件描述語言課程的知識引入不易太早,至少應在修完C語言程序設計和數字電路課程之后進行。作為我校學生,大部分基礎較差,自學能力和自主解決問題的能力不強,所以在進行改革過程中實施起來較困難,并且內容不易過多過難,需要精心組織、設計一套適合我校學生水平的實施方案。
我們整體的設想和追求的目標是:以全面提高教學質量為宗旨,以創新設計模式為指導,將硬件描述語言、先進的EDA開發工具和技術引入計算機硬件類課程的教學和實踐過程中,逐步更新傳統硬件實驗教學中的陳舊內容、模式及其實驗平臺,創造一個從驗證轉向設計,從單一走向綜合,從封閉走向開放的全新的實驗教學環境。
參考文獻:
[1] 羅克露. 計算機組成原理實驗改革探索[J]. 實驗科學與技術,2004,(3).
[2] 竇衡. 加強EDA教學,培養電子系統集成設計人才[J]. 電子科技大學學報社科版,2005,(7).
[3] 蔡文偉. “計算機組成原理”教學實踐中的幾點思考[J]. 肇慶學院學報,2004,(2).
[4] 李山山,湯志忠,周繼群. 基于FPGA的開放式教學CPU的設計與測試系統[J]. 計算機工程與應用,2005,(14).
[5] 葉雪軍. 計算機系統結構教學現狀和幾點思考[J]. 中國科學教育,2005,(8).
[6] 葉雪軍. 基于EDA的“數字邏輯”課程的探討[J]. 計算機教育,2006,(8).
作者簡介:
葉雪軍,湖北經濟學院計算機科學與技術學院講師,主要從事數字邏輯、計算機組成原理和計算機系統結構教學工作,研究方向:計算機控制技術、嵌入式系統及應用。該課題是2006年湖北經濟學院的校級教學研究項目。
聯系方式:yxj@hbue.edu.cn
通信地址:武漢江夏藏龍島科技園區洋湖大道特1號湖北經濟學院計算機科學與技術學院
郵政編碼:430205