起源
risc起源于1981年,加州大学伯克利分校开发出来risc-I处理器,这也是risc架构的鼻祖,RISC-Ⅰ原型芯片共有44500个晶体管,具有31条指令,包含78个32位寄存器,分为6个窗口,每个窗口包含14个寄存器,还有18个全局变量。寄存器占据了绝大部分芯片面积,控制和指令只占用芯片面积的6%。
PS:1981年大家都在玩什么呢?大家还在用8086和8088处理器,使用MS-DOS操作系统。X86架构刚引进分段内存管理,1982年发布了80186芯片,至于ARM架构,还没开始研发。
发展
1983年发布的RISC-Ⅱ原型芯片有39000个晶体管,包含138个寄存器,分为8个窗口,每个窗口有16个寄存器,另外还有10个全局变量。1984年和1988年分别发布了RISC-Ⅲ和RISC-Ⅳ
RISC架构的设计理念也启发了很多其他的架构,比如ARM,Power,MIPS等。
2010年,加州大学伯克利分校开始研发RISC-V架构,教授Kreste Asanović开始为下一个硬件设计的项目选择指令集架构,他觉得X86历史包袱很重,太复杂;ARM的授权费用又太贵,不适合做学术项目,所以就自己研发一个新的指令集(翻译翻译什么叫大佬?)
RISC-V 11年第一次公开发布,14年第一版标准定型,15年成立基金会,16年开始不断有公司加入RISC-V阵营。
目标
RISC-V要做指令集领域的开源者和免费标准制定者,研发团队认为在互联、操作系统、编译器、数据库与图像等在业界都有开放的标准或开源的代码,指令集领域也需要一个这样的开源标准
RISC-V全面开源,开发工具和开发环境IDE都是免费的,
竞品
指令集架构和处理器实现是两码事,RISC-V属于是指令集架构标准,RISC-V竞品是其他ISA,主要就是ARM架构和X86架构。X86是负责指令集架构,ARM和RISC-V都属于精简指令集架构,ARM架构起源于1983年,比RISC架构(RISC:精简指令集是加州大学伯克利分校教授Dacid Patterson在70年代提出的,是一种指令集设计理念,不是一个具体的指令集,RISC-I是具体的指令集)还晚一些。RISC-V与其他商用指令集相比,
从复杂性来说,RISC-V更加简洁,RISC-V和ARM都是精简指令集架构,RISC-V发展较短,没有向后兼容的历史包袱,RISC-V的规范文档只有145页,其他两个都是上千页。
从技术角度来说,RISC-V具有高度模块化和指令数目非常少这两个优点。
从运营角度来说,RISC-V由RISC-V基金会来运营,由社区来负责设计,具有更好的生态,指令集生命力更强。
运营
RISC-V由基金会负责运营,社区负责技术研发任务,每个任务组负责一项任务的研发。社区又分为两大社区,分别是硬件社区和软件社区,硬件社区负责开源内核和处理器实现等,软件社区负责软件兼容和软件适配。
技术变革和设计理念
目前RISC-Ⅴ指令集主要包括四个可以在RISC-Ⅴ官网下载的文件。指令集分为非特权指令集和特权架构,非特权指令集几乎包括所有指令的定义,除了基本的指令集,还有扩展指令集。RISC-Ⅴ是在标准指令集之上做扩展的指令集架构,基本指令集包括定点指令、存储一致性(RVWMO)、乘法、原子、单精度/双精度/128位浮点等。而扩展指令集则包括32E、128位指令、计数器、LBJTPV扩展等。特权架构说明的是RISC-Ⅴ特权架构的定义,特权架构有用户模式、监督模式和机器模式三种特权级别,另有一个调试接口处于可用的状态和一个刚起步的Trace。
近来,开源处理器项目RISC-Ⅴ在半导体业界掀起一股新的浪潮。这股浪潮同时带来敏捷芯片开发的设计概念。对于敏捷开发,芯片设计工程师比较少提及,但是它在软件开发中占有重要地位,主要是指开发团队在面对客户多变的需求时,能快速实现版本迭代,在短时间内快速提交高质量的代码。加州大学伯克利分校在开发RISC-Ⅴ标准和设计处理器内核的过程中,引入并改进用Scala嵌入式语言构造硬件的Chisel语言,同时开源了一款兼容RISC-Ⅴ指令集的Rocket Chip处理器,这个项目在GitHub上作为标志性的Chisel项目,包含一个可定制性强的处理器内核、缓存和总线互联等IP的模块库,以此为基础构成了一个完整的SoC设计,并可以生成可综合的Verilog RTL代码。