計算機組成原理課程教學(xué)探討

時間:2022-11-22 10:11:53

導(dǎo)語:計算機組成原理課程教學(xué)探討一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

計算機組成原理課程教學(xué)探討

摘要:在分析計算機組成原理課程地位和教學(xué)現(xiàn)狀的基礎(chǔ)上,以計算機系統(tǒng)能力培養(yǎng)為導(dǎo)向,借鑒國內(nèi)示范高校的教改經(jīng)驗,探討地方普通高校計算機組成原理課程的教學(xué)內(nèi)容、教學(xué)實踐和教學(xué)方法,并闡述教學(xué)系統(tǒng)設(shè)計及具體實施過程。

關(guān)鍵詞:計算機組成原理;系統(tǒng)能力培養(yǎng);地方高校

當(dāng)今時代計算機技術(shù)的應(yīng)用極大地推動了社會經(jīng)濟的蓬勃發(fā)展,不斷改變著社會的生活方式。計算機技術(shù)的高速發(fā)展對高等學(xué)校計算機類專業(yè)學(xué)生的培養(yǎng)也不斷提出更高的要求,國內(nèi)計算機領(lǐng)域的專家學(xué)者也在不斷探索和改革計算機類專業(yè)的教學(xué)模式、方法和內(nèi)容。近年來,各高校都在實踐基于系統(tǒng)能力的培養(yǎng)模式。系統(tǒng)能力是由系統(tǒng)知識和工程實踐能力組成的:系統(tǒng)知識,即掌握計算機核心系統(tǒng)的工作原理及其構(gòu)造方法,理解計算機系統(tǒng)的軟硬件相互作用關(guān)系;工程實踐能力,即用工程方法開發(fā)計算機應(yīng)用系統(tǒng)。

1課程地位和教學(xué)現(xiàn)狀

計算機組成原理課程在計算機類的培養(yǎng)方案中一直作為核心課程,在課程體系中占有重要位置,起到承上啟下的作用[1]。在從2009年開始的全國計算機專業(yè)研究生入學(xué)考試中,計算機組成原理作為4門核心基礎(chǔ)課之一,并且占有45分,可見其課程地位的重要性。然而,學(xué)生對這門課程學(xué)習(xí)的積極性普遍不高,學(xué)生認(rèn)為“難學(xué)”,教師覺得“難教”。究其原因,可能有以下幾點:①課程知識點涉及面廣、多而繁雜、概念抽象[2]。該課程既不像離散數(shù)學(xué)課程邏輯性強,也不像數(shù)據(jù)結(jié)構(gòu)有算法理論,更不像高級語言可編程實現(xiàn)。②現(xiàn)在的就業(yè)崗位,絕大多數(shù)崗位要求的都是軟件編程類。各高校的研究生招生的方向也是軟件方向居多,硬件方向偏少,長期以來就在學(xué)生中形成了“愛軟怕硬”的現(xiàn)象。③課程內(nèi)容主要是以講授功能部件的工作原理為主,軟硬件脫節(jié),難以建立計算機系統(tǒng)的層次感,難以深入理解計算機系統(tǒng)的工作過程。④沒有以處理器的設(shè)計為主線來講授,所以難以建立計算機系統(tǒng)的整機概念。近年來,在全國計算機教學(xué)指導(dǎo)委員會的指導(dǎo)和推動下,各高校都在進(jìn)行計算機系統(tǒng)能力培養(yǎng)的教學(xué)改革。國內(nèi)有多所985高校在10年前就已經(jīng)開始了系統(tǒng)能力培養(yǎng)試點工作,現(xiàn)在他們的成功經(jīng)驗開始在其他高校示范推廣。到2017年3月,已有58所高校入選教指委系統(tǒng)能力培養(yǎng)試點高校。目前,國內(nèi)主要有4種系統(tǒng)能力培養(yǎng)模式[3]:①以RandalE.Bryant教授等編寫的《深入理解計算機系統(tǒng)》教材為代表,從程序員的角度來講述應(yīng)用程序員如何能夠利用系統(tǒng)知識寫出更高效的程序。②以YaleN.Patt教授等編寫的《計算系統(tǒng)概論》教材為代表,目的是讓學(xué)生在掌握計算機底層工作的原理機制之后,能更加從容地解決以后可能面臨的新問題,包括高級編程語言方面的問題。③以袁春風(fēng)教授編寫的《計算機系統(tǒng)基礎(chǔ)》教材為代表,使學(xué)生能夠很好地將高級語言程序、匯編語言、編譯和鏈接、組成原理、操作系統(tǒng)等相關(guān)的基礎(chǔ)內(nèi)容有機貫穿起來,以建立完整的計算機系統(tǒng)概念,從而能深刻理解計算機系統(tǒng)的工作原理。④以“一個CPU、一個OS、一個編譯器”為目標(biāo),在統(tǒng)一硬件實驗平臺上以MIPS或者ARM指令集為基礎(chǔ),逐步建立深化系統(tǒng)觀念。這些都是國內(nèi)頂尖“985”高校探索出來的行之有效的培養(yǎng)模式,但對學(xué)生能力、教師水平、實驗設(shè)備等方面都有很高的要求,地方高校很難一步到位、全面推廣,必須因校制宜、量體裁衣。

