第6章中央處理器(1)-控制器和微程序_第1頁
第6章中央處理器(1)-控制器和微程序_第2頁
第6章中央處理器(1)-控制器和微程序_第3頁
第6章中央處理器(1)-控制器和微程序_第4頁
第6章中央處理器(1)-控制器和微程序_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章中央處理器6.1控制器的組成6.2微程序控制計算機的基本工作原理6.3微程序設計技術6.4硬布線控制的計算機6.5流水線工作原理6.6CPU舉例6.7計算機的供電本章教學內容本章學習目標從兩個方面來認識CPU:CPU的結構組成CPU如何工作計算機組成:運算器、控制器、存儲器、輸入設備和輸出設備五大部件

微處理器:運算器+控制器集成在一個芯片上,通常稱之為中央處理部件(CPU)。控制器的組成和功能:(6.1節(jié))

協(xié)調并控制計算機的各個部件執(zhí)行程序的指令序列。

控制器分為微程序控制器(6.2節(jié)、6.3節(jié))和硬布線控制器(6.4節(jié))。機器加電和reset:(1)可以利用reset信號將某值(例如全“0”)置于程序計數器PC中,此即為開機后執(zhí)行的第一條指令的地址,也就是固定程序入口地址。(2)也可以直接在指令寄存器中置入一條無條件轉移指令(轉移到固定程序入口),然后開始執(zhí)行程序。執(zhí)行程序: 固定程序:先對計算機各部件進行測試,然后引導進入操作系統(tǒng)環(huán)境,等候從鍵盤、鼠標等送入的命令。(一般放在ROM中)

程序執(zhí)行過程:計算機從程序入口地址開始執(zhí)行該程序的指令序列,是不斷地取指令、分析指令和執(zhí)行指令這樣一個周而復始的過程。

當前正在執(zhí)行的指令地址是放在控制器的程序計數器(PC)中的。停機和停電:(P129)

停機:一般停機時電壓任維持正常(晶振停振),寄存器與存儲器仍保持信息不變。重啟后從斷點處繼續(xù)執(zhí)行。

停電:寄存器與存儲器內容消失,加電后產生的reset信號使機器從固定入口重新開始運行。

斷電觸發(fā)的中斷保護計算機的工作過程:

加電→產生reset信號→執(zhí)行程序→停機→停電6.1控制器的組成6.1.1控制器的功能

計算機對信息進行處理(或計算)是通過程序的執(zhí)行而實現的,程序是完成某個確定算法的指令序列,要預先存放在存儲器中。控制器的作用:控制程序的執(zhí)行,它必須具有以下基本功能:

1.取指令

當程序已在存儲器中時,首先根據程序入口取出第一條指令,為此要發(fā)出指令地址及控制信號。然后不斷取出第2,3,…條指令。

2.分析指令

或叫解釋指令、指令譯碼等。是對當前取得的指令進行分析,指出它要求作什么操作,并產生相應的操作控制命令,如果參與操作的數據在存儲器中,還需要形成操作數地址。

3.執(zhí)行指令

根據分析指令時產生的“操作命令”和“操作數地址”形成相應的操作控制信號序列,通過CPU及輸入輸出設備的執(zhí)行,實現每條指令的功能,其中還包括對運算結果的處理以及下條指令地址的形成。

計算機不斷重復順序執(zhí)行上述三種基本操作:取指、分析、執(zhí)行;再取指、再分析、再執(zhí)行……,如此循環(huán),直到遇到停機指令或外來的干預為止。

部件或設備發(fā)出:

(1)“中斷請求”信號待CPU執(zhí)行完當前指令后,響應該請求,中止當前執(zhí)行的程序,轉去執(zhí)行中斷程序。當處理完畢后,再返回原程序繼續(xù)運行下去。

(2)DMA請求信號等CPU完成當前機器周期操作后,暫停工作,讓出總線給I/O設備,在完成I/O設備與存儲器之間的傳送數據操作后,CPU從暫時中止的機器周期開始繼續(xù)執(zhí)行指令。4.控制程序和數據的輸入與結果輸出

