分享

TLB 转换检测缓冲区

 Great2021 2021-10-26

基本概念

TLB:Translation lookaside buffer,即旁路转换缓冲,或称为 页表缓冲;里面存放的是一些 页表文件( 虚拟地址物理地址的转换表)。
又称为 快表技术。由于“ 页表”存储在 主存储器中,查询页表所付出的代价很大,由此产生了TLB。
X86保护模式下的 寻址方式:段式 逻辑地址—〉线形地址—〉页式地址;
页式地址=页面起始地址+页内 偏移地址
对应于 虚拟地址:叫page(页面);对应于 物理地址:叫frame( 页框);
X86体系的 系统内存里存放了两级 页表,第一级页表称为页目录,第二级称为页表。
TLB和CPU里的一级、二级 缓存之间不存在本质的区别,只不过前者 缓存页表数据,而后两个缓存实际数据。

内部组成

1:TLB在X86体系的CPU里的实际应用最早是从Intel的486CPU开始的,在X86体系的CPU里边,一般都设有如下4组TLB:
第一组:缓存一般 页表(4K字节页面)的指令页表缓存(Instruction-TLB);
第二组:缓存一般 页表(4K字节页面)的数据页表缓存(Data-TLB);
第三组:缓存大尺寸 页表(2M/4M字节页面)的指令页表缓存(Instruction-TLB);
第四组:缓存大尺寸 页表(2M/4M字节页面)的数据页表缓存(Data-TLB);
2:TLB命中和TLB失败
如果TLB中正好存放着所需的 页表,则称为TLB命中(TLB Hit);如果TLB中没有所需的页表,则称为TLB失败(TLB Miss)。
3: TLB条目数 即TLB里面可以存储的表项数目,一般也叫entry数。
4:TLB的联合方式
1〉全相联方式:Athlon XP
2〉组相联方式:P4
当CPU执行机构收到 应用程序发来的 虚拟地址后,首先到TLB中查找相应的 页表数据,如果TLB中正好存放着所需的 页表,则称为TLB命中(TLB Hit),接下来CPU再依次看TLB中页表所对应的 物理内存地址中的数据是不是已经在一级、二级缓存里了,若没有则到内存中取相应地址所存放的数据。既然说TLB是内存里存放的页表的 缓存,那么它里边存放的数据实际上和内存页表区的数据是一致的,在内存的页表区里,每一条记录虚拟页面和物理 页框对应关系的记录称之为一个页表条目(Entry),同样地,在TLB里边也缓存了同样大小的页表条目(Entry)。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多