CPU执行一段程序时,对Cache存取的次数为2820次,主存存取的次数是180次,已知Cache的存储周期是τ=40ns,主存存取周期是T=240ns,求Cache/主存构成系统的平均访问时间?(最后保留小数后1位)
时间: 2023-06-25 18:07:06 浏览: 202
我们可以使用下面的公式计算平均访问时间(Average Access Time,AAT):
AAT = hit time + miss rate x miss penalty
其中,hit time是命中时间,即CPU从Cache中读取数据所需的时间;miss rate是缺失率,即CPU在访问Cache时未能命中Cache的概率;miss penalty是缺失惩罚,即CPU从主存中读取数据所需的时间。
首先,我们需要计算Cache的命中率和缺失率。Cache的总访问次数为2820次,其中命中次数为2820-180=2640次,因此Cache的命中率为:
hit rate = 2640 / 2820 = 0.9362
缺失率为:
miss rate = 1 - hit rate = 0.0638
接下来,我们需要计算Cache的命中时间。由于题目没有给出Cache的命中时间,我们可以使用下面的公式计算:
hit time = cache access time - miss penalty
其中,cache access time是Cache的访问时间,也就是Cache存储周期τ。由题可知,τ=40ns,因此:
cache access time = τ = 40ns
miss penalty是缺失惩罚,即CPU从主存中读取数据所需的时间。由题可知,主存存取周期T=240ns,因此:
miss penalty = T = 240ns
综上所述,Cache的命中时间为:
hit time = cache access time - miss penalty = 40ns - 240ns = -200ns
需要注意的是,命中时间为负数,说明Cache的命中比从主存中读取数据还慢,这是因为主存存取周期T比Cache存储周期τ大得多,导致从主存中读取数据所需的时间比从Cache中读取数据还要快。
最后,我们可以使用下面的公式计算平均访问时间:
AAT = hit time + miss rate x miss penalty
= (-200ns) + 0.0638 x 240ns
= 7.432ns
因此,Cache/主存构成系统的平均访问时间为7.4ns(保留小数后1位)。
阅读全文