您的位置 首页 主动

对ARM紧致内存TCM的了解

ARM的ram包括静态ram,动态ram,TCM—紧耦合内存(TCM:TightlyCoupledMemories)。TCM是一个固定大小的RAM,紧密地耦合至处理器内核,…

ARM的ram包含静态ram,动态ram,TCM—紧耦合内存(TCM: Tightly Coupled Memories)。

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:
MRCp15,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挑选寄存器。
下面是拜访这些相关寄存器的指令:

ARMInstructionTCMRegionRegister
MRC/MCRP15,0,Rd,C9,C1,0DataTCMRegionRegister
MRC/MCRP15,0,Rd,C9,C1,1Instruction/UnifiedTCMRegionRegister
MRC/MCRP15,0,Rd,C9,C2,0TCMSelectionRegister

TCM区域寄存器的结构:
BaseAddress(PhysicalAddress)[31-12]SBZ/UNP[11-7]Size[6-2]SC[1]En[0]

其间:
En位是使能位,置1时使能此TCM;
SC方位位一共此TCM被用作快缓存(smartcache),清零一共本地内存;
Size字段是只读的,意义如下:

SizeMemorySizeMemory
filedsizefieldsize
0b000000K0b011014M
0b000114K0b011108M
0b001008K0b0111116M
0b0010116K0b1000032M
0b0011032K0b1000164M
0b0011164K0b10010128M
0b01000128K0b10011256M
0b01001256K0b10100512M
0b01010512K0b101011G
0b010111M0b101102G
0b011002M0b101114G

留意TCM区域寄存器装备出来的各个TCM块不能相交,不然结果不行猜测

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/264635.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部