亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

高速緩存cache存儲器系統(tǒng)及訪問緩存行cacheline的方法

文檔序號:8361364閱讀:723來源:國知局
高速緩存cache存儲器系統(tǒng)及訪問緩存行cache line的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù),尤其涉及一種高速緩存cache存儲器系統(tǒng)及在該cache存儲器系統(tǒng)中訪問緩存行cache line的方法。
【背景技術(shù)】
[0002]中央處理器(Central Process Unit,CPU)在運算時需要從主存(main memory)中讀取數(shù)據(jù),由于主存的讀寫速度比CPU的操作速度慢得多,使得CPU的處理能力不能充分發(fā)揮,為了緩和CPU的操作速度和主存讀寫速度不匹配的矛盾,通常在CPU和主存之間設(shè)置高速緩存(cache)存儲器。
[0003]cache存儲器與主存之間以緩存行(cache line)為單位進行數(shù)據(jù)交換,緩存行也可以稱為緩存塊(cache block)。當CPU讀取數(shù)據(jù)或者指令時,將讀取到的數(shù)據(jù)或指令保存到cache line中。當CPU第二次需要讀取相同或相近的數(shù)據(jù)時可以從相應(yīng)的cache line獲得數(shù)據(jù)。由于CPU訪問cache的速度遠超過訪問主存速度,從而大大提升了系統(tǒng)整體性會K。
[0004]cache存儲器包括標簽隨機接入存儲器(Tag RAM)和數(shù)據(jù)隨機接入存儲器(DataRAM),其中,Tag RAM 用于存儲 cache 中 cache line 的索引地址(Index Address),Data RAM用于存放cache中cache line的數(shù)據(jù)。CPU訪問cache工作流程為先訪問Tag RAM來判斷cache line是否在cache中,如果命中則直接去Data RAM中取數(shù)據(jù);如果沒命中,則去主存中取數(shù)據(jù)。
[0005]相干集線器接口(CHI,Coherent Hub Interface)是一種總線互連協(xié)議,用于連接多個片上系統(tǒng)(System on Chip,SoC),是一種可擴展的網(wǎng)絡(luò)結(jié)構(gòu)。CHI協(xié)議中將cacheline狀態(tài)分為5類,依次為無效(Invalid,〗)狀態(tài)、獨占(Unique Clean,UC)狀態(tài)、修改獨占(Unique Dirty,UD)狀態(tài)、共享(Shared Clean, SC)狀態(tài)和修改共享(Shared Dirty,SD)狀態(tài),其中,I狀態(tài)用于指示該cache line中不存在數(shù)據(jù);UC狀態(tài)用于指示該cache line只存在于一個緩存cache中且該cache line包括干凈數(shù)據(jù),干凈數(shù)據(jù)是指該數(shù)據(jù)從主存中讀出來后沒有被修改,仍然與主存中的數(shù)據(jù)保持一致;UD狀態(tài)用于指示該cache line只存在于一個cache中且該cache line包括臟(dirty)數(shù)據(jù),臟數(shù)據(jù)是指該數(shù)據(jù)從主存中讀出來后被修改,與主存中的數(shù)據(jù)不一致;SC狀態(tài)用于指示該cache line存在于多個緩存cache中且該cache line包括干凈數(shù)據(jù);SD狀態(tài)用于指示該cache line存在于多個cache中且該cache line包括臟數(shù)據(jù)。
[0006]進一步,CHI協(xié)議中定義了 cache line處于上述各種狀態(tài)時要求方可以對該cache line所執(zhí)行的操作,該要求方通常為某一級緩存,以訪問第二級緩存L2cache中cache line為例,這些操作具體包括:
[0007]I)在L2 cache中的cache line處于I狀態(tài)時,無法訪問該L2 cache中該cacheline的數(shù)據(jù);
[0008]2)在L2 cache中的cache line處于UC狀態(tài)時,如果要求方要求訪問L2 cache中該cache line的數(shù)據(jù),該L2cache可以選擇性返回該cache line的數(shù)據(jù)給要求方,SP返回或者不返回該cache line的數(shù)據(jù)給要求方;
[0009]3)在L2 cache中的cache line處于UD狀態(tài)時,如果要求方要求訪問L2 cache中該cache line的數(shù)據(jù),該L2 cache必須返回該cache line的數(shù)據(jù)給要求方;
[0010]4)處于SC或SD狀態(tài)的cache line的數(shù)據(jù)不能被修改,除非將處于SC或SD狀態(tài)的cache line轉(zhuǎn)化成其他狀態(tài),并且根據(jù)數(shù)據(jù)一致性原則,任意一級緩存中處于SC或SD狀態(tài)的cache line的數(shù)據(jù)都是最新的。
[0011]在多核通信處理芯片中,一般使用多層級cache結(jié)構(gòu),即將cache分為多個層級,典型的是將cache分為三個層級,圖1為三層cache的結(jié)構(gòu)示意圖,其中,第一層級cache (LI cache),第二層級 cache (L2 cache)和第三層級 cache (L3cache)的訪問速度依次遞減,容量依次遞增,其中,LI cache包括LI cache 1、LI cache 2、LI cache 3和LIcache 4,可分別被 4 個 CPU 訪問,L2 cache 包括 L2 cache A 和 L2 cache B,LI cache 相對于L2 cache而言是上一級cache,L2 cache相對于L3 cache而言是上一級cache。
[0012]現(xiàn)有技術(shù)提供了一種采用獨占型(Exclusive)結(jié)構(gòu)設(shè)計的多級cache,它的特點是使不同層級的cache之間沒有交集,即保證兩級cache之間存放不同的cache line的數(shù)據(jù),避免出現(xiàn)兩級cache都存放相同的cache line的數(shù)據(jù),從而實現(xiàn)cache容量的最大化。以L2 cache和L3 cache為例,在L2 cache中存有某條cache line的數(shù)據(jù),那么在L3cache中將不再存放該條cache line的數(shù)據(jù)。在多核通信處理芯片中,假設(shè)L2 cache A中存有某條cache line的數(shù)據(jù)而L2 cache B需要訪問該條cache line的數(shù)據(jù),則L2 cacheB發(fā)出請求到L3 cache后,由于在L3 cache line中沒有存放該條cache line的數(shù)據(jù),因此L3 cache需要向L2 cache A發(fā)出訪問該條cache line的請求以從L2 cache A中獲取該條cache line的數(shù)據(jù)。
[0013]然而,CHI協(xié)議中允許L2 cache A在接收到訪問請求后不返回數(shù)據(jù)或者返回部分數(shù)據(jù),比如,在L2 cache A中cache line處于UC狀態(tài)時,L2 cache A接收到訪問該條cache line的請求后,可以不返回該cache line的數(shù)據(jù)給要求方,因此L2 cache B需要去主存中讀取該cache line的數(shù)據(jù),而去主存中讀取數(shù)據(jù)延遲很大。因此,基于CHI協(xié)議,采用exclusive結(jié)構(gòu)設(shè)計cache存儲器系統(tǒng)將降低cache系統(tǒng)性能。
[0014]現(xiàn)有技術(shù)還提供了一種采用包容型(Inclusive)結(jié)構(gòu)設(shè)計多級cache,它的特點是下一級cache備份存儲上一級cache存放的所有cache line的數(shù)據(jù),保證上一級cache存放的cache line的數(shù)據(jù)在下一級cache中存在備份。同樣地,以L2 cache和L3 cache為例,在L2 cache中存放的cache line的數(shù)據(jù),在L3 cache中將必然存放。在多核通信處理芯片中,假設(shè)L2 cache A存放某條cache line的數(shù)據(jù)而L2 cache B需要訪問該條cache line的數(shù)據(jù),則L2 cache B發(fā)出訪問該條cache line的請求到L3 cache后,如果L3 cache中該條cache line的數(shù)據(jù)是最新的,貝Ij直接在L3 cache中讀取該條cache line,而無需去L2 cache A中讀取該條cache line的數(shù)據(jù);如果L3 cache中該條cache line的數(shù)據(jù)不是最新的,貝Ij需要向L2 cache A發(fā)出訪問該條cache line的請求以從L2 cacheA中獲取該條cache line的數(shù)據(jù)。
[0015]在CHI協(xié)議中,雖然采用inclusive結(jié)構(gòu)設(shè)計多級cache可以保證如果L2cache A不返回數(shù)據(jù)或返回部分數(shù)據(jù),L2 cache B可以從L3 cache中得到cache line的數(shù)據(jù),然而inclusive結(jié)構(gòu)對容量的浪費很大,在上一級cache存放的所有cache line的數(shù)據(jù)在下一級cache中也有存放,特別是當CPU核數(shù)很多時,對下一級cache的容量要求很高。

【發(fā)明內(nèi)容】

[0016]本發(fā)明實施例提供了一種高速緩存cache存儲器系統(tǒng)及訪問緩存行cache line的方法,采用混合RAM結(jié)構(gòu)設(shè)計的cache存儲器系統(tǒng)能夠提高cache存儲器系統(tǒng)的性能。
[0017]為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0018]第一方面,本發(fā)明提供了一種cache存儲器系統(tǒng),包括:
[0019]多個上一級緩存,每個上一級緩存包括多個緩存行cache line;
[0020]本級緩存,該本級緩存包括獨占型標簽隨機接入存儲器Exclusive Tag RAM和包容型標簽隨機接入存儲器Inclusive Tag RAM,其中,該Exclusive Tag RAM用于優(yōu)先存儲每個上一級緩存中狀態(tài)為修改獨占UD的第一 cache line的索引地址,該Inclusive TagRAM用于存儲每個上一級緩存中狀態(tài)為獨占UC、共享SC或修改共享SD的第二 cache line的索引地址,該第二 cache line的數(shù)據(jù)被備份存儲于該本級緩存中。
[0021]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,該多個上一級緩存包括第一緩存和第二緩存,該本級緩存包括數(shù)據(jù)隨機接入存儲器Data RAM,第二 cache line的數(shù)據(jù)具體被備份存儲于所述Data RAM ;
[0022]該第一緩存,用于向該本級緩存發(fā)送訪問第三cache line的請求;
[0023]該本級緩存,用于在接收所該第一緩存發(fā)出的訪問第三cache line的請求后,確定該第三cache line的索引地址位于Exclusive Tag RAM或Inclusive Tag RAM,并且確定該第三cache line的狀態(tài),根據(jù)該第三cache line的狀態(tài)確定將從第二緩存中獲取的該cache line的數(shù)據(jù)或者將該本級緩存的Data RAM中備份存儲的該第三cache line的數(shù)據(jù)發(fā)送給第一緩存。
[0024]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,該本級緩存具體用于:
[0025]在確定該第三cache line的狀態(tài)為UD時,該本級緩存將從第二緩存中獲取的該第三cache line的數(shù)據(jù)發(fā)送給第一緩存;或者,
[0026]在確定該第三cache line的狀態(tài)為SC或SD時,該本級緩存將該本級緩存的DataRAM中備份存儲的該第三cache line的數(shù)據(jù)發(fā)送給第一緩存;或者,
[0027]在確定該第三cache line的狀態(tài)為UC時,該本級緩存向第二緩存發(fā)出訪問該第三cache line的數(shù)據(jù)的請求,若接收到第二緩存發(fā)送的該第三cache line的數(shù)據(jù),則該本級緩存將從第二緩存中獲取的該第三cache line的數(shù)據(jù)發(fā)送給第一緩存;若接收到第二緩存發(fā)送的不發(fā)送該第三cache line的數(shù)據(jù)的指示,則該本級緩存將該本級緩存的DataRAM中備份存儲的該第三cache line的數(shù)據(jù)發(fā)送給第一緩存。
[0028]結(jié)合第一方面的第一或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,該本級緩存還包括狀態(tài)隨機接入存儲器Status RAM,該Status RAM用于記錄索引地址位于Exclusive Tag RAM或Inclusive Tag RAM中的cache line的狀態(tài),該本級緩存具體用于:根據(jù)Status RAM確定第三cache line的狀態(tài)。
[0029]結(jié)合第一方面以及第一方面的第一或第二或第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,在Exclusive Tag RAM中第一 cache
當前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1