第六章控制器部件_第1頁
第六章控制器部件_第2頁
第六章控制器部件_第3頁
第六章控制器部件_第4頁
第六章控制器部件_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第六章 中央處理部件CPU主要介紹中央處理器及其控制器的設(shè)計(jì)原理、控制技術(shù)CPU的功能隨著集成電路的出現(xiàn)和集成度的提高,出現(xiàn)了微處理器,將運(yùn)算器和控制器集成在一個(gè)芯片上,通常也稱為CPU。CPU的功能:1. 指令控制 即對程序運(yùn)行的控制。程序由一個(gè)指令序列構(gòu)成,這些指令在邏輯上的相互關(guān)系不能改變。CPU必須對指令的執(zhí)行進(jìn)行控制,保證指令序列執(zhí)行結(jié)果的正確性。2. 操作控制 即對指令內(nèi)操作步驟的控制。一條指令的功能一般需要幾個(gè)步驟來實(shí)現(xiàn),CPU必須控制這些操作步驟的實(shí)施。 操作控制包括時(shí)間控制,即對各種操作進(jìn)行時(shí)間上的控制。因?yàn)楦鞣N操作信號均受時(shí)間的嚴(yán)格限制,必須控制各個(gè)信號之間的相互關(guān)系。3.

2、 數(shù)據(jù)運(yùn)算 即對數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算,這是CPU最基本的功能。主要在運(yùn)算器中完成。4. 異常處理和中斷處理 如運(yùn)算中的溢出處理、出錯情況,以及處理外設(shè)的服務(wù)請求等。此外,CPU還有存儲管理、總線管理、電源管理等擴(kuò)展功能。存儲管理:包括虛擬存儲器的管理,以及存儲器的保護(hù)等;總線管理:對CPU所連接的系統(tǒng)總線的裁決、同步等;電源管理:為了減少CPU的電源消耗以及減少CPU芯片的發(fā)熱。CPU的基本組成CPU的組成控制器:包括PC、IR、時(shí)序產(chǎn)生器、操作控制器以及 一些特殊的寄存器組成。運(yùn)算器:算術(shù)邏輯單元和各種寄存器組成。控制器的功能:協(xié)調(diào)并控制計(jì)算機(jī)的各個(gè)部件執(zhí)行程序的指令序列。即正確且自動

3、地連續(xù)執(zhí)行指令,正確地分步完成每一條指令規(guī)定的功能。進(jìn)一步說,就是向計(jì)算機(jī)各功能部件發(fā)出協(xié)調(diào)運(yùn)行每一個(gè)步驟所需要的控制信號。運(yùn)算器的功能: 接受控制器的命令進(jìn)行算術(shù)或邏輯運(yùn)算操作。CPU中的寄存器CPU中有多種寄存器。如在CISC系統(tǒng)中,一般有五種寄存器:(1)指令寄存器IR:存放當(dāng)前正在執(zhí)行的指令,為指令譯碼器提供信息;(2)程序計(jì)數(shù)器PC:存放下一條要執(zhí)行指令的地址。一般采用具有計(jì)數(shù)功能的寄存器作PC寄存器。(3)數(shù)據(jù)寄存器DR:存放操作數(shù)、運(yùn)算結(jié)果和中間結(jié)果,或者訪存操作的數(shù)據(jù)。 存放中間結(jié)果的數(shù)據(jù)寄存器,即可放ALU的運(yùn)算結(jié)果,又可向ALU提供操作數(shù),與ALU一起可以進(jìn)行數(shù)據(jù)累加,因此

4、又可稱為累加器。如果多個(gè)數(shù)據(jù)寄存器都具有累加器功能時(shí),就稱為通用寄存器。(4)地址寄存器AR:專門存放操作數(shù)的地址。 通用寄存器即可存放操作數(shù),又可存放操作數(shù)地址,因此許多設(shè)置有通用寄存器的計(jì)算機(jī)都不設(shè)置專門的地址寄存器。(5)狀態(tài)寄存器SR:存放運(yùn)算狀態(tài)以及處理器的狀態(tài),這些信息是控制程序的條件。RISC處理器中一般不設(shè)置專門的SR,狀態(tài)都存放在通用寄存器中??刂破鞣诸悾何⒊绦蚩刂破骱陀膊季€控制器數(shù)據(jù)總線數(shù)據(jù)總線時(shí)序控制時(shí)序控制信號信號形成部件形成部件譯碼譯碼IRPC輸出輸出設(shè)備設(shè)備輸入輸入設(shè)備設(shè)備主主存存運(yùn)算器運(yùn)算器部件部件時(shí)序時(shí)序啟停啟停地址寄存器地址寄存器地址總線地址總線控制總線控制總

5、線.控制條件控制條件控制器信號控制器信號主振主振硬布線硬布線方案的方案的控制器控制器6.1 計(jì)算機(jī)的硬件系統(tǒng)1. Intel 80386微機(jī)系統(tǒng)時(shí)鐘發(fā)生器80387協(xié)處理器80386微處理器82258DMA控制器總線控制邏輯總線控制邏輯READY邏輯8259A中斷控制器存儲器輸入 輸出設(shè)備中斷設(shè)備總線resetCLKCLK22. 80386結(jié)構(gòu)及外部連線Intel 80386包括指令部件、執(zhí)行部件和存儲管理部件等。指令部件完成取指及指令譯碼功能,并產(chǎn)生控制信號;執(zhí)行部件包括ALU、乘法部件、寄存器組等;存儲管理部件用來確定存儲器地址。80386CLK2D0D31數(shù)據(jù)總線地址總線A2A31BE3

