過去的錯誤 |
RV32I吸取的經(jīng)驗(yàn)教訓(xùn) |
|||
ARM-32 (1986) | MIPS-32 (1986) | X86-32(1978) | ||
成本 | 必須支持整數(shù)乘除法 | 必須支持整數(shù)乘除法 | 8 位以及 16 位操作、必須支持整數(shù)乘除法 | 無 8 位、16 位操作、可選的整數(shù)乘除法支持(RV32M) |
簡潔性 | 無零寄存器、條件指令執(zhí)行、復(fù)雜的尋址模式、棧操作指令(push/pop)、算術(shù)/邏輯指令中存在的移位 | 立即數(shù)支持零擴(kuò)展及符號擴(kuò)展、一些算術(shù)指令會造成溢出異常 | 無零寄存器、復(fù)雜的過程調(diào)用指令(enter/leave)棧指令(push/pop)、復(fù)雜尋址模式、循環(huán)指令 | 寄存器x0專門用于存放常數(shù)0、立即數(shù)只進(jìn)行符號擴(kuò)展、一種數(shù)據(jù)尋址模式、沒有條件執(zhí)行、沒有復(fù)雜的函數(shù)調(diào)用指令以及棧指令、算術(shù)指令不拋異常、使用單獨(dú)的移位指令來處理移位操作 |
性能 | 分支指令使用條件碼、在不同格式的指令中,源和目的寄存器的位置不同、加載多個計算得到的立即數(shù)、PC是一個通用寄存器 | 在不同格式的指令中,源和目的寄存器的位置不同 | 分支指令使用條件碼、每個指令中最多只能使用兩個寄存器 | 使用同一條指令實(shí)現(xiàn)比較及跳轉(zhuǎn)(不使用條件碼)、每條指令三個寄存器、不能一次load多個數(shù)據(jù)、不同指令格式中,泊及目的寄存器字段位置固定、立即數(shù)是常數(shù)(不是由計算得出的)、PC不是通用寄存器 |
架構(gòu)和具體實(shí)現(xiàn) | 將PC像普通寄存器一樣讀寫,這樣暴露了流水線長度 | 分支指令延遲槽Load指令延遲槽、乘除法使用單獨(dú)的HI、LO寄存器 | 寄存器不是通用的(AX,CX,DX,DI,SI有特殊用途) | 分支指令沒有延遲槽、Load指令無延遲槽、通用寄存器 |
增長空間 | 有限的指令碼空間 | 有限的指令碼空間 | 大量可用的指令碼空間 | |
程序大小 | 僅有32bit指令(Thumb-2是作為一個獨(dú)立的ISA) | 僅32bit指令(microMIPS是作為一個獨(dú)立的ISA) | 指令長度可用是不同字節(jié),但這是一個很不好的選擇。 | 32位指令+16位RV32C擴(kuò)展 |
易于編程/編譯/鏈接 | 僅15個寄存器內(nèi)存數(shù)據(jù)必須對齊、不規(guī)則的數(shù)據(jù)尋址模式、不一致的性能計數(shù)器 | 內(nèi)存數(shù)據(jù)必須對齊、不規(guī)則的數(shù)據(jù)尋址模式、不一致的性能計數(shù)器 | 僅15個寄存器中內(nèi)存數(shù)據(jù)必須對齊、不規(guī)則的數(shù)據(jù)尋址模式、不一致的性能計數(shù)器 | 31個寄存器、數(shù)據(jù)可用不對齊、PC相對的數(shù)據(jù)尋址模式、對稱的數(shù)據(jù)尋址模式、定義在加構(gòu)中的性能計數(shù)器 |
RISC-V架構(gòu)師從過去指令集設(shè)計的錯誤中吸取的教訓(xùn)。通常的教訓(xùn)是避免過去的ISA“優(yōu)化”。經(jīng)驗(yàn)和教訓(xùn)按照第一章中提出的七個ISA指標(biāo)進(jìn)行分類。在成本,簡單性和性能下列出的許多指令集特性可以互換,因?yàn)檫@只是設(shè)計的偏好問題,但不管它們出現(xiàn)在哪里,它們都很重要。
摘自《RISC-V-Reader》中文版
審核編輯黃宇
-
架構(gòu)師
+關(guān)注
關(guān)注
0文章
47瀏覽量
4763 -
RISC-V
+關(guān)注
關(guān)注
46文章
2525瀏覽量
48495
發(fā)布評論請先 登錄
RISC-V核低功耗MCU指令集架構(gòu)(ISA)特點(diǎn)
RISC-V架構(gòu)及MRS開發(fā)環(huán)境回顧
關(guān)于RISC-V學(xué)習(xí)路線圖推薦
什么是RISC-V?以及RISC-V和ARM、X86的區(qū)別
RISC-V的指令集位寬的幾點(diǎn)學(xué)習(xí)心得
RISC-V和arm指令集的對比分析
risc-v與esp32架構(gòu)對比分析
ISA ARM 對比 RISC-V
RISC-V指令集的特點(diǎn)總結(jié)
CISC(復(fù)雜指令集)與RISC(精簡指令集)的區(qū)別
risc-v的發(fā)展歷史
RISC-V基礎(chǔ)整數(shù)指令集
為什么要有RISC-V
走進(jìn)RISC-V:芯片界的新革命

評論