Algo-给定一系列内存访问,给出最小数量的缓存未命中

时间:2013-08-25 07:13:03

标签: algorithm caching

给定的输入是:缓存大小s,内存条目数n以及一系列内存访问。

尽可能地给出最低数量的缓存未命中。

示例:

s = 3,n = 4 1 2 3 1 4 1 2 3 min_miss = 4

我整天都被困住了。提前谢谢!

您可以决定缓存采取的任何行为。例如,即使访问了条目,也不必输入条目。它不需要经常。您不需要遵循固定的“规则”来缓存。

1 个答案:

答案 0 :(得分:1)

尝试关注http://en.wikipedia.org/wiki/Page_replacement_algorithm#The_theoretically_optimal_page_replacement_algorithm - 当您需要换掉一些东西时,换掉不会在最长时间内再次使用的项目。由于您提前获得了整个内存访问序列,因此这对您来说是可行的。这显然是本地最优的,至少在高速缓存变满之后第一次高速缓存未命中,因为到那时每个其他策略至少有一次高速缓存未命中。我并不明白这是全局最优的 - 搜索我在http://www.stanford.edu/~bvr/psfiles/paging.pdf找到了一个证据,声称其最优性的其他证据确实存在,但甚至更长。