日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

05-中央处理器

發(fā)布時(shí)間:2023/12/20 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 05-中央处理器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CPU的功能與結(jié)構(gòu)

CPU的功能

1.指令控制。完成取指令、分析指令和執(zhí)行指令的操作,即程序的順序控制。

2.操作控制。一條指令的功能往往是由若干操作信號的組合來實(shí)現(xiàn)的。CPU管理并產(chǎn)生由內(nèi)存取出的每條指令的操作信號,把各種操作信號送往相應(yīng)的部件,從而控制這些部件按指令的要求進(jìn)行動(dòng)作。

3.時(shí)間控制。對各種操作加以時(shí)間上的控制。時(shí)間控制要為每條指令按時(shí)間順序提供應(yīng)有的控制信號。

4.數(shù)據(jù)加工。對數(shù)據(jù)進(jìn)行算術(shù)和邏輯運(yùn)算。

5.中斷處理。對計(jì)算機(jī)運(yùn)行過程中出現(xiàn)的異常情況和特殊請求進(jìn)行處理。

運(yùn)算器和控制器的功能

運(yùn)算器:對數(shù)據(jù)進(jìn)行加工

控制器:協(xié)調(diào)并控制計(jì)算機(jī)各部件執(zhí)行程序的指令序列,基本功能包括取指令、分析指令、執(zhí)行指令

  • 取指令:自動(dòng)形成指令地址;自動(dòng)發(fā)出取指令的命令。
  • 分析指令:操作碼譯碼(分析本條指令要完成什么操作);產(chǎn)生操作數(shù)的有效地址。
  • 執(zhí)行指令:根據(jù)分析指令得到的“操作命令”和“操作數(shù)地址”,形成操作信號控制序列,控制運(yùn)算器、存儲(chǔ)器以及I/O設(shè)備完成相應(yīng)的操作。
  • 中斷處理:管理總線及輸入輸出;處理異常情況(如掉電)和特殊請求(如打印機(jī)請求打印一行字符)。

運(yùn)算器基本結(jié)構(gòu)

1.算術(shù)邏輯單元:主要功能是進(jìn)行算術(shù)/邏輯運(yùn)算。

2.通用寄存器組:如AX、BX、CX、DX、SP等,用于存放操作數(shù)(包括源操作數(shù)、目的操作數(shù)及中間結(jié)果)和各種地址信息等。SP是堆棧指針,用于指示棧頂?shù)牡刂贰N粩?shù)與機(jī)器字長相等,便于操作控制。

專用數(shù)據(jù)通路方求:根據(jù)指令執(zhí)行過程中的數(shù)據(jù)和地址的流動(dòng)方向安排連接線路。

如果直接用導(dǎo)線連接,相當(dāng)于多個(gè)寄存器同時(shí)并且一直向ALU傳輸數(shù)據(jù)

解決方法1.使用多路選擇器根據(jù)控制信號選擇一路輸出

解決方法2.使用三態(tài)門可以控制每一路是否輸出

性能較高,基本不存在數(shù)據(jù)沖突現(xiàn)象,但結(jié)構(gòu)復(fù)雜,硬件量大,不易實(shí)現(xiàn)。

CPU內(nèi)部單總線方式:將所有寄存器的輸入端和輸出端都連接到一條公共的通路上。

結(jié)構(gòu)簡單,容易實(shí)現(xiàn),但數(shù)據(jù)傳輸存在較多沖突的現(xiàn)象,性能較低。

3.暫存寄存器:用于暫存從主存讀來的數(shù)據(jù),這個(gè)數(shù)據(jù)不能存放在通用寄存器中,否則會(huì)破壞其原有內(nèi)容。如:兩個(gè)操作數(shù)分別來自主存和R。,最后結(jié)果存回R。,那么從主存中取來的操作數(shù)直接放入暫存器,就不會(huì)破壞運(yùn)算前R。的內(nèi)容。

4.累加寄存器:它是一個(gè)通用寄存器,用于暫時(shí)存放ALU運(yùn)算的結(jié)果信息,用于實(shí)現(xiàn)加法運(yùn)算。

5.程序狀態(tài)字寄存器:保留由算術(shù)邏輯運(yùn)算指令或測試指令的結(jié)果而建立的各種狀態(tài)信息,如溢出標(biāo)志(OP)、符號標(biāo)志(SF)、零標(biāo)志(ZF)、進(jìn)位標(biāo)志(CF)等。PSW中的這些位參與并決定微操作的形成。包括兩個(gè)部分,一是狀態(tài)標(biāo)志,二十控制標(biāo)志。

6.移位器:對運(yùn)算結(jié)果進(jìn)行移位運(yùn)算。

控制器的基本結(jié)構(gòu)

1.程序計(jì)數(shù)器PC:用于指出下一條指令在主存中的存放地址。CPU就是根據(jù)PC的內(nèi)容去主存中取指令的。因程序中指令(通常)是順序執(zhí)行的,所以PC有自增功能。程序計(jì)數(shù)器的位數(shù)與存儲(chǔ)器地址的位數(shù)相等,而存儲(chǔ)器地址取決于存儲(chǔ)器的容量。

2.指令寄存器IR:用于保存當(dāng)前正在執(zhí)行的那條指令。不需要用戶干預(yù),對用戶透明。位數(shù)取決于指令字長。

3.指令譯碼器:僅對操作碼字段進(jìn)行譯碼,向控制器提供特定的操作信號。

