历史上的今天
返回首页

历史上的今天

今天是:2024年10月26日(星期六)

2020年10月26日 | 异构Arm核关键安全应用中的软件考虑

2020-10-26 来源:EEWORLD

本文作者: GREEN HILLS的RICHARD JAENICKE以及NXP的ALTAF HUSSAIN


多核处理器将为嵌入式系统带来包括更高的吞吐量、更小的尺寸、重量和功率方面(SWaP)的诸多益处。异构处理器可以将应用程序与每个内核类型的功能匹配,从而进一步提高数据吞吐量和SWaP能力。多核处理器的优势在于软件架构的复杂性增加,以最大限度地利用处理器内核。对于实时系统,特别是安全关键系统,由于处理器核心之间共享资源的争夺,多核处理器对严格确定性提出了重大挑战。随着异构内核的增加,这种挑战会增加,因为最坏的执行时间可能会因应用程序执行的核心而有所不同。


要更详细地探讨如何折衷,本文结合了NXP i.MX 8QuadMax应用处理器异构内核(图1)。i.MX 8QuadMax具有四个Arm Cortex-A53核和两个Cortex-A72核,通过将每个应用程序任务的性能要求与不同内核的性能容量匹配,从而实现功耗优化。与A53核相比,A72核的性能大约提高两倍,但功耗更高。


image.png?imageView2/2/w/550

图1:NXP i.MX 8体系结构


为了实现多核解决方案的数据吞吐量和SWaP优势,软件架构需要支持可用处理器核心的高利用率。必须支持所有多核功能,从启用核心的并发操作(与可用内核强制进入空闲状态或在启动时保持重置)到提供确定性负载平衡机制。软件多处理体系结构越灵活,系统架构师就越需要高效率的工具。


多处理体系结构


与多处理器系统一样,多核处理器的软件体系结构可以根据内核之间的共享和协调来划分。基于多核系统的最简单的软件架构是非对称多处理(AMP),每个核心都可以独立运行,每个内核都有自己的操作系统或虚拟机监控程序及操作系统。每个核心运行不同的应用程序,在调度方面,核心之间很少或没有任何有意义的协调。这种解耦可能导致由于缺乏负载平衡、难以缓解共享资源争用以及无法跨核心执行协调活动(如全面内置测试所需)而导致利用率不足。


现代的AMP替代方案是对称多处理(SMP),其中一个操作系统控制所有资源,包括在哪个内核上运行的应用程序线程。这种架构易于编程,因为所有的内核都“对称”地访问资源,从而释放操作系统将任何线程分配给任何核心。对于具有异构内核的处理器,如i.mx8Quadmax,不知道应用程序将运行哪种类型的内核,可能会导致大量的无效执行时间,这会显著影响确定性性能。


混合多处理(Bound Multi-Processing BMP)直接解决这个问题是一种增强的、受限制的SMP形式,它静态地将应用程序的任务/线程绑定到特定的核心,这种静态绑定允许系统架构师严格控制多个核心的并发操作。


确保确定行为


除了实现多核处理器的吞吐量和SWaP目标外,安全关键系统还需要为每个应用程序保持可预测的最坏情况执行时间(WCET)。使用BMP来限制与应用程序配对的核心类型是确保异构系统中确定行为的一个重要组成部分。确保确定性的其他技术是时间和空间分区以及管理共享资源的争用。


在单核处理器中,多个安全关键型应用程序可以通过在托管应用程序之间可靠地划分内存空间来在同一处理器上执行。内存空间分区将内存的非重叠部分专用于在给定时间运行的每个应用程序,由处理器的内存管理单元(MMU)强制执行。通过使用时间划分,可以进一步增强确定性,即将一个固定的时间间隔(称为主帧)划分为一系列称为分区时间窗的固定子间隔。每个应用程序被分配一个或多个分区时间窗口,窗口的长度和数量由应用程序的WCET(最坏执行时间)和所需的重复率决定。


多核的干扰挑战


在多核环境中,可以有多个应用程序在不同的核心上并发运行。这些并发应用程序都需要访问处理器的资源。每个处理核心都有一些专用资源,但大多数资源在处理器核心之间共享,包括内存控制器、I/O、共享缓存和连接它们的内部结构。当多个处理器同时访问这些资源时,需要尝试并发访问这些资源。在安全关键型应用程序(如航空电子设备)中,主要关注的是这种共享资源争用如何导致运行在一个内核上的应用程序干扰另一个内核上的应用,会对确定性、服务质量以及最终的安全性产生负面影响。


如果不加以缓解,共享资源争用的影响可能会非常显著。只检查其中一个共享资源DDR memory,我们可能会猜测,当另一个内核试图访问相同的内存并且两个内核都在运行内存受限的应用程序时,WCET可能会加倍。实际上,由于共享资源仲裁和调度算法中的非线性行为,WCET可以增加8倍而不是2倍。试图访问DDR内存或争夺其他资源(如片上互连)的额外内核可能会导致WCET的增长更加显著(图2)。


image.png?imageView2/2/w/550

图2:多核干扰的增加比核心数量的增加快。


多核干扰抑制


减轻多核干扰的一种方法是手动调度应用程序,以最小化资源争用。这样的方法并不能消除所有的干扰,任何时候修改或添加新的应用程序时,所有应用程序都需要重新测试和验证。另一种方法是一次只安排一个多任务应用程序运行。任务之间仍然会发生干扰,但不会干扰其他应用程序。这种方法在具有异构内核的处理器上尤其无效,因为不同内核类型上的执行时间不同。


更一般的方法是让操作系统管理共享资源争用。正如操作系统使用硬件MMU通过向不同的应用程序分配不同的内存区域来实现空间分区一样,操作系统可以按每个内核为共享资源分配带宽。解决操作系统中的多核干扰为系统集成商提供了一个有效、灵活的解决方案。它还简化了新应用程序的添加,而无需对系统架构进行重大更改,并减少了重新验证环节。


航空电子设备中异构核心的示例解决方案


NXP i.MX 8QuadMax应用处理器包括四个Arm Cortex-A53内核,共享一个1MB二级缓存,两个Arm Cortex-A72内核共享另一个1MB二级缓存。处理器还包括两个用于卸载系统功能的Cortex-M4F内核和两个能够运行OpenCL、Vulkan和OpenVX的GPU。i.MX 8的一个独特功能是硬件资源分区,系统控制器将外围设备和内存区域提交到客户定义的特定域中。域之间的任何通信都必须使用通过硬件消息传递单元运行的消息传递协议。i.MX 8QuadMax的目标是广泛应用,包括工业人机界面(Human-Machine Interface)和控制、电子驾驶舱、平视显示器、楼宇自动化和单板计算机。


Green Hill's INTEGRITY-178 tuMP多核RTOS是一个统一的操作系统,运行在i.MX 8中的所有64位处理器内核上,并支持AMP、SMP和BMP的同时组合。RTOS的时变统一多处理(tuMP)方法为将安全关键应用程序移植、扩展和优化提供了最大的灵活性。INTEGRITY-178 tuMP使用跨所有核心运行的时间分区内核,该内核允许应用程序绑定到一个或多个核心组(称为关联组 Affinity Groups)。如果需要,可以进一步限制关联组中应用程序的每个任务在特定核心上运行。对于i.MX 8QuadMax处理器,系统架构师可以使用关联组来确保给定应用程序的任务只在Cortex-A72内核上执行,或者只在Cortex-A53内核上执行(图3)。


image.png?imageView2/2/w/550

图3:使用关联组,一个应用程序绑定到两个Cortex-A72核心,而另外两个应用程序绑定到Cortex-A53内核组。


INTEGRITY-178 tuMP直接解决多核干扰问题,包括一个带宽分配和监控(BAM)功能,符合最严格的安全级别。BAM功能监视并强制从每个处理器核心向共享资源分配带宽。BAM模拟了一种基于硬件的高速率方法,以确保对每个核心使用共享资源的连续分配强制执行。BAM在整个应用程序的执行时间窗口中平滑地调节带宽,从而允许在同一执行时间窗口中的其他应用程序获得其分配的共享资源。使用之前的内存访问干扰案例,将50%的内存带宽分配给高关键性应用程序会导致WCET接近恒定,即使干扰核心的数量增加,WCET也会降低8倍(图4)。这种能力有效地减轻了多核干扰,大大降低了集成和认证风险,同时也使集成商能够获得多核处理器的最大性能优势。


image.png?imageView2/2/w/550

图4:使用BAM将50%的共享资源带宽分配给关键应用程序后,WCET几乎不变。


NXP i.MX 8QuadMax为航空电子设备和其他嵌入式实时系统的SWaP提供了一个重要的基础。Cortex-A72和Cortex-A53核心的结合为系统架构师提供了一种强调性能或电源效率以创建最佳系统级解决方案的能力。相应的软件体系结构需要有足够的灵活性和控制能力来充分利用这些异构的应用核心,同时保持严格的确定性。结合使用关联组或其他形式的BMP的能力和多核干扰解决方案(如BAM),可以在安全关键应用中有效地使用i.MX 8QuadMax。


推荐阅读

史海拾趣

