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

下載本文檔

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

文檔簡介

1、RISC處理器設(shè)計,RISC系統(tǒng)結(jié)構(gòu),基本思想:簡單結(jié)構(gòu)的高效實現(xiàn) 體:指令系統(tǒng)結(jié)構(gòu) 操作:簡單 數(shù)據(jù):Load-Store結(jié)構(gòu),尋址方式簡單 編碼:定長 相:實現(xiàn)與使用方式 簡化硬件,提高主頻 指令流水線技術(shù):寄存器操作容易解決相關(guān) 編譯技術(shù) 用:性能及兼容性 性能:每條指令周期數(shù)差不多,主頻高,CPI高 流水及多發(fā)射技術(shù)在提高性能的前提下不影響兼容性,指令系統(tǒng)結(jié)構(gòu),指令系統(tǒng)的設(shè)計原則,指令系統(tǒng)在計算機中的位置 硬件和軟件的界面 設(shè)計要求 兼容性:在很長時間內(nèi)保持不變 通用性:適合于各種應(yīng)用 方便:編譯器或程序員覺得好用,有較多功能 高效:便于CPU設(shè)計的優(yōu)化,不同的實現(xiàn)方法得到不同的性能,

2、指令系統(tǒng)與系統(tǒng)結(jié)構(gòu),50-60年代 Computer Architecture=Computer Arithmetic 70-80年代 Computer Architecture=Instruction Set Design 90年代以后 Computer Architecture=Design of CPU, Memory System, I/O System, Multiprocessors Searching the space of possible designs at all levels of computer systems,影響指令系統(tǒng)設(shè)計的因素,工藝技術(shù) 早期的硬件昂貴,簡

3、化硬件是指令系統(tǒng)設(shè)計的主要因素 如何發(fā)揮存儲層次的效率,如何利用芯片面積 系統(tǒng)結(jié)構(gòu) 增加指令功能還是提高主頻? 并行性:SIMD、向量、多發(fā)射(兼容性好)、PIM 操作系統(tǒng) 多進程支持、虛地址空間等 編譯技術(shù)與程序設(shè)計語言 指令的表達能力 應(yīng)用程序 兼容性,工藝技術(shù)的發(fā)展(1),工藝技術(shù)是處理器技術(shù)發(fā)展的源動力 集成度及CPU主頻提高快,訪存延遲提高慢 1990年: 33MHz Intel 386, 80ns訪存延遲 1996年:266MHz Intel PII, 60ns訪存延遲 上述趨勢影響系統(tǒng)結(jié)構(gòu)研究的內(nèi)容 并行技術(shù):流水線、多處理器、磁盤陣列 存儲層次 網(wǎng)絡(luò),工藝技術(shù)的發(fā)展(2),Mo

4、ore定律 Intel的創(chuàng)始人之一Gordon Moore在1971年預(yù)言每18個月芯片集成度增加一倍。 30年來這個預(yù)言基本正確,普遍認為這個定律可以適用到2010年 2002年達到每個芯片100,000,000個晶體管 2910年達到每個芯片1,000,000,000個晶體管 這么多晶體管用來做什么?=系統(tǒng)結(jié)構(gòu)的研究,工藝技術(shù)的發(fā)展(3),Moore定律:處理器集成度提高,工藝技術(shù)的發(fā)展(4),Moore定律:存儲器集成度的提高,工藝技術(shù)對指令系統(tǒng)的影響,早期的指令系統(tǒng)設(shè)計主要考慮如何減少硬件 隨著集成度的提高,如何有效利用芯片面積成為系統(tǒng)結(jié)構(gòu)重要研究內(nèi)容,一些新的并行結(jié)構(gòu)如PIM、SIM

5、D等必然影響指令系統(tǒng) 多發(fā)射技術(shù)的兼容性好 由于CPU與存儲器的速度差距,指令系統(tǒng)的設(shè)計應(yīng)能較好地利用存儲層次,如通過并行或流水容忍延遲。,微處理器技術(shù)的發(fā)展(1),通常微處理器指單片上的處理器 1971年Intel設(shè)計出第一個商品化微處理器。 70年代以來,微處理器的性能提高速度遠大于大型機或小型機。 目前幾乎所有的計算機系統(tǒng)都基于微處理器 微處理器性能的提高不僅得益于微電子技術(shù),更加得益于系統(tǒng)結(jié)構(gòu)技術(shù)(近年來尤其如此)。 主頻每3年增加一倍,微處理器速度每18個月增加一倍(約每年增加50%)。性能價格比每年增加70%。,微處理器技術(shù)的發(fā)展(2),微處理器與其它計算機的性能提高速度,微處理器

