『电子工程世界』技术文章—Arm内核解析( 二 )


在内核方面 , 范围从相对简单的Cortex-A5到高性能超标量处理器 , 如Cortex-A72整合了同时发出三个指令的能力和执行无序操作 , 简化了调度以实现最高效率 。
Cortex-A家族的第二个重大创新是LITTLE框架 , 它是在2011年推出 , 这主要反映了针对应用处理器市场的M4引入后不同Cortex-M内核的耦合 , 增强了支持应用处理器需求的其他功能 。
对于较大LITTLE , Arm采用了将低端内核(如A5或A7)与高性能 , 且通常是超标量实施相结合的方法 。 在可能的情况下 , 操作系统会保持低功耗处理器的活动时间尽可能长 , 然后在工作负载超过特定阈值时才激活高功率内核 。 与传统的双核架构不同 , 任务可以根据系统条件从一个处理器迁移到另一个处理器 。 随着对性能需求的增加 , 越来越多的Cortex-A实施都是围绕处理器复合体采用四个高端内核 。 通过在性能要求比较平静的期间关闭一个或多个内核 , 这种安排可以节省功率 。
Cortex-R
Cortex-R是Arm公司第三大系列内核 , 通过采用实时且高度可靠的功能 , 能够支持新一代复杂的汽车和网络系统 。 在一些目标应用中需要一些确定性性能 , 意味着通常用于加快其他 Arm 处理器的缓存并不总是最佳方案 。 由于缓存会动态地将指令和数据值替换为最近使用的条目 , 因此 , 当中断服务例程或实时任务需要时 , 关键信息可能不在缓存中 。 Cortex-R家族通过支持紧密耦合存储器(TCM)库克服了这一问题 。 因此 , 关键信息可以在操作过程中存储在其中 , 并且通过软件管理 , 避免了指令和数据被缓存管理子系统替换的风险 。
自从最初的Cortex-R4诞生以来 , 这个家族已经发生了很多进化 , 其中Cortex-R5和R7内核具有低延迟外围端口 。 大多数内核都设计为与Arm 硬件总线 (AHB)等片上总线配合使用 , 或者在最近的内核中 , 结合使用高级可扩展接口(AXI)基础架构 。 低延迟端口将内核直接连接到重要的外围设备 , 无需对总线进行仲裁 , 或等待其他总线访问活动完成 , 即可进行访问 。
为了支持高度可靠的操作 , Cortex-R内核上的缓存、TCM 和系统总线可以使用错误修改编码来透明地更正单位(single-bit)错误并检测双位错误 。 由于模块化冗余是安全关键型系统的核心部分 , Cortex-R 系列内核设计为可使用副本在锁定步骤中工作 。 如果片上监视器检测到输出差异 , 它可以警告存在的问题 , 以便软件能够采取纠正措施 。 采用Cortex-R 系列而生产的一个芯片例证是赛普拉斯半导体的Traveo S6J33xx系列 MCU , 它集成有Cortex-R5F内核 , 运行在高达240MHz的频率 , 并集成有针对汽车仪表板中驱动仪表群集而优化的外围设备 。
Arm v8
在2011 年 , 随着版本8体系架构的创建 , 迎来了Arm内核产品的第二波更改 , 包括增强了具体应用在64位模式下运行的能力 , 极大地扩展了应用处理器的最大可寻址内存空间 。 具有64位能力的Arm v8 处理器可以在 32位或 64位模式下运行 。 32位运行与为版本7处理器编写的应用提供向后兼容性 。 由于Cortex-M 系列中的版本8处理器专注于MCU应用 , 因而不支持64位寻址 。 但是 , 它们确实增加了许多额外的指令和功能 , 以提高性能并增强安全操作 。
其中一个重要的进步是重新设计的内存保护单元(MPU) , 它允许更灵活地管理分区 。 另一个是完全支持仅执行内存(execute-only-memory) , 以帮助防止反向工程和黑客攻击 。 但是 , 安全性方面最大的变化是支持专门针对深度嵌入式处理器而优化的TrustZone机制 。
对于Cortex-M 版本中TrustZone , 无需软件虚拟设备管理器来管理安全状态和非安全状态之间的转换 。 相反 , 可使用专用指令从不安全的任务传递数据到安全的功能 , 以保护允许在特权模式下运行 。 如果没有正确的权限 , 即使高优先级中断也无法读取到寄存器中的安全数据 。 安全功能允许创建保护良好的 IoT 设备 , 这些都可以通过基于Cortex-M23和Cortex-M33等内核的MCU实现 。


推荐阅读