根據程序的安排或人的干預,在適當的時候向輸入輸出設備發(fā)出一些相應的命令來完成I/O功能,這實際上也是通過執(zhí)行程序來完成的。5.對異常情況和某些請求的處理6.1.2控制器的組成1.程序計數器(PC) 即指令地址寄存器。在某些計算機中用來存放當前正在執(zhí)行的指令地址;而在另一些計算機中則用來存放即將要執(zhí)行的下一條指令地址;而在有指令預取功能的計算機中,一般還需要增加一個程序計數器用來存放下一條要取出的指令地址。2.指令寄存器(IR) 用以存放當前正在執(zhí)行的指令,以便在指令執(zhí)行過程中,控制完成一條指令的全部功能。3.指令譯碼器或操作碼譯碼器(ID)

對指令寄存器中的操作碼進行分析解釋,產生相應的控制信號。

4.脈沖源及啟停線路(CLK) 脈沖源產生一定頻率的脈沖信號,作為整個機器的時鐘脈沖,是機器周期和工作脈沖的基準信號。在機器剛加電時,還應產生一個總清信號(reset)。 啟停線路保證可靠地送出或封鎖時鐘脈沖,控制時序信號的發(fā)生或停止,從而啟動機器工作或使之停機。5.時序控制信號形成部件(CON)

當機器啟動后,在CLK時鐘作用下,根據當前正在執(zhí)行的指令的需要,產生相應的時序控制信號,并根據被控功能部件的反饋信號調整時序控制信號。

即指令地址寄存器。存放當前正在執(zhí)行的指令地址或下一條指令地址。指令地址形成:(PC)+1->PC?;?轉移指令修改其內容用以存放當前正在執(zhí)行的指令對指令寄存器中的操作碼進行分析解釋,產生相應的控制信號。脈沖源產生一定頻率的脈沖信號作為整個機器的時鐘脈沖,是機器周期和工作脈沖的基準信號。根據當前正在執(zhí)行的指令的需要,產生相應的時序控制信號圖6.1控制器基本組成框圖1、控制器包括哪幾個組成部分,各個部分的功能是什么?2、控制器需要向哪些邏輯電路發(fā)送控制信號?各發(fā)送哪些控制信號?1.組成控制器的基本電路計算機中采用的電路,基本上分為兩種類型。

一類是具有記憶功能的觸發(fā)器以及由它組成的寄存器、計數器和存儲單元等。

一類是沒有記憶功能的門電路及由它組成的加法器、算術邏輯運算單元(ALU)和各種邏輯電路等。6.1.3指令執(zhí)行過程圖6.2記憶電路2.指令執(zhí)行過程舉例數據通路:控制器組成:圖6.1

運算器組成:圖6.4

中央處理器組成:圖6.6一條加法指令的執(zhí)行過程:指令格式:rs,rd,rs1為通用寄存器地址;imm(或disp)為立即數(或位移量)。加法指令功能:(rs)+[(rs1)+disp]->rd取指令計算地址取數運算送結果劃分機器周期的原則:總線不沖突.(時序圖)返回指令執(zhí)行圖6.1控制器基本組成框圖返回指令執(zhí)行圖6.4運算器框圖返回指令執(zhí)行返回指令執(zhí)行取指令:PC→ABW/R=0,M/IO=1;DB→IR;PC+1計算地址rsl→GR,(rsl)→ALU,disp→ALU;“+”;ALU→AR返回指令執(zhí)行返回指令執(zhí)行取數:

AR→ABW/R=0M/IO=1DB→DR返回指令執(zhí)行運算送結果:

rs→GR(rs)→ALUDR→ALU“+”:rd→GRALU→rd置N,Z,V,C返回指令執(zhí)行取指令:PC→ABW/R=0,M/IO=1;DB→IR;PC+1計算地址rsl→GR,(rsl)→ALU,disp→ALU;“+”;ALU→AR取數:

