资料介绍
ARM的ram包括静态ram,动态ram, TCM---紧耦合内存(TCM: Tightly Coup ledMemories)。
TCM是一个固定大小的RAM,紧密地耦合至处理器内核,提供与cache相当的性能,相比于cache的优点是,程序代码可以精确地控制什么函数或代码放在哪儿(RAM里)。当然TCM永远不会被踢出主存储器,因此,他会有一个被用户预设的性能,而不是象cache那样是统计特性的性能提高。
TCM对于以下几种情况的代码是非常有用、也是需要的:可预见的实时处理(中断处理)、时间可预见(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代码(编解码功能)。随着cache大小的增加以及总线性能的规模,TCM将会变得越来越不重要,但是他提供了一个让你权衡的机会
那么,哪一个更好呢?他取决于你的应用。Cache是一个通用目的的加速器,他会加速你的所有代码,而不依赖于存储方式。TCM只会加速你有意放入TCM的代码,其余的其他代码只能通过cache加速。Cache是一个通用目的解决方案,TCM在某些特殊情况下是非常有用的。假如你不认为需要 TCM的话,那么你可能就不需要了,转而加大你的cache,从而加速运行于内核上的所有软件代码.
紧致内存是指片上快速存储区,与片上缓存具有同等的性能,但因为程序可完全控制紧致内存,因而比统计复用的缓存有更好的可预测性。这是ARM5TE引入的特性,目的是通过这一快速的存储区,一方面提高某些关键代码(如中断处理函数)的性能,另方面使存储访问延迟保持一致,这是实时性应用所要求的。ARM6对TCM操作做了进一步的规范。
TCM的应用领域:可预测的实时处理(中断处理)、避免缓存分析(加密算法)、或单纯的性能提高(处理器侧编解码)等。
如同缓存的哈佛结构,指令TCM和数据TCM是分开的。TCM有两种使用方式:作为快缓存使用,和作为本地内存使用。
本地内存
这时,TCM被用作更快速的内存,如同一般的RAM。因为指令段有时也是数据访问的对象,指令TCM实际上是指令数据一体化TCM。对TCM写操作后和后续对此写操作的依赖指令之间必须跟一个阻塞操作。
快缓存(smartcache)
TCM可以配置成当作外部RAM的缓存使用,对应的外部RAM也要设置可缓存标志。如果被缓存的外部RAM可以由多处理器共享,那么TCM是否与共享数据保持一致并没有规定,而由具体实现厂家决定。
TCM与缓存的内容不会自动保持一致,这意味着TCM映射到的内存区域必须是不缓存的区域。如果一个地址同时落在缓存和TCM内,那么访问这一地址的结果是不能预测的。另一个限制是各个TCM必须要配置成不相交的。
TCM的配置
通过CP15的0、1、9号寄存器进行:
0号寄存器
读CP15的0号寄存器,opcode2为2:
MRC p15, 0, Rd, C0, C0, 2
返回TCM状态寄存器的内容,其中,16-18位代表数据TCM个数,0-3代表指令TCM个数。
1号寄存器
ARM6之前,1号寄存器的16位和18位用于使能数据TCM和指令TCM(ARM946,ARM966),ARM6因为可以使用9号寄存器控制每一块TCM的使能状态,所以1号寄存器的这两个位就过时了,应该置1。
9号寄存器
每个TCM都有一个TCM区域寄存器,设置这个寄存器就可以设置TCM的基址和大小。在设置TCM区域寄存器前,需要设置TCM选择寄存器。
下面是访问这些相关寄存器的指令:
ARM Instruction TCM Region Register
MRC/MCR P15, 0, Rd, C9, C1, 0 Data TCM Region Register
MRC/MCR P15, 0, Rd, C9, C1, 1 Instruction/Unified TCM Region Register
MRC/MCR P15, 0, Rd, C9, C2, 0 TCM Selection Register
TCM区域寄存器的结构:
Base Address (Physical Address)[31-12] SBZ/UNP[11-7] Size[6-2] SC[1] En[0]
其中:
En位是使能位,置1时使能此TCM;
SC位置位表示此TCM被用作快缓存(smartcache),清零表示本地内存;
Size字段是只读的,含义如下:
Size Memory Size Memory
filed size field size
0b00000 0K 0b01101 4M
0b00011 4K 0b01110 8M
0b00100 8K 0b01111 16M
0b00101 16K 0b10000 32M
0b00110 32K 0b10001 64M
0b00111 64K 0b10010 128M
0b01000 128K 0b10011 256M
0b01001 256K 0b10100 512M
0b01010 512K 0b10101 1G
0b01011 1M 0b10110 2G
0b01100 2M 0b10111 4G
注意TCM区域寄存器配置出来的各个TCM块不能相交,否则后果不可预测
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- ARM笔记:内核物理内存映射区的虚拟内存资料下载
- CPU是怎样访问内存的?资料下载
- 技术原理解读:小波变换资料下载
- 单片机音乐程序的设计原理解析资料下载
- 用电容,来理解电感资料下载
- 差分线的那些概念该如何理解资料下载
- PCB 指南:快速理解高速layout设计资料下载
- 单片机=CPU、内存、外围功能...如何理解资料下载
- 理解堆和栈的区别(STM32)资料下载
- 磁滞损耗如何理解呢?资料下载
- 纯干货,PSI 原理解析与应用资料下载
- 如何让ARM代码执行速度更快?资料下载
- 理解广义的EEPROM和Flash资料下载
- 基于ARM的伺服转台控制系统设计论文资料下载 3次下载
- 改进的高选择压力紧致遗传算法
- 内存共享原理解析 980次阅读
- 深入理解Linux RCU:从硬件说起之内存屏障 671次阅读
- 虚拟内存的基本概念 1296次阅读
- C语言内存问题如何解决 366次阅读
- ARM SMMU Data structures概述 873次阅读
- 图腾柱TCM控制方式的特性 2244次阅读
- 简化TCM的控制 2061次阅读
- 一文搞懂物理内存组织的体系结构与内存模型 2126次阅读
- 如何使用TCM实现逆变器的ZVS工作 4365次阅读
- 内存就是插在或固化在主板上的内存条吗?程序空间还有什么理解? 1.4w次阅读
- 程序员对内存的清晰理解 3952次阅读
- 如何理解ARM异常、中断和向量表 4168次阅读
- 一文解析STM32内存管理和堆栈的认知与理解 1.7w次阅读
- 基于ARM处理器的高效异常处理解决方案 1286次阅读
- ARM紧致内存TCM的解释 7855次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多