高速缓冲存储器例题二

题目

例2 设某机内存容量为16MB,Cache的容量16KB,每块8个字,每个字32位.设计一个四路组相联映射(即Cache内每组包含4个字块)的Cache组织方式。
1)求满足组相联映射的主存地址字段中各字段的位数
2)设Cache的初态为空,CPU从主存第0号单元开始连续访问100个字(主存一次读出一个字),重复此次序读8次,求存储访问的命中率
3)若Cache的速度是主存速度的6倍,求存储系统访问加速比

解答

(1):
组相联映射主存地址被分成三个部分(由低位到高位):字快内地址、组地址、主存字块标记

  • 每一块容量8个字,每个字4个字节,包含32个字节,所以字块内地址需要5位。
  • Cache共有16KB/32B=512块,每组4块,得Cache共有512/4=128组。那么组地址就需要7位。
  • 16MB得主存容量需要24位地址。那么主存字块标记就是24-5-7=12位。

(2):
首先要明确一点:只有在第一遍访问时才会存在未命中情况,那么我们就需要计算第一次有多少个字没有命中。
当出现一次未命中时,主存就会把对应块上的数据传送到Cache中,那么我们只需要计算出第一遍遍历中主存向Cache传送了多少次数据,就可以得到未命中的次数。

100个字有100*4=400B,每一块存储空间为32B,那么100个字就需要400/32=13个块。
那么第一遍便利的时候主存需要向Cache传送13次数据,也就是说有13次未命中。
全部过程访问8*100=800次,未命中13次,则命中率为(800-13)/800=98.375%

(3):
设主存存取周期为6t,那么Cache存取周期就为t。
只有主存需要时间为:800*6t
加上缓存需要时间为:3*6t+787*t
加速比就为:(800*6t)/ (13*6t+787*t) = 5.549

猜你喜欢

转载自www.cnblogs.com/xxmmqg/p/12762538.html