RISC-V(英語發音為「risk-five」)是一個基於精簡指令集(RISC)原則的開源指令集架構(ISA),簡易解釋為與開源軟件運動相對應的一種「開源硬件」。該專案於2010年在加州大學柏克萊分校啟動,但許多貢獻者是該大學以外的志願者和業界人士。

Quick Facts 推出年份, 設計公司 ...
RISC-V
推出年份2010年,​14年前​(2010
設計公司加州大學柏克萊分校
最新架構版本
  • 非特權指令集:20191213
  • 特權指令集:20211203
是否開放架構?
體系結構類型載入-儲存架構
字長/暫存器資料寬度3264128
位元組序小端序
指令編碼長度不定長度
指令集架構設計策略RISC
擴展指令集M、A、F、D、Q、C、P
分支預測結構比較和分支
通用暫存器16、32(包括一個始終為零的暫存器)
浮點暫存器32(可選;寬度取決於選用的擴充指令集,可為32、64、128位元)
Close
RISC-V處理器原型,2013年1月

與大多數指令集相比,RISC-V指令集可以自由地用於任何目的,允許任何人設計、製造和銷售RISC-V晶片軟件而不必支付給任何公司專利費。雖然這不是第一個開源指令集[1],但它具有重要意義,因為其設計使其適用於現代計算裝置(如倉庫規模雲端運算機、高端流動電話和微小嵌入式系統)。設計者考慮到了這些用途中的效能與功率效率。該指令集還具有眾多支援的軟件,這解決了新指令集通常的弱點。[2]

RISC-V指令集的設計考慮了小型、快速、低功耗的現實情況來實做,但並沒有對特定的微架構做過度的設計。[3][4]

截至2021年12月,RISC-V工作小組已經批准了版本 20191213 的非特權指令集(Unprivileged ISA,曾經稱為用戶級指令集 User-Level ISA),以及版本 20211203 的特權指令集(Privileged ISA)。

意義

RISC-V的作者們旨在提供數種可以在BSD特許條款之下自由使用的CPU設計。該特許條款允許像是RISC-V晶片設計等衍生作品可以像RISC-V本身一樣是公開且自由發行,也可以是閉源或者是專有財產。

相比而言,ARM控股MIPS科技等商業晶片供應商會對使用其專利者收取高額的特許費用。[5]他們也要求在接收其描述設計優點的檔案和指令集前,還需要簽署保密協定。許多設計優點為完全專有,從來不會披露給客戶。這種保密制度阻礙了公共教育用途和安全審核,以及開發公共、低成本的自由及開放原始碼軟件編譯器作業系統[來源請求]

處理器設計需要多種專業的設計知識,包括電子邏輯、編譯器和作業系統,這種資源很難在專業工程團隊之外見到。所以現代且高質素的通用電腦指令集近年來除了學術環境以外並沒有在任何地方被廣泛使用,甚至沒有被闡述。正因如此,許多RISC-V貢獻者將此視為整個社群付出的成果,而這也是RISC-V有很多工程上的應用的一項原因。

RISC-V的作者們還有大量研究和用戶經驗來驗證他們在矽片和仿真中的設計。RISC-V指令集是從一系列的學術電腦設計專案直接發展而來的。它一開始的目的有一部分是為了幫助這些專案。

歷史

前身

RISC的歷史可追溯到1980年左右。[6]在此之前,人們覺得簡單的計算機可能會有用,但是沒有很多人去闡述其設計原則。這種簡單而有效的計算機一直都是學術界的興趣。

學術界的學者們為了出版第一版的《電腦架構:量化研究方法》(Computer Architecture: A Quantitative ApproachISBN 978-1558600690 ,所以於1990年訂立了RISC指令集DLX英語DLX大衛·帕特森(David Patterson)是其中一位作者,後來協助RISC-V的開發。但是DLX只用於教育用途,學術界和業餘愛好者使用FPGA來實做它,但並沒有取得商業運用。

版本2及更早版本的ARM CPU具有公共域指令集,並且仍有GCC的支援。該指令集有三個開源內核,但從未被製造。

OpenRISC英語OpenRISC是一款基於DLX的開源指令集,並且具有相關的RISC設計。OpenRISC 完全支援GCC並且有實做在Linux上,但是它很少有商業上的實做。

RISC-V基金會及RISC-V國際

加州柏克萊分校的Krste Asanović教授英語Krste Asanović教授發現開放原始碼的電腦系統有很多用途。在2010年他決定用三個月的時間來開發並發表一個開放原始碼的電腦系統。這個計劃是用來幫助包括學術以及工業的用戶。柏克萊分校的大衛·帕特森教授也參加了這個計劃。帕特森也是原來柏克萊分校RISC的設計者,RISC-V只是他眾多RISC CPU研究計劃的一個.RISC-V計劃早期一些經費來自DARPA

有參與支援RISC-V基金會的公司以及機構包括了超微半導體晶心科技英國航太系統、加州大學柏克萊分校、Bluespec英語Bluespec、Cortus、Google、GreenWaves Technology、慧與科技華為IBM、Imperas Software、中國科學院北京清華大學印度理工學院、萊迪思半導體、邁倫科技、美高森美、美光科技輝達恩智浦半導體甲骨文公司高通Rambus威騰電子SiFive英語SiFive阿里巴巴集團紅帽公司成為資本[7]

2019年6月,圖靈獎得主、RISC-V基金會創始人之一大衛·帕特森(David Patterson)在瑞士宣佈,將依託清華-柏克萊深圳學院英語Tsinghua-Berkeley Shenzhen Institute(TBSI),在內部建設RISC-V國際開源實驗室(RISC-V International Open Source Laboratory),又稱大衛帕特森RIOS圖靈實驗室。清華大學稱實驗室將瞄準世界CPU產業戰略發展新方向和粵港澳大灣區產業創新需求,[2]聚焦於開源指令集CPU研究,建設以深圳為根節點的RISC-V全球創新網絡和以技術成果轉移為主要使命的非營利組織,全面提升RISC-V生態系至最先進可商用水平。預判屆時將面對國際大廠法律層面發起挑戰問題上,柏克萊加州大學和清華大學的法學院將與之建立聯絡。[2]

2020年3月,RISC-V基金會為規避美國對中國的貿易限制而將總部搬遷至瑞士[8],並更名為RISC-V國際(英語:RISC-V International),以非盈利商業協會的身份在瑞士註冊[9]

獎項

Thumb
IGLOO2開發者用單片機,RISC-V指令集。

激勵要求

RISC設計者們認為指令集因為位於硬件和軟件之間,所以是電腦主要的溝通橋樑,因此如果有一個設計良好的指令集是開源而且可以被任何人使用的,就可以讓更多的資源能夠重複利用,而大大的減少軟件的成本。而這樣的指令集也會增加硬件供應商市場的競爭力,因為硬件供應商們可以挪用更多資源來進行設計,減少處理軟件支援的事務。[10]

設計者聲稱在指令集設計領域裏,新的設計準則漸漸變得罕見,而近四十年中,大多數成功的設計變得越來越相似。至於那些失敗的指令集,大多數是因為他們的贊助商賺不了錢,而不是因為其指令集在技術上有多差。所以,一個在成熟的設計準則之下開發且設計良好的開源指令集想必能吸引許多供應商長期的支援。[10]

許多先前的開源指令集架構使用GNU通用公眾特許條款來鼓勵用戶們允許他們的實作方法被其他人複製或是使用。

設計者們表示,RISC-V指令集是給實際上的電腦使用的,它不像其他學術上的指令集設計,只有為了比較好闡述理念而做最佳化。而RISC-V指令集有一些功能是可以增加電腦速度又可以減少成本和電源使用。這些特色包含,Load/store架構,在CPU裏面的位元表示方法來簡化數據多工器(MUX),以標準為基礎來簡化的浮點數,架構中立的設計和把最高有效位(Most significant bit,MSB)放到固定位置來加速符號擴充(Sign extension)。而sign extension常常就是靜態時序分析裏面的關鍵路徑(Critical timing path)[11]

RISC-V 指令集是設計來給各式各樣的用途使用的,而它支援三個不同的字組大小,分別是32位元、64位元、128位元以及與這三種字組大小有關的各式各樣的指令子集。而這些指令子集的定義會按照那三個字組大小來做些微的改動。透過這些指令子集的向量處理器與數據中心等級的機櫃式平行電腦/平行運算來幫助嵌入式系統個人電腦超級電腦

該指令集採取不固定的編碼長度而且還可以再擴充,因此在未來,還可以一直加入更多位元的編碼方式。該指令集有特別留空間給128位元的延伸版本,因為60年的產業界經驗顯示在指令集設計領域裏,最無法復原的錯誤就是缺少記憶體定址空間。截至2016年,128位元的指令集仍然刻意地維持在「未凍結英語Freeze (software engineering)」的狀態,這是因為到現在為止,人們很少有實際上操作這麼大記憶體的系統的經驗。[11]

然而,RISC-V也可以拿來做學術上的使用。它擁有簡化的整數指令子集允許學生拿來做基本的練習,而整數指令子集就是一個簡單的指令集架構(ISA)讓軟件可以控制研究上的機器。而不定長度的指令集架構也允許擴充功能來滿足研究或是學生練習上的需求。[11]分割出來的特權指令集可以支援在不重新設計編譯器的情況下,進行作業系統方面的研究。[12]RISC-V的開放的知識產權允許相關的設計被發佈、使用和修改。[11]

軟件

一個新的CPU指令集通常的問題是缺少CPU的硬件設計跟軟件的支援。在RISC-V的網站有一個user mode指令集的規格,還有一個用來支援作業系統模式的優先指令集的初步規格。

市面上已經有好幾個使用RISC-V開源架構的CPU設計可以供參考,包括64-bit Berkeley Out of Order Machine(BOOM)[13]、64-bit Rocket[14]、柏克萊設計的五個32-bit Sodor CPU[3]、Clifford Wolf 的 picorv32、Syntacore 的 scr1、蘇黎世聯邦理工學院/波隆納大學的 PULPino (Riscy and Zero-Riscy)[15],以及很多其他的設計。使用三層指令分段的 Sodor CPU 是一個適合嵌入式設計的小型CPU。Rocket可能適用在小型低功耗的個人電腦或其他個人裝置。BOOM 使用了大部分Rocket的架構,但是功能更加強大,適合個人電腦、伺服器或超級電腦。picorv 跟 scr1 都是使用Verilog 設計的 32位元 MCU 等級的 RV32IMC。PULPino的核心使用了一個適合微控制器的簡單的 RV32IMC ISA架構(Zero-Riscy),以及另外一個更強大的DSP版本 RV32IMFC ISA 可以支援一些嵌入式訊號處理的特別 DSP 指令集。

設計軟件包括了一個設計編譯器 Chisel英語Chisel (programming language),它可把設計編譯成Verilog代碼。網站上還有測試用的參考資料可以用來驗證設計的正確性。

RISC-V目前提供的軟件有 GNU Compiler Collection (GCC) toolchain(具有偵錯器 GDB)、一套 LLVM toolchain、OVPsim英語OVPsim模擬器(以及RISC-V快速處理器模式的軟件參考庫)、Spike 模擬器,以及一套在QEMU上運行的模擬器。

作業系統的支援包括 Linux 核心、FreeBSD,以及 NetBSD,但是監督模式的指令直到版本 1.11 的特權指令集才被標準化[12],所以這方面的支援還不是正式的。有一個早期的 RISC-V 的FreeBSD 作業系統已經在2016年2月上載到開放原始碼社群,而且包含在 FreeBSD 11.0[16][17]Debian[18]Fedora[19]的版本也有人在移植,並且在逐漸穩定中。已經有人做了一個 Das U-Boot 的移植版本。[20]UEFI Spec v2.7 定義了RISC-V UFEI 的規格,而且慧與科技公司的工程師已經做好一個 TianoCore英語TianoCore 的移植版本,並且將會上載到開放原始碼社群。已經有人做好了一個 L4 microkernel family 的移植[21]。還有一個在網頁上用JavaScript寫的 RISC-V Linux 系統模擬器[22]

設計

RISC-V處理器

參見

參考資料

拓展閱讀

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.