白中英計(jì)算機(jī)組成原理第5章-中央處理機(jī)_第1頁(yè)
白中英計(jì)算機(jī)組成原理第5章-中央處理機(jī)_第2頁(yè)
白中英計(jì)算機(jī)組成原理第5章-中央處理機(jī)_第3頁(yè)
白中英計(jì)算機(jī)組成原理第5章-中央處理機(jī)_第4頁(yè)
白中英計(jì)算機(jī)組成原理第5章-中央處理機(jī)_第5頁(yè)
已閱讀5頁(yè),還剩95頁(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)介

第5章中央處理機(jī)目錄5.1CPU的功能和組成

——掌握5.2指令周期

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

——了解5.4微程序控制器

——掌握5.5硬連線控制器

——了解5.6傳統(tǒng)CPU

——了解5.7流水CPU

——掌握5.8RISCCPU

——了解5.9多媒體CPU

——了解2/2/20232考研大綱要求(一)CPU的功能和基本結(jié)構(gòu)(二)指令執(zhí)行過(guò)程(三)數(shù)據(jù)通路的功能和基本結(jié)構(gòu)(四)控制器的功能和工作原理硬布線控制器微程序控制器微程序、微指令和微命令微指令的編碼方式;微地址的形成方式(五)指令流水線指令流水線的基本概念超標(biāo)量和動(dòng)態(tài)流水線的基本概念2/2/202335.1CPU的組成和功能5.1.1CPU的功能5.1.2CPU的基本組成5.1.3CPU中的主要寄存器5.1.4操作控制器與時(shí)序產(chǎn)生器2/2/202345.1.1CPU的功能CPU(中央處理器)控制程序按設(shè)定方式執(zhí)行;CPU的主要功能:指令控制控制程序的執(zhí)行順序;操作控制產(chǎn)生和發(fā)送各操作信號(hào);時(shí)間控制控制指令、或操作的實(shí)施時(shí)間;數(shù)據(jù)加工對(duì)數(shù)據(jù)進(jìn)行算術(shù)邏輯運(yùn)算;順序?qū)ぶ?、跳躍尋址對(duì)指令操作碼譯碼后產(chǎn)生控制信號(hào)維持各類操作的時(shí)序關(guān)系由ALU完成具體的運(yùn)算2/2/202355.1.2CPU的基本組成現(xiàn)代的CPU的組成運(yùn)算器、控制器控制器的主要功能從內(nèi)存中取出一條指令,并指出下條指令的存放位置;對(duì)指令進(jìn)行譯碼,產(chǎn)生相應(yīng)的操作控制信號(hào);控制CPU、內(nèi)存和輸入/輸出設(shè)備之間數(shù)據(jù)流動(dòng);運(yùn)算器的主要功能:執(zhí)行所有的算術(shù)運(yùn)算;執(zhí)行所有的邏輯運(yùn)算,并進(jìn)行邏輯測(cè)試。馮·諾依曼機(jī)的定義、片內(nèi)Cache;PC、IRALU、通用寄存器組、標(biāo)志寄存器CU、時(shí)序電路、操作控制器2/2/20236CPU模型圖動(dòng)畫演示:5-1.swf運(yùn)算器Cache控制器2/2/202375.1.3CPU中的主要寄存器(1/3)數(shù)據(jù)緩沖寄存器(DR)暫時(shí)存放CPU與外界傳送的數(shù)據(jù),可以是指令字或數(shù)據(jù)字。作用:作為CPU和內(nèi)存、外部設(shè)備之間信息傳送的中轉(zhuǎn)站;補(bǔ)償CPU和內(nèi)存、外圍設(shè)備之間在操作速度上的差別;通用寄存器功能:暫時(shí)存放ALU運(yùn)算的數(shù)據(jù)或結(jié)果。CPU中的通用寄存器可多達(dá)16個(gè),32個(gè),甚至更多。2/2/202385.1.3CPU中的主要寄存器(2/3)狀態(tài)條件寄存器(PSW)保存各種狀態(tài)和條件控制信號(hào);進(jìn)位標(biāo)志(C),溢出標(biāo)志(V),零標(biāo)志(Z),符號(hào)標(biāo)志(N)每個(gè)信號(hào)由一個(gè)觸發(fā)器保存,從而拼成一個(gè)寄存器。地址寄存器(AR)保存當(dāng)前CPU所訪問數(shù)據(jù)的內(nèi)存單元地址;主要用于解決主存/外設(shè)和CPU之間的速度差異,使地址信息可以保持到主存/外設(shè)的讀寫操作完成為止。2/2/202395.1.3CPU中的主要寄存器(3/3)程序計(jì)數(shù)器(PC)始終存放下一條指令的地址,對(duì)應(yīng)于指令Cache的訪問;其內(nèi)容變化分兩種情況順序執(zhí)行:PC+1PC轉(zhuǎn)移執(zhí)行:(指令OPR)PC指令寄存器(IR)保存當(dāng)前正在執(zhí)行的一條指令。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。寄存功能計(jì)數(shù)功能2/2/2023105.1.4操作控制器與時(shí)序產(chǎn)生器數(shù)據(jù)通路寄存器之間傳送信息的通路。操作控制器根據(jù)指令操作碼和時(shí)序信號(hào),產(chǎn)生各種操作控制信號(hào);建立正確地?cái)?shù)據(jù)通路,從而完成指令的執(zhí)行。根據(jù)設(shè)計(jì)方法不同,操作控制器可分為硬布線控制器:采用時(shí)序邏輯技術(shù)實(shí)現(xiàn);微程序控制器:采用存儲(chǔ)邏輯實(shí)現(xiàn);前兩種方式的結(jié)合;時(shí)序產(chǎn)生器對(duì)各種操作實(shí)施時(shí)間的控制。2/2/202311數(shù)據(jù)通路的建立增量寫入讀出寫入讀出寫入讀出鎖存鎖存寫入讀出寫入讀出運(yùn)算類型讀出寫入2/2/2023125.2

