高速緩沖存儲器Cache地址的映射處理方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明實施例涉及數(shù)據(jù)存儲技術,尤其涉及一種高速緩沖存儲器Cache地址的映射處理方法和裝置。
【背景技術】
[0002]隨著數(shù)據(jù)集的增大和處理器核數(shù)的增多,頁表緩沖(Translat1n LookasideBuffer ;簡稱TLB)和高速緩沖存儲器(Cache)面臨著更嚴峻的挑戰(zhàn)。TLB競爭問題:在多數(shù)體系結構中,每次訪存都需要先查詢頁表,把虛擬地址轉換為物理地址,然后用物理地址索引Cache。頁表通常很大,分級存儲在內存中。TLB作為頁表的緩沖,緩存少量經(jīng)常使用的頁表項,存儲在離CPU核很近的位置,這樣如果要查詢的虛實映射關系存儲在TLB中,SPTLB訪問命中(Hit),可以大大加速虛實地址轉換過程。但是如果TLB經(jīng)常訪問缺失(Miss),仍然需要到內存中分多級查找頁表得到對應的頁表項,需要經(jīng)歷很長的訪問延遲。隨著大數(shù)據(jù)時代數(shù)據(jù)集的不斷增大,這種TLB的競爭只會越來越激烈,從而導致更大比例的TLBmiss,嚴重影響性能。Cache競爭問題:在大多數(shù)的多核體系結構中,最后一級Cache (LastLevel Cache ;簡稱LLC)為多核所共享,這樣核與核之間就會對LLC產(chǎn)生競爭,導致進程之間相互替換cache,使cache利用率下降。特別是,有些程序的局部性比較差,但是訪問頻繁、工作集很大,這樣就會占用較多的LLC容量,從而嚴重影響其他進程的性能。隨著核數(shù)的增多,LLC的競爭問題會越來越嚴重。
[0003]現(xiàn)有技術中一般通過大頁面(Huge Page)和頁著色劃分Cache (Page-Coloringbased Cache Partit1n)技術進行性能優(yōu)化。其中,進程需要的頁表項數(shù)為工作集大小/頁面大小,進程的工作集隨著應用需求會不斷增大,這時候增大頁面大小,可以顯著的減少進程所需要的頁表項數(shù)。比如,普通頁面為4KB,使用2MB的大頁面,可以把進程需要的頁表項數(shù)降低512倍,大大減輕TLB的競爭壓力,減少TLB Miss,從而提高性能。
[0004]一種減少LLC競爭的方法是,靜態(tài)或動態(tài)的把LLC劃分給不同的核(進程),使之相互隔離,不產(chǎn)生競爭,這種技術稱為劃分cache(Cache Partit1n)。頁著色(page-coloring)是一種軟件實現(xiàn)劃分cache的方法,具有易于使用、不需要修改硬件的優(yōu)點。圖1為現(xiàn)有技術頁著色劃分Cache的原理示意圖,如圖1所示,圖1顯示了頁著色劃分Cache的原理。從操作系統(tǒng)的角度,物理地址PA可以分為兩部分:物理頁面號(PhysicalPage Number ;PPN)和頁偏移(Page Offset);從 Cache 的角度,物理地址(PhysicalAddress ;簡稱PA)可以分為三部分:高速緩沖存儲器標簽(Cache Tag)、高速緩沖存儲器集合索引(Cache Set Index)和高速緩沖存儲器塊偏移(Cache Block Offset)。其中操作系統(tǒng)可以控制PPN,但是不能控制Page Offset JiSPage Offset的位數(shù)為N,則2N即為頁面大小。PPN和Cache Set Index的交集稱為著色位(color bits)。操作系統(tǒng)通過控制PPN(即控制著色位),可以使地址映射到指定的Cache Set中。這樣,給不同的進程分配不同的著色位,即可以使其映射到不同的Cache Set中,從而實現(xiàn)相互隔離。
[0005]圖2為現(xiàn)有技術中大頁面與頁著色劃分Cache的矛盾示意圖,如圖2所示,大頁面的Page Offset域的位數(shù)變多(因為頁面更大,需要更多位表示頁內偏移),而PPN域的位數(shù)變少,并不再與Cache set index相交。沒有著色位的存在,使得操作系統(tǒng)不能再通過控制PPN的方式,控制Cache Set Index。因此在現(xiàn)有的硬件體系結構下,大頁面技術和頁著色劃分Cache技術存在矛盾,導致兩者無法同時使用。
【發(fā)明內容】
[0006]本發(fā)明各實施例針對現(xiàn)有技術中大頁面技術和頁著色劃分Cache技術無法同時使用的缺陷,提供一種高速緩沖存儲器Cache地址的映射處理方法和裝置。
[0007]本發(fā)明實施例一方面提供一種高速緩沖存儲器Cache地址的映射處理方法,包括:
[0008]獲取處理核發(fā)送的訪問地址所對應的物理地址,所述物理地址包括物理頁面號PPN和頁偏移;
[0009]將所述物理地址映射成Cache地址,所述Cache地址依次包括第一高速緩沖存儲器集合索引Cache Set Indexl、高速緩沖存儲器標簽Cache Tag、第二高速緩沖存儲器集合索引Cache Set Index2,以及高速緩沖存儲器塊偏移Cache Block Offset ;其中,位于高位的所述Cache Set Indexl和位于低位的所述Cache Set Index2共同組成高速緩沖存儲器集合索引Cache Set Index,且所述Cache Set Indexl位于所述PPN的覆蓋范圍內。
[0010]本發(fā)明實施例另一方面還提供另一種高速緩沖存儲器Cache地址的映射處理方法,包括:
[0011]獲取處理核發(fā)送的訪問地址所對應的偽物理地址,所述偽物理地址包括偽物理頁面號和偽頁偏移;其中,所述偽物理頁面號中包括第一地址部分,所述偽頁偏移包括第二地址部分,所述第一地址部分與所述第二地址部分大小相同;
[0012]通過將所述第一地址部分與所述第二地址部分互換位置以完成將所述偽物理地址映射成真實物理地址,所述真實物理地址包括真實物理頁面號PPN和頁偏移;其中,所述PPN包括所述第二地址部分,所述頁偏移包括所述第一地址部分;
[0013]將所述真實物理地址映射成Cache地址,所述Cache地址包括高速緩沖存儲器標簽Cache Tag、高速緩沖存儲器集合索引Cache Set Index,以及高速緩沖存儲器塊偏移Cache Block Offset ;其中,所述第一地址部分位于所述Cache Set Index的覆蓋范圍內。
[0014]本發(fā)明實施例另一方面提供一種高速緩沖存儲器Cache地址的映射處理裝置,包括:
[0015]第一獲取模塊,用于獲取處理核發(fā)送的訪問地址所對應的物理地址,所述物理地址包括物理頁面號PPN和頁偏移;
[0016]第一映射模塊,用于將所述物理地址映射成Cache地址,所述Cache地址依次包括第一高速緩沖存儲器集合索引Cache Set Indexl、高速緩沖存儲器標簽Cache Tag、第二高速緩沖存儲器集合索引Cache Set Index2,以及高速緩沖存儲器塊偏移Cache BlockOffset ;其中,位于高位的所述Cache Set Indexl和位于低位的所述Cache Set Index2共同組成高速緩沖存儲器集合索引CacheSet Index,且所述Cache Set Indexl位于所述PPN的覆蓋范圍內。
[0017]本發(fā)明實施例另一方面還提供另一種高速緩沖存儲器Cache地址的映射處理裝置,包括:
[0018]第二獲取模塊,獲取處理核發(fā)送的訪問地址所對應的偽物理地址,所述偽物理地址包括偽物理頁面號和偽頁偏移;其中,所述偽物理頁面號中包括第一地址部分,所述偽頁偏移包括第二地址部分,所述第一地址部分與所述第二地址部分大小相同;
[0019]第二映射模塊,用于通過將所述第一地址部分與所述第二地址部分互換位置以完成將所述偽物理地址映射成真實物理地址,所述真實物理地址包括真實物理頁面號PPN和頁偏移;其中,所述PPN包括所述第二地址部分,所述頁偏移包括所述第一地址部分;
[0020]第三映射模塊,用于將所述真實物