AR→ABW/R=0M/IO=1DB→DR運算送結果:

rs→GR(rs)→ALUDR→ALU“+”:rd→GRALU→rd置N,Z,V,C2)條件轉移指令的執(zhí)行過程指令功能:根據N,Z,V,C的狀態(tài),決定是否轉換。如轉移條件成立,則轉移到本條指令所指定的地址,否則順序執(zhí)行下一條指令。

指令執(zhí)行步驟:

(1)從存儲器取指令,送入指令寄存器,并進行操作碼譯碼。程序計數器加1,如不轉移,即為下一條要執(zhí)行的指令地址。本操作對所有指令都是相同的。

(2)如轉移條件成立,根據指令規(guī)定的尋址方式計算有效地址,轉移指令經常采用相對尋址方式,此時轉移地址=PC+disp。此處PC是指本條指令的地址,而在上一機器周期已執(zhí)行PC+1操作,因此計算時應取原PC值,或對運算進行適當修正。最后將轉移地址送PC??刂菩盘? PC→ALU disp→ALU

“+” ALU→PC其他指令的控制信號也按同樣方法分析,根據每條指令的功能確定所需的機器周期數,并得出每個機器周期所需要的控制信號,最后將所有的控制信號進行綜合簡化。控制器的功能就是按每條指令的要求產生所需的控制信號。因此在設計控制器時要求系統(tǒng)設計師提供一個完整的無二義性的指令系統(tǒng)說明書。

產生控制信號一般有微程序控制和硬布線控制兩種方法。6.2微程序控制計算機的基本工作原理6.2.1微程序控制的基本概念1.微操作(微命令)

實現一條指令的功能按一定次序執(zhí)行一系列基本操作,這些基本操作稱為~。微操作是指不可再分解的操作,進行微操作需要相應的控制信號(稱為微操作控制信號或微操作命令)

例如,前面講到的加法指令,分成四步(取指令、計算地址、取數、加法運算)完成,每一步實現若干個微操作。2.微指令

由同時發(fā)出的控制信號所執(zhí)行的一組微操作稱為微指令,它含控制命令(信號)與下一條執(zhí)行的微指令地址。

將一條機器指令分成若干條微指令,按次序執(zhí)行這些微指令,就可以實現指令的功能。3.微程序

執(zhí)行一條機器指令所對應的多條微指令構成一段微程序。

如:加法指令“addrd/rs,imm[rs1]”所對應的微程序由以下四條微指令組成一段微程序:

取指微指令 計算有效地址微指令 取數微指令 運算微指令微程序段中各條微指令既可連續(xù)存儲、也可分散存儲。4、控制存儲器(CS:ControlStore)控制字段下一條微指令地址字段 控制存儲器的工作原理依據從內存中讀取的指令的操作碼,找到與該條機器指令相對應的一段微程序的入口地址,并按下址字段提供的微地址逐條從控制存儲器中讀出微指令,由控制字段提供的微命令控制計算機各功能部件工作(接收、輸出、執(zhí)行算術或邏輯運算)。執(zhí)行機器指令的實質是什么?執(zhí)行一段微程序微程序←微指令←微操作(微命令)←控制信號微指令的格式存放所有微程序的存儲器。它可以用只讀存儲器實現。6.2.2實現微程序控制的基本原理1.控制信號返回控制信號

以執(zhí)行一條加法指令為例,它由四條微指令解釋執(zhí)行,一條微指令中的所有控制信號是同時發(fā)出的。每條微指令所需的控制信號如下:

(2)計算地址微指令

①取兩個源操作數(計算地址用):

rsl→GR(8),(rsl)→ALU(10),disp→ALU(4)。②加法運算:“+”(13)。③有效地址送地址寄存器:ALU→AR(19)。(1)取指微指令

①指令地址送地址總線:PC→AB(1)②發(fā)訪存控制命令,ADS(21),M/IO=1(22),

