其他分享
首页 > 其他分享> > cache存储器(随笔Ⅱ)

cache存储器(随笔Ⅱ)

作者:互联网

前言

  上次介绍了存储器在计算机内的层次结构以及cache本身的原理,详细见”cache存储器(随笔Ⅰ)”。

  接下来将会介绍cache存储器与主存直接的数据映射关系。

  由于cache存储器的行比主存储器的块要少得多,因此需要一定的算法来实现映射。目前常用的三种方法:直接映射、全相联映射、组相联映射。 

  

直接映射

  将主存中的每个块映射到一个固定可用的cache存储器的行中,可以表示为

i = j mod m

  其中,i是cache存储器行号,j是主存的块号,m是cache存储器的行数。

  简单地说,就是主存中的0、m、2m····等块号均单一映射到cache存储器的0行,主存中1、m+1、2m+1···等块号均单一映射到cache存储器的1行,····,以此类推,如下表所示。

cache行 被分配的主存块
0 0、m、2m、···、2s-m
1 1、m+1、2m+1、···、2s-m+1
··· ···
m-1 m-1、2m-1、3m-1、···、2s-1

 

  下图为直接映射的机制图

 

  从图中看可以看出,每一个访问cache存储器的的主存地址都可以看成是三部分组成的,长度为s + w:

  根据上图则有如下直接映射小结:

 

实例

  我们将设计一个范例来展示如何映射。首先,需要设定以下简单条件:

  可以推出s = 6、w = 2、r = 4,则主存地址如下图所示

  接下来可以由高s位中的低r位来寻找cache存储器行号,即0010,如下图所示

   通过高s位中的高s - r位来确定cache存储器的标识符,记录是哪一块主存,即10,如下图所示

总结


  期待下次更新❤

 

标签:存储器,映射,2s,cache,主存,2m,随笔
来源: https://www.cnblogs.com/Bosson/p/14992159.html