MSHR(miss status handling register)

MSHR的作用:

    On a cache hit, a request will be served by sending data to the register file immediately. On a cache miss, the miss handling logic will first check the miss status holding register (MSHR) to see if the same request is currently pending from prior ones. If so, this request will be merged into the same entry and no new data request needs to be issued. Otherwise, a new MSHR entry and cache line will be reserved for this data request. A cache status handler may fail on resource unavailability events such as when there are no free MSHR entries, all cache blocks in that set have been reserved but still haven’t been filled, the miss queue is full, etc.


    在上面的微架构模型中,当系统有访存请求的时候,在①处的access type选择语句,有两条路径:bypass是绕过cache,这儿不考虑。我们关注的是L1-D-Path的路径,通过匹配tag,如果cache hit的话,那么就可以直接送往register files。如果cache miss,会先检查MSHR,看是否已经有相同的数据请求已经发出过(只是数据还没有被传回到cache中),如果确实发出过相同的数据请求的话,就将当前请求合并到之前的相同的数据请中。如果MSHR中没有(M)相同请求的话,就传递数据请求到下一级cache。

    当从下一级cache中拿到数据,放到return queue中,数据接下来的流向也有两条路径:如果数据请求是经过cache->MSHR->下一级cache这条路径的,那么需要把数据放到先前预留的cache line中,并且MSHR中对应的entry设置为filled(Fill Path 1);如果数据请求是通过bypass path这条路径的,那么直接把return queue中的数据传给register files(Fill Path 2)。



参考:

[1] Li C, Song S L, Dai H, et al. Locality-Driven Dynamic GPU Cache Bypassing[J]. 2015.

[2] 超标量处理器设计,姚永斌,p314,要支持非阻塞cache,在处理器中就需要将那些已经产生D-Cache缺失的load/store指令信息保存起来,这个部件称为MSHR

[3] GPU体系结构-the miss status holding register(MSHR)原理简介









  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值