CPU子系統(tǒng)課件講義整理_第1頁
CPU子系統(tǒng)課件講義整理_第2頁
CPU子系統(tǒng)課件講義整理_第3頁
CPU子系統(tǒng)課件講義整理_第4頁
CPU子系統(tǒng)課件講義整理_第5頁
已閱讀5頁,還剩245頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

※本章主要介紹:功能部件部件之間的數(shù)據(jù)通路CPU的基本結(jié)構(gòu)CPU的設(shè)計方法第3章CPU子系統(tǒng)模型機(jī)處理器(CISC)MIPS32處理器(RISC)1/24※本章主要介紹:功能部件CPU的基本結(jié)構(gòu)CPU的設(shè)計方法第3CPU3.1CPU概述

主存硬盤光盤鍵盤顯示器※CPU在計算機(jī)中的角色主機(jī)外圍設(shè)備CPU是計算機(jī)中的核心部件①數(shù)據(jù)運算功能結(jié)構(gòu)最復(fù)雜、技術(shù)難度最高?、谙到y(tǒng)控制功能2/24CPU3.1CPU概述主硬盤※CPU在計算機(jī)中的角色①時序系統(tǒng)②控制部件③緩存部件④寄存器(堆)⑤運算部件3.1.1CPU的基本結(jié)構(gòu)部件通過數(shù)據(jù)/控制通路互連,實現(xiàn)信息交互運算器寄存器控制器數(shù)據(jù)通路主存時序部件外部信號時鐘信號※主要部件:1、總體結(jié)構(gòu)模型緩存部件控制通路數(shù)據(jù)信號控制信號3/24①時序系統(tǒng)3.1.1CPU的基本結(jié)構(gòu)部件通過數(shù)據(jù)/控制通路(1)運算部件(2)緩存部件(3)寄存器(4)控制器(5)時序部件2、CPU的主要部件

從硬件的角度,CPU內(nèi)部的主要部件包括:

通過數(shù)據(jù)通路/控制通路互相連接

各種功能部件,分別通過數(shù)據(jù)通路/控制通路互相連接形成CPU的硬件架構(gòu)→CPU的微架構(gòu)4/24(1)運算部件2、CPU的主要部件從硬件的角度,CPU內(nèi)(1)運算部件選擇邏輯A輸出邏輯選擇邏輯B數(shù)據(jù)源操作數(shù)運算結(jié)果對操作數(shù)進(jìn)行運算,主要是算術(shù)運算/邏輯運算基本組成如下:5/24ALU(1)運算部件選擇邏輯A輸出邏輯選擇邏輯B數(shù)據(jù)源操作數(shù)運算結(jié)(2)緩存部件為提高CPU從主存中讀取指令/數(shù)據(jù)的效率,在CPU內(nèi)部集成了多級緩存部件。[作用]緩存從主存中讀取的部分指令/數(shù)據(jù)CPU內(nèi)核L1L2L3主存6/24L1、L2和L3就是緩存部件程序的執(zhí)行具有局部性提前把需要的指令數(shù)據(jù)調(diào)入緩存(2)緩存部件為提高CPU從主存中讀取指令/數(shù)據(jù)的效率,在(3)寄存器組(堆)①通用寄存器:多個存儲各種用途的數(shù)據(jù)信息?;绢愋腿缦拢和ㄓ眉拇嫫饔腥治ㄒ坏刂?,可通過地址碼訪問,可在機(jī)器指令中直接使用。[功能]提供操作數(shù)、地址碼、存放運算結(jié)果等。[部件選用]一般用小容量的多端口存儲器來構(gòu)成寄存器組,其中1個存儲單元作為1個寄存器。7/24(3)寄存器組(堆)①通用寄存器:多個存儲各種用途的數(shù)據(jù)信息②暫存器[特征]多個,內(nèi)部專用,無需分配地址碼,不能在機(jī)器指令中顯式使用。[主要用途]用來暫存產(chǎn)生的臨時數(shù)據(jù),以備在后續(xù)操作過程中使用。③指令寄存器(IR)[主要用途]只有1個,用于存放指令代碼。從存儲器(或者指令緩存)中讀取到指令以后,就直接存入到指令寄存器中。8/24②暫存器③指令寄存器(IR)從存儲器(或者指令緩存)中讀取到④程序計數(shù)器(PC)[主要用途]僅1個,用來指明指令在存儲器中的存放位置,即存儲單元的地址碼。00FFPC00FF[注意]取指令結(jié)束后,PC保存的地址碼自動修改,以指向下一條指令的存儲單元,修改量取決于指令字長和存儲器的編址單位?!璉R9/24④程序計數(shù)器(PC)00FFPC00FF[注意]取指令結(jié)束后⑤程序狀態(tài)字寄存器(PSW)[主要用途]僅1個,記錄現(xiàn)行程序的運行狀態(tài)和程序的工作模式。

PSW-特征位也叫標(biāo)志位,反映CPU的當(dāng)前狀態(tài)。指令執(zhí)行時,根據(jù)情況自動設(shè)置這些特征位,作為后續(xù)操作的判斷依據(jù),通常有5類:進(jìn)位C溢出V零值Z負(fù)值N奇偶P…自動設(shè)置(具備該特征,就設(shè)置該標(biāo)志位=1)10/24⑤程序狀態(tài)字寄存器(PSW)PSW-特征位進(jìn)位溢出零值負(fù)值

PSW-編程設(shè)定位PSW中某些位或字段可通過程序來設(shè)定,以決定程序的調(diào)試、對中斷的響應(yīng)、程序的運行模式等。跟蹤位T允許中斷I程序優(yōu)先級P運行模式⑥地址寄存器(MAR)[主要用途]只有1個,讀寫存儲器時,先要定位存儲單元,因此設(shè)置MAR來存放目標(biāo)單元的地址碼。先將有效地址送入MAR,再啟動后續(xù)的讀寫操作。11/24PSW-編程設(shè)定位跟蹤位允許中斷程序優(yōu)運行模式⑥地址寄存器⑦數(shù)據(jù)緩沖寄存器(MBR)[主要用途]只有1個,過渡性地存放CPU與主存之間交換的數(shù)據(jù)。無論是從主存讀取的數(shù)據(jù),還是寫入到主存的數(shù)據(jù),都要經(jīng)過MBR。[主要用途]堆棧(存儲器)數(shù)據(jù)1數(shù)據(jù)0…數(shù)據(jù)n數(shù)據(jù)n-100FFSP棧頂棧底彈出12/24僅1個,固定存放堆棧的棧頂單元的地址碼。根據(jù)這個地址碼,去讀寫堆棧。⑧堆棧指針(SP)⑦數(shù)據(jù)緩沖寄存器(MBR)[主要用途][主要用途]堆棧(存儲4、控制器[主要作用]根據(jù)產(chǎn)生微命令的方式,有兩類控制單元:根據(jù)指令、時鐘信號、外部信號等信息,產(chǎn)生各種控制信號(微命令),以便控制各種功能部件協(xié)同工作,完成指令的功能。控制單元指令代碼時序信號狀態(tài)信號各種控制信號①組合邏輯控制器②微程序控制器組合邏輯硬件電路→控制信號微程序譯碼→控制信號13/244、控制器[主要作用]根據(jù)產(chǎn)生微命令的方式,有兩類控制單元:5、時序部件[定義]周期、節(jié)拍、脈沖等頻率型信號序列。產(chǎn)生時序信號的部件稱為時序發(fā)生器或時序系統(tǒng),由1個低頻振蕩器和倍頻邏輯組成。①時序信號低頻震蕩器倍頻邏輯CPU時鐘周期信號機(jī)器周期信號指令周期信號低頻信號振蕩器:它是一個低頻脈沖源,能輸出固定頻率的基準(zhǔn)脈沖信號(外頻),作為系統(tǒng)時鐘信號。14/245、時序部件[定義]周期、節(jié)拍、脈沖等頻率型信號序列。①時序系統(tǒng)時鐘信號經(jīng)過倍頻放大以后,產(chǎn)生執(zhí)行指令所需要的各種時序信號:①節(jié)拍信號,即CPU時鐘周期信號;②工作周期信號,即機(jī)器周期信號;③指令周期信號。T時鐘周期機(jī)器周期指令周期取指令取源操作數(shù)其它執(zhí)行指令的時間機(jī)器周期包括若干(≥1)時鐘周期。指令周期包括若干(≥2)機(jī)器周期。15/24系統(tǒng)時鐘信號經(jīng)過倍頻放大以后,產(chǎn)生執(zhí)行指令所需要的各種時序信3.1.2CPU的工作原理1、主要功能處理指令-控制指令的執(zhí)行順序;執(zhí)行操作-產(chǎn)生控制信號控制部件工作;控制時間-控制各步操作的時序;數(shù)據(jù)運算-算術(shù)和邏輯運算;2、執(zhí)行指令的流程讀取指令-從存儲器中讀??;指令譯碼-通過控制器進(jìn)行、產(chǎn)生控制信號;指令執(zhí)行-尋址、取數(shù)、運算;后續(xù)工作-保存結(jié)果、響應(yīng)外部請求等;16/243.1.2CPU的工作原理1、主要功能處理指令-控制指令的3、部件的控制方式CPU是計算機(jī)內(nèi)部技術(shù)最復(fù)雜的子系統(tǒng):如何控制這些部件協(xié)同工作,完成指令功能?①同步控制方式;②異步控制方式;→部件眾多→架構(gòu)復(fù)雜→功能多樣17/243、部件的控制方式CPU是計算機(jī)內(nèi)部技術(shù)最復(fù)雜的子系統(tǒng):如何時鐘信號T1T3T2T4地址數(shù)據(jù)發(fā)出地址寫入R※同步控制方式的特點√每步操作都向統(tǒng)一的外部時序信號對齊;√各步操作之間無交互。[舉例]發(fā)出地址、送出數(shù)據(jù)與寫入R的協(xié)同18/24三個操作靠外部時鐘信號的驅(qū)動來實現(xiàn)協(xié)同!時鐘信號T1T3T2T4地址數(shù)據(jù)發(fā)出地址寫入R※同步控制方式t4t1

寫入Rt2※異步控制方式的特點√每步操作都不需向統(tǒng)一的外部時序信號對齊;√各步操作之間通過交互應(yīng)答來實現(xiàn)協(xié)同發(fā)出地址送出數(shù)據(jù)撤消數(shù)據(jù)(高阻)[舉例]發(fā)地址信號、送出數(shù)據(jù)與寫入R的協(xié)同19/24t3撤消地址信號三個操作靠相互之間的控制信號來實現(xiàn)協(xié)同t4t1寫入Rt2※異步控制方式的特點√每步操作都不需向統(tǒng)3.1.3外部連接與I/O控制任務(wù)1、外部連接類型CPU北橋芯片組PCH芯片組主存視頻PCI-E主存視頻主存視頻PCI-E√單處理機(jī)系統(tǒng):通過前端總線與北橋芯片組連接;√多處理機(jī)系統(tǒng):高性能CPU中集成了主存、視頻和PCI-E接口,CPU之間通過QPI、與芯片組之間通過DMI總線互連。FSBQPIDMI20/243.1.3外部連接與I/O控制任務(wù)1、外部連接類型CPU北2、在I/O控制中的任務(wù)主機(jī)與外設(shè)之間進(jìn)行數(shù)據(jù)輸入/輸出操作時,在不同的I/O控制模式下,CPU承擔(dān)的任務(wù)各不相同:主機(jī)←接口→外圍設(shè)備①程序傳送模式:④IOP和PPU模式:CPU直接執(zhí)行I/O指令②中斷模式:CPU執(zhí)行中斷服務(wù)程序③DMA模式:CPU管理DMA控制器、善后處理;CPU組織I/O程序,管理IOP與PPU,以及善后處理;21/242、在I/O控制中的任務(wù)主機(jī)與外設(shè)之間進(jìn)行數(shù)據(jù)輸入/輸出操作3.1.4CPU發(fā)展歷程1、1946-19702、1971-19733、1974-19774、1978-1984[技術(shù)特點]電子管和晶體管CPU階段,體積大、功耗高、集成度低、運算速度慢。[技術(shù)特點]中小規(guī)模集成電路,4位或8位微處理器?!俏⑻幚砥鳌鶦PU進(jìn)入單核微處理器時代[技術(shù)特點]8位中高檔微處理器成為主流,1百萬級IPS。[技術(shù)特點]16位微處理器,3um工藝,約2百萬級IPS。22/243.1.4CPU發(fā)展歷程1、1946-19702、19717、2003-20045、1985-1992[技術(shù)特點]32位微處理器,2um工藝,指令周期約0.16us,開始集成協(xié)處理器,采用流水線,千萬級IPS。[技術(shù)特點]64位單核處理器,0.13um,晶體管的集成度上億,主頻高達(dá)2.0GHz。[典型代表]Intel80486;6、1993-2002[技術(shù)特點]32位微處理器,集成度更高、工藝<1um,指令更豐富、功能更強(qiáng),IPS突破1億。[典型代表]Intel32位奔騰系列處理器;[典型代表]Intel64位奔騰4處理器;23/247、2003-20045、1985-1992[技術(shù)特點]32※國內(nèi)的情況:2002,龍芯1(32位/MIPSIII/7級流水/266MHz)2005,龍芯2(64位/0.18um/1GHz),≈P42009,龍芯3A(4核/65nm/1GHz),飛騰1000(8核64線程)2012,龍芯3B-1500(8核/28nm/1.5GHz)2013,飛騰1500(16核/SPARCV9/40nm/1.8GHz)[技術(shù)特點]64位、多核、多線程處理器為主。8、2005-現(xiàn)在低于100nm級的工藝制程。[典型代表]AMDAthlon64X2、IntelPentiumEE;Intel酷睿i3/i5/i7/i8系列處理器;24/24國內(nèi)外差距很大、任重道遠(yuǎn)!※國內(nèi)的情況:2002,龍芯1(32位/MIPSIII/7級

3.2指令系統(tǒng)

本節(jié)主要分析:?基于MIPS32架構(gòu)√指令格式√指令涉及的尋址方式√向用戶的指令類型指令系統(tǒng)→設(shè)計CPU的一般過程:控制器→數(shù)據(jù)通路→CPU定型25/413.2指令系統(tǒng)本節(jié)主要分析:?基于MIPS32架構(gòu)⊙指令/數(shù)據(jù)字:指令/數(shù)據(jù)的一組二進(jìn)制代碼?!阎噶?數(shù)據(jù)字長:指令/數(shù)據(jù)二進(jìn)制代碼位數(shù)⊙機(jī)器字長:計算機(jī)能夠直接處理的二進(jìn)制數(shù)據(jù)的位數(shù)⊙指令:instruction,計算機(jī)執(zhí)行某類操作的信息的集合,是CPU工作的主要依據(jù)?!阎噶罴篿nstructionset,處理器能執(zhí)行的全體指令的集合√決定了計算機(jī)的硬件功能√計算機(jī)中軟硬件的分界面26/41=寄存器的寬度。(CISC、RISC)⊙指令/數(shù)據(jù)字:指令/數(shù)據(jù)的一組二進(jìn)制代碼。⊙指令/數(shù)據(jù)3.2.1指令集類型1、CISC2、RISC(ComplexInstructionSetComputing)精簡指令集計算復(fù)雜指令集計算早期計算機(jī)部件昂貴、速度慢,為了擴(kuò)展硬件功能,不得不將更多更復(fù)雜指令加入到指令系統(tǒng),以提高計算機(jī)的處理能力→復(fù)雜指令集(ReducedInstructionSetComputing)隨著半導(dǎo)體技術(shù)進(jìn)步,80年代開始逐漸直接通過硬件方式,而不是擴(kuò)充指令來實現(xiàn)復(fù)雜功能,指令規(guī)模逐漸縮小、指令進(jìn)一步簡化→精簡指令集27/413.2.1指令集類型1、CISC2、RISC(Comple※CISC→RISC的技術(shù)背景①2-8規(guī)律②不利于VLSI工藝③主存技術(shù)的發(fā)展CISC中的不同指令使用頻率懸殊:為實現(xiàn)大量的復(fù)雜指令,控制邏輯極不規(guī)整,給VLSI工藝造成很大困難。一般通過保存在控制存儲器中的微程序來實現(xiàn)復(fù)雜指令,70年代后期開始用DRAM做主存,使主存與控制存儲器的速度相當(dāng),因此很多復(fù)雜指令不必再用微程序來實現(xiàn),可用簡單指令構(gòu)成的子程序?qū)崿F(xiàn)等效功能。簡單指令(約占20%的)約占80%的使用頻率,復(fù)雜指令(約占80%)只占大約20%的使用頻率。28/41※CISC→RISC的技術(shù)背景①2-8規(guī)律②不利于VLSI工→CISC的特點:①指令數(shù)量多;②指令長度可以不固定,指令格式和尋址方式多樣;③很多指令會涉及存儲器讀寫操作,指令周期長;④一般在通用處理器中使用;→RISC的特點:①指令數(shù)量少;②指令長度固定,指令格式和尋址方式種類也少;③一般只有少量指令(如取數(shù)/存數(shù))才會讀寫存儲器,其余指令只涉及CPU內(nèi)部寄存器,指令周期短;④一般在高端服務(wù)器中使用;29/41→CISC的特點:①指令數(shù)量多;→RISC的特點:①指令數(shù)量3.2.2指令格式指令的基本格式操作碼θ地址碼A

/操作數(shù)D1個1個或幾個(廣義)30/413.2.2指令格式指令的基本格式操作碼θ地址碼A1.指令字長定長指令格式變長指令格式規(guī)整、便于控制(1)定長操作碼各指令θ的位置、位數(shù)固定相同。(2)擴(kuò)展操作碼各指令θ的位置、位數(shù)不固定,根據(jù)需要變化合理利用存儲空間、提高取指令的效率,如超長指令集2.操作碼結(jié)構(gòu)(設(shè)置擴(kuò)展標(biāo)志)。31/411.指令字長定長指令格式規(guī)整、便于控制(1)定長操作碼合理(3)復(fù)合型操作碼15

~

13

12

11

10

9

5

~

0

15基本操作進(jìn)位移位回送判跳操作數(shù)[例]某機(jī)的算術(shù)邏輯運算指令格式基本特征:操作碼分為幾段,每段表示一種二級操作。復(fù)合型操作碼32/41(3)復(fù)合型操作碼15~1312使用隱式地址,可以減少指令中的地址數(shù)量,從而簡化地址結(jié)構(gòu)。3.地址結(jié)構(gòu)指令中提供的地址地址偏移量/立即數(shù)寄存器編號(1)指令中提供地址的方式→指令中明確指明地址碼(直接/間接給出)√顯式地址方式√隱式地址方式→地址碼隱含約定,不在指令中出現(xiàn)。33/41使用隱式地址,可以減少指令中的地址數(shù)量,從而簡化地址結(jié)構(gòu)。3(2)常見的地址結(jié)構(gòu)類型操作數(shù)地址四地址結(jié)構(gòu)指令結(jié)果地址下條指令地址功能:一般用PC寄存器指示下條指令的地址。θA1A2A3A4(A1)θ(A2)→A3A4→PC四地址結(jié)構(gòu)指令在RISC中很少會使用。34/41(2)常見的地址結(jié)構(gòu)類型操作數(shù)地址四地址結(jié)構(gòu)指令結(jié)果地址三地址結(jié)構(gòu)指令操作數(shù)地址結(jié)果地址功能:θA1A2A3(A1)θ(A2)→A3(PC)+→PC自動修改PC的內(nèi)容,使PC指向下一條指令如:ADD

rd,rs,rt35/41三地址結(jié)構(gòu)指令操作數(shù)地址結(jié)果地址功能:θA1A2A3(A1)二地址結(jié)構(gòu)指令目的地址源地址θA1A2功能:(A1)θ(A2)→A1(PC)+→PC自動修改PC的內(nèi)容,使PC指向下一條指令如:ADDR1,R036/41二地址結(jié)構(gòu)指令目的地址源地址θA1A2功能:(A1)θ(A2雙操作數(shù):一地址結(jié)構(gòu)指令隱含約定單操作數(shù):源/目的地址θA1A1U[PC]H→PCθ(A1)

→A1(PC)+

→PC自動修改PC的內(nèi)容,使PC指向下一條指令如:Jaddr如:INCR037/41雙操作數(shù):一地址結(jié)構(gòu)指令隱含約定單操作數(shù):源/目的地址θA零地址結(jié)構(gòu)指令θ

功能:①用于處理機(jī)的特殊控制(如HLT,NOP)。②針對隱含約定的寄存器,如返回指令:RST隱含操作:(SP)→PC;SP+

→SP;把堆棧棧頂單元保存的返回地址打入PC。38/41零地址結(jié)構(gòu)指令θ功能:①用于處理機(jī)的特殊控制(如H4.指令可能會涉及到的操作數(shù)類型①地址碼數(shù)據(jù)寄存器編號或者存儲器地址,無符號整數(shù)。②數(shù)值型數(shù)據(jù)定點數(shù)、浮點數(shù)等,一般用補碼表示。③字符型數(shù)據(jù)通常表示為ASCII碼/漢字內(nèi)碼格式。④邏輯型數(shù)據(jù)常規(guī)二進(jìn)制代碼,不具有數(shù)值含義。39/414.指令可能會涉及到的操作數(shù)類型①地址碼數(shù)據(jù)②數(shù)值型數(shù)指令字長為:32位寄存器數(shù)量:32個RISC5.MIPS32架構(gòu)的指令格式指令類型指令長度(32位定長)31

~

2625~215

~

020~1625~1110

~

6R型op(6)rs(5)funcrt(5)rd(5)shamtI型op(6)rs(5)rt(5)address/imm(16)J型op(6)address(26)R型I型J型40/41指令字長為:32位寄存器數(shù)量:32個RISC5.MIPS33.2.3指令中的尋址方式※指形成操作數(shù)地址或?qū)ふ也僮鲾?shù)的方式;①立即尋址(Immediateaddressing)指令中直接包含了操作數(shù)。1、常見尋址方式定長格式:變長格式:基本操作

立即數(shù)I數(shù)在指令中,其長度固定、位數(shù)少。數(shù)在基本指令之后,其長度可與指令等長用來提供偏移量、常數(shù)、設(shè)置初值等。操作碼θ…立即數(shù)I※1條指令,可能會涉及多種尋址方式;41/413.2.3指令中的尋址方式※指形成操作數(shù)地址或?qū)ふ也僮鲾?shù)的oprsrt立即數(shù)Iaddi$rt,$rs,5指令功能:

$rt←$rs+imm(符號擴(kuò)展)立即數(shù)imm取指令后,直接截取指令中的低16位代碼,就能立即得到真值為5的操作數(shù)。因此,得到“5”的方式,就是立即尋址。42/41oprsrt立即數(shù)Iaddi$rt,$rs,5指令功能操作碼θ

有效地址A②直接尋址指令中直接給出操作數(shù)的地址碼。存儲單元地址寄存器編號(數(shù)在M中)(數(shù)在R中)主存直接尋址(絕對尋址)定長格式A的位數(shù)有限,限制訪存范圍變長格式基本操作

AL

AHA的位數(shù)可等于指令字長,覆蓋整個存儲空間操作數(shù):S=(D)43/41操作碼θ有效地址A②直接尋址指令中直接給出操作數(shù)的地址碼寄存器直接尋址(RegisterAddressing)針對操作數(shù)在寄存器中的情況oprsrtrdfunc地址碼=rs數(shù)據(jù)字寄存器組(堆)44/41寄存器直接尋址(RegisterAddressing)針存儲單元地址寄存器編號(數(shù)在M中)(數(shù)在M中)③間接尋址指令給出操作數(shù)的間接地址。主存間接尋址操作碼θ間接地址A

A=0030

→0060→

操作數(shù):S=((A))存儲器間址單元一般只在CISC中使用,RISC中一般不用;0060…S…→

