計(jì)算機(jī)組成原理-第五章課件_第1頁(yè)
計(jì)算機(jī)組成原理-第五章課件_第2頁(yè)
計(jì)算機(jī)組成原理-第五章課件_第3頁(yè)
計(jì)算機(jī)組成原理-第五章課件_第4頁(yè)
計(jì)算機(jī)組成原理-第五章課件_第5頁(yè)
已閱讀5頁(yè),還剩179頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理第5章中央處理器

5.1CPU的組成和功能 5.8流水CPU5.2

指令周期 5.9RISCCPU5.3時(shí)序產(chǎn)生器和控制方式 5.10多媒體CPU5.4微程序控制器 5.11CPU性能評(píng)價(jià)5.5微程序設(shè)計(jì)技術(shù)5.6硬布線控制器5.7傳統(tǒng)CPU5.1CPU的功能和組成

當(dāng)代主流計(jì)算機(jī)所遵循的仍然是馮.諾依曼的“存儲(chǔ)程序、程序控制”思想

程序告訴計(jì)算機(jī):應(yīng)該逐步執(zhí)行什么操作;在什么地方找到用來操作的數(shù)據(jù),結(jié)果存到何處等

中央處理器是控制計(jì)算機(jī)自動(dòng)完成取出指令和執(zhí)行指令任務(wù)的部件。它是計(jì)算機(jī)的核心部件,通常簡(jiǎn)稱為CPU(CentralProcessingUnit)一、CPU的功能

★指令控制

保證機(jī)器按程序規(guī)定的順序取出執(zhí)行★操作控制

CPU產(chǎn)生每條指令所對(duì)應(yīng)的操作信號(hào),并把各種操作信號(hào)送往相應(yīng)的部件,從而控制這些部件按指令的要求進(jìn)行動(dòng)作★時(shí)間控制

對(duì)各種操作的實(shí)施時(shí)間進(jìn)行定時(shí)★數(shù)據(jù)加工

對(duì)數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算處理5.1CPU的功能和組成

PCIRACCU時(shí)鐘ALU

MDR

MAR………控制信號(hào)標(biāo)志控制信號(hào)C0C1C2C3C4取指周期ADD@X

MDRPC

MARIRCUPCIRACCU時(shí)鐘ALU

MDR

MAR………控制信號(hào)標(biāo)志控制信號(hào)C1C2C3ADD@X間址周期

MAR

MDRIRPCC0PCIRACCU時(shí)鐘ALU

MDR

MAR………控制信號(hào)標(biāo)志控制信號(hào)C1C2C5ADD@X執(zhí)行周期C7C6C8

MARACALU

MDR

MDR…控制信號(hào)ACSDOUT地址有效地址失效片選失效數(shù)據(jù)有效數(shù)據(jù)穩(wěn)定高阻靜態(tài)RAM讀時(shí)序tAtCOtOHAtOTDtRC片選有效二、CPU的基本組成

控制器:完成對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)操作的協(xié)調(diào)與指揮。

(1)控制機(jī)器從內(nèi)存中取出一條指令,并指出下一條指令在內(nèi)存中的位置;(2)對(duì)指令進(jìn)行譯碼,并產(chǎn)生相應(yīng)的操作控制信號(hào),送往相應(yīng)的部件,啟動(dòng)規(guī)定的動(dòng)作;(3)指揮并控制CPU、內(nèi)存與輸入/輸出(I/O)設(shè)備之間數(shù)據(jù)流動(dòng)的方向。5.1CPU的功能和組成

二、CPU的基本組成5.1CPU的功能和組成

控制器:完成對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)操作的協(xié)調(diào)與指揮。取指令分析指令執(zhí)行指令,發(fā)出各種操作命令控制程序輸入及結(jié)果的輸出總線管理處理異常情況和特殊請(qǐng)求運(yùn)算器:數(shù)據(jù)加工處理部件,所進(jìn)行的全部操作由控制器發(fā)出的控制信號(hào)指揮

(1)執(zhí)行所有的算術(shù)運(yùn)算;(2)執(zhí)行所有的邏輯運(yùn)算,并進(jìn)行邏輯測(cè)試二、CPU的基本組成5.1CPU的功能和組成

算術(shù)邏輯單元狀態(tài)條件寄存器程序計(jì)數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC存儲(chǔ)器I/OCPUALU指令寄存器IR指令譯碼器操作控制器時(shí)序產(chǎn)生器時(shí)鐘狀態(tài)反饋取指控制執(zhí)行控制ccccc緩沖寄存器DRCPU的基本模型

即指令地址寄存器。存放當(dāng)前正在執(zhí)行的指令地址或下一條指令地址。指令地址形成:(PC)+1->PC。或:轉(zhuǎn)移指令修改其內(nèi)容用以存放當(dāng)前正在執(zhí)行的指令對(duì)指令寄存器中的操作碼進(jìn)行分析解釋,產(chǎn)生相應(yīng)的控制信號(hào)。脈沖源產(chǎn)生一定頻率的脈沖信號(hào)作為整個(gè)機(jī)器的時(shí)鐘脈沖,是機(jī)器周期和工作脈沖的基準(zhǔn)信號(hào)。根據(jù)當(dāng)前正在執(zhí)行的指令的需要,產(chǎn)生相應(yīng)的時(shí)序控制信號(hào)三、CPU中的主要寄存器

數(shù)據(jù)緩沖寄存器(DR)暫時(shí)存放由內(nèi)存讀出或?qū)懭氲闹噶罨驍?shù)據(jù)字指令寄存器(IR)保存當(dāng)前正在執(zhí)行的一條指令程序計(jì)數(shù)器(PC)確定下一條指令的地址地址寄存器(AR)保存當(dāng)前CPU所訪問的內(nèi)存單元的地址累加寄存器(AC)最常使用的一個(gè)通用寄存器狀態(tài)條件寄存器(PSW)保存由算術(shù)和邏輯指令的結(jié)果建立的各種條件碼5.1CPU的功能和組成

四、操作控制器與時(shí)序產(chǎn)生器

操作控制器在各寄存器之間建立數(shù)據(jù)通路(傳送信息的通路)

功能:

就是根據(jù)指令操作碼和時(shí)序信號(hào),產(chǎn)生各種操作控制信號(hào),以便正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制硬布線控制器微程序控制器時(shí)序產(chǎn)生器產(chǎn)生并發(fā)出計(jì)算機(jī)所需要的時(shí)序控制信號(hào)5.1CPU的功能和組成

5.2

指令周期—讀取指令指令地址送入主存地址寄存器讀主存,讀出內(nèi)容送入指定的寄存器—分析指令—按指令規(guī)定內(nèi)容執(zhí)行指令不同指令的操作步驟數(shù)和具體操作內(nèi)容差異很大—檢查有無中斷請(qǐng)求若無,則轉(zhuǎn)入下一條指令的執(zhí)行過程形成下一條指令地址指令的執(zhí)行過程取指令執(zhí)行指令一、指令周期的基本概念

指令周期

:

CPU從內(nèi)存取出一條指令并執(zhí)行完這條指令的時(shí)間總和CPU周期

:

又稱機(jī)器周期(總線周期),CPU訪問內(nèi)存所花的時(shí)間較長(zhǎng),因此用CPU從內(nèi)存讀取一條指令字的所需的最短時(shí)間來定義時(shí)鐘周期

:

通常稱為節(jié)拍脈沖或T周期。一個(gè)CPU周期包含若干個(gè)時(shí)鐘周期T

相互關(guān)系:

1個(gè)指令周期=若干個(gè)CPU周期

1個(gè)CPU周期=若干T周期

取指時(shí)間+執(zhí)行指令時(shí)間指令周期·CPU周期·時(shí)鐘周期020

CLA ;累加器清0021

ADD30 ;(AC)+(30)→AC

022

STA40 ;(AC)→(40)023

NOP ;空操作

024

JMP21 ;21→PC…030000006 ;數(shù)據(jù)…040存和數(shù) ;數(shù)據(jù)5條典型指令構(gòu)成的簡(jiǎn)單程序二、指令的執(zhí)行過程

