控制寄存器,CPU缓存,PWT,PCD
文章目录
- 控制寄存器
- Cr0寄存器
- Cr2寄存器
- Cr4寄存器
- CPU缓存
- PWT:Page Write Through
- PCD:Page Cache Disabled
控制寄存器
控制寄存器用于控制和确定CPU的操作模式
Cr0 Cr1 Cr2 Cr3 Cr4
Cr1 保留
Cr3 页目录表基址(在10-10-12分页和2-9-9-12分页结构是不一样的)
Cr0寄存器
说明:
1.PE位:CR0的位0是启用保护标志
PE=1保护模式
PE=0实地址模式这个标志开启段级保护,而并没有启用分页机制。
若要启用分页机制,那么PE和PG标志都要置位
2.PG位:当设置该位时即开启了分页机制。在开启这个标志之前必须已经或者同时开启PE标志
PG=0且PE=0 处理器工作是在实地址模式下
PG=0且PE=1(目前这种操作系统还未出现)处理器工作在没有开启分页机制的保护模式下
PG=1且PE=0(这种情况不存在) 在PE没有开启的情况下,无法开启PG
PG=1且PE=1 处理器工作在开启了分页机制的保护模式下
3.WP位
WP:对于Intel 80486或以上的CPU,CR0的位16是写保护标志,当设置该标志时,处理器会禁止超级用户程序(例如特权级0的程序)向用户级只读页面执行操作:
当CPL<3的时候:
如果WP=0可以读写任意用户级物理页,只要线性地址有效
如果WP=1可以读取任意用户级物理页,但对于只读的物理页,则不能写
Cr2寄存器
说明:
当CPU访问某个无效页面时,会产生缺页异常,此时,CPU会将引起异常的线性地址存放在CR2中
(异常处理结束后,会往下继续执行,所以需要记录;如果异常处理程序通过判断,我们访问的这个页面是一个未分配的页面,那么会报异常,在何处的线性地址发生了错误(也就是读取了Cr2寄存器的值))
Cr4寄存器
PAE/PSE说明:
PAE=1是2-9-9-12分页
PAE=0是10-10-12分页
PSE(就是PS位的一个总开关):
PSE=1:
- 10-10-12分页情况下:
- PS=1 4M页
- PS=0 4K页
- 2-9-9-12分页情况下:
- PS=1 2M页
- PS=0 4K页
PSE=0:
- 10-10-12分页情况下:
- PS=1 4K页
- PS=0 4K页
- 2-9-9-12分页情况下:
- PS=1 4K页
- PS=0 4K页
CPU缓存
1.CPU缓存是位于CPU与物理内存之间的临时存储器,它的容量比内存小得多,但是交换速度却比内存要快得多
2.CPU缓存可以做的很大,有几K,几十K,几百K,甚至上M的也有
CPU缓存与TLB的区别:
TLB(线性地址和物理地址之间的关系):
线性地址<---------------->物理地址
CPU缓存(物理地址和内容的关系):
物理地址<---------------->内容
举例:当CPU读取某个物理页时,它就可以先查TLB,找到对应的物理地址,再查CPU缓存,找到对应的内容(CPU缓存大小决定了CPU的执行速度,缓存越大,速度越快)
关于PWT/PCD属性:
PWT:Page Write Through
PWT=1时,写Cache(缓存 )的时候同时也会将数据写入内存中
PWT=0时,往缓存中读写数据的时候只往缓存中写,什么时候缓存中的数据映射到内存中呢?由CPU缓存控制器来决定
PCD:Page Cache Disabled
PCD=1时,禁止某个页写入缓存,直接写入内存
比如,做页表用的项,已经存储在TLB中了,可能不需要再缓存了
控制寄存器,CPU缓存,PWT,PCD相关推荐
- (29)PDE_PTE属性(PWT/PCD位)
一.CPU缓存(CACHE) CPU缓存是位于CPU与物理内存之间的临时存储器,它的容量比内存小的多 但是交换速度却比内存要快得多. CPU缓存可以做的很大,有几K.几十K.几百K 甚至上M的也有. ...
- 2021-04-04 CPU缓存一致性 MESI协议
一 CPU以及缓存和高速缓存结构 1.1 CPU结构 我们知道CPU主要功能,一是控制,一是运算.主要包括寄存器.控制单元.运算单元和中断系统,主要架构如下: 控制单元:主要负责分析和解释指令 算数逻 ...
- 10 张图打开 CPU 缓存一致性的大门
前言 直接上,不多 BB 了. 正文 CPU Cache 的数据写入 随着时间的推移,CPU 和内存的访问性能相差越来越大,于是就在 CPU 内部嵌入了 CPU Cache(高速缓存),CPU Cac ...
- Java并发学习一:CPU缓存导致的可见性问题带来的并发Bug
Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 第一讲01 | 可见性.原子性和有序性问题:并发编程Bug的源头中提到了: 多核时代 ...
- 基于JVM原理、JMM模型和CPU缓存模型深入理解Java并发编程
许多以Java多线程开发为主题的技术书籍,都会把对Java虚拟机和Java内存模型的讲解,作为讲授Java并发编程开发的主要内容,有的还深入到计算机系统的内存.CPU.缓存等予以说明.实际上,在实际的 ...
- 简单说一下,你对CPU缓存的了解?
为什么80%的码农都做不了架构师?>>> cpu缓存是位于cpu和内存之间的高速缓冲存储器,因为现在cpu的运算速度远远超过了内存的读写速度,因此设置cpu缓存来提高cpu的执 ...
- 计算机组成原理 — CPU — 缓存访问
目录 文章目录 目录 CPU 缓存 CPU Cache 的运行原理 三级缓存(L1.L2.L3) L1 Cache L2 Cache L3 Cache CPU 缓存 CPU Cache(CPU 缓存) ...
- CPU缓存L1/L2/L3工作原理
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 小麦大叔 来源 | 公众号「朱小厮的博客」 一 ...
- CPU缓存与CPU性能的关系
说到CPU,不得不说的就是CPU缓存,目前CPU的缓存已经成了衡量CPU性能的一个必要指标,那么CPU缓存到底对CPU性能的影响有多大呢? 我们知道,CPU执行指令时,会将执行结果放在一个叫" ...
最新文章
- UVA 10603 Fill
- malloc 初始化_在C语言中,请一定记得初始化局部变量!
- auto_ptr和shared_ptr
- Python_ collections_defaultdict默认字典
- QT读写Sqlite数据库三种方式
- xshell安装mysql步骤_mysql主从复制
- 计算机教授丁三石,一次难忘的计算机课!!
- 子域收集-fierce
- UNIX、Linux与Windows之比较
- scrapy xpath空列表_我的第一个爬虫——Scrapy爬虫详细操作入门指南(1)
- ceph--磁盘和rbd、rados性能测试工具和方法
- 网络中的常见的各种协议--报文格式总结学习
- 计算机课用英语怎么说cute,原来英语可以如此cute
- java一键生成《数据库设计文档》
- 人体动作捕捉技术综述
- 短视频剪辑如何入门?短视频剪辑常用的配音软件
- 微积分——傅里叶级数
- 至简设计系列_7段数码管显示
- 关于pc手机端自适应开发的一些记录
- ERP中的制造数据结构
热门文章
- Interview:算法岗位面试—10.23下午—上海某科技公司算法岗位(偏机器学习算法,上市)技术面试之比赛积累、项目经验、个人未来发展
- Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略
- Dataset之Rotten Tomatoes:Rotten Tomatoes影评数据集简介、下载、使用方法之详细攻略
- TF之AutoML框架:AutoML框架的简介、特点、使用方法详细攻略
- ML之MaL: 流形学习MaL的概念认知、算法分类、案例应用、代码实现之详细攻略
- 成功解FileNotFoundError: [Errno 2] No such file or directory: './data\\mnist\\train-images-idx3-ubyte'
- Py之MT:Multithreaded的简介、引入、使用方法之详细攻略
- MongoDB数据库--扩展Base64,算法
- buildroot--ubootkernelrootfs全编译工具
- c# 取 list前100条数据