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