一個(gè)CPU周期一個(gè)CPU周期取指令階段執(zhí)行指令階段開始取指令PC+1對(duì)指令譯碼執(zhí)行指令取下條指令PC+11、CLA指令的指令周期取出CLA指令算術(shù)邏輯單元狀態(tài)條件寄存器程序計(jì)數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時(shí)序產(chǎn)生器時(shí)鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+10000202021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA000021算術(shù)邏輯單元狀態(tài)條件寄存器程序計(jì)數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時(shí)序產(chǎn)生器時(shí)鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA000021000000執(zhí)行CLA指令2、ADD指令的指令周期

一個(gè)CPU周期一個(gè)CPU周期取指令階段執(zhí)行指令階段開始取指令PC+1對(duì)指令譯碼送操作數(shù)地址取下條指令PC+1取出操作數(shù)執(zhí)行加操作一個(gè)CPU周期算術(shù)邏輯單元狀態(tài)條件寄存器程序計(jì)數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時(shí)序產(chǎn)生器時(shí)鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000021ADDADD300000210000220000300000060+6=6000006取出并執(zhí)行ADD指令3、STA指令的指令周期

算術(shù)邏輯單元狀態(tài)條件寄存器程序計(jì)數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時(shí)序產(chǎn)生器時(shí)鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000022STASTA40000022000023000040000006000006000006取出并執(zhí)行STA指令4、NOP指令和JMP指令的指令周期算術(shù)邏輯單元狀態(tài)條件寄存器程序計(jì)數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRALU指令寄存器IR指令譯碼器操作控制器時(shí)序產(chǎn)生器時(shí)鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000024JMP21JMP21000024000021000006000006000025000021取出并執(zhí)行JMP指令公操作:一條指令執(zhí)行完畢。公操作例:如圖所示為雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路圖IRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GADDR2,R0;(R0)+(R2)R0要求:(1)畫出指令周期流程圖,設(shè)該指令的地址已放入PC中。(2)列出相應(yīng)的微操作控制信號(hào)序列。ADDR2,R0;(R0)+(R2)R0PCARMDRDRIRR2YR0XX+YR0IRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GPCARMDRDRIRR2YR0XX+YR0IRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GPCARMDRDRIRR2YR0XX+YR0IRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GIRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GPCARMDRDRIRR2YR0XX+YR0IRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GIRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GPCARMDRDRIRR2YR0XX+YR0IRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GIRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GPCARMDRDRIRR2YR0XX+YR0IRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GIRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GPCARMDRDRIRR2YR0XX+YR0IRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GIRPCARMDRR0R1R2R3XYALUGA總線B總線IRiIRoPCiPCoARiR/WDRiDRoR0iR0oR3iR3oXiYi+-GPCARMDRDRIRR2YR0XX+YR05、工作原理例:CPU結(jié)構(gòu)如圖所示,其中包括一個(gè)累加寄存器AC、一個(gè)狀態(tài)寄存器和其他四個(gè)寄存器,各部分之間的連線表示數(shù)據(jù)通路,箭頭表示信息傳送方向。

①標(biāo)明圖中四個(gè)寄存器的名稱。②簡(jiǎn)述取指令的數(shù)據(jù)通路。③簡(jiǎn)述完成指令LDAX的數(shù)據(jù)通路(X為內(nèi)存地址,LDA功能為(X)(AC))。④簡(jiǎn)述完成指令A(yù)DDY的數(shù)據(jù)通路(Y為內(nèi)存地址,ADD功能為(AC)+(Y)(AC))。⑤簡(jiǎn)述完成指令STAZ的數(shù)據(jù)通路(Z為內(nèi)存地址,STA功能為(AC)(Z))。MDRMARPCIRMDRMARPCIR5.3

時(shí)序產(chǎn)生器和控制方式

用二進(jìn)制碼表示的指令和數(shù)據(jù)都放在內(nèi)存里,那么CPU是怎樣識(shí)別出它們是數(shù)據(jù)還是指令呢?

從時(shí)間上來說:取指令事件發(fā)生在指令周期的第一個(gè)CPU周期中,即發(fā)生在“取指令”階段,而取數(shù)據(jù)事件發(fā)生在指令周期的后面幾個(gè)CPU周期中,即發(fā)生在“執(zhí)行指令”階段。

從空間上來說:如果取出的代碼是指令,那么一定經(jīng)DR送往指令寄存器IR,如果取出的代碼是數(shù)據(jù),那么一定送往運(yùn)算器。時(shí)間控制對(duì)計(jì)算機(jī)來說是非常重要的!一、時(shí)序信號(hào)的作用和體制

計(jì)算機(jī)的協(xié)調(diào)動(dòng)作需要時(shí)間標(biāo)志,而且需要采用多級(jí)時(shí)序體制。而時(shí)間標(biāo)志則用時(shí)序信號(hào)來體現(xiàn)。

硬布線控制器中,時(shí)序信號(hào)往往采用主狀態(tài)周期-節(jié)拍電位-節(jié)拍脈沖三級(jí)體制。主狀態(tài)周期(指令周期):包含若干個(gè)節(jié)拍周期,可以用一個(gè)觸發(fā)器的狀態(tài)持續(xù)時(shí)間來表示節(jié)拍電位(機(jī)器周期):表示一個(gè)CPU周期的時(shí)間,包含若干個(gè)節(jié)拍脈沖節(jié)拍脈沖(時(shí)鐘周期):表示較小的時(shí)間單位

微程序控制器中,時(shí)序信號(hào)則一般采用節(jié)拍電位-節(jié)拍脈沖二級(jí)體制。節(jié)拍脈沖節(jié)拍電位1主狀態(tài)周期節(jié)拍電位2主狀態(tài)周期-節(jié)拍電位-節(jié)拍脈沖數(shù)據(jù)準(zhǔn)備好后,以電位的方式送觸發(fā)器控制信號(hào)來到后,用一個(gè)脈沖信號(hào)把數(shù)據(jù)裝入觸發(fā)器數(shù)據(jù):電位控制信號(hào):脈沖節(jié)拍電位-節(jié)拍脈沖

IORQMREQRDWET1T2T3T4

IORQ°MREQ°RD°WE°T1°T2°T3°T4°MERQ’IORQ’RD’WR’Φ提供頻率穩(wěn)定且電平匹配的方波時(shí)鐘脈沖信號(hào)由石英晶體振蕩器組成產(chǎn)生一組有序的間隔相等或不等的脈沖序列啟動(dòng)停機(jī)二、時(shí)序信號(hào)產(chǎn)生器

啟??刂七壿嫻?jié)拍脈沖和讀寫時(shí)序譯碼邏輯環(huán)形脈沖發(fā)生器時(shí)鐘脈沖源三、控制方式控制不同操作序列時(shí)序信號(hào)的方法1.同步控制方式已定的指令在執(zhí)行時(shí)所需的CPU周期(機(jī)器周期)數(shù)和時(shí)鐘周期數(shù)都固定不變。例如采用完全統(tǒng)一的機(jī)器周期執(zhí)行各種不同的指令2.異步控制方式

控制器發(fā)出某一操作控制信號(hào)后,等待執(zhí)行部件完成操作后發(fā)“回答”信號(hào),再開始新的操作3.聯(lián)合控制方式同步控制和異步控制相結(jié)合的方式CPU周期取指周期CPU周期取源數(shù)CPU周期取目標(biāo)數(shù)CPU周期執(zhí)行周期P0P1P2W0W1完全同步控制方式W0W1…Wi第N條指令結(jié)束應(yīng)答W0W1…Wj第N+1條指令結(jié)束應(yīng)答啟動(dòng)下一條W0W1…Wk第N+2條指令結(jié)束應(yīng)答異步控制方式啟動(dòng)下一條i、j、k不一定相等一般采用兩條定時(shí)控制線:“請(qǐng)求”線和“回答”線演示控制器的功能就是按每條指令的要求產(chǎn)生所需的控制信號(hào)。因此在設(shè)計(jì)控制器時(shí)要求系統(tǒng)設(shè)計(jì)師提供一個(gè)完整的無二義性的指令系統(tǒng)說明書。產(chǎn)生控制信號(hào)一般有微程序控制和硬布線控制兩種方法。5.4微程序控制器的基本工作原理PCIRACCU時(shí)鐘ALU

MDR

MAR………控制信號(hào)標(biāo)志控制信號(hào)C0C1C2C3C4取指周期以ADD@X為例

MDRPC

