cache命中率?
发布网友
发布时间:2023-09-18 17:46
我来回答
共1个回答
热心网友
时间:2023-09-18 21:50
答案:
(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
加上缓存需要时间为:13*6t+787*t
加速比就为:(800*6t)/ (13*6t+787*t) = 5.549