李東勤,徐勇,常郝,陳曉玲
(安徽財經(jīng)大學(xué)管理科學(xué)與工程學(xué)院,蚌埠 233030)
人類已經(jīng)進入了以移動互聯(lián)、云計算、大數(shù)據(jù)和物聯(lián)網(wǎng)為代表的第三代信息化浪潮時代。隨著這些新技術(shù)的快速發(fā)展和廣泛應(yīng)用,計算機系統(tǒng)應(yīng)用呈現(xiàn)出新的特征,形成了嵌入式計算系統(tǒng)、移動計算系統(tǒng)、并行計算系統(tǒng)和基于服務(wù)的計算系統(tǒng)等四種新型的計算系統(tǒng)。新形勢下對計算機專業(yè)的人才培養(yǎng)也提出了更高的要求,需要計算機專業(yè)人才更加深入掌握計算機內(nèi)部的設(shè)計原理和工作機制,具備更深、更廣的系統(tǒng)設(shè)計、實現(xiàn)和應(yīng)用能力,即具備計算機系統(tǒng)能力。如何培養(yǎng)具備系統(tǒng)能力的計算機專業(yè)人才,如何能讓我們的學(xué)生在掌握計算機系統(tǒng)內(nèi)部設(shè)計思想和工作原理的基礎(chǔ)上,具備設(shè)計、開發(fā)和調(diào)試以計算技術(shù)為核心的應(yīng)用系統(tǒng)能力[1-3]。在2010年教育部高等學(xué)校計算機類專業(yè)教學(xué)指導(dǎo)委員會成立“計算機類專業(yè)系統(tǒng)能力培養(yǎng)研究組”,2015至2016年、2017年、2018年教指委分別批準(zhǔn)成立第一、二、三批高等院校系統(tǒng)能力培養(yǎng)示范院校和試點院校,安徽財經(jīng)大學(xué)于2018年入選第三批試點校。
為落實教指委的計算機系統(tǒng)能力培養(yǎng)計劃,安徽省系統(tǒng)能力培養(yǎng)工作組在2017年4月23日舉辦的“安徽省高校計算機系統(tǒng)能力培養(yǎng)專題研討會”上確定“以比賽作為推手,來推進FPGA在高校系統(tǒng)類課程的逐步應(yīng)用”,并于同年11月在合肥工業(yè)大學(xué)舉辦安徽省第一屆計算機系統(tǒng)能力培養(yǎng)競賽。到目前為止,該比賽已經(jīng)連續(xù)舉辦兩屆,大賽以學(xué)科競賽推動專業(yè)建設(shè)、培養(yǎng)大學(xué)生創(chuàng)新能力為目標(biāo),選拔未來我國計算機系統(tǒng)的設(shè)計、分析、優(yōu)化與應(yīng)用人才,激發(fā)學(xué)生的創(chuàng)新實踐能力與團隊協(xié)作精神。通過比賽來進一步推動高校計算機等相關(guān)專業(yè)教學(xué)改革,為高質(zhì)量專業(yè)人才搭建交流、展示、合作的平臺,助力產(chǎn)學(xué)研,對大學(xué)生計算機系統(tǒng)能力的培養(yǎng)產(chǎn)生積極的影響。
筆者通過組織和指導(dǎo)學(xué)生參加兩屆安徽省計算機系統(tǒng)能力培養(yǎng)競賽,認真反思了我校計算機專業(yè)硬件類課程教學(xué),結(jié)合我校計算機專業(yè)的實際情況以及計算機系統(tǒng)能力培養(yǎng)的需求,提出了建設(shè)相關(guān)課程群的改革思路。
計算機系統(tǒng)能力培養(yǎng)競賽更加注重培養(yǎng)學(xué)生的綜合設(shè)計和創(chuàng)新能力,是對學(xué)生知識的綜合考核。這就要求我們的課程教學(xué)要結(jié)合時代的需求,體現(xiàn)計算機的系統(tǒng)性和完整性。但我校計算機專業(yè)在相關(guān)課程教學(xué)和實踐操作中還存在諸多問題。
我校計算機系統(tǒng)類相關(guān)課程主要包括:數(shù)字電子技術(shù)、微機原理與接口技術(shù)、計算機組成原理、編譯原理、操作系統(tǒng)等,期望通過開設(shè)這些課程幫助我們的學(xué)生建立起完整的計算機系統(tǒng)的知識結(jié)構(gòu)和框架。然而學(xué)完這些課程,學(xué)生對各子系統(tǒng)之間的相互關(guān)系和彼此作用還是了解不夠深刻,也搞不清楚各子系統(tǒng)之間的銜接機制,缺乏完整性和系統(tǒng)性。
究其原因,目前我們的教學(xué)仍然以讓學(xué)生了解知識為目標(biāo),而非以系統(tǒng)設(shè)計為目標(biāo)。雖然我們也重視了課程體系建設(shè),但各課程之間的銜接和關(guān)聯(lián)考慮不夠。教學(xué)內(nèi)容上,各門課程都是獨立規(guī)劃、獨立教學(xué)的,極易造成同一個知識點在相關(guān)課程中的重復(fù)講解。同時,各課程之間的知識點缺乏前后銜接和有效整合,造成課程之間銜接關(guān)系的脫節(jié),更是難以形成完整的計算機系統(tǒng)知識體系。另外,在教學(xué)方法上,各課程多以分析式教學(xué)方法偏多,更加注重基本原理的講解,缺乏對完整計算機系統(tǒng)較為全面的闡述,其結(jié)果是學(xué)生掌握了基本概念和原理,卻難以轉(zhuǎn)化為設(shè)計完整計算機系統(tǒng)的基本能力。
目前安徽省計算機系統(tǒng)能力培養(yǎng)競賽題目涉及的課程主要包括數(shù)字邏輯和計算機組成原理,其題目內(nèi)容主要是組合邏輯電路、時序邏輯電路以及CPU的設(shè)計,就是實現(xiàn)從邏輯門到CPU的過程。通過組織和指導(dǎo)學(xué)生參加比賽,我們發(fā)現(xiàn)在計算機系統(tǒng)能力培養(yǎng)成為目前國內(nèi)外計算機教育的新動向的大背景下,我校計算機專業(yè)實踐教學(xué)仍然存在諸多不足,無法適應(yīng)時代的需求。
首先,我們的實驗?zāi)繕?biāo)是以課程為單位的,就是每門課程設(shè)置了各自的實驗教學(xué)目標(biāo),實驗內(nèi)容也是以完成該課程的教學(xué)目標(biāo)為目的,缺乏系統(tǒng)級的統(tǒng)一規(guī)劃,這樣就使得學(xué)生很難建立系統(tǒng)觀。各門實驗課程的實驗成果也是獨立,沒有考慮過將這些實驗成果進行有效的集成,形成規(guī)模更大的系統(tǒng)。因此,學(xué)生很難真正從完整系統(tǒng)的角度去理解計算機,在他們眼里是只見樹木,不見森林。在對參賽學(xué)生的指導(dǎo)過程中,我們還發(fā)現(xiàn),在建立各個功能部件連接過程中,就是自己畫數(shù)據(jù)通路圖時,學(xué)生感覺難度很大。究其原因,我們平時的實驗主要是對各個功能部件的驗證性實驗,可以幫助學(xué)生理解系統(tǒng)運行的基本原理和工作機制,但缺乏對復(fù)雜系統(tǒng)的綜合設(shè)計性實驗,使學(xué)生無法面對復(fù)雜系統(tǒng)中存在的較為深刻的問題以及各個子系統(tǒng)之間的銜接機制。同時,我們學(xué)校計算機專業(yè)硬件類實驗課程,像數(shù)字電子技術(shù)、計算機組成原理、微機原理與接口技術(shù)等,都是使用各自的實驗箱,獨立的實驗平臺無法建立課程間的任何聯(lián)系和融合。
為了彌補我校計算機專業(yè)系統(tǒng)類課程在實際教學(xué)中存在的不足,提升我校計算機專業(yè)學(xué)生系統(tǒng)能力,結(jié)合教指委對計算機系統(tǒng)能力培養(yǎng)的相關(guān)要求,對我校計算機專業(yè)課程體系進行改革,以設(shè)計完整的計算機系統(tǒng)為總體目標(biāo),逐步建立推進式、循序漸進的計算機系統(tǒng)類課程群。依據(jù)改革目標(biāo)和我校計算機專業(yè)的實際情況,首先選擇數(shù)字邏輯、計算機組成原理、微機原理與接口技術(shù)、操作系統(tǒng)、編譯原理等五門核心課程,組建為我校計算機系統(tǒng)類課程群,具體課程群組成及其相互關(guān)系如圖1所示。
圖1 計算機系統(tǒng)類課程群組成及其關(guān)系
根據(jù)教指委提出的以系統(tǒng)發(fā)展觀為主線的改革思想,認真研究我校上述五門核心課程的教學(xué)內(nèi)容,查找各課程知識點和教學(xué)內(nèi)容的不足,注重各課程知識點之間的有效銜接,同時避免知識點的重復(fù)講述,強調(diào)課程內(nèi)涵,強化各課程的理論基礎(chǔ)和實踐基礎(chǔ),確保各課程教學(xué)內(nèi)容和實踐項目真正服務(wù)于頂層總目標(biāo),強化核心功能模塊設(shè)計。
首先,在數(shù)字邏輯課程中,重點講解組合邏輯電路、時序邏輯電路以及狀態(tài)機的時序邏輯設(shè)計。在后續(xù)的計算機組成原理中,重點講解MIPS指令系統(tǒng);基于簡單MIPS指令集單周期微處理器的具體實現(xiàn)方法,講解單周期和流水方式的硬布線控制器和微程序控制器;講解中斷機制,可實現(xiàn)中斷請求、中斷響應(yīng)和中斷服務(wù)及中斷返回等功能;講解存儲器原理和Cache機制,實現(xiàn)虛存管理機制。在微機原理與接口技術(shù)課程中,重點講解接口和匯編程序、標(biāo)準(zhǔn)總線、接口低層驅(qū)動程序,提供各類外部設(shè)備接口、中斷接口、存儲器接口。在操作系統(tǒng)課程中,以MIPS32指令集作為操作系統(tǒng)的目標(biāo)平臺;強調(diào)操作系統(tǒng)原理、操作系統(tǒng)的核心算法。在編譯原理中以MIPS32指令集作為編譯器的目標(biāo)平臺,強調(diào)編譯技術(shù)與計算機系統(tǒng)整機的關(guān)聯(lián)。
在基本理順各課程教學(xué)內(nèi)容和目標(biāo)的基礎(chǔ)上,在具體教學(xué)過程中要不斷改進教學(xué)方法和教學(xué)手段。注重基本原理講解的同時,要逐步強化工程化實現(xiàn)方法的訓(xùn)練,為復(fù)雜系統(tǒng)的設(shè)計和實現(xiàn)奠定基礎(chǔ),力求學(xué)生在系統(tǒng)原理和工程實現(xiàn)方法兩方面均有收獲。工程方法可能不是最優(yōu)的,但應(yīng)該是簡單且有效的,可以讓學(xué)生一步步達到實踐目標(biāo)。
實踐可以說是內(nèi)容最豐厚的教科書,也是能力培養(yǎng)最好的課堂。計算機系統(tǒng)能力培養(yǎng)中,實踐起著至關(guān)重要的作用。同時,系統(tǒng)能力培養(yǎng)目標(biāo)中更加強調(diào)的是系統(tǒng)級的設(shè)計,就是強調(diào)實踐應(yīng)具有一定的規(guī)模性和復(fù)雜度[4-9]。我校目前的硬件類課程實踐體系中實驗?zāi)繕?biāo)、實驗內(nèi)容及實驗平臺等均是以課程為獨立單位設(shè)計的,缺乏一體化設(shè)計,加之原有課程結(jié)構(gòu)不夠完整,因此多門課程的實驗成果也不能融合成為完整的計算機系統(tǒng),進而無法幫助學(xué)生建立計算機整機概念。
改革之初,我們在第四學(xué)期數(shù)字邏輯實踐課程中,首先拋棄原先的以插線為主的實驗箱教學(xué)模式,選擇Logisim。Logisim作為一款用于設(shè)計和仿真數(shù)字邏輯電路的教學(xué)仿真工具,其界面簡單、電路仿真直觀,同時可以克服原先實驗箱龐大、實驗場所和時間固定的缺陷。Logisim虛擬仿真實驗最大的特點就是可以使學(xué)生重在設(shè)計,調(diào)試相對容易,教師指導(dǎo)起來也方便容易,對于學(xué)生的設(shè)計結(jié)果驗收也比較容易,不需要任何其他成本,實驗不受場地和時間的限制,學(xué)生隨時可以進行實驗,同時學(xué)生之間也很難互相抄襲。因為實驗課時有限,因此我們要求學(xué)生通過自學(xué)熟悉Logisim環(huán)境,然后在實驗課堂上利用Logisim實現(xiàn)簡單的數(shù)字邏輯電路,包括編碼器、譯碼器、多路選擇器、加法器、比較器等組合邏輯電路以及寄存器、計數(shù)器和狀態(tài)機。通過設(shè)計和仿真,讓學(xué)生對數(shù)字邏輯電路的設(shè)計思想有很清晰的認識。接下來要求學(xué)生在暑假期間,自學(xué)Verilog語言。Verilog語言創(chuàng)始于1984年,由Gateway設(shè)計自動化公司開發(fā)(被Cadence收購),于1995年被IEEE確定為標(biāo)準(zhǔn)硬件描述語言(IEEE 1364-1995/Ver?ilog-95),它與C語言編程風(fēng)格相似,最大的特點就是學(xué)習(xí)難度相對較低,易于上手。該語言對門級開關(guān)電路描述強,同時System Verilog的發(fā)布增強了系統(tǒng)級描述的能力。Verilog語言既是一種行為描述的語言,也是一種結(jié)構(gòu)描述的語言;它既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設(shè)計電路的Verilog HDL模型。Verilog模型可以是實際電路的不同級別的抽象。同時,要求學(xué)生自行熟悉Vivado環(huán)境,將所有數(shù)字邏輯電路通過Verilog語言進行描述,通過Vivado環(huán)境,在FPGA開發(fā)平臺上進行結(jié)果驗證,實現(xiàn)軟硬件之間的融合。有了邏輯門和語言環(huán)境基礎(chǔ)后,在接下來的第五學(xué)期,我們開設(shè)計算機組成原理課程,擬安排漢字編碼實驗、CRC校驗碼設(shè)計實驗、可控加減法設(shè)計實驗、ALU設(shè)計實驗、存儲器實驗、Cache硬件設(shè)計實驗、MIPS單周期處理器設(shè)計實驗(8條指令)、MIPS多周期處理器設(shè)計實驗(硬布線控制器設(shè)計、微程序控制器設(shè)計)。要求學(xué)生首先在Logisim上實現(xiàn),這個相對比較容易。當(dāng)學(xué)生理解其基本原理和思想后,通過Verilog語言進行描述,在Vivado環(huán)境中實現(xiàn),同時通過FPGA開發(fā)平臺進行結(jié)果驗證。在接下來的寒假時間中,我們計劃安排綜合課程設(shè)計,用兩周的時間要求學(xué)生實現(xiàn)流水CPU,將前面的單周期修改為五段流水,包括取指令、譯碼、執(zhí)行、訪存和寫回,考慮分支相關(guān)和數(shù)據(jù)相關(guān)。通過兩個學(xué)期的實驗以及綜合的課程設(shè)計,使學(xué)生能夠真正掌握和理解計算機的設(shè)計思想和工作原理,實現(xiàn)從邏輯門到CPU。同時將實驗成果延伸到后續(xù)課程操作系統(tǒng)實驗和編譯原理實驗中,最終實現(xiàn)我校計算機系統(tǒng)類課程群的實踐教學(xué)目標(biāo)即設(shè)計實現(xiàn)一個CPU、一個操作系統(tǒng)、一個編譯器,實現(xiàn)一個基本的完整計算機系統(tǒng)。
通過參加安徽省計算機系統(tǒng)能力培養(yǎng)競賽,看到了我校計算機專業(yè)課程體系在教學(xué)和實踐方面存在的不足,并提出了整改措施,真正做到了以賽促學(xué),以賽促教的目的。在推進計算機系統(tǒng)類課程群的建設(shè)過程中,我們注重圍繞頂層總體目標(biāo),即實現(xiàn)一個完整的計算機系統(tǒng),重構(gòu)各課程的知識體系,重實踐強系統(tǒng),構(gòu)造逐步推進式實驗體系,實現(xiàn)系統(tǒng)能力的逐步培養(yǎng)。我校目前存在教師系統(tǒng)能力不足、學(xué)生缺乏系統(tǒng)級工程訓(xùn)練、軟硬件失衡等諸多客觀問題,因此計算機系統(tǒng)能力的培養(yǎng)是一個長期的過程,不可能一蹴而就的,還有很漫長的路要走。我們需要通過FPGA、EDA專題培訓(xùn),提升硬件系統(tǒng)設(shè)計、工程實踐能力;利用工程觀、系統(tǒng)觀豐富教學(xué)設(shè)計,充實教學(xué)內(nèi)容;建立課程群建設(shè)小組,統(tǒng)一教學(xué)與實踐指導(dǎo)。