RISC-V能否成为CPU领域的 Linux
2018-09-13
经历了中美贸易战和中兴事件后,“中国芯”就好像当年的“大跃进”一样,全国上下都在讨论芯片的研发设计和制造。芯片指令集架构作为沟通软硬件运算之间的桥梁,人们却很少关注它。目前市面上应用最广的架构是英特尔的X86和ARM架构,并且基本上所有的芯片公司都在采用ARM的架构。但是想要获得ARM的授权非常难,目前为止,获得ARM授权的公司两只手数的过来。另一方面,ARM的授权费又非常昂贵,对于一些中小企业来说,无法承担这个成本。
RISC-V指令集的出现,可以说是芯片设计公司的希望。RISC-V指令集是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),RISC-V是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V指令集完全开源,设计简单,易于移植Linux系统,模块化设计,完整工具链,同时有大量的开源实现和流片案例。
RISC-V在2015年成立了RISC-V基金会,吸引了大量业内领先的研究机构、硬件厂商、软件厂商。包括Berkeley Architecture Research、中科院计算所等科研机构;包括高通、英伟达、NXP、三星、Microsemi、美光、中兴微电子、华为海思、联发科等半导体厂商;包括谷歌、IBM等IT公司;包括西数、希捷这两大硬盘厂商;还有SEGGER、Mentor Graphics、Express Logic等做开发工具的厂商。近日,特斯拉也宣布加入RISC-V基金会,并考虑在芯片设计中采用免费的RISC-V架构。
设计简单,易于上手
x86与ARM架构的发展的过程随着现代处理器架构技术的不断发展成熟,但作为商用的架构,为了能够保持架构的向后兼容性,其不得不保留许多过时的定义,导致其指令数目多,指令冗余严重,文档数量庞大,所以要在这些架构上开发新的操作系统或者直接开发应用门槛很高。而RISC-V架构则能完全抛弃包袱,借助计算机体系结构经过多年的发展已经成为比较成熟的技术的优势,从轻上路。RISC-V基础指令集则只有40多条,加上其他的模块化扩展指令总共几十条指令。目前的“RISC-V架构文档”分为“指令集文档”(riscv-spec-v2.2.pdf)和“特权架构文档”(riscv-privileged-v1.10.pdf)。“指令集文档”的篇幅为145页,而“特权架构文档”的篇幅也仅为91页。熟悉体系结构的工程师仅需一至两天便可将其通读,虽然“RISC-V的架构文档”还在不断地丰富,但是相比“x86的架构文档”与“ARM的架构文档”,RISC-V的篇幅可以说是极其短小精悍。
模块化设计
RISC-V架构相比其他成熟的商业架构的最大一个不同还在于它是一个模块化的架构。因此,RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而试图通过一套统一的架构满足各种不同的应用。
这种模块化是x86与ARM架构所不具备的。以ARM的架构为例,ARM的架构分为A、R和M三个系列,分别针对于Application(应用操作系统)、Real-Time(实时)和Embedded(嵌入式)三个领域,彼此之间并不兼容。
但是模块化的RISC-V架构能够使得用户能够灵活选择不同的模块组合,以满足不同的应用场景,可以说是“老少咸宜”。譬如针对于小面积低功耗嵌入式场景,用户可以选择RV32IC组合的指令集,仅使用Machine Mode(机器模式);而高性能应用操作系统场景则可以选择譬如RV32IMFDC的指令集,使用Machine Mode(机器模式)与User Mode(用户模式)两种模式。而他们共同的部分则可以相互兼容。
完整的工具链
对于设计CPU来说,工具链是软件开发人员和cpu交互的窗口,没有工具链,对软件开发人员开发软件要求很高,甚至软件开发者无法让cpu工作起来。在cpu设计中,工具链的开发是一个需要巨大工作的。如果用RISC-V来设计芯片,芯片设计公司不再担心工具链问题,只需专注于芯片设计,RISC-V社区已经提供了完整的工具链,并且RISC-V基金会持续维护该工具链。当前RISC-V的支持已经合并到主要的工具中,比如编译工具链gcc, 仿真工具qemu等。
RISC-V是完全开放源,设计公司可以自行添加指令集。这个操作对芯片设计公司来说是极大的诱惑,但同时也有人质疑,自行添加指令集会导致RISC-V碎片化,后期会出现处理器虽然同属于RISC-V指令集,却不能跑一套软件。如此看来,RISC-V能不能成为和ARM一较高下的指令集架构,未来还有很长的一段路要走。