RISC處理器設(shè)計_第1頁
RISC處理器設(shè)計_第2頁
RISC處理器設(shè)計_第3頁
RISC處理器設(shè)計_第4頁
RISC處理器設(shè)計_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、RISC處理器設(shè)計胡偉武胡偉武RISC系統(tǒng)結(jié)構(gòu)基本思想:簡單結(jié)構(gòu)的高效實現(xiàn)基本思想:簡單結(jié)構(gòu)的高效實現(xiàn)l 體:指令系統(tǒng)結(jié)構(gòu)體:指令系統(tǒng)結(jié)構(gòu)u操作:簡單操作:簡單u數(shù)據(jù):數(shù)據(jù):Load-Store結(jié)構(gòu),尋址方式簡單結(jié)構(gòu),尋址方式簡單u編碼:定長編碼:定長l 相:實現(xiàn)與使用方式相:實現(xiàn)與使用方式u簡化硬件,提高主頻簡化硬件,提高主頻u指令流水線技術(shù):寄存器操作容易解決相關(guān)指令流水線技術(shù):寄存器操作容易解決相關(guān)u編譯技術(shù)編譯技術(shù)l 用:性能及兼容性用:性能及兼容性u性能:每條指令周期數(shù)差不多,主頻高,性能:每條指令周期數(shù)差不多,主頻高,CPI高高u流水及多發(fā)射技術(shù)在提高性能的前提下不影響兼容性流水及

2、多發(fā)射技術(shù)在提高性能的前提下不影響兼容性指令系統(tǒng)結(jié)構(gòu)指令系統(tǒng)的設(shè)計原則l 指令系統(tǒng)在計算機中的位置指令系統(tǒng)在計算機中的位置u硬件和軟件的界面硬件和軟件的界面l 設(shè)計要求設(shè)計要求u兼容性:在很長時間內(nèi)保持不變兼容性:在很長時間內(nèi)保持不變u通用性:適合于各種應(yīng)用通用性:適合于各種應(yīng)用u方便:編譯器或程序員覺得好用,有較多功能方便:編譯器或程序員覺得好用,有較多功能u高效:便于高效:便于CPU設(shè)計的優(yōu)化,不同的實現(xiàn)方法得到設(shè)計的優(yōu)化,不同的實現(xiàn)方法得到不同的性能不同的性能指令系統(tǒng)與系統(tǒng)結(jié)構(gòu)l 50-60年代年代uComputer Architecture=Computer Arithmeticl 7

3、0-80年代年代uComputer Architecture=Instruction Set Designl 90年代以后年代以后uComputer Architecture=Design of CPU, Memory System, I/O System, MultiprocessorsuSearching the space of possible designs at all levels of computer systems影響指令系統(tǒng)設(shè)計的因素l 工藝技術(shù)工藝技術(shù)u早期的硬件昂貴,簡化硬件是指令系統(tǒng)設(shè)計的主要因素早期的硬件昂貴,簡化硬件是指令系統(tǒng)設(shè)計的主要因素u如何發(fā)揮存儲層次的效

4、率,如何利用芯片面積如何發(fā)揮存儲層次的效率,如何利用芯片面積l 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)u增加指令功能還是提高主頻?增加指令功能還是提高主頻?u并行性:并行性:SIMD、向量、多發(fā)射(兼容性好)、向量、多發(fā)射(兼容性好)、PIMl 操作系統(tǒng)操作系統(tǒng)u多進(jìn)程支持、虛地址空間等多進(jìn)程支持、虛地址空間等l 編譯技術(shù)與程序設(shè)計語言編譯技術(shù)與程序設(shè)計語言u指令的表達(dá)能力指令的表達(dá)能力l 應(yīng)用程序應(yīng)用程序u兼容性兼容性工藝技術(shù)的發(fā)展(1)l 工藝技術(shù)是處理器技術(shù)發(fā)展的源動力工藝技術(shù)是處理器技術(shù)發(fā)展的源動力u集成度及集成度及CPU主頻提高快,訪存延遲提高慢主頻提高快,訪存延遲提高慢u1990年:年: 33MHz I

5、ntel 386, 80ns訪存延遲訪存延遲u1996年:年:266MHz Intel PII, 60ns訪存延遲訪存延遲l 上述趨勢影響系統(tǒng)結(jié)構(gòu)研究的內(nèi)容上述趨勢影響系統(tǒng)結(jié)構(gòu)研究的內(nèi)容u并行技術(shù):流水線、多處理器、磁盤陣列并行技術(shù):流水線、多處理器、磁盤陣列u存儲層次存儲層次u網(wǎng)絡(luò)網(wǎng)絡(luò)集成度延遲邏輯電路2 倍倍/3 年年2 倍倍/3 年年存儲器4 倍倍/3 年年2 倍倍/10 年年磁盤4 倍倍/3 年年2 倍倍/10 年年工藝技術(shù)的發(fā)展(2)l Moore定律定律uIntel的創(chuàng)始人之一的創(chuàng)始人之一Gordon Moore在在1971年預(yù)言每年預(yù)言每18個月芯片集成度增加一倍。個月芯片集成度

