什么是RISC-V

什么是RISC-V

这个问题是个很好的问题,是因为现在对硬件、ISA啥的完全都没有概念。所以,只好完全从头看起。这些都是来干哈的,以及所涉及的各方面。

从最简单的概念开始看起。

  1. 什么是RISC和CISC?

RISC(精简指令集计算机,Reduced Instruction Set Computer-RISC)和CISC(复杂指令集计算机,Complex Instruction Set Computer-CISC)是CPU的两种架构,区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构。

计算机性能的提高可以通过增加硬件的复杂性来获得,随着集成电路技术,特别是VLSI(超 大规模集成电路)技术的迅速发展,硬件工程师可以通过不断增加可实现复杂功能的指令和多种灵活的编址方式软件编程方便和提高程序的运行速度,相应地,硬件越来越复杂,造价也相应提高。通过提供复杂指令来提高性能的方法,顾名思义,也就叫做CISC。一般CISC计算机所含的指令数目至少300条,甚至超过500条。CISC的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,可能只需要一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA, ADDRB中的数据读入寄存器、相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。如今,Intel及其兼容CPU还在使用CISC 架构。

随着CISC的发展,它的缺点也逐渐暴露出来,日趋庞杂的指令系统不但不易实现,而且还可能降低系统性能。IBM公司的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题,1979年David Patterson教授也开始UC Berkeley开展这一研究。结果发现,首先,在CISC系统中,各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令,只占处理器指令系统所有指令中的20%,事实上最频繁使用的指令是取数据、存数据和加法这些最简单的指令。这就说明,花大力气设计和实现的复杂指令其实作用并不大。而且,复杂的指令系统必然带来结构的复杂性,不但增加了设计的时间与成本还容易造成设计失误。此外,尽管VLSI技术已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展。

因而,针对CISC的这些弊病,David Patterson教授等人提出了精简指令的设想,即指令系统应当只包含那些使用频率很高的少量指令,并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构。RISC架构要求软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。

RISC-V读作RISC Five,也即第五代精简指令处理器。取这个名字正是因为美国伯克利研究团队的David Patterson教授在此之前已经研制了四代精简指令处理器芯片。

2. SPARC

2017年9月,Oracle正式放弃硬件业务,当中包括了收购自Sun Microsystems的SPARC处理器。

SUN公司推出的SPARC处理器,SPARC上的操作系统Solaris也成了历史。

SUN Microsystems起源自斯坦福毕业生Andreas Bechtolsheim的计算机项目(这最后演变成了工作站),主要的产品是是工作站、服务器和UNIX 操作系统。不同于当时的硬件系统的封闭,这个项目从早期开始就保持开放。之前的系统一般都是一家公司同时提供软件和硬件,而Bechtolsheim不生产定制化的硬件,还推动不同工作站使用同一的操作系统——UNIX。这种开放性的观点奠定了Sun Microsystems最后的基础。在完成了这两件事后,Bechtolsheim将他的电脑授权给不同公司生产,并将其命名为SUN(Stanford University Network的简称)【终于知道SUN原来不是太阳啊】。

不久之后,斯坦福另两个毕业生Vinod Khosla 和Scott McNealy也加入进来,三人共同成立了后来的Sun Microsystems。公司成立后招的第一个员工就是伯克利的博士生Bill Joy。根据福布斯报道,1985到1989年间,Sun Microsystems的年复合增长率高达145%,是美国当时增长率最高的公司,并在1987年一跃成为全球最大的工作站供应商。

Sun Microsystems在20世纪80年代末推出了RISC架构的处理器Sparc(scalable performance architecture的简称),这个架构的处理器比当时流行CISC架构处理器快得多,很快就占领了RISC处理器的市场。SPARC架构也对外完全开放,作为业界第一款具有可扩展性功能的产品,SPARC微处理器的推出为SUN赢得了高端微处理器市场的领先地位。为了推动SPARK处理器的发展,Sun Microsystems接下来推进UNIX操作系统的发展。那几年的Sun Microsystems拥有了芯片、Solaris系统、工作站等产品,公司还在1993年进入了财富五百强,风头盛极一时。

