RISC-V简介
1. RISC-V
RISC-V(发音为“riskfive”)是一个基于精简指令集(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. 相关教材