6、技術(shù)的發(fā)展(3),微處理器性能提高越來越快,系統(tǒng)結(jié)構(gòu)對指令系統(tǒng)的影響,指令系統(tǒng)本身是系統(tǒng)結(jié)構(gòu)設(shè)計的一部分 不改變指令系統(tǒng)的前提下提高性能,如流水、多發(fā)射等 指令系統(tǒng)的兼容性與系統(tǒng)結(jié)構(gòu)發(fā)展的矛盾關(guān)系 Intel的做法,編譯技術(shù)對指令系統(tǒng)的影響,指令是編譯器的工作結(jié)果 早期的指令系統(tǒng)主要考慮如何便于編程 編譯器的影響 寄存器分配 堆棧用于存放局部變量,全局數(shù)據(jù)區(qū)用于存放靜態(tài)數(shù)據(jù),堆用于存放動態(tài)數(shù)據(jù)。 寄存器分配要考慮一致性問題,可以被aliased的數(shù)據(jù)不能分配在寄存器中(C中的volatile)。 為使編譯器有效使用graph coloring啟發(fā)式算法,至少需要16個通用寄存器。 規(guī)整:所有訪

7、存指令都可用所有尋址方式 簡單:簡化trade-offs,允許編譯時確定常量,只提供基本的通用操作。,設(shè)計指令系統(tǒng)考慮的因素,操作 操作種類 操作數(shù) 堆棧型、累加器型、寄存器型 操作數(shù)個數(shù)和類型 訪存操作數(shù)的尋址方式:寄存器、立即數(shù)、直接、間接. 指令編碼 定長、變長,指令系統(tǒng)的類型(1),根據(jù)指令使用數(shù)據(jù)的方式,指令系統(tǒng)分為以下幾類 堆棧型(Stack):操作數(shù)在棧頂,運算操作不用指定操作數(shù) 累加器型(Accumulator):一個操作數(shù)總在累加器中,結(jié)果也寫回累加器 寄存器型(Register),每個操作數(shù)都由指令指定 Register-Register型,又稱為Load-Store型,所

8、有運算操作的操作數(shù)都在寄存器中 Register-Memory型, Memory-Memory型, 上述三種指令系統(tǒng)類型也可以分別稱為0地址指令,單地址指令,以及多地址指令,指令系統(tǒng)的類型(2),例子:不同指令系統(tǒng)完成C=A+B的指令序列,假設(shè)A、B、C在內(nèi)存中不同的單元,指令系統(tǒng)的類型(3),早期的計算機多用堆棧和累加器型指令 出于降低硬件復(fù)雜度的考慮 現(xiàn)在已經(jīng)不用(Intel有點例外) 80年代后的機器主要是寄存器型 訪問寄存器比訪問存儲器快 便于編譯器使用和優(yōu)化 寄存器可以用來存放變量,減少訪存次數(shù),寄存器指令再分類,分類標準 運算操作中操作數(shù)的個數(shù) 運算操作中存儲器操作數(shù)的個數(shù),存儲訪

9、問的表示,兩個方面 如何表示地址:尋址方式 給定一個地址,訪問目標及其長度,訪存對象,存儲器按字節(jié)編址:所有地址都是字節(jié)地址 訪問長度:字節(jié)、半字、字、雙字 地址對齊簡化硬件設(shè)計:如字地址最低兩位為0 Big Endian和Little Endian:影響不同機器間的數(shù)據(jù)兼容性。 Little Endian地址指向一個字的最右字節(jié),Big Endian 反之,尋址方式(1),如何在指令中表示訪存地址,尋址方式(2),至少支持Register, Immediate, Displacement, 和Register indirect四種尋址方式 地址偏移量位數(shù)12-16位 立即數(shù)位數(shù)8-16位,指

