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

下載本文檔

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

文檔簡(jiǎn)介

第4章中央處理器(教材第5章)教學(xué)內(nèi)容①CPU功能和組成②指令周期基本概念③硬布線控制器設(shè)計(jì)技術(shù)④微程序控制器設(shè)計(jì)技術(shù)⑤流水處理器,以及其他技術(shù)教學(xué)重點(diǎn)與難點(diǎn)①分析CPU數(shù)據(jù)通路的,具體操作的微命令的確定和實(shí)現(xiàn)過(guò)程的流程圖描述②對(duì)指令具體字段、相關(guān)寄存器的分析,微程序控制器、組合邏輯控制器的分析、比較、設(shè)計(jì)③流水處理器的基本概念第1節(jié)CPU的功能和組成第2節(jié)指令周期第3節(jié)時(shí)序信號(hào)和控制方式第4節(jié)一個(gè)模型計(jì)算機(jī)和控制器初步設(shè)計(jì)第5節(jié)硬布線控制器第6節(jié)微程序控制器及微程序設(shè)計(jì)第7節(jié)傳統(tǒng)CPU介紹第8節(jié)流水CPU第9節(jié)RISCCPU第1節(jié)CPU的功能和組成

一、CPU的功能二、CPU的組成三、CPU中的主要寄存器四、操作控制單元與時(shí)序產(chǎn)生器一、CPU的功能1指令控制程序執(zhí)行順序控制2操作控制操作控制單元產(chǎn)生取出的一條指令的各種操作信號(hào)和執(zhí)行該指令的所須的各種操作信號(hào).3時(shí)間控制

對(duì)操作信號(hào)進(jìn)行時(shí)間上的定時(shí).4數(shù)據(jù)加工

算術(shù)邏輯運(yùn)算FetchDecodeExec二、CPU的組成1

運(yùn)算器ALU\寄存器\數(shù)據(jù)緩沖寄存器\狀態(tài)條件寄存器PSW主要功能在第2章中已講2控制器PC\指令寄存器IR\指令譯碼器\時(shí)序產(chǎn)生器\操作控制器主要功能:從指令Cache中取指令,確定下一條指令在指令Cache的位置

對(duì)指令譯碼\測(cè)試產(chǎn)生相應(yīng)的操作控制信號(hào)控制CPU與Cache\MEM\輸入\輸出間的數(shù)據(jù)流動(dòng)3當(dāng)前CPU中新增加的部分浮點(diǎn)運(yùn)算器\CACHEALUC1R0R1R2R3C2通用寄存器數(shù)據(jù)緩沖寄存器DR狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……304031數(shù)據(jù)CacheAR地址寄存器地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC程序計(jì)數(shù)器+1地址總線地址總線DBUS數(shù)據(jù)指令時(shí)序發(fā)生器操作控制器指令譯碼OP地址字段C1C2CnCiIR指令寄存器指令集確定后,檢查指令系統(tǒng),根據(jù)指令功能,設(shè)計(jì)ALU,確定數(shù)據(jù)通路、控制部件?。。BUSOC三、CPU中的主要寄存器CPU中至少有如下六類寄存器1PC程序計(jì)數(shù)器2指令寄存器3地址寄存器4數(shù)據(jù)緩沖器5累加寄存器及通用寄存器6狀態(tài)條件寄存器PSW程序計(jì)數(shù)器(PC)指示(指出)下一條指令的內(nèi)存地址.

指令寄存器(IR)

指令寄存器用來(lái)保存當(dāng)前正在執(zhí)行的一條指令的內(nèi)容。當(dāng)執(zhí)行一條指令時(shí),先把它從cache(或內(nèi)存)取到緩沖寄存器中,然后再傳送至指令寄存器。指令譯碼IRAddressOP0010010000000001數(shù)據(jù)地址寄存器(AR,MAR)

地址寄存器用來(lái)保存當(dāng)前CPU所訪問(wèn)的Cache或內(nèi)存單元的地址,直到內(nèi)存的讀/寫(xiě)操作完成為止。數(shù)據(jù)緩沖寄存器(DR)

數(shù)據(jù)緩沖寄存器用來(lái)暫時(shí)存放由內(nèi)存儲(chǔ)器讀出或要寫(xiě)入內(nèi)存儲(chǔ)器的一條指令或一個(gè)數(shù)據(jù)字緩沖寄存器的作用是:(1)作為ALU運(yùn)算結(jié)果和通用寄存器之間傳送的緩沖(2)CPU與內(nèi)存、外部設(shè)備之間信息傳送的中轉(zhuǎn)站,起緩沖作用(CPU和內(nèi)存、外圍設(shè)備之間在操作速度上的差別)(3)單累加器結(jié)構(gòu)的運(yùn)算器中,數(shù)據(jù)緩沖寄存器還可兼作為操作數(shù)寄存器。累加寄存器(ACC)及通用寄存器累加寄存器ACC通常簡(jiǎn)稱為累加器,是一個(gè)通用寄存器。功能:當(dāng)運(yùn)算器的算術(shù)邏輯單元ALU)執(zhí)行算術(shù)或邏輯運(yùn)算時(shí),為ALU提供一個(gè)工作區(qū)。累加寄存器暫時(shí)存放ALU運(yùn)算的結(jié)果信息。顯然,運(yùn)算器中至少要有一個(gè)累加寄存器。

當(dāng)使用多個(gè)累加器時(shí),就變成通用寄存器堆結(jié)構(gòu)(RegisterFile,RF),其中任何一個(gè)可存放源操作數(shù),也可存放結(jié)果操作數(shù)。在這種情況下,需要在指令格式中對(duì)寄存器號(hào)加以編址。狀態(tài)條件寄存器(PSW)

保存由算術(shù)指令和邏輯指令運(yùn)行或測(cè)試的結(jié)果建立的各種條件碼內(nèi)容:運(yùn)算結(jié)果進(jìn)位標(biāo)志(C)運(yùn)算結(jié)果溢出標(biāo)志(V)運(yùn)算結(jié)果為零標(biāo)志(Z),運(yùn)算結(jié)果為負(fù)標(biāo)志(N)中斷和系統(tǒng)工作狀態(tài)等信息設(shè)標(biāo)志位四操作控制單元與時(shí)序產(chǎn)生器1.微操作與數(shù)據(jù)通路2.操作控制器3.時(shí)序發(fā)生器微操作(Microoperation)控制器在實(shí)現(xiàn)一條指令的功能時(shí),總是把每一條指令分解成時(shí)間上先后有序的一系列最基本、最簡(jiǎn)單、不可再分的操作控制動(dòng)作這種最基本、最簡(jiǎn)單、不可再分的操作稱為微操作1.微操作與數(shù)據(jù)通路微操作控制信號(hào)數(shù)據(jù)通路(DataPath)通常把許多寄存器之間及ALU與存儲(chǔ)器等各部件間的傳輸信息的通路稱為數(shù)據(jù)通路控制信息從什么地方開(kāi)始,中間經(jīng)過(guò)哪個(gè)寄存器或多路開(kāi)關(guān),最后傳送到哪個(gè)寄存器在數(shù)據(jù)通路中,微操作通過(guò)自身的控制作用和彼此之間的密切配合,使指令流、數(shù)據(jù)流等信息流按照預(yù)定的路徑流動(dòng),以實(shí)現(xiàn)指令的功能每一條指令的功能決定了它所需要的一系列帶時(shí)序的微操作信號(hào)2.操作控制器控制器的基本功能是負(fù)責(zé)指令的讀出、識(shí)別和解釋,并指揮協(xié)調(diào)各功能部件執(zhí)行指令操作控制器是CPU中完成取指令和執(zhí)行指令全過(guò)程的部件其主要功能是根據(jù)指令操作碼和時(shí)序信號(hào)的要求,產(chǎn)生各種操作控制信號(hào)以便在各寄存器之間正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制根據(jù)設(shè)計(jì)方法不同,操作控制器可分為組合邏輯控制器和微程序控制器兩種二者的區(qū)別在于其中的控制信號(hào)形成部件不同,進(jìn)而反映出不同的設(shè)計(jì)原理和方法根據(jù)使用器件的不同,組合邏輯控制器又可進(jìn)一步細(xì)分為硬連線控制器和門(mén)陣列控制器3.時(shí)序發(fā)生器CPU中除了操作控制器外,還必須包括時(shí)序發(fā)生器由于計(jì)算機(jī)的高速工作,每一個(gè)動(dòng)作的時(shí)間必須非常嚴(yán)格,不能有任何差錯(cuò)時(shí)序發(fā)生器的作用對(duì)操作控制器產(chǎn)生的各種控制信號(hào)實(shí)施時(shí)間上的嚴(yán)格控制產(chǎn)生各功能部件所需要的定時(shí)控制信號(hào)數(shù)據(jù)通路