W/R=0(23)。從存儲器取指令送數據總線。③指令送指令寄存器:DB→IR(5)④程序計數器+1:PC+1(3)

(3)取數微指令①數據地址送地址總線:AR→AB(20)。②發(fā)訪存控制命令:ADS(21),M/IO(22),W/R(23)。由存儲器將數據送數據總線DB。③數據送數據寄存器:DB→DR(6)(4)加法運算和送結果微指令

①兩源操作數送ALU:rs→GR(9),(rs)→ALU(11);DR→ALU(12)。②加法運算:“+”(13)③送結果;ALU→GR(17)微指令如何產生控制信號?

微指令最簡單的組成形式:

將每個控制信號用一個控制位來表示,當該位為“1”時,定義為有控制信號,當該位為“0”時,沒有控制信號。W/R(寫:1;讀:0)控制存儲器容量為4K字,則每條微指令還需要12位來表示下址??刂拼鎯ζ鞯娜萘咳Q于實現指令系統(tǒng)所需的微程序長度。

圖6.7為加法指令的四條微指令編碼,每一小格表示一位(二進制),空格表示0,第24位到第35位為下址。假設四條微指令的地址如下:(取指微指令下址XXX為微程序入口地址)取指微指令:1000Q 計算有效地址微指令:1001Q(加法指令入口地址)取數微指令:1002Q 計算并存數微指令:1003Q圖6.7加法指令的微指令編碼微程序用流程圖來表示方框:表示微指令右下角的數字:表示下址上方的數字:微指令的地址圖6.8微程序流程圖舉例微程序控制器的基本工作原理:

當指令取入IR中以后,根據操作碼進行譯碼,得到相應指令的第一條微指令的地址。指令譯碼部件可用只讀存儲器組成,將操作碼作為只讀存儲器的輸入地址,該單元的內容即為相應的微指令在控制存儲器中的地址。據根控制存儲器中的地址從控制存儲器取出微指令,并將它存放在微指令寄存器中。控制字段各位的輸出通過連接線直接與受控制的門相連,于是就提供了在本節(jié)所提出的控制信號。2.微程序控制器時序控制信號形成部件圖6.9微程序控制器簡化框圖3、時序信號及工作脈沖的形成分析(P126)圖6.10中輸出與輸入波形之間的關系結論:CLK2二分頻---得到CLKCLK二分頻---得到T1T1反相---得到T2時序圖兩個工作脈沖的疊加信號T2的末尾產生一個CP,用來保存計算結果或接收傳送的數據及指令等。T1的末尾產生另一個工作脈沖。4.電路配合中的常見問題1)電路延遲引起的波形畸變

圖6.11符合電路及波形F/F無延遲CLK無畸變F/F有延遲CLK有畸變圖6.12延遲引起的毛刺2)機器周期的確定

(1)機器周期應大于等于一條微指令中執(zhí)行時間最長的微操作。主要考慮存儲器訪問時間和一次算術運算所需的時間。

(2)機器周期的延長如圖6.5,信號來自存儲器,若無信號時,CPU在將插入等待脈沖,延長一個或一個以上T2節(jié)拍信號,等待存儲器訪問的完成。圖6.13觸發(fā)器之間傳送信息的電路3)時鐘脈沖CLK和工作脈沖CP的標準性當滿足cond條件時,才產生CP—B和CP-C信號。CP脈沖不受控制,總是作用在觸發(fā)器上,但當條件不成立時,使觸發(fā)器處于保持狀態(tài),而當條件成立時,接受新狀態(tài)。打入脈沖的同時性:在控制打入脈沖的機器中,總是盡量將CP信號送到控制門的最后一級。以免延遲造成失真和不同步。圖6.14CP脈沖在電路中的安排5.微程序控制計算機的工作過程簡單的總結1)機器加電后,首先由reset信號在PC內置入開機后執(zhí)行的第一條指令的地址,同時在微指令寄存器內置入一條“取指”微指令,并將其他一些有關的狀態(tài)位或寄存器置于初始狀態(tài)。當電壓達到穩(wěn)定值后,自動啟動機器工作,產生節(jié)拍電位T1,T2和CP。2)機器開始執(zhí)行程序,不斷地取出指令、分析指令、執(zhí)行指令。程序可以存放在固定存儲器中,也可以利用一小段引導程序(在固存中)將要執(zhí)行的程序和數據從外部設備調入主存。3)實現各條指令的微程序存放在微程序控制器中 當前正在執(zhí)行的微指令從微程序控制器中取出后放在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和數據的傳送,并進行相應的處理。當遇到停機指令或外來停機命令時,應該待當前這條指令執(zhí)行完再停機或至少在本機器周期結束時再停機。6.3微程序設計技術