10、令操作,Rule of Thumb:最常用的指令是簡單指令 SPECint92的X86指令統(tǒng)計 把這些簡單指令做得快一點,其它慢一點沒關(guān)系,轉(zhuǎn)移指令特點,條件轉(zhuǎn)移最多 偏移量至少要8位 轉(zhuǎn)移條件簡單:與0比較的最多,指令編碼,需要考慮的因素 操作碼部分比較簡單 操作數(shù)的個數(shù)、類型對指令長度影響很大 變長指令程序代碼短、定長指令實現(xiàn)簡單 編碼方法 定長:RISC 變長:VAX的指令1-53字節(jié),其中ADD指令3-19字節(jié) 混合,從上述分析可以看出,簡單操作和簡單尋址方式用得最多 10簡單操作指令占96% 寄存器, 立即數(shù), 偏移尋址, 寄存器間接尋址四種尋址方式 簡單指令便于高效實現(xiàn)和使用 lo

11、ad-store結(jié)構(gòu)簡化硬件設(shè)計,提高主頻 定長簡化譯碼 符合編譯器“常用的做得快,少用的只要對”的原則 硬件優(yōu)化應(yīng)充分考慮兼容性 流水、多發(fā)射不改變指令系統(tǒng) 流水、多發(fā)射技術(shù)在load-store指令系統(tǒng)上容易實現(xiàn),否則相關(guān)性分析困難 上述原因呼喚RISC系統(tǒng)結(jié)構(gòu),一個“典型”的RISC,32位定長指令 32個32位通用寄存器 三寄存器操作數(shù)運算指令 Load-Store指令,基址+偏移量尋址方式 簡單轉(zhuǎn)移條件 Delay-Branch,MIPS指令格式,RISC發(fā)展過程(1),1964年CDC公司推出的CDC 6600是第一臺超級計算機,具備了RISC的一些基本特征 CDC 6600的設(shè)計

12、者認識到為了實現(xiàn)有效的流水技術(shù),需要簡化體系結(jié)構(gòu) Load-Store結(jié)構(gòu) 記分板(Score-Boarding)動態(tài)流水線調(diào)度 亂序執(zhí)行(Out-of-Order)技術(shù) 1976年的Cray-1向量機使用了與CDC 6600類似的想法 Cray是CDC 6600的主要設(shè)計者之一 上述簡化結(jié)構(gòu)以高效實現(xiàn)的想法在60-70年代沒有受到小型機和微處理器設(shè)計者的重視,RISC發(fā)展過程(2),1968年John Cocke在IBM的San Jose研究中心開始ASC(Advanced Scientific Computer)項目的研究 基本思想是讓編譯器做更多的指令調(diào)度以減少硬件復(fù)雜度 還提出了每個周

13、期發(fā)射多條指令的思想 ASC計劃后來被取消,Cocke在1971年到Future System 1975年Cocke到IBM的Yorktown研究中心開始研制IBM 801,801是最早開始設(shè)計的RISC處理器 Cocke獲得了Eckert-Mauchly和Turing獎 801是PowerPC的前身 比801稍晚開始的有Patterson在Berkeley的RISC-I及RISC-II與Hennessy在Standford的MIPS項目 這兩個大學(xué)的研究生曾參與801項目的研究,后來返回大學(xué) RISC-II是SPARC的前身,MIPS項目是MIPS處理器前身,RISC發(fā)展過程(3),801的

14、項目經(jīng)理Joel Birnbaum到HP創(chuàng)立了PA-RISC DEC在推出Alpha之前曾經(jīng)使用MIPS處理器三年 1994年Intel和HP宣布使用相同的系統(tǒng)結(jié)構(gòu) 從上述發(fā)展過程不難解釋剛開始時五個RISC處理器的相似性 后來每個RISC處理器有了不同的發(fā)展 如Alpha的指令簡單,超流水結(jié)構(gòu),流水級多,主頻高,“a speed demon” PowerPC指令功能強,靈活,甚至有點象CISC,“a brainiac”,常見RISC指令系統(tǒng)比較,通過比較常見RISC處理器的指令系統(tǒng)加深對RISC的了解 MIPS IV (Alpha與MIPS很象) PA-RISC 1.1 and 2.0 Po

