張 軍,項(xiàng)東升,張其林,王 普
(湖北文理學(xué)院 計(jì)算機(jī)工程學(xué)院,湖北 襄陽(yáng) 411053)
新一代信息技術(shù)的發(fā)展驅(qū)動(dòng)著新產(chǎn)品、新產(chǎn)業(yè)和新模式迅猛發(fā)展。新一代計(jì)算機(jī)技術(shù)是當(dāng)前信息技術(shù)創(chuàng)新的主流,包括以下特征[1]:①云計(jì)算、大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)等新技術(shù)帶來(lái)新的知識(shí)體系和技術(shù)內(nèi)容,支撐新產(chǎn)品與新產(chǎn)業(yè)的不斷出現(xiàn)和發(fā)展;②計(jì)算機(jī)技術(shù)與其他學(xué)科深度交叉融合,持續(xù)促進(jìn)產(chǎn)品創(chuàng)新與模式改革。為了適應(yīng)這些特征,計(jì)算機(jī)類(lèi)人才必須了解不同系統(tǒng)平臺(tái)的底層結(jié)構(gòu),能夠從系統(tǒng)層面綜合設(shè)計(jì),通過(guò)軟硬件協(xié)同設(shè)計(jì)實(shí)現(xiàn)最優(yōu)的系統(tǒng)方案,這對(duì)計(jì)算機(jī)類(lèi)專(zhuān)業(yè)人才的系統(tǒng)能力提出很高要求。
通過(guò)系統(tǒng)能力培養(yǎng),計(jì)算機(jī)類(lèi)學(xué)生深入理解并掌握計(jì)算機(jī)系統(tǒng)的工作機(jī)制和原理,理解計(jì)算機(jī)系統(tǒng)硬件與軟件層次結(jié)構(gòu)和相互關(guān)聯(lián)(如處理器架構(gòu)、操作系統(tǒng)及高級(jí)語(yǔ)言程序之間的邏輯層次和相互聯(lián)系),并能夠進(jìn)行軟硬件協(xié)同設(shè)計(jì),能夠設(shè)計(jì)與開(kāi)發(fā)滿(mǎn)足新時(shí)代需求的計(jì)算機(jī)系統(tǒng)。這就要求計(jì)算機(jī)類(lèi)學(xué)生既有完備的計(jì)算機(jī)系統(tǒng)知識(shí),又有解決復(fù)雜工程問(wèn)題的實(shí)踐能力,強(qiáng)化和提升學(xué)生的應(yīng)用和創(chuàng)新能力,提高學(xué)生適應(yīng)信息技術(shù)發(fā)展趨勢(shì)的能力[2]。
雖然國(guó)內(nèi)外在系統(tǒng)能力培養(yǎng)上已經(jīng)取得了許多研究進(jìn)展,但是國(guó)內(nèi)地方院校在系統(tǒng)能力培養(yǎng)方面存在一些問(wèn)題[3],不能滿(mǎn)足新經(jīng)濟(jì)發(fā)展的需求。首先,傳統(tǒng)的基于“示意圖+例題”的知識(shí)點(diǎn)講授方法和以驗(yàn)證為目的實(shí)驗(yàn)平臺(tái)無(wú)法提供知識(shí)點(diǎn)的實(shí)現(xiàn)細(xì)節(jié),不利于學(xué)生對(duì)知識(shí)點(diǎn)的理解和應(yīng)用;其次,由于各門(mén)課程的教學(xué)與實(shí)驗(yàn)平臺(tái)缺乏延續(xù)性,缺少貫穿各門(mén)課程的綜合性實(shí)驗(yàn)平臺(tái),不利于學(xué)生工程實(shí)踐能力與創(chuàng)新能力培養(yǎng),學(xué)用脫節(jié)[4];最后,清華大學(xué)等高校的系統(tǒng)能力培養(yǎng)實(shí)驗(yàn)平臺(tái)在地方高校的應(yīng)用存在困難。這些實(shí)驗(yàn)平臺(tái)對(duì)教師的工程能力要求較高,且不能作為教師的科研平臺(tái),地方高校教師在教學(xué)與科研的雙重壓力下,沒(méi)有提高自身工程能力、充分發(fā)揮實(shí)驗(yàn)平臺(tái)作用的積極性。
當(dāng)前教學(xué)通常基于“示意圖+例題”講解知識(shí)點(diǎn)。一方面因?yàn)榭床坏街R(shí)點(diǎn)的具體實(shí)現(xiàn),學(xué)生掌握了知識(shí)點(diǎn)的工作原理后不能靈活使用所學(xué)內(nèi)容;另一方面,教學(xué)中的知識(shí)點(diǎn)相互獨(dú)立,學(xué)生不了解各知識(shí)點(diǎn)在計(jì)算機(jī)系統(tǒng)中的位置及相互關(guān)系。為了解決這些問(wèn)題,需要一個(gè)輔助教師授課的教學(xué)平臺(tái),教學(xué)平臺(tái)中包含知識(shí)點(diǎn)的具體實(shí)現(xiàn)。教師將核心知識(shí)點(diǎn)的具體實(shí)現(xiàn)(開(kāi)源項(xiàng)目源代碼)作為教學(xué)案例,使學(xué)生將理論知識(shí)與具體實(shí)現(xiàn)相結(jié)合,并基于教學(xué)平臺(tái)將所有知識(shí)點(diǎn)串聯(lián)在一起,促進(jìn)學(xué)生對(duì)知識(shí)點(diǎn)的深入理解和靈活應(yīng)用。
實(shí)驗(yàn)是加深學(xué)生對(duì)知識(shí)點(diǎn)理解和應(yīng)用的重要環(huán)節(jié)。當(dāng)前以驗(yàn)證為目的實(shí)驗(yàn)平臺(tái)無(wú)法提供實(shí)現(xiàn)細(xì)節(jié),各門(mén)課程的教學(xué)與實(shí)驗(yàn)平臺(tái)缺乏延續(xù)性,并且缺少貫穿各門(mén)課程的綜合性實(shí)驗(yàn)平臺(tái)。學(xué)生總是要花時(shí)間學(xué)習(xí)新的實(shí)驗(yàn)環(huán)境,增加了學(xué)生負(fù)擔(dān)。各門(mén)課的實(shí)驗(yàn)環(huán)境不能有效結(jié)合在一起,不能進(jìn)行綜合性的實(shí)驗(yàn),不利于學(xué)生工程能力與創(chuàng)新能力的培養(yǎng)。為了解決這些問(wèn)題,需要將各門(mén)課程的教學(xué)平臺(tái)與實(shí)驗(yàn)平臺(tái)統(tǒng)一,并且平臺(tái)代碼開(kāi)源。課程間的教學(xué)與實(shí)踐平臺(tái)要相互關(guān)聯(lián),能夠開(kāi)展大型綜合性實(shí)驗(yàn)。
基于以上分析,教學(xué)與實(shí)驗(yàn)平臺(tái)必須滿(mǎn)足以下要求:①平臺(tái)所用代碼是開(kāi)源免費(fèi)的,并且代碼簡(jiǎn)潔、書(shū)寫(xiě)規(guī)范、容易理解,方便教師從中提取教學(xué)案例,同時(shí)方便學(xué)生自己搭建實(shí)驗(yàn)環(huán)境,使其不受時(shí)間和空間的影響;②平臺(tái)所用代碼在工業(yè)界或科學(xué)研究上廣泛接受,使其能夠用于教師的科研項(xiàng)目,提高教師的積極性;③平臺(tái)所用代碼能夠?qū)崿F(xiàn)完整的計(jì)算機(jī)系統(tǒng),基于該系統(tǒng)可以解決較復(fù)雜的工程問(wèn)題,培養(yǎng)學(xué)生的工程能力和創(chuàng)新能力。
國(guó)家計(jì)算機(jī)系統(tǒng)能力培養(yǎng)工作小組提出的“一個(gè) CPU、一個(gè)編譯器、一個(gè)操作系統(tǒng)”方案能夠很好地體現(xiàn)計(jì)算機(jī)能力培養(yǎng)的具體方法[5-6]。經(jīng)過(guò)調(diào)研,基于RISC-V 的CPU、編譯器和操作系統(tǒng)開(kāi)源項(xiàng)目可滿(mǎn)足上述要求。
RISC-V 是由美國(guó)加州大學(xué)伯克利分校于2010 年提出的全新簡(jiǎn)單且開(kāi)放免費(fèi)的精簡(jiǎn)指令集體系架構(gòu)。與主流的處理器架構(gòu)(如ARM 或x86)相比,RISC-V 不需要考慮向后兼容,并借助計(jì)算機(jī)體系結(jié)構(gòu)多年的發(fā)展經(jīng)驗(yàn),使其架構(gòu)更簡(jiǎn)單高效。經(jīng)過(guò)多年的發(fā)展,已經(jīng)有豐富的開(kāi)源RISC-V 處理器實(shí)現(xiàn),如加州大學(xué)伯克利分校開(kāi)發(fā)的Rocket 與Boom 處理器核,我國(guó)芯來(lái)科技開(kāi)發(fā)的蜂鳥(niǎo)E200 處理器核。以開(kāi)源RISC-V 處理器為實(shí)驗(yàn)平臺(tái)的研究論文更是逐年增加。眾多芯片公司(如三星、英偉達(dá)、西部數(shù)據(jù)等)開(kāi)始使用或者計(jì)劃將自研的RISC-V 處理器用于產(chǎn)品。另一方面,RISC-V 社區(qū)已經(jīng)提供完整的工具鏈,RISC-V 基金也會(huì)持續(xù)維護(hù)工具鏈,包括支持RISC-V 的GCC 編譯器和LLVM 編譯器、操作系統(tǒng)、仿真器、QEMU 模擬器和測(cè)試套件。
經(jīng)過(guò)調(diào)研,我們選擇芯來(lái)科技開(kāi)發(fā)的蜂鳥(niǎo)E200 RISC-V 處理器作為數(shù)字電路設(shè)計(jì)、計(jì)算機(jī)組成原理、計(jì)算機(jī)接口技術(shù)等課程的教學(xué)與實(shí)驗(yàn)平臺(tái);選擇已經(jīng)移植到蜂鳥(niǎo)E200 處理器的FreeRTOS 作為操作系統(tǒng)課程的教學(xué)與實(shí)驗(yàn)平臺(tái),采用開(kāi)源的編譯器LLVM 作為編譯原理課程的教學(xué)與實(shí)驗(yàn)平臺(tái),并將三者相結(jié)合,開(kāi)展大型綜合性實(shí)驗(yàn)。
蜂鳥(niǎo)E200 處理器是由芯來(lái)科技開(kāi)發(fā)的一款開(kāi)源RISC-V 處理器,具有以下優(yōu)點(diǎn):①該處理器不僅提供處理器核的實(shí)現(xiàn),還包括SoC 實(shí)現(xiàn)、FPGA 平臺(tái)和軟件示例;②處理器代碼由Verilog HDL 編寫(xiě)并添加豐富的注釋?zhuān)勺x性強(qiáng),容易理解,最重要的是代碼全部開(kāi)源免費(fèi),相關(guān)內(nèi)容在配套書(shū)籍中有詳細(xì)介紹,非常適合作為高校教學(xué)案例;③處理器代碼由擁有多年處理器開(kāi)發(fā)經(jīng)驗(yàn)的團(tuán)隊(duì)編寫(xiě),代碼符合工業(yè)級(jí)標(biāo)準(zhǔn),不僅可以作為教師的科研教學(xué)平臺(tái),還可以作為師生創(chuàng)新創(chuàng)業(yè)平臺(tái);④該處理器由國(guó)內(nèi)研發(fā)團(tuán)隊(duì)開(kāi)發(fā),可方便獲得開(kāi)發(fā)人員的技術(shù)支持。
FreeRTOS 雖然是一款輕量級(jí)的操作系統(tǒng),但可基本滿(mǎn)足較小系統(tǒng)的需求,其功能包括任務(wù)管理、時(shí)間管理、信號(hào)量、消息隊(duì)列、內(nèi)存管理等,完全滿(mǎn)足操作系統(tǒng)課程的需求。FreeRTOS目前有較高的市場(chǎng)占有率,且源碼公開(kāi),完全免費(fèi),更重要的是,內(nèi)核文件僅由3個(gè)C文件組成,方便學(xué)生學(xué)習(xí)。
LLVM 是用C++編寫(xiě)的編譯框架系統(tǒng),目前已經(jīng)被蘋(píng)果、Xilinx、Facebook、Google 等大公司采用。LLVM 由一系列模塊、可重用的編譯工具鏈構(gòu)成,可讀性和可擴(kuò)展性都優(yōu)勝于GCC。LLVM 所有代碼遵循的開(kāi)源協(xié)議允許被任意修改、商用,而且不需要開(kāi)源。因此,學(xué)生可以基于該框架開(kāi)發(fā)出商業(yè)產(chǎn)品而不會(huì)受到開(kāi)源協(xié)議的約束。LLVM 開(kāi)發(fā)者社區(qū)非常活躍,用戶(hù)手冊(cè)和開(kāi)發(fā)文檔非常完善,并且網(wǎng)絡(luò)上很多學(xué)習(xí)案例,因此學(xué)生具有豐富的學(xué)習(xí)資源。LLVM 可提供編寫(xiě)良好的中間表示,可以作為多種語(yǔ)言的后端,提供針對(duì)多種CPU 的代碼生成功能[7]。
基于RISC-V 開(kāi)源項(xiàng)目,通過(guò)教學(xué)知識(shí)點(diǎn)與開(kāi)源項(xiàng)目相結(jié)合,可以將理論知識(shí)與具體實(shí)現(xiàn)相對(duì)應(yīng)。通過(guò)統(tǒng)一的教學(xué)與實(shí)驗(yàn)平臺(tái),貫穿計(jì)算機(jī)類(lèi)專(zhuān)業(yè)知識(shí)點(diǎn),提高學(xué)生工程能力和創(chuàng)新能力。首先,從上述教學(xué)與實(shí)驗(yàn)平臺(tái)提取教學(xué)案例,閱讀與講解開(kāi)源代碼,使教學(xué)內(nèi)容具體化,提高學(xué)生的學(xué)習(xí)興趣。課后學(xué)生通過(guò)復(fù)現(xiàn)教學(xué)案例,通過(guò)分析源代碼加深對(duì)各知識(shí)點(diǎn)的理解;其次,學(xué)生基于教學(xué)與實(shí)驗(yàn)平臺(tái)對(duì)所學(xué)知識(shí)進(jìn)行拓展,如對(duì)現(xiàn)有方面進(jìn)行評(píng)估和優(yōu)化,嘗試改變知識(shí)點(diǎn)的實(shí)現(xiàn)算法。通過(guò)這個(gè)過(guò)程理解各核心知識(shí)點(diǎn)的工作原理及其實(shí)現(xiàn)方法,能夠加深對(duì)計(jì)算機(jī)系統(tǒng)的全面理解,提高學(xué)生的創(chuàng)新能力;最后,以項(xiàng)目為驅(qū)動(dòng),基于蜂鳥(niǎo)E200 處理器、FreeRTOS 操作系統(tǒng)和LLVM 編譯器,解決較復(fù)雜的工程問(wèn)題,培養(yǎng)學(xué)生的應(yīng)用和創(chuàng)新能力。
課程內(nèi)容改革主要解決課程間知識(shí)點(diǎn)無(wú)銜接與教學(xué)內(nèi)容抽象兩個(gè)問(wèn)題。為了解決這兩個(gè)問(wèn)題,我們梳理計(jì)算機(jī)系統(tǒng)能力培養(yǎng)的關(guān)鍵知識(shí)點(diǎn),并將這些知識(shí)點(diǎn)劃分到上述4 門(mén)核心課程中。在講授課程時(shí),將核心知識(shí)點(diǎn)與蜂鳥(niǎo)E200處理器、RTOS 操作系統(tǒng)和LLVM 編譯器的具體實(shí)現(xiàn)對(duì)應(yīng),形成教學(xué)案例。通過(guò)案例演示并結(jié)合代碼分析增強(qiáng)學(xué)生對(duì)核心知識(shí)點(diǎn)的理解。
(1)數(shù)字電路:數(shù)字電路是學(xué)習(xí)計(jì)算機(jī)系統(tǒng)硬件知識(shí)的基礎(chǔ)。計(jì)算機(jī)組成原理課程中用到的譯碼器、編碼器、加法器、觸發(fā)器等電路單元均在這門(mén)課中介紹。考慮到計(jì)算機(jī)組成原理課程內(nèi)容較多,可以將相關(guān)內(nèi)容放到數(shù)字電路中介紹(例如運(yùn)算部件和流水線的概念)。在數(shù)字電路課程中,在介紹理論知識(shí)的同時(shí),基于蜂鳥(niǎo)E200處理器介紹各種電路單元的功能、使用場(chǎng)景和基于Verilog HDL 的描述方法。學(xué)生通過(guò)課后練習(xí),學(xué)習(xí)EDA 工具的使用方法,模仿各種電路的Verilog HDL 描述,進(jìn)而加深對(duì)核心知識(shí)點(diǎn)的理解,并通過(guò)實(shí)驗(yàn)課程提前學(xué)習(xí)部分計(jì)算機(jī)組成原理知識(shí)點(diǎn)。
(2)計(jì)算機(jī)組成原理:盡管計(jì)算機(jī)組成原理教材上有豐富的示意圖,相關(guān)知識(shí)點(diǎn)的介紹仍然很抽象,教師講課時(shí)覺(jué)得空洞無(wú)力,學(xué)生也感到空洞乏味。為了將講授內(nèi)容與計(jì)算機(jī)系統(tǒng)的真實(shí)情景聯(lián)系在一起,可針對(duì)講授內(nèi)容編寫(xiě)一段程序(C 程序或匯編程序),在蜂鳥(niǎo)E200 系統(tǒng)中構(gòu)建相應(yīng)場(chǎng)景,使講授內(nèi)容具體化。例如,通過(guò)分析具體指令的執(zhí)行過(guò)程講解流水線各階段的功能、流水線沖突及流水線沖突的解決辦法;通過(guò)以蜂鳥(niǎo)E200 系統(tǒng)為例介紹各類(lèi)存儲(chǔ)器的作用、系統(tǒng)總線結(jié)構(gòu)及協(xié)議、I/O 接口及其編址方式;通過(guò)具體例子介紹中斷處理過(guò)程與DMA 傳輸數(shù)據(jù)的過(guò)程。學(xué)生在課后可基于教師提供的程序復(fù)現(xiàn)相關(guān)場(chǎng)景,對(duì)相關(guān)知識(shí)進(jìn)行復(fù)習(xí)鞏固,提高學(xué)生的參與度。
(3)操作系統(tǒng):以實(shí)時(shí)操作系統(tǒng)FreeRTOS源代碼和蜂鳥(niǎo)E200 系統(tǒng)為例,介紹系統(tǒng)存儲(chǔ)管理機(jī)制、系統(tǒng)任務(wù)調(diào)度、文件系統(tǒng)、I/O 子系統(tǒng)、中斷及系統(tǒng)調(diào)用。在講授時(shí)要強(qiáng)調(diào)處理器硬件代碼與操作系統(tǒng)軟件代碼相結(jié)合,使學(xué)生理解計(jì)算機(jī)系統(tǒng)軟件與硬件的協(xié)作方法。例如,在啟動(dòng)過(guò)程中,軟件如何檢測(cè)系統(tǒng)硬件并對(duì)系統(tǒng)硬件進(jìn)行配置,理解這些系統(tǒng)配置的作用;在任務(wù)調(diào)度時(shí),任務(wù)的上下文包括哪些內(nèi)容,操作系統(tǒng)如何完成上下文的切換;在中斷處理時(shí),硬件如何生成中斷向量,操作系統(tǒng)如何根據(jù)中斷向量進(jìn)入中斷服務(wù)程序,中斷在系統(tǒng)任務(wù)調(diào)度中起什么作用。通過(guò)這個(gè)過(guò)程,使學(xué)生建立完整的計(jì)算機(jī)軟硬件層次結(jié)構(gòu)。
(4)編譯原理:基于LLVM 編譯框架介紹編譯的工作流程,如詞法分析、語(yǔ)法分析、語(yǔ)義分析、代碼生成。基于LLVM 編譯器的程序優(yōu)化和靜態(tài)分析,結(jié)合RISC-V 指令集介紹LLVM 編譯器后端實(shí)現(xiàn)。在課程學(xué)習(xí)中,教師根據(jù)核心知識(shí)點(diǎn),找出對(duì)應(yīng)的LLVM 源代碼段,結(jié)合源代碼介紹編譯中所用到的算法,引導(dǎo)學(xué)生有選擇性地研究LLVM 源代碼,這樣可以使學(xué)生將精力集中在編譯算法的實(shí)現(xiàn),減輕學(xué)生面對(duì)大規(guī)模代碼的壓力。另一方面,LLVM 具有良好的代碼風(fēng)格和豐富的文檔,可引導(dǎo)學(xué)生學(xué)習(xí)LLVM 的架構(gòu)和實(shí)現(xiàn)方法,從而掌握實(shí)現(xiàn)大規(guī)模系統(tǒng)軟件的方法。
實(shí)驗(yàn)內(nèi)容分為3 個(gè)階段[8]。在實(shí)驗(yàn)的第1 階段,通過(guò)考查學(xué)生對(duì)核心知識(shí)點(diǎn)對(duì)應(yīng)源代碼的理解,檢查學(xué)生對(duì)核心知識(shí)點(diǎn)的理解程度。比如,在介紹編譯原理的語(yǔ)法分析時(shí),通過(guò)分析LLVM的源代碼,得到遞歸下降風(fēng)格的語(yǔ)法分析實(shí)現(xiàn)過(guò)程。在介紹RISC-V 指令格式時(shí),通過(guò)分析蜂鳥(niǎo)E200 處理器核的指令譯碼代碼得到不同類(lèi)型指令的指令格式及各類(lèi)型指令的譯碼信號(hào),進(jìn)而加深對(duì)處理器指令功能的理解。該階段實(shí)驗(yàn)以代碼分析報(bào)告的形式考查,代碼分析報(bào)告要體現(xiàn)出源代碼如何實(shí)現(xiàn)核心知識(shí)點(diǎn)的工作流程。由于地方高校缺少助教,可安排代碼分析討論活動(dòng)解決這一問(wèn)題。挑選代碼分析報(bào)告寫(xiě)得較好的學(xué)生講解自己的理解,并解答其他同學(xué)提出的問(wèn)題。最后任課教師對(duì)有爭(zhēng)論的問(wèn)題進(jìn)行解答,并根據(jù)討論的過(guò)程給予學(xué)生實(shí)驗(yàn)成績(jī)。這樣有兩個(gè)好處:①實(shí)驗(yàn)內(nèi)容是教學(xué)內(nèi)容的延續(xù),加深學(xué)生對(duì)核心知識(shí)點(diǎn)的理解,提高了學(xué)生的學(xué)習(xí)積極性;②教師可通過(guò)實(shí)驗(yàn)過(guò)程了解學(xué)生對(duì)核心知識(shí)點(diǎn)的困惑,及時(shí)解決學(xué)生的問(wèn)題。
計(jì)算機(jī)系統(tǒng)的核心知識(shí)點(diǎn)均有不斷改進(jìn)的過(guò)程,即有多種實(shí)現(xiàn)方法。在實(shí)驗(yàn)的第2 階段,要求學(xué)生模仿開(kāi)源代碼中核心知識(shí)點(diǎn)的實(shí)現(xiàn)方式,實(shí)現(xiàn)另一種改進(jìn)型的實(shí)現(xiàn)方式,通過(guò)這個(gè)過(guò)程提高學(xué)生的動(dòng)手能力。比如,處理器的cache 可分為全相連、組相連、多路組相連3 種形式。在實(shí)驗(yàn)時(shí)可要求學(xué)生在源代碼的基礎(chǔ)上實(shí)現(xiàn)另外兩種形式,并對(duì)比這幾種形式,從而加深理解不同cache 組織形式的優(yōu)缺點(diǎn)。在這個(gè)階段,不僅進(jìn)一步加深了學(xué)生對(duì)相關(guān)知識(shí)點(diǎn)的理解,同時(shí)提高了學(xué)生的動(dòng)手能力,培養(yǎng)了學(xué)生分析問(wèn)題與解決問(wèn)題的能力。
實(shí)驗(yàn)的第3 階段重點(diǎn)培養(yǎng)學(xué)生的創(chuàng)新能力,這個(gè)階段主要以課程設(shè)計(jì)的方式實(shí)現(xiàn)。課程設(shè)計(jì)包括各門(mén)核心專(zhuān)業(yè)課的課程設(shè)計(jì)及計(jì)算機(jī)系統(tǒng)能力培養(yǎng)的專(zhuān)業(yè)課。前者主要考查學(xué)生對(duì)各門(mén)課程核心知識(shí)點(diǎn)的理解與使用情況,后者主要考查學(xué)生計(jì)算機(jī)系統(tǒng)能力的培養(yǎng)情況。考查形式為,由教師為學(xué)生指定題目,學(xué)生在開(kāi)源平臺(tái)上予以解決。題目的來(lái)源包括教師自己的研究課題、歷年來(lái)計(jì)算機(jī)學(xué)科比賽的題目,鼓勵(lì)學(xué)生提出自己感興趣的問(wèn)題。這樣有兩個(gè)好處:①以問(wèn)題為導(dǎo)向,將各學(xué)科的核心內(nèi)容有機(jī)融合在一起,提高學(xué)生解決復(fù)雜問(wèn)題的能力;②將教學(xué)與科研聯(lián)系在一起,為教師的科研培養(yǎng)更多助手。
(1)具體化的教學(xué)內(nèi)容。傳統(tǒng)基于“示意圖+例題”講解的授課方式以原理分析為主,學(xué)生主要依靠課本中示意圖和例題輔助理解。通過(guò)將蜂鳥(niǎo)E200 處理器系統(tǒng)、FreeRTOS 操作系統(tǒng)和LLVM 編譯器的具體實(shí)現(xiàn)作為教學(xué)案例,學(xué)生對(duì)所講內(nèi)容有直觀理解。更重要的是,學(xué)生能夠根據(jù)教師提供的代碼重現(xiàn)講授場(chǎng)景,不僅提高了學(xué)生的學(xué)習(xí)積極性,還提高了動(dòng)手能力。
(2)貫通式能力培養(yǎng)。能力培養(yǎng)的貫通性體現(xiàn)在教學(xué)內(nèi)容與課程實(shí)驗(yàn)兩個(gè)方面。首先,蜂鳥(niǎo)E200 處理器系統(tǒng)和FreeRTOS 操作系統(tǒng)代表一個(gè)完整的計(jì)算機(jī)系統(tǒng),通過(guò)將二者相結(jié)合,使2 門(mén)課程的核心知識(shí)點(diǎn)有效銜接在一起,學(xué)生對(duì)計(jì)算機(jī)系統(tǒng)有整體認(rèn)識(shí)。其次,課程實(shí)驗(yàn)也基于這個(gè)平臺(tái),教學(xué)內(nèi)容與課程實(shí)驗(yàn)緊密聯(lián)系在一起,學(xué)生通過(guò)實(shí)驗(yàn)深入理解所學(xué)內(nèi)容,也降低了學(xué)生的學(xué)習(xí)難度。
(3)提高學(xué)生解決復(fù)雜工程問(wèn)題的能力。蜂鳥(niǎo)E200 處理器系統(tǒng)、FreeRTOS 操作系統(tǒng)和LLVM 編譯器雖然都是開(kāi)源代碼,但均按照工業(yè)標(biāo)準(zhǔn)實(shí)現(xiàn),是非常好的學(xué)習(xí)范例。通過(guò)對(duì)二者源代碼的學(xué)習(xí),不僅能深入理解計(jì)算機(jī)系統(tǒng)的工作原理,還能掌握軟件與硬件協(xié)同設(shè)計(jì)的方法,進(jìn)而通過(guò)配套實(shí)驗(yàn),培養(yǎng)學(xué)生解決復(fù)雜工程問(wèn)題的能力。
(4)面向社會(huì)需求。在處理器領(lǐng)域,RISV-V作為一種全新的、開(kāi)放免費(fèi)的指令集架構(gòu)在國(guó)內(nèi)外受到廣泛關(guān)注和使用。基于蜂鳥(niǎo)E200 處理器系統(tǒng)的學(xué)習(xí),學(xué)生深入理解RISV-V 處理器架構(gòu),能夠?yàn)閷W(xué)生打下堅(jiān)實(shí)的處理器設(shè)計(jì)基礎(chǔ)。在操作系統(tǒng)領(lǐng)域,F(xiàn)reeRTOS 有著20%的市場(chǎng)占有率,針對(duì)實(shí)時(shí)操作系統(tǒng)的移植、驅(qū)動(dòng)開(kāi)發(fā)等能夠直接滿(mǎn)足企業(yè)的需求。LLVM 是產(chǎn)品級(jí)的開(kāi)源編譯框架,基于LLVM 的學(xué)習(xí),學(xué)生不僅可以學(xué)習(xí)編譯器的架構(gòu)和實(shí)現(xiàn),還可以學(xué)習(xí)如何實(shí)現(xiàn)較大規(guī)模的系統(tǒng)軟件。基于三者的學(xué)習(xí),最終培養(yǎng)能夠解決復(fù)雜工程問(wèn)題的緊缺人才。
將RISC-V 開(kāi)源項(xiàng)目作為教學(xué)與實(shí)驗(yàn)平臺(tái),不僅能夠?qū)⒔虒W(xué)內(nèi)容具體化,還能為計(jì)算機(jī)系統(tǒng)相關(guān)的各門(mén)課程提供貫通式的實(shí)驗(yàn)平臺(tái),為面向計(jì)算機(jī)系統(tǒng)能力培養(yǎng)的教學(xué)改革提供參考依據(jù)。筆者團(tuán)隊(duì)將“自上而下”地協(xié)調(diào)各門(mén)課程的教學(xué)與實(shí)驗(yàn)內(nèi)容改革,詳細(xì)設(shè)計(jì)和規(guī)劃各門(mén)課程的教學(xué)與實(shí)驗(yàn)內(nèi)容,順利完成計(jì)算機(jī)系統(tǒng)能力培養(yǎng)的課程改革任務(wù)。