李東勤,徐勇,常郝
(安徽財經大學管理科學與工程學院,蚌埠233030)
人工智能、大數據、云計算、物聯網等新技術的發展,正在引領科技、應用和社會進入智能時代。計算機系統的設計和應用日益深化,各類新型計算系統及其產業成為主流,計算機技術發展體現了網絡化、融合化、智能化等新特征。在新技術發展和應用新形勢下,對高等學校計算機專業人才培養提出了更高的要求,能夠掌握計算機軟硬件協同工作機制和基本運行原理,具備計算機系統層面的認知與設計能力,能站在計算機系統的高度來考慮問題和解決問題,即計算機系統能力。
為了推動國內高校在計算機系統能力培養方面的教學改革,2010年教育部計算機類專業教學指導委員會(以下簡稱“教指委”)專門成立了“計算機類專業系統能力培養”研究項目組,發表了相關的研究報告[1-4]。在教指委的指導和推動下,國內許多高校開始重視計算機系統方面的教學,積極探索和實踐系統能力培養模式。清華大學、北京航空航天大學、南京大學、浙江大學等國內一流高校早在10年前就已經開始了系統能力培養試點工作,目前已經形成了各自的系統能力培養模式,為國內其他高校提供了豐富的教改經驗。
我校針對計算機系統能力培養,2017年開始參加了高等學校計算機系統類課程教學的幾次研討會和相關導教班,學習到北航、浙大、華科、科大、合工大等高校的相關教學改革經驗,確定了我校硬件系列核心課程的教改思路;結合地方高校生源特點和學校實際軟硬件情況,積極制定適合我校的課程體系以及課程改革方案,并于2018年5月入選教指委高等院校系統能力培養第三批試點校。
系統能力培養是一個完整的體系,強調各課程之間知識的整合和有效銜接。而我校計算機專業課程的設置是按照計算機系統不同層次劃分的,課程理論整體性不強,內容組織松散,概念間結合不夠,學生難以形成對所有知識點的全面認識。教師在授課過程中更是強調各課程自身的完整性,沒有關注同一課程、不同課程知識之間的關聯性,導致軟硬分家、課程與課程分家、知識體系缺乏系統性,還極易造成同一個知識點在相關課程中的重復講解。
在實踐環節,更是以課程為單位。實驗缺乏綜合性的實踐環節,只是覆蓋部分概念,而且均是概念的認知和理解,缺乏縱深性;導致學生只能學到一些較孤立的概念和知識點,無法形成對計算機系統完整的認識[5]。同時,課程實驗大多數是驗證性實驗,主要采用實驗箱方式,學生只是通過簡單的插拔線完成實驗內容,缺乏開發具有工程規模系統的實踐。雖然小規模實驗可以達到讓學生基本理解、掌握系統運行原理和初步具備系統開發能力的目的,但由于缺乏足夠的工程規模和難度,使得復雜系統中存在的較為深刻的問題難以暴露[6],學生更是無法體會。
系統能力培養的基本內容是掌握系統內部各軟件/硬件部分的接口、運行協同以及系統內部各部件的邏輯關聯,了解系統呈現的外部特性與人機交互模式,強調從系統結構角度實現系統功能的綜合方法[7-8]。系統能力具有突出的工程特征,是解決復雜工程問題的基本能力和直接體現。
我校計算機專業之前沒有開設過硬件描述語言,所有的硬件類課程實驗都是通過在實驗箱中完成的,因此學生對硬件描述語言還不了解,如果直接讓學生用硬件描述語言進行計算機功能部件及CPU設計肯定是行不通的。作為一所省屬地方高校,教師的師資水平和學生的能力方面與985、211高校有一定的差距,我們因地制宜探索一條適合我校系統能力培養的方法、措施。在數字邏輯課程開設的同時增開硬件描述語言Verilog,要求學生首先通過圖形、動畫等方式直觀地理解計算機內部各個基本部件的工作原理,然后采用硬件描述語言Verilog進行設計。
設計循序漸進的實驗項目,學生首先通過計算機各個功能部件的設計過程熟悉和掌握硬件描述語言Verilog以及Xilinx的Vivado軟件的使用,然后在此基礎上進行單周期MIPS CPU、多周期MIPS CPU以及五級流水MIPS CPU的設計,并通過Xilinx的FPGA開發板進行驗證。這種由易到難的階梯式實踐過程比較適合我校學生的認知規律,學生也容易接受,避免打擊學生學習的積極性。
根據我校生源情況和實際師資力量,擬將學生最終能夠自主設計“一臺功能計算機、一個操作系統”確立為我校計算機系統能力培養的教學目標,并據此重構數字邏輯、計算機組成原理、微機原理與接口技術、操作系統等四門系統類核心課程的知識體系,形成邊界清晰且有序銜接的課程群知識體系。
針對目前實際教學內容整體性不夠問題,提出以完整計算機系統設計為目標的軟硬件協同的教學改革方案,圍繞實現一個完整的計算機系統組織教學內容。因此,課程改革涉及到數字邏輯、計算機組成原理、微機原理與接口技術和操作系統等四門系統類核心課程。前期目標為貫通硬件課程,具體體現在利用硬件描述語言Verilog設計計算機內部各個基本部件,
最終實現一個單周期、多周期、流水線的MIPS CPU的設計,并下載到FPGA實驗板上,從而完成設計與驗證。同時,逐步推進和規范化小學期的課程設計,將畢業設計和課外研學相結合,拓寬學生的思維深度和廣度,不斷培養學生的分析問題解決問題能力、計算機系統能力以及工程實踐能力。
針對系統類核心課程只注重自身完整性、缺乏整體優化的問題,在學習其他高校改革方案的基礎上,構建符合我校師資力量和學生能力的課程體系。
(1)構建數字邏輯課程知識體系
現有的數字邏輯課程,只是強調該課程本身知識體系的完整性,忽略了與后續課程(計算機組成原理)之間的銜接,同時沒有考慮復雜數字系統實踐項目。基于計算機系統能力培養目標,在數字邏輯課程開設的同時,增開Verilog HDL語言課程,目前該課程已經由開始的公選課變成了現在的必修課。在EDA(Electronic Design Automation)軟件工具Xilinx的Vivado中利用Verilog語言進行數字電路的設計和仿真,并通過Xilinx的FPGA開發板進行驗證。
面向系統能力培養要求,以《計算機科學與技術本科專業規范》為基礎[6],同時考慮課程銜接和實驗項目規模與難度,研究數字邏輯課程所涉及的知識領域、知識單元、知識點以及與后續課程之間的關系,最終建立符合計算機系統設計所需要的主要知識體系。與現有的數字邏輯課程知識體系相比,更加深入講解寄存器、計數器、譯碼器、有限狀態機、存儲器等與后續課程相關的知識模塊;同時,刪除集成電路傳輸特性、555定時器、數-模和模-數轉換等內容。具體如表1所示。

