Cache与主存效率差异如何优化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计613个文字,预计阅读时间需要3分钟。
原文:本文字主要明确在软考中经常遇到的缓存效率问题。第一,明确一个问题是:如Cache未命中时,不同的系统有不同的应对策略。一种是直接从主存中搬取数据,它的耗时仅仅是一个。
改写后:在软考中,经常要面对缓存效率的问题。首先,我们要明确一点:当Cache未命中时,不同系统会采取不同的应对措施。例如,有的系统会直接从主存中读取数据,这个过程的时间消耗仅仅是一瞬间。
本文主要明确在软考中经常遇到的缓存效率问题。
第零,明确一个问题:
如果Cache不命中时,不同的系统有不同的应对策略。
一是直接从主存中拿走待取数据,它的时间消耗仅仅是一个访问主存周期。
二是把待取数据先拿回Cache,然后再从Cache中取走数据。而它的时间消耗不仅是一个主存周期,还包括一个访问Cache周期。
第一,求命中率:
CPU欲访问的信息已经在Cache中的比率称之为命中率。 设程序在执行期间,Cache的命中次数是Nc,访问主存的次数是Nm,则命中率为:H=Nc/(Nc+Nm)
第二,求平均访问时间:
平均访问时间Ta = H⋅Tc+(1−H)⋅Tm.
第三,求Cache-主存系统效率:
Cache-主存系统效率E = Tc / Ta
第四,求存储性能提升倍数:
X = Tm / Ta
此处要注意Ta的两种不同取值。具体见例题分析。
例:假设Cache的访问速度是主存的5t,且Cache的命中率是95%,则采用Cache后,存储器的存储性能提高多少?
解:
(1)同时访存时:Cache存储周期是t,主存的存储周期是5t
则平均访问时间:Ta = 0.95t + 0.05 * 5t = 1.2t
主存性能:5t/1.2t = 4.17倍
(2)不同时访存时,在不命中的时候用时就不是5t,而是6t
于是:Ta = 0.95t + 0.05 * 6t = 1.25t
主存性能:5t/1.25 = 4倍
即不同时访问时,在访问Cache失败时耽误了1t时间,计算不命中的时间时加上访问Cache用时即可。
本文共计613个文字,预计阅读时间需要3分钟。
原文:本文字主要明确在软考中经常遇到的缓存效率问题。第一,明确一个问题是:如Cache未命中时,不同的系统有不同的应对策略。一种是直接从主存中搬取数据,它的耗时仅仅是一个。
改写后:在软考中,经常要面对缓存效率的问题。首先,我们要明确一点:当Cache未命中时,不同系统会采取不同的应对措施。例如,有的系统会直接从主存中读取数据,这个过程的时间消耗仅仅是一瞬间。
本文主要明确在软考中经常遇到的缓存效率问题。
第零,明确一个问题:
如果Cache不命中时,不同的系统有不同的应对策略。
一是直接从主存中拿走待取数据,它的时间消耗仅仅是一个访问主存周期。
二是把待取数据先拿回Cache,然后再从Cache中取走数据。而它的时间消耗不仅是一个主存周期,还包括一个访问Cache周期。
第一,求命中率:
CPU欲访问的信息已经在Cache中的比率称之为命中率。 设程序在执行期间,Cache的命中次数是Nc,访问主存的次数是Nm,则命中率为:H=Nc/(Nc+Nm)
第二,求平均访问时间:
平均访问时间Ta = H⋅Tc+(1−H)⋅Tm.
第三,求Cache-主存系统效率:
Cache-主存系统效率E = Tc / Ta
第四,求存储性能提升倍数:
X = Tm / Ta
此处要注意Ta的两种不同取值。具体见例题分析。
例:假设Cache的访问速度是主存的5t,且Cache的命中率是95%,则采用Cache后,存储器的存储性能提高多少?
解:
(1)同时访存时:Cache存储周期是t,主存的存储周期是5t
则平均访问时间:Ta = 0.95t + 0.05 * 5t = 1.2t
主存性能:5t/1.2t = 4.17倍
(2)不同时访存时,在不命中的时候用时就不是5t,而是6t
于是:Ta = 0.95t + 0.05 * 6t = 1.25t
主存性能:5t/1.25 = 4倍
即不同时访问时,在访问Cache失败时耽误了1t时间,计算不命中的时间时加上访问Cache用时即可。

