桑國明,劉智
(大連海事大學(xué) 信息科學(xué)技術(shù)學(xué)院,遼寧 大連)
計算機組成原理是計算機科學(xué)與技術(shù)專業(yè)的核心專業(yè)基礎(chǔ)課程,在計科專業(yè)的課程體系中具有承上啟下的重要作用[1],其先修課程有離散數(shù)學(xué)和數(shù)字邏輯與數(shù)字系統(tǒng),后續(xù)課程包括微機原理與匯編語言、操作系統(tǒng)、編譯原理和計算機系統(tǒng)結(jié)構(gòu)等[2-3],且后續(xù)課程的知識點均與計算機組成原理課程的內(nèi)容具有密切的聯(lián)系。因此,學(xué)習(xí)好計算機組成原理,對后續(xù)課程的學(xué)習(xí)具有舉足輕重的作用。
計算機組成原理全面學(xué)習(xí)組成現(xiàn)代計算機的五大功能部件(即運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備)的基本組成和工作原理,以及將這五大部件通過總線互聯(lián)構(gòu)成整機的技術(shù)。其學(xué)習(xí)內(nèi)容對于大學(xué)低年級的學(xué)生來說具有抽象程度高、學(xué)習(xí)難度大的特點,為了讓學(xué)生能夠深入理解所學(xué)內(nèi)容并培養(yǎng)他們的工程實踐能力,實驗就成為了該課程學(xué)習(xí)的必要環(huán)節(jié)。目前在我國眾多的工科院校中,該課程實驗的開設(shè)方法各不相同,而隨著2016 年6月我國加入《華盛頓協(xié)議》[4],對工程專業(yè)人才培養(yǎng)提出了更高的要求,如工程專業(yè)人才培養(yǎng)目標中要求工程專業(yè)的畢業(yè)生要具備解決復(fù)雜工程問題的能力,這就使得一些傳統(tǒng)的實驗教學(xué)方案已經(jīng)不能滿足新的人才培養(yǎng)目標的要求,從而需要我們探索新的實驗教學(xué)方案,并且該方案應(yīng)能夠有效地與先修及后續(xù)課程的實驗相銜接。
計算機科學(xué)與技術(shù)專業(yè)是目前高校中最為普及的專業(yè),但因為每個學(xué)校的教學(xué)條件和培養(yǎng)目標不同,計算機組成原理實驗教學(xué)在內(nèi)容和教學(xué)方式上差別較大,總結(jié)起來總體上可以分為基于實驗箱開展實驗教學(xué)、基于虛擬仿真平臺開展實驗教學(xué)和基于FPGA 器件開展實驗教學(xué)等幾種方式。
這是早期各高校普遍采用的實驗教學(xué)方式,如清華大學(xué)和北京郵電大學(xué)都研制了相關(guān)的實驗設(shè)備。這種實驗設(shè)備是將構(gòu)成模型計算機的各個組成部分(如運算器、控制器、存儲器等)以單元電路的形式組織在一塊PCB 上,并且將如數(shù)據(jù)線、地址線等基本的信號線都連接完畢,只保留一些(如片選信號、存儲器讀寫信號之類)信號供學(xué)生在實驗時進行連接。因為實驗臺上電路的功能和結(jié)構(gòu)都比較固定,學(xué)生在實驗時不能做出改變,因此這種實驗臺比較適合開展一些驗證性的實驗,比如驗證計算機各組成部分的工作原理,能夠開展綜合性強一些的實驗就是將各單元組合起來構(gòu)成一個模型計算機,幫助學(xué)生理解計算機整機的結(jié)構(gòu)和工作原理,但總體上實驗的開展仍然是在設(shè)備廠家給定的設(shè)計方案上進行驗證,學(xué)生可以自己進行設(shè)計的內(nèi)容很少,至于進行創(chuàng)新性的設(shè)計就更加困難了。另外,實驗箱往往價格較高,實驗室的建設(shè)需要比較大的投資,還要占用專門的實驗場地,這就導(dǎo)致實驗的時間和地點不夠靈活。隨著實驗的進行,實驗臺的老化和損壞不可避免,后期的維護工作非常繁重且需要持續(xù)地進行投入,而且這種實驗設(shè)備很難在后續(xù)課程中繼續(xù)使用,因此導(dǎo)致計算機組成原理課程的實驗和相關(guān)課程的實驗完全割裂開來,不利于培養(yǎng)學(xué)生完整計算機系統(tǒng)(既包括軟件又包括硬件)的思想,也就不利于學(xué)生解決復(fù)雜工程問題能力的培養(yǎng)。
因為傳統(tǒng)的基于實驗箱的實驗方式存在實驗室建設(shè)投資大、設(shè)備維護成本高及實驗開展不靈活等問題,國內(nèi)外高校都在不斷探索新的實驗教學(xué)方式。隨著計算機技術(shù)(尤其是網(wǎng)絡(luò)技術(shù)和虛擬仿真技術(shù))的出現(xiàn)和成熟,先后出現(xiàn)了多種仿真實驗教學(xué)平臺,而且這種仿真實驗教學(xué)技術(shù)和平臺仍在不斷的發(fā)展完善中。
在國內(nèi),大連理工大學(xué)軟件學(xué)院研發(fā)了在通用計算機上運行的純軟件仿真環(huán)境,可以支持如運算器、存儲器、控制器及模型機設(shè)計等主要實驗。湘南學(xué)院軟件與通信工程學(xué)院也開發(fā)了多思計算機組成原理網(wǎng)絡(luò)虛擬實驗系統(tǒng)DS-VLAB。另外隨著云計算和大數(shù)據(jù)技術(shù)的發(fā)展,一些高校和研究機構(gòu)正在研制基于云平臺的虛擬仿真實驗教學(xué)系統(tǒng),并希望通過大數(shù)據(jù)分析技術(shù)記錄和跟蹤每個學(xué)生的實驗過程,為每個學(xué)生提供個性化的實驗分析和指導(dǎo)[5]。
在國外,Logisim 是一個廣泛采用的仿真實驗平臺。Logisim 提供了從基本的門電路到觸發(fā)器、比較器和運算器等組合邏輯電路以及如鍵盤、數(shù)碼管、LED顯示屏等常用的外圍器件,能夠滿足計算機組成原理課程中各種性質(zhì)實驗的需要。除此之外,Proteus 因具有龐大的元器件庫和各種仿真儀器儀表,可以支持從計算機組成部件到整機的設(shè)計和仿真,在計算機組成原理實驗教學(xué)中也得到了廣泛的應(yīng)用[6]。盡管虛擬仿真實驗平臺使得實驗的開展變得方便靈活,而且降低了實驗成本,但這些平臺往往只能滿足單個課程或僅僅是硬件類課程的實驗要求,不能有效地將組成原理課程和如操作系統(tǒng)等計科專業(yè)核心課程的實驗進行整合,仍然不利于學(xué)生解決復(fù)雜工程問題能力的培養(yǎng)。
FPGA(Field Programmable Gate Array) 器 件因其內(nèi)部豐富的資源和靈活的可編程特性在電氣信息類課程的實驗教學(xué)中得到了越來越多的應(yīng)用。在基于FPGA 的實驗中,學(xué)生可以通過如Verilog HDL等硬件描述語言進行各種功能模塊的設(shè)計,然后經(jīng)過仿真、綜合、布局布線、調(diào)試與加載配置等步驟最終在FPGA 上對設(shè)計進行實現(xiàn)。目前國內(nèi)如首都師范大學(xué)、中科院計算所、清華大學(xué)和東南大學(xué)等很多教學(xué)和科研機構(gòu)都開展了基于FPGA 的相關(guān)實驗教學(xué)和研究。
這種實驗方式的設(shè)計和仿真等一系列過程都可以在個人計算機(如筆記本電腦)上完成,只有到加載配置階段才需要相應(yīng)的硬件設(shè)備,而硬件設(shè)備往往都十分小巧,便于隨身攜帶,因此這種實驗方式具備了虛擬仿真實驗方便靈活開展教學(xué)的優(yōu)點,而且可以與操作系統(tǒng)等后續(xù)課程的實驗進行整合,培養(yǎng)學(xué)生軟、硬件協(xié)同設(shè)計的綜合實踐能力。
工程教育質(zhì)量認證對工程教育人才能力培養(yǎng)提出了12 個目標要求,其中解決復(fù)雜工程問題的能力是其中一個重要的指標點。對于計科專業(yè)來說,為了進行這一能力的培養(yǎng),國家計算機系統(tǒng)能力培養(yǎng)工作小組提出了“一個 CPU、一個編譯器、一個操作系統(tǒng)”的方案[7]。這一方案中的三項內(nèi)容顯然是計科專業(yè)學(xué)生應(yīng)該具備的最核心能力,而如果能夠通過對相關(guān)課程的教學(xué)環(huán)節(jié)進行整合,使得相關(guān)課程的教學(xué)各環(huán)節(jié)進行緊密的銜接,定能達到事半功倍的效果。為此,筆者在總結(jié)自己多年計算機組成原理教學(xué)經(jīng)驗并借鑒國內(nèi)兄弟院校相關(guān)課程實踐教學(xué)方案的基礎(chǔ)上,給出一種計算機組成原理課程的實驗教學(xué)方案,內(nèi)容如表1 所示。
表1 計算機組成原理實驗內(nèi)容
鑒于前文對目前已有的各種計算機組成原理實驗教學(xué)方法的分析,因基于FPGA 開展實驗教學(xué)具有的諸多優(yōu)點,表1 中實驗的開展均在基于FPGA的實驗開發(fā)平臺上進行。表中的實驗覆蓋了計算機主機即CPU+ 主存的所有組成部分,實驗類型包括驗證型、設(shè)計型和綜合型幾種不同類型,其中前三個實驗較為基礎(chǔ),學(xué)生通過這三個實驗熟悉實驗環(huán)境并掌握計算機基本功能單元的設(shè)計方法,繼而通過后兩個實驗實現(xiàn)更復(fù)雜的流水CPU 和基本模型機設(shè)計,從而以由淺入深、循序漸進的方式使學(xué)生的實踐和設(shè)計能力得到不斷的提升。另外,基于FPGA的實驗方式可以讓學(xué)生有較大的發(fā)揮空間,比如流水CPU 設(shè)計實驗中,學(xué)生可以根據(jù)自己的能力,設(shè)計具有不同數(shù)量過程段的CPU,從而有利于激發(fā)學(xué)生的創(chuàng)造力,不斷提高實驗的復(fù)雜程度,進而培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力。
基于FPGA 實驗平臺開展計算機組成原理實驗教學(xué)的優(yōu)勢是較為明顯的,如果能夠?qū)⒂嬎銠C組成原理實驗與其主要先修及后續(xù)課程的實驗結(jié)合起來,形成如表2 所示的貫穿式的實驗教學(xué)體系,則將更有利于對學(xué)生進行系統(tǒng)性的能力培養(yǎng)。
表2 基于FPGA 的計科專業(yè)貫穿式實踐教學(xué)體系
因基于FPGA 的設(shè)計需要使用Verilog HDL 等硬件描述語言,而計算機組成原理實驗課時有限,所以建議將HDL 的學(xué)習(xí)前移到數(shù)字邏輯與數(shù)字系統(tǒng)實驗中,結(jié)合如觸發(fā)器、譯碼器、全加器等基本邏輯電路的學(xué)習(xí),熟練應(yīng)用HDL 進行邏輯設(shè)計,為計算機組成原理的學(xué)習(xí)打下基礎(chǔ)。當在計算機組成原理課程中學(xué)習(xí)了計算機各組成部分的邏輯設(shè)計方法之后,則可以在計算機組成原理課程實踐中將目前我國處理器芯片領(lǐng)域廣泛采用的RISC-V 架構(gòu)CPU核引入到模型機設(shè)計中,讓學(xué)生的學(xué)習(xí)更加接近工程實際,為將來的工作打下堅實的基礎(chǔ)。后期的接口技術(shù)實驗則圍繞之前設(shè)計的模型機擴展各種外圍接口電路來進行完整的計算機硬件子系統(tǒng)設(shè)計。操作系統(tǒng)實驗的開展則可以圍繞此前設(shè)計的計算機硬件子系統(tǒng),開發(fā)一個可以安裝運行在該硬件子系統(tǒng)上的操作系統(tǒng)內(nèi)核及相應(yīng)的接口驅(qū)動程序,編譯原理實驗則可繼續(xù)設(shè)計一個運行在已經(jīng)完成的軟、硬件平臺上的編譯器,為已有的計算機系統(tǒng)開發(fā)一種高級程序設(shè)計語言。在教學(xué)中,基于RISC-V 架構(gòu)的CPU 核、相應(yīng)的操作系統(tǒng)內(nèi)核及編譯器都有開源的資料可以用于教學(xué)[8],教師可以結(jié)合已有的開源設(shè)計講解軟硬件系統(tǒng)的設(shè)計原理,然后指導(dǎo)學(xué)生進行系統(tǒng)移植和后期開發(fā)。在這樣的教學(xué)方案指引下,學(xué)生在完成專業(yè)課程學(xué)習(xí)的同時也就開展了完整的計算機硬件、軟件系統(tǒng)的開發(fā)過程,課程間內(nèi)容的有機結(jié)合能夠使學(xué)生清楚地認識到課程間的聯(lián)系,幫助他們建立起完整的專業(yè)知識體系,從而實現(xiàn)專業(yè)培養(yǎng)目標,使學(xué)生最終具備解決復(fù)雜工程問題的能力。
工程教育質(zhì)量認證對工科專業(yè)人才的實踐能力和解決復(fù)雜工程問題的能力提出了更高的要求,為達到這些要求,我校計科專業(yè)對課程體系進行了整體的設(shè)計,其中在實踐教學(xué)環(huán)節(jié)的設(shè)計中,在硬件及系統(tǒng)教學(xué)方面,則以計算機組成原理這一核心專業(yè)基礎(chǔ)課程的實驗教學(xué)為中心,將其先修與后續(xù)課程的實驗教學(xué)有機地聯(lián)系在一起,形成一個貫穿式的實驗教學(xué)體系。目前,這一教學(xué)方案正在教學(xué)中有序推進,學(xué)生在實踐課程中表現(xiàn)出來的積極性明顯增強,專業(yè)教師將按照工程教育認證持續(xù)改進的教育思想不斷改進和完善教學(xué)方法和內(nèi)容,專業(yè)的人才培養(yǎng)質(zhì)量定會得到不斷的提高。