亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

掌握多核编程与调试:性能与可靠性策略

系统性能

嵌入式系统性能增益可通过复杂编译器优化、高效硬件架构、日益增多的多核并行执行实现。虽巧妙编译器算法能从单线程代码挤出额外速度,但时钟频率每几年翻倍长期假设已不可持续。现代性能上限处于低个位数GHz范围,使并行化成扩展性最可行路径。

并行性

掌握多核编程与调试:性能与可靠性策略

非所有任务同等适合并行化。单人钻深孔,增加工人不加速反而阻碍。相反,挖沟高度并行:多工人并排挖掘,各承担总工作一部分。

掌握多核编程与调试:性能与可靠性策略

上图描绘MIMD(多指令多数据),每工人(核心)可执行不同操作。四独立工人可将单核需全分钟任务完成于约15秒。

掌握多核编程与调试:性能与可靠性策略

相反,SIMD(单指令多数据)跨多个数据元素同步执行相同指令。SIMD适合规则重复操作工作负载——如图像滤波、向量数学——但缺乏通用计算灵活性。

这些考量支撑多核处理器兴起:在单芯片嵌入多个完整CPU子系统,设计师可线性扩展性能,前提是软件编写利用并行性。

多核处理类型

处理器可用多种方式组合核心,影响工作负载分发和核心通信。

同构多核

两个或更多相同核心,各自拥有寄存器、功能单元、通常私有L1缓存。核心通信典型通过共享内存或邮箱机制。因每核心类型相同,同一二进制可在任意核心运行。

掌握多核编程与调试:性能与可靠性策略

异构多核

不同核心类型混合,各针对特定工作负载优化。例如蓝牙控制器可能专用一核心协议处理,第二核心管理高层应用逻辑。此架构常见于移动SoC和工业控制器。

掌握多核编程与调试:性能与可靠性策略

核心分布模式进一步区分多核设计:

对称多处理(SMP)

多相同核心执行同一二进制,由实时操作系统(RTOS)协调。调度器跨核心分发工作,二进制针对单核心类型编译。

掌握多核编程与调试:性能与可靠性策略

非对称多处理(AMP)

每核心运行专用二进制。核心可同构或异构。通信可选,典型通过共享内存或消息原语处理。

因SMP要求单一二进制,强制同构核心。AMP可在同构或异构系统实现,适合需独特专用工作负载应用。

采用多核理由

随摩尔定律放缓,封装更多核心成提升性能最有效路径。时钟频率在低个位数GHz范围趋于平稳,晶体管密度持续攀升,实现更丰富互连和更大片上缓存。多核设计释放此密化全部潜力。

异构AMP对实时和吞吐量中心工作负载特别强大。通过在专用核心隔离时关键功能,设计师可满足严格延迟保证不牺牲整体系统吞吐量。此分离也简化认证,因实时组件可独立于应用逻辑验证。

多核挑战

采用多核架构引入众多软件系统挑战:

多核环境调试

有效调试依赖所有核心全面可见性:

掌握多核编程与调试:性能与可靠性策略
(来源:IAR Systems,图表由Arm Ltd.提供)

Arm CoreSight调试架构集成交叉触发接口(CTI)和交叉触发矩阵(CTM),使调试器能响应另一核心事件暂停或触发任意核心动作。此能力对诊断竞态条件和死锁至关重要。

IAR Embedded Workbench C-SPY调试器支持SMP和AMP配置。SMP下用户指定核心数调试器自动连接各核心。AMP支持需两个IDE实例(主和节点)当核心运行分离二进制时。

掌握多核编程与调试:性能与可靠性策略
右侧视图显示4核Cortex-A9 SMP集群:核心2暂停而其他继续执行。

针对异构系统如ST STM32H745/755(Cortex-M7 + Cortex-M4),调试器为每核心启动单独IDE窗口。每窗口显示其核心状态并可选显示另一核心,允许开发者实时观察核心间交互。

掌握多核编程与调试:性能与可靠性策略
两CTI(系统级、Cortex-M4、Cortex-M7)经CTM连接,给调试器细粒度断点和追踪触发控制。

掌握多核编程与调试:性能与可靠性策略
(来源:IAR Systems,图表由STMicroelectronics M0399参考手册提供)

典型应用用共享内存接口和轻量RTOS(如FreeRTOS)交换核心间消息。从各核心视角,通信呈简单任务消息,抽象底层核心间机制。

掌握多核编程与调试:性能与可靠性策略
工作区浏览器显示两项目(Cortex-M7和Cortex-M4),用户可切换焦点。主项目自动启动第二IDE实例,简化AMP调试。

总结

多核架构提供摩尔定律放缓所需性能,但要求严谨软件设计和复杂调试工具。一旦调试环境配置妥当,开发者发现多核调试出奇简单,尤其对比仅用过单核系统者常报告挑战。

现代硬件和集成软件工具现使利用多核性能同时保持可靠性和可追踪性成为实用。

注:图片由IAR Systems提供除非另有说明。


掌握多核编程与调试:性能与可靠性策略
Aaron Bauch任IAR Systems高级现场应用工程师,服务美国东部和加拿大客户。Aaron从事嵌入式系统和软件为Intel、Analog Devices、Digital Equipment Corporation等公司工作。设计涵盖医疗仪器、导航、银行系统等广泛应用。Aaron也在南新罕布什尔大学任教授讲授嵌入式系统设计等多门大学课程。Bauch先生持库珀联盟电气工程学士、哥伦比亚大学电气工程硕士,均在纽约纽约。

相关内容:

更多Embedded内容,订阅Embedded周刊电子邮件通讯。

嵌入式

  1. 树莓派必备扩展板指南:I2C、UART、GPIO 等 – 套件、排针与保护
  2. 专业工厂自动化:设计、实施与交钥匙解决方案
  3. 应对航空航天与国防领域的多维风险挑战
  4. 5G与物联网:驱动下一代供应链韧性
  5. 攻克硬车难题:先进刀具助力高硬度材料高效加工
  6. 航空航天国防OEM行业面临的四大核心挑战
  7. 为何最新文档至关重要:对企业的收益与挑战
  8. 混合制造核心价值、挑战与产业落地图谱
  9. ONUG Spring 2019 洞见:驾驭云与数字化转型挑战
  10. 驾驭 SaaS 与 Wi-Fi:IT 团队如何攻克云挑战
  11. 5G 面临的五大挑战:频谱、成本、覆盖、设备与安全
  12. 攻克物联网数据 ETL 挑战,提升 ROI