MARIRCU1.不采用CPU內(nèi)部總線的方式5.4微程序控制器的基本工作原理一、控制信號(hào)舉例一、控制信號(hào)舉例1.不采用CPU內(nèi)部總線的方式PCIRACCU時(shí)鐘ALU

MDR

MAR………控制信號(hào)標(biāo)志控制信號(hào)C1C2C3C5ADD@X間址周期

MDR

MAR

MDRIRPCIRACCU時(shí)鐘ALU

MDR

MAR………控制信號(hào)標(biāo)志控制信號(hào)一、控制信號(hào)舉例1.不采用CPU內(nèi)部總線的方式C1C2C5ADD@X執(zhí)行周期C7C6C8

MARACALU

MDR

MDR…控制信號(hào)MDRMDRCU(1)ADD@X取指周期

PC

CU

發(fā)讀命令

1R

MDROP(IR)(PC)+1PCIRPCMARAC

YALUZ…控制信號(hào)IRiIRiPCOPCOMARiMARiMDROMDRO…數(shù)據(jù)線數(shù)據(jù)線控制信號(hào)CPU內(nèi)部總線時(shí)鐘2.采用CPU內(nèi)部總線方式地址線地址線MARMDRIRCUIRPCPCMDRMARCUIR(2)ADD@X間址周期

MDR

1R

MDR有效地址Ad(IR)MDROMDRO數(shù)據(jù)線數(shù)據(jù)線時(shí)鐘CUIRPCMARMDRACYALUZ…控制信號(hào)…控制信號(hào)CPU內(nèi)部總線MDRIRMARi

MARi地址線地址線MARIRiIRiMARMDRIRMDRMDRMDROMDROMDROMDROMDRO形式地址MAR

時(shí)鐘CUIRPCMARMDRACYALUZ…控制信號(hào)CPU內(nèi)部總線MDROMDRO(3)ADD@X執(zhí)行周期

1R

MDR

Z

AC(AC)+(Y)

MDR控制信號(hào)…MARMDR地址線地址線數(shù)據(jù)線數(shù)據(jù)線MARMDRYMDRMDRMDROMDROMDROMDROMDROMDROMDROYiYi

YALUACACOACOALUiALUiALUALUACZZZZOZOACiACiACACACACMARi

MARiALUAC一、控制信號(hào)舉例例:一條加法指令的執(zhí)行過程。rs,rd,rs1為通用寄存器地址;imm(或disp)為立即數(shù)(或位移量)。加法指令功能:(rs)+[(rs1)+disp]->rd取指令計(jì)算地址取數(shù)運(yùn)算送結(jié)果劃分機(jī)器周期的原則:總線不沖突。一、控制信號(hào)舉例指令格式:(1)取指微指令

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

W/R=0(23)。從存儲(chǔ)器取指令送數(shù)據(jù)總線。③指令送指令寄存器:DB→IR(5)④程序計(jì)數(shù)器+1:PC十1(3)取指令計(jì)算地址取數(shù)運(yùn)算送結(jié)果取指令:PC→ABW/R=0,M/IO=1;DB→IR;PC+1(2)計(jì)算地址微指令

①取兩個(gè)源操作數(shù)(計(jì)算地址用):

rsl→GR(8),(rsl)→ALU(10),disp→ALU(4)。②加法運(yùn)算:“+”(13)。③有效地址送地址寄存器:ALU→AR(19)。取指令計(jì)算地址取數(shù)運(yùn)算送結(jié)果計(jì)算地址rsl→GR,(rsl)→ALU,disp→ALU;“+”;ALU→AR

(3)取數(shù)微指令①數(shù)據(jù)地址送地址總線:AR→AB(20)。②發(fā)訪存控制命令:ADS(21),M/IO(22),W/R(23)。由存儲(chǔ)器將數(shù)據(jù)送數(shù)據(jù)總線DB。

③數(shù)據(jù)送數(shù)據(jù)寄存器:DB→DR(6)取指令計(jì)算地址取數(shù)運(yùn)算送結(jié)果取數(shù):AR→ABW/R=0M/IO=1DB→DR(4)加法運(yùn)算和送結(jié)果微指令

①兩源操作數(shù)送ALU:rs→GR(9),(rs)→ALU(11);DR→ALU(12)。②加法運(yùn)算:“+”(13)

③送結(jié)果:ALU→GR(17)取指令計(jì)算地址取數(shù)運(yùn)算送結(jié)果運(yùn)算送結(jié)果:

rs→GR(rs)→ALUDR→ALU“+”ALU→GR置N,Z,V,C5.4微程序控制器的基本工作原理微程序控制的基本思想就是把操作控制信號(hào)編成謂的“微指令”,存放到一個(gè)只讀存儲(chǔ)器里(控制存儲(chǔ)器CM)。當(dāng)機(jī)器運(yùn)行時(shí),一條又一條地讀出這些微指令,從而產(chǎn)生全機(jī)所需要的各種操作控制信號(hào),是相應(yīng)部件執(zhí)行所規(guī)定的操作。二、微程序控制的基本概念處理器內(nèi)部可以分為:控制部件和執(zhí)行部件微命令:控制部件向執(zhí)行部件發(fā)出的控制命令微操作:執(zhí)行部件接受微命令后所進(jìn)行的操作 (微操作在執(zhí)行部件中是最基本的操作)微指令:實(shí)現(xiàn)一定操作功能的一組微命令微程序:實(shí)現(xiàn)一條機(jī)器指令功能的微指令序列指令系統(tǒng)=所有指令,指令=微程序微程序=若干微指令,微指令=一組微命令微命令→微操作二、微程序控制的基本概念微操作相容性相斥性在同時(shí)或同一個(gè)CPU周期內(nèi)可以并行執(zhí)行的微操作不能在同時(shí)或不能在同一個(gè)CPU周期內(nèi)并行執(zhí)行的微操作R1R2R3ALU123468975DRXYCy+-M4、6、8相斥性5、7、9相斥性1、2、3相容性4、6、8和5、7、9的任意兩個(gè)微操作為相容性微指令1234567891011121314151617181920212223操作控制順序控制LDR1’LDR2’LDR3’R1XR1YR2XR2YDRXR3Y+M-RD’LDDR’LDIR’LDAR’LDIR’LDAR’PC+1P1P2直接地址機(jī)器指令與微指令程序機(jī)器指令1機(jī)器指令2機(jī)器指令i機(jī)器指令n……..………微指令2微指令1微指令i微指令n……..……..微程序程序計(jì)數(shù)器PC地址寄存器AR緩沖寄存器DR指令寄存器IR微地址寄存器μAR微指令寄存器μIR主存儲(chǔ)器控制存儲(chǔ)器CM微命令地址譯碼器地址譯碼機(jī)器指令級(jí)微指令級(jí)

微地址

形成部件順序邏輯CMAR地址譯碼控制存儲(chǔ)器標(biāo)志CLK下地址CMDR至CPU內(nèi)部和系統(tǒng)總線的控制信號(hào)OPIR操作控制順序控制微指令基本格式三、微程序控制器的基本原理1.控制信號(hào)2.控制信號(hào)的產(chǎn)生

微指令最簡(jiǎn)單的組成形式:

將每個(gè)控制信號(hào)用一個(gè)控制位來表示,當(dāng)該位為“1”時(shí),定義為有控制信號(hào),當(dāng)該位為“0”時(shí),沒有控制信號(hào)??刂拼鎯?chǔ)器容量為4K字,則每條微指令還需要12位來表示下址??刂拼鎯?chǔ)器的容量取決于實(shí)現(xiàn)指令系統(tǒng)所需的微程序長(zhǎng)度。下地址……控制信號(hào)操作控制下圖為加法指令的四條微指令編碼,每一小格表示一位(二進(jìn)制),空格表示0,第24位到第35位為下址。假設(shè)四條微指令的地址如下:取指微指令:1000Q 計(jì)算有效地址微指令:1001Q取數(shù)微指令:1002Q 計(jì)算并存數(shù)微指令:1003Q(1)取指微指令

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

W/R=0(23)。從存儲(chǔ)器取指令送數(shù)據(jù)總線。③指令送指令寄存器:DB→IR(5)④程序計(jì)數(shù)器+1:PC十1(3)(2)計(jì)算地址微指令

