前言
在2015年12月的Nature网站上,由U.C. Berkeley等几个大学的研究人员主导的一个开发团队发表了一篇文章。文章中研究人员用标准的CMOS工艺制造了同时集成了RISC-V指令集的CPU和片上光通信器件的微芯片。这或许标志着不久的未来微电子芯片的接口速率将会大幅的提高,不再受到原先电接口IO的速率限制。不过本篇文章要关注的,则是在这颗实验性的芯片上集成的另外一个主角,"RISC-V"(发音risk-five)。
1、CPU指令集(ISA)
软件和硬件之间沟通的桥梁
指令集(ISA)通俗地讲可以理解为一台机器(计算机中的CPU)可以执行的“指令”集合,通过这些“指令”能够实现诸如加减乘除这样的运算,以及接收外部输入(比如键盘)和控制外部输出(如显示器)这样的功能。
指令集也可以理解为软件和硬件之间沟通的桥梁,不同的厂家可能会用不同的方法来实现相同的指令集,从而让遵循相同指令集的软件可以无需修改即可运行。
比如我们熟知的Intel和AMD都实现了x86指令集,这基本上统治了PC的市场。
而出现较晚的ARM指令集则基本占领了移动端处理器的大部分市场。
2、RISC指令集的发展历史
1980年Berkeley主导了RISC
了解了什么是指令集接下来还是让我们来聊聊RISC的发展历史。
早期的微处理器大部分为复杂指令集(CISC)架构,即设计尽可能复杂的指令来完成任务 ,原因之一是当时的编译技术并不发达。
而随着编译器技术以及其他技术的发展,研究人员渐渐发现多数的复杂指令只在很少的时候被用到,
而且复杂的指令限制了处理器速度的进一步提高。
精简指令集(RISC)技术应运而生,IBM 801可能是第一个用精简指令集的理念来设计的系统,并发展成为了今天的Power架构。
1980年左右Berkeley的Dave Patterson主导了Berkeley RISC项目并设计了其第一代的处理器RISC I,这就是RISC这个名称的由来。
Sun Microsystem(现在的Oracle)的SPARC处理器架构也有很多Berkeley RISC影子在里面。
差不多同时,斯坦福的教授John Hennessy(现在已经是斯坦福校长)和他的团队也从课程设计出发设计了MIPS处理器的早期雏形,
并最终孵化为MIPS Technologies. Inc公司,后来被 Imagination Technologies收购。
我们能在很多家用路由器里见到他的影子。而ARM,迄今为止发展的最好的RISC指令集,已经无处不在。
时间到了2010年,当Berkeley的Krste Asanovic教授想要为接下来的一系列项目选择一个微处理器指令集时,他找不到一个合适的。
Intel的X86是CISC指令集,过于复杂和庞大,而且存在专利问题。
而ARM除了专利问题外,若想自行设计基于ARM指令集的处理器,需要非常昂贵的License。
OpenRISC作为一个开源的指令集架构,其许可证为GPL,这意味着所有的指令集改动都必须开源。
而且,OpenRISC发展缓慢,设计过于老旧,64位架构也不成熟。
Krste Asanovic教授