計(jì)算機(jī)組成原理課程教學(xué)分析
一、計(jì)算機(jī)組成原理課程的特點(diǎn)
計(jì)算機(jī)組成原理是研究生入學(xué)考試的必考科目。該課程以馮諾依曼型計(jì)算機(jī)為基礎(chǔ),圍繞計(jì)算機(jī)的運(yùn)算器、控制器、存儲(chǔ)器和輸入輸出設(shè)備等五大部件詳細(xì)介紹它們的工作原理與算法以及具體實(shí)現(xiàn)的電路結(jié)構(gòu)。通過(guò)學(xué)習(xí)本課程,要求學(xué)生熟練掌握單總線結(jié)構(gòu)CPU的工作原理和設(shè)計(jì)實(shí)現(xiàn)的方法,同時(shí)要求學(xué)生初步掌握精簡(jiǎn)指令系統(tǒng)、流水線結(jié)構(gòu)、多體并行存儲(chǔ)器、中斷的工作原理等知識(shí),為后續(xù)課程微機(jī)原理與接口技術(shù)、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)做好準(zhǔn)備。該課程首先講授了8086CPU的編程結(jié)構(gòu),然后引申出8086 匯編語(yǔ)言的尋址方式和指令系統(tǒng),學(xué)生在掌握上述知識(shí)的基礎(chǔ)上,進(jìn)行匯編語(yǔ)言程序設(shè)計(jì)。匯編語(yǔ)言程序設(shè)計(jì)可以讓學(xué)生加深對(duì)程序設(shè)計(jì)方法的理解,同時(shí)程序的編寫和調(diào)試使學(xué)生對(duì)計(jì)算機(jī)硬件有一個(gè)感性的認(rèn)識(shí),為以后他們學(xué)習(xí)微機(jī)原理與接口技術(shù)、操作系統(tǒng)等課程做準(zhǔn)備。
根據(jù)國(guó)家教育部高教教執(zhí)委發(fā)布的新的教學(xué)改革精神,結(jié)合我院的具體情況,我院將計(jì)算機(jī)組成原理與匯編語(yǔ)言兩門課程合并成一門全新的計(jì)算機(jī)組成原理課程。在新的教學(xué)體系中,我們將兩門課程有效地結(jié)合起來(lái)去糟取精刪繁就簡(jiǎn),舍去了兩門課程中的重疊部分而突出重點(diǎn),形成了一套新的教學(xué)體系。
二、計(jì)算機(jī)組成原理與匯編語(yǔ)言教學(xué)內(nèi)容的融合
在傳統(tǒng)的計(jì)算機(jī)組成原理課程中,教師始終圍繞著計(jì)算機(jī)的五大部件按照運(yùn)算器、存儲(chǔ)器、控制器、輸入輸出系統(tǒng)這個(gè)順序進(jìn)行講解,在講授過(guò)程中經(jīng)常會(huì)用到一些實(shí)例進(jìn)行說(shuō)明,而很多時(shí)候是以匯編語(yǔ)言做例子講解的,兩門課程融合在一起的最大好處就是教師在講授匯編語(yǔ)言的部分時(shí),可以更好地兼顧計(jì)算機(jī)組成原理,讓這兩門課程做到無(wú)縫對(duì)接。
在基礎(chǔ)知識(shí)部分,我們首先要介紹馮諾依曼型計(jì)算機(jī)的特點(diǎn)。馮諾依曼型計(jì)算機(jī)是串行計(jì)算機(jī)的始祖,所有的串行計(jì)算機(jī)都要符合馮諾依曼型計(jì)算機(jī)的特點(diǎn),這是計(jì)算機(jī)組成原理基礎(chǔ)知識(shí)部分的重點(diǎn)。在課程講授過(guò)程中,教師都會(huì)畫一幅五大部件的關(guān)系圖,通過(guò)圖形示意來(lái)表示一條指令是如何在五大部件之間流動(dòng)的,從而使用戶從外部觀察到計(jì)算機(jī)處于運(yùn)行狀態(tài)。我們考慮從這里引入8086CPU 的編程結(jié)構(gòu),從計(jì)算機(jī)組成原理過(guò)渡到匯編語(yǔ)言,讓指令舉例更加具體化,再結(jié)合指令的尋址方式,借機(jī)說(shuō)明8086 的匯編語(yǔ)言指令是如何在CPU 中執(zhí)行的。
在接下來(lái)的講授過(guò)程中,我們將介紹8086 匯編語(yǔ)言的尋址方式和指令系統(tǒng)。由于在計(jì)算機(jī)組成原理課程中也有一章介紹指令系統(tǒng),我們可以把這個(gè)部分與匯編語(yǔ)言的內(nèi)容合并,以計(jì)算機(jī)組成原理的部分強(qiáng)調(diào)基本概念,以匯編語(yǔ)言的內(nèi)容來(lái)強(qiáng)調(diào)具體應(yīng)用,把內(nèi)容更加具體化,舉例更具有針對(duì)性,可以使學(xué)生更好地理解尋址方式和指令系統(tǒng)。在這里我們?cè)诮虒W(xué)上做了一點(diǎn)改變,我們考慮到匯編語(yǔ)言指令數(shù)目較多的特點(diǎn)將指令分類,每類指令選出一到兩個(gè)具有代表性的指令進(jìn)行詳細(xì)說(shuō)明,其他略講,然后采用寫出指令執(zhí)行結(jié)果的方式進(jìn)行大量練習(xí),從而鞏固這部分知識(shí)。在講授了匯編語(yǔ)言的程序設(shè)計(jì)方法之后,再講授計(jì)算機(jī)組成原理部分的運(yùn)算器與運(yùn)算方法部分。在這部分我們可以利用學(xué)過(guò)的匯編語(yǔ)言知識(shí),結(jié)合布斯算法和加減交替法編寫定點(diǎn)數(shù)乘除法的匯編語(yǔ)言程序,還可以編寫浮點(diǎn)數(shù)運(yùn)算的模擬程序。在講授控制器的部分時(shí),我們可以設(shè)計(jì)一個(gè)類8086 的CPU,把它作為課堂上的CPU 設(shè)計(jì)舉例,這樣把一條8086 匯編語(yǔ)言指令放在這個(gè)CPU 中運(yùn)行,可以更直觀地反映指令的工作細(xì)節(jié),促進(jìn)學(xué)生對(duì)控制器的工作原理和匯編語(yǔ)言的理解。
三、計(jì)算機(jī)組成原理與匯編語(yǔ)言實(shí)驗(yàn)內(nèi)容的融合
計(jì)算機(jī)組成原理與匯編語(yǔ)言都有實(shí)驗(yàn)課,由于在講授上先講匯編語(yǔ)言的內(nèi)容,因此相關(guān)實(shí)驗(yàn)先進(jìn)行,然后進(jìn)行計(jì)算機(jī)組成原理的實(shí)驗(yàn)。我院的計(jì)算機(jī)組成原理實(shí)驗(yàn)課程使用的是由清華大學(xué)計(jì)算機(jī)學(xué)院研制開(kāi)發(fā)的TH-union+ 教學(xué)實(shí)驗(yàn)系統(tǒng),該系統(tǒng)主要用于計(jì)算機(jī)組成原理課程的硬件教學(xué)實(shí)驗(yàn),還支持監(jiān)控程序、匯編語(yǔ)言程序設(shè)計(jì)。在硬件上同時(shí)實(shí)現(xiàn)了硬布線方式和微程序方式兩種控制器結(jié)構(gòu),既支持用中小集成度的芯片實(shí)現(xiàn)CPU 的方案,又支持用高集成度的FPGA門陣列實(shí)現(xiàn)CPU 的方案。在軟件上可實(shí)現(xiàn)指令級(jí)模擬,也可以軟件模擬硬布線和微程序的操作,為學(xué)生學(xué)習(xí)硬件理論知識(shí)起到了重要的輔助作用。但是該實(shí)驗(yàn)系統(tǒng)的匯編語(yǔ)言指令與8086 匯編語(yǔ)言是不兼容的,這使學(xué)生在短期內(nèi)很難快速掌握實(shí)驗(yàn)系統(tǒng)的匯編語(yǔ)言指令,因此經(jīng)課程組全體教師研究決定,另外開(kāi)發(fā)一款新的匯編語(yǔ)言轉(zhuǎn)換軟件,用來(lái)實(shí)現(xiàn)兩種不同種類的匯編語(yǔ)言互相轉(zhuǎn)換。該軟件是利用linux 模擬環(huán)境Cygwin 開(kāi)發(fā)實(shí)現(xiàn)的。Cygwin 是cygnus solutions 公司開(kāi)發(fā)的一個(gè)在windows 平臺(tái)上運(yùn)行的類UNIX 模擬環(huán)境。在這里我們主要使用了Cygwin 開(kāi)發(fā)環(huán)境里的flex 和gcc 兩個(gè)工具軟件。利用flex 工具軟件編寫的源代碼必須轉(zhuǎn)換成c 語(yǔ)言代碼格式,然后由linux 下的c 語(yǔ)言編譯器gcc 編譯成可執(zhí)行文件,完成最后的開(kāi)發(fā)。
由于TH-union+ 教學(xué)實(shí)驗(yàn)系統(tǒng)的匯編語(yǔ)言指令共48 條,采用精簡(jiǎn)指令系統(tǒng),每條指令的尋址方式是固定的,因此不單獨(dú)設(shè)置關(guān)于尋址方式的標(biāo)志位,當(dāng)指令進(jìn)行譯碼操作的時(shí)候,實(shí)驗(yàn)系統(tǒng)電路通過(guò)分析指令的操作碼既了解了指令的操作功能也了解了指令操作數(shù)的尋址方式。而8086 匯編語(yǔ)言指令是一個(gè)復(fù)雜的指令系統(tǒng),每條指令對(duì)應(yīng)著多種不同的尋址方式,因此我們把教學(xué)實(shí)驗(yàn)系統(tǒng)的'匯編語(yǔ)言看成是8086 匯編指令系統(tǒng)的子集。通過(guò)對(duì)轉(zhuǎn)換程序my 的使用,幫助學(xué)生對(duì)比兩種匯編語(yǔ)言之間的相同點(diǎn)和不同點(diǎn),通過(guò)對(duì)比學(xué)習(xí),學(xué)生可以更快速地熟悉實(shí)驗(yàn)系統(tǒng)匯編語(yǔ)言。
在這里對(duì)于不可轉(zhuǎn)換的匯編語(yǔ)言指令可采取兩種處理方式:方式一,發(fā)出警告提示并忽略此條指令;方式二,發(fā)出錯(cuò)誤提示并強(qiáng)行結(jié)束程序轉(zhuǎn)換。轉(zhuǎn)換程序your分析了操作碼之后開(kāi)始分析操作數(shù)的尋址方式。在這里,我們假設(shè)所有指令都采用雙操作數(shù),因此在結(jié)構(gòu)體中設(shè)置了兩個(gè)對(duì)應(yīng)尋址方式的變量。具體操作時(shí),如果分析出該操作數(shù)的尋址方式可以被實(shí)驗(yàn)平臺(tái)支持,那么就將對(duì)應(yīng)數(shù)值保存在結(jié)構(gòu)體的對(duì)應(yīng)變量中以便轉(zhuǎn)換,如果不是實(shí)驗(yàn)平臺(tái)支持的尋址方式,系統(tǒng)將提示用戶:你的程序中使用了不可轉(zhuǎn)換的尋址方式,并強(qiáng)行結(jié)束轉(zhuǎn)換。在尋址方式轉(zhuǎn)換過(guò)程中,有一些特殊情況需要系統(tǒng)自動(dòng)追加指令。最后,要對(duì)輸入輸出指令單獨(dú)處理。輸入輸出操作是后續(xù)課程微機(jī)原理與接口技術(shù)的重要知識(shí)點(diǎn)。在編寫匯編語(yǔ)言程序過(guò)程中,當(dāng)遇到輸入和輸出操作都是直接調(diào)用DOS 中斷或BIOS 中斷來(lái)實(shí)現(xiàn)的。但是教學(xué)實(shí)驗(yàn)系統(tǒng)沒(méi)有任何中斷程序輔助操作,遇到輸入和輸出操作只能由學(xué)生自己編寫。在編寫8086 匯編語(yǔ)言程序過(guò)程中,凡是遇到輸入和輸出操作都通過(guò)調(diào)用這兩個(gè)宏來(lái)實(shí)現(xiàn)。每次進(jìn)行輸入輸出操作時(shí)必須先對(duì)指定的狀態(tài)寄存器的標(biāo)志位進(jìn)行判斷,以確定硬件是否準(zhǔn)備好,是否可以進(jìn)行輸入輸出操作。具體做法是使標(biāo)號(hào)由英文字母和數(shù)字構(gòu)成,每次產(chǎn)生新的標(biāo)號(hào),后面的數(shù)字部分就加1,保證新標(biāo)號(hào)與舊標(biāo)號(hào)不同。
計(jì)算機(jī)組成原理和匯編語(yǔ)言是計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程專業(yè)的專業(yè)課程,這兩門課程存在著很多聯(lián)系同時(shí)也有一些區(qū)別,把這兩門課程合并成一門全新的計(jì)算機(jī)組成原理課是我院一項(xiàng)新的教學(xué)改革方案。如何把兩門課程很好地融合在一起就成了課程組面臨的一個(gè)新的挑戰(zhàn),本文結(jié)合課程組全體教師的多年教學(xué)經(jīng)驗(yàn),拋磚引玉,初步提出了一些在教學(xué)和實(shí)驗(yàn)上的改革方案,希望各界同人多提寶貴意見(jiàn)。
【計(jì)算機(jī)組成原理課程教學(xué)分析】相關(guān)文章:
1.計(jì)算機(jī)組成原理課程實(shí)驗(yàn)教學(xué)分析論文
2.計(jì)算機(jī)組成原理課程教學(xué)研究的論文
3.關(guān)于計(jì)算機(jī)組成原理考點(diǎn)分析