①取兩個(gè)源操作數(shù)(計(jì)算地址用):

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

(3)取數(shù)微指令①數(shù)據(jù)地址送地址總線:AR→AB(20)。②發(fā)訪存控制命令:ADS(21),M/IO(22),W/R(23)。由存儲(chǔ)器將數(shù)據(jù)送數(shù)據(jù)總線DB。

③數(shù)據(jù)送數(shù)據(jù)寄存器:DB→DR(6)(4)加法運(yùn)算和送結(jié)果微指令

①兩源操作數(shù)送ALU:rs→GR(9),(rs)→ALU(11);DR→ALU(12)。②加法運(yùn)算:“+”(13)

③送結(jié)果:ALU→GR(17)3.微程序的流程圖表示方框:表示微指令右下角的數(shù)字:表示下址上方的數(shù)字:微指令的地址

微地址

形成部件順序邏輯CMAR地址譯碼控制存儲(chǔ)器標(biāo)志CLK下地址CMDR至CPU內(nèi)部和系統(tǒng)總線的控制信號(hào)OPIR操作控制順序控制微指令基本格式4、微程序控制器的基本框圖5、工作原理控存M+1MM+2P+1QQ+2PP+2Q+1…取指周期

微程序?qū)?yīng)LDA操作的微程序?qū)?yīng)ADD操作的微程序Q+1Q+2MM+1M+2P+1P+2M………對(duì)應(yīng)STA操作的微程序K+1K+2MKK+2K+1LDAXADDYSTAZ主存用戶程序(1)取指階段MCMARCM(CMAR)CMDR由CMDR發(fā)命令形成下條微指令地址Ad(CMDR)CMARCM(CMAR)CMDR由CMDR發(fā)命令A(yù)d(CMDR)CMARCM(CMAR)CMDR由CMDR發(fā)命令M+1M+2PCMAR1RM(MAR)MDR(PC)+1PCMDRIR0010000M+2…100001M+1M…010010M+2M+1…形成下條微指令地址執(zhí)行取指微程序5、工作原理(2)執(zhí)行階段CM(CMAR)CMDR由CMDR發(fā)命令A(yù)d(CMDR)CMARCM(CMAR)CMDR由CMDR發(fā)命令A(yù)d(CMDR)CMARCM(CMAR)CMDR由CMDR發(fā)命令OP(IR)微地址形成部件CMAR(PCMAR)Ad(CMDR)CMARAd(IR)MAR1RM(MAR)MDRMDRAC00000010P+2…M執(zhí)行LDA微程序形成下條微指令地址P+1形成下條微指令地址P+2形成下條微指令地址M(MCMAR)01000P+2P+1…0001001P+1P…(3)取指階段CM(CMAR)CMDR由CMDR發(fā)命令MCMARPCMAR1R100001M+1M全部微指令存在CM中,程序執(zhí)行過程中只需讀出關(guān)鍵微指令的操作控制字段如何形成微操作命令微指令的后繼地址如何形成執(zhí)行取指微程序……5.4微程序控制器的基本工作原理四、機(jī)器周期與微指令周期的關(guān)系微指令周期=機(jī)器周期T1T2T3T4T1T2T3T4機(jī)器周期機(jī)器周期執(zhí)行微指令微指令周期讀微指令三、微程序控制器的基本原理5.4微程序控制器的基本工作原理6、微程序舉例例:十進(jìn)制加法PCARABUSDBUSDRIR,PC+1R1+R2R2P2R2+R3R2R2-R3R2P1Cy=10000000010101001000000010000R1R2R3ALU123468975DRXYCy+-M1234567891011121314151617181920212223操作控制順序控制LDR1’LDR2’LDR3’R1XR1YR2XR2YDRXR3Y+M-RD’LDDR’LDIR’LDAR’LDIR’LDAR’PC+1P1P2直接地址6、微程序舉例操作碼的判別測(cè)試Cy的判別測(cè)試PCARABUSDBUSDRIR,PC+1R1+R2R2P2R2+R3R2R2-R3R2P1Cy=10000000010101001000000010000000000000000111111000001234567891011121314151617181920212223LDR1’LDR2’LDR3’R1XR1YR2XR2YDRXR3Y+M-RD’LDDR’LDIR’LDAR’LDIR’LDAR’PC+1P1P2直接地址6、微程序舉例PCARABUSDBUSDRIR,PC+1R1+R2R2P2R2+R3R2R2-R3R2P1Cy=10000000010101001000000010000010100100100000000010011234567891011121314151617181920212223LDR1’LDR2’LDR3’R1XR1YR2XR2YDRXR3Y+M-RD’LDDR’LDIR’LDAR’LDIR’LDAR’PC+1P1P2直接地址6、微程序舉例PCARABUSDBUSDRIR,PC+1R1+R2R2P2R2+R3R2R2-R3R2P1Cy=10000000010101001000000010000010001001100000000100001234567891011121314151617181920212223LDR1’LDR2’LDR3’R1XR1YR2XR2YDRXR3Y+M-RD’LDDR’LDIR’LDAR’LDIR’LDAR’PC+1P1P2直接地址6、微程序舉例PCARABUSDBUSDRIR,PC+1R1+R2R2P2R2+R3R2R2-R3R2P1Cy=1000000001010100100000001000001000100100100000000000在實(shí)際進(jìn)行微程序設(shè)計(jì)時(shí),要考慮下面三個(gè)問題:(1)如何縮短微指令字長(zhǎng);(2)如何減少微程序長(zhǎng)度;(3)如何提高微程序的執(zhí)行速度。5.5微程序設(shè)計(jì)技術(shù)

1.直接控制法(不譯碼法)操作控制字段中的每一位代表一個(gè)微命令?!?”-有效,“0”-無效。

5.5微程序設(shè)計(jì)技術(shù)一、微指令的編碼方式——控制方式優(yōu)點(diǎn):簡(jiǎn)單直觀,輸出直接用于控制缺點(diǎn):微指令字較長(zhǎng),因而使控制存儲(chǔ)器容量較大。速度最快下地址……控制信號(hào)操作控制

微周期:是一條微指令所需的執(zhí)行時(shí)間。如果有若干個(gè)(一組)微命令,在每次選擇使用它們的微周期內(nèi),只有一個(gè)微命令起作用,那么這若干個(gè)微命令是互斥的。選擇互斥的微命令入同組分組編碼,用微命令譯碼器譯碼控制。2.字段直接編譯法(使用較普遍)將微指令的控制字段分成若干“段”,每段經(jīng)譯碼后發(fā)出控制信號(hào)。每個(gè)字段中的命令是互斥的??!譯碼…譯碼…譯碼…下地址操作控制控制信號(hào)縮短了微指令字長(zhǎng),增加了譯碼時(shí)間微程序執(zhí)行速度較慢一、微指令的編碼方式——控制方式

例:字段長(zhǎng)度為3位時(shí),最多只能表示7個(gè)互斥的微命令,通常代碼000表示不發(fā)微命令。字段長(zhǎng)度n與所能表示的微命令數(shù)m的關(guān)系:m=2n-1優(yōu)點(diǎn):縮短了微指令長(zhǎng)度。代價(jià):在微指令寄存器的輸出端,為該字段增加一個(gè)譯碼器,該譯碼器的輸出即為原來的微命令。2.字段直接編譯法(使用較普遍)一、微指令的編碼方式——控制方式例:已知微程序流程圖如圖所示。其中每一個(gè)框代表一條微指令,a、b、c、d、e、f、g、h、i、j代表10個(gè)微命令。為a、b、c、d、e、f、g、h、i、j1O個(gè)微命令設(shè)計(jì)格式并安排編碼。3、字段間接編譯法

