4组相连映像租号怎么算
设某计算机的cache采用4路组相连映像,已知cache的容量为1KB,主存总量为1MB,每个字块有?
每个子块有16*32/8=64字节,即1MB主存内有1048576/64=16384个字块,14位就行了。4路组相连只要2位就行了。cache内有1024/64=16个字块,4位就行了。所以主存地址段中主存字块标记需要14位,组地址标记需要2位,快内地址需要4位。
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的地址只分成 组号 块内地址 ,主存的地址 分成 主存标记 区号 组号 快内地址 四个部分
其实我说的还是不是很透彻,自己最好按我说的画个图。就就比较好理解了
这是我以前回答较为类似的问题。 下班了没仔细看。回头回答