全球旧事资料 分类
TLB方方面面
00348308一、TLB是什么:TLBTra
slatio
LookasideBuffer根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲。里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。当处理器要在主内存寻址时,不是直接在内存的物理地址里查找的,而是通过一组虚拟地址转换到主内存的物理地址,TLB就是负责将虚拟内存地址翻译成实际的物理内存地址,而CPU寻址时会优先在TLB中进行寻址。处理器的性能就和寻址的命中率有很大的关系。二、为什么要引入TLB:映射机制必须使一个程序能断言某个地址在其自己的进程空间或地址空间内,并且能够高效的将其转换为真实的物理地址以访问内存。一个方法是使用一个含有整个空间内所有页的入口(e
try)的表(即页表),每个入口包含这个页的正确物理地址。这很明显是个相当大的数据结构,因而不得不存放于主存之中。由于CPU首先接到的是由程序传来的虚拟内存地址,所以CPU必须先到物理内存中取页表,然后对应程序传来的虚拟页面号,在表里找到对应的物理页面号,最后才能访问实际的物理内存地址,也就是说整个过程中CPU必须访问两次物理内存实际上访问的次数更多。因此,为了减少CPU访问物理内存的次数,引入TLB。三、TLB、Cache、内存的关系TLB和CPU里的一级、二级缓存之间不存在本质的区别,只不过前者缓存页表数据,而后两个缓存实际数据。他们和内存区域的对应关系图如下吕品
TLB
内存页表区
L1
CACHE
L2CACHE
内存数据区
CPU四、TLB内部组成及相关概念:
内存
TLB中条目与cache条目相似,标志部分包含虚拟地址,数据部分包含物理页号,保护地段,有效位,通常还有使用位和重写位。1.TLB种类细分:TLB在X86体系的CPU里的实际应用最早是从I
tel的486CPU开始的,在X86体系的CPU里边,一般都设有如下4组TLB第一组:缓存一般页表(4K字节页面)的指令页表缓存(I
structio
TLB);第二组:缓存一般页表(4K字节页面)的数据页表缓存(DataTLB);第三组:缓存大尺寸页表(2M4M字节页面)的指令页表缓存(I
structio
TLB);
f第四组:缓存大尺寸页表(2M4M字节页面)的数据页表缓存(I
structio
TLB);
2.TLB命中和TLB失败:
图中可见,当CPU执行机构收到应用程序发来的虚拟地址后,首先到TLB中查找相应的页表数据,如果TLB中正好存放着所需的页表,则称为TLB命中(TLBHit)接下来CPU再依次看TLB中页表所对应的物理内存地址中的数据是不是已经在一级、二级缓存里了,若没有则到内存中取相应r
好听全球资料 返回顶部