【软件开发底层知识修炼】四 深入浅出处理器之四 结合高速缓存以及TLB与虚拟内存

学习交流加

  • 个人qq:
    1126137994
  • 个人微信:
    liu1126137994
  • 学习交流资源分享qq群:
    962535112

文章目录

  • 0、回顾
  • 1、高速缓存(Cache)的引入
  • 2、利用TLB加速地址翻译
  • 3、Cache与物理内存是如何映射的
    • 3.1、直接映射法:
    • 3.2、直接映射原理
    • 3.3、直接映射法的特点
  • 4、总结

上一篇文章学习了(点击链接查看上一篇文章上一篇文章):

  • 虚拟内存的概念与交换区的概念

  • MMU的作用

  • 虚拟内存机制的意义

    • 虚拟内存作为内存管理工具
    • 虚拟内存作为内存保护工具
  • 页表的概念

  • 页命中与缺页

  • 程序的局部性在虚拟内存中的作用

  • MMU的地址翻译过程

0、回顾

回顾上一篇文章,这里再补充一下:

  • 当页命中时,CPU硬件执行的步骤

注释:VA:虚拟地址 PTEA:页表条目地址 PTE:页表条目

如上图,CPU的执行步骤如下:

  1. 处理器生成一个虚拟地址,并把它传送给MMU
  2. MMU生成PTE地址,并从高速缓存/物理内存请求得到它
  3. 高速缓存/物理内存向MMU返回PTE
  4. PTE中的有效位是0,所以MMU触发了一次异常,传递CPU中的控制到操作系统内核中的缺页异常处理程序
  5. 缺页异常处理程序确定出物理内存中的牺牲页,如果这个页面被修改了,就将它换出道磁盘
  6. 缺页异常处理程序将需要的页面调入到高速缓存/物理内存,并更新内存中的PTE
  7. 缺页异常处理程序返回到原来的进程,再次执行导致缺页的指令。CPU将引起缺页的地址再次发送给MMU。因为虚拟页面现在缓存在物理内存中了,所以此次就会命中,物理内存就会将所请求的数据或者指令返回给CPU

可以看到,页命中与缺页的前三步,都是一样的。我们还可以总结出一个重要的结论:
页命中完全是由硬件来处理的,而缺页,却是由硬件和操作系统内核共同完成的。

1、高速缓存(Cache)的引入

看看上面分析页命中与缺页的过程中,出现了高速缓存,如果只有物理内存很好理解,现在出现高速缓存是啥意思/p>

学习过上一篇文章,我们应该可以理解页命中,缺页这些简单的概念以及虚拟地址的寻址过程(如果不明白,建议先学习上一篇文章)。

我们知道,CPU寻址时,从内存中获取指令与数据的时间还是相当大的(CPU的速度远远大于内存的速度)。所以高速缓存(Cache)就出现了。

  • Cache是一种小容量高速存储器
  • Cache的存取速度与CPU的运算速度几乎同量级
  • Cache在现代计算机系统中直接内置于处理器芯片中
  • 在处理器和内存之间设置cache(精确来讲是将Cache放在MMU与物理内存之间)
  • 把内存中被频繁访问的数据和指令复制到cache中
  • 页表也在内存中,将被频繁访问的PTE,复制到Cache中
  • 大多数情况下,CPU可以直接从cache中取指令与数据

如下图,我们先来看一个高速缓存与虚拟内存结合的例子,看看此时CPU的访问过程:

  1. CPU产生一个虚拟地址
  2. 第二部和第三部是MMU从TLB中取出相应的PTE
  3. MMU将这个虚拟地址翻译成一个物理地址,并将它发送到高速缓存/物理内存。
  4. 高速缓存/物理内存将所请求的数据字返回给CPU

我们可以看到,TLB是虚拟寻址的缓存。

下面再来看看TLB不命中时,是如何执行的

注意:任意一个物理内存块都可以映射到唯一固定的cache块(物理内存不同的块,可以映射到同一个cache块)。

3.2、直接映射原理

比如我们想要访问某一个物理地址,我们如何知道这个地址是否在cache中者如何知道它在cache中的位置/p>

首先,现在只有一个物理地址,需要根据这个物理地址进行判断。

看下面,对物理地址有一个划分:

3.3、直接映射法的特点

我们已经知道,直接映射法,很有可能不同的物理内存块映射到相同的cache块。所以直接映射法这样会导致缓存失效。但是直接映射法过程简单,所需耗时短!!

4、总结

下面笼统的用流程图概括一下处理器的数据访问过程:

【软件开发底层知识修炼】四 深入浅出处理器之四  结合高速缓存以及TLB与虚拟内存

本篇文章学会了以下内容;

  • 高速缓存的作用
  • TLB的作用
  • 物理内存与cache之间的映射原理

本人积累了无数的技术电子书籍与各类技术的视频教程,可以加好友共同探讨学习交流。
学习探讨加个人:
qq:1126137994
微信:liu1126137994

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年10月21日
下一篇 2018年10月22日

相关推荐