我遇到了一个问题,如下所述,
描述可能表现出来的节目的一般特征和行为:
(a)关于数据访问的低时间局部性 (b)关于指令提取的低时间局部性
我理解时间局部性,但我无法理解它对于数据访问和取指令意味着什么。如果有人能向我解释,我会非常感激。
答案 0 :(得分:1)
他们谈论的是优化用于访问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
答案 1 :(得分:0)
参考:计算机组织和设计:硬件/软件接口