計算機系統(tǒng)分層結(jié)構(gòu).ppt
《計算機系統(tǒng)分層結(jié)構(gòu).ppt》由會員分享,可在線閱讀,更多相關(guān)《計算機系統(tǒng)分層結(jié)構(gòu).ppt(97頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第2篇計算機系統(tǒng)分層結(jié)構(gòu),在本篇用3章分三個層次,即微體系結(jié)構(gòu)層、指令系統(tǒng)層和匯編語言層討論計算機系統(tǒng)的組成。微體系結(jié)構(gòu)層是具體的硬件層次,可看作是指令系統(tǒng)的解釋器。指令系統(tǒng)層是一個抽象的層次,其指令系統(tǒng)是一種硬件和編譯器都可識別的機器語言。匯編語言層提供的語言,是將機器語言“符號化”以便于人們理解。用匯編語言編寫的程序先由匯編器翻譯成機器語言程序,再由微體系結(jié)構(gòu)層解釋執(zhí)行。,1.4~系統(tǒng)結(jié)構(gòu),計算機系統(tǒng)結(jié)構(gòu)系統(tǒng)的層次結(jié)構(gòu),★,★,面向問題語言層,匯編語言層,操作系統(tǒng)層,指令系統(tǒng)層,微體系結(jié)構(gòu)層,5層,4層,3層,2層,1層,硬件---機器語言,機器與人的界面,符號化的機器語言,面向用戶的語言,,,硬件/固件(微程序),,,,翻譯(編譯器),翻譯(匯編器),部分解釋(操作系統(tǒng)),直接執(zhí)行/解釋(微程序),,,,,,,第3章微體系結(jié)構(gòu)層—CPU組織,在微體系結(jié)構(gòu)層,是從寄存器級分析CPU的結(jié)構(gòu)和功能。本章主要內(nèi)容:CPU的基本組成和功能算術(shù)邏輯部件ALU和運算方法CPU模型機組合邏輯控制器原理微程序控制器原理,第5章CPU,.學習目的和要求:認識CPU在計算機中的位置;要求掌握CPU與各個部分的協(xié)調(diào)工作原理;.重點:整機構(gòu)成,三級時序,兩類控制器;.難點:運算器,微程序控制和設(shè)計。,3.1CPU(CentralProcessUnit)的組成和功能計算機的工作就是不斷執(zhí)行指令序列的過程。CPU的主要功能是從主存儲器中取出指令、分析指令和執(zhí)行指令,即按指令控制計算機各部件操作,并對數(shù)據(jù)進行處理。CPU是計算機的核心組成部分,3.1.CPU的組成和功能,由算術(shù)邏輯部件ALU、控制器、各種寄存器(寄存器群)和CPU內(nèi)部總線(連接部件)另:Cache,3.1.1CPU的組成,,1.ALU部件,ALU的功能是實現(xiàn)數(shù)據(jù)的算術(shù)與邏輯運算,兩個輸入端口,參加運算的兩個操作數(shù),通常來自CPU中的通用寄存器或ALU總線??刂菩盘枺篈DD,SUB,OR,AND等輸出:運算結(jié)果,CPU中的寄存器包括存放控制信息的寄存器,如指令寄存器(IR)、程序計數(shù)器(PC)和狀態(tài)字寄存器(FR);以及存放所處理數(shù)據(jù)的寄存器,如通用寄存器和暫存器。,2.寄存器,(1)通用寄存器本身在邏輯上只具有接收信息、存儲信息和發(fā)送信息的功能??蔀锳LU提供操作數(shù)并存放運算結(jié)果(MUL,DIV),也可用作變址寄存器(SI,DI)、地址指針和計數(shù)器(CX)等。,(2)暫存器暫存從主存儲器讀出的數(shù)據(jù),暫存器沒有寄存器號,因此不能直接編程訪問它們,是透明的。(ALU的兩個輸入),用來存放當前正在執(zhí)行的一條指令。執(zhí)行指令時,需根據(jù)PC中的指令地址從主存讀取指令送到IR中。,(3)指令寄存器IR(InstructionRegister),存放當前或下一條指令在主存中的地址,因此又稱為指令計數(shù)器或指令指針I(yè)P(InstructionPointer)。,(4)程序計數(shù)器PC(ProgramCounter),(5)狀態(tài)寄存器存放當前程序的運行狀態(tài)和工作方式,其內(nèi)容稱為程序狀態(tài)字PSW(ProgramStateWord),PSW是參與控制程序執(zhí)行的重要依據(jù)。(P144),標志位的值,3.總線,所謂總線是一組能為多個部件分時共享的公共信息傳送線路,它分時接收各部件送來的信息,并發(fā)送信息到有關(guān)部件。,由于多個部件連接在一組公共總線上,可能會出現(xiàn)多個部件爭用總線,因此需設(shè)置總線控制邏輯以解決總線控制權(quán)的有關(guān)問題。,?CPU內(nèi)部總線用來連接CPU內(nèi)的各寄存器與ALU;,總線分類:,?系統(tǒng)總線用來連接CPU、主存儲器與I/O接口,它通常包括三組:數(shù)據(jù)總線、地址總線和控制總線。,按總線傳送的方向可將總線分為單向總線和雙向總線。,4.CPU內(nèi)部數(shù)據(jù)通路,CPU內(nèi)部寄存器及ALU之間通常用總線方式傳送數(shù)據(jù)信息。介紹兩種常見的結(jié)構(gòu)。,(1)單總線數(shù)據(jù)通路結(jié)構(gòu)(雙向),采用單總線結(jié)構(gòu)的CPU數(shù)據(jù)通路,CPU數(shù)據(jù)通路結(jié)構(gòu)只采用一組內(nèi)總線,它是雙向總線。通用寄存器組、其他寄存器和ALU均連在這組內(nèi)總線上。,CPU內(nèi)各寄存器間的數(shù)據(jù)傳送必須通過內(nèi)總線進行,ALU通過內(nèi)總線得到操作數(shù),其運算結(jié)果也經(jīng)內(nèi)總線輸出。,(2)多組內(nèi)總線結(jié)構(gòu)(單向),采用三總線結(jié)構(gòu)的CPU數(shù)據(jù)通路,為了提高CPU的工作速度,一種方法是在CPU內(nèi)部設(shè)置多組內(nèi)總線,使幾個數(shù)據(jù)傳送操作能夠同時進行,即實現(xiàn)部分并行操作。,,,,AC,Y,,Memory,PC,,ALU,Rn,R0,IR,CU,,PSW,DR,,AR,,,clock,,,,IRin,PCin,ADD,SUB,AND,OR,,,,,,R0in,移位器,,,,,,R0out,,R1in,,R1out,,Rnin,,Rnout,,DRin,DRout,,ARin,ARout,,,,,,,,,,,,,,,,,A碼,C碼,,PCout,,,,,,ACin,,Yin,IRout,,,,,,,微命令序列(微指令),時序,CPU內(nèi)部的結(jié)構(gòu)示意圖,R1,BUS(總線),紅色箭頭是微命令,,3.1.2指令執(zhí)行過程,CPU的主要功能就是執(zhí)行存放在存儲器中的指令序列,即程序。,1.指令的分段執(zhí)行過程,任何一條指令的執(zhí)行都要經(jīng)過讀取指令、分析指令和執(zhí)行指令3個階段。,執(zhí)行階段還可細分為:,(1)取指令,(2)分析指令,(3)執(zhí)行指令,①取操作數(shù),②執(zhí)行操作,③形成下一條指令地址,此外,CPU還應(yīng)該對運行過程中出現(xiàn)的某些異常情況或輸入/輸出請求進行處理。,,模型機數(shù)據(jù)通路結(jié)構(gòu)圖,2.指令之間的銜接方式,指令之間的銜接方式有兩種:串行的順序安排方式與并行的重疊處理方式。,3.1.3時序控制方式,執(zhí)行一條指令的過程可分為幾個階段,而每一階段又分為若干步基本操作,每一步操作則由控制器產(chǎn)生一些相應(yīng)的控制信號實現(xiàn)。因此,每條指令都可分解為一個控制信號序列,指令的執(zhí)行過程就是依次執(zhí)行一個確定的控制信號序列的過程。,時序控制方式就是指微操作與時序信號之間采取何種關(guān)系,它不僅直接決定時序信號的產(chǎn)生,也影響到控制器及其他部件的組成,以及指令的執(zhí)行速度。,1.同步控制方式,同步控制方式是指各項操作由統(tǒng)一的時序信號進行同步控制。,同步控制的基本特征是將操作時間分為若干長度相同的時鐘周期(也稱為節(jié)拍),要求在一個或幾個時鐘周期內(nèi)完成各個微操作。在CPU內(nèi)部通常是采用同步控制方式。,同步控制方式的優(yōu)點是時序關(guān)系簡單,結(jié)構(gòu)上易于集中,相應(yīng)的設(shè)計和實現(xiàn)比較方便。,2.同步控制方式的多級時序系統(tǒng),(1)多級時序的概念,在同步控制方式中,通常將時序信號劃分為幾級(其中包括指令周期),稱為多級時序。,①機器周期,②節(jié)拍(時鐘周期),③時鐘脈沖信號,(2)多級時序信號之間的關(guān)系,三級時序信號之間的關(guān)系,(3)時序系統(tǒng)的組成,時序系統(tǒng)框圖,3.1.4指令流水線,兩段指令流水線,為獲得進一步的加速,流水線可以分成更多的階段。,取指令,計算操作數(shù)地址,譯碼指令,寫操作數(shù),取操作數(shù),執(zhí)行指令,指令流水線操作時序圖,影響流水線性能主要有以下幾個因素:(1)若各個階段不全是相等的時間(2)流水線中的相關(guān)問題(3)當遇到條件轉(zhuǎn)移指令時(4)當I/O設(shè)備有中斷請求或機器有故障時,第二節(jié)算術(shù)邏輯部件ALU和運算方法,算術(shù)邏輯部件ALU主要完成對二進制代碼的定點算術(shù)運算和邏輯運算。,3.2.1算術(shù)邏輯部件ALU,算術(shù)邏輯部件ALU的硬件實現(xiàn)涉及三個問題:,(1)如何構(gòu)成一位二進制加法單元,即全加器。(2)n位全加器連同進位信號傳送邏輯,構(gòu)成一個n位并行加法器。(3)以加法器為核心,通過輸入選擇邏輯擴展為具有多種算術(shù)和邏輯運算功能的ALU。,1.全加器,用半加器構(gòu)成的全加器,,,和,進位,目前,廣泛采用半加器構(gòu)成全加器。,通常邏輯門電路都存在延遲時間,全加器電路就是一個延遲部件,正是這個延遲特性將影響全加器的速度。,2.并行加法器與進位鏈結(jié)構(gòu),用n位全加器實現(xiàn)兩個n位操作數(shù)各位同時相加,這種加法器稱為并行加法器。并行加法器中全加器的位數(shù)與操作數(shù)的位數(shù)相同。,(1)基本進位公式,設(shè)相加的兩個n位操作數(shù)為:,進位信號的邏輯式,,,,,,可以看出C由兩部分組成:,,,我們定義兩個輔助函數(shù):,,,進位產(chǎn)生函數(shù),進位傳遞函數(shù),因此有:,,(2)并行加法器的串行進位,采用串行進位的并行加法器,是將n個全加器串接起來,就可進行兩個n位數(shù)相加。,,由于串行進位的延遲時間較長,所以在ALU中很少采用純串行進位的方式。但這種方式可節(jié)省器件,成本低,在分組進位方式中局部采用有時也是可取的。,3.并行進位(先行進位、同時進位),為了提高并行加法器的運算速度,就必須解決進位傳遞的問題。方法是讓各級進位信號同時形成,而不是串行形成。,,這種同時形成各位進位的方法稱為并行進位或先行進位,又稱為同時進位。,雖然并行進位加法器的運算速度快,但這是以增加硬件邏輯線路為代價的。兩種常用的分組進位結(jié)構(gòu)是:,組內(nèi)并行、組間串行的進位鏈。組內(nèi)并行、組間并行的進位鏈。,4.ALU舉例,SN74181框圖,(1)SN74181外特性,實驗1算術(shù)邏輯運算實驗,兩個SN74181組成8位片內(nèi)并行進位,片間串行進位的運算器,16位并行進位ALU結(jié)構(gòu),P87圖3-13,3.2.2定點數(shù)運算方法,數(shù)值運算的核心是指加、減、乘、除四則算術(shù)。由于計算機中的數(shù)有定點和浮點兩種表示形式,因此相應(yīng)有定點數(shù)的運算和浮點數(shù)的運算。,1.定點加減運算,(1)原碼加減運算(不用),例如,加法指令指示做(+A)+(-B),由于一個操作數(shù)為負,實際操作是做減法(+A)-(+B),結(jié)果符號與絕對值大的符號相同。同理,在減法指令中指示做(+A)-(-B),實際操作是做加法(+A)+(+B),結(jié)果與被減數(shù)符號相同。,(2)補碼加減運算,①補碼加法運算,[X]+[Y]=[X+Y],,②補碼減法運算,[X–Y]=[X+(-Y)]=[X]+[-Y],③補碼運算規(guī)則根據(jù)以上討論,可將補碼加減規(guī)則歸納如下:?參加運算的操作數(shù)用補碼表示。?符號位參加運算。?若指令操作碼為加,則兩數(shù)直接相加;若操作碼為減,則將減數(shù)連同符號位一起變反加1后再與被減數(shù)相加。?運算結(jié)果用補碼表示。,【例3-3】[X]=00110110,[Y]=11001101,求[X+Y],[X-Y]。,由[y]補怎么求[-y]補?,(3)溢出判別,在什么情況下可能產(chǎn)生溢出?,例:設(shè)定點整數(shù)字長8位,補碼表示(最高位為符號位),表示范圍為-128?127,運算結(jié)果超出此范圍就發(fā)生溢出。,0001111100001101,(1)31+13=44,00101100,,,,(2)-31+(-12)=-43,0111111101000001,(3)63+66=129,10000001,,,,1100000110111110,(4)-63+(-66)=-129,01111111,,,,正溢,負溢,1110000111110100,11010101,,,,①采用一個符號位判斷,溢出=S+AB,,,,,②采用最高有效位的進位判斷,溢出=C+C=CC,,,,,,,,③采用變形補碼判斷(雙符號位),用S、Sn分別表示結(jié)果最高符號位和第2符號位,,,溢出=SS,,,2.移位,移位操作按移位性質(zhì)可分為3種類型:邏輯移位、循環(huán)移位和算術(shù)移位。,移位示意圖,3.定點數(shù)乘除法,(1)軟件實現(xiàn)(2)邏輯電路(3)專用乘除法器,【例3-10】11011011的運算過程如圖所示。,無符號數(shù)乘法,除法不做要求(P92--94),3.2.3浮點數(shù)運算方法,1.浮點數(shù)加減運算,設(shè)有兩個浮點數(shù):X=Mx,Y=My。要實現(xiàn)X+Y的運算,需要以下4個步驟才能完成。,,,①對階操作對階的規(guī)則是:階碼小的數(shù)向階碼大的數(shù)對齊,②實現(xiàn)尾數(shù)的加(減)運算,③結(jié)果規(guī)格化和判溢出,a.左規(guī),b.右規(guī),若運算結(jié)果是非規(guī)格化的數(shù),例如尾數(shù)是11.1x…x或00.0 x…x形式,就需要將尾數(shù)左移,每左移一位,階碼減1,直至滿足規(guī)格化條件為止(即尾數(shù)最高有效位的真值為1,或尾數(shù)符與最高有效位不等),這個過程稱為左規(guī)。在左規(guī)的同時應(yīng)判斷結(jié)果是否會下溢,即階碼小于所能表示的最小負數(shù)。,若運算結(jié)果尾數(shù)發(fā)生溢出,例如尾數(shù)為10.xx…x或01.xx…x形式,這并不表明浮點結(jié)果會溢出,此時需調(diào)整階碼,將尾數(shù)右移一位,階碼加1,稱為右規(guī)。右規(guī)時,應(yīng)判斷結(jié)果是否會上溢,即階碼大于所能表示的最大正數(shù)。,④舍入操作,下面舉一個浮點加的實例?!纠?-12】設(shè)有兩個浮點數(shù)X=2?0.1101012,Y=2?(-0.101011)2。,,,階碼尾數(shù)[X]浮=-10;00.110101[Y]浮=-01;11.010101,①對階,階碼取大的,即-01,,的尾數(shù)為00.011011(0舍1入),②尾數(shù)求和,00.011011+11.01010111.110000,,③規(guī)格化及判溢出,左規(guī)得,[X+Y]浮=1110;11.10000,④舍入由于是左規(guī),結(jié)果不需要舍入。,最后運算結(jié)果的真值為X+Y=2?(-0.100000)2。,小數(shù)點右移即左規(guī),2.浮點數(shù)乘除運算,(1)浮點數(shù)乘法運算,①階碼相加并判溢出,②尾數(shù)相乘,③規(guī)格化處理,(2)浮點數(shù)除法運算,③求階差,④尾數(shù)相除(都已經(jīng)規(guī)格化),①預置檢測被除數(shù)是否為0,若為0則置商為0。如果除數(shù)為0,則置0除數(shù)標志,轉(zhuǎn)中斷處理。,②尾數(shù)調(diào)整,3.2.4十進制數(shù)加減運算,1.進制轉(zhuǎn)換(十----二----十),2.BCD碼(二-十進制數(shù)),機器內(nèi)部采用二-十進制數(shù)(BCD碼),由BCD碼運算指令完成運算。實現(xiàn)BCD碼運算的方法有兩種:,①專用進行BCD碼加、減、乘、除的運算指令。,②先用二進制數(shù)的加、減、乘、除指令進行運算,緊接著用BCD碼校正指令對運算結(jié)果進行校正。,3.BCD碼校正,0---9不用校正,大于9則+6即+110校正,第3節(jié)CPU模型機的組成及其數(shù)據(jù)通路,3.3.1基本組成,,模型機數(shù)據(jù)通路結(jié)構(gòu)圖,3.3.1基本組成,1.寄存器,(1)可編程寄存器,通用寄存器有4個:R0、R1、R2、R3;堆棧指針為SP;程序狀態(tài)字寄存器為PSW;程序計數(shù)器為PC。,(2)暫存器,暫存器有3個:C、D、Z。,(3)指令寄存器IR,指令寄存器IR用來存放當前正在執(zhí)行的一條指令。,(4)與主存接口的寄存器MAR、MDR,CPU對主存的控制信號有兩個:讀信號RD控制對主存的讀操作;寫信號WR控制對主存的寫操作。,2.運算部件,ALU的輸入A來自暫存器D,輸入B來自ALU總線,運算結(jié)果輸出到Z??刂艫LU運算的控制信號有:ADD、SUB、AND、OR、XOR、COM、NEG、A+1、A-1、B+1、B-1,它們分別控制ALU完成加、減、與、或、異或、求負、求反等運算。,3.總線與數(shù)據(jù)通路結(jié)構(gòu),(1)ALU總線,CPU內(nèi)部采用單總線結(jié)構(gòu),即設(shè)置一組ALU總線(也稱為CPU內(nèi)總線),由16根雙向數(shù)據(jù)傳送線組成,ALU和所有寄存器通過這組公共總線連接起來。,(2)系統(tǒng)總線,模型機的CPU、存儲器及I/O設(shè)備分別掛接在一組系統(tǒng)總線上。系統(tǒng)總線包括:16根地址總線、16根數(shù)據(jù)總線,以及控制總線。為簡單起見,模型機采用同步控制方式。,4.控制器及微命令的基本形式,(1)微命令的基本形式,在模型機中,微命令有兩種形式。,①電位型微命令,各寄存器輸出到ALU總線的控制信號有:R0OUT、R1OUT、PCOUT、SPOUT、MDROUT等。ALU運算控制信號有:ADD、SUB、AND、OR、XOR等。暫存器D的左移/右移控制信號有:SAL、SAR。程序計數(shù)器PC的計數(shù)控制信號有:PC+1。MAR和MDR輸出到系統(tǒng)總線的控制信號有:EMAR、EMDR。寄存器置入控制信號有:SMDR、SPSW。主存的讀/寫信號有:RD、WR。,②脈沖型微命令,脈沖型微命令有:CPR0、CPR1、CPPC、CPIR、CPSP、CPMAR、CPMDR等。,(2)控制器,傳統(tǒng)控制器的主要部件包括:指令寄存器IR、指令譯碼器、程序計數(shù)器PC、狀態(tài)字寄存器PSW、時序系統(tǒng)和微操作信號發(fā)生器。,控制器是整機的指揮中心,其基本功能就是執(zhí)行指令,即根據(jù)指令產(chǎn)生控制信號序列以控制相應(yīng)部件分步完成指定的操作。,3.3.2數(shù)據(jù)傳送,1.寄存器之間的數(shù)據(jù)傳送,在模型機中,寄存器之間可直接通過ALU總線傳送數(shù)據(jù),具體傳送由輸出門和打入脈沖控制。,例如:把寄存器R1的內(nèi)容傳送到寄存器R3,即實現(xiàn)傳送操作R1→R3所需控制信號為R1OUT、CPR3,2.主存數(shù)據(jù)傳送到CPU,主存與CPU之間通過系統(tǒng)總線傳送數(shù)據(jù)。,①PC→MAR;PC中的指令地址送存儲器地址寄存器②M→MDR→IR;從存儲器中讀指令到IR,實現(xiàn)PC→MAR的控制信號:PCOUT、CPMAR。,實現(xiàn)讀操作M→MDR的控制信號:EMAR、RD、SMDR;實現(xiàn)MDR→IR的控制信號:MDROUT、CPIR。,例如:要從存儲器中取指令到指令寄存器IR,通過以下操作序列即可實現(xiàn):,3.CPU數(shù)據(jù)傳送到主存,①R1→MAR;地址送MAR②R2→MDR;數(shù)據(jù)送MDR③MDR→M;數(shù)據(jù)寫入主存,例如:在R2中存放需寫入主存的數(shù)據(jù),存儲單元地址在R1中,則寫一個數(shù)據(jù)到存儲器可通過以下操作序列實現(xiàn):,實現(xiàn)R1→MAR的控制信號:R1OUT、CPMAR。實現(xiàn)R2→MDR的控制信號為R2OUT、CPMDR。實現(xiàn)寫操作MDR→M的控制信號為EMAR、EMDR、WR,4.執(zhí)行算術(shù)或邏輯操作,①R1→D;把R1的內(nèi)容先送到寄存器D②D+R2→Z;R2內(nèi)容送到ALU的B端與D內(nèi)容通過ALU相加,結(jié)果送Z③Z→R3;將存放在Z中的相加結(jié)果送入R3中,例如:完成“把寄存器R1和R2的內(nèi)容相加,結(jié)果送到R3”這個功能,需要分成3步執(zhí)行:,實現(xiàn)R1→D的控制信號:R1OUT、CPD。實現(xiàn)D+R2→MDR的控制信號:R2OUT、ADD、CPZ。實現(xiàn)Z→R3的控制信號:ZOUT、CPR3。,第四節(jié)組合邏輯控制器原理,組合邏輯控制器是指產(chǎn)生控制信號(即微命令)的部件,是用組合邏輯線路來實現(xiàn)。在模型機中有幾十個微命令,則每個微命令都需要一組邏輯門電路,根據(jù)相應(yīng)的邏輯條件(如指令的操作碼、尋址方式、時序信號等)產(chǎn)生該微命令。,本節(jié)先介紹模型機的指令系統(tǒng),然后假設(shè)模型機采用的是組合邏輯控制器,討論其時序系統(tǒng)、指令執(zhí)行流程及微命令的產(chǎn)生與綜合。,3.4.1模型機的指令系統(tǒng),1.指令格式,(1)雙操作數(shù)指令:其格式如下圖所示,第12~15位表示操作碼,第6~11位為源操作數(shù)地址段,第0~5位為目的操作數(shù)地址段,在每個地址段字段中又分為兩部分,其中3位表明尋址方式類型,另外3位給出所指定的寄存器編號。,(1)雙操作數(shù)指令格式,可編程寄存器有7個,編號如下(留有一種編碼110未用,可擴展):通用寄存器R0~R3000~011堆棧指針SP100程序狀態(tài)字PSW101程序計數(shù)器PC111,(2)單操作數(shù)指令,第0~5位為地址字段,第6~11位空閑不用,也可供擴展操作碼用。,(3)轉(zhuǎn)移指令,第12~15位為操作碼,第6~11位給出轉(zhuǎn)移地址字段(也分為尋址方式與寄存器號兩部分)。第0~5位則為轉(zhuǎn)移條件字段。其中,第0~3位中有一位為1,表明轉(zhuǎn)移條件——進位C、溢出V、結(jié)果為零Z、結(jié)果為負N。第5位表明轉(zhuǎn)移方式,若為0,表示相關(guān)標志位為0轉(zhuǎn)移;若為1,表示相關(guān)標志位為1轉(zhuǎn)移。若第0~5位全為0,表示無條件轉(zhuǎn)移。,2.尋址方式,模型機的編址為按字編址,字長16位,即主存每個單元16位。采用簡單變字長指令格式,指令長度可為16位、32位(指令中含立即數(shù)或一個操作數(shù)地址)或48位(含2個操作數(shù)地址),操作數(shù)字長16位。模型機尋址方式如下表:,3.操作類型,操作碼共4位,現(xiàn)設(shè)置14種指令,余下兩種操作碼組合可供擴展。,(1)傳送指令,MOV——傳送,操作碼0000。不設(shè)堆棧操作指令、I/O指令,(2)雙操作數(shù)算術(shù)邏輯指令,ADD——加,操作碼0001(帶進位)。SUB——減,操作碼0010(帶進位)。AND——邏輯與,操作碼0011。OR——邏輯或,操作碼0100。EOR——邏輯異或,操作碼0101。,(3)單操作數(shù)算術(shù)邏輯指令,COM——求反,操作碼0110。NEG——求補,操作碼0111。INC——加1,操作碼1000。DEC——減1,操作碼1001。SL——左移,操作碼1010。SR——右移,操作碼1011。,(4)程序控制類指令,①轉(zhuǎn)移指令JMP,操作碼1100。,如上表所示,JMP指令第3~0位選擇一位為1,表明以PSW中的某一特征作為轉(zhuǎn)移條件。因此,JMP指令第3~0位的含義與PSW第3~0位含義分別相對應(yīng)。例如PSW第0位是進位位C,而轉(zhuǎn)移指令第0位若為1,則表明以進位狀態(tài)為轉(zhuǎn)移條件。JMP指令第5位(IR5)決定轉(zhuǎn)移條件為0轉(zhuǎn),還是為1轉(zhuǎn)。若JMP指令第5~0位全為0,則表示無條件轉(zhuǎn)移。,②返回指令RST,操作碼1100。,RST指令與JMP指令的操作碼相同,可視為一條指令。RST指令只能采用自增型寄存器間址表明轉(zhuǎn)移地址,并指定寄存器為SP,即尋址方式為(SP)+。它從堆棧中取出返回地址,然后修改堆棧指針SP+1。實際上,“JMP(SP)+”指令就是一條RST指令。,③轉(zhuǎn)子指令JSR,操作碼1101。,執(zhí)行JSR指令時,先將返回地址壓棧保存,然后按尋址方式找到轉(zhuǎn)移地址(即子程序入口地址),將它送入PC中。,3.4.2模型機的時序系統(tǒng),組合邏輯控制器依靠不同的時間標志,使CPU分步工作。模型機采用前述的三級時序系統(tǒng),即將時序信號分為工作周期、節(jié)拍(時鐘周期)和工作脈沖。,1.工作周期劃分,(1)取指周期FT,在取指周期FT中完成取指所需的操作,(2)源周期ST,如果需要從主存中讀取源操作數(shù),則進入ST。,(3)目的周期DT,如果需要從主存中讀取目的地址或目的操作,則進入DT。,(4)執(zhí)行周期ET,在取得操作數(shù)后,則進入ET,在ET中將依據(jù)IR中操作碼執(zhí)行相應(yīng)操作,如傳送、算術(shù)運算、邏輯運算、獲得轉(zhuǎn)移地址等,(5)中斷響應(yīng)周期IT,(6)DMA傳送周期DMAT,(5)中斷響應(yīng)周期IT,(6)DMA傳送周期DMAT,中斷方式:由于某些異常情況或特殊請求,引起CPU暫停執(zhí)行當前程序,轉(zhuǎn)去執(zhí)行中斷處理子程序,以處理這些情況或請求,等處理完后又返回原程序斷點繼續(xù)執(zhí)行,這一過程就稱為中斷。,CPU在響應(yīng)中斷請求之后,進入中斷響應(yīng)周期IT。在IT中將直接依靠硬件進行關(guān)中斷、保存斷點、轉(zhuǎn)處理程序入口等操作。IT結(jié)束后,進入取指周期FT,開始執(zhí)行中斷處理程序。,DMA(DirectMemoryAccess)即直接訪存方式:其基本思想是在主存儲器和I/O設(shè)備之間建立直接的數(shù)據(jù)傳送通路,由專門的DMA控制器控制主存和I/O設(shè)備間的數(shù)據(jù)傳送,在傳送時不需CPU干預。由于傳送過程完全由硬件實現(xiàn),所花費的時間短,因此能滿足高速數(shù)據(jù)傳送的需要。,CPU響應(yīng)DMA請求之后,進入DMAT。在DMAT中,CPU交出系統(tǒng)總線的控制權(quán),即MAR、MDR與系統(tǒng)總線脫鉤(呈高阻態(tài))。改由DMA控制器控制系統(tǒng)總線,實現(xiàn)主存與外圍設(shè)備間的數(shù)據(jù)直接傳送,因此對CPU來說,DMAT是一個空操作周期。,FT,ST,DT,IT,ET,DMAT,DMA請求?,中斷?,Y,Y,N,N,CPU控制流程,例.雙操作數(shù)指令的兩個操作數(shù)均在主存中,工作周期變化為:,FT→ST→DT→ET→(FT……),例.單操作數(shù)指令的操作數(shù)在主存中,工作周期變化為:,FT→DT→ET→(FT……),例.雙操作數(shù)指令的操作數(shù)均在CPU寄存器中,工作周期變化為:,FT→ET→(FT……),左圖描述了指令執(zhí)行時工作周期狀態(tài)變化流程。,2.節(jié)拍(時鐘周期)T,每個工作周期的操作一般需要分成若干步完成,為此將工作周期劃分成若干節(jié)拍。,在模型機中,為了簡化時序控制,將CPU內(nèi)部操作與訪問主存的操作統(tǒng)一考慮。節(jié)拍寬度為最長微操作所需的時間,即訪問主存操作所需的時間。,3.工作脈沖P,3.工作脈沖,在節(jié)拍中執(zhí)行的有些操作需要同步定時脈沖,如將穩(wěn)定的運算結(jié)果打入寄存器、周期狀態(tài)切換等。為此,模型機在每個節(jié)拍的末尾發(fā)一個工作脈沖P,作為各種同步脈沖的來源,如左圖。,工作脈沖P的前沿:作為打入寄存器的定時信號,它標志著一次數(shù)據(jù)通路操作的完成。P的后沿:作為節(jié)拍、工作周期切換的定時信號,在此刻對節(jié)拍計數(shù)器T計數(shù)、打入新的工作周期狀態(tài)。,3.4.3指令流程(重點),分析指令流程是為了在寄存器這一層次分析指令的讀取與執(zhí)行過程,也就是討論CPU的工作機制。,1.取指周期FT(Fetch),(1)進入FT的條件,初始化時置入FT,,程序正常運行時同步打入FT。,1,CPFT,,取指周期狀態(tài)觸發(fā)器,產(chǎn)生控制信號1→FT的邏輯條件如下:,,1→FT=ET(1→IT1→DMAT)+IT+DMAT(1→IT1→DMAT),,,,,(2)取指流程,PC→MAR,M→MDR→IRPC+1→PC,FT0,FT1,,,(3)微操作時間表,2.MOV指令,1)取指令周期和取源操作數(shù)周期流程圖,FT,ST0,ST1,ST2,ST3,ST4,R,(R),-(R),I/(R)+,DI,X(R),MOVE指令,2)取目的地址和執(zhí)行周期流程圖,DT0,DT1,DT2,DT3,ET0,ET1,R,(R),-(R),I/(R)+,DI,X(R),3.雙操作數(shù)指令,雙操作數(shù)指令共有5條:加ADD、減SUB、與AND、或OR、異或EOR,其指令流程圖:,ST,FT,DT0,DT1,DT2,DT3,DT4,ET0,ET1,ET2,與MOV相同,4.單操作數(shù)指令,單操作數(shù)指令共有6條:求反COM、求補NEG、加“1”INC、減“1”DEC、左移SL、右移SR,其指令流程圖如圖:,FT,ST(無),DT,ET0,ET1,ET2,與雙操作數(shù)指令相同,5.轉(zhuǎn)移指令JMP/返回指令RST,NJP,JP,RST,PC,PC,R,(R),(R)+/RST,X(PC),FT,ET1,ET2,ET3,ET4,6.轉(zhuǎn)子指令JSR,ST0,FT,ET0,ET1,ET2,ST1,ST2,ST3,ET4,流程圖如下:,8.DMA周期,在實際機器中,CPU可在一個系統(tǒng)總線周期結(jié)束時響應(yīng)DMA請求。,9.鍵盤操作,3.4.4微命令的綜合與產(chǎn)生,微命令的邏輯表達式都是“與-或”式的邏輯形態(tài),各“與”項通常包括:指令操作碼譯碼信號、尋址字段譯碼信號、工作周期狀態(tài)、節(jié)拍、工作脈沖等。例如:,PCOUT=FTT0+MOV,STT0+…,CPMAR=FTT0P+MOV,STT0P+…,T+1=FTT0+MOVSTT0,+…,CPT=,第五節(jié)微程序控制器原理,有些CPU采用微程序控制方式來產(chǎn)生微命令,相應(yīng)的控制器稱為微程序控制器。,1.微程序控制方式的基本思想,(1)將機器指令分解為基本的微命令序列,用二進制代碼表示這些微命令,并編成微指令,多條微指令再形成微程序。,(2)一條微指令包含的微命令,控制實現(xiàn)一步(一個節(jié)拍)操作;若干條微指令組成的一小段微程序解釋執(zhí)行一條機器指令。,CM中的微程序能解釋執(zhí)行整個指令系統(tǒng)的所有機器指令。,指令代碼,運行狀態(tài),控制存貯器CM,微命令存儲器IR,微命令序列,微程序控制器原理框圖:,控制存儲器CM功能:存放微程序。CM屬于CPU,不屬于主存儲器。,微指令寄存器IR功能:存放現(xiàn)行微指令。微操作控制字段:提供一步操作所需的微命令。指明后續(xù)微地址的形成方式。順序控制字段:提供微地址的給定部分,,指令代碼,運行狀態(tài),控制存貯器CM,微命令存儲器IR,微命令序列,微程序控制器原理框圖:,2.微程序執(zhí)行過程的描述,(1)取機器指令,CM,取指微指令,,IR,,微命令字段,譯碼器,微命令,,,,機器指令,IR,主存,指令代碼,運行狀態(tài),控制存貯器CM,微命令存儲器IR,微命令序列,微程序控制器原理框圖:,(2)轉(zhuǎn)微程序入口,(3)執(zhí)行首條微指令,IR,操作碼,,微地址形成電路,,入口,AR,,CM,,IR,微命令字段,IR,,譯碼器,微命令,,操作部件,指令代碼,運行狀態(tài),控制存貯器CM,微命令存儲器IR,微命令序列,微程序控制器原理框圖:,(4)取后續(xù)微指令,微地址字段現(xiàn)行微地址運行狀態(tài),,微地址形成電路,,,后續(xù)微地址,AR,,CM,后續(xù)微指令,,IR,(5)執(zhí)行后續(xù)微指令,同(3),(6)返回,微程序執(zhí)行完,返回CM,(存放取指微指令的固定單元)。,指令代碼,運行狀態(tài),控制存貯器CM,微命令存儲器IR,微命令序列,微程序控制器原理框圖:,3.基本概念和術(shù)語,(1)微命令與微操作,微命令,微操作,——構(gòu)成控制信號序列的最小單位。,——由微命令控制實現(xiàn)的最基本操作。,注意,在組合邏輯控制器中也存在微命令、微操作這兩個概念,它們并非只是微程序控制方式的專用概念。,(2)微指令與微周期,微指令,微周期,——若干微命令的組合,以編碼形式存放在控制存儲器的一個單元中,控制實現(xiàn)一步操作。,——通常指從控制存儲器中讀取一條微指令并執(zhí)行相應(yīng)的微操作所需的時間。,(3)微程序與微程序設(shè)計,微程序,微程序設(shè)計,——一系列微指令的有序集合。,——是將傳統(tǒng)的程序設(shè)計方法運用到控制邏輯的設(shè)計中,在微程序中也可以有微子程序、循環(huán)、分支等形態(tài)。,(4)工作程序與微程序、主存儲器與控制存儲器,3.5.2微指令編碼方式,微指令編碼的實質(zhì)是解決在微指令中如何組織微命令的問題。,1.直接控制編碼(不譯碼法),例.某微指令,微命令按位給出。,不需譯碼,產(chǎn)生微命令的速度快;信息的表示效率低。,操作唯一;,加法器A輸入端的控制命令放AI字段,B輸入端的控制命令放BI字段。,C,D,AI:,BI:,一條微指令能同時提供若干微命令,便于組織各種操作。,編碼較簡單;,2.分段直接編譯法,3.分段間接編譯法,例.,微命令由本字段編碼和其他字段解釋共同給出。,C=,1)設(shè)置解釋位或解釋字段,,解釋位,,1A為某類命令0A為常數(shù),2)分類編譯,按功能類型將微指令分類,分別安排各類微指令格式和字段編碼,并設(shè)置區(qū)分標志。,4.常數(shù)源字段E的設(shè)置,微操作控制字段E順序控制字段,在微指令中,一般設(shè)有一個常數(shù)源字段E,就如同機器指令中的立即操作數(shù)一樣,用來提供微指令所使用的常數(shù)(由設(shè)計者填寫),如提供計數(shù)器初值,通用寄存器地址,轉(zhuǎn)移地址等。字段E也可用來參與其他控制字段的間接編碼,以減少微指令字長,增加微指令的靈活性。字段E在微指令中的形式為,,,除上述幾種基本的編碼方法外,另外還有一些常見的編碼技術(shù),如可采用微指令譯碼與部分機器指令譯碼的復合控制、微地址參與解釋微指令譯碼。,3.5.3微程序的順序控制,1.微程序入口地址的形成,每一條機器指令對應(yīng)著一段微程序,其入口就是初始微地址。常用以下幾種方式形成入口地址:,(1)當操作碼的位數(shù)與位置固定時,可直接使操作碼與入口地址碼的部分相對應(yīng)。,(2)當每類指令中的操作碼位數(shù)與位置固定,而各類指令之間的操作碼與位置不固定時,可采用分級轉(zhuǎn)移的方式。,(3)當機器指令的操作碼位數(shù)和位置都不固定時,通??梢圆捎肞LA電路將每條指令的操作碼翻譯成對應(yīng)的微程序入口地址,也可以采用PROM(可編程只讀存儲器)實現(xiàn)轉(zhuǎn)移,將指令操作碼作為PROM的地址輸入,其對應(yīng)的PROM單元內(nèi)容即為該機器指令的微程序入口地址。,2.后繼微地址的形成,每條微指令執(zhí)行完畢時,需根據(jù)其中的順序控制字段的要求形成后繼微指令地址。,形成后繼地址的兩類方法:,(1)增量方式(順序-轉(zhuǎn)移型微地址),采用這種方式的微指令的順序控制字段通常分成兩部分:轉(zhuǎn)移方式控制字段和轉(zhuǎn)移地址字段,其一般格式如下:,微操作控制字段轉(zhuǎn)移地址轉(zhuǎn)移方式,,,增量方式:,①順序執(zhí)行,②無條件轉(zhuǎn)移,③條件轉(zhuǎn)移,④轉(zhuǎn)微子程序,⑤微子程序返回,現(xiàn)行微地址+1,現(xiàn)行微指令給出轉(zhuǎn)移微地址,現(xiàn)行微指令給出轉(zhuǎn)移微地址和轉(zhuǎn)移條件,現(xiàn)行微指令給出微子程序入口。,現(xiàn)行微指令給出寄存器號。,(2)斷定方式,由直接給定和測試斷定相結(jié)合形成微地址。,微操作控制字段非測試段測試段,,,指令格式:,非測試段可由設(shè)計者直接給定,通常是后繼微地址的高位部分,用以指定后繼微指令在某個區(qū)域內(nèi)。,測試段根據(jù)有關(guān)狀態(tài)的測試結(jié)果確定其地址值,占后繼微地址的低位部分。這相當于在指定區(qū)域內(nèi)斷定具體的分支。所依據(jù)的測試狀態(tài)可能是指定的開關(guān)狀態(tài)、指令操作碼、狀態(tài)字等。,3.5.4微指令格式,微指令的編碼方式是決定微指令格式的主要因素,1.水平型微指令,特征如下:,(1)微指令較長,(2)微指令中的微操作具有高度并行性,(3)微指令編碼簡單,2.垂直型微指令,優(yōu)點:,微指令短、簡單、規(guī)整,便于編寫微程序。,缺點:,微程序長,執(zhí)行速度慢;工作效率低。,一條微指令定義并執(zhí)行一種基本操作。,3.5.5典型微指令舉例,模型機的微指令字長為26位,分為8個字段,其格式如下:,FOUTFALUFCPFPCFEMARFR/WFSTJC,,,,,,,,45521225,(1)基本數(shù)據(jù)通路控制字段,?FOUT,?FALU,?FCP,?FPC,寄存器的輸出控制字段,ALU的操作與Z的移位控制字段,寄存器的同步打入控制字段,PC的操作控制字段,(2)訪存控制字段,?FEMAR,?FR/W,(3)輔助控制字段,?FST,MAR輸出控制字段。,主存讀寫與MDR操作控制字段。,輔助操作控制字段,(4)順序控制字段JC轉(zhuǎn)移方式字段,用以選擇后繼微指令地址的形成方式,3.6RISCCISC功能強大,編程容易,程序簡潔易懂,一直在軟件界一統(tǒng)天下,但隨著硬件技術(shù)的發(fā)展CISC的地位動搖了,為什么?因為:CISC指令越來越多,功能越來越復雜。90%以上的指令在程序中只用到有10%,編譯復雜煩瑣,運算耗時,目標程序臃腫,……,人們變得難以承受,于是RISC應(yīng)運而生。,3.6RISC技術(shù)(P123)RISC的特點:RISC的巨大優(yōu)勢是程序執(zhí)行和編譯時間短,占用內(nèi)存少。主要缺點是對編程人員要求很高。,,超標量多個執(zhí)行部件,一個周期內(nèi)發(fā)出多條指令,多條指令在不同的執(zhí)行部件中并行執(zhí)行操作。,超流水線將流水線的每個節(jié)拍分成3個或4個小節(jié)拍.,典型的RISC:UltraSPARCⅡ指令系統(tǒng),3.6.2UltraSPARCCPU的微體系結(jié)構(gòu),1.UltraSPARCⅡ概況,UltraSPARCⅡ的微體系結(jié)構(gòu)框圖:,2.UltraSPARCⅡ的流水線,如圖:,整數(shù)流水線,浮點數(shù)/圖形流水線,3.UltraSPARCⅡ指令系統(tǒng),UltraSPARCⅡ有兩組寄存器:32個64位的通用寄存器和32個浮點寄存器。R0~R31是通用寄存器,它們在特定的上下文中使用其他的名字。,UltraSPARCⅡ的通用寄存器,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 計算機系統(tǒng) 分層 結(jié)構(gòu)
鏈接地址:http://weibangfood.com.cn/p-3592623.html