指令周期5.2.1

指令周期的基本概念5.2.2MOVR0,R1指令的指令周期5.2.3LADR1,6指令的指令周期5.2.4ADDR1,R2指令的指令周期5.2.5STOR2,(R3)指令的指令周期5.2.6JMP101指令的指令周期5.2.7

用方框圖語(yǔ)言表示指令周期2/2/2023135.2.1指令周期的基本概念CPU執(zhí)行程序是一個(gè)“取指令—執(zhí)行指令”的循環(huán)過(guò)程。指令周期CPU從內(nèi)存中取出一條指令,并執(zhí)行的時(shí)間總和;CPU周期又稱機(jī)器周期,一般為從內(nèi)存讀取一條指令字的最短時(shí)間;一個(gè)CPU周期可以完成CPU的一個(gè)基本操作。時(shí)鐘周期也叫節(jié)拍脈沖或T周期,是計(jì)算機(jī)處理操作的基本時(shí)間單位。動(dòng)畫演示:5-2.swf2/2/202314關(guān)于指令周期一個(gè)完整的指令周期由若干機(jī)器周期:取指周期——間址周期——執(zhí)行周期——中斷周期所有指令的第一個(gè)機(jī)器周期必為取指周期;一個(gè)基本的CPU周期包含4個(gè)時(shí)鐘周期,對(duì)于某些CPU周期可以包含更多的時(shí)鐘周期。不同指令的指令周期所包含的時(shí)鐘周期個(gè)數(shù)不一定相同。求操作數(shù)有效地址本教材上,間址周期和執(zhí)行周期統(tǒng)稱為執(zhí)行周期!2/2/202315一個(gè)簡(jiǎn)單的程序地址指令說(shuō)明100程序執(zhí)行前設(shè)置(R0)=00,(R1)=10;(R2)=20,(R3)=30101MOVR0,R1傳送指令MOV執(zhí)行(R1)R0102LADR1,6取數(shù)指令LAD從6號(hào)單元中取數(shù)100R1103ADDR1,R2加法指令A(yù)DD執(zhí)行(R1)+(R2)R2,結(jié)果為(R2)=120104STOR2,(R3)存數(shù)指令STO用(R3)間接尋址,(R2)=120寫入30號(hào)單元105JMP101轉(zhuǎn)移指令JMP改變程序執(zhí)行順序,轉(zhuǎn)到101號(hào)單元106ANDR1,R3邏輯與指令A(yù)ND執(zhí)行(R1)·(R2)R3地址數(shù)據(jù)57061007661077……3040(120)2/2/2023165.2.2MOVR0,R1指令的指令周期MOV是一條RR型指令,它需要兩個(gè)CPU周期:取指周期從存儲(chǔ)器中取出指令;程序計(jì)數(shù)器PC加1;譯碼或測(cè)試指令操作碼,發(fā)出控制信號(hào);執(zhí)行周期在控制信號(hào)的作用下,將R1中的數(shù)據(jù)經(jīng)過(guò)ALU送入R0;2/2/202317MOVR0,R1指令的執(zhí)行過(guò)程演示101①M(fèi)OVR0,R1102②MOV③④10動(dòng)畫演示2/2/202318MOVR0,R1指令周期中的控制信號(hào)取指周期PCABUS指令Cache,譯碼并啟動(dòng);指令CacheIR;PCPC+1,為取下條指令做好準(zhǔn)備;IR中的操作碼被譯碼或測(cè)試,CPU識(shí)別出是指令MOV。執(zhí)行指令階段R1ALU,R1中數(shù)據(jù)通過(guò)ALU傳送;ALUDBUSDRR0;PC讀指令Cache啟動(dòng)指令Cache讀IR寫PC增量R1讀ALU傳送控制ALU輸出DR鎖存R0寫2/2/2023195.2.3LADR1,6指令的指令周期LAD指令是RS型指令,需要訪存獲取操作數(shù),共包含三個(gè)CPU周期:取值周期間址周期從IR的地址碼字段獲取操作數(shù)地址;(或者通過(guò)計(jì)算獲得EA)執(zhí)行周期訪存獲取操作數(shù)送入通用寄存器R1;2/2/202320LADR1,6指令的執(zhí)行過(guò)程演示102①LADR1,6103②LAD③6100動(dòng)畫演示2/2/202321LADR1,6指令周期中的控制信號(hào)LAD取指周期CPU動(dòng)作與取MOV指令的取值周期中一樣。LAD指令的執(zhí)行周期IRDBUSAR;該過(guò)程為尋址周期;ARABUS數(shù)據(jù)Cache,譯碼并啟動(dòng);數(shù)據(jù)CacheDBUS

DRR1;IR讀AR鎖存數(shù)據(jù)Cache啟動(dòng)數(shù)據(jù)Cache讀DR鎖存R1寫2/2/2023225.2.4ADDR1,R2指令的指令周期ADD指令的指令周期由兩個(gè)CPU周期組成。取指周期(略)執(zhí)行周期從寄存器R1、R2中取出數(shù)據(jù),作為源操作數(shù);將兩數(shù)據(jù)送往ALU,并使ALU進(jìn)行加運(yùn)算;結(jié)果保存到R1中。2/2/202323ADDR1,R2指令的執(zhí)行過(guò)程演示103①ADDR1,R2104②ADD③10020120動(dòng)畫演示2/2/202324ADDR1,R2指令周期中的控制信號(hào)取指周期(略)CPU動(dòng)作與取MOV指令的取值周期中一樣。執(zhí)行周期R1、R2ALU;ALU做加運(yùn)算,將兩數(shù)相加;ALUDBUSDRR1,保存結(jié)果;R1讀R2讀ALU加ALU輸出DR鎖存R1寫2/2/2023255.2.5STOR2,(R3)指令的指令周期STO指令是RS型指令,需要3個(gè)CPU周期。取指周期(略)間址周期根據(jù)R3中的地址尋址所要訪問的存儲(chǔ)單元;執(zhí)行周期將寄存器R2中的數(shù)據(jù)送入指定的存儲(chǔ)單元;2/2/202326STOR2,(R3)指令的執(zhí)行過(guò)程演示104①STOR2,(R3)105②STO③動(dòng)畫演示30

1202/2/202327STOR2,(R3)指令周期中的控制信號(hào)取指周期(略)執(zhí)行周期R3DBUSAR,發(fā)出地址啟動(dòng)數(shù)據(jù)Cache;該過(guò)程為間址周期;R2DBUS數(shù)據(jù)Cache;R3讀AR鎖存R2讀數(shù)據(jù)Cache寫2/2/2023285.2.6JMP101指令的指令周期JMP指令是一條無(wú)條件轉(zhuǎn)移指令,用來(lái)改變程序的執(zhí)行順序;JMP指令的執(zhí)行需要兩個(gè)CPU周期:取指周期(略)執(zhí)行周期使用JMP指令中的直接地址為PC賦值;2/2/202329JMP101指令的執(zhí)行過(guò)程演示105①JMP101106②JMP③動(dòng)畫演示1012/2/202330JMP101指令周期中的控制信號(hào)取指周期(略)執(zhí)行周期IRDBUSPC;IR讀PC寫2/2/2023315.2.7用方框圖語(yǔ)言表示指令周期方框代表一個(gè)CPU周期;方框中的內(nèi)容表示數(shù)據(jù)通路的操作或某種控制操作。菱形通常用來(lái)表示某種判別或測(cè)試;時(shí)間上依附于之前一個(gè)方框的CPU周期,而不單獨(dú)占用一個(gè)CPU周期;~(公操作符號(hào))表示一條指令已經(jīng)執(zhí)行完畢,轉(zhuǎn)入公操作。所謂公操作就是一條指令執(zhí)行完畢后,CPU所開始的一些操作,比如對(duì)外圍設(shè)備請(qǐng)求的處理等。動(dòng)畫演示5.14.swf2/2/202332P139圖5.14方框圖語(yǔ)言表示的指令周期MOVR0,R1LADR1,6

ADDR1,R2

STOR2,(R3)

JMP1012/2/202333課本P139【例1】圖5.15所示為雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路,各構(gòu)成部件如圖,線上標(biāo)注有小圈表示有控制信號(hào),未標(biāo)字符的線為直通線?!癆DDR2,R0”指令完成(R0)+(R2)→R0的功能操作,畫出其指令周期流程圖,并列出相應(yīng)的微操作控制信號(hào)序列?!癝UBR1,R3”指令完成(R3)-(R1)→R3的操作,畫出其指令期流程圖,并列出相應(yīng)的微操作控制信號(hào)序列。2/2/202334指令周期應(yīng)包括取指周期和執(zhí)行周期;執(zhí)行周期中應(yīng)首先將R0、R2兩寄存器的內(nèi)容送入ALU的操作數(shù)緩沖器中,再執(zhí)行加法運(yùn)算;(1)“ADDR2,R0”→(R0)+(R2)→R0(PC)AR(M)DR(DR)IR譯碼(R2)Y(R0)X(R0)+(R2)R0取指周期執(zhí)行周期PC0GARiR/W=1DR0GIRiR20GYiR00GXi+GR0i2/2/202335指令A(yù)DDR2,R0的執(zhí)行過(guò)程指令地址指令R2R0和2/2/202336指令周期應(yīng)包括取指周期和執(zhí)行周期;取指周期與ADD指令完全相同;執(zhí)行周期與ADD指令不同之處在于ALU的控制信號(hào)為“-”(2)“SUBR1,R3”→(R3)-(R1)→R3(PC)AR(M)DR(DR)IR譯碼(R3)Y(R1)X(R3)-(R1)R3取指周期執(zhí)行周期PC0GARiR/W=1DR0GIRiR30GYiR10GXi—GR3i2/2/202337參考上例試寫出下列指令的微操作序列指令STOR1,(R2)功能:R1→(R2),將R1的數(shù)據(jù)送入R2指向的單元中;指令LAD(R3),R0功能:將R3指向單元中的數(shù)據(jù)送入R0中;指令A(yù)DDR0,(R1)功能:將R1指向單元中的數(shù)據(jù)和R0的內(nèi)容相加,并將結(jié)果存入R0寄存器中。指令A(yù)DD(R1),R0功能:(R0)+((R1))→(R1),將R0中的數(shù)據(jù)與R1指向單元中的數(shù)據(jù)相加,并將結(jié)果送入R1指向的單元中;2/2/202338計(jì)算機(jī)的性能指標(biāo)主頻/時(shí)鐘周期主時(shí)鐘的頻率(f)叫CPU的主頻;主頻的倒數(shù)稱為CPU時(shí)鐘周期(T),T=1/f。CPI執(zhí)行一條指令所需的平均時(shí)鐘周期數(shù)。MIPS每秒百萬(wàn)指令數(shù),即單位時(shí)間內(nèi)執(zhí)行的指令數(shù)。2/2/202339【例1】某CPU的主頻為8MHz,設(shè)每個(gè)CPU周期平均包括4個(gè)時(shí)鐘周期,且該機(jī)平均指令執(zhí)行速度為1MIPS。求該機(jī)平均指令周期。平均指令周期=求每個(gè)指令周期包含的平均CPU周期。時(shí)鐘周期=一個(gè)CPU周期為4個(gè)時(shí)鐘周期,則4×0.125=0.5us;故每個(gè)指令周期包含1/0.5=2個(gè)平均CPU周期。1秒1百萬(wàn)條指令1106==1us18MHz=0.125us2/2/202340【例2】若某機(jī)主頻為200MHz,每個(gè)指令周期平均為2.5個(gè)CPU周期,每個(gè)CPU周期平均包括2個(gè)主頻周期。該機(jī)平均指令執(zhí)行速度為多少M(fèi)IPS?執(zhí)行一條指令的時(shí)間=2.5×2×?xí)r鐘周期 =2.5×2×平均指令執(zhí)行速度=1/平均指令周期若主頻不變,但每條指令平均包括5個(gè)CPU周期,每個(gè)CPU周期又包含4個(gè)主頻周期,平均指令執(zhí)行速度為多少M(fèi)IPS?執(zhí)行一條指令的時(shí)間=2.5×2×?xí)r鐘周期 =5×4×平均指令執(zhí)行速度=1/平均指令周期1200MHz=40MIPS1200MHz=10MIPS140M=110M=2/2/2023415.3

時(shí)序產(chǎn)生器和控制方式5.3.1時(shí)序信號(hào)的作用和體制5.3.2時(shí)序信號(hào)產(chǎn)生器5.3.3控制方式2/2/2023425.3.1時(shí)序信號(hào)的作用和體制時(shí)序信號(hào)的作用使計(jì)算機(jī)準(zhǔn)確、迅速、有條不紊地工作;CPU通過(guò)時(shí)序控制來(lái)識(shí)別指令和數(shù)據(jù):指令周期的第一個(gè)CPU周期——取指周期;從存儲(chǔ)單元中取出的一定是指令,需要送往IR指令寄存器;指令周期的其他CPU周期——執(zhí)行周期;從存儲(chǔ)單元中取出的一定是數(shù)據(jù),需要送往運(yùn)算器。時(shí)序信號(hào)的體制:電位—脈沖制脈沖到達(dá)之前,電平信號(hào)必須要穩(wěn)定;CPU的時(shí)間表2/2/202343控制器的時(shí)序信號(hào)硬布線控制器的時(shí)序信號(hào)常采用主狀態(tài)周期-節(jié)拍電位-節(jié)拍脈沖三級(jí)體制。微程序控制器的時(shí)序信號(hào)一般采用節(jié)拍電位-節(jié)拍脈沖二級(jí)體制。節(jié)拍脈沖節(jié)拍電位1主狀態(tài)周期節(jié)拍電位2節(jié)拍電位可表示一個(gè)CPU周期主狀態(tài)周期可包含若干個(gè)節(jié)拍電位,是最大的時(shí)間單位時(shí)鐘周期2/2/2023445.3.2時(shí)序信號(hào)產(chǎn)生器時(shí)序信號(hào)產(chǎn)生器:用邏輯電路實(shí)現(xiàn)時(shí)序的控制;微程序控制器中時(shí)序信號(hào)產(chǎn)生器的組成:P142圖5.17時(shí)鐘源

提供穩(wěn)定的基本方波時(shí)鐘信號(hào);環(huán)形脈沖發(fā)生器

產(chǎn)生一組有序的間隔相等或不等的脈沖序列;節(jié)拍脈沖和讀寫時(shí)序譯碼邏輯

環(huán)形脈沖與節(jié)拍脈沖共同作用產(chǎn)生各控制信號(hào)的時(shí)序;啟??刂七壿?/p>

