先进的工艺节点不再像以前那样提供更高的时钟速度和更低的功耗,这已不是什么秘密。在许多工艺世代中,逻辑速度不断提高,但内存访问时间却没有增加(图 1)。处理器的限速路径几乎总是通过内存。由于半导体物理学的实际限制,这种情况在未来的工艺节点上很难改变。

与此同时,嵌入式应用中的最高时钟频率也在 1GHz - 2GHz 之间(图 2)。当然,也有少数例外情况,时钟频率超过了 2GHz,但对于大多数应用来说,这是不可能的。功耗和面积都有限制,而这两个因素都会随着时钟速度的提高而迅速增加。大多数嵌入式设计的时钟频率都低于 1 GHz,这种情况在未来也不会改变。对于大多数嵌入式设计来说,通过提高时钟速度来提高性能是不现实的。

面临的挑战是,嵌入式应用对性能的要求不断提高。这主要是由于竞争、新功能的增加以及应用领域需求的变化。例如,随着对更大容量和更高存取速度的需求,固态硬盘驱动器的尺寸正在迅速增大。此外,计算存储和人工智能也在不断增加,以延长硬盘寿命,提高数据访问速度和性能。所有这些都提高了对固态硬盘控制器和用于实现控制器的处理器的性能要求。

提高处理器性能

提高处理器性能的方法有很多。增加流水线级数多年来一直被用来解决内存速度的限制。例如,DesignWare® ARC® HS 处理器采用 10 级流水线,内存访问周期为两个周期,在 16 FFC 工艺中的时钟频率为 1.8 GHz(最坏情况)。嵌入式设计的时钟速度是有限制的,因此在处理器流水线上增加更多级的好处是有限的。未来这种情况可能会改变,但目前 10 级流水线是嵌入式设计的最佳选择。

超标量实现在性能提升与面积和功耗增加之间进行了很好的权衡。在面积和功耗增加有限的情况下,从单通道架构转向双通道架构可将 RISC 性能提高 40%。对于嵌入式处理器来说,这是一个很好的权衡。改用三组或四组架构会进一步增加面积和功耗,但性能提升幅度较低。对于嵌入式处理器来说,不计成本地提高性能永远不是目标。

增加顺序外(OoO)执行可以在不提高时钟速度的情况下提高嵌入式应用的性能。通常情况下,支持完全 OoO 的 CPU 对于嵌入式应用来说是多余的,而有限的方法可以在不增大处理器体积的情况下提高最佳性能。有限 OoO 通常用于高端嵌入式处理器。

高速缓存用于使内存更接近处理器,从而提高性能。处理器对高速缓存的访问是单周期的,性能的提高是由于信息在需要的时候被保存在高速缓存中。常用代码和数据保存在一级高速缓存中。 使用较少的代码和数据则保存在访问速度较慢的二级缓存或外部存储器中,并在需要时进行访问。 对于多核处理器来说,保持一级数据缓存之间的一致性也能提高性能。一级缓存和一致性在嵌入式处理器中很常见,而二级缓存(和三级)只用于高端应用。

嵌入式设计越来越多地使用多处理器。几年前,典型的片上系统 (SoC) 只有一到两个处理器。如今,即使在低端设计中,五个以上的处理器也很常见,而且数量还在不断增加。为了支持这一趋势,面向中端和高端嵌入式应用的处理器提供了多核实现。处理器支持两个、四个和八个 CPU 内核。通过使用 Linux 或其他操作系统,程序员可以在 CPU 内核之间实现流畅运行,同时平衡执行以提高性能。

在嵌入式设计中,硬件加速器的使用越来越多。它们能以最小的功耗和面积提供高性能,同时卸载处理器。硬件加速器的主要缺点是不可编程。增加与处理器协同工作的加速器可以缓解这一问题。遗憾的是,现有处理器支持硬件加速器的能力有限或根本不支持。一些处理器(如 ARC 处理器)支持自定义指令,使用户能够在处理器流水线中添加硬件。虽然定制指令很有吸引力,但硬件加速器还能提供额外的优势,如果与处理器结合使用,还能显著提高性能。

为嵌入式应用提高处理器性能面临挑战。处理器已经支持更深的流水线、超标量实现和 OoO,但也只能做到这一步,而且高速缓存和一致性已经非常普遍,因此进一步提高性能的可能性不大。嵌入式设计人员已经在寻求实现更高性能的途径,那就是在设计中采用更多的 CPU 内核和硬件加速器。

