王換招,張克旺
(西安交通大學(xué) 電子與信息工程學(xué)院,陜西 西安 710049)
計(jì)算機(jī)課程體系中設(shè)置了大量的計(jì)算機(jī)系統(tǒng)相關(guān)課程,如數(shù)字邏輯電路、計(jì)算機(jī)組成原理、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、編譯原理、操作系統(tǒng)、微型計(jì)算機(jī)接口技術(shù)、匯編語言程序設(shè)計(jì)、嵌入式系統(tǒng)等。這些課程覆蓋計(jì)算機(jī)軟硬件系統(tǒng)的絕大部分知識,是計(jì)算機(jī)專業(yè)的主干課程,但學(xué)生在完成這些課程后,往往很難將知識有機(jī)組織在一起,形成對計(jì)算機(jī)系統(tǒng)的完整認(rèn)知,具備相應(yīng)的計(jì)算機(jī)系統(tǒng)分析、設(shè)計(jì)和驗(yàn)證能力。
目前,計(jì)算機(jī)教學(xué)體系以知識傳授為主,忽略學(xué)生分析問題和解決問題能力的培養(yǎng);各門課程講授內(nèi)容陳舊,無法滿足計(jì)算機(jī)發(fā)展需求;各門課程教學(xué)內(nèi)容缺乏統(tǒng)一目標(biāo),沒有完善的內(nèi)容過渡與銜接,導(dǎo)致學(xué)生所掌握的僅僅是一些分散的知識點(diǎn),無法對計(jì)算機(jī)軟硬件系統(tǒng)進(jìn)行整體的理解,難以滿足計(jì)算機(jī)系統(tǒng)能力培養(yǎng)的要求。
基于OpenRISC開源處理器的系統(tǒng)能力培養(yǎng)實(shí)驗(yàn)平臺,不僅能夠?yàn)橛?jì)算機(jī)系統(tǒng)相關(guān)的課程提供貫通式的實(shí)驗(yàn)平臺,而且能夠?yàn)橛?jì)算機(jī)系統(tǒng)相關(guān)課程內(nèi)容的改革提供“自上而下”的參考。由于OpenRISC平臺采用業(yè)界廣泛使用的流水RISC架構(gòu)處理器、gcc編譯器以及Linux操作系統(tǒng),因此相關(guān)課程以此平臺為參考改革相關(guān)教學(xué)與實(shí)驗(yàn)內(nèi)容,能夠?qū)崿F(xiàn)課程間教學(xué)與實(shí)驗(yàn)內(nèi)容的緊密連接和過渡,使各門課程教學(xué)實(shí)驗(yàn)內(nèi)容有機(jī)組織在一起,為進(jìn)一步培養(yǎng)學(xué)生的分析、設(shè)計(jì)與驗(yàn)證等系統(tǒng)能力奠定基礎(chǔ);同時(shí),相關(guān)教學(xué)與實(shí)驗(yàn)內(nèi)容同業(yè)界發(fā)展保持一致,可以有效滿足社會對計(jì)算機(jī)專業(yè)的需求。
計(jì)算機(jī)系統(tǒng)能力是指能自覺運(yùn)用系統(tǒng)觀,理解計(jì)算機(jī)系統(tǒng)的整體性、關(guān)聯(lián)性、層次性、動態(tài)性和開放性,并用系統(tǒng)化方法,掌握計(jì)算機(jī)硬軟件協(xié)同工作及相互作用機(jī)制的能力,包括系統(tǒng)分析能力、系統(tǒng)設(shè)計(jì)能力和系統(tǒng)驗(yàn)證能力3個方面[1]。傳統(tǒng)計(jì)算機(jī)教學(xué)與實(shí)驗(yàn)以知識傳授為主,對能力的培養(yǎng)沒有足夠的重視,最終導(dǎo)致學(xué)生能力普遍不強(qiáng),難以滿足社會需求。結(jié)合實(shí)際教學(xué)實(shí)驗(yàn)過程,我們認(rèn)為目前計(jì)算機(jī)各門課程以及相應(yīng)實(shí)驗(yàn)存在以下問題。
首先,在課程內(nèi)容方面,存在教學(xué)內(nèi)容陳舊,無法滿足社會應(yīng)用需求的問題[2]。例如,目前國內(nèi)絕大多數(shù)學(xué)校的匯編語言課程仍然以8086為目標(biāo)機(jī)器,但隨著桌面應(yīng)用的成熟,對桌面應(yīng)用進(jìn)行優(yōu)化從而使用匯編的需求不多,真正需要進(jìn)行匯編級別優(yōu)化的往往是基于ARM、MIPS等RISC處理器的嵌入式應(yīng)用;同樣,計(jì)算機(jī)接口技術(shù)絕大多數(shù)以8086接口擴(kuò)展為主,但目前發(fā)展迅速的嵌入式系統(tǒng)中極少采用Intel架構(gòu)處理器。
其次,在教學(xué)內(nèi)容銜接上,各門課程獨(dú)立規(guī)劃,造成知識點(diǎn)冗余或者銜接關(guān)系脫節(jié)[3]。例如,中斷技術(shù)在計(jì)算機(jī)組成原理、匯編語言程序設(shè)計(jì)、計(jì)算機(jī)接口技術(shù)和嵌入式系統(tǒng)中都會講解,但由于各門課程在內(nèi)容上缺乏良好的銜接,學(xué)生在學(xué)習(xí)中斷技術(shù)過程時(shí),無法區(qū)分計(jì)算機(jī)組成原理中講解的通用中斷原理與匯編語言程序設(shè)計(jì)中8086中斷系統(tǒng)這一特例,往往會在理解上有困難。
第三,在教學(xué)方法上,各課程采取分析式方法的較多,突出系統(tǒng)原理的講解,而限于條件的限制,缺乏實(shí)際系統(tǒng)的結(jié)合,造成學(xué)生雖然掌握基本概念,但是難以轉(zhuǎn)化對現(xiàn)有系統(tǒng)的認(rèn)識。例如,在介紹系統(tǒng)總線過程中,一般會講解ISA等簡單總線的通信過程,但I(xiàn)SA總線在當(dāng)前計(jì)算機(jī)中極為罕見。
最后,在實(shí)驗(yàn)手段上,基本側(cè)重于孤立的原理驗(yàn)證實(shí)驗(yàn),而缺乏對復(fù)雜系統(tǒng)的綜合設(shè)計(jì)實(shí)踐。雖然小規(guī)模實(shí)驗(yàn)可以達(dá)到讓學(xué)生基本理解掌握系統(tǒng)運(yùn)行原理和初步具備系統(tǒng)開發(fā)能力的目的,但是由于缺乏貫穿絕大多數(shù)課程內(nèi)容的綜合性實(shí)驗(yàn),學(xué)生仍然不能貫通整個計(jì)算機(jī)系統(tǒng)的課程內(nèi)容,掌握的僅僅是一些知識點(diǎn)[4]。
開展計(jì)算機(jī)系統(tǒng)能力培養(yǎng)工作,首先需要在課程體系、課程內(nèi)容、實(shí)驗(yàn)內(nèi)容等方面進(jìn)行全面改革,結(jié)合計(jì)算機(jī)發(fā)展趨勢,貫通各門課程教學(xué)內(nèi)容,增加課程實(shí)驗(yàn)環(huán)節(jié),逐步提高學(xué)生的計(jì)算機(jī)系統(tǒng)能力。
在課程體系方面,需要對教學(xué)大綱中與計(jì)算機(jī)系統(tǒng)能力相關(guān)的課程進(jìn)行調(diào)整,調(diào)整的思路一般為“壓縮授課學(xué)時(shí)、提高實(shí)驗(yàn)實(shí)踐環(huán)節(jié)”。例如,對數(shù)字電子技術(shù)、計(jì)算機(jī)組成原理、編譯原理、操作系統(tǒng)原理、計(jì)算機(jī)接口技術(shù)與嵌入式系統(tǒng)課程學(xué)時(shí)進(jìn)行壓縮,為其中的數(shù)字電子技術(shù)、計(jì)算機(jī)組成原理、編譯原理、操作系統(tǒng)原理設(shè)置專題實(shí)驗(yàn),讓學(xué)生有較充分的時(shí)間動手實(shí)踐。部分學(xué)校專門設(shè)置獨(dú)立的“計(jì)算機(jī)系統(tǒng)綜合”等專題實(shí)驗(yàn),在上述實(shí)驗(yàn)基礎(chǔ)上,進(jìn)行有方向性的計(jì)算機(jī)系統(tǒng)設(shè)計(jì),提高學(xué)生的計(jì)算機(jī)系統(tǒng)能力。
在課程內(nèi)容方面,需要對各門課程中的重復(fù)內(nèi)容進(jìn)行壓縮與合并,對一些比較陳舊的教學(xué)內(nèi)容進(jìn)行更新。
在課程體系改革過程中,相關(guān)課程教師承擔(dān)教材編寫、課件制作以及課程實(shí)驗(yàn)重新調(diào)整等眾多任務(wù),工作量大,此外,由于計(jì)算機(jī)技術(shù)的高速發(fā)展,教師需要深入了解一些新的技術(shù)或者方法相關(guān)細(xì)節(jié),同樣需要大量時(shí)間和精力的投入,因而各門課程教師對計(jì)算機(jī)能力培養(yǎng)具體實(shí)現(xiàn)的方式存在差異,如何協(xié)調(diào)各門課程教師建立統(tǒng)一的課程改革目標(biāo)具有較大的難度。
如果采用“先制訂目標(biāo)、各門課程分別實(shí)現(xiàn)”這種“自下而上”的教學(xué)內(nèi)容改革方法,在實(shí)踐過程中存在較大的難度。為此,我們基于OpenRISC平臺進(jìn)行“自上而下”的教學(xué)內(nèi)容改革,即相關(guān)課程以業(yè)界廣泛使用的OpenRISC平臺(流水RISC處理器、gcc編譯器、Linux操作系統(tǒng))為基礎(chǔ)。
國家計(jì)算機(jī)系統(tǒng)能力培養(yǎng)工作小組提出的“一個CPU、一個編譯器、一個操作系統(tǒng)”方案能夠很好地體現(xiàn)計(jì)算機(jī)能力培養(yǎng)的具體方法。設(shè)計(jì)一個什么樣的CPU,編寫一個什么樣的編譯器,實(shí)現(xiàn)一個什么樣的操作系統(tǒng)是很重要的問題。選擇CPU、編譯器、操作系統(tǒng)的一個重要因素就是社會需求因素,也就是設(shè)計(jì)的CPU、編譯器和操作系統(tǒng)本身或者設(shè)計(jì)方法能夠在學(xué)生后續(xù)的就業(yè)中得到應(yīng)用。
目前,CPU設(shè)計(jì)的主流是RISC處理器,使用最廣泛的編譯器是gcc,普及率最高的操作系統(tǒng)是Linux操作系統(tǒng)。如果學(xué)生在相關(guān)基本知識的基礎(chǔ)上,已經(jīng)能夠設(shè)計(jì)簡單的RISC處理器,掌握gcc編譯器的核心機(jī)制以及移植方法,比較熟悉Linux操作系統(tǒng)的管理機(jī)制和驅(qū)動,就不僅能夠培養(yǎng)學(xué)生的計(jì)算機(jī)系統(tǒng)能力,而且可以為學(xué)生將來所從事的專業(yè)奠定良好的基礎(chǔ)。
建議選擇Open Source的RISC處理器OpenRISC作為課程體系改革的目標(biāo)。OpenRISC處理器在GPL協(xié)議下開放源代碼,具有完全的開源工具鏈,其中包含gcc編譯器;Linux操作系統(tǒng)已經(jīng)在該處理器上完成移植,并且開放源代碼。
采用免費(fèi)開放的32/64bit RISC架構(gòu)。用Verilog HDL(硬件描述語言)實(shí)現(xiàn)基于該RISC架構(gòu)的RTL(寄存器傳輸級)描述。
具有完整的工具鏈,包括開源的軟件開發(fā)工具、C語言實(shí)現(xiàn)的CPU仿真模型、操作系統(tǒng)以及軟件應(yīng)用所需的函數(shù)庫。
為配合基于OpenRISC處理器的實(shí)驗(yàn),我們設(shè)計(jì)了基于Zynq ZC7020的實(shí)驗(yàn)平臺,該平臺以Xilinx ZC7020處理器為核心,片上資源包括85K邏輯單元/53.2K查找表和3.8M片內(nèi)RAM。板上存儲資源包含32MByte 32位寬SRAM、64MByte 32位寬SDRAM和16MByte NorFlash。板上IO資源包括1個UART收發(fā)器、1個10M/100M以太網(wǎng)物理層、1個TFT LCD、若干組LED和撥碼開關(guān)等。
該實(shí)驗(yàn)平臺包含的豐富資源可以滿足數(shù)字邏輯課程、計(jì)算機(jī)組成
原理課程、操作系統(tǒng)課程、編譯原理課程等核心課程,以及為計(jì)算機(jī)接口技術(shù)、嵌入式技術(shù)等專業(yè)課程提供統(tǒng)一的實(shí)驗(yàn)平臺。
目前可以在此平臺進(jìn)行的數(shù)字邏輯實(shí)驗(yàn)包括:①組合邏輯實(shí)驗(yàn):譯碼器實(shí)驗(yàn)、七段碼顯示管控制器設(shè)計(jì)、多路選擇器設(shè)計(jì)與實(shí)現(xiàn)、全加器設(shè)計(jì)與實(shí)現(xiàn);②時(shí)序邏輯實(shí)驗(yàn):鎖存器與觸發(fā)器設(shè)計(jì)實(shí)驗(yàn)、同步時(shí)序電路實(shí)驗(yàn);③自動機(jī)實(shí)驗(yàn);④計(jì)數(shù)器實(shí)驗(yàn);⑤寄存器堆設(shè)計(jì)實(shí)驗(yàn);⑥移位寄存器實(shí)驗(yàn);⑦計(jì)數(shù)器/定時(shí)器設(shè)計(jì)。
在此平臺上進(jìn)行的計(jì)算機(jī)組成實(shí)驗(yàn)包括隨機(jī)訪問存儲器RAM實(shí)驗(yàn)、RISC CPU的指令擴(kuò)展、RISC CPU的中斷實(shí)驗(yàn)、單周期RISC CPU設(shè)計(jì)、多周期RISC CPU設(shè)計(jì)、流水RISC CPU設(shè)計(jì)和簡單SOC系統(tǒng)綜合實(shí)驗(yàn)。
硬件實(shí)驗(yàn)方面,數(shù)字邏輯實(shí)驗(yàn)的譯碼器、多路選擇器、寄存器堆、移位寄存器等實(shí)驗(yàn)內(nèi)容與計(jì)算機(jī)組成實(shí)驗(yàn)緊密銜接。編譯原理實(shí)驗(yàn)主要針對OpenRISC處理器gcc編譯器展開;操作系統(tǒng)原理實(shí)驗(yàn)主要針對運(yùn)行于OpenRISC處理器的Linux操作系統(tǒng)的板級支持包(BSP)以及串行口、以太網(wǎng)等設(shè)備的驅(qū)動展開。這兩部分內(nèi)容相對獨(dú)立,但都是圍繞前期設(shè)計(jì)的OpenRISC處理器展開,學(xué)生對處理器的指令集等內(nèi)容都已經(jīng)非常熟悉,方便將精力集中在編譯器和操作系統(tǒng)自身。OpenRISC架構(gòu)如圖1所示。
圖1 OpenRISC架構(gòu)
(1)貫通式教育。各門課程實(shí)驗(yàn)內(nèi)容圍繞OpenRISC這樣一個計(jì)算機(jī)系統(tǒng)展開,教學(xué)工作目標(biāo)明確,針對性強(qiáng)。目標(biāo)明確的貫通式教學(xué)實(shí)驗(yàn)?zāi)軌蛘{(diào)動學(xué)生的學(xué)習(xí)積極性。
(2)明確的教學(xué)與實(shí)驗(yàn)?zāi)繕?biāo)。傳統(tǒng)從下向上的課程設(shè)計(jì)方法是各門課程相關(guān)教師通過討論得到一個最終的目標(biāo),但受傳統(tǒng)思維定勢等方面因素的影響,各門課程對最終所要實(shí)現(xiàn)的目標(biāo)往往不明確。OpenRISC是一個比較成熟的開源系統(tǒng),有成熟的編譯工具鏈和操作系統(tǒng)支持。在現(xiàn)有平臺基礎(chǔ)上,各門課程只需要對相關(guān)的教學(xué)與實(shí)驗(yàn)內(nèi)容進(jìn)行設(shè)計(jì),我們稱這種方式為“自上而下”的課程設(shè)計(jì)方法。這種設(shè)計(jì)方法的好處是可以有效減少課程之間的協(xié)調(diào)工作,而這部分工作在涉及多門課程調(diào)整時(shí)工作量巨大。
(3)面向社會需求。在處理器領(lǐng)域,RISC處理器占絕大多數(shù),甚至國內(nèi)外微電子企業(yè)推出基于OpenRISC的處理器產(chǎn)品?;贠penRISC處理器的學(xué)習(xí)和實(shí)驗(yàn),能夠?yàn)閷W(xué)生打下堅(jiān)實(shí)的處理器設(shè)計(jì)基礎(chǔ),提高其在該領(lǐng)域的就業(yè)競爭力;在操作系統(tǒng)領(lǐng)域,Linux操作系統(tǒng)已經(jīng)占據(jù)了移動終端的絕大多數(shù)市場,針對Linux的操作系統(tǒng)移植、驅(qū)動開發(fā)等能夠直接接軌企業(yè)需求;在編譯器工具鏈方面,gcc是目前Linux等操作系統(tǒng)廣泛支持的編譯環(huán)境,針對gcc以及工具鏈的移植優(yōu)化人才是目前國內(nèi)外企業(yè)急需的緊缺人才。
基于OpenRISC的綜合實(shí)驗(yàn)平臺不僅能夠?yàn)橛?jì)算機(jī)系統(tǒng)相關(guān)的各門課程提供貫通式的實(shí)驗(yàn)平臺,而且能夠?yàn)槊嫦蛴?jì)算機(jī)系統(tǒng)能力培養(yǎng)的教學(xué)改革提供參考依據(jù)?!白陨隙隆钡姆椒軌蛴行f(xié)調(diào)各門課程的教學(xué)內(nèi)容改革,為進(jìn)一步提高計(jì)算機(jī)系統(tǒng)能力培養(yǎng)奠定基礎(chǔ)。在此基礎(chǔ)上,我們將詳細(xì)設(shè)計(jì)和規(guī)劃各門課程的教學(xué)與實(shí)驗(yàn)內(nèi)容,順利完成計(jì)算機(jī)系統(tǒng)能力培養(yǎng)的課程改革任務(wù)。
參考文獻(xiàn):
[1]劉衛(wèi)東, 張悠慧, 向勇, 等. 面向系統(tǒng)能力培養(yǎng)的計(jì)算機(jī)專業(yè)課程體系建設(shè)實(shí)踐[J]. 中國大學(xué)教學(xué), 2014(8): 106-107.
[2]何靜媛, 朱征宇. 高校計(jì)算機(jī)專業(yè)實(shí)踐教學(xué)改革研究[J]. 計(jì)算機(jī)教育, 2010(2): 25-27.
[3]趙若陽, 李寧, 庫少平. 計(jì)算機(jī)硬件課程體系及內(nèi)容改革的思考[J]. 計(jì)算機(jī)教育, 2006(3): 47-49.
[4]崔永利, 李妍. 計(jì)算機(jī)硬件實(shí)驗(yàn)教學(xué)改革與實(shí)踐[J]. 實(shí)驗(yàn)室研究與探索, 2006, 25(3): 361-362.