2/2/2023455.3.3控制方式控制器的控制方式控制不同操作序列的時(shí)序信號(hào)的方法。同步控制方式在任何情況下,已定的指令在執(zhí)行時(shí)所需的機(jī)器周期數(shù)和時(shí)鐘周期數(shù)都固定不變。異步控制方式每條指令、每個(gè)操作控制信號(hào)需要多少時(shí)間就占用多少時(shí)間。聯(lián)合控制方式大部分操作序列為固定的機(jī)器周期,對(duì)某些時(shí)間難以確定的操作則以執(zhí)行部件的“回答”信號(hào)作為本次操作的結(jié)束。機(jī)器周期的節(jié)拍脈沖數(shù)固定,但是各條指令周期的機(jī)器周期數(shù)不固定。2/2/2023465.4微程序控制器5.4.1微程序控制原理5.4.2微程序設(shè)計(jì)技術(shù)2/2/2023475.4.1微程序控制原理微程序設(shè)計(jì)技術(shù)是利用軟件方法來(lái)設(shè)計(jì)硬件的一門技術(shù)。具有規(guī)整性、靈活性、可維護(hù)性等一系列優(yōu)點(diǎn);逐漸取代了早期的組合邏輯控制器,已被廣泛地應(yīng)用?;舅枷敕抡胀ǔ5慕忸}程序的方法,把操作控制信號(hào)編成所謂的“微指令”,存放到一個(gè)只讀存儲(chǔ)器里;當(dāng)機(jī)器運(yùn)行時(shí),一條一條地讀出這些微指令,從而產(chǎn)生全機(jī)所需要的各種操作控制信號(hào),使部件執(zhí)行規(guī)定的操作。2/2/2023481、微命令和微操作控制部件與執(zhí)行部件之間的聯(lián)系控制部件向執(zhí)行部件發(fā)出控制信號(hào);執(zhí)行部件向控制部件返回狀態(tài)信息;微命令控制部件通過(guò)控制線向執(zhí)行部件發(fā)出的各種控制命令;微操作執(zhí)行部件接受微命令后所執(zhí)行的操作;狀態(tài)測(cè)試執(zhí)行部件通過(guò)反饋線向控制部件反映當(dāng)前操作狀態(tài),以使控制部件決定下一步的微命令;控制線執(zhí)行部件的最基本的操作2/2/202349微操作的分類相容性微操作在同時(shí)或同一個(gè)CPU周期內(nèi)可以并行執(zhí)行的微操作;相斥性微操作不能在同時(shí)或不能在同一個(gè)CPU周期內(nèi)并行執(zhí)行的微操作。2/2/202350簡(jiǎn)單運(yùn)算器數(shù)據(jù)通路相斥性微操作相斥性微操作相斥性微操作相容性微操作動(dòng)畫演示:5-20.swf2/2/2023512、微指令和微程序微指令一個(gè)CPU周期中,實(shí)現(xiàn)一定操作功能的一組微命令的組合。微指令一般包含操作控制和順序控制兩大部分操作控制:用于發(fā)出管理和指揮全機(jī)工作的控制信號(hào);順序控制:用于決定產(chǎn)生下一條微指令的地址;所有的微指令都存放于控制存儲(chǔ)器中,使用地址訪問;微程序能實(shí)現(xiàn)一條機(jī)器指令功能的多條微指令序列;每條機(jī)器指令都對(duì)應(yīng)著一段微程序;微地址2/2/202352順序控制部分的P1、P2為判別測(cè)試標(biāo)志;若為00,則順序?qū)ぶ肺⒅噶?;若?1、10,則跳躍尋址微指令。直接地址20~23位順序?qū)ぶ窌r(shí),直接地址即為下一條微指令地址;跳躍尋址時(shí),則要對(duì)直接地址修改,得到下條微指令地址;微指令基本格式節(jié)拍脈沖信號(hào)節(jié)拍電位信號(hào)2/2/2023533、微程序控制器原理框圖微程序控制器主要構(gòu)成部件:P147圖5.23控制存儲(chǔ)器(CM)存放實(shí)現(xiàn)全部指令系統(tǒng)的微指令;由只讀存儲(chǔ)器構(gòu)成,要求速度快,讀出周期短。微指令寄存器存放由控制存儲(chǔ)器讀出的一條微指令信息;微地址寄存器:決定將要訪問的下一條微指令的地址;微命令寄存器:保存一條微指令的操作控制字段和判別測(cè)試字段的信息。地址轉(zhuǎn)移邏輯用于跳躍尋址微指令時(shí),承擔(dān)自動(dòng)完成修改微地址的任務(wù)。2/2/202354P147圖5.23微程序控制器原理框圖動(dòng)畫演示:5-23.swf2/2/202355微程序控制器的工作過(guò)程“取指微指令”為所有指令的公用微指令;通常放在控制存儲(chǔ)器中的“0”地址單元;所有機(jī)器指令的最后一條微指令的直接地址都指向0地址單元,用以取下一條微指令。取得機(jī)器指令后,經(jīng)過(guò)P1測(cè)試,即操作碼測(cè)試,產(chǎn)生對(duì)應(yīng)的微程序入口地址,并送入微地址寄存器。指令執(zhí)行過(guò)程中,通過(guò)P2測(cè)試,修正下一條微指令的地址,逐條讀取微指令執(zhí)行。執(zhí)行完對(duì)應(yīng)于一條機(jī)器指令的微程序后,返回到取指微指令,不斷重復(fù),直至程序執(zhí)行完畢。2/2/2023564、微程序舉例“十進(jìn)制加法”指令是用BCD碼來(lái)完成十進(jìn)制數(shù)的加法運(yùn)算。當(dāng)兩數(shù)位相加小于等于9時(shí),結(jié)果正確;當(dāng)兩數(shù)位相加大于9時(shí),必須對(duì)和數(shù)位進(jìn)行加6的修正。例如:3+4=0011+0100=0111=78+7=1000+0111=111125+36=00100101+00110110=01011011+0110=00010101=15=01100001以“十進(jìn)制加法”指令為例+01102/2/202357(R2)-(R3)

R2十進(jìn)制加法指令的微指令執(zhí)行流程假定(R1)=a,(R2)=b,(R3)=6;第一條微指令——取指微指令從內(nèi)存中取出該指令,并修改PC的值;對(duì)操作碼進(jìn)行P1測(cè)試,確定下一條微指令的地址;第二條微指令——兩數(shù)相加微指令第三條微指令——和數(shù)修正微指令P2測(cè)試,根據(jù)進(jìn)位標(biāo)志決定下一條微指令的地址第四條微指令——和數(shù)逆修正微指令取指令P1測(cè)試(R1)+(R2)

R2(R2)+(R3)

R2P2測(cè)試Cy=1Cy=02/2/202358十進(jìn)制加法指令的微指令第一條微指令(取微指令)00000000000011111

10

0000第二條微指令(兩數(shù)相加)0101001001000000000

1001第三條微指令(和數(shù)加6)010001001

1000000001

0000第四條微指令(和數(shù)減6)0100010010010000000

0000取微指令和數(shù)減6……和數(shù)加6兩數(shù)相加……00000001……10011010……控制存儲(chǔ)器LDAR’RD’LDDR’LDIR’PC+1R1XR2Y+LDR2’R2XR3Y+LDR2’R2XR3Y—LDR2’動(dòng)畫演示:

十進(jìn)制加法指令微程序.swf2/2/2023595、CPU周期與微指令周期的關(guān)系微指令周期讀出微指令的時(shí)間加上執(zhí)行該條微指令的時(shí)間;串行方式的微程序控制器中的概念;一般來(lái)講,一個(gè)微指令周期時(shí)間設(shè)計(jì)得恰好和CPU周期時(shí)間相等。2/2/202360CPU周期與微指令周期關(guān)系的例子CPU周期為0.8us,包括4個(gè)節(jié)拍脈沖T1~T4,每個(gè)脈沖200ns;T1—T3的600ns為執(zhí)行微指令的時(shí)間;T4的200ns為取微指令的時(shí)間;T1的上升沿,將讀出的微指令存入微指令寄存器;T4的上升沿保存微指令的執(zhí)行結(jié)果,T4期間取微指令。T1T2T3T4T1T2T3T4T4T4執(zhí)行微指令

