ARM Cortex-M33处理器的五大特色

本文作者:ARM       点击: 2017-01-10 11:27
前言:
基于ARM® Cortex® 处理器的片上系统(SoC)解决方案适用于多种嵌入式设计细分市场,如物联网、电机控制、医疗、汽车、家电自动化等。我们的处理器品种丰富且基于同一个标准架构,针对不同的产品市场提供广泛而丰富的性能与成本组合。Cortex系列处理器主要基于3大产品类型量身开发,A系列:运行复杂系统的精细高端应用;R系列:高性能硬实时系统;M系列:低功耗、确定性、成本敏感的微控制器,专门优化以满足其需求。

    最先采用ARMv8-M架构的2款处理器为Cortex-M23和Cortex-M33。本文主要介绍Cortex-M33, Cortex-M33是首款采用TrustZone® 安全技术和数字信号处理技术的ARMv8-M全功能实现处理器。该处理器可以支持大量灵活的配置选项,并在广泛应用中进行部署,此外还提供专用的协同处理器界面以支持经常需要加速和大量运算的运作。Cortex-M33是一款在性能、功耗、安全与生产力之间达到最佳平衡的处理器。
  


为了显著降低系统功耗,Cortex-M33处理器采用有序三阶管线技术。大部分指令在头两个阶段就能完成,而复杂的指令则需要3个阶段。此外,某些16位指令将采用双发射机制,以增强性能。处理器内核有两个AMBA® 5 AHB5界面:C-AHB和S-AHB,完全对称,指令和数据提取性能不分伯仲。

    Cortex-M33的配置高度灵活,可以满足广泛的系统要求
在MPU、DSP、FPU、TrustZone、ETM、MTB、ITM、BPU、DWT和协同处理器界面功能中选择最佳组合方案,设计师即可迅速打造强大系统。在最低限度的控制系统中,NVIC可以被设定成只容纳一个外部中断;而在周边设备丰富的系统中,NVIC能够设定成可容纳至多480个外部中断,包含至多256个优先级。而对于那些依赖大量主动流程和线程以保持可靠运行的系统,设计师还可以增加MPU,用特权和非特权接入控制来强行隔离处理进程。如需更高级别的代码、数据和资源保护, TrustZone则是设计师的不二之选。

    应用复杂度越来越高,片上调试和追踪技术的价值也日益凸显,对保障产品按期交付至关重要。Cortex-M33处理器的内置调试功能可以加速软件验证。设计师可以用JTAG端口或双插针串行调试端口来验证系统,还可以选择ETM或MTB进行出色的指令追踪,而BPU和DWT则可以允许在调试中使用断点和硬件观测点。
        
• MPU存储保护单元
• DSP数字信号处理
• FPU 浮点单元
• SP 单精度
• ETM 嵌入式跟踪宏单元
• MTB 微追踪缓冲器
• BPU 断点单元
• DWT 数据观测与追踪单元
• ITM 仪器追踪宏单元
• NVIC 嵌套向量中断控制器
• WIC 唤醒中断控制器
• AHB 先进高性能总线
• AMBA 先进微控制器总线架构

现在,让我们探讨一下Cortex-M33的五大特色:
1 – 为ARMv8-M 量身优化的TrustZone技术为整个系统的安全保驾护航
    采用TrustZone技术的Cortex-M33处理器拥有两个安全状态及多种相关特色:
 

 
两种全新的正交状态
• 安全状态
• 非安全状态
• 4个堆栈和4个堆栈指示寄存器
• 硬件堆栈极限检查
• 支持安全属性单元(SAU)的可编程MPU
• 用于发出系统安全指示的界面
• 被预先设定的接入点限制的非安全(NS)领域中可以看见安全代码
• 其它硬件转向非安全领域时可以自动保存并清除安全寄存器的状态
• 大量堆积中断或异常控制,SysTick
• 安全和非安全侧都配备存储保护单元

安全状态和非安全状态的全面利用,必将开启众多新机遇和新应用的大门。该系统使用的高价值专利固件可以在安全状态下运行。在安全状态下设置的监管员代码则可以在系统受到攻击或不可靠运行后将其恢复初始;而非安全侧则像以前一样向正在用Cortex-M开发软件的数百万开发者开放。
 
2 –协同处理器界面,实现高扩展性
对某些应用而言,专用运算起到的作用可谓非同小可;但为了实现专用运算,这个全球最强大设计生态系统的所有优点必须完美保留,即允许设计师在开发工具、编译器、调试器、操作系统和中间件之间最大限度的进行选择。ARM生态系统可以帮助开发商节约时间和成本,进一步提高生产力。

Cortex-M33处理器包含一个可以选配、类似总线的专用界面,主要用于集成紧耦合加速器硬件。对需要频繁运算的操作而言,该界面可以帮助设计师用自定义的处理硬件提升通用运算能力。须着重指出的是,这样做并不会使整个生态系统分裂。该界面包含最多可用于8个协同处理器的控制和数据通路,发出的信号可显示处理器的特权状态和安全状态、指令类型、相关寄存器和操作字段。协同处理器通常会合理的在几个少数循环内完成,或在后台运行并在完成时自动停止。操作的细节和数据可以通过该界面与单指令同时传输,如有需要,还可插入等待状态。
 
3 – 用于任务隔离的存储保护单元(MPU)
设计师可以自行对选配的MPU编程,为每个安全状态和非安全状态提供多达16个区域。在多任务环境中,操作系统可以在任务情境切换时重新编程MPU,为每个任务定义存储访问许可。比如说,某个应用的某个任务只被允许访问某些应用数据和特定的周边设备,这种情况下,MPU将保护所有其他的存储和周边设备,将讹误或未授权访问阻挡在外,有效提升系统可靠性。
 

存储区设置更简易
 
Cortex-M33存储保护架构的开发基于受保护的存储系统架构PMSAv8。最新版本搭载了针对各区域的基线与限值比较器,而非此前的二次方尺寸对齐模型。每个区域都有一个基线的初始地址、终止地址,以及访问许可和存储性质的设定值,因此在这一架构中,设计师设计MPU区域时再也无需顾虑将多个区域整合在一起的麻烦了。功能强化后,软件开发变得更加简单,客户的使用意愿提升,编程步骤也得以减少,并将进而降低情境转换次数。
 
4 – DSP拓展
选配的整数DSP拓展可以为系统增加85个新指令。大多数情况下,DSP指令可将性能平均提升3倍,让所有以数字信号控制为中心的应用性能突飞猛进。

为帮助设计师加速软件开发,ARM将在CMSIS项目中提供免费的DSP库,包含整套过滤、转换和数学功能(如矩阵),并支持多种数据类型。CMSIS项目是开源的,其开发详情发布在github上。
 
5 – 单精度浮点单元
基于FPv5的选配单精度浮点拓展单元包括一份额外的16-入口 64位寄存器文件。该拓展新增45个与IEEE754-2008兼容的单精度浮点指令。使用浮点指令通常可将软件库平均性能提升10倍。FPU位于单独的电源域,负责在整个单元不使用的时候切断电源。

    Cortex-M33是一款能在性能、功耗和安全之间实现最佳平衡的处理器。
嵌入式解决方案日益复杂,而它们带来的价值也不断凸显,当今设计师面临的挑战是在相冲突的设计要素之间找到最佳平衡。此外,片上系统包含的软件数量正在显著增加,但项目开发时间却不断缩短。为了用更短的时间交付合格的产品,保证性能,减少成本,我们必须踏出正确的第一步。

Cortex-M33应运而生,为了迈出正确的第一步量身打造,ARM将过往经验与现有的Cortex-M生态系统完美结合,实现了开发成本降低。得益于采用了多种低功耗技术的全新设计,首先降低的是系统功耗;对打造安全方案的用户,TrustZone技术则为其应用和宝贵的IP提供保驾护航的坚实基础。升级后的MPU和TrustZone共同提升系统的可靠性和保护能力。最后值得一提的是,我们永远不会停止追求生产力的脚步。TrustZone的设计初衷便是保证当前用户能够像从前一样,继续在非安全领域内开发。
Cortex-M33还强化了调试与追踪性能,使复杂代码的操作更便捷。与所有其它Cortex-M处理器一样,Cortex-M33的所有编程都可以在C语言环境下完成,包括全部异常处理程序。总而言之,上述功能诞生的目的都是为了帮助开发者提高生产力,在更短的时间内设计出更复杂的解决方案。

    在定义并开发新一代处理器的过程中,许多芯片厂商成为了ARM的合作伙伴,并积极利用TrustZone安全技术设计芯片。ARM生态系统也将重点放在将工具和软件移植到Cortex-M33。尽管Cortex-M33已经在性能、功耗、安全和生产力之间取得了最佳平衡,但ARM及其合作伙伴将继续努力,为开发商提供更加出色的产品,帮助其挥展创意、实现远见,营造更连通、更智能、更安全的世界。