如果在字段直接編譯法中,還規(guī)定一個(gè)字段的某些微命令,要兼由另一字段中的某些微命令來解釋,稱為字段間接編譯法。優(yōu)點(diǎn):進(jìn)一步減少了指令長(zhǎng)度。缺點(diǎn):削弱微指令的并行控制能力。A受B控制,B發(fā)b1微命令時(shí),字段A發(fā)出a1,1~a7,1中的一個(gè)微命令。B發(fā)b2微命令時(shí),字段A發(fā)出a1,2~a7,2中的一個(gè)微命令。一、微指令的編碼方式——控制方式規(guī)則:常用控制信號(hào)采用直接編碼法將互斥的信號(hào)作為一組編碼產(chǎn)生一、微指令的編碼方式——控制方式5.5微程序設(shè)計(jì)技術(shù)二、微程序流的控制5.5微程序設(shè)計(jì)技術(shù)微程序流的控制是指當(dāng)前微指令執(zhí)完畢后,怎樣控制產(chǎn)生后繼微指令的微地址。產(chǎn)生后繼指令地址的兩種方法:由指令操作碼譯碼器產(chǎn)生后繼微地址。由微指令的下址字段指出后繼微地址。二、微程序流的控制現(xiàn)行微指令:當(dāng)前正在執(zhí)行的微指令?,F(xiàn)行微地址:現(xiàn)行微指令所在的控制存儲(chǔ)器單元的地址。后繼微指令:下一條要執(zhí)行的微指令。后繼微地址:后繼微指令所在的控制存儲(chǔ)器單元地址。微程序控制:當(dāng)前微指令執(zhí)行完畢后,產(chǎn)生后繼微指令的微地址的方法。5.5微程序設(shè)計(jì)技術(shù)1、基本概念2、產(chǎn)生后繼微指令地址的幾種方法

(1)以增量方式產(chǎn)生后繼微地址A)微程序入口:首條微指令,由專門硬件電路產(chǎn)生B)順序執(zhí)行:后繼微地址=現(xiàn)行微地址+1C)轉(zhuǎn)移:后繼微地址=現(xiàn)行微地址+轉(zhuǎn)移條件譯碼(相對(duì)轉(zhuǎn)移量)D)由操作碼產(chǎn)生后繼地址操作碼地址碼…轉(zhuǎn)移條件+1微指令寄存器微程序入口轉(zhuǎn)移地址譯碼器譯碼器控制字段下址控制存儲(chǔ)器μPC(地址寄存器)IR指令譯碼PCARABUSDBUSDRIR,PC+1R1+R2R2P2R2+R3R2R2-R3R2P1Cy=100000000101010010000000100002、產(chǎn)生后繼微指令地址的幾種方法

(1)以增量方式產(chǎn)生后繼微地址A)微程序入口:首條微指令,由專門硬件電路產(chǎn)生B)順序執(zhí)行:后繼微地址=現(xiàn)行微地址+1C)轉(zhuǎn)移:后繼微地址=現(xiàn)行微地址+轉(zhuǎn)移條件譯碼(相對(duì)轉(zhuǎn)移量)D)由操作碼產(chǎn)生后繼地址2、產(chǎn)生后繼微指令地址的幾種方法

(1)以增量方式產(chǎn)生后繼微地址A)微程序入口:首條微指令,由專門硬件電路產(chǎn)生B)順序執(zhí)行:后繼微地址=現(xiàn)行微地址+1C)轉(zhuǎn)移:后繼微地址=現(xiàn)行微地址+轉(zhuǎn)移條件譯碼(相對(duì)轉(zhuǎn)移量)D)由操作碼產(chǎn)生后繼地址2、產(chǎn)生后繼微指令地址的幾種方法

(1)以增量方式產(chǎn)生后繼微地址優(yōu)點(diǎn):可使微指令的下址字段很短,僅起選擇作用。缺點(diǎn):微程序轉(zhuǎn)移很不靈活,使得微程序在控存中的物理空間分配相當(dāng)困難。

在圖中,μPC兼作控制存儲(chǔ)器的地址寄存器,輸入有四個(gè)來源。下址字段僅有兩位,其功能是選擇三個(gè)輸入源中的一個(gè)作為μPC的輸入。微程序入口是由專門的硬件產(chǎn)生的,不受下址字段控制。(2)增量與下址字段結(jié)合產(chǎn)生后繼微地址微指令的下址字段分成兩部分:

轉(zhuǎn)移控制字段BCF和轉(zhuǎn)移地址字段BAF,BCF控制轉(zhuǎn)移條件,BAF控制轉(zhuǎn)移的目標(biāo)地址。當(dāng)條件成立時(shí),微程序要轉(zhuǎn)移,將BAF送μPC,否則順序執(zhí)行下一條微指令(μPC+1)。執(zhí)行微程序條件轉(zhuǎn)移時(shí),決定轉(zhuǎn)移與否的硬件條件有好幾種。由BCF定義的八個(gè)微命令。BCF=0,順序執(zhí)行微命令,μPC+1為后繼微地址。BCF=1,條件轉(zhuǎn)移微命令,當(dāng)運(yùn)算結(jié)果為0時(shí),將BAF送μPC,否則μPC+lμPCBCF=2,條件轉(zhuǎn)移微命令,當(dāng)運(yùn)算結(jié)果溢出時(shí),將BAF送μPC,否則,μPC+1μPC。BCF=3,無條件轉(zhuǎn)移微命令,將BAF送μPC。BCF=4;測(cè)試循環(huán)微命令,假如CT≠0,表示需要繼續(xù)執(zhí)行循環(huán)微命令,將循環(huán)入口微地址從BAF送μPC。假如CT=0,表示循環(huán)結(jié)束,后繼微地址為μPC+1。本條微命令同時(shí)完成CT-1操作。BCF=5,轉(zhuǎn)微子程序微命令,把微子程序人口地址從BAF送μPC,從而實(shí)現(xiàn)轉(zhuǎn)移。在轉(zhuǎn)移之前要把該條微指令的下一地址(μPC+1)送入返回寄存器RR之中。BCF=6,返回微命令,把RR中的返回微地址送入μPC,從而實(shí)現(xiàn)從微子程序返回到原來的微程序。BCF=7,操作碼產(chǎn)生后繼微地址的微命令,這是取指后,按現(xiàn)行指令執(zhí)行的第一條微指令。BCF字段(3位)編碼后繼微地址μPC+1μPC+1μPC+1微命令名稱硬件條件計(jì)數(shù)器CT操作前操作返回寄存器RR輸入01順序執(zhí)行結(jié)果為0轉(zhuǎn)移(Z)結(jié)果為0結(jié)果不為0×××××××BAF2結(jié)果溢出轉(zhuǎn)移溢出不溢出×××××××BAFBAF無條件轉(zhuǎn)移3產(chǎn)生后繼微地址的微命令BCF字段編碼微命令名稱硬件條件計(jì)數(shù)器CT操作前操作返回寄存器RR輸入后繼微地址4測(cè)試循環(huán)××μPC+1BAF5為0不為0CT-1×××μPC+1BAF轉(zhuǎn)子微程序6返回××××RR××××7操作碼形成微址由操作碼形成產(chǎn)生后繼微地址的微命令

BAF的長(zhǎng)度有兩種情況:①與μPC的位數(shù)相等;可以從控制存儲(chǔ)器的任一單元取微指令。特點(diǎn):轉(zhuǎn)移靈活,但增加了微指令的長(zhǎng)度。②比μPC短;考慮到轉(zhuǎn)移點(diǎn)在μPC附近,或者在控制存儲(chǔ)器的某區(qū)域內(nèi),所以由原來的μPC的若干位與BAF組合成轉(zhuǎn)移微地址。特點(diǎn):轉(zhuǎn)移地址受到限制,但可縮短微指令長(zhǎng)度。(2)增量與下址字段結(jié)合產(chǎn)生后繼微地址

(3)多路轉(zhuǎn)移方式

一條微指令存在多個(gè)轉(zhuǎn)移分支的情況稱為多路轉(zhuǎn)移。后繼微地址的產(chǎn)生條件:運(yùn)算結(jié)果所置的標(biāo)志位N、Z、V、C等,計(jì)數(shù)器狀態(tài),通據(jù)通路狀態(tài)。

