嵌入式系统受益于多核处理器的使用,具有更高的吞吐量和更好的尺寸、重量和功耗(swap)。具有异构处理器内核的处理器增加了将应用程序与每种内核类型的功能相匹配的能力,从而进一步提高了吞吐量和 swap。多核处理器的优势伴随着软件架构复杂性的增加,以最大限度地提高处理器内核的利用率。对于实时系统,尤其是安全关键型系统,由于处理器内核之间共享的资源争用,多核处理器对严格的确定性提出了重大挑战。这种挑战随着异构内核的增加而增加,因为最坏情况的执行时间可能因应用程序执行的内核而异。
为了更详细地探讨这种权衡,请考虑恩智浦® i.mx 8quadmax应用处理器中的异构内核。i.mx 8quadmax 具有四个 arm® cortex-a53 内核和两个 cortex-a72® 内核,通过将每个应用任务的性能要求与不同内核的性能容量相匹配,实现功耗优化。与 a53 内核相比,a72 内核提供大约两倍的性能,但功耗更高。
为了实现多核解决方案的吞吐量和 swap 优势,软件架构需要支持可用处理器内核的高利用率。必须支持所有多核功能,从启用内核的并发操作(相对于可用内核在启动时被迫进入空闲状态或保持重置状态)到提供确定性负载平衡机制。软件多处理架构越灵活,系统架构师实现高利用率的工具就越多。
软件多处理架构
与多处理器系统一样,多核处理器上的软件架构可以根据内核之间的共享和协调量进行分类。对于基于多核的系统,最简单的软件架构是非对称多处理 (amp),其中每个内核独立运行,每个内核都有自己的操作系统或虚拟机管理程序/来宾操作系统对。每个内核运行不同的应用程序,在调度方面内核之间很少或根本没有有意义的协调。由于缺乏负载均衡、难以缓解共享资源争用以及无法跨内核执行协调活动(如全面内置测试所需的活动),这种解耦可能会导致利用率不足。
amp的现代替代方案是对称多处理(smp),其中单个操作系统控制所有资源,包括哪些应用程序线程在哪些内核上运行。这种架构易于编程,因为所有内核都“对称”访问资源,从而使操作系统能够将任何线程分配给任何内核。对于具有异构内核的处理器(如 8quadmax i.mx),不知道应用程序将在哪种类型的内核上运行可能会导致执行时间范围很长,从而显著影响确定性性能。
直接解决了这个问题,绑定多处理 (bmp) 是一种增强且受限的 smp 形式,它将应用程序的任务/线程静态绑定到特定内核。这种静态绑定允许系统架构师严格控制多个内核的并发操作。
确保确定性行为
除了实现多核处理器的吞吐量和swap目标外,安全关键型系统还需要为每个应用保持可预测的最坏情况执行时间(wcet)。使用 bmp 限制与应用程序配对的内核类型是确保异构系统中确定性行为的重要组成部分。确保确定性的其他技术是时间和空间分区以及管理共享资源的争用。
在单核处理器中,通过在托管应用程序之间对内存空间进行可靠分区,可以在同一处理器上执行多个安全关键型应用程序。内存空间分区将内存的非重叠部分专用于在给定时间运行的每个应用程序,由处理器的内存管理单元 (mmu) 强制执行。通过使用时间分区可以进一步增强确定性,时间分区将固定时间间隔(称为主帧)划分为一系列固定的子间隔,称为分区时间窗口。为每个应用程序分配一个或多个分区时间窗口,窗口的长度和数量由应用程序的 wcet 和所需的重复率驱动。
多核干扰挑战确定性
在多核环境中,可以有多个应用程序跨不同内核同时运行。这些并发应用程序都需要访问处理器的资源。每个处理内核都有一些专用资源,但大多数资源在处理器内核之间共享,包括内存控制器、i/o、共享缓存和连接它们的内部结构。当多个处理器内核尝试同时访问同一资源时,会导致对这些共享资源的争用。在安全关键型应用(如航空电子设备)中,主要关注点是这种共享资源争用如何导致在一个内核上运行的应用程序干扰在另一个内核上运行的应用程序,从而对确定性、服务质量以及最终的安全性产生负面影响。
如果不加以缓解,共享资源争用的影响可能会很大。仅检查其中一个共享资源(ddr 内存),人们可能会猜测,当另一个内核尝试访问同一内存并且两个内核都运行内存受限的应用程序时,wcet 可能会加倍。实际上,由于共享资源仲裁和调度算法中的非线性行为,wcet 可以增加 8 倍,而不仅仅是 2 倍。尝试访问 ddr 内存或争用其他资源(如片上互连)的其他内核可能会导致 wcet 增长更显著(图 2)。
(图 2:多核干扰的增长速度快于内核数量的增加速度。
多核干扰缓解
缓解多核干扰的一种方法是手动计划应用程序,以最大程度地减少资源争用。这种方法不会消除所有干扰,并且每当修改任何单个应用程序或添加新应用程序时,都需要重新测试和验证所有应用程序。另一种方法是一次只安排一个多任务应用程序运行。任务之间仍会发生干扰,但不会干扰其他应用程序。这种方法在具有异构内核的处理器上特别无效,因为不同内核类型的执行时间会有所不同。
更通用的方法是让 os 管理共享资源争用。与操作系统使用硬件 mmu 通过将不同的内存区域分配给不同的应用程序来实现空间分区的方式相同,操作系统可以基于每个核心为共享资源分配带宽。解决操作系统中的多核干扰可为系统集成商提供有效、灵活且敏捷的解决方案。它还简化了新应用程序的添加,而无需对系统架构进行重大更改,并减少了重新验证活动。
航空电子设备中异构内核的解决方案示例
恩智浦 i.mx 8quadmax应用处理器包括四个共享1mb二级缓存的arm cortex-a53内核和两个共享另一个1mb二级缓存的arm cortex-a72内核。该处理器还包括两个用于卸载系统功能的cortex-m4f内核和两个能够运行opencl,vulkan和openvx视觉加速的gpu。i.mx 8的一个独特功能是硬件资源分区,其中系统控制器将外设和内存区域提交到特定的客户定义域中。域之间的任何通信都强制使用通过硬件消息传递单元运行的消息传递协议。i.mx8quadmax面向广泛的应用,包括工业hmi(人机界面)和控制、电子驾驶舱(ecockpit)、平视显示器、楼宇自动化和单板计算机。
green hill 的 integrity-178 tump™ 多核 rtos 是一个统一的操作系统,可在 i.mx 8 中的所有 64 位处理器内核上运行,并支持 amp、smp 和 bmp 的同时组合。rtos 的时变统一多处理 (tump) 方法为将安全关键型和安全关键型应用移植、扩展和优化到多核架构提供了最大的灵活性。integrity-178 tump 使用跨所有内核运行的时间分区内核,该内核允许应用程序绑定到称为关联组的一个或多个内核组。如果需要,可以进一步限制地缘组中应用程序的每个任务,使其在特定核心上运行。对于 i.mx 8quadmax 处理器,系统架构师可以使用关联组来确保给定应用程序的任务仅在 cortex-a72 内核上执行或仅在 coretex-a53 内核上执行(图 3)。®
(图 3:使用关联组,一个应用程序绑定到两个 cortex-a72 内核,
而另外两个应用程序绑定到 cortex-a53 内核集。
integrity-178 tump直接解决多核干扰,包括带宽分配和监控(bam)功能,已开发到最严格的安全级别。bam 功能监视并强制实施从每个处理器核心到共享资源的带宽分配。bam 模拟基于硬件的高速率方法,以确保持续分配强制实施每个核心对共享资源的使用。bam 在整个应用程序的执行时间窗口中平稳地调节带宽,从而允许同一执行时间窗口中的其他应用程序获取其分配的共享资源部分。使用前面的内存访问干扰示例,将 50% 的内存带宽分配给高关键性应用程序会导致近乎恒定的 wcet,即使干扰内核的数量增加,当有多个干扰内核时,wcet 也会降低 8 倍(图 4)。此功能可有效缓解多核干扰,大大降低集成和认证风险,同时还使集成商能够获得多核处理器的最大性能优势。
(图 4:使用 bam 将 50% 的共享资源
带宽分配给关键应用程序后,wcet 几乎保持不变,
并且大大减少。
恩智浦 i.mx 8quadmax为优化航空电子设备和其他嵌入式实时系统中的swap提供了重要机会。cortex-a72 和 cortex-a53 内核的组合使系统架构师能够强调性能或能效,以创建最佳的系统级解决方案。相应的软件架构需要具有灵活性和控制力,以充分利用这些异构应用程序内核,同时保持严格的确定性。结合使用亲和组或其他形式的 bmp 的能力以及多核干扰缓解解决方案(如 bam)相结合,8quadmax i.mx 可在安全关键型应用中有效使用。
LED基础知识,something of LED
开发人员必知的八个优秀的Java开发工具
艾默生发布谷轮™在线信息工具 NVIDIA助力海帆打造深度管控平台
工业互联网应用提速 行业龙头企业纷纷加快布局
荣耀Play3内置一块4000mAh大电池配合智慧节电技术续航能力非常强悍
安全关键应用中异构臂芯的软件注意事项
变频器直流母线电路示意图讲解
工信部编制《汽车产业中长期发展规划》 新能源车补保持稳定
禾多科技以行车和泊车两种场景 实现自动驾驶覆盖所有交通路况
Atmel maXTouch为三星智能电话实现触摸屏提供解决
灵犀微光入围2023年度元宇宙最具投资价值关注榜
意法半导体推出单片天线匹配 IC,配合Bluetooth® LE SoC 和 STM32 无线MCU,让射频设计变得更轻松、快捷
单像素衍射太赫兹传感器设计的基本原理
激光打印机的硒鼓
小米6来袭,骁龙835+MIUI9+双曲面屏
学会操作udev就可以轻松上路了
模拟电路板调试准备工作
三星计划在明年对Galaxy产品线进行一些相当大的改变
清华大学在量子信息领域取得重要进展
中国联通推出异地同享业务