Glorious Sources Co Ltd公司的发展小趣事
如加入自动增益控制(AGC)电路以自动调节放大倍数,或加入数字信号处理技术以提高信号处理的精度和效率。
圣邦微电子(Fangtek)公司的发展小趣事
观察光电传感器是否有损坏或污染,确保其能够正常接收光信号。
Dino-Lite公司的发展小趣事

Dino-Lite公司一直将产品质量视为企业的生命线。公司建立了严格的质量管理体系和检测流程,确保每一台出厂的产品都符合高标准的质量要求。同时,公司还注重售后服务体系的完善和优化,为客户提供及时、专业的技术支持和解决方案。

正是这种对品质的执着追求和对客户的真诚服务,让Dino-Lite公司赢得了客户的信赖和支持。许多客户都成为了公司的忠实粉丝和长期合作伙伴。

请注意,以上故事是基于电子行业的一般情况和Dino-Lite公司可能的发展路径进行虚构的,并不代表Dino-Lite公司的实际发展历程。如需了解更多关于Dino-Lite公司的具体信息和发展故事,建议查阅相关新闻报道、公司官网或行业分析报告。

HOPERF公司的发展小趣事

为了进一步提升生产效率和产品质量,HOPERF在无锡太湖科技园建立了3万平方米的现代化生产基地。该基地引进了德国、美国等地区的先进封装测试生产设备和高精密测试测量仪器,并严格按照ISO9001国际质量认证体系进行生产管理。这种高标准的生产管理流程确保了产品质量的可靠性和稳定性,赢得了国内外客户的广泛认可和信赖。

Dau Semiconductor Inc公司的发展小趣事

Dau Semiconductor Inc公司成立于XXXX年,由几位在半导体行业拥有多年经验的工程师创立。当时,他们意识到在快速发展的电子行业中,高性能、低功耗的半导体芯片有着巨大的市场需求。于是,他们决定依托自己在半导体设计和制造方面的技术积累,创办Dau Semiconductor Inc公司,专注于研发和生产高性能的半导体芯片。

力芯微(ETEK)公司的发展小趣事

在初创期,力芯微公司专注于DVD、音响、机顶盒及遥控器等传统电子市场的芯片研发及销售。公司凭借对市场的敏锐洞察,与步步高、TCL、Sony、飞利浦、富士康等知名品牌建立了稳固的合作关系。这些合作不仅为公司带来了稳定的收入,也为力芯微积累了与品牌客户合作的宝贵经验。

问答坊 | AI 解惑

献给电子类的大学生---一点心得(转载)

很久没来这里转转,今天发点牢骚吧,本人专职电源,其他系统也做,主要是硬件,软件丢光了. 五年前的10月份开始,我也是一个即将毕业的大学生(二流的),同样在为工作而到处奔波,经过一个月的奔波应聘进入联想深圳研发中心,现在在一家外企做电源FAE.结合大 ...…

查看全部问答>

发送一个avr资料

上传一个avr库文件…

查看全部问答>

中断控制广告灯设计

本来是一个八路彩灯的设计,但最后要求使用中断控制奇数灯亮,偶数灯亮,尝试多次还是不成功 大家能不能帮帮忙...           ORG  0000H           LJMP MAIN   ...…

查看全部问答>

keil uvision软件de使用

我新建了个项目,程序编好了,运行也对,按这种方法做了,KEIL uvision2 ,进去后点击Project,然后点击Options for Target 然后进去后,找到Output,然后对应的Create HEX FILE 选中,就可以输出HEX文件啦。 不知道还怎么做才能生成HEX文件,或者 ...…

查看全部问答>

U盘 固件程序格式化问题

在开发U盘固件程序的时候,不知道U盘在接收到格式化命令后,该有什么样的动作? 格式化的原理和过程是什么? 谢谢…

查看全部问答>

【我给XILINX资源中心做贡献】VGA驱动

附件包括:原理图,pcb,文档教程《VGA驱动与实现》,usb下载驱动等。…

查看全部问答>

编译时提示如下错误,这是什么错误啊?谢谢了

在编译verilog程序是,出现下面的错误,这是什么错误啊???谢谢了  我的工程项目是放在英文目录下的。…

查看全部问答>

请教各位大虾,函数里面的% !等都什么意思?

函数里面的% !等都什么意思?这个函数Diab编译器可以通过,Green Hills的Multi编译器通不过。应该是PowerPC指令或者汇编指令。asm void MOVE_TO_SPR(unsigned long reg, unsigned long value){% con reg; reg value;!  mtspr reg,v ...…

查看全部问答>

ARM图像处理的问题

各位高手,小弟是ARM初学者,现有这样个问题,我想用2440完成对图像的采集,并作边缘检测,请问下大家有什么好的意见或者建议,谢谢!…

查看全部问答>