欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是:首页  > 科技

cache基本知识培训教程[1]

科普小知识2023-10-20 13:49:09
...

cache基本知识培训教程[1]

学习目标:

掌握全相联映象、直接映象以及组相联映象的思想和特点;

理解路数和组数的概念及其关系;

掌握在各种映象规则的情况下Cache的查找方法;

掌握随机法、先进先出、LRU 等替换算法;

理解Cache对“写”操作的处理方法。

正文:

4.2.1 cache基本知识

如前所述,为了填补 CPU 和主存在速度上的巨大差距,现代计算机都在 CPU 和主存之间设置一个高速、小容量的缓冲存储器 Cache 。 Cache 对于提高整个计算机系统的性能有重要的意义,几乎是一个不可缺少的部件。Cache 是按块进行管理的。 Cache 和主存均被分割成大小相同的块。信息以块为单位调入 Cache 。相应地, CPU 的访存地址被分割成两部分:块地址和块内位移,如下所示:

cache基本知识培训教程[1]

主存块地址用于查找该块在 Cache 中的位置,块内位移用于确定所访问的数据在该块中的位置。

4.2.1映象规则

一般来说,主存容量远大于 Cache 的容量。因此,当要把一个块从主存调入 Cache 时,就有个如何放置的问题。这就是映象规则所要解决的。映象规则有以下三种。

1. 全相联映象

全相联是指主存中的任一块可以被放置到 Cache 中的任意一个位置的方法。如图4.2.1所示。

cache基本知识培训教程[1]

实际的 Cache 常包含几百个块,而主存则一般包含上百万个块。

2. 直接映象

直接映象是指主存中的每一个块只能被放置到 Cache 中唯一的一个位置,如图4.2.2所示。图中带箭头的虚线表示映象关系。

cache基本知识培训教程[1]

一般地,对于主存的第 i 块(即块地址为 i ),设它映象到 Cache 的第 j 块,则

j =i mod ( M )

其中M为 Cache 的块数。

设 M = 2m,则当表示为二进制数时,j 实际上就是 i 的低 m 位,如下所示:

cache基本知识培训教程[1]

因此,可以直接用主存块地址的低 m 位去选择直接映象 Cache 中的相应块。

3. 组相联映象

组相联是指主存中的每一块可以被放置到 Cache 中唯一的一个组中的任何一个位置(Cache 被等分为若干组,每组由若干个块构成)。

cache基本知识培训教程[1]组相联是直接映象和全相联的一种折衷:一个主存块首先是映象到唯一的一个组上(直接映象的特征),然后这个块可以被放入这个组中的任何一个位置(全相联的特征)。组的选择常采用位选择算法,即:若主存第 i 块映象到 Cache 的第 k 组,则

k =i mod ( G )

其中 G 为 Cache 的组数。

设 G = 2g,则当表示为二进制数时,k 实际上就是 i 的低 g 位,如下所示:

cache基本知识培训教程[1]

因此,可以直接用主存块地址的低 g 位去选择组相联Cache中的相应组。这里的低 g 位以及上述直接映象中的低 m 位通常称为索引。

如果每组中有 n 个块(n=M/G),则称该映象规则为 n 路组相联。

n 的不同取值构成了一系列不同相联度的组相联。直接映象和全相联实际上是组相联的两种极端情况。表4.2中列出了各种情况下,路数 n 和组数 G 的取值。表中 M 为 Cache 的块数。

cache基本知识培训教程[1]