我一直在浏览stackoverflow,真的找不到有关此示例的示例。我了解数据缓存的时间和空间位置的概念:
临时区域:地址重新访问
空间位置:每个
x
乘以内存访问获得命中
但是在MIPS代码中看起来如何?任何人都可以给出具体的例子并展示其工作原理?
空间和时间位置与特定的体系结构,MIPS或另一个无关。它更多是程序的属性,也是它们在计算机上处理的方式。
时间区域指出,如果您访问给定的内存位置,则很可能会在几次之后访问相同位置。
难以给出一个特定的示例,但是想法是,例如,如果您修改一个变量,则很高的可能性将在程序中使用此变量一些说明。当然,可以找到反例,但是在大多数情况下,完成计算并存储在变量中时,这是因为我们以后需要此操作的结果。
您给出空间位置的定义是不正确的。空间区域指出,如果需要某个内存位置中的信息,则很可能在附近存储器位置中的其他信息也可能需要一段时间。
此属性归因于以下事实:编程语言的许多构造对应于连续内存位置中存储的数据。这包括:
-
数组的元素
-
结构的字段
-
堆栈中连续地址中的本地变量
-
函数的参数也关闭在堆栈中
再次,可以找到反例,但是例如,如果一个人访问字符串的firt字符,则可能是进行某种计算,搜索或字符串上的任何内容,以及大多数时间,还将访问字符串的其他字符。