過去的錯誤 |
RV32I吸取的經驗教訓 |
|||
ARM-32 (1986) | MIPS-32 (1986) | X86-32(1978) | ||
成本 | 必須支持整數乘除法 | 必須支持整數乘除法 | 8 位以及 16 位操作、必須支持整數乘除法 | 無 8 位、16 位操作、可選的整數乘除法支持(RV32M) |
簡潔性 | 無零寄存器、條件指令執行、復雜的尋址模式、棧操作指令(push/pop)、算術/邏輯指令中存在的移位 | 立即數支持零擴展及符號擴展、一些算術指令會造成溢出異常 | 無零寄存器、復雜的過程調用指令(enter/leave)棧指令(push/pop)、復雜尋址模式、循環指令 | 寄存器x0專門用于存放常數0、立即數只進行符號擴展、一種數據尋址模式、沒有條件執行、沒有復雜的函數調用指令以及棧指令、算術指令不拋異常、使用單獨的移位指令來處理移位操作 |
性能 | 分支指令使用條件碼、在不同格式的指令中,源和目的寄存器的位置不同、加載多個計算得到的立即數、PC是一個通用寄存器 | 在不同格式的指令中,源和目的寄存器的位置不同 | 分支指令使用條件碼、每個指令中最多只能使用兩個寄存器 | 使用同一條指令實現比較及跳轉(不使用條件碼)、每條指令三個寄存器、不能一次load多個數據、不同指令格式中,泊及目的寄存器字段位置固定、立即數是常數(不是由計算得出的)、PC不是通用寄存器 |
架構和具體實現 | 將PC像普通寄存器一樣讀寫,這樣暴露了流水線長度 | 分支指令延遲槽Load指令延遲槽、乘除法使用單獨的HI、LO寄存器 | 寄存器不是通用的(AX,CX,DX,DI,SI有特殊用途) | 分支指令沒有延遲槽、Load指令無延遲槽、通用寄存器 |
增長空間 | 有限的指令碼空間 | 有限的指令碼空間 | 大量可用的指令碼空間 | |
程序大小 | 僅有32bit指令(Thumb-2是作為一個獨立的ISA) | 僅32bit指令(microMIPS是作為一個獨立的ISA) | 指令長度可用是不同字節,但這是一個很不好的選擇。 | 32位指令+16位RV32C擴展 |
易于編程/編譯/鏈接 | 僅15個寄存器內存數據必須對齊、不規則的數據尋址模式、不一致的性能計數器 | 內存數據必須對齊、不規則的數據尋址模式、不一致的性能計數器 | 僅15個寄存器中內存數據必須對齊、不規則的數據尋址模式、不一致的性能計數器 | 31個寄存器、數據可用不對齊、PC相對的數據尋址模式、對稱的數據尋址模式、定義在加構中的性能計數器 |
RISC-V架構師從過去指令集設計的錯誤中吸取的教訓。通常的教訓是避免過去的ISA“優化”。經驗和教訓按照第一章中提出的七個ISA指標進行分類。在成本,簡單性和性能下列出的許多指令集特性可以互換,因為這只是設計的偏好問題,但不管它們出現在哪里,它們都很重要。
摘自《RISC-V-Reader》中文版
審核編輯黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
架構師
+關注
關注
0文章
47瀏覽量
4652 -
RISC-V
+關注
關注
45文章
2322瀏覽量
46586
發布評論請先 登錄
相關推薦
關于RISC-V學習路線圖推薦
一個號的RISC-V學習路線圖可以幫助學習者系統地掌握RISC-V架構的相關知識。比如以下是一個較好的RISC-V學習路線圖:
一、基礎知識準備
計算機體系結構基礎 :
了解計算機的基
發表于 11-30 15:21
什么是RISC-V?以及RISC-V和ARM、X86的區別
需要一種更加開放的指令集架構,以便更多的公司和個人可以參與到處理器的設計和開發中。這也是為什么RISC-V采用BSD開源協議,可以自由地使用和分發。
靈活性:傳統的
發表于 11-16 16:14
RISC-V指令集的特點總結
開源
定義:RISC-V 是完全開源的指令集架構(ISA),意味著任何人都可以查看、使用、修改以及分發其設計,而無需支付版權費用。
優勢:這種開源特性促進了全球性的創新和合作。
社區化
定義
發表于 08-30 22:05
CISC(復雜指令集)與RISC(精簡指令集)的區別
調用四條單CPU周期指令完成兩數相乘:內存
a加載到寄存器,內存b加載到寄存器,兩個寄存器中數相乘,寄存器結果存入內存a。按照此思路,早期的設計出的RISC
指令集,
發表于 07-30 17:21
RISC-V基礎整數指令集
RISC-V的出現比過去的ISA晚了一 個世紀,這使它的設計者得以實踐Santayana的建議 ,即借用之前指令集中好的設計,但不重復它們不好的瑕疵,包括RISC-I
發表于 07-27 22:25
RISC-V開源指令集全面指南與解析
它應該是穩定的,基礎的指令集架構不應該改變。更重要的是,它不能像以前的專有指令集架構一樣被棄用,例如AMD Am29000、Digital Alpha、Digital VAX、Hewl
什么是RISC-V?RISC-V指令集的優勢
CPU 支持的所有指令和指令的字節級編碼就是這個 CPU 的指令集架構(Instruction Set Architecture,ISA),指令集
發表于 03-05 10:31
?963次閱讀
評論