System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據處理,尤其涉及一種緩存請求處理方法、設備及介質。
技術介紹
1、在現代通用圖形處理器(general?purpose?computing?on?gpu,gpgpu)的架構設計中,高速緩存扮演著至關重要的角色,它是提升內存系統效率、加速數據處理和圖形渲染任務的核心組件。然而,gpgpu應用程序的一些固有特性,尤其是它們不規則的內存訪問模式和較差的空間局部性,給緩存的有效利用帶來了前所未有的挑戰。這些特性使得數據在緩存中的分布變得難以預測,且難以有效利用緩存空間。與此同時,gpgpu的大規模多線程特性進一步加劇了問題的復雜性,多個線程同時運行會導致大量的高速緩存爭用,使得片上高速緩存的強大功能往往難以得到充分發揮。因此,大量寶貴的緩存空間未能得到充分利用,這不僅浪費了硬件資源,還嚴重影響了gpgpu的整體性能和效率。
2、為了應對這一復雜問題,研究人員一直在探索各種可能的解決方案。其中,一種被廣泛研究的方法是調整緩存行的大小。實驗數據清晰地表明,通過采用較小的緩存行,可以在一定程度上提高緩存空間的利用率,使得更多的數據能夠被緩存到有限的緩存空間中。然而,這種方法并非沒有代價,由于緩存行的減小,系統需要更加頻繁地處理緩存請求,這增加了緩存管理的復雜性和開銷,進而可能導致性能上的顯著損失。
技術實現思路
1、本專利技術提供了一種緩存請求處理方法、設備及介質,用以解決現有技術縮減緩存行大小后,系統需要更加頻繁地處理緩存請求,增加了緩存管理的復雜性和開銷的技術問題
2、第一方面,本專利技術提供了一種緩存請求處理方法,包括:
3、將n個塊請求合并為一個總請求,其中,n為正整數;
4、確定所述總請求中的任一塊請求對應的目標數據塊是否緩存命中;
5、若所述目標數據塊緩存命中,則從緩存中獲取所述目標數據塊對應的緩存數據;
6、若所述目標數據塊緩存未命中,則將未命中請求發送給l2緩存,在l1緩存中為所述目標數據塊分配目標緩存空間,從所述目標緩存空間中獲取對應的緩存數據。
7、在一種可行的實施方式中,將n個塊請求合并為一個總請求,包括:
8、將32個連續的字節請求合并為一個塊請求;
9、將4個塊請求合并為一個總請求。
10、在一種可行的實施方式中,所述緩存包括至少兩個緩存組,所述緩存組包括至少兩個緩存行,所述緩存行包括n個緩存數據塊,所述緩存數據塊的大小與所述目標數據塊的大小相同,所述緩存數據塊包括tag和塊偏移,所述塊請求包括tag、組索引和塊間偏移,確定所述總請求中的任一塊請求對應的目標數據塊是否緩存命中,包括:
11、基于所述塊請求中的塊間偏移,確定所述塊請求對應的目標數據塊的目標數據塊掩碼;
12、基于所述塊請求的tag、組索引和所述目標數據塊掩碼,與所述緩存中的緩存數據塊的tag和塊偏移量進行比對,確定所述目標數據塊是否緩存命中。
13、在一種可行的實施方式中,基于所述塊請求的tag、組索引和所述目標數據塊掩碼,與所述緩存中的緩存數據塊的tag和塊偏移量進行比對,確定所述目標數據塊是否緩存命中,包括:
14、基于所述塊請求中的塊間偏移,確定所述塊請求對應的目標數據塊的目標數據塊掩碼;
15、基于所述塊請求中的組索引,在緩存中確定出所述組索引對應的第一緩存數據塊;
16、基于所述第一緩存數據塊的tag,在所述第一緩存數據塊中,確定出與所述塊請求中的tag一致的第二緩存數據塊;
17、基于所述第二緩存數據塊的塊偏移量,確定所述第二緩存數據塊的第二緩存數據塊掩碼;
18、基于所述第二緩存數據塊掩碼,在第二緩存數據塊中,確定是否存在與所述目標數據塊掩碼一致的第三緩存數據塊;
19、若存在,則確定所述目標數據塊緩存命中,且所述目標數據塊對應的緩存數據塊為所述第三緩存數據塊。
20、在一種可行的實施方式中,所述塊請求中的tag和所述緩存數據塊中的tag均由公有tag和私有tag兩部分組成,所述緩存中存在至少兩個具有相同公有tag的緩存數據塊,所述至少兩個具有相同公有tag的緩存數據塊具有不同的私有tag,基于所述第一緩存數據塊的tag,在所述第一緩存數據塊中,確定出與所述塊請求中的tag一致的第二緩存數據塊,包括:
21、基于所述第一緩存數據塊的公有tag,在所述第一緩存數據塊中,確定出與塊請求中的公有tag一致的第四緩存數據塊;
22、基于所述第四緩存數據塊的私有tag,在所述第四緩存數據塊中,確定出與塊請求中的私有tag一致的第二緩存數據塊。
23、在一種可行的實施方式中,所述緩存數據塊包括有效位,若所述目標數據塊緩存未命中,則將未命中請求發送給l2緩存,在l1緩存中為所述目標數據塊分配目標緩存空間,從所述目標緩存空間中獲取對應的緩存數據,包括:
24、若所述目標數據塊緩存未命中,則將未命中請求發送給l2緩存,確定在l1緩存中是否存在與所述目標數據塊的公有tag匹配的空閑緩存數據塊,所述空閑緩存數據塊的有效位的值為0;
25、若存在,則將所述空閑緩存數據塊確定為所述目標數據塊的目標緩存空間,從所述目標緩存數據塊中獲取對應的緩存數據。
26、在一種可行的實施方式中,述緩存數據塊包括nru位,所述nru位的值為0或1,所述nru位的值為1表征所述緩存數據塊在第一預設時間內存在使用記錄,所述nru位的值為0表征所述緩存數據塊在第一預設時間內不存在使用記錄,在確定在l1緩存中是否存在與所述目標數據塊的公有tag匹配的空閑緩存數據塊之后,所述方法還包括:
27、若不存在,將nru位的值為0的緩存數據塊確定為所述目標數據塊的目標緩存空間,從所述目標緩存空間中獲取對應的緩存數據。
28、在一種可行的實施方式中,在確定所述總請求中的任一塊請求對應的目標數據塊是否緩存命中之前,所述方法還包括:
29、在所述目標數據塊的訪問記錄表中記錄所述目標數據塊的訪問時間戳;
30、基于所述塊請求對應的目標數據塊的訪問記錄表,確定所述目標數據塊是否為熱數據塊;
31、在至少兩個所述熱數據塊的tag相同時,將所述至少兩個熱數據塊確定為熱關聯數據塊;
32、在所述至少兩個熱關聯數據塊發生緩存命中時,移動所述至少兩個熱關聯數據塊中的至少一個,以使所述至少兩個熱關聯數據塊在緩存中的存儲位置小于預設距離閾值。
33、在一種可行的實施方式中,基于所述塊請求對應的目標數據塊的訪問記錄表,確定所述目標數據塊是否為熱數據塊,包括:
34、計算所述目標數據塊的當前訪問時間戳與最近一次訪問的訪問時間戳之間的訪問時間差;
35、基于所述目標數據塊的訪問記錄表,確定所述目標數據塊在第二預設時間內的訪問次數;
36、在所述訪問時間差小于預設時間差閾值,且所述本文檔來自技高網...
【技術保護點】
1.一種緩存請求處理方法,其特征在于,所述方法包括:
2.根據權利要求1所述的一種緩存請求處理方法,其特征在于,將n個塊請求合并為一個總請求,包括:
3.根據權利要求1所述的一種緩存請求處理方法,其特征在于,所述緩存包括至少兩個緩存組,所述緩存組包括至少兩個緩存行,所述緩存行包括n個緩存數據塊,所述緩存數據塊的大小與所述目標數據塊的大小相同,所述緩存數據塊包括tag和塊偏移,所述塊請求包括tag、組索引和塊間偏移,確定所述總請求中的任一塊請求對應的目標數據塊是否緩存命中,包括:
4.根據權利要求3所述的一種緩存請求處理方法,其特征在于,所述塊請求中的tag和所述緩存數據塊中的tag均由公有tag和私有tag兩部分組成,所述緩存中存在至少兩個具有相同公有tag的緩存數據塊,所述至少兩個具有相同公有tag的緩存數據塊具有不同的私有tag,基于所述第一緩存數據塊的tag,在所述第一緩存數據塊中,確定出與所述塊請求中的tag一致的第二緩存數據塊,包括:
5.根據權利要求4所述的一種緩存請求處理方法,其特征在于,所述緩存數據塊包括有效位,若所
6.根據權利要求5所述的一種緩存請求處理方法,其特征在于,所述緩存數據塊包括NRU位,所述NRU位的值為0或1,所述NRU位的值為1表征所述緩存數據塊在第一預設時間內存在使用記錄,所述NRU位的值為0表征所述緩存數據塊在第一預設時間內不存在使用記錄,在確定在L1緩存中是否存在與所述目標數據塊的公有tag匹配的空閑緩存數據塊之后,所述方法還包括:
7.根據權利要求1所述的一種緩存請求處理方法,其特征在于,在確定所述總請求中的任一塊請求對應的目標數據塊是否緩存命中之前,所述方法還包括:
8.根據權利要求7所述的一種緩存請求處理方法,其特征在于,基于所述塊請求對應的目標數據塊的訪問記錄表,確定所述目標數據塊是否為熱數據塊,包括:
9.一種緩存請求處理設備,其特征在于,所述設備包括:
10.一種非易失性計算機存儲介質,其特征在于,所述存儲介質為非易失性計算機可讀存儲介質,所述非易失性計算機可讀存儲介質存儲有至少一個程序,每個所述程序包括指令,所述指令當被終端執行時,使所述終端執行根據權利要求1-8中任一項所述的一種緩存請求處理方法。
...【技術特征摘要】
1.一種緩存請求處理方法,其特征在于,所述方法包括:
2.根據權利要求1所述的一種緩存請求處理方法,其特征在于,將n個塊請求合并為一個總請求,包括:
3.根據權利要求1所述的一種緩存請求處理方法,其特征在于,所述緩存包括至少兩個緩存組,所述緩存組包括至少兩個緩存行,所述緩存行包括n個緩存數據塊,所述緩存數據塊的大小與所述目標數據塊的大小相同,所述緩存數據塊包括tag和塊偏移,所述塊請求包括tag、組索引和塊間偏移,確定所述總請求中的任一塊請求對應的目標數據塊是否緩存命中,包括:
4.根據權利要求3所述的一種緩存請求處理方法,其特征在于,所述塊請求中的tag和所述緩存數據塊中的tag均由公有tag和私有tag兩部分組成,所述緩存中存在至少兩個具有相同公有tag的緩存數據塊,所述至少兩個具有相同公有tag的緩存數據塊具有不同的私有tag,基于所述第一緩存數據塊的tag,在所述第一緩存數據塊中,確定出與所述塊請求中的tag一致的第二緩存數據塊,包括:
5.根據權利要求4所述的一種緩存請求處理方法,其特征在于,所述緩存數據塊包括有效位,若所述目標數據塊緩存未命中,則將未命中請求發送給l2緩存,在l1緩存中為所述目標...
【專利技術屬性】
技術研發人員:陳建新,王帥,趙鑫鑫,姜凱,
申請(專利權)人:山東浪潮科學研究院有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。