处理器访问内存时,CPU核、cache、MMU如何协同工作
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如何协同工作相关推荐
- dma访问主存时_DMA导致Cache数据一致性问题的原因及其解决方式(理论篇)
点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 唉!嫉妒之心真的能俘获它所接触到的任何目标啊--"欲加之罪,何患无辞"呢?"觉悟高的"更有" ...
- PD虚拟机如何设置内存和CPU核心数
安装PD虚拟机后,觉得虚拟机内存太小,那么如何分配虚拟机内存呢?CPU核数该怎么设置?具体操作如下: 1.点Mac系统左上方的苹果小标志,选择关于本机,可以看到此机的基本硬件信息,本机是六核的CPU和 ...
- X86汇编语言从实模式到保护模式01:处理器、内存和指令
目录 1. 如何构造自动取指执行的处理器 1.1 开关构成指令与数据 1.2 内存存储指令与数据 1.3 自动取指执行 1.4 处理器基本结构 2. 程序重定位与内存分段机制 2.1 程序重定位问题的 ...
- CPU的Cache和TLB系统原理
背景知识 1)RAM通常包括被用作主存的DRAM/DDR.被用作Cache的SRAM等 主机端存储器由能直接与CPU通信的ROM.Cache(一般由SRAM实现)和主存一起组成,需要说明的是我们常见的 ...
- linux进程阻塞的原因,释放大块内存时的阻塞问题
一.前言 在堆上申请和释放内存的性能不高,这应该是常识了,尤其释放大块内存时,耗时更长,甚至会阻塞其他线程.做性能优化时,一般会采用内存池等手段避免频繁的申请和释放内存.本文从内核的角度分析申请和释放 ...
- CPU和cache的区别、RAM和ROM的区别、常见的名称缩写
内存RAM和ROM之间的区别 ROM和RAM都是一种存储技术 RAM为随机存储,掉电不会保存数据(易失性): ROM可以在掉电的情况下,依然保存原有的数据(非易失). ROM和RAM指的都是半导体存储 ...
- 【OS学习笔记】一 处理器、内存和指令
学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 我们已经知道,处理器是一台电子计算机的核心,它会在振荡器脉冲的激励下 ...
- 计算机处理器的hz越大越好,cpu主频越高越好吗,教您CPU处理器主频率越高越好吗...
台电脑的好坏主要看配置的高低,因此电脑的配置参数成了大部分朋友配电脑的主要参考依据.就好比CPU,除了看核数之外还要看它的频率,频率越高的大家就觉得这个CPU性能越好.但是,CPU频率是不是越高越好呢 ...
- 4.5.2 地址变换机构 4.5.3 访问内存的有效时间
1. 基本的地址变换机构 进程在运行期间,需要对程序和数据的地址进行变换,即将用户地址空间中的逻辑地址变换为内存空间中的物理地址,由于它执行的频率非常高,每条指令的地址都需要进行变换,因此需要采用硬件 ...
- 学计算机cpu重要还是显卡重要,显卡处理器和内存 吃鸡时哪个最重要?
最近游戏"吃鸡(<绝地求生>)"大热,不过似乎很吃配置,电脑差了根本跑不动.很多小伙伴这周留言里都有咨询吃鸡配置,还有咨询优化的.今天小编就把电脑配置和游戏之间的关系给 ...
最新文章
- python 六边形架构_通过纯css3代码实现六边形边框
- NumPy - 字符串函数
- 20170822L08-04老男孩linux实战运维培训-Lamp系列之-Apache服务生产实战应用指南01
- SAP UI5 busy Dialog debug
- php线上问题排查,线上问题排查神器 Arthas
- HDOJ2021 ( 发工资咯:) ) 【水题】
- 厦门one_理想ONE真是“500万内最好的车”?
- amcharts去除版权标志
- C# 使用SkinSharp皮肤库
- Ubuntu 屏幕录像
- pb模型文件与.pbtxt配置不匹配导致OpenCV调用dnn模块出错(Mask R-CNN为例)
- SVN 下载与安装(超简单)!!!
- 数字化转型背景下的“新IT职业教育” | 职业教育系列报告(四)
- HTML怎么引入字体包中的字体
- 【白话科普】从“熊猫烧香”聊聊计算机病毒
- 数据准确性和模型准确性
- 科思创进博会宣布筹建上海新工厂;碧迪医疗进博会签订总值达2.7亿元合作协议 | 美通社头条...
- Cloudreve离线下载Aria2安装教程
- MyBatis为什么这么“屌”?这些MyBatis的秘密,分分钟吊打面试官
- 微信小程序中使用ECharts实现报表图表展示