是先访问TLB(MMU)还是先访问Cache
来源:互联网 发布:淘宝1元秒杀攻略 编辑:程序博客网 时间:2024/04/30 05:20
TLB 用于缓存一部分标签页表条目。TLB可介于 CPU 和 CPU缓存之间,或在 CPU 缓存和主存之间,这取决于缓存使用的是物理寻址或是虚拟寻址。如果缓存是虚拟寻址,寻址请求将会直接从 CPU 传送给缓存,然后从缓存访问所需的 TLB 条目。如果缓存使用物理寻址,CPU 会先对每一个存储器操作进行 TLB 查寻,并且将取得的物理地址传送给缓存。两种方法各有优缺点。
采用物理寻址的缓存的一种常见优化,是并行的进行 TLB 查寻和缓存的访问。所有虚拟地址的较低比特(例如,在虚拟内存系统中具有 4KB 标签页时,虚拟地址中较低的那 12 比特)代表的是所请求的地址在分页内部的地址偏移量(页内地址),且这些比特不会在虚拟地址转换到物理地址的过程中发生改变。访问CPU缓存的过程包含两步:使用一条索引去寻找CPU缓存的数据存储区中的相应条目,然后比较找到的CPU缓存条目的相应标记。如果缓存是用虚实地址转译过程中不变的页内地址来索引组织起来的,则可并行地执行TLB上虚实地址的较高比特(即分页的页间地址/页号)的转换与CPU缓存的“索引”操作。然后,从 TLB 获得的的物理地址的页号会传送给CPU缓存。CPU缓存会对页号标记进行比较,以决定此次访问是寻中或是缺失。它也有可能并行的进行 TLB 查寻和CPU缓存访问,即使CPU缓存必须使用某些可能会在地址转译后发生改变的比特;参阅缓存条目的地址转译一节,以取得关于虚拟寻址下缓存和 TLB 的进一步细节。
采用物理寻址的缓存的一种常见优化,是并行的进行 TLB 查寻和缓存的访问。所有虚拟地址的较低比特(例如,在虚拟内存系统中具有 4KB 标签页时,虚拟地址中较低的那 12 比特)代表的是所请求的地址在分页内部的地址偏移量(页内地址),且这些比特不会在虚拟地址转换到物理地址的过程中发生改变。访问CPU缓存的过程包含两步:使用一条索引去寻找CPU缓存的数据存储区中的相应条目,然后比较找到的CPU缓存条目的相应标记。如果缓存是用虚实地址转译过程中不变的页内地址来索引组织起来的,则可并行地执行TLB上虚实地址的较高比特(即分页的页间地址/页号)的转换与CPU缓存的“索引”操作。然后,从 TLB 获得的的物理地址的页号会传送给CPU缓存。CPU缓存会对页号标记进行比较,以决定此次访问是寻中或是缺失。它也有可能并行的进行 TLB 查寻和CPU缓存访问,即使CPU缓存必须使用某些可能会在地址转译后发生改变的比特;参阅缓存条目的地址转译一节,以取得关于虚拟寻址下缓存和 TLB 的进一步细节。
阅读全文
0 0
- 是先访问TLB(MMU)还是先访问Cache
- MMU和cache详解(TLB机制)
- MMU和cache详解(TLB机制)
- MMU、Cache、TLB、流水线
- MMU、Cache、TLB 的作用
- MMU、Cache、TLB 的作用
- 虚拟内存,MMU/TLB,PAGE,Cache
- MMU、Cache、TLB 的作用
- MMU(TLB)与Cache的工作方式
- Package是先分层还是先分模块
- 是太阳先升起 还是意外先来临
- 是先操作数据还是先记日志?
- 是先赚取暴利,还是细水长流
- 自己学驱动14——内存管理单元MMU(内存访问权限检查和TLB)
- 虚拟内存,MMU/TLB,PAGE,Cache之间关系
- MMU, TLB, Cache的作用(May, 14)
- 先懂事还是先上网?
- 先rollback还是先messagebox
- Java与Mysql数据库零基础开篇
- ARM linux内核启动时几个关键地址
- PIC(与位置无关代码)在u-boot上的实现
- 位置无关(PIC)代码原理剖析
- vmlinux.lds.s文件分析
- 是先访问TLB(MMU)还是先访问Cache
- What are legacy interrupts?
- Device Tree说明
- linux内存布局及页面映射(x86架构!与arm在某些内存使用上有差异)
- arm linux 内存分布总结
- source insight 加入arm汇编文件
- Redis哨兵架构的相关基础知识的讲解
- GNU ARM汇编伪操作(Directives) 命令集
- 操作影响cpsr的条件码的指令(teq等),与影响关系