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