【问题标题】:what's ARM TCM memory什么是ARM TCM内存
【发布时间】:2015-06-12 07:00:26
【问题描述】:

什么是 ARM 处理器上的 TCM 内存,它是位于处理器旁边的专用内存还是仅配置为 TCM 的 RAM 区域?

如果是专用内存,为什么要配置它的位置和大小?

【问题讨论】:

  • 问题是“为什么我们可以配置它?”或“为什么我们不能配置它?”

标签: memory arm


【解决方案1】:

TCM,紧耦合内存是一个(或多个)小的专用内存区域,顾名思义,它非常靠近 CPU。它的主要好处是,CPU 可以在每个周期访问 TCM。与普通内存相反,它不涉及缓存,这使得所有内存访问都是可预测的。

TCM 的主要用途是存储性能关键数据和代码。中断处理程序、实时任务数据和操作系统控制结构是一个常见的例子。

如果是专用内存,为什么要配置 它的位置和大小

使其可配置只会使所有内存访问的地址解码复杂化,而对固定地址范围没有真正的好处。因此,将 TCM 绑定到固定地址可能更容易、更快捷。

顺便说一句,如果您正在使用具有 TCM 的系统并且您还没有使用它,请尝试将您的堆栈放在那里。这通常会给你一些免费的性能提升,因为所有堆栈内存访问现在都是单周期并且不再污染数据缓存。

【讨论】:

  • 它的大小如何,我们如何配置它的大小,因为它是一个硬件
  • 这取决于具体的硬件。有一些 ARM 架构可以让您拆分 TCM,因此您可以将其中的一部分用作 TCM,而将其余部分用作数据缓存。从芯片设计师的角度来看,当您设计微控制器时,您可以决定您的 TCM 有多大。
  • 我的理解是,在 RAM 上设置堆栈时,处理器会将堆栈 RAM 数据获取到 L1 缓存并使用它。但是在 TCM 上设置 STACK 时,数据将始终保留在 TCM 上(没有从 TCM 获取到 L1 缓存),因此运行程序中的缓存未命中率总是会减少?还是我弄错了??
  • @MakhloufGharbi 如果你的 ARM 系统有缓存,那么你写的就是真的。 TCM 内存始终是未缓存的,因此如果您将其用于堆栈,则会从缓存使用中承受压力。这将提高整体性能。
  • 在 STM32 中,此内存命名为内核耦合内存 CCM。 DMA 无法访问它。我认为这是对开发人员的重要通知。
猜你喜欢
  • 1970-01-01
  • 2017-03-04
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 2012-05-25
  • 2017-01-18
  • 2011-04-15
  • 2019-08-15
相关资源
最近更新 更多