局部性原理及性能分析

本文主要介绍缓存的局部性原理以及性能分析

局部性原理及性能分析

局部性原理

  • 空间局部性:在最近的未来,要使用的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的或者是连续的
  • 时间局部性:在最近的未来,要使用的信息,很可能是现在正在使用的信息
    局部性原理及性能分析

上图是假设CPU从主存的存取数据的时间是1000ns,而CPU内部执行加法运算只需要5ns,那么可以得出图示的执行时间就是(取数据时间+存数据时间+加法运算时间)*次数= (1000+1000+5)*1000 = 2005us
如果引入高速缓存的来当作媒介,即 在主存和CPU中间加入了高速缓存cache,那么CPU与cache之间的存取时间也是5ns,以每次从主存中拿10个int值到cache中为例,则需要的总时间=(向主存中取数据时间+向cache取数据+加法时间+向cache存数据时间)*次数=(1000+5+5+5)*10 = 115us,由此可以看出性能提高了一个数量级
在实际的操作中与评估中,计算机不可能只进行类似的简单的运算,因此引入了下面的洗呢性能分析模型

性能分析

相关概念

  • 命中率:CPU要访问的信息已经在cache中的比例。设一个程序执行期间,cache的总命中次数为Nc,访问主存的总次数是Nm,则H=Nc/Nc
    +Nm
  • 缺失率:M = 1-H
  • 平均访问时间:设tc为命中cache的访问时间,tm为未命中时的访问时间,则系统的平均访问时间=命中率访问cache时间+缺失率访问主存时间,即:Ta = Htc+Mtm
    局部性原理及性能分析

下面是一个性能分析的例题

局部性原理及性能分析