1次間址45/41存儲單元地址(數(shù)在M中)③間接尋址指令給出操作數(shù)的間接地址。操作碼θ寄存器號R寄存器間接尋址R的地址位數(shù)少,R可提供全字長地址碼;修改R內(nèi)容比修改M更快。S=((R))指針不變(由指令指定),指針內(nèi)容可變,使同一指令可指向不同存儲單元,以實現(xiàn)程序的循環(huán)、共享,并提供轉(zhuǎn)移地址。堆棧間接尋址操作碼θ堆棧指針SPS=((SP))

MR=0200400040→

S......SP寄存器

S堆棧0070棧頂46/41操作碼θ寄存器號R寄存器間接尋址R的地址位數(shù)少,R可[例]

POP

(SP)$SP$SP執(zhí)行前102046nn+2n+1棧頂棧底執(zhí)行后2046棧頂棧底nn+1n+1LW

$t0,0($SP)

SP既可出現(xiàn)在指令中,也可由操作碼隱含約定堆棧有三種方式(向下,向上,棧頂固定)47/41[例]POP(SP)$SP$SP執(zhí)行前102046nn+(4)變址、基址尋址及其變化指令給出一個寄存器號和一個地址量,寄存器內(nèi)容與地址量之和為有效地址。格式變址尋址操作碼θ

RX

D

變址寄存器號S=((RX)+D)形式地址修改量基準(zhǔn)地址48/41(4)變址、基址尋址及其變化指令給出一個寄存器號和一個地址量格式基址尋址(baseaddressing)基址寄存器號指令給出一個寄存器號和一個地址量,寄存器內(nèi)容與地址量之和為有效地址(二維數(shù)組的讀寫)。操作碼θRbD位移量S=((Rb)+D)基準(zhǔn)地址相對于基址的位移49/41格式基址尋址(baseaddressing)基址寄存器號※變址與基址的區(qū)別:變址尋址:指令提供基準(zhǔn)量,寄存器提供偏移量;基址尋址:指令提供偏移量,寄存器提供基準(zhǔn)量;有效地址=寄存器內(nèi)容(R)+指令中的立即數(shù)D50/41※變址與基址的區(qū)別:變址尋址:基址尋址:有效地址=50/41S=((RX)+(Rb)+D)基址+變址變址寄存器號指令給出兩個寄存器號和一個地址量,寄存器內(nèi)容與地址量之和為有效地址(處理三維數(shù)組)。位移量操作碼θRXRbD基址寄存器號便于處理三維數(shù)組。51/41S=((RX)+(Rb)+D)基址+變址變址寄存器號指隱含指定(5)PC相對尋址(PC-relativeaddressing)指令給出偏移量,PC當(dāng)前值與偏移量相加得到有效地址。位移量操作碼θPC