例:根據(jù)某些硬件狀態(tài)來決定后繼微地址。根據(jù)一種狀態(tài)(非0即1)來決定微地址可以有兩種情況,即兩路轉(zhuǎn)移;而根據(jù)兩種狀態(tài)來決定微地址可以有四種情況,即四路轉(zhuǎn)移。四路轉(zhuǎn)移涉及微地址的兩位,一般就定在微地址的最后兩位,也就是說當(dāng)執(zhí)行轉(zhuǎn)移微指令時(shí),根據(jù)條件可轉(zhuǎn)移到四個(gè)微地址中的一個(gè),這四個(gè)微地址的高位部分相等,僅是最低兩位不同。優(yōu)點(diǎn):實(shí)現(xiàn)多路轉(zhuǎn)移可減少微程序的長(zhǎng)度。例:微地址寄存器有6位(MA5~MA0),當(dāng)需要修改內(nèi)容時(shí),可通過某一位觸發(fā)器的強(qiáng)置端S將其置“1”?,F(xiàn)有三種情況:(1)執(zhí)行“取指”微指令后,微程序按IR的OP字段(IR3一IR0)進(jìn)行24=16路分支;(2)執(zhí)行條件轉(zhuǎn)移指令時(shí),按進(jìn)位標(biāo)志C的狀態(tài)進(jìn)行2路分支;(3)執(zhí)行控制指令微程序時(shí),IR4、IR5的狀態(tài)進(jìn)行22=4路分支,請(qǐng)按多路轉(zhuǎn)移法設(shè)計(jì)微程序轉(zhuǎn)移邏輯。微程序有三種判別測(cè)試,分別為P1、P2、P3。(1)用Pl和IR3~I(xiàn)R0修改MA3~MA0;(2)用P2和C修改MA0;(3)用P3和IR5,IR4修改MA5~MA4。(4)考慮時(shí)間因素,在一個(gè)CPU周期的T4時(shí)進(jìn)行修改即可得到轉(zhuǎn)移邏輯表達(dá)式

(4)微中斷

微中斷與程序中斷的概念相似,當(dāng)某一條件滿足時(shí),發(fā)出微中斷請(qǐng)求信號(hào),CPU在完成現(xiàn)行指令的微程序后響應(yīng)該中斷請(qǐng)求,進(jìn)入微中斷處理程序。該微程序的入口地址(硬件產(chǎn)生)即為剛剛執(zhí)行的微程序的后繼微地址。

設(shè)計(jì)人員在進(jìn)行微程序設(shè)計(jì)時(shí),已安排好微中斷處理程序在控制存儲(chǔ)器的位置,因此該微程序段的入口地址是已知的。當(dāng)CPU響應(yīng)微中斷請(qǐng)求時(shí),由硬件產(chǎn)生微中斷程序的入口地址。當(dāng)中斷處理完畢后,再返回到原來被中斷的程序。這也是產(chǎn)生后繼微地址的一種情況。例:微程序流程圖用下址字段法安排微地址。P2P1P0=000時(shí)為順序控制,分支地址修改方案設(shè)計(jì)如下:三、微指令的格式

微指令的格式大體上可分成兩類:水平型微指令和垂直型微指令。

1.水平型微指令

特點(diǎn):在一條微指令中定義并執(zhí)行多個(gè)并行操作微命令。一般格式為:

控制字段|判別測(cè)試字段|下地址字段

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

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

特點(diǎn):不強(qiáng)調(diào)實(shí)現(xiàn)微指令的并行控制功能,通常一條微指令只要求能控制實(shí)現(xiàn)一二種操作。這種微指令格式與指令相似;每條指令有一個(gè)操作碼;每條微指令有一個(gè)微操作碼。微指令的格式:例:指令字長(zhǎng)16位,微操作碼3位,有八條微指令如下。

微操作碼(3位)微操作數(shù)(13位)000(傳送)原寄存器(5位)目標(biāo)寄存器(5位)其他(3位)001(ALU數(shù)據(jù)源的選擇)左輸入源編址右輸入源編址ALU運(yùn)算選擇010(移位操作)寄存器編址移位次數(shù)移位方式011(內(nèi)存訪問)寄存器編址存儲(chǔ)器編址讀寫(2位)其他100(無條件轉(zhuǎn)移)D(無條件轉(zhuǎn)移微地址或微子程序的入口地址)(12位)S101(有條件轉(zhuǎn)移)D(有條件轉(zhuǎn)移微地址)(9位)測(cè)試條件110/111(其他指)微操作數(shù)3.水平型微指令與垂直型微指令的比較

(1)并行性、效率和靈活性: 水平好,垂直差。(2)指令執(zhí)行時(shí)間:水平短,垂直長(zhǎng)。(3)水平:微指令字長(zhǎng),微程序短。垂直:微指令字短,微程序長(zhǎng)。(4)用戶使用:水平難,垂直易。例:某機(jī)采用微程序控制方式,微指令字長(zhǎng)24位,水平型編碼控制的微指令格式,斷定方式,共有微命令30個(gè),構(gòu)成4個(gè)相斥類,各包含5個(gè)、8個(gè)、14個(gè)和3個(gè)微命令,外部條件共3個(gè)。①控制存儲(chǔ)器的容量應(yīng)為多少?②設(shè)計(jì)出微指令的具體格式。3+4+4+2+2=15地址位數(shù)=24-15=9容量:512×24四、微程序控制存儲(chǔ)器和動(dòng)態(tài)微程序設(shè)計(jì)1.微程序控制存儲(chǔ)器存儲(chǔ)介質(zhì)類型:RAM、ROM、EPROM等。

2.動(dòng)態(tài)微程序設(shè)計(jì)能夠根據(jù)用戶的要求來改變微程序的設(shè)計(jì)稱動(dòng)態(tài)微程序設(shè)計(jì)。

用于動(dòng)態(tài)微程序設(shè)計(jì)的控制存儲(chǔ)器稱為可寫控制存儲(chǔ)器(WCS)或用戶控制存儲(chǔ)器(UCS)。

3.控制存儲(chǔ)器的操作執(zhí)行一條微指令包括:取微指令和執(zhí)行微指令操作。根據(jù)這兩步是串行還是并行進(jìn)行而具有下述的兩種方式:

執(zhí)行一條微指令所需要的時(shí)間稱為微周期。在串行方式下微周期的安排如下:取第i+1條微指令執(zhí)行第

i

條微指令取第i條微指令執(zhí)行第i+1

條微指令(1)串行方式CMAR控制存儲(chǔ)器CM微程序流控制部件下址…控存地址寄存器微命令(a)原理圖

3.控制存儲(chǔ)器的操作

(1)串行方式微周期1微周期2取微指令1執(zhí)行微指令1取微指令2執(zhí)行微指令2置CMAR啟動(dòng)CM置執(zhí)行結(jié)果微命令執(zhí)行訪控存時(shí)間(b)時(shí)序圖

3.控制存儲(chǔ)器的操作

(1)串行方式(2)并行方式

將執(zhí)行本條微指令的功能與取下一條微指令的操作在時(shí)間上重疊起來。(因?yàn)閮煞N操作是在不同的部件中完成的)

執(zhí)行第i條微指令取第i

條微指令取第i+1條微指令執(zhí)行第i+1

條微指令取第i+2條微指令執(zhí)行第i+2

條微指令CMAR控存地址寄存器微指令寄存器(a)原理圖控制存儲(chǔ)器CM控制字段下址微程序流控制部件…(流水線寄存器)

3.控制存儲(chǔ)器的操作

(2)并行方式取微指令執(zhí)行微指令取微指令執(zhí)行微指令取微指令執(zhí)行微指令置CMAR啟動(dòng)CM置執(zhí)行結(jié)果微指令→μIR(b)執(zhí)行微指令時(shí),先將微指令送入IR(2)并行方式

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

第二級(jí)采用水平微程序,由第一級(jí)調(diào)用,本身具有并行操作控制的能力但不含下址,可以被第一級(jí)重復(fù)調(diào)用。每條毫微指令各不相同。

(1)

毫微程序:用來解釋微程序的微程序。

毫微指令:解釋微指令的微指令。其主要目的是為了減少控制存儲(chǔ)器的容量。(2)設(shè)計(jì)方法:采用兩級(jí)法。第一級(jí)采用垂直微程序,主要功能是簡(jiǎn)單分類和下址的確定,該級(jí)很容易實(shí)現(xiàn)微程序設(shè)計(jì)的自動(dòng)化,其控制存儲(chǔ)器的主要特點(diǎn)是字短。

