某计算机采用页式存储管理内存中现有1000 个页表项, CPU 的cache 中可以存放N 个页表顶, 该系统中, CPU 内存 访问的时间为100ns

某计算机采用页式存储管理内存中现有1000 个页表项, CPU 的cache 中可以存放N 个页表顶, 该系统中, CPU 内存 访问的时间为100ns, 对cache 访问的时间是5ns , 如果希望页 表映射的平均时间降到20ns 以下, 那么cache 中的N 必须高于()。
A、850
B、858
C、923
D、842
具体怎么做?

查了一下解析, 说命中的话访问时间是5ns, 不命中的话访问时间是5ns+100ns=105ns.
N个存cache, 1000-N个存内存, 总时间是5N+105(1000-N), 平均时间再除以1000, 这个平均时间小于20, N>850
但是我个人认为这个cache是要维护的, 出现缺页要把缺的页置换进来. 也就是说未命中的访问时间是5ns+100ns+5ns=110ns, 这么算下来N>857.几, 最小是858
另外这个平均说的太绝对, 由于局部性原理的存在, 程序很少能够均匀地去读取1000个页, 而且cache经过维护能够保证很高的命中率, 平均时间我个人觉得应该给两者加上一个权重来表示这个命中率很高, 比如95%*5N+(1-95%)105(1000-N)