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