1

考虑一个具有两级分页方案的系统,其中常规内存访问需要 150 纳秒,处理页面错误需要 8 毫秒。一条平均指令需要 100 ns 的 CPU 时间和两次内存访问。TLB命中率为90%,缺页率为万分之一。有效平均指令执行时间是多少?

这是在 GATE 2004 中提出的。为了解决这个问题,我将遵循以下概念:
T(memory access avg) = .90(150) + .1(150+150+150) = 180 (150- level1, 150- level2 和 150 内存)
T 有效 = 100+ 2* 180 + 1/10000* 8* 10^6 = 1260。

这种方法正确吗?我也有以下疑问:

  1. 当 TLB 命中时不会出现页面错误,因为最常用的页面必须在内存中。这是对的吗 ?
  2. 进程的页表大小是多少?假设一个 32 位虚拟地址,我们是否为每个进程分配一个包含 2^32 个条目的页表?分页中的内存限制是如何管理的?

请解释这些概念。

4

1 回答 1

0

我建议以下

100 + 2*(.1 * 150 + 0.9 * 0 ) + 2*(150+ 8*10^6 * 1/20000 ) = 1230

这里 100ns 用于指令执行(那里没有意见分歧)

现在给定 TLB 命中率为 90%,所以每当 TLB 未命中时,我们必须进行 2 次内存访问,因为它有 2 级分页方案。

并且无论 TLB 命中还是未命中2*(150+ 8*10^6 * 1/20000 ),都应该完成内容的内存访问时间和页面错误的开销。

我认为你的表达假设,对于第一个内容发生 TLB 命中时的指令,它遵循第二个

所以你假设hit-hit or miss-miss,由于给定的 TLB 命中率为 90%(每次访问而不是每条指令),我觉得应该有所有 4 种可能的组合

hit-hit, miss-miss, hit-miss,miss-hit

于 2014-02-01T09:23:30.343 回答