RISC-V Atomic 擴充如何提供卓越的位元處理能力

RISC-V 架構的採用率如同滾雪球,這是由於其對產業的影響力正在增加。

除了核心架構及其真正精簡指令集架構 (ISA) 外,此架構還透過一系列標準化擴充增強功能 (圖 1)。例如,根據所示擴充列表,支援單精準度浮點和壓縮指令的 32 位 RISC-V 內核 (RV32) 將被指定為 RV32FC。

圖 1:RISC-V ISA 由一系列標準化指令擴充增強功能,由核心名稱後的字母尾碼表示。(圖片來源: RISC-V.org)

對於許多人工智慧 (AI) 和機器學習 (ML) 應用,以及高級嵌入式系統,四個最必要的擴充是整數乘法和除法 (M)、原子指令 (A)、單精準度浮點 (F) 和雙精準度浮點 (D)。然而,不會將核心指定為 RV32MAFD,而是組合為 G 尾碼,如同 RV32G。

有關各種擴充和 RISC-V 的更多資訊,請參閱 DigiKey 在 EDU 網站RISC-V 電子書

就我自己而言,由於我最初使用處理器的經驗是針對深度嵌入式系統,所以我傾向於仔細研究架構對資料記憶體的讀取/修改/寫入位元處理支援。對於這些應用,為周邊暫存器和號誌設置和清除位元的情況非常常見。若沒有原生位元處理指令,核心需要將資料記憶體位置的內容複製到核心暫存器,並且分別使用 OR、AND 或 XOR 指令設置、清除或切換位元,然後將結果儲存回資料記憶體位置。這不僅需要更多時間,而且在某些情況下,我曾看過一些嵌入式控制應用的程式碼膨脹達 20%。

對於某些應用,可以接受程式碼膨脹和效能下降。然而,在處理這三個指令時若中斷,程式控制可能會粗暴地從作業移除,或者更糟糕的是,在多處理器系統中,另一個核心可能會從同一記憶體位置進行讀取。停用中斷或鎖定記憶體以確保這些事件不會破壞資料記憶體需要額外的指令且會更複雜,可能會造成效能問題。

Arm 試圖利用實作位元帶來解決這些問題,適用於簡單的位元操作。但是,在我看來,RISC-V 實現了更優雅、更靈活的解決方案。

為什麼 Atomic 擴充如此優雅

RISC-V A (Atomic) 擴充支援兩種操作,包含 Load-Reserved/Store-Conditional 指令,這裡不會討論,另一個是 binary/bitwise 指令,提供對資料記憶體的簡單位元處理。雖然 RISC-V B 位元處理擴充支援一系列複雜的位元控制指令,但 Atomic 擴充不僅僅針對多處理器系統。也可用於較小的嵌入式系統,其必要的位元處理需求更簡單。此類系統之一例為 Seeed Technology114991684 雙核 64 位 RISC-V 模組。具有兩個 RV64GC 核心,需要協同工作並共享資料 SRAM。

RISC-V A-extension atomic memory operation (AMO) 的格式如圖 2 所示。

圖 2:RISC-V AMO 指令格式僅透過單一指令,即可支援對資料記憶體進行原子二進位作業。(圖片來源:RISC-V.org (Bill Giovino 補充))

AMO 是功能強大的讀取/修改/寫入指令,只需一條指令即可直接在 rs1 中指向的資料記憶體上支援各種二進位作業。請參考圖 2,該作業將資料記憶體位址的內容加載到 rs1 中,並將值儲存在暫存器 rd 中。接著使用 rs2 中的值對 rd 的值執行二進位運算,並將結果儲存回 rd 並返回到資料記憶體在 rs1 的位址。

支援的位元運算有 OR (位元設置)、AND (位元清除) 和 XOR (位元切換)。這允許直接在資料記憶體上對一個或多個位元進行原子位元操作。當兩個 RV64GC 核心同時使用相同的記憶體位址時,這也可以防止記憶體衝突。對於在記憶體中配置周邊暫存器以及簡化號誌作業時的小型嵌入式應用非常有用。

RISC-V AMO 還支援其他操作,包含整數最大值、整數最小值和交換。也支援二進位 ADD,允許直接二進位加法,包括在資料記憶體中直接遞增計數器。

RV64 核心同時支援 32 位元和 64 位元作業。針對使用 RV64 進行位元處理,必須注意只在 64 位元資料進行作業,這是因為該作業將對放置在 rd 中的 32 位資料進行符號擴充。

結論

RISC-V ISA 是與 Arm ISA 勢均力敵的競品。其 ISA 擴充提供透過指令增強核心的標準化方法,能在符合成本效益之下提高應用效能。我對可選用的 Atomic 擴充感到特別興奮。

雖然 Atomic 擴充對多處理器系統有用且幾乎是必需,但也是直接在資料記憶體上提供位元處理控制的有效方式。藉由減少程式碼大小和提高效能,提供優於許多現有架構的顯著優勢。

關於作者

Image of Bill Giovino

Bill Giovino 是電子工程師,擁有美國雪城大學的電機工程學士學位,也是少數從設計工程師跨足現場應用工程師,再到技術行銷領域的成功典範之一。

Bill 過去 25 年來熱衷於向科技和非科技業的對象推廣新技術,包括 STMicroelectronics、Intel 和 Maxim Integrated 等多家企業。Bill 在 STMicroelectronics 任職期間,曾協助領導該公司順利進軍微控制器領域。在 Infineon 任職時,則策劃出該公司首款在美國汽車業大受歡迎的微控制器設計。Bill 目前是他個人公司 CPU Technologies 的行銷顧問,曾協助諸多企業讓表現不佳的產品重獲市場青睞。

Bill 更是採用物聯網的先驅,包括在微控制器中首次納入完整的 TCP/IP 堆疊。Bill 致力於推廣「用教育促成銷售」的理念,也認可在線上推銷產品時有清楚完整文字說明的重要性。他在 LikedIn 熱門的半導體銷售和行銷群組中擔任管理員,也擁有深厚的 B2E 知識。

More posts by Bill Giovino
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum