地址翻译主要包括两个阶段:一个是虚实地址转换,另一个是存取数据。

慢表(Page):放在主存中的页表,页表只能存放在主存中。

快表(TLB):放在告诉缓冲存储器的页表项。


一、虚实地址转换


(1)根据虚拟地址的 TLB 标记索引(若采用全相联映射,则没有索引)TLB 中是否有对应的页表项

  1. 若存在对应的页表项,且有效位(即装入位)为1,则将页表项中的实页号和页内地址拼接,得到实地址
  2. 若存在对应的页表项,但有效位(即装入位)为0,则页面不在主存中,产生缺页中断,需要将目标页面调入内存再由CPU重新访问
  3. 若不存在对应的页表项,则进入步骤(2)

(2)根据 虚拟页号内存中的页表 是否有对应的页表项

  1. 若存在对应的页表项,且有效位(即装入位)为1,则将页表项中的实页号和页内地址拼接,得到实地址
  2. 若存在对应的页表项,但有效位(即装入位)为0,则页面不在主存中,产生缺页中断,需要将目标页面调入内存再由CPU重新访问
  3. 若不存在对应的页表项,则产生错误

二、存取数据


(1)根据实地址的 Cache标记索引(若采用全相联映射,则没有索引)Cache 中是否有对应的数据

  1. 若有效位为1,可知该块在 Cache 中,根据偏移量(块内地址)可以找到对应的数据
  2. 若有效位为0,则该块不在 Cache 中,进入步骤(2)

(2)根据实地址的 物理页号内存 中是否有对应的数据

  1. 根据 页内偏移 一定可以找到对应的数据

三、实例


题目

设某系统满足以下条件:

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

TLB、页表、 Cache内容如 表3.2、表3.3 及 表3.4 所示



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

步骤一

步骤二:虚拟地址 → 实地址

步骤三:存取数据

内存管理 —— 地址翻译相关推荐

  1. 263-虚拟内存的地址翻译

    虚拟内存的地址翻译 地址翻译 形式上来说,地址翻译是一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理地址空间(PAS)中元素之间的映射, MAP:VAS->PAS U ∅ 这里 下图 ...

  2. 万字长文,别再说你不懂Linux内存管理了(合辑),30 张图给你安排的明明白白...

    之前写了两篇详细分析 Linux 内存管理的文章,读者好评如潮.但由于是分开两篇来写,而这两篇内容其实是有很强关联的,有读者反馈没有看到另一篇读起来不够不连贯,为方便阅读这次特意把两篇整合在一起,看这 ...

  3. 别再说你不懂Linux内存管理了,10张图给你安排的明明白白!

    来自:后端技术学堂 过去的一周有点魔幻,有印象的有三个新闻:天猫总裁绯闻事件,蘑菇街裁员,不可能打工的周某也放出来了.三件事,两件和互联网行业相关,好像外面的世界很是精彩啊!吃瓜归吃瓜,学习还是不能落 ...

  4. Java应用程序中的内存泄漏和内存管理

    Java平台最突出的功能之一是其自动内存管理. 许多人错误地将此功能转换为Java中没有内存泄漏 . 但是,事实并非如此,我给人的印象是,现代Java框架和基于Java的平台,尤其是Android平台 ...

  5. linux c 将虚拟地址转化为物理地址_面试不懂 Linux 内存管理?我用 20 张图给你讲明白...

    微信搜索公众号「 后端技术学堂 」回复「1024」获取50本计算机电子书,回复「学习路线」获取超详细后端技术学习路线思维导图,文章每周持续更新,我们下期见! 大家好,我是柠檬哥. 分享编程学习,助力程 ...

  6. 从内存管理原理,窥探OS内存管理机制

    摘要:本文将从最简单的内存管理原理说起,带大家一起窥探OS的内存管理机制,由此熟悉底层的内存管理机制,写出高效的应用程序. 本文分享自华为云社区<探索OS的内存管理原理>,作者:元闰子 . ...

  7. linux每个进程的地址空间大小,别再说你不懂 Linux 内存管理了,10 张图给你安排的明明白白...

    原标题:别再说你不懂 Linux 内存管理了,10 张图给你安排的明明白白 转自:LemonCode 过去的一周有点魔幻,有印象的有三个新闻:天猫总裁绯闻事件,蘑菇街裁员,不可能打工的周某也放出来了. ...

  8. Linux内存管理图解

    前提约定:本文讨论技术内容前提,操作系统环境都是 x86架构的 32 位 Linux系统. 虚拟地址 即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知 ...

  9. 操作系统之内存管理:1、内存管理基础知识(指令工作原理、地址转化、程序运行过程)

    1.内存管理基础知识(指令工作原理.地址转化.程序运行过程) 思维导图 什么是内存? 指令的工作原理 装入模块的三种实现 绝对装入 可重定位装入 动态重定位 程序的运行过程 链接的三种方式 思维导图 ...

最新文章

  1. ORA-12154:TNS:无法解析指定的连接标识符
  2. 、简述global关键字的作用_详解static inline关键字
  3. LeetCode LCP 22. 黑白方格画
  4. 组合数的和(java)
  5. 程序员顶尖和普通就是有5个区别!
  6. MFC - CStdioFile 读取txt文件UNICODE 中文异常
  7. 移动终端安全模块技术研究
  8. python数独解题器_python 数独解
  9. 安兔兔苹果html5排行榜,iPhone8Plus最强?9月安兔兔手机性能排行榜出炉
  10. linux修改键盘按键
  11. snidel 2014春夏新品 画册款切换材质连衣裙
  12. numpy中,矩阵的三种转置transpose、getT、getH的区别
  13. hdu 2222 AC 自动机 模版(数组实现)
  14. 海量数据处理问题汇总
  15. 智能工厂信息系统架构设计-WMS、ERP、MES
  16. 【万能搜索】万能DFS之全排列(一)——普通算法
  17. Android逆向之玩转Xposed模块以劫持登录为例(实战篇)
  18. alin的学习之路(数据库篇:二)(select查询,where条件查询,order by排序,单行函数,多行函数,group by分组)
  19. DXperience 711 代码问题
  20. 中国农村信用合作报:科技赋能 全面推进乡村振兴

热门文章

  1. CSDN上查看已关注的博客专栏
  2. MySQL盈利_个人网站如何盈利
  3. win7自带硬盘分区工具
  4. 构建企业私有云的最佳实践
  5. 字符设备驱动模板方式(linux驱动开发篇)
  6. Java开发者福音,阿里巴巴宣布连任Java全球管理组织席位!
  7. 【深入浅出 Yarn 架构与实现】1-2 搭建 Hadoop 源码阅读环境
  8. 2022年最火的网络歌曲在抖音上怎么把一首歌发完整
  9. UE4 打包 发布和补丁DLC总结
  10. ffmpeg命令报错: error while loading shared libraries: libavdevice.so.58: cannot open