了解MIPS代码中的数据缓存位置



我一直在浏览stackoverflow,真的找不到有关此示例的示例。我了解数据缓存的时间和空间位置的概念:

临时区域:地址重新访问

空间位置:每个x乘以内存访问获得命中

但是在MIPS代码中看起来如何?任何人都可以给出具体的例子并展示其工作原理?

空间和时间位置与特定的体系结构,MIPS或另一个无关。它更多是程序的属性,也是它们在计算机上处理的方式。

时间区域指出,如果您访问给定的内存位置,则很可能会在几次之后访问相同位置。

难以给出一个特定的示例,但是想法是,例如,如果您修改一个变量,则很高的可能性将在程序中使用此变量一些说明。当然,可以找到反例,但是在大多数情况下,完成计算并存储在变量中时,这是因为我们以后需要此操作的结果。

您给出空间位置的定义是不正确的。空间区域指出,如果需要某个内存位置中的信息,则很可能在附近存储器位置中的其他信息也可能需要一段时间。

此属性归因于以下事实:编程语言的许多构造对应于连续内存位置中存储的数据。这包括:

  • 数组的元素

  • 结构的字段

  • 堆栈中连续地址中的本地变量

  • 函数的参数也关闭在堆栈中

再次,可以找到反例,但是例如,如果一个人访问字符串的firt字符,则可能是进行某种计算,搜索或字符串上的任何内容,以及大多数时间,还将访问字符串的其他字符。

相关内容

  • 没有找到相关文章

最新更新