地址翻译过程(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中没有记录,则到主存中找。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式工程师从0开始,到底该学什么,怎么学?

作为嵌入式工程师,从零开始学习需要掌握以下几个关键方面。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学,敲个22就可以免费获得。 基…

【高中数学/指数函数、对数函数、正弦函数】求 y=2^x+x,y=log2_x+x,y=2*sinX+x 的零点位置大小关系

【问题】 已知函数f(x)2^xx,g(x)log2_xx,h(x)2*sinXx 的零点分别是a,b,c,则a、b、c的大小顺序是? 【解答】 粗览三个函数,h(x)2*sinXx的零点是最好解决的,明显x0时h(x)0,因此c在原点的位置; 对于f(x)2^xx&#xff…

【C++BFS】690. 员工的重要性

本文涉及知识点 CBFS算法 LeetCode690. 员工的重要性 你有一个保存员工信息的数据结构,它包含了员工唯一的 id ,重要度和直系下属的 id 。 给定一个员工数组 employees,其中: employees[i].id 是第 i 个员工的 ID。 employees[…

怎样在 C 语言中实现堆排序?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 【https://dwz.mosong.cc/cyyjc】通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代&…

人类大脑的计算与机器的类脑计算

人类大脑的计算基本原理涉及到神经元的基本工作方式、神经网络的结构和连接模式、信息传递的方式、学习和记忆的机制等多个层面的复杂互动,这些原理的深入理解不仅有助于神经科学的发展,还为人工智能领域的发展提供了重要的启示和指导。人类大脑计算基本…

按下快门前的算法——对焦

对焦算法可以分为测距式,相位式,反差式。 其中测距式是通过激光,(TOF,Time of Flight)等主动式地得知物距,然后对焦。更常用的是后两者。 反差式CDAF(Contrast Detection Auto Foc…

Lingo学习(二)——线性规划基础、矩阵工厂

一、线性规划基础 (一)方法 ① 一个线性规划中只含一个目标函数。(两个以上是多目标线性规划,Lingo无法直接解) ② 求目标函数的最大值或最小值分别用max …或min …来表示。 ③ 以!开头,以;结束的语句是注释语句; ④ 线性规划和非线性规划的本质…

Node.js如何在Windows安装?

文章目录 主要特点:使用场景:安装方法验证是否安装成功 Node.js 是一个开源、跨平台的JavaScript运行环境,由Ryan Dahl于2009年创建。它允许开发者在服务器端运行JavaScript代码。Node.js 基于Chrome V8 JavaScript引擎构建,其设计…

mobx学习笔记

mobx介绍 mobx是一个功能强大,上手容易的状态管理工具。MobX背后的哲学很简单:任何源自应用状态的东西都应该自动地获得。利用getter和setter来收集组件的数据依赖关系,从而在数据发生变化的时候精确知道哪些组件需要重绘。 mobx和redux的区别 mobx更…

【安全设备】APT攻击预警平台

一、什么是APT 高级持续性威胁(APT)是一种高度复杂和长期的网络攻击,旨在通过持续监视和访问特定目标来窃取敏感信息或进行其他恶意活动。这种攻击结合了多种先进的技术手段和社会工程学方法,以极高的隐蔽性实现长期潜伏和信息窃…

【排序算法】计数排序

目录 一.基本思想 二.缺陷及优化 三.代码实现 四.特性总结 1.可以排序负数 2.适合范围集中的整数 3.时间复杂度:O(Nrange) 4.空间复杂度:O(range) 5.稳定性:稳定 一.基本思想 根据待排序数组a创建一个新的数组count,该数组…

无人机之遥控器保养

一、使用存放 1、避免让遥控器受到强烈的震动或从高处跌落,以免影响内部结构的精度; 2、遥控器在使用完后,需要将天线收拢,避免折断,养成定期检查天线的习惯; 3、定期检查遥控器按键有无裂纹、畸变、松旷…

代码随想录算法训练营Day36||动态规划part04

494.目标和:本题的方法主要用来解决------装满容量为x的背包,有几种方法。 可以先理解二维数组的思路:感觉b站一个评论写得很清晰,借用一下。 这题最难理解的地方在于如何初始化数组,为什么dp[0]1;我试图自…

Visual Studio 2019 (VS2019) 中使用 CMake 配置 OpenCV 库(快捷版)

2024.07.11 测试有效 最近需要用一下 opencv 处理图像,简单配置了一下Cmake下的 opencv 库。 没有编译 opencv ,也不知道他们为什么要自己编译 opencv 。 一、下载并安装 OpenCV 1.前往 OpenCV 官方网站 下载适用于您的系统的 OpenCV 安装包。 2.点击直接…

商品分类左右联动

1、先看效果 2、以hooks方法处理&#xff0c;方便复制使用&#xff0c;见代码 Good.vue文件 <script setup lang"ts" name"goods">import {onMounted, ref, nextTick} from "vue";import useProductScroll from "/utils/hooks/useP…

记一次若依框架和Springboot常见报错的实战漏洞挖掘

目录 前言 本次测实战利用图​ 1.判段系统框架 2.登录页面功能点测试 2.1 弱口令 2.2 webpack泄露信息判断 2.3 未授权接口信息发现 3.进一步测试发现新的若依测试点 3.1 默认弱口令 3.2 历史漏洞 4.访问8080端口发现spring经典爆粗 4.1 druid弱口令 4.2 SwaggerU…

【JavaScript 报错】未捕获的类型错误:Uncaught TypeError

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、错误原因分析1. 调用不存在的方法2. 访问未定义的属性3. 数据类型不匹配4. 函数参数类型不匹配 二、解决方案1. 检查方法和属性是否存在2. 使用可选链操作符3. 数据类型验证4. 函数参数类型检查 三、实例讲解四、总结 在…

I 2U-Net:具有丰富信息交互的双路径 U-Net 用于医学图像分割| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 I 2U-Net: A dual-path U-Net with rich information interaction for medical image segmentation I 2U-Net&#xff1a;具有丰富信息交互的双路径 U-Net 用于医学图像分割 01 文献速递介绍 在计算机视觉领域&#xff0c;医学图像分割是一个主要挑战&#xff…

电脑录音如何操作?电脑麦克风声音一起录制,分享7款录音软件

电脑录音已经成为我们日常生活和工作中不可或缺的一部分。无论是录制会议、教学、音乐、网络直播、音源采集还是其他声音&#xff0c;电脑录音软件都为我们提供了极大的便利。本文将为大家介绍如何操作电脑录音&#xff0c;并分享七款录音软件&#xff0c;包括是否收费、具体操…

给后台写了一个优雅的自定义风格的数据日志上报页面

highlight: atelier-cave-dark 查看后台数据日志是非常常见的场景,经常看到后台的小伙伴从服务器日志复制一段json数据字符串,然后找一个JSON工具网页打开,在线JSON格式化校验。有的时候,一些业务需要展示mqtt或者socket的实时信息展示,如果不做任何修改直接展示一串字符…