声明:本文转载自在路上 » 【整理】ARM中的D-TCM
【背景】
对于ARM的内核,其中有Icache和Dcache,这个很正常。
但是后来在:
中看到有:
High-performance ARM 946 processor with D-cache, I-cache, D-TCM memory |
即:
D-TCM。
不知道是啥,去研究看看。
【折腾过程】
1.参考:
摘录如下:
TCM 是一段始终有效的连续内存区域(如果启用了 TCM)。 TCM 用作系统的物理内存映射的一部分,不必由物理地址相同的外部存储器来支持。因此,TCM 的行为与标记为直写可高速缓存的内存区域的高速缓存不同。 在这类区域中,向 TCM 中的内存位置写入时,不会发生任何外部写入。 |
2.另外,才注意,之前打开的:
有:
它能够提供灵活的指令和数据高速缓存、指令和数据紧密耦合内存 (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.再参考:
可知:
TCM就是块特殊的内存,有着cache级别性能的常驻内存(不会像cache一样,会在一定时间之后被替换掉)
TCM可以通过程序控制,指定哪些代码或数据放在对应的TCM。
TCM很明显,被设计用来放,和性能最相关的核心代码或数据。
所以才有:
TCM对于以下几种情况的代码是非常有用、也是需要的:可预见的实时处理(中断处理)、时间可预见(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代码(编解码功能)。 |
5.再拷贝:
SIEMENS ERTEC200,Enhanced Real-Time Ethernet Controller
中的解释,如下:
2.5 Tightly Coupled Memory (TCM) |
【总结】
TCM就是快特殊的内存:
- 性能是cache级别的:比普通内存高出一个数量级的
- 专门放和性能最相关的代码或数据的:为了提高性能,优化性能
- 此处对于ERTEC200来说,就是放那些对应的IRT相关的控制代码的
- 常驻的:不会像cache那样存在数据被替换掉的可能
- 大小方面,很小,只有4KB:很明显这类性能好的内存一般成本相对较高,所以不可能做得很大
- D-TCM可以被当做普通内存操作:设置为也属于ARM946E-S的地址空间内,可以直接访问,但是需要搭配对应的MPU(Memory Protection Unit)一起使用,即防止误写而冲掉了原有数据。
- D-TCM重新上电后会被锁住lock:防止数据被误写冲掉