【发布时间】:2011-12-09 09:08:02
【问题描述】:
我遇到了一个问题,如下所述,
描述一个程序的一般特征和行为:
(a) 数据访问的时间局部性低
(b) 取指令的时间局部性低
我理解时间局部性,但我无法理解它对于数据访问和指令获取的含义。如果有人能向我解释一下,我将非常感激。
【问题讨论】:
标签: computer-architecture instructions temporal
我遇到了一个问题,如下所述,
描述一个程序的一般特征和行为:
(a) 数据访问的时间局部性低
(b) 取指令的时间局部性低
我理解时间局部性,但我无法理解它对于数据访问和指令获取的含义。如果有人能向我解释一下,我将非常感激。
【问题讨论】:
标签: computer-architecture instructions temporal
他们正在讨论优化缓存以访问 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
【讨论】:
参考:计算机组织和设计:硬件/软件接口
【讨论】: