1

在下面的练习考试中,我遇到了一个关于缓存性能的问题。你能给我一些关于如何解决它的提示吗?这是我的草稿答案:

  1. 数组 a、b 跨越缓存的整个 32 页。
  2. 循环运行两次,因此第一个循环将预热缓存。2048 是第一个循环中由 a[i], b[i] 分配引起的冷缺失数。
  3. 在 OS1 中,缓存实际上是索引的,因为在试验 1 和 3 中翻译导致更多的缓存未命中(尽管我无法解释试验 2 和 3 的急剧下降和增加)。
  4. 在 OS2 中,缓存是物理索引的。
  5. 在 (c) 部分中,减少缓存未命中的候选页面放置策略是页面着色和 bin 跳跃,但我不知道如何决定使用哪一个。

我很感激任何提示。谢谢你。

在此处输入图像描述

4

1 回答 1

0

a) 缓存是物理索引的。操作系统正在分配“随机”物理页面,导致测试结果出现较大偏差。如果高速缓存被虚拟索引,则测试结果不会有大的偏差(因为使用的虚拟地址不会有大的偏差)。

b) 最可能的解释是第二个操作系统没有分配“随机”物理页面(例如某种页面着色方案 - 参见http://en.wikipedia.org/wiki/Cache_coloring)。

c) 我会使用搜索引擎来发现有关 OS 2 使用的策略的更多信息。

注1:我不知道最后一个问题的答案应该是什么(对我来说似乎是一个愚蠢的问题)。

注意 2:缓存是硬件,在安装不同的操作系统时不会神奇地重新设计自己的芯片(例如,从虚拟索引到物理索引)。

于 2013-04-14T04:13:24.293 回答