特點(diǎn):控制存儲(chǔ)器字?jǐn)?shù)較少,但每個(gè)字的長(zhǎng)度較長(zhǎng)。RR…CMAR—2控制存儲(chǔ)器(毫微程序)水平微指令寄存器微命令垂直微指令寄存器轉(zhuǎn)移地址控制存儲(chǔ)器(微程序)CMAR—1+1μOP地址5.微程序設(shè)計(jì)語(yǔ)言微程序設(shè)計(jì)語(yǔ)言:設(shè)計(jì)者或其他用戶用來編制微序的語(yǔ)言。源微程序:用微程序設(shè)計(jì)語(yǔ)言編制的程序。微編譯程序:將源微程序編譯成二進(jìn)制碼的程序。注意:匯編語(yǔ)言與微匯編語(yǔ)言的相同點(diǎn)與不同點(diǎn)。

例:某32位機(jī)共有微操作控制信號(hào)52個(gè),構(gòu)成5個(gè)相斥類的微命令組,各組分別包含4個(gè)、5個(gè)、8個(gè)、15個(gè)和20個(gè)微命令;可判定的外部條件有CY和ZF兩個(gè),微指令字長(zhǎng)30位,(1)給出采用斷定方式的水平型微指令格式。(2)控制存儲(chǔ)器的容量應(yīng)為多少位?下一地址字段的長(zhǎng)度為30-(3+3+4+4+5+2)=9位,表示控制存儲(chǔ)器的容量為29,因此控存容量為29×30=512×30(位)例:某機(jī)的微指令格式中有10個(gè)分離的控制字段C0~C9,每個(gè)字段Ci其中可激活Ni個(gè)微操作中的某一個(gè)。每個(gè)字段Ci中Ni的定義為:(1)為表示這10個(gè)控制字段至少需要多少控制位?(2)如果各字段都采用純水平編碼格式,需要的最大控制位數(shù)是多少?(1)34位(2)5.6硬布線控制器硬布線控制器把控制部件看作為產(chǎn)生專門固定時(shí)序控制信號(hào)的邏輯電路(以使用最少元件和取得最高操作速度為設(shè)計(jì)目標(biāo))硬布線控制的優(yōu)點(diǎn):速度較快;缺點(diǎn):不容易修改添加新功能微程序控制的優(yōu)點(diǎn):具有規(guī)整性、靈活性、可維護(hù)性等;缺點(diǎn):采用存儲(chǔ)程序原理,需要執(zhí)行多條微指令,速度較慢通過邏輯電路直接連線而產(chǎn)生的,所以又稱為組合邏輯控制方式。至于控制器的其他組成部分,諸如時(shí)鐘、啟停電路、程序計(jì)數(shù)器、指令寄存器以及電路配合問題等等,則不因控制方式而異。5.6硬布線控制器硬布線控制方式:一、時(shí)序與節(jié)拍一條指令的實(shí)現(xiàn)可分成:取指、計(jì)算地址、取數(shù)及執(zhí)行等幾個(gè)步驟。在微程序控制方式中,每一步由一條微指令實(shí)現(xiàn),而硬布線控制方式則由指令的操作碼直接控制并產(chǎn)生實(shí)現(xiàn)上述各步驟所需的控制信號(hào)。一條指令的每一步由一個(gè)機(jī)器周期實(shí)現(xiàn),如何區(qū)分一條指令的四個(gè)機(jī)器周期呢?5.6硬布線控制器一、時(shí)序與節(jié)拍方法有兩種:方法1.兩位計(jì)數(shù)器的譯碼輸出產(chǎn)生的四個(gè)狀態(tài)來表示當(dāng)前所處的機(jī)器周期。方法2.用四位觸發(fā)器來分別表示四個(gè)周期,當(dāng)機(jī)器處于某一周期時(shí),相應(yīng)的觸發(fā)器處于“1”狀態(tài),而其余三個(gè)觸發(fā)器則處于“0”狀態(tài),四位移位寄存器即可實(shí)現(xiàn)此功能。5.6硬布線控制器兩位計(jì)數(shù)器譯碼輸出4位

由于每條指令的功能不同,機(jī)器周期數(shù)和長(zhǎng)短有所不同,計(jì)數(shù)器或移位寄存器的工作時(shí)序發(fā)生變化的規(guī)律與指令有關(guān)。A指令需4個(gè)機(jī)器周期B指令需3個(gè)機(jī)器周期A指令:cyA’=cyAcyB+cyAcyB;cyB’=cyAcyB+cyAcyB=cyB。B指令:cyA’=cyAcyB+cyAcyB=cyB;cyB’=cyAcyB。當(dāng)前周期計(jì)數(shù)狀態(tài)下一周期計(jì)數(shù)狀態(tài)A指令:cyA’=cyAcyB+cyAcyB;cyB’=cyAcyB+cyAcyB=cyB。B指令:cyA’=cyAcyB+cyAcyB=cyB;cyB’=cyAcyB。根據(jù)邏輯表達(dá)式畫出邏輯圖如下:''MN二、操作控制信號(hào)的產(chǎn)生

1.操作碼譯碼器

指令:操作碼+地址碼在機(jī)器內(nèi)設(shè)置一個(gè)指令譯碼器輸入:操作碼輸出:反映出當(dāng)前正在執(zhí)行的指令。由譯碼器的輸出和機(jī)器周期狀態(tài)cyl~cy4作為輸入,使用邏輯電路產(chǎn)生操作控制信號(hào)。7位OP以加法指令為例,假設(shè)一條加法指令的功能是由四個(gè)機(jī)器周期cyl~cy4完成的,分別為取指、計(jì)算有效地址、取操作數(shù)、進(jìn)行加法運(yùn)算并送結(jié)果。(1)取指令周期:控制信號(hào)的邏輯式為:

PC→AB=加法指令·cy1ADS=加法指令·cy1·T1M/IO=加法指令·

cy1W/R=加法指令·

cy1DB→IR=加法指令·

cy1PC+1=加法指令·

cy12.操作控制信號(hào)的產(chǎn)生例:一條加法指令的執(zhí)行過程。指令格式:

PC→AB=cy1ADS=cy1·T1M/IO=cy1W/R=cy1DB→IR=cy1PC+1=cy1(2)在計(jì)算地址周期cy2,

列出邏輯表達(dá)式rsl→GR=加法指令·cy2

(rsl)→ALU=加法指令·cy2

disp→ALU=加法指令·cy2“+”=加法指令·cy2ALU→AR=加法指令·cy2對(duì)每一條指令都進(jìn)行同樣的分析,得出邏輯表達(dá)式。(3)取數(shù)周期cy3AR→AB=加法指令·cy3

ADS=加法指令·cy3

M/IO=加法指令·cy3

W/R=加法指令·cy3

DB→DR=加法指令·cy3

(4)加法運(yùn)算和送結(jié)果取數(shù)周期cy4rs→GR=加法指令·cy4

(rs)→ALU=加法指令·cy4

DR→ALU=加法指令·cy4

“+”=加法指令·cy4

ALU→GR=加法指令·cy4(1)取指周期cy1的信號(hào)對(duì)所有指令均相同。

主要結(jié)論:(2)同一控制信號(hào)可能在多個(gè)指令中運(yùn)用。如:‘+’=加法指令·cy2+加法指令·cy4+減法指令·cy2+轉(zhuǎn)移指令·cy2+……(3)同種類型的指令所需要的控制信號(hào)大部分相同。如:所有的算術(shù)邏輯運(yùn)算指令僅在ALU的操作命令及是否置狀態(tài)位上不同,其他均完全相同。(4)在確定指令操作碼時(shí),要認(rèn)真做好分類。三、控制器的組成三、控制器的組成

程序計(jì)數(shù)器的輸入:有四種來源。(1)開機(jī)后的reset信號(hào),將PC置以初始地址;(2)順序執(zhí)行指令:由PC+1形成下一條指令地址;(3)轉(zhuǎn)移:由ALU送來轉(zhuǎn)移地址(通過ALU部件計(jì)算有效地址)(4)外來中斷請(qǐng)求信號(hào):若CPU響應(yīng)中斷,則由中斷控制邏輯部件產(chǎn)生中斷入口地址。1.程序計(jì)數(shù)器和中斷控制邏輯三、控制器的組成如操作碼為7位,則允許計(jì)算機(jī)最多設(shè)置128條指令。

譯碼器的最基本形式為:輸入:7位操作碼輸出:128條線中,在任何時(shí)候只有1根為高電位,其余均為低電位(或只有1根為低電位,其余均為高電位),每1根輸出線代表一條指令。2.譯碼器三、控制器的組成

