Miss Status Handling Registers (MSHR) 计算机体系结构
体系结构知识。
MSHR可以被认为是之前访问过但保存缓存消息请求的“缓冲器不足”。
具体操作如下。
如果发生了Cache Miss :
首先搜索MSHR查看是否有相同的Block也是缺失的状态:
如果找到,直接分配Load/Store挂载,一起解决历史记录和这次的缺失(请求合并,向下一级缓存请求数据);
如果找不到,MSHR还有富余的话,分配位置;
如果找不到,没有多余的空间,就会发生资源冲突。
对于MSHR本身:
类似于Miss缓冲区数组,它依次向低层请求数据,获取返回的数据,然后首先确定哪个L/S正在等待,然后向前推送数据并删除对应的MSHR记录。
同时向Cache或MSHR写入子块,如果是最后的块,则在写入Cache后,释放MSHR的分配比特。