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)原理简介









猜你喜欢

转载自blog.csdn.net/baidu_35679960/article/details/77527782
今日推荐