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