处理器访问内存时,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字节都取上来缓存。

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

CPU访问内存

首先我们需要一个引子,引子如下: 作为一个计算机领域的工程师,这里有一个问题:有一个10米深的水池需要测量其水深,并在计算机(或者微机)上显示测量结果,保留小数点后一位。请概要的设计这个系统。 分...

CPU 读、修改内存数据过程

之前一直不明白为什么一个线程修改了数据(不用volatile修饰),而另一个线程读取时还是之前的值,网上查找了一些资料做了个总结,纯属个人理解如有不对请指正 1.CPU缓存(Cache Me...

CPU访问内存

1. CPU总线周期 总线周期,包含若干个时钟周期,计算机是在时钟脉冲下一个节拍一个节拍的工作。看下面这张图,我们可以很好的理解为什么要时钟了: 这个图我们可以认为是一个基本的读内存数...

ARM协处理器与MMU(内存管理单元)、Cache协同工作---(以三星S3C2410为例)

本文首先从总体上介绍MMU、Cache和CPU核是如何协同工作的,然后分别讲解MMU和Cache的细节。三星公司的S3C2410是一种很常见的采用ARM920T的芯片,涉及到具体的芯片时我们以S3C2...

ADI Blackfin处理器的C语言编程与优化——内存Memory和Cache优化

以上章节讲述了在ADI Blackfin系列上的C语言优化方法,如何利用DSP的特性进行循环和条件控制语句的具体优化策略,该部分则主要讲述如何优化memory的性能,以及如何实现速度speed vs....
  • yuyin86
  • yuyin86
  • 2012年05月07日 14:00
  • 1231

CPU cache 与内存对齐

一. Cache Cache一般来说,需要关心以下几个方面 1)Cache hierarchy Cache的层次,一般有L1, L2, L3 (L是level的意思)的cache。通...

CPU与Cache、内存以及硬盘之间的数据交换

今天一个同学问我一个问题,CPU与Cache、内存、以及硬盘之间是如何进行数据传输?我给同学了一个笼统的解释。当我再细想这个问题的时候,我发现这个问题并不是想的那么简单,而且想地越深会感觉细节的东西会...

CPU cache 与内存对齐

一. Cache Cache一般来说,需要关心以下几个方面 1)Cache hierarchy Cache的层次,一般有L1, L2, L3 (L是level的意思)的cache。通常来说L1...

CPU cache 与内存对齐

转自:http://blog.csdn.net/zhang_shuai_2011/article/details/38119657 一. Cache Cache一般来说,需要关心以下几...

使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)

现在多核处理器已经很普及了,市场主流是双核处理器,还有4核、8核等高端产品。而且Intel推广了超线程技术(Hyper-Threading Technology, HTT),可以将一个物理核心模拟为两...
  • zyl910
  • zyl910
  • 2012年05月08日 18:13
  • 6476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:处理器访问内存时,CPU核、cache、…
举报原因:
原因补充:

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