GPU體系結構-the miss status holding register(MSHR)原理簡介

最近在看論文的時候裏面有一段介紹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.

翻譯

當緩存請求結果爲hit時,數據將會很快的從L1數據緩存中發送到寄存器中。但該請求發生miss時,會首先查看MSHR中是相同緩存請求是否已經存在。如果已經存在,則將請求合併(我理解爲直接捨棄)。如果不存在,則會將這條緩存請求加到MSHR中,將該數據請求放到miss隊列中,排隊向下一層緩存發送數據請求。如果MSHR已經滿了,或者所請求數據應該存放的緩存塊全部處於RESERVED狀態,或者miss 隊列已滿等,那麼返回資源不可獲得事件。

自己的理解

MSHR相當於一個大小固定的數組,用於存放所請求數據還沒返回到L1緩存中的miss請求。當數據返回到L1緩存中後,即從MSHR中刪除所對應的miss請求。
GPGPU-Sim文檔中有關於MSHR的詳細解釋。

引用

[1] Li C, Song S L, Dai H, et al. Locality-Driven Dynamic GPU Cache Bypassing[J]. 2015.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章