2020年5月16日 星期六

RISC-V指令集架構-1.1總覽

1.1 總覽
RISC 的定義是一個基本的整數ISA(instruction set architecture),有點像早期 RISC processors,除了缺少branch delay slots但多出了對於optional variable-length指令編碼的支援.
原則是小心的限制在足夠提供compilers,asemblers,linkers,OS(包含額外監控層)合理目標的最小指令集,因此可以建立在一個更客製化的處理器指令集,提供方便的ISA和軟體toolchain一個工具框架.
每個基本指令集的特性包含
1.整數register的寬度
2.對應的user address大小
有2個基本的整數變數1.RV32I, RV64I,會在第二章跟第四章提到,硬體上的支援可能會提供其中1個或2個.
第3章介紹了RV32I的RV32E子集變體,基本指令集,已添加該基本指令集以支持micro controller。 
第5章介紹
基本整數指令集在將來RV128I支持128位用戶地址空間。
基本整數指令集對二進制整數使用二進制補數表示法。
儘管較大的系統需要64位地址空間,但我們認為32位地址在未來數十年,空間將足以容納許多嵌入式和客戶端設備,並且
希望降低內存流量和能耗。 另外,32位地址空間足夠用於教育目的。 更大的128位地址空間最終可能還是需要,因此我們確保可以將其容納在RISC-V ISA框架內。
基本整數ISA可能是硬件實現的子集,但opcode traps和軟件
必須使用特權更高的層進行的simulation來實現硬體未提供的功能
基本整數ISA的子集可能用於教學目的,但是應該沒有需要一定用硬體實現,除了對address非align的memory access,並將所有SYSTEM指令視為單個trap(軟體的中斷)。
RISC-V的基本指令可以選擇性可製化擴充,但基本指令不能被重新定義,RISC-V instruction-set extensions分成標準和非標準,
標準的extensions通常不會跟其他標準extension互相衝突,但是非標準的可能會跟其他標準或非標準的extension衝突.
Instruction-set extensions可以根據基本指令集的寬度來提供不同的功能,21章描述了擴充方法,22章描述命名規則.
基本的整數ISA擴展名為"I", RV32 or RV64表示整數寬度,並包含整數計算指令,整數加載,整數存儲和控制指令,並且對於所有RISC-V實現都是必需的。
標準整數乘法和除法擴展名為"M“,並添加了指令以進行乘法和除法整數寄存器中保存的值。
標準原子指令(表示執行中不可被切割),用"A“表示,包含讀取,修改和寫入內存,以實現處理器間同步。 
標準單精度符點數"F",包含運算,載入,儲存

標準單精度符點數"D",包含運算,載入,儲存
整數指令組合上述的擴充指令為 (\IMAFD"),用縮寫"G"表示

沒有留言:

張貼留言