是許多寄存器之間、ALU、數(shù)據(jù)存儲(chǔ)器及相關(guān)部件傳送信息的通路。操作控制器的功能:

根據(jù)指令操作碼和時(shí)序信號(hào),產(chǎn)生各種操作控制信號(hào),以便正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制??刂破鞯脑O(shè)計(jì)方法時(shí)序邏輯型、存儲(chǔ)邏輯型、時(shí)序邏輯與存儲(chǔ)邏輯結(jié)合型三種。硬布線控制器是采用時(shí)序邏輯技術(shù)來(lái)實(shí)現(xiàn)的.微程序控制器是采用存儲(chǔ)邏輯來(lái)實(shí)現(xiàn)的前兩種方式的組合第2節(jié)指令周期一、指令周期的基本概念二、六條指令的指令執(zhí)行的過(guò)程三、用方框圖語(yǔ)言表示指令周期指令周期=CPU取出并執(zhí)行一條指令所需的時(shí)間指令周期則由兩部分時(shí)間構(gòu)成:取指周期和執(zhí)行周期指令取指周期相同,但對(duì)執(zhí)行周期則因指令不同而有差異。指令周期可用更基本的時(shí)間單位:CPU周期描述CPU周期:即機(jī)器周期,CPU訪問(wèn)一次內(nèi)存所花的時(shí)間較長(zhǎng),因此用從內(nèi)存讀取一條指令字的最短時(shí)間來(lái)定義一、指令周期的基本概念CPU的基本工作是執(zhí)行預(yù)先存儲(chǔ)的指令序列(即程序)程序的運(yùn)行過(guò)程實(shí)際上是不斷地(取出指令、分析指令)、(執(zhí)行指令)的過(guò)程CPU從存放程序的主存儲(chǔ)器里取出一條指令譯碼并執(zhí)行這條指令保存執(zhí)行結(jié)果緊接著又去取指令,譯碼,執(zhí)行指令……如此周而復(fù)始,反復(fù)循環(huán),使得計(jì)算機(jī)能夠自動(dòng)地工作除非遇到停機(jī)指令,否則這個(gè)循環(huán)將一直進(jìn)行下去指令周期中的操作:1.取指令階段2.指令譯碼階段3.執(zhí)行指令階段4.訪存取數(shù)階段5.結(jié)果寫(xiě)回階段取指周期執(zhí)行周期幾乎所有的馮·諾伊曼型計(jì)算機(jī)的CPU,其工作都可以分為5個(gè)階段取指令指令譯碼執(zhí)行指令訪存取數(shù)結(jié)果寫(xiě)回指令的執(zhí)行過(guò)程1.取指令階段取指令(InstructionFetch,IF)階段是將一條指令從主存中取到指令寄存器的過(guò)程程序計(jì)數(shù)器PC中的數(shù)值,用來(lái)指示當(dāng)前指令在主存中的位置當(dāng)一條指令被取出后,PC中的數(shù)值將根據(jù)指令字長(zhǎng)度而自動(dòng)遞增:若為單字長(zhǎng)指令,則(PC)+1PC;若為雙字長(zhǎng)指令,則(PC)+2PC,依此類推2.指令譯碼階段取出指令后,計(jì)算機(jī)立即進(jìn)入指令譯碼(InstructionDecode,ID)階段在指令譯碼階段,指令譯碼器按照預(yù)定的指令格式,對(duì)取回的指令進(jìn)行拆分和解釋,識(shí)別區(qū)分出不同的指令類別以及各種獲取操作數(shù)的方法在組合邏輯控制的計(jì)算機(jī)中,指令譯碼器對(duì)不同的指令操作碼產(chǎn)生不同的控制電位,以形成不同的微操作序列在微程序控制的計(jì)算機(jī)中,指令譯碼器用指令操作碼來(lái)找到執(zhí)行該指令的微程序的入口,并從此入口開(kāi)始執(zhí)行在傳統(tǒng)的設(shè)計(jì)里,CPU中負(fù)責(zé)指令譯碼的部分是無(wú)法改變的在眾多運(yùn)用微程序控制技術(shù)的新型CPU中,微程序有時(shí)是可重寫(xiě)的,可以通過(guò)修改成品CPU來(lái)改變CPU的譯碼方式3.執(zhí)行指令階段在取指令和指令譯碼階段之后,接著進(jìn)入執(zhí)行指令(Execute,EX)階段完成指令所規(guī)定的各種操作具體實(shí)現(xiàn)指令的功能為此,CPU的不同部分被連接起來(lái),以執(zhí)行所需的操作例如,如果要求完成一個(gè)加法運(yùn)算,算術(shù)邏輯單元ALU將被連接到一組輸入和一組輸出輸入端提供需要相加的數(shù)值輸出端將含有最后的運(yùn)算結(jié)果4.訪存取數(shù)階段根據(jù)指令需要,有可能要訪問(wèn)主存,讀取操作數(shù),這樣就進(jìn)入了訪存取數(shù)(Memory,MEM)階段根據(jù)指令地址碼,得到操作數(shù)在主存中的地址從主存中讀取該操作數(shù)用于運(yùn)算5.結(jié)果寫(xiě)回階段作為最后一個(gè)階段,結(jié)果寫(xiě)回(Writeback,WB)階段把執(zhí)行指令階段的運(yùn)行結(jié)果數(shù)據(jù)“寫(xiě)回”到某種存儲(chǔ)形式:結(jié)果數(shù)據(jù)經(jīng)常被寫(xiě)到CPU的內(nèi)部寄存器中,以便被后續(xù)的指令快速地存取在有些情況下,結(jié)果數(shù)據(jù)也可被寫(xiě)入相對(duì)較慢、但較廉價(jià)且容量較大的主存許多指令還會(huì)改變程序狀態(tài)字寄存器中標(biāo)志位的狀態(tài)標(biāo)識(shí)不同的操作結(jié)果,可被用來(lái)影響程序的動(dòng)作在指令執(zhí)行完畢、結(jié)果數(shù)據(jù)寫(xiě)回之后,若無(wú)意外事件(如結(jié)果溢出等)發(fā)生,計(jì)算機(jī)就接著從程序計(jì)數(shù)器PC中取得下一條指令地址,開(kāi)始新一輪的循環(huán),下一個(gè)指令周期將順序取出下一條指令許多新型CPU可以同時(shí)取出、譯碼和執(zhí)行多條指令,體現(xiàn)并行處理的特性二、六條指令的指令執(zhí)行的過(guò)程(結(jié)合具體數(shù)據(jù)通路)程序執(zhí)行前,R0=00R1=10R2=20R3=30MOVR0,R1LADR1,6ADDR1,R2100101102103104105106指令存儲(chǔ)器八進(jìn)制表示ANDR1,R3JMP101STOR2,(R3)直接地址70100(LAD不影響6號(hào)單元內(nèi)的數(shù)據(jù))6640(120,STO后為120)56710….2030八進(jìn)制表示77數(shù)據(jù)存儲(chǔ)1取指令階段

(1)程序計(jì)數(shù)器PC被裝入的101(八進(jìn)制)(2)PC內(nèi)容被放到地址總線ABUS上,啟動(dòng)讀指存命令;(3)將101號(hào)地址的單元讀出的MOV指令通過(guò)IBUS送IR(4)程序計(jì)數(shù)器內(nèi)容加1,變?yōu)?02,為取下一條指令做好準(zhǔn)備;(5)指令寄存器中的操作碼OP被譯碼或測(cè)試;(6)CPU識(shí)別出是指令MOV,至此,取指令階段即告結(jié)束。非訪內(nèi)指令MOVR0,R1RR型指令。ALUC1R000R110R220R330C2通用寄存器數(shù)據(jù)緩沖寄存器DR狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……304031數(shù)據(jù)CacheAR地址寄存器地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC101+1地址總線地址總線DBUS數(shù)據(jù)指令產(chǎn)生1-5取指操作信號(hào)指令譯碼MOVR0,R1C1C2CnCiIR指令集確定后,檢查指令系統(tǒng),根據(jù)指令功能,設(shè)計(jì)ALU,確定數(shù)據(jù)通路、控制部件?。?!IBUS1222345操作控制器PC1022執(zhí)行指令階段(1)OC送控制信號(hào),選擇R1為源寄存器,選擇R0為目標(biāo)寄存器;(2)OC送控制信號(hào)到ALU,指定ALU做傳數(shù)操作;(3)OC送控制信號(hào),打開(kāi)與ALU相連的三態(tài)門(mén),將ALU輸出送至DBUS;(4)OC送控制信號(hào),DBUS上的數(shù)據(jù)送至DR(10)(5)OC送控制信號(hào),控制將DR中數(shù)據(jù)送目標(biāo)寄存器R0,R0為10ALUC1R000R110R220R330C2通用寄存器DR狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……304031數(shù)據(jù)CacheAR地址寄存器地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC102+1地址總線地址總線數(shù)據(jù)指令產(chǎn)生1-5取指操作信號(hào)指令譯碼MOVR0,R1C1C2CnCiIR3操作控制器oc11R1244MOVR0,R1執(zhí)行周期101010LAD指令的指令周期由三個(gè)CPU周期組成。

