控制器組成及其部分原理情況說明

控制器的組成與裏面涉及到的知識的總結

  • 指令寄存器(Instuction Register,IR)
    • 指令寄存器IR保存從存儲器中讀出的當前要執行的指令。指令分爲兩部分,由操作碼和地址碼構成。操作碼用來表明指令的操作性質,如加法,減法等;地址碼提供本條指令的操作數地址或形成操作數地址有關信息,操作碼是必不可少的,地址碼則視情況而定(如情況一:不需要操作數的控制指令,如空操作指令,停機指令等;情況二:隱含操作數的指令,如堆棧結構計算機的運算指令,其所需的操作數是隱含在堆棧中,由堆棧指針SP【Stack Pointer】指出;情況三:8086CPU的字符串處理指令,源操作數和目的操作數分別隱含在源變址寄存器SI【Source Index】),和目的變址寄存器DI【Destination Index】中。
  • 指令譯碼器(Instruction Decoder,ID)
    • 指令譯碼器ID用來對指令寄存器中的指令進行譯碼分析,指出指令的操作種類和尋址方式,指令譯碼器的輸出作爲微操作命令發生器的輸入,是產生控制信號的主要依據。指令譯碼器主要是對操作碼的譯碼分析。
      • 尋址方式
        • 指令尋址
          • 相對尋址
            • 相對尋址是指指令代碼提供目標地址相對於當前指令地址的位移量,轉移到的目標地址就是當前指令地址加上位移量。當同一程序被操作系統安排到不同的存儲區域執行時,指令間的位移並沒有改變,採用相對尋址也就無需改變轉移地址,給操作系統的靈活調度提供了很大方便,所以是最常用的目標地址尋址方式。
          • 直接尋址和間接尋址
            • 直接尋址是指令代碼中直接提供目標地址,間接尋址時指令代碼指出寄存器或存儲單員地址,目標地址來自寄存器或存儲單元。如果用寄存器保存目標地址,則稱爲目標地址的寄存器間接尋址;如果用存儲單元保存目標地址,則稱爲目標地址的存儲器間接尋址。
        • 數據尋址
          • 立即數尋址
            • 在立即數尋址方式中,指令需要的操作數緊跟在操作碼之後(注意在這裏操作碼後面不是跟着地址碼)作爲指令機器代碼的一部分,並且隨着取指操作從主存進入指令寄存器。這種操作數用常量形式直接表達,稱爲立即數。立即數尋址方式只用於指令的源操作數,如在傳送指令中給寄存器和存儲器單元賦值。 如將16位立即數1234H傳送到AX寄存器的指令可以寫 MOV AX,1234H;而1234H的尋址方式就是立即數尋址,因爲1234H爲立即數,直接使用便可。而將32位立即數33221100H傳送到EAX寄存器的指令可以寫爲: MOV EAX,33221100H。後一條指令的機器代碼是B800112233H(從這裏面也可以看出在存儲單元存儲數據時的規則:按照低位字節存放在低地址單元,高位字節存放在高地址單元),其中,第一個字節B8是操作碼,後4個字節是立即數。8086CPU規定,指令中有兩個操作數時,左面的目的操作數,右面的爲源操作數。
          • 寄存器尋址
            • 指令的操作數存放在寄存器中稱爲寄存器尋址,可以直接使用寄存器的名字表示它保存的數據。絕大對數指令採用通用寄存器尋址,部分指令支持專用寄存器。寄存器尋址方式簡單快捷,指令字長短,是最常用的尋址方式。 如 MOV AX,1100H,1100H爲立即數尋址方式,而AX爲寄存器尋址。也可以說源操作數爲立即數尋址,目的操作數爲寄存器尋址。
          • 存儲器直接尋址
            • 如果操作數在主存單元中,指令代碼中直接給出操作數有效地址稱爲存儲器直接尋址。按80X86CPU處理器訪問存儲器的方式,指令中給出的地址是操作數在數據段的偏移地址,用段地址(在數據段寄存器儲存DS)與偏移地址相結合,才能得到操作數在主存的地址。 MOV DX,[1234H];這種有方括號的表達式即存儲器直接尋址,地址碼給出的爲寄存器地址,寄存器裏面存儲的內容爲偏移地址
          • 寄存器間接尋址
            • 寄存器間接尋址是將操作數的有效地址存放在寄存器中,MASM彙編程序要求用英文括號將寄存器名字括起來。例如指令 MOV DX,[BX] 的源操作數採用寄存器間接尋址,指令 MOV [ESI],ECX的目的操作數爲寄存器間接尋址。在寄存器間接尋址中,寄存器的內容爲偏移地址(和存儲器直接尋址一樣),相當於一個地址指針。利用寄存器間接尋址,可以方便地對數組的元素或字符串的字符進行操作。也就是說,將數組或字符串首地址(或末地址)賦值給通用寄存器,利用寄存器間接尋址方式可以訪問數組的頭一個(或最後一個)元素,在加減數組元素所佔的字節數就可以訪問到其他元素或字符。
          • 寄存器相對尋址
            • 在寄存器相對尋址中,操作數的有效地址是寄存器內容和位移量之和。例如指令:MOV SI,[BX+4]表示源操作數的有效地址由BX寄存器的內容加上位移量4得到,默認與BX寄存器配合的是段寄存器DS指向的數據段
          • 基址加變址尋址和相對基址加變址尋址
            • 基址加變址尋址即尋址時同時使用基址和變址寄存器,將二者之和作爲操作數的偏移地址(也可以稱爲有效地址) MOV DI,[ BX+SI ]
            • 相對基址加變址尋址即同時使用基址加變址寄存器加一個偏移量 MOV EAX,[ EBX+EDX+80H ]
          • 帶比例的變址尋址
            • 在32位尋址方式中,支持變址寄存器內容乘以一個常數1(可省略),2,4,8這種尋址方式稱爲帶比例的變址尋址。 MOV EAX,[ EBX *4 ] :帶比例的變址尋址 MOV EAX,[ ESI*2+80H ] :帶比例的相對變址尋址 MOV EAX,[ EBX+ESI*4 ] :帶比例的基址加變址尋址 MOV EAX,[ EBX+ESI*8-80H ] :帶比例的相對基址加變址尋址
  • 程序計數器(Program Counter,PC)
    • 程序計數器PC也叫指令指針寄存器【Instruction Pointer,IP】,用來存放下一條要執行指令的存儲器地址,按此地址從對應存儲單元取出的內容就是要執行的指令。指令是順序存放在存儲器內的,通常指令是按順序執行的,則下一條要執行指令的地址由現行地址加1(或加一常量【尋址方式的不同】形成)
    • 地址形成電路根據尋址方式可以形成轉移類指令或操作數地址,如在程序執行過程中要實現程序的轉移,就要將形成的轉移地址送到程序計數器PC中。
  • 時序電路
    • 用於控制操作時間的信號稱爲時序控制信號。時序電路產生併發出計算機所需的各種時序控制信號,對各種操作進行時間上的控制。時序控制信號有機器週期信號、節拍信號、工作脈衝信號,它們決定每個微操作的開始時刻和操作的持續時間
  • 微操作命令發生器
    • 微操作就是不能再分解的操作,執行微操作總是需要相應的控制信號(也稱爲微操作控制命令)。例如,讓寄存器A的內容通過多路選擇器這一操作就不能再分解,因此它是一個微操作。執行這一操作,需要控制器發出選通寄存器A的微操作命令。 微操作命令發生器是產生所有微操作命令的部件,是控制器中最複雜的部件。微操作命令發生器根據指令操作碼、時序信號、狀態寄存器內容和其他一些信息,產生計算機工作需要的各種控制信號,以便建立正確的數據通路,完成對取指令、分析指令和執行指令的控制。(控制器可以按照兩種方法來設計:一種是由各種門電路構成,完全依靠硬件來產生控制信號,稱爲組合邏輯控制器,也叫硬佈線控制器;另外一種是微程序控制器,通過執行固化的一段微程序產生控制信號來實現一條機器指令功能,對應所有指令的微程序的存放在控制器的只讀存儲器中。 組合邏輯控制器具有速度快的優點,但設計繁瑣、複雜,微程序控制器速度教慢,但設計簡單、規整,控制器的設計過程中可以將這兩種方式結合起來 如最開始的計算是軟件實現,現在大部分計算機是硬件實現)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章