RISC-V

开源指令集架构 来自维基百科,自由的百科全书

RISC-V

RISC-V(英语发音为“risk-five”)是一個基于精简指令集(RISC)原则的开源指令集架構(ISA),簡易解釋為與開源軟體運動相對應的一種「開源硬體」。该项目于2010年在加州大學柏克萊分校启动,但许多贡献者是该大学以外的志愿者和行业工作者。

事实速览 推出年份, 設計公司 ...
RISC-V
Thumb
推出年份2010年,​15年前​(2010
設計公司加州大學柏克萊分校
最新架構版本
  • 非特权指令集:20191213
  • 特权指令集:20211203
是否開放架構?
體系結構類型載入-儲存架構
字長/暫存器資料寬度3264128
位元組序小端序
指令編碼長度不定長度
指令集架構設計策略RISC
擴展指令集M、A、F、D、Q、C、P
分支預測結構比較和分支
通用暫存器16、32(包括一个始终为零的寄存器)
浮點寄存器32(可选;宽度取决于选用的扩展指令集,可为32、64、128位元)
关闭
Thumb
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处理器

参见

参考资料

拓展阅读

外部链接

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.