【发布时间】:2013-09-30 10:12:40
【问题描述】:
我希望这不是重复的。
关于缓存和虚拟内存模拟的问题:
- 假设一个阻塞缓存(阻塞缓存是等待直到从内存到缓存的传输完成后再将数据传送到 CPU 的缓存)
如果发生以下情况会发生什么:
- CPU 请求指令缓存中不存在的指令(未命中)
- 指令缓存向 MMU/内存请求数据
- MMU 报告页面错误
- CPU 收到来自 MMU 的中断,该中断发出有关页面错误的警报
- CPU 跳转到包含处理页面错误代码的硬连线地址
- 指令提取阶段要求将第一条指令(来自页面错误处理)缓存
现在我的问题是:如果缓存将如何将页面错误处理代码传递给 CPU 等待主内存传递其他数据(导致页面错误的数据)?
我想出了这个解决方案:改进我的缓存,以便 CPU 和缓存都能接收 页面错误信号;缓存存储其状态,接收和传递页面错误处理 代码到 CPU,然后恢复其先前的状态。
这是我想出的,但这是正确/有效且高效的方法吗?
【问题讨论】:
标签: caching simulation virtual-memory