探索ARM Cortex―M7核心:为明日物联网预做准备

时间:2022-07-02 03:45:53

探索ARM Cortex―M7核心:为明日物联网预做准备

摘要:本技术白皮书将详细阐述Cortex-M7处理器,探讨在设计核心时面临的架构考量、以及关于配置选项的信息,同时也说

>> 探索ARM Cortex―M7核心:为明日物联网预做准备 基于ARM Cortex-M3的BootLoader技术 以ARM Cortex-M3为基础的STM32开发板的设计与实现 ARM Cortex-M3处理器故障的分析与处理 嵌入式教改之路——从ARM9到cortex—M3 基于ARM CORTEX—M3内核嵌入式系统教学研究 ARM的新成员Cortex—A12核心架构介绍 基于ARM―Cortex―M4内核的DSP驱动BLDC的一种方法 深入探讨ARM CORTEX―M3处理器中断异常系统的使用 基于Cortex—m3为内核的开发板设计与制作 飞思卡尔推出业界首个基于ARM Cortex-M0+处理器的Kinetis L系列微控制器 Kinetis E系列,基于世界首款5V ARM Cortex M0+内核的32位MCU系列,为恶劣电磁环境而设计 富士通半导体采用ARM COrtex-M3内核的32bitRlSC FM3系列产品 基于Cortex―M3的云终端设计 基于Cortex―M4内核的μCOS―Ⅱ移植 基于Cortex M3的pH值检测系统 用Cortex―MO ARM代替8051系列单片机的嵌入式教学 一种基于Cortex―M3核心的密集架嵌入式控制器设计 32位ARM Cortex微控制器锁定需要数字信号控制功能的应用 7座艾瑞泽M7西南上市 常见问题解答 当前所在位置:

关键词:ARM;Cortex-M7;MCU;物联网

ARM Cortex-M7处理器

Cortex-M处理器系列的最新成员是Cortex-M7。这款新的核心具备可用于支持新型嵌入式技术需求的功能,它设计用于需要较高处理性能、实时响应能力和能效的应用。总体而言,Cortex-M7处理器包含下列关键特性:

高性能、双指令签发6级流水线,每个时钟周期最多可执行两个指令;

64位AXI系统总线接口:

可选指令缓存(4到64KB)及数据缓存(4到64KB),每种缓存内存均有可选的ECC(错误校正码)支持;

可选64位指令紧密耦合内存(ITCM)及可选双32位数据TCM(D{O,1}TCM),每个TCM内存阵列均支持客户ECC实现;

可选的低延迟AHB外设总线接口,允许在实时应用程序中对外设进行确定性的快速访问。

ARM Cortex-M7处理器配置选项

Cortex―M7处理器的微架构与Cortex-M处理器系列中的其他核心不同。Cortex-M7的微架构具有6级超标量流水线实现,通过改善架构性能(减少每个指令周期数)和提升运行频率,大幅改善系统性能。为支持超标量设计更高的指令和数据带宽要求,其关键内存接口设计为64位宽度。AXI系统总线和单周期ITCM接口均为64位,双32位D-TCM接口可以在一个周期内处理两个32位传输或一个64位数据传输。表1总结了Cortex-M7处理器微架构中的总线,强调了新接口与前代ARM Cortex-M系列设备的对比。

在支持许多IoT应用所需的内存扩展性时,AXI主控器接口可发挥重要的功能。由于新的使用模型建立于持续收集和分析的数据基础上,因此能够利用外部内存来增加功能性显得至关重要。除了AXI主机接口外,TCM接口也提供最优的单周期接口,用于执行控制所需的实时运算。若要支持超过5 CoreMarks/MHz的处理器性能级别,高性能内存和总线接口则至关重要。

选择要在SoC中使用哪些总线以及如何加以利用时,需要考虑多个要素,其中包括:

哪些外设需要连接Cortex-M7处理器上的AHB外设总线,来实现低延迟访问能力?

哪些外设需要由DMA控制器访问?

需要哪些形式的访问控制和内存保护?

举例来说,在非常简单的设计中,内存系统可以连接至TCM接口,外设可以连接至AHB外设接口,如图2所示。这种配置使得SoC不仅能够利用Cortex-M7核心的可缩放性能,而且仍然能够应对与成本和尺寸相关的挑战。例如,通过SRAM与TCM接口的连接,可以活动支持,实现需要实时性能的控制边缘节点。

另一种配置选项是将嵌入式内存和(或)外部内存与AXI接口连接,并通过使用缓存内存来实现更高的性能。大多数微控制器应用包含许多小的控制循环,因此固件执行的缓存未命中数非常低。使用基于缓存的设计时,系统在从AXI总线系统执行程序时的确定性可能较低。不过,可以在与ITCM接口连接的SRAM中,放入异常矢量表和中断处理程序,从而实现在执行中断处理程序时的确定行为。

AXI接口和缓存的内存可扩展性、性能以及效率优势是满足应用需求的关键所在。此类配置提供与IoT应用相符的诸多优势,如支持无线固件更新和利用大型外部内存的数据存储需求。然而,并非所有应用案例都需要每个选项,所以必须要考量与成本、尺寸和功耗相关的挑战。

内存系统的设计可以提供各种各样的配置选项。需要考虑多个方面和因素,其中包括:

来自AXI或TCM接口的执行;

缓存大小(如果使用AXI);

嵌入式闪存访问加速的方式,以及闪存的带宽:

可选ECC支持。

许多不同因素可以影响到决策,如嵌入式闪存的读取访问速度,时钟速度要求,以及目标应用的典型大小及其程序流行为。

如果嵌入式内存访问速度与所需的处理器速度相近,则嵌入式闪存可以和具有一些闪存访问加速的ITCM接口连接。而在其他情形中,使用带有缓存的AXI将更加合适。如果应用需要从外部内存控制器执行程序,那么内存控制器通常会与AXI接口连接,也就需要指令缓存和数据缓存的支持。在一些情形中,应用可能只需要将外部内存用于数据存储。这样的情形中不需要指令缓存。

选择缓存大小很大程度上取决于应用程序代码的属性。在嵌入式闪存运行程序代码时,会同时利用指令缓存和数据缓存,因为程序映像通常会随指令一起包含文字数据、查找表或只读常量。与程序映像内部中的数据/常量相比,应用程序通常有更多指令字。随着程序大小变大,缓存要求也在提高,指令缓存大于数据缓存也不罕见。相反,一些应用程序可能有很小的控制或DSP循环,同时可能有大量的数据用作计算的系数。在此类情形中,较大的D缓存可能比较大的I缓存更对系统性能有益。

当然,进行性能优化时,也需要最大化缓存以确保较大代码和数据大小的最低延迟性。不过,通过以等同于处理器的速度运行大缓存内存,可能会根据其他因素而造成缓存查找消耗大量的功率。此外,大多数应用程序的缓存未命中率曲线随着尺寸增大而向零靠近,这意味着进一步增大缓存大小并不会提高性能。所幸的是,Cortex-M7核心的可配置性使得SoC架构师能够整合各种各样的缓存尺寸,从无缓存到最高64KB的指令缓存和64KB数据缓存。借助这样的灵活性,设计人员可以调节SoC来满足目标应用的需求。

上一篇:基于ATMEGA16单片机的管道测试桩参数自动采集... 下一篇:透视中国环境治理新常态