6、#BE2#BE1#BE0#32位地址W/R#D/C#M/IO#LOCK#總線周期定義ADS#NA#BS16#READY#總線控制HOLDHLDA總線仲裁INTRNMIRESET中斷VCCGND電源連接PEREQBUSY#ERROR#協(xié)處理器信號6.2 控制器的組成(1)取指令 根據(jù)PC給出的指令地址,從內(nèi)存中取得指令,放到IR中。(2)分析指令(譯碼) 對當(dāng)前指令進(jìn)行分析譯碼,產(chǎn)生相應(yīng)的操作控制命令。如 果操作數(shù)在存儲器中,還需要形成操作數(shù)地址。(3)執(zhí)行指令 根據(jù)譯碼時(shí)產(chǎn)生的操作命令和操作數(shù)地址,形成相應(yīng)的 操作控制信號序列,通過CPU及輸入輸出設(shè)備的執(zhí)行,實(shí) 現(xiàn)指令的功能,并產(chǎn)生下一條指令

7、的地址。(4)控制程序和數(shù)據(jù)輸入與結(jié)果輸出 在適當(dāng)?shù)臅r(shí)候向輸入輸出設(shè)備發(fā)出一些相應(yīng)的命令完成 I/O功能。6.2.1 控制器的功能 協(xié)調(diào)并控制計(jì)算機(jī)的各個(gè)部件執(zhí)行程序的指令序列。(5)對異常和某些請求的處理 當(dāng)機(jī)器出現(xiàn)某些異常情況,比如算術(shù)運(yùn)算的溢出、數(shù)據(jù)傳送的奇偶錯等;或者出現(xiàn)某種外來請求,比如輔存與主存之間要傳送數(shù)據(jù)、I/O設(shè)備與存儲器之間要傳送數(shù)據(jù)等,由這些設(shè)備或部件發(fā)出中斷請求信號或者DMA請求信號。 中斷請求信號 CPU執(zhí)行完當(dāng)前指令后,響應(yīng)該請求,中止當(dāng)前執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷處理程序,處理完畢后,再返回原程序繼續(xù)運(yùn)行。 DMA信號 等CPU完成當(dāng)前機(jī)器周期操作后,暫停工作,讓出

8、總線給I/O設(shè)備,在完成I/O設(shè)備與存儲器之間的數(shù)據(jù)傳送操作后,CPU從中止的機(jī)器周期開始繼續(xù)執(zhí)行指令。在此期間,不允許改變CPU中任一寄存器的狀態(tài)。6.2.2 控制器的組成根據(jù)控制器的功能,得出其基本組成如下:1. 程序計(jì)數(shù)器PC 即指令地址寄存器,存放當(dāng)前正在執(zhí)行的指令地址。(某些計(jì)算機(jī)則用來存放即將要執(zhí)行的下一條指令地址) 有兩種途徑可以形成指令地址: (1)順序執(zhí)行的情況,通過程序計(jì)數(shù)器加“1”形成下一條指令地址(假如存儲器按字節(jié)編址,而指令長度為4個(gè)字節(jié),則加“4”)。 (2)非順序執(zhí)行時(shí),由轉(zhuǎn)移指令形成轉(zhuǎn)移地址送往PC,作為下一條指令的地址。2. 指令寄存器IR 存放當(dāng)前正在執(zhí)行的

9、指令。3. 指令譯碼器 對指令寄存器中的操作碼進(jìn)行分析解析,產(chǎn)生相應(yīng)的控制信號。4. 脈沖源及啟停線路 脈沖源產(chǎn)生一定頻率的脈沖信號作為整個(gè)機(jī)器的時(shí)鐘脈沖,是機(jī)器周期和工作脈沖的基準(zhǔn)信號。 啟停線路保證可靠地送出或封鎖時(shí)鐘脈沖,控制時(shí)序信號的發(fā)生或者停止,從而啟動機(jī)器或使之停機(jī)。5. 時(shí)序控制信號形成部件 當(dāng)機(jī)器啟動后,在CLK時(shí)鐘作用下,根據(jù)當(dāng)前正在執(zhí)行的指令的需要,產(chǎn)生相應(yīng)的時(shí)序控制信號,并根據(jù)被控部件的反饋信號調(diào)整時(shí)序控制信號。運(yùn)算器存儲器I / O時(shí)序控制信號形成部件脈沖源啟停線路操作碼 地址碼指令譯碼器程序計(jì)數(shù)器狀態(tài)寄存器數(shù)據(jù)總線DB地址總線AB控制總線CB數(shù)據(jù)操作數(shù)地址+1指令指令

10、寄存器IRresetCLKPC轉(zhuǎn)移地址地址碼指令地址6.2.3 指令執(zhí)行過程指令周期:從一條指令的啟動到下一條指令啟動的間隔時(shí)間。機(jī)器周期:指令執(zhí)行中每一步操作所需的時(shí)間。時(shí)鐘周期:一般CPU采用一個(gè)統(tǒng)一的時(shí)鐘信號,這個(gè)時(shí)鐘信號 的周期稱為時(shí)鐘周期。指令的執(zhí)行過程一般包含若干個(gè)機(jī)器周期,每個(gè)機(jī)器周期完成一個(gè)基本操作步驟。一個(gè)機(jī)器周期可以由一個(gè)或多個(gè)時(shí)鐘周期構(gòu)成。周期:是指令運(yùn)行過程中相對獨(dú)立的階段。一般把指令的運(yùn)行過程分為取指令、讀操作數(shù)和執(zhí)行(包括寫結(jié)果)三個(gè)基本工作周期。(當(dāng)然,不是所有的指令都必須包含這三個(gè)基本周期)例:加法指令執(zhí)行過程加法指令功能:將寄存器(rs)中的一個(gè)數(shù)與存儲器中的

