版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第五章中央處理器CPU的結(jié)構(gòu)和功能CPU的結(jié)構(gòu)和功能指令周期指令流水控制單元的功能微操作命令的分析控制單元的功能控制單元的設(shè)計(jì)組合邏輯設(shè)計(jì)微程序設(shè)計(jì)CPU的功能中央處理器(CentralProcessingUnit,簡稱CPU)是計(jì)算機(jī)的核心組成部分,它對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)行是極其重要的,它具有四方面的基本功能:指令控制控制程序的順序執(zhí)行程序是一個(gè)指令序列,這些指令的相互順序不能任意顛倒,必須嚴(yán)格按程序規(guī)定的順序進(jìn)行控制器必須具備能自動(dòng)地從存儲(chǔ)器中取出指令CPU的功能操作控制產(chǎn)生完成每條指令所需的控制命令一條指令的功能往往是由若干個(gè)操作信號(hào)的組合來實(shí)現(xiàn)的,不同的指令需要不同的操作信號(hào)控制器要能夠分析指令,根據(jù)指令的具體要求產(chǎn)生相應(yīng)的操作信號(hào),并把各種操作信號(hào)送往相應(yīng)的部件,從而控制這些部件按指令的要求進(jìn)行動(dòng)作CPU的功能時(shí)間控制對(duì)各種操作實(shí)施時(shí)間上的定時(shí)在計(jì)算機(jī)中,各種指令的操作信號(hào)以及一條指令的整個(gè)執(zhí)行過程都受到時(shí)間的嚴(yán)格定時(shí)時(shí)間控制保證計(jì)算機(jī)能有條不紊地自動(dòng)工作CPU的功能數(shù)據(jù)加工對(duì)數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算處理存儲(chǔ)器、運(yùn)算器、I/O設(shè)備在控制器的控制下執(zhí)行每條指令處理中斷處理機(jī)器運(yùn)行過程中出現(xiàn)的異常情況(如掉電)和特殊請(qǐng)求(如打印機(jī)請(qǐng)求打印一行字符)CPU的組成取指令:有寄存器專用于存放當(dāng)前指令的地址分析指令:有存放當(dāng)前指令的寄存器和對(duì)指令操作碼進(jìn)行譯碼的部件執(zhí)行指令:有發(fā)出各種操作命令序列的控制部件CU數(shù)據(jù)加工:有存放操作數(shù)的寄存器和實(shí)現(xiàn)算邏運(yùn)算的部件處理異常和特殊請(qǐng)求:有中斷系統(tǒng)CPU包含四大部件:ALU、寄存器、中斷系統(tǒng)、CUCPU的框圖CPUALU中斷系統(tǒng)寄存器CU控制總線數(shù)據(jù)總線地址總線系統(tǒng)總線細(xì)化圖:狀態(tài)標(biāo)記移位取反算術(shù)、布爾邏輯內(nèi)部CPU數(shù)據(jù)總線ALU寄存器CU中斷系統(tǒng)…控制總線CPU中的主要寄存器通用寄存器:可由程序設(shè)計(jì)者指定許多功能,可用于存放操作數(shù),也可作為滿足某種尋址方式所需的寄存器數(shù)據(jù)寄存器:存放操作數(shù)地址寄存器:存放地址條件碼寄存器:存放條件碼,條件碼是CPU根據(jù)運(yùn)算結(jié)果由硬件設(shè)置,如結(jié)果正、負(fù)、溢出等用戶可見的寄存器包含:用戶可見的寄存器、控制和條件寄存器CPU中的主要寄存器用于控制CPU的操作或運(yùn)算MAR:存儲(chǔ)器地址寄存器,用于存放將被訪問的內(nèi)存單元的地址MDR:存儲(chǔ)器數(shù)據(jù)寄存器,用于存放最近從內(nèi)存儲(chǔ)器讀出的數(shù)據(jù)或欲存入存儲(chǔ)器中的數(shù)據(jù)PC:程序計(jì)數(shù)器,存放現(xiàn)行指令的地址,通常具有計(jì)數(shù)功能。當(dāng)遇到條件轉(zhuǎn)移指令時(shí),PC的值可被修改IR:指令寄存器,存放當(dāng)前欲執(zhí)行的指令控制和狀態(tài)寄存器指令的執(zhí)行過程在計(jì)算機(jī)內(nèi)運(yùn)行的程序必須事先經(jīng)輸入設(shè)備輸入到主存儲(chǔ)器中,CPU按“取指-執(zhí)行-再取指-再執(zhí)行…”的順序自動(dòng)工作任何一條機(jī)器指令必須從主存儲(chǔ)器中取出來才能被執(zhí)行,因此指令的執(zhí)行過程應(yīng)從取指令開始到執(zhí)行完指令功能為止指令周期指令周期:CPU每取出并執(zhí)行一條指令所需的全部時(shí)間,也即CPU完成一條指令所需的時(shí)間,包括取指令、分析指令和執(zhí)行指令所需的全部時(shí)間取指階段執(zhí)行階段取指周期執(zhí)行周期(取指、分析)(執(zhí)行指令)指令周期指令周期定義示意圖指令周期不同的指令操作功能不同,因此各種指令的指令周期不相同加法指令取指周期執(zhí)行周期指令周期取指周期無條件轉(zhuǎn)移指令指令周期乘法指令…取指周期執(zhí)行周期指令周期指令周期對(duì)于間接尋址的指令,指令字中只給出操作數(shù)有效地址的地址,為了取操作數(shù),需要先訪問一次存儲(chǔ)器獲得有效地址,然后再訪問存儲(chǔ)器,取出操作數(shù)所以,間接尋址的指令周期包括取指周期、間址周期和執(zhí)行周期3個(gè)階段取指周期間址周期指令周期執(zhí)行周期指令周期如果將指令分為非訪存指令、訪存指令、轉(zhuǎn)移指令三類,訪存指令再分為直接訪存和間接訪存兩類,轉(zhuǎn)移指令再分為直接轉(zhuǎn)移和間接轉(zhuǎn)移兩類,則相應(yīng)的指令周期為:取指周期間址周期執(zhí)行周期非訪存指令周期取指周期執(zhí)行周期直接訪存指令周期取指周期執(zhí)行周期間接訪存指令周期轉(zhuǎn)移指令周期取指周期執(zhí)行周期間接轉(zhuǎn)移指令周期取指周期間址周期執(zhí)行周期指令周期當(dāng)CPU采用中斷方式實(shí)現(xiàn)主機(jī)與I/O設(shè)備交換信息時(shí),CPU在每條指令執(zhí)行階段結(jié)束前,都要發(fā)中斷查詢信號(hào),檢測是否有設(shè)備提出中斷請(qǐng)求。若有,CPU進(jìn)入中斷響應(yīng)階段,稱為中斷周期指令周期流程取指周期間址周期執(zhí)行周期有間接尋址嗎?有中斷嗎?YN中斷周期YN取指令取有效地址取操作數(shù)保存斷點(diǎn)指令周期為了區(qū)別4個(gè)不同的周期,CPU內(nèi)部設(shè)置了4個(gè)標(biāo)志觸發(fā)器,用于控制不同周期的各個(gè)操作CLKDFE^DIND^DEX^DINT^1FE1IND1EX1INT取指間址執(zhí)行中斷機(jī)器周期機(jī)器周期可以看作是所有指令執(zhí)行過程中的一個(gè)基準(zhǔn)時(shí)間,取決于指令的功能和器件的速度機(jī)器內(nèi)的操作大致分為對(duì)CPU內(nèi)部的操作和對(duì)主存的操作,前者速度快,后者時(shí)間較長,因此通常以訪問一次存儲(chǔ)器的時(shí)間定為基準(zhǔn)時(shí)間機(jī)器周期定義為CPU從內(nèi)存中讀取一個(gè)指令字的最短時(shí)間,通常等于取指時(shí)間(或訪存時(shí)間)機(jī)器周期也稱作CPU周期,一個(gè)指令周期由若干個(gè)機(jī)器周期組成時(shí)鐘周期(節(jié)拍、狀態(tài))時(shí)鐘周期:時(shí)鐘頻率的倒數(shù),也可稱為節(jié)拍脈沖或T周期,是處理操作的最基本單位在一個(gè)機(jī)器周期內(nèi)可以完成若干個(gè)操作,每個(gè)操作都需要一定的時(shí)間,可用時(shí)鐘信號(hào)來控制產(chǎn)生每一個(gè)微操作命令每個(gè)機(jī)器周期又若干個(gè)時(shí)鐘周期組成,每個(gè)節(jié)拍持續(xù)一個(gè)時(shí)鐘周期指令周期、機(jī)器周期、節(jié)拍和時(shí)鐘周期的關(guān)系時(shí)鐘周期時(shí)鐘T1T2T3T4機(jī)器周期機(jī)器周期指令周期每個(gè)指令周期內(nèi)的機(jī)器周期數(shù)可以不等,每個(gè)機(jī)器周期內(nèi)的節(jié)拍數(shù)業(yè)可以不等例題1設(shè)某計(jì)算機(jī)CPU的主頻為8MHz,每個(gè)機(jī)器周期平均包含2個(gè)時(shí)鐘周期,每條指令的指令周期平均有2.5個(gè)機(jī)器周期,試問(1)該機(jī)的平均指令執(zhí)行速度為多少M(fèi)IPS?(2)若CPU主頻不變,但每個(gè)機(jī)器周期平均含4個(gè)時(shí)鐘周期,每條指令的指令周期平均有5個(gè)機(jī)器周期,則該機(jī)的平均指令執(zhí)行速度又為多少M(fèi)IPS?(3)由此可以得出什么結(jié)論?例題1解:主頻8MIPS,時(shí)鐘周期為1/8=0.125us,機(jī)器周期為0.125*2=0.25us,指令周期為0.25*2.5=0.625us(1)平均指令執(zhí)行速度為1/0.625=1.6MIPS(2)主頻不變,指令周期為0.25*4*5=2.5us,平均指令執(zhí)行速度為1/2.5=0.4MIPS(3)機(jī)器的運(yùn)行速度并不完全取決于主頻例題2例:某CPU主頻為8MHz,設(shè)每個(gè)CPU周期平均包含4個(gè)節(jié)拍周期(主頻周期),且該機(jī)平均指令執(zhí)行速度為1MIPS。(1)求該機(jī)平均指令周期。(2)求每個(gè)指令周期包含的平均CPU周期。(3)若改用主頻周期為0.01s的CPU芯片,試計(jì)算平均指令執(zhí)行速度可提升到多少M(fèi)IPS?例題2(1)平均指令周期=1/(1×106s)=1s(2)因?yàn)镃PU主頻為8MHz,所以節(jié)拍周期(主頻周期)=1/(8×106s)=0.125s因?yàn)槊總€(gè)CPU周期平均包含4個(gè)節(jié)拍周期(主頻周期),則一個(gè)CPU周期=4×0.125s=0.5s。指令周期包含的平均CPU周期=1s/0.5s=2個(gè)。(3)若改用主頻周期為0.01s的CPU芯片,則一個(gè)CPU周期=4×0.01s=0.04s一條指令的執(zhí)行時(shí)間=2×0.04s=0.08s,平均指令執(zhí)行速度可提升到1/0.08s=12.5MIPS。指令周期的數(shù)據(jù)流CPUPCMARCU控制總線數(shù)據(jù)總線地址總線IRMDR
存儲(chǔ)器
+1
PC→MAR→ABUS,CU:R→
CBUS
M(MAR)→DBUS→MDR→IRPC+1取指周期的數(shù)據(jù)流指令周期的數(shù)據(jù)流
Ad(MAR)→MAR→
ABUSCU:R→CBUSM(MAR)→DBUS→MDR間指周期的數(shù)據(jù)流CPUMARCU控制總線數(shù)據(jù)總線地址總線MDR
存儲(chǔ)器
指令周期的數(shù)據(jù)流
執(zhí)行周期的數(shù)據(jù)流不同的指令在執(zhí)行周期的操作不同,因此執(zhí)行周期的數(shù)據(jù)流多種多樣,涉及:CPU內(nèi)部寄存器間的數(shù)據(jù)傳送對(duì)存儲(chǔ)器(或I/O)的讀寫對(duì)ALU的操作無法用統(tǒng)一的數(shù)據(jù)流表示指令周期的數(shù)據(jù)流
CU:(棧指針)→MAR→ABUS,CU:W→CBUS
PC→MDR→DBUS→M(MAR)CU:中斷服務(wù)程序→
PC中斷周期的數(shù)據(jù)流CPUPCMARCU控制總線數(shù)據(jù)總線地址總線MDR
存儲(chǔ)器
例題CPU結(jié)構(gòu)如圖所示,其中包括一個(gè)累加寄存器AC、一個(gè)狀態(tài)寄存器和其他四個(gè)寄存器,各部分之間的連線表示數(shù)據(jù)通路,箭頭表示信息傳送方向。(1)標(biāo)明圖中四個(gè)寄存器的名稱。(2)簡述取指令的數(shù)據(jù)通路。D主存儲(chǔ)器MAACALU狀態(tài)寄存器操作控制器BC+1例題(3)簡述完成指令LDAX的數(shù)據(jù)通路(X為內(nèi)存地址,LDA功能為(X)→(AC))。(4)簡述完成指令A(yù)DDY的數(shù)據(jù)通路(Y為內(nèi)存地址,ADD功能為(AC)+(Y)→(AC))。(5)簡述完成指令STAZ的數(shù)據(jù)通路(Z為內(nèi)存地址,STA功能為(AC)→(Z)).D主存儲(chǔ)器MAACALU狀態(tài)寄存器操作控制器BC+1例題(1)A—數(shù)據(jù)緩沖寄存器DRB—指令寄存器IRC—地址寄存器ARD--程序記數(shù)器PC(3)LDAX的數(shù)據(jù)通路:X→AR→M→DR→AC(2)取指令的數(shù)據(jù)通路:PC→AR→M→DR→IR(4)ADDY:Y→AR→M→DR→ALU→ADD→AC(5)STAZ:Z→AR,AC→DR→MD主存儲(chǔ)器MAACALU狀態(tài)寄存器操作控制器BC+1思考用二進(jìn)制碼表示的指令和數(shù)據(jù)都放在內(nèi)存里,那么CPU是怎樣識(shí)別出它們是數(shù)據(jù)還是指令呢?從時(shí)間上來說,取指令事件發(fā)生在指令周期的第一個(gè)CPU周期中,即發(fā)生在“取指令”階段,而取數(shù)據(jù)事件發(fā)生在指令周期的后面幾個(gè)CPU周期中,即發(fā)生在“執(zhí)行指令”階段。從空間上來說,如果取出的代碼是指令,那么一定送往指令寄存器,如果取出的代碼是數(shù)據(jù),那么一定送往運(yùn)算器。由此可見,時(shí)間控制對(duì)計(jì)算機(jī)來說是太重要了??傊?,計(jì)算機(jī)的協(xié)調(diào)動(dòng)作需要時(shí)間標(biāo)志,而時(shí)間標(biāo)志則是用時(shí)序信號(hào)來體現(xiàn)的。指令流水
為了加快計(jì)算機(jī)的處理速度,常常采用并行處理技術(shù)并行性的兩種含義:同時(shí)性指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生并發(fā)性指兩個(gè)或多個(gè)事件在同一時(shí)間段發(fā)生即在同一時(shí)刻或同一時(shí)間段內(nèi)完成兩種或兩種以上性質(zhì)相同或不同的功能,只要在時(shí)間上互相重疊,就存在并行性指令流水
指令流水是一項(xiàng)重要的并行技術(shù)指令流水就是改變各條指令按順序串行執(zhí)行的規(guī)則,使機(jī)器在執(zhí)行上一條指令的同時(shí),取出下一條指令即上一條指令的執(zhí)行周期和下一條指令的取指周期同時(shí)進(jìn)行指令流水原理實(shí)際上,完成一條指令也可分為多個(gè)階段機(jī)器的各部分在某些機(jī)器周期內(nèi)進(jìn)行操作,而在某些周期內(nèi)是空閑的如果控制器調(diào)度恰當(dāng),讓各個(gè)部件緊張工作,同時(shí)執(zhí)行多條指令,就可以提高計(jì)算機(jī)運(yùn)行速度指令流水類似于工廠的裝配線裝配線利用產(chǎn)品在裝配的不同階段的裝配過程不同的原理,使不同產(chǎn)品處在不同的裝配段上,即每個(gè)裝配段同時(shí)對(duì)不同產(chǎn)品進(jìn)行加工,從而提高裝配效率指令流水原理如果完成一條指令分為4段——取指(IF)、譯碼(ID)、執(zhí)行(EX)、回寫(WR),串行執(zhí)行的過程為:IF1ID1EX1WR1IF2ID2EX2……4條指令重疊執(zhí)行的過程為:IF1ID1EX1WR1IF2ID2EX2WR2IF3ID3EX3WR3IF4ID4EX4WR4指令流水原理非流水線的時(shí)空?qǐng)D流水線的時(shí)空?qǐng)D上條指令的四個(gè)子過程全部執(zhí)行完畢后才能開始下一條指令每隔4個(gè)機(jī)器時(shí)鐘周期才有一個(gè)輸出結(jié)果執(zhí)行完兩條指令需要8個(gè)時(shí)鐘周期上一條指令與下一條指令的四個(gè)子過程在時(shí)間上重疊執(zhí)行當(dāng)流水線滿載時(shí),每一個(gè)時(shí)鐘周期就可以輸出一個(gè)結(jié)果執(zhí)行完兩條指令只需要5個(gè)時(shí)鐘周期流水線性能流水線性能通常用吞吐率、加速比、效率3項(xiàng)指標(biāo)衡量吞吐率在指令級(jí)流水線中,吞吐率是指單位時(shí)間內(nèi)流水線所完成指令或輸出結(jié)果的數(shù)量,分最大吞吐率和實(shí)際吞吐率最大吞吐率:流水線在連續(xù)流動(dòng)達(dá)到穩(wěn)定狀態(tài)(各段都處于工作狀態(tài))后所獲得的吞吐率對(duì)于m段指令流水線,若各段的時(shí)間均為
t,則最大吞吐率為流水線僅在連續(xù)流動(dòng)時(shí)才可達(dá)到最大吞吐率流水線性能實(shí)際吞吐率:流水線完成n條指令的實(shí)際吞吐率對(duì)于m段指令流水線,若各段的時(shí)間均為
t,連續(xù)處理n條指令,則實(shí)際吞吐率為流水線在開始時(shí)有一段建立時(shí)間(第一條指令輸入后到其完成時(shí)間),結(jié)束時(shí)有一段排空時(shí)間(最后一條指令輸入后到其完成時(shí)間),有相關(guān)因素影響流水線連續(xù)流動(dòng),所以實(shí)際吞吐率總是小于最大吞吐率流水線性能假設(shè)時(shí)鐘周期為100ns,有10條指令進(jìn)入流水線則m=4,n=10,實(shí)際吞吐率為:10/(100ns×(4+10-1))=10/(100ns×13)0.77×107條指令/秒I6I7I8I9I10910111213流水線性能加速比流水線的加速比是指m段流水線的速度與等功能的非流水線的速度之比對(duì)于m段指令流水線,若各段的時(shí)間均為
t,連續(xù)處理n條指令,則加速比為當(dāng)n》m時(shí),Sp接近于m,即當(dāng)流水線若各段的時(shí)間相等時(shí),其最大加速比等于流水線的段數(shù)流水線性能假設(shè)時(shí)鐘周期為100ns,有10條指令進(jìn)入流水線則m=4,n=10,流水線處理器的加速比為:4×10/(4+10-1)=40/133.08I6I7I8I9I10910111213流水線性能效率效率是指流水線中各功能段的利用率通常用流水線各段處于工作時(shí)間的時(shí)空區(qū)與流水線中各段總的時(shí)空區(qū)之比表示IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB對(duì)于m段指令流水線,若各段的時(shí)間均為
t,連續(xù)處理n條指令,則效率為:mt(n-1)t影響流水線性能的因素設(shè)流水線分5段:取指令(IF)、指令譯碼/讀寄存器(ID)、執(zhí)行/訪存有效地址計(jì)算(EX)、存儲(chǔ)器訪問(MEM)、結(jié)果寫回寄存器(WB)流水段指令A(yù)LU取/存轉(zhuǎn)移IF取指取指取指ID譯碼讀寄存器堆譯碼讀寄存器堆譯碼讀寄存器堆EX執(zhí)行計(jì)算訪存有效地址計(jì)算轉(zhuǎn)移目標(biāo)地址、設(shè)置條件碼MEM——訪存(讀/寫)若條件成立,將轉(zhuǎn)移目標(biāo)地址送PCWR結(jié)果寫回寄存器堆讀出的數(shù)據(jù)寫入寄存器堆——ALU類、訪存類、轉(zhuǎn)移類指令在各流水段中所進(jìn)行的操作影響流水線性能的因素流水過程中常出現(xiàn)結(jié)構(gòu)相關(guān)、數(shù)據(jù)相關(guān)、控制相關(guān)三種相關(guān)沖突,使流水線斷流結(jié)構(gòu)相關(guān)是當(dāng)指令在重疊執(zhí)行過程中,不同指令爭用同一功能部件產(chǎn)生資源沖突時(shí)產(chǎn)生的,又稱為資源相關(guān)原因是多條指令進(jìn)入流水線后,硬件資源滿足不了指令重疊執(zhí)行的要求結(jié)構(gòu)相關(guān)兩條指令同時(shí)訪問內(nèi)存發(fā)生資源相關(guān)沖突影響流水線性能的因素解決資源相關(guān)沖突的辦法:一是第I4條指令停頓一拍后再啟動(dòng)二是增設(shè)一個(gè)存儲(chǔ)器,將指令和數(shù)據(jù)分別放在兩個(gè)存儲(chǔ)器中三是采用指令預(yù)取技術(shù),將指令預(yù)先取到指令隊(duì)列中排隊(duì)流水線中的主要問題數(shù)據(jù)相關(guān)事流水線中的各條指令因重疊操作,可能改變對(duì)操作數(shù)的讀寫訪問順序,從而導(dǎo)致了數(shù)據(jù)相關(guān)沖突數(shù)據(jù)相關(guān)ADDR1,R2SUBR3,R1先寫后讀先讀后寫3種數(shù)據(jù)相關(guān):(指令j在指令i后)(1)寫后讀相關(guān)RAW:指令j試圖在指令i寫入寄存器前讀出寄存器(2)讀后寫相關(guān)WAR:指令j試圖在指令i讀出寄存器前寫入寄存器(3)寫后寫相關(guān)WAW:指令j試圖在指令i寫入寄存器前寫入寄存器流水線中的主要問題解決數(shù)據(jù)相關(guān)沖突的辦法:一是采用后推法,即遇到數(shù)據(jù)相關(guān)時(shí),就停頓后繼指令的運(yùn)行,直到前面指令的結(jié)果已經(jīng)生成二是采用定向技術(shù),又稱旁路技術(shù)或相關(guān)專用通路技術(shù):不必待某條指令的執(zhí)行結(jié)果送回寄存器后,再從寄存器中取出該結(jié)果,作為下一條指令的源操作數(shù),而是直接將執(zhí)行結(jié)果送到其他指令需要的地方數(shù)據(jù)相關(guān)例題判斷以下三組指令各存在哪種類型的數(shù)據(jù)相關(guān)?(1)I1:
ADDR1,R2,R3;(R2)+(R3)->R1
I2:
SUBR4,R1,R5;(R1)-(R5)->R4
(2)I5:
MULR3,R1,R2;(R1)×(R2)->R3
I6:
ADDR3,R4,R5;(R4)+(R5)->R3
(1)中,I1指令運(yùn)算結(jié)果應(yīng)先寫入R1,然后在I2指令中讀出R1內(nèi)容。由于I2指令進(jìn)入流水線,變成I2指令在I1指令寫入R1前就讀出R1內(nèi)容,發(fā)生RAW相關(guān)。(2)中,如果I6指令的加法運(yùn)算完成時(shí)間早于I5指令的乘法運(yùn)算時(shí)間,變成指令I(lǐng)6在指令I(lǐng)5寫入R3前就寫入R3,導(dǎo)致R3的內(nèi)容錯(cuò)誤,發(fā)生WAW相關(guān)。流水線中的主要問題控制相關(guān)沖突是由轉(zhuǎn)移指令引起的當(dāng)執(zhí)行轉(zhuǎn)移指令時(shí),依據(jù)轉(zhuǎn)移條件的產(chǎn)生結(jié)果,可能為順序取下條指令;也可能轉(zhuǎn)移到新的目標(biāo)地址取指令,從而使流水線發(fā)生斷流只有當(dāng)指令流出流水線時(shí)才能產(chǎn)生轉(zhuǎn)移條件控制相關(guān)流水線中的主要問題解決控制相關(guān)沖突的辦法:一是盡早判別轉(zhuǎn)移是否發(fā)生,盡早生成轉(zhuǎn)移目標(biāo)地址二是加快和提前形成條件碼三是預(yù)取成功或不成功兩個(gè)控制流方向上的目標(biāo)指令四是提高轉(zhuǎn)移方向的猜準(zhǔn)率例題1假設(shè)一條指令按取指、分析和執(zhí)行三步解釋執(zhí)行,每步相應(yīng)的時(shí)間分別為T取、T分、T執(zhí),設(shè)T取=T分=2,T執(zhí)=1。請(qǐng)計(jì)算下列幾種情況下執(zhí)行完100條指令所需的時(shí)間:(1)順序方式;(2)僅(K+1)取指與K執(zhí)行重疊;(3)僅(K+2)取指、(K+1)分析、執(zhí)行重疊。例題1(1)在順序方式下,100條指令需要的時(shí)間為100×(T取+T分+T執(zhí))=100×5=500(2)(K+1)取指與K執(zhí)行重疊取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行第1條第2條第3條第99條第100條…100條指令需要的時(shí)間為1×(T取+T分+T執(zhí))+99×(T分+max(T取、T執(zhí)))=5+99×(2+2)=401例題1(3)(K+2)取指、(K+1)分析、K執(zhí)行重疊第100條取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行第2條第3條第98條第99條…第1條取指分析執(zhí)行取指分析執(zhí)行第97條取指分析執(zhí)行第4條100條指令需要的時(shí)間為T取+max(T分、T?。?98×max(T執(zhí)、T分、T取)
+max(T執(zhí)、T分)+T執(zhí)
=2+2+98×2+2+1=203例題2指令流水線有取指(IF)、譯碼及取操作數(shù)(Id)、執(zhí)行(EX)、訪存(MEM)、寫回寄存器堆(WB)5個(gè)過程段,共有12條指令連續(xù)輸入此流水線。(1)畫出流水線處理的時(shí)空?qǐng)D,假設(shè)時(shí)鐘周期為100ns。(2)求流水線的實(shí)際吞吐率(單位時(shí)間里執(zhí)行完畢的指令數(shù))。(3)求流水線處理器的加速比。例題2(1)12條指令連續(xù)進(jìn)入流水線的時(shí)空?qǐng)D為:IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB第1條第2條第3條IFIDEXMEMWBIFIDEXMEMWB第11條第12條……(2)流水線在16個(gè)時(shí)鐘周期中執(zhí)行完12條指令,故實(shí)際吞吐率為:12/(16100ns)=75105條指令/s例題2(3)k級(jí)流水線處理n個(gè)任務(wù)所需的時(shí)鐘周期數(shù)為:Tk=k+(n-1)非流水線處理器處理n個(gè)任務(wù)所需的時(shí)鐘數(shù)為T1=nkK級(jí)流水線處理器的加速比為:Ck=T1/Tk=nk/(k+(n-1))代入已知數(shù)據(jù)n=12,k=5,則Ck=125/(5+11)=3.75例題3設(shè)某處理機(jī)具有五段指令流水線:IF(取指令)、ID(指令譯碼及取操作數(shù))、EX(執(zhí)行)、MEM(存儲(chǔ)器訪問)和WB(結(jié)果寫回寄存器)。現(xiàn)由該處理器執(zhí)行如下的指令序列:(a)SUBR2,R1,R3;R1-R3R2(b)ANDR12,R2,R5;R2+R5R12(c)ORR13,R6,R2;R6orR2R13(d)ANDR14,R2,R2;R2andR2R14(e)ADDR15,R3,R2;R3+R2R15例題3問(1)如果不對(duì)這些指令之間的數(shù)據(jù)相關(guān)性進(jìn)行特殊處理而允許這些指令進(jìn)入流水線,哪些指令將從未準(zhǔn)備好數(shù)據(jù)的R2寄存器取到錯(cuò)誤的操作數(shù)?(2)假定采用將相關(guān)指令延遲到所需操作數(shù)被寫回寄存器堆時(shí)執(zhí)行的方式解決數(shù)據(jù)相關(guān)問題,那么處理器執(zhí)行這5條指令需要占用多少時(shí)鐘周期?指令流水例題3(1)如果不采用特殊措施,則指令(b)、(c)、(d)將取到錯(cuò)誤的操作數(shù)。時(shí)鐘周期123456789SUBIFIDEXMEMWBADDIFIDEXMEMWBORIFIDEXMEMWBANDIFIDEXMEMWBADDIFIDEXMEMWB(a)SUBR2,R1,R3;R1-R3R2(b)ANDR12,R2,R5;R2+R5R12(c)ORR13,R6,R2;R6orR2R13(d)ANDR14,R2,R2;R2andR2R14(e)ADDR15,R3,R2;R3+R2R15指令流水例題3(2)從第一條指令進(jìn)入流水線到最后一條指令離開流水線共需12個(gè)時(shí)鐘周期。時(shí)鐘周期123456789SUBIFIDEXMEMWBADDIFIDEXMEMWBORIFIDEXMEMWBANDIFIDEXMEMWBADDIFIDEXMEMWB流水線中的多發(fā)技術(shù)普通流水線,一個(gè)時(shí)鐘周期出一個(gè)結(jié)果流水線中的多發(fā)技術(shù)設(shè)法在一個(gè)時(shí)鐘周期內(nèi)產(chǎn)生更多條指令的結(jié)果常見的多發(fā)技術(shù)有超標(biāo)量技術(shù)、超流水線技術(shù)、超長指令字技術(shù)假設(shè)處理一條指令分4個(gè)階段:取指(IF)、譯碼(ID)、執(zhí)行(EX)、回寫(WR)流水線中的多發(fā)技術(shù)超標(biāo)量技術(shù)超標(biāo)量技術(shù)是指每個(gè)時(shí)鐘周期內(nèi)可同時(shí)并發(fā)多條獨(dú)立指令,即以并行操作方式將兩條或兩條以上指令編譯并執(zhí)行IFIDEXWR012345678910時(shí)鐘周期指令序列配置多個(gè)功能部件、譯碼電路、寄存器端口流水線中的多發(fā)技術(shù)超流水線技術(shù)超流水線技術(shù)是將一些流水線寄存器插入到流水線段中,好比將流水線再分段IFIDEXWR012345678910時(shí)鐘周期指令序列一個(gè)時(shí)鐘周期分為3段,功能部件使用3次,速度提高3倍流水線中的多發(fā)技術(shù)超長指令字技術(shù)超長指令字技術(shù)由編譯程序在編譯時(shí)挖掘出指令間潛在的并行性后,把多條能并行操作的指令組合成一條具有多個(gè)操作碼字段的超長指令,每一個(gè)操作碼字段控制一個(gè)功能部件,相當(dāng)于同時(shí)執(zhí)行多條指令I(lǐng)FIDEXWR012345678910時(shí)鐘周期指令序列流水線結(jié)構(gòu)指令流水線可以是指令級(jí)的流水技術(shù),也可用于部件級(jí)將指令的整個(gè)執(zhí)行過程用流水線進(jìn)行分段處理,結(jié)構(gòu)框圖為:指令流水線結(jié)構(gòu)取指令部件指令譯碼部件地址形成部件取操作數(shù)部件操作執(zhí)行部件回寫結(jié)果部件修改指令指針部件流水線結(jié)構(gòu)執(zhí)行部件也可用流水線方式構(gòu)成浮點(diǎn)加法操作流水線結(jié)構(gòu)框圖為:運(yùn)算流水線對(duì)階功能部件鎖存器尾數(shù)加部件鎖存器規(guī)格化部件鎖存器對(duì)階結(jié)果存入鎖存器后,即可進(jìn)入下條指令的對(duì)階運(yùn)算控制單元的功能控制單元具有發(fā)出各種微操作命令(即控制信號(hào))的功能計(jì)算機(jī)的功能是執(zhí)行程序在程序執(zhí)行過程中,控制單元要發(fā)出各種微操作命令不同的指令對(duì)應(yīng)不同的命令取指令、取操作數(shù)地址等操作是相同或相似的按指令周期的4個(gè)階段分析對(duì)應(yīng)的微操作命令微操作命令分析取指周期CPUPCMARCU控制總線數(shù)據(jù)總線地址總線IRMDR
存儲(chǔ)器
+1(1)程序計(jì)數(shù)器PC的內(nèi)容送地址寄存器MAR;PC→MAR(2)向主存發(fā)讀命令,啟動(dòng)主存作讀操作,1→R(3)將MAR(通過地址總線)所指的主存單元的內(nèi)容(指令)經(jīng)過數(shù)據(jù)總線傳送到數(shù)據(jù)緩沖寄存器MDR中,M(MAR)→MDR
(4)將MDR的內(nèi)容送到指令寄存器IR,MDR→IR(5)指令的操作碼送CU譯碼,OP(IR)→CU(6)形成下一條指令的地址,PC+1→PC
微操作命令分析間指周期間址周期完成取操作數(shù)有效地址的任務(wù)(1)將指令的地址碼部分(形式地址)送地址寄存器MAR,Ad(IR)→MAR(2)向主存發(fā)讀命令,啟動(dòng)主存作讀操作,1→R(3)將MAR(通過地址總線)所指的主存單元的內(nèi)容(有效地址)經(jīng)過數(shù)據(jù)總線傳送到數(shù)據(jù)緩沖寄存器MDR中,M(MAR)→MDR
(4)將有效地址送至指令寄存器的地址字段,MDR→Ad(IR)CPUMARCU控制總線數(shù)據(jù)總線地址總線IRMDR
存儲(chǔ)器
微操作命令分析執(zhí)行周期不同指令執(zhí)行周期的微操作不同非訪存指令——執(zhí)行周期不訪問存儲(chǔ)器(1)清除累加器指令CLA,0→ACC(2)累加器取反指令,ACC→ACC(3)算術(shù)右移一位指令SHR,L(ACC)→R(ACC),ACC0
→ACCn(符號(hào)位不變)(4)循環(huán)左移一位CSL,R(ACC)→L(ACC),ACC0→ACCn(5)停機(jī)指令STP,0→G(運(yùn)行標(biāo)志觸發(fā)器)微操作命令分析執(zhí)行周期訪存指令——執(zhí)行階段都需要訪問存儲(chǔ)器(1)加法指令A(yù)DDX將指令的地址碼部分(形式地址)送地址寄存器MAR,Ad(IR)→MAR向主存發(fā)讀命令,啟動(dòng)主存作讀操作,1→R將MAR(通過地址總線)所指的主存單元的內(nèi)容(有效地址)經(jīng)過數(shù)據(jù)總線傳送到數(shù)據(jù)緩沖寄存器MDR中,M(MAR)→MDR給ALU發(fā)送加命令,存結(jié)果,(ACC)+(MDR)→ACC微操作命令分析執(zhí)行周期(2)存數(shù)指令STAX將指令的地址碼部分(形式地址)送地址寄存器MAR,Ad(IR)→MAR向主存發(fā)寫命令,啟動(dòng)主存作讀操作,1→W將累加器內(nèi)容送至MDR,ACC→MDR將MDR的內(nèi)容(通過數(shù)據(jù)總線)寫入到MAR(通過地址總線)所指的主存中,MDR
→
M(MAR)微操作命令分析執(zhí)行周期(3)取數(shù)指令LDAX將指令的地址碼部分(形式地址)送地址寄存器MAR,Ad(IR)→MAR向主存發(fā)讀命令,啟動(dòng)主存作讀操作,1→R將MAR(通過地址總線)所指的主存單元的內(nèi)容(有效地址)經(jīng)過數(shù)據(jù)總線傳送到數(shù)據(jù)緩沖寄存器MDR中,M(MAR)→MDR將MDR的內(nèi)容送至ACC,MDR→ACC微操作命令分析執(zhí)行周期當(dāng)上述指令間址時(shí),增加間址微操作將指令的地址碼部分(形式地址)送地址寄存器MAR,Ad(IR)→MAR向主存發(fā)讀命令,啟動(dòng)主存作讀操作,1→R將MAR(通過地址總線)所指的主存單元的內(nèi)容(有效地址)經(jīng)過數(shù)據(jù)總線傳送到數(shù)據(jù)緩沖寄存器MDR中,M(MAR)→MDR進(jìn)入執(zhí)行周期后,第一個(gè)微操作是:
MDR→MAR(有效地址送MAR),其余不變微操作命令分析執(zhí)行周期轉(zhuǎn)移類指令——執(zhí)行階段不訪問存儲(chǔ)器(1)無條件轉(zhuǎn)移指令JMPX將指令的地址碼部分(形式地址)送PC,Ad(IR)→PC(2)條件轉(zhuǎn)移(負(fù)則轉(zhuǎn))指令BANXA0·Ad(IR)+A0·(PC)→PCA0:ACC的最高位微操作命令分析中斷周期中斷周期完成保護(hù)斷點(diǎn)、找中斷服務(wù)程序入口地址、關(guān)中斷的任務(wù)(1)將特定地址0送地址寄存器MAR,0→MAR((SP)-1→SP,SP→MAR)(2)向主存發(fā)寫命令,啟動(dòng)主存作寫操作,1→w(3)將PC的內(nèi)容(程序斷點(diǎn))送到MDR,PC→MDR
(4)將MDR的內(nèi)容(程序斷點(diǎn))通過數(shù)據(jù)總線寫入到MAR(通過地址總線)所指的主存單元(0地址單元),MDR
→
M(MAR)(5)將向量地址形成部件的輸出送至PC,向量地址→PC(6)關(guān)中斷,將允許中斷觸發(fā)器清零,0→EINT控制單元的外特性CPU內(nèi)的控制信號(hào)控制單元指令寄存器到系統(tǒng)總線的控制信號(hào)來自系統(tǒng)總線的控制信號(hào)系統(tǒng)總線標(biāo)志時(shí)鐘。。。中斷、DMA請(qǐng)求CPU內(nèi)寄存器間傳送、控制ALU操作命令主存或I/O讀/寫、中斷響應(yīng)操作碼決定不同指令在執(zhí)行周期完成不同的操作完成每個(gè)操作都需要一定的時(shí)間每個(gè)操作是有先后順序的CU根據(jù)CPU所處的狀態(tài)產(chǎn)生控制信號(hào)例題單總線計(jì)算機(jī)結(jié)構(gòu)如圖所示,其中M為主存,XR為變址寄存器,EAR為有效地址寄存器,LATCH為鎖存器。假設(shè)指令地址已存入PC,畫出ADDX,D(X為變址寄存器XR,D為形式地址)和STA*D(*表示相對(duì)尋址,D為相對(duì)位移量)的指令周期信息流程圖,并列出相應(yīng)的控制信號(hào)序列。ACCALUMQXKiLATCH狀態(tài)地址加法器EARIRPCXRMARMDRMRW例題單總線計(jì)算機(jī)結(jié)構(gòu)如圖所示,其中M為主存,XR為變址寄存器,EAR為有效地址寄存器,LATCH為鎖存器。假設(shè)指令地址已存入PC,畫出ADDX,D(X為變址寄存器XR,D為形式地址)和STA*D(*表示相對(duì)尋址,D為相對(duì)位移量)的指令周期信息流程圖,并列出相應(yīng)的控制信號(hào)序列。ACCALUMQXKiLATCH狀態(tài)地址加法器EARIRPCXRMARMDRMRW例題ACCALUMQXKiLATCH狀態(tài)地址加法器EARIRPCXRMARMDRMRWADDX,D取指周期信息流程和相應(yīng)控制信號(hào):PCBusMARPCo,MARiM(MAR)MDRMARo,R/W=R,MDRiMDRBusIRMDRo,IRi(PC)+1PC+1例題ACCALUMQXKiLATCH狀態(tài)地址加法器EARIRPCXRMARMDRMRWADDX,D執(zhí)行周期信息流程和相應(yīng)控制信號(hào):(XR)+Ad(IR)EARXRo,Ad(IR)O,+,EARiEARBus
MAREARo,MARiM(MAR)MDRMARo,R/W=R,MDRi(ACC)+(X)LATCHMDRo,XiMDRBus
XACCo,Xo,Ki=+,LATCHLATCHBusACCLATCHo,ACCi例題ACCALUMQXKiLATCH狀態(tài)地址加法器EARIRPCXRMARMDRMRWSTA*D執(zhí)行周期信息流程和相應(yīng)控制信號(hào):(PC)+Ad(IR)EARPCo,Ad(IR)O,+,EARiEARBus
MAREARo,MARiMDRM(MAR)MDRo,R/W=W,MARoACCo,MDRiACCBusMDR控制方式控制器單元控制一條指令執(zhí)行的過程,實(shí)質(zhì)上是依次執(zhí)行一個(gè)確定的微操作序列的過程不同指令所對(duì)應(yīng)的微操作數(shù)及其復(fù)雜程度不同,因此每條指令和每個(gè)微操作所需的執(zhí)行時(shí)間也不同將如何形成控制不同微操作序列所采用的時(shí)序控制方式稱為控制器的控制方式常用的控制方式有同步控制、異步控制、混合控制和人工控制四種控制方式同步控制任何一條指令或指令中任何一個(gè)微操作的執(zhí)行都是事先確定的,并且都受同樣基準(zhǔn)時(shí)標(biāo)的時(shí)序信號(hào)所控制(1)采用定長的機(jī)器周期所有指令周期包含相同的機(jī)器周期,所有機(jī)器周期包含相同的節(jié)拍以最長的微操作序列和最繁的微操作作為標(biāo)準(zhǔn),浪費(fèi)大T0T1T2T3T0T1T2T3T0T1T2T3指令周期機(jī)器周期機(jī)器周期機(jī)器周期控制方式同步控制(2)采用不定長的機(jī)器周期每個(gè)機(jī)器周期內(nèi)的節(jié)拍數(shù)可以不等,解決微操作執(zhí)行時(shí)間不統(tǒng)一的問題大多數(shù)微操作安排在一個(gè)較短的機(jī)器周期內(nèi)完成,復(fù)雜的微操作采用延長機(jī)器周期或增加節(jié)拍的辦法解決T0T1T2T3T0T1T2T3TT指令周期機(jī)器周期機(jī)器周期控制方式同步控制(3)采用中央控制和局部控制相結(jié)合的方法將大部分指令安排在統(tǒng)一的、較短的機(jī)器周期內(nèi)完成,稱為中央控制,而將少數(shù)操作復(fù)雜的指令中的某些操作采用局部控制方式完成T0T1T2T3T0T1T2T3…指令周期取指周期執(zhí)行周期T*T*中央控制節(jié)拍局部控制節(jié)拍控制方式異步控制不存在基準(zhǔn)時(shí)標(biāo)信號(hào),沒有固定的周期節(jié)拍和嚴(yán)格的時(shí)鐘同步每條指令、每個(gè)操作需要多少時(shí)間就占用多少時(shí)間當(dāng)控制器發(fā)出某一操作控制信號(hào)后,等待執(zhí)行部件完成操作后發(fā)“回答”信號(hào),再開始新的操作特點(diǎn):不浪費(fèi)時(shí)間,但控制上太復(fù)雜,一個(gè)指令系統(tǒng)中可能包含十幾種甚至幾十種不同長度的指令周期,這對(duì)時(shí)序部件的要求太高,實(shí)現(xiàn)起來比較困難控制方式聯(lián)合控制方式同步控制和異步控制相結(jié)合對(duì)各種不同指令的微操作實(shí)行大部分統(tǒng)一、小部分區(qū)別對(duì)待,如取指操作采用同步控制、I/O操作采用異步控制特點(diǎn):不浪費(fèi)很多時(shí)間,控制上又不很復(fù)雜人工控制方式為了調(diào)機(jī)和軟件開發(fā)需要,在機(jī)器面板或內(nèi)部設(shè)置一些開關(guān)或按鈕,達(dá)到人工控制目的,如復(fù)位控制器設(shè)計(jì)控制器的結(jié)構(gòu)主要有組合邏輯型和微程序控制型在計(jì)算機(jī)內(nèi),所有操作都是在微操作控制信號(hào)的控制下完成的微操作控制信號(hào)由控制器產(chǎn)生組合邏輯控制器組合邏輯控制器也稱為硬布線控制器,它直接由各種類型的邏輯門和觸發(fā)器等構(gòu)成組合邏輯控制器框圖為:組合邏輯控制器指令譯碼器標(biāo)志寄存器節(jié)拍發(fā)生器M0…MDT0…TKC0C1CQ……S1S2SLI0I1Im…微操作控制信號(hào)指令寄存器控制信號(hào)Ci與節(jié)拍有關(guān)設(shè)計(jì)時(shí)需要安排微操作的節(jié)拍微操作的節(jié)拍安排安排微操作節(jié)拍應(yīng)注意:(1)有些微操作的次序不容改變,須注意微操作的先后順序(2)凡是被控制對(duì)象不同的微操作,若能在一個(gè)節(jié)拍內(nèi)執(zhí)行,應(yīng)盡可能安排在同一個(gè)節(jié)拍內(nèi),節(jié)省時(shí)間(3)將占用時(shí)間不長的微操作安排在一個(gè)節(jié)拍內(nèi)完成,允許這些微操作有先后次序微操作的節(jié)拍安排設(shè)每個(gè)機(jī)器周期包含3個(gè)節(jié)拍取指周期微操作的節(jié)拍安排T0:PCMAR,1RT1:M(MAR)
MDR,(PC)+1PCT2:MDRIR,OP(IR)ID間指周期微操作的節(jié)拍安排T0:Ad(IR)
MAR,1RT1:M(MAR)
MDRT2:MDRAd(IR)微操作的節(jié)拍安排執(zhí)行周期微操作的節(jié)拍安排(1)非訪存指令1)清除累加器指令CLAT0:T1:T2:0AC2)累加器取反指令COMT0:T1:T2:ACAC微操作的節(jié)拍安排執(zhí)行周期微操作的節(jié)拍安排(1)非訪存指令3)算術(shù)右移一位指令SHRT0:T1:T2:L(AC)R(AC),AC0
AC04)循環(huán)左移一位指令CSLT0:T1:T2:R(AC)L(AC),AC0
ACn5)停機(jī)指令STPT0:T1:T2:0G微操作的節(jié)拍安排執(zhí)行周期微操作的節(jié)拍安排(2)訪存指令1)加法指令A(yù)DDX
T0:Ad(IR)
MAR,1
RT1:M(MAR)
MDRT2:(AC)+(MDR)
AC2)存數(shù)指令STAXT0:Ad(IR)
MAR,1
WT1:AC
MDRT2:MDRM(MAR)微操作的節(jié)拍安排執(zhí)行周期微操作的節(jié)拍安排(2)訪存指令3)取數(shù)指令LDAX
T0:Ad(IR)
MAR,1
RT1:M(MAR)
MDRT2:MDRAC微操作的節(jié)拍安排執(zhí)行周期微操作的節(jié)拍安排4)轉(zhuǎn)移類指令無條件轉(zhuǎn)移指令JMPX
T0:T1:T2:Ad(IR)
PC條件轉(zhuǎn)移(負(fù)則轉(zhuǎn))指令BANX
T0:T1:T2:A0ID(IR)+A0(PC)PC微操作的節(jié)拍安排中斷周期微操作的節(jié)拍安排T0:0MAR,1WT1:PCMDRT2:MDRM(MAR),向量地址PC例題存儲(chǔ)器WRMARMDRIRPCACCR1ALUR2微操作命令形成部件內(nèi)部總線BusCPUCPU中各部件及其相互連接關(guān)系如圖,R、W是讀、寫控制標(biāo)志,R1、R2是暫存器、B、C、E、H為寄存器例題存儲(chǔ)器WRMARMDRIRPCACCR1ALUR2微操作命令形成部件內(nèi)部總線BusCPU(1)以最少節(jié)拍寫出取指周期全部微操作命令及節(jié)拍安排(2)寫出指令A(yù)DD#a、ADDB,C、SUBE,@H、STA@mem在執(zhí)行階段所需微操作命令及節(jié)拍安排例題存儲(chǔ)器WRMARMDRIRPCACCR1ALUR2微操作命令形成部件內(nèi)部總線BusCPUPC有自動(dòng)加1功能T0:PCBusMAR,1RT1:M(MAR)
MDR,(PC)+1PCT2:MDRBus
IR,OP(IR)微操作命令形成部件例題存儲(chǔ)器WRMARMDRIRPCACCR1ALUR2微操作命令形成部件內(nèi)部總線BusCPU(PC)+1PC的操作由ALU完成T0:PCBusMAR,1RT1:M(MAR)
MDR,(PC)BusALU+1R2T2:MDRBus
IR,OP(IR)微操作命令形成部件T3:R2BusPC例題存儲(chǔ)器WRMARMDRIRPCACCR1ALUR2微操作命令形成部件內(nèi)部總線BusCPUADD#aT0:Ad(IR)BusR1
T1(ACC)+(R1)ALUR2T2:R2Bus
ACC例題存儲(chǔ)器WRMARMDRIRPCACCR1ALUR2微操作命令形成部件內(nèi)部總線BusCPUADDB,C;(B)+(C)BT0:CBusR1
T1:(B)+(R1)ALUR2T2:R2Bus
B例題存儲(chǔ)器WRMARMDRIRPCACCR1ALUR2微操作命令形成部件內(nèi)部總線BusCPUSUBE,@H;(E)-((H))E間址周期:T0:HBusMAR,1RT1:M(MAR)MDR執(zhí)行周期:T0:MDRBusR1T1:(E)-(R1)ALUR2T2:R2Bus
E例題存儲(chǔ)器WRMARMDRIRPCACCR1ALUR2微操作命令形成部件內(nèi)部總線BusCPUSTA@mem;ACC((mem))間址周期:T0:Ad(IR)BusMAR,1RT1:M(MAR)MDR執(zhí)行周期:T0:MDRBusMAR,1WT1:ACCBusMDRT2:MDRM(MAR)組合邏輯控制器設(shè)計(jì)組合邏輯控制器的設(shè)計(jì)過程為:寫出每一個(gè)微操作命令的邏輯表達(dá)式列出微操作命令的操作時(shí)間表用邏輯部件實(shí)現(xiàn)邏輯表達(dá)式P402表10.1組合邏輯設(shè)計(jì)特點(diǎn)設(shè)計(jì)思路清晰、簡單明了控制器速度快,微操作控制信號(hào)的產(chǎn)生速度取決于所使用邏輯門的延遲時(shí)間控制器結(jié)構(gòu)復(fù)雜,每一個(gè)微操作命令對(duì)應(yīng)一個(gè)邏輯電路設(shè)計(jì)工作量大,不便于修改指令系統(tǒng)功能越全面,控制器結(jié)構(gòu)越復(fù)雜,調(diào)試越困難微程序控制器微程序控制器又稱存儲(chǔ)邏輯控制器——將程序設(shè)計(jì)技術(shù)和存儲(chǔ)技術(shù)相結(jié)合,即用程序設(shè)計(jì)的思想方法來組織操作控制邏輯,將微操作控制信號(hào)按一定的規(guī)則進(jìn)行信息編碼(代碼化),形成控制字(微指令),再把這些微指令按時(shí)間先后排列起來構(gòu)成微程序,存放在控制存儲(chǔ)器。機(jī)器運(yùn)行時(shí),逐條讀出微指令產(chǎn)生全機(jī)所需要的各種操作控制信號(hào),使相應(yīng)部件執(zhí)行所規(guī)定的操作設(shè)計(jì)簡便,不用考慮邏輯表達(dá)式的化簡、邏輯門級(jí)數(shù)、門的扇入系數(shù)便于修改、調(diào)試,控制信號(hào)以二進(jìn)制代碼的形式表示,只要修改代碼就可改變操作內(nèi)容微程序控制器思想將機(jī)器指令的操作(從取指令到執(zhí)行)分解為若干個(gè)更基本的微操作命令序列------微命令用二進(jìn)制代碼形式表示的微指令表示一個(gè)或幾個(gè)微操作命令------微指令若干條微指令的有序集合構(gòu)成一個(gè)微程序逐條執(zhí)行每一條微指令,也就相應(yīng)地完成了一條機(jī)器指令的全部操作所有微程序存放到一個(gè)控制存儲(chǔ)器(CM)中CM是微程序控制器的核心部件相關(guān)概念微命令:控制部件通過控制線向執(zhí)行部件發(fā)出各種控制信號(hào),是構(gòu)成控制序列的最小單位微操作:執(zhí)行部件接受微命令后進(jìn)行的操作過程,與微命令一一對(duì)應(yīng)微指令:在機(jī)器的一個(gè)節(jié)拍中,一組實(shí)現(xiàn)一定操作功能的微命令微程序:實(shí)現(xiàn)一條機(jī)器指令功能的許多條微指令組成的序列微指令周期:執(zhí)行一條微指令和取出下一條微指令所需的時(shí)間,通常等于一個(gè)CPU周期的時(shí)間控制存儲(chǔ)器(CM)微程序一旦設(shè)計(jì)完畢,不允許改變,只允許執(zhí)行控制存儲(chǔ)器通常由EPROM構(gòu)成每條微指令在控制存儲(chǔ)器中占用一個(gè)地址CM的容量取決于微指令的字長和微程序的總長度執(zhí)行一條機(jī)器指令須多次訪問CM要求CM速度快、讀出周期短CM的單元地址稱為微地址程序、指令、微程序、微指令間的關(guān)系A(chǔ)DDR1,R2STAm112:ii+1:m機(jī)器語言程序問題的算法主存儲(chǔ)器STA指令微程序ADD指令微程序12:n微指令微指令控制存儲(chǔ)器12:k微指令微指令各條機(jī)器指令所對(duì)應(yīng)的微程序長度可各不相同,它取決于機(jī)器指令功能的強(qiáng)弱,也與微指令本身的功能強(qiáng)弱有關(guān)程序員可見程序、指令、主存機(jī)器設(shè)計(jì)者可見微程序、微指令、控制存儲(chǔ)器一條機(jī)器指令的功能是由若干條微指令組成的序列來實(shí)現(xiàn)的指令、程序、地址與內(nèi)存儲(chǔ)器有關(guān)微指令、微程序、微地址與控制存儲(chǔ)器有關(guān)程序、指令、微程序、微指令間的關(guān)系程序、指令、微程序、微指令間的關(guān)系程序由機(jī)器指令組成,由軟件設(shè)計(jì)人員編制并存放在主存或輔存中;微程序是由微指令組成的,由計(jì)算機(jī)的設(shè)計(jì)者編制并存放在CM中,一般不提供給用戶指令、程序、地址與主存儲(chǔ)器有關(guān);微指令、微程序、微地址與CM有關(guān)一條機(jī)器指令所完成的操作分若干條微指令來完成,由微指令進(jìn)行解釋和執(zhí)行一條指令對(duì)應(yīng)指令周期,一條微指令對(duì)應(yīng)一個(gè)CPU周期機(jī)器指令對(duì)應(yīng)的微程序CM中的微程序包括:取指周期微程序間址周期微程序中斷周期微程序與機(jī)器指令對(duì)應(yīng)的微程序CM中的微程序個(gè)數(shù)=機(jī)器指令數(shù)+3M+1M+2×××
轉(zhuǎn)執(zhí)行周期微程序
轉(zhuǎn)取指周期微程序P+1P+2MQ+1Q+2M
MM+1M+2PP+1P+2QQ+1Q+2取指周期微程序間指周期微程序中斷周期微程序?qū)?yīng)LDA指令的微程序?qū)?yīng)ADD指令的微程序負(fù)責(zé)將指令從主存單元中取出送IR完成中斷隱指令的操作微程序控制單元的基本框圖操作控制
下地址存放欲讀出的微指令地址保存一條微指令的操作控制字段和判別測試字段的信息承擔(dān)自動(dòng)完成修改微地址的任務(wù)CMAR指明判別條件微程序控制單元的工作原理CMARM+1M+2×××
轉(zhuǎn)執(zhí)行周期微程序
轉(zhuǎn)取指周期微程序P+1P+2MQ+1Q+2M
MM+1M+2PP+1P+2QQ+1Q+2取指周期微程序MCMARCM(CMAR)CMDR
產(chǎn)生微命令:PCMAR,1RAd(CMDR)CMAR
關(guān)鍵問題:如何由微指令的操作控制字段形成微命令;如何形成下一條微指令的地址微指令的編碼方式如何對(duì)微命令的控制字段進(jìn)行編碼,以形成控制信號(hào)有直接編碼、字段直接編碼、混合編碼等幾種方式直接編碼方式每一位代表一個(gè)微操作命令,直接送往相應(yīng)的控制點(diǎn)控制簡單,速度快,但控制字段較長,CM容量較大×××
…×
下地址C1C2C3Cn…微指令的編碼方式字段直接編碼方式將控制字段分成許多個(gè)子字段,將一組互斥的微操作命令放在一個(gè)字段內(nèi),通過對(duì)字段譯碼,可以產(chǎn)生微命令控制字段較短,速度稍慢
地址字段××××××××××××××譯碼器
譯碼器譯碼器譯碼器
譯碼器A0A3B0B15C0C7D0D3E0E7A字段B字段C字段D字段E字段同一子段中的微命令不可以在一條微指令中同時(shí)產(chǎn)生,任何時(shí)候任何一個(gè)子段中只能產(chǎn)生一個(gè)微命令,不同子段產(chǎn)生的微命令可以在一條微指令中并行產(chǎn)生微指令的編碼方式混合編碼方式把直接編碼和字段編碼混合使用能綜合考慮微指令的字長、靈活性、執(zhí)行微程序的速度等方面的要求
地址字段××××××××××××××譯碼器
譯碼器譯碼器A0A3B0B15C0C7D0D1E0E1E2A字段B字段C字段D字段E字段微指令格式分為水平型微指令、垂直型微指令兩種水平型微指令:一次能定義并執(zhí)行多個(gè)并行操作的微命令直接編碼、字段直接編碼、混合編碼都屬于水平型微指令垂直型微指令:在微指令字中,設(shè)置微操作碼字段,由微操作碼規(guī)定微指令的功能通常一條微指令有1~2個(gè)微命令,控制1~2個(gè)微操作水平型微指令和垂直型微指令的比較(1)水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng)(2)水平型微指令執(zhí)行一條指令的時(shí)間短,垂直型微指令執(zhí)行時(shí)間長(3)水平型微指令有微指令字較長而微程序較短的特點(diǎn),垂直型微指令則相反,微指令字較短而微程序長(4)水平型微指令的可讀性較差,用戶難以掌握,而垂直型則較好后續(xù)微指令地址的形成后續(xù)微指令地址的形成方法有斷定方式、增量計(jì)數(shù)、增量方式與斷定方式的結(jié)合斷定方式控制字段判別測試字段下地址字段下地址字段直接給出后續(xù)微指令的地址Ad(CMDR)CMAR,長度取決于CM的總字?jǐn)?shù)微指令在CM中不連續(xù)存放,無需設(shè)置轉(zhuǎn)移微指令產(chǎn)生分支時(shí),由“判別測試”和“狀態(tài)條件”信息來選擇其中一個(gè)微地址指明判別條件,長度取決于條件轉(zhuǎn)移類微指令可判定的外部條件的個(gè)數(shù)CMAR例題CMAR有6位(μA5-μA0),當(dāng)需要修改其內(nèi)容時(shí),可通過某一位觸發(fā)器的強(qiáng)置端S將其置“1”。有三種情況:(1)執(zhí)行取指微指令后,微程序按IR的OP字段(IR3-IR0)進(jìn)行16路分支(2)執(zhí)行條件轉(zhuǎn)移指令微程序時(shí),按進(jìn)位標(biāo)志C的狀態(tài)進(jìn)行2路分支(3)執(zhí)行控制臺(tái)指令微程序時(shí),按IR4,IR5的狀態(tài)進(jìn)行4路分支請(qǐng)?jiān)O(shè)計(jì)微地址轉(zhuǎn)移邏輯。例題按所給設(shè)計(jì)條件,微程序有三種判別測試,分別為P1,P2,P3修改μA5-μA0內(nèi)容有很大靈活性,分配如下:(1)用P1和IR3-IR0修改μA3-μA0(2)用P2和C修改μA0(3)用P3和IR5,IR4修改μA5,μA4還要考慮時(shí)間因素T4(假設(shè)CPU周期最后一個(gè)節(jié)拍脈沖),故轉(zhuǎn)移邏輯表達(dá)式如下:例題μA5=P3·IR5·T4
μA4=P3·IR4·T4
μA3=P1·IR3·T4μA2=P1·IR2·T4
μA1=P1·IR1·T4
μA0=P1·IR0·T4+P2·C·T4前5個(gè)表達(dá)式可用“與非”門實(shí)現(xiàn),最后一個(gè)用“與或非”門實(shí)現(xiàn)μA2、μA1、μA0觸發(fā)器的微地址轉(zhuǎn)移邏輯圖:后續(xù)微指令地址的形成增量方式下地址字段由CMAR不斷加1來形成后續(xù)微指令的地址(CMAR)+1CMAR,微指令中不包含地址字段微指令在CM中連續(xù)存放,需設(shè)置轉(zhuǎn)移微指令遇到轉(zhuǎn)移類的微指令時(shí),修改CMAR內(nèi)容來實(shí)現(xiàn)微程序的轉(zhuǎn)移控制字段判別測試字段后續(xù)微指令地址的形成增量方式與斷定方式的結(jié)合CMAR有計(jì)數(shù)功能在微指令中設(shè)置條件選擇字段與轉(zhuǎn)移地址字段當(dāng)轉(zhuǎn)移條件滿足時(shí),將轉(zhuǎn)移地址字段作下一個(gè)微地址若無轉(zhuǎn)移要求,則CMAR計(jì)數(shù)得到后續(xù)微指令的地址控制字段條件選擇字段轉(zhuǎn)移地址字段微程序控制單元設(shè)計(jì)微程序控制單元設(shè)計(jì)的主要任務(wù)是編寫對(duì)應(yīng)各條機(jī)器指令的微程序步驟為:確定微指令格式列出對(duì)應(yīng)機(jī)器指令的全部微操作及節(jié)拍安排編寫每條微指令的二進(jìn)制代碼對(duì)應(yīng)機(jī)器指令的微操作及節(jié)拍安排取指周期微操作及節(jié)拍安排T0:PCMAR,1RT1:Ad(CMDR)
CMART2:M(MAR)
MDR,(PC)+1PCT3:Ad(CMDR)
CMART4:MDRIR,OP(IR)地址轉(zhuǎn)移邏輯T5:OP(IR)地址轉(zhuǎn)移邏輯CMAR所有微指令均由T的上沿打入到CMDR中取指操作的第一條微指令地址由硬件給微操作的節(jié)拍安排執(zhí)行周期微操作及節(jié)拍安排(1)非訪存指令1)清除累加器指令CLAT0:
0ACT1:Ad(CMDR)
CMAR
取指微程序入口地址送CMAR2)累加器取反指令COMT0:ACACT1:Ad(CMDR)
CMAR
3)算術(shù)右移一位指令SHRT0:L(AC)R(AC),AC0
AC0
T1:Ad(CMDR)
CMAR
4)循環(huán)左移一位指令CSLT0:R(AC)L(AC),AC0
ACnT1:Ad(CMDR)
CMAR
微操作的節(jié)拍安排(1)非訪存指令5)停機(jī)指令STPT0:
0GT1:Ad(CMDR)
CMAR
取指微程序入口地址送CMAR微操作的節(jié)拍安排(2)訪存指令1)加法指令A(yù)DDXT0:Ad(IR)
MAR,1
RT1:Ad(CMDR)
CMAR
T2:M(MAR)
MDRT3:Ad(CMDR)
CMAR
T4:(AC)+(MDR)
ACT5:Ad(CMDR)
CMAR2)數(shù)指令STAXT0:Ad(IR)
MAR,1
W
T1:Ad(CMDR)
CMAR
T2:AC
MDR
T3:Ad(CMDR)
CMAR
T4:MDRM(MAR)T5:Ad(CMDR)
CMAR微操作的節(jié)拍安排(2)訪存指令3)取數(shù)指令LDAXT0:Ad(IR)
MAR,1
RT1:Ad(CMDR)
CMAR
T2:M(MAR)
MDRT3:Ad(CMDR)
CMAR
T4:MDRACT5:Ad(CMDR)
CMAR4)轉(zhuǎn)移類指令無條件轉(zhuǎn)移指令JMPXT0:Ad(IR)
PCT1:Ad(CMDR)
CMAR
條件轉(zhuǎn)移(負(fù)則轉(zhuǎn))指令BANXT0:A0ID(IR)+A0(PC)PCT1:Ad(CMDR)
CMAR
確定微指令格式(1)微指令的編碼方式20個(gè)微命令,38條微指令采用直接編碼方式(2)后續(xù)微指令的形成方式采用斷定方式(3)微指令字長控制字段20下地址6P419表10.3微程序控制器學(xué)習(xí)要求(1)能根據(jù)CPU結(jié)構(gòu)圖寫出指令的操作流程圖,并會(huì)分解成微操作信號(hào)(2)能對(duì)微命令編碼(3)能用斷定方式安排微地址例題1“十進(jìn)制加法”指令的功能是用BCD碼來完成十進(jìn)制數(shù)的加法運(yùn)算,在運(yùn)算時(shí),和>9,加6修正數(shù)a和b已存放在R1和R2兩個(gè)寄存器中,數(shù)6存放在R3寄存器中先進(jìn)行a+b+6運(yùn)算,然后判斷有無進(jìn)位進(jìn)行修正例題1第一條微指令的二進(jìn)制編碼是00000000000011111100000第二條微指令的二進(jìn)制編碼是01010010010000000001001第三條微指令的二進(jìn)制編碼是01000100110000000010000第四條微指令的二進(jìn)制編碼是010001001001000000000002322212019181716151413121110987654321·······················LDR3’LDR1’R1→YR2→YR3→YMRD’LDIR’PC+1LDR2’R1→XR2→XDR→X+-LDDR’LDAR’P1P2直接地址例題2某機(jī)采用微程序控制方式,微指令字長24位,直接編碼,斷定方式,共有微命令30個(gè),構(gòu)成4個(gè)相斥類,各包含5個(gè)、8個(gè)、14個(gè)和3個(gè)微命令,外部條件共3個(gè)。(1)控制存儲(chǔ)器的容量應(yīng)為多少?(2)設(shè)計(jì)出微指令的具體格式。512×24選5個(gè)微命令××××××××××××××××……×3:8譯碼器4:164:16譯碼器2:4譯碼器2:4譯碼器選8個(gè)微命令選14個(gè)微命令選5個(gè)微命令控制3個(gè)轉(zhuǎn)移下地址字段9位………………………………例題3CPU結(jié)構(gòu)圖如下,設(shè)計(jì)以下幾條指令的微程序控制器ALU累加器ACDR操作控制器指令譯碼器OPIR(AR)狀態(tài)寄存器PCAR存儲(chǔ)器MREQR/WDBUSARPCAR+1DBUSPCDBUSDRDRACACDRc+DRALUDRIRIRIR
DBUS…例題3CLA;清0ADDID;I=0為直接尋址,即(AC)+(D)AC
;I=1為間接尋址,即(AC)+((D))ACSTAID;I=0為直接尋址,即(AC)(D)
;I=1為間接尋址,即(AC)
((D))
LDAID;I=0為直接尋址,即(D)
(AC))
;I=1為間接尋址,即((D))
(AC)JMPID;I=0為直接尋址,即(D)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南省昆明市九縣區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期英語期末試卷
- 文化行業(yè)安全生產(chǎn)培訓(xùn)方案
- 2023年吉林省遼源市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2023年浙江省衢州市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2022年山東省青島市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年遼寧省營口市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 畢業(yè)學(xué)員發(fā)言稿
- 《MTP管理教材》課件
- 《行業(yè)高增長確定》課件
- 暑假計(jì)算題綜合自檢卷練習(xí)題數(shù)學(xué)三年級(jí)下冊(cè)
- 視頻監(jiān)控室值班記錄表
- 歌曲《梁?!泛喿V完整版
- 四川2020版清單定額
- 教材編寫工作總結(jié)
- 企業(yè)員工上下班交通安全培訓(xùn)(簡詳共2份)
- 城市高密度建成區(qū)合流制溢流污染系統(tǒng)研究-黃孝河機(jī)場河水環(huán)境綜合治理項(xiàng)目實(shí)踐
- word 公章 模板
- T∕ZSQX 008-2020 建設(shè)工程全過程質(zhì)量行為導(dǎo)則
- ISO-IEC17025-2017實(shí)驗(yàn)室管理體系全套程序文件
- 深圳智能水表項(xiàng)目商業(yè)計(jì)劃書_參考模板
- 地理信息系統(tǒng)原理全冊(cè)配套完整課件
評(píng)論
0/150
提交評(píng)論