指令LADR1,6RS指令,6號(hào)單元第一個(gè)CPU周期為取指周期與MOV相同第二個(gè)CPU周期送操作數(shù)地址IR中的地址碼(6)AR第二個(gè)CPU周期主要完成送操作數(shù)地址。(1)OC送控制信號(hào),打開(kāi)IR輸出三態(tài)門(mén),將直接地址6送DBUS(2)OC送控制信號(hào),將DBUS上的地址6送ARALUC1R010R110R220R330C2通用寄存器DR10狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……304031數(shù)據(jù)Cache地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC103+1地址總線地址總線數(shù)據(jù)指令產(chǎn)生1-2取指操作信號(hào)指令譯碼LADR1,6C1C2CnCiIR1操作控制器oc1R12LADR1,6執(zhí)行周期(第2周期)AR6第三個(gè)CPU周期:取操作數(shù)裝入寄存器(3)OC送讀命令,直接地址選中單元6的數(shù)據(jù)100送DBUS;(4)OC送控制信號(hào),將DBUS上的數(shù)據(jù)100送DR(5)OC送控制信號(hào),DR中的100送R1LADR1,6執(zhí)行周期(第3周期)ALUC1R010R1R220R330C2通用寄存器DR狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……304031數(shù)據(jù)CacheAR6地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC103+1地址總線地址總線數(shù)據(jù)指令產(chǎn)生3-5取指操作信號(hào)指令譯碼LADR1,6C1C2CnCiIR1操作控制器oc1R12LAD執(zhí)行周期(第3周期)3345100100ADD指令的指令周期由兩個(gè)CPU周期組成。RR型指令

ADDR1,R2第一個(gè)CPU周期為取指周期與MOV,LDA相同。執(zhí)行周期如下(第2個(gè)CPU周期)(1)OC送控制信號(hào),選擇R1為源寄存器,選擇R2為目標(biāo)寄存器;(2)OC送控制信號(hào)到ALU,指定ALU做加法操作;(3)OC送控制信號(hào),打開(kāi)與ALU相連的三態(tài)門(mén),將ALU運(yùn)算結(jié)果120輸出送至DBUS;(4)OC送控制信號(hào),DBUS上的數(shù)據(jù)送至DR(120);進(jìn)位標(biāo)志送PSW(5)OC送控制信號(hào),控制將DR中數(shù)據(jù)120送目標(biāo)寄存器R2,R2為120ALUC1R010R1100R2R330C2通用寄存器DR狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……304031數(shù)據(jù)CacheAR6地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC104+1地址總線地址總線數(shù)據(jù)指令產(chǎn)生1-5取指操作信號(hào)指令譯碼ADDR1,R2C1C2CnCiIR1操作控制器oc1R12ADD執(zhí)行周期334553120120+20STO指令的指令周期由三個(gè)CPU周期組成。RS

型指令

第一個(gè)CPU周期為取指周期與MOV相同STO(存儲(chǔ)指令)周期第二個(gè)CPU周期送操作數(shù)地址

(R3)=30AR第二個(gè)CPU周期主要完成送操作數(shù)地址。(1)OC送控制信號(hào),選擇寄存器(R3)=30,此寄存器內(nèi)容將作為操作數(shù)地址;(2)OC送控制信號(hào),打開(kāi)寄存器輸出三態(tài)門(mén)(不經(jīng)ALU),將地址30(R3之內(nèi)容)送DBUS(3)OC送控制信號(hào),將DBUS上的地址30送ARALUC1R010R1100R2120R330C2通用寄存器DR120狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……3012031數(shù)據(jù)Cache地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC105+1地址總線地址總線數(shù)據(jù)指令產(chǎn)生1-3取指操作信號(hào)指令譯碼STOR2,(R3)C1C2CnCiIR操作控制器oc1R1STO執(zhí)行周期(第2周期)322230第三個(gè)CPU周期:將寄存器內(nèi)容存入存儲(chǔ)器(4)OC送控制信號(hào),選擇R2,內(nèi)容(120)(5)OC送控制信號(hào),打開(kāi)寄存器輸出三態(tài)門(mén),把數(shù)據(jù)120送到DBUS總線;(6)OC送控制信號(hào),數(shù)據(jù)總線上的數(shù)據(jù)120寫(xiě)入到所選中的存儲(chǔ)器單元30中,STO執(zhí)行結(jié)束。ALUC1R010R1100R2120R330C2通用寄存器DR120狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……3031數(shù)據(jù)Cache30地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC105+1地址總線地址總線數(shù)據(jù)指令產(chǎn)生4-6取指操作信號(hào)指令譯碼STOR2,(R3)C1C2CnCiIR操作控制器oc1R12STO執(zhí)行周期(第3周期)3224556120JMP指令周期指令周期由兩個(gè)CPU周期組成。

第一個(gè)CPU周期為取指周期與MOV相同。(1)OC送控制信號(hào),打開(kāi)IR輸出三態(tài)門(mén),將其中的地址101送DBUS(2)OC送控制信號(hào),將DBUS上的地址101送PC,程序從101開(kāi)始執(zhí)行其執(zhí)行周期(第2周期)如下:ALUC1R010R1100R2120R330C2通用寄存器DR120狀態(tài)字PSW通往I/O接口地址數(shù)據(jù)57061007661077……3012031數(shù)據(jù)CacheAR30地址OP101MOV102LAD103ADD104STO105JMP106AND107Cache指令地址字段R0,R1R1,6R1,R2R2,(R3)101R1,R3PC106+1地址總線地址總線數(shù)據(jù)指令產(chǎn)生1-2取指操作信號(hào)指令譯碼JMP101C1C2CnCiIR操作控制器oc1R1JMP執(zhí)行周期2101101

菱形

通常用來(lái)表示某種判別或測(cè)試,不過(guò)時(shí)間上它依附于緊接它的前面一個(gè)方框的CPU周期,而不單獨(dú)占用一個(gè)CPU周期。三、用方框圖語(yǔ)言表示指令周期在進(jìn)行計(jì)算機(jī)設(shè)計(jì)時(shí),可以采用方框圖語(yǔ)言來(lái)表示一條指令的指令周期。方框代表一個(gè)CPU周期,方框中的內(nèi)容表示數(shù)據(jù)通路的操作或某種控制操作。(在具體設(shè)計(jì)時(shí)方框也可表示為時(shí)間單位)公操作符號(hào)“~”:表示一條指令已經(jīng)執(zhí)行完畢,轉(zhuǎn)入公操作所謂公操作,就是一條指令執(zhí)行完畢后CPU進(jìn)行的一些操作。這些操作主要是CPU對(duì)外設(shè)請(qǐng)求的處理如果外設(shè)沒(méi)有向CPU請(qǐng)求交換數(shù)據(jù),那么CPU又轉(zhuǎn)向主存取下一條指令

對(duì)于一個(gè)完整的指令系統(tǒng)中的所有指令都可以用方框圖語(yǔ)言表示指令周期:1)從指令流程圖中我們可以得到每條指令的指令周期中數(shù)據(jù)通路(用到哪些單元、寄存器、信息的流向)2)與之對(duì)應(yīng)的其中控制信號(hào)的變化,用于指導(dǎo)控制器設(shè)計(jì)。PCABUS(I)IBUSIRPC+1譯碼R1R0IRARR1+R2R2R3ARIRPCMOVLADADDSTOJMPDBUSDRDRR1R2DBUSRD(I)RD(D)WE(D)指存讀命令取指階段執(zhí)行階段例1