15、werPC SPARC v.9 通過以下方面進行比較 指令格式 尋址方式 指令功能,RISC指令系統(tǒng)的發(fā)展,尋址方式比較,指令功能比較,所有RISC處理器都有一些公共指令 load/store指令 算術(shù)運算及邏輯指令 控制流指令 不同處理器在比較及轉(zhuǎn)移指令時有較大不同,比較及條件轉(zhuǎn)移(1),轉(zhuǎn)移條件 SPARC v.8使用4位條件碼(CC),該條件碼在程序狀態(tài)字中 整數(shù)運算指令設(shè)置CC,條件轉(zhuǎn)移指令檢測CC 浮點運算有另外兩位CC v.9為了支持64位運算增加了4位整數(shù)CC,3位浮點CC MIPS直接比較寄存器內(nèi)容判斷是否轉(zhuǎn)移 浮點部件有一位條件碼,記錄cmp指令的結(jié)果 PowerPC有4位C

16、C,一個條件寄存器中有8份4位CC 整數(shù)和浮點運算各1位,其它用于比較指令。 Branch指令需指定根據(jù)哪一位進行轉(zhuǎn)移 運算指令中有一位指定該指令是否影響CC PA-RISC有多中選擇,最常用的是比較兩個寄存器的值并根據(jù)結(jié)果決定是否轉(zhuǎn)移,比較及條件轉(zhuǎn)移(2),Delayed Branch技術(shù) 緊挨Branch指令后面的指令視為Branch前面的指令執(zhí)行可以避免流水線斷流。 轉(zhuǎn)移不成功時取消已執(zhí)行的delay slot指令可以把轉(zhuǎn)移目標的指令安排在delay slot中。 轉(zhuǎn)移成功時取消已執(zhí)行的delay slot指令可以把轉(zhuǎn)移不成功的指令安排在delay slot中。,指令系統(tǒng)的其它功能,下面

17、指令在前述的指令系統(tǒng)中也很常見(至少在兩個指令系統(tǒng)中出現(xiàn)) Atomic Swap指令 64位指令,ALPHA本來就是64位的,因此不區(qū)分64位指令 預(yù)取指令 Big Endian與Little Endian的切換 共享存儲同步指令 等,Atomic Swap指令,以MIPS的LL和SC指令 為例 LL(Load Linked)取數(shù)且置系統(tǒng)中LLbit為1 LL為1時,處理器檢查相應(yīng)單元是否被修改,如果其它處理器或設(shè)備訪問了相應(yīng)單元或執(zhí)行了ERET操作,LLbit置為0 執(zhí)行SC(Store Conditional)時若Llbit為1,則成功,目標寄存器為1;否則存數(shù)不成功,目標寄存器為0 L

18、1: LL R1, (R3) ADD R2, R1, 1 SC R2, (R3) BEQ R2, 0, L1 NOP,MIPS部分指令特色(1),作為比較早期的RISC系統(tǒng),MIPS的指令系統(tǒng)已經(jīng)發(fā)展了四代,不斷增加新指令,包括 邊界不對齊的數(shù)據(jù)傳送 TLB指令(在MIPS中TLB失效由軟件解決) TLBI,TLBR,TLBW,TLBP SYSCALL CTCi, CFCi NOR指令 JUMP/CALL指令,絕對跳轉(zhuǎn),指令中的立即數(shù)左移兩位替換PC的低28位地址 條件過程調(diào)用,BGEZAL, BLTZAL LL/SC指令用于原子操作 RECIP和RSQRT(Reciprocal),MIPS部分指令特色(2),邊界不對齊的數(shù)據(jù)傳送,SPARC部分指令特色(1),寄存器窗口 多組寄存器用于不同進程,8個全局寄存器用于傳遞參數(shù)等 2-32個寄存器穿口,每個24個寄存器 過程調(diào)用和退出不用把現(xiàn)場保留到存儲器 SAVE和RESTORE指令 SAVE做加法,源寄存器來自調(diào)用過程(caller),目標寄存器來自被調(diào)用過程(callee),該指令可用于自動修改堆棧指針。 RESTORE做加法,源寄存器來自被調(diào)用過程(callee),目標寄存器來自調(diào)用過程(caller),該指令用來自動釋放堆棧 “標志”加減指令 數(shù)據(jù)的低兩位指出數(shù)據(jù)類型

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論