11、一個(gè)數(shù)(其地址為(rs1)+disp)相加,結(jié)果放在寄存器rd中。(rs和rd為同一個(gè)寄存器)操作碼 rs,rd rs1 imm或disp指令格式(1)從存儲器中取指令,送入IR,并對操作碼進(jìn)行譯碼分析; 同時(shí)PC+1,為下一條指令做好準(zhǔn)備。 控制信號:PC AB, ADS,W/R = 0, M/IO = 1, DB IR, PC+1(2)計(jì)算數(shù)據(jù)地址,將計(jì)算得到的有效地址送入AR。 控制信號:rs1 GR, (rs1) ALU, disp ALU, “+” ALU, ALU AR(3)到存儲器取數(shù) 控制信號:AR AB, ADS, W/R = 0, M/IO = 1, DB DR(4)進(jìn)行加

12、法運(yùn)算,結(jié)果送rd寄存器,并根據(jù)運(yùn)算結(jié)果置狀 態(tài)位N、Z、V、C。 控制信號:rs GR, (rs) ALU, DR ALU, “+” ALU, rd GR, ALU rd, 置N、Z、V、C例:條件轉(zhuǎn)移指令執(zhí)行過程指令功能:根據(jù)N、Z、V、C的狀態(tài),決定是否轉(zhuǎn)移。如果轉(zhuǎn)移條件成立,則轉(zhuǎn)移到本條指令所指定的地址,否則順序執(zhí)行下一條指令。(1)從存儲器中取指令,送入指令寄存器,并進(jìn)行操作碼譯碼。 控制信號:PC AB, W/R = 0, M/IO = 1, DB IR, PC+1(2)如果條件成立,則根據(jù)指令給出的尋址方式,計(jì)算有效地 址。比如采用相對尋址,則轉(zhuǎn)移地址 = PC + disp(此

13、處PC 值應(yīng)該先還原) 控制信號:PC ALU, disp ALU, “+” ALU, ALU AR ALU PC6.3 微程序控制器的基本工作原理一條指令的功能是通過一定次序執(zhí)行一系列的基本操作完成的。一條指令的功能是通過一定次序執(zhí)行一系列的基本操作完成的。 這些操作稱為這些操作稱為微操作(微命令)。微操作(微命令)。微指令:微指令:同時(shí)發(fā)出的控制信號所執(zhí)行的一組微操作。同時(shí)發(fā)出的控制信號所執(zhí)行的一組微操作。 將一條指令分成若干條微指令,按次序執(zhí)行這些微指令,就將一條指令分成若干條微指令,按次序執(zhí)行這些微指令,就 可以實(shí)現(xiàn)指令的功能??梢詫?shí)現(xiàn)指令的功能。微程序:微程序:用多條用多條微指令微指

14、令解釋每條機(jī)器指令的整個(gè)執(zhí)行過程,這解釋每條機(jī)器指令的整個(gè)執(zhí)行過程,這幾條幾條微指令微指令構(gòu)成解釋該條機(jī)器指令的一個(gè)構(gòu)成解釋該條機(jī)器指令的一個(gè)微程序(或稱為微程微程序(或稱為微程序段)。序段)??刂拼鎯ζ鳎嚎刂拼鎯ζ鳎罕4嫖⒊绦虻拇鎯ζ?。微程序控制器的微指令寄保存微程序的存儲器。微程序控制器的微指令寄存器接收每次讀出的一條微指令。存器接收每次讀出的一條微指令。微指令地址(下一條要執(zhí)行的微指令地址稱為下地址)微指令地址(下一條要執(zhí)行的微指令地址稱為下地址)執(zhí)行一條微指令所用的時(shí)間被稱為一個(gè)執(zhí)行一條微指令所用的時(shí)間被稱為一個(gè)微周期微周期。6.3.2 實(shí)現(xiàn)微程序控制的基本原理1. 控制信號 表6.1

15、 “加法” 指令:它由四條微指令解釋執(zhí)行 (每條微指令所需的控制信號 P174)(1)取指微指令(2)計(jì)算地址微指令(3)取數(shù)微指令(4)加法運(yùn)算和送結(jié)果微指令 1 2 23 35 微指令的格式和內(nèi)容控制字段下地址字段PC ABALU PCW / R實(shí)際上,計(jì)算機(jī)的控制信號數(shù)量要遠(yuǎn)大于23個(gè),而且控制存儲器的容量一般也大于4K。通常,微指令字的長度在100位以上??刂拼鎯ζ鞯娜萘咳Q于實(shí)現(xiàn)指令系統(tǒng)所需的微程序的長度實(shí)現(xiàn)指令系統(tǒng)所需的微程序的長度。當(dāng)前正在執(zhí)行的微指令從控制存儲器中取出后放在微指令寄存器中,該寄存器的各個(gè)控制位的輸出直接連到各個(gè)控制門上。得到下地址的方法 由指令操作碼譯碼得到 微

16、指令順序執(zhí)行 微指令必轉(zhuǎn)或條件轉(zhuǎn)移 多路微地址轉(zhuǎn)移 微子程序調(diào)用和返回 按次數(shù)循環(huán)一段微程序 其他:如特定入口微地址用流程圖來表示微程序取指PC+1計(jì)算地址 1000計(jì)算地址 1005取數(shù) 1006減法運(yùn)算 1000計(jì)算地址 1002取數(shù) 1003加法運(yùn)算 1000加法指令 1001減法指令 1004轉(zhuǎn)移指令 1100100010021003100510062. 微程序控制器操作碼 地址碼 指令譯碼控制存儲器控制字段 下址指令寄存器 IR形成本條指令的微程序入口地址微指令寄存器 基本工作原理:1.指令取入IR之后,根據(jù)操作碼進(jìn)行譯碼,得到相應(yīng)指令的第一條微指令的地址。2.然后,由微指令的下址字

