您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>主机配件>cpu>

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

2010年04月13日 16:23 www.elecfans.com 作者:佚名 用户评论(0

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

  学习目标:

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

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

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

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

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

    正文:

    4.2.1 cache基本知识

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

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

4.2.1映象规则

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

    1. 全相联映象

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

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

2. 直接映象

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

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

    j =i mod ( M )

    其中M为 Cache 的块数。

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

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

    3. 组相联映象

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

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

    k =i mod ( G )

    其中 G 为 Cache 的组数。

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

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

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

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

非常好我支持^.^

(2) 18.2%

不好我反对

(9) 81.8%

( 发表人:admin )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!