2教學(xué)系統(tǒng)設(shè)計

2.1構(gòu)建教學(xué)內(nèi)容。近年來,國內(nèi)一些高水平的高校大多選用國外的一些經(jīng)典教材,如DavidPatterson教授和Hennessy教授編著的ComputerOrganizationandDesign:theardware/SoftwareInterface,Bryant教授等編著的ComputerSystems:AProgrammer’sPerspective等。這些教材雖然有中譯本,但篇幅太大、內(nèi)容太多,給學(xué)生的學(xué)習(xí)帶來較大困難。一般地方高校將其作為參考書,并結(jié)合國內(nèi)的優(yōu)秀教材,構(gòu)建教學(xué)內(nèi)容。教學(xué)內(nèi)容構(gòu)建的原則如下:①把硬件和軟件結(jié)合起來講授,“軟硬兼施”,使學(xué)生熟悉軟件和數(shù)據(jù)在計算機中的表示、存儲、類型轉(zhuǎn)換、局部性原理、編譯優(yōu)化、執(zhí)行過程等,內(nèi)容具體而不抽象,使學(xué)生能夠正確分析和解決軟件運行中出現(xiàn)的各種問題,幫助學(xué)生編寫高效率的程序代碼;②以MIPS指令集處理器的設(shè)計為主線,使學(xué)生熟悉數(shù)據(jù)通路和控制器的設(shè)計思想,清晰、具體地建立整機的概念。這樣組織教學(xué),內(nèi)容線索清楚、多而不亂。具體內(nèi)容安排如下:①計算機概論部分,減少對計算機的基本介紹部分內(nèi)容,增加計算機系統(tǒng)的層次結(jié)構(gòu)內(nèi)容、計算機開發(fā)與執(zhí)行過程和性能評價部分的內(nèi)容。②運算方法和運算器部分,增加的內(nèi)容有結(jié)合C語言來講解數(shù)據(jù)在底層的表示、存儲、類型轉(zhuǎn)換、運算、大端小端等知識點,可以激發(fā)學(xué)生的學(xué)習(xí)興趣。特別是一個運算同時有無符號數(shù)和有符號數(shù)參加、不同類型數(shù)據(jù)在位擴展和截斷運算時都會出現(xiàn)意想不到的結(jié)果,學(xué)生會特別好奇,有學(xué)習(xí)的動力。把C語言中的運算與MIPS指令中的運算對照講解,使學(xué)生能夠從高級進(jìn)入到底層,有知其然而知其所以然的感覺。在基本運算部件中,強調(diào)帶標(biāo)志位的加法器,與后續(xù)的CPU設(shè)計內(nèi)容相呼應(yīng)。③指令系統(tǒng)部分增加的內(nèi)容有MIPS指令系統(tǒng)和MIPS指令匯編語言,各種程序結(jié)構(gòu)和過程用調(diào)用的機器代碼表示。給學(xué)生講解匯編和反匯編的過程,學(xué)生會感興趣,覺得有收獲。④中央處理器部分,該部分內(nèi)容與原來只講授CPU的基本工作原理完全不同,是具體以一定數(shù)量的MIPS指令集為例,詳細(xì)分析每條指令的格式和實現(xiàn)過程,構(gòu)建數(shù)據(jù)通路,設(shè)計組合邏輯控制器和微程序控制器,對于流水線部分,主要講清楚其工作原理和存在的問題及解決辦法。⑤多層次的存儲器體系結(jié)構(gòu)部分,該部分的內(nèi)容與之前沒有明顯的增減,但在程序訪問的局部性和Cache命中率等知識點的講授時應(yīng)結(jié)合C語言程序,可以加深學(xué)生對計算機工作原理的認(rèn)識和理解。⑥總線及輸入輸出系統(tǒng)部分內(nèi)容沒有明顯的增減??傊?,把軟硬件結(jié)合起來講授,可以吸引學(xué)生的興趣,調(diào)動學(xué)習(xí)的積極性;以MIPS指令集為基礎(chǔ)→功能部件→單周期CPU→多周期CPU→流水線CPU為主線,能夠使學(xué)生建立整機的系統(tǒng)概念和設(shè)計能力。2.2規(guī)劃實驗教學(xué)。1)原來的實驗教學(xué)設(shè)計。舉例來說,湖北工業(yè)大學(xué)原有的實驗項目是運算器實驗、存儲器及數(shù)據(jù)通路實驗和微程序控制器實驗等3個實驗項目,平臺使用的是基于FPGA的試驗箱、QuatrusⅡ軟件平臺和VHDL語言。該實驗方式帶有綜合性和設(shè)計性,但受硬件條件限制,主要是利用實驗系統(tǒng)提供的功能部件來完成簡單的設(shè)計實驗,很大程度上是偏向于驗證性,微程序控制器實驗也主要是在系統(tǒng)提供的微程序中進(jìn)行微指令修改。這對加深理解計算機工作原理有幫助,但對構(gòu)建整機概念和設(shè)計CPU支持不足。此外,還有如下缺點:①實驗過程繁瑣,實驗過程中,需要學(xué)生先選擇電路模式、芯片參數(shù)設(shè)置、引腳鎖定、USB-Blaster連接、配置文件下載等一系列過程,這些過程既繁瑣又容易出錯,最主要的是與實驗的主要任務(wù)不是密切相關(guān),浪費學(xué)生很多時間,影響實驗效果;②實驗靈活性不夠,由于試驗箱的數(shù)量有限,學(xué)生只能在實驗室完成實驗,限制了學(xué)生實驗的時間,對學(xué)生來說,沒有時間選擇上的靈活性;③試驗箱容易損壞,隨著時間的推移,試驗箱逐步損壞嚴(yán)重,又不能及時補充,嚴(yán)重影響學(xué)生的實驗效果。2)實驗平臺選擇。實踐教學(xué)采用真實的硬件設(shè)計方式固然很好,但一般地方高校的硬件設(shè)備可能支持不足,還要求學(xué)生在短時間內(nèi)熟練掌握硬件描述語言以及軟硬件開發(fā)環(huán)境,實屬不易。此外,學(xué)生畏難情緒嚴(yán)重,對師資要求也高,抽象的硬件描述語言使學(xué)生很難建立設(shè)計與電路的對應(yīng)關(guān)系[4]。所以,如果一味強調(diào)硬件上的實現(xiàn),可能還難以達(dá)到設(shè)計CPU的初衷。通過學(xué)習(xí)其他高校的先進(jìn)經(jīng)驗,湖北工業(yè)大學(xué)實驗平臺現(xiàn)在采用logisim仿真軟件。logisim是一款基于Java的應(yīng)用程序,可運行在任何支持Java環(huán)境的平臺,由于是免費軟件,不存在商業(yè)軟件授權(quán)和費用問題,對辦學(xué)經(jīng)費緊張的地方高校非常適合。Logisim中的設(shè)計是圖行化界面,學(xué)習(xí)快捷、易于上手,電路的設(shè)計和仿真都很方便,可以完全脫離硬件仿真運行[5]。學(xué)生可以方便地在自己電腦上使用,增強了實驗的靈活性,也方便了教師對實驗結(jié)果的檢查和驗收。3)實驗項目設(shè)置。實驗項目有ALU設(shè)計實驗、寄存器堆設(shè)計實驗和MIPS單周期(多周期)CPU設(shè)計實驗3個項目,由于學(xué)時原因,學(xué)生在實驗課內(nèi)無法完成實驗任務(wù),需要學(xué)生在課外花費大量的時間。第1個ALU設(shè)計實驗,主要讓學(xué)生完成1個32位的加法器,1個能夠產(chǎn)生加減控制、溢出判斷、符號控制、結(jié)果選擇控制等信號的局部控制器,1個能夠產(chǎn)生加減運算輸出、邏輯或運算輸出、比較結(jié)果輸出及各種運算標(biāo)志位的運算器。第2個寄存器堆設(shè)計實驗,主要是讓學(xué)生構(gòu)建1個MIPS寄存器組,內(nèi)部包含32個32位寄存器,具有1個寫入端口和2個讀出端口。第3個MIPS單周期(多周期)CPU設(shè)計實驗,讓學(xué)生完成10條以上MIPS指令的單周期或多周期的CPU設(shè)計并通過測試程序的測試。第3個實驗在前2個實驗的基礎(chǔ)上,要添加指令譯碼器、主控制器、地址產(chǎn)生和轉(zhuǎn)移邏輯、位擴展等部件。控制器主要采用組合邏輯控制器。單周期和多周期CPU設(shè)計實例如圖1和圖2所示。在軟件仿真平臺上完成實驗,優(yōu)點是同樣能夠培養(yǎng)學(xué)生處理器的設(shè)計能力,加深對計算機的理解,建立整機系統(tǒng)的概念,方便靈活,減少了學(xué)生的設(shè)計和實現(xiàn)難度,實驗成功率會提高。不足之處是難以提高學(xué)生的硬件系統(tǒng)設(shè)計和調(diào)試能力。對于部分感興趣的同學(xué),可以通過短學(xué)期選修課程設(shè)計來提高硬件設(shè)計和調(diào)試能力。4)過程管理加強。上述3個實驗項目,學(xué)生在課內(nèi)安排的實驗時間內(nèi)是難以完成的,需要在課外安排時間,因此,應(yīng)該加強監(jiān)督管理和課外輔導(dǎo)。實驗采用小班上課,任課教師現(xiàn)場講解和指導(dǎo),課外通過線上和線下進(jìn)行輔導(dǎo)答疑。雖然沒有嚴(yán)格的考勤,但設(shè)置幾個模塊的完成時間和檢查點,并對落后進(jìn)度的學(xué)生給予幫助。對每位同學(xué)的實驗要驗收實驗結(jié)果和提問答辯,而不僅僅是批閱實驗報告。5)課程設(shè)計增設(shè)。利用暑期短學(xué)期實踐時間,讓部分有興趣的同學(xué)可以繼續(xù)選修這門課程的課程設(shè)計,在logisim仿真平臺上完成理想流水線→轉(zhuǎn)發(fā)流水線→氣泡流水線→分支流水線CPU的設(shè)計。愿意再繼續(xù)深入學(xué)習(xí)的同學(xué),可以基于VerilogHDL設(shè)計并下載到FPGA實驗板上。2.3設(shè)計教學(xué)方法。除了采用通用的教學(xué)方法外,結(jié)合計算機組成原理這門課程和學(xué)生的學(xué)習(xí)狀態(tài),主要可以采用以下一些有針對性的教學(xué)方法。1)激發(fā)學(xué)習(xí)熱情。目前,學(xué)生對計算機組成原理課程的學(xué)習(xí)積極性普遍都不高,但對高級語言課程學(xué)習(xí)很感興趣,如講解C語言程序在計算機中執(zhí)行的過程和可能出現(xiàn)的問題。同一功能的不同程序為何效率有很大差別等問題,激發(fā)了學(xué)生的學(xué)習(xí)積極性。把硬件和軟件結(jié)合起來講,使學(xué)生能夠深入理解計算機的工作原理和工作過程,可以提高學(xué)生分析問題和解決問題的能力。例如:通過分析不同程序運行中的Cache命中率,讓學(xué)生懂得只有深入理解計算機底層的工作原理,才能編制出高效的程序。再例如讓學(xué)生思考,在浮點加法運算中,(X+Y)+Z=X+(Y+Z)是否一定成立?引起學(xué)生興趣。2)消除畏懼心理。學(xué)生對硬件電路設(shè)計有畏懼心理,在計算機組成原理課程的教學(xué)中,要淡化元器件的設(shè)計細(xì)節(jié),強調(diào)以功能模塊設(shè)計為先導(dǎo)。采用課堂現(xiàn)場在logisim仿真軟件上演示一些功能部件設(shè)計過程,如同玩游戲、搭積木,消除學(xué)生畏懼心理。3)目標(biāo)驅(qū)動教學(xué)法。以建立整機系統(tǒng)概念、深入理解計算機系統(tǒng)工作原理為目標(biāo),以MIPS指令集為基礎(chǔ)設(shè)計CPU作為主線組織課程的教學(xué)內(nèi)容,線索清晰、多而不亂;采用與C語言程序相結(jié)合的方法來講解計算機的工作原理,激發(fā)學(xué)生的學(xué)習(xí)興趣,具體而不抽象。4)采用多種方式講解知識點。采用前后內(nèi)容關(guān)聯(lián)講解和多用匯編講高級語言程序,多用圖解釋概念,使學(xué)生容易接受和理解一些比較枯燥和抽象的知識點。5)探索本科生導(dǎo)師機制。導(dǎo)師為學(xué)生設(shè)置問題,讓學(xué)生課外查閱資料,組織課外小組討論,開展課外CPU設(shè)計競賽等活動,鼓勵學(xué)生參加大學(xué)生電子競賽、物聯(lián)網(wǎng)大賽等科技競賽活動。