到了2001年,SUN成为全球增长最快的服务器公司。根据IDC的数据,当年SUN的服务器市场占有率从前一年的第四上升到第二,仅仅屈居IBM之后。同时SUN还是无可争议的UNIX服务器市场领导者。当时SPARC的生态链有数百家制造商、不少的独立芯片制造商,还有数十家公司制造自由的工作站和服务器。但是根据Gartner的数据,从2002年开始,Sun Microsystems的营收份额每况愈下,到了2007年正式被IBM反超。而RISC+UNIX的服务器市场也逐渐被Intel的X86+Linux/Windows拉下。

2008年,SUN投入巨额研发资金,开发面向中高端服务器应用的“Rock”处理器,但是研发过程中“Rock”出现了比较严重的性能问题,并没有达到当初Sun的预期,并且连续的财政赤字让Sun无力再继续负担,被Oracle收购。

3. RISC-V

在2010年,伯克利研究团队要设计一款CPU,然而,英特尔对X86的授权卡的很严,ARM的指令集授权很贵,MIPS、SPARC、Open Power也都需要各自的公司授权。在选择很有限的情况下,伯克利的研究团队决定从零开始设计一套全新的指令集。而被很多媒体大肆宣扬也让人振奋的是,伯克利的研究团队4名成员仅用了3个月就完成了RISC-V的指令集开发。目前,伯克利研究团队已经完成了基于RISC-V指令集的顺序执行的64位处理器核心(代号为Rocket),并前后基于45nm与28nm工艺进行了12次流片。Rocket芯片主频1GHz,与ARM Cortex-A5相比,实测性能较之高10%,面积效率高49%,单位频率动态功耗仅为Cortex-A5的43%。在嵌入式领域,Rocket已经可以和ARM争市场了。

RISC-V指令集是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),RISC-V是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V指令集完全开源,设计简单,易于移植Unix系统,模块化设计,完整工具链,同时有大量的开源实现和流片案例,已在社区得到大力支持。它虽然不是第一个开源的的指令集(ISA),但它是第一个被设计成可以根据具体场景可以选择适合的指令集的指令集架构。基于RISC-V指令集架构可以设计服务器CPU、家用电器CPU、工控CPU和传感器中的CPU。

在处理器领域,目前主流的架构为x86与ARM架构,但它们作为商用的架构,为了能够保持架构的向后兼容性,其不得不保留许多过时的定义。久而久之就变得极为冗长。RISC-V架构相对而言不用向后兼容。目前的“RISC-V架构文档”分为“指令集文档”(riscv-spec-v2.2.pdf)和“特权架构文档”(riscv-privileged-v1.10.pdf)。“指令集文档”的篇幅为145页,而“特权架构文档”的篇幅也仅为91页。相对上手和入门较快。

RISC-V架构相比其他成熟的商业架构的最大一个不同还在于它是一个模块化的架构。因此,RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而试图通过一套统一的架构满足各种不同的应用。这种模块化是x86与ARM架构所不具备的。以ARM的架构为例,ARM的架构分为A、R和M三个系列,分别针对于Application(应用操作系统)、Real-Time(实时)和Embedded(嵌入式)三个领域,彼此之间并不兼容。

短小精悍的架构以及模块化的哲学,使得RISC-V架构的指令数目非常的简洁。基本的RISC-V指令数目仅有40多条,加上其他的模块化扩展指令总共几十条指令。



参考:

  1. [行业动态]再见,SPARC处理器!再见,SUN! - 名片全能王
  2. 大道至简--RISC-V架构之魂(上) - zoomdy's blog - CSDN博客
  3. SPARC微处理器综述
  4. 终于有人把RISC-V讲明白了-电子发烧友网
  5. 华为等巨头加入RISC-V阵营,是为了对抗ARM吗
  6. ARM(RISC)和x86(CISC)的技术差异 - 奋进的苦瓜 - 博客园
编辑于 2018-11-19

文章被以下专栏收录