当前位置:首页 > EDA > 电子设计自动化
[导读] 现代SoC软件通常包括多种应用,从汽车发动机控制等硬件实时应用,到HD视频流等大吞吐量应用。随着现代SoC向大吞吐量系统的快速发展,处理器内核数量不断增加,宽带互联也越来越多,导致混合系统设计成为挑战。在这类

 现代SoC软件通常包括多种应用,从汽车发动机控制等硬件实时应用,到HD视频流等大吞吐量应用。随着现代SoC向大吞吐量系统的快速发展,处理器内核数量不断增加,宽带互联也越来越多,导致混合系统设计成为挑战。在这类系统中实现硬件实时—μs量级响应,抖动不到1μs,需要仔细的综合考虑分析和系统划分。随着SoC的复杂度越来越高,将来的验证策略也必须纳入考虑范围。

这类系统设计主要有三种方法—非对称多处理(AMP)、管理程序,以及支持内核隔离的对称多处理(SMP)(主要的对比见表1),系统设计人员可以从中选择一种方法来优化混合SoC系统。

非对称多处理

AMP实际是基于物理上不同的处理器内核的多操作系统(OS)端口。一个例子是,在第一个内核上运行专门用于处理实时任务的裸金属OS,在其他内核上运行嵌入式Linux等完整的OS。很多时候,最初将OS导入到内核中非常简单,但是,在启动代码和资源管理上很容易出错,例如,存储器、高速缓存和外设等。当多个OS访问相同的外设时,行为会是不确定的,调试起来可能非常耗时。通常要求仔细的保护ARM TrustZone等体系结构不受影响。

更复杂的是,在OS之间传递消息要求存储器共享,一起采用其他保护手段进行管理。不同的OS之间通常不会共享高速缓存。要通过非高速缓存区来传递消息,对于总体性能而言,增加了延时和抖动。从可扩展角度看,随着内核数量的增加,需要进行多次重新导入,使软件体系结构较差。

监控程序

管理程序是直接在硬件上运行的底层软件,在其上可管理多个独立的OS。最初的导入与AMP相似,而其优势在于管理程序隐藏了资源管理和消息传递中不重要的细节。缺点是由于吞吐量和实时性能要求,增加了额外的软件层,导致出现性能开销。

对称多处理

支持内核隔离的SMP在多个内核上运行一个OS,支持在内部划分内核。一个例子是让SMP OS在第一个内核上分配实时应用程序,在其他的内核上运行非实时应用程序。随着内核数量的增加,SMP OS可以设计无缝导入,因此,这一方法的可扩展性比较好。所有内核都是由一个OS管理的,因此,内核之间可以在L1数据高速缓存级上传递消息,通信速度更快,抖动 更低。

通过内核隔离,可以保留一个内核用于硬件实时应用,以屏蔽其他大吞吐量内核的影响,保持了低抖动和实时数据响应。这样,设计人员可以考虑使用哪一个OS,而不用重新设计容易出错的底层软件来管理多个OS。因此,这一般是很好的软件体系结构决定。如果从多个OS开始,最初的导入会需要一些付出。但是,从一个SMP体系结构开始会省很多事。

通过SMP优化大吞吐量、实时SoC

基于对各种方法的分析,支持内核隔离的SMP是最好的体系结构,优化了大吞吐量、实时SoC系统。我们考虑的体系结构与图3的系统相似,其中,I/O数据输入到SoC中,处理器对其进行计算,送回至I/O,满足低抖动和低延时实时响应要求。此外,SoC包括了多个内核,可同时运行其他吞吐量较大的应用程序。

首先,需要理解一个实时响应(循环时间)由哪些组成:

1.从一个I/O,将新数据传送至系统存储器(DMA)。

2.处理器探测系统存储器中的新数据 (内核隔离)。

3.将数据复制到私有存储器(memcpy)。

4.对数据进行计算。

5.将结果复制回系统存储器(memcpy)。

6.将结果传送回I/O(DMA)。

抖动和延时是6个步骤的累积,因此,需要优化每一个步骤。采用支持内核隔离的VxWorks等RTOS,可以在纳秒范围内完成轮询/中断响应(步骤2)。数据计算也是专用的,具有很好的可预测性(步骤4)。因此,我们的重点是综合考虑直接存储器访问(DMA)和memcpy(步骤1/3/5/6)。主要有两种方法来传送数据:高速缓存连续传送,以及不支持高速缓冲连续的传送。这两种方法在DMA和memcpy上的响应有很大的不同。如图1所示,虽然高速缓存连续传送(使用ARM高速缓存连续端口(ACP))导致DMA需要较长的通路,但处理器只需要访问L1高速缓存就可以获得所传送的数据。因此,使用高速缓存连续传送的memcpy时间要少很多,但是DMA性能会有些劣化。对于设计人员而言,由于是直接高速缓存访问,因此,高速缓存连续传送的延时更短,抖动 更小。

案例研究:SoC设计最佳实践

可以使用Cyclone V SoC FPGA开发套件,通过参考设计来演示一个完整的系统。器件在一个芯片中包括了一个双核32ARM Cortex-A9内核子系统(HPS)和一个28nm FPGA。下面总结了硬件和软件体系结构,如图2所示。

硬件体系结构

·两个DMA,将数据从FPGA I/O传送至ARM处理器,反之亦然。

·两个DMA都连接至ACP,实现数据在ARM处理器高速缓存的直接传送。

·实时控制单元IP,以尽可能快的方式启动ARM处理器和DMA引擎之间的消息传递。

·抖动监视器直接探测DMA信号,采集实时性能和抖动,精度在±6.7ns以内。

软件体系结构

·在双核ARM处理器上的VxWorks实时OS运行在SMP模式下。

·内核隔离,用于在第一个内核上分配实时应用程序,在第二个内核上分配其他的非 实时应用程序。

·实时应用程序连续从I/O读取数据,计算,然后将结果发送回I/O。

·当连续运行FTP传输并对数据加密时,非实时应用程序加重了对ARM内核和其它 I/O性能的要求。

结果

在长度不同的数据上运行实验,长度从32 字节直至2,048字节。为了采集循环时间的直方图,来分析抖动(最大和最小循环时间之间的不同),每一长度都要运行数百万次。如图3所示,即使是在第二个内核上运行数据流负载很大的FTP,经过数百万次的测试,延时也在微秒级,而抖动不到300ps。长度不同,会有些抖动摆动,但是可控制在200ps内,并不明显。

相同的FTP应用程序也运行在VxWorks SMP上,使用了两个内核,速度提高了近2倍。因此,这一方法并没有劣化吞吐量,是吞吐量和硬件实时应用程序的折中选择。但是,由于对内核进行了硬件划分,不能够灵活的增加内核数,因此,AMP解决方案也同样有一些劣化。

结论

设计一个支持大吞吐量和实时应用程序的均衡SoC系统需要进行很多综合考虑,例如:

·DMA数据传送。

·连续高速缓存。

·处理器内核与DMA之间的消息传递。

·OS划分。

·软件能够随着处理器内核数量的增加而进行扩展。

在此次实验中,我们展示了一个“最佳实践”系统设计,它使用了支持内核隔离和高速缓存连续传送的SMP,实现了低延时、低抖动实时性能,同时软件能够扩展应用到未来几代的SoC产品中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