在CPU访问寄存器时,无论是存取数据还是存取指令,都趋于聚集在一片连续的区域中,这就被称为局部性原理。
局部性原理又分为时间局部性(temporal locality) 和空间局部性 (spatial locality) 。
1. 时间局部性:
如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因,是由于在程序中存在着大量的循环操作。
----被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
2. 空间局部性:
一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。
----如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。