关于那些需求低功耗、本钱效益和中等功用的嵌入式体系而言,ARM Cortex M系列无疑是首选的处理器系列。 Cortex M系列中最早得到运用的是其光谱中的小部分产品: Cortex M0用于完结最低的本钱,Cortex M0+用于完结最高 的能效,Cortex M3用于完结功耗与功用之间的最佳平衡, Cortex M4用于完结那些需求数字信号处理(DSP)功用的应 用。
该系列中最高功用的Cortex M7的第一批运用现已开端涌 现。该处理器在坚持适度能耗和本钱的状况下,能以更快速 度运转愈加杂乱的算法。Cortex M7 选用65-nm嵌入式闪存工 艺,运转频率为300MHz时CoreMark分数可到达1500,并且 其DSP功用是Cortex M4的两倍。一个双精度浮点单元和一个 双发指令流水线进一步确立了Cortex M7的高速位置。凭仗这些特性,当低功耗、低本钱运用需求严密的音 视频算法来完结丰厚的影音功用时,Cortex M7成为了它们 见义勇为的挑选。 Cor tex M7在无人机图画处理、 语音控 制、物体辨认、杂乱的轿车传感器交融以及高端物联网传感 范畴得到了广泛运用。
1 可快速、确认地履行代码的严密耦合内存
为了完结实时响应和无缝的音视频功用,FIR、FFT、 Biquad等算法常常需求尽或许快速、确认地运转。为了满意 体系的功用和时延方针,这些算法应以全时钟频率运转,不 受缓存未射中、中止、上下文交流以及其它有损时刻确认性 的履行意外阻止。
这意味着您不能在规范内存之外运转这些代码,也不 能依靠规范内存来存储正在处理的数据。闪存等典型内存的 速度太慢,跟不上Cortex M7内核的脚步,并且它们需求缓 存,所以,当产生缓存未射中时会导致较长的时延。因而, Cor tex M7架构供给了一种办法, 运用“ 严密耦合内存”(TCM)来绕开规范的履行机制。A R M 的 内 核 提 供 T C M 接 口 , 用 于 实 现 以 处 理 器 全速 运 行 的 单 周 期 随 机 TC M 存 取 。 一 个 6 4 位 指 令 内 存 端 口(ITCM)支撑双发处理器架构,两个数据端口(DTCM) 可以完结两个并行的32位数据存取。但该架构没有指定应 供给内存的类型以及巨细。这些决议留由那些在微控制器(MCU)中完结Cortex M7内核的规划人员作出,意图是鼓 励创新和差异化规划。
因而,咱们可以将嵌入式闪存衔接至TCM接口。但闪 存不能以处理器全速运转,因而需求缓存,然后给TCM旨 在供给确实认性带来了要挟。DRAM中的代码映射在理论上 可行,但本钱过高。速度到达可以完结无缓存、直接存取的 仅有内存类型便是SRAM。
SRAM具有很多优势:可以将一个SRAM模组直接衔接 到TCM接口;SRAM技能便于完结片上嵌入;SRAM支撑处 理器全速随机存取。SRAM的仅有缺陷是位本钱较高,高于 闪存和DR AM。因而,重要的是要坚持有限的TCM巨细, 即使是65nm或40nm的工艺也能以恰当的本钱完结足够的 SRAM容量。
TC M 可 从 多 个 来 源 加 载 , 而 这 些 来 源 在 架 构 中 也 未 明确指出。因而,各种MCU或许在内存加载方法上存在差 异,必定包括的是一个直接内存存取(DMA)引擎,而至 所以一个单一的DMA,仍是来自视频或USB等不同数据流的 多 个 加 载 数 据 之
一 , 这 个 由 M CU
规划人员决议。
在 T C M 之 外 执 行 的 代 码 由 系 统 编 程 人 员 确 定 。 在 准 备 一 个 软 件 构 建 时 , 编 程 人 员 需 要 确 定 应 用 在 T C M 上的 代 码 段 和 数
图1 TCM接口供给一个单一的64位指令端口和两个32位数据端口
图2 将SRAM运用到内存条时,多个DMA突发传送会一起引发微量时延
图3 Atmel SAM S70/E70系列可运用TCM或体系SRAM的SRAM提 高灵活性和利用率
据块。一般是将Pragmas嵌入到软件中,或许运用链接器设 置,以便让该构建可以合理地放置代码和内存。
2 用于更高速SRAM存取的多个端口
尽管TCM可供给一个用于快速、严密运转重要程序的 直接机制,但咱们常常需求将必定容量的体系SRAM装备为 通用高速内存,供处理器和外设经过DMA运用。尽管这种 内存在逻辑上与TCM别离,但一个SRAM模组也能同享TCM 和通用功用,并且还能让规划人员为每种运用状况对TCM 和体系SRAM之间的别离作出调整。
通用体系SRAM中完结的外设数据缓冲区一般由DMA传 送且经过体系外设加载。可是,从很多来历加载的才能会引 发多个DMA企图一起存取内存,然后导致不必要的时延和 抵触的或许性。
在一个典型的比如中,有三个不同的实体对SR AM的 DMA存取进行彼此竞争:处理器(64位存取,而在本例中 要求是128位存取)和两个别离的外设DMA恳求(DMA0和 DMA1,均为32位存取)。让咱们假定处理器的优先级高于 DMA,而DMA0的优先级高于DMA1。
图2 显现了这个比如。左边显现了一个64位宽式单条内 存的功用,右侧显现了由4个32位内存条组成的同一个内存 中处理相同业务。
使 用 单 条 内 存 时 , 处 理 器 可 以 在 两 个 周 期 内 完 成 存 取, 然后, DM A0突发鄙人一个周期发动。 DM A1会被锁 定,直至DMA0完结。任何优先级更高的处理器恳求都会中 断DMA加载,然后进一步添加时延。如图2所示,周期5中 的一个取指令给两个DMA操作添加了一个周期时延。
为了进步操作功率,可以运用配有交织地址的多个内 存条组成一个内存,每个内存条可以被独自存取。在这种方 法中,DMA0会在处理器存取完第一个内存条时发动,而在 一起,处理器会存取高优先级的内存条。DMA1不再需求等候整个DMA0传送完毕,它可以在DMA0存取完第一个内存 条之后的一个周期中发动。
由于具有更高的优先级,处理器看不出这两种计划在 时延上的不同。但DMA0的时延从2个周期缩短为1个周期, DMA1的时延从7个周期缩短为2个。DMA操作期间的一个取 指令乃至或许会与DMA操作一起产生,然后导致无附加时 延。更低的时延不只进步了功用,一起也意味着您可以缩小 外设FIFO。
有了这些可行且有用的内存计划,MCU规划人员将能 想象怎么让闪存、体系SRAM和TCM合作作业。它们是彼此 独立吗?占用相似的容量吗?芯片上仍是芯片外?不同的考 量将催生出差异化的Cortex M7。
3 一个详细的Cortex M7 TCM实例
Cortex M7 MCU的一个实例在Atmel的SAM S70、SAM E70和SAM V70/1系列中完结。它具有一个由4个内存条组 成的SR AM,可被用作通用SR AM(Atmel将其称为“体系 SRAM”)和TCM。在被装备为TCM的部分中,指令可以以
300 MHz的内核全速运转确认性的单周期存取,无取指令或 缓存时延。与此相似, TCM中的数据也可以完结无缓存时 延存取。
指令TCM(ITCM)和数据TCM(DTCM)巨细有必要类 似,每个可以是32K、64K或128K字节。尺度是不能容易更 改的构建时设置。
整 个 S R A M 模 组 最 大 可 为 3 8 4 K 字 节 , 这 意 味 着 系 统 SR AM和TCM可以一起运用。装备为TCM的内存容量将占 用体系SRAM的容量。例如,假如ITCM被装备为128 KB, D T C M 也 被 配 置 为 1 2 8 K B , 那 么 系 统SR A M的容量将降至128 KB。 体系SR A M可以以最高150 MHz的速度运转,即一半的处理器速度,并且它由四个内存条组成,可下降DMA时 延。既可固定也可循环设置的DMA存取优先级与体系SRAM 相同,由于它们针对的是内部总线矩阵。
一个寄存器位可激活或撤销激活TCM,因而,存取目 标将取决于TCM激活。设备总是在ITCM撤销激活时被引 导,以便让代码可以从引导内存加载。引导完结后,需求时 可以激活TCM。
ITCM地址空间与引导内存叠加。假如撤销激活TCM, 指令存取将前往引导内存。假如激活TCM,TCM地址空间 中的存取将在TCM中进行,TCM空间以外的存取将在闪存 中进行。可以运用MPU维护各个空间,以保证不会产生对过错
内存的无意存取。4 Cortex M7是下一波ARM内核
Cortex M7正在鼓起,运转愈加高档的算法,一起仍然 坚持适度的功耗和本钱。严密耦合内存是Cortex M7的一大 特性,可以以处理器全速确认地履行严密的代码。
如 何 在M CU 上 是 实 现 这 种 性 能 将 取 决 于 设 计 人 员 将 Cortex M7集成到MCU中时的体系挑选。咱们可以将SRAM 装备为TCM来完结最高的速度。这个SR AM可以与一个更 为通用的体系SR AM同享, 并且经过运用多个内存条组成 SRAM,可以将时延降至最低。
这些架构特性尽管简略,但却可以明显提高功用,实
现个人、工业和轿车设备所需的嵌入式功用。