17、段給出下一條微指令的地址。指令譯碼器:可用只讀存儲器組成。將操作碼作為輸入地址,而該單元的內(nèi)容是相應(yīng)的微指令在控制存儲器中的地址。根據(jù)此地址從控制存儲器中取出微指令,放入微指令寄存器中??刂谱侄胃魑坏妮敵?,通過連線直接和受控制的門相連,于是提供了各種控制信號。微程序控制器工作流程CPU開始執(zhí)行取指令微程序的入口地址 uAR讀微指令 uIR產(chǎn)生下一條微指令地址 uIR(uPC) 取出指令 IR譯碼,形成本指令的微程序入口地址 uIR(uPC)執(zhí)行微程序本微程序執(zhí)行完了嗎?取指令微程序執(zhí)行完了嗎?是否是否3.時(shí)序信號及工作脈沖的形成 CLK2經(jīng)過二分頻得到CLK,再將CLK分頻得到T1,T1反相得

18、到T2。 一般利用觸發(fā)器進(jìn)行分頻。 假設(shè)一個(gè)機(jī)器周期由T1和T2組成,在T2的末尾需要產(chǎn)生一個(gè)工作脈沖CP來保存計(jì)算結(jié)果或接受傳送的數(shù)據(jù)、指令等。CP = T2 CLK CLK2CP1 = T1 CLK CLK2機(jī)器周期的確定一條微指令在一個(gè)機(jī)器周期內(nèi)完成。而微指令由若干個(gè)微操作組成,不同的微指令要完成得微操作是不同的。所以,機(jī)器周期應(yīng)該大于或等于執(zhí)行時(shí)間最長的微操作時(shí)間。微程序控制器的主要特點(diǎn)及優(yōu)缺點(diǎn)(1)微程序定義了計(jì)算機(jī)的指令系統(tǒng),因此可以借助改變微程序存儲器的內(nèi)容來改變指令系統(tǒng),使得指令系統(tǒng)的設(shè)計(jì)、修改以及擴(kuò)充都成為不太困難的事情。這為計(jì)算機(jī)設(shè)計(jì)者及用戶提供了相當(dāng)大的靈活性。(一般而言

19、,并不需要改變微程序存儲器的內(nèi)容,所以通常用只讀存儲器ROM充當(dāng)微程序存儲器)(2)任何機(jī)器指令的執(zhí)行,都將多次訪問到控制存儲器,因此它的速度在決定計(jì)算機(jī)總的速度時(shí)起主要的作用。優(yōu)點(diǎn):與組合邏輯的控制方法相比,大大減少了控制器的復(fù)雜性和非標(biāo)準(zhǔn)化程度,從而把硬件的用量限制在很小范圍內(nèi)。缺點(diǎn):比硬布線控制器速度慢。6.4 微程序設(shè)計(jì)技術(shù)6.4.1 微指令的編譯法微指令的編譯法 1.直接控制法直接控制法直接用微指令字的一位作一個(gè)控制信號,簡單且速度快,但會使微直接用微指令字的一位作一個(gè)控制信號,簡單且速度快,但會使微指令字變得很長。指令字變得很長。 2.字段直接編譯法字段直接編譯法 把互斥的微命令分

20、在一組加以編碼,經(jīng)譯碼器給出命令,把互斥的微命令分在一組加以編碼,經(jīng)譯碼器給出命令, 速度會稍慢,但可大大減短微指令字長度,確?;コ?。速度會稍慢,但可大大減短微指令字長度,確?;コ狻?3.字段間接編譯法字段間接編譯法 是對直接譯碼的的一種改進(jìn),可進(jìn)一步縮短微指令字長度,即一個(gè)是對直接譯碼的的一種改進(jìn),可進(jìn)一步縮短微指令字長度,即一個(gè)字段的某些微命令還受另一字段的制約。字段的某些微命令還受另一字段的制約。 4.常數(shù)源字段常數(shù)源字段E 微指令中分配幾位,用于給出特定用途的有關(guān)數(shù)值微指令中分配幾位,用于給出特定用途的有關(guān)數(shù)值。設(shè)計(jì)微指令結(jié)構(gòu)的目標(biāo)(1)縮短微指令的長度(2)減小控制存儲器的容量(3)

21、提高微程序的執(zhí)行速度(4)有利于微指令的修改(5)提高微程序設(shè)計(jì)的靈活性6.4.2 微程序流的控制現(xiàn)行微指令:正在執(zhí)行的微指令。現(xiàn)行微地址:現(xiàn)行微指令所在的控制存儲器單元的地址。后繼微指令:下一條要執(zhí)行的微指令。后繼微地址:后繼微指令所在的控制存儲器單元的地址。微程序流的控制:當(dāng)前微指令執(zhí)行完后,怎樣控制產(chǎn)生后繼 微指令的地址。產(chǎn)生后繼微地址的幾種方法:(1)以增量方式產(chǎn)生后繼微地址 順序執(zhí)行微指令時(shí), 后繼微地址 = 現(xiàn)行微地址 + 一個(gè)增量(通常為1) 非順序執(zhí)行(遇到轉(zhuǎn)移類微指令) 由uPC與形成轉(zhuǎn)移微地址的邏輯電路組合形成后繼地址(2)增量與下地址字段結(jié)合產(chǎn)生后繼微地址將微指令的下址字

