韓東紅 徐久強 史嵐 劉錚
摘要:《計算機組成原理》主要學習計算機系統中5大硬件部分的功能結構、工作原理及協調工作方式,是計算機科學與技術專業的核心專業課。本文針對該課程理論性強、內容抽象的特點,就教學和學習中存在的一些共性問題,嘗試利用多種教學手段、建立貫通課理念、激發學生學習主動性等教學改革方法,旨在提高學生對硬件系統的學習、分析和設計能力。
關鍵詞:計算機組成原理;硬件系統;分析和設計;教學改革
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2018)52-0118-02
一、前言
《計算機組成原理》是計算機科學與技術專業的一門核心專業課,該課程基于馮·諾依曼模型,系統講述計算機內部結構以及計算機五大硬件部分的功能特征、工作原理、交互方式和基本設計方法[1],是全國計算機專業碩士研究生入學考試的重點專業考試課程,也是師生普遍反映難教難學的課程之一[2-3]。
該課程的先導課包括《模擬電子》、《數字電路》、《匯編語言程序設計》、《C語言》等,后續課程有《計算機體系結構》、《接口技術》、《計算機網絡》等,關系比較密切的還包括《操作系統》、《編譯原理》等課程。可見該課程在計算機專業本科生的知識體系中起著承上啟下的作用,在計算機系統中占據非常重要的地位。作為諸多硬件課程的核心骨干課,根據多年的教學體驗,學生們在學習過程中主要存在以下問題:
1.課程內容抽象,學生難以理解。課程中講授的很多內容都是芯片級內部發生的,例如數據是如何表示、如何存儲的;如何構成一位加法器,進而構成并行加法器并擴展成為能實現多種算術邏輯運算的ALU;控制器是如何取指令、譯碼并執行的,期間控制信息、地址信息、數據信息如何在數據通路上流動;Cache工作期間,其硬件部分是如何存儲主存地址、判斷是否命中并執行替換策略的等;中斷處理過程中I/O接口的各寄存器內容的如何動態變化等等。這些學習內容非常抽象,如果僅憑課本、PPT及課堂講解,缺乏形象、具體的教學手段,大多數學生難以掌握課程內容。因此,如何合理組織教學內容、采用多種教學手段,吸引學生注意力,便于學生理解和掌握,是一個亟待解決的問題。
2.與諸多課程聯系緊密,授課缺乏貫通性。《計算機組成原理》與其先導課、后續課的內容聯系緊密,知識存在密切的相關性。例如,為解決一個實際應用問題編寫的高級語言程序,其中的一條高級語言指令如何經編譯、匯編后成為幾條機器指令(涉及《編譯原理》、《匯編程序設計》的內容);如何由操作系統為該程序在內存中安排空間進行存儲(涉及《操作系統》的內容);在CPU取一條機器指令結束后,對操作碼譯碼的譯碼器如何設計(涉及《數字電路》的知識);講授中斷接口控制器的原理時,實際例子(如Intel 8259A中斷控制器)會在《接口技術》中講述。因此,如果僅僅講解本課程的內容,缺乏相關知識的貫通性,學生們只能片面、局部地學習一門課程,其實很難真正理解和掌握本課程的內容,也不能真正了解和其他課程的關系,從而難以建立對整個計算機系統的認識。可見,如何在教學過程中從計算機系統層次結構的角度,考慮相關課程的貫通性,設計和調整教學內容,并輔助采用多種教學手段,是一個有意義并且富有挑戰性的難題。
3.“灌輸式”教學方式,學生興趣不高。該課程涉及的內容廣泛,包括計算機硬件系統中5大硬件部分的基本組成、工作原理及設計方法,并建立整機的概念及熟悉其工作機制。長期以來采取的“滿堂灌”式的教學方法,較少采用啟發式、任務驅動式、課堂討論式的教學方法,忽略了學生的主體地位,無法調動學生的主觀能動性。
據相關研究表明,盡管國內外學者專家對該課程的教學方法提出了很多有建設性的探索[4-8],但鑒于該課程自身特點,如何應對上述挑戰,仍然是授課教師面臨和需要不斷思考、解決的問題。
二、具體教改措施
針對在《計算機組成原理》課程教學中存在的問題,結合多年來的教學實際,采取的教改方法包括:
1.采用多種教學手段,培養學生關于硬件系統的認知能力和設計能力。組成原理的內容很抽象,而且電路圖、時序圖很多。為提高課堂教學效果,我們都采用了多媒體教學手段,將所需要的硬件結構圖等以PPT的形式給出,節省了在黑板上畫圖的時間。但是,在學習并行加法器的進位鏈、CPU取指譯碼執行等內容時,僅依靠靜態的多媒體課件無法演示各部件的數據流、控制流以及工作時序等動態信息。因此開發了相應的Demo系統,例如制作指令的執行流程、流水線的工作過程、中斷的工作過程等,通過豐富的色彩、動感的畫面,將極其抽象的知識直觀顯示出來,有助于學生理解和掌握各部分的工作原理及整機的運行機制。
2.嘗試運用貫通課理念,讓學生真正建立計算機系統的概念。結合計算機系統中與《計算機組成原理》相關的課程,在授課過程中通過內容說明和其他課程的關系,讓學生清楚計算機硬件整機結構、工作原理及和底層硬件、高層軟件的關系,了解計算機系統運行機制。(1)和其他課程的授課教師共同制定各自的講課內容,避免重復和遺漏。例如在先導課程《匯編程序設計》中已經講過的補碼、原碼、補碼知識,本門課中就可以略講。再如指令流水方式以及通道方式等內容,因為學時有限,由后續課程《計算機體系結構》講授。(2)通過具體的例子,在課程中指出并強調與其他先導課及后續課程的關系。例如,在介紹指令系統內容時,可以結合學生學過的面向8086的匯編語言,復習匯編指令結構的同時,了解匯編指令和機器指令的對應關系。再例如,CPU的組成及結構的學習是課程的重點和難點。講授過程中擬結合可視化的Demo系統,向同學們演示高級語言指令→匯編語言指令→機器語言指令,再由操作系統分配內存存儲區域,最后由CPU取指譯碼執行的過程。這一過程涉及高級語言、匯編程序設計、編譯原理、操作系統以及數字電子等課程的知識。最后通過一個綜合的例子,動態演示系統演示了數據流、指令流在計算機系統內的流動過程。讓學生們掌握本課程內CPU工作原理的同時,了解了計算機系統協調統一工作的過程。
3.改“填鴨式”教學為“學生主體”的方式,喚醒學生的“內驅力”。在課堂教學上采用啟發式教育,變學生“被動聽講”為“主動思考”。同時在培養學生分析和設計能力的基礎上,通過對計算機硬件系統不同階段面臨的問題及技術發展面臨的挑戰進行分析和探討,結合新技術的介紹和未來技術發展趨勢,引領學生突破慣性思維,以培養學生的創新意識。(1)采用啟發式教育。在一個知識點結束時,做簡單總結概述,同時通過啟發式問題,引入下一個知識點。例如靜態RAM的工作原理結束后總結其特點,因其集成度不高的不足,引入動態RAM。再例如,介紹總線使用權的總裁問題時,教材中只是簡單提及通過硬件方式實現。此時可以啟發學生思考,如何設計相應的硬件邏輯來實現此功能?(2)針對不同的教學層次內容,采用不同的教學方法。依據教學大綱的具體要求,合理組織教學內容,按照基本通用原理講透、真實計算機系統舉例、前沿技術簡介等幾個層次來逐層講解。其中基本通用原理由教師講清楚,對真實計算機環節,可以由學生預習并以小組討論的形式進行。而前沿知識的學習,則可以采用學生查最新國內外資料并給大家做PPT展示等方法進行,可以培養學生們查閱資料以及個人表述等能力。(3)培養學生解決復雜工程問題的能力。在相關內容講解結束后,可以給同學們布置相關的設計問題,培養他們運用所學的專業知識,解決實際復雜工程問題的能力。例如CPU部分,要求在掌握CPU工作原理的基礎上,同學們學會分析和設計硬布線控制器及微程序控制器。
參考文獻:
[1]教育部高等學校計算機科學與技術教學指導委員會.高等學校計算機科學與技術專業發展戰略研究報告暨專業規范(試行)[M].北京:高等教育出版社,2006.
[2]唐朔飛,劉旭東,王誠,等.“計算機組成原理”課程教學實施方案[J].中國大學教學,2010,(11):42-45.
[3]王麗芳.計算機組成原理教學研究與實踐[J].計算機教育,2006,(12):39-40.
[4]李東勤,徐勇,常赫.計算機組成原理課程教學改革的研究和探索[J].電腦知識與技術,2017,13(3):107-108.
[5]王秀芹,李春杰,李丹.轉動課堂下《計算機組成原理》課程討論型教學模式[J].福建電腦,2017,33(1):76-77.
[6]彭亞琴,王萬生.計算機組成原理教學方法探析[J].教育教學論壇,2017,(10):205-206.
[7]葛桂萍,肖鐵軍,陳才扣,等.基于FPGA的"計算機組成原理"實踐教學的改革[J].實驗技術與管理,2018,(4).
[8]柏靜,陳莉,孫建彬,等.基于Blend-Learning的“計算機組成原理”教學探究[J].計算機教育,2016,(6):77-80.