微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 探索ARM Cortex-M7核心:为明日物联网预做准备

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

时间:07-23 来源:互联网 点击:

  ARM Cortex-M7 处理器

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

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

  • 64位AXI系统总线接口;

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

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

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

  

  图1 ARM Cortex-M7 处理器

  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控制器访问?

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

  

  图2 最小微控制器

  

  表1 ARM Cortex-M7总线类型和说明

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

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

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

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

  • 来自AXI或TCM接口的执行;

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

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

  • 可选ECC支持。

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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top