新一代嵌入式处理器架构

下一代处理器将增加对大型多核实现和硬件加速的支持(图 3)。处理器供应商必须做的不仅仅是为现有处理器增加接口。支持 4 个或 8 个 CPU 内核的处理器已经达到了最高频率限制,并可能出现严重的时序闭合问题。增加内核只会使情况更糟。下一代处理器必须从全面重新架构内部处理器互连开始,以促进时序闭合,解决速度限制问题,并增加内部带宽。外部接口的带宽也必须增加,以支持数据进出处理器。

服务质量(QoS)已在片上网络(NOC)中广泛应用,但在多核处理器中的应用还很有限。这种情况将在下一代处理器中得到改变,程序员将有能力管理每个 CPU 内核和加速器的内部带宽,以最大限度地提高性能。这与应用有关,虽然不是每个设计都需要 QoS,但在许多其他设计中,QoS 对确保可预测的性能至关重要。

大型处理器集群的优势

大型多核处理器比小型多核处理器更具优势。采用 12 个 CPU 内核的处理器,而不是三个 CPU 内核的处理器集群,可以减少 CPU 内核之间的延迟,并能直接支持跨内核的窥探。另一个优势是软件扩展性更好。12 CPU 内核处理器为程序员提供了更大的软件分区灵活性,可以根据性能需求动态分配用于处理任务的内核数量。而在多处理器集群中,由于 CPU 内核之间缺乏统一的访问权限,因此更难实现这种程度的软件性能控制。

大型多核处理器还将从与硬件加速器的紧密耦合中获得优势。将硬件加速器接口移至处理器内部,而不是通过 SoC 总线与之连接,可减少 SoC 总线上的延迟和流量,同时提高数据共享和系统性能。如果能实现共享用户寄存器,还能提高对加速器的可编程控制效率。

ARC HS5x/HS6x

Synopsys 的下一代 DesignWare ARC HS5x 和 ARC HS6x 处理器 IP 利用了前面介绍的许多方法来提高处理器性能。它们采用高速 10 级双发流水线,在有限增加功耗和面积的情况下提高了功能单元的利用率。ARC 64 位 HS6x 处理器具有完整的 64 位流水线和寄存器文件,支持 64 位虚拟地址空间和 52 位物理地址空间,可直接寻址当前和未来的大型存储器,并支持 128 位加载和存储,以实现高效的数据移动(图 4)。

32 位 ARC HS5x 和 64 位 HS6x 处理器的多核版本均包含先进的高带宽内部处理器互连结构,其设计目的是通过异步时钟和高达 800 GB/s 的内部总带宽来简化时序闭合。新型 ARC HS 处理器的多核版本包括先进的互连结构,可连接多达 12 个 CPU 内核,并支持多达 16 个用户硬件加速器接口。为了帮助时序闭合,每个内核都可以驻留在自己的电源域中,并与其他内核保持异步时钟关系。与所有 DesignWare ARC 处理器一样,HS5x 和 HS6x 处理器具有高度可配置性,并采用了 ARC Processor EXtension (APEX) 技术,可支持自定义指令,以满足嵌入式应用对性能、功耗和面积的独特要求。

为了加速软件开发,ARC HS5x 和 HS6x 处理器由 ARC MetaWare 开发工具包提供支持,该工具包可生成高效代码。处理器的开源工具支持包括 Zephyr 实时操作系统、优化的 Linux 内核、GNU 编译器集 (GCC)、GNU 调试器 (GDB) 和相关的 GNU 编程实用程序 (binutils)。

摘要

嵌入式应用对性能的要求将不断提高。这些应用中使用的处理器也必须提高性能。这具有挑战性,因为面积和功耗都将受到限制,而且处理器的性能提升已经非常容易。先进的工艺节点不再像以前那样能带来性能提升,嵌入式处理器的速度也受到了限制。超标量和 OoO 功能在高端处理器中很常见,64 位虽然必要,但性能提升有限。新一代多核处理器需要支持 8 个以上的 CPU 内核和硬件加速器的内部连接。 DesignWare ARC HS5x 和 HS6x 处理器 IP 等新型处理器将提供可扩展的性能和功能,同时使设计人员能够管理其嵌入式应用的功耗和面积要求。这些处理器建立在先进的架构上,采用高速内部互连技术,既能满足当今高端嵌入式应用的性能需求,又能为未来的设计留出足够的空间。