4.微操作信號發(fā)生器:根據(jù)IR的內(nèi)容(指令)、PSW的內(nèi)容(狀態(tài)信息)及時(shí)序信號,產(chǎn)生控制整個(gè)計(jì)算機(jī)系統(tǒng)所需的各種控制信號,其結(jié)構(gòu)有組合邏輯型和存儲(chǔ)邏輯型兩種。

5.時(shí)序系統(tǒng):用于產(chǎn)生各種時(shí)序信號,它們都是由統(tǒng)一時(shí)鐘(CLOCK)分頻得到。

6.存儲(chǔ)器地址寄存器MDR:用于存放所要訪問的主存單元的地址。

7.存儲(chǔ)器數(shù)據(jù)寄存器MAR:用于存放向主存寫入的信息或從主存中讀出的信息。

控制器由程序計(jì)數(shù)器PC,指令寄存器IR,存儲(chǔ)器地址寄存器MAR,存儲(chǔ)器數(shù)據(jù)寄存器MDR,指令譯碼器,時(shí)序電路和微操作發(fā)生器組成。

指令執(zhí)行過程

指令周期

指令周期:CPU從主存中每取出并執(zhí)行一條指令所需的全部時(shí)間。

指令周期常常用若干機(jī)器周期來表示,機(jī)器周期又叫CPU周期。

一個(gè)機(jī)器周期又包含若干時(shí)鐘周期(也稱為節(jié)拍、T周期或CPU時(shí)鐘周期,它是CPU操作的最基本單位)。

每個(gè)指令周期內(nèi)機(jī)器周期數(shù)可以不等,每個(gè)機(jī)器周期內(nèi)的節(jié)拍數(shù)也可以不等。

各種周期的分別

  • 時(shí)鐘周期是計(jì)算機(jī)操作的最小時(shí)間單位,由計(jì)算機(jī)的主頻決定,是主頻的倒數(shù)。工作脈沖是控制器的最小時(shí)間單元,起i定時(shí)觸發(fā)作用,一個(gè)時(shí)鐘周期有一個(gè)工作脈沖。
  • 指令周期可以由多個(gè)CPU周期組成。
  • CPU周期即機(jī)器周期,包含若干個(gè)時(shí)鐘周期。
  • 存取周期是指存儲(chǔ)器進(jìn)行兩次獨(dú)立的存儲(chǔ)器操作(連續(xù)兩次讀或?qū)懖僮?#xff09;之間所需的最小間隔時(shí)間。

指令周期流程

四個(gè)工作周期都有CPU訪存操作,只是訪存的目的不同。取指周期是為了取指令,間址周期是為了取有效地址,執(zhí)行周期是為了取操作數(shù),中斷周期是為了保存程序斷點(diǎn)。

指令周期的數(shù)據(jù)流-取指周期

指令周期的第一個(gè)機(jī)器周期是取指周期,即從主存中取出指令字。

1.當(dāng)前指令地址送至存儲(chǔ)器地址寄存器,記做:(PC)→MAR

2.CU發(fā)出控制信號,經(jīng)控制總線傳到主存,這里是讀信號,記做:1→R

3.將MAR所指主存中的內(nèi)容經(jīng)數(shù)據(jù)總線送入MDR,記做:M(MAR)→ MDR

4.CU發(fā)出控制信號,形成下一條指令地址,記做:(PC)+1 →PC

取指結(jié)束后,PC自動(dòng)加1,執(zhí)行周期中,如果PC需要修改為跳轉(zhuǎn)到的地址,則需要再+1

指令周期的數(shù)據(jù)流-間指周期

1.將指令的地址碼送入MAR,記做: Ad(IR) →MAR或Ad(MDR)→MAR

2.CU發(fā)出控制信號,啟動(dòng)主存做讀操作,記做:1→R

3.將MAR所指主存中的內(nèi)容經(jīng)數(shù)據(jù)總線送入MDR,記做:M(MAR)→MDR

4.將有效地址送至指令的地址碼字段,記做:(MDR)→ Ad(IR)

存儲(chǔ)器間通過形式地址訪存,寄存器間址通過寄存器內(nèi)容訪存。

存儲(chǔ)器本身無法區(qū)分存儲(chǔ)單元中存放的是指令還是數(shù)據(jù)。而在控制器的控制下,計(jì)算機(jī)在不同的階段對存儲(chǔ)器進(jìn)行讀/寫操作時(shí),取出的代碼擁有不同的用處,而在取指階段讀出的二進(jìn)制代碼為指令,在執(zhí)行階段取出的代碼可能是數(shù)據(jù)。

指令周期的數(shù)據(jù)流-執(zhí)行周期

執(zhí)行周期的任務(wù)是根據(jù)IR中的指令字的操作碼和操作數(shù)通過ALU操作產(chǎn)生執(zhí)行結(jié)果。不同指令的執(zhí)行周期操作不同,因此沒有統(tǒng)一的數(shù)據(jù)流向。

指令周期的數(shù)據(jù)流-中斷周期

中斷:暫停當(dāng)前任務(wù)去完成其他任務(wù)。為了能夠恢復(fù)當(dāng)前任務(wù),需要保存斷點(diǎn)。一般使用堆棧來保存斷點(diǎn),這里用SP表示棧頂?shù)刂?#xff0c;假設(shè)SP指向棧頂元素,進(jìn)棧操作是先修改指針,后存入數(shù)據(jù)。

1.CU控制將SP減1,修改后的地址送入MAR記做:(SP)-1 →SP,(SP) → MAR