3.硬布線邏輯的實(shí)現(xiàn)途徑

用PLA(可編程邏輯陣列,地址與存儲(chǔ)區(qū)或均可編程)、PAL(可編程陣列邏輯,與可編程、或不可編程、增加三態(tài)輸出器件及記憶元件)、GAL(通用陣列邏輯,與或均可編程、輸出邏輯宏單元)或半定制電路門陣列(GA)來實(shí)現(xiàn)。三、控制器的組成四、硬布線控制邏輯設(shè)計(jì)中的若干問題—設(shè)計(jì)步驟1.指令操作碼的代碼分配主要目標(biāo):簡(jiǎn)化控制部分的電路,減少延遲時(shí)間。主要難點(diǎn): (1)CISC不定長(zhǎng)操作碼的譯碼困難; (2)為后續(xù)升級(jí)系統(tǒng)預(yù)留指令位置困難。2.確定機(jī)器周期、節(jié)拍與主頻保證大部分指令在一個(gè)周期內(nèi)完成,部分指令通過如“ready”信號(hào)等方式來增加機(jī)器周期來完成。

3.根據(jù)指令功能,確定每一條指令所需的機(jī)器周期數(shù)以及每一周期所完成的操作。如:“+”=加法指令·(cy2+cy4)+減法指令·cy2+轉(zhuǎn)移指令·cy2+……“讀”=cy1+加法指令·cy3+減法指令·cy3+……如:乘法采用加法與移位操作,每位執(zhí)行一個(gè)周期等方法。

4.綜合所有指令的每一個(gè)操作命令(寫出邏輯表達(dá)式,并化簡(jiǎn))四、硬布線控制邏輯設(shè)計(jì)中的若干問題—設(shè)計(jì)步驟五、硬布線控制與微程序控制的比較

1.

實(shí)現(xiàn)微程序控制通過控制存儲(chǔ)器內(nèi)的代碼來實(shí)現(xiàn),調(diào)試、修改方便;硬布線控制通過組合電路實(shí)現(xiàn),調(diào)試、修改復(fù)雜。

2.

性能微程序控制速度較慢;硬布線控制速度很快,主要用于高速和RISC機(jī)器中。傳統(tǒng)CPU舉例Intel8088CPUIntel8088是一種通用的準(zhǔn)16位微處理器,其內(nèi)部結(jié)構(gòu)為16位,與外部交換的數(shù)據(jù)為8位。它可以處理16位數(shù)據(jù)(具有16位運(yùn)算指令,包括乘除法指令),也可處理8位數(shù)據(jù)。它有20條地址線,直接尋址能力達(dá)到1M字節(jié)。CPU從功能上來說分成總線接口單元BIU和執(zhí)行單元EU兩大部分。BIU負(fù)責(zé)與存儲(chǔ)器和外圍設(shè)備接口,即8088CPU與存儲(chǔ)器和外圍設(shè)備之間的信息傳送,都是由BIU進(jìn)行的。EU部分負(fù)責(zé)指令的執(zhí)行。取指部分與執(zhí)行指令部分是獨(dú)立并行工作的,在一條指令的執(zhí)行過程中,可取出下一條(或多條)指令,在指令流隊(duì)列寄存器中排隊(duì)。在一條指令執(zhí)行完以后就可以立即執(zhí)行下一條指令,減少了CPU為取指令而等待的時(shí)間,提高了系統(tǒng)的運(yùn)行速度。5.7傳統(tǒng)CPU二、IBM3705.8流水CPU洗衣房的流水作業(yè)三個(gè)階段:1.水洗(30)2.烘干(40)3.熨燙(20)ABCD6PM789TaskOrderTime304040404020演示一、流水CPU的結(jié)構(gòu)指令流水線

IF(InstructionFetch) 取指令階段ID(InstructionDecode) 指令譯碼階段EX(Execute) 執(zhí)行運(yùn)算階段MEM(MemoryAccess) 存儲(chǔ)器訪問階段WB(WriteBack) 寫回結(jié)果階段WB二、流水線的時(shí)空?qǐng)D流水線技術(shù):把一個(gè)重復(fù)的過程分解為若干個(gè)子過程,每個(gè)子程序可以與其他子過程同時(shí)進(jìn)行描述流水線的工作,最常用的方法是時(shí)間-空間圖(時(shí)空?qǐng)D)橫坐標(biāo):表示時(shí)間,即各個(gè)任務(wù)在流水線中所經(jīng)過的時(shí)間縱坐標(biāo):表示空間,即流水線的各個(gè)子過程,也稱為級(jí)、段、流水線深度(Stage)非流水計(jì)算機(jī)的時(shí)空?qǐng)D每4個(gè)機(jī)器周期才有一個(gè)輸出結(jié)果流水計(jì)算機(jī)的時(shí)空?qǐng)D每個(gè)機(jī)器周期可以輸出一個(gè)結(jié)果演示三、流水線的特點(diǎn)流水線實(shí)際上是把一個(gè)功能部件分解成多個(gè)獨(dú)立的子功能部件(一個(gè)任務(wù)也就分成了幾個(gè)子任務(wù),每個(gè)子任務(wù)由一個(gè)子功能部件完成),并依靠多個(gè)子功能部件并行工作來縮短所有任務(wù)的執(zhí)行時(shí)間流水線有助于提高整個(gè)程序(所有任務(wù))的吞吐率,但并沒有減少每個(gè)指令(任務(wù))的執(zhí)行時(shí)間流水線各個(gè)功能段所需時(shí)間應(yīng)盡量相等。否則,時(shí)間長(zhǎng)的功能段將成為流水線的“瓶頸”,會(huì)造成流水線的“阻塞”(Stall)流水線開始需要“通過時(shí)間”(Fill)和最后需要“排空時(shí)間”(Drain)。流水線只有處理連續(xù)不斷的任務(wù)才能發(fā)揮其效率四、流水線中的主要問題流水線中存在一些相關(guān)(沖突、冒險(xiǎn)Hazard,相關(guān)、依賴Dependence,競(jìng)爭(zhēng)Competition)的情況,它使得下一條指令無法在設(shè)計(jì)的時(shí)鐘周期內(nèi)執(zhí)行。這些相關(guān)將降低流水線性能主要有三種類型的相關(guān)(沖突)結(jié)構(gòu)相關(guān)(資源沖突):當(dāng)指令重疊執(zhí)行過程中,硬件資源滿足不了指令重疊執(zhí)行的要求數(shù)據(jù)相關(guān)(數(shù)據(jù)沖突):在同時(shí)執(zhí)行的多條指令中,一條指令依賴前一條指令的執(zhí)行結(jié)果(數(shù)據(jù))卻無法得到控制相關(guān)(控制沖突):流水線遇到分支指令或其他改變PC值的指令1.資源相關(guān)

資源相關(guān)是指多條指令進(jìn)入流水線后,在同一機(jī)器時(shí)鐘周期內(nèi)爭(zhēng)用同一個(gè)功能部件所發(fā)生的沖突

例:假定一條指令流水線由五段組成,且僅有IF過程和MEM過程需要訪問存儲(chǔ)器I1與I4兩條指令在時(shí)鐘4爭(zhēng)用存儲(chǔ)器資源的相關(guān)沖突2.數(shù)據(jù)相關(guān)ADDR1,R2,R3 ;

R2+R3→R1SUBR4,R1,R5 ;

R1-R5→R4ANDR6,R1,R7 ;

R1∧R7→R0指令發(fā)生數(shù)據(jù)相關(guān)沖突

3.控制相關(guān)控制相關(guān)沖突由轉(zhuǎn)移指令(分支指令)引起執(zhí)行轉(zhuǎn)移指令時(shí),依據(jù)轉(zhuǎn)移條件的產(chǎn)生結(jié)果 可能為順序取下條指令 也可能轉(zhuǎn)移到新的目標(biāo)地址取指令 地址不定,流水線需要暫停、發(fā)生斷流轉(zhuǎn)移指令主要有: 無條件轉(zhuǎn)移指令:跳轉(zhuǎn)、過程調(diào)用和返回 條件分支指令五、Pentium的超標(biāo)量流水線指令預(yù)取PF和指令譯碼D1步驟可以并行取出、譯

溫馨提示

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

評(píng)論

0/150

提交評(píng)論