CPU访问内存时的硬件操作顺序,各步骤在图中有对应的标号:

1:CPU内核(图1中的ARM)发出VA请求读数据,TLB(translation lookaside buffer)接收到该地址,那为什么是TLB先接收到该地址呢?因为TLB是MMU中的一块高速缓存(也是一种cache,是CPU内核和物理内存之间的cache),它缓存最近查找过的VA对应的页表项,如果TLB里缓存了当前VA的页表项就不必做translation table walk了,否则就去物理内存中读出页表项保存在TLB中,TLB缓存可以减少访问物理内存的次数。

2:页表项中不仅保存着物理页面的基地址,还保存着权限和是否允许cache的标志。MMU首先检查权限位,如果没有访问权限,就引发一个异常给CPU内核。然后检查是否允许cache,如果允许cache就启动cache和CPU内核互操作。

3: 如果不允许cache,那直接发出PA从物理内存中读取数据到CPU内核。

4:如果允许cache,则以VA为索引到cache中查找是否缓存了要读取的数据,如果cache中已经缓存了该数据(称为cache hit)则直接返回给CPU内核,如果cache中没有缓存该数据(称为cache miss),则发出PA从物理内存中读取数据并缓存到cache中,同时返回给CPU内核。但是cache并不是只去CPU内核所需要的数据,而是把相邻的数据都取上来缓存,这称为一个cache line。ARM920T的cache line是32个字节,例如CPU内核要读取地址0x300001340x3000137的4个字节数据,cache会把地址0x300001200x3000137(对齐到32字节地址边界)的32字节都取上来缓存。

处理器访问内存时,CPU核、cache、MMU如何协同工作相关推荐

  1. dma访问主存时_DMA导致Cache数据一致性问题的原因及其解决方式(理论篇)

    点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 唉!嫉妒之心真的能俘获它所接触到的任何目标啊--"欲加之罪,何患无辞"呢?"觉悟高的"更有" ...

  2. PD虚拟机如何设置内存和CPU核心数

    安装PD虚拟机后,觉得虚拟机内存太小,那么如何分配虚拟机内存呢?CPU核数该怎么设置?具体操作如下: 1.点Mac系统左上方的苹果小标志,选择关于本机,可以看到此机的基本硬件信息,本机是六核的CPU和 ...

  3. X86汇编语言从实模式到保护模式01:处理器、内存和指令

    目录 1. 如何构造自动取指执行的处理器 1.1 开关构成指令与数据 1.2 内存存储指令与数据 1.3 自动取指执行 1.4 处理器基本结构 2. 程序重定位与内存分段机制 2.1 程序重定位问题的 ...

  4. CPU的Cache和TLB系统原理

    背景知识 1)RAM通常包括被用作主存的DRAM/DDR.被用作Cache的SRAM等 主机端存储器由能直接与CPU通信的ROM.Cache(一般由SRAM实现)和主存一起组成,需要说明的是我们常见的 ...

  5. linux进程阻塞的原因,释放大块内存时的阻塞问题

    一.前言 在堆上申请和释放内存的性能不高,这应该是常识了,尤其释放大块内存时,耗时更长,甚至会阻塞其他线程.做性能优化时,一般会采用内存池等手段避免频繁的申请和释放内存.本文从内核的角度分析申请和释放 ...

  6. CPU和cache的区别、RAM和ROM的区别、常见的名称缩写

    内存RAM和ROM之间的区别 ROM和RAM都是一种存储技术 RAM为随机存储,掉电不会保存数据(易失性): ROM可以在掉电的情况下,依然保存原有的数据(非易失). ROM和RAM指的都是半导体存储 ...

  7. 【OS学习笔记】一 处理器、内存和指令

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 我们已经知道,处理器是一台电子计算机的核心,它会在振荡器脉冲的激励下 ...

  8. 计算机处理器的hz越大越好,cpu主频越高越好吗,教您CPU处理器主频率越高越好吗...

    台电脑的好坏主要看配置的高低,因此电脑的配置参数成了大部分朋友配电脑的主要参考依据.就好比CPU,除了看核数之外还要看它的频率,频率越高的大家就觉得这个CPU性能越好.但是,CPU频率是不是越高越好呢 ...

  9. 4.5.2 地址变换机构 4.5.3  访问内存的有效时间

    1. 基本的地址变换机构 进程在运行期间,需要对程序和数据的地址进行变换,即将用户地址空间中的逻辑地址变换为内存空间中的物理地址,由于它执行的频率非常高,每条指令的地址都需要进行变换,因此需要采用硬件 ...

  10. 学计算机cpu重要还是显卡重要,显卡处理器和内存 吃鸡时哪个最重要?

    最近游戏"吃鸡(<绝地求生>)"大热,不过似乎很吃配置,电脑差了根本跑不动.很多小伙伴这周留言里都有咨询吃鸡配置,还有咨询优化的.今天小编就把电脑配置和游戏之间的关系给 ...

最新文章

  1. python 六边形架构_通过纯css3代码实现六边形边框
  2. NumPy - 字符串函数
  3. 20170822L08-04老男孩linux实战运维培训-Lamp系列之-Apache服务生产实战应用指南01
  4. SAP UI5 busy Dialog debug
  5. php线上问题排查,线上问题排查神器 Arthas
  6. HDOJ2021 ( 发工资咯:) ) 【水题】
  7. 厦门one_理想ONE真是“500万内最好的车”?
  8. amcharts去除版权标志
  9. C# 使用SkinSharp皮肤库
  10. Ubuntu 屏幕录像
  11. pb模型文件与.pbtxt配置不匹配导致OpenCV调用dnn模块出错(Mask R-CNN为例)
  12. SVN 下载与安装(超简单)!!!
  13. 数字化转型背景下的“新IT职业教育” | 职业教育系列报告(四)
  14. HTML怎么引入字体包中的字体
  15. 【白话科普】从“熊猫烧香”聊聊计算机病毒
  16. 数据准确性和模型准确性
  17. 科思创进博会宣布筹建上海新工厂;碧迪医疗进博会签订总值达2.7亿元合作协议 | 美通社头条...
  18. Cloudreve离线下载Aria2安装教程
  19. MyBatis为什么这么“屌”?这些MyBatis的秘密,分分钟吊打面试官
  20. 微信小程序中使用ECharts实现报表图表展示

热门文章

  1. 2022搜狐校园算法大赛推荐赛道Rank2方案分享
  2. 新网站链接提交入口攻略
  3. 偏差-方差分解简要推导
  4. 搭建微信多开服务器,电脑微信多开你都不会?教你简单实现
  5. windows常用快捷命令大全总结
  6. aes sm1 对比_SM1,SM2,SM3,SM4刨析
  7. CSP-2022 游寄
  8. php简单实现延迟队列
  9. 我对网页设计的一点见解!
  10. 详述GPS原理及RTK技术应用