黃勇
摘 要:微程序設(shè)計(jì)技術(shù)是現(xiàn)代SISC指令系統(tǒng)設(shè)計(jì)的主要技術(shù)。介紹了計(jì)算機(jī)組成課程中微程序設(shè)計(jì)的關(guān)鍵環(huán)節(jié),并討論了微程序設(shè)計(jì)技術(shù)在計(jì)算機(jī)組成課程教學(xué)中的重要作用。
關(guān)鍵詞:微程序設(shè)計(jì);計(jì)算機(jī)組成;教學(xué)
《計(jì)算機(jī)組成原理》課程是計(jì)算機(jī)類本科專業(yè)的核心專業(yè)基礎(chǔ)課程。它的先導(dǎo)課程有數(shù)字電子技術(shù)、匯編語言程序設(shè)計(jì),后續(xù)課程有操作系統(tǒng)、微機(jī)原理與接口技術(shù)、計(jì)算機(jī)體系結(jié)構(gòu)等課程。在一系列軟硬件課程中起著承上啟下的作用,是所有后續(xù)硬件專業(yè)課的基礎(chǔ)和支撐。在各硬件及軟件的課程中,該課程處于核心重點(diǎn)地位。本課程的教學(xué)目標(biāo)是使學(xué)生掌握計(jì)算機(jī)五大功能部件的功能、基本組成、工作原理、設(shè)計(jì)方法及邏輯實(shí)現(xiàn)等有關(guān)的知識和技術(shù),最終建立完整、清晰的計(jì)算機(jī)整機(jī)概念,并使學(xué)生具備對計(jì)算機(jī)系統(tǒng)整機(jī)和部件進(jìn)行分析和設(shè)計(jì)的初步能力。
建立完整、清晰的計(jì)算機(jī)整機(jī)概念,是計(jì)算機(jī)組成原理學(xué)習(xí)的重要目標(biāo)。整機(jī)目標(biāo)的建立是讓學(xué)生知道計(jì)算機(jī)各部件在計(jì)算機(jī)中扮演的角色、各部件是如何協(xié)調(diào)工作的,各部件協(xié)調(diào)工作的目標(biāo)是在控制器的統(tǒng)一指揮下執(zhí)行指令。這些目標(biāo)的實(shí)現(xiàn)需要通過微程序設(shè)計(jì)的學(xué)習(xí)和實(shí)踐。學(xué)生只有真正掌握微程序設(shè)計(jì)技術(shù),并掌握指令設(shè)計(jì)和調(diào)試的全過程,才能建立計(jì)算機(jī)整機(jī)概念。因此在教學(xué)中,微程序設(shè)計(jì)是計(jì)算機(jī)組成原理教學(xué)的重點(diǎn)和難點(diǎn),特別在實(shí)驗(yàn)教學(xué)中,更要加強(qiáng)微程序設(shè)計(jì)部分的實(shí)驗(yàn)。
1 微程序設(shè)計(jì)的關(guān)鍵步驟
微程序設(shè)計(jì)的目的是實(shí)現(xiàn)機(jī)器的指令系統(tǒng),屬于硬件設(shè)計(jì)范疇。具體分為設(shè)計(jì)指令、確定指令的微程序流程、確定各微指令的地址、微指令代碼化、指令調(diào)試等五個(gè)主要步驟。
1.1設(shè)計(jì)指令
對于計(jì)算機(jī)組成教學(xué)來說,設(shè)計(jì)指令就是設(shè)計(jì)模型機(jī)的指令系統(tǒng)。對此需要首先讓學(xué)生深入熟悉模型機(jī)的數(shù)據(jù)通路圖以及模型機(jī)的部件結(jié)構(gòu),知道在此硬件平臺下,能設(shè)計(jì)哪些指令。比如說,如果模型機(jī)的運(yùn)算器不支持乘除運(yùn)算,則就不能設(shè)計(jì)乘除指令。在這個(gè)環(huán)節(jié)上要強(qiáng)調(diào)指令的執(zhí)行是由對應(yīng)的硬件去完成的,一臺計(jì)算機(jī)指令系統(tǒng)越復(fù)雜,硬件就越復(fù)雜。還有,要把指令系統(tǒng)設(shè)計(jì)章節(jié)的理論貫穿到這里,讓學(xué)生知道指令系統(tǒng)設(shè)計(jì)這一章在計(jì)算機(jī)組成課程中的作用。有的學(xué)生不理解計(jì)算機(jī)組成為什么學(xué)習(xí)指令系統(tǒng)的設(shè)計(jì),事實(shí)上,指令系統(tǒng)的設(shè)計(jì)是計(jì)算機(jī)硬件設(shè)計(jì)的依據(jù)。在這里還有一點(diǎn)需要注意的,模型機(jī)的指令設(shè)計(jì)要設(shè)計(jì)輸入輸出指令、運(yùn)算類指令、傳送類指令及程序控制類指令等,尋址方式要涉及基本的尋址方式,這樣,學(xué)生對指令的理解將更加深刻。
1.2 確定指令的微程序流程圖
程序設(shè)計(jì)需要給出程序流程圖,程序流程圖的確定是程序設(shè)計(jì)中關(guān)鍵步驟,同樣,指令的設(shè)計(jì)也需要給出微程序流程圖。微程序流程圖用來說明為了完成指令定義的功能,計(jì)算機(jī)應(yīng)該做哪些操作。這一步是微程序設(shè)計(jì)最基本也是最關(guān)鍵的環(huán)節(jié)。微程序流程圖的確定需要知道指令執(zhí)行的全過程,特別對于尋址方式的理解有很好的作用。在教學(xué)中,這一環(huán)節(jié)一定要講清楚,作為重點(diǎn)來講。以幾個(gè)有代表性的指令詳細(xì)分析,比如ADD [addr]指令,JMP addr指令等。
1.3 確定各微指令的地址
微程序流程的確定也就確定了為了實(shí)現(xiàn)這個(gè)指令功能,應(yīng)該需要執(zhí)行哪些微指令。下面應(yīng)該確定各微指令在控制存儲器的地址。在這里首先要把微指令地址確定的理論講明白。包括起始微地址和后繼微地址的確定方法。在此還需要結(jié)合模型機(jī)的控制存儲器的空間使用情況來進(jìn)行確定。這個(gè)環(huán)節(jié)中的講解難點(diǎn)是采用一級功能轉(zhuǎn)移確定起始微地址,可以用一個(gè)模型采用啟發(fā)式方法讓學(xué)生理解這個(gè)方法的要點(diǎn),直接給出這個(gè)方法,學(xué)生很不容易理解為什么將指令編碼作為起始微地址的一部分。
1.4 微指令代碼化
微指令代碼化就是將各微指令轉(zhuǎn)化成二進(jìn)制編碼,涉及微指令的功能、微指令格式及模型機(jī)數(shù)據(jù)通路圖,這是一個(gè)綜合的過程,也微程序設(shè)計(jì)的一個(gè)重難點(diǎn)。首先要把模型機(jī)的微指令格式及模型機(jī)數(shù)據(jù)通路圖各控制點(diǎn)的功能講明白,然后以二到三個(gè)微指令為重點(diǎn)分析代碼化的過程。最后讓學(xué)生來自己代碼化幾條微指令。在這里代碼化的方法是重點(diǎn),不需要對每條微指令代碼化。
1.5 指令調(diào)試
把微指令代碼化后的各微指令存入到模型機(jī)的控制存儲器,也就完成了指令設(shè)計(jì)的主要過程。剩下的就是調(diào)試每個(gè)指令是不是達(dá)到設(shè)計(jì)要求。調(diào)試就是用已經(jīng)設(shè)計(jì)好的指令編寫一段簡單的程序,這個(gè)程序要包括所有的指令,然后在模型機(jī)上運(yùn)行這段程序,看看這程序上的每個(gè)指令的執(zhí)行過程是否和設(shè)計(jì)的一樣。在這里,有一套能夠反映指令執(zhí)行過程的實(shí)驗(yàn)設(shè)備和軟件是關(guān)鍵。有的計(jì)算機(jī)組成原理實(shí)驗(yàn)設(shè)備能夠很好的展現(xiàn)模型機(jī)的數(shù)據(jù)通路圖,還能動(dòng)態(tài)的顯示每條微指令執(zhí)行時(shí)數(shù)據(jù)的流動(dòng)過程及各控制點(diǎn)的反映,并顯示執(zhí)行的是哪條微指令。觀察指令的執(zhí)行過程是微程序設(shè)計(jì)的關(guān)鍵環(huán)節(jié),也是學(xué)生建立計(jì)算機(jī)整機(jī)概念的關(guān)鍵環(huán)節(jié)。
2.微程序設(shè)計(jì)技術(shù)在計(jì)算機(jī)組成課程教學(xué)中的作用
2.1 能夠深化對指令系統(tǒng)及指令設(shè)計(jì)的理解
計(jì)算機(jī)的指令是怎么來的,為什么不同的計(jì)算機(jī)指令系統(tǒng)不一樣,這樣的問題總是困擾著學(xué)生,以及指令設(shè)計(jì)中的一些理論與方法如何理解和運(yùn)用等等。通過微程序設(shè)計(jì),學(xué)生熟悉了計(jì)算機(jī)指令設(shè)計(jì)的全過程,從而能很好的理解計(jì)算機(jī)的指令系統(tǒng)及指令系統(tǒng)設(shè)計(jì)的理論與方法。
2.2 能夠深化對計(jì)算機(jī)硬件組成及功能的理解
在微程序設(shè)計(jì)中需要全面熟悉計(jì)算機(jī)的硬件組成,如運(yùn)算器是什么樣的運(yùn)算器,能進(jìn)行哪些運(yùn)算,是什么總線結(jié)構(gòu);如存儲器的容量,訪問存儲器的地址寄存器的寬度,數(shù)據(jù)寄存器的寬度,還有PC寄存器,計(jì)算機(jī)硬件的總線結(jié)構(gòu)連接等等。在微程序設(shè)計(jì)中,是對計(jì)算機(jī)組成的一個(gè)全面熟悉,還可以熟悉各部件的聯(lián)系,是一個(gè)從全局掌握計(jì)算機(jī)各部件組成及聯(lián)系的一個(gè)很好的途徑。
2.3能夠深化對計(jì)算機(jī)執(zhí)行程序過程的理解
在微程序設(shè)計(jì)的最后是指令的調(diào)試。指令調(diào)試的過程就是全面地觀察一個(gè)程序執(zhí)行的全過程。從取指令開始到執(zhí)行指令,然后又細(xì)化到每個(gè)指令對應(yīng)的微指令的運(yùn)行,再進(jìn)一步細(xì)化到每個(gè)微指令對應(yīng)的數(shù)據(jù)流,涉及的寄存器,以及各控制點(diǎn)的操作。通過這樣的觀察,已經(jīng)能夠全面地理解了計(jì)算機(jī)執(zhí)行程序的所有細(xì)節(jié),是對計(jì)算機(jī)執(zhí)行程序過程理解的一個(gè)升華。
2.4是建立計(jì)算機(jī)整機(jī)概念的必由之路
建立計(jì)算機(jī)整機(jī)概念是計(jì)算機(jī)組成原理教學(xué)的重要目標(biāo)。在微程序設(shè)計(jì)的調(diào)試階段,通過對測試程序執(zhí)行的觀察,學(xué)生知道了一個(gè)程序的執(zhí)行全過程、一個(gè)指令的執(zhí)行全過程、一個(gè)微指令的執(zhí)行全過程,理解了在計(jì)算機(jī)指令執(zhí)行過程中各個(gè)部件的協(xié)調(diào)工作關(guān)系以及每個(gè)部件在指令執(zhí)行中的作用,不再孤立地去看待每個(gè)部件,理解了計(jì)算機(jī)硬件就是為指令的正確執(zhí)行,它們是一個(gè)整體,協(xié)調(diào)工作,完成各指令的功能,這樣也就建立了計(jì)算機(jī)整機(jī)概念。
3 結(jié)束語
計(jì)算機(jī)組成原理課程是計(jì)算機(jī)類專業(yè)重要的專業(yè)基礎(chǔ)課程,該課程教學(xué)效果將會(huì)直接影響后續(xù)專業(yè)課程的學(xué)習(xí)。計(jì)算機(jī)組成原理的學(xué)習(xí)一直是專業(yè)教學(xué)的難點(diǎn),其知識點(diǎn)多、概念多、原理多,學(xué)生很難真正去理解和掌握。微程序設(shè)計(jì)技術(shù)是計(jì)算機(jī)組成中非常重要的知識點(diǎn),它的學(xué)習(xí)對于學(xué)生對計(jì)算機(jī)組成的理解具有重要的作用,教師在教學(xué)中應(yīng)充分把握好微程序設(shè)計(jì)的理論教學(xué)和實(shí)驗(yàn)教學(xué),這對學(xué)生掌握計(jì)算機(jī)組成的相關(guān)知識具有極為重要的作用。
[參考文獻(xiàn)]
[1]趙秀娟,詹春,郎長勝,等.基于微程序控制模型機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[J].江西科技師范大學(xué)學(xué)報(bào),2017,(6):89-93
[2] 袁春風(fēng),楊若瑜,王帥,等.計(jì)算機(jī)組成與其他課程之間的關(guān)聯(lián)內(nèi)容分析[J].計(jì)算機(jī)教育,2015,17(9):35-39.
(作者單位:安徽科技學(xué)院計(jì)算機(jī)系,安徽 蚌埠 233000)