22、段分成兩部分: 轉(zhuǎn)移控制字段BCF 和 轉(zhuǎn)移地址字段BAF當(dāng)微程序?qū)崿F(xiàn)轉(zhuǎn)移時(shí),將BAF送uPC,否則順序執(zhí)行下一條微指令( uPC+1)。假定有8種轉(zhuǎn)移情況,定義了8個(gè)微命令,BCF取3位。P186表6.2BAF的長度有兩種情況:(1)與uPC位數(shù)相等,則可以從控制存儲器的任一單元中取微指令。(2)比uPC短;由原來的uPC的若干位與BAF組合形成轉(zhuǎn)移微地址。(3)多路轉(zhuǎn)移方式一條微指令存在多個(gè)轉(zhuǎn)移分支的情況,稱為多路轉(zhuǎn)移。在若干個(gè)微地址中選擇一個(gè),作為后繼微地址。典型的例子:根據(jù)操作碼產(chǎn)生不同的后繼微地址。執(zhí)行過程中,有時(shí)要根據(jù)某些硬件狀態(tài)來決定后繼微地址。 根據(jù)一種狀態(tài)(只涉及微地址中的一

23、位)可有兩個(gè)轉(zhuǎn)移方向,即兩路轉(zhuǎn)移; 根據(jù)兩種狀態(tài)(涉及了微地址中的兩位)可有四個(gè)轉(zhuǎn)移方向,即四路轉(zhuǎn)移;(4)微中斷在微程序執(zhí)行過程中,一旦出現(xiàn)微中斷請求信號,在完成當(dāng)前指令的微程序后響應(yīng)該微中斷請求。當(dāng)CPU響應(yīng)微中斷請求時(shí),由硬件產(chǎn)生微中斷程序的入口地址。6.4.3 微指令格式微指令格式大體上可分為兩類: 水平型微指令和垂直型微指令。決定微指令格式的主要因素:微指令的編碼譯碼方法1. 水平型微指令基本特點(diǎn):一條微指令中定義并執(zhí)行多個(gè)并行操作微命令。典型例子:采用直接控制法進(jìn)行編碼的微指令實(shí)際應(yīng)用中,直接控制法、字段編譯法(直接、間接)經(jīng)常用在同一條水平型微指令中。全水平型譯碼控制方式的水平型

24、混合方式水平型2. 垂直型微指令在微指令中設(shè)置有微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能,稱為垂直型微指令。特點(diǎn): 格式與指令相似; 不強(qiáng)調(diào)實(shí)現(xiàn)微指令的并行控制功能,通常一條微指令只要求能控制實(shí)現(xiàn)一兩種操作。假定微指令字長16位,微操作碼3位,則有8條微指令。格式見P1923. 水平型和垂直型微指令的比較(1)水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng);垂直型微指令則相對差一些。(2)水平型微指令執(zhí)行一條指令的時(shí)間短;垂直型微指令執(zhí)行時(shí)間則長。(3)由水平型微指令解釋的微程序,具有微指令字比較長,但微程序短的特點(diǎn);垂直型微指令則相反,微指令字較短而微程序長。(4)水平型微

25、指令用戶難以掌握,而垂直型微指令與指令比較相似,掌握起來相對容易一些。6.4.4 微程序控制存儲器和動態(tài)微程序設(shè)計(jì)1. 微程序控制存儲器 一般由只讀存儲器ROM構(gòu)成,因?yàn)橹噶钕到y(tǒng)一般來說是相對固定的。 也可以用RAM做控制存儲器。但是由于RAM是易失性存儲器,所以開機(jī)后首先要將外存上的微程序調(diào)入控制存儲器,然后才能執(zhí)行程序。 優(yōu)點(diǎn):可以修改微程序,即可以修改指令系統(tǒng)。 可以考慮部分控存用ROM構(gòu)成,實(shí)現(xiàn)固定的指令系統(tǒng); 部分控存由RAM構(gòu)成,用于擴(kuò)充或修改某些指令。2. 動態(tài)微程序設(shè)計(jì)在一臺微程序控制的計(jì)算機(jī)中,假如能根據(jù)用戶的要求改變微程序,則稱這臺計(jì)算機(jī)有動態(tài)微程序設(shè)計(jì)功能。出發(fā)點(diǎn):為了使

26、計(jì)算機(jī)更加靈活、更加有效地適應(yīng)于不同的應(yīng)用目標(biāo)。動態(tài)微程序設(shè)計(jì)需要可寫控制存儲器的支持。用于動態(tài)微程序的控制存儲器稱為可寫控制存儲器(WCS)或用戶控制存儲器(UCS)。3. 控制存儲器的操作執(zhí)行一條微指令的過程,基本上分為兩步:取微指令、執(zhí)行微指令的各個(gè)微操作。這兩個(gè)步驟,在時(shí)間上,可以采用串行或者并行方式。4. 毫微程序設(shè)計(jì)毫微程序可以看作是用來解釋微程序的一種微程序。 因此,毫微指令可以看作是解釋微指令的微指令。采用毫微程序設(shè)計(jì)的主要目的:減少控制存儲器的容量。毫微程序設(shè)計(jì)思想:采用二級微程序設(shè)計(jì)方法。 第一級采用垂直微程序,第二級采用水平微程序。 每一級都有一個(gè)控制存儲器,分別放置垂直

