Intel微处理器学习笔记(四) 内存分页
内存分页机制(memory paging mechanism)是从386开始的。线性地址通过分页机制透明转换为物理地址。
从这里知道:1. 如果不分页,则线性地址等于物理地址;2. 如果分页,则线性地址不等于物理地址。
线性地址(linear address)为程序产生的地址;
物理地址(physical address)为程序访问的实际存储器地址。
与分页机制相关的寄存器有CR0、CR1、CR2、CR3和CR4,且都是32位寄存器。
图一 控制寄存器
1. CR0的PG位为1时,分页启动。否则,线性地址即物理地址。在实模式和保护模式下分页机制都可工作。
2. CR3包括页目录基地址以及PCD位和PWT位。如果PCD为1,则PCD引脚在非分页总线周期变为逻辑1,即允许外部硬件控制二级高级缓冲存储器。PWT位也在非分页总线周期作用在PWT引脚上,用于控制系统中的通写(write-through)高速缓冲存储器。页目录基地址用于为“页转换部件”寻址页目录。页大小一般为4KB。页目录包含1024个目录项,每项长4B。每个页目录项寻址一个包含1024项的页表。
线性地址 = 页目录项(page directory entry) + 页表项(page table entry) + 存储器页偏移地址(page offset address)
图二 线性地址结构
图三 页目录或页表项结构
TLB(translation look-aside buffer,转换后背缓冲区)是一个高速缓冲存储器。在80486中,TLB保存了32个最近使用的页转换地址。一般指令和数据高速缓冲存储器各有一个TLB。
在系统中只有一个页目录,页目录包含1024个双字地址,最多可以寻址1024个页表。页目录和每个页表的长度均为4KB。如果为4GB的内存分页,系统会为页目录分配4KB的存储空间,会为1024个页表分配1024*4KB=4MB的存储空间。
图四 分页机制示意图
Intel微处理器学习笔记(四) 内存分页的更多相关文章
- Intel微处理器学习笔记(三) 不可见寄存器
参考资料: 1. http://blog.chinaunix.net/uid-20797642-id-2495244.html 2. http://www.techbulo.com/708.htm ...
- Intel微处理器学习笔记(一) 实模式内存结构
图一 奔腾概念示意图 存储系统一般划分为三个主要部分:TPA(transient program area),System Area和XMS(extended memory system). 图二 内 ...
- Intel微处理器学习笔记(五) 中断
▼ 中断是一个由硬件激发的过程,它中断当前正在执行的任何程序. ▼ 在Intel系列微处理器中,包括INTR和NMI(Non Maskable Interrupt)两个申请中断的引脚和一个响应INTR ...
- Intel微处理器学习笔记(二) 三种模式
三种模式:实模式.保护模式和平展模式. 实模式存储器(DOS存储器)位于00000H~FFFFFH,共1M空间(任何型号微处理器都支持). 保护模式存储器(Windows存储器)可位于整个保护存储系统 ...
- 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
- XV6学习笔记(2) :内存管理
XV6学习笔记(2) :内存管理 在学习笔记1中,完成了对于pc启动和加载的过程.目前已经可以开始在c语言代码中运行了,而当前已经开启了分页模式,不过是两个4mb的大的内存页,而没有开启小的内存页.接 ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
随机推荐
- Word转换为markdown
Word转换为markdown 首先你的电脑要有office word 1 安装pandoc https://github.com/jgm/pandoc/releases,可以找到最新的pando ...
- NSLog打印NSInteger老是有warning
zSpecifies that a following [...] conversion specifier applies to a size_t or the corresponding sign ...
- 软件包管理:rpm命令管理-校验和文件提取
校验主要用于判断文件是否做了更改 修改标志: 会用-V,会看输出结果即可. 当有误操作,比如删了某一个文件,只需知道他属于哪一个rpm包,可用提取找回覆盖就行.并不把整个rpm包安装,而是提取其中的某 ...
- PHP查询MySQL大量数据的内存占用分析
这篇文章主要是从原理, 手册和源码分析在PHP中查询MySQL返回大量结果时, 内存占用的问题, 同时对使用MySQL C API也有涉及. 昨天, 有同事在PHP讨论群里提到, 他做的一个项目由于M ...
- 强大的chrome(1)以acfun为例抓取视频
chrome很强大,很强大,很强大. 想要了解他的强大呢,就先要掌握一些基本的chrome命令. 1. chrome://flags 可用来启用或者关闭某些chrome的体验特性 2. chr ...
- 复制控件出错--提示XX控件不存在
有时候比较喜欢复制粘贴,但是结果就是,经常出现XX控件找不到,或者不存在之类的话~~ 错误如下: 在相当郁闷的时候,尝试了一种很土土的方法,就是直接新建一个同名新页面,把前台和后台的代码复制进去~~ ...
- JavaScript位运算符
位运算符是在数字底层(即表示数字的 32 个数位)进行操作的. 重温整数 ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数).在 ECMAScript ...
- 容易遗忘的JS知识点整理
1.hasOwnProperty相关 为了判断一个对象是否包含自定义属性而不是原型链上的属性,我们需要使用继承自 Object.prototype 的 hasOwnProperty方法.hasOwnP ...
- centos 网卡名称修改
在centos6.4之前,如果6.2,6.3安装后网卡名称都是em开始,如果想用eth0这种名称,或者是自定义名称,可以参照以下来实施. 第一步:修改/boot/grub/grub.conf增加一个 ...
- SpringBoot——定时任务+WebSocket(问题)
开发环境:win7 + idea2018 + jdk 1.8 + springboot 2.x 记一次出现问题,我在项目中先集成了websocket环境,并且测试通过,之后想要模拟实时推送的效果,虽然 ...