專利名稱:基于劃分感知和線程感知的末級(jí)高速緩存的性能優(yōu)化方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息處理系統(tǒng)的多核處理器末級(jí)高級(jí)緩存性能提升技術(shù)領(lǐng)域,具體涉 及一種末級(jí)高速緩存的劃分感知淘汰線程感知插入提升高速緩存性能的方法。
背景技術(shù):
隨著微處理器技術(shù)的發(fā)展,多核處理器,特別是片上多處理器 (ChipMultiprocessor, CMP)已經(jīng)成為構(gòu)建當(dāng)代高性能微處理器的唯一技術(shù)途徑?;谧罱?最久未使用方法(Least Recently Used,LRU)方法共享末級(jí)高速緩存(Last Level Cache, LLC)已經(jīng)被當(dāng)代片上多核處理器CMP所廣泛采用。然而,過去的一些研究成果表明當(dāng)并發(fā) 執(zhí)行的線程間存在干擾或者負(fù)載的工作集超過高速緩存容量時(shí),末級(jí)高速緩存的性能以及 由此關(guān)聯(lián)到的多核處理器的性能都會(huì)受到最近最久未使用(Least Recently Used,LRU)方 法的影響而嚴(yán)重下降。針對(duì)上述問題已經(jīng)提出了大量的解決方案。然而,大多數(shù)方案僅僅集中在某一單 一的特定訪存行為之上(如Cache劃分,或者Cache插入優(yōu)化),并沒有對(duì)所有類型的訪存 行為做出全面的考慮。因此,全局Cache性能的提升是相當(dāng)有限的。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種基于劃分感知和線程感知的末級(jí)高速緩存的性能優(yōu)化 方法,解決了現(xiàn)有技術(shù)中多線程并發(fā)時(shí)片上多處理器全局Cache性能難以提升等問題。為了解決現(xiàn)有技術(shù)中的這些問題,本發(fā)明提供的技術(shù)方案是一種基于劃分感知和線程感知的末級(jí)高速緩存的性能優(yōu)化方法,用于多核處理器 與共享末級(jí)高級(jí)緩存間的數(shù)據(jù)和指令的通信,其特征在于所述方法包括在多核處理器并行 執(zhí)行應(yīng)用時(shí),共享末級(jí)高級(jí)緩存通過劃分感知淘汰方法來選擇末級(jí)高速緩存的候選替換 塊;并使用線程感知?jiǎng)討B(tài)插入方法TADIP在基本LRU方法和雙向插入方法中優(yōu)選方法進(jìn)行 高速緩存中新數(shù)據(jù)塊插入以及使用線程感知?jiǎng)討B(tài)提升方法TADPP-F在最近最常使用方法 和單步提升方法之間進(jìn)行選擇提升末級(jí)高速緩存中的命中塊。優(yōu)選的,所述方法中劃分感知淘汰方法采用基于效用的高速緩存劃分方法所提供 的目標(biāo)劃分方案來選擇末級(jí)高速緩存中候選淘汰塊。優(yōu)選的,所述方法中線程感知?jiǎng)討B(tài)提升方法包括以所有剩余應(yīng)用程序當(dāng)前各自表 現(xiàn)最好的提升方法為基礎(chǔ),來選擇每個(gè)應(yīng)用程序的最優(yōu)提升方法。優(yōu)選的,所述方法中通過錦標(biāo)賽監(jiān)控器將TADIP-F方法和TADPP-F方法集成到一起。優(yōu)選的,所述方法中標(biāo)識(shí)每個(gè)應(yīng)用程序所對(duì)應(yīng)的SDMs采用內(nèi)容可尋址存儲(chǔ)器或 哈希函數(shù)來標(biāo)識(shí)。優(yōu)選的,所述方法中標(biāo)識(shí)每個(gè)應(yīng)用程序所對(duì)應(yīng)的SDMs采用哈希函數(shù)來標(biāo)識(shí)時(shí),在 多核處理器內(nèi)設(shè)置加法器和比較器來實(shí)現(xiàn)。
3
本發(fā)明技術(shù)方案中提供了一種末級(jí)高速緩存的性能優(yōu)化方法,該方法關(guān)鍵在于采 用劃分感知和淘汰線程感知技術(shù)來有效性能提升末級(jí)高速緩存資源,使其達(dá)到較高的性 能。具體的實(shí)現(xiàn)末級(jí)高速緩存的劃分感知和淘汰線程感知方法,可以包括以下技術(shù)方案(1)線程感知提升方法;(2)劃分感知淘汰;(3) PAE-TIP。其中,線程感知提升方法以所有剩余應(yīng)用程序當(dāng)前各自表現(xiàn)最好的提升方法為基 礎(chǔ),來選擇每個(gè)應(yīng)用程序的最優(yōu)提升方法;劃分感知淘汰方法采用基于效用的高速緩存劃 分(Utility-based Cache Partitioning, UCP)方法所提供的目標(biāo)劃分方案來選擇末級(jí)高 速緩存中候選淘汰塊;用PAE-TIP方法同時(shí)兼顧淘汰塊的選擇、新塊的插入和命中塊的提 升三個(gè)方面,以使得整個(gè)性能提升方法達(dá)到最優(yōu)性能。本發(fā)明所提出的PAE-TIP方法包括如下三個(gè)核心部分1、具有反饋的線程感知?jiǎng)討B(tài)提升方法(Thread-Aware DynamicPromotion Policy with Feedback, TADPP-F)。TADPP-F會(huì)針對(duì)每個(gè)應(yīng)用做出一個(gè)二元決策,如當(dāng)有N個(gè)并發(fā) 調(diào)度的應(yīng)用共享LLC時(shí),TADPP-F等價(jià)于在2N個(gè)可能的N比特二元串中找到一個(gè)最優(yōu)的二元串。2、基于UCP所提供的目標(biāo)劃分方案的劃分感知淘汰方法。劃分感知淘汰方法以組 為粒度隱式地劃分LLC,并且將每個(gè)應(yīng)用限制在某些Cache塊的特定子集中,從而可以避免 以較快速度訪問Cache的應(yīng)用將屬于其它核的Cache塊替換出去。3、同時(shí)集成線程感知?jiǎng)討B(tài)插入方法(Thread-Aware Dynamic InsertionPolicy, TAD I P)禾口 TADPP (Thread-Aware Dynamic Promotion Policy, TADPP)的可擴(kuò)放線程感知插 入 / 提升方案(Thread-aware Insertion Policy, TIP) 特別的,TIP 同時(shí)考慮了 Cache 劃 分、Cache插入以及Cache性能提升方法,在兼顧其余并發(fā)應(yīng)用的基礎(chǔ)上為每個(gè)應(yīng)用選擇最 優(yōu)的插入/提升方法。在本發(fā)明技術(shù)方案中,本發(fā)明人經(jīng)長(zhǎng)期研究,解決了實(shí)現(xiàn)過程中的種種難題,如 (1)線程感知提升方法傳統(tǒng)的LLC性能提升方法對(duì)所有數(shù)據(jù)塊使用同一種靜態(tài)或者動(dòng)態(tài) 的提升方法,但這樣所獲得性能的提升往往比較有限,因此,本發(fā)明技術(shù)方案需要設(shè)計(jì)一種 線程感知提升方法,以取得更好的性能;⑵劃分感知淘汰方法LRU方法根據(jù)某個(gè)應(yīng)用程 序所提交訪存要求的數(shù)量,決定分配給該應(yīng)用程序Cache塊的數(shù)目,這可能導(dǎo)致流媒體程 序獲得更多的片內(nèi)資源,而使得其他類型的應(yīng)用程序獲得較少的資源,這可能導(dǎo)致整個(gè)CMP 系統(tǒng)性能的下降,因此,必須實(shí)現(xiàn)一種劃分感知淘汰方法來有效選擇被淘汰的Cache塊; (3)PAE-TIP 典型的Cache性能提升方法包括候選淘汰塊的選擇、新塊的插入和命中塊的 提升三個(gè)方面,必須設(shè)計(jì)一種方法同時(shí)兼顧上述三個(gè)部分。以下是本發(fā)明提供的具體解決方案(1)線程感知提升方法當(dāng)多道程序負(fù)載的聯(lián)合工作集大小超過共享Cache容量時(shí),傳統(tǒng)的LRU策略可能 會(huì)引起Cache顛簸,使用雙向插入方法(Bimodal Insertion Policy,BIP)策略可以將某一 部分工作集保留在Cache中從而提高Cache的性能。在BIP策略下,大部分Cache塊都會(huì)被 插入到LRU位置,而如果后續(xù)訪問這些塊發(fā)生命中,它們又會(huì)被直接移動(dòng)到MRU位置,對(duì)于那些重用頻率很低的數(shù)據(jù),這無疑會(huì)延長(zhǎng)其在Cache中駐留的時(shí)間。為此,可以通過單步提 升方法(Single-step Incremental Promotion, SIP)使命中數(shù)據(jù)緩慢地向MRU位置移動(dòng), 從而進(jìn)一步提升Cache性能。動(dòng)態(tài)提升策略(Dynamic Promotion Policy, DPP)經(jīng)過簡(jiǎn)單地?cái)U(kuò)展就可以被用來 判斷多核多道負(fù)載是否發(fā)生Cache顛簸。DPP在兩個(gè)錦標(biāo)賽監(jiān)控電路(SDMs)的支持下完成 對(duì)SIP和多步提升方法(Multiple-st印IncrementalPromotion,MP)的動(dòng)態(tài)選擇。這里每 個(gè)SDM分別對(duì)應(yīng)一種提升策略,其內(nèi)部包含若干個(gè)Cache組,這些組都共同遵循所對(duì)應(yīng)的提 升策略,借助于SDM就可以完成對(duì)該策略缺失情況的估計(jì)。對(duì)于Cache的所有剩余組(稱之 為追隨組follower sets)則使用兩個(gè)SDMs競(jìng)爭(zhēng)過程中勝出的提升策略。圖1給出了將DPP 策略應(yīng)用于4-路多核處理器共享Cache的結(jié)構(gòu)圖。其中飽和計(jì)數(shù)器PPSEL用于追蹤在多 道負(fù)載執(zhí)行過程中哪個(gè)競(jìng)爭(zhēng)策略更加優(yōu)越=SDM-MP中發(fā)生缺失會(huì)對(duì)PPSEL加1,而SDM-SIP 中發(fā)生缺失則會(huì)對(duì)PPSEL減1。PPSEL的值接近于O說明MP提升策略對(duì)于多道負(fù)載更加優(yōu) 越,而PPSEL的值接近于其最大飽和值則說明SIP提升策略性能更好。對(duì)于共享該Cache的 所有應(yīng)用,追隨組所采用的提升策略則由PPSEL計(jì)數(shù)器的最高位(Most SignificantBit, MSB)來決定。有DPP策略所做出的決策并不能感知系統(tǒng)中不同應(yīng)用程序訪存行為的差異, 因此可以將上述方案視為線程不可感知的動(dòng)態(tài)提升策略。顯然上述DPP策略對(duì)共享Cache的每個(gè)應(yīng)用都使用相同的提升策略,不能區(qū)分多 道程序負(fù)載中不同應(yīng)用訪存行為的差異,無法根據(jù)每個(gè)應(yīng)用程序的類型選擇適當(dāng)?shù)奶嵘?略。對(duì)于給定的訪存指令流,自適應(yīng)提升試圖在MP和SIP策略之間進(jìn)行動(dòng)態(tài)選擇。線 程感知?jiǎng)討B(tài)提升策略(Thread-Aware Dynamic Promotion Policy,TADPP)需要對(duì)運(yùn)行于多 核處理器上的每個(gè)應(yīng)用做出二元決策(MP = 0,SIP = 1)。當(dāng)有N個(gè)應(yīng)用競(jìng)爭(zhēng)共享Cache 時(shí),TADPP的查找空間是一個(gè)具有2N種可能情況的N比特二進(jìn)制串。TADPP的目標(biāo)則是收 斂到一個(gè)最優(yōu)的N比特二進(jìn)制串,使多道負(fù)載中的每個(gè)應(yīng)用程序都具有最優(yōu)的性能。最優(yōu)二進(jìn)制串可以通過靜態(tài)和動(dòng)態(tài)兩種方式來獲得。靜態(tài)方式是利用剖析信息來 求解,即在目標(biāo)多核處理器上依次執(zhí)行可能的提升策略組合并從中選擇性能最優(yōu)的組合。 然而,對(duì)每個(gè)多道負(fù)載都運(yùn)行所有2N種組合顯然是不現(xiàn)實(shí)的,尤其是當(dāng)N值很大的時(shí)候。例 如,當(dāng)N = 16時(shí)會(huì)有65536種可能的情況。另外,基于剖析的方法的主要問題在于所收集 來的信息會(huì)隨多核系統(tǒng)中Cache容量和負(fù)載類型的變化而變化。動(dòng)態(tài)方式依然是通過錦標(biāo)賽機(jī)制對(duì)所有可能的提升策略組合進(jìn)行在線比較,動(dòng)態(tài) 地選取性能最優(yōu)的組合。例如,對(duì)于雙核處理器,一共有四種可能的提升策略(00,01,10, 11),可以為每種策略設(shè)置一個(gè)獨(dú)立的SDM,而所有剩余的Cache組則使用四者之中性能最 好的策略。然而,在這種方式下,所需SDMs的數(shù)量會(huì)隨多道負(fù)載中應(yīng)用程序數(shù)量的增加而 指數(shù)上升。例如,當(dāng)N= 16時(shí),則需要至少64K個(gè)SDMs,如果每個(gè)SDM包含32個(gè)Cache組, 則全部SDMs將包含多達(dá)2M個(gè)Cache組。由于有相當(dāng)大一部分Cache容量用于分析不同策 略的性能優(yōu)劣,并且大量的SDMs都工作在不正確的策略之下,因此這種方式必將導(dǎo)致全局 性能的嚴(yán)重下降,利用它來獲取最優(yōu)的二進(jìn)制串仍然是不可行的。當(dāng)系統(tǒng)中并發(fā)執(zhí)行的應(yīng)用程序數(shù)量很多的時(shí)候,找出最優(yōu)提升策略對(duì)應(yīng)的二進(jìn)制 串需要遍歷一個(gè)指數(shù)規(guī)模的搜索空間。在所有其他競(jìng)爭(zhēng)應(yīng)用存在的情況下,如果單獨(dú)求解每個(gè)應(yīng)用的最優(yōu)提升策略,則可以將指數(shù)搜索空間降低為線性搜索空間。根據(jù)這一結(jié)論,本 章提出了一種使用線性數(shù)量SDMs的機(jī)制來實(shí)現(xiàn)TADPP策略。具有反饋的線程感知?jiǎng)討B(tài)提升方法TADPP-F(TADPP-with Feedback),主要是以 所有剩余應(yīng)用程序當(dāng)前各自表現(xiàn)最好的提升方法為基礎(chǔ),來學(xué)習(xí)每個(gè)應(yīng)用程序的最優(yōu)提 升方法。具體的,假設(shè)N個(gè)處理器核共享二級(jí)Cache,每個(gè)核上運(yùn)行一個(gè)獨(dú)立的應(yīng)用程序, TADPP-F給每個(gè)應(yīng)用程序分配兩個(gè)SDMs,其中之一對(duì)應(yīng)于MP,另一個(gè)則對(duì)應(yīng)于SIP。當(dāng)這對(duì) SDMs被其所有者應(yīng)用程序訪問時(shí),MP-SDM始終使用MP方法,而SIP-SDM則始終使用SIP方 法;而對(duì)于所有來自于其他應(yīng)用程序的訪問,這對(duì)SDMs則使用當(dāng)前對(duì)該應(yīng)用性能最優(yōu)的提 升方法。TADPP-F通過給每個(gè)應(yīng)用程序分配一個(gè)飽和計(jì)數(shù)器來確定相應(yīng)應(yīng)用的最優(yōu)提升方 法。當(dāng)某個(gè)應(yīng)用程序的MP-SDM發(fā)生缺失時(shí),其對(duì)應(yīng)的飽和計(jì)數(shù)器會(huì)自加1 ;當(dāng)其SIP-SDM發(fā) 生缺失時(shí),對(duì)應(yīng)的飽和計(jì)數(shù)器則會(huì)自減1 ;而如果缺失發(fā)生在該應(yīng)用程序的追隨組中,那么 所使用的提升方法則由相應(yīng)飽和計(jì)數(shù)器的最高位來決定,若最高位為0,則使用MP方法,若 最高位為1,則使用SIP方法。圖2舉例描述了 TADPP-F方法的共享Cache結(jié)構(gòu)。這個(gè)Cache被4個(gè)應(yīng)用程序所 共享,共包含8個(gè)SDMs,每個(gè)應(yīng)用程序?qū)?yīng)一對(duì)SDMs。例如,第一個(gè)應(yīng)用的兩個(gè)SDMs分別使 用二進(jìn)制串<0,PI, P2,P3>和<1,PI, P2,P3>,這里Px是對(duì)應(yīng)的飽和計(jì)數(shù)器的最高位。對(duì) 于第一個(gè)應(yīng)用,<0,PI, P2,P3>SDM總是使用MP提升方法,而對(duì)于其他應(yīng)用,則使用該應(yīng)用 的SDMs所預(yù)測(cè)的最優(yōu)提升方法(由該應(yīng)用的飽和計(jì)數(shù)器的最高位決定)。同理,對(duì)于第一 個(gè)應(yīng)用,<1,P1,P2,P3>SDM始終使用SIP提升方法,而對(duì)于其他應(yīng)用,則使用該應(yīng)用的SDMs 所預(yù)測(cè)的最優(yōu)提升方法。(2)劃分感知淘汰UCP是最具代表性的Cache劃分方法之一,它采用硬件監(jiān)控器電路(utility monitor, UM0N)來收集每個(gè)應(yīng)用的Cache效用度信息,通過前瞻方法來對(duì)共享Cache進(jìn)行 劃分,最終達(dá)到最大化加權(quán)加速比的目標(biāo)。UCP方法所提供的目標(biāo)劃分方案將被用于本方法 選取LLC中候選淘汰塊。對(duì)于N-路多核處理器,假設(shè)UCP方法給定了一個(gè)目標(biāo)劃分Π= ,Ji2,..., 其中Σ^τγ,=妒且W表示LLC的組相聯(lián)度,這一目標(biāo)劃分被存儲(chǔ)于數(shù)組allocations中。劃 分感知淘汰方法的細(xì)節(jié)描述如下當(dāng)某個(gè)處理器核發(fā)生Cache缺失時(shí),首先對(duì)缺失所在的Cache組中屬于該處理器 核的Cache塊的數(shù)量進(jìn)行統(tǒng)計(jì),如果這一數(shù)量大于分配給該核的Cache塊的數(shù)目,則發(fā)生缺 失處理器核的LRU塊被淘汰;否則,所有不屬于該處理器核的Cache塊中最近最少被使用的 將被淘汰。表1劃分感知淘汰方法 (3) PAE-TIP 典型的Cache性能提升方法包括候選淘汰塊的選擇、新塊的插入和命中塊的提升 三個(gè)方面,PAE-TIP方法在設(shè)計(jì)時(shí)同時(shí)兼顧了上述三個(gè)方面。下文將具體描述PAE-TIP方 法如何將三者有機(jī)地結(jié)合到一起來性能提升共享Cache。PAE-TIP方法包含如下三個(gè)關(guān)鍵組件(1)使用劃分感知淘汰方法來選擇候選替 換塊,與傳統(tǒng)的LRU方法相比,該方法所需對(duì)硬件邏輯的改變非常少;(2)在新數(shù)據(jù)塊插入 Cache時(shí),使用線程感知?jiǎng)討B(tài)插入方法TADIP-F在基本LRU方法和BIP之間進(jìn)行選擇;(3)當(dāng) 發(fā)生Cache命中時(shí),使用線程感知?jiǎng)討B(tài)提升方法TADPP-F在最近最常使用(Most Recently Used, MRU)提升和單步提升之間進(jìn)行選擇。PAE-TIP方法的核心在于如何通過可擴(kuò)放的硬件結(jié)構(gòu)將TADIP-F和TADPP-F集 成到一起,既要保證合理的硬件開銷和設(shè)計(jì)復(fù)雜度,又要盡量保持二者各自在性能上的優(yōu) 勢(shì)。PAE-TIP仍然使用Qureshi等提出的錦標(biāo)賽機(jī)制來估計(jì)兩組方法(LRU vs. BIP及MP vs. SIP)的性能。錦標(biāo)賽監(jiān)控器數(shù)量的確定要在采樣精度和采樣開銷之間做出折衷。對(duì)于 N個(gè)應(yīng)用的共享Cache,如果為每個(gè)應(yīng)用程序分別設(shè)置獨(dú)立的插入和提升SDMs,那么共需要 4N個(gè)SDMs。例如,當(dāng)N = 4時(shí),則需要至少16個(gè)SDMs,如果每個(gè)SDM包含32個(gè)Cache組, 則全部SDMs將包含多達(dá)512個(gè)Cache組。對(duì)于容量為4MB,塊大小為64B的16路組相聯(lián)共 享Cache,SDMs所占比例高達(dá)12. 5%。由于大部分SDMs都工作在非最優(yōu)的插入和提升方 法下,因此這種方案會(huì)導(dǎo)致性能的嚴(yán)重下降。然而,在設(shè)計(jì)過程中我們注意到插入和提升是兩個(gè)相互正交的動(dòng)作。插入動(dòng)作 發(fā)生于Cache缺失后需要將新數(shù)據(jù)塊調(diào)入Cache時(shí),而提升動(dòng)作則發(fā)生于所訪問的數(shù)據(jù)塊 在Cache中命中時(shí)。因此,對(duì)于被N個(gè)應(yīng)用程序所共享的二級(jí)Cache,仍然可以使用2N個(gè) SDMs來學(xué)習(xí)每個(gè)應(yīng)用的最優(yōu)插入和提升方法。在這2N個(gè)SDMs之中,每個(gè)應(yīng)用程序?qū)?yīng)2 個(gè)SDMs,其中之一用于同時(shí)監(jiān)控LRU插入和MP提升方法,另外一個(gè)則用于同時(shí)監(jiān)控BIP插 入和SIP提升方法。圖3給出了 PAE-TIP方法下的共享Cache結(jié)構(gòu),從中可以看出該結(jié)構(gòu) 與圖2所對(duì)應(yīng)的TADPP方法非常類似,主要不同在于每個(gè)SDM使用二進(jìn)制串<P0 10,Pl II, P2 I2,P3 P3>來同時(shí)確定插入和提升方法,這里PxIx是每應(yīng)用飽和計(jì)數(shù)器DPSELx的最高 兩位,并且 Px = 0:MP, Px = 1:SIP, Ix = 0:LRU, Ix = 1:BIP。標(biāo)識(shí)每個(gè)應(yīng)用程序所對(duì)應(yīng)的SDMs有兩種方式,分別為利用內(nèi)容可尋址存儲(chǔ)器 (CAM)和使用哈希函數(shù)。其中CAMs需要額外的存儲(chǔ)開銷,為了盡量減少開銷,PAE-TIP選 用基于Cache組索引和請(qǐng)求核ID的哈希函數(shù)來建立Cache組到應(yīng)用程序SDMs的映射。假設(shè)共享二級(jí)Cache具有4096個(gè)組(通過Setlndex[ll :0]索引),圖4描述了標(biāo)識(shí)LRU_MP SDMs,BIP_SIP SDMs以及追隨組的哈希函數(shù)硬件邏輯。當(dāng)SetIndex [11 7] ^P CoreID [1:0] 之和等于Setlndex[6:0]時(shí),該組被分配給標(biāo)號(hào)為CoreID的處理器核作為SDM-LRU-MP。類 似的,當(dāng) SetIndex [11 7]、CoreID [1 0]及 NumCores 三者之和等于 SetIndex [6 0]時(shí),該組 被分配給標(biāo)號(hào)為CoreID的處理器核作為SDM-BIP-SIP。值得一提的是這個(gè)哈希函數(shù)并不需 要任何存儲(chǔ)開銷,僅需要兩個(gè)加法器和兩個(gè)比較器。正是基于這一原因,PAE-TIP并不需要 在Cache的標(biāo)記陣列中附加任何比特,從而避免了對(duì)已有Cache結(jié)構(gòu)的改變。另外,由于組 選擇邏輯并不在Cache訪問的關(guān)鍵路徑上,因此Cache的訪問延遲并不會(huì)受到任何影響。相對(duì)于現(xiàn)有技術(shù)中的方案,本發(fā)明的優(yōu)點(diǎn)是本發(fā)明基于劃分感知淘汰和線程感 知插入/提升方法在現(xiàn)有方法的基礎(chǔ)上,統(tǒng)一提高多核處理器中全局Cache性能。
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述圖1為4-路多核處理器中,DPP策略管理的共享Cache結(jié)構(gòu);圖2為TADPP-F方法的共享Cache結(jié)構(gòu)(該Cache被4個(gè)應(yīng)用程序所共享);圖3為PAE-TIP方法的共享Cache結(jié)構(gòu)(該Cache被4個(gè)應(yīng)用程序所共享);圖4為標(biāo)識(shí)每個(gè)應(yīng)用程序SDMs的組選擇邏輯電路;圖5為4核處理器中PAE-TIP、PIPP, UCP以及TADIP方法的加權(quán)加速比性能(數(shù) 據(jù)相對(duì)于傳統(tǒng)LRU方法做了歸一)圖6為4核處理器中PAE-TIP、PIPP, UCP以及TADIP方法的吞吐量和調(diào)和平均公 平性(數(shù)據(jù)相對(duì)于傳統(tǒng)LRU方法做了歸一);圖7為負(fù)載中每個(gè)應(yīng)用程序所占據(jù)的Cache比例;圖8為多道程序負(fù)載執(zhí)行過程中DPSEL計(jì)數(shù)器值的變化情況(χ軸表示表示指令 的數(shù)量,以一百萬為單位)。
具體實(shí)施例方式以下結(jié)合具體實(shí)施例對(duì)上述方案做進(jìn)一步說明。應(yīng)理解,這些實(shí)施例是用于說明 本發(fā)明而不限于限制本發(fā)明的范圍。實(shí)施例中采用的實(shí)施條件可以根據(jù)具體廠家的條件做 進(jìn)一步調(diào)整,未注明的實(shí)施條件通常為常規(guī)實(shí)驗(yàn)中的條件。實(shí)施例本實(shí)施例使用基于x86指令集體系結(jié)構(gòu)的事件驅(qū)動(dòng)、周期精確多核仿真器 Multi2sim來評(píng)測(cè)PAE-TIP方法的有效性。目標(biāo)仿真平臺(tái)是一個(gè)4-路多核處理器,所有處 理器核共享4MB、16路組相聯(lián)的二級(jí)Cache。每個(gè)處理器核是4發(fā)射、亂序執(zhí)行的超標(biāo)量結(jié) 構(gòu),并且具有私有的一級(jí)指令和數(shù)據(jù)Cache。后續(xù)實(shí)驗(yàn)中仿真器的詳細(xì)配置信息參見表2。表2模擬器的基本配置信息
本實(shí)施完全使用多道程序負(fù)載來評(píng)測(cè)PAE-TIP方法的性能,這些負(fù)載是由SPEC 2006和MiBench中的部分應(yīng)用程序組合而成的。對(duì)于每個(gè)負(fù)載都要使用SimPoint工具從 中選取有代表性的采樣點(diǎn)。另外值得注意的是PIPP的測(cè)試方案中也使用了 MiBench基準(zhǔn)測(cè) 試程序。盡管MiBench程序的執(zhí)行時(shí)間通常都比較短,但是通過使用相當(dāng)龐大的輸入數(shù)據(jù) 可以保證它們能夠持續(xù)對(duì)Cache資源發(fā)生競(jìng)爭(zhēng)。表3列出了本例所使用的全部負(fù)載組合。對(duì)于每個(gè)負(fù)載,首先需要對(duì)Cache資源預(yù)熱500M條指令,然后對(duì)負(fù)載中的每個(gè) 應(yīng)用都精確仿真250M條指令。當(dāng)某個(gè)應(yīng)用達(dá)到這一閾值時(shí),它會(huì)繼續(xù)執(zhí)行下去以保證對(duì) Cache資源的持續(xù)競(jìng)爭(zhēng)。這種評(píng)測(cè)方案與許多先前工作保持一致。
本實(shí)施使用多核Cache設(shè)計(jì)中普遍釆用的三個(gè)度量來衡量并發(fā)調(diào)度負(fù)載的性能, 分別是吞吐量,加權(quán)加速比和公平性。其中,加權(quán)加速比表明系統(tǒng)執(zhí)行時(shí)間的減少,而調(diào)和 平均公平性則在性能和公平性之間進(jìn)行均衡。這些度量的定義如下Throughput =Σ IPCi(1)Weighted Speedup = Σ (IPCiZlPCsa5i)(2)Harmonic Mean Fairness = N/ Σ (IPCsaVlPCi) (3)
9
在等式⑵和(3)中,IPCsa,i表示應(yīng)用i獨(dú)占整個(gè)共享Cache時(shí)的IPC。PAE-TIP方法的評(píng)測(cè)是在具有4MB、16-路組相聯(lián)共享二級(jí)Cache的4核處理器仿 真環(huán)境下進(jìn)行的。為了便于性能比較,使用傳統(tǒng)LRU替換方法的共享二級(jí)Cache作為基準(zhǔn), 同時(shí)對(duì) UCP、TADIP、提升插入偽劃分(Promotion/Insertion Pseudo-Partitioning, PIPP) 和PAE-TIP進(jìn)行性能比較。其中,UCP和PAE-TIP方法使用基于動(dòng)態(tài)組采樣的效用度監(jiān)控 器來收集效用度信息,并且通過貪心方法來劃分共享Cache。PAE-TIP需要8個(gè)SDMs (每個(gè) 處理器核2個(gè)SDMs,每個(gè)SDM包含32個(gè)Cache組)來學(xué)習(xí)每個(gè)應(yīng)用程序的最優(yōu)插入和提升 方法。圖5給出了 4種Cache性能提升方法的加權(quán)加速比性能。圖中χ軸代表不同的多 道程序負(fù)載組合,標(biāo)記有g(shù)eomean的柱條表示所有10個(gè)負(fù)載的幾何平均值。從圖中可以看 出,對(duì)于所選的10個(gè)負(fù)載,PAE-TIP方法始終比傳統(tǒng)的LRU方法在加權(quán)加速比性能上有大 幅度提升(幾何平均值達(dá)到19. 3% ),同時(shí)PAE-TIP方法較PIPP平均提升9. 08%,較UCP 和TADIP分別提升11. 2%和12. 7%。圖7給出了 4種Cache提升方法的IPC吞吐量及調(diào)和平均公平性加速比性能。從 圖中可以看出,這兩個(gè)性能指標(biāo)的變化趨勢(shì)與加權(quán)加速比的結(jié)果非常相似。這就意味著 PAE-TIP方法可以提供更高的吞吐量和更好的公平性。正是因?yàn)檫@三個(gè)指標(biāo)具有相似的性 能趨勢(shì),因此本節(jié)的后續(xù)內(nèi)容僅僅集中在對(duì)加權(quán)加速比性能的討論上。對(duì)于所有的4核多道程序負(fù)載,PAE-TIP方法比UCP和TADIP方法都具有更大的 性能優(yōu)勢(shì),并且除了 mix09以外,PAE-TIP都會(huì)勝出PIPP。PAE-TIP方法強(qiáng)大的性能優(yōu)勢(shì)來 源于以下兩個(gè)方面基于UCP的有效容量劃分以及通過同時(shí)控制數(shù)據(jù)的插入和提升位置來 開發(fā)不適合于LRU方法的程序行為。與PIPP相比,PAE-TIP在性能上通常都是比較優(yōu)越的。這里可以發(fā)現(xiàn)對(duì)于負(fù)載 mix02,PAE-TIP要比PIPP好得多。對(duì)于mix02,UCP方法就明顯的勝過PIPP,而PAE-TIP則 比UCP更具優(yōu)勢(shì)。這意味著PIPP的偽劃分機(jī)制有時(shí)候并不完美,會(huì)缺乏有效的容量控制, 其原因一方面在于PIPP并不能顯式地對(duì)劃分方案進(jìn)行實(shí)施,另一方面則在于PIPP始終選 擇LRU塊作為被淘汰的對(duì)象,這會(huì)導(dǎo)致某個(gè)核迅速將屬于其它核的數(shù)據(jù)從Cache中淘汰出 去。此外,還有兩個(gè)負(fù)載(圖5中的mix07和mix08),PIPP被TADIP所擊敗,但是PAE-TIP 卻戰(zhàn)勝了 TADIP。這主要是因?yàn)镻IPP中采用的單步提升方法過于保守,并不能在未來一段 時(shí)間內(nèi)曝露出足夠多的Cache命中,而PAE-TIP則可以在MP和SIP提升方法之間做出動(dòng)態(tài) 選擇。然而,仍然可以注意到對(duì)于負(fù)載mix09,PAE-TIP較PIPP略有下降。在這一場(chǎng)景中, PAE-TIP所選用的BIP插入方法不利于數(shù)據(jù)長(zhǎng)期停留在Cache中,無法發(fā)掘出額外的數(shù)據(jù)命 中,但是PIPP則可以將數(shù)據(jù)插入到比LRU位置略微具有更高優(yōu)先級(jí)的位置上,這樣就能夠 提供這種額外的數(shù)據(jù)命中。PAE-TIP采用了基于UCP的劃分感知淘汰方法,因此它會(huì)根據(jù)應(yīng)用程序能夠從額 外的Cache資源中獲益的多少對(duì)共享末級(jí)高級(jí)緩存進(jìn)行組粒度的隱式劃分。這不但可以避 免破壞性的線程間干擾,而且可以防止某些類型的應(yīng)用程序(如Cache顛簸或者流式應(yīng)用) 污染Cache空間。為了評(píng)測(cè)PAE-TIP方法對(duì)每個(gè)應(yīng)用程序共享LLC占有量進(jìn)行調(diào)控的有效性,圖7 對(duì)mixOl和mix04中每個(gè)應(yīng)用程序占有Cache資源的比例進(jìn)行了剖析。在仿真過程中,每隔100M個(gè)時(shí)鐘周期收集一次數(shù)據(jù)。從圖中可以看出,PAE-TIP方法為同一個(gè)多道程序負(fù) 載中的不同應(yīng)用分配了不同數(shù)量的Cache塊,并且可以根據(jù)每個(gè)應(yīng)用的執(zhí)行行為動(dòng)態(tài)地對(duì) Cache資源進(jìn)行調(diào)整。這意味著PAE-TIP能夠營(yíng)造與UCP類似的執(zhí)行環(huán)境,而且可以按照近 似于UCP的方式對(duì)每個(gè)處理器核的容量進(jìn)行平衡。PAE-TIP方法采用自適應(yīng)、線程感知插入方法動(dòng)態(tài)地確定新數(shù)據(jù)塊在Cache中的 插入位置。它在考慮到其他競(jìng)爭(zhēng)應(yīng)用的同時(shí),利用錦標(biāo)賽監(jiān)控電路來學(xué)習(xí)每個(gè)應(yīng)用程序的 最優(yōu)插入方法。通過將新數(shù)據(jù)塊放置在LRU位置,PAE-TIP可以避免工作集規(guī)模大于可用 共享Cache容量的多道程序復(fù)雜發(fā)生Cache顛簸,與此同時(shí),通過將一部分工作集保留在 Cache中以貢獻(xiàn)更多的命中率來提高全局性能。此外,僅僅將新的數(shù)據(jù)塊插入到LRU位置并不足以最大程度的提升全局性能,這 是由于在Cache命中時(shí),命中數(shù)據(jù)塊又會(huì)被直接移動(dòng)到MRU位置,而如果后續(xù)訪問中該塊不 會(huì)被重用,那么它在被淘汰之前則需要在Cache中停留較長(zhǎng)的時(shí)間。為了解決這一問題,提 出了線程感知?jiǎng)討B(tài)提升方法TADPP來在MRU提升和單步提升方法之間進(jìn)行動(dòng)態(tài)選擇。如果 SIP方法被選中,那么命中數(shù)據(jù)塊只會(huì)向前移動(dòng)一個(gè)位置,這樣就需要經(jīng)過多次命中數(shù)據(jù)才 能最終到達(dá)MRU位置,從而盡可能加速無用數(shù)據(jù)被淘汰出Cache的速度。PAE-TIP方法使用每核DPSEL飽和計(jì)數(shù)器在各個(gè)組件方法之中進(jìn)行選擇。對(duì)于9 位的計(jì)數(shù)器,若其值大于等于384,意味著BIP/SIP方法組合被選用;若其值在256和384 之間,意味著BIP/MP方法組合被選用;若其值在128和256之間,則以意味著LRU/SIP方法 組合被選用,其它情況下一律使用LRU/MP方法組合。圖8給出了負(fù)載miX03、miX04、miX06 以及mix08在執(zhí)行過程中,9比特計(jì)數(shù)器DPSEL值的變化情況。實(shí)驗(yàn)過程中每隔IM條指令 對(duì)計(jì)數(shù)器的值采樣一次,圖中水平軸表示所執(zhí)行指令的數(shù)目(以一百萬條為單位),豎直軸 記錄計(jì)數(shù)器的數(shù)值。對(duì)于這些多道程序負(fù)載中的大部分應(yīng)用程序,在整個(gè)執(zhí)行過程中都只有一對(duì)方法 組合被選用,例如mix04中的應(yīng)用0和應(yīng)用3只使用BIP/SIP方法,同一負(fù)載中的應(yīng)用2則 始終使用LRU/MP方法組合。而對(duì)于負(fù)載mix03中的應(yīng)用0,執(zhí)行的初始階段Cache容量可 以容納下整個(gè)工作集,因此LRU/MP方法可以很好地工作,但是隨著程序的執(zhí)行,工作集大 小超過了可用的Cache容量,最初的方法發(fā)生了 Cache顛簸。最終DPSEL計(jì)數(shù)器的值達(dá)到 了最大飽和值,PAE-TIP方法選用了 BIP/SIP方法。類似的,負(fù)載mix08中的應(yīng)用0也有兩 個(gè)執(zhí)行階段第一階段BIP/SIP方法最優(yōu),而第二階段LRU/MP方法最優(yōu)。在PAE-TIP方法 下,最適合于每一階段程序執(zhí)行行為的方法組合被選中,從而可以獲得更好的全局性能。流式應(yīng)用通常具有較高的Cache訪問頻率并誘發(fā)大量的Cache缺失。相對(duì)于其它 應(yīng)用,流式應(yīng)用會(huì)以非常高的速率將大量數(shù)據(jù)塊插入到共享Cache中,在其干擾下系統(tǒng)的 全局性能將嚴(yán)重下降。PAE-TIP方法能夠消除流式應(yīng)用對(duì)全局性能所產(chǎn)生的嚴(yán)重負(fù)面影響,這主要是通 過如下幾個(gè)方面來實(shí)現(xiàn)的(1)劃分感知淘汰方法能夠根據(jù)程序從Cache空間中獲益的程 度對(duì)共享Cache進(jìn)行隱式劃分,這一原則無疑會(huì)極大地限制流式應(yīng)用所占有的Cache資源 數(shù)量;(2)線程感知插入和提升方法能夠?qū)⒘鲾?shù)據(jù)插入到LRU位置,并且逐漸地向MRU位置 移動(dòng)。 PAE-TIP方法所需要的硬件開銷主要有兩方面來源一是自適應(yīng)插入提升方法中
11錦標(biāo)賽機(jī)制所需的每核DPSEL飽和計(jì)數(shù)器(在本例中計(jì)數(shù)器被設(shè)置為9位)。注意到組選 擇邏輯電路本身不需要任何的存儲(chǔ)開銷,僅需要兩個(gè)加法器和兩個(gè)比較器即可。另外一部分開銷則來源于UCP方法中效用度監(jiān)控電路(UMON)所需的輔助標(biāo)記目 錄(Auxiliary Tag Directory :ATD)。本例仍然使用動(dòng)態(tài)組采樣(Dynamic Set Sampling DSS)機(jī)制來最大程度地降低ATD的存儲(chǔ)開銷,但是傳統(tǒng)的共享Cache并不需要這一附加的 效用度監(jiān)控電路。對(duì)于含有32個(gè)采樣組的ATD結(jié)構(gòu),其存儲(chǔ)開銷的細(xì)節(jié)如表4中所列,這 里假設(shè)32位的物理地址空間。從表中可以看出,對(duì)于4核處理器,UMON電路的開銷約為 0. 12%,相比于4MB的片上共享Cache,這一開銷還是相當(dāng)合理的。表4PAE-TIP方法中效用度監(jiān)控電路(UMON)的存儲(chǔ)開銷 上述實(shí)例只為說明本發(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)利要求
一種基于劃分感知和線程感知的末級(jí)高速緩存的性能優(yōu)化方法,用于多核處理器與共享末級(jí)高級(jí)緩存間的數(shù)據(jù)和指令的通信,其特征在于所述方法包括在多核處理器并行執(zhí)行應(yīng)用時(shí),共享末級(jí)高級(jí)緩存通過劃分感知淘汰方法來選擇末級(jí)高速緩存的候選替換塊;并使用線程感知?jiǎng)討B(tài)插入方法TADIP在基本LRU方法和雙向插入方法中優(yōu)選方法進(jìn)行高速緩存中新數(shù)據(jù)塊插入以及使用線程感知?jiǎng)討B(tài)提升方法TADPP F在最近最常使用方法和單步提升方法之間進(jìn)行選擇提升末級(jí)高速緩存中的命中塊。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述方法中劃分感知淘汰方法采用基于效 用的高速緩存劃分方法所提供的目標(biāo)劃分方案來選擇末級(jí)高速緩存中候選淘汰塊。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于所述方法中劃分感知淘汰方法包括當(dāng)某個(gè) 處理器核發(fā)生Cache缺失時(shí),首先對(duì)缺失所在的Cache組中屬于該處理器核的Cache塊的 數(shù)量進(jìn)行統(tǒng)計(jì),如果該處理器核的Cache塊的數(shù)量大于分配給該核的Cache塊的數(shù)目,則發(fā) 生缺失處理器核的LRU塊被淘汰;否則,所有不屬于該處理器核的Cache塊中最近最少被使 用的將被淘汰。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于所述方法中線程感知?jiǎng)討B(tài)提升方法包括以 所有剩余應(yīng)用程序當(dāng)前各自表現(xiàn)最好的提升方法為基礎(chǔ),來選擇每個(gè)應(yīng)用程序的最優(yōu)提升 方法。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于所述方法中通過錦標(biāo)賽監(jiān)控器將TADIP-F 方法和TADPP-F方法集成到一起。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于所述方法中標(biāo)識(shí)每個(gè)應(yīng)用程序所對(duì)應(yīng)的競(jìng) 爭(zhēng)檢測(cè)位(Set Dueling Monitors, SDMs)采用內(nèi)容可尋址存儲(chǔ)器或哈希函數(shù)來標(biāo)識(shí)。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于所述方法中標(biāo)識(shí)每個(gè)應(yīng)用程序所對(duì)應(yīng)的 SDMs采用哈希函數(shù)來標(biāo)識(shí)時(shí),在多核處理器內(nèi)設(shè)置加法器和比較器來實(shí)現(xiàn)。
全文摘要
本發(fā)明公開了一種基于劃分感知和線程感知的末級(jí)高速緩存的性能優(yōu)化方法,用于多核處理器與共享末級(jí)高級(jí)緩存間的數(shù)據(jù)和指令的通信,其特征在于所述方法包括在多核處理器并行執(zhí)行應(yīng)用時(shí),共享末級(jí)高級(jí)緩存通過劃分感知淘汰方法來選擇末級(jí)高速緩存的候選替換塊;并使用線程感知?jiǎng)討B(tài)插入方法TADIP在基本LRU方法和雙向插入方法中優(yōu)選方法進(jìn)行高速緩存中新數(shù)據(jù)塊插入以及使用線程感知?jiǎng)討B(tài)提升方法TADPP-F在最近最常使用方法和單步提升方法之間進(jìn)行選擇提升末級(jí)高速緩存中的命中塊。該方法提升了多線程并發(fā)時(shí)片上多處理器全局Cache的性能。
文檔編號(hào)G06F12/08GK101916230SQ20101025065
公開日2010年12月15日 申請(qǐng)日期2010年8月11日 優(yōu)先權(quán)日2010年8月11日
發(fā)明者吳俊敏, 唐軼軒, 尹巍, 朱小東, 趙小雨, 隋秀峰 申請(qǐng)人:中國(guó)科學(xué)技術(shù)大學(xué)蘇州研究院