27、型微指令和水平型毫微指令。第一級垂直微程序,是根據(jù)實(shí)現(xiàn)指令系統(tǒng)的需要而編制的,有嚴(yán)格的順序結(jié)構(gòu),由它確定后繼微指令的地址。第二級水平微指令,是由第一級調(diào)用的,具有并行操作控制的能力,但不包含后繼微指令地址的信息。6.4.5 微程序設(shè)計(jì)語言設(shè)計(jì)者或其他用戶用來編制微程序的語言,叫做微程序設(shè)計(jì)語言。用微程序設(shè)計(jì)語言編制的程序,叫做源微程序。源微程序不能直接裝入控制存儲器,要將它轉(zhuǎn)換成二進(jìn)制代碼后,才能裝入控制存儲器中。6.5 硬布線控制的計(jì)算機(jī)“時(shí)序控制信號形成部件”產(chǎn)生控制計(jì)算機(jī)各部件的控制信號。此部件的組成,有兩種方式: 一種,是微程序控制方式。 另一種,是硬布線控制方式,又稱為組合邏輯控制方

28、式。 由指令的操作碼直接控制并產(chǎn)生控制信號由指令的操作碼直接控制并產(chǎn)生控制信號6.5.1 時(shí)序與節(jié)拍指令的實(shí)現(xiàn),大致分為四步:取指、計(jì)算地址、取數(shù)、執(zhí)行。一般,每一步由一個(gè)機(jī)器周期實(shí)現(xiàn)??梢钥紤]用兩位計(jì)數(shù)器的譯碼輸出兩位計(jì)數(shù)器的譯碼輸出表示當(dāng)前所處的機(jī)器周期;或者四位觸發(fā)器分別表示四個(gè)周期。計(jì)數(shù)器狀態(tài)變化A指令B指令 cyA cyB cyA cyB cyA cyB cyA cyB 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 cyA = cyA cyB + cyA cyBcyB = cyA cyB + cyA cyB = cyB

29、cyA = cyA cyB + cyA cyB = cyBcyB = cyA cyBA指令:B指令:6.5.2 操作控制信號的產(chǎn)生1. 操作碼譯碼器 輸入為操作碼(n位),輸出有 2n 根線。 每根輸出線表示一條指令。 有且僅有一根是高電位,其余均為低電位(或者相反)。譯碼器的輸出可以反映當(dāng)前正在執(zhí)行的指令。由譯碼器的輸出和機(jī)器周期狀態(tài)cy1cy4作為輸入,使用邏輯電路產(chǎn)生操作控制信號。 P2012. 操作控制信號的產(chǎn)生(1) 取指周期cy1所產(chǎn)生的信號,對所有指令都是相同的,與當(dāng)前執(zhí)行的指令無關(guān)。(2) 通常,一個(gè)控制信號在若干條指令的某些周期中會用到,為此,要把它們組合起來。 例如: “+

30、”命令 在加法指令的cy2、cy4時(shí)需要; 在減法指令的cy2時(shí)需要; 在轉(zhuǎn)移指令的cy2時(shí)需要; “+” = 加法指令(cy2+cy4) + 減法指令cy2 +轉(zhuǎn)移指令cy2 + 假設(shè)操作碼為7位(OP0OP6),若加法指令的操作碼為0001100,則 加法指令 = OP0 OP1 OP2 OP3 OP4 OP5 OP6(3) 同種類型的指令所需的控制信號大部分相同,僅有少量區(qū)別;不同類型的指令,控制信號差別較大。例如:加法指令和減法指令 除了一個(gè)信號不同(“+”命令或“-”命令),其他信號 都相同所有算術(shù)邏輯運(yùn)算指令,只在ALU的操作命令以及是否置狀態(tài)位上有差別。(4) 確定指令操作碼時(shí),

31、為了便于邏輯表達(dá)式的化簡以減少邏輯電路的數(shù)量,往往給與特別關(guān)注。例如:有16條算術(shù)邏輯運(yùn)算指令,可以設(shè)置這些指令的前三位(OP0OP2)相同,比如001,而后四位分別表示這16條指令。若命令A(yù)是所有這16條指令在cy2周期都需產(chǎn)生的,則A = 加法指令cy2 + 減法指令cy2 + 邏輯加指令cy2 + = (加法指令+減法指令+邏輯加指令+) cy2 = OP0 OP1 OP2 cy26.5.3 控制器的組成1. 程序計(jì)數(shù)器和中斷控制邏輯程序計(jì)數(shù)器的輸入來源: reset信號(開機(jī)后將PC置初始地址); PC+1,形成下一指令的地址(順序執(zhí)行情況); 由ALU送來的轉(zhuǎn)移地址(程序轉(zhuǎn)移時(shí));

32、由中斷控制邏輯部件中斷控制邏輯部件產(chǎn)生的中斷入口地址(當(dāng)有外來中斷 請求,而CPU響應(yīng)該中斷時(shí));中斷入口地址一個(gè)多個(gè) 向量中斷 響應(yīng)時(shí)間快軟中斷(陷阱指令Trap):中斷入口地址由指令的地址碼指令的地址碼部分給出。2. 譯碼器所以,譯碼器和硬布線邏輯的分界線往往是模糊的。一般意義上講,譯碼器的每條輸出線,代表一條指令。然而,同類指令的控制信號大部分相同,所以在操作碼的設(shè)計(jì)上,給于特別關(guān)注。因此,在譯碼器的輸出信號中,還可能增加有關(guān)指令類型的信號。3. 硬布線邏輯的實(shí)現(xiàn)途徑1)邏輯表達(dá)式較簡單時(shí),用兩級門電路組成;2)實(shí)際邏輯復(fù)雜時(shí),將若干個(gè)電路串聯(lián)、并聯(lián)后組合使用3)半定制電路門陣列實(shí)現(xiàn)4)