3結(jié)語

作為地方高校,基于計算機系統(tǒng)能力的培養(yǎng),在計算機組成原理課程的教學(xué)改革方面,筆者從教學(xué)內(nèi)容的組織、實驗平臺的選擇、實驗項目的規(guī)劃、教學(xué)方法的設(shè)計等方面進(jìn)行了一些探索。教改永遠(yuǎn)在路上,如教學(xué)內(nèi)容還需要深化、實驗規(guī)模還需要擴大,在課程體系上還需要與操作系統(tǒng)、編譯原理等核心課程有機結(jié)合,只有這樣才能真正達(dá)到計算機系統(tǒng)能力培養(yǎng)的要求。

參考文獻(xiàn):

[1]唐朔飛,劉旭東,王誠.“計算機組成原理”課程教學(xué)實施方案[J].中國大學(xué)教學(xué),2011(11):42-45.

[2]袁春風(fēng),張澤生,楊若瑜,等.“計算機組成與系統(tǒng)結(jié)構(gòu)”課程建設(shè)思路與教學(xué)實踐[J].計算機教育,2012(2):62-66.

[3]王志英,周興社,袁春風(fēng),等.計算機專業(yè)學(xué)生系統(tǒng)能力培養(yǎng)和系統(tǒng)課程體系設(shè)置研究[J].計算機教育,2013(9):1-6.

[4]譚志虎,胡迪青,秦磊華.計算機組成原理課程設(shè)計的改革[J].電氣電子教學(xué)學(xué)報,2016(6):110-112.

[5]StanleyT,ChettyV,StylesM,etal.Teachingcomputerarchitecturethroughsimulation:AbriefevaluationofCPUsimulators[J].JournalofComputingSciencesinColleges,2012,27(4):37-44.

作者:邵雄凱 葉志偉 歐陽勇 李浩 王春枝 單位:湖北工業(yè)大學(xué) 計算機學(xué)院