《Arm为何采用Helium技术而不用Neon?.docx》由会员分享,可在线阅读,更多相关《Arm为何采用Helium技术而不用Neon?.docx(7页珍藏版)》请在第壹文秘上搜索。
1、首先,我们需要了解HC1.iUm、Neon是什么?He1.ium是针对ArmCortex-M处理器系列的一种架构延伸,特别是为小型低功耗嵌入式系统提供高效的信号处理效般,它针对区域与电力诳行优化,为M系列架构带来了类似于针对Cortex-A的S1.MD指令的能力,这使其成为应对音讯装置、感测岩中板设备、关键字识别、语音命令控制等运算挑战的理想选择。Neon是Arm架构中的一种S1.i(D(单指令多数据)技术,主要用了加速多媒体和信号处理等密集型计算任务,它特别适合处理大量数据并行的场景,如图像处理、视频编码解码等.Arm为何采用HeIiUm技术,而不用Neon?经过Arm研究团队多年的不懈努力
2、,Ar于2019年推出了适用于Ar三v8-M架构的AraCortex-M矢量犷展技术(MYE)ArmHe1.iua技术.起初,当我们面临Cortex-M处理的数字信号处理(DSP)性能竣待提升的需求时,我们首先想到的是采用现有的Neon技术。然而,面对典型的Cortex-M应用的面枳限制条件下乂需要支持多个性能的需求,意味苕我们仍需从头开始。作为一种较轻的情性气体,以氮气(He1.ium)作为研究项目的名称似乎再合适不过了.该研究项目主要针对中端处理器,旨在实现数据路径宽度增加两倍的情况下将性能提高四倍,而这正与氮气的原子量(4)和取子序数(2)不谋而合.最终,在许多数字信号处理(DSP)和机
3、器学习(M1.)内核上,我们成功地实现了提升四倍的目标。毋嗨置疑,“He1.ium”已经深入人心,成为Cortex-M处理器系列MVE的品牌名。要想打造具备R好DSP性能的处理器,主要关键在于可为其提供足够的数据处理带宽.在Cortex-A处理器上,128位Neon负枚可以轻松地从数据馈存中直接提取。但是,Cortex-M处理器通常没有缓存,而是使用低延迟静态随机存取存储器(SRAM)作为主内存。对于许多系统来说,无法将SRAM路径(通常只有32位)拓宽到128位,因此导致面临内存搽作停滞长达四个周期的可能性.同样,乘加(MAC)指令中使用的乘法器需要很大的面积,在小型Cortex-M处理上使
4、用四个32位唳法洪是不切实际的.就面积限制层面而言,嫌小的Cortex-M处理器与能够乱汴执行指令11.功能强大的Cortex-A处理战的大小可能相差几个数我级.因此,在创建M系列架构时,我们必须认其考虑充分利用每一个gate.为了充分利用现有硬件,我们需要确保高成本资源(如通往内存的连接和乘法器)在每个周期都保持同时繁忙的状态.在高性能处理器(如Corte-M7)Jt,可以通过矢量HAC双发射来达成这一目标”此外,还有一个Ifi要的目标,即在一系列不同的产品上提高DSP性能,而不仅局限于麻端产品上。想要解决以上这些问即,露要借器参考几十年前的矢做链理念中的一些技术,V1.DRVM1.AV1.
5、DRVM1.A上图显示了在四个时钟周期内交替执行的矢盘负载(V1.DR)和矢量MAC(VM1.A)指令序列.这需要128位宽的内存带宽和四个MAC块,并且它们有一半时间处于空闲状态.可以看到,每条128位宽的指令械分成大小相等的四个片段,MVE架构称之为“节拍(标为A至D).无论元素大小如何,这些节拍始终是32位计算值,因此一个节拍可以包含一个32位MAC.或四个8位MAC.由于负载和MAC硬件是分开的,这些节拍的执行可以申通,如下图所示.VM1.AV1.DRVM1.AV1.DRVM1.A即使V1.DR加莪的他被物后的VM1.A使用,指令仍可以重件。这是因为VM1.A的节拍A只依赖干上一个周期
6、发生的V1.DR的节拍A,因此节拍A和B与节拍C和D便会自然重叠。在这个例子中,我们可以获得与128位数据带宽处理器相同的性能,但硬件数破只有后者的一半.节拍式”执行的概念可以高效地实施多个性能点.例如,卜图品示了只有32位数据带宽的处理器如何处理相同的指令,这一点充满吸引力,因为它能使单发射标同处理器的性能翻倍(在八个周期内对八个32位值加载和执行MAC),但却没有双发射标破指令那样的面积和功耗需求.12345678VM1.AV1.DRVM1.AV1.DRVM1.AMVE支持扩展到每周期四拍的实现方式,此时打拍式执行将简化为更佐统的SIMD方法,这有助于在高性能处理器上保持可控的实现受杂度.
7、节拍式执行听起来很不错,但也会给架构的其他部分带来一些值得关注的挑战.1、由于多条部分执行的指令可以同时运行,因此中断和故障处理可能会变得相当麓杂.例如,如果上图中V1.DR的节拍D出现故障,通常情况下,实施必须回濠VM1.A的节拍A在上一周期对寄存器文件的局入.我们的理念是让每个gate都物尽其用,而在回濠的情况下缓冲旧数据值与这一理念相悻.为了避免这种情况,处理器会针对异常情况存谛一个特殊的ECI值,用于指示已绎执行了后续指令的哪些W柏.在异常返IH时,处理便以此未确定要跳过哪些节拍。能够快速跳出指令而无需回滚或等待指令完成,抵于此保持Cortex-M具备的快速和确定性中断处理能力.2、如
8、果指令会跨越节拍边界,我们又会遇到时间跨越问题.这种交叉行为通常出现在拓宽/缩窄运算中Neon架构中的VM1.A1.指令就是一个典量的例子,它可以将32位值矢fit乘加到64位累加器中。遗憾的是,为了保持乘法器输出的完整他困,通常需要进行这类拓宽运算.MVE使用通用的R寄存文件来处理累加洪,从而解决了这一问题。此外,这样还减少了时矢量寄存:器的寄存压力,使MVE只需使用Neon架构中一半的矢量寄存器就般获弭良好的性能.在矢量架构中,通常不会像MVE一样广泛使用通用的寄存器交件,因为寄存器文件往往与矢限单元相距甚远。在乱序执行指令的高性能处理器上尤为如此,因为物理距离过大会限制性能。不过,正因如
9、此,我们恰恰能够将典型Cortex-M处理器的较小规模特性转化为我们的优势。3、为确保重要执行达到良好的平衡且无停滞,每条指令都应严格描述128位的工作,不能多也不能少.由此也会带来一些挑战.凭借研究员们辛勤不懈的努力,以及充分参考架构书籍中所涉的所有内容,MVE成功地将一些非常苛刻的功耗、面积和中断延迟限制转化为优势.RA8系列MCU利用He1.ium的性能RA8系列是瑞萨电子推出的全新超高性能产品业界首款基于ArmWCortcx*-M85处理器的MCU,能第提供卓越的6.39CoreMarkZMHz,可满足工业自动化、家电、智能家居、消费电子、楼宇/家庭自动化、医疗等广泛应用的各类图形显示和语音/视觉多模态A1.要求。RMAHA11.女,MQKmunt.haftea.ri*MftHAf1.ft.nnI1.aMu*3w.所有RA8系列MCU均利用AhCorte-M85处理器和Arm的HCIiUm叫支术所带来的向性能,结合矢量/SIMD指令烬扩展,能够在数字信号处理器DSP)和机器学习(Y1.)的实施方面获得相比Corte-M7内核高4倍的性能提升。