由于工艺节点从云端拓展到互联网边缘与端点,高端嵌入式应用也随之发生转变。性能需求迅速演进,并改变了处理器架构及其在设计中的实现方式。这是增加多核处理器的应用以提供更高性能的背后原因。目前大多数高端处理器都支持双核和四核配置。有些处理器最多支持8个CPU核心,但即便如此无法满足存储、汽车、网络和5G等新兴应用的性能需求。下一代嵌入式应用需要对大型CPU集群和专用硬件加速器提供可扩展的支持,以实现所需的性能。大型多核处理器需要新的架构方法来提供更高的性能,并且不会给嵌入式设计者带来其他实现和时序收敛问题。
毋庸讳言,先进工艺节点已无法像从前那样提供更高时钟频率和更低功耗。各代工艺节点的逻辑速度在持续增长,但内存访问时间却没有变化(图1)。处理器中的限速路径几乎总是经过内存。由于半导体物理学的真正局限性,这类情况在未来工艺节点上也不太可能发生转变。
图1:嵌入式存储器性能差距
同时,嵌入式应用的最高时钟频率已达到1GHz–2GHz范围(图2)。诚然,有些时钟频率高于2GHz,但这是例外。对于多数应用而言,这是无法实现的。功耗和面积都是有限的,这两者都会随着时钟频率迅速增加。大多数嵌入式设计的时钟频率都低于1GHz。未来这一趋势不会改变。就多数嵌入式设计而言,通过增加时钟频率来提高性能是不现实的。
问题在于针对嵌入式应用的性能需求在不断增多。这是由竞争、新特性的添加和应用空间需求的变化所造成的。例如,更大容量和更高访问速度的需求使得SSD驱动器的尺寸迅速增大。此外,计算机储存和AI功能也被添加至嵌入式应用中,以延长驱动器寿命和提升数据访问性能。因此上述综合因素都对SSD控制器以及用于实现新功能的处理器提出了更高的性能需求。
图2:嵌入式处理器的最高速度为2GHz
许多方法已经用于提高处理器性能。多年来,增加流水线级数一直被用于解决内存限速问题。例如,DesignWare® ARC® HS处理器具有10级流水线,两个周期的内存访问,能够在16FFC工艺中提供1.8GHz的时钟频率(最差情况下)。嵌入式设计的时钟频率是有限制的,因此在处理器的流水线上增加更多的处理级别并不会带来什么改善。今后这一情况可能会改变,但现如今10级流水线是嵌入式设计的最佳选择。
就性能增益与增加的面积和功耗对比而言,超标量实现是一个很好的折衷方案。从单一发射架构转变至双发射架构能够在面积和功耗有限增加的情况下将RISC性能提升40%。对于嵌入式处理器来说,这是一个很好的折衷方案。采用三发射或四发射架构将会进一步增加CPU面积与功耗,且性能提升幅度较小。以任何代价提高性能从来都不是嵌入式处理器的目标。
添加乱序(OoO)执行可以提高嵌入式应用的性能,且不会增加时钟频率。通常,支持完整乱序的CPU会给嵌入式应用带来适得其反的效果。而采用有限乱序的方法可以在不增加处理器面积的情况下获得最佳性能提升。有限乱序通常用于高端嵌入式处理器。
缓存的目的是为了让内存更加靠近处理器,从而提高性能。缓存支持处理器的单周期数据存取。将处理器所需信息存放于缓存中能够提升性能。经常使用的代码和数据保存在一级缓存中。使用较少的代码和数据保存在访问速度较慢的二级缓存或外部内存中,并在需要时进行读取。对于多核处理器来说,保持一级数据缓存之间的一致性也可以提高性能。一级缓存和一致性在嵌入式处理器中很常见,而二级缓存(和三级缓存)仅用于高端应用。
在嵌入式设计中采用多个处理器的趋势正不断演进。几年前,一个典型的片上系统(SoC)只包含一到两个处理器。如今,即便是低端设计,处理器数量也超过5个,而且还在不断增加。为了支撑这一转变,中高端嵌入式应用的处理器提供了多核实现方式。支持两个、四个和八个CPU核心的处理器已经推出。程序员可以使用Linux或其他操作系统在CPU内核之间顺畅地进行操作,同时平衡执行以提高性能。
硬件加速器正越来越多地应用于嵌入式设计。它们以最小的功耗和面积提供高性能,同时减轻处理器的负担。硬件加速器的主要缺点是它们的不可编程性。添加加速器使之与处理器并行工作可以缓解这种情况。然而,现有处理器只能有限度地支持硬件加速器,有的甚至无法提供支持。有些处理器(如ARC处理器)支持自定义指令,允许用户向处理器流水线添加硬件。尽管自定义指令很诱人,但硬件加速器也带来了其他好处,与处理器并行使用时,可以显著提高性能。
嵌入式应用的处理器性能提升存在许多挑战。处理器已经支持更深层次的流水线技术,超标量实现和乱序功能能够有所帮助,但也只能到此为止。缓存技术已经非常丰富,一致性也是如此,因此不太可能取得进一步的进展。在设计中采用更多的CPU核心数与硬件加速器是嵌入式设计人员正采取的更高性能实现途径。
下一代处理器将支持大型多核实现和硬件加速(图3)。处理器供应商要做的不仅仅是向现有处理器添加接口。支持4个或8个CPU内核的处理器已经达到了最大频率限制,并且在时序收敛方面可能会出现重大问题。增加更多的内核只会让这一问题变得更糟糕。下一代处理器必须从内部处理器互连的完全重构开始,改进时序收敛,解决速度限制,并增加内部带宽。外部接口的带宽也必须增加,以支持数据进出处理器。
图3:下一代嵌入式处理器架构
服务质量(QoS)技术在片上网络(NOC)中得到了广泛的应用,但在多核处理器中的应用却很有限。这种情况将在下一代处理器中发生改变,让程序员能够管理每个CPU核心和加速器的内部带宽,从而最大限度地提高性能。这取决于应用,虽然并非每个设计都需要服务质量技术,但在其他设计中,它对于确保可预测性能至关重要。
大型多核处理器比小型多核处理器具有优势。采用一个具有12个CPU核心的处理器,而不是使用具有4个CPU核心的三个处理器集群,将减少CPU核心之间的延迟,并支持对内核的直接窥探。大型处理器集群的另一个优势是能提供更优越的软件扩展性。具有12个CPU核心的处理器为程序员提供了更大的软件分区灵活性,用于处理任务的核心数量可以根据需要的性能动态进行分配。在多个处理器集群中,由于缺乏CPU内核之间的统一访问,因此很难获得这种级别的软件性能控制。
大型多核处理器也将从与硬件加速器的紧密耦合中获得优势。将硬件加速器接口移动到处理器内部,而不是通过SoC总线连接它们,将减少SoC总线上的延迟和流量,同时提高数据共享和系统性能。采用共享用户寄存器也可以提高加速器上可编程控制的效率。
新思科技公司(Synopsys)下一代DesignWare ARC HS5x和ARC HS6x处理器IP利用前面描述的许多方法来提高处理器性能。这些处理器具有高速10级、双发射流水线,在功耗和面积有限的情况下提高了功能单元的利用率。ARC 64位 HS6x处理器具有完整的64位流水线和寄存器文件,支持64位虚拟地址空间和52位物理地址空间,可以直接寻址当前和未来的大内存,并支持128位加载和存储,以实现高效的数据移动。
图4:DesignWare ARC HS5x/HS6x处理器IP框图
32位ARC HS5x和64位HS6x处理器的多核版本都包含一个先进的高带宽内部处理器互连结构,其设计旨在通过异步时钟和高达800 GB/s的内部聚合带宽来简化时序收敛。新款ARC HS处理器的多核版本包括一个创新的互连结构,可连接多达12个核心,支持多达16个硬件加速器的接口。为了进一步简化时序收敛,每个核位于自己的功率域中,并且与其他核具有异步时钟关系。跟所有ARC处理器一样,HS5x和HS6x处理器都高度可配置,并采用ARC Processor Extension(APEX)技术,支持自定义指令,可满足每个嵌入式应用的独特性能、功耗和面积要求。
为了加速软件开发,ARC HS5x和HS6x处理器由ARC MetaWare开发工具套件提供支持,可生成高效代码。处理器的开源软件支持包括Zephyr实时操作系统、优化的Linux内核、GNU编译器集合(GCC)、GNU调试器(GDB)和相关的GNU编程实用程序(二进制工具)。
由于嵌入式应用的性能需求将日益增多,嵌入式应用中所采用的处理器也必须随之提高性能。鉴于面积与功耗的有限性,以及处理器性能简易提升已取得进展,这将面临挑战。先进工艺节点不再像以前那样带来性能提升,嵌入式处理器的速度也受到了限制。超标量和乱序功能在高端处理器中很常见,但64位(尽管必要)提供的性能提升有限。新一代多核处理器需要支持8个以上的CPU核心数,并需要采用硬件加速器内部互连结构。新处理器如DesignWare ARC HS5x和HS6x处理器IP将提供可扩展的性能和功能,并让设计师能够解决其嵌入式应用的功耗和面积需求。新款处理器采用先进的架构与高速内部互连结构,不仅满足了当今高端嵌入式应用的性能需求,同时也为未来设计留下了足够空间。
责编:Amy Guan