【问题标题】:cache simulation and page faults缓存模拟和页面错误
【发布时间】:2013-09-30 10:12:40
【问题描述】:

我希望这不是重复的。

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

  • 假设一个阻塞缓存(阻塞缓存是等待直到从内存到缓存的传输完成后再将数据传送到 CPU 的缓存)

如果发生以下情况会发生什么:

  • CPU 请求指令缓存中不存在的指令(未命中)
  • 指令缓存向 MMU/内存请求数据
  • MMU 报告页面错误
  • CPU 收到来自 MMU 的中断,该中断发出有关页面错误的警报
  • CPU 跳转到包含处理页面错误代码的硬连线地址
  • 指令提取阶段要求将第一条指令(来自页面错误处理)缓存

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

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

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

【问题讨论】:

    标签: caching simulation virtual-memory


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-06-14
      • 2011-07-01
      • 1970-01-01
      • 2012-05-14
      • 2015-04-01
      • 2012-03-19
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多