計算機組成原理課程教學探討
時間:2022-11-22 10:11:53
導語:計算機組成原理課程教學探討一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:在分析計算機組成原理課程地位和教學現(xiàn)狀的基礎上,以計算機系統(tǒng)能力培養(yǎng)為導向,借鑒國內示范高校的教改經(jīng)驗,探討地方普通高校計算機組成原理課程的教學內容、教學實踐和教學方法,并闡述教學系統(tǒng)設計及具體實施過程。
關鍵詞:計算機組成原理;系統(tǒng)能力培養(yǎng);地方高校
當今時代計算機技術的應用極大地推動了社會經(jīng)濟的蓬勃發(fā)展,不斷改變著社會的生活方式。計算機技術的高速發(fā)展對高等學校計算機類專業(yè)學生的培養(yǎng)也不斷提出更高的要求,國內計算機領域的專家學者也在不斷探索和改革計算機類專業(yè)的教學模式、方法和內容。近年來,各高校都在實踐基于系統(tǒng)能力的培養(yǎng)模式。系統(tǒng)能力是由系統(tǒng)知識和工程實踐能力組成的:系統(tǒng)知識,即掌握計算機核心系統(tǒng)的工作原理及其構造方法,理解計算機系統(tǒng)的軟硬件相互作用關系;工程實踐能力,即用工程方法開發(fā)計算機應用系統(tǒng)。
1課程地位和教學現(xiàn)狀
計算機組成原理課程在計算機類的培養(yǎng)方案中一直作為核心課程,在課程體系中占有重要位置,起到承上啟下的作用[1]。在從2009年開始的全國計算機專業(yè)研究生入學考試中,計算機組成原理作為4門核心基礎課之一,并且占有45分,可見其課程地位的重要性。然而,學生對這門課程學習的積極性普遍不高,學生認為“難學”,教師覺得“難教”。究其原因,可能有以下幾點:①課程知識點涉及面廣、多而繁雜、概念抽象[2]。該課程既不像離散數(shù)學課程邏輯性強,也不像數(shù)據(jù)結構有算法理論,更不像高級語言可編程實現(xiàn)。②現(xiàn)在的就業(yè)崗位,絕大多數(shù)崗位要求的都是軟件編程類。各高校的研究生招生的方向也是軟件方向居多,硬件方向偏少,長期以來就在學生中形成了“愛軟怕硬”的現(xiàn)象。③課程內容主要是以講授功能部件的工作原理為主,軟硬件脫節(jié),難以建立計算機系統(tǒng)的層次感,難以深入理解計算機系統(tǒng)的工作過程。④沒有以處理器的設計為主線來講授,所以難以建立計算機系統(tǒng)的整機概念。近年來,在全國計算機教學指導委員會的指導和推動下,各高校都在進行計算機系統(tǒng)能力培養(yǎng)的教學改革。國內有多所985高校在10年前就已經(jīng)開始了系統(tǒng)能力培養(yǎng)試點工作,現(xiàn)在他們的成功經(jīng)驗開始在其他高校示范推廣。到2017年3月,已有58所高校入選教指委系統(tǒng)能力培養(yǎng)試點高校。目前,國內主要有4種系統(tǒng)能力培養(yǎng)模式[3]:①以RandalE.Bryant教授等編寫的《深入理解計算機系統(tǒng)》教材為代表,從程序員的角度來講述應用程序員如何能夠利用系統(tǒng)知識寫出更高效的程序。②以YaleN.Patt教授等編寫的《計算系統(tǒng)概論》教材為代表,目的是讓學生在掌握計算機底層工作的原理機制之后,能更加從容地解決以后可能面臨的新問題,包括高級編程語言方面的問題。③以袁春風教授編寫的《計算機系統(tǒng)基礎》教材為代表,使學生能夠很好地將高級語言程序、匯編語言、編譯和鏈接、組成原理、操作系統(tǒng)等相關的基礎內容有機貫穿起來,以建立完整的計算機系統(tǒng)概念,從而能深刻理解計算機系統(tǒng)的工作原理。④以“一個CPU、一個OS、一個編譯器”為目標,在統(tǒng)一硬件實驗平臺上以MIPS或者ARM指令集為基礎,逐步建立深化系統(tǒng)觀念。這些都是國內頂尖“985”高校探索出來的行之有效的培養(yǎng)模式,但對學生能力、教師水平、實驗設備等方面都有很高的要求,地方高校很難一步到位、全面推廣,必須因校制宜、量體裁衣。
2教學系統(tǒng)設計
2.1構建教學內容。近年來,國內一些高水平的高校大多選用國外的一些經(jīng)典教材,如DavidPatterson教授和Hennessy教授編著的ComputerOrganizationandDesign:theardware/SoftwareInterface,Bryant教授等編著的ComputerSystems:AProgrammer’sPerspective等。這些教材雖然有中譯本,但篇幅太大、內容太多,給學生的學習帶來較大困難。一般地方高校將其作為參考書,并結合國內的優(yōu)秀教材,構建教學內容。教學內容構建的原則如下:①把硬件和軟件結合起來講授,“軟硬兼施”,使學生熟悉軟件和數(shù)據(jù)在計算機中的表示、存儲、類型轉換、局部性原理、編譯優(yōu)化、執(zhí)行過程等,內容具體而不抽象,使學生能夠正確分析和解決軟件運行中出現(xiàn)的各種問題,幫助學生編寫高效率的程序代碼;②以MIPS指令集處理器的設計為主線,使學生熟悉數(shù)據(jù)通路和控制器的設計思想,清晰、具體地建立整機的概念。這樣組織教學,內容線索清楚、多而不亂。具體內容安排如下:①計算機概論部分,減少對計算機的基本介紹部分內容,增加計算機系統(tǒng)的層次結構內容、計算機開發(fā)與執(zhí)行過程和性能評價部分的內容。②運算方法和運算器部分,增加的內容有結合C語言來講解數(shù)據(jù)在底層的表示、存儲、類型轉換、運算、大端小端等知識點,可以激發(fā)學生的學習興趣。特別是一個運算同時有無符號數(shù)和有符號數(shù)參加、不同類型數(shù)據(jù)在位擴展和截斷運算時都會出現(xiàn)意想不到的結果,學生會特別好奇,有學習的動力。把C語言中的運算與MIPS指令中的運算對照講解,使學生能夠從高級進入到底層,有知其然而知其所以然的感覺。在基本運算部件中,強調帶標志位的加法器,與后續(xù)的CPU設計內容相呼應。③指令系統(tǒng)部分增加的內容有MIPS指令系統(tǒng)和MIPS指令匯編語言,各種程序結構和過程用調用的機器代碼表示。給學生講解匯編和反匯編的過程,學生會感興趣,覺得有收獲。④中央處理器部分,該部分內容與原來只講授CPU的基本工作原理完全不同,是具體以一定數(shù)量的MIPS指令集為例,詳細分析每條指令的格式和實現(xiàn)過程,構建數(shù)據(jù)通路,設計組合邏輯控制器和微程序控制器,對于流水線部分,主要講清楚其工作原理和存在的問題及解決辦法。⑤多層次的存儲器體系結構部分,該部分的內容與之前沒有明顯的增減,但在程序訪問的局部性和Cache命中率等知識點的講授時應結合C語言程序,可以加深學生對計算機工作原理的認識和理解。⑥總線及輸入輸出系統(tǒng)部分內容沒有明顯的增減??傊?,把軟硬件結合起來講授,可以吸引學生的興趣,調動學習的積極性;以MIPS指令集為基礎→功能部件→單周期CPU→多周期CPU→流水線CPU為主線,能夠使學生建立整機的系統(tǒng)概念和設計能力。2.2規(guī)劃實驗教學。1)原來的實驗教學設計。舉例來說,湖北工業(yè)大學原有的實驗項目是運算器實驗、存儲器及數(shù)據(jù)通路實驗和微程序控制器實驗等3個實驗項目,平臺使用的是基于FPGA的試驗箱、QuatrusⅡ軟件平臺和VHDL語言。該實驗方式帶有綜合性和設計性,但受硬件條件限制,主要是利用實驗系統(tǒng)提供的功能部件來完成簡單的設計實驗,很大程度上是偏向于驗證性,微程序控制器實驗也主要是在系統(tǒng)提供的微程序中進行微指令修改。這對加深理解計算機工作原理有幫助,但對構建整機概念和設計CPU支持不足。此外,還有如下缺點:①實驗過程繁瑣,實驗過程中,需要學生先選擇電路模式、芯片參數(shù)設置、引腳鎖定、USB-Blaster連接、配置文件下載等一系列過程,這些過程既繁瑣又容易出錯,最主要的是與實驗的主要任務不是密切相關,浪費學生很多時間,影響實驗效果;②實驗靈活性不夠,由于試驗箱的數(shù)量有限,學生只能在實驗室完成實驗,限制了學生實驗的時間,對學生來說,沒有時間選擇上的靈活性;③試驗箱容易損壞,隨著時間的推移,試驗箱逐步損壞嚴重,又不能及時補充,嚴重影響學生的實驗效果。2)實驗平臺選擇。實踐教學采用真實的硬件設計方式固然很好,但一般地方高校的硬件設備可能支持不足,還要求學生在短時間內熟練掌握硬件描述語言以及軟硬件開發(fā)環(huán)境,實屬不易。此外,學生畏難情緒嚴重,對師資要求也高,抽象的硬件描述語言使學生很難建立設計與電路的對應關系[4]。所以,如果一味強調硬件上的實現(xiàn),可能還難以達到設計CPU的初衷。通過學習其他高校的先進經(jīng)驗,湖北工業(yè)大學實驗平臺現(xiàn)在采用logisim仿真軟件。logisim是一款基于Java的應用程序,可運行在任何支持Java環(huán)境的平臺,由于是免費軟件,不存在商業(yè)軟件授權和費用問題,對辦學經(jīng)費緊張的地方高校非常適合。Logisim中的設計是圖行化界面,學習快捷、易于上手,電路的設計和仿真都很方便,可以完全脫離硬件仿真運行[5]。學生可以方便地在自己電腦上使用,增強了實驗的靈活性,也方便了教師對實驗結果的檢查和驗收。3)實驗項目設置。實驗項目有ALU設計實驗、寄存器堆設計實驗和MIPS單周期(多周期)CPU設計實驗3個項目,由于學時原因,學生在實驗課內無法完成實驗任務,需要學生在課外花費大量的時間。第1個ALU設計實驗,主要讓學生完成1個32位的加法器,1個能夠產(chǎn)生加減控制、溢出判斷、符號控制、結果選擇控制等信號的局部控制器,1個能夠產(chǎn)生加減運算輸出、邏輯或運算輸出、比較結果輸出及各種運算標志位的運算器。第2個寄存器堆設計實驗,主要是讓學生構建1個MIPS寄存器組,內部包含32個32位寄存器,具有1個寫入端口和2個讀出端口。第3個MIPS單周期(多周期)CPU設計實驗,讓學生完成10條以上MIPS指令的單周期或多周期的CPU設計并通過測試程序的測試。第3個實驗在前2個實驗的基礎上,要添加指令譯碼器、主控制器、地址產(chǎn)生和轉移邏輯、位擴展等部件??刂破髦饕捎媒M合邏輯控制器。單周期和多周期CPU設計實例如圖1和圖2所示。在軟件仿真平臺上完成實驗,優(yōu)點是同樣能夠培養(yǎng)學生處理器的設計能力,加深對計算機的理解,建立整機系統(tǒng)的概念,方便靈活,減少了學生的設計和實現(xiàn)難度,實驗成功率會提高。不足之處是難以提高學生的硬件系統(tǒng)設計和調試能力。對于部分感興趣的同學,可以通過短學期選修課程設計來提高硬件設計和調試能力。4)過程管理加強。上述3個實驗項目,學生在課內安排的實驗時間內是難以完成的,需要在課外安排時間,因此,應該加強監(jiān)督管理和課外輔導。實驗采用小班上課,任課教師現(xiàn)場講解和指導,課外通過線上和線下進行輔導答疑。雖然沒有嚴格的考勤,但設置幾個模塊的完成時間和檢查點,并對落后進度的學生給予幫助。對每位同學的實驗要驗收實驗結果和提問答辯,而不僅僅是批閱實驗報告。5)課程設計增設。利用暑期短學期實踐時間,讓部分有興趣的同學可以繼續(xù)選修這門課程的課程設計,在logisim仿真平臺上完成理想流水線→轉發(fā)流水線→氣泡流水線→分支流水線CPU的設計。愿意再繼續(xù)深入學習的同學,可以基于VerilogHDL設計并下載到FPGA實驗板上。2.3設計教學方法。除了采用通用的教學方法外,結合計算機組成原理這門課程和學生的學習狀態(tài),主要可以采用以下一些有針對性的教學方法。1)激發(fā)學習熱情。目前,學生對計算機組成原理課程的學習積極性普遍都不高,但對高級語言課程學習很感興趣,如講解C語言程序在計算機中執(zhí)行的過程和可能出現(xiàn)的問題。同一功能的不同程序為何效率有很大差別等問題,激發(fā)了學生的學習積極性。把硬件和軟件結合起來講,使學生能夠深入理解計算機的工作原理和工作過程,可以提高學生分析問題和解決問題的能力。例如:通過分析不同程序運行中的Cache命中率,讓學生懂得只有深入理解計算機底層的工作原理,才能編制出高效的程序。再例如讓學生思考,在浮點加法運算中,(X+Y)+Z=X+(Y+Z)是否一定成立?引起學生興趣。2)消除畏懼心理。學生對硬件電路設計有畏懼心理,在計算機組成原理課程的教學中,要淡化元器件的設計細節(jié),強調以功能模塊設計為先導。采用課堂現(xiàn)場在logisim仿真軟件上演示一些功能部件設計過程,如同玩游戲、搭積木,消除學生畏懼心理。3)目標驅動教學法。以建立整機系統(tǒng)概念、深入理解計算機系統(tǒng)工作原理為目標,以MIPS指令集為基礎設計CPU作為主線組織課程的教學內容,線索清晰、多而不亂;采用與C語言程序相結合的方法來講解計算機的工作原理,激發(fā)學生的學習興趣,具體而不抽象。4)采用多種方式講解知識點。采用前后內容關聯(lián)講解和多用匯編講高級語言程序,多用圖解釋概念,使學生容易接受和理解一些比較枯燥和抽象的知識點。5)探索本科生導師機制。導師為學生設置問題,讓學生課外查閱資料,組織課外小組討論,開展課外CPU設計競賽等活動,鼓勵學生參加大學生電子競賽、物聯(lián)網(wǎng)大賽等科技競賽活動。
3結語
作為地方高校,基于計算機系統(tǒng)能力的培養(yǎng),在計算機組成原理課程的教學改革方面,筆者從教學內容的組織、實驗平臺的選擇、實驗項目的規(guī)劃、教學方法的設計等方面進行了一些探索。教改永遠在路上,如教學內容還需要深化、實驗規(guī)模還需要擴大,在課程體系上還需要與操作系統(tǒng)、編譯原理等核心課程有機結合,只有這樣才能真正達到計算機系統(tǒng)能力培養(yǎng)的要求。
參考文獻:
[1]唐朔飛,劉旭東,王誠.“計算機組成原理”課程教學實施方案[J].中國大學教學,2011(11):42-45.
[2]袁春風,張澤生,楊若瑜,等.“計算機組成與系統(tǒng)結構”課程建設思路與教學實踐[J].計算機教育,2012(2):62-66.
[3]王志英,周興社,袁春風,等.計算機專業(yè)學生系統(tǒng)能力培養(yǎng)和系統(tǒng)課程體系設置研究[J].計算機教育,2013(9):1-6.
[4]譚志虎,胡迪青,秦磊華.計算機組成原理課程設計的改革[J].電氣電子教學學報,2016(6):110-112.
[5]StanleyT,ChettyV,StylesM,etal.Teachingcomputerarchitecturethroughsimulation:AbriefevaluationofCPUsimulators[J].JournalofComputingSciencesinColleges,2012,27(4):37-44.
作者:邵雄凱 葉志偉 歐陽勇 李浩 王春枝 單位:湖北工業(yè)大學 計算機學院