【第22期】观点:IT 行业加班,到底有没有价值?

处理器访问内存时,CPU核、cache、…

原创 2016年08月30日 18:01:18

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


                                                  图1  CPU访问内存时的硬件操作顺序


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

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

 

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

 

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

 

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

内存,磁盘,cache等访问速度

google 工程师Jeff Dean 首先在他关于分布式系统的ppt文档列出来的,到处被引用的很多。 1纳秒等于10亿分之一秒,= 10 ^ -9 秒  ----------------...
  • wind19
  • wind19
  • 2014-03-31 20:57
  • 6335

关于CPU的Cache

0 前言 这其实是对参考文献的一些总结和翻译,有一些内容和原文的顺序不一致,另外就是我的翻译水平不高,一些用词可能不准确。 本来想大部分都翻译的,不过后面一些看起来有点迷糊,而且发现其实和...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

ARM处理器之MMU和Cache

本节首先从总体上介绍MMU、Cache和CPU核是如何协同工作的,后面两节分别讲解MMU和Cache的细节。三星公司的S3C2410是一种很常见的采用ARM920T的芯片,涉及到具体的芯片时我们以S3...
  • sfrysh
  • sfrysh
  • 2012-06-24 14:00
  • 2248

linux学习:解决Ubuntu运行时CPU温度过高导致自动关机保护

删除Ubuntu之后我有手贱,重新安装了它,CPU还是哼哼地叫,得好好治治它。 搜索了一下我的问题,有很多网友也遇到过这样的问题,综合来看是: Ubuntu自身提供的开源显卡驱动不适合笔记本显卡,导...
  • whucyl
  • whucyl
  • 2013-11-30 19:54
  • 4396

Xposed模块开发教程(二) 第一个Xposed模块应用-在手机状态栏增加显示cpu温度

在Xposed模块开发教程(一)中 我们已经安装好了Xposed模块环境 接下来终于要开发模块应用了 下面的例子将介绍如何hook修改系统状态栏 (我一直对手机的状态栏看不顺眼 终于可以加个功能了...

实时获取Android手机CPU频率

Android手机的CPU的频率信息被保存在 /sys/devices/system/cpu/cpu0/cpufreq 目录下,通过shell命令查看该目录下的文件,如下图 其中cpuinfo_...

跟我一起玩转A870省电内核、超频内核

介绍&下载: A870省电内核&超频内核介绍及下载 http://blog.csdn.net/benjaminwan/article/details/9950747   科普知识: 查看泛泰A870的...

Android整机性能监控:多核CPU相关数据的获取(使用率、主频)

根据最近的调研,Android整机的性能主要有如下方面: 1、CPU 2、内存 3、耗电量 4、网络 本文着重介绍CPU相关数据的获取,在多核情况下,对每个CPU运行情况进行监控,获取相关的...

如何获取 Android 设备的CPU核数、时钟频率以及内存大小

从 Facebook 的开源代码(Device Year Class)抽取了一些 Android 编码中的常用功能 - 获取 CPU 核数、时钟频率、内存大小。

电脑清灰过后,CPU温度下降,显卡温度却上升了

今天没事做,帮舍友的电脑清灰,拆机没有花多少时间,dell 的电脑还是比较好拆的。将散热器里面的灰清掉,装好,打开电脑,打开激战游戏,打开鲁大师,电脑的显卡温度立马爆到了90度,开始以为是鲁大师的检测...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)