圖為雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路,IR為指令寄存器,PC為程序計(jì)數(shù)器(具有自增功能),M為主存(受R/W信號(hào)控制),AR為主存地址寄存器,DR為數(shù)據(jù)寄存器,ALU由+、-控制信號(hào)決定完成何種操作,控制信號(hào)G控制一個(gè)門(mén)電路。另外,線上標(biāo)注有控制信號(hào),例如Yi表示Y寄存器的輸入控制信號(hào),R1o為寄存器R1的輸出控制信號(hào),未標(biāo)字符的線為直通線,不受控制。 “ADDR2,R0”指令完成(R0)+(R2)→R0的功能操作,試畫(huà)出其指令周期流程圖(假設(shè)該指令的地址已放入PC中),并列出相應(yīng)的微操作控制信號(hào)序列。P139例1雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路圖微操作信號(hào)微操作信號(hào)注意微操作控制信號(hào)(右邊)ALU0ALU0例2(補(bǔ)充例題)某8位模型計(jì)算機(jī)的數(shù)據(jù)通路如圖所示。其中主要組成在圖中標(biāo)出。根據(jù)指令集,寫(xiě)出ADDRD,RS的指令周期流程圖指令功能與格式名稱助記符功能指令格式R7R6R5R4R3R2R1R0加法ADDRd,RsRd+Rs->Rd0000RS1RS0RD1RD0減法SUBRd,RsRd-Rs->Rd0001RS1RS0RD1RD0乘法MULRd,RsRd*Rs->Rd0010RS1RS0RD1RD0邏輯與ANDRd,RsRd&Rs->Rd0011RS1RS0RD1RD0存數(shù)STARd,[Rs]Rd->[Rs]0100RS1RS0RD1RD0取數(shù)LDARd,[Rs][Rs]->Rd0101RS1RS0RD1RD0無(wú)條件轉(zhuǎn)移JMP[Rs][Rs]->PC1000RS1RS0XX條件轉(zhuǎn)移JCD若C=1則PC+D->PC1001D3D2D1D0停機(jī)STP暫停運(yùn)行0110XXXX中斷返回IRET返回?cái)帱c(diǎn)1010XXXX開(kāi)中斷INTS允許中斷1011XXXX關(guān)中斷INTC禁止中斷1100XXXXPCLDAR2M3CERLDIRPC_INCPC+1控制器ADDRD,RS地址OP取指周期W1存儲(chǔ)器運(yùn)算器執(zhí)行周期W2CER運(yùn)算器存儲(chǔ)器控制器執(zhí)行周期W3結(jié)果CER運(yùn)算器存儲(chǔ)器控制器執(zhí)行周期W4結(jié)果RDCER運(yùn)算器存儲(chǔ)器控制器第3節(jié)時(shí)序信號(hào)和控制方式一、時(shí)序信號(hào)的作用和體制二、時(shí)序信號(hào)產(chǎn)生器三、控制方式*一、時(shí)序信號(hào)的作用和體制在計(jì)算機(jī)高速運(yùn)行過(guò)程中,計(jì)算機(jī)內(nèi)各部件的每一個(gè)動(dòng)作都必須嚴(yán)格遵守時(shí)間規(guī)定,不能有任何差錯(cuò)例用二進(jìn)制碼表示的指令和數(shù)據(jù)都放在主存里,那么CPU如何識(shí)別出它們是數(shù)據(jù)還是指令呢?從時(shí)間上來(lái)說(shuō),取指令事件發(fā)生在指令周期的第一個(gè)CPU周期中,即發(fā)生在取指令階段而取數(shù)據(jù)事件發(fā)生在指令周期的后面幾個(gè)CPU周期中,即發(fā)生在執(zhí)行指令階段從空間上來(lái)說(shuō),如果取出的代碼是指令,那么一定送往指令寄存器如果取出的代碼是數(shù)據(jù),那么一定送往運(yùn)算器從時(shí)序上控制操作信號(hào)的順序時(shí)序信號(hào)采用電位-脈沖制硬布線控制器:主狀態(tài)周期-節(jié)拍電位(為一個(gè)CPU周期)-節(jié)拍脈沖微程序控制器:節(jié)拍電位-節(jié)拍脈沖

節(jié)拍電位節(jié)拍電位表示一個(gè)CPU周期,是一個(gè)較大的時(shí)間單位.

工作脈沖

在一個(gè)機(jī)器周期內(nèi),要完成若干個(gè)微操作。這些微操作有的可以同時(shí)執(zhí)行,有的需要按先后次序串行執(zhí)行。把一個(gè)機(jī)器周期分為若干個(gè)相等的時(shí)間段,每一個(gè)時(shí)間段對(duì)應(yīng)一個(gè)電位信號(hào)。

在節(jié)拍中執(zhí)行的有些操作需要同步定時(shí)脈沖,為此,在一個(gè)節(jié)拍內(nèi)常常設(shè)置一個(gè)或幾個(gè)工作脈沖,作為各種同步脈沖的來(lái)源。節(jié)拍電位與工作脈沖的配合關(guān)系QQ-DCP邏輯電路邏輯電路信息節(jié)拍電位Ti打入條件工作脈沖PiM1(W1)M2(W2)M3(W3)M4(W4)MF1MF2TMF為狀態(tài)周期;(W)為節(jié)拍;T為節(jié)拍脈沖二時(shí)序信號(hào)產(chǎn)生器計(jì)算機(jī)內(nèi)各部件的協(xié)調(diào)動(dòng)作需要時(shí)間標(biāo)志而時(shí)間標(biāo)志則是用時(shí)序信號(hào)來(lái)體現(xiàn)的計(jì)算機(jī)各部分工作所需的時(shí)序信號(hào),在CPU中統(tǒng)一由時(shí)序發(fā)生器來(lái)產(chǎn)生啟??刂七壿嫻?jié)拍脈沖及讀寫(xiě)時(shí)序環(huán)形脈沖發(fā)生器啟停時(shí)鐘源RD°WE°T1°T2°T3°T4°RDWET1T2T3T4RD’WE’CPU中時(shí)序發(fā)生器的功能用邏輯電路來(lái)發(fā)出時(shí)序信號(hào),實(shí)現(xiàn)時(shí)序控制使計(jì)算機(jī)可以準(zhǔn)確、迅速、有條不紊地工作時(shí)序發(fā)生器是產(chǎn)生控制指令周期的時(shí)序信號(hào)的部件當(dāng)CPU開(kāi)始取指令并執(zhí)行指令時(shí),操作控制器利用時(shí)序發(fā)生器產(chǎn)生的定時(shí)脈沖的順序和不同的脈沖間隔,提供計(jì)算機(jī)各部件工作所需的各種微操作定時(shí)控制信號(hào),有條理、有節(jié)奏地指揮機(jī)器各個(gè)部件按規(guī)定時(shí)間動(dòng)作2環(huán)行脈沖發(fā)生器和節(jié)拍脈沖

3啟停邏輯1時(shí)鐘源

由石英晶體振蕩器和與非門(mén)組成的正反饋振蕩電路組成

時(shí)鐘脈沖源電路實(shí)現(xiàn)不要求,第5版圖5.19

控制方式即控制不同操作序列時(shí)序信號(hào)的方法。常用的有同步控制、異步控制、聯(lián)合控制三種方式,其實(shí)質(zhì)反映了時(shí)序信號(hào)的定時(shí)方式。1.同步控制方式在任何情況下,已定的指令在執(zhí)行時(shí)所需的機(jī)器周期數(shù)和時(shí)鐘周期數(shù)都固定不變。根據(jù)不同情況,同步控制方式可選取如下方案。三、控制方式*(只了解,不考試,ppt81-84)(1)采用完全統(tǒng)一的機(jī)器周期執(zhí)行各種不同的指令。

所有指令采用相同的節(jié)拍電位數(shù)、節(jié)拍脈沖數(shù)(2)采用不定長(zhǎng)機(jī)器周期。

大多數(shù)操作安排在一個(gè)較短的周期內(nèi)完成,對(duì)一些操作采用延長(zhǎng)機(jī)器周期的辦法解決。(3)中央控制與局部控制結(jié)合。將大部分指令安排在固定的機(jī)器周期內(nèi)完成,稱之中央控制;對(duì)復(fù)雜指令(乘、除、浮點(diǎn)運(yùn)算)則采用另外時(shí)序,稱之局部控制。2.異步控制方式

特點(diǎn):每條指令、每個(gè)操作控制信號(hào)需要多少時(shí)間就占用多少時(shí)間;用這種方式形成的操作控制序列沒(méi)有固定的CPU周期數(shù)(節(jié)拍電位)或嚴(yán)格的時(shí)鐘周期(節(jié)拍脈沖)與之同步。

(1)每條指令的指令周期可由多少不等的機(jī)器周期數(shù)組成;

(2)也可以是當(dāng)控制器發(fā)出某一操作控制信號(hào)后,等待執(zhí)行部件完成操作后發(fā)“回答”信號(hào),再開(kāi)始新的操作。3.聯(lián)合控制方式此為同步控制和異步控制相結(jié)合的方式。

在功能部件內(nèi)部采用同步控制方式,而在功能部件之間采用異步控制方式。在硬件實(shí)現(xiàn)允許的情況下,盡可能多地采用異步控制方式聯(lián)合控制方式通常選取以下兩種方案(1)大部分操作序列安排在固定的機(jī)器周期中,對(duì)某些時(shí)間難以確定的操作則以執(zhí)行部件的“回答”信號(hào)作為本次操作的結(jié)束;(2)機(jī)器周期的節(jié)拍脈沖數(shù)固定,但是各條指令周期的機(jī)器周期數(shù)不固定。一個(gè)簡(jiǎn)化的計(jì)算機(jī)模型(補(bǔ)充內(nèi)容)一、模型的指令系統(tǒng)二、計(jì)算機(jī)簡(jiǎn)化模型的組成(數(shù)據(jù)通路)三、程序設(shè)計(jì)四、指令周期(取指和執(zhí)行過(guò)程)和指令流程圖五控制器的設(shè)計(jì)和實(shí)現(xiàn)第4節(jié)一個(gè)模型計(jì)算機(jī)和控制器初步設(shè)計(jì)本模型的指令系統(tǒng)中有5條指令:LDA—將數(shù)據(jù)裝入累加器AADD—加法SUB—減法OUT—輸出結(jié)果HLT—停機(jī)均為

單字長(zhǎng)零地址或一地址指令兩個(gè)通用R(A,B)助記符操作碼LDA0000ADD0001SUB0010OUT1110HLT1111一、模型的指令系統(tǒng)二、計(jì)算機(jī)簡(jiǎn)化模型的組成(數(shù)據(jù)通路)CPUPC:計(jì)數(shù)范圍0000-1111MAR:存地址碼(地址寄存器)PROM(存儲(chǔ)器):16*8,16字節(jié)內(nèi)存(1個(gè)字節(jié)=8位)IR:8位指令寄存器,高4位為OP,低4位為地址碼A:累加器:8位;B:寄存器:8位;O:輸出寄存器ALU:算術(shù)邏輯部件;二進(jìn)制顯示器D控制部件CON(操作控制單元):為組合邏輯電路,輸出12個(gè)控制信號(hào),對(duì)這12個(gè)信號(hào)稱為1個(gè)控制字CPEPLMERLIEILAEASUEULBLO地址譯碼。。。。。MAR4位0115216*8PROM存儲(chǔ)器內(nèi)部

顏色相同的線相接,并與數(shù)據(jù)總線相連D0D7。。。。。01010000

區(qū)域作用指令區(qū)數(shù)據(jù)區(qū)存儲(chǔ)單元名稱以方便用助記符表示R0-R7R8-RF存儲(chǔ)單元地址二進(jìn)制表示0000-0111如:0000---R01000-1111存儲(chǔ)單元地址十六進(jìn)制表示(0-7)H(8-F)H存儲(chǔ)器分配源程序目的程序存儲(chǔ)單元號(hào)LDA

R9

000010010000(R0)ADDRA

000110100001(R1)ADD

RB

000110110010(R2)ADD

RC

000111000011(R3)SUB

RD

001011010100(R4)OUT

1110****0101(R5)HLT

1111****0110(R6)指令區(qū)數(shù)據(jù)十進(jìn)制表示數(shù)據(jù)

存儲(chǔ)單元號(hào)16000100001001(R9)20000101001010(RA)24000110001011(RB)28000111001100(RC)32001000001101(RD)數(shù)據(jù)區(qū)四、指令周期(取指和執(zhí)行過(guò)程)和指令流程圖

以LDA指令為例分析其指令周期和數(shù)據(jù)通路EpLMERLICP譯碼EILMERLAEILMLBEREILMEALOLAEULBERLAEUSULDAADDSUBOUTHLT五控制器的設(shè)計(jì)和實(shí)現(xiàn)W1W2EP=ALL*T0*W1LM=ALL*T0*W1+(LDA+ADD+SUB)*T3*W2LI=ALL*T1*W1ER=ALL*T1*W1+(LDA+ADD+SUB)*T4*W2………….操作控制信號(hào)實(shí)現(xiàn)-以EP\LM為例EpLMERLICpEILMERLAEALOS0S5S4S3S2S1LDAADDSUBOUTHITEILMLBERLAEUEILMLBERLAEUSU指令集指令數(shù)據(jù)通路的有限狀態(tài)機(jī)組合控制邏輯CPEPLMLO……來(lái)自IR的OP字段狀態(tài)寄存器數(shù)據(jù)通路控制信號(hào)下一狀態(tài)第5節(jié)硬布線控制器一、基本思路二指令的執(zhí)行過(guò)程(算法流程圖)三、微操作控制信號(hào)的產(chǎn)生設(shè)計(jì)目標(biāo)硬布線控制器是把控制部件看作為產(chǎn)生專門(mén)固定時(shí)序控制信號(hào)的邏輯電路,而此邏輯電路以使用最少元件和取得最高操作速度為設(shè)計(jì)目標(biāo)。實(shí)現(xiàn)方法與特點(diǎn)這種邏輯電路是一種由門(mén)電路和觸發(fā)器構(gòu)成的復(fù)雜樹(shù)形邏輯網(wǎng)絡(luò),故稱之為硬布線控制器。一旦控制部件構(gòu)成后,除非重新設(shè)計(jì)和物理上對(duì)它重新布線,否則要想增加新的控制功能是不可能的。一、基本思路邏輯網(wǎng)絡(luò)的輸入信號(hào)來(lái)源有三個(gè):(1)來(lái)自指令操碼譯碼器的輸出Im;(2)來(lái)自執(zhí)行部件的反饋信息Bj;(3)來(lái)自時(shí)序產(chǎn)生器的時(shí)序信號(hào),包括節(jié)拍電位信號(hào)M和節(jié)拍脈沖信號(hào)T。

邏輯網(wǎng)絡(luò)N的輸出信號(hào)就是,它用來(lái)對(duì)執(zhí)行部件進(jìn)行控制。硬布線控制器的基本原理:C=f(Im,Mi,Tk,Bj)微操作控制信號(hào)二指令的執(zhí)行過(guò)程(算法流程圖)PCABUS(I)IBUSIRPC+1譯碼R1R0IRARR1+R2R2R3ARIRPCMOVLADADDSTOJMPDBUSDRDRR1R2DBUSRD(I)RD(D)WE(D)指存讀命令M1M2M3三、微操作控制信號(hào)的產(chǎn)生(結(jié)合第4節(jié)的內(nèi)容)(1)根據(jù)所有機(jī)器指令流程圖,尋找出產(chǎn)生同一個(gè)微操作信號(hào)的所有條件,并與適當(dāng)?shù)墓?jié)拍電位和節(jié)拍脈沖組合,從而寫(xiě)出其布爾代數(shù)表達(dá)式并進(jìn)行簡(jiǎn)化,然后用門(mén)電路或可編程器件來(lái)實(shí)現(xiàn)。

(2)為了防止遺漏,設(shè)計(jì)時(shí)可按信號(hào)出現(xiàn)在指令流程圖中的先后次序書(shū)寫(xiě),然后進(jìn)行歸納和簡(jiǎn)化。要特別注意控制信號(hào)是電位有效還是脈沖有效,如果是脈沖有效,必須加入節(jié)拍脈沖信號(hào)進(jìn)行相“與”。

在硬布線控制器中,某一微操作控制信號(hào)由布爾代數(shù)表達(dá)式描述的輸出函數(shù)產(chǎn)生。設(shè)計(jì)微操作控制信號(hào)的方法和過(guò)程

例3根據(jù)圖5.29,寫(xiě)出下列操作控制信號(hào) RD(I)RD(D)WE(D)LDPCLDIRLDARLDDRPC+1LDR2RD(I)—指存讀命令;RD(D)-數(shù)存讀命令;WE(D)--指存寫(xiě)命令;LDPC—打入PCLDIR—打入IRLDAR---打入數(shù)存地址寄存器LDDR—打入數(shù)據(jù)緩沖器PC+1LDR2---打入R2Mi(i=1,2,3)為節(jié)拍電位信號(hào),Ti(i=1,2,3,4)為節(jié)拍脈沖信號(hào)WE(D)=M3·T3·STO第6節(jié)微程序控制器及微程序設(shè)計(jì)一、微命令和微操作的概念二、微指令和微程序三、微程序控制器原理框圖(CAI)四、微程序舉例五、CPU周期和微指令周期的關(guān)系六、機(jī)器指令與微指令關(guān)系七、微程序設(shè)計(jì)中的概念

