缓存模拟和页面错误

时间:2013-09-25 00:46:04

标签: caching simulation virtual-memory

我希望这不是重复。

有关缓存和虚拟内存模拟的问题:

  • 假设一个阻塞缓存(阻塞缓存是一个缓存,在将数据传送到CPU之前等待从内存到缓存的传输完成)

如果出现以下情况:

  • CPU请求指令缓存中没有的指令(没有错过)
  • 指令缓存请求数据到MMU /内存
  • MMU报告页面错误
  • CPU从MMU收到中断页面错误的中断
  • CPU跳转到包含处理页面错误的代码的硬连线地址
  • 指令获取阶段要求第一条指令(从页面错误处理)到缓存

现在我的问题是:缓存如何将页面错误处理代码传递给CPU(如果是) 等待主内存传递其他数据(导致页面错误的数据)?

我提出了这个解决方案:改进我的缓存,以便CPU和缓存接收 页面错误信号;缓存存储其状态,接收和传递页面错误处理 代码到CPU,然后恢复其以前的状态。

这就是我想出来的,但这是正确/有效且高效的方式吗?

1 个答案:

答案 0 :(得分:0)

CPU和缓存不等待丢失的数据。

通常,页面错误会对CPU产生某种类型的中断,从而暂停原始指令流。当页面错误处理程序返回时,原始指令流将从第一次未在缓存中出现的指令开始重新开始。