33、全定制電路實(shí)現(xiàn)(集成在VLSI的CPU芯片中)6.5.4 硬布線控制邏輯設(shè)計(jì)中的若干問題1. 指令操作碼的代碼分配指令操作碼的長度和位置不固定,增加了控制邏輯部件復(fù)雜性和凌亂性。合理分配指令操作碼,能節(jié)省控制部件的電路,減少延遲時(shí)間 2. 確定機(jī)器周期、節(jié)拍與主頻基本取決于指令的功能和器件的速度。一般可先考慮典型指令的執(zhí)行步驟和每一步驟時(shí)間。應(yīng)該保證絕大多數(shù)指令的操作能在一個(gè)機(jī)器周期內(nèi)完成。一般來說,機(jī)器周期是根據(jù)存儲器的速度以及執(zhí)行周期的基本時(shí)間來確定的。3. 根據(jù)指令的功能,確定每條指令所需的機(jī)器周期數(shù)以及每個(gè)周期所完成的操作 對于機(jī)器周期cy1cy4的處理,實(shí)際情況很復(fù)雜,除了某些指令不

34、出現(xiàn)某些周期外,有些指令又要將某些周期延長。 在確定每條指令每一機(jī)器周期完成的操作時(shí),也就得出了相應(yīng)的操作控制命令 操作控制命令 = 指令名 * 機(jī)器周期 * 節(jié)拍 * 條件例如:采用“加減交替法”進(jìn)行除法運(yùn)算,根據(jù)上一次執(zhí)行結(jié)果的符號,決定本次執(zhí)行加法還是減法 “+”操作命令 = 除法指令 * cy4 * N “ -”操作命令 = 除法指令 * cy4 * N 4. 綜合所有指令的每一個(gè)操作命令先寫出邏輯表達(dá)式,然后化簡“+” = 加法指令(cy2+cy4) + 減法指令cy2 + 轉(zhuǎn)移指令cy2 + 乘法指令(cy2+cy4 y31) + 除法指令(cy2+cy4N) + 6.5.5 硬布

35、線控制與微程序控制的比較1. 實(shí)現(xiàn) 微程序控制器的控制功能,是在控制存儲器和微指令寄存器 的直接控制下實(shí)現(xiàn)的。 硬布線控制,則由邏輯門組合實(shí)現(xiàn)。2. 性能 微程序控制的速度比硬布線控制的速度低。6.6 控制器的控制方式控制器控制一條指令運(yùn)行的過程,是依次執(zhí)行一個(gè)確定的微操作序列的過程??刂破鞯目刂品绞剑褪侵溉绾涡纬刹煌⒉僮餍蛄械臅r(shí)序控制信號。常用的有:同步控制方式、異步控制方式、聯(lián)合控制方式。1. 同步控制方式 在程序運(yùn)行時(shí),任何指令的執(zhí)行或者指令中每個(gè)微操作的執(zhí)行都受事先確定的時(shí)序信號所控制。每個(gè)時(shí)序信號的結(jié)束意味著一個(gè)微操作或者一條指令已經(jīng)完成。在任何情況下,一條已定的指令在執(zhí)行時(shí)所需

36、的機(jī)器周期數(shù)和節(jié)拍數(shù)都固定不變,則為同步控制方式。 一條機(jī)器指令由確定的機(jī)器周期組成,每個(gè)機(jī)器周期又分為兩個(gè)節(jié)拍。同步控制方式可以選取的方案(1) 采用完全統(tǒng)一的機(jī)器周期(或節(jié)拍)執(zhí)行各種不同的指令。 即以最繁的微操作為標(biāo)準(zhǔn),采取統(tǒng)一的、具有相同時(shí)間間隔和相同數(shù)目的節(jié)拍作為機(jī)器周期。(2) 采用不同節(jié)拍的機(jī)器周期,以解決微操作執(zhí)行所需時(shí)間不統(tǒng)一的問題。 通常把大多數(shù)微操作安排在一個(gè)較短時(shí)間內(nèi)完成,而對某些較繁的微操作,則采取延長機(jī)器周期或增加節(jié)拍的辦法解決。(3) 采用中央控制和局部控制相結(jié)合的方法。 將機(jī)器的大部分指令安排在一個(gè)統(tǒng)一的較短的機(jī)器周期內(nèi)完成,稱為中央控制。 將少量操作復(fù)雜的指令

37、的某些操作另行處理,稱為局部控制。例如:乘法操作、除法操作、浮點(diǎn)運(yùn)算等。2. 異步控制方式當(dāng)控制器發(fā)出進(jìn)行某個(gè)微操作的控制信號后,等待執(zhí)行部件完成該操作后發(fā)回的“回答”信號或者“結(jié)束”信號,再開始新的微操作。這種方式,稱為異步控制方式。 每條指令、每個(gè)微操作需要多少時(shí)間,就占用多少時(shí)間。 微操作序列沒有固定的周期節(jié)拍和嚴(yán)格的時(shí)鐘同步。3. 聯(lián)合控制方式同步控制和異步控制相結(jié)合的方式。大部分微操作安排在一個(gè)固定的機(jī)器周期內(nèi),并在同步時(shí)序信號控制下進(jìn)行;而對那些時(shí)間難以確定的微操作,則以執(zhí)行部件送回的“回答”信號作為本次微操作的結(jié)束。4. 人工控制為了調(diào)機(jī)和軟件開發(fā)的需要,在計(jì)算機(jī)面板或內(nèi)部往往設(shè)

