0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式性能面临的挑战及下一代嵌入式处理器架构

454398 来源:EDN 作者:Michael Thompson 2021-03-24 11:54 次阅读

作者:Michael Thompson, 新思科技高级产品营销经理

由于工艺节点从云端拓展到互联网边缘与端点,高端嵌入式应用也随之发生转变。性能需求迅速演进,并改变了处理器架构及其在设计中的实现方式。这是增加多核处理器的应用以提供更高性能的背后原因。目前大多数高端处理器都支持双核和四核配置。有些处理器最多支持8个CPU核心,但即便如此无法满足存储、汽车、网络5G等新兴应用的性能需求。下一代嵌入式应用需要对大型CPU集群和专用硬件加速器提供可扩展的支持,以实现所需的性能。大型多核处理器需要新的架构方法来提供更高的性能,并且不会给嵌入式设计者带来其他实现和时序收敛问题。

嵌入式性能面临的挑战

毋庸讳言,先进工艺节点已无法像从前那样提供更高时钟频率和更低功耗。各代工艺节点的逻辑速度在持续增长,但内存访问时间却没有变化(图1)。处理器中的限速路径几乎总是经过内存。由于半导体物理学的真正局限性,这类情况在未来工艺节点上也不太可能发生转变。

图1:嵌入式存储器性能差距

同时,嵌入式应用的最高时钟频率已达到1GHz–2GHz范围(图2)。诚然,有些时钟频率高于2GHz,但这是例外。对于多数应用而言,这是无法实现的。功耗和面积都是有限的,这两者都会随着时钟频率迅速增加。大多数嵌入式设计的时钟频率都低于1GHz。未来这一趋势不会改变。就多数嵌入式设计而言,通过增加时钟频率来提高性能是不现实的。

问题在于针对嵌入式应用的性能需求在不断增多。这是由竞争、新特性的添加和应用空间需求的变化所造成的。例如,更大容量和更高访问速度的需求使得SSD驱动器的尺寸迅速增大。此外,计算机储存和AI功能也被添加至嵌入式应用中,以延长驱动器寿命和提升数据访问性能。因此上述综合因素都对SSD控制器以及用于实现新功能的处理器提出了更高的性能需求。

提高处理器性能

许多方法已经用于提高处理器性能。多年来,增加流水线级数一直被用于解决内存限速问题。例如,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总线上的延迟和流量,同时提高数据共享和系统性能。采用共享用户寄存器也可以提高加速器上可编程控制的效率。

ARC HS5x/HS6x

新思科技公司(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将提供可扩展的性能和功能,并让设计师能够解决其嵌入式应用的功耗和面积需求。新款处理器采用先进的架构与高速内部互连结构,不仅满足了当今高端嵌入式应用的性能需求,同时也为未来设计留下了足够空间。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18217

    浏览量

    221930
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10412

    浏览量

    206465
  • 嵌入式处理器

    关注

    0

    文章

    246

    浏览量

    30401
收藏 人收藏

    评论

    相关推荐

    如何成为嵌入式C语言高手?

    相关教材、参加在线课程或者参考编程书籍来系统地学习C语言的基础知识,并通过编写简单的程序进行实践。 二、深入了解嵌入式系统的硬件架构和工作原理嵌入式系统通常包含微控制或微
    发表于 04-07 16:03

    什么是嵌入式微处理器嵌入式微处理器有哪些?

    嵌入式微处理器是指嵌入到特定应用系统中的微处理器,它是整个嵌入式系统的核心,由通用处理器演变而来,具有体积小、重量轻、成本低、可靠性高等优点
    的头像 发表于 03-29 11:39 267次阅读

    如何成为嵌入式C语言高手?

    相关教材、参加在线课程或者参考编程书籍来系统地学习C语言的基础知识,并通过编写简单的程序进行实践。 二、深入了解嵌入式系统的硬件架构和工作原理嵌入式系统通常包含微控制或微
    发表于 03-25 14:12

    嵌入式会越来越卷吗?

    嵌入式系统的安全性也面临着越来越大的挑战。 这要求设计师在设计和实现时需要充分考虑安全问题并采取相应的措施来保护数据和系统的安全。 总结 综上所述,嵌入式系统的“卷”是
    发表于 03-18 16:41

    嵌入式软件开发应该掌握哪些知识?

    和 Thumb 模式的区别,以及 ARM Cortex 系列处理器的特性。 嵌入式 ARM 开发:学习如何在嵌入式系统中使用 ARM 处理器进行开发,包括交叉编译工具链的配置、裸机编程
    发表于 02-19 11:23

    嵌入式学习步骤

    语言编写。但是,有些嵌入式系统也使用其他编程语言,例如Python或Java。 (3).了解硬件:深入了解您要控制的硬件设备的功能和特性。您需要了解嵌入式系统的处理器、内存、I/O端口、传感
    发表于 02-02 15:24

    嵌入式自学好书推荐

    令、编辑VI、编译GCC、调试GDB以及Make项目管理工具、Shell和Makefile脚本编写等知识,并搭建嵌入式开发环境。推荐书籍:《Linux从入门到精通》。 无论从就
    发表于 01-11 15:13

    嵌入式硬件和软件哪个好?

    方案,要求理解嵌入式系统架构,有定的C语言基础,熟悉ARM、protel设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规
    发表于 12-05 15:17

    什么是嵌入式Linux?

    什么是嵌入式Linux? 对于很多电气、电信、通信专业的同学来说,对口专业就业方向主要有软、硬件两个方向。无论是对于学生还是就业而言,软硬件的开发学习,嵌入式物联网在近年来无疑是个摆在面前
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    。 那么从事嵌入式工作有哪些优势? 是工作强度相对较低。开发企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都不同,开发人员往往疲于奔命,重复劳动
    发表于 10-08 15:05

    Arm编译嵌入式FuSa 6.16.2版LTS用户指南

    和ARM Keil MDK的个组件。 或者,您可以将用于Embedded Fusa 6的ARM编译作为独立产品使用。 用于嵌入式FUSA 6的ARM编译支持的功能和
    发表于 08-18 06:42

    飞凌嵌入式国产平台大盘点之瑞芯微系列

    分类带大家起盘点。 本篇文章,为大家介绍的是瑞芯微系列的核心板。 瑞芯微电子 × 飞凌嵌入式 2020年至今,飞凌嵌入式已基于瑞芯微RK3399、RK3568和RK3588处理器
    发表于 08-05 11:12

    嵌入式交叉触发技术参考手册

    ARM调试系统包含许多片上系统(SoC)外围设备 由ARM指定。示例系统可以由以下块组成: •嵌入式微量宏细胞(ETM) •嵌入式跟踪缓冲区(ETB) •嵌入式交叉触发(ECT) •
    发表于 08-02 11:49

    嵌入式处理器有哪些种类 目前主流的嵌入式处理器架构有哪些

     嵌入式处理器是专门设计用于嵌入式系统的微处理器,它们通常具有低功耗、小尺寸和多种集成功能的特点。以下是一些常见的嵌入式
    发表于 07-24 14:57 6384次阅读

    嵌入式用什么语言编程?

    、结构化等方面对C进行了卓有成效的改进,但是在程序代码容量、执行速度和程序复杂程度等方面比C语言程序性能些。 当然也有很多学员或是已经就业的学员说,嵌入式技术中应用多的语言编程是C/C++两种。具体会应用哪种编程语言得根据从
    发表于 05-18 10:08