專(zhuān)利名稱(chēng):片上多核處理器的高速緩存協(xié)作系統(tǒng)及其協(xié)作處理方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息處理系統(tǒng)的處理器的存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種片上多核處理
器的高速緩存協(xié)作系統(tǒng)及其協(xié)作處理方法。
背景技術(shù):
隨著集成電路工藝向納米級(jí)發(fā)展,不斷縮小的工藝尺寸滿(mǎn)足了芯片微型化、高速 度和更高的集成度方向發(fā)展。片上多核處理器(ChipMulti-Processor, CMP)是在20世紀(jì) 90年代出現(xiàn)的一種體系結(jié)構(gòu)設(shè)計(jì),最初是由美國(guó)斯坦福大學(xué)的研究人員提出,其思想是在 單個(gè)芯片上利用豐富的晶體管資源集成多個(gè)處理器核,通過(guò)多核并行執(zhí)行的方式開(kāi)發(fā)指令 級(jí)、線程級(jí)等各個(gè)層次并行度來(lái)提高性能。在片上多核處理器環(huán)境中,多核同時(shí)運(yùn)行,競(jìng)爭(zhēng) 訪問(wèn)單芯片有限的Cache、存儲(chǔ)帶寬等存儲(chǔ)資源,造成訪存沖突加劇,傳統(tǒng)的訪存瓶頸將變 得更加突出。 集成電路工藝進(jìn)入深亞微米階段帶來(lái)的一個(gè)顯著變化是互連線的延遲取代門(mén)延 遲而成為主導(dǎo)時(shí)延的主要因素。集成電路中信號(hào)的延遲由門(mén)延遲和互連線延遲兩部分構(gòu) 成。在深亞微米之前的集成電路設(shè)計(jì)中,由于互連線延遲極小,只須考慮門(mén)本身的延遲,因 此,芯片的設(shè)計(jì)可以分為邏輯設(shè)計(jì)與物理實(shí)現(xiàn)兩個(gè)相互獨(dú)立的階段。然而,進(jìn)入深亞微米階 段后,隨著晶體管特征尺寸的減小,門(mén)的速度越來(lái)越快,限制電路性能提高的主要因素不再 是開(kāi)關(guān)速度,而是互連延遲?;ミB延遲的產(chǎn)生主要有兩個(gè)方面一是因?yàn)殡娐窌r(shí)鐘頻率的提 升,信號(hào)的波長(zhǎng)進(jìn)入毫米或者微米級(jí),從而可以與互連線長(zhǎng)度相比擬,信號(hào)通過(guò)一定長(zhǎng)度的 連線需要消耗一定時(shí)間,該時(shí)延稱(chēng)為傳播時(shí)延;二是由于互連線間的電容耦合和電感耦合 作用而產(chǎn)生延遲。 為了緩解多核對(duì)訪存的壓力,多核處理器普遍采用在片上集成大容量Cache的方 式來(lái)提高存儲(chǔ)系統(tǒng)的性能。大容量Cache可以直接增大片上Cache命中率,減少片外訪存 的頻率,但由于Cache面積過(guò)大,分散在芯片的不同位置,在線延遲的影響下,同一層次但 不同距離的Cache訪問(wèn)呈現(xiàn)出不同的通訊延遲,即所謂的非一致Cache訪問(wèn)(Non-Uniform Catch Aceess, NUCA)。 到目前為止,片上多核處理器的二級(jí)Cache有兩種基本設(shè)計(jì)方案私有Cache和 共享Cache。私有結(jié)構(gòu)的CMP系統(tǒng),每個(gè)處理器核擁有自己獨(dú)立的二級(jí)Cache,這部分二級(jí) Cache與處理器核的一級(jí)Cache類(lèi)似,僅服務(wù)于所在結(jié)點(diǎn)的處理器核,不能直接為其它處 理器核所訪問(wèn),所以二級(jí)Cache的平均命中延遲相對(duì)較低但缺失率高;共享結(jié)構(gòu)的CMP系 統(tǒng)中,對(duì)二級(jí)Cache采用統(tǒng)一編址的管理策略,片上的處理器核都可以直接對(duì)所有的二級(jí) Cache進(jìn)行訪問(wèn),共享結(jié)構(gòu)中片上Cache資源擁有更加均衡和充分的利用率。由于CMP的目 標(biāo)應(yīng)用非常豐富,不同的程序會(huì)表現(xiàn)出顯著不同的訪存特征,甚至同一程序不同階段的表 現(xiàn)也會(huì)有很大差異。面對(duì)應(yīng)用行為特征的多樣性,共享或者私有二級(jí)Cache結(jié)構(gòu)難以對(duì)一 系列不同的應(yīng)用都提供較好的支持。 在NUCA結(jié)構(gòu)下,對(duì)于不同的工作負(fù)載,純私有設(shè)計(jì)和純共享設(shè)計(jì)都不能達(dá)到最優(yōu)的性能,為此學(xué)術(shù)界提出了混合Cache設(shè)計(jì)方案,即通過(guò)邏輯上的共享Cache結(jié)構(gòu)或者容量 共享策略擴(kuò)展的私有Cache結(jié)構(gòu),使得二級(jí)Cache資源可以被多個(gè)處理器核所共享。協(xié)作 Cache方案是混合Cache設(shè)計(jì)的典型代表之一, 一般是通過(guò)私有二級(jí)Cache間的相互協(xié)作來(lái) 降低訪存請(qǐng)求的平均延遲,在集中式一致性引擎的支持下完成容量竊取和Cache到Cache 的數(shù)據(jù)溢出。但傳統(tǒng)的協(xié)作Cache并未對(duì)協(xié)作策略進(jìn)行有效地控制和管理,這在負(fù)載類(lèi)型 日益復(fù)雜、工作集規(guī)模日趨龐大的情況下,會(huì)對(duì)性能帶來(lái)負(fù)面的影響。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種片上多核處理器的高速緩存協(xié)作系統(tǒng),解決了現(xiàn)有技術(shù)
中傳統(tǒng)的協(xié)作Cache并未對(duì)協(xié)作策略進(jìn)行有效地控制和管理,導(dǎo)致在負(fù)載類(lèi)型日益復(fù)雜、
工作集規(guī)模日趨龐大的情況下對(duì)性能帶來(lái)負(fù)面的影響等問(wèn)題。 為了解決現(xiàn)有技術(shù)中的這些問(wèn)題,本發(fā)明提供的技術(shù)方案是 —種片上多核處理器的高速緩存協(xié)作系統(tǒng),包括存儲(chǔ)器以及與存儲(chǔ)器耦合的片上 多核處理器,其特征在于所述多核處理器每個(gè)處理器核心均包括私有一級(jí)高速緩存和與一 級(jí)高速緩存嚴(yán)格包含關(guān)系的私有二級(jí)高速緩存;所述多核處理器所有處理器核心共有集中 式一致性目錄,所述集中式一致性目錄用于在一級(jí)高速緩存、二級(jí)高速緩存和存儲(chǔ)器中實(shí) 現(xiàn)一致性策略。 優(yōu)選的,所述一級(jí)高速緩存為私有一級(jí)指令和數(shù)據(jù)高速緩存,所述多核處理器每 個(gè)處理器核心在一級(jí)高速緩存內(nèi)設(shè)置有缺失隊(duì)列MissQ ;所述缺失隊(duì)列MissQ用于處理本 地處理器核心的請(qǐng)求或通過(guò)查找集中式一致性目錄向非本地處理器核心發(fā)出遠(yuǎn)程請(qǐng)求。
優(yōu)選的,所述缺失隊(duì)列MissQ處理本地處理器核心請(qǐng)求時(shí),用于接受和處理本地 處理器核心的數(shù)據(jù)訪問(wèn)請(qǐng)求或者查找集中式一致性目錄后由本地處理器核心處理里該數(shù) 據(jù)訪問(wèn)的一致性請(qǐng)求并訪問(wèn)二級(jí)高速緩存。 優(yōu)選的,所述多核處理器各個(gè)處理器核心間通過(guò)路由器連接,所述缺失隊(duì)列MissQ 通過(guò)路由器與非本地處理器核心通訊。 優(yōu)選的,每個(gè)處理器核心的一級(jí)高速緩存內(nèi)設(shè)置有回寫(xiě)隊(duì)列WrBQ,所述回寫(xiě)隊(duì)列 WrBQ用于在本地處理器核心中將一級(jí)高速緩存內(nèi)替換出來(lái)的臟數(shù)據(jù)寫(xiě)回到二級(jí)高速緩存 中;所述集中式一致性目錄包括所有處理器核心的二級(jí)高速緩存的數(shù)據(jù)特征位Tag。
本發(fā)明的另一目的在于提供一種片上多核處理器的高速緩存協(xié)作處理方法,其特 征在于所述方法包括以下步驟 (1)本地處理器核心對(duì)本地一級(jí)高速數(shù)據(jù)緩存進(jìn)行訪問(wèn)處理;訪問(wèn)成功則返回?cái)?shù) 據(jù)并退出;當(dāng)訪問(wèn)缺失時(shí)將訪問(wèn)狀態(tài)放到缺失隊(duì)列中,進(jìn)行步驟(2); (2)訪問(wèn)本地處理器核心二級(jí)高速緩存;當(dāng)二級(jí)高速緩存訪問(wèn)命中,則返回二級(jí) 高速緩存命中狀態(tài)給缺失隊(duì)列,通過(guò)缺失隊(duì)列把數(shù)據(jù)返回給一級(jí)高速緩存并退出;當(dāng)二級(jí) 高速緩存訪問(wèn)失效,則進(jìn)行步驟(3); (3)在集中式一致性目錄查找,當(dāng)在集中式一致性目錄中發(fā)現(xiàn)非本地的目標(biāo)處理 器核心上存在該數(shù)據(jù),則把缺失隊(duì)列中該二級(jí)高速緩存缺失請(qǐng)求經(jīng)過(guò)路由發(fā)送到目標(biāo)處理 器核心的缺失隊(duì)列中,目標(biāo)處理器核心處理缺失隊(duì)列中的該項(xiàng)請(qǐng)求,找到該數(shù)據(jù);如果在集 中式一致性目錄中未發(fā)現(xiàn)非本地處理器核心上存在該數(shù)據(jù),則進(jìn)行步驟(4);
(4)訪問(wèn)內(nèi)存,從內(nèi)存中讀取數(shù)據(jù)傳給本地二級(jí)高速緩存,退出。 優(yōu)選的,所述步驟(3)中當(dāng)目標(biāo)處理器核心有多個(gè)處理器核心時(shí),選擇序號(hào)最小
的處理器核心。 優(yōu)選的,所述步驟(3)還包括當(dāng)目標(biāo)處理器核心找到該數(shù)據(jù)后,當(dāng)目標(biāo)處理器核 心的缺失隊(duì)列請(qǐng)求為只讀且該數(shù)據(jù)為干凈的時(shí),將數(shù)據(jù)復(fù)制到目標(biāo)處理器核心上并對(duì)集中 式一致性目錄進(jìn)行適應(yīng)性修改;當(dāng)目標(biāo)處理器核心的缺失隊(duì)列請(qǐng)求為寫(xiě)請(qǐng)求或該數(shù)據(jù)為臟 數(shù)據(jù)時(shí),則將數(shù)據(jù)遷移到目標(biāo)處理器核心或其他處理器核心上并對(duì)集中式一致性目錄進(jìn)行 適應(yīng)性修改。 優(yōu)選的,所述方法中當(dāng)發(fā)生數(shù)據(jù)塊替換時(shí),如果集中式一致性目錄中發(fā)現(xiàn)該數(shù)據(jù) 塊存在多個(gè)副本,則無(wú)需遷移;若僅一個(gè)副本,則通過(guò)片上網(wǎng)絡(luò)將數(shù)據(jù)塊遷移到某個(gè)處理器 核心上,并同時(shí)修改集中式一致性目錄。 優(yōu)選的,所述方法中數(shù)據(jù)遷移過(guò)程中還進(jìn)行流媒體程序的判斷步驟;當(dāng)對(duì)一定時(shí) 間間隔內(nèi)待遷移數(shù)據(jù)的MPKI參數(shù)具有流特性時(shí),則停止數(shù)據(jù)遷移,直接復(fù)制到目標(biāo)處理器 核心上進(jìn)行處理。 相對(duì)于現(xiàn)有技術(shù)中的方案,本發(fā)明的優(yōu)點(diǎn)是 1.本發(fā)明技術(shù)方案中包括協(xié)作Cache的硬件結(jié)構(gòu)設(shè)計(jì)及Cache間協(xié)作的具體實(shí)現(xiàn) 過(guò)程,通過(guò)片上多核處理器上私有Cache間的協(xié)作來(lái)提高處理器性能,在模擬處理器環(huán)境 測(cè)試中顯示,采用本發(fā)明的協(xié)作Cache系統(tǒng)可以降低片上多核處理器Cache的平均訪存延 遲和失效率,提高Cache結(jié)構(gòu)可擴(kuò)展性。 2、本發(fā)明以物理上分布的私有二級(jí)Cache結(jié)構(gòu)為基礎(chǔ),通過(guò)多個(gè)二級(jí)C ache體之
間的相互協(xié)作形成一個(gè)邏輯上共享的Cache結(jié)構(gòu),該協(xié)作Cache存儲(chǔ)系統(tǒng)實(shí)現(xiàn)了嚴(yán)格包含
關(guān)系,通過(guò)片上網(wǎng)絡(luò)來(lái)完成數(shù)據(jù)的遷移,并且通過(guò)了流感知協(xié)作技術(shù)來(lái)提高處理器性能,從
而使協(xié)作Cache具有平均訪存延遲小,Cache缺失率低,可擴(kuò)展性好等優(yōu)點(diǎn)。 3、本發(fā)明技術(shù)方案的硬件設(shè)計(jì)中在一級(jí)Cache和二級(jí)Cache之間保證了嚴(yán)格的包
含關(guān)系,從而降低了一致性目錄的硬件開(kāi)銷(xiāo),同時(shí)目前商用多核處理器大多采用包含式設(shè)
計(jì),因此本發(fā)明提出的協(xié)作Cache具有較強(qiáng)的實(shí)用性。另外,本發(fā)明數(shù)據(jù)遷移時(shí)直接在處理
器核之間進(jìn)行數(shù)據(jù)遷移,不需要受到一致性引擎的控制,避免了在數(shù)據(jù)遷移時(shí)一致性引擎
成為系統(tǒng)瓶頸,增強(qiáng)了系統(tǒng)的可擴(kuò)展性;本發(fā)明的另一優(yōu)點(diǎn)在于本發(fā)明技術(shù)方案中采用流
感知協(xié)作技術(shù)來(lái)減少流媒體程序?qū)ζ渌幚砥骱硕?jí)Cache的污染,保證多核系統(tǒng)的全局
吞吐量。
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述 圖1為本發(fā)明實(shí)施例帶有集中式一致性目錄的協(xié)作Cache系統(tǒng)的結(jié)構(gòu)示意圖; 圖2為本發(fā)明實(shí)施例四核處理器的P0處理器臨近選擇層次圖; 圖3為十六核處理器的P0處理器臨近選擇層次圖; 圖4為gobmk(SPEC 2006)MPKI隨Cache容量的變化關(guān)系圖; 圖5為bwaves (SPEC 2006) MPKI隨Cache容量的變化關(guān)系圖; 圖6為本發(fā)明實(shí)施例模擬測(cè)試中協(xié)作Cache相對(duì)于共享Cache的加速比圖。
具體實(shí)施例方式以下結(jié)合具體實(shí)施例對(duì)上述方案做進(jìn)一步說(shuō)明。應(yīng)理解,這些實(shí)施例是用于說(shuō)明 本發(fā)明而不限于限制本發(fā)明的范圍。實(shí)施例中采用的實(shí)施條件可以根據(jù)具體廠家的條件做 進(jìn)一步調(diào)整,未注明的實(shí)施條件通常為常規(guī)實(shí)驗(yàn)中的條件。
實(shí)施例 本實(shí)施例采用仿真方法技術(shù)實(shí)現(xiàn)了多核處理器上的協(xié)作Cache。采用基于
Simplescalar的多核模擬器,組件的相關(guān)配置參數(shù)如表1所示,該配置實(shí)現(xiàn)的片上多核處
理器的硬件結(jié)構(gòu)如圖l所示。 表l模擬器相關(guān)配置參數(shù)
組件參數(shù)
處理器核數(shù)目4
處理器核4發(fā)射,亂序執(zhí)行
塊大小32字節(jié)
Ll指令/數(shù)據(jù)Cache64KB,4路組相連,l拍訪存延遲
L2 Cache 1MB,4路組相連,4拍訪存延遲
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)2x2 二維Mesh結(jié)構(gòu)
片上網(wǎng)絡(luò)點(diǎn)到點(diǎn),每跳2拍時(shí)鐘延遲
Memory250拍訪問(wèn)延遲 片上多核處理器的每個(gè)處理器核擁有私有一級(jí)指令和數(shù)據(jù)Cache,同時(shí)還擁有一 個(gè)私有二級(jí)Cache體, 一級(jí)Cache和二級(jí)Cache是嚴(yán)格的包含關(guān)系。每個(gè)處理器核擁有一 個(gè)缺失隊(duì)列(MissQ),該缺失隊(duì)列接受和處理各個(gè)處理器核的數(shù)據(jù)訪問(wèn)請(qǐng)求或者一致性請(qǐng) 求并訪問(wèn)二級(jí)Cache或者路由器,它處理本地或者遠(yuǎn)程的請(qǐng)求;每個(gè)處理器核擁有一個(gè)回 寫(xiě)隊(duì)列(WrBQ),該回寫(xiě)隊(duì)列把一級(jí)Cache中替換出來(lái)的臟數(shù)據(jù)寫(xiě)回到二級(jí)Cache中,回寫(xiě) 隊(duì)列只處理本地請(qǐng)求。整個(gè)多核片上處理器擁有一個(gè)集中式一致性目錄(CCD),集中式一 致性目錄是由所有核二級(jí)Cache的Tag組成的一個(gè)集中式目錄。各個(gè)核之間是通過(guò)路由器 (Router)來(lái)連接的。 本實(shí)施例的協(xié)作Cache系統(tǒng)支持高速緩存一致性協(xié)議,不同處理器核心的Cache 間簡(jiǎn)單的數(shù)據(jù)傳輸和查找過(guò)程包括如下幾個(gè)步驟 1)處理器核對(duì)本地一級(jí)Cache進(jìn)行訪問(wèn)。訪問(wèn)成功則返回?cái)?shù)據(jù),退出;訪問(wèn)缺失 則把缺失狀態(tài)放到缺失隊(duì)列中,轉(zhuǎn)步驟2 ; 2)在缺失隊(duì)列中對(duì)一級(jí)Cache缺失項(xiàng)進(jìn)行處理,處理的結(jié)果是訪問(wèn)二級(jí)Cache。如 果二級(jí)Cache訪問(wèn)命中,那么返回二級(jí)Cache命中狀態(tài)給缺失隊(duì)列,通過(guò)缺失隊(duì)列把數(shù)據(jù)返 回給一級(jí)Cache,退出;如果二級(jí)Cache訪問(wèn)失效,那么查找集中式一致性目錄,轉(zhuǎn)步驟3 ;
3)如果在集中式一致性目錄中發(fā)現(xiàn)其它核上存在該數(shù)據(jù),那么把缺失隊(duì)列中該二
級(jí)Cache缺失請(qǐng)求經(jīng)過(guò)路由發(fā)送到存在該數(shù)據(jù)的處理器(處理器編號(hào)最小的那個(gè)處理器)
的缺失隊(duì)列中,轉(zhuǎn)步驟4;如果其它核上不存在該數(shù)據(jù),那么訪問(wèn)內(nèi)存,從內(nèi)存中讀取數(shù)據(jù)
傳給二級(jí)Cache,從而可能導(dǎo)致二級(jí)Cache把數(shù)據(jù)遷移到其它處理器核上,退出; 4)目標(biāo)核處理缺失隊(duì)列中的該項(xiàng)請(qǐng)求,找到數(shù)據(jù)。如果該請(qǐng)求是只讀的并且數(shù)據(jù)
是干凈的,那么把數(shù)據(jù)復(fù)制到目標(biāo)核上。如果該請(qǐng)求是寫(xiě)請(qǐng)求或者查找的數(shù)據(jù)是臟的數(shù)據(jù),
那么把該數(shù)據(jù)遷移到目標(biāo)核上。以上操作要對(duì)集中式一致性目錄做相應(yīng)的修改。 基于私有二級(jí)Cache實(shí)現(xiàn)的協(xié)作Cache,通過(guò)多個(gè)二級(jí)Cache體之間的相互協(xié)作形
成一個(gè)邏輯上共享的Cache結(jié)構(gòu),它主要涉及以下四個(gè)方面的問(wèn)題。 (1) Cache到Cache之間的數(shù)據(jù)傳輸方法 本實(shí)施例所提出的協(xié)作Cache設(shè)計(jì)方案實(shí)現(xiàn)了 Cache到Cache的干凈數(shù)據(jù)傳輸, 這種干凈數(shù)據(jù)的傳輸需要Cache —致性協(xié)議的支持,其中最重要的一點(diǎn)就是當(dāng)片內(nèi)有多個(gè) 干凈副本存在時(shí),需要指定一個(gè)副本來(lái)響應(yīng)缺失處理器核對(duì)該數(shù)據(jù)的請(qǐng)求。本實(shí)施例所采 用的原則是,選擇序號(hào)最小的處理器核作為干凈數(shù)據(jù)的所有者,負(fù)責(zé)提供數(shù)據(jù)。另外,目錄 位于所有處理器核的中央,可以給所有二級(jí)Cache體提供快速的訪問(wèn)。 [OO49] (2)數(shù)據(jù)遷移方法 在協(xié)作Cache設(shè)計(jì)中,當(dāng)發(fā)生數(shù)據(jù)塊替換時(shí),查找集中式一致性目錄發(fā)現(xiàn)該塊存 在多個(gè)副本,那么無(wú)需遷移;如果該塊只有一個(gè)副本,那么可以采用文獻(xiàn)[Jichuan Chang and Gurindar S. Sohi Cooperative Caching for ChipMultiprocessors. In Proc. of the 33rd International Symposium onComputer Architecture (ISCA '06)1中提出的"基于 推的溢出協(xié)議"通過(guò)片上網(wǎng)絡(luò)將其遷移到某個(gè)指定的處理器核上,同時(shí)修改CCD,若下次再 訪問(wèn)同樣的數(shù)據(jù)塊則可直接在片內(nèi)獲取,降低了片外訪存次數(shù)。 遷移目標(biāo)的選擇有2種方案,一是隨機(jī)選擇一個(gè)核作為遷移的目標(biāo),另一種是臨 近選擇,即選擇臨近的處理器核作為目標(biāo)處理器核。核心分布如圖2所示,當(dāng)P0需要發(fā)生數(shù) 據(jù)遷移時(shí),鄰近選擇總是優(yōu)先選擇離PO近的處理器核作為遷移目標(biāo)(P1和P2)。隨機(jī)選擇 方案的優(yōu)點(diǎn)在于實(shí)現(xiàn)簡(jiǎn)單,但可能對(duì)性能造成一定的影響。當(dāng)處理器核心增加到16個(gè)時(shí), 如圖3所示,當(dāng)P0需要發(fā)生數(shù)據(jù)遷移時(shí),鄰近選擇總是優(yōu)先選擇離P0近的Pl和P4處理器 核作為遷移目標(biāo)。P0存在一定的概率將數(shù)據(jù)遷移到P15上,若P0再次訪問(wèn)該數(shù)據(jù)則需經(jīng)歷 大量的網(wǎng)絡(luò)延遲,而臨近選擇方案在一定程度上可以避免上述情況的發(fā)生。
(3)遷移引發(fā)的替換方法 源核選擇把數(shù)據(jù)遷移到另一個(gè)核上,而另一個(gè)核上相同組數(shù)據(jù)可能全部處在有 效狀態(tài),如果對(duì)數(shù)據(jù)的遷移不做限制的話(huà),那么另一個(gè)核又要從該組中選擇一塊數(shù)據(jù)遷移 到其它核上,這種遷移可能傳遞下去,最終結(jié)果是存在一個(gè)循環(huán),始終有一塊在遷移。為 了避免這種情況的發(fā)生,本實(shí)施例采用了文獻(xiàn)[Jichuan Chang and Gurindar S. Sohi Cooperative Caching for ChipMultiprocessors. In Proc. of the 33rd International Symposium onComputer Architecture (ISCA'06)]中1-FWD技術(shù)。即數(shù)據(jù)土央遷移到一個(gè)目 標(biāo)處理器核上,如果該核相應(yīng)組上的數(shù)據(jù)全部是有效數(shù)據(jù),那么直接從該組中選擇一塊數(shù) 據(jù)替換出去,不存在循環(huán)遷移的情況。 [OO54] (4)流感知協(xié)作方法
8
流媒體程序?qū)?nèi)存的訪問(wèn)具有很差的空間局部性,先被訪問(wèn)的數(shù)據(jù)很少能夠再一 次被訪問(wèn),如圖4和圖5所示的兩個(gè)程序,當(dāng)給它們分配一定的Cache空間后,其MPKI (每 千條指令的Cache缺失數(shù))持續(xù)停留在一個(gè)較高的狀態(tài)且隨Cache容量的增加變化甚微, 具有流特性。當(dāng)設(shè)計(jì)協(xié)作Cach e的時(shí)候,需要考慮這種負(fù)載對(duì)協(xié)作Cache性能的影響。當(dāng) 一個(gè)流媒體程序運(yùn)行在某個(gè)處理器核上時(shí),二級(jí)Cache會(huì)發(fā)生大量的容量缺失,根據(jù)前文 描述的遷移策略,會(huì)有大量的數(shù)據(jù)遷移到其他處理器核上,而這些數(shù)據(jù)又基本不會(huì)被重用, 這就會(huì)導(dǎo)致目標(biāo)處理器核上的有效Cache空間減少,發(fā)生容量缺失,從而影響整個(gè)多核系 統(tǒng)的吞吐量。 針對(duì)上述情況,本實(shí)施例采用的解決方案是一旦檢測(cè)出某個(gè)負(fù)載在某段時(shí)間間隔
內(nèi)具有流媒體程序的特性,則停止對(duì)被替換出數(shù)據(jù)的遷移,按照常規(guī)方式處理。 模擬測(cè)試中,本實(shí)施例的片上多核處理器分別采用采用共享Cache和協(xié)作Cache
兩種情況下分別用典型的SPLASH2測(cè)試程序測(cè)試其IPC值,算出加速比。 實(shí)驗(yàn)結(jié)果片上多核處理器采用共享Cache和協(xié)作Cache情況下測(cè)得的IPC值如
表2所示,對(duì)應(yīng)的加速比如圖4所示,從圖中可知片上多核處理器采用Cache協(xié)作方法具有
良好的性能。 表2測(cè)試程序的IPC
測(cè)試程序共享Cache (IPC)協(xié)作Cache (IPC)
FMM0.96891.0752
RADIX1.07391.6982
NON—LU0.88680. 9180
CON—LU0. 80250. 9147
FFT1.13081. 2734
WATER—NS0.91410.9703
WATER—SP0.96961.0742 綜合上述,采用本實(shí)施例實(shí)現(xiàn)的協(xié)作Cache具有硬件開(kāi)銷(xiāo)小,可擴(kuò)展性好,系統(tǒng)吞 吐量大的優(yōu)點(diǎn),實(shí)驗(yàn)結(jié)果顯示,與共享二級(jí)Cache設(shè)計(jì)相比,本發(fā)明實(shí)現(xiàn)的協(xié)作Cache處理 器的IPC平均提高16.6%。 上述實(shí)例只為說(shuō)明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人是 能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精
神實(shí)質(zhì)所做的等效變換或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種片上多核處理器的高速緩存協(xié)作系統(tǒng),包括存儲(chǔ)器以及與存儲(chǔ)器耦合的片上多核處理器,其特征在于所述多核處理器每個(gè)處理器核心均包括私有一級(jí)高速緩存和與一級(jí)高速緩存嚴(yán)格包含關(guān)系的私有二級(jí)高速緩存;所述多核處理器所有處理器核心共有集中式一致性目錄,所述集中式一致性目錄用于在一級(jí)高速緩存、二級(jí)高速緩存和存儲(chǔ)器中實(shí)現(xiàn)一致性策略。
2. 根據(jù)權(quán)利要求1所述的片上多核處理器的高速緩存協(xié)作系統(tǒng),其特征在于所述一級(jí) 高速緩存為私有一級(jí)指令和數(shù)據(jù)高速緩存,所述多核處理器每個(gè)處理器核心在一級(jí)高速緩 存內(nèi)設(shè)置有缺失隊(duì)列MissQ ;所述缺失隊(duì)列MissQ用于處理本地處理器核心的請(qǐng)求或通過(guò) 查找集中式一致性目錄向非本地處理器核心發(fā)出遠(yuǎn)程請(qǐng)求。
3. 根據(jù)權(quán)利要求2所述的片上多核處理器的高速緩存協(xié)作系統(tǒng),其特征在于所述缺失 隊(duì)列MissQ處理本地處理器核心請(qǐng)求時(shí),用于接受和處理本地處理器核心的數(shù)據(jù)訪問(wèn)請(qǐng)求 或者查找集中式一致性目錄后由本地處理器核心處理里該數(shù)據(jù)訪問(wèn)的一致性請(qǐng)求并訪問(wèn) 二級(jí)高速緩存。
4. 根據(jù)權(quán)利要求4所述的片上多核處理器的高速緩存協(xié)作系統(tǒng),其特征在于所述多核 處理器各個(gè)處理器核心間通過(guò)路由器連接,所述缺失隊(duì)列MissQ通過(guò)路由器與非本地處理 器核心通訊。
5. 根據(jù)權(quán)利要求1所述的片上多核處理器的高速緩存協(xié)作系統(tǒng),其特征在于每個(gè)處理 器核心的一級(jí)高速緩存內(nèi)設(shè)置有回寫(xiě)隊(duì)列WrBQ,所述回寫(xiě)隊(duì)列WrBQ用于在本地處理器核 心中將一級(jí)高速緩存內(nèi)替換出來(lái)的臟數(shù)據(jù)寫(xiě)回到二級(jí)高速緩存中;所述集中式一致性目錄 包括所有處理器核心的二級(jí)高速緩存的數(shù)據(jù)特征位Tag。
6. —種片上多核處理器的高速緩存協(xié)作處理方法,其特征在于所述方法包括以下步驟(1) 本地處理器核心對(duì)本地一級(jí)高速數(shù)據(jù)緩存進(jìn)行訪問(wèn)處理;訪問(wèn)成功則返回?cái)?shù)據(jù)并 退出;當(dāng)訪問(wèn)缺失時(shí)將訪問(wèn)狀態(tài)放到缺失隊(duì)列中,進(jìn)行步驟(2);(2) 訪問(wèn)本地處理器核心二級(jí)高速緩存;當(dāng)二級(jí)高速緩存訪問(wèn)命中,則返回二級(jí)高速 緩存命中狀態(tài)給缺失隊(duì)列,通過(guò)缺失隊(duì)列把數(shù)據(jù)返回給一級(jí)高速緩存并退出;當(dāng)二級(jí)高速 緩存訪問(wèn)失效,則進(jìn)行步驟(3);(3) 在集中式一致性目錄查找,當(dāng)在集中式一致性目錄中發(fā)現(xiàn)非本地的目標(biāo)處理器核 心上存在該數(shù)據(jù),則把缺失隊(duì)列中該二級(jí)高速緩存缺失請(qǐng)求經(jīng)過(guò)路由發(fā)送到目標(biāo)處理器核 心的缺失隊(duì)列中,目標(biāo)處理器核心處理缺失隊(duì)列中的該項(xiàng)請(qǐng)求,找到該數(shù)據(jù);如果在集中式 一致性目錄中未發(fā)現(xiàn)非本地處理器核心上存在該數(shù)據(jù),則進(jìn)行步驟(4);(4) 訪問(wèn)內(nèi)存,從內(nèi)存中讀取數(shù)據(jù)傳給本地二級(jí)高速緩存,退出。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于所述步驟(3)中當(dāng)目標(biāo)處理器核心有多個(gè) 處理器核心時(shí),選擇序號(hào)最小的處理器核心。
8. 根據(jù)權(quán)利要求6所述的方法,其特征在于所述步驟(3)還包括當(dāng)目標(biāo)處理器核心找 到該數(shù)據(jù)后,當(dāng)目標(biāo)處理器核心的缺失隊(duì)列請(qǐng)求為只讀且該數(shù)據(jù)為干凈的時(shí),將數(shù)據(jù)復(fù)制 到目標(biāo)處理器核心上并對(duì)集中式一致性目錄進(jìn)行適應(yīng)性修改;當(dāng)目標(biāo)處理器核心的缺失隊(duì) 列請(qǐng)求為寫(xiě)請(qǐng)求或該數(shù)據(jù)為臟數(shù)據(jù)時(shí),則將數(shù)據(jù)遷移到目標(biāo)處理器核心或其他處理器核心 上并對(duì)集中式一致性目錄進(jìn)行適應(yīng)性修改。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于所述方法中當(dāng)發(fā)生數(shù)據(jù)塊替換時(shí),如果集 中式一致性目錄中發(fā)現(xiàn)該數(shù)據(jù)塊存在多個(gè)副本,則無(wú)需遷移;若僅一個(gè)副本,則通過(guò)片上網(wǎng) 絡(luò)將數(shù)據(jù)塊遷移到某個(gè)處理器核心上,并同時(shí)修改集中式一致性目錄。
10. 根據(jù)權(quán)利要求8所述的方法,其特征在于所述方法中數(shù)據(jù)遷移過(guò)程中還進(jìn)行流媒 體程序的判斷步驟;當(dāng)對(duì)一定時(shí)間間隔內(nèi)待遷移數(shù)據(jù)的MPKI參數(shù)具有流特性時(shí),則停止數(shù) 據(jù)遷移,直接復(fù)制到目標(biāo)處理器核心上進(jìn)行處理。
全文摘要
本發(fā)明公開(kāi)了一種片上多核處理器的高速緩存協(xié)作系統(tǒng)及其協(xié)作處理方法,該系統(tǒng)包括存儲(chǔ)器以及與存儲(chǔ)器耦合的片上多核處理器,其特征在于所述多核處理器每個(gè)處理器核心均包括私有一級(jí)高速緩存和與一級(jí)高速緩存嚴(yán)格包含關(guān)系的私有二級(jí)高速緩存;所述多核處理器所有處理器核心共有集中式一致性目錄,所述集中式一致性目錄用于在一級(jí)高速緩存、二級(jí)高速緩存和存儲(chǔ)器中實(shí)現(xiàn)一致性策略。該協(xié)作Cache系統(tǒng)具有硬件開(kāi)銷(xiāo)小,可擴(kuò)展性好,系統(tǒng)吞吐量大等特點(diǎn)。
文檔編號(hào)G06F12/08GK101706755SQ200910186558
公開(kāi)日2010年5月12日 申請(qǐng)日期2009年11月24日 優(yōu)先權(quán)日2009年11月24日
發(fā)明者吳俊敏, 趙小雨, 隋秀峰 申請(qǐng)人:中國(guó)科學(xué)技術(shù)大學(xué)蘇州研究院