在實際進行微程序設計時,要考慮下面三個問題:(1)如何縮短微指令字長;(2)如何減少微程序長度;(3)如何提高微程序的執(zhí)行速度。

6.3.1微指令控制字段的編譯法微指令的編碼,就是對微指令的控制字段采用的表示方法。1.直接控制法(不譯碼法)操作控制字段中的每一位代表一個微命令。

“1”-有效,“0”-無效。優(yōu)點:簡單直觀,輸出直接用于控制缺點:微指令字較長,因而使控制存儲器容量較大。2.字段直接編譯法(使用較普遍)

微周期:是一條微指令所需的執(zhí)行時間。如果有若干個(一組)微命令,在每次選擇使用它們的微周期內,只有一個微命令起作用,那么這若干個微命令是互斥的。選擇互斥的微命令入同組分組編碼,用微命令譯碼器譯碼控制。如:PC-G、ALU-G、R0-G、R1-G、R2-G

例:字段長度為3位時,最多只能表示7個互斥的微命令,通常代碼000表示不發(fā)微命令。字段長度n與所能表示的微命令數m的關系:m=2n-1優(yōu)點:縮短了微指令長度。代價:在微指令寄存器的輸出端,為該字段增加一個譯碼器,該譯碼器的輸出即為原來的微命令。圖6.16字段直接編譯法3、字段間接編譯法

如果在字段直接編譯法中,還規(guī)定一個字段的某些微命令,要兼由另一字段中的某些微命令來解釋,稱為字段間接編譯法。優(yōu)點:進一步減少了指令長度。缺點:削弱微指令的并行控制能力。A受B控制,B發(fā)b1微命令時,字段A發(fā)出a1,1~a7,1中的一個微命令。B發(fā)b2微命令時,字段A發(fā)出a1,2~a7,2中的一個微命令。4.常數源字段供設計者在填寫微指令時作為要使用的常數E;參與其它控制字段的間接編碼。適用于擴充定義零星、不常用的微操作。6.3.2微程序流的控制基本概念現行微指令:當前正在執(zhí)行的微指令?,F行微地址:現行微指令所在的控制存儲器單元的地址。后繼微指令:下一條要執(zhí)行的微指令。后繼微地址:后繼微指令所在的控制存儲器單元地址。微程序流控制:當前微指令執(zhí)行完畢后,產生后繼微指令的微地址的方法。1、增量與下址字段結合產生后繼微指令地址的方法

A)微程序入口:首條微指令,由專門硬件電路產生B)順序執(zhí)行:后繼微地址=現行微地址+1C)轉移:后繼微地址=現行微地址+轉移條件譯碼(相對轉移量)D)由操作碼產生后繼地址在圖中,μPC兼作控制存儲器的地址寄存器,輸入有四個來源。下址字段僅有兩位,其功能是選擇三個輸入源中的一個作為μPC的輸入,而微程序入口是由專門的硬件產生的,不受下址字段控制。優(yōu)點:可使微指令的下址字段很短,僅起選擇作用。缺點:微程序轉移很不靈活,使得微程序在控存中的物理空間分配相當困難。產生后繼微地址的基本方式增量與下址字段結合產生后繼微地址微指令的下址字段分成兩部分:

轉移控制字段BCF和轉移地址字段BAF,

BCF控制轉移條件,BAF控制轉移的目標地址。當條件成立時,微程序要轉移,將BAF送μPC,否則順序執(zhí)行下一條微指令(μPC+1)。執(zhí)行微程序條件轉移時,決定轉移與否的硬件條件有好幾種。由BCF定義的八個微命令見表6.2。BCF=0,順序執(zhí)行微命令,μPC+1為后繼微地址。BCF=4;測試循環(huán)微命令,假如CT≠0,表示需要繼續(xù)執(zhí)行循環(huán)微命令,將循環(huán)人口微地址從BAF送μPC。假如CT=0,表示循環(huán)結束,后繼微地址為μPC+1。本條微命令同時完成CT-1操作。BCF=5,轉微子程序微命令,把微子程序入口地址從BAF送μPC,從而實現轉移。在轉移之前要把該條微指令的下一地址(μPC+1)送入返回寄存器RR之中。BCF=6,返回微命令,把RR中的返回微地址送入μPC,從而實現從微子程序返回到原來的微程序。BCF=7,操作碼產生后繼微地址的微命令,這是取指后,按現行指令執(zhí)行的第一條微指令。圖6.18“增量與下址字段”方式的原理圖BCF=1,條件轉移微命令,當運算結果為0時,將BAF送μPC,否則μPC+l→μPCBCF=3,無條件轉移微命令,將BAF送μPC。BCF=2,條件轉移微命令,當運算結果溢出時,將BAF送μPC,否則μPC+1→μPC

BAF的長度有兩種情況:①與μPC的位數相等;可以從控制存儲器的任一單元取微指令。

特點:轉移靈活,但增加了微指令的長度.②比μPC短;考慮到轉移點在μPC附近,或者在控制存儲器的某區(qū)域內,所以由原來的μPC的若干位與BAF組合成轉移微地址。

特點:轉移地址受到限制,但可縮短微指令長度。

2.多路轉移方式

一條微指令存在多個轉移分支的情況稱為多路轉移。后繼微地址的產生條件:運算結果所置的標志位N、Z、V、C等,計數器狀態(tài),通據通路狀態(tài)。

例如:根據某些硬件狀態(tài)來決定后繼微地址。根據一種狀態(tài)(非0即1)來決定微地址可以有兩種情況,即兩路轉移;而根據兩種狀態(tài)來決定微地址可以有四種情況,即四路轉移。四路轉移涉及微地址的兩位,一般就定在微地址的最后兩位,也就是說當執(zhí)行轉移微指令時,根據條件可轉移到四個微地址中的一個,這四個微地址的高位部分相等,僅是最低兩位不同。優(yōu)點:實現多路轉移可減少微程序的長度。

3.微中斷

微中斷與程序中斷的概念相似,當某一條件滿足時,發(fā)出微中斷請求信號,CPU在完成現行指令的微程序后響應該中斷請求,進入微中斷處理程序。該微程序的入口地址(硬件產生)即為剛剛執(zhí)行的微程序的后繼微地址。

設計人員在進行微程序設計時,已安排好微中斷處理程序在控制存儲器的位置,因此該微程序段的入口地址是已知的。當CPU響應微中斷請求時,由微中斷程序的入口地址。當中斷處理完畢后,再返回到原來被中斷的程序。這也是產生后繼微地址的一種情況。微指令的格式大體上可分成兩類:水平型微指令和垂直型微指令。

1.水平型微指令特點:在一條微指令中定義并執(zhí)行多個并行操作微命令。一般格式為:

控制字段|判別測試字段|下地址字段

在實際應用中,直接控制法、字段編譯法(直接、間接編譯法)經常應用在同一條水平型微指令中。從速度來看,直接控制法最快,字段編譯法要經過譯碼,所以會增加一些延遲時間。6.3.3微指令的格式2.垂直型微指令

在微指令中設置有微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能,稱為垂直型微指令。微操作碼微操

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論