表1構建數字邏輯課程知識體系
(2)構建計算機組成原理課程知識體系
計算機組成原理是計算機專業中最重要的專業基礎課程之一,在整個計算機專業課程體系中起著承上啟下的作用,也是考研必考課程。該課程主要講解計算機各個功能部件的工作原理、設計方法以及各部件之間的關聯機制,幫助學生建立計算機整機概念。目前,我校計算機組成原理課程教學主要偏向各功能部件工作原理的講解,弱化了其設計方法以及各功能部件之間的關聯機制,因此對于學生來說是“只見樹木,不見森林”。同時,目前的課程教學內容只是強調課程本身知識體系的完整性,忽略了其與數字邏輯以及微機原理與接口技術、操作系統等課程之間的銜接。
考慮課程銜接和實驗項目規模與難度,研究計算機組成原理課程所涉及的知識領域、知識單元、知識點以及與數字邏輯、微機原理與接口技術、操作系統等課程之間的關系,最終建立符合計算機系統設計所需要的主要知識體系。與目前的教學內容相比,在計算機組成原理課程中增加了計算機系統的層次結構內容、計算機開發與執行過程、計算機系統的性能評價指標;在指令系統這一塊,重點講解MIPS指令系統和MIPS指令匯編語言;在中央處理器這一部分,原來只是以基本模型機講授CPU的基本工作原理,現在以具體的MIPS指令為例,詳細分析每條指令的格式和實現過程,分別以單周期和多周期為例,構建數據通路,設計組合邏輯控制器和微程序控制器;詳細講解流水線實現的工作原理和存在的問題及解決辦法;外圍設備這一塊刪減過時的教學內容,例如存儲設備中的磁帶、軟盤等。
(1)構建數字邏輯實驗體系
在數字邏輯實驗教學中,學生需要利用硬件描述語言Verilog,完成組合邏輯電路的設計、同步時序邏輯電路的設計以及譯碼器、加法器、數據選擇器、寄存器、存儲器、計數器等計算機內部各個基本部件的設計,這些部件將在后續的計算機組成原理實驗中被直接使用,可以減輕計算機組成原理實驗課程的負擔。在我校,數字邏輯實驗和計算機組成原理實驗同樣都是18學時。而計算機組成原理要完成CPU的設計,課時很是緊張的,所以可以將計算機系統的基本部件的設計實驗放在數字邏輯實驗課程中完成。構建的數字邏輯實驗教學體系,計劃安排8次,共計16學時,設計的實驗教學內容如表2所示。