6、增加一倍。u30年來這個預(yù)言基本正確,普遍認(rèn)為這個定律可以年來這個預(yù)言基本正確,普遍認(rèn)為這個定律可以適用到適用到2010年年u2002年達(dá)到每個芯片年達(dá)到每個芯片100,000,000個晶體管個晶體管u2910年達(dá)到每個芯片年達(dá)到每個芯片1,000,000,000個晶體管個晶體管u這么多晶體管用來做什么?這么多晶體管用來做什么?=系統(tǒng)結(jié)構(gòu)的研究系統(tǒng)結(jié)構(gòu)的研究工藝技術(shù)的發(fā)展(3)l Moore定律:處理器集成度提高定律:處理器集成度提高工藝技術(shù)的發(fā)展(4)l Moore定律:存儲器集成度的提高定律:存儲器集成度的提高工藝技術(shù)對指令系統(tǒng)的影響l 早期的指令系統(tǒng)設(shè)計主要考慮如何減少硬件早期的指令系統(tǒng)

7、設(shè)計主要考慮如何減少硬件l 隨著集成度的提高,如何有效利用芯片面積成隨著集成度的提高,如何有效利用芯片面積成為系統(tǒng)結(jié)構(gòu)重要研究內(nèi)容,一些新的并行結(jié)構(gòu)為系統(tǒng)結(jié)構(gòu)重要研究內(nèi)容,一些新的并行結(jié)構(gòu)如如PIM、SIMD等必然影響指令系統(tǒng)等必然影響指令系統(tǒng)u多發(fā)射技術(shù)的兼容性好多發(fā)射技術(shù)的兼容性好l 由于由于CPU與存儲器的速度差距,指令系統(tǒng)的設(shè)與存儲器的速度差距,指令系統(tǒng)的設(shè)計應(yīng)能較好地利用存儲層次,如通過并行或流計應(yīng)能較好地利用存儲層次,如通過并行或流水容忍延遲。水容忍延遲。微處理器技術(shù)的發(fā)展(1)l 通常微處理器指單片上的處理器通常微處理器指單片上的處理器u1971年年Intel設(shè)計出第一個商品化微

8、處理器。設(shè)計出第一個商品化微處理器。u70年代以來,微處理器的性能提高速度遠(yuǎn)大于大型年代以來,微處理器的性能提高速度遠(yuǎn)大于大型機或小型機。機或小型機。u目前幾乎所有的計算機系統(tǒng)都基于微處理器目前幾乎所有的計算機系統(tǒng)都基于微處理器u微處理器性能的提高不僅得益于微電子技術(shù),更加微處理器性能的提高不僅得益于微電子技術(shù),更加得益于系統(tǒng)結(jié)構(gòu)技術(shù)(近年來尤其如此)。得益于系統(tǒng)結(jié)構(gòu)技術(shù)(近年來尤其如此)。u主頻每主頻每3年增加一倍,微處理器速度每年增加一倍,微處理器速度每18個月增加個月增加一倍(約每年增加一倍(約每年增加50%)。性能價格比每年增加)。性能價格比每年增加70%。微處理器技術(shù)的發(fā)展(2)l

9、微處理器與其它計算機的性能提高速度微處理器與其它計算機的性能提高速度微處理器技術(shù)的發(fā)展(3)l 微處理器性能提高越來越快微處理器性能提高越來越快系統(tǒng)結(jié)構(gòu)對指令系統(tǒng)的影響l 指令系統(tǒng)本身是系統(tǒng)結(jié)構(gòu)設(shè)計的一部分指令系統(tǒng)本身是系統(tǒng)結(jié)構(gòu)設(shè)計的一部分l 不改變指令系統(tǒng)的前提下提高性能,如流水、不改變指令系統(tǒng)的前提下提高性能,如流水、多發(fā)射等多發(fā)射等l 指令系統(tǒng)的兼容性與系統(tǒng)結(jié)構(gòu)發(fā)展的矛盾關(guān)系指令系統(tǒng)的兼容性與系統(tǒng)結(jié)構(gòu)發(fā)展的矛盾關(guān)系uIntel的做法的做法編譯技術(shù)對指令系統(tǒng)的影響l 指令是編譯器的工作結(jié)果指令是編譯器的工作結(jié)果l 早期的指令系統(tǒng)主要考慮如何便于編程早期的指令系統(tǒng)主要考慮如何便于編程l 編譯

10、器的影響編譯器的影響u寄存器分配寄存器分配F堆棧用于存放局部變量,全局?jǐn)?shù)據(jù)區(qū)用于存放靜態(tài)數(shù)據(jù),堆棧用于存放局部變量,全局?jǐn)?shù)據(jù)區(qū)用于存放靜態(tài)數(shù)據(jù),堆用于存放動態(tài)數(shù)據(jù)。堆用于存放動態(tài)數(shù)據(jù)。F寄存器分配要考慮一致性問題,可以被寄存器分配要考慮一致性問題,可以被aliased的數(shù)據(jù)不能的數(shù)據(jù)不能分配在寄存器中(分配在寄存器中(C中的中的volatile)。)。F為使編譯器有效使用為使編譯器有效使用graph coloring啟發(fā)式算法,至少需啟發(fā)式算法,至少需要要16個通用寄存器。個通用寄存器。u規(guī)整:所有訪存指令都可用所有尋址方式規(guī)整:所有訪存指令都可用所有尋址方式u簡單:簡化簡單:簡化trade-