38、置一些開關(guān)或按鍵,以進(jìn)行人工控制。最常見的有:reset鍵、連續(xù)執(zhí)行或單條執(zhí)行的轉(zhuǎn)換開關(guān)、符合停機(jī)開關(guān)等。(1) reset按鍵 產(chǎn)生reset信號,使計(jì)算機(jī)處于初始狀態(tài)。 當(dāng)計(jì)算機(jī)處于死鎖狀態(tài)或無法繼續(xù)運(yùn)行時(shí),可按此鍵。(2) 連續(xù)或單條轉(zhuǎn)換開關(guān) 連續(xù)工作:計(jì)算機(jī)按正常速度執(zhí)行程序; 單條執(zhí)行:每執(zhí)行一條指令后計(jì)算機(jī)自動停機(jī);(3) 符合停機(jī) 在機(jī)器內(nèi)部設(shè)置一組開關(guān),當(dāng)程序運(yùn)行時(shí): 假如訪問存儲器的地址和設(shè)置開關(guān)值相等,機(jī)器停止運(yùn)行-地址符合停機(jī) 假如指令的地址和設(shè)置開關(guān)值相等,機(jī)器停止運(yùn)行-該地址稱為程序斷點(diǎn)6.7 流水線工作原理 機(jī)器的各部分,在某些周期內(nèi)進(jìn)行操作,而在某些周期則是空閑的

39、。 如果控制器調(diào)度恰當(dāng),讓各個(gè)部件緊張工作,就可以提高機(jī)器的運(yùn)行速度。1. 流水線基本工作原理順序執(zhí)行程序時(shí),執(zhí)行過程如下(設(shè)四個(gè)周期完成一條指令):取指1計(jì)算地址1取數(shù)1計(jì)算存結(jié)果1取指2計(jì)算地址2或者,在某些計(jì)算機(jī)中,CPU分為指令部件I和執(zhí)行部件E,分別完成取指譯碼和運(yùn)算存結(jié)果操作。則執(zhí)行過程如下:I1E1I2E2把若干條指令在時(shí)間上重疊起來執(zhí)行,可以大幅度提高程序的執(zhí)行效率。取指計(jì)算地址取數(shù)運(yùn)算取指計(jì)算地址取數(shù)運(yùn)算取指計(jì)算地址取數(shù)運(yùn)算取指計(jì)算地址取數(shù)運(yùn)算I1I2I3I4I1E1I2E2I3E3計(jì)算機(jī)的流水工作方式,就是將一個(gè)計(jì)算任務(wù)細(xì)分為若干個(gè)子任務(wù),每個(gè)子任務(wù)由專門的部件處理。流水線

40、由一系列串聯(lián)的功能部件組成,各個(gè)功能部件之間設(shè)有緩沖寄存器,以暫時(shí)保存上一功能部件對子任務(wù)處理的結(jié)果。由于流水線相鄰兩段在執(zhí)行不同的指令(或操作),因此必須在相鄰兩段之間設(shè)置鎖存器或寄存器,以保證在一個(gè)周期內(nèi)流水線的輸入信號不變。 - 流水寄存器流水線在啟動執(zhí)行時(shí)有一個(gè)填充的過程,而在結(jié)束執(zhí)行時(shí)有一個(gè)排空過程。這兩個(gè)過程中,流水線的部分流水段沒有被利用;而在這兩個(gè)過程之間,則可以連續(xù)不斷的執(zhí)行指令,達(dá)到流水線裝滿的穩(wěn)定狀態(tài),此時(shí)處理速率最高。IFIdExMWIFIdExMWIFIdExMWIFIdExMW在有些計(jì)算機(jī)系統(tǒng)中,把流水線分為五個(gè)階段:2. 流水線的相關(guān)問題指令流水線的一個(gè)特點(diǎn)是,流

41、水線中的各條指令之間存在一些依賴性,或稱相關(guān)性,使指令的執(zhí)行受到影響。這些相關(guān)性分三類:數(shù)據(jù)相關(guān)、控制相關(guān)、資源相關(guān)。(1) 數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān),是由于指令之間存在數(shù)據(jù)依賴性而引起的。根據(jù)指令間對同一寄存器讀和寫操作的先后次序關(guān)系,可將數(shù)據(jù)相關(guān)性分為三種:寫后讀(RAW):上一條指令的寫數(shù)據(jù)與下一條指令的讀數(shù)據(jù)操作之間的相關(guān)。 -真相關(guān)讀后寫(WAR):上一條指令的讀數(shù)據(jù)與下一條指令的寫數(shù)據(jù)操作之間的相關(guān)。 -反相關(guān)寫后寫(WAW):兩條指令的寫數(shù)據(jù)操作之間的相關(guān)。 -輸出相關(guān)WAR和WAW相關(guān)都是因?yàn)椴捎昧讼嗤拇嫫骰虼鎯卧鸬?,因此又稱為名字相關(guān)。名字相關(guān)名字相關(guān)(與真相關(guān)不同),相關(guān)指令之間不傳遞數(shù)據(jù),因此只要改變指令中使用的名字,或者調(diào)整指令的執(zhí)行順序,就可解除相關(guān)性。數(shù)據(jù)相關(guān)性是指令流水執(zhí)行的障礙。例如:以下兩條指令的執(zhí)行,就存在數(shù)據(jù)相關(guān)性 SUB R2,R1,R3 / (R2) = (R1) (R3) ADD R4,R2,R5 / (R4) = (R2) + (R5)遇到數(shù)據(jù)相關(guān)時(shí),后一條指令必

溫馨提示

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

評論

0/150

提交評論