探索ARM Cortex-M7核心:为明日物联网预做准备
很小的控制或DSP循环,同时可能有大量的数据用作计算的系数。在此类情形中,较大的D缓存可能比较大的I缓存更对系统性能有益。
当然,进行性能优化时,也需要最大化缓存以确保较大代码和数据大小的最低延迟性。不过,通过以等同于处理器的速度运行大缓存内存,可能会根据其他因素而造成缓存查找消耗大量的功率。此外,大多数应用程序的缓存未命中率曲线随着尺寸增大而向零靠近,这意味着进一步增大缓存大小并不会提高性能。所幸的是,Cortex-M7核心的可配置性使得SoC架构师能够整合各种各样的缓存尺寸,从无缓存到最高64KB的指令缓存和64KB数据缓存。借助这样的灵活性,设计人员可以调节SoC来满足目标应用的需求。
图3 带外部内存的微控制器
图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系列框图
Kinetis KV5x MCU配置仅仅是一个示例,说明了如何构建SoC以应对关注于联网控制的特定应用。随着时间推移、以及互连应用数量和多样性的增加,未来必定会出现对SoC设计的调节,从而在Cortex-M7处理器上进行更广泛范围的配置。性能水平与可比较的Cortex-M4解决方案相比将可达到两倍以上的提高,这将为嵌入式领域实现更多的创新。凭借其可扩充性、性能和可扩展功能,可调节型Cortex-M7核心将在支持"明日物联网"的舞台中扮演重要的角色。
- 基于ARM+FPGA的大屏幕显示器控制系统设计(06-30)
- 基于ARM和μC/OS-II的车载定位终端的设计(06-24)
- 解读物联网时代下的ARM mbed 操作系统(05-03)
- 用ARM和FPGA搭建神经网络处理器通信方案(07-19)
- ARM新一代Cortex-A73架构解析 千元机也能有高端SoC(05-06)
- 阿里巴巴将大量采用ARM处理器 Intel怎么办?(11-14)