11、offs,允許編譯時確定常量,只提,允許編譯時確定常量,只提供基本的通用操作。供基本的通用操作。設(shè)計指令系統(tǒng)考慮的因素l 操作操作u操作種類操作種類l 操作數(shù)操作數(shù)u堆棧型、累加器型、寄存器型堆棧型、累加器型、寄存器型u操作數(shù)個數(shù)和類型操作數(shù)個數(shù)和類型u訪存操作數(shù)的尋址方式:寄存器、立即數(shù)、直接、訪存操作數(shù)的尋址方式:寄存器、立即數(shù)、直接、間接間接.l 指令編碼指令編碼u定長、變長定長、變長指令系統(tǒng)的類型(1)l 根據(jù)指令使用數(shù)據(jù)的方式,指令系統(tǒng)分為以下幾類根據(jù)指令使用數(shù)據(jù)的方式,指令系統(tǒng)分為以下幾類u堆棧型堆棧型(Stack):操作數(shù)在棧頂,運算操作不用指定操作數(shù):操作數(shù)在棧頂,運算操作不用

12、指定操作數(shù)u累加器型累加器型(Accumulator):一個操作數(shù)總在累加器中,結(jié)果:一個操作數(shù)總在累加器中,結(jié)果也寫回累加器也寫回累加器u寄存器型寄存器型(Register),每個操作數(shù)都由指令指定,每個操作數(shù)都由指令指定FRegister-Register型,又稱為型,又稱為Load-Store型,所有運算操作的操作型,所有運算操作的操作數(shù)都在寄存器中數(shù)都在寄存器中FRegister-Memory型,型,F(xiàn)Memory-Memory型,型,l 上述三種指令系統(tǒng)類型也可以分別稱為上述三種指令系統(tǒng)類型也可以分別稱為0地址指令,地址指令,單地址指令,以及多地址指令單地址指令,以及多地址指令指令系

13、統(tǒng)的類型(2)l 例子:不同指令系統(tǒng)完成例子:不同指令系統(tǒng)完成C=A+B的指令序列,的指令序列,假設(shè)假設(shè)A、B、C在內(nèi)存中不同的單元在內(nèi)存中不同的單元StackAccumulatorRegister(register-memory)Register(load-store)Push ALoad ALoad R1, ALoad R1,APush BAdd BAdd R1, BLoad R2,BAddStore CStore C, R1Add R3,R1,R2Pop CStore C R3指令系統(tǒng)的類型(3)l 早期的計算機多用堆棧和累加器型指令早期的計算機多用堆棧和累加器型指令u出于降低硬件復(fù)雜度

14、的考慮出于降低硬件復(fù)雜度的考慮u現(xiàn)在已經(jīng)不用(現(xiàn)在已經(jīng)不用(Intel有點例外)有點例外)l 80年代后的機器主要是寄存器型年代后的機器主要是寄存器型u訪問寄存器比訪問存儲器快訪問寄存器比訪問存儲器快u便于編譯器使用和優(yōu)化便于編譯器使用和優(yōu)化u寄存器可以用來存放變量,減少訪存次數(shù)寄存器可以用來存放變量,減少訪存次數(shù)寄存器指令再分類l 分類標(biāo)準(zhǔn)分類標(biāo)準(zhǔn)u運算操作中操作數(shù)的個數(shù)運算操作中操作數(shù)的個數(shù)u運算操作中存儲器操作數(shù)的個數(shù)運算操作中存儲器操作數(shù)的個數(shù)訪存?zhèn)€數(shù)訪存?zhèn)€數(shù)/操作操作數(shù)個數(shù)數(shù)個數(shù)機器例子機器例子優(yōu)點優(yōu)點缺點缺點0/3SPARC, MIPS,PA, Alpha,PowerPC簡單、定長

15、指令,簡單、定長指令,硬件簡單、每條指硬件簡單、每條指令時鐘數(shù)少,主頻令時鐘數(shù)少,主頻高高完成同一任務(wù)指令完成同一任務(wù)指令數(shù)多,定長指令浪數(shù)多,定長指令浪費空間費空間1/2X86, 68000不用取數(shù)直接用,不用取數(shù)直接用,指令緊湊,空間效指令緊湊,空間效率高率高指令執(zhí)行周期長,指令執(zhí)行周期長,訪存操作數(shù)在指令訪存操作數(shù)在指令中位數(shù)多,指令間中位數(shù)多,指令間相關(guān)性較難判斷相關(guān)性較難判斷2/2,3/3VAX完成同一任務(wù)指令完成同一任務(wù)指令最少,指令最緊湊最少,指令最緊湊指令長度變化大,指令長度變化大,執(zhí)行指令周期變化執(zhí)行指令周期變化大,訪存瓶頸,指大,訪存瓶頸,指令間相關(guān)型難判斷令間相關(guān)型難判斷

16、存儲訪問的表示l 兩個方面兩個方面u如何表示地址:尋址方式如何表示地址:尋址方式u給定一個地址,訪問目標(biāo)及其長度給定一個地址,訪問目標(biāo)及其長度訪存對象l 存儲器按字節(jié)編址:所有地址都是字節(jié)地址存儲器按字節(jié)編址:所有地址都是字節(jié)地址l 訪問長度:字節(jié)、半字、字、雙字訪問長度:字節(jié)、半字、字、雙字l 地址對齊簡化硬件設(shè)計:如字地址最低兩位為地址對齊簡化硬件設(shè)計:如字地址最低兩位為0l Big Endian和和Little Endian:影響不同機器間的:影響不同機器間的數(shù)據(jù)兼容性。數(shù)據(jù)兼容性。uLittle Endian地址指向一個字的最右字節(jié),地址指向一個字的最右字節(jié),Big Endian 反之

17、反之尋址方式(1)l 如何在指令中表示訪存地址如何在指令中表示訪存地址尋尋址址方方式式格格式式含含義義RegisterADD R1, R2regsR1=regR1+regR2ImmediateADD R1, #2regsR1=regR1+2DisplacementADD R1, 100(R2)regsR1=regR1+mem100+regR2Reg. IndirectADD R1, (R2)regsR1=regR1+memregR2IndexedADD R1, (R2+R3)regsR1=regR1+memregR2+regR3AbsoluteADD R1, (100)regsR1=regR1

18、+mem100Mem. IndirectADD R1, (R2)regsR1=regR1+memmemregR2AutoincrementADD R1, (R2)+regsR1=regR1+memregR2,regR2=regR2+dAutodecrementADD R1, -(R2)regR2=regR2-d,regsR1=regR1+memregR2ScaledADD R1, 100(R2)R3regsR1=regR1+mem100+regR2+regR3*d尋址方式(2)l 常用尋址方式常用尋址方式u三個程序在三個程序在VAX機上的統(tǒng)計機上的統(tǒng)計0 00.10.10.20.20.30.3

19、0.40.40.50.50.60.6Disp.Disp.Imm.Imm.Reg.Reg.Ind.Ind.ScaledScaledMem.Mem.Ind.Ind.TexTexSpiceSpicegccgcc尋址方式(3)l 至少支持至少支持Register, Immediate, Displacement, 和和Register indirect四種尋址方式四種尋址方式l 地址偏移量位數(shù)地址偏移量位數(shù)12-16位位l 立即數(shù)位數(shù)立即數(shù)位數(shù)8-16位位指令操作l Rule of Thumb:最常用的指令是簡單指令:最常用的指令是簡單指令uSPECint92的的X86指令統(tǒng)計指令統(tǒng)計u把這些簡單指令

20、做得快一點,其它慢一點沒關(guān)系把這些簡單指令做得快一點,其它慢一點沒關(guān)系編號編號指令指令比例比例1load22%2conditional branch20%3compare16%4store12%5add8%6and6%7sub5%8move reg-reg4%9call1%10return1%總計總計96%轉(zhuǎn)移指令特點l 條件轉(zhuǎn)移最多條件轉(zhuǎn)移最多u偏移量至少要偏移量至少要8位位u轉(zhuǎn)移條件簡單:與轉(zhuǎn)移條件簡單:與0比較的最多比較的最多0 00.10.10.20.20.30.30.40.40.50.50.60.60.70.70.80.80.90.9branchbranchjumpjumpcall/

21、retcall/retIntIntFPFP指令編碼l 需要考慮的因素需要考慮的因素u操作碼部分比較簡單操作碼部分比較簡單u操作數(shù)的個數(shù)、類型對指令長度影響很大操作數(shù)的個數(shù)、類型對指令長度影響很大u變長指令程序代碼短、定長指令實現(xiàn)簡單變長指令程序代碼短、定長指令實現(xiàn)簡單l 編碼方法編碼方法u定長:定長:RISCu變長:變長:VAX的指令的指令1-53字節(jié),其中字節(jié),其中ADD指令指令3-19字節(jié)字節(jié)u混合混合從上述分析可以看出l 簡單操作和簡單尋址方式用得最多簡單操作和簡單尋址方式用得最多u10簡單操作指令占簡單操作指令占96%u寄存器寄存器, 立即數(shù)立即數(shù), 偏移尋址偏移尋址, 寄存器間接尋址

22、四種尋址方式寄存器間接尋址四種尋址方式l 簡單指令便于高效實現(xiàn)和使用簡單指令便于高效實現(xiàn)和使用uload-store結(jié)構(gòu)簡化硬件設(shè)計,提高主頻結(jié)構(gòu)簡化硬件設(shè)計,提高主頻u定長簡化譯碼定長簡化譯碼u符合編譯器符合編譯器“常用的做得快,少用的只要對常用的做得快,少用的只要對”的原則的原則l 硬件優(yōu)化應(yīng)充分考慮兼容性硬件優(yōu)化應(yīng)充分考慮兼容性u流水、多發(fā)射不改變指令系統(tǒng)流水、多發(fā)射不改變指令系統(tǒng)u流水、多發(fā)射技術(shù)在流水、多發(fā)射技術(shù)在load-store指令系統(tǒng)上容易實現(xiàn),否指令系統(tǒng)上容易實現(xiàn),否則相關(guān)性分析困難則相關(guān)性分析困難l 上述原因呼喚上述原因呼喚RISC系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)一個“典型”的RISCl

23、 32位定長指令位定長指令l 32個個32位通用寄存器位通用寄存器l 三寄存器操作數(shù)運算指令三寄存器操作數(shù)運算指令l Load-Store指令,基址指令,基址+偏移量尋址方式偏移量尋址方式l 簡單轉(zhuǎn)移條件簡單轉(zhuǎn)移條件l Delay-BranchMIPS指令格式OP(6)RS1(5)RS2(5)RD(5)SA(5)OPX(6)R-typeOP(6)RS(5)RD(5)ImmediateI-typeOP(6)targetJ-typeRISC發(fā)展過程(1)l 1964年年CDC公司推出的公司推出的CDC 6600是第一臺超是第一臺超級計算機,具備了級計算機,具備了RISC的一些基本特征的一些基本特征

24、uCDC 6600的設(shè)計者認(rèn)識到為了實現(xiàn)有效的流水技的設(shè)計者認(rèn)識到為了實現(xiàn)有效的流水技術(shù),需要簡化體系結(jié)構(gòu)術(shù),需要簡化體系結(jié)構(gòu)uLoad-Store結(jié)構(gòu)結(jié)構(gòu)u記分板記分板(Score-Boarding)動態(tài)流水線調(diào)度動態(tài)流水線調(diào)度u亂序執(zhí)行亂序執(zhí)行(Out-of-Order)技術(shù)技術(shù)l 1976年的年的Cray-1向量機使用了與向量機使用了與CDC 6600類類似的想法似的想法uCray是是CDC 6600的主要設(shè)計者之一的主要設(shè)計者之一l 上述簡化結(jié)構(gòu)以高效實現(xiàn)的想法在上述簡化結(jié)構(gòu)以高效實現(xiàn)的想法在60-70年代年代沒有受到小型機和微處理器設(shè)計者的重視沒有受到小型機和微處理器設(shè)計者的重視RI

25、SC發(fā)展過程(2)l 1968年年John Cocke在在IBM的的San Jose研究中心開始研究中心開始ASC(Advanced Scientific Computer)項目的研究項目的研究u基本思想是讓編譯器做更多的指令調(diào)度以減少硬件復(fù)雜度基本思想是讓編譯器做更多的指令調(diào)度以減少硬件復(fù)雜度u還提出了每個周期發(fā)射多條指令的思想還提出了每個周期發(fā)射多條指令的思想uASC計劃后來被取消,計劃后來被取消,Cocke在在1971年到年到Future Systeml 1975年年Cocke到到IBM的的Yorktown研究中心開始研制研究中心開始研制IBM 801,801是最早開始設(shè)計的是最早開始設(shè)

26、計的RISC處理器處理器uCocke獲得了獲得了Eckert-Mauchly和和Turing獎獎u801是是PowerPC的前身的前身l 比比801稍晚開始的有稍晚開始的有Patterson在在Berkeley的的RISC-I及及RISC-II與與Hennessy在在Standford的的MIPS項目項目u這兩個大學(xué)的研究生曾參與這兩個大學(xué)的研究生曾參與801項目的研究,后來返回大學(xué)項目的研究,后來返回大學(xué)uRISC-II是是SPARC的前身,的前身,MIPS項目是項目是MIPS處理器前身處理器前身RISC發(fā)展過程(3)l 801的項目經(jīng)理的項目經(jīng)理Joel Birnbaum到到HP創(chuàng)立了創(chuàng)立

27、了PA-RISCl DEC在推出在推出Alpha之前曾經(jīng)使用之前曾經(jīng)使用MIPS處理器三年處理器三年l 1994年年Intel和和HP宣布使用相同的系統(tǒng)結(jié)構(gòu)宣布使用相同的系統(tǒng)結(jié)構(gòu)l 從上述發(fā)展過程不難解釋剛開始時五個從上述發(fā)展過程不難解釋剛開始時五個RISC處理器處理器的相似性的相似性l 后來每個后來每個RISC處理器有了不同的發(fā)展處理器有了不同的發(fā)展u如如Alpha的指令簡單,超流水結(jié)構(gòu),流水級多,主頻高,的指令簡單,超流水結(jié)構(gòu),流水級多,主頻高,“a speed demon”uPowerPC指令功能強,靈活,甚至有點象指令功能強,靈活,甚至有點象CISC,“a brainiac”常見RIS

28、C指令系統(tǒng)比較l 通過比較常見通過比較常見RISC處理器的指令系統(tǒng)加深對處理器的指令系統(tǒng)加深對RISC的了解的了解uMIPS IV (Alpha與與MIPS很象很象)uPA-RISC 1.1 and 2.0uPowerPCuSPARC v.9l 通過以下方面進(jìn)行比較通過以下方面進(jìn)行比較u指令格式指令格式u尋址方式尋址方式u指令功能指令功能RISC指令系統(tǒng)的發(fā)展MIPSALPHAPA-RISCSPARCPowerPC1986MIPS 1PA-RISC 1.0RT/PC1987SPARC v819881989MIPS II1990PA-RISC 1.1Power 119911992MIPS III

29、(64b)Alpha(64b)1993Power 2&Power PC1994MIPS IV(64b)SPARC v9(64b)1995Power PC(64b)1996PA-RISC 2.0(64b)指令格式比較OP(6)RS1(5)RS2(5)Const(16)MIPSOP(6)RD(5)RS1(5)Const(16)PowerPCOP(6)RS1(5)RS2(5)Const(11)OPX(6)PA-RISCRS1(5)1RD(5)OP(2)OPX(6)Const(13)SPARCOP(6)RS1(5)RS2(5)RD(5)SA(5)OPX(6)MIPSOP(6)RD(5)RS1(

30、5)RS2(5)OPX(11)PowerPCOP(6)RS1(5)RS2(5)RD(5)OPX(11)PA-RISCRS1(5)RS2(5)0RD(5)OP(2)OPX(6)OPX(8)SPARCOP(6)RS1(5) OPX/RS2Const(14)MIPSOP(6)OPX(5)RS1(5)Const(16)PowerPCOP(6)RS1(5)RS2(5)Const(11)OPX(3)PA-RISCOP(2)OPX(11)Const(19)SPARCOPXO COP(6)Const(24)MIPSOP(6)Const(26)PowerPCOP(6)RS1(5)RS2(5)Const(14)P

31、A-RISCOP(2)Const(19)SPARCOPXO CReg-RegReg-ImmBranchJump/Call尋址方式比較尋尋址址方方式式MIPS IVPA-RISC 1.0 PowerPC SPARC v9RegisterImm.Disp. (reg+offser)Indexed(reg+reg)(FP)Scaled(reg+scaled reg)(reg+offset+update reg)(reg+reg+update reg)指令功能比較l 所有所有RISC處理器都有一些公共指令處理器都有一些公共指令uload/store指令指令u算術(shù)運算及邏輯指令算術(shù)運算及邏輯指令u控制流

32、指令控制流指令l 不同處理器在比較及轉(zhuǎn)移指令時有較大不同不同處理器在比較及轉(zhuǎn)移指令時有較大不同公共RISC指令(1)l Load/Store指令指令u對任何對任何GPR和和FPR進(jìn)行存取操作(通常進(jìn)行存取操作(通常R0總是為總是為0)uMIPS的例子的例子指指令令指指令令功功能能LW R1, 32(R2)取取字字,偏偏移移量量尋尋址址LW R1, 32(R0)取取字字,絕絕對對地地址址LB R1, 30(R2)取取字字節(jié)節(jié),高高 24 位位用用符符號號位位擴擴充充LBU R1, 30(R2)取取字字節(jié)節(jié),高高 24 位位擴擴 0LH R1, 30(R2)取取半半字字,高高 16 位位用用符符號

33、號位位擴擴充充SH 30(R2), R1存存 R1 的的低低 16 位位SB 31(R2), R1存存 R1 的的低低 8 位位LF F0, 50(R2)取取字字到到 F0LD F0, 52(R2)取取雙雙字字到到 F1 和和 F0公共RISC指令(2)l ALU指令指令u所有所有ALU指令都是寄存器型的指令都是寄存器型的uALU的常見操作有加、減、與、或、異或、移位、比較,的常見操作有加、減、與、或、異或、移位、比較,乘除法在專門的部件進(jìn)行乘除法在專門的部件進(jìn)行uMIPS的例子的例子指指令令指指令令功功能能ADD R1, R2, R3R2 的的內(nèi)內(nèi)容容和和 R3 的的內(nèi)內(nèi)容容相相加加,結(jié)結(jié)果

34、果放放 R1ADDI R1, R2, #3R2 的的內(nèi)內(nèi)容容和和立立即即數(shù)數(shù) 3 相相加加,結(jié)結(jié)果果放放 R1ADDI R1, R0, #3相相當(dāng)當(dāng)于于 MOV R1, #3ADD R1, R0, R3相相當(dāng)當(dāng)于于 MOV R1, R3STL R1, R2, R3若若 R2R3, 則則 R1=0, 否否則則 R1=1(Set Less Than)公共RISC指令(3)l 控制流指令控制流指令u絕對跳轉(zhuǎn)絕對跳轉(zhuǎn)jump和相對轉(zhuǎn)移和相對轉(zhuǎn)移branchuMIPS的例子的例子指指令令指指令令功功能能J name指指令令中中26位位立立即即數(shù)數(shù)左左移移兩兩位位,替替換換PC+4 的的低低28 位位JA

35、L name同同上上,但但先先把把PC+4存存到到R31JALR R2把把PC+4存存到到R31并并置置PC為為R2的的值值BEQZ R2, name若若R2=0,PC=PC+offsetBNEZ R2, name若若R2=0,PC=PC+offset比較及條件轉(zhuǎn)移(1)l 轉(zhuǎn)移條件轉(zhuǎn)移條件uSPARC v.8使用使用4位條件碼位條件碼(CC),該條件碼在程序狀態(tài)字中,該條件碼在程序狀態(tài)字中F整數(shù)運算指令設(shè)置整數(shù)運算指令設(shè)置CC,條件轉(zhuǎn)移指令檢測,條件轉(zhuǎn)移指令檢測CCF浮點運算有另外兩位浮點運算有另外兩位CCFv.9為了支持為了支持64位運算增加了位運算增加了4位整數(shù)位整數(shù)CC,3位浮點位浮點

36、CCuMIPS直接比較寄存器內(nèi)容判斷是否轉(zhuǎn)移直接比較寄存器內(nèi)容判斷是否轉(zhuǎn)移F浮點部件有一位條件碼,記錄浮點部件有一位條件碼,記錄cmp指令的結(jié)果指令的結(jié)果uPowerPC有有4位位CC,一個條件寄存器中有,一個條件寄存器中有8份份4位位CCF整數(shù)和浮點運算各整數(shù)和浮點運算各1位,其它用于比較指令。位,其它用于比較指令。FBranch指令需指定根據(jù)哪一位進(jìn)行轉(zhuǎn)移指令需指定根據(jù)哪一位進(jìn)行轉(zhuǎn)移F運算指令中有一位指定該指令是否影響運算指令中有一位指定該指令是否影響CCuPA-RISC有多中選擇,最常用的是比較兩個寄存器的值并有多中選擇,最常用的是比較兩個寄存器的值并根據(jù)結(jié)果決定是否轉(zhuǎn)移根據(jù)結(jié)果決定是否

37、轉(zhuǎn)移比較及條件轉(zhuǎn)移(2)l Delayed Branch技術(shù)技術(shù)u緊挨緊挨Branch指令后面的指令視為指令后面的指令視為Branch前面的指令執(zhí)行可前面的指令執(zhí)行可以避免流水線斷流。以避免流水線斷流。u轉(zhuǎn)移不成功時取消已執(zhí)行的轉(zhuǎn)移不成功時取消已執(zhí)行的delay slot指令可以把轉(zhuǎn)移目標(biāo)指令可以把轉(zhuǎn)移目標(biāo)的指令安排在的指令安排在delay slot中。中。u轉(zhuǎn)移成功時取消已執(zhí)行的轉(zhuǎn)移成功時取消已執(zhí)行的delay slot指令可以把轉(zhuǎn)移不成功指令可以把轉(zhuǎn)移不成功的指令安排在的指令安排在delay slot中。中。PowerPCMIPSSPARCPA-RISCPlain Branch只只有有轉(zhuǎn)轉(zhuǎn)

38、移移不不成成功功時時執(zhí)執(zhí)行行后后續(xù)續(xù)指指令令無無無無無無DelayedBranch無無總總是是執(zhí)執(zhí)行行后后續(xù)續(xù)指指令令總總是是執(zhí)執(zhí)行行后后續(xù)續(xù)指指令令總總是是執(zhí)執(zhí)行行后后續(xù)續(xù)指指令令取取消消 DelayedBranch無無轉(zhuǎn)轉(zhuǎn)移移不不成成功功時時取取消消已已執(zhí)執(zhí)行行的的后后續(xù)續(xù)指指令令轉(zhuǎn)轉(zhuǎn)移移不不成成功功時時取取消消已已執(zhí)執(zhí)行行的的后后續(xù)續(xù)指指令令向向前前轉(zhuǎn)轉(zhuǎn)移移成成功功或或向向后后轉(zhuǎn)轉(zhuǎn)移移不不成成功功時時取取消消已已執(zhí)執(zhí)行行的的后后續(xù)續(xù)指指令令指令系統(tǒng)的其它功能l 下面指令在前述的指令系統(tǒng)中也很常見(至少在兩個下面指令在前述的指令系統(tǒng)中也很常見(至少在兩個指令系統(tǒng)中出現(xiàn))指令系統(tǒng)中出現(xiàn))uA

39、tomic Swap指令指令u64位指令,位指令,ALPHA本來就是本來就是64位的,因此不區(qū)分位的,因此不區(qū)分64位指令位指令u預(yù)取指令預(yù)取指令uBig Endian與與Little Endian的切換的切換u共享存儲同步指令共享存儲同步指令u等等Atomic Swap指令l 以以MIPS的的LL和和SC指令指令 為例為例uLL(Load Linked)取數(shù)且置系統(tǒng)中取數(shù)且置系統(tǒng)中LLbit為為1uLL為為1時,處理器檢查相應(yīng)單元是否被修改,如果其它處理時,處理器檢查相應(yīng)單元是否被修改,如果其它處理器或設(shè)備訪問了相應(yīng)單元或執(zhí)行了器或設(shè)備訪問了相應(yīng)單元或執(zhí)行了ERET操作,操作,LLbit置為

40、置為0u執(zhí)行執(zhí)行SC(Store Conditional)時若時若Llbit為為1,則成功,目標(biāo)寄,則成功,目標(biāo)寄存器為存器為1;否則存數(shù)不成功,目標(biāo)寄存器為;否則存數(shù)不成功,目標(biāo)寄存器為0L1: LL R1, (R3) ADD R2, R1, 1 SC R2, (R3) BEQ R2, 0, L1 NOPMIPS部分指令特色(1)l 作為比較早期的作為比較早期的RISC系統(tǒng),系統(tǒng),MIPS的指令系統(tǒng)已經(jīng)發(fā)的指令系統(tǒng)已經(jīng)發(fā)展了四代,不斷增加新指令,包括展了四代,不斷增加新指令,包括u邊界不對齊的數(shù)據(jù)傳送邊界不對齊的數(shù)據(jù)傳送uTLB指令(在指令(在MIPS中中TLB失效由軟件解決)失效由軟件解決

41、)FTLBI,TLBR,TLBW,TLBPuSYSCALLuCTCi, CFCiuNOR指令指令uJUMP/CALL指令,絕對跳轉(zhuǎn),指令中的立即數(shù)左移兩位指令,絕對跳轉(zhuǎn),指令中的立即數(shù)左移兩位替換替換PC的低的低28位地址位地址u條件過程調(diào)用,條件過程調(diào)用,BGEZAL, BLTZALuLL/SC指令用于原子操作指令用于原子操作uRECIP和和RSQRT(Reciprocal)DAVEM100M104JOHNR2初始值初始值DAVNR2DAVER2執(zhí)行執(zhí)行“LWL, R2, 101”后后執(zhí)行執(zhí)行“LWR, R2, 104”后后DAVEM200M204JOHNR2初始值初始值DOHNR2DAVE

42、R2執(zhí)行執(zhí)行“LWL, R2, 203”后后執(zhí)行執(zhí)行“LWR, R2, 206”后后MIPS部分指令特色(2)l 邊界不對齊的數(shù)據(jù)傳送邊界不對齊的數(shù)據(jù)傳送SPARC部分指令特色(1)l 寄存器窗口寄存器窗口u多組寄存器用于不同進(jìn)程,多組寄存器用于不同進(jìn)程,8個全局寄存器用于傳遞參數(shù)等個全局寄存器用于傳遞參數(shù)等u2-32個寄存器穿口,每個個寄存器穿口,每個24個寄存器個寄存器u過程調(diào)用和退出不用把現(xiàn)場保留到存儲器過程調(diào)用和退出不用把現(xiàn)場保留到存儲器uSAVE和和RESTORE指令指令FSAVE做加法,源寄存器來自調(diào)用過程做加法,源寄存器來自調(diào)用過程(caller),目標(biāo)寄存器來自被,目標(biāo)寄存器來

43、自被調(diào)用過程調(diào)用過程(callee),該指令可用于自動修改堆棧指針。,該指令可用于自動修改堆棧指針。FRESTORE做加法,源寄存器來自被調(diào)用過程做加法,源寄存器來自被調(diào)用過程(callee),目標(biāo)寄存器,目標(biāo)寄存器來自調(diào)用過程來自調(diào)用過程(caller),該指令用來自動釋放堆棧,該指令用來自動釋放堆棧l “標(biāo)志標(biāo)志”加減指令加減指令u數(shù)據(jù)的低兩位指出數(shù)據(jù)類型數(shù)據(jù)的低兩位指出數(shù)據(jù)類型u適用于適用于LIPS和和Smalltalk等等SPARC部分指令特色(2)l 其它特色其它特色u轉(zhuǎn)移指令轉(zhuǎn)移指令JMPL把返回地址存在把返回地址存在Rd中,中,Rd為為R0時相當(dāng)于時相當(dāng)于JR,Rd為為R31時相

44、當(dāng)于時相當(dāng)于JALRu128浮點運算和數(shù)據(jù)傳送指令浮點運算和數(shù)據(jù)傳送指令u轉(zhuǎn)移指令給出轉(zhuǎn)移是否成功的預(yù)測轉(zhuǎn)移指令給出轉(zhuǎn)移是否成功的預(yù)測uPOPC計算一個操作數(shù)中計算一個操作數(shù)中“1”的個數(shù)的個數(shù)uCASA指令用于原子操作,把一個寄存器的值與一個內(nèi)指令用于原子操作,把一個寄存器的值與一個內(nèi)存單元的值比較,如果相等,把內(nèi)存的值與另一個寄存存單元的值比較,如果相等,把內(nèi)存的值與另一個寄存器的值交換器的值交換uILLTRAP:非法指令錯:非法指令錯u等等等等PowerPC部分指令特色l Link和和Count寄存器寄存器uLink寄存器用于保存返回地址,實現(xiàn)快速過程調(diào)用寄存器用于保存返回地址,實現(xiàn)快速

45、過程調(diào)用uCount寄存器用于循環(huán)計數(shù),每次自動遞減寄存器用于循環(huán)計數(shù),每次自動遞減u這兩個寄存器還可以放轉(zhuǎn)移地址這兩個寄存器還可以放轉(zhuǎn)移地址uPowerPC不用不用Delay Slotl 其它特色其它特色uLoad和和Store指令同時存取多個寄存器(多達(dá)指令同時存取多個寄存器(多達(dá)32個)個)uLoad和和Store字符串(變長或定長、對齊或不對齊)字符串(變長或定長、對齊或不對齊)u乘加和乘減指令乘加和乘減指令uLWARX/STWCX實現(xiàn)原子操作,類似于實現(xiàn)原子操作,類似于LL/SCu把數(shù)據(jù)預(yù)取到把數(shù)據(jù)預(yù)取到CACHE的指令的指令u多種移位指令,比較靈活。多種移位指令,比較靈活。PA-RISC部分指令特色l Nullificati

溫馨提示

  • 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

提交評論