DS=((PC)+D)是一種特殊的基址尋址方式有效地址相對于PC浮動,編程方便。52/41隱含指定(5)PC相對尋址(PC-relativeaddr格式(6)頁面尋址(偽直接尋址)指令給出位移量,PC的高位部分與位移量拼接,形成有效地址。位移量操作碼θPC

D隱含指定S=((PC)H

,D)[例]M為64KB,劃分為256頁,每頁256B,按字節(jié)編址。頁號頁內(nèi)地址用于頁式存儲系統(tǒng)。尋址速度快,適于組織程序模塊,有效利用存儲空間。PC0165H017CH7C.........S53/41格式(6)頁面尋址(偽直接尋址)指令給出位移量,PC的高位部2.指令中的尋址方式約定(1)操作碼可隱含說明不同尋址方式[例]某機(jī)指令操作碼的最高兩位00:RR型指令,寄存器-寄存器尋址01:RX型指令,寄存器-變址尋址10:SI型指令,基址-立即尋址11:SS型指令,基址-基址尋址MIPS指令,一般都是采用這種方式。54/412.指令中的尋址方式約定(1)操作碼可隱含說明不同尋址方式(2)指令中可設(shè)置尋址方式字段[例]某機(jī)指令的每個地址字段中各設(shè)置一個3位的尋址方式說明字段。操作碼θ尋址方式R尋址方式R源地址字段目的地址字段3位3位55/41(2)指令中可設(shè)置尋址方式字段[例]某機(jī)指令的每個地址字段中(1)按指令格式PDP-11:單、雙操作數(shù)指令等;(2)按操作數(shù)尋址方式IBM370:

RR型(寄存器-寄存器)RX型(寄存器-變址寄存器)…(3)按指令功能傳送、訪存、I/O、算數(shù)邏輯運算、程序控制、處理機(jī)控制等指令。3.2.4指令的功能和類型56/41(1)按指令格式(2)按操作數(shù)尋址方式(3)按指令功能3.2數(shù)據(jù)傳送類指令源地址對應(yīng)的存儲單元數(shù)據(jù)主要用來實現(xiàn):目的地址對應(yīng)的存儲單元主要包括:取數(shù)指令、存數(shù)指令、數(shù)據(jù)傳送(單字、成組)、數(shù)據(jù)交換和堆棧操作等。寄存器之間、存儲器單元之間以及寄存器-存儲器單元的數(shù)據(jù)傳送。57/41數(shù)據(jù)傳送類指令源地址對應(yīng)的存儲單元數(shù)據(jù)主要用來實現(xiàn):目的地設(shè)計傳送指令時需要考慮:(1)規(guī)定傳送范圍(2)指明傳送單位(3)設(shè)置尋址方式MIPS32中只有l(wèi)w和sw這兩個指令可以訪問存儲器58/41設(shè)計傳送指令時需要考慮:(1)規(guī)定傳送范圍(2)指明傳送單位輸入/輸出(I/O)指令信息主機(jī)

外部設(shè)備設(shè)計時需考慮:(1)I/O指令對設(shè)備的適應(yīng)性如何用通用I/O指令實現(xiàn)對各種具體設(shè)備的控制?I/O指令中留有擴(kuò)展余地指令中某些字段事先不定義,需要時再約定其含義。把設(shè)備抽象化、透明化處理(接口中設(shè)置控制/狀態(tài)/數(shù)據(jù)寄存器)用于外設(shè)種類、數(shù)量不多的場合。59/41輸入/輸出(I/O)指令信息主機(jī)外部設(shè)備設(shè)計(2)主機(jī)對外設(shè)的尋址方式I/O端口尋找I/O接口中的寄存器的方式。該類寄存器的編號,也稱為I/O端口的地址(簡稱端口地址)如何為I/O端口分配地址?單獨編址統(tǒng)一編址60/41(2)主機(jī)對外設(shè)的尋址方式I/O端口尋找I/O接口中的寄存器思路2:用傳送指令替代I/O指令(隱式I/O指令)思路1:設(shè)計專用的I/O指令(3)I/O指令的設(shè)計思路(顯式I/O指令)思路3:通過IOP進(jìn)行I/O操作控制CPU控制IOP(如啟動、停止等)需設(shè)計兩級I/O指令I(lǐng)OP控制具體I/O操作(如保存等)針對端口自行單獨編址,用I/O指令訪問I/O端口。指令中說明I/O類型,并給出端口地址。針對端口和主存統(tǒng)一編址,用訪存指令訪問I/O端口,故不必再設(shè)計專用的I/O指令。61/41思路2:用傳送指令替代I/O指令(隱式I/O指令)思路1:設(shè)設(shè)計時需考慮操作數(shù)類型、符號、進(jìn)制等,運算結(jié)束后設(shè)置CPU相應(yīng)狀態(tài)標(biāo)志寄存器。(1)算術(shù)運算指令算術(shù)\邏輯運算指令(2)邏輯運算指令常用來對碼位的設(shè)置和條件判斷等操作。如基本的加法(add,addi),減法(sub)等指令如與(and),或(or),異或(xor)等指令62/41設(shè)計時需考慮操作數(shù)類型、符號、進(jìn)制等,運算結(jié)束后設(shè)置CPU相主要作用:控制指令的執(zhí)行流程。(1)轉(zhuǎn)移指令程序控制類指令(2)轉(zhuǎn)子指令與返回指令轉(zhuǎn)子:即調(diào)用,操作碼+子程序入口無條件轉(zhuǎn)移條件轉(zhuǎn)移循環(huán):操作碼+轉(zhuǎn)移地址:操作碼+轉(zhuǎn)移地址+轉(zhuǎn)移條件:轉(zhuǎn)移條件為循環(huán)計數(shù)值返回:操作碼+返回地址(堆棧的頂單元中)同一條返回指令應(yīng)能提供多個不同的返回地址(條件返回),一般用堆棧存放返回地址。63/41主要作用:控制指令的執(zhí)行流程。(1)轉(zhuǎn)移指令程序控制類指令((3)軟中斷指令程序軟中斷指令n表示不同功能號…調(diào)試程序系統(tǒng)調(diào)用………早期主要用于程序的調(diào)試?,F(xiàn)在常常用于系統(tǒng)功能調(diào)用。常以INTn的指令形式出現(xiàn)在程序中。64/41(3)軟中斷指令程序軟中斷指令n表示不同功能號…調(diào)試程序……如CPU狀態(tài)字標(biāo)志位的清楚、修改,空操作指令NOP、暫停HLT、等待WAIT、總線鎖定LOCK等。提供給操作系統(tǒng)專用,如訪問系統(tǒng)寄存器、檢查保護(hù)屬性、存儲管理等??刂铺幚頇C(jī)的專用指令面向操作系統(tǒng)的指令65/41如CPU狀態(tài)字標(biāo)志位的清楚、修改,空操作指令NOP、暫停HL3.3加法器與運算部件需解決的關(guān)鍵問題:如何以加法器為基礎(chǔ),實現(xiàn)各種類型的算術(shù)邏輯運算處理。解決思路:

復(fù)雜運算四則運算加法運算解決方法:在加法器的基礎(chǔ)上,增加移位傳送功能,并且輸入運算控制條件。66/173.3加法器與運算部件需解決的關(guān)鍵問題:四則運算加法運算加法單元iCi

Ai

Bi(本位操作數(shù))(本位進(jìn)位)∑i(本位和)3.3.1加法器及其進(jìn)位1、加法單元1個輸入為1時:

∑i為1,Ci為0;2個輸入為1時:

∑i為0,Ci為1;3個輸入為1時:

∑i為1,Ci為1。整理真值表∑i=(Ai+Bi+Ci-1)mod

2Ci=(Ai+Bi+Ci-1)int

2(低位進(jìn)位)Ci-167/17加法單元iCiAiBi(本位操作AiBiCi-1∑iCi00000100101100111111+AiBiCi-1∑i=AiBiCi-1+AiBiCi-1+AiBiCi-1+(AiBi+AiBi)Ci-1=(AiBi+AiBi)Ci-1+(Ai⊕Bi)Ci-1=(Ai⊕Bi)Ci-1=(Ai⊕Bi)⊕Ci-1+AiBiCi-1Ci=AiBiCi-1+AiBiCi-1+AiBiCi-1+AiBi=(AiBi+AiBi)Ci-1=(Ai⊕Bi)

Ci-1+AiBi01000110101168/17AiBiCi-1∑iCi000001001011001111構(gòu)造全加器∑i

=(

Ai⊕Bi

)⊕Ci-1Ci=AiBi+(Ai⊕Bi)Ci-1Ci∑iAiBiCi-1+××69/17構(gòu)造全加器∑i=(Ai⊕Bi)⊕Ci-1Ci∑i所以

Ci=Gi+PiCi-1令A(yù)iBi

=

GiAi⊕Bi=

Pi進(jìn)位的基本邏輯:本位進(jìn)位、絕對進(jìn)位條件進(jìn)位、傳遞進(jìn)位Ci=AiBi+(Ai⊕Bi)Ci-12、進(jìn)位鏈邏輯70/17所以Ci=Gi+PiCi-1令A(yù)3、串行加法器(1)特點:低位向高位依次傳遞進(jìn)位信號。[例]先看一個8位數(shù)串行相加的例子(2)影響運算速度的主要因素

進(jìn)位信號的傳遞∑8

∑7∑2∑1A8B8A7B7A2B2A1B1

11110000C0111111000071/173、串行加法器(2)影響運算速度的主要因素∑8∑7∑2∑C1(3)進(jìn)位邏輯

特點:進(jìn)位信號逐位形成。設(shè)n位加法器

1)邏輯式C1=G1+P1C0C2=G2+P2C1Cn=Gn+PnCn-12)結(jié)構(gòu)舉例Gi×AiBiAiBiPiG1P1C0G2P2C272/17C1(3)進(jìn)位邏輯C1=G1+P1C02)結(jié)構(gòu)舉例G

[特點]各位進(jìn)位信號同時形成C1=G1+P1C0C2=G2+P2C1

=G2+P2G1+P2P1C0

Cn=Gn+PnCn-1=Gn+PnGn-1+…+PnPn-1…P2P1C0

n+1項4、并行加法器

n位加法器,進(jìn)位邏輯如下:1)邏輯關(guān)系(代換C1)(代換Cn-1)73/17[特點]各位進(jìn)位信號同時形成C1=G1+P1C0n結(jié)構(gòu)舉例AiBiGiG2P2G1P1C0C2C1⊕PiAiBi74/17結(jié)構(gòu)舉例AiBiGiG2P25、分組進(jìn)位:組內(nèi)并行、組間并行設(shè)16位加法器,4位一組,分為4組:4位4位4位4位第4組第3組第2組第1組C16~C13C12~C9C8~C5C4~C1C0C16

C12

C8

