地址翻译过程(TLB-->页表-->Cache-->主存-->外存)

目录

1.地址结构

2.查找快表或页表:从虚拟地址--->物理地址

3.通过物理地址访问数据


设某系统满足以下条件:
•有一个TLB与一个data Cache
•存储器以字节为编址单位
•虚拟地址 14位
•物理地址 12位
•页面大小为 64B
•TLB 为四路组相联,共有16个条目
•data Cache 是物理寻址、直接映射的,行大小为4B,共有16 组

写出访问地址为 0x03d4,0x00f1和0x0229的过程。

1.地址结构

因为本系统以字节编址,页面大小为64B,则页内偏移地址为log_2^{64B/1B}=6位,所以虚拟页号为14-6=8位,物理页号为12-6=6位。因为TLB为四路组相联,共有16个条目,则TLB共有 16/4=4组,因此虚拟页号中低log_2^4=2位就为组索引,高6位为 TLB 标记。

虚拟地址结构:

Cache行大小为4B,物理地址中低log_2^4=2位为块偏移,Cache 共有16组,可知接下来log_2^{16}=4位为组索引(Cache索引),剩下高6位作为标记。

物理地址结构:

2.查找快表或页表:从虚拟地址--->物理地址

•将十六进制的虚拟地址转化为二进制形式"0x03d4","0x00f1"和"0x0229":

•"0x03d4"

虚拟页号:00001111,页内偏移:010100,TLB标记:000011,组索引:11

对于0x03d4,组索引为3(11,2^0+2^1=3),TLB标记为0x03,查TLB,第3组中正好有标记为03的项,有效位为1,可知页面在主存中,对应的物理页号为0d(001101),再拼接页内地址010100(页内偏移),可得物理地址为0x354(001101010100)。

:物理地址的物理页号和页内地址有多少位都是看物理地址结构的,所以事先要把虚拟地址结构和物理地址结构都分析好。

•"0x00f1"

虚拟页号:00000011,页内偏移:110001,TLB标记:000000,组索引:11

对于0x00f1 ,组索引为3,TLB标记为0x00,查TLB,第3组中没有标记为00的项,再去找页表,虚拟页号为0x03(二进制00000011,十六进制0x03),页表第3行的有效位为1,可知页面在主存中,物理页号为02(000010),再拼接页内地址110001,可得物理地址为0x0b1(000010110001)。

•"0x0229"

虚拟页号:00001000,页内偏移:101001,TLB标记:000010,组索引:00

对于0x0229,组索引为0,TLB标记为0x02,查TLB,第0组中没有标记为02的项,再去找页表,虚拟页号为0x08(二进制00001000,十六进制:0x08),页表第8行的有效位为0,页面不在主存中,产生缺页中断。

3.通过物理地址访问数据

找出在主存中的页面的物理地址后,就要通过物理地址访问数据,接下来要找该物理地址的内容在不在 Cache 中,在主存中的页面物理地址如下:刚刚算出来的,“0x03d4”对应物理地址“0x354”,“0x00f1”对应"0x0b1"。

•"0x354"

物理页号(Cache标记):001101,页内偏移:010100,Cache索引:0101,偏移:00

对于0x354,Cache索引为5(0101,2^0+2^2=5),Cache标记为0x0d(001101),对照Cache中索引为5的行,标记正好为0d,有效位为1,可知该块在Cache中,偏移0(00),即块0,可得虚拟地址 0x03d4的内容为36H

•"0x0b1"

物理页号(Cache标记):000010,页内偏移:110001,Cache索引:1100,偏移:01

对于0x0b1,Cache索引为c(1100,2^2+2^3=12,十六进制:c),Cache标记为0x02,对照Cache中索引为c的行,有效位为0,可知该块不在 Cache 中,则要去主存中查找物理页号为2、偏移为 0x31(11 0001,"11"二进制为"3","0001"二进制为"1")的内容。


以上的例子说明了地址翻译的过程,即从快表TLB-->页表-->Cache和主存-->外存。

从虚拟地址到物理地址:先找TLB,TLB中没有再找页表。

通过物理地址访问数据:先找Cache,Cache中没有记录,则到主存中找。

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

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

相关文章

消防灭火设备软体水枪的使用方法

软体水枪是一款专为消防、应急救援等领域设计的灭火工具。其内胆采用大容量设计,能够储存足够的灭火剂,满足长时间、大范围的灭火需求。软体水枪是一种高效、便捷的灭火工具。它利用压力和流体力学原理,通过扣动扳机将储水箱中的水以高速喷射…

《金山 WPS AI 2.0:重塑办公未来的智能引擎》

AITOP100平台获悉,在 2024 世界人工智能大会这一科技盛宴上,金山办公以其前瞻性的视野和创新的技术,正式发布了 WPS AI 2.0,犹如一颗璀璨的星辰,照亮了智能办公的新征程,同时首次公开的金山政务办公模型 1.…

PyTorch | 加速模型训练的妙招

引言 提升机器学习模型的训练速度是每位机器学习工程师的共同追求。训练速度的提升意味着实验周期的缩短,进而加速产品的迭代过程。同时,这也表示在进行单一模型训练时,所需的资源将会减少。简而言之,我们追求的是效率。 熟悉 PyT…

SpringSecurity框架【认证】

目录 一. 快速入门 二. 认证 2.1 登陆校验流程 2.2 原理初探 2.3 解决问题 2.3.1 思路分析 2.3.2 准备工作 2.3.3 实现 2.3.3.1 数据库校验用户 2.3.3.2 密码加密存储 2.3.3.3 登录接口 2.3.3.4 认证过滤器 2.3.3.5 退出登录 Spring Security是Spring家族中的一个…

机器学习(V)--无监督学习(三)EM算法

EM算法 极大似然估计 极大似然估计:(maximum likelihood estimate, MLE) 是一种常用的模型参数估计方法。它假设观测样本出现的概率最大,也即样本联合概率(也称似然函数)取得最大值。 为求解方便,对样本联合概率取对…

华为HCIP Datacom H12-821 卷36

1.单选题 在PIM- SM中,以下关于RP 的描述,错误的是哪一选项? A、在PIM-SM中,组播数据流量不一定必须经过RP的转发。 B、对于一个组播组来说,可以同时有多个RP地址,提升网络可靠性。 C、组播网络中,可以…

【BUG】已解决:JsonMappingException

已解决:JsonMappingException 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 概述: 没有getter方法的实体的序列化,并解决Jackson引发的JsonMappingException异常。 默认情况下,Jackson 2只会处理公有字段或具有公有get…

Renesas R7FA8D1BH (Cortex®-M85) 控制DS18B20

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 FSP和KEIL配置 2.1 硬件接口电路 2.2 FSB配置DS18B20的IO 2.3 生成Keil工程文件 3 DS18B20驱动代码 3.1 DS18B20介绍 3.2 DS18B20驱动实现 3.2.1 IO状态定义 3.2.2 读IO状态函数 3.2.3…

OpenCV:python图像旋转,cv2.getRotationMatrix2D 和 cv2.warpAffine 函数

前言 仅供个人学习用,如果对各位朋友有参考价值,给个赞或者收藏吧 ^_^ 一. cv2.getRotationMatrix2D(center, angle, scale) 1.1 参数说明 parameters center:旋转中心坐标,是一个元组参数(col, row) angle:旋转角度…

Go-知识测试-模糊测试

Go-知识测试-模糊测试 1. 定义2. 例子3. 数据结构4. tesing.F.Add5. 模糊测试的执行6. testing.InternalFuzzTarget7. testing.runFuzzing8. testing.fRunner9. FuzzXyz10. RunFuzzWorker11. CoordinateFuzzing12. 总结 建议先看:https://blog.csdn.net/a1879272183…

一文入门【NestJs】Providers

Nest学习系列 ✈️一文入门【NestJS】 ✈️一文入门【NestJs】Controllers 控制器 🚩 前言 在NestJS的世界里,理解“Providers”是构建健壮、可维护的后端服务的关键。NestJS,作为Node.js的一个现代框架,采用了Angular的一些核…

Redis的安装配置及IDEA中使用

目录 一、安装redis,配置redis.conf 1.安装gcc 2.将redis的压缩包放到指定位置解压 [如下面放在 /opt 目录下] 3.编译安装 4.配置redis.conf文件 5.开机自启 二、解决虚拟机本地可以连接redis但是主机不能连接redis 1.虚拟机网络适配器网络连接设置为桥接模式…

VSCode上通过C++实现单例模式

单例模式实际上就是为了确保一个类最多只有一个实例,并且在程序的任何地方都可以访问这个实例,也就是提供一个全局访问点,单例对象不需要手动释放,交给系统来释放就可以了,单例模式的设计初衷就是为了在整个应用程序的…

vue 下拉菜单树形结构——vue-treeselect的组件使用

参考: https://www.cnblogs.com/syjtiramisu/p/17672866.htmlhttps://www.cnblogs.com/syjtiramisu/p/17672866.html vue-treeselect的使用 - 简书下载依赖 使用https://www.jianshu.com/p/459550e1477d 实际项目使用:

uni-app iOS上架相关App store App store connect 云打包有次数限制

相册权限 uni-app云打包免费有次数 切换一个账号继续

华为手机联系人不见了怎么恢复?3个解决方案

华为手机联系人列表就像是我们精心编织的社交网络之网。然而,有时,这张网可能会因为各种原因而意外破损,联系人信息消失得无影无踪,让我们陷入“人脉孤岛”的困境。华为手机联系人不见了怎么恢复?别担心,我…

构建高质量数据集与智能数据工程平台:播客AI Odyssey深度对话实录

对话整数智能联创和前IDEA研究员:构建高质量数据集与智能数据工程平台 - AI Odyssey | 小宇宙 - 听播客,上小宇宙 人工智能技术的日益深远发展,对人工智能的性能提升与技术迭代提出了新的要求。在大模型训练中,已有的研究和实践表…

【操作系统】进程管理——用信号量机制解决问题,以生产者-消费者问题为例(个人笔记)

学习日期:2024.7.10 内容摘要:利用信号量机制解决几个经典问题模型 目录 引言 问题模型 生产者-消费者问题(经典) 多生产者-多消费者问题 吸烟者问题 读者写者问题(难点) 哲学家进餐问题&#xff0…

解决POST请求中文乱码问题

解决POST请求中文乱码问题 1、乱码原因2、解决方法3、具体步骤 💖The Begin💖点点关注,收藏不迷路💖 在Web开发中,处理POST请求时经常遇到中文乱码问题,这主要是由于服务器在接收到POST请求的数据后&#x…

BUG解决:postman可以请求成功,但Python requests请求报403

目录 问题背景 问题定位 问题解决 问题背景 使用Python的requests库对接物联数据的接口之前一直正常运行,昨天突然请求不通了,通过进一步验证发现凡是使用代码调用接口就不通,而使用postman就能调通,请求参数啥的都没变。 接口…