【整理】ARM中的D-TCM

【背景】

对于ARM的内核,其中有Icache和Dcache,这个很正常。

但是后来在:

ERTEC 200

中看到有:

High-performance ARM 946 processor with D-cache, I-cache, D-TCM memory

即:

D-TCM。

不知道是啥,去研究看看。

【折腾过程】

1.参考:

求arm内核结构组成讲解?

摘录如下:

TCM 是一段始终有效的连续内存区域(如果启用了 TCM)。 TCM 用作系统的物理内存映射的一部分,不必由物理地址相同的外部存储器来支持。因此,TCM 的行为与标记为直写可高速缓存的内存区域的高速缓存不同。 在这类区域中,向 TCM 中的内存位置写入时,不会发生任何外部写入。
TCM 用于向处理器提供低延迟内存,它没有高速缓存特有的不可预测性。 可以使用 TCM 来存放重要例程,如中断处理例程或者极需要避免高速缓存不确定性的实时任务。此外,可以使用 TCM 来保存暂时寄存器数据、局部属性不适合高速缓存的数据类型,以及中断堆栈等重要数据结构。
有关 TCM 的完整体系结构描述,请参阅《ARM 体系结构参考手册》以及处理器的《技术参考手册》(Technical Reference Manual)。

2.另外,才注意,之前打开的:

ARM946 处理器

有:

它能够提供灵活的指令和数据高速缓存、指令和数据紧密耦合内存 (TCM) 接口

所以就是:

D-TCM==数据紧密耦合内存 (TCM)

3.再找到对应英文版的页面:

http://www.arm.com/products/processors/classic/arm9/arm946.php

中有:

It offers flexible instruction and data caches, instruction and data tightly coupled memory (TCM) interfaces,

所以是:

TCM==Tightly Coupled Memory

D-TCM==Data Tightly Coupled Memory

4.再参考:

对ARM紧致内存TCM的理解 转

可知:

TCM就是块特殊的内存,有着cache级别性能的常驻内存(不会像cache一样,会在一定时间之后被替换掉)

TCM可以通过程序控制,指定哪些代码或数据放在对应的TCM。

TCM很明显,被设计用来放,和性能最相关的核心代码或数据。

所以才有:

TCM对于以下几种情况的代码是非常有用、也是需要的:可预见的实时处理(中断处理)、时间可预见(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代码(编解码功能)。

5.再拷贝:

SIEMENS ERTEC200,Enhanced Real-Time Ethernet Controller

中的解释,如下:

2.5 Tightly Coupled Memory (TCM)
A 4-Kbyte data-tightly coupled memory (D-TCM) is implemented in the ARM946E-S processor of the ERTEC 200. The memory is locked after a reset. The D-TCM can be placed in the address area of the ARM946E-S as desired and must be used together with a region of the memory protection unit. Data from high-speed routines such as isochronous control can be placed in the D-TCM.
The D-TCM can be enabled by setting Bit 16 of the CP15 control register.
In addition, the address area of the D-TCM must be set in the Tightly-Coupled Memory register.
For more information about the D-TCM refer to document /1/ Section 5.
For more information on the description of the ARM946 registers, refer to Section 2.10 of this document.

 

【总结】

TCM就是快特殊的内存:

  • 性能是cache级别的:比普通内存高出一个数量级的
  • 专门放和性能最相关的代码或数据的:为了提高性能,优化性能
  • 常驻的:不会像cache那样存在数据被替换掉的可能
  • 大小方面,很小,只有4KB:很明显这类性能好的内存一般成本相对较高,所以不可能做得很大
  • D-TCM可以被当做普通内存操作:设置为也属于ARM946E-S的地址空间内,可以直接访问,但是需要搭配对应的MPU(Memory Protection Unit)一起使用,即防止误写而冲掉了原有数据。
  • D-TCM重新上电后会被锁住lock:防止数据被误写冲掉


发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量