RISC-V简介

1. RISC­-V

RISC-­V(发音为“risk­five”)是一个基于精简指令集(RISC)原则的全新开源指令集架构(ISA)。其中的字母“V”包含两层意思,一是这是Berkeley从RISCI开始设计的第五代指令集架构;二是它代表了变化(Variation)和向量(Vectors)。

2. 起源

RISC­-V架构最早由美国加州大学伯克利分校(简称伯克利)的Krste Asanovic教授、Andrew Waterman和Yunsup Lee等开发人员于2010年发明,并且得到了计算机体系结构领域的泰斗David Patterson的大力支持。

伯克利的开发人员之所以发明一套新的指令集架构,而不是使用成熟的x86或者ARM架构,是因为这些架构经过多年的发展变得极为复杂和冗繁,还存在着高昂的专利和架构授权问题,而且修改ARM处理器的RTL代码是不被支持的,x86处理器的源代码根本不可能获得到。其他的开源架构(譬如SPARC、OpenRISC)均有着或多或少的问题。

有感于计算机体系结构和指令集架构已经过数十年的发展非常成熟,但是像伯克利这样的研究机构竟然“无米下锅”(选择不出合适的指令集架构供其使用),伯克利的教授与研发人员决定发明一种全新的、简单且开放免费的指令集架构,于是RISC-­V架构诞生了。

3. 发展

经过几年的开发,伯克利为RISC-­V架构开发出了完整的软件工具链以及若干开源的处理器实例,得到越来越多人的关注。

2015年,为了推动RISC-­V产业化发展,一些早期成员和董事会决定成立RISC-­V基金会(www.riscv.org) ,定位是非营利性组织。该基金会负责维护标准的RISC-­V指令集手册与架构文档,并负责RISC-­V开源架构的全球推广工作,也组织会员共同推动RISC-­V的标准完善和应用落地。 迄今为止,全球已有超过 325 家公司和机构加入了 RISC-­V 基金会。

4. 目标

RISC-­V架构的目标如下

  • 成为一种完全开放的指令集,可以被任何学术机构或商业组织所自由使用
  • 成为一种真正适合硬件实现且稳定的标准指令集

5. 特点

特 性 x86或ARM架构 RISC-­V
架构篇幅 数千页 少于300页
模块化 不支持 支持模块化可配置的指令子集
可扩展性 不支持 支持可扩展定制指令
指令数目 指令数繁多,不同的架构分支彼此不兼容 一套指令集支持所有架构。基本指令子集仅40余条指令,以此为共有 基础,加上其他常用模块子集指令总指令数也仅几十条
易实现性 硬件实现的复杂度高 硬件设计与编译器实现非常简单
仅支持小端格式
存储器访问指令一次只访问一个元素
去除存储器访问指令的地址自增自减模式
规整的指令编码格式
简化的分支跳转指令与静态预测机制
不使用分支延迟槽(Delay Slot)
不使用指令条件码(Conditional Code)
运算指令的结果不产生异常(Exception)
16位的压缩指令有其对应的普通32位指令
不使用零开销硬件循环

6. 相关教材

img img img

7. 延展阅读