微指令周期CPU周期CPU周期

讀微指令2/2/2023616、機(jī)器指令與微指令的關(guān)系一條機(jī)器指令對(duì)應(yīng)一個(gè)微程序,一個(gè)微程序由若干條微指令序列組成的;一條機(jī)器指令所完成的操作劃分成若干條微指令來(lái)完成,由微指令進(jìn)行解釋和執(zhí)行。從指令與微指令,程序與微程序,地址與微地址的一一對(duì)應(yīng)關(guān)系來(lái)看,前者與內(nèi)存有關(guān),后者與控制存儲(chǔ)器有關(guān)。每一個(gè)CPU周期對(duì)應(yīng)一條微指令。動(dòng)畫演示:

5.27.swf2/2/202362【例】設(shè)某16位計(jì)算機(jī)運(yùn)算器框圖如下圖(a)所示,其中ALU為16位的加法器(高電平工作),SA、SB為16位暫存器。4個(gè)通用寄存器,其讀、寫控制功能見下表。讀控制RRA0RA1選中100R0101R1110R2111R30××不讀寫控制WWA0WA1選中100R0101R1110R2111R30××不寫2/2/202363控制信號(hào)說(shuō)明RA0RA1/WA0WA1:讀寫通用寄存器時(shí),選擇所讀寫的寄存器;

R/W:寄存器讀/寫命令;LDSA/LDSB:將數(shù)據(jù)打入SA/SB的控制信號(hào);SB→ALU:將SB中數(shù)據(jù)送入ALU的控制信號(hào);→ALU:傳送SB的控制信號(hào),并使加法器最低位加1;Reset:清暫存器SB為零的信號(hào);~:一段微程序結(jié)束,轉(zhuǎn)入取機(jī)器指令的控制信號(hào);要求:用二進(jìn)制代碼寫出如下指令的微程序:“ADDR0,R1”指令,即(R0)+(R1)→R1“SUBR2,R3”指令,即(R3)-(R2)→R3“MOVR2,R3”指令,即(R2)→(R3)【例】微指令字長(zhǎng)12位,微指令格式如下所示(未考慮順序控制字段)。WA1RA1RA0WA0RWLDSALDSBSB→ALUSB→ALUReset~

SB2/2/202364【例】解答三條指令的微指令的微程序流程圖三條指令的微程序代碼如下表:未考慮“取指周期”和順序控制問題,僅考慮“執(zhí)行周期”;每一個(gè)方框表示一條微指令,用數(shù)字序號(hào)標(biāo)明微指令序列的順序。指令微程序代碼ADD1.00**101000002.01**100100003.**0101001001SUB4.11**101000005.10**100100006.**1101000101MOV7.10**101000008.**11010010112/2/2023655.4.2微程序設(shè)計(jì)技術(shù)微命令編碼微地址的形成方法微指令格式動(dòng)態(tài)微程序設(shè)計(jì)2/2/2023661、微命令編碼微指令中操作控制字段的編碼表示方法,以及如何把編碼翻譯成相應(yīng)的微指令。微命令編碼主要考慮的問題:如何有效縮短微指令字長(zhǎng);如何有利于縮短微程序,減少所需的控存空間;如何有利于提高微程序執(zhí)行速度;微命令編碼表示方法直接表示法、編碼表示法、混合表示法2/2/202367直接表示法操作控制字段中的每一位代表一個(gè)微命令;優(yōu)點(diǎn)簡(jiǎn)單直觀,其輸出可直接用于控制,執(zhí)行速度快;缺點(diǎn)微指令字較長(zhǎng),因而使控制存儲(chǔ)器容量較大。.......................1234567891011121314151617181920212223LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制順序控制2/2/202368編碼表示法(1/2)編碼方法將微指令操作控制字段劃分為若干個(gè)子字段;每個(gè)子字段的所有微命令進(jìn)行統(tǒng)一編碼;每個(gè)子字段的不同編碼表示不同的微命令;例如,某機(jī)器指令系統(tǒng)總共需要256個(gè)微命令采用直接編碼法微指令的操作控制字段需256位;采用編碼表示法若4個(gè)微命令劃分一個(gè)子字段,則每個(gè)子字段可編碼16個(gè)微命令;256個(gè)微命令需16個(gè)子字段,即微指令的操作控制字段僅64位。2/2/202369編碼表示法(2/2)遵循原則:把相斥的微命令劃分在同一個(gè)字段中,相容的微命令劃分在不同字段;字段的劃分應(yīng)與數(shù)據(jù)通路結(jié)構(gòu)相適應(yīng);每個(gè)子字段應(yīng)留出一個(gè)空操作狀態(tài);每個(gè)子字段所定義的微命令不宜太多;優(yōu)點(diǎn)可大大縮短微指令字長(zhǎng);缺點(diǎn)需要微命令譯碼,故微程序的執(zhí)行速度稍稍減慢。2/2/2023702、微地址的形成方法微程序的入口地址微程序的第一條微指令所在控存單元的地址;現(xiàn)行微指令執(zhí)行微程序過(guò)程中,當(dāng)前正在執(zhí)行的微指令;現(xiàn)行微指令的地址稱為現(xiàn)行微地址。后繼微指令現(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令;后繼微指令的地址稱為后繼微地址。微指令中確定下一條微指令地址的方法;計(jì)數(shù)器方式、多路轉(zhuǎn)移方式;2/2/202371計(jì)數(shù)器方式同CPU中程序計(jì)數(shù)器產(chǎn)生機(jī)器指令地址的方法相類似。優(yōu)點(diǎn)微指令的順序控制字段較短,微地址產(chǎn)生機(jī)構(gòu)簡(jiǎn)單。缺點(diǎn)多路并行轉(zhuǎn)移功能較弱,速度較慢,靈活性較差。2/2/202372多路轉(zhuǎn)移方式可根據(jù)“判別測(cè)試”標(biāo)志和“狀態(tài)條件”信息選定某一個(gè)候選微地址的方法。特點(diǎn)能以較短的順序控制字段配合,實(shí)現(xiàn)多路并行轉(zhuǎn)移,靈活性好,速度較快;但轉(zhuǎn)移地址邏輯需要用組合邏輯方法設(shè)計(jì)。2/2/202373【例】已知某計(jì)算機(jī)采用微程序控制方式,其控存容量為512×32位,微程序可以在控存中實(shí)現(xiàn)轉(zhuǎn)移,可控制微程序轉(zhuǎn)移的條件有6個(gè),采用直接編碼方式,后繼微指令地址采用多路轉(zhuǎn)移方式。微指令字長(zhǎng)32位,格式如下,請(qǐng)說(shuō)明微指令中3個(gè)字段分別應(yīng)為多少位。由控存單元數(shù)可知共512個(gè),則每個(gè)控存單元地址位為9位,則微指令中的后繼微指令地址位數(shù)為9位;可控制微程序轉(zhuǎn)移的條件為6個(gè),且按照直接控制編碼,則測(cè)試條件位數(shù)為6位;剩下的為操作控制字段可用位數(shù)32-9-6=17位;微操作編碼測(cè)試指令下址2/2/2023743、微指令格式水平型微指令一次能定義并執(zhí)行多個(gè)并行操作微命令的微指令;一般由操作控制字段、判別測(cè)試字段、下地址字段三部分構(gòu)成;根據(jù)控制字段編碼方式的不同,可分為全水平型、字段譯碼法水平型、直接和譯碼相混合的水平型三種微指令。垂直型微指令微指令中設(shè)置微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能;垂直型微指令的結(jié)構(gòu)類似于機(jī)器指令的結(jié)構(gòu)。課本P153四個(gè)垂直型微指令的例子2/2/202375水平型微指令與垂直型微指令比較水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng)。垂直型微指令則較差。水平型微指令執(zhí)行一條指令的時(shí)間短,垂直型微指令執(zhí)行時(shí)間長(zhǎng)。由水平型微指令解釋指令的微程序,具有微指令字比較長(zhǎng),但微程序短的特點(diǎn)。