表2數字邏輯實驗教學體系
在課程結束的小學期即第20周,增加數字邏輯課程設計環節。利用Verilog語言和Xilinx的Vivado軟件,設計面向工程應用的數字系統項目。設計題目能夠具有一定的規模,不易太復雜,以免打擊大二學生的積極性。通過課程設計過程,培養學生獨立思考的習慣,激發其創新意識和團隊合作意識,進一步提高學生的動手實踐能力。設計結果通過Xilinx的FPGA開發板進行驗證。課程設計要求學生制定設計方案,畫出原理圖,提交設計報告,并通過PPT形式進行結題匯報。課程設計題目如表3所示,學生可以兩人一組,選擇其中一個項目完成。

表3數字邏輯課程設計部分項目
(2)構建計算機組成原理實驗體系
在計算機組成原理實驗課程中,我們最終的目標是設計CPU,包括單周期CPU、多周期CPU以及五級流水CPU。對于在數字邏輯實驗中已經完成的功能部件實驗,我們可以直接拿過來使用,避免重復設計過程。同時,對于實驗平臺,我們選擇和數字邏輯實驗統一的實驗平臺,就是利用硬件描述語言Verilog在Xilinx的Vivado軟件中進行設計和仿真,通過Xilinx的FPGA開發板進行驗證。選擇統一的實驗平臺,可以避免學生再次進行實驗平臺的學習和熟悉,將更多的時間和精力用于CPU的設計。構建的計算機組成原理實驗教學體系,計劃安排8次,共計16學時,具體安排如表4所示。
受實際課時的限制,我們需要增加課程設計,可以安排在課程結束的小學期即第20周進行,利用為期一周的時間,完成五級流水MIPS CPU設計,考慮相關控制。課程設計要求學生兩人一組,制定設計方案,提交設計報告,并通過PPT形式進行結題匯報。通過課程設計,培養學生的計算機系統能力,提高他們的團隊合作意識。

表4計算機組成原理實驗教學體系
作為省屬地方高校,以系統能力培養為導向積極探索教學改革,從課程體系建設、教學內容的組織、實驗平臺的統一、實驗項目的規劃等方面進行了一些探討。計算機系統能力培養是一個長期的過程,路雖遠,行則將至;事雖難,做則必成!教改之路還很長,教改后對教師的教學與實踐能力要求更高,后期將通過培訓、學習、交流、競賽等多種方法進一步加強教師的教學水平,提升教學能力和科研能力。在課程體系建設方面,后期還要繼續探索與微機原理與接口技術、操作系統、編譯原理等核心課程的融合貫通,特別是實驗方面的貫通,打通硬件和軟件,培養學生的全局觀、系統觀,真正達到計算機系統能力培養的目標和要求。