過去十年來,開放源碼(open source)軟體已經成為科技領域的最佳催化劑。如今,開放源碼的力量帶來了自由發展,所產生的社群也在硬體世界中得以立足。基於這些原因,RISC-V贏得了極高的人氣。本文介紹RISC-V指令集(ISA)架構,以及如何在物聯網(IoT)時代改寫處理器生態的遊戲規則。

什麼是RISC-V?

RISC-V是一個開放的指令集架構,最初由美國加州大學柏克萊分校(University of California, Berkeley)的電腦科學系開發,主要基於流行的精簡指令集運算(reduced instruction set computing;RISC)原則,就和ARM、MIPS以及其他常見的商用處理器架構一樣。

RISC-V在2010年開始成型,現在已經成長為一個巨大的全球合作計劃,橫跨多所大學和工業領域。非營利的RISC-V基金會(RISC-V Foundation)為其提供了一致性,不僅指導底層ISA規範,也扮演市場引擎的角色來推廣RISC-V途徑。

需要澄清的是RISC-V的指令集架構,顧名思義是一項指令集的架構規範,而不是一種具體的處理器設計。從開放源碼指令集架構開始,很多的學術和產業團隊創造了多種不同的處理器設計,但本質上都採用同一種語言。快速瀏覽RISC-V基金會的網站,就可以看到上面展示了大量的處理器實作,從Rocket、Orca和PULPino等完整的開放源碼處理器設計,到生產商業處理器核心的公司,如SiFive、Codasip、Andes和Cortus。

這些當代處理器的實現範圍十分廣泛,從簡單物聯網處理器到運行Linux的應用處理器,都是基於一套共同的指令集,從而反映出RISC-V較封閉式商用ISA的關鍵優勢,即差異化和選擇的自由,以及可以更換處理器供應商而不至於遭受產品重新架構的痛苦。

20180417_RISCV_NT31P1 圖1:RISC-V包含最小的32位元基礎指令集,以及一系列可擴展至支援64位元、128位元運算的指令集與其他擴展。

免費的所以一定存在風險?

在這一點上,謹慎的做法是考察實際情況,查看新產品設計中影響處理器選擇的因素。如同大多數的設計決策一樣,它涉及很多技術和商業因素,有些是基於硬指標,有些則基於難以量化的方面。

技術指標是不言而喻的:包括處理器是否具備足夠的馬力?支持後續產品的可擴展性?是否匹配功率封包?是否滿足所需的安全層級?有沒有友好熟悉的軟體開發/除錯環境?用戶能否繼承之前的程式碼庫等等。商用標準必須考慮成本,例如面積(包括閘數和記憶體大小)、版稅和整個授權費用。它還要考慮其他商務方面的因素,包括供應商鎖定、保證與賠償、商業報告義務、進行修改的合法權利等等。

考慮所有這些因素,大多數設計人員往往採取一種「安全」選項,通常使用一個專有的商用處理器,並且經常綁定在以前使用的系列。然而,站在策略層面來看,很多公司對於選擇限制日益增加但強大的商用處理器IP供應商感到不安。人們渴望擁有更多的商業自由,打破封閉指令集的鎖定,這不光是在授權和版權使用費方面有意義,也有利於實現差異化。

這種需求使得RISC-V揚帆起航。RISC-V開放源碼的指令集架構為晶片公司提供了現實的選擇,超越普通的商業選項,避免承擔過度的策略風險,就如同Linux、FreeRTOS和許多其他開放源碼的即時作業系統(RTOS)在今天無可爭辯的替代了商用作業系統(OS)。特別是在那些消費物聯網裝置上使用的小型嵌入式處理器上,這種選擇非常現實。許多知名的一級(Tier 1)公司,包括Western Digital (WD)和輝達(Nvidia),已經公開宣佈了自家公司的意圖,甚至著手展開了大規模的生產。此外,還有更多的公司正在評估RISC-V,其中一些甚至秘密地開始進行先進的設計。

20180417_RISCV_NT31P2 圖2:RISC-V處理器核心性能比較

例如CEVA RivieraWaves的 Wi-Fi和藍牙IP產品設計。在RISC-V的潛力吸引下,這些通訊技術需要一個小型處理器以執行協議堆疊,目標就在於創建一個預先整合的參考平台,讓客戶自由選擇處理器。由於IP的架構設計滿足超低功耗的操作,即使是先進的無線網路(Wi-Fi)配置,對於處理器馬力的需求也很溫和。

簡單來說,我們需要邏輯閘數少、能源效率高、成熟的處理器,再加上一個熟悉的商用級軟體開發環境,可以產生節省晶片面積的精簡程式碼。該處理器設計必須易於部署(全速執行)在FPGA和ASIC/ASSP上,而且還必須具備與我們的授權IP業務相容的法規架構。

例如,CEVA選擇20K閘數的RISC-V處理器核心,能夠達到2.44 Coremark/MHz這個不錯的成績,並且和硬體需求完全吻合。根據內部的性能基準和程式碼密集度測試結果顯示,已經達到與同級最佳處理器相當的水準。同樣重要的是根據我們的經驗顯示,將一個完整的系統移植到RISC-V所需的工作量非常少。

以更複雜的Wi-Fi平台為例,用嵌入式RISC-V處理器取代商用處理器,只需花費一星期的時間,就完成了整合、模擬和創建一個新的FPGA二進位檔,實現完整的RivieraWaves Wi-Fi 展示平台。此外,已經在多個不同商用處理器上進行開發和部署多年的現有協議軟體,在兩週時間內就能移植到RISC-V平台了,包括移植、測試和系統級驗證。這一點也不令人意外,多虧了熟悉的GNU GCC/GDB和LLVM編譯器/除錯器環境。

總的來說,這個專案是一次重大的成功,RISC-V真正兌現了承諾。