地址翻译过程(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,一经查实,立即删除!

相关文章

Windows 10怎麼系統中修改IP地址-okeyproxy

本文將詳細介紹在Windows 10系統中修改IP地址的步驟,並提供一些創新性的技巧,幫助大家更好地管理網路設置。 IP地址分為動態IP和靜態IP兩種。動態IP由路由器或ISP(互聯網服務提供商)自動分配,靜態IP則是手動設置的固定…

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

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

tp计算距离,筛选0-10km距离内商家

$field_lat lat;// 数据库字段名 - 纬度 -90到90 $field_lng lng;// 数据库字段名 - 经度 -180到180 $lat $params[lat];// 数据库字段名 - 纬度 -90到90 $lng $params[lng];// 数据库字段名 - 经度 -180到180 //语句 $field "(6378.138 …

【数据结构】笔试面试中常用的数据结构操作

笔试面试中常用的数据结构操作 排序与查找 请编写一个C程序&#xff0c;实现冒泡排序。 #include <stdio.h> // 冒泡排序函数 void bubbleSort(int arr[], int n) {for (int i 0; i < n - 1; i) {for (int j 0; j < n - i - 1; j) {if (arr[j] > arr[j 1]…

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

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

【python学习】将两个 数组连接起来

在Python中&#xff0c;将两个数组&#xff08;或列表&#xff09;连接起来非常简单。对于Python的原生列表&#xff0c;你可以使用加号()操作符或者extend()方法。对于NumPy数组&#xff0c;你可以使用numpy.concatenate()函数或numpy.append()函数&#xff08;尽管numpy.appe…

Spring AOP 使用方式

ProxyFactory代理工厂提供了基于切面构造代理对象的能力&#xff0c;Spring框架结合IOC对此进行了一层封装以适应多种场景。封装后为用户提供了一套Spring风格的“API”(使用方式)。 1 xml配置方式 引入AOP的schema: <beans xmlns"http://www.springframework.org/sche…

PyTorch | 加速模型训练的妙招

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

padStart方法用来格式化数据

在别人写的代码中看到的padStart方法&#xff0c;没用过&#xff0c;浅浅记录一下~ padStart方法的使用 padStart是 字符串类型的方法&#xff0c;可以用来格式化字符串&#xff0c;在字符串添加指定的字符以达到指定的长度&#xff0c;例如&#xff1a;可以用来格式化日期 …

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家族中的一个…

Python爬虫并输出

1. Python爬虫并输出示例 下面是一个使用Python编写的简单网络爬虫示例&#xff0c;该爬虫将抓取某个网页&#xff08;例如&#xff0c;我们假设为https://example.com&#xff0c;但请注意实际使用时我们需要替换为一个真实且允许抓取的网站&#xff09;的标题&#xff08;Ti…

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

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

工作理念分享

上份工作的上级&#xff0c;分享他的工作理念&#xff0c;做个整理&#xff1a; 1 士气上要奋发向上有追求&#xff0c;最低限度当然是要恰饭&#xff0c;保证生活&#xff0c;最好是做一些事情&#xff0c;把钱挣了的同时也能有更多的收获。 2 公司为社会&#xff0c;用户创造…

华为HCIP Datacom H12-821 卷36

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

【BUG】已解决:JsonMappingException

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

vue 级联下拉框选择的思维

在原来的js的思维下&#xff0c;级联下拉框的选择往往是&#xff0c;先绑定一级下拉框的菜单&#xff0c;然后在该下拉框下onchange, 在onchange事件中获取当前选项&#xff0c;然后绑定二级下拉框的数据&#xff0c;以此类推…… 在vue框架下应该改变思维&#xff0c;首先设置…

经典再现,回顾常见排序算法之冒泡排序,附Java源码及优化改进实现

回顾一下排序算法&#xff0c;老酒装新瓶&#xff0c;给自己的技能点做个回放。 排序(Sorting) 是计算机程序设计中的一种重要操作&#xff0c;它的功能是将一个数据元素(或记录)的任意序列&#xff0c;重新排列成一个有序的序列&#xff0c;也可以理解为高矮个站队。 衡量排…

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 函数

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

Go-知识测试-模糊测试

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