陳智勇
(桂林電子科技大學(xué)信息科技學(xué)院,廣西 桂林 541004)
隨著新型計算機(jī)系統(tǒng)的設(shè)計和應(yīng)用日益深化,計算機(jī)科學(xué)與技術(shù)專業(yè)人才培養(yǎng)也必須與時俱進(jìn),培養(yǎng)具備系統(tǒng)能力的計算機(jī)專業(yè)人才已成為國內(nèi)外教育專家的共識[1]。教育部高校計算機(jī)科學(xué)與技術(shù)專業(yè)教指委從能力培養(yǎng)的角度強(qiáng)調(diào)了對計算機(jī)學(xué)科學(xué)生的4項專業(yè)能力(計算思維能力、程序分析與設(shè)計能力、算法分析與設(shè)計能力和計算機(jī)系統(tǒng)能力)的培養(yǎng),其中尤其以計算機(jī)系統(tǒng)能力的培養(yǎng)為主[2]。目前清華大學(xué)、浙江大學(xué)、上海交通大學(xué)等高校都在不同程度上進(jìn)行了系統(tǒng)能力培養(yǎng)的實(shí)踐與探索[3]。一些高校以MIPS 為模型機(jī),把 CPU 設(shè)計與操作系統(tǒng)和編譯器的設(shè)計以及外圍電路的設(shè)計結(jié)合起來進(jìn)行軟硬件系統(tǒng)綜合開發(fā)。比如清華大學(xué)開發(fā)的以MIPS CPU為核心的THINPAD教學(xué)實(shí)驗支撐平臺、東南大學(xué)開發(fā)的以MiniSys-1A CPU為核心的軟硬件綜合平臺[4]。
圖1描述了計算機(jī)系統(tǒng)多級層次結(jié)構(gòu)與計算機(jī)人才之間的對應(yīng)關(guān)系。從圖1可以看出,計算機(jī)系統(tǒng)由不同的機(jī)器構(gòu)成,這里的機(jī)器是指能存儲和執(zhí)行程序的算法和數(shù)據(jù)結(jié)構(gòu)的集合體。第1—4層為虛擬機(jī)器,是以軟件為主實(shí)現(xiàn)的機(jī)器;第5—6層為實(shí)際機(jī)器,是由硬件和固件實(shí)現(xiàn)的機(jī)器。計算機(jī)各層次的語言總是通過低一級的語言翻譯或解釋來實(shí)現(xiàn)[5]。第5—6層面向計算機(jī)硬件設(shè)計者,第4層面向操作系統(tǒng)設(shè)計者,它們是為運(yùn)行和支持第1—3層所必需的解釋程序和翻譯程序設(shè)計的,以便能設(shè)計和實(shí)現(xiàn)不同算法和數(shù)據(jù)結(jié)構(gòu)的應(yīng)用問題。第1—3層主要是為應(yīng)用程序設(shè)計者解決各類應(yīng)用問題設(shè)計的。計算機(jī)學(xué)科主要研究計算機(jī)系統(tǒng)各個不同層次的實(shí)現(xiàn)及其相互轉(zhuǎn)換的機(jī)制,計算機(jī)科學(xué)與技術(shù)專業(yè)主要培養(yǎng)在計算機(jī)系統(tǒng)或系統(tǒng)某些層次上從事相關(guān)工作的人才。
圖1 計算機(jī)系統(tǒng)多級層次結(jié)構(gòu)與計算機(jī)人才之間的對應(yīng)關(guān)系
從圖1可看出,計算機(jī)科學(xué)與技術(shù)專業(yè)培養(yǎng)的學(xué)生主要是設(shè)計和研制計算機(jī)的硬件設(shè)計人員、系統(tǒng)軟件開發(fā)人員和應(yīng)用軟件開發(fā)人員。不管培養(yǎng)哪個層面的計算機(jī)技術(shù)人才,都要重視培養(yǎng)學(xué)生的系統(tǒng)能力。
所謂計算機(jī)系統(tǒng)能力,筆者認(rèn)為,就是對計算機(jī)系統(tǒng)有深刻理解,懂得從不同計算機(jī)設(shè)計者的角度去分析計算機(jī)的屬性,具備在計算機(jī)系統(tǒng)各層次上分析、設(shè)計、實(shí)現(xiàn)和優(yōu)化計算機(jī)軟硬件的能力。
隨著超標(biāo)量超流水線、超長指令字、同時多線程、單芯片多核、多芯片多核單機(jī)系統(tǒng)的出現(xiàn),以及對稱式多處理機(jī)、集中式共享存儲器多處理機(jī)、分布式共享存儲器多處理機(jī)、分布式非共享存儲器多處理機(jī)、計算機(jī)集群等多機(jī)系統(tǒng)的出現(xiàn),計算機(jī)系統(tǒng)的分析、設(shè)計、實(shí)現(xiàn)和優(yōu)化均基于并行計算機(jī)體系結(jié)構(gòu)。比如計算機(jī)硬件設(shè)計者要考慮多處理器互聯(lián)網(wǎng)絡(luò)、容錯技術(shù),操作系統(tǒng)設(shè)計者要考慮多處理器或多處理機(jī)資源調(diào)度、并行存儲器管理,編譯器設(shè)計者要考慮并行目標(biāo)代碼優(yōu)化,應(yīng)用程序設(shè)計者要考慮并行程序設(shè)計語言、并行算法等。
只有具備計算機(jī)系統(tǒng)能力,計算機(jī)硬件設(shè)計者才能夠設(shè)計出性價比高的面向特定應(yīng)用的專用計算機(jī)或通用計算機(jī),操作系統(tǒng)設(shè)計者才能編寫出充分利用計算機(jī)軟硬件資源、高效組織計算機(jī)工作流程以及方便用戶的系統(tǒng)軟件,編譯程序設(shè)計者才能編寫出面向計算機(jī)硬件結(jié)構(gòu)和操作系統(tǒng)的優(yōu)化編譯器,應(yīng)用程序設(shè)計者才能最合理地利用底層硬件實(shí)現(xiàn)機(jī)制、系統(tǒng)軟件提供的相應(yīng)功能以及程序設(shè)計語言和算法,編寫出性能最優(yōu)的應(yīng)用軟件。
在計算機(jī)系統(tǒng)能力培養(yǎng)方面,桂林電子科技大學(xué)計算機(jī)科學(xué)與技術(shù)專業(yè)的基本培養(yǎng)目標(biāo)為:建立計算機(jī)系統(tǒng)完整概念,深刻理解計算機(jī)系統(tǒng)的層次化結(jié)構(gòu),并能夠從不同計算機(jī)設(shè)計者的角度去分析計算機(jī)的屬性,具備分析、設(shè)計、實(shí)現(xiàn)和優(yōu)化計算機(jī)軟硬件的能力。具體包括:理解計算機(jī)系統(tǒng)中各個層次之間的相互關(guān)系,掌握指令集體系結(jié)構(gòu)的工作原理和設(shè)計方法,具備使用EDA工具和VHDL 進(jìn)行計算機(jī)硬件設(shè)計的基本能力,深刻理解操作系統(tǒng)對計算機(jī)硬件管理、進(jìn)程管理的關(guān)系,理解并掌握面向計算機(jī)硬件結(jié)構(gòu)的優(yōu)化編譯技術(shù),深刻理解面向計算機(jī)硬件結(jié)構(gòu)進(jìn)行高效程序設(shè)計的基本原理和程序設(shè)計方法,重視編程技術(shù)、調(diào)度技術(shù)、編譯技術(shù)與計算機(jī)硬件結(jié)構(gòu)的有機(jī)結(jié)合;要求學(xué)生能進(jìn)行CPU及外圍電路設(shè)計、操作系統(tǒng)設(shè)計和簡單編譯器設(shè)計,具備計算機(jī)系統(tǒng)分析能力、系統(tǒng)設(shè)計與實(shí)現(xiàn)能力、系統(tǒng)優(yōu)化與創(chuàng)新能力。
根據(jù)圖1中計算機(jī)系統(tǒng)層次結(jié)構(gòu)與計算機(jī)人才之間的對應(yīng)關(guān)系,規(guī)劃出計算機(jī)系統(tǒng)層次結(jié)構(gòu)與計算機(jī)專業(yè)主要課程之間的對應(yīng)關(guān)系,如圖2所示。我院從2013級的專業(yè)人才培養(yǎng)方案開始,對計算機(jī)科學(xué)與技術(shù)專業(yè)的主要課程進(jìn)行了重新建設(shè),并根據(jù)系統(tǒng)能力培養(yǎng)總體目標(biāo)及計算機(jī)系統(tǒng)各層次之間的關(guān)系,明確了每門課程的教學(xué)目標(biāo),制定了相關(guān)課程各自涵蓋的知識點(diǎn)和能力培養(yǎng)要求。在計算機(jī)專業(yè)主要課程中,數(shù)字邏輯電路、計算機(jī)組成原理、操作系統(tǒng)、編譯原理、計算機(jī)系統(tǒng)結(jié)構(gòu)是構(gòu)建一個完整計算機(jī)系統(tǒng)的核心課程,它是計算機(jī)系統(tǒng)研究、設(shè)計和應(yīng)用開發(fā)的基礎(chǔ)。
圖2 計算機(jī)系統(tǒng)層次結(jié)構(gòu)與計算機(jī)專業(yè)主要課程之間的對應(yīng)關(guān)系
課程在計算機(jī)系統(tǒng)層次結(jié)構(gòu)中的定位與相互關(guān)系、主要知識點(diǎn)和系統(tǒng)能力要求如下。
(1)數(shù)字邏輯電路。該課程綜合運(yùn)用了電路與電路技術(shù)基礎(chǔ)提供的基本電路和器件進(jìn)行組合邏輯電路和時序邏輯電路的設(shè)計,為計算機(jī)功能部件的設(shè)計和分析打下基礎(chǔ)。它系統(tǒng)地介紹了數(shù)字邏輯電路設(shè)計的基本原理和方法。主要內(nèi)容包括組合邏輯電路(全加器、加法器、譯碼器、編碼器、比較器等)、時序邏輯電路(寄存器、計數(shù)器、移位器、內(nèi)存儲器等)、同步時序邏輯電路的分析與設(shè)計、中大規(guī)模集成電路的設(shè)計方法等。學(xué)完該課程,學(xué)生能夠了解目前主流計算機(jī)解決問題最根本的基礎(chǔ)是布爾代數(shù)和數(shù)字邏輯電路,并了解利用數(shù)字邏輯電路可以構(gòu)建執(zhí)行程序所需的所有功能部件。該課程側(cè)重培養(yǎng)學(xué)生進(jìn)行硬件電路分析、設(shè)計、調(diào)優(yōu)和檢錯的能力。
(2)計算機(jī)組成原理。該課程在圖2中涉及第5層(傳統(tǒng)機(jī)器)和第6層(微程序機(jī)器),它綜合運(yùn)用了數(shù)字邏輯課程中提供的組合邏輯電路和時序邏輯電路來設(shè)計計算機(jī)的功能部件,同時完成計算機(jī)指令集和微指令集的設(shè)計。它系統(tǒng)地介紹了計算機(jī)最基本的組成和工作原理、分析方法、設(shè)計技術(shù)等。主要內(nèi)容包括計算機(jī)工作過程、運(yùn)算方法和運(yùn)算器、存儲系統(tǒng)、指令系統(tǒng)、中央處理器、總線系統(tǒng)和輸入/輸出系統(tǒng)等。既介紹單機(jī)系統(tǒng)各功能部件的組成和工作原理,又以當(dāng)代典型的Core 2處理器芯片為例介紹CPU內(nèi)核結(jié)構(gòu)及相關(guān)技術(shù);既注重計算機(jī)組成的理論知識,又重視高速運(yùn)算器、主存儲器、微程序控制器,以及整個CPU的設(shè)計與實(shí)現(xiàn)。該課程側(cè)重培養(yǎng)學(xué)生計算機(jī)硬件的系統(tǒng)級認(rèn)知能力和計算機(jī)系統(tǒng)的設(shè)計能力,并與操作系統(tǒng)、編譯原理和微機(jī)原理與接口技術(shù)等課程融合為計算機(jī)系統(tǒng)綜合課程設(shè)計,以培養(yǎng)學(xué)生的基本創(chuàng)新能力。
(3)操作系統(tǒng)。該課程對應(yīng)圖2中的第4層(操作系統(tǒng)機(jī)器),它是第5層(傳統(tǒng)機(jī)器)的引申,它提供傳統(tǒng)機(jī)器所沒有的,但為匯編語言和高級語言的使用和實(shí)現(xiàn)所需的基本操作,它經(jīng)第5層的機(jī)器語言程序解釋實(shí)現(xiàn)。課程系統(tǒng)地介紹了操作系統(tǒng)的基本概念和方法、設(shè)計原理和實(shí)現(xiàn)技術(shù)。主要內(nèi)容包括處理器管理、進(jìn)程同步、通信和死鎖、存儲管理、設(shè)備管理、文件管理、操作系統(tǒng)安全和保護(hù)、網(wǎng)絡(luò)和分布式操作系統(tǒng)、操作系統(tǒng)設(shè)計原則、Linux實(shí)例研究。既介紹了經(jīng)典內(nèi)容,又以當(dāng)代主流操作系統(tǒng)Linux作為實(shí)例介紹操作系統(tǒng)內(nèi)核主要模塊及定制開發(fā);既注重操作系統(tǒng)的理論知識,又重視操作系統(tǒng)的實(shí)踐和應(yīng)用。該課程側(cè)重培養(yǎng)學(xué)生抽象、分析、結(jié)構(gòu)、設(shè)計方面的能力,特別是對系統(tǒng)軟件的設(shè)計和開發(fā)能力,包括解決操作系統(tǒng)領(lǐng)域有關(guān)問題的能力,以及研究和發(fā)展操作系統(tǒng)的創(chuàng)新能力。
(4)編譯原理。該課程在圖2中對應(yīng)于第2層(高級語言機(jī)器)和第4層(操作系統(tǒng))之間,它用來將高級語言源程序轉(zhuǎn)換成面向計算機(jī)硬件能夠識別的目標(biāo)代碼。為保證目標(biāo)程序的高效運(yùn)行,必須面向計算機(jī)體系結(jié)構(gòu)設(shè)計優(yōu)化編譯器。它系統(tǒng)地介紹了程序設(shè)計語言編譯系統(tǒng)的基本原理、設(shè)計方法和實(shí)現(xiàn)技術(shù)。主要內(nèi)容包括詞法分析、自頂向下與自底向上的語法分析、屬性方法與語法制導(dǎo)翻譯技術(shù)、語義分析和中間代碼生成、目標(biāo)程序運(yùn)行時存儲空間組織、代碼優(yōu)化、目標(biāo)代碼生成、并行編譯技術(shù)基礎(chǔ),以及相關(guān)的形式語言和有限自動機(jī)的知識。該課程側(cè)重培養(yǎng)學(xué)生設(shè)計、實(shí)現(xiàn)、分析和維護(hù)編譯程序方面的基本技術(shù),為今后從事應(yīng)用軟件和系統(tǒng)軟件的開發(fā)打下一定的理論和實(shí)踐基礎(chǔ)。
(5)計算機(jī)系統(tǒng)結(jié)構(gòu)。該課程在圖2中對應(yīng)于第4層(操作系統(tǒng)機(jī)器)和第5層(傳統(tǒng)機(jī)器)之間,它從機(jī)器語言程序設(shè)計者的角度展示計算機(jī)系統(tǒng)的屬性,即概念性結(jié)構(gòu)和功能特性。它系統(tǒng)地介紹了計算機(jī)系統(tǒng)結(jié)構(gòu)的基本概念、設(shè)計原理、分析方法以及有關(guān)的先進(jìn)技術(shù)和最新發(fā)展趨勢。主要內(nèi)容包括計算機(jī)性能、超標(biāo)量超流水線、并行處理技術(shù)、向量處理機(jī)、多處理機(jī)、并行算法和并行編程基礎(chǔ)、多線程技術(shù)、單芯片多處理器技術(shù)、集群技術(shù)、云計算等。既介紹具體的并行處理芯片及并行處理機(jī)系統(tǒng),又結(jié)合具體應(yīng)用介紹如何進(jìn)行粒度打包、并行編程、時延容忍、負(fù)載平衡、并行調(diào)度、優(yōu)化編譯等。既注重計算機(jī)系統(tǒng)的理論知識,又重視編程技術(shù)、調(diào)度技術(shù)、編譯技術(shù)與計算機(jī)硬件結(jié)構(gòu)的有機(jī)結(jié)合。該課程側(cè)重培養(yǎng)學(xué)生計算機(jī)系統(tǒng),特別是并行計算機(jī)系統(tǒng)的軟硬件綜合應(yīng)用能力,為高效的程序設(shè)計、并行操作系統(tǒng)設(shè)計和并行編譯器設(shè)計打下基礎(chǔ)。
根據(jù)圖2所示的計算機(jī)專業(yè)主要課程,設(shè)置計算機(jī)科學(xué)與技術(shù)專業(yè)“三橫兩縱”實(shí)踐課程教學(xué)體系,如圖3所示,“三橫”是指基礎(chǔ)能力培養(yǎng)、專業(yè)能力培養(yǎng)和綜合能力培養(yǎng)三個層次,“兩縱”是指硬件系列課程實(shí)踐環(huán)節(jié)和軟件系列課程實(shí)踐環(huán)節(jié)。圖3中列出大學(xué)一年級到大學(xué)四年級每個階段開設(shè)的專業(yè)實(shí)踐課程及每門課程之間的關(guān)系,從圖中可以看出,實(shí)踐課程體系的設(shè)置體現(xiàn)了對學(xué)生從系統(tǒng)認(rèn)知能力逐步過渡到專業(yè)能力、綜合能力的不間斷培養(yǎng)過程。
圖3 計算機(jī)科學(xué)與技術(shù)專業(yè)“三橫兩縱”實(shí)踐課程教學(xué)體系
在計算機(jī)科學(xué)與技術(shù)專業(yè)課程的所有實(shí)踐環(huán)節(jié)中,為了讓學(xué)生全面深刻地理解計算機(jī)系統(tǒng),設(shè)置的核心實(shí)踐環(huán)節(jié)分別是數(shù)字邏輯電路實(shí)驗、計算機(jī)原理課程設(shè)計、微機(jī)原理與接口技術(shù)實(shí)驗、操作系統(tǒng)課程設(shè)計、編譯原理課程設(shè)計、計算機(jī)系統(tǒng)綜合課程設(shè)計和畢業(yè)設(shè)計。其中數(shù)字邏輯電路實(shí)驗是計算機(jī)原理課程設(shè)計的基礎(chǔ),主要培養(yǎng)學(xué)生掌握多路選擇器、比較器、編碼器、譯碼器、加法器等組合邏輯電路,以及寄存器、寄存器堆、移位器、計數(shù)器等時序邏輯電路的VHDL設(shè)計方法,它們是計算機(jī)組成原理實(shí)驗中使用的基本部件,以設(shè)計運(yùn)算器、存儲器、微程序控制器、數(shù)據(jù)通路等IP核;計算機(jī)原理課程設(shè)計是利用計算機(jī)組成原理實(shí)驗封裝的IP核,利用EDA軟件和VHDL設(shè)計一個簡單的MIPS CPU;微機(jī)原理與接口技術(shù)實(shí)驗主要培養(yǎng)學(xué)生掌握并行接口、串行接口、中斷控制器、定時器的設(shè)計方法,以及外圍電路的設(shè)計和控制方法,它與計算機(jī)原理課程設(shè)計的作品可整合成一個有輸入/輸出系統(tǒng)的計算機(jī)硬件系統(tǒng);操作系統(tǒng)課程設(shè)計主要培養(yǎng)學(xué)生掌握在MIPS CPU上如何實(shí)現(xiàn)進(jìn)程管理、作業(yè)管理、存儲管理、設(shè)備管理、文件管理等,編寫程序并實(shí)現(xiàn)相應(yīng)的系統(tǒng)管理功能;編譯原理課程設(shè)計主要培養(yǎng)學(xué)生掌握詞法分析器、語法分析器的設(shè)計,并設(shè)計一個面向前期設(shè)計的計算機(jī)硬件系統(tǒng)和操作系統(tǒng)的編譯器;計算機(jī)系統(tǒng)綜合課程設(shè)計主要是升級MIPS CPU的指令集,或?qū)PU重新設(shè)計成五級流水CPU,并通過真實(shí)程序的運(yùn)行來測試整個計算機(jī)系統(tǒng)硬件、操作系統(tǒng)和編譯器設(shè)計的正確性,培養(yǎng)在計算機(jī)系統(tǒng)各層次上分析、設(shè)計、實(shí)現(xiàn)和優(yōu)化計算機(jī)軟硬件的能力。
我校計算機(jī)科學(xué)與技術(shù)專業(yè)從2013級開始已實(shí)施計算機(jī)系統(tǒng)能力培養(yǎng)的理念,從計算機(jī)硬件設(shè)計者、系統(tǒng)程序員、應(yīng)用程序員培養(yǎng)的角度開設(shè)計算機(jī)專業(yè)課程,并通過“三橫兩縱”實(shí)踐課程教學(xué)體系逐步培養(yǎng)學(xué)生的系統(tǒng)認(rèn)知能力與分析能力、系統(tǒng)設(shè)計與實(shí)現(xiàn)能力、系統(tǒng)優(yōu)化與創(chuàng)新能力。通過課程體系和教學(xué)內(nèi)容的改革與實(shí)施,計算機(jī)科學(xué)與技術(shù)專業(yè)的所有學(xué)生都掌握了MIPS CPU的設(shè)計與實(shí)現(xiàn)方法,以及基于MIPS CPU的操作系統(tǒng)部分功能的實(shí)現(xiàn)方法,并且可以在商品化的MIPS CPU和操作系統(tǒng)上完成簡單的編譯器設(shè)計,使學(xué)生初步具備了計算機(jī)系統(tǒng)綜合開發(fā)的能力。