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

发布者:平和宁静最新更新时间:2020-10-10 来源: elecfans关键字:ARM  Cortex-M7核心  物联网 手机看文章 扫描二维码
随时随地手机看文章

  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 处理器

  图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 最小微控制器

  图2 最小微控制器

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

  表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接口连接,也就需要指令缓存和数据缓存的支持。在一些情形中,应用可能只需要将外部内存用于数据存储。这样的情形中不需要指令缓存。


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


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

  图3 带外部内存的微控制器

  图3 带外部内存的微控制器

  图4 ARM Cortex-M7处理器双核锁步配置

  图4 ARM Cortex-M7处理器双核锁步配置

  除了架构选项外,Cortex-M7处理器上的许多其他功能也可加以配置。例如,SoC的浮点单元(FPU)功能可以配置为完全不含FPU、具有IEEE-754单精度浮点运算的FPU,或者同时支持IEEE-754单精度运算和双精度运算的FPU。


  其他配置功能包括:

  • 中断数、以及NVIC中的优先级别数;

  • 内存保护单元(MPU)配置;

  • 调试与跟踪功能;

  • 功能安全性相关的功能(ECC、双核锁步)。

  浮点运算硬件加速有诸多优点。显而易见,具有硬件浮点单元时浮点运算的性能可以得到加速。此外,由于硬件支持减少了执行浮点运算所需的软件库数量和相关大小,因此内存空间也得以优化。缩短处理时间并且减少内存足迹最终提高应用的能效,为执行传统上需要更多复杂嵌入式系统的功能扫清了障碍。这种优势对能效而言非常重要,因为DSP过滤器的浮点运算最高可提速20倍。同时具备单精度和双精度浮点功能选项可进一步提高新款处理器的可扩充性。


  随着IoT的演讲逐步带来技术的扩充,应对嵌入式应用的安全性和完整性挑战的需求也在增长。除了与其他Cortex-M处理器相同的错误异常处理功能和内存保护单元外,Cortex-M7处理器也包含可选的TCM内存和缓存错误校正代码(ECC)支持。这可以实现自动即时更正内存中的单比特错误、以及检测双比特错误。


  此外,Cortex-M7处理器也支持双核锁步配置选项。在这种配置中,核心逻辑进行两次实例化,缓存和TCM内存阵列则是共享的。这是因为它们可以通过ECC加以保护,其硅面积成本能大幅降低(见图4),实现非常强健的容错系统设计。


  飞思卡尔KineTIs KV5x MCU系列的实现

  Cortex-M7处理器的一个实现选择示例是飞思卡尔最新发布的KineTIs KV5x MCU系列,这一可扩充的MCU产品系列定位是面向电机控制和数字功率转换应用。在这一SoC中,Cortex-M7处理器选择的部分配置选项包括整合 16KB指令缓存和8KB数据缓存。此SoC将64位AXI总线用作嵌入式闪存存储器的访问端口。指令缓存和数据缓存确保驻留于嵌入式内存中的控制软件得以加速,支持所连的工业级控制用例所需的性能级别。除了缓存之外,KineTIs KV5x MCU系列还集成了64KB与ITCM接口连接的SRAM、以及128KB与DTCM接口连接的SRAM。这可提供必要的处理器本地存储,以延迟性最低的内存支持实时控制运算。

  图5 Kinetis KV5x MCU系列框图

  图5 KineTIs KV5x MCU系列框图


  Kinetis KV5x MCU配置仅仅是一个示例,说明了如何构建SoC以应对关注于联网控制的特定应用。随着时间推移、以及互连应用数量和多样性的增加,未来必定会出现对SoC设计的调节,从而在Cortex-M7处理器上进行更广泛范围的配置。性能水平与可比较的Cortex-M4解决方案相比将可达到两倍以上的提高,这将为嵌入式领域实现更多的创新。凭借其可扩充性、性能和可扩展功能,可调节型Cortex-M7核心将在支持“明日物联网”的舞台中扮演重要的角色。

关键字:ARM  Cortex-M7核心  物联网 引用地址:探索ARM Cortex-M7核心:为明日物联网预做准备

上一篇:基于ARM控制的逆变器电路设计
下一篇:用ARM和FPGA搭建神经网络处理器通信方案

推荐阅读最新更新时间:2024-11-17 08:26

