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

表1 計算機組成原理實驗內容
鑒于前文對目前已有的各種計算機組成原理實驗教學方法的分析,因基于FPGA 開展實驗教學具有的諸多優點,表1 中實驗的開展均在基于FPGA的實驗開發平臺上進行。表中的實驗覆蓋了計算機主機即CPU+ 主存的所有組成部分,實驗類型包括驗證型、設計型和綜合型幾種不同類型,其中前三個實驗較為基礎,學生通過這三個實驗熟悉實驗環境并掌握計算機基本功能單元的設計方法,繼而通過后兩個實驗實現更復雜的流水CPU 和基本模型機設計,從而以由淺入深、循序漸進的方式使學生的實踐和設計能力得到不斷的提升。另外,基于FPGA的實驗方式可以讓學生有較大的發揮空間,比如流水CPU 設計實驗中,學生可以根據自己的能力,設計具有不同數量過程段的CPU,從而有利于激發學生的創造力,不斷提高實驗的復雜程度,進而培養學生解決復雜工程問題的能力。
基于FPGA 實驗平臺開展計算機組成原理實驗教學的優勢是較為明顯的,如果能夠將計算機組成原理實驗與其主要先修及后續課程的實驗結合起來,形成如表2 所示的貫穿式的實驗教學體系,則將更有利于對學生進行系統性的能力培養。

表2 基于FPGA 的計科專業貫穿式實踐教學體系
因基于FPGA 的設計需要使用Verilog HDL 等硬件描述語言,而計算機組成原理實驗課時有限,所以建議將HDL 的學習前移到數字邏輯與數字系統實驗中,結合如觸發器、譯碼器、全加器等基本邏輯電路的學習,熟練應用HDL 進行邏輯設計,為計算機組成原理的學習打下基礎。當在計算機組成原理課程中學習了計算機各組成部分的邏輯設計方法之后,則可以在計算機組成原理課程實踐中將目前我國處理器芯片領域廣泛采用的RISC-V 架構CPU核引入到模型機設計中,讓學生的學習更加接近工程實際,為將來的工作打下堅實的基礎。后期的接口技術實驗則圍繞之前設計的模型機擴展各種外圍接口電路來進行完整的計算機硬件子系統設計。操作系統實驗的開展則可以圍繞此前設計的計算機硬件子系統,開發一個可以安裝運行在該硬件子系統上的操作系統內核及相應的接口驅動程序,編譯原理實驗則可繼續設計一個運行在已經完成的軟、硬件平臺上的編譯器,為已有的計算機系統開發一種高級程序設計語言。在教學中,基于RISC-V 架構的CPU 核、相應的操作系統內核及編譯器都有開源的資料可以用于教學[8],教師可以結合已有的開源設計講解軟硬件系統的設計原理,然后指導學生進行系統移植和后期開發。在這樣的教學方案指引下,學生在完成專業課程學習的同時也就開展了完整的計算機硬件、軟件系統的開發過程,課程間內容的有機結合能夠使學生清楚地認識到課程間的聯系,幫助他們建立起完整的專業知識體系,從而實現專業培養目標,使學生最終具備解決復雜工程問題的能力。
工程教育質量認證對工科專業人才的實踐能力和解決復雜工程問題的能力提出了更高的要求,為達到這些要求,我校計科專業對課程體系進行了整體的設計,其中在實踐教學環節的設計中,在硬件及系統教學方面,則以計算機組成原理這一核心專業基礎課程的實驗教學為中心,將其先修與后續課程的實驗教學有機地聯系在一起,形成一個貫穿式的實驗教學體系。目前,這一教學方案正在教學中有序推進,學生在實踐課程中表現出來的積極性明顯增強,專業教師將按照工程教育認證持續改進的教育思想不斷改進和完善教學方法和內容,專業的人才培養質量定會得到不斷的提高。