我遇到了一个问题,如下所述,
描述一个程序的一般特征和行为,它将表现出:
(a) 关于数据访问的
低时间局部性 (b) 关于指令提取的低时间局部性
我了解时间局部性,但我无法理解它对数据访问和指令获取的意义。如果有人可以向我解释,我将不胜感激。
我遇到了一个问题,如下所述,
描述一个程序的一般特征和行为,它将表现出:
(a) 关于数据访问的
低时间局部性 (b) 关于指令提取的低时间局部性
我了解时间局部性,但我无法理解它对数据访问和指令获取的意义。如果有人可以向我解释,我将不胜感激。
他们正在谈论优化缓存以访问 CPU 中的数据和指令。从本质上讲,低时间局部性意味着经常重复使用的东西,但不是一大块(即随着时间的推移而分散)。
低时间局部性示例:
read file
process data
output result
....
read file
process data
output result
....
read file
process data
output result
为了改善这一点,您可以重新安排,以便所有读取一起完成,所有处理一起完成,所有输出一起完成。
在 CPU 的上下文中,您可以说如果您需要频繁读取内存,只需读取一次并缓存它,然后在丢弃之前尽可能多地使用它。对于指令,这意味着将循环指令等内容保存在非常快的缓存(通常是 L1)中。对于数据,这意味着缓存您最常用的任何内容。
请参阅这些链接以获得正确的解释: http:
//www.dotnetperls.com/temporal-locality
http://en.wikipedia.org/wiki/Locality_of_reference#Use_of_spatial_and_temporal_locality:_hierarchical_memory
参考:计算机组织和设计:硬件/软件接口