题目内容
假定某存储系统中,Cache的命中时间与块大小无关,为1个时钟。其访问存储器时,需在延迟80个时钟周期(启动时间)后,每2个时钟周期能送出16个字节。即经过82个时钟周期,它可提供16个字节;经过84个时钟周期,可提供32个字节;以此类推。请问对于表中列出的各种容量的Cache,在块大小分别为多少时,平均访存时间最小?
题目分析
本题中所需要求的是平均访存时间,那么我们就首先列出平均访存时间公式进行分析:
平均访存时间=命中时间+失效率×失效开销
本题中命中时间已知,为1个时钟周期,因此只需要求出各种容量的Cache在指定块大小下的失效率和失效开销即可。失效率在表格中已经给出,而失效开销其实就是所需的块不在Cache中而导致的访问内存的时间,可以根据题目内容求出计算公式如下:
失效开销=80+块大小/16B
下面举两个例子:
①对于块大小为16字节,容量为4KB的Cache来说
平均访存时间=1+(8.57%×82)=8.027(时钟周期数)
②对于块大小为256字节,容量为256KB的Cache来说
平均访存时间=1+(0.49%×112)=1.549(时钟周期数)
下面给出完整结果表格: