TLB快表的作用

来源:互联网 发布:mac 音量快捷键 编辑:程序博客网 时间:2024/05/17 22:35

TLB快表的作用  


Translation lookaside buffer。
根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲。里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。当处理器要在主内寻址时,不是直接在内存的物理地址里查找的,而是通过一组虚拟地址转换到主内存的物理地址,页表文件(PTE page table entry 页表条目存放在内存中)就是负责将虚拟内存地址翻译成实际的物理内存地址,TLB中存放了部分PTE页表的缓存。而CPU寻址时会优先在TLB中进行寻址。TLB是在MMU中包括的一段小的缓存(MMU memory management unit 存储器管理单元,是CPU芯片上的一个专用硬件)处理器的性能就和寻址的命中率有很大的关系。

TLB命中和TLB失败

如果TLB中正好存放着所需的页表,则称为TLB命中(TLB Hit);如果TLB中没有所需的页表,则称为TLB失败(TLB Miss)。

如果命中的话,就可以直接将虚拟地址转换为物理地址,如果不命中,则必须在PTE页表中继续查找,并将找到的PTE存放到T
LB中,覆盖已经存在的一个条目。

TLB条目数
即页表条目数,Entry.

TLB的联合方式

1〉全联合方式(fully associate):Athlon XP
2〉4路联合方式(4-way set
associate):P4

当CPU执行机构收到应用程序发来的虚拟地址后,首先到TLB中查找相应的页表数据,如果TLB中正好存放着所需的页表,则称为TLB命中(TLBHit),接下来CPU再依次看TLB中页表所对应的物理内存地址中的数据是不是已经在一级、二级缓存里了(一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的存在都是为了减少高速CPU对慢速内存的访问。 通常CPU找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了
)。若没有命中则到内存中取相应地址所存放的数据。既然说TLB是内存里存放的页表的缓存,那么它里边存放的数据实际上和内存页表区的数据是一致的,在内存的页表区里,每一条记录虚拟页面和物理页框对应关系的记录称之为一个页表条目(Entry),同样地,在TLB里边也缓存了同样大小的页表条目(Entry)。

TLB内部存储空间被划分为大小相同的块(即TLB页表条目),这些块的大小==内存的页表区里页表条目的大小。所以,就可以在TLB页表条目和内存页表条目间建立一定的相互对应关系。当CPU需要页表数据时,它必须迅速做出如下的2个判断:一个是所需要的页表是否已缓存在TLB内部(即判断TLB命中或是失败),另一个是所需要的页表在TLB内的哪个条目内。为了尽量减少CPU做出这些判断所需的时间,就必须在TLB页表条目和内存页表条目之间的对应方式上动点脑筋,下面是几种常见的对应关系。

名称

方式

应用

全联合方式

内存页表里的任何一个条目都可能被对应(缓存)到TLB的任何一个条目,TLB内所有条目都可能被对应到内存页表里的所有条目上。

Athlon XPL1指令TLB部分全是这种方式

4路联合方式

只有内存页表区的某些条目可能被缓存到TLB的某4个页表条目所在的块上。

P4处理器一般采用这种方式


全相联映像规则:
主存中任意一块都可映像装入到Cache中任意一块位置。
全相联映像法的优点是块冲突概率最低,只有当Cache全部半月满才可能出现块冲突,所以,Cache空间利用率最高。但要构成容量为2ncb项的相联存储器,其代价太大,而且Cache容量很大时,其查表速度很难提高。
任意映象,命中率最高,实现最复杂

全相连
优点:命中率比较高,Cache存储空间利用率高。
缺点:访问相关存储器时,每次都要与全部内容比较,速度低,成本高,因而应用少。


组相连
组相联的映象规则:
(1) 主存和Cache按同样大小划分成块。
(2) 主存和Cache按同样大小划分成组。
(3) 主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。
(4) 当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放, 即从主存的组到Cache的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。

优点:块的冲突概率比较低,块的利用率大幅度提高,块失效率明显降低。
缺点:实现难度和造价要比直接映象方式高。

原创粉丝点击