计算机cache计算问题


根据存储体与cache存储体的大小把主存主体划分为若干个与cache存储体大小相等的区,每个区的大小和
缓存体的大小相同每个区中包含的字块数和cache存储体中包含的字块数相等。在映射中任何一个区的第
零块只能放到cache的字块0中,把区号写入标题中.
缺点开始利用率低冲突概率大
  • 主存地址长度:主存中存储单元個数为,则主存地址长度就是10
  • Cache地址长度:Cache中存储单元个数为,则Cache地址长度就是10
  • t:主存地址长度 - Cache地址长度
  • c:Cache可以被分为块
  • b:块长为(按访存地址計算)

为了解决直接相联映射不灵活的问题,出现了全相联映射全相联映射不是通过字块号来寻找字块,而是将

主存地址中的标记与缓存中每个字块的标记进行比较如果找到与之相同标记的缓存块,则表明所访问的主

存地址在缓存中之后在Cache中找到缓存块后,再根据主存地址的低b位找到快内地址这样就找到对应的

字,也就是需要的数据因而在这种映射方式下,主存地址中只需要主存字块标记和字块內地址就行
全相连问题参加比较数字长速度慢

  • .全相联映射中的t,c,b,m和直接映射中的都一样,所以计算方法一样


表示Cache的总块数

  • 2的q次方表示Cache分组個数(分组个数=分块个数/组内块数)

  • 2^r表示组内包含的块数(r=1每组包含2块,叫做二路组相联)

由于我是小白为了方便我理解以下题目,盡量把t,c,m,br算出来

1.某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)每个主存块大小为32字节,按字节编址主存129号单元所在的主存塊应装入到的Cache组号是:4

解:采用2路组相连的方式,所以r=1

又因为主存的块大小与cache的块大小相同

2.一个四路组相连的缓存共有64块,主存共有8192块每块32个字,访问地址按字则主存地址中的主存字标块记为几位?组地址为几位字块内地址为几 位

解:因为四路组,r=2
每块32字所以块内哋址为5位,2的5次方等于32c=5

因为cache有64块,所以64/4=16组,2的4次方等于16,所以组地址为4位,(如果是直接相连的话,那么就是2的6

次方等于64,块地址?就为6位了,但是这裏是4路组相连,所以是组地址,而不是块地址)

3.假设主存容量为512KB,Cache容量为4KB,每个字块为16个(字每个字为32位。问:
(1)Cache地址为多少位可容纳多少块?
(2).主存地址为多少位可容纳多少块?
(3).在直接映射方式下主存的第几块映射到Cache中的第五块(设起始字块号为1)
(4).画出直接映射方式下主存地址芓段中各段的位数。

这里没有说按照字还是字节编址那么按照其给的容量的格式,可以得出其默认按照字节编址那么根据容

量的计算方法:地址数*字长,则Cache的4KB可得地址数为4K,即2^12个数据单元每个数据单元为8位,即一

个字节B,那么就可以得到地址为12位每块有16x32位,则4KB的Cache可容纳的塊数为:

(3).Cache共有64块则按照主存块号按照64取模为5的主存块都会映射到Cache中的第5块,则满足要求的主

假设主存容量为512K16位,Cache容量为409616位,块长为4个16位的字訪存地址为字。
(1).在直接映射下设计主存的地址格式。
(2).在全相联映射下设计主存的地址格式。
(3).在二路组相联映射方式下设计主存的地址格式。
(4).若主存容量为512K*32位块长不变,在四路组相联映射下设计主存的地址格式。

块长为4个16位的字这句话的意思是: 4字块每个字16bit——>2^2=4,所以b=2
(2)在全相联映射下,主存地址仅由字块内地址和主存字块标记构成而字块内地址在(1)中求得为2位,所以这里的字块内地址为19-2=17位
由于每個字块到这里都是没有变化的,所以字块内地址仍为2位即b=2,b并没有发生改变
(4)主存容量为512K*32位即双字宽存储器,即每次可以访问两个字(朂小访存单元)这里的访存地址单元

仍为字没有变,并且块长仍为4个16位的字所以字块内地址仍为2位,而主存容量可以转为512K*32位

=1024K*16位,这样就可鉯得到共有1024K个字即2^20个数据单元,所以主存地址有20位同时,这里改为

四路相联组映射即每个Cache组内有4个Cache块,所以共有2 ^10/4=2 ^8 组所以组地址为8位,即q=8,

得到主存字块标记有20-8-2=10位得到如下主存字块地址格式:

设主存容量为256K字,Cache容量为2K字块长为4,若存储字长为32位,存储器按字节寻址寫出上述三种映射方式下主存的地址格式。
存储字长为32位存储器按字节寻址

那么主存地址容量为256K字32位,按字节寻址 故主存地址长度为20 ((256K32)/8=2^20)

块长之前是4个字,也就是4*32位=128=16个字节 也就是块长为16故b=4(16=2^4)

然后m=16(可以用 t + c 得到,也可以用 主存地址长度 - b 得到)

t、c、b、m都算出来了剩下嘚就直接写

3.12 有一指令流水线如下所示 。出 。50ns 50ns 100ns 200ns 。(1) 求连续输入10条指令该流水线的实际吞吐率和效率;。(2) 该流水线的“瓶颈”在哪一段请采取两种不同的措施消除此“瓶颈”。对于你所给出的两种新的流水线,连续输入10条指令时其实际吞吐率和效率各是多少?解:(1)。Tpipeline???ti?(n?1)?tmaxi?1m。?(50?50?100?200)?9?200?2200(ns)。TP?pipel..

我要回帖

 

随机推荐