具有快表的地址变换机构

news2024/11/27 16:30:49

1.快表(TLB)

快表,又称联想寄存器(TLB,translation lookaside buffer),
是一种访问速度比内存快很多的高速缓存(TLB不是内存! ),
用来存放最近访问的页表项的副本,可以加速地址变换的速度。
与此对应,内存中的页表常称为慢表。

在这里插入图片描述

访问快表,慢表的过程:
在这里插入图片描述

2.引入快表后,地址的变换过程

  1. CPU给出逻辑地址,由某个硬件算得页号、页内偏移量,将页号与快表中的所有页号进行比较。
  2. 如果找到匹配的页号,说明要访问的页表项在快表中有副本,则直接从中取出该页对应的内存块号,再将内存块号与页内偏移量拼接形成物理地址,最后,访问该物理地址对应的内存单元。
  3. 因此,若快表命中,则访问某个逻辑地址仅需一次访存即可。
  4. 如果没有找到匹配的页号,则需要访问内存中的页表,找到对应页表项,得到页面存放的内存块号,再将内存块号与页内偏移量拼接形成物理地址,最后,访问该物理地址对应的内存单元。
  5. 因此,若快表未命中,则访问某个逻辑地址需要两次访存(注意:在找到页表项后,应同时将其存入快表,以便后面可能的再次访问。但若快表已满,则必须按照一定的算法对旧的页表项进行替换)

由于查询快表的速度比查询页表的速度快很多,因此只要快表命中,就可以节省很多时间。
因为局部性原理,一般来说快表的命中率可以达到90%以上。

1.例题

某系统使用基本分页存储管理,并采用了具有快表的地址变换机构。
访问一次快表耗时1us,访问一次内存耗时100us。若快表的命中率为90%,那么访问一个逻辑地址的平均耗时是多少?
( 1 + 100 ) ∗ 0.9 + ( 1 + 100 + 100 ) ∗ 0.1 = 111 u s (1+100)* 0.9+(1+100+100)*0.1=111 us (1+100)0.9+(1+100+100)0.1=111us
有的系统支持快表和慢表同时查找,如果是这样,平均耗时应该是 ( 1 + 100 ) ∗ 0.9 + ( 100 + 100 ) ∗ 0.1 = 110.9 u s (1+100)*0.9 +(100+100)*0.1=110.9 us (1+100)0.9+(100+100)0.1=110.9us
若未采用快表机制,则访问一个逻辑地址需要 100 + 100 = 200 u s 100+100 = 200us 100+100=200us

在这里插入图片描述

3.局部性原理

1.时间局部性:

如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;
如果某个数据被访问过,不久之后该数据很可能再次被访问。(因为程序中存在大量的循环)

2.空间局部性:

一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很有可能被访问。
(因为很多数据在内存中都是连续存放的)

在基本地址变换机构中,每次要访问一个逻辑地址,都需要查询内存中的页表
由于局部性原理,可能连续很多次查到的都是同一个页表项。

在这里插入图片描述

TLB和普通Cache的区别:TLB中只有页表项的副本,而普通Cache中可能会有其他各种数据的副本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】JDK动态代理实现原理

代理模式 代理模式一般包含三个角色: Subject:主题对象,一般是一个接口,定义一些业务相关的基本方法。RealSubject:具体的主题对象实现类,它会实现Subject接口中的方法。Proxy:代理对象&#x…

使用CSS圆锥渐变创建背景图案

本文翻译自 How to create background pattern using CSS & conic-gradient,作者: Temani Afif, 略有删改。 拥有一个好的背景图案可以使你的网站设计与众不同。多亏了CSS渐变,我们可以使用几行代码创建花哨炫酷的图案。在这篇…

品牌被侵权也可以免费维权了

构成品牌侵权的理由一般有,商标侵权、专利侵权、著作权侵权等,当这些侵权链接持续存在,必然会影响品牌声誉和利益,同时不利于品牌和谐健康的渠道环境构建,低价、假货、窜货也可算作侵权,那何种侵权可以免费…

抖音热搜榜上榜策略

热点事件是抖音热搜榜的常客,要想登上热搜榜,首先要把握住热点,抢占先机。关注时事新闻、娱乐圈动态、社会热点等,结合自己的短视频内容,迅速制作出相关的短视频,以便在话题讨论初期就吸引用户的关注。同时…

获取时间Calendar类(LocalDateTime、LocalDate、LocalTime)

1.Calendar 是一个抽象类,并且构造器是private 2.我们只能通过getInstance()来获取实例 3.里面包含了大量的字段和方法提供给程序员 4. Calendar 没有提供对应的格式化的类,因此需要程序员自己组合来输出(灵活) 5.如果我们想要使用24小时制 Calendar.Hou…

二十五、【色调调整基础】

文章目录 1、亮度/对比度a、亮度b、对比度 2、曝光度3、阈值4、色阶5、反相6、黑白7、渐变映射 1、亮度/对比度 a、亮度 亮度是指画面的明亮程度 b、对比度 对比度指的是一幅图像中,明暗区域最亮和最暗之间不同亮度层级的测量,如下图所示&#xff0…

