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安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
随机推荐
- [py]面向对象图解assignment
python的chained assignment 在python中 a is b is c 等价于 a is b and b is c 所以,猜猜 False is False is False # ...
- (转)ElasticSearch Java Api-检索索引库
上篇博客记录了如何用java调用api把数据写入索引,这次记录下如何搜索. 一.准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "gi ...
- c++中的构造(包括移动),赋值(包括移动),析构详解
这五种操作:构造(包括移动),赋值(包括移动),析构其实就是定义了对一个对象进行构造,赋值,析构时的行为.理解这些行为并不复杂,复杂的是理解在继承下这些行为的表现.需要注意的是他们并不会被继承(传统意 ...
- 多项式函数插值:多项式形式函数求值的Horner嵌套算法
设代数式序列 $q_1(t), q_2(t), ..., q_{n-1}(t)$ ,由它们生成的多项式形式的表达式(不一定是多项式): $$p(t)=x_1+x_2q_1(t)+...x_nq_1(t ...
- VMware coding Challenge:Date of Weekday
这道题再次证明了这种细节的题目,画个图容易搞清楚 import java.util.Scanner; public class Solution2 { static int DateOfWeekday ...
- YUV编码格式
YUV是被欧洲电视系统采用的一种颜色编码方法.在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄像机取像,然后把取 得的彩色图像信号经过分色,分别放大校正后得到RGB,在经过矩阵变换电路,得到 ...
- Instruments(性能调优 12.3)
Instruments Instruments是Xcode套件中没有被充分利用的一个工具.很多iOS开发者从没用过Instruments,或者只是用Leaks工具检测循环引用.实际上有很多Instru ...
- Java设计模式应用——观察者模式
告警结果产生后,可能需要发送短信,邮件,故障管理系统.这些转发操作不应当影响告警生成入库,并且类似事件可能根据不同场景,客户习惯不同,此时,使用观察者模式则可以很好的适应上述场景. 观察者模式应当包括 ...
- 循环ajax请求问题
项目开发过程碰到过这种需求:需要循环发送ajax请求,请求参数和循环索引有关.第一次实现的时候用了类似下面的方法,结果发现发送到后端的参数数据都是最后一次循环的索引 for(var i=0; i< ...
- P4180 【模板】严格次小生成树[BJWC2010]
P4180 [模板]严格次小生成树[BJWC2010] 倍增(LCA)+最小生成树 施工队挖断学校光缆导致断网1天(大雾) 考虑直接枚举不在最小生成树上的边.但是边权可能与最小生成树上的边相等,这样删 ...