按照指令周期中的(取指、執(zhí)行)各階段數(shù)據(jù)通路中每一步(同一個(gè)時(shí)段內(nèi))順序所產(chǎn)生的控制信號(hào)編成所謂的微指令;

將一條一條微指令逐一存放在一個(gè)存儲(chǔ)器件中;當(dāng)完成一個(gè)指令周期時(shí)(取指、執(zhí)行),會(huì)按時(shí)序逐一將取出這些微指令,從而產(chǎn)生所需的各種控制信號(hào),使數(shù)據(jù)通路上相應(yīng)部件執(zhí)行所規(guī)定的操作。微程序控制器的設(shè)計(jì)思想回顧第4節(jié)的例子:控制器可以由這種設(shè)計(jì)思想體現(xiàn)微程序控制技術(shù)是利用軟件方法來(lái)設(shè)計(jì)硬件的一項(xiàng)技術(shù)能使機(jī)器邏輯設(shè)計(jì)規(guī)整,同時(shí)提高可靠性、可利用性和可維護(hù)性微程序開(kāi)發(fā)在許多方面類似于軟件開(kāi)發(fā)軟件工程中行之有效的一系列開(kāi)發(fā)手段都可應(yīng)用于微程序的開(kāi)發(fā)上1110.CPEPLMERLIEI

LAEASUEULBIOA3A2A1A0000000000000110000000000000110000000000000001100000000000001取指1100000000000000LDA1100000000000000OUT...............ADDSUB

微命令控制部件通過(guò)控制線向執(zhí)行部件發(fā)出的各種控制命令(信號(hào))。例如第4節(jié)模型計(jì)算機(jī)的控制信號(hào)EP對(duì)應(yīng)的命令。

微操作執(zhí)行部件接受微命令后所進(jìn)行的操作。它是執(zhí)行部件中最基本的操作??刂撇考c執(zhí)行部件通過(guò)控制線和反饋信息進(jìn)行聯(lián)系。一、微命令和微操作的概念微程序控制器應(yīng)用----指令集指令規(guī)模大的情況同一個(gè)CPU周期相容性微操作在同一個(gè)CPU周期可以并行執(zhí)行的微操作互斥性微操作在同一個(gè)CPU周期不能并行執(zhí)行的微操作圖5-20簡(jiǎn)單的數(shù)據(jù)通路(第4版)

二、微指令和微程序

微指令在機(jī)器的一個(gè)CPU周期中,一組實(shí)現(xiàn)一定操作功能的微命令的組合。

微程序?qū)崿F(xiàn)一條機(jī)器指令功能的許多條微指令組成的序列。微指令的基本格式(圖5.21,基于圖5-20的數(shù)據(jù)通路)判別測(cè)試CPU周期T4200ns600nsLDR1LDR1’T4LDR1LDR1’LDR2LDR2’LDR3LDR3’三、微程序控制器原理框圖OP字段機(jī)器指令寄存器IR0001

地址

一條指令執(zhí)行11000….10100….00100….10010….10011….00000…......….取指.....….OPC000000000000000001PA000010

..1111101111110011000P字段控制字段…地址轉(zhuǎn)移邏輯修改uAR微命令信號(hào)狀態(tài)條件微地址寄存器微命令寄存器控制存儲(chǔ)器微程序控制器CPEPLM000000LDR’1PC+1微程序控制器OP字段機(jī)器指令寄存器IR0001

地址

一條指令執(zhí)行11000….10100….00100….10010….10011….00000…......….取指.....….OPC000001000000000001PA000010

..1111101111110011000P字段控制字段…地址轉(zhuǎn)移邏輯微命令信號(hào)狀態(tài)條件微地址寄存器微命令寄存器控制存儲(chǔ)器CPEPLM0000011.控制存儲(chǔ)器

控制存儲(chǔ)器用來(lái)存放實(shí)現(xiàn)全部指令系統(tǒng)的微指令(微程序),它是一種只讀存儲(chǔ)器。一旦微程序固化,機(jī)器運(yùn)行時(shí)則只讀不寫(xiě)。

讀出一條微指令并執(zhí)行微指令的時(shí)間總和稱為一個(gè)微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只讀存儲(chǔ)器的工作周期。

控制存儲(chǔ)器的字長(zhǎng)就是微指令字的長(zhǎng)度,其存儲(chǔ)容量視機(jī)器指令系統(tǒng)而定,即取決于微程序的數(shù)量。對(duì)控制存儲(chǔ)器的要求是速度快,讀出周期要短。

控制存儲(chǔ)器大小(容量)表示為2n*m

①微指令寄存器用來(lái)存放由控制存儲(chǔ)器讀出的一條微指令信息。其中:

微命令寄存器則保存一條微指令的操作控制字段和判別測(cè)試字段的信息。

②微地址寄存器用來(lái)存放將要訪問(wèn)的下一條微指令的地址2.微指令寄存器3.地址轉(zhuǎn)移邏輯

在一般情況下,微指令由控制存儲(chǔ)器讀出后直接給出下一條微指令的地址,通常我們簡(jiǎn)稱微地址,這個(gè)微地址信息就存放在微地址寄存器中。

①如果微程序不出現(xiàn)分支,那么下一條微指令的地址就直接由微地址寄存器給出。②當(dāng)微程序出現(xiàn)分支時(shí),意味著微程序出現(xiàn)條件轉(zhuǎn)移。在這種情況下,通過(guò)判別測(cè)試字段P和執(zhí)行部件的“狀態(tài)條件”反饋信息,去修改微地址寄存器的內(nèi)容,并按改好的內(nèi)容去讀下一條微指令。地址轉(zhuǎn)移邏輯就承擔(dān)自動(dòng)完成修改微地址的任務(wù)。四、微程序舉例

“十進(jìn)制加法”指令為例,顯示微程序控制的過(guò)程.“十進(jìn)制加法”指令的功能是用BCD碼完成十進(jìn)制數(shù)的加法運(yùn)算.用BCD碼運(yùn)算,當(dāng)相加位和數(shù)大于9時(shí),必須對(duì)和數(shù)加6予以修正.aR1bR26R3

注意:先做a+b+6運(yùn)算,再依據(jù)僅為標(biāo)志cy判斷,cy=1,保持結(jié)果;cy=0,結(jié)果減6.圖5-20簡(jiǎn)單的數(shù)據(jù)通路(第4版,145;第5版,156)ab6CAI---動(dòng)態(tài)演示取指執(zhí)行五、微指令周期和微指令周期的關(guān)系可將微指令周期=CPU周期T1T2T3T4T1T2T3T4CPU周期CPU周期微指令周期微指令周期=讀出微指令的時(shí)間

+

執(zhí)行該條微指令的時(shí)間六、機(jī)器指令與微指令關(guān)系(CAI)執(zhí)行一條指令=執(zhí)行一段微程序機(jī)器指令與微指令的關(guān)系(1) 機(jī)器指令是提供給使用者編程的基本單位,每一條指令可以完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算操作。一條機(jī)器指令對(duì)應(yīng)一組微指令組成的微程序??梢?jiàn),一條機(jī)器指令對(duì)應(yīng)多條微指令,而一條微指令可為多個(gè)機(jī)器指令服務(wù)。(2) 從指令與微指令,程序與微程序,地址與微地址的一一對(duì)應(yīng)關(guān)系來(lái)看,前者與主存有關(guān),后者與控存有關(guān)。與此類似,也有相對(duì)應(yīng)的硬設(shè)備。(3) 每一個(gè)機(jī)器周期對(duì)應(yīng)一條微指令。(4)兩個(gè)層次:

程序員看到的傳統(tǒng)機(jī)器級(jí):指令、程序、主存;

設(shè)計(jì)者看到的微程序級(jí):微指令、微程序、控存

設(shè)某計(jì)算機(jī)運(yùn)算器的數(shù)據(jù)通路框圖如5.28所示,其中ALU為16位的加法器(高電平工作),SA,SB為16位暫存器。4個(gè)通用寄存器由D觸發(fā)器組成,Q端輸出,其讀、寫(xiě)控制功能見(jiàn)表5.2。機(jī)器采用串行微程序控制方式,其微指令周期見(jiàn)圖(b)。其中讀ROM是從控存中讀出一條微指令時(shí)間,為1μs;ALU工作是加法器做加法運(yùn)算,為500ns;m1是讀寄存器時(shí)間,為500ns;m2是寫(xiě)寄存器的工作脈沖寬度,為100ns。例2(第3版,補(bǔ)充例題,雙學(xué)位同學(xué)不要求)某計(jì)算機(jī)運(yùn)算器的數(shù)據(jù)通路框圖RA0RA1:讀R0-R3的選擇控制

WA0WA1:寫(xiě)R0-R3的選擇控制R:寄存器讀命令

W:寄存器寫(xiě)命令LDSA:打入SA的控制信號(hào)LDSB:打入SB的控制信號(hào)SB-ALU:傳送SB的控制信號(hào)-SB-ALU:傳送-SB的控制信號(hào),并使加法器最低位加1.Reset:清暫存器SB為零的信號(hào)~:一段微程序結(jié)束,轉(zhuǎn)入取機(jī)器指令的控制信號(hào)微指令字長(zhǎng)12位,微指令格式如下:要求:用二進(jìn)制代碼寫(xiě)出如下指令的微程序(不考慮取指階段)(1)“ADDR0,R1”指令,即(R0)+(R1)→R1(2)“SUBR2,R3”指令,即(R3)-(R2)→R3(3)“MOVR2,R3”指令,即(R2)→(R3)圖(b)微地址指令微程序代碼ADD1.00**101000002.01**100100003.**0101001001SUB4.11**101000005.10**100100006.**1101000101MOV7.10**101000008.**1101001011取指0.xxxxxxxxxxxx圖(b)指令微程序代碼ADD100**10100000201**100100003**0101001001SUB411**10100000510**100100006**1101000101MOV710**101000108**1101001001取指0.xxxxxxxxxxxx號(hào)單元號(hào)單元號(hào)單元號(hào)單元號(hào)單元號(hào)單元號(hào)單元號(hào)單元七、微程序設(shè)計(jì)中的概念

確定微指令的結(jié)構(gòu)是微程序設(shè)計(jì)的關(guān)鍵.設(shè)計(jì)微指令結(jié)構(gòu)應(yīng)當(dāng)追求的目標(biāo):較短的微指令長(zhǎng)度;有利于減小控存容量;有利于提高微程序執(zhí)行速度;有利于微指令的修改.1、微命令編碼2、微地址的形成3、微指令格式1微命令編碼

微命令編碼對(duì)微指令中的操作控制字段采用的表示方法。通常有以下三種方法:1)直接表示法其特點(diǎn)是操作控制字段中的每一位代表一個(gè)微命令。這種方法的優(yōu)點(diǎn)是簡(jiǎn)單直觀,其輸出直接用于控制。缺點(diǎn)是微指令字較長(zhǎng),因而使控制存儲(chǔ)器容量較大。(典型的例子是圖5.21所標(biāo)示的情況)2)編碼表示法編碼表示法是把一組相斥性的微命令信號(hào)組成一個(gè)小組(即一個(gè)字段),然后通過(guò)小組(字段)譯碼器對(duì)每一個(gè)微命令信號(hào)進(jìn)行譯碼,譯碼輸出作為操作控制信號(hào),其微指令結(jié)構(gòu)如下圖所示。3)混合表示法

這種方法是把直接表示法與字段編碼法混合使用,以便能綜合考慮指令字長(zhǎng)、靈活性、執(zhí)行微程序速度等方面的要求。

圖5.27編碼表示法2微地址的形成方法

微指令執(zhí)行的順序控制問(wèn)題,實(shí)際上是如何確定下一條微指令的地址問(wèn)題。通常,產(chǎn)生后繼微地址有兩種方法:1.)計(jì)數(shù)器方式

這種方法同用程序器計(jì)數(shù)來(lái)產(chǎn)生機(jī)器指令地址的方法相類似。在順序執(zhí)行微指令時(shí),后繼微地址現(xiàn)行微地址加上一個(gè)增量來(lái)產(chǎn)生;在非順序執(zhí)行微指令時(shí),必須通過(guò)轉(zhuǎn)移方式,使現(xiàn)行微指令執(zhí)行后,轉(zhuǎn)去執(zhí)行指定后繼微地址的下一條微指令。在這種方法中,微地址寄存器通常改為計(jì)數(shù)器。為此,順序執(zhí)行的微指令序列就必須安排在控制存儲(chǔ)器的連續(xù)單元中。計(jì)數(shù)器方式的基本特點(diǎn)是:微指令的順序控制字段較短,微地址產(chǎn)生機(jī)構(gòu)簡(jiǎn)單。但是多路并行轉(zhuǎn)移功能較弱,速度較慢,靈活性較差。(盡管有多個(gè)轉(zhuǎn)移條件或判別測(cè)試,但對(duì)于一條微指令下面只能有兩路分支)計(jì)數(shù)方式原理圖(補(bǔ)充解釋教材內(nèi)容,本圖不考試)OPAdress譯碼器μAR控制存儲(chǔ)器控制字段下址譯碼器轉(zhuǎn)移條件轉(zhuǎn)移地址+1IR微指令寄存器微程序入口2位2.)多路轉(zhuǎn)移方式

一條微指令具有多個(gè)轉(zhuǎn)移分支的能力稱為多路轉(zhuǎn)移。在多路轉(zhuǎn)移方式中:

當(dāng)微程序不產(chǎn)生分支時(shí),后繼微地直接由微指令的順序控制字段給出;

當(dāng)微程序出現(xiàn)分支時(shí),有若干“后選”微地址可供選擇:即按順序控制字段的“判別測(cè)試”標(biāo)志和“狀態(tài)條件”信息來(lái)選擇其中一個(gè)微地址?!盃顟B(tài)條件”有n位標(biāo)志,可實(shí)現(xiàn)微程序2的n次方路轉(zhuǎn)移,涉及微地址寄存器的n位。多路轉(zhuǎn)移方式的特點(diǎn)是:能以較短的順序控制字段配合,實(shí)現(xiàn)多路并行轉(zhuǎn)移,靈活性好,速度較快,但轉(zhuǎn)移地址邏輯需要用組合邏輯方法設(shè)計(jì)。例3微地址寄存器有6位(μA5-μA0),當(dāng)需要修改其內(nèi)容時(shí),可通過(guò)某一位觸發(fā)器的強(qiáng)置端S將其置“1”?,F(xiàn)有三種情況(P1P2P3):(1)執(zhí)行控制臺(tái)指令微程序時(shí),按IR4,IR5的狀態(tài)進(jìn)行4路分支。(2)執(zhí)行“取指”微指令后,微程序按IR的OP字段(IR3-IR0)進(jìn)行16路分支;(3)執(zhí)行條件轉(zhuǎn)移指令微程序時(shí),按進(jìn)位標(biāo)志C的狀態(tài)進(jìn)行2路分支;請(qǐng)按多路轉(zhuǎn)移方法設(shè)計(jì)微地址轉(zhuǎn)移邏輯。取指P3?4個(gè)分支uA5?IR5uA4?IR4P1?16個(gè)分支P2?uA3?IR3uA2?IR2uA1?IR1uA0?IR0cy=1cy=0微指令的格式大體分成兩類:(1)水平型微指令(2)垂直型微指令

一次能定義并執(zhí)行多個(gè)并行操作微命令的微指令,叫做水平型微指令。其一般格式如下:控制字段判別測(cè)試字段下地址字段

水平型微指令又分為三種:(1)全水平型(不譯法)微指令(2)字段譯碼法水平型微指令(3)直接和譯碼相混合的水平型微指令。3、微指令格式