本質(zhì)上是將斷點(diǎn)存入某個(gè)存儲(chǔ)單元,假設(shè)其地址為a,故可記做: a →MAR

2.CU發(fā)出控制信號,啟動(dòng)主存做寫操作,記做:1→w

3.將斷點(diǎn)(PC內(nèi)容)送入MDR,記做:(PC)→ MDR

4.CU控制將中斷服務(wù)程序的入口地址(由向量地址形成部件產(chǎn)生)送入PC,記做:向量地址→PC

指令執(zhí)行方案

一個(gè)指令周期通常要包括幾個(gè)時(shí)間段(執(zhí)行步驟),每個(gè)步驟完成指令的一部分功能,幾個(gè)依次執(zhí)行的步驟完成這條指令的全部功能。

方案1.單指令周期

對所有指令都選用相同的執(zhí)行時(shí)間來完成。指令之間串行執(zhí)行;指令周期取決于執(zhí)行時(shí)間最長的指令的執(zhí)行時(shí)間。

對于那些本來可以在更短時(shí)間內(nèi)完成的指令,要使用這個(gè)較長的周期來完成,會(huì)降低整個(gè)系統(tǒng)的運(yùn)行速度。

方案2.多指令周期

對不同類型的指令選用不同的執(zhí)行步驟來完成。指令之間串行執(zhí)行;可選用不同個(gè)數(shù)的時(shí)鐘周期來完成不同指令的執(zhí)行過程。

需要更復(fù)雜的硬件設(shè)計(jì)。

方案3.流水線方案
在每一個(gè)時(shí)鐘周期啟動(dòng)一條指令,盡量讓多條指令同時(shí)運(yùn)行,但各自處在不同的執(zhí)行步驟中。指令之間并行執(zhí)行。

數(shù)據(jù)通路

采用CPU內(nèi)部總線方式的數(shù)據(jù)通路的特點(diǎn):結(jié)構(gòu)簡單,實(shí)現(xiàn)容易,性能較低,存在較多的沖突現(xiàn)象。

不采用CPU內(nèi)部總線方式的數(shù)據(jù)通路的特點(diǎn)是:結(jié)構(gòu)復(fù)雜,硬件量大,不易實(shí)現(xiàn),性能高,基本不存在數(shù)據(jù)沖突現(xiàn)象。

單總線結(jié)構(gòu)

內(nèi)部總線是指同一部件,如CPU內(nèi)部連接各寄存器及運(yùn)算部件之間的總線;

系統(tǒng)總線是指同一臺計(jì)算機(jī)系統(tǒng)的各部件,如CPU、內(nèi)存、通道和各類l/O接口間互相連接的總線。

由于ALU是一個(gè)組合邏輯電路,因此其運(yùn)算過程中必須保持兩個(gè)輸入端的內(nèi)容不變,又由于CPU內(nèi)部采用單總線結(jié)構(gòu),因此為了得到兩個(gè)不同的操作數(shù),ALU的一個(gè)輸入端與總線相連,另一個(gè)輸入端需要通過一個(gè)寄存器與總線相連。此外,ALU的輸出端也不能直接與內(nèi)部總線相連,否則其輸出又通過總線反饋到輸入端,影響運(yùn)算結(jié)果,因此輸出端需要通過一個(gè)暫存器(用來暫存結(jié)果的寄存器)與總線相連。

1.寄存器之間數(shù)據(jù)傳送

比如把PC內(nèi)容送至MAR,實(shí)現(xiàn)傳送操作的流程及控制信號為:

(PC)→Bus PCout有效,PC內(nèi)容送總線
Bus→MAR MARin有效,總線內(nèi)容送MAR

重要的是描述清楚數(shù)據(jù)流向

2.主存與CPU之間的數(shù)據(jù)傳送

比如CPU從主存讀取指令,實(shí)現(xiàn)傳送操作的流程及控制信號為:

(PC)→Bus→MAR PCout和MARin有效,現(xiàn)行指令地址→MAR

1→R CU發(fā)讀命令(通過控制總線發(fā)出,圖中未畫出)

MEM(MAR)→MDR MDRin有效

MDR→Bus→IR MDRout和IRin有效,現(xiàn)行指令→IR

3.執(zhí)行算術(shù)或邏輯運(yùn)算

比如一條加法指令,微操作序列及控制信號為:

Ad(IR)→Bus→MAR MDRout和MARin有效或AdlRout和MARin有效
1→R CU發(fā)讀命令
MEM(MAR)→數(shù)據(jù)線→MDR MDRin有效

MDR→Bus→Y MDRout和Yin有效,操作數(shù)→Y
(ACC)+(Y)→z ACCout和ALUin有效,CU向ALU發(fā)送加命令
Z→ACC Zout和ACCin有效,結(jié)果→ACC

例題

設(shè)有如圖所示的單總線結(jié)構(gòu),分析指令A(yù)DD (RO),R1的指令流程和控制信號。

1.分析指令功能和指令周期

功能:((R0))+(R1)→(R0)

取指周期、間址周期、執(zhí)行周期

2.寫出各階段的指令流程

取指周期:公共操作

間址周期:完成取數(shù)操作,被加數(shù)在主存中,加數(shù)已經(jīng)放在寄存器R1中。

執(zhí)行周期:完成取數(shù)操作,被加數(shù)在主存中,加數(shù)已經(jīng)放在寄存器R1中。