jz2440裸机开发与分析:ARM芯片时钟体系1
ARM芯片时钟体系分析 OM开关
[单片机]
jz2440裸机开发与分析:<font color='red'>ARM</font>芯片时钟体系1
日照企业制定山东首个物联网地方标准
据山东广播电视台公共频道《今日报道》报道,近日,由日照活点信息技术有限公司制定的《物联网中间件开发规范》通过省质监局评审,并于2月份起正式实施。这是山东省物联网领域内的第一个专业技术标准。这一标准明确了物联网中间件开发的技术规范和标准,解决了当前物联网系统建设中存在的软件、硬件标准不统一,难以兼容的问题。
[物联网]
电源中的数字控制支持工业4.0、物联网和应用特定要求
数字信号处理(DSP)控制在电源和电源系统中的应用带来了巨大的效益。从通信和控制到支持网络化的工厂和高效的智能制造,被称为工业4.0、第四次工业革命或更广泛地作为物联网(IOT),通过在终端设备内的通信和控制和/或裁剪来实现在独立应用中的灵活性和效率,在终端设备开发阶段提供电源,以确保高效集成和优化性能特性。 在这里,我们将介绍在将电源和电源系统集成到连接和独立的应用程序和设备中时,真正的数字控制所提供的背景、可能性和好处。 背景 电源和电源系统中的数字控制大致分为两种实现方式。更常见的方法是在传统的模拟控制系统和外部世界之间建立一个数字接口,通过通信总线提供信号和警报以及各种级别的控制。 带数字接口的模拟电源
[电源管理]
电源中的数字控制支持工业4.0、<font color='red'>物联网</font>和应用特定要求
ARM7还是选Cortex-M3?
要使用低成本的 32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。 1.ARM实现方法 ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线( 冯诺伊曼结构下,数据和指令共用一条总线)。从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。 ARM公司对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。在
[单片机]
物联网建置热潮延烧 硬件商机上看4000亿美元
集微网消息,IDC最新物联网(IoT)支出报告指出,2016年全球物联网建置相关的总投资金额达到7370亿美元,其中30.6%为硬件的采购金额,服务支出则占27.5%。软件支出和通讯连接的占比则分别为25.0%及16.9%。 预估到了2020年时,物联网硬件的产值将超过4,000亿美元,模组与传感器等物联网节点设备将占硬件支出的绝大多数,而在软件部分,逾半的软件支出将用在应用程式(App)研发、维护上。
[手机便携]
ARM:Hyper SoC时代笑得最开心的人
  “SoC使手机体积变小、功耗变低、性能变高了。”ARM谭军在接受电子工程世界记者采访时表示。正是得益于手机的发展,ARM成了SoC时代笑得最开心的人。无论微软Windows或是互联网,都没有覆盖到一半以上的人类,而手机做到了。 ARM中国总裁谭军   SoC是这样一款复杂芯片,它在一个芯片中集成了一个或多个处理器、大容量内存、总线结构、外部设备、协处理器、I/O通道等。   正像二十年前的台式电脑需要自己在母板上添加中央处理器、显卡、声卡、网卡;现在的芯片将这些离散器件都合成到了一个芯片内,板子变小、功耗变低、成本也低了。   然而,随着工艺的发展,工艺节点从0.5微米、0.35微米、0.25微米、0.18微米、0
[焦点新闻]
艾迈斯半导体任命Alexander Everke为首席执行官
中国,2016年3月1日,全球领先的高性能传感器和模拟解决方案供应商艾迈斯半导体公司(ams AG,SIX股票代码:AMS)宣布任命Alexander Everke为首席执行官。Alexander Everke先生于2015年10月作为首席执行官候选人加入艾迈斯半导体管理委员会,并将其在半导体行业超过24年的丰富经验带入艾迈斯半导体。 在其职业生涯中,Alexander Everke先生曾在西门子、英飞凌和恩智浦半导体公司担任高级管理职位。加入艾迈斯半导体之前,他是恩智浦半导体公司的管理团队成员,担任执行副总裁和跨市场半导体事业部、高性能混合信号及基础设施和工业事业部总经理。Alexander Everke先生拥有电气工
[半导体设计/制造]
艾迈斯半导体任命Alexander Everke为首席执行官
ARM嵌入式系统开发之发送过程的实现
要通过网卡发送数据时,上层协议实体调用函数 hard_start_xmit() ,在我们的驱动程序中这个函数被映射成 DM9000_wait_to_send_packet() 函数,正如它名字中 wait 所表示的那样,这个函数只完成了等待发送的工作,实际的发送是调用 DM9000_hardware_send_packet() 函数完成的,这也是前面提到的 buffer 分配机制的一种体现。 在具体介绍这两个函数之前,有必要简单说一说 DM9000 芯片发送数据的工作原理。前面已经讲过,为了增加网络吞吐量 DM9000 芯片内部集成了 8K 的 buffer ,芯片对这些 buffer 采用了内存页面管理方式,每页 256
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved