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