垂直型微指令微指令中設(shè)置微操作碼字段,由微操作碼規(guī)定微指令的功能,稱為垂直型微指令。其結(jié)構(gòu)類似于機(jī)器指令的結(jié)構(gòu)。它有微操作碼,在一條微指令中只有1—2個(gè)微操作命令,每條微指令的功能簡(jiǎn)單,因此,實(shí)現(xiàn)一條機(jī)器指令的微程序要比水平型微指令編寫(xiě)的微程序長(zhǎng)得多。它是采用較長(zhǎng)的微程序結(jié)構(gòu)去換取較短的微指令結(jié)構(gòu)。例如水平型微指令與垂直型微指令的比較(1)水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng),垂直型微指令則較差。(2)水平型微指令執(zhí)行一條指令的時(shí)間短,垂直型微指令執(zhí)行時(shí)間長(zhǎng)(譯碼)。(3)由水平型微指令解釋指令的微程序,有微指令字較長(zhǎng)而微程序短的特點(diǎn)。垂直型微指令則相反。(4)水平型微指令用戶難以掌握,而垂直型微指令與機(jī)器指令比較相似,相對(duì)來(lái)說(shuō),比較容易掌握。第7節(jié)傳統(tǒng)CPU本節(jié)為自學(xué)內(nèi)容,請(qǐng)結(jié)合以下題目完成自學(xué)(閱讀時(shí)總結(jié))CPU字長(zhǎng)為多少位CPU內(nèi)部寄存器設(shè)置的特點(diǎn)CPU如何提供物理地址是否可以完成浮點(diǎn)運(yùn)算是否采用流水線技術(shù)指令集結(jié)構(gòu)是CISCorRISC本節(jié)查文獻(xiàn)寫(xiě)課程報(bào)告,內(nèi)容提問(wèn)第8節(jié)流水CPU一、并行處理技術(shù)二、流水CPU的結(jié)構(gòu)三、流水CPU的主要問(wèn)題并行性:①同時(shí)性,兩個(gè)以上事件同時(shí)刻發(fā)生;②并發(fā)性,兩個(gè)以上事件在同一時(shí)間間隔內(nèi)發(fā)生(時(shí)間并行、空間、時(shí)間+空間并行)時(shí)間并行:時(shí)間重疊、多個(gè)過(guò)程時(shí)間上錯(cuò)開(kāi)輪流使用同一套硬件設(shè)備的各個(gè)部分(流水部件)空間并行:資源重復(fù),以數(shù)量取勝(多處理機(jī))時(shí)間+空間并行:以上兩種方法的綜合利用(PETIUMCPU)一、并行處理技術(shù)2.并行性的等級(jí)指令級(jí)(指令之間)(指令內(nèi)部)過(guò)程級(jí)(程序、進(jìn)程)粗粒度主要軟件實(shí)現(xiàn)細(xì)粒度主要硬件實(shí)現(xiàn)生活中的流水線例子(時(shí)間上)洗衣房的例子A,B,C,D每個(gè)人都有一包衣服要“洗、烘干、熨平”

洗用30分烘干40分“熨平20分ABCD串行工作方式串行工作這4包衣服處理要6小時(shí)但流水作業(yè)可以提高效率ABCD3040203040203040203040206晚7891011午夜任務(wù)順序Time流水方式流水工作這4包衣服處理要3.5小時(shí)ABCD6PM7891011Midnight任務(wù)順序Time304040404020流水線的特性流水線不能使單獨(dú)一個(gè)任務(wù)的效率提高,而是多數(shù)任務(wù)存在時(shí),對(duì)平均每條的效率提高流水周期(或者流水速率)由最慢的流水段決定可以適當(dāng)?shù)脑黾恿魉我蕴岣咝什黄胶獾牧魉伍L(zhǎng)度將使效率降低ABCD6PM789任務(wù)順序Time304040404020指令流水線——指令級(jí)并行(ILP,instructionlevelparallelism)

利用執(zhí)行指令所需的操作之間的并行,實(shí)現(xiàn)多條指令重疊執(zhí)行的一種技術(shù)。目前,幾乎所有的高性能計(jì)算機(jī)都采用了指令流水線。開(kāi)發(fā)方法:依賴于硬件,動(dòng)態(tài)地發(fā)現(xiàn)和開(kāi)發(fā)指令級(jí)并行,可將指令流的處理過(guò)程劃分為取指令、譯碼、執(zhí)行、寫(xiě)回等幾個(gè)并行處理的過(guò)程段例:Intel的Pentium系列占市場(chǎng)主導(dǎo)地位依賴于軟件技術(shù),在編譯階段靜態(tài)地發(fā)現(xiàn)并行例:Intel的Itanium系列特定應(yīng)用環(huán)境TT0T1T2T3T4T5T6T7T8T9I6I5I4I3指令的流水線執(zhí)行指令1(I1)指令2(I2)···指令3(I3)I2指令的順序執(zhí)行:I1指令的流水線執(zhí)行:取指譯碼運(yùn)算計(jì)數(shù)取指譯碼運(yùn)算計(jì)數(shù)取指譯碼運(yùn)算計(jì)數(shù)取指譯碼運(yùn)算計(jì)數(shù)取指譯碼運(yùn)算計(jì)數(shù)取指譯碼運(yùn)算計(jì)數(shù)取指譯碼運(yùn)算計(jì)數(shù)取指譯碼運(yùn)算計(jì)數(shù)左圖為現(xiàn)代流水計(jì)算機(jī)組成示意圖;CPU由3部分組成:指令部件、指令隊(duì)列、執(zhí)行部件指令部件:本身是一個(gè)流水線指令隊(duì)列是寄存器隊(duì),流水線執(zhí)行部件:也可以作成流水線存儲(chǔ)器體系流水CPU二、流水CPU的結(jié)構(gòu)

處理一個(gè)子任務(wù)的過(guò)程為過(guò)程段(Si)。線性流水線由一系列串聯(lián)的過(guò)程段組成,各個(gè)過(guò)程之間設(shè)有高速的緩沖寄存器(L),以暫時(shí)保存上一過(guò)程子任務(wù)處理的結(jié)果。在一個(gè)統(tǒng)一的時(shí)鐘(C)控制下,數(shù)據(jù)從一個(gè)過(guò)程段流向相鄰的過(guò)程段。設(shè)過(guò)程段Si所需的時(shí)間為τi,緩沖寄存器的延時(shí)為τl,線性流水線的時(shí)鐘周期定義為τ=max{τi}+τl=τm+τl

故流水線處理的頻率為f=1/τ。

在流水線處理中,當(dāng)任務(wù)飽滿時(shí),任務(wù)源源不斷的輸入流水線,不論有多少級(jí)過(guò)程段,每隔一個(gè)時(shí)鐘周期都能輸出一個(gè)任務(wù)。從理論上說(shuō),一個(gè)具有k級(jí)過(guò)程段的流水線處理n個(gè)任務(wù)(指令)需要的時(shí)鐘周期數(shù)為T(mén)k=k+(n-1)

其中k個(gè)時(shí)鐘周期用于處理第一個(gè)任務(wù)。k個(gè)周期后,流水線被裝滿,剩余的n-1個(gè)任務(wù)只需n-1個(gè)周期就完成了。如果用非流水線的硬件來(lái)處理這n個(gè)任務(wù),時(shí)間上只能串行進(jìn)行,則所需時(shí)鐘周期數(shù)為

TL=n·k

將TL和Tk的比值定義為k級(jí)線性流水線的加速比:=Ck=TL

Tk

n·k

k+(n-1)

當(dāng)n>>k時(shí),Ck→

k。這就是說(shuō),理論上k級(jí)線性流水線處理幾乎可以提高k倍速度。但實(shí)際上由于存儲(chǔ)器沖突、數(shù)據(jù)相關(guān),這個(gè)理想的加速比不一定能達(dá)到。吞吐率流水線的吞吐率H,也稱為流水線的帶寬,它定義為流水線單位時(shí)間內(nèi)完成的任務(wù)數(shù):H=n/((k+n-1)*τ)若將mave定義為每個(gè)任務(wù)所需的平均時(shí)鐘周期數(shù),則吞吐率H可以表示為H=1/( mave*τ)當(dāng)n→

∞,H→f1,f1為最大吞吐率標(biāo)量流水線處理機(jī):一條指令流水線,一個(gè)多功能操作部件,每個(gè)時(shí)鐘周期平均執(zhí)行指令的條數(shù)小于1。超級(jí)流水線(Super-pipeline):

將指令的執(zhí)行分解成小的步驟(級(jí)),不同指令中不同步驟可并行操作。級(jí)數(shù)分的多,并行執(zhí)行的指令也多。超級(jí)流水線指的是多級(jí)數(shù)的流水線(如8級(jí)以上)。超標(biāo)量處理機(jī)典型結(jié)構(gòu):多條并行工作的指令流水線,多個(gè)獨(dú)立的操作部件。標(biāo)量流水線的時(shí)空?qǐng)D(CAI)可將指令周期的任務(wù)分解并由流水部件分別完成。例如,指令周期分為4個(gè)過(guò)程:取指(IF)、譯碼(ID)、執(zhí)行(EX)、結(jié)果寫(xiě)回(WB)段與段之間有高速緩沖寄存器I1I1I1I1I1I1I1I1I2I2I2I2I2I2I2I2超標(biāo)量流水線的時(shí)空?qǐng)D(CAI)I1I2I1I1I1I2I2I2

流水線的分類:指令流水線、算術(shù)流水線、處理機(jī)流水線指令流水線指指令步驟的并行。將指令流的處理過(guò)程劃分為取指令、譯碼、執(zhí)行、寫(xiě)回等幾個(gè)并行處理的過(guò)程段。目前,幾乎所有的高性能計(jì)算機(jī)都采用了指令流水線。算術(shù)流水線指運(yùn)算

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論