




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)體系結(jié)構(gòu)周學(xué)國(guó)科學(xué)技術(shù)大學(xué)03/06-review-性能性能度量響應(yīng)時(shí)間 (response time)吞吐率 (Throughput)CPU 執(zhí)行時(shí)間 = IC CPI TCPI ( Cycles per Instruction)MIPS = Millions of Instructions Per SecondLatency versus BandwidthLatency指單個(gè)任務(wù)的執(zhí)行時(shí)間,Bandwidth 指單位時(shí)間完成的任務(wù)量(rate)Latency 的提升滯后于帶寬的提升 (在過(guò)去的30年)Amdahls Law 用來(lái)度量加速比(speedu
2、p)性能提升受限于任務(wù)中可加速部分所占的比例應(yīng)用于多處理器系統(tǒng)的基本假設(shè):在給定的問(wèn)題規(guī)模下,研究隨著處理器數(shù)目的增加性能的變化Benchmarks:指一組用于測(cè)試的程序比較計(jì)算機(jī)系統(tǒng)的性能SPEC benchmark : 針對(duì)一組應(yīng)用綜合性能值采用SPEC ratios 的幾何平均2022/7/23203/06-review-能耗/功耗給定負(fù)載情況下能耗越少,能效越高, 特別是對(duì)電池供電的移動(dòng)設(shè)備。功耗已經(jīng)成為系統(tǒng)設(shè)計(jì)的重要約束條件之一A chip might be limited to 120 watts (cooling + power supply)Power Consumed = D
3、ynamic Power + Static Power晶體管開和關(guān)的切換導(dǎo)致的功耗為動(dòng)態(tài)功耗由于晶體管靜態(tài)漏電流導(dǎo)致的功耗稱為靜態(tài)功耗通過(guò)降低頻率可節(jié)省功耗降低電壓可降低功耗和能耗2022/7/233Recap:指令集架構(gòu)軟件子系統(tǒng)與硬件子系統(tǒng)的關(guān)鍵界面一組直接由硬件執(zhí)行的指令,包括程序員可見(jiàn)的機(jī)器狀態(tài)程序員可見(jiàn)的指令集合(操作機(jī)器狀態(tài)的指令)應(yīng)具備的特性成本簡(jiǎn)潔性架構(gòu)和具體實(shí)現(xiàn)分離:可持續(xù)多代,以保持向后(backward) 兼容可擴(kuò)展空間:可用于不同應(yīng)用領(lǐng)域(desktops, servers, embedded applications)易于編程/編譯/鏈接:為高層軟件的設(shè)計(jì)與開發(fā)提供方
4、便的功能性能:方便低層硬件子系統(tǒng)高效實(shí)現(xiàn)IBM 360 是第一個(gè)將ISA與其實(shí)現(xiàn)分離的系列機(jī)給定一個(gè)ISA,可以有不同的實(shí)現(xiàn)方式;例如AMD/Intel CPU 都是X86-64指令集。ARM ISA 也有不同的實(shí)現(xiàn)方式2022/7/234instruction setsoftwarehardware用戶級(jí)ISA和特權(quán)級(jí)ISA重要的系統(tǒng)界面(System Interface)ISA界面(Instruction Set Architecture)ABI界面(Application Binary Interface)ISA:用戶級(jí)ISA+特權(quán)級(jí)ISA用戶級(jí)ISA 適用于操作系統(tǒng)和應(yīng)用程序特權(quán)級(jí)IS
5、A 適用于硬件資源的管理(操作系統(tǒng))2022/7/235ISA的實(shí)現(xiàn)ISA 通常設(shè)計(jì)時(shí)會(huì)考慮特定的微體系結(jié)構(gòu)(實(shí)現(xiàn))方式。Accumulator hardwired, unpipelined (硬布線、非流水)CISC microcoded (微程序)RISC hardwired, pipelined(硬布線、流水線)VLIW fixed-latency in-order parallel pipelines (固定延時(shí)、順序執(zhí)行、多條流水線并行)JVM software interpretation(軟件解釋)ISA 理論上可以用任何微體系結(jié)構(gòu)(實(shí)現(xiàn))方式Intel Ivy Bridge:
6、hardwired pipelined CISC (x86) machine (with some microcode support) (硬布線流水化(部分微程序支持)Spike: Software-interpreted RISC-V machine (模擬器)ARM Jazelle: A hardware JVM processor2022/7/236Recap:ISA 的演進(jìn)2022/7/237Recap:ISA必須說(shuō)明哪些東西?指令格式或編碼方式。即如何編碼?操作數(shù)和操作結(jié)果的存放位置存放位置?多少個(gè)顯式操作數(shù)?存儲(chǔ)器操作數(shù)如何定位?哪些操作數(shù)可以或不可以放到存儲(chǔ)器中?尋址方式數(shù)據(jù)類
7、型和大小支持哪些操作下一條指令地址jumps, conditions, branchesfetch-decode-execute is implicit!2022/7/238InstructionFetchInstructionDecodeOperandFetchExecuteResultStoreNextInstructionRecap: 有關(guān)ISA的若干問(wèn)題存儲(chǔ)器尋址操作數(shù)的類型與大小所支持的操作控制轉(zhuǎn)移類指令指令格式2022/7/239Recap: 存儲(chǔ)器尋址80年以來(lái)幾乎所有機(jī)器的存儲(chǔ)器都是按字節(jié)編址一個(gè)存儲(chǔ)器地址可以訪問(wèn):一個(gè)字節(jié)、2個(gè)字節(jié)、4個(gè)字節(jié)、更多字節(jié).不同體系結(jié)構(gòu)對(duì)字的定義
8、是不同的16位字(Intel X86)32位字(MIPS)如何讀32位字,兩種方案每次一個(gè)字節(jié),四次完成;每次一個(gè)字,一次完成問(wèn)題:(1)如何將字節(jié)地址映射到字地址 (尾端問(wèn)題)(2)一個(gè)字是否可以存放在任何字節(jié)邊界上(對(duì)齊問(wèn)題)2022/7/2310Recap: 尾端問(wèn)題little endian, big endian, 在一個(gè)字內(nèi)部的字節(jié)順序問(wèn)題如地址xxx00指定了一個(gè)字(int), 存儲(chǔ)器中從xxx00處連續(xù)存放ffff0000, 則有兩種方式:Little endian 方式下xxx00位置是字的最低字節(jié),整數(shù)值為0000ffff, Intel 80 x86, DEC Vax, D
9、EC Alpha (Windows NT)Big endian 方式下xxx00位置是字的最高字節(jié),整數(shù)值為ffff0000, IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA2022/7/2311Recap: 對(duì)齊問(wèn)題對(duì)s字節(jié)的對(duì)象訪問(wèn)地址為A,如果A mod s =0 稱為邊界對(duì)齊。邊界對(duì)齊的原因是存儲(chǔ)器本身讀寫的要求,存儲(chǔ)器本身讀寫通常就是邊界對(duì)齊的,對(duì)于不是邊界對(duì)齊的對(duì)象的訪問(wèn)可能要導(dǎo)致存儲(chǔ)器的兩次訪問(wèn),然后再拼接出所需要的數(shù)。(或發(fā)生異常)2022/7/2312Recap: 尋址方式尋址方式:如何說(shuō)明要訪問(wèn)的對(duì)象地址有效地址:由尋址方式說(shuō)明的
10、某一存儲(chǔ)單元的實(shí)際存儲(chǔ)器地址。有效地址 vs. 物理地址2022/7/2313各種尋址方式的使用情況? (忽略寄存器直接尋址)2022/7/2314三個(gè)SPEC89程序在VAX結(jié)構(gòu)上的測(cè)試結(jié)果: 立即尋址,偏移尋址使用較多偏移尋址主要問(wèn)題:偏移的范圍(偏移量的大?。?022/7/2315Alpha Architecture with full optimization for Spec CPU2000, showing the average of integer programs(CINT2000) and the average of floating-point programs (CF
11、P2000)立即數(shù)尋址2022/7/2316Alpha Architecture with full optimization for Spec CPU2000, showing the average of integer programs(CINT2000) and the average of floating-point programs (CFP2000)立即數(shù)的大小2022/7/2317The distribution of immediate values. About 20% were negative for CINT2000 and about 30% were negat
12、ive for CFP2000. These measurements were taken on a Alpha, where the maximum immediate is 16 bits, for the spec cpu2000 programs. A similar measurement on the VAX, which supported 32-bit immediates, showed that about 20% to 25% of immediates were longer than 16 bits.尋址方式小結(jié) 重要的尋址方式:偏移尋址方式, 立即數(shù)尋址方式, 寄
13、存器間址方式SPEC測(cè)試表明,使用頻度達(dá)到 75%-99% 偏移字段的大小應(yīng)該在 12 - 16 bits可滿足75%-99%的需求 立即數(shù)字段的大小應(yīng)該在 8 -16 bits可滿足50%-80%的需求2022/7/2318操作數(shù)的類型、表示和大小操作數(shù)類型和操作數(shù)表示是軟硬件的主要界面之一。操作數(shù)類型:是面向應(yīng)用、面向軟件系統(tǒng)所處理的各種數(shù)據(jù)類型。整型、浮點(diǎn)型、字符、字符串、向量類型等類型由操作碼確定或數(shù)據(jù)附加硬件解釋的標(biāo)記,一般采用由操作碼確定數(shù)據(jù)附加硬件解釋的標(biāo)記,現(xiàn)在已經(jīng)不采用操作數(shù)的表示:操作數(shù)在機(jī)器中的表示,硬件結(jié)構(gòu)能夠識(shí)別,指令系統(tǒng)可以直接使用的表示格式整型:原碼、反碼、補(bǔ)碼浮
14、點(diǎn):IEEE 754標(biāo)準(zhǔn)十進(jìn)制:BCD碼/二進(jìn)制十進(jìn)制表示2022/7/2319常用操作數(shù)類型ASCII character = 1 byte (64-bit register can store 8 charactersUnicode character or Short integer = 2 bytes = 16 bits (half word) Integer = 4 bytes = 32 bits (word size on many RISC Processors)Single-precision float = 4 bytes = 32 bits (word size)Long
15、integer = 8 bytes = 64 bits (double word)Double-precision float = 8 bytes = 64 bits (double word)Extended-precision float = 10 bytes = 80 bits (Intel architecture)Quad-precision float = 16 bytes = 128 bits2022/7/2320操作數(shù)的大小2022/7/2321基準(zhǔn)測(cè)試的結(jié)論:(1)對(duì)單字、雙字的數(shù)據(jù)訪問(wèn)具有較高的頻率(2)支持64位雙字操作,更具有一般性小結(jié):指令集架構(gòu)ISA需考慮的問(wèn)題Cl
16、ass of ISAMemory addressingTypes and sizes of operandsOperationsControl flow instructionsEncoding an ISAISA的類型通用寄存器型占主導(dǎo)地位尋址方式重要的尋址方式: 偏移尋址方式, 立即數(shù)尋址方式, 寄存器間址方式SPEC測(cè)試表明,使用頻度達(dá)到 75%-99%偏移字段的大小應(yīng)該在 12 - 16 bits, 可滿足75%-99%的需求立即數(shù)字段的大小應(yīng)該在 8 -16 bits, 可滿足50%-80%的需求操作數(shù)的類型和大小對(duì)單字、雙字的數(shù)據(jù)訪問(wèn)具有較高的頻率支持64位雙字操作,更具有一般性2
17、022/7/2322MIPSMIPS是最典型的RISC 指令集架構(gòu)Stanford, 1980年提出,主要受到IBM801 小型機(jī)的影響第一個(gè)商業(yè)實(shí)現(xiàn)是R2000(1986)最初的設(shè)計(jì)中,其整數(shù)指令集僅有58條指令,直接實(shí)現(xiàn)單發(fā)射、順序流水線30年來(lái),逐步增加到約400條指令。主要特征:Load/Store型結(jié)構(gòu),專門的指令完成存儲(chǔ)器與寄存器之間的傳送ALU類指令的操作數(shù)來(lái)源于寄存器或立即數(shù)(指令中的特定區(qū)域)降低了指令集和硬件的復(fù)雜性,依賴于優(yōu)化編譯技術(shù),方便了簡(jiǎn)單流水線的實(shí)現(xiàn)2022/7/2323主要缺陷:針對(duì)特定的微體系架構(gòu)的實(shí)現(xiàn)方式(5級(jí)流水、單發(fā)射、順序流水線)進(jìn)行過(guò)度的優(yōu)化設(shè)計(jì)延遲
18、轉(zhuǎn)移問(wèn)題導(dǎo)致超標(biāo)量等復(fù)雜流水線的實(shí)現(xiàn)難度,當(dāng)無(wú)法有效填充延遲槽時(shí)會(huì)導(dǎo)致代碼尺寸變大MIPS-I中暴露出其他流水線沖突(load、乘除引起的沖突)采用簡(jiǎn)單的Interlocking 簡(jiǎn)單又高效,但為了保持兼容性,仍然保留了延遲轉(zhuǎn)移ISA對(duì)位置無(wú)關(guān)的代碼(position-independent code, PIC)支持不足。直接跳轉(zhuǎn)沒(méi)有提供PC相對(duì)尋址,需要通過(guò)間接跳轉(zhuǎn)方式實(shí)現(xiàn)PIC,增加了代碼尺寸,降低了性能2014年MIPS的修訂,改進(jìn)了PC-相對(duì)尋址(針對(duì)數(shù)據(jù)),但仍然要多條指令才能完成16位位寬立即數(shù)消耗了大量編碼空間,只有少量的編碼空間可供擴(kuò)展指令2014修訂版,保存有1/64的編碼空
19、間供擴(kuò)展架構(gòu)師如果想采用壓縮指令編碼來(lái)降低代碼空間,就不得不采用新的指令編碼乘除指令使用了特殊的寄存器(HI,LO),導(dǎo)致上下文切換內(nèi)容、指令條數(shù)、代碼尺寸增加,微架構(gòu)實(shí)現(xiàn)復(fù)雜2022/7/2324ISA假設(shè)浮點(diǎn)操作部件是一個(gè)獨(dú)立的協(xié)處理器,使得單芯片實(shí)現(xiàn)無(wú)法最優(yōu)例如,整型數(shù)與浮點(diǎn)數(shù)的轉(zhuǎn)換結(jié)果寫到浮點(diǎn)數(shù)寄存器,使用結(jié)果時(shí),需要額外的mov指令,更糟糕的是浮點(diǎn)數(shù)寄存器文件與整型數(shù)寄存器文件之間的傳輸,需要有顯式的延遲槽在標(biāo)準(zhǔn)的ABI中,保留兩個(gè)整型寄存器用于內(nèi)核程序,減少了用戶程序可用的寄存器數(shù)使用特殊指令處理未對(duì)齊的load和store會(huì)消耗大量的操作碼空間,并使除了最簡(jiǎn)單的實(shí)現(xiàn)之外的其他實(shí)現(xiàn)
20、復(fù)雜化。時(shí)鐘速率/CPI 的權(quán)衡使得架構(gòu)師省略了整數(shù)大小比較和分支指令。隨著分支預(yù)測(cè)和靜態(tài)CMOS邏輯的出現(xiàn),這種權(quán)衡在今天已經(jīng)不太合適了。除了技術(shù)方面,MIPS是非開放的專屬指令集,不能自由使用2022/7/2325SPARCSun Microsystems的專屬指令集可追溯到Berkeley RISC-I和RISC-II項(xiàng)目 ; 最近的32位版本的ISA SPARC V8SPARC V8 主要特征用戶級(jí) 整型ISA 90條指令; 硬件支持IEEE 754-1985標(biāo)準(zhǔn)的浮點(diǎn)數(shù)(50條) ;特權(quán)級(jí)指令 20條主要問(wèn)題SPARC使用了寄存器窗口來(lái)加速函數(shù)調(diào)用當(dāng)函數(shù)調(diào)用所需的??臻g超過(guò)了窗口的寄
21、存器數(shù),性能會(huì)急劇下降。對(duì)于所有的實(shí)現(xiàn)來(lái)說(shuō),寄存器窗口都消耗很大的面積和功耗分支使用條件碼這些條件碼由于在一些指令之間創(chuàng)建了額外的依賴關(guān)系,增加了體系結(jié)構(gòu)狀態(tài)并使實(shí)現(xiàn)復(fù)雜化load和store相鄰寄存器對(duì)的指令對(duì)于簡(jiǎn)單的微體系結(jié)構(gòu)很有吸引力,可以在很少增加硬件復(fù)雜性的情況下提高吞吐量。遺憾的是當(dāng)使用寄存器重命名使實(shí)現(xiàn)復(fù)雜化,因?yàn)樵诩拇嫫魑募袛?shù)據(jù)在物理上可能不再相鄰浮點(diǎn)寄存器文件和整數(shù)寄存器文件之間的移動(dòng)必須使用內(nèi)存系統(tǒng)作為中介,限制了系統(tǒng)性能2022/7/2326SPARCISA通過(guò)體系結(jié)構(gòu)公開的延遲陷阱隊(duì)列支持非精確浮點(diǎn)異常,該隊(duì)列向系統(tǒng)監(jiān)控程序提供信息,以恢復(fù)此類異常上的處理器狀態(tài)唯一的
22、原子內(nèi)存操作是fetch-and-store,這對(duì)于實(shí)現(xiàn)許多無(wú)等待的數(shù)據(jù)結(jié)構(gòu)是不夠的SPARC與其他80年代RISC結(jié)構(gòu)的許多有缺陷的特性ISA設(shè)計(jì)面向單發(fā)射、順序、五級(jí)流水線的微體系架構(gòu);SPARC具有分支延遲插槽和許多顯式的數(shù)據(jù)和控制沖突,這些沖突使代碼生成復(fù)雜化,無(wú)助于更積極的實(shí)現(xiàn);缺乏位置無(wú)關(guān)的尋址方式(相對(duì)尋址)由于SPARC缺乏足夠的自由編碼空間,因此不能方便地對(duì)其進(jìn)行改進(jìn)以支持壓縮ISA擴(kuò)展2022/7/2327Alpha (DEC)DEC公司的架構(gòu)師在20世紀(jì)90年代初定義了他們的RISC ISA, Alpha摒棄了當(dāng)時(shí)非常吸引人的特性,如分支延遲、條件碼、寄存器窗口等創(chuàng)建了6
23、4位尋址空間、設(shè)計(jì)簡(jiǎn)潔、實(shí)現(xiàn)簡(jiǎn)單、高性能的ISAAlpha架構(gòu)師仔細(xì)地將特權(quán)體系結(jié)構(gòu)和硬件平臺(tái)的大部分細(xì)節(jié)隔離在抽象接口(特權(quán)體系結(jié)構(gòu)庫(kù))后面(PALcode)主要問(wèn)題:盡管如此,DEC對(duì)順序微架構(gòu)的Alpha進(jìn)行了過(guò)度優(yōu)化,并添加了一些不太適合現(xiàn)代實(shí)現(xiàn)的特性為了追求高時(shí)鐘頻率,ISA的原始版本避免了8位和16位的加載和存儲(chǔ),實(shí)際上創(chuàng)建了一個(gè)字尋址的內(nèi)存系統(tǒng)。為了在廣泛使用這些操作的應(yīng)用程序上性能,添加了特殊的未對(duì)齊的加載和存儲(chǔ)指令以及一些整數(shù)指令,以加速重新組合過(guò)程。為了方便長(zhǎng)延遲浮點(diǎn)指令的亂序完成,Alpha有一個(gè)非精確的浮點(diǎn)陷阱模型。這個(gè)決定可能是可以單獨(dú)接受的,但是ISA還定義了異常標(biāo)
24、記和默認(rèn)值(如果需要的話)必須由軟件例程提供。Alpha缺少整數(shù)除法指令,建議使用軟件牛頓迭代法實(shí)現(xiàn),導(dǎo)致浮點(diǎn)除法速度高于整數(shù)除法2022/7/2328與它的前輩RISC一樣,沒(méi)有預(yù)先考慮可能的壓縮指令集擴(kuò)展,因此沒(méi)有足夠的操作碼空間來(lái)進(jìn)行更新ISA包含有條件的移動(dòng),這使得微架構(gòu)與寄存器重命名復(fù)雜化如果移動(dòng)條件不滿足,指令仍然必須將舊值復(fù)制到新的物理目標(biāo)寄存器中。這實(shí)際上使條件移動(dòng)成為ISA中惟一讀取三個(gè)源操作數(shù)的指令。實(shí)際上,DEC的第一個(gè)亂序執(zhí)行的實(shí)現(xiàn)使用了一些技巧來(lái)避免該指令的額外數(shù)據(jù)路徑。 Alpha 21264通過(guò)將條件移動(dòng)指令分解為兩個(gè)微操作來(lái)執(zhí)行,第一個(gè)微操作評(píng)估移動(dòng)條件,第二個(gè)
25、微操作執(zhí)行移動(dòng)。這種方法還要求物理寄存器文件加寬一位以保存中間結(jié)果使用商業(yè)Alpha ISAs的一個(gè)重要風(fēng)險(xiǎn):它們可能會(huì)被摒棄??蛋卦谏鲜兰o(jì)90年代末收購(gòu)了搖搖欲墜的DEC后不久,他們選擇逐步淘汰Alpha,轉(zhuǎn)而采用英特爾的安騰架構(gòu)??蛋貙lpha的知識(shí)產(chǎn)權(quán)出售給了英特爾,此后不久,惠普收購(gòu)了康柏,并在2004年完成了Alpha的最終實(shí)現(xiàn)2022/7/2329ARMv732位 RISC ISA目前世界上使用最廣的體系結(jié)構(gòu)。當(dāng)我們權(quán)衡是否要設(shè)計(jì)自己的指令集時(shí),ARMv7是一個(gè)自然的選擇,大量的軟件已經(jīng)被移植到該ISA上,而且它在嵌入式和移動(dòng)設(shè)備中無(wú)處不在。是一個(gè)封閉的標(biāo)準(zhǔn),剪裁或擴(kuò)充是不允許的
26、,即使是微架構(gòu)的創(chuàng)新也僅限于那些能夠獲得ARM所稱的架構(gòu)許可的人ARMv7十分龐大復(fù)雜。整型類指令600+條即使知識(shí)產(chǎn)權(quán)不是問(wèn)題,它仍然存在一些技術(shù)缺陷不支持64位地址, ISA缺乏硬件支持IEEE754-2008標(biāo)準(zhǔn)( ARMv8 糾正了這些缺陷)特權(quán)體系結(jié)構(gòu)的細(xì)節(jié)滲透到用戶級(jí)體系結(jié)構(gòu)的定義中2022/7/2330ARMv7附帶一個(gè)壓縮ISA,具有固定寬度的16位指令,稱為Thumb。Thumb雖然提供了有競(jìng)爭(zhēng)力的代碼尺寸,但性能較差Thumb-2 雖然提供了較高的性能,但32位的Thumb-2編碼方式與基本的ISA編碼方式不同,16位的Thumb-2的編碼方式與基本的16位編碼方式也不同。
27、導(dǎo)致譯碼器需要理解三種編碼格式,使得能耗、延遲以及設(shè)計(jì)成本增加ISA中包含了許多實(shí)現(xiàn)復(fù)雜的特性。程序計(jì)數(shù)器是可尋址寄存器之一,這意味著幾乎任何指令都可以改變控制流。更糟糕的是,程序計(jì)數(shù)器的最低有效位反映ISA當(dāng)前正在執(zhí)行(ARM或Thumb)哪個(gè)ISA簡(jiǎn)單的ADD指令可以更改ISA當(dāng)前在處理器上執(zhí)行的指令!分支使用條件碼以及謂詞指令進(jìn)一步使高性能實(shí)現(xiàn)復(fù)雜化。2022/7/2331ARMv82011年,ARM發(fā)布新的ISAARMv864位地址; 擴(kuò)展了整型寄存器組。摒棄了ARMv7中實(shí)現(xiàn)復(fù)雜的一些特性PC不再是整形寄存器組的成員;不再有謂詞指令刪除了load-multiple和store-mul
28、tiple 指令指令編碼歸一化主要問(wèn)題使用條件碼存在許多特殊的寄存器2022/7/2332增加了一些缺陷,包括大量的subword-SIMD架構(gòu)指令集更加厚重:1070條指令,53種格式,8種尋址方式。說(shuō)明文檔達(dá)到了5778頁(yè)與其他大多數(shù)ISA一樣,通常以暴露底層實(shí)現(xiàn)的方式將用戶和特權(quán)架構(gòu)緊密地結(jié)合在一起此外,隨著ARMv8的引入,ARM不再支持壓縮指令編碼最后,和它的以前版本一樣,ARMv8也是一個(gè)封閉的標(biāo)準(zhǔn)2022/7/2333OpenRISCOpenRISC項(xiàng)目是一個(gè)開放源碼處理器設(shè)計(jì)項(xiàng)目來(lái)源于Hennessy和Patterson的體系結(jié)構(gòu)教科書。適用于教學(xué)、科研和工業(yè)界的實(shí)現(xiàn)。主要問(wèn)題
29、OpenRISC項(xiàng)目主要是開源處理器設(shè)計(jì)項(xiàng)目,而不是開源的ISA 規(guī)格說(shuō)明,ISA和實(shí)現(xiàn)是緊密耦合的固定的32位編碼與16位立即數(shù)阻礙了壓縮ISA擴(kuò)展硬件不支持IEEE 754-2008標(biāo)準(zhǔn)用于分支和條件轉(zhuǎn)移的條件碼使高性能實(shí)現(xiàn)復(fù)雜化ISA對(duì)位置無(wú)關(guān)的尋址方式支持較弱OpenRISC不利于虛擬化。從異常返回的指令L.RFE,定義為在用戶模式下功能,而不是捕獲值得一提的是:2010年這兩個(gè)問(wèn)題都得到了解決:延遲插槽已經(jīng)成為可選的,64位版本已經(jīng)定義(但是,據(jù)我們所知,從未實(shí)現(xiàn)過(guò))。最終,我們(UCB)認(rèn)為最好從頭開始,而不是相應(yīng)地修改OpenRISC。2022/7/2334在過(guò)去的四十年里,英特
30、爾的8086架構(gòu)已經(jīng)成為筆記本電腦、臺(tái)式機(jī)和服務(wù)器市場(chǎng)上最流行的指令集。在嵌入式系統(tǒng)領(lǐng)域之外,幾乎所有流行的軟件都被移植到x86上,或者是為x86開發(fā)的它受歡迎的原因有很多:該架構(gòu)在IBM PC誕生之初的偶然可用性; 英特爾專注于二進(jìn)制兼容性; 它們積極的卓有成效的微結(jié)構(gòu)實(shí)現(xiàn); 以及他們的前沿制造技術(shù)指令集設(shè)計(jì)質(zhì)量并不是它流行的原因之一。主要問(wèn)題:1300條指令,許多尋址方式,很多特殊寄存器,多種地址翻譯方式,從AMD K5微架構(gòu)開始,所有的Intel支持亂序執(zhí)行的微結(jié)構(gòu),都是動(dòng)態(tài)地將x86指令翻譯為內(nèi)部的RISC-風(fēng)格的指令集。ISA不利于虛擬化,因?yàn)橐恍┨貦?quán)指令在用戶模式下會(huì)無(wú)聲地失敗,而
31、不是被捕獲。VMware的工程師們用復(fù)雜的動(dòng)態(tài)二進(jìn)制翻譯軟件解決了這一缺陷ISA的指令長(zhǎng)度為任意整數(shù)字節(jié)數(shù),最多為15個(gè)字節(jié),但是數(shù)量較少的短操作碼已經(jīng)被隨意使用80 x862022/7/2335ISA有數(shù)量極少的寄存器組大多數(shù)整數(shù)寄存器在ISA中執(zhí)行特殊功能,這加劇了體系結(jié)構(gòu)寄存器的不足更糟糕的是,大多數(shù)x86指令只有一種破壞性的指令格式,它會(huì)覆蓋其中一個(gè)源操作數(shù)一些ISA特性,包括隱式條件代碼和帶有謂詞的移動(dòng)操作,在微架構(gòu)中實(shí)現(xiàn)復(fù)雜這些ISA決策對(duì)靜態(tài)代碼大小有深刻的影響。盡管存在所有這些缺陷,x86通常比RISC體系結(jié)構(gòu)使用更少的動(dòng)態(tài)指令完成相同的功能,因?yàn)閤86指令可以編碼多個(gè)基本操作
32、。最后,80 x86是一個(gè)專有指令集2022/7/2336ISASummary2022/7/2337MIPSSPARCAlphaARMv7ARMv8OpenRISC80 x86Free and Open64-bit AddressCompressed InstructionsPartialSeparate Privileged ISAPosition-Indep. CodePartialIEEE 754-2008Classically Virtualizable03/11:指令集架構(gòu)ISA需考慮的問(wèn)題Class of ISAMemory addressingTypes and sizes of
33、 operandsOperationsControl flow instructionsEncoding an ISAISA的類型通用寄存器型占主導(dǎo)地位尋址方式重要的尋址方式: 偏移尋址方式, 立即數(shù)尋址方式, 寄存器間址方式SPEC測(cè)試表明,使用頻度達(dá)到 75%-99%偏移字段的大小應(yīng)該在 12 - 16 bits, 可滿足75%-99%的需求立即數(shù)字段的大小應(yīng)該在 8 -16 bits, 可滿足50%-80%的需求操作數(shù)的類型和大小對(duì)單字、雙字的數(shù)據(jù)訪問(wèn)具有較高的頻率支持64位雙字操作,更具有一般性2022/7/2338ISA的操作CISC 指令集結(jié)構(gòu)的功能設(shè)計(jì)RISC 指令結(jié)構(gòu)的功能設(shè)計(jì)
34、2022/7/2339典型操作類型 一般計(jì)算機(jī)都支持前三類所有的操作; 不同計(jì)算機(jī)系統(tǒng) 對(duì)系統(tǒng)支持程度不同,但都支持基本的系統(tǒng)功能。 對(duì)最后四類操作的支持程度差別也很大,有些機(jī)器不支持,有些機(jī)器還在此基礎(chǔ)上做一些擴(kuò)展,這些指令有時(shí)作為可選的指令。2022/7/2340Top 10 80 x86 Instructions2022/7/2341ISA對(duì)操作類型的選擇需考慮的因素:速度、價(jià)格和靈活性基本要求:指令系統(tǒng)的完整性、規(guī)整性、高效率和兼容性完整性設(shè)計(jì):具備基本指令種類兼容性:系列機(jī)高效率:指令執(zhí)行速度快、使用頻度高規(guī)整性讓所有運(yùn)算部件都能對(duì)稱、均勻的在所有數(shù)據(jù)存儲(chǔ)單元之間進(jìn)行操作。對(duì)所有數(shù)據(jù)
35、存儲(chǔ)單元都能同等對(duì)待,無(wú)論是操作數(shù)或運(yùn)算結(jié)果都可以無(wú)約束地存放到任意數(shù)據(jù)存儲(chǔ)單元中正交性數(shù)據(jù)類型獨(dú)立于尋址方式尋址方式獨(dú)立于所要完成的操作當(dāng)前對(duì)這一問(wèn)題的處理有兩種截然不同的方向CISC和RISC2022/7/2342CISC計(jì)算機(jī)ISA的功能設(shè)計(jì)目標(biāo):強(qiáng)化指令功能,減少指令條數(shù),以提高系統(tǒng)性能基本優(yōu)化方法 1. 面向目標(biāo)程序的優(yōu)化是提高計(jì)算機(jī)系統(tǒng)性能最直接方法優(yōu)化目標(biāo)縮短程序的長(zhǎng)度縮短程序的執(zhí)行時(shí)間優(yōu)化方法統(tǒng)計(jì)分析目標(biāo)程序執(zhí)行情況,找出使用頻度高,執(zhí)行時(shí)間長(zhǎng)的指令或指令串優(yōu)化使用頻度高的指令用新的指令代替使用頻度高的指令串2022/7/2343優(yōu)化目標(biāo)程序的主要途徑(1/2)1)增強(qiáng)運(yùn)算型指
36、令的功能如sin(x), cos(x), SQRT(X),甚至多項(xiàng)式計(jì)算如用一條三地址指令完成P(X) = C(0)+C(1)X+C(2)X2+C(3)X3+.2) 增強(qiáng)數(shù)據(jù)傳送類指令的功能主要是指數(shù)據(jù)塊傳送指令R-R, R-M, M-M之間的數(shù)據(jù)塊傳送可有效的支持向量和矩陣運(yùn)算,如IBM370R-Stack之間設(shè)置數(shù)據(jù)塊傳送指令,能夠在程序調(diào)用和程序中斷時(shí),快速保存和恢復(fù)程序現(xiàn)場(chǎng),如 VAX-112022/7/2344優(yōu)化目標(biāo)程序的主要途徑(2/2)3) 增強(qiáng)程序控制指令的功能在CISC中,一般均設(shè)置了多種程序控制指令,正常僅需要轉(zhuǎn)移指令和子程序控制指令2. 面向高級(jí)語(yǔ)言和編譯程序改進(jìn)指令系
37、統(tǒng)優(yōu)化目標(biāo):主要是縮小HL-ML之間的差距優(yōu)化方法:1)增強(qiáng)面向HL和Compiler支持的指令功能統(tǒng)計(jì)分析源程序中各種語(yǔ)句的使用頻度和執(zhí)行時(shí)間增強(qiáng)相關(guān)指令的功能,優(yōu)化使用頻度高、執(zhí)行時(shí)間長(zhǎng)的語(yǔ)句增加專門指令,以縮短目標(biāo)程序長(zhǎng)度,減少目標(biāo)程序執(zhí)行時(shí)間,縮短編譯時(shí)間2022/7/2345FORTRAN語(yǔ)言和COBOL語(yǔ)言中各種主要語(yǔ)句的使用頻度觀察結(jié)果:(1)一元賦值在其中比例最大,增強(qiáng)數(shù)據(jù)傳送類指令功能,縮短這類指令的執(zhí)行時(shí)間是對(duì)高級(jí)語(yǔ)言非常有力的支持,(2)其他賦值語(yǔ)句中,增1操作比例較大,許多機(jī)器都有專門的增1指令(3)條件轉(zhuǎn)移和無(wú)條件轉(zhuǎn)移占22,38.2%,因此增強(qiáng)轉(zhuǎn)移指令的功能,增加轉(zhuǎn)
38、移指令的種類是必要的2022/7/2346語(yǔ)言一元賦值其他賦值IFGOTOI/ODOCALL其他FORTRAN31.015.011.510.56.54.56.015.0COBOL42.17.519.119.18.460.170.173.42)高級(jí)語(yǔ)言計(jì)算機(jī)系統(tǒng)縮小HL和ML的差別時(shí),走到極端,就是把HL和ML合二為一,即所謂的高級(jí)語(yǔ)言計(jì)算機(jī)。在這種機(jī)器中,高級(jí)語(yǔ)言不需要經(jīng)過(guò)編譯,直接由機(jī)器硬件來(lái)執(zhí)行。如LISP機(jī),PROLOG機(jī)3)支持操作系統(tǒng)的優(yōu)化實(shí)現(xiàn)些特權(quán)指令任何一種計(jì)算機(jī)系統(tǒng)通常需要操作系統(tǒng),而OS又必須用指令系統(tǒng)來(lái)實(shí)現(xiàn),指令系統(tǒng)對(duì)OS的支持主要有處理器工作狀態(tài)和訪問(wèn)方式的轉(zhuǎn)換進(jìn)程的管理
39、和切換存儲(chǔ)管理和信息保護(hù)進(jìn)程同步和互斥,信號(hào)量的管理等2022/7/2347-Review (續(xù))ISA的功能設(shè)計(jì)任務(wù):確定硬件支持哪些操作方法:統(tǒng)計(jì)的方法兩種類型:CISC和RISCCISC(Complex Instruction Set Computer)目標(biāo):強(qiáng)化指令功能,減少運(yùn)行的指令條數(shù),提高系統(tǒng)性能方法:面向目標(biāo)程序的優(yōu)化,面向高級(jí)語(yǔ)言和編譯器的優(yōu)化RISC(Reduced Instruction Set Computer)目標(biāo):通過(guò)簡(jiǎn)化指令系統(tǒng),用高效的方法實(shí)現(xiàn)最常用的指令方法:充分發(fā)揮流水線的效率,降低(優(yōu)化)CPI2022/7/2348RISC指令集結(jié)構(gòu)的功能設(shè)計(jì)采用RISC
40、體系結(jié)構(gòu)的微處理器SUN Microsystem: SPARC, SuperSPARC, Ulta SPARCSGI: MIPS R4000, R5000, R10000,IBM: Power PCIntel: 80860, 80960DEC: AlphaMotorola 88100HP HP300/930系列,950系列ARM,MIPSRISC-V2022/7/2349RISC的定義和特點(diǎn)RISC是一種計(jì)算機(jī)體系結(jié)構(gòu)的設(shè)計(jì)思想,它不是一種產(chǎn)品。RISC是近代計(jì)算機(jī)體系結(jié)構(gòu)發(fā)展史中的一個(gè)里程碑,直到現(xiàn)在,RISC沒(méi)有一個(gè)確切的定義早期對(duì)RISC特點(diǎn)的描述大多數(shù)指令在單周期內(nèi)完成采用Load/S
41、tore結(jié)構(gòu)硬布線控制邏輯減少指令和尋址方式的種類固定的指令格式注重代碼的優(yōu)化從目前的發(fā)展看,RISC體系結(jié)構(gòu)還應(yīng)具有如下特點(diǎn):面向寄存器結(jié)構(gòu)十分重視流水線的執(zhí)行效率盡量減少斷流重視優(yōu)化編譯技術(shù)減少指令平均執(zhí)行周期數(shù)是RISC思想的精華2022/7/2350問(wèn)題RISC的指令系統(tǒng)精簡(jiǎn)了,CISC中的一條指令可能由一串指令才能完成,那么為什么RISC執(zhí)行程序的速度比CISC還要快? ExecuteTime = CPI X IC X T IC CPI TCISC 1 215 33ns5nsRISC 1.31.4 1.11.4 10ns2nsIC : 實(shí)際統(tǒng)計(jì)結(jié)果,RISC的IC只比CISC 長(zhǎng)30
42、40%CPI: CISC CPI一般在46之間,RISC 一般CPI =1 , Load/Store 為2 T: RISC采用硬布線邏輯,指令要完成的功能比較簡(jiǎn)單2022/7/2351RISC為什么會(huì)減少CPI硬件方面:硬布線控制邏輯減少指令和尋址方式的種類使用固定格式采用Load/Store指令執(zhí)行過(guò)程中設(shè)置多級(jí)流水線。軟件方面:十分強(qiáng)調(diào)優(yōu)化編譯的作用2022/7/2352控制類指令四種類型的控制流改變:條件分支( Conditional branch) 、跳轉(zhuǎn)(Jump)、過(guò)程調(diào)用(Procedure calls)、過(guò)程返回(Procedure returns)2022/7/2353Alp
43、ha Architecture with full optimization for Spec CPU2000, showing the average of integer programs(CINT2000) and the average of floating-point programs (CFP2000)控制流類指令中的尋址方式PC-relative 方式 (相對(duì)尋址)例如:條件轉(zhuǎn)移說(shuō)明動(dòng)態(tài)的轉(zhuǎn)移地址方式(通過(guò)寄存器間接跳轉(zhuǎn)): 編譯時(shí)不知道目標(biāo)地址,程序執(zhí)行時(shí)動(dòng)態(tài)確定Case or switch statementsVirtual function or methodsHigh-
44、order functions or function pointersDynamically shared libraries轉(zhuǎn)移地址放到某一寄存器中,通過(guò)寄存器間接跳轉(zhuǎn)2022/7/2354轉(zhuǎn)移目標(biāo)地址與當(dāng)前指令的距離2022/7/2355Alpha Architecture with full optimization for Spec CPU2000, showing the average of integer programs(CINT2000) and the average of floating-point programs (CFP2000) 建議:PC-relative
45、尋址,偏移地址至少8位分支比較類型比較2022/7/2356Alpha Architecture with full optimization for Spec CPU2000, showing the average of integer programs(CINT2000) and the average of floating-point programs (CFP2000)指令編碼2022/7/2357Variable:Fixed:Hybrid:指令格式選擇策略如果代碼規(guī)模最重要,那么使用變長(zhǎng)指令格式 如果性能至關(guān)重要,使用固定長(zhǎng)度指令 有些嵌入式CPU附加可選模式,由每一應(yīng)用自己選擇
46、性能還是代碼量窄指令支持更少的操作、更短的地址和立即數(shù)字段、更少的寄存器以及雙地址格式,而不是傳統(tǒng)的RISC計(jì)算機(jī)的三地址格式例如:RISC-V 的 RV32IC, C表示壓縮表示ARM Thumb , microMIPS有些機(jī)器使用邊執(zhí)行邊解壓的方式例如 IBM 的CodePack PowerPC2022/7/2358MIPS 尋址方式/指令格式2022/7/2359 所有指令都是32位寬oprsrtrdimmedregisterRegister (direct)oprsrtregisterBase+index+MemoryimmedoprsrtImmediateimmedoprsrtPCP
47、C-relative+Memory Register Indirect?小結(jié) ISA的功能設(shè)計(jì):任務(wù)為確定硬件支持哪些操作。方法是統(tǒng)計(jì)的方法。存在CISC和RISC兩種類型CISC(Complex Instruction Set Computer)目標(biāo):強(qiáng)化指令功能,減少指令的指令條數(shù),以提高系統(tǒng)性能基本方法:面向目標(biāo)程序的優(yōu)化,面向高級(jí)語(yǔ)言和編譯器的優(yōu)化RISC(Reduced Instruction Set Computer)目標(biāo):通過(guò)簡(jiǎn)化指令系統(tǒng),用最高效的方法實(shí)現(xiàn)最常用的指令主要手段:充分發(fā)揮流水線的效率,降低(優(yōu)化)CPI控制轉(zhuǎn)移類指令指令編碼(指令格式)2022/7/2360ISA
48、的演進(jìn)2022/7/2361Recap: MIPS指令集結(jié)構(gòu)MIPS64的一個(gè)子集,簡(jiǎn)稱為MIPSMIPS的寄存器32個(gè)64位通用寄存器(GPRs)R0,R1,R31也被稱為整數(shù)寄存器R0的值永遠(yuǎn)是032個(gè)64位浮點(diǎn)數(shù)寄存器(FPRs)F0,F(xiàn)1,F(xiàn)31用來(lái)存放32個(gè)單精度浮點(diǎn)數(shù)(32位),也可以用來(lái)存放32個(gè)雙精度浮點(diǎn)數(shù)(64位)。存儲(chǔ)單精度浮點(diǎn)數(shù)(32位)時(shí),只用到FPR的一半,其另一半沒(méi)用一些特殊寄存器它們可以與通用寄存器交換數(shù)據(jù)。例如,浮點(diǎn)狀態(tài)寄存器用來(lái)保存有關(guān)浮點(diǎn)操作結(jié)果的信息。2022/7/2362Recap:MIPS的數(shù)據(jù)表示整數(shù)字節(jié)(8位) 半字(16位)字(32位) 雙字(6
49、4位)浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù)(32位) 雙精度浮點(diǎn)數(shù)(64位)字節(jié)、半字或者字在裝入64位寄存器時(shí),用零擴(kuò)展或者用符號(hào)位擴(kuò)展來(lái)填充該寄存器的剩余部分。裝入以后,對(duì)它們將按照64位整數(shù)的方式進(jìn)行運(yùn)算。2022/7/2363Recap:MIPS的尋址方式立即數(shù)尋址與偏移量尋址立即數(shù)字段和偏移量字段都是16位的。寄存器間接尋址是通過(guò)把0作為偏移量來(lái)實(shí)現(xiàn)的16位絕對(duì)尋址是通過(guò)把R0(其值永遠(yuǎn)為0)作為基址寄存器來(lái)完成的MIPS的存儲(chǔ)器是按字節(jié)尋址的,地址為64位所有存儲(chǔ)器訪問(wèn)都必須是邊界對(duì)齊的2022/7/2364Recap:存儲(chǔ)器中的數(shù)據(jù)存放(存儲(chǔ)字長(zhǎng)為 32 位)2022/7/2365地址(十進(jìn)制)
50、0 4 812162024283236雙字雙字(地址32)雙字雙字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字節(jié)(地址 8)字節(jié)(地址 9)字節(jié)(地址10)字節(jié)(地址11)字(地址 4)字(地址 0)字節(jié)(地址14) 字節(jié)(地址15)字節(jié)(地址13)字節(jié)(地址12)邊界對(duì)準(zhǔn)地址(十進(jìn)制)048字節(jié)( 地址7)字節(jié)( 地址6)字( 地址2)半字( 地址10)半字( 地址8)半字( 地址0)字( 地址4)邊界未對(duì)準(zhǔn) Recap:MIPS的指令格式尋址方式編碼到操作碼中所有的指令都是32位的操作碼占6位3種指令格式I類R類J類2022/7/2366Recap:I類指
51、令包括所有的load和store指令、立即數(shù)指令,分支指令、寄存器跳轉(zhuǎn)指令、寄存器鏈接跳轉(zhuǎn)指令。立即數(shù)字段為16位,用于提供立即數(shù)或偏移量。2022/7/2367Recap:具體的I類指令load指令 訪存有效地址:Regsrsimmediate 從存儲(chǔ)器取來(lái)的數(shù)據(jù)放入寄存器rtstore指令 訪存有效地址:Regsrsimmediate 要存入存儲(chǔ)器的數(shù)據(jù)放在寄存器rt中立即數(shù)指令 Regsrt Regsrs op immediate分支指令 轉(zhuǎn)移目標(biāo)地址:Regsrsimmediate,rt無(wú)用寄存器跳轉(zhuǎn)、寄存器跳轉(zhuǎn)并鏈接 轉(zhuǎn)移目標(biāo)地址為Regsrs2022/7/2368Recap:R類指
52、令包括ALU指令、專用寄存器讀/寫指令、move指令等ALU指令 Regsrd Regsrs funct Regsrt func為具體的運(yùn)算操作編碼2022/7/2369Recap:J類指令包括跳轉(zhuǎn)指令、跳轉(zhuǎn)并鏈接指令、自陷指令、異常返回指令在這類指令中,指令字的低26位是偏移量,它與PC值相加形成跳轉(zhuǎn)的地址2022/7/2370Recap:MIPS的操作2022/7/2371MIPS指令可以分為四大類load和store、ALU操作、分支與跳轉(zhuǎn)、浮點(diǎn)操作符號(hào)的意義 xny:從y傳送n位到xx,yz:把z傳送到x和y下標(biāo):表示字段中具體的位;對(duì)于指令和數(shù)據(jù),按從最高位到最低位(即從左到右)的順
53、序依次編號(hào),最高位為第0位,次高位為第1位,依此類推。下標(biāo)可以是一個(gè)數(shù)字,也可以是一個(gè)范圍。例如:RegsR40:R4的符號(hào)位;RegsR456.63:R4的最低字節(jié)2022/7/2372Mem:表示主存;按字節(jié)尋址,可以傳輸任意個(gè)字節(jié)。上標(biāo):用于表示對(duì)字段進(jìn)行復(fù)制的次數(shù)。例如:0 32:一個(gè)32位長(zhǎng)的全0字段符號(hào)#:用于兩個(gè)字段的拼接,并且可以出現(xiàn)在數(shù)據(jù)傳送的任何一邊。舉例:R8、R10:64位的寄存器,則 RegsR832.63 32(Mem RegsR60)24 # Mem RegsR6 表示的意義是: 以R6的內(nèi)容作為地址訪問(wèn)內(nèi)存,得到的字節(jié)按符號(hào)位擴(kuò)展為32位后存入R8的低32位,R
54、8的高32位(即RegsR80.31)不變。 Recap:MIPS控制類指令2022/7/2373指令舉例 指令名稱 含義 J name 跳轉(zhuǎn) PC 3663 name2JAL name 跳轉(zhuǎn)并鏈接 RegsR31PC+4;PC 3663nameRISC2022/7/2386RISC-V 指令執(zhí)行階段Instruction FetchInstruction DecodeRegister FetchALU OperationsOptional Memory OperationsOptional Register WritebackCalculate Next Instruction Addres
55、s2022/7/2387處理器設(shè)計(jì)可以分為datapath和Control設(shè)計(jì)兩部分datapath, 存儲(chǔ)數(shù)據(jù)、算術(shù)邏輯運(yùn)算單元control, 控制數(shù)據(jù)通路上的一系列操作控制部分與數(shù)據(jù)通路2022/7/2388早期的計(jì)算機(jī)設(shè)計(jì)者的最大挑戰(zhàn)是控制邏輯的正確性Maurice Wilkes 提出了微程序設(shè)計(jì)的概念來(lái)設(shè)計(jì)處理器的控制邏輯(EDSAC-II, 1958)當(dāng)時(shí)的技術(shù)水平Logic: Vacuum TubesMain Memory: Magnetic coresRead-Only Memory: Diode matrix, punched metal cards, Cost: Logic
56、 RAM ROMSpeed: ROM RAMCondition?ControlMain MemoryAddressDataControl LinesDatapathPCInst. Reg.RegistersALUInstructionBusy?微程序控制RISC-V的單總線數(shù)據(jù)通路2022/7/2389微指令的寄存器傳輸級(jí)表示:MA:=PC means RegSel=PC; RegW=0; RegEn=1; MALd=1B:=Regrs2 means RegSel=rs2; RegW=0; RegEn=1; BLd=1Regrd:=A+B means ALUop=Add; ALUEn=1; R
57、egSel=rd; RegW=1Condition?Main MemoryPCRegistersALU32 (PC)rdrs1rs2Register RAMAddressInData OutInstruction Reg.Mem. AddressBAImmediateImmEnRegEnALUEnMemEnALUOpMemWImmSelRegWBLdInstLdMALdALdRegSelBusy?Opcode微程序控制 CPU2022/7/2390DatapathMain Memory(holds user program written in macroinstructions, e.g.,
58、 x86, RISC-V)AddressDataDecoderPCMicrocode ROM(holds fixed code instructions)Next StateControl LinesOpcodeConditionBusy?Microcode示意 (1)Instruction Fetch: MA,A:=PCPC:=A+4wait for memoryIR:=Memdispatch on opcode ALU:A:=Regrs1B:=Regrs2Regrd:=ALUOp(A,B)goto instruction fetchALUI:A:=Regrs1B:=ImmI /Sign-e
59、xtend 12b immediateRegrd:=ALUOp(A,B)goto instruction fetch2022/7/2391Microcode 示意 (2)LW: A:=Regrs1 B:=ImmI /Sign-extend 12b immediateMA:=A+Bwait for memoryRegrd:=Memgoto instruction fetchJAL:Regrd:=A / Store return addressA:=A-4 / Recover original PCB:=ImmJ / Jump-style immediatePC:=A+Bgoto instruct
60、ion fetchBranch:A:=Regrs1B:=Regrs2if (!ALUOp(A,B) goto instruction fetch /Not takenA:=PC /Microcode fall through if branch takenA:=A-4B:=ImmB/ Branch-style immediatePC:=A+Bgoto instruction fetch2022/7/2392采用 ROM 實(shí)現(xiàn)微程序控制How many address bits?|address| = |PC|+|opcode|+ 1 + 1How many data bits?|data| =
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江汽車職業(yè)技術(shù)學(xué)院《影視后期設(shè)計(jì)與制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州科技職業(yè)技術(shù)大學(xué)《運(yùn)營(yíng)管理模擬》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆江蘇省徐州市睢寧高中南校高三2月月考試卷物理試題含解析
- 陜西鐵路工程職業(yè)技術(shù)學(xué)院《醫(yī)學(xué)生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 古代教育理念對(duì)當(dāng)代的啟示
- 公建項(xiàng)目物業(yè)招標(biāo)流程及標(biāo)準(zhǔn)
- 澳門廢氣處理施工方案
- 2024年三季度報(bào)湖南地區(qū)A股應(yīng)收賬款周轉(zhuǎn)率排名前十大上市公司
- 遼寧省遼陽(yáng)市2024-2025學(xué)年高三(上)期末生物試卷(含解析)
- 河北省保定市2024-2025學(xué)年高一上學(xué)期1月期末英語(yǔ)試題(B)【含答案】
- 廣告安裝施工及方案
- 應(yīng)急第一響應(yīng)人理論考試試卷(含答案)
- 2024年海南省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 《預(yù)防未成年人犯罪》課件(圖文)
- 上下級(jí)關(guān)系與領(lǐng)導(dǎo)力管理制度
- 九年級(jí)化學(xué)人教版跨學(xué)科實(shí)踐3水質(zhì)檢測(cè)及自制凈水器教學(xué)設(shè)計(jì)
- 堆垛機(jī)保護(hù)保養(yǎng)手冊(cè)
- 2024年衛(wèi)生資格(中初級(jí))-初級(jí)藥師考試近5年真題集錦(頻考類試題)帶答案
- 2024年職業(yè)病防治考試題庫(kù)附答案(版)
- 【呋塞米合成工藝的探究進(jìn)展5300字(論文)】
- 床上用品項(xiàng)目實(shí)施方案和售后服務(wù)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論