递归最小二乘法RLS

参考:RLS递归最小二乘法(Recursive Least Squares)_hymwgk的博客-CSDN博客

Springboot3 + knife4j(springdoc) 框架整合

前言 kinfe4j文档地址&#xff1a;https://doc.xiaominfo.com/docs/quick-start springdoc文档地址&#xff1a;https://springdoc.org/#demos 原本使用的是springfox&#xff0c;自Springboot3开始&#xff0c;knife4j引入了springdoc。 Maven引入 <dependency><…

无线设备的天线怎么安装最好?

天线作为无线传输过程中一个必不可少的配件&#xff0c;因此天线的安装和选型对于无线传输的稳定性发挥着至关重要的作用。本文将介绍影响天线安装对于无线通信效果的影响。 一、天线的工作原理 天线是一种能量变换器&#xff0c;它把传输线上传播的导行波&#xff0c;变换成在…

有哪些免费的数据恢复软件?EasyRecovery免费版下载

EasyRecovery作为一款专业的数据电脑恢复软件&#xff0c;它能够轻松搞定数据恢复&#xff0c;恢复丢失和删除的文件&#xff0c;支持电脑、相机、移动硬盘、U盘、SD卡、内存卡、光盘、本地电子邮件和 RAID 磁盘阵列等各类存储设备的数据恢复。这个新版本功能更加强大。目前的最…

54 完全平方数

完全平方数 理解&#xff1a;dp[i] 1 min ⁡ j [ 1 , i ] d p [ i − j 2 ] 1 {\min}_{j[1, \sqrt{i}]}dp[i-j^2] 1minj[1,i ​]​dp[i−j2] (不是贪心)题解1 DP 给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数是一个整数&#xff0c;其值…

信号频谱分析与功率谱密度

当我们涉及无线通信、信号处理和电子设备时&#xff0c;信号频谱分析与功率谱密度是两个至关重要的概念。它们帮助我们理解信号的特性、噪声和频率分布&#xff0c;从而优化通信系统、设计滤波器以及进行故障诊断。本文将初步探讨信号频谱分析与功率谱密度&#xff0c;一起理解…

StarRC:版本陈旧引发的多corner提取RC失败

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 运行StarRC提取多corner RC时会遇到提取失败的情况&#xff0c;当分次提取各个corner RC时却成功了&#xff0c;这种时候优先考虑nxtgrd版本陈旧的情况。 debug方法也简单&…

理解LoadRunner,基于此工具进行后端性能测试的详细过程(下)

5、录制并增强虚拟用户脚本 从整体角度看&#xff0c;用LoadRunner 开发虚拟用户脚本主要包括下面四步骤&#xff1a; 识别测试应用使用的协议 录制脚本 完善录制得到的脚本 验证脚本的正确性 识别被测应用使用的协议 如果明确知道了被测系统所采用的协议&#xff0c;可…

java小区物业水电费管理系统springboot+vue

智能小区管理系统被人们投放于现在的生活中进行使用&#xff0c;该款管理类软件就可以让管理人员处理信息的时间介于十几秒之间。在这十几秒内就能完成信息的编辑等操作。有了这样的管理软件&#xff0c;智能小区管理信息的管理就离无纸化办公的目标更贴近了。 这次开发的智能小…

RFID智能制造应用:助力企业提升制造效率!

随着企业间竞争加剧&#xff0c;如何提升企业生产效率&#xff0c;降低成本成为不少制造企业持续追求的目标。利用智能制造中的RFID设备&#xff0c;可以对企业入库、盘点、生产、出库等流程进行监控&#xff0c;本文将探讨智能制造中的RFID设备如何帮助企业提升制造效率&#…

Maven打包知识点

一.前言 今天在工作中需要给测试同学提供一个jar包&#xff0c;里面包含了pom里面得外部依赖&#xff0c;我依旧按照往常得方式进行打包 二.外部依赖变成jar包里面的class 发现打的jar包里面并没有外部依赖。 直接上代码 <plugins><plugin><artifactId>ma…

如何实现前端数据持久化(LocalStorage、IndexedDB等)?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

TIA博途软件中如何设置在程序中自动显示变量的注释信息?

TIA博途软件中如何设置在程序中自动显示变量的注释信息? 本例以TIA博途V15为例进行举例说明 如下图所示,新建一个项目后,打开PLC变量表,这里我选择几个变量进行举例说明,给这几个变量添加注释信息, 打开OB1,编写一句简单的程序,如下图所示,可以看到此时变量只显示名称…

第三章 运算符与表达式Pro

三、运算符与表达式 C语言一共有34个运算符&#xff0c;记这些运算符时从以下几个方面记&#xff1a; 运算符的书写形式&#xff1b; 运算符的运算规则;(两个整数相除,结果为整数) 所能进行的操作数&#xff1b;&#xff08;取余运算符%&#xff0c;操作数只能是整数&#xff0…