文章目录

  • 控制寄存器
  • 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相关推荐

  1. (29)PDE_PTE属性(PWT/PCD位)

    一.CPU缓存(CACHE) CPU缓存是位于CPU与物理内存之间的临时存储器,它的容量比内存小的多 但是交换速度却比内存要快得多. CPU缓存可以做的很大,有几K.几十K.几百K 甚至上M的也有. ...

  2. 2021-04-04 CPU缓存一致性 MESI协议

    一 CPU以及缓存和高速缓存结构 1.1 CPU结构 我们知道CPU主要功能,一是控制,一是运算.主要包括寄存器.控制单元.运算单元和中断系统,主要架构如下: 控制单元:主要负责分析和解释指令 算数逻 ...

  3. 10 张图打开 CPU 缓存一致性的大门

    前言 直接上,不多 BB 了. 正文 CPU Cache 的数据写入 随着时间的推移,CPU 和内存的访问性能相差越来越大,于是就在 CPU 内部嵌入了 CPU Cache(高速缓存),CPU Cac ...

  4. Java并发学习一:CPU缓存导致的可见性问题带来的并发Bug

    Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 第一讲01 | 可见性.原子性和有序性问题:并发编程Bug的源头中提到了: 多核时代 ...

  5. 基于JVM原理、JMM模型和CPU缓存模型深入理解Java并发编程

    许多以Java多线程开发为主题的技术书籍,都会把对Java虚拟机和Java内存模型的讲解,作为讲授Java并发编程开发的主要内容,有的还深入到计算机系统的内存.CPU.缓存等予以说明.实际上,在实际的 ...

  6. 简单说一下,你对CPU缓存的了解?

    为什么80%的码农都做不了架构师?>>>    cpu缓存是位于cpu和内存之间的高速缓冲存储器,因为现在cpu的运算速度远远超过了内存的读写速度,因此设置cpu缓存来提高cpu的执 ...

  7. 计算机组成原理 — CPU — 缓存访问

    目录 文章目录 目录 CPU 缓存 CPU Cache 的运行原理 三级缓存(L1.L2.L3) L1 Cache L2 Cache L3 Cache CPU 缓存 CPU Cache(CPU 缓存) ...

  8. CPU缓存L1/L2/L3工作原理

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 小麦大叔 来源 | 公众号「朱小厮的博客」 一 ...

  9. CPU缓存与CPU性能的关系

    说到CPU,不得不说的就是CPU缓存,目前CPU的缓存已经成了衡量CPU性能的一个必要指标,那么CPU缓存到底对CPU性能的影响有多大呢? 我们知道,CPU执行指令时,会将执行结果放在一个叫" ...

最新文章

  1. UVA 10603 Fill
  2. malloc 初始化_在C语言中,请一定记得初始化局部变量!
  3. auto_ptr和shared_ptr
  4. Python_ collections_defaultdict默认字典
  5. QT读写Sqlite数据库三种方式
  6. xshell安装mysql步骤_mysql主从复制
  7. 计算机教授丁三石,一次难忘的计算机课!!
  8. 子域收集-fierce
  9. UNIX、Linux与Windows之比较
  10. scrapy xpath空列表_我的第一个爬虫——Scrapy爬虫详细操作入门指南(1)
  11. ceph--磁盘和rbd、rados性能测试工具和方法
  12. 网络中的常见的各种协议--报文格式总结学习
  13. 计算机课用英语怎么说cute,原来英语可以如此cute
  14. java一键生成《数据库设计文档》
  15. 人体动作捕捉技术综述
  16. 短视频剪辑如何入门?短视频剪辑常用的配音软件
  17. 微积分——傅里叶级数
  18. 至简设计系列_7段数码管显示
  19. 关于pc手机端自适应开发的一些记录
  20. ERP中的制造数据结构

热门文章

  1. Interview:算法岗位面试—10.23下午—上海某科技公司算法岗位(偏机器学习算法,上市)技术面试之比赛积累、项目经验、个人未来发展
  2. Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略
  3. Dataset之Rotten Tomatoes:Rotten Tomatoes影评数据集简介、下载、使用方法之详细攻略
  4. TF之AutoML框架:AutoML框架的简介、特点、使用方法详细攻略
  5. ML之MaL: 流形学习MaL的概念认知、算法分类、案例应用、代码实现之详细攻略
  6. 成功解FileNotFoundError: [Errno 2] No such file or directory: './data\\mnist\\train-images-idx3-ubyte'
  7. Py之MT:Multithreaded的简介、引入、使用方法之详细攻略
  8. MongoDB数据库--扩展Base64,算法
  9. buildroot--ubootkernelrootfs全编译工具
  10. c# 取 list前100条数据