来源:OpenFPGA
Microsemi 于 2017 年开始在其 FPGA 中提供 RISC-V 软核,Lattice 于 2020 年开始提供,英特尔 (Altera) 于 2021 年开始提供,因此 Xilinx 是最后一家这样做的主要供应商(2024年5月30日)。
Microsemi 和 Gowin 的 FPGA 中也有 RISC-V 硬核,类似于 Zynq。对于 Microsemi 来说,由五个 64 位 SiFive U54/S51 内核组成的集群(四个支持 Linux,一个“real-time”),根据FPGA等级分别以 600 或 666 MHz 运行,基本上是 FPGA 中降级的 HiFive Unleashed。
所以目前FPGA厂商不管硬核或者软核都向RISC-V靠拢,对于一些“新”厂商,可以理解;对于像Xilinx或者Altera这种老牌厂商本身自己有基于RISC的软核,为什么也向RISC-V发展呢?
下面我们先简单看下RISC-V的发展,然后再分析一下这些FPGA厂商为什么选择RISC-V。
RISC-V 发展
RISC-V(英语发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),简易解释为与开源软件运动相对应的一种“开源硬件”。该项目于2010年在加州大学伯克利分校启动,但许多贡献者是该大学以外的志愿者和行业工作者。(来源:维基)
其发展史及其标志性事件如下图所示:
目前已经有很多大公司加入到RISC-V“大家庭”中了,下面列举了部分厂商:
RISC-V VS RISC VS ARM
乍一看,很多人可能会认为 RISC-V 是 RISC 的变体,而 RISC 是一种指令集架构。毕竟,它们的名称相似,因此很容易造成混淆。但这与事实相去甚远。下面我们简单介绍一下RISC-V和RISC,就会明白他们真正的区别。
什么是 RISC?
其实 RISC 是一个广义术语,意为“精简指令集计算机”。基本上,RISC 计算机本质上是为运行更简单的单个指令而设计的。与 CISC(复杂指令集计算机)相比,RISC 处理器对几乎所有指令都使用统一的指令长度。相比之下,CISC 指令更复杂,可以执行低级和多步骤操作。
简单来说,RISC 处理器可以执行更简单、统一的指令,而 CISC 可以执行复杂度和范围各不相同的指令。每个 RISC 指令一次只能执行一件事,而 CISC 指令可以同时执行多件事。由于指令以更简单的代码编写,并且本质上更简单,因此 RISC 处理器通常需要更多指令才能完成与 CISC 处理器相同的任务。可以通过提高 RISC CPU 使用流水线执行这些任务的速度来抵消这种差异。由于它们更简单,RISC 处理器的设计速度也可以比 CISC 处理器更快,并且可以运行更高效的代码。
由于 RISC 本身不是一种架构,而是一个广义的术语,因此许多 CPU 架构都可以被视为 RISC。最著名的 RISC处理器架构之一是 ARM,它为我们的智能手机以及一些笔记本电脑和计算机提供支持。其他包括 PowerPC,它长期用于 Apple 电脑和游戏机。同时,x86 可以被视为 CISC 设计,因为它更复杂。
RISC 一词是由加州大学伯克利分校的 David Patterson 在 1980 年至 1984 年间领导的伯克利 RISC 研究项目创造的。事实证明,该项目非常成功,而“RISC”一词后来涵盖了所有精简指令集计算机 - 甚至斯坦福大学在同一时间开发的竞争性 MIPS 项目最终也被称为 RISC 架构。至于那个特定的伯克利项目,它后来被 Sun Microsystems 开发的 SPARC 微架构所采用 - 该架构最终成为我们智能手机中 ARM 架构的灵感来源。
什么是 RISC-V?
虽然 RISC 本身并不是一个特定的架构,但可能对一种使用 RISC 名称的架构感到困惑,那就是 RISC-V。它是由加州大学伯克利分校开发的指令集架构 (ISA),旨在体现 RISC 处理器的原理,同时也是一个开源标准。虽然最著名的 RISC 架构 ARM 是专有的,需要芯片制造商的许可,但 RISC-V 是免费的,一般来说,每个人都可以免费使用。
但与 ARM 不同的是,RISC-V 的开发和发布旨在推出一种开源、可扩展且可部署在任何设备上而无需支付任何版税的 CPU 设计。据设计人员称,拥有一个免费使用的 CPU 架构可以大大降低软件成本。
所以我们对比 RISC 和 RISC-V 并没有什么意义,我们简单对比一下ARM VS RISC-V。
RISC-V VS ARM
建模与架构
从历史上看,ARM 一直主导着微处理器市场,从低功耗设备到高性能处理器。这主要归功于其许可模式,该模式允许各公司授权 IP 并根据自己的应用进行定制。此外,ARM 还开发了多个处理系列,例如用于高性能应用的 Cortex-A、用于实时应用的 Cortex-R 和用于节能应用的 Cortex-M — 每个系列都成为各种应用的非官方认可的性能标准。
另一方面,RISC-V 架构的灵感来源于 ARM 的专有建模。伯克利的研究人员最初将该架构作为一种开源替代方案,以促进技术创新。自那以后,它受到了谷歌和 Nvidia 等多家大型科技公司的青睐。
ARM 拥有成熟的软件和硬件,可以帮助公司加快开发周期。它还拥有一系列具有成熟功能集的选择。另一方面,RISC-V 的架构提供了 ARM 设备无法提供的灵活性和一定程度的定制性。考虑到原始性能,ARM 将胜过任何 RISC-V 处理器。尽管 ARM 继续保持其性能领先地位,但事实证明 RISC-V 可以提供更高的计算密度。这意味着将获得具有相同性能的更小芯片。这在许多应用中都是有利的,例如智能手表等可穿戴设备。
开放性和许可
RISC-V 和 ARM 都是指令集架构 (ISA)。但它们的主要区别在于 RISC-V 是开源 ISA,而 ARM 是私有 ISA (使用需要授权)。
指令集
RISC-V 具有固定的指令集架构,其中包含基本整数指令集和可选扩展指令集,用于浮点运算、矢量处理等功能。ARM 具有多个指令集,包括 ARMv7、ARMv8 和各种扩展,如用于 SIMD(单指令、多数据)操作的 NEON。
灵活性和定制性
RISC-V 具有更大的灵活性和定制性,因为它是开源的,使设计人员能够根据自己的特定需求定制 ISA。ARM 虽然通过其扩展提供了一定程度的可配置性,但由于其专有性质而受到限制。
生态系统和行业
ARM 拥有完善的生态系统,包括各种处理器、开发工具和来自不同供应商的支持。它广泛应用于移动设备、嵌入式系统,并越来越多地用于服务器和数据中心。RISC-V 的生态系统仍在发展,但已获得显著的关注,尤其是在学术界、研究界和初创公司。它也在物联网、边缘计算和一些服务器应用中受到关注。
性能和能效
ARM 一直将能效作为重点关注领域,并占据市场主导地位。他们已经提供了专注于低功耗设备的能效和易用性的选项。此外,他们还提供适用于手机等高端应用的硬件浮点和DSP 扩展选项。
还恰好有大量的节能功能可用。其中一些包括动态电压和频率调整,允许处理器根据实时要求降低或增加芯片的电压和时钟。另一方面,RISC-V 允许更小的硅片占用空间,这将使其具有功耗优势。此外,固定的 32 位指令格式和 16 位压缩指令扩展可以帮助其实现更节能的代码实现。总体而言,虽然 RISC-V 提供了降低功耗设备的潜力,但它还没有达到这个水平。在 RISC-V 开始从 ARM 手中夺取市场份额之前,仍需要投入大量工作和时间。
成本和可访问性
由于无需支付与 ARM 相关的许可费用,因此实施 RISC-V 内核对公司而言可能更具成本效益。ARM 内核通常需要支付许可费用,这会增加采用 ARM 架构的设备的生产成本。
指令编码
RISC-V 使用定长指令编码,简化了解码逻辑。ARM 采用可变长度指令编码,允许更紧凑的代码,但解码逻辑可能更复杂。
FPGA厂商拥抱RISC-V
首先,不论Altera的niso还是Xilinx 的 microblaze甚至Lattice的LatticeMico8/32 都是基于RISC的,那为什么目前主流FPGA厂商基本都推出了基于RISC-V的硬核或者软核,个人认为这些厂商主要从以下几点考虑:
创新和发展
RISC-V处于刚起步阶段,其发展潜力很大,可以在降低功耗、性能、安全等方面进行优化,同时又可以保持与其他设计的兼容性。同时RISC-V还支持需要加速和特殊功能的情况下自定义指令。当然,其未来怎么发展无从得知,现在加入这个领域,能占有一席之地。
RISC软核的疲态
不论NISO还是MicroBlaze都已经发展了很多年了,经过多年的发展,目前两者都是比较稳定的,但是FPGA本身的结构决定了其性能也有局限性,这个情况下,Altera采用多核化,而Xilinx也从PowerPC“进化”到 ARM 硬核,才逐渐被市场接受。
生态
对于处理器来说,生态才是最重要的,FPGA中的软核一直不温不火的另一个原因就是生态。之前所有的厂商都在“自建生态”,导致FPGA平台更换后就需要针对新的平台进行系统性的学习和适应,而且目前市场上得主流生态是ARM,想找一个会Nios II或者MicroBlaze的专职人员基本难于登天,所以目前都是FPGA人员兼职开发软核(这并不是一个好的发展方向)。
还有一个问题,生态不行或者使用的人员少,就意味着没有成熟的案例可以参考或者学习,更不用说是移植了,同时遇到问题没有人能够讨论或者协助解决。所以对于软核的使用大家都会遇到“新手期”长的问题。目前接入一个免费开源未来可能成为主流的ISA架构领域还是很有必要的。
RISC-V架构的特点
除了上面说到得一些特点外,RISC-V还有一个特点就是-冻结式ISA。基本说明被冻结,并且已批准的可选扩展名也被冻结。由于ISA的稳定性,因此可以放心地将软件开发应用于RISC-V。为RISC-V编写的软件可能在所有类似的RISC-V内核上运行。未来有可能你在NISO-V上开发的软件可以很方便的移植到MicroBlaze-V上。
FPGA的定制性
我们都知道RISC-V指令集采用了结构化的指令集定义方式,这种方式的特点就是非常方便的实现指令的裁剪和扩展。我们都知道FPGA的优势之一就是可编程性,这就非常适合RISC-V的裁剪和扩展,可以搭建出实现任意指令的软核。这时候我们可以针对特定的应用(目前FPGA的定制化),定制合适的指令,就可以以最小的逻辑实现低功耗适合我们应用的处理器。比如我们只实现串口或者SPI接口等简单的应用我们就不需要很复杂的指令,而针对复杂的处理架构就需要多一点的指令。
战略意义
之前传出Arm和NVIDIA正在擦除“火花”,Intel和Arm的关系正在从微妙走向诡异。所以Intel对于RISC-V指令集肯定心有所动。网上还流传出Intel要收购基于RISC-V指令集的处理器IP提供商SiFive的传闻(后被证明不实),所以这些巨头的动向会影响整个行业的风向,这意味着想要在行业内不被淘汰,追随或者超越这些行业巨头的脚步未尝不是一个好的选择。
总结
目前主流FPGA厂商都推出了基于RISC-V的软核,表明软核处理器依然有着它独特的作用和强大的生命力。未来发展可期,未来基于RISC-V的硬核SOC-FPGA也并不遥远~