Board logo

标题: ARM详细介绍(9) [打印本页]

作者: look_w    时间: 2017-9-24 15:23     标题: ARM详细介绍(9)

Cache的工作原理
Cache存储系统当中,把主存储器和Cache都划分成相同大小的块。

主存地址可以由块号M和块内地址N两部分组成。

同样,Cache的地址也由块号m和块内地址n组成。

Cache地址映像和变换方式
1
)直接映像

快,造价低。

但由于映射策略简单,所以有一定的局限性。

如果访问频繁的块正好被映射到同一个块,就不能充分利用高速缓存的好处。

2)组相联映像

组相联映像由组的个数来标识,每个组被实现为一个直接映射高速缓存。

高速缓存请求同时广播到所有的组。如果某组中有这个单元,该高速缓存便报告命中。

比直接映射慢,命中率较高。

3)全相联映像

主存中任意一个块都可以映射到Cache中的任意一个块的位置上。

不同的ARM有不同大小的高速缓存和组织结构。

Cache的替换算法

1)轮转法

维护一个逻辑计数器,利用该计数器依次选择将要被替换出去的Cache块。

这种算法容易预测最坏情况下Cache的性能。

缺点:在程序发生很小的变化时,可能造成Cache平均性能急剧的变化。

2)随机替换算法

通过一个伪随机数发生器产生一个伪随机数,用新块将编号为该伪随机数的Cache块替换掉。

算法简单,易于实现。

没有考虑程序的局部性特点,也没有利用以前块地址分布情况,因而效果较差。

不易预测最坏情况下Cache的性能。

存储管理单元MMU

存储管理单元在CPU和物理内存之间进行地址转换。
由于是将地址从逻辑空间映射到物理空间,因此这个转换过程一般称为内存映射。

ARM系统中,存储管理单元MMU主要工作:

1)虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。

2)存储器访问权限的控制。

3)设置虚拟存储空间的缓冲的特性

MMU的页表

页表是实现上述功能的一个重要手段,它实际上是位于内存中的一个对照表。
为了实现不同层次的管理,系统提供了基于段或页的存储器访问方式

1.
段(section):由1MB的存储器块构成

2.
大页(large page):由64KB的存储器块构成

3.
小页(small page):由4KB的存储器块构成

4.
极小页(tiny page):由1KB的存储器块构成

MMU的页表续

地址变换条目:页表的每一行对应与虚拟地址空间的一个页,该行同时包含了该虚拟内存页对应的物理内存页的地址、该页的访问权限以及缓冲特性等。我们将页表中的一行称为地址变换条目。

页表:存放在内存中,系统通常有一个寄存器来保存页表的基地址。ARM系统中使用的就是CP15的寄存器C2

快表:从虚拟地址到物理地址的转换实际上就是查询页表的过程。由于程序在执行过程中具有局部性,即在一段时间内只是局限在少数几个单元,为了加快页表的查询速度,在系统中通常使用一个容量更小、速度更快的存储器件来保存当前需要访问的地址变换条目,这个容量小的页表又称作快表(TLB)。

快表的使用

更新:当CPU需要访问内存时,首先在TLB中查找需要的地址变换条目。若不存在则在内存页表中查询,并把查询的结果添加到TLB中。

清除:当内存中页表的内容改变或者使用新的页表时,TLB中的内容需要清空。CP15的寄存器8用于完成该功能。

锁定:可以将一个地址变换条目锁定在TLB中,以加快访问速度,CP15的寄存器10用于完成该功能。







欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0