來源:內(nèi)容由半導(dǎo)體行業(yè)觀察(ID:icbank)編譯自semiwiki
通常,我們更喜歡把臺式機/筆記本電腦的復(fù)雜指令集叫做CISC,把智能手機的精簡指令集叫做RISC。戴爾和蘋果等 OEM 一直在其筆記本電腦中使用 x86 CISC 處理器。讓我在這里解釋筆記本電腦的設(shè)計方法。主板以多核CISC處理器為主要部件,連接GPU、RAM、存儲內(nèi)存等子系統(tǒng)和I/O接口。操作系統(tǒng)在多核處理器上并行運行多個應(yīng)用程序,管理內(nèi)存分配和 I/O 操作。
這就是我們使用處理器實現(xiàn)任何電子系統(tǒng)的方式。然而,我們更喜歡使用 RISC 處理器的智能手機系統(tǒng)級芯片,因為它有助于我們減小主板的尺寸和功耗。幾乎整個具有多核 RISC CPU、GPU、DSP、無線和接口子系統(tǒng)、SRAM、閃存和 IP 的系統(tǒng)都在 SoC 上實現(xiàn)。OEM Apple 正在遵循這款智能手機的 SoC 設(shè)計方法,甚至將他們的 MAC 筆記本作為 OEM 潮流引領(lǐng)者。所有最新的 MAC 書籍都使用他們的 M 系列 SoC,這些 SoC 使用 ARM 的 RISC 處理器。
因此,很明顯,英特爾的 x86 或 ARM 的 RISC 處理器的專有 ISA 一直是 Apple、戴爾、三星等 OEM 的選擇,但現(xiàn)在為什么我們需要像 RISC-V 這樣的開放 ISA,而不是所有這些經(jīng)過充分驗證的ISA。
在今天的情況下,每個人都將 SoC 用于他們的筆記本電腦和智能手機。這種復(fù)雜的 SoC 需要通用處理器和專用處理器。為了實現(xiàn)像 Apple 的 M 系列 SoC 這樣的芯片,我們需要不同種類的處理器,如 RISC CPU、GPU、DSP、安全處理器、圖像處理器、機器學(xué)習(xí)加速器、安全和神經(jīng)引擎,基于來自多個 IP 的各種通用和專用 ISA供應(yīng)商。
在這種情況下,主要挑戰(zhàn)是:
1.選擇并與多家 IP 供應(yīng)商合作
2.不同的 IP 供應(yīng)商可能有不同的 IP 許可方案,工程師將無法自由地定制 ISA 和設(shè)計,因為他們更愿意滿足他們的設(shè)計目標。
3.所有專門的 ISA 都不會持續(xù)/生存很長時間,從而影響長期產(chǎn)品支持計劃和路線圖。
4.此外,涉及多個 ISA 和工具鏈的軟件/應(yīng)用程序開發(fā)和更新將具有挑戰(zhàn)性。
RISC-V 是一種具有多種擴展功能的通用免許可開放式 ISA。它是一個 ISA,分為一個小的基本整數(shù) ISA,可用作定制加速器和可選標準擴展的基礎(chǔ),以支持通用軟件開發(fā)。您可以添加自己的擴展來實現(xiàn)您的專用處理器,或者根據(jù)需要自定義基本 ISA,因為它是開放的。沒有許可證限制。因此,在未來,我們可以僅使用一個 RISC-V ISA 創(chuàng)建所有通用和專用處理器,并實現(xiàn)任何復(fù)雜的 SoC。
什么是 RISC-V,它與其他 ISA 有何不同?
RISC-V 是加州大學(xué)伯克利分校的第五個主要 ISA 設(shè)計。它是由非營利組織 RISC-V International維護的開放式 ISA,涉及所有利益相關(guān)者社區(qū)以實施和維護 ISA 規(guī)范、黃金參考模型和合規(guī)性測試套件。
RISC-V 不是 CPU 實現(xiàn)。它是通用處理器和專用處理器的開放式 ISA。一個完全開放的 ISA,可供學(xué)術(shù)界和工業(yè)界免費使用。
RISC-V ISA 被分成一個小的基本整數(shù) ISA,可單獨用作定制加速器或教育目的的基礎(chǔ),以及支持通用軟件開發(fā)的可選標準擴展
RISC-V 支持應(yīng)用程序、操作系統(tǒng)內(nèi)核和硬件實現(xiàn)的 32 位和 64 位地址空間變體。因此,它適用于所有計算系統(tǒng),從嵌入式微控制器到云服務(wù)器,如下所述。簡單的嵌入式微控制器、保護運行 RTOS 的嵌入式系統(tǒng)、運行操作系統(tǒng)的臺式機/筆記本電腦/智能手機以及運行多個操作系統(tǒng)的云服務(wù)器。
二、RISC-V 基礎(chǔ) ISA
RISC-V 是一個相關(guān) ISA 家族:RV32I、RV32E、RV64I、RV128I。
RV32I/ RV32E/ RV64I/RV128I 是什么意思:
RV——RISC-V
32/64/128 – 定義寄存器寬度 [XLEN] 和地址空間
I – 整數(shù)基 ISA
32 個用于所有基本 ISA 的寄存器
E – 嵌入式:只有 16 個寄存器的基本 ISA
(1)RISC-V 寄存器:
所有基本 ISA 都有 32 個寄存器,如圖 2 所示,除了 RV32E。只有RV32E base ISA對于簡單的嵌入式微控制器只有16個寄存器,但寄存器寬度仍然是32位。寄存器 X0 硬接線為零。稱為程序計數(shù)器的特殊寄存器保存要從內(nèi)存中獲取的當前指令的地址。如圖 2 所示,RISC-V 應(yīng)用程序二進制接口,ABI 定義了寄存器的標準功能。為了簡單和一致,軟件開發(fā)工具通常使用 ABI 名稱。根據(jù) ABI,額外的寄存器專用于 X0 到 X15 范圍內(nèi)的保存寄存器、函數(shù)參數(shù)和臨時變量,主要用于 RV32E 基礎(chǔ) ISA,它只需要前 16 個寄存器來實現(xiàn)簡單的嵌入式微控制器。但是 RV32I 基礎(chǔ) ISA 將擁有所有 32 個寄存器 X0 到 X31。
圖 2:RISC-V 寄存器和 ABI 名稱參考:RISC-V 規(guī)范
(2)RISC-V內(nèi)存:
RISC-V hart [硬件線程/核心] 具有用于所有內(nèi)存訪問的 2^XLEN 字節(jié)的單字節(jié)可尋址地址空間。XLEN 表示整數(shù)寄存器的位寬度:32/64/128。內(nèi)存字定義為 32 位(4 字節(jié))。相應(yīng)地,半字為16位(2字節(jié)),雙字為64位(8字節(jié)),四字為128位(16字節(jié))。內(nèi)存地址空間是循環(huán)的,因此地址 2^XLEN -1 處的字節(jié)與地址零處的字節(jié)相鄰。因此,由硬件完成的內(nèi)存地址計算忽略溢出,而是環(huán)繞模 2^XLEN。RISC-V 基礎(chǔ) ISA 具有小端或大端存儲系統(tǒng),特權(quán)架構(gòu)進一步定義了大端操作。指令作為 16 位小尾數(shù)法包的序列存儲在內(nèi)存中,而不管內(nèi)存系統(tǒng)的字節(jié)順序如何。
(3)RISC-V 加載存儲架構(gòu)
您可以可視化基于 RISC-V 寄存器和內(nèi)存的 RISC-V 加載存儲架構(gòu),如下圖 3 所示。
RISC-V處理器根據(jù)PC中的地址從主存中取/載指令,譯碼32位指令,然后ALU進行算術(shù)/邏輯/內(nèi)存讀寫操作。ALU 的結(jié)果將存儲回其寄存器或內(nèi)存中。
圖 3:RISC-V 加載存儲架構(gòu)
(4)RISC-V RV32 I 基礎(chǔ) ISA
RV32I base ISA 只有 40 條 Unique Instructions,但簡單的硬件實現(xiàn)只需要 38 條指令。RV32I指令可分為:
R-Type:注冊到注冊說明
I-Type:立即注冊、加載、JLR、Ecall 和 Ebreak
S型:商店
B型:分支
J型:跳躍和鏈接
U 型:立即加載/添加上層
圖 4:RV32I 基本 ISA 指令格式
(5)用于優(yōu)化 RTL 設(shè)計的 RISC-V ISA
在這里,我想解釋一下 RISC-V ISA 如何使我們能夠?qū)崿F(xiàn)優(yōu)化的寄存器傳輸級設(shè)計,以滿足低功耗和高性能的目標。如圖 4 所示,RISC-V ISA 在所有格式中將源(rs1 和 rs2)和目標(rd)寄存器保持在相同位置以簡化解碼。
立即數(shù)總是經(jīng)過符號擴展,并且通常被打包到指令中最左邊的可用位,并且已被分配以降低硬件復(fù)雜性。尤其是,
所有立即數(shù)的符號位總是在指令的第 31 位以加速符號擴展電路。符號擴展是對立即數(shù)最關(guān)鍵的操作之一(特別是對于 XLEN>32),在 RISC-V 中,所有立即數(shù)的符號位始終保存在指令的第 31 位中,以允許符號擴展與指令解碼并行進行。為了加快解碼速度,基礎(chǔ) RISC-V ISA 將最重要的字段放在每條指令的同一位置。正如您在指令格式表中所見,
主要操作碼總是在位 0-6 中。
目標寄存器(如果存在)始終位于位 7-11 中。
第一個源寄存器(如果存在)始終位于第 15-19 位。
第二個源寄存器(如果存在)始終位于第 20-24 位。
但是為什么立即位會被打亂呢?想想解碼直接場的物理電路。由于它是硬件實現(xiàn),因此這些位將被并行解碼;輸出立即數(shù)中的每一位都有一個多路復(fù)用器來選擇它來自哪個輸入位。多路復(fù)用器越大,成本越高,速度也越慢。
值得注意的是,只需要主要操作碼(位 0-6)就可以知道如何解碼立即數(shù),因此立即數(shù)解碼可以與指令其余部分的解碼并行完成。
(6)RV32I 基本 ISA 指令
RISC-V ISA 擴展
此處列出了所有 RISC-V ISA 擴展:
圖 5:RISC-V ISA 擴展
我們遵循 RISC-V 處理器的命名約定,如下所述:RISC-V 處理器:RV32I、RV32IMAC、RV64GCRV32I:整數(shù)基礎(chǔ) ISA 實現(xiàn)RV32IMAC:整數(shù)基礎(chǔ) ISA + 擴展:[乘法 + 原子 + 壓縮]RV64GC:64 位 IMAFDC [G-通用:IMAFD]
整數(shù) 64 位基本 ISA + 擴展:[乘法 + 原子 + SP 浮動 + DP 浮動 + 壓縮]
RISC-V 特權(quán)架構(gòu)
RISC-V 特權(quán)架構(gòu)涵蓋了 RISCV 系統(tǒng)的所有方面,超出了我到目前為止所解釋的非特權(quán) ISA。特權(quán)架構(gòu)包括特權(quán)指令以及運行操作系統(tǒng)和連接外部設(shè)備所需的附加功能。
根據(jù) RISC-V 特權(quán)規(guī)范,我們可以實現(xiàn)從簡單的嵌入式控制器到復(fù)雜的云服務(wù)器的不同類型的系統(tǒng),如下所述。應(yīng)用程序執(zhí)行環(huán)境 – AEE:“裸機”硬件平臺,其中 harts 直接由物理處理器線程實現(xiàn),指令可以完全訪問物理地址空間。硬件平臺定義了一個從上電復(fù)位開始的執(zhí)行環(huán)境。示例:簡單且安全的嵌入式微控制器主管執(zhí)行環(huán)境——參見:RISC-V 操作系統(tǒng),通過將用戶級 harts 多路復(fù)用到可用的物理處理器線程并通過虛擬內(nèi)存控制對內(nèi)存的訪問來提供多個用戶級執(zhí)行環(huán)境。
示例:運行類 Unix 操作系統(tǒng)的桌面等系統(tǒng)
Hypervisor Execution Environment – HEE:RISC-V hypervisor,為來賓操作系統(tǒng)提供多個管理級執(zhí)行環(huán)境。
示例:運行多個guest操作系統(tǒng)的云服務(wù)器
圖 6:RISC-V 特權(quán)軟件堆棧參考:RISC-V 規(guī)范
此外,RISC-V 特權(quán)規(guī)范定義了各種控制和狀態(tài)寄存器 [CSR],以實現(xiàn)各種功能,如任何系統(tǒng)的中斷、調(diào)試和內(nèi)存管理設(shè)施。您可能需要參考規(guī)范以探索更多信息。
如本文所述,我們可以使用通用的開放式 RISC-V ISA 高效地實現(xiàn)任何系統(tǒng),從簡單的物聯(lián)網(wǎng)設(shè)備到復(fù)雜的智能手機和云服務(wù)器。由于單片半導(dǎo)體縮放失敗,專業(yè)化是提高計算性能的唯一途徑。開放式 RISC-V ISA 是模塊化的,支持自定義指令,使其成為創(chuàng)建各種專用處理器和加速器的理想選擇。
隨著 IEEE 標準通用驗證方法論的出現(xiàn),我們在芯片驗證方面取得了巨大成功,開放的 RISC-V ISA 也將繼承各種專有 ISA 的所有優(yōu)點,成為行業(yè)標準 ISA,引領(lǐng)我們走向未來開放的計算時代。您準備好使用 RISC-V 專業(yè)知識迎接這個美好的未來了嗎?
-
處理器
+關(guān)注
關(guān)注
68文章
19121瀏覽量
228874 -
RISC
+關(guān)注
關(guān)注
6文章
461瀏覽量
83637
發(fā)布評論請先 登錄
相關(guān)推薦
評論