垂直型微指令則相反,微指令字比較短而微程序長(zhǎng)。水平型微指令用戶難以掌握,而垂直型微指令與指令比較相似,相對(duì)來(lái)說(shuō),比較容易掌握。2/2/2023764、動(dòng)態(tài)微程序設(shè)計(jì)靜態(tài)微程序設(shè)計(jì)對(duì)應(yīng)于一臺(tái)計(jì)算機(jī)的機(jī)器指令只有一組微程序,而且這一組微程序設(shè)計(jì)好之后,一般無(wú)需改變而且也不容易改變。動(dòng)態(tài)微程序設(shè)計(jì)可通過(guò)改變微指令和微程序來(lái)改變機(jī)器的指令系統(tǒng)的微程序設(shè)計(jì)技術(shù)。2/2/2023775.5硬連線控制器硬布線控制器是一種由門電路和觸發(fā)器構(gòu)成的復(fù)雜樹形網(wǎng)絡(luò)。硬布線控制器是早期設(shè)計(jì)計(jì)算機(jī)的一種方法;隨著新一代機(jī)器及VLSI技術(shù)的發(fā)展,硬布線邏輯設(shè)計(jì)思想又得到了重視。與微程序控制相比,硬布線控制的速度較快;微程序控制中每條微指令都要從控制存儲(chǔ)器中讀取一次,影響了速度,而硬布線控制主要取決于電路延遲;近年來(lái)在某些超高速新型計(jì)算機(jī)結(jié)構(gòu)中,又選用了硬布線控制,或與微程序控制器混合使用。2/2/202378硬連線控制器結(jié)構(gòu)方框圖2/2/2023795.7流水CPU5.7.1并行處理技術(shù)5.7.2流水CPU的結(jié)構(gòu)5.7.3流水線中的主要問題2/2/2023805.7.1并行處理技術(shù)標(biāo)準(zhǔn)的馮·諾依曼體系結(jié)構(gòu),采用的是串行處理,即一個(gè)時(shí)刻只能進(jìn)行一個(gè)操作。并行性的兩種含義:同時(shí)性:兩個(gè)以上事件在同一時(shí)刻發(fā)生;如多機(jī)系統(tǒng)中,同一時(shí)刻多個(gè)進(jìn)程在運(yùn)行。并發(fā)行:兩個(gè)以上事件在同一間隔內(nèi)發(fā)生。如并發(fā)程序,某一時(shí)刻CPU中只有一個(gè)進(jìn)程在運(yùn)行,而在一個(gè)時(shí)間段內(nèi),多個(gè)進(jìn)程同時(shí)運(yùn)行。并行性的三種形式:時(shí)間并行:即使用流水處理部件,時(shí)間重疊。空間并行:設(shè)置重復(fù)資源,同時(shí)工作。時(shí)間并行+空間并行:時(shí)間重疊和資源重復(fù)的綜合應(yīng)用。2/2/202381微指令的執(zhí)行方式串行執(zhí)行方式并行執(zhí)行方式取第i條微指令執(zhí)行第i條微指令取第i+1條微指令執(zhí)行第i+1條微指令微周期微周期取第i條微指令執(zhí)行第i條微指令取第i+1條微指令執(zhí)行第i+1條微指令取第i+2條微指令執(zhí)行第i+2條微指令2/2/2023825.7.2流水CPU的結(jié)構(gòu)1、流水計(jì)算機(jī)的系統(tǒng)組成流水CPU的組成指令部件指令部件本身構(gòu)成一個(gè)流水線,由取指令、指令譯碼、計(jì)算操作數(shù)地址、取操作數(shù)等過(guò)程段組成。指令隊(duì)列指令隊(duì)列是一個(gè)先進(jìn)先出的寄存器棧,用于存放經(jīng)過(guò)譯碼的指令和取來(lái)的操作數(shù)。執(zhí)行部件執(zhí)行部件可以具有多個(gè)算術(shù)邏輯運(yùn)算部件,這些部件本身又用流水線方式構(gòu)成。主存采用多體交叉存儲(chǔ)器,以提高訪問速度。P162頁(yè)圖5.32流水線技術(shù)是Intel在486芯片中首次使用的2/2/202383流水計(jì)算機(jī)系統(tǒng)組成原理示意圖2/2/202384執(zhí)行段的速度匹配問題的解決將執(zhí)行部件分為定點(diǎn)執(zhí)行部件和浮點(diǎn)執(zhí)行部件兩個(gè)可并行執(zhí)行的部分,分別處理定點(diǎn)運(yùn)算指令和浮點(diǎn)運(yùn)算指令;在浮點(diǎn)執(zhí)行部件中,又有浮點(diǎn)加法部件和浮點(diǎn)乘/除部件,它們也可以同時(shí)執(zhí)行不同的指令;浮點(diǎn)運(yùn)算部件都以流水線方式工作。2/2/2023852、流水CPU的時(shí)空?qǐng)D流水線基本原理順序方式的串行指令執(zhí)行過(guò)程:將一條指令的執(zhí)行過(guò)程分成4段,并行執(zhí)行過(guò)程:取指1譯碼1取操作數(shù)1運(yùn)算并保存結(jié)果1取指2譯碼2取操作數(shù)2…取指譯碼取操作數(shù)運(yùn)算并保存結(jié)果取指譯碼取操作數(shù)運(yùn)算并保存結(jié)果取指譯碼取操作數(shù)運(yùn)算并保存結(jié)果取指譯碼取操作數(shù)運(yùn)算并保存結(jié)果一般流水線時(shí)鐘周期應(yīng)選取4段中最長(zhǎng)的時(shí)間2/2/202386流水CPU的加速比非流水線CPU處理n個(gè)任務(wù)時(shí),所需時(shí)鐘周期數(shù) T1=n×k一個(gè)具有k級(jí)過(guò)程段的流水CPU處理這n個(gè)任務(wù)時(shí),需要的時(shí)鐘周期數(shù) Tk=k+(n-1)k個(gè)時(shí)鐘周期用于處理第一個(gè)任務(wù);k個(gè)周期后,流水線被裝滿,剩余的n-1個(gè)任務(wù)只需n-1個(gè)周期即可完成。將T1和Tk的比率定義為k級(jí)線性流水處理器的加速比:Ck=T1/Tk2/2/202387動(dòng)畫演示:5.33.swf一般流水線(pipeline)只有一條指令流水線超流水線(superpipeline)多級(jí)流水線每個(gè)階段內(nèi)部再劃分步驟奔騰Pro的流水線長(zhǎng)達(dá)14步超標(biāo)量(superscale)流水線具有兩條以上的指令流水線奔騰以上CPU才具有這種結(jié)構(gòu)流水計(jì)算機(jī)的時(shí)空?qǐng)D2/2/2023883、流水線分類指令流水線指令執(zhí)行的并行處理;指令流劃分為取指、譯碼、取操作數(shù)、執(zhí)行、寫回等過(guò)程;算術(shù)流水線運(yùn)算操作步驟的并行處理;現(xiàn)代微機(jī)中大多采用流水的算術(shù)運(yùn)算器;處理機(jī)流水線程序步驟的并行處理將每一階段的處理分散在不同的機(jī)器上,應(yīng)用于多級(jí)系統(tǒng)中;2/2/202389【例1】假設(shè)一條指令按取指、分析和執(zhí)行三步解釋執(zhí)行,請(qǐng)計(jì)算下列幾種情況下執(zhí)行完100條指令所需的時(shí)間。順序方式若T?。絋分=2,T執(zhí)=1t=100×(2+2+1)=500若T取=T執(zhí)=5,T分=2t=100×(5+5+2)=1200僅(K+1)取指與K執(zhí)行重疊;(K+2)取指、(K+1)分析、K執(zhí)行重疊。2/2/202390②僅(K+1)取指與K執(zhí)行重疊取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行…取指分析執(zhí)行第2條第3條第100條第1條若T?。絋分=2,T執(zhí)=1t=6+98×(2+2)+3=401若T?。絋執(zhí)=5,T分=2t=12+99×(2+5)=7052/2/202391③(K+2)取指、(K+1)分析、K執(zhí)行重疊取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行…取指分析執(zhí)行第2條第1條第3條第100條若T?。絋分=2,T執(zhí)=1t=6+98×2+1=203若T取=T執(zhí)=5,T分=2t=15+98×5+5=5102/2/202392【例2】指令流水線有取指(IF)、譯碼(ID)、執(zhí)行(EX)、訪存(MEM)、寫回寄存器堆(WB)五個(gè)過(guò)程段,共有7條指令連續(xù)輸入此流水線,時(shí)鐘周期為100ns。請(qǐng)畫出流水處理的時(shí)空?qǐng)D;IFIDEXMEMWB第1條IFIDEXMEMWB第2條IFIDEXMEM

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論