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安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
随机推荐
- POJ1258:Agri-Net(最小生成树模板题)
http://poj.org/problem?id=1258 Description Farmer John has been elected mayor of his town! One of hi ...
- [LeetCode] 394. Decode String_Medium tag: stack 666
Given an encoded string, return it's decoded string. The encoding rule is: k[encoded_string], where ...
- windows下编译和安装boost库
boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...
- ambari集成impala
1.查看hdp版本,可在ambari-agent节点上查看 VERSION=`hdp-select status hadoop-client | sed 's/hadoop-client - \([0 ...
- Summary: Lowest Common Ancestor in a Binary Tree & Shortest Path In a Binary Tree
转自:Pavel's Blog Now let's say we want to find the LCA for nodes 4 and 9, we will need to traverse th ...
- Filter—过滤器
过滤器的作用是什么? 1.拦截传入的请求和传出的响应,能拿到请求和响应中的数据 2.监视,修改,或处理正在客户端和服务器之间交换的数据流 3.利用过滤器的执行时机,实现Web程序的预处理,和后期的处 ...
- webpack 3 & React 的配置 。
今天真是难过的一天
- AO中的空间关系
名词解释: Boundary(边界): 只有线和面才有边界.面的边界是指组成面的框架线:线的边界是指线的二个端点(即起点和终点,不包括中间部分的节点):点没有边界. Interior(内部): 除去边 ...
- python+Django框架运用(二)
Django应用 与 模板 应用就是网站中的一个独立的程序模块,在Django 中,主目录一般不处理用户的具体请求, 主目录主要做的是项目的初始化和设置,以及请求的分发. 创建应用 1. 创建应用命令 ...
- 使用 JsPlumb 绘制拓扑图的通用方法
摘要: 实现 JsPlumb 绘制拓扑图的通用方法. 只要服务端返回一个符合指定格式的数据结构,就可以绘制相应的拓扑图. 难度: 中级 示例工程见: http://download.csdn.net ...