C4分級(2級)同時進(jìn)位:組內(nèi)并行、組間也并行。速度/結(jié)構(gòu):介于全串行和全并行之間。75/175、分組進(jìn)位:組內(nèi)并行、組間并行4位4位4位4位第4組operation4C0n運算標(biāo)志位32/64運算結(jié)果選擇器A選擇器BALU…數(shù)據(jù)源…數(shù)據(jù)源3.3.2算術(shù)邏輯運算單元ALU選擇控制選擇控制1、ALU的外部特性76/17operation4C0n運算標(biāo)志位32/64運算結(jié)果選擇器2、ALU的標(biāo)志位常常為ALU設(shè)計5個有用的輸出標(biāo)志位,分別如下::(1)0標(biāo)志-ZF:結(jié)果為0則ZF=1;(2)進(jìn)/借位標(biāo)志-CF:有進(jìn)/借位則CF=1(3)溢出標(biāo)志-OF:有溢出則OF=1;(4)符號標(biāo)志-SF:結(jié)果為負(fù)數(shù)則SF=1;(5)奇偶標(biāo)志-PF:結(jié)果中有偶數(shù)個1則PF=1;77/172、ALU的標(biāo)志位常常為ALU設(shè)計5個有用的輸出標(biāo)志位,(1標(biāo)志位的應(yīng)用:判斷任意兩數(shù)的大小關(guān)系(1)無符號數(shù),ALU執(zhí)行A-B:ZF=1→A=BZF=0且CF=0→A>BCF=1→A<B(2)符號數(shù),ALU執(zhí)行A-B,檢查:OF=0且SF=0且ZF=0,或OF=1且SF=1→A>BZF=1→A=BOF=0且SF=1,或OF=1且SF=0→A<B78/17標(biāo)志位的應(yīng)用:判斷任意兩數(shù)的大小關(guān)系(1)無符號數(shù),ALU執(zhí)3、ALU的EDA設(shè)計模式早期的ALU,采用74181、74182芯片來搭建?,F(xiàn)在采用EDA設(shè)計模式:需求規(guī)格制定→IC設(shè)計(硬件描述語言)→模擬仿真→芯片代工→封裝測試→成品ALU的IC設(shè)計代碼請參見教材79/173、ALU的EDA設(shè)計模式早期的ALU,采用74181、741、帶多路選擇器的運算器移位器ALU多路選擇器多路選擇器R0RnR0...RnR0...Rn內(nèi)部總線(單向)特點:R各自獨立;可同時向ALU提供兩個操作數(shù);采用單向內(nèi)總線。3.3.2算術(shù)邏輯運算單元80/171、帶多路選擇器的運算器移位器ALU多路選擇器多路選擇器R02、帶輸入鎖存器的運算器特點:單口RAM不能同時向ALU提供兩個操作數(shù);用鎖存器暫存操作數(shù);采用雙向內(nèi)總線。移位器ALU鎖存器鎖存器內(nèi)部總線(雙向)R0Rn通用寄存器組(小型存儲器)81/172、帶輸入鎖存器的運算器特點:移位器ALU鎖存器鎖存器內(nèi)部總3、位片式運算器特點:用雙口RAM(兩地址端、兩數(shù)據(jù)端)作通用寄存器組,可同時提供數(shù)據(jù);用多路選擇器作輸入邏輯,不需暫存操作數(shù);ALU增加乘、除功能,用乘商寄存器存放乘數(shù)、乘積或商。[例]4位片運算器粗框移位器ALU多路選擇器多路選擇器DO

RAMDi

B地址

A地址

CnDBDAG、P控制信息Cn+4乘商寄存器44444444444482/173、位片式運算器特點:[例]4位片運算器粗框移位器ALU多83/223.4MIPS32指令架構(gòu)的CPU設(shè)計實例83/223.4MIPS32指令架構(gòu)的CPU設(shè)計實例84/22MIPS(Micro-processorwithoutinterlockedpipedstages),一種無內(nèi)部互鎖流水級微處理器。--1980s,斯坦福Hennessy;--RISC型R系列工業(yè)處理器;--MIPS-I~V,MIPS-16/32/64;84/22MIPS(Micro-processorwith85/223.4.1MIPS32的指令總體情況:(1)存儲器按字節(jié)編址(2)可用寄存器32個,寬度32位(3)RISC架構(gòu)結(jié)合高級語言編程,考慮處理器應(yīng)該有哪些類型的指令?運算?訪存?轉(zhuǎn)移?…85/223.4.1MIPS32的指令總體情況:(1)存儲86/22寄存器名地址編號用途說明$s00保存固定的常數(shù)0$at1匯編器專用$v0~$v12~3表達(dá)式計算或函數(shù)調(diào)用的返回結(jié)果$a0~$a34~7函數(shù)調(diào)用參數(shù)1~3$t0~$t78~15臨時變量,函數(shù)調(diào)用時不需要保存和恢復(fù)$s0~$s716~23函數(shù)調(diào)用時需要保存和恢復(fù)的寄存器變量$t8~$t924~25臨時變量,函數(shù)調(diào)用時不需要保存和恢復(fù)$k0~$k126~27操作系統(tǒng)專用$gp28全局指針變量(GlobalPointer)$sp29堆棧指針變量(StackPointer)$fp30幀指針變量(FramePointer)$ra31返回地址(ReturnAddress)※可提供的寄存器列表√√√√√√√√√√√√86/22寄存器名地址編號用途說明$s00保存固定的常數(shù)087/221.指令格式與指令集指令字長固定為32位,寄存器型尋址,指令中給出寄存器號。指令類型指令長度(32位定長)31~2625~215~020~1615~1110~6R型op(6)rs(5)funcrt(5)rd(5)shamtI型op(6)rs(5)rt(5)imm(16)J型op(6)address(26)R型I型J型87/221.指令格式與指令集指令字長固定為32位,寄存器型88/22R型指令(Register)操作數(shù)和保存結(jié)果均通過寄存器進(jìn)行;op:操作碼,所有R型指令中都全為0;rs:寄存器編號,對應(yīng)第1個源操作數(shù);rt:寄存器編號,對應(yīng)第2個源操作數(shù);rd:寄存器編號,據(jù)此保存結(jié)果;指令長度(32位定長)31~2625~215~020~1615~1110~6op(6)rs(5)funcrt(5)rd(5)sasa:常數(shù),在移位指令中使用;func:功能碼,指定指令的具體功能;典型指令集見表3-2288/22R型指令(Register)操作數(shù)和保存結(jié)果均通過89/22I型指令(Immediate)op:標(biāo)識指令的操作功能;rs:第1個源操作數(shù),是寄存器操作數(shù);rt:目的寄存器編號,用來保存運算結(jié)果;imm:第2個源操作數(shù),立即數(shù);指令長度(32位定長)31~2625~215~020~1615~1110~6op(6)rs(5)rt(5)imm(16)操作數(shù)中涉及立即數(shù),結(jié)果保存到寄存器;典型指令集見表3-2389/22I型指令(Immediate)op:標(biāo)識指令的操作90/22J型指令(Jump)op:確定指令的功能;address:轉(zhuǎn)移目標(biāo)地址的偏移量字段;指令長度(32位定長)31~2625~215~020~1615~1110~6op(6)address(26)實現(xiàn)無條件轉(zhuǎn)移;典型指令集見表3-2490/22J型指令(Jump)op:確定指令的功能;addr91/222.尋址方式在MIPS32指令集中,不會單設(shè)尋址方式說明字段,通過op字段和func字段(針對R型指令)隱含說明。R型指令:由op和func字段共同隱含說明當(dāng)前的尋址方式。I型和J型指令:由op字段隱含說明當(dāng)前指令使用的尋址方式。91/222.尋址方式在MIPS32指令集中,不會單設(shè)尋址方92/22oprsrt立即數(shù)Iaddis1,

s2,

10#$s2+10→$s1立即數(shù)imm

立即數(shù)尋址(Immediateaddressing)操作數(shù)在指令中的立即數(shù)字段。注意:匯編格式和編碼格式段的對應(yīng)關(guān)系。92/22oprsrt立即數(shù)Iaddis1,s2,93/22

寄存器直接尋址(RegisterAddressing)操作數(shù)直接在寄存器中。oprsrtrdfunc寄存器rs數(shù)據(jù)字93/22寄存器直接尋址(RegisterAddress94/22oprsrtimm基準(zhǔn)地址碼+Memory16位的帶符號常數(shù)帶符號擴(kuò)展成32位數(shù)據(jù)字符號擴(kuò)展(補碼)正數(shù),在高位補上16個0;負(fù)數(shù),在高位補上16個1;012AH→0000012AH812AH→1111812AH操作數(shù)由寄存器和立即數(shù)字段聯(lián)合產(chǎn)生

基址尋址(BasicAddressing)94/22oprsrtimm基準(zhǔn)地址碼+Memory16位的95/22oprsrtimm當(dāng)前地址碼+Memory<<216位的帶符號常數(shù)帶符號擴(kuò)展成32位并左移2位數(shù)據(jù)字操作數(shù)由寄存器和立即數(shù)字段聯(lián)合產(chǎn)生PC相對尋址(PC-relativeAddressing)PC寄存器95/22oprsrtimm當(dāng)前地址碼+Memory<<296/22opaddress↑26位的地址碼4位28位4位Memory4位PC當(dāng)前值<<2左移2位00address指令字偽直接尋址(Pseudo-directAddressing)也叫頁面尋址,由PC高4位與指令中的地址段組合產(chǎn)生有效地址。96/22opaddress↑26位的地址碼4位28位4位M97/223.指令代碼與功能※R型指令(只列出了9條)指令[31:26][25:21][20:16][15:11][10:6][5:0]指令功能add000000rsrtrd00000100000寄存器加sub000000rsrtrd00000100010寄存器減and000000rsrtrd00000100100寄存器與or000000rsrtrd00000100101寄存器或xor000000rsrtrd00000100110寄存器異或sll00000000000rtrdsa000000邏輯左移srl00000000000rtrdsa000010邏輯右移sra00000000000rtrdsa000011算術(shù)右移jr000000rs000000000000000001000寄存器跳轉(zhuǎn)97/223.指令代碼與功能※R型指令(只列出了9條)指令98/22add/sub/and/or/xorrd,rs,rt;由操作碼op配合func字段,確定具體的操作①3寄存器R型指令R型指令,存在3種不同類型:指令功能:$rd←$rsop$rt;

指令[31:26][25:21][20:16][15:11][10:6][5:0]指令功能add000000rsrtrd00000100000寄存器加sub000000rsrtrd00000100010寄存器減and000000rsrtrd00000100100寄存器與or000000rsrtrd00000100101寄存器或xor000000rsrtrd00000100110寄存器異或98/22add/sub/and/or/xorrd,r99/22sll/srl/srard,rt,sa;jrrs;②2寄存器R型指令指令功能:$rd←$rtshiftsa;

③1寄存器R型指令指令功能:PC←$rs;指令[31:26][25:21][20:16][15:11][10:6][5:0]指令功能sll00000000000rtrdsa000000邏輯左移srl00000000000rtrdsa000010邏輯右移sra00000000000rtrdsa000011算術(shù)右移指令[31:26][25:21][20:16][15:11][10:6][5:0]指令功能jr000000rs000000000000000001000寄存器跳轉(zhuǎn)99/22sll/srl/srard,rt,sa;j100/22※I型指令(只列出9條)指令[31:26][25:21][20:16][15:0]指令功能addi001000rsrtimm寄存器和立即數(shù)“加”andi001100rsrtimm寄存器和立即數(shù)“與”ori001101rsrtimm寄存器和立即數(shù)“或”xori001110rsrtimm寄存器和立即數(shù)“異或”lw100011rsrtimm從存儲器中讀取數(shù)據(jù)sw101011rsrtimm把數(shù)據(jù)保存到存儲器beq000100rsrtimm寄存器相等則轉(zhuǎn)移bne000101rsrtimm寄存器不等則轉(zhuǎn)移lui00111100000rtimm設(shè)置寄存器的高16位100/22※I型指令(只列出9條)指令[31:26][25101/22addirt,rs,imm;#$rt←$rs+E(imm)andi/ori/xorirt,rs,imm;#$rt←$rsopE(imm)I型指令,存在4種不同類型:指令[31:26][25:21][20:16][15:0]指令功能addi001000rsrtimm寄存器和立即數(shù)“加”andi001100rsrtimm寄存器和立即數(shù)“與”ori001101rsrtimm寄存器和立即數(shù)“或”xori001110rsrtimm寄存器和立即數(shù)“異或”①面向運算的I型指令這里的imm為數(shù)值型數(shù)據(jù),故“帶符號擴(kuò)展”。這里的imm為邏輯型數(shù)據(jù),故“無符號擴(kuò)展”。

101/22addirt,rs,imm;#$102/22lwrt,imm(rs)#$rt←mem[$rs+E(imm)]

swrt,imm(rs)#mem[$rs+E(imm)]←$rt

②面向訪存的I型指令指令[31:26][25:21][20:16][15:0]指令功能lw100011rsrtimm從存儲器中讀取數(shù)據(jù)sw101011rsrtimm把數(shù)據(jù)保存到存儲器MIPS32中唯一兩條訪問存儲器的指令(RISC)③面向數(shù)位設(shè)置的I型指令指令[31:26][25:21][20:16][15:0]指令功能lui00111100000rtimm設(shè)置寄存器的高16位luirt,imm

#$rt←imm<<16(空位補0)符號擴(kuò)展102/22lwrt,imm(rs)#$rt103/22beqrs,rt,immbners,rt,imm指令[31:26][25:21][20:16][15:0]指令功能beq000100rsrtimm寄存器相等則轉(zhuǎn)移bne000101rsrtimm寄存器不等則轉(zhuǎn)移④面向條件轉(zhuǎn)移(分支)的I型指令#if($rs==$rt)PC←PC+E(imm)<<2是標(biāo)準(zhǔn)的PC相對尋址方式其中imm要先“帶符號擴(kuò)展”成32位,再左移2位。#if($rs!=$rt)PC←PC+E(imm)<<2符號擴(kuò)展103/22beqrs,rt,immbners,104/22jaddress;jaladdress;※J型指令(列出2條)指令[31:26][25:0]指令功能j000010address無條件跳轉(zhuǎn)jal001100address調(diào)用與聯(lián)接指令功能:$PC←($PC+4)H4

∪(address<<2)指令功能:$ra←$PC+4(保存返回地址)$PC←($PC+4)H4∪

(address<<2)這也是標(biāo)準(zhǔn)的頁面尋址方式(偽直接尋址)。104/22jaddress;jaladdres105/173.4.2MIPS32處理器(基本的組成部件)105/173.4.2MIPS32處理器(基本的組成部件)106/17※CPU設(shè)計的主要任務(wù)①擬定指令集√②數(shù)據(jù)通路設(shè)計③控制器設(shè)計106/17※CPU設(shè)計的主要任務(wù)①擬定指令集√107/17※擬定指令集※CPU設(shè)計的主要任務(wù)→

處理器的指令架構(gòu)(MIPS-32)→CPU的微架構(gòu)(數(shù)據(jù)通路、硬件架構(gòu))如Intel酷睿系列,X86-64,AMD的AMD-64如Intel酷睿5(haswell)、酷睿6(broadwell)AMD的K7、K8架構(gòu)等※數(shù)據(jù)通路設(shè)計※控制器設(shè)計107/18107/17※擬定指令集※CPU設(shè)計的主要任務(wù)→處理器的指108/17MIPS32的指令格式指令字長固定為32位,寄存器型尋址,指令中給出寄存器號(顯、隱)或者偏移量。指令類型指令長度(32位定長)31~2625~215~020~1625~1110~6R型op(6)rs(5)functrt(5)rd(5)saI型op(6)rs(5)rt(5)imm(16)J型op(6)address(26)108/17MIPS32的指令格式指令字長固定為32位,寄存109/17基本部件的選型※存儲相關(guān)的部件※數(shù)據(jù)預(yù)處理部件※運算部件※數(shù)據(jù)通路選擇部件※控制單元(控制器)109/17基本部件的選型※存儲相關(guān)的部件※數(shù)據(jù)預(yù)處理部110/17(1)寄存器堆(組)讀數(shù)據(jù)(根據(jù)指令中的rs或rt)

寫數(shù)據(jù)(根據(jù)指令中的rt或rd)1、存儲相關(guān)的部件32個寄存器,數(shù)據(jù)寬度32位一般通過多端口小存儲器構(gòu)成寄存器堆110/17(1)寄存器堆(組)讀數(shù)據(jù)(根據(jù)指令中的rs或111/17555多端口寄存器堆由Ra給出地址由Rb給出地址Data端輸入的數(shù)據(jù)在Wn=1且時鐘邊沿信號到來時寫入到地址Rw指定的寄存器。讀寫操作均靠時鐘信號的邊沿觸發(fā)。323232RaARbRwDataB32×32寄存器堆WnClockop(6)rs(5)functrt(5)rd(5)saR型指令111/17555多端口寄存器堆由Ra給出地址由Rb給出地址112/17

取出指令(指令存儲器)

讀寫操作數(shù)(數(shù)據(jù)存儲器)(2)存儲器指令存儲器Clock32Inst_addrInst_code32數(shù)據(jù)存儲器clockaddr32Mem_out32Mem_write32Mem_inMem_readPCwriteread模式10寫01讀00鎖定11無效112/17取出指令(指令存儲器)(2)存儲器Clock3113/17RegisterDataIn32DataOut32EnableclockEnable=0時鐘邊沿到來時,從R讀Enable=1時鐘邊沿到來時,向R寫(3)特殊功能寄存器

PC(程序計數(shù)器),

IR(指令寄存器)

FR(標(biāo)志寄存器,PWS,與運算器相關(guān))Enable:寫使能信號113/17RegisterDataIn32DataOu114/17指令存儲器Inst_codeInst_addrclock3232IROPrsrt…→PC和IR在數(shù)據(jù)通路中的作用指令地址碼PC114/17Inst_codeInst_addrclock3115/172、運算部件

算術(shù)邏輯運算單元,ALUPC自增單元(固定加4的運算器)①32位加法器—AdderADDA32B3232SUM加法器的輸入端口A,可以固定輸入常數(shù)4115/172、運算部件算術(shù)邏輯運算單元,ALU①32位加116/17②32位運算器—ALUALUA32B3232SUM功能選擇n位的控制碼operationn與ALU的運算功能數(shù)m有關(guān),n≥log2mZero…Z控制單元116/17②32位運算器—ALUALUA32B3232SU117/17operationALU功能ALU輸出0000ANDA

AND

B0001ORA

OR

B0010ADDA

ADD

B0110SUBA

SUB

B0111小于則置1A<

B?:

11100NORNot

(A

OR

B)………加法器的輸入端口A,可以固定輸入常數(shù)4117/17operationALU功能ALU輸出0000A118/173、數(shù)據(jù)預(yù)處理部件

帶符號擴(kuò)展、無符號擴(kuò)展(0擴(kuò)展)

左移兩位4位-28位拼接①雙模擴(kuò)展器—Extender1632E16→32擴(kuò)展器0000000A000AFFFF800A800A0000002A002A0000F12CF12C①E=1時,數(shù)值型(補碼)符號擴(kuò)展②E=0時,邏輯型擴(kuò)展(零擴(kuò)展):E正數(shù)高位全補0,負(fù)數(shù)高位均補1無正負(fù)性,高位均全補0118/173、數(shù)據(jù)預(yù)處理部件帶符號擴(kuò)展、無符號擴(kuò)展(0擴(kuò)119/17UPC[31:28]32addressXX…XX0032263228左移2位擴(kuò)展器<<2[例]

XXXX…XXXX②左移2位擴(kuò)展器③2路拼接器284例如:PC=A0000000address=FFFFBB4→

PC[31:28]Uaddress

=AFFFFBB4(等效于乘4)左移時空位自動補0119/17PC[31:28]32addressXX…XX0120/174、數(shù)據(jù)通路選擇部件32位的多路選擇器—MUXMUXI132In3232Dm位選通信號10A32B3232C10…其中,2m≥n120/174、數(shù)據(jù)通路選擇部件32位的多路選擇器—MUXM3.4.3單周期MIPS32處理器(目標(biāo)指令與數(shù)據(jù)通路)121/173.4.3單周期MIPS32處理器(目標(biāo)指令與數(shù)據(jù)通路)※CPU設(shè)計的主要任務(wù)①擬定指令集√②數(shù)據(jù)通路設(shè)計③控制器設(shè)計122/17※CPU設(shè)計的主要任務(wù)①擬定指令集√122/17※CPU執(zhí)行1條指令的步驟:①取指令③取操作數(shù)根據(jù)PC值,從存儲器中取出指令,然后PC+4。根據(jù)指令的尋址方式,在控制信號的作用下,讀取操作數(shù)(寄存器\存儲器或立即數(shù)),或生成目標(biāo)地址。②分析指令④執(zhí)行指令將指令中的操作碼送控制器,分析指令的尋址方式和功能,產(chǎn)生相應(yīng)的控制信號。ALU根據(jù)控制器產(chǎn)生的控制信號完成指令規(guī)定的操作,并保存結(jié)果、修改PC。123/17※CPU執(zhí)行1條指令的步驟:①取指令③取操作數(shù)根據(jù)PC值,從①單周期CPU:指令固定在1個時鐘周期內(nèi)完成。√時間效率低,時鐘寬度由單指令最長時間決定?!淘谥噶钪芷趦?nèi),功能部件不能共享,冗余度大;②多周期CPU:指令分散在多個時鐘周期內(nèi)完成?!虝r間效率高,時鐘的寬度由單步最長時間決定?!滩煌臅r鐘周期之間,部件可共享,冗余降低?!鶕?jù)指令執(zhí)行的所需時鐘周期數(shù)124/17①單周期CPU:指令固定在1個時鐘周期內(nèi)完成。√時間效率1R型運算add

rd,rs,rt$rs+$rt→$rdR直接尋址2subrd,rs,rt$rs-$rt→$rd3andrd,rs,rt$rsand$rt→$rd4orrd,rs,rt$rsor$rt→$rd1、目標(biāo)指令集(共計11條)5I型運算addirt,rs,imm$rs+E(imm)→$rt立即數(shù)尋址R直接尋址6andirt,rs,imm$rsandE(imm)→$rt7orirt,rs,imm$rsorE(imm)→$rt8I型訪存lwrt,imm(rs)Mem[$rs+E(imm)]→$rt立即尋址R/M直接尋址R基址尋址9swrt,imm(rs)$rt→Mem[$rs+E(imm)]10I型分支beqrs,rt,imm$rs=$rt:PC+4+E(imm)<<2→PC$rs≠$rt:PC+4→PC立即數(shù)尋址PC相對尋址11J型跳轉(zhuǎn)jaddress(PC+4)[31:28]∪(address<<2

溫馨提示

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

評論

0/150

提交評論