俞 磊,楊松濤,王宗殿,黃 靜
(安徽中醫(yī)學(xué)院 醫(yī)藥信息工程學(xué)院,安徽 合肥 230031)
“計(jì)算機(jī)組成原理”是計(jì)算機(jī)類專業(yè)一門重要的專業(yè)基礎(chǔ)課程,主要介紹計(jì)算機(jī)各部件的功能組成和工作原理,旨在使學(xué)生掌握計(jì)算機(jī)系統(tǒng)的基本設(shè)計(jì)技術(shù),培養(yǎng)他們分析和解決計(jì)算機(jī)系統(tǒng)實(shí)際問題的能力[1-2].從專業(yè)課程體系來講,該課程是“數(shù)字邏輯”和“匯編語言程序設(shè)計(jì)”的后繼課程,同時(shí)也是“微機(jī)原理和接口技術(shù)”、“操作系統(tǒng)”、“編譯原理”、“計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)”、“嵌入式系統(tǒng)”等課程的先修課程之一,在整個(gè)課程體系中起到承上啟下的作用,占據(jù)著非常重要地位.
然而從教學(xué)的實(shí)際情況來看,這門課程普遍存在著“難學(xué)難教”的現(xiàn)象,主要原因是該課程屬于硬件課程,概念多而且抽象,初學(xué)者理解起來難度較大.另外,該課程以技術(shù)描述內(nèi)容居多,很多都是講原理,既沒有“離散數(shù)學(xué)”那樣的證明和推導(dǎo),也沒有“數(shù)據(jù)結(jié)構(gòu)”和“編譯原理”那樣的算法介紹與分析,初學(xué)者常會(huì)覺得理論規(guī)律性不強(qiáng),把握起來很困難.
針對上述狀況,改進(jìn)該課程的教學(xué)方法勢在必行.現(xiàn)在大多數(shù)的學(xué)校都已普遍采用多媒體教學(xué),相對于傳統(tǒng)的“一支粉筆+一塊黑板”的板書教學(xué),該方法信息量大,教學(xué)過程更為直觀.但是多媒體畢竟只是一種輔助手段,教師的講授在整個(gè)教學(xué)中的作用仍是至關(guān)重要的,這就需要把其他一些有效的教學(xué)方法融入到該門課程的教學(xué)中來.對于這種概念原理較為抽象的硬件課程而言,類比法是一種非常好的教學(xué)方法.類比是舉例和比較的綜合,目的是用一個(gè)具體、熟悉、容易理解的事物,以比較的方式,來說明一個(gè)抽象、生疏、難懂的事物,可以是概念的比較、實(shí)物的比較、定律(或規(guī)律)的比較、結(jié)構(gòu)的比較、原理的比較、思路的比較、狀態(tài)的比較等[3-5].筆者結(jié)合教學(xué)實(shí)踐,探討了類比法在“計(jì)算機(jī)組成原理”課程教學(xué)中的具體應(yīng)用.
在該門課程的教學(xué)中,適當(dāng)?shù)倪\(yùn)用類比方法,將難懂的概念和原理類比成學(xué)生可理解并接受的事件,然后再擴(kuò)展成書本上的內(nèi)容,實(shí)踐證明這樣教學(xué)效果非常好.下面就按照教材中知識(shí)點(diǎn)的順序,舉幾個(gè)例子來談一談.
計(jì)算機(jī)又稱“電腦”,之所以稱為電腦,是因其具有人腦的功能,有記憶能力和計(jì)算能力等,是一個(gè)智能工具,所以在講授計(jì)算機(jī)工作原理時(shí)可以由“人”進(jìn)行類比.例如,一個(gè)人看到式子“1+1=”時(shí)會(huì)脫口而出“等于2”,從這一事件上可得知人腦的工作過程:首先是眼或耳把“1+1=”信息送入大腦,其次是大腦對輸入的信息分類,“1”是數(shù)據(jù),“+”和“=”為指令,最后計(jì)算,通過口說出結(jié)果或通過手在紙上寫出結(jié)果.聽、看、說、寫是在大腦控制下完成,大腦起到運(yùn)算、控制和記憶的作用.由此類比到電腦,在其運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備這五個(gè)組成部分中,前三部分相當(dāng)于大腦,輸入設(shè)備相當(dāng)于耳和眼,輸出設(shè)備相當(dāng)于手和口.從簡單的類比中就可得出計(jì)算機(jī)的工作原理,先通過輸入設(shè)備輸入信息,接著控制器分析是數(shù)據(jù)還是指令,然后分別發(fā)出控制信號(hào),以此完成輸入、運(yùn)算和輸出.
以上談的是計(jì)算機(jī)整機(jī)的工作原理,實(shí)際上每一部件具體的工作原理也可進(jìn)行簡單的類比,比如在講述存儲(chǔ)器的讀、寫時(shí)可分別與銀行的取錢、存錢相類比,不僅形象生動(dòng),而且相關(guān)的時(shí)序問題也容易理解了.
在先行“C語言程序設(shè)計(jì)”課程中曾提及過補(bǔ)碼,但只是告訴學(xué)生怎樣求解補(bǔ)碼,現(xiàn)在在“計(jì)算機(jī)組成原理”課程中又提及補(bǔ)碼,是要求學(xué)生理解為什么在計(jì)算機(jī)的運(yùn)算中需引入補(bǔ)碼,這是個(gè)難點(diǎn),可通過鐘表對時(shí)的方法進(jìn)行類比.假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為4點(diǎn)整,而表上的時(shí)間已經(jīng)7點(diǎn)整,為了校準(zhǔn)時(shí)間,可采用兩種方法:要么將時(shí)針退7-4=3格,要么將時(shí)針向前撥12-3=9格.這兩種方法都能對準(zhǔn)到4點(diǎn),由此可看出,減3和加9是等價(jià)的,就是說9是(-3)對12的補(bǔ)碼,可以用數(shù)學(xué)公式表示-3=+9(mod12),其中mod12的意思就是對12取模.之所以7-3和7+9(mod12)等價(jià),原因就是表指針超過12時(shí),將12自動(dòng)丟掉,最后得到16-12=4.通過這個(gè)例子的類比,再跟學(xué)生指出在計(jì)算機(jī)中負(fù)數(shù)用補(bǔ)碼表示的原因是為了把減法轉(zhuǎn)化為加法,方便的實(shí)現(xiàn)運(yùn)算.這樣,學(xué)生對計(jì)算機(jī)中補(bǔ)碼的引入以及模運(yùn)算就非常清楚了.
在講浮點(diǎn)數(shù)的表示時(shí),先帶學(xué)生回憶他們都非常熟悉的科學(xué)計(jì)數(shù)法.科學(xué)計(jì)數(shù)法有尾數(shù)和指數(shù)的概念,浮點(diǎn)數(shù)分別對應(yīng)為尾數(shù)和階碼.并且,浮點(diǎn)數(shù)多了“基數(shù)”的概念,對于二進(jìn)制計(jì)數(shù)的機(jī)器來說是一個(gè)常數(shù),一般規(guī)定為2、8或16,而科學(xué)計(jì)數(shù)法中多是用在十進(jìn)制中,所以一般為10.這樣,由科學(xué)計(jì)數(shù)法類比到計(jì)算機(jī)中浮點(diǎn)數(shù)表示法,學(xué)生就非常容易理解了.
另外,科學(xué)計(jì)數(shù)法中的尾數(shù)是有要求的,小數(shù)的整數(shù)部分為1到9,如果不符合這一要求就要調(diào)整相應(yīng)的指數(shù)和尾數(shù)(須保持?jǐn)?shù)值不變),使之符合要求.同樣,類比到浮點(diǎn)數(shù)的表示,尾數(shù)也是有要求的,當(dāng)尾數(shù)的值不為0時(shí),其絕對值應(yīng)≥0.5,即尾數(shù)域的最高有效位應(yīng)為1,否則應(yīng)修改階碼同時(shí)左右移動(dòng)小數(shù)點(diǎn)(須保持?jǐn)?shù)值不變),使其變成符合要求的形式,這就是浮點(diǎn)數(shù)的尾數(shù)規(guī)格化.接下來,關(guān)于浮點(diǎn)數(shù)的加減乘除等運(yùn)算,讓學(xué)生無需去強(qiáng)記相關(guān)法則,只需根據(jù)由兩個(gè)科學(xué)計(jì)數(shù)法表示的小數(shù)的運(yùn)算過程去類比浮點(diǎn)數(shù)的相應(yīng)運(yùn)算過程就可以了.比如,兩個(gè)指數(shù)不一樣的科學(xué)計(jì)數(shù)法表示的小數(shù)相加,若指數(shù)不同肯定要先將指數(shù)調(diào)整為相等數(shù)值,然后再把各自的尾數(shù)相加才可以.同理,在計(jì)算機(jī)浮點(diǎn)數(shù)運(yùn)算中也是如此,這一過程叫做“對階”.這樣,學(xué)生就輕松理解了.
主存與cache的地址映射對于初學(xué)者很抽象,不好理解,但是道理與學(xué)生到閱覽室找空座位看書非常類似,主存中的塊相當(dāng)于學(xué)生,cache相當(dāng)于閱覽室,cache中的塊相當(dāng)于閱覽室中的空座位.直接映象方式是主存中的任一塊只能被放置到Cache中唯一固定的一個(gè)位置上,相當(dāng)于每個(gè)要看書的學(xué)生在閱覽室只有唯一固定的一個(gè)座位可以坐.全相連映像方式是主存中的任一塊可以被放置到Cache中任意一個(gè)位置上,相當(dāng)于閱覽室的座位每個(gè)學(xué)生可以隨便坐,只要當(dāng)前這個(gè)座位是空著的.組相聯(lián)映象方式是主存中的任一塊可以被放置到Cache中唯一固定的一個(gè)組中的任何一個(gè)位置,相當(dāng)于這個(gè)學(xué)校有多個(gè)班級(jí),每個(gè)班級(jí)只能占用一個(gè)閱覽室,并且是固定的,但是每個(gè)班級(jí)的學(xué)生在進(jìn)入他們班所固定對應(yīng)的閱覽室時(shí),其中的座位是隨便坐的,只要當(dāng)前該閱覽室有空座位可坐就行.
接下來再講cache的“置換策略”就很容易了,就好比當(dāng)前所有閱覽室的所有座位都已占用,而此時(shí)又有學(xué)生要進(jìn)來找座位看書,那只有一種方法,讓里面的學(xué)生出來騰出座位讓外面的學(xué)生進(jìn)來看書.但是讓哪個(gè)學(xué)生出來呢,總要遵循一定的原則,比如隨便抓鬮法,抓到誰誰出去,還有誰最先進(jìn)來的誰出去,另外還有誰最近一段時(shí)間進(jìn)來后并沒有認(rèn)真看書的出去.于是很自然的引出隨機(jī)法、先進(jìn)先出法FIFO、最近最少使用法LRU方法等.
對于指令的尋址方式,可通過一些生活中常見的事例進(jìn)行類比,幫助理解.如你想找一個(gè)人A,若A與你同在一個(gè)辦公室工作,你可在辦公室立即找到他,這就是立即數(shù)尋址的含義;若他與你不在同一單位工作,但你能打聽到他的家庭住址,根據(jù)家庭地址可以找到他,這就是直接尋址的含義;若你不知道A的家庭住址,但你知道B的家庭地址,而B知道A的地址,你可通過B打聽到A的地址,從而找到A,這就是間接尋址的含義.
在講“電位、脈沖體制”時(shí),首先要講數(shù)據(jù)通路.這是一個(gè)很抽象的概念,為幫助學(xué)生理解,可借助城市自來水管網(wǎng)模型[6]進(jìn)行類比:來自控制器的控制信號(hào)將數(shù)據(jù)打入寄存器就相當(dāng)于打開水龍頭將水放入容器內(nèi),一個(gè)多路選擇器就相當(dāng)于一個(gè)容器內(nèi)有多個(gè)進(jìn)水口,每次只能打開一個(gè).這樣一來,微程序控制器中控制時(shí)序的“電位、脈沖體制”就好理解了:自來水管中水的水壓、體積等屬性由水管中的水壓和水流速度決定,而流出水流的起止時(shí)間以及時(shí)間長度由打開水龍頭的起止時(shí)間決定,由此類比到“電位、脈沖”體制就是輸出信號(hào)的電壓、電荷屬性和數(shù)據(jù)屬性由電位決定,而輸出信號(hào)的起止時(shí)間以及維持時(shí)間長度由脈沖決定.
在講流水線時(shí),可通過工廠生產(chǎn)產(chǎn)品進(jìn)行類比.假設(shè)需要生產(chǎn)甲、乙、丙、丁、戊五個(gè)產(chǎn)品,每個(gè)產(chǎn)品須經(jīng)過工序1、工序2、工序3和工序4四道工序,每道工序的生產(chǎn)時(shí)間為t.如果只有一個(gè)工人工作,那就要先進(jìn)行第一個(gè)產(chǎn)品的四道工序作業(yè),生產(chǎn)出第一個(gè)產(chǎn)品,再進(jìn)行第二個(gè)產(chǎn)品的四道工序作業(yè),接著再進(jìn)行第三個(gè)產(chǎn)品的四道工序作業(yè).依此類推,則生產(chǎn)出五個(gè)產(chǎn)品總共需要的時(shí)間就是20t.
如果采用流水線作業(yè),A、B、C、D四個(gè)工人分別負(fù)責(zé)工序1、工序2、工序3、工序4的生產(chǎn),前提是A、B、C、D四個(gè)工人能同時(shí)工作,并且四道工序有順序規(guī)定,后面工序只有等前面工序完成之后才能進(jìn)行.則具體作業(yè)流程是:工人A先進(jìn)行第一個(gè)產(chǎn)品甲的工序1作業(yè),此時(shí)另外三個(gè)工人B、C、D等待.當(dāng)工人A進(jìn)行下一產(chǎn)品乙的工序1作業(yè)時(shí),工人B開始工作,進(jìn)行第一個(gè)產(chǎn)品甲的工序2作業(yè).當(dāng)結(jié)束之后,工人C開始工作,進(jìn)行第一個(gè)產(chǎn)品甲的工序3作業(yè),而工人B則進(jìn)行第二個(gè)產(chǎn)品乙的工序2作業(yè),工人A進(jìn)行第三個(gè)產(chǎn)品丙的工序1作業(yè).當(dāng)這步結(jié)束之后,工人D開始工作,進(jìn)行第一個(gè)產(chǎn)品甲的工序4作業(yè),而工人A進(jìn)行第四個(gè)產(chǎn)品丁的工序1作業(yè),工人B則進(jìn)行第三個(gè)產(chǎn)品丙的工序2作業(yè),工人C進(jìn)行第二個(gè)產(chǎn)品乙的工序3作業(yè).至此,四個(gè)工人已全部開始工作.根據(jù)上述流程,畫出工作示意圖,如圖1所示,則生產(chǎn)五個(gè)產(chǎn)品的時(shí)間總共是8t,顯然提高了工作效率.經(jīng)過這樣的類比之后,再來講述計(jì)算機(jī)中流水線的相關(guān)概念和原理,就非常容易理解了.
圖1 工作示意圖
總線的仲裁方式也是難點(diǎn),可采用類比法幫助學(xué)生理解.比如在講“鏈?zhǔn)讲樵儭狈绞綍r(shí),可類比成學(xué)生在食堂排隊(duì)等著吃午餐[7]的情境.餐點(diǎn)是一樣一樣的出來,每次只能是一個(gè)同學(xué)吃到(部件獲得總線的控制權(quán)),誰吃到由老師判定(總線仲裁器判定總線的授權(quán)).第一次出來一個(gè)包子,因?yàn)椴⒉皇撬械耐瑢W(xué)都喜歡吃包子,誰想吃就向老師提出申請(同一時(shí)刻,可能有幾個(gè)部件向總線仲裁器提出總線請求),在這種方式下,老師會(huì)將包子傳遞給離他最近的同學(xué)(鏈?zhǔn)街俨脙?yōu)先級(jí)最高的部件離仲裁器最近).如果這個(gè)同學(xué)剛才沒有發(fā)出要吃包子的申請,就會(huì)傳給他的下面同學(xué),依次類推,直至傳到剛才發(fā)出了吃包子請求的第一個(gè)同學(xué)為止,那么他得到了吃包子的權(quán)利(在剛才發(fā)出請求的部件中離仲裁器最近的獲得了總線的控制權(quán)).然后根據(jù)此情境進(jìn)行總結(jié):鏈?zhǔn)讲樵兊膬?yōu)先級(jí)是固定的,某個(gè)部件只有在它前面所有部件都沒有提出申請的情況下才會(huì)獲得總線控制權(quán).這樣一來,學(xué)生在輕松快樂中就理解了這個(gè)原理.
在講基本信息輸入輸出常用的程序查詢方式、程序中斷方式、直接內(nèi)存訪問(DMA)方式和通道方式時(shí),如果按部就班,分別講述每種方式的原理、特點(diǎn),學(xué)生會(huì)覺得抽象枯燥,不易理解.可通過幼兒園小孩分糖果的例子進(jìn)行類比,幫助他們理解.這個(gè)例子的描述是:假設(shè)幼兒園一個(gè)阿姨帶10個(gè)孩子,要給每個(gè)孩子分4塊水果糖.假設(shè)孩子們能把4塊糖都吃完,那么這個(gè)阿姨應(yīng)該采用什么方法呢?
方法1:她先給孩子甲一塊糖,盯著甲吃完,然后再給他第二塊,等他吃完后又給他第三塊,吃完后再給他第四塊.接著再分糖給孩子乙,其過程與對孩子甲完全一樣.依次類推,直至給第10個(gè)孩子發(fā)完四塊糖為止.看來這種方法效率太低,孩子們吃糖時(shí)她一直在旁守候,什么事也不能干.
方法2:給孩子們每人發(fā)一塊糖各自去吃,并約定誰吃完后就向她舉手報(bào)告,她再發(fā)第二塊.看來這種新方法提高了工作效率,而且在未接到孩子們吃完糖的報(bào)告以前,她還可以騰出時(shí)間給孩子們改作業(yè).但這種方法還可以改進(jìn),具體如方法3.
方法3:進(jìn)行批處理,分別給每個(gè)孩子拿4塊糖各自去吃,要求孩子們把分到的4塊糖全部吃完后再向她報(bào)告.顯然這種方法工作效率大大提高,她可以騰出更多的時(shí)間改作業(yè).
方法4:權(quán)力下放,把發(fā)糖的事交給另一個(gè)人分管,只是必要時(shí)她才過問一下.
在舉過這個(gè)簡單的例子之后,把計(jì)算機(jī)系統(tǒng)中信息輸入輸出的四種方式分別與上述的四種發(fā)糖方法進(jìn)行類比.程序查詢方式與第一種方法相仿:數(shù)據(jù)在CPU和外圍設(shè)備之間的傳送完全靠計(jì)算機(jī)程序控制,外圍設(shè)備動(dòng)作往往很慢,所以程序進(jìn)入查詢循環(huán)時(shí)將白白浪費(fèi)時(shí)間,一直等待,不能處理其他業(yè)務(wù);程序中斷方式和第二種方法相類似:一個(gè)中斷發(fā)生時(shí),CPU暫停它的現(xiàn)行程序,轉(zhuǎn)向中斷處理程序,等中斷處理完畢后,CPU又返回到它原來的任務(wù)中,并從方才停止的地方開始繼續(xù)執(zhí)行程序;直接內(nèi)存訪問(DMA)方式和第三種方法相仿:DMA控制器從CPU那完全接管對總線的控制,數(shù)據(jù)交換不經(jīng)過CPU,而直接在內(nèi)存和外圍設(shè)備之間進(jìn)行,以便高速傳送數(shù)據(jù);通道方式與第四種方法相仿:通道是一個(gè)具有特殊功能的處理器,可實(shí)現(xiàn)對外圍設(shè)備的統(tǒng)一管理和外圍設(shè)備與內(nèi)存之間的數(shù)據(jù)傳送,CPU將部分權(quán)力下放給通道,大大提高了CPU的工作效率.這樣,學(xué)生對這四種方式理解起來就非常容易了.
另外,在分別詳細(xì)的講述每種方式時(shí)還可采用類比方法幫助學(xué)生理解.比如在講述中斷概念和過程時(shí),可與平常秘書在辦公室接聽電話進(jìn)行類比.秘書正在做某一件事情(相當(dāng)于CPU執(zhí)行主程序)時(shí),忽然聽到電話鈴聲響起(相當(dāng)于有中斷請求),此時(shí)秘書暫時(shí)停下手邊的事情(相當(dāng)于中斷主程序),去接聽電話(中斷響應(yīng)),接聽電話(執(zhí)行中斷服務(wù)程序)完畢后,再返回(中斷返回)來繼續(xù)做原來事情(繼續(xù)執(zhí)行主程序).
在運(yùn)用類比法進(jìn)行教學(xué)時(shí),要注意類比的兩事物是在某些屬性上具有相似性(授課時(shí)正是抓住類比事物的相似性去幫助學(xué)生理解新知識(shí)),但絕非等同,對于它們之間的差異性要在講課時(shí)正確的引導(dǎo)學(xué)生,以免學(xué)生在理解上出現(xiàn)偏差.
另外,類比法不是由個(gè)別到普遍的推理,僅僅是一種由個(gè)別到個(gè)別,或是由一類到一類的推理,所以類比法的前提和結(jié)論之間的聯(lián)系是否正確必須要經(jīng)過檢測,如果失敗則須重新尋找合適的類比實(shí)例,否則會(huì)適得其反.所以,在教學(xué)實(shí)踐過程中類比實(shí)例庫需不斷的更新、完善和豐富,這是一個(gè)積累的過程.
此外,還應(yīng)注意類比的作用是有限的,只能幫助理解但不能代替對知識(shí)的正面闡述,所以運(yùn)用過類比之后,還需將相應(yīng)的概念再正面闡述一下;這是至關(guān)重要的,因?yàn)轭惐鹊淖罱K目的是加深學(xué)生對講授知識(shí)點(diǎn)的理解.作為授課教師千萬不能本末倒置,把類比的內(nèi)容重點(diǎn)詳細(xì)講,對真正所要講授的知識(shí)內(nèi)容卻一筆帶過,這樣就喧賓奪主了.
“計(jì)算機(jī)組成原理”是計(jì)算機(jī)類專業(yè)一門重要的核心專業(yè)課程.運(yùn)用類比法進(jìn)行教學(xué),可以使學(xué)生溫故知新,找到新舊知識(shí)之間的聯(lián)系,減少對新知識(shí)的畏難情緒,提高他們的學(xué)習(xí)興趣,對于教師而言也有利于幫助學(xué)生透徹理解,提高教學(xué)效率.實(shí)踐證明,對于這門抽象枯燥的原理課,類比法是一種切實(shí)可行的教學(xué)方法,今后在這門課程的教學(xué)實(shí)踐中,要繼續(xù)完善和豐富類比實(shí)例庫,同時(shí)也需積極融合其他較好的教學(xué)方法,爭取取得更為滿意的教學(xué)效果.
參考文獻(xiàn):
[1]黃嵐,程新榮,袁鋼,等.計(jì)算機(jī)組成原理課程教學(xué)之管見[J].高等農(nóng)業(yè)教育,2005,12(12):68-69.
[2]趙正平.“計(jì)算機(jī)組成原理”課程教學(xué)方法改革探討[J].阜陽師范學(xué)院學(xué)報(bào),2007,24(4):87-88.
[3]李建.淺談?lì)惐确ㄔ诟呗毟邔S?jì)算機(jī)基礎(chǔ)教學(xué)中的運(yùn)用[J].桂林師范高等??茖W(xué)校學(xué)報(bào),2009,23(2):173-176.
[4]劉任熊.類比法在“計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)”教與學(xué)中的作用[J].信息系統(tǒng)工程,2010(6):119-121.
[5]劉任熊.巧用類比法掌握計(jì)算機(jī)網(wǎng)絡(luò)概念八例[J].電腦知識(shí)與技術(shù),2010,6(18):4892-4893.
[6]黎慧,劉旭明.計(jì)算機(jī)組成原理課程教學(xué)探討[J].信息技術(shù),2007(15):85-86.
[7]俞磊,王宗殿,楊松濤,等.醫(yī)學(xué)信息類專業(yè)“計(jì)算機(jī)組成原理”教學(xué)探討[J].電腦知識(shí)與技術(shù),2010,6(4):924-925.