陳立剛,徐曉紅
(國防科學(xué)技術(shù)大學(xué)機電工程與自動化學(xué)院,湖南長沙 410073)
“計算機硬件技術(shù)基礎(chǔ)”(也叫“微型計算機原理與接口技術(shù)”)是計算機基礎(chǔ)教育的核心課程之一,課程內(nèi)容包括微機原理、微機接口和微機應(yīng)用三大部分,其完整的知識體系如表1所示[1,2]。
本課程的主要特點是:① 知識單元和知識點多,教學(xué)時數(shù)相對較少;② 既有硬件,又有軟件;③理論性、系統(tǒng)性和工程實踐性都很強。
近年來,我?!坝嬎銠C硬件技術(shù)基礎(chǔ)”課程教學(xué)時數(shù)大幅精簡,以2009教學(xué)計劃為例,“計算機硬件技術(shù)基礎(chǔ)A”由過去的講授56學(xué)時,實驗14學(xué)時,精簡為40+10學(xué)時,新的2012教學(xué)計劃還將減少為36+10學(xué)時。在此背景下,我們結(jié)合課程特點和教學(xué)實踐,進行了一些行之有效的改革和探索。
表1 “計算機硬件技術(shù)基礎(chǔ)”課程知識體系
目前,國內(nèi)各高校仍普遍采用匯編語言開展硬件編程教學(xué),但采用匯編語言開展教學(xué)的不足之處是,匯編語言教學(xué)所占課程學(xué)時多。以我校2009教學(xué)計劃“計算機硬件技術(shù)基礎(chǔ)B”(60+20學(xué)時)為例,在60學(xué)時的理論教學(xué)中,指令系統(tǒng)和匯編語言程序設(shè)計的教學(xué)達14學(xué)時。盡管如此,由于匯編語言依賴于機器特性,指令理解和編程難度較大,要讓學(xué)生基本掌握匯編語言程序設(shè)計的方法和技巧,除14學(xué)時的課內(nèi)教學(xué)外,實際還需學(xué)生花費大量課外時間。對一些基礎(chǔ)較差的學(xué)生更是難以掌握,還會影響到此后的課程主線——接口技術(shù)及應(yīng)用內(nèi)容的學(xué)習(xí)。
對一些少學(xué)時硬件課程,如前面提到的“計算機硬件技術(shù)基礎(chǔ)A”,要從40學(xué)時的理論教學(xué)中,拿出十幾個學(xué)時來進行匯編語言的教學(xué),難以滿足以計算機接口及應(yīng)用技術(shù)為主線的教學(xué)需求。
我們現(xiàn)有的改革思路是,對以電為主的工程技術(shù)類專業(yè),如自動化和仿真專業(yè),為他們開設(shè)的硬件課程學(xué)時相對較多其仍保留匯編語言程序設(shè)計的相關(guān)內(nèi)容。但我們并不局限于用匯編語言講述硬件編程,而是注重其與高級語言的結(jié)合,強調(diào)用C語言和匯編語言混合編程。這樣既通過匯編語言編程教學(xué),培養(yǎng)學(xué)生編寫高質(zhì)量接口驅(qū)動程序的能力,又能通過兩種語言的結(jié)合降低硬件編程的難度,還能體現(xiàn)實際工程開發(fā)的特點。
我們對授課時數(shù)少的“計算機硬件技術(shù)基礎(chǔ)”課程,刪除匯編語言程序設(shè)計相關(guān)內(nèi)容,而采用C語言作為硬件編程語言開展計算機接口及應(yīng)用教學(xué)。教學(xué)中只需用1個學(xué)時講授高級語言訪問I/O端口的方法,即可開展硬件編程,這樣節(jié)省的課時可用于加強接口及應(yīng)用技術(shù)的學(xué)習(xí),有利于突出接口技術(shù)及應(yīng)用這條主線。
存儲器和I/O接口是計算機系統(tǒng)的基本組成部分,是教學(xué)的重點內(nèi)容之一。在課程教學(xué)時數(shù)大幅精簡背景下,對一些以接口技術(shù)及應(yīng)用為主要內(nèi)容的少學(xué)時課程,刪除存儲器章節(jié)不能體現(xiàn)課程的完整性,完整講授又面臨著課時不夠的矛盾。
從講授內(nèi)容看,存儲器章節(jié)的主要內(nèi)容包括高檔微機系統(tǒng)的存儲器體系結(jié)構(gòu)、內(nèi)存構(gòu)成原理、高速緩沖存儲器和虛擬存儲器等。重點是在介紹存儲器芯片接口特性的基礎(chǔ)上,如何用內(nèi)存芯片構(gòu)成內(nèi)存儲器。而接口抽象到數(shù)字邏輯來看,可歸結(jié)為控制邏輯和I/O寄存器兩類電路,如圖1所示。其核心部分是I/O寄存器(也稱為I/O端口),控制邏輯主要用于確保對各寄存器的正確訪問。這些寄存器的全部或部分端口線被連接到外設(shè)上,對外設(shè)的訪問實際上是通過對這些I/O寄存器的訪問來實現(xiàn)的。
圖1 I/O接口組成結(jié)構(gòu)
接口中的這些I/O寄存器,本質(zhì)上可以看作接口電路內(nèi)部的存儲器,實際上在采用存儲器映像編址的接口電路中,I/O寄存器本身就是存儲單元。所以無論內(nèi)存構(gòu)成還是I/O接口擴展,其關(guān)鍵均是在存儲器或I/O地址分配的基礎(chǔ)上實現(xiàn)存儲器或I/O端口的地址譯碼。而存儲器和I/O端口的地址譯碼本質(zhì)上并沒有什么不同,其差別在于使用的讀/寫控制信號可能不同(隔離I/O編址時)。
綜合上述觀點,我們在少學(xué)時的硬件課程中,將存儲器與I/O接口內(nèi)容進行整合,作為一章開展教學(xué),如表2所示。對內(nèi)存基本原理,將重點放在存儲器芯片的接口特性和字/位擴展方法上,而將內(nèi)存接口的關(guān)鍵技術(shù)──存儲器芯片地址譯碼方法,與I/O端口譯碼合并。這樣既保持了課程知識體系的完整,突出存儲器教學(xué)的重點,又可節(jié)省教學(xué)課時。
表2 存儲器與I/O接口教學(xué)內(nèi)容
在教學(xué)時數(shù)不斷精簡背景下,如何組織課程內(nèi)容,使之既保持課程整體完整性,又能突出計算機接口技術(shù)及應(yīng)用這個重點,除上述改革外,我們對表1各章節(jié)進行整合,構(gòu)建滿足少學(xué)時教學(xué)的“計算機硬件技術(shù)基礎(chǔ)”知識體系,如表3所示。
表3 少學(xué)時“計算機硬件技術(shù)基礎(chǔ)”知識體系
具體實施時,應(yīng)注重教學(xué)手段、教學(xué)方法的改革和重點內(nèi)容把握及取舍。
(1)要充分使用多媒體教學(xué)手段提高課堂教學(xué)效時比;利用網(wǎng)絡(luò)課程提供豐富的教學(xué)資源,供學(xué)生自主學(xué)習(xí)。
(2)在廣泛采用啟發(fā)式、案例式教學(xué)基礎(chǔ)上,應(yīng)重視引入研討式教學(xué),通過課堂研討,鼓勵學(xué)生大膽各抒已見,在師生互動過程中,強化學(xué)生學(xué)習(xí)的主動意識和參與意識,提高學(xué)生的學(xué)習(xí)積極性。
(3)淡化器件內(nèi)部結(jié)構(gòu),強化外部特性。如模擬I/O接口教學(xué)中,可將ADC和DAC看作一個變換黑箱,可不講A/D和D/A轉(zhuǎn)換原理,而強化與計算機的連接特性及接口的方法。如ADC芯片,除電源和地外,可歸結(jié)為圖2所示的通用芯片。
這樣,計算機控制ADC完成A/D轉(zhuǎn)換的工作原理可歸結(jié)為:啟動A/D轉(zhuǎn)換→等待A/D轉(zhuǎn)換結(jié)束→讀轉(zhuǎn)換結(jié)果。至于ADC以什么樣的原理將模擬信號轉(zhuǎn)換成數(shù)字信號,從接口角度可以不用關(guān)心。
圖2 ADC通用引腳
(4)現(xiàn)代微處理器或微機系統(tǒng)一般都有較完備的中斷系統(tǒng),實際應(yīng)用需要擴展中斷源的情況不多。課時進一步減少時,I/O接口中的中斷技術(shù),可少講或不講可編程中斷控制器。而把重點放在講清微機中斷機理基礎(chǔ)上,介紹中斷驅(qū)動式I/O處理程序的結(jié)構(gòu)和設(shè)計方法(含中斷向量填寫、中斷屏蔽與開放和中斷結(jié)束控制方法等)。
近年來,針對“計算機硬件技術(shù)基礎(chǔ)”教學(xué)時數(shù)減少,我們對教學(xué)內(nèi)容及組織進行改革,并根據(jù)教學(xué)需求編著出版了兼顧匯編語言和C語言編程的《計算機硬件技術(shù)及應(yīng)用基礎(chǔ)(上、下冊)》十一五國家級規(guī)劃教材。教學(xué)實踐表明,這種改革重點突出接口技術(shù)及應(yīng)用這條主線,不僅滿足了少學(xué)時教學(xué)的需求,還保持了課程的系統(tǒng)性完整性,教學(xué)效果穩(wěn)步提升,說明我們的改革是行之有效的。
[1] 鄒逢興,陳立剛.計算機硬件技術(shù)基礎(chǔ)(第二版)[M].北京:高等教育出版社.2005
[2] 教育部高等學(xué)校計算機基礎(chǔ)課程教學(xué)指導(dǎo)委員會.高等學(xué)校計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略研究報告暨計算機基礎(chǔ)課程教學(xué)基本要求[M].北京:高等教育出版社.2009