專用數(shù)據(jù)通路

取指周期

例題

下圖是一個(gè)簡化了的CPU與主存連接結(jié)構(gòu)示意圖(圖中省略了所有的多路選擇器)。具中有一個(gè)系加寄存器(ACC)、一個(gè)狀態(tài)數(shù)據(jù)寄存器和其他4個(gè)寄存器:主存地址寄存器(MAR)、主存數(shù)據(jù)寄存器(MDR)、程序寄存器(PC)和指令寄存器(IR),各部件及其之間的連線表示數(shù)據(jù)通路,箭頭表示信息傳遞方向。

要求:

(1) 請寫出圖中a、b、c、d 4個(gè)寄存器的名稱。

d能自動(dòng)“+1”,是PC

PC內(nèi)容是地址,送MAR,故c是MAR

b與微操作信號發(fā)生器相連,是IR

與主存相連的寄存器是MAR和MDR,c是MAR,則a是MDR

(2)簡述圖中取指令的數(shù)據(jù)通路。

(PC)→ MAR

M(MAR)→MDR

(MDR)→IR

(3)簡述數(shù)據(jù)在運(yùn)算器和主存之間進(jìn)行存/取訪問

存/取的數(shù)據(jù)放到ACC中、設(shè)數(shù)據(jù)地址已放入MAR

取:

M(MAR)→ MDR

(MDR)→ALU →ACC

存:

(ACC)→ MDR

(MDR)→ M(MAR)

(4)簡述完成指令LDA X的數(shù)據(jù)通路(X為主存地址)LDA的功能為(X)→ACC

X→MAR

M(MAR)→MDR

(MDR)→ALU →ACC

(5)簡述完成指令A(yù)DD Y的數(shù)據(jù)通路(Y為主存地址)ADD的功能為(ACC)+(Y)→ACC

Y → MAR

M(MAR)→ MDR

(MDR)→ ALU,(ACC) → ALU

ALU →ACC

(6)簡述完成指令STA Z的數(shù)據(jù)通路(Z為主存地址)STA的功能為(ACC)→Z

Z→ MAR

(ACC) →MDR

(MDR)→M(MAR)

硬布線控制器的設(shè)計(jì)

設(shè)計(jì)步驟:

  • 分析每個(gè)階段的微操作序列

  • 選擇CPU的控制方式

  • 安排微操作時(shí)序

  • 電路設(shè)計(jì)

    (1)列出操作時(shí)間表

    (2)寫出微操作命令的最簡表達(dá)式

    (3)畫出邏輯圖

  • 硬布線控制器的特點(diǎn):

    • 指令越多,設(shè)計(jì)和實(shí)現(xiàn)就越復(fù)雜,因此一般用于RISC(精簡指令集系統(tǒng))
    • 如果擴(kuò)充一條新的指令,則控制器的設(shè)計(jì)就需要大改,因此擴(kuò)充指令較困難。
    • 由于使用純硬件實(shí)現(xiàn)控制,因此執(zhí)行速度很快。微操作控制信號由組合邏輯電路即時(shí)產(chǎn)生。

    硬布線控制器

    根據(jù)指令操作碼、目前的機(jī)器周期、節(jié)拍信號、機(jī)器狀態(tài)條件,即可確定現(xiàn)在這個(gè)節(jié)拍下應(yīng)該發(fā)出哪些“微命令”

    Tips:邏輯表達(dá)式是電路的數(shù)學(xué)化描述

    硬布線控制器的設(shè)計(jì)

    設(shè)計(jì)步驟:

    1.分析每個(gè)階段的微操作序列(取值、間址、執(zhí)行、中斷四個(gè)階段):確定哪些指令在什么階段、在什么條件下會(huì)使用到的微操作

    2.選擇CPU的控制方式:采用定長機(jī)器周期還是不定長機(jī)器周期?每個(gè)機(jī)器周期安排幾個(gè)節(jié)拍?假設(shè)采用同步控制方式(定長機(jī)器周期),一個(gè)機(jī)器周期內(nèi)安排3個(gè)節(jié)拍。

    3.安排微操作時(shí)序:如何用3個(gè)節(jié)拍完成整個(gè)機(jī)器周期內(nèi)的所有微操作?

    4.電路設(shè)計(jì):確定每個(gè)微操作命令的邏輯表達(dá)式,并用電路實(shí)現(xiàn)

    分析每個(gè)階段的微操作序列

    安排微操作時(shí)序的原則

    原則一:微操作的先后順序不得隨意更改

    原則二:被控對象不同的微操作盡量安排在一個(gè)節(jié)拍內(nèi)完成

    原則三:占用時(shí)間較短的微操作盡量安排在一個(gè)節(jié)拍內(nèi)完成并允許有先后順序

    M( MAR )→MDR從主存取數(shù)據(jù),用時(shí)較長,因此必須一個(gè)時(shí)鐘周期才能保證微操作的完成

    MDR→IR是CPU內(nèi)部寄存器的數(shù)據(jù)傳送,速度很快,因此在一個(gè)時(shí)鐘周期內(nèi)可以緊接著完成OP(IR)→ID。也就是可以一次同時(shí)發(fā)出兩個(gè)微命令。

    安排微操作時(shí)序-間址周期

    安排微操作時(shí)序-執(zhí)行周期

    電路設(shè)計(jì)

    設(shè)計(jì)步驟:

    1.列出操作時(shí)間表:列出在取指、間址、執(zhí)行、中斷周期,T0、T1、T2節(jié)拍內(nèi)有
    可能用到的所有微操作

    2.寫出微操作命令的最簡表達(dá)式

    3.畫出邏輯圖

    組合邏輯設(shè)計(jì)

    時(shí)間操作表

    微操作信號綜合

    畫出邏輯圖

    微程序控制器

    微程序控制器的設(shè)計(jì)思路

    程序:由指令序列組成

    微程序:由微指令序列組成,每一種指令對應(yīng)一個(gè)微程序

    指令是對程序執(zhí)行步驟的描述

    微指令是對指令執(zhí)行步驟的描述

    微命令與微操作一一對應(yīng),微指令中可能包含多個(gè)微命令

    微程序控制器的基本結(jié)構(gòu)

    微程序控制器的工作原理

    取指周期微程序通常是公用的,故如果某指令系統(tǒng)中有n條機(jī)器指令,則CM中微程序的個(gè)數(shù)至少是n+1個(gè)

    一些早期的CPU、物聯(lián)網(wǎng)設(shè)備的CPU可以不提供間接尋址和中斷功能,因此這類CPU可以不包含間址周期、中斷周期的微程序段

    Tips:物理上,取指周期、執(zhí)行周期看起來像是兩個(gè)微程序,但邏輯上應(yīng)該把它們看作一個(gè)整體。因此,“一條指令對應(yīng)一個(gè)微程序”的說法是正確的

    微指令的設(shè)計(jì)

    微指令的格式

    相容性微命令:可以并行完成的微命令。

    互斥性微命令:不允許并行完成的微命令。

    水平型微指令

    一條微指令能定義多個(gè)可并行的微命令。

    優(yōu)點(diǎn):微程序短,執(zhí)行速度快;
    缺點(diǎn):微指令長,編寫微程序較麻煩。

    垂直型微指令

    一條微指令只能定義一個(gè)微命令,由微操作碼字段規(guī)定具體功能

    優(yōu)點(diǎn):微指令短、簡單、規(guī)整,便于編寫微程序;

    缺點(diǎn):微程序長,執(zhí)行速度慢,工作效率低。

    混合型微指令

    在垂直型的基礎(chǔ)上增加一些不太復(fù)雜的并行操作。

    微指令較短,仍便于編寫;微程序也不長,執(zhí)行速度加快。

    微指令的編碼方式

    微指令的編碼方式又稱為微指令的控制方式,它是指如何對微指令的控制字段進(jìn)行編碼,以形成控制信號。編碼的目標(biāo)是在保證速度的情況下,盡量縮短微指令字長。

    直接編碼(直接控制)方式

    在微指令的操作控制字段中,每一位代表一個(gè)微操作命令

    某位為“1”表示該控制信號有效

    優(yōu)點(diǎn):簡單、直觀,執(zhí)行速度快,操作并行性好。

    缺點(diǎn):微指令字長過長,n個(gè)微命令就要求微指令的操作字段有n位,造成控存容量極大。

    字段直接編碼方式

    將微指令的控制字段分成若干“段”,每段經(jīng)譯碼后發(fā)出控制信號

    微命令字段分段的原則:

    ①互斥性微命令分在同一段內(nèi),相容性微命令分在不同段內(nèi)。

    ②每個(gè)小段中包含的信息位不能太多,否則將增加譯碼線路的復(fù)雜性和譯碼時(shí)間。

    ③一般每個(gè)小段還要留出一個(gè)狀態(tài),表示本字段不發(fā)出任何微命令。因此,當(dāng)某字段的長度為3位時(shí),最多只能表示7個(gè)互斥的微命令,通常用000表示不操作。

    優(yōu)點(diǎn):可以縮短微指令字長。缺點(diǎn):要通過譯碼電路后再發(fā)出微命令,因此比直接編碼方式慢。

    例題

    某計(jì)算機(jī)的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接編碼法,共有33個(gè)微命令,構(gòu)成5個(gè)互斥類,分別包含7、3、12、5和6個(gè)微命令,則操作控制字段至少有多少位?

    第1個(gè)互斥類有7個(gè)微命令,要留出1個(gè)狀態(tài)表示不操作,所以需要表示8種不同的狀態(tài),故需要3個(gè)二進(jìn)制位。

    以此類推,后面4個(gè)互斥類各需要教示4、13、6、7種不同的狀態(tài),分別對應(yīng)2、4、3、3個(gè)二進(jìn)制位。

    故操作控制字段的總位數(shù)為3+2+4+3+3 = 15位

    Tips:若采用直接編碼方式,則控制字段需要33位

    字段間接編碼方式

    一個(gè)字段的某些微命令需由另一個(gè)字段中的某些微命令來解釋,由于不是靠字段直接譯碼發(fā)出的微命令,故稱為字段間接編碼,又稱隱式編碼。

    優(yōu)點(diǎn):可進(jìn)一步縮短微指令字長。缺點(diǎn):削弱了微指令的并行控制能力,故通常作為字段直接編碼方式的一種輔助手段。

    微指令的地址形成方式

    1.微指令的下地址字段指出

    微指令格式中設(shè)置一個(gè)下地址字段,由微指令的下地址字段直接指出后繼微指令的地址,這種方式又稱為斷定方式。

    2.根據(jù)機(jī)器指令的操作碼形成

    當(dāng)機(jī)器指令取至指令寄存器后,微指令的地址由操作碼經(jīng)微地址形成部件形成。

    3.增量計(jì)數(shù)器法(CMAR )+1→CMAR

    4.分支轉(zhuǎn)移

    轉(zhuǎn)移方式:指明判別條件;轉(zhuǎn)移地址:指明轉(zhuǎn)移成功后的去向。

    5.測試網(wǎng)絡(luò)

    6.由硬件產(chǎn)生微程序入口地址

    第一條微指令地址―由專門硬件產(chǎn)生(用專門的硬件記錄取指周期微程序首地址)中斷周期―由硬件產(chǎn)生中斷周期微程序首地址(用專門的硬件記錄)

    例題–斷定方式

    微程序控制單元的設(shè)計(jì)

    微程序控制單元的設(shè)計(jì)

    顯然,微程序控制器的速度比硬布線控制器更慢

    微程序設(shè)計(jì)分類

    1.靜態(tài)微程序設(shè)計(jì)和動(dòng)態(tài)微程序設(shè)計(jì)

    靜態(tài)微程序無需改變,采用 ROM

    動(dòng)態(tài)通過改變微指令和微程序改變機(jī)器指令有利于仿真,采用EPROM

    2.毫微程序設(shè)計(jì)

    毫微程序設(shè)計(jì)的基本概念

    微程序設(shè)計(jì)用微程序解釋機(jī)器指令

    毫微程序設(shè)計(jì)用毫微程序解釋微程序

    硬布線與微程序的比較

    指令流水線的基本概念

    理想情況:各階段花費(fèi)時(shí)間相同;每個(gè)階段結(jié)束后能立即進(jìn)入下一階段。

    指令流水的定義

    一條指令的執(zhí)行過程可以分成多個(gè)階段(或過程)。根據(jù)計(jì)算機(jī)的不同,具體的分法也不同。

    取指:根據(jù)PC內(nèi)容訪問主存儲(chǔ)器,取出一條指令送到IR中。

    分析:對指令操作碼進(jìn)行譯碼,按照給定的尋址方式和地址字段中的內(nèi)容形成操作數(shù)的有效地址EA,并從有效地址EA中取出操作數(shù)。

    執(zhí)行:根據(jù)操作碼字段,完成指令規(guī)定的功能,即把運(yùn)算結(jié)果寫到通用寄存器或主存中。

    特點(diǎn):每個(gè)階段用到的硬件不一樣。

    設(shè)取指、分析、執(zhí)行3個(gè)階段的時(shí)間都相等,用t表示,按以下幾種執(zhí)行方式分析n條指令的執(zhí)行時(shí)間:

    傳統(tǒng)馮·諾依曼機(jī)采用順序執(zhí)行方式,又稱串行執(zhí)行方式。

    優(yōu)點(diǎn):控制簡單,硬件代價(jià)小。

    缺點(diǎn):執(zhí)行指令的速度較慢,在任何時(shí)刻,處理機(jī)中只有一條指令在執(zhí)行,各功能部件的利用率很低。

    優(yōu)點(diǎn):程序的執(zhí)行時(shí)間縮短了1/3,各功能部件的利用率明顯提高。

    缺點(diǎn):需要付出硬件上較大開銷的代價(jià),控制過程也比順序執(zhí)行復(fù)雜了。

    與順序執(zhí)行方式相比,指令的執(zhí)行時(shí)間縮短近2/3。這是一種理想的指令執(zhí)行方式,在正常情況下,處理機(jī)中同時(shí)有3條指令在執(zhí)行。

    注:也可以把每條指令的執(zhí)行過程分成4個(gè)或5個(gè)階段,分成5個(gè)階段是比較常見的做法。

    流水線的表示方法

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-VkNlUwgC-1657716190898)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20220713175752033.png)]

    主要用于分析指令執(zhí)行過程以及影響流水線的因素

    主要用于分析流水線的性能

    流水線的性能指標(biāo)

    吞吐率

    加速比

    效率

    五段式指令流水線

    機(jī)器周期的設(shè)置

    流水線每一個(gè)功能段部件后面都要有一個(gè)緩沖寄存器,或稱為鎖存器,其作用是保存本流水段的執(zhí)行結(jié)果,提供給下一流水段使用。

    為方便流水線的設(shè)計(jì),將每個(gè)階段的耗時(shí)取成一樣,以最長耗時(shí)為準(zhǔn)。即此處應(yīng)將機(jī)器周期設(shè)置為100ns。
    理想情況下,每個(gè)機(jī)器周期(功能段)只消耗一個(gè)時(shí)鐘周期。

    考試中常見的五類指令:·運(yùn)算類指令、LOAD指令、STORE指令、條件轉(zhuǎn)移指令、無條件轉(zhuǎn)移指令

    只有上一條指令進(jìn)入ID段后,下一條指令才能開始IF段,否則會(huì)覆蓋lF段鎖存器的內(nèi)容

    運(yùn)算類指令的執(zhí)行過程

    運(yùn)算類指令

    IF:根據(jù)PC從指令Cache取指令至lF段的鎖存器

    ID:取出操作數(shù)至ID段鎖存器

    EX:運(yùn)算,將結(jié)果存入EX段鎖存器

    M:空段

    WB:將運(yùn)算結(jié)果寫回指定寄存器

    LOAD指令的執(zhí)行過程

    LOAD指令

    IF:根據(jù)PC從指令Cache取指令至IF段的鎖存器

    ID:將基址寄存器的值放到鎖存器A,將偏移量的值放到Imm

    EX:運(yùn)算,得到有效地址

    M:從數(shù)據(jù)cache中取數(shù)并放入鎖存器

    WB:將取出的數(shù)寫回寄存器

    通常,RISC處理器只有“取數(shù)LOAD”和“存數(shù)STORE”指令才能訪問主存

    STORE指令的執(zhí)行過程

    STORE指令

    lF:根據(jù)PC從指令Cache取指令至IF段的鎖存器

    ID:將基址寄存器的值放到鎖存器A,將偏移量的值放到Imm。將要存的數(shù)放到B

    EX:運(yùn)算,得到有效地址。并將鎖存器B的內(nèi)容放到鎖存器Store。

    M:寫入數(shù)據(jù)Cache

    WB:空段

    條件轉(zhuǎn)移指令的執(zhí)行過程

    轉(zhuǎn)移類指令常采用相對尋址

    條件轉(zhuǎn)移指令

    IF:根據(jù)PC從指令cache取指令至IF段的鎖存器

    ID:進(jìn)行比較的兩個(gè)數(shù)放入鎖存器A、B;偏移量放入Imm

    EX:運(yùn)算,比較兩個(gè)數(shù)

    M:將目標(biāo)PC值寫回PC

    WB:空段

    很多教材把寫回PC的功能段稱為“WrPC段”,其耗時(shí)比M段更短,可安排在M段時(shí)間內(nèi)完成

    無條件轉(zhuǎn)移指令的執(zhí)行過程

    無條件轉(zhuǎn)移指令

    lF:根據(jù)PC從指令Cache取指令至IF段的鎖存器

    ID:偏移量放入Imm

    EX:將目標(biāo)Pc值寫回PC(左圖沒畫全)

    M:空段

    WB:空段

    “WrPC段”耗時(shí)比EX段更短,可安排在EX段時(shí)間內(nèi)完成。WrPC段越早完成,就越能避免控制沖突。當(dāng)然,也有的地方會(huì)在WB段時(shí)間內(nèi)才修改PC的值

    例題

    指令流水線的影響因素和分類

    流水線每一個(gè)功能段部件后面都要有一個(gè)緩沖寄存器,或稱為鎖存器,其作用是保存本流水段的執(zhí)行結(jié)果,提供給下一流水段使用。

    影響流水線的因素

    結(jié)構(gòu)相關(guān)(資源沖突)

    由于多條指令在同一時(shí)刻爭用同一資源而形成的沖突稱為結(jié)構(gòu)相關(guān)。

    解決辦法:
    1.后一相關(guān)指令暫停一周期

    2.資源重復(fù)配置:數(shù)據(jù)存儲(chǔ)器+指令存儲(chǔ)器

    數(shù)據(jù)相關(guān)(數(shù)據(jù)沖突)

    數(shù)據(jù)相關(guān)指在一個(gè)程序中,存在必須等前一條指令執(zhí)行完才能執(zhí)行后一條指令的情況,則這兩條指令即為數(shù)據(jù)相關(guān)。

    解決辦法:

    1.把遇到數(shù)據(jù)相關(guān)的指令及其后續(xù)指令都暫停一至幾個(gè)時(shí)鐘周期,直到數(shù)據(jù)相關(guān)問題消失后再繼續(xù)執(zhí)行。可分為硬件阻塞(stall)和軟件插入“NOP”兩種方法。

    2.數(shù)據(jù)旁路技術(shù):轉(zhuǎn)發(fā)機(jī)制

    3.編譯優(yōu)化:通過編譯器調(diào)整指令順序來解決數(shù)據(jù)相關(guān)。

    控制相關(guān)(控制沖突)

    當(dāng)流水線遇到轉(zhuǎn)移指令和其他改變PC值的指令而造成斷流時(shí),會(huì)引起控制相關(guān)。

    解決辦法:

    1.轉(zhuǎn)移指令分支預(yù)測。簡單預(yù)測(永遠(yuǎn)猜ture或false) 、動(dòng)態(tài)預(yù)測(根據(jù)歷史情況動(dòng)態(tài)調(diào)整)

    2.預(yù)取轉(zhuǎn)移成功和不成功兩個(gè)控制流方向上的目標(biāo)指令

    3.加快和提前形成條件碼

    4.提高轉(zhuǎn)移方向的猜準(zhǔn)率

    流水線的分類

    1.部件功能級、處理機(jī)級和處理機(jī)間級流水線

    根據(jù)流水線使用的級別的不同,流水線可分為部件功能級流水線、處理機(jī)級流水線和處理機(jī)間流水線。

    部件功能級流水就是將復(fù)雜的算術(shù)邏輯運(yùn)算組成流水線工作方式。例如,可將浮點(diǎn)加法操作分成求階差、對階、尾數(shù)相加以及結(jié)果規(guī)格化等4個(gè)子過程。

    處理機(jī)級流水是把一條指令解釋過程分成多個(gè)子過程,如前面提到的取指、譯碼、執(zhí)行、訪存及寫回5個(gè)子過程。

    處理機(jī)間流水是一種宏流水,其中每一個(gè)處理機(jī)完成某一專門任務(wù),各個(gè)處理機(jī)所得到的結(jié)果需存放在與下一個(gè)處理機(jī)所共享的存儲(chǔ)器中。

    2.單功能流水線和多功能流水線

    按流水線可以完成的功能,流水線可分為單功能流水線和多功能流水線。

    單功能流水線指只能實(shí)現(xiàn)一種固定的專門功能的流水線;

    多功能流水線指通過各段間的不同連接方式可以同時(shí)或不同時(shí)地實(shí)現(xiàn)多種功能的流水線。

    3.動(dòng)態(tài)流水線和靜態(tài)流水線

    按同一時(shí)間內(nèi)各段之間的連接方式,流水線可分為靜態(tài)流水線和動(dòng)態(tài)流水線。

    靜態(tài)流水線指在同一時(shí)間內(nèi),流水線的各段只能按同一種功能的連接方式工作。

    動(dòng)態(tài)流水線指在同一時(shí)間內(nèi),當(dāng)某些段正在實(shí)現(xiàn)某種運(yùn)算時(shí),另一些段卻正在進(jìn)行另一種運(yùn)算。這樣對提高流水線的效率很有好處,但會(huì)使流水線控制變得很復(fù)雜。

    4.線性流水線和非線性流水線

    按流水線的各個(gè)功能段之間是否有反饋信號,流水線可分為線性流水線與非線性流水線。

    線性流水線中,從輸入到輸出,每個(gè)功能段只允許經(jīng)過一次,不存在反饋回路。

    非線性流水線存在反饋回路,從輸入到輸出過程中,某些功能段將數(shù)次通過流水線,這種流水線適合進(jìn)行線性遞歸的運(yùn)算。

    流水線的多發(fā)技術(shù)

    超標(biāo)量技術(shù)

    每個(gè)時(shí)鐘周期內(nèi)可并發(fā)多條獨(dú)立指令

    要配置多個(gè)功能部件

    不能調(diào)整指令的執(zhí)行順序

    通過編譯優(yōu)化技術(shù),把可并行執(zhí)行的指令搭配起來

    超流水技術(shù)

    在一個(gè)時(shí)鐘周期內(nèi)再分段(3段)

    在一個(gè)時(shí)鐘周期內(nèi)一個(gè)功能部件使用多次( 3次)

    不能調(diào)整指令的執(zhí)行順序

    靠編譯程序解決優(yōu)化問題

    超長指令字

    由編譯程序挖掘出指令間潛在的并行性,將多條能并行操作的指令組合成一條

    具有多個(gè)操作碼字段的超長指令字(可達(dá)幾百位)

    采用多個(gè)處理部件

    譯碼、執(zhí)行、訪存及寫回5個(gè)子過程。

    處理機(jī)間流水是一種宏流水,其中每一個(gè)處理機(jī)完成某一專門任務(wù),各個(gè)處理機(jī)所得到的結(jié)果需存放在與下一個(gè)處理機(jī)所共享的存儲(chǔ)器中。

    2.單功能流水線和多功能流水線

    按流水線可以完成的功能,流水線可分為單功能流水線和多功能流水線。

    單功能流水線指只能實(shí)現(xiàn)一種固定的專門功能的流水線;

    多功能流水線指通過各段間的不同連接方式可以同時(shí)或不同時(shí)地實(shí)現(xiàn)多種功能的流水線。

    3.動(dòng)態(tài)流水線和靜態(tài)流水線

    按同一時(shí)間內(nèi)各段之間的連接方式,流水線可分為靜態(tài)流水線和動(dòng)態(tài)流水線。

    靜態(tài)流水線指在同一時(shí)間內(nèi),流水線的各段只能按同一種功能的連接方式工作。

    動(dòng)態(tài)流水線指在同一時(shí)間內(nèi),當(dāng)某些段正在實(shí)現(xiàn)某種運(yùn)算時(shí),另一些段卻正在進(jìn)行另一種運(yùn)算。這樣對提高流水線的效率很有好處,但會(huì)使流水線控制變得很復(fù)雜。

    4.線性流水線和非線性流水線

    按流水線的各個(gè)功能段之間是否有反饋信號,流水線可分為線性流水線與非線性流水線。

    線性流水線中,從輸入到輸出,每個(gè)功能段只允許經(jīng)過一次,不存在反饋回路。

    非線性流水線存在反饋回路,從輸入到輸出過程中,某些功能段將數(shù)次通過流水線,這種流水線適合進(jìn)行線性遞歸的運(yùn)算。

    流水線的多發(fā)技術(shù)

    超標(biāo)量技術(shù)

    [外鏈圖片轉(zhuǎn)存中…(img-NmrT2nhs-1657716190909)]

    每個(gè)時(shí)鐘周期內(nèi)可并發(fā)多條獨(dú)立指令

    要配置多個(gè)功能部件

    不能調(diào)整指令的執(zhí)行順序

    通過編譯優(yōu)化技術(shù),把可并行執(zhí)行的指令搭配起來

    超流水技術(shù)

    [外鏈圖片轉(zhuǎn)存中…(img-0lgjUJOL-1657716190909)]

    在一個(gè)時(shí)鐘周期內(nèi)再分段(3段)

    在一個(gè)時(shí)鐘周期內(nèi)一個(gè)功能部件使用多次( 3次)

    不能調(diào)整指令的執(zhí)行順序

    靠編譯程序解決優(yōu)化問題

    超長指令字

    [外鏈圖片轉(zhuǎn)存中…(img-xOjJL88w-1657716190909)]

    由編譯程序挖掘出指令間潛在的并行性,將多條能并行操作的指令組合成一條

    具有多個(gè)操作碼字段的超長指令字(可達(dá)幾百位)

    采用多個(gè)處理部件

    總結(jié)

    以上是生活随笔為你收集整理的05-中央处理器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。