cache租号怎么求
cache采用4路组相联映像求主存地址各字段如何划分?
首先说下面的问题吧。每个块是32个字,一个字是16位,故一个块是32*16=512bit
回到第一个问题 :每组4个存储块就是4路组相联。一个组含有几个块就称为几路组相联。
组相联映射是全相联映射和直接映射的折中方案。它有两种方案,不同的教材有不同的说法。
最常见的的一种方案 是cache中的组直接映射到主存的块号中。怎么说呢?就是cache中有4个组,那么主存中的块就按组号来映射。举例说cache中有8块采用2路组相联,即有4组。分别是第0、1、2 、3组。主存中有16个块。块号是0~15,那么第0组中的两个块可以是主存中0、 4、 8、 12 中的任意两个块。这样cache的地址只分成 组号 块内地址 ,主存的地址 分成 主存标记 组号 快内地址 三个部分
而第二种方案要复杂一些但层次更明晰。它是将cache整个映射到主存中。它等于将主存化成了一个个区,每个区的大小和cache相同。仍是上个例子。那么第0组中的两个块分别映射为主存中的0、 1块 和8、 9块 。这样cache的地址只分成 组号 块内地址 ,主存的地址 分成 主存标记 区号 组号 快内地址 四个部分
其实我说的还是不是很透彻,自己最好按我说的画个图。就就比较好理解了
这是我以前回答较为类似的问题。 下班了没仔细看。回头回答
已知cache存储周期40ns,主存储周期200ns,求cache的命中率是0.9,cache/主存系统平均访问时间为多少?
已知tc=40ns,tm=200ns,ta=50ns,而ta=h*tc+(1-h)*tm
所以h*40ns+(1-h)*200ns=50ns
命中率h=93.75%(中间计算过程我就不写了)