陳繼承 趙雅倩 李一韓 王恩東 史宏志 唐士斌
(高效能服務(wù)器和存儲(chǔ)技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室(浪潮集團(tuán)有限公司) 北京 100085)
(chenjch@inspur.com)
緩存一致性維護(hù)是影響高速緩存一致性非均勻存儲(chǔ)訪問(wèn)(cache coherence non-uniform memory access, CC-NUMA)系統(tǒng)性能的關(guān)鍵因素.早期的CC-NUMA系統(tǒng)中,處理器數(shù)量較少,各處理器間直接互連,系統(tǒng)采用單級(jí)一致性域設(shè)計(jì)即可滿足系統(tǒng)性能需求.但隨著系統(tǒng)規(guī)模的擴(kuò)展,單級(jí)一致性域系統(tǒng)的處理器互連結(jié)構(gòu)越來(lái)越復(fù)雜,消息全局性傳播引發(fā)的網(wǎng)絡(luò)阻塞延遲越來(lái)越大,緩存一致性維護(hù)開銷急劇增長(zhǎng),嚴(yán)重影響系統(tǒng)性能與擴(kuò)展性.因此,8路以上的CC-NUMA系統(tǒng)通常采用兩級(jí)一致性域設(shè)計(jì)抑制緩存一致性維護(hù)開銷,即:多個(gè)處理器互連組成結(jié)點(diǎn)后形成結(jié)點(diǎn)內(nèi)一致性域,多個(gè)結(jié)點(diǎn)互連組成系統(tǒng)后形成結(jié)點(diǎn)間一致性域,兩級(jí)一致性域間的協(xié)議轉(zhuǎn)換通過(guò)一致性協(xié)同芯片(coherence chip, CC)實(shí)現(xiàn)[1-3].該方法可將一致性維護(hù)操作盡量限制在局部區(qū)域以避免一致性消息的全局傳播,避免了單級(jí)一致性域造成的系統(tǒng)互連結(jié)構(gòu)復(fù)雜、跨處理器訪問(wèn)跳步數(shù)多、高負(fù)載下阻塞延遲急劇增長(zhǎng)等難題[4],從而使系統(tǒng)性能得到有效擴(kuò)展.
受限于處理器的直連能力和處理器可識(shí)別的ID數(shù),CC-NUMA系統(tǒng)所能構(gòu)建的單結(jié)點(diǎn)規(guī)模有限,系統(tǒng)擴(kuò)展只能通過(guò)增加結(jié)點(diǎn)數(shù)目來(lái)實(shí)現(xiàn).但是,結(jié)點(diǎn)數(shù)目的增加會(huì)導(dǎo)致一致性目錄存儲(chǔ)開銷上升、跨結(jié)點(diǎn)訪問(wèn)跳步數(shù)和延遲增大、系統(tǒng)規(guī)模無(wú)法進(jìn)一步有效擴(kuò)展.針對(duì)上述問(wèn)題,當(dāng)前CC-NUMA系統(tǒng)采用目錄優(yōu)化[5]、片外緩存擴(kuò)展[6-8]、緩存數(shù)據(jù)預(yù)取[9-11]、一致性協(xié)議優(yōu)化[12-14]等方法來(lái)降低跨結(jié)點(diǎn)訪問(wèn)頻度,減少一致性開銷.
然而,上述優(yōu)化方法都是通過(guò)減少跨結(jié)點(diǎn)訪問(wèn)頻度間接減少平均訪問(wèn)延遲,對(duì)系統(tǒng)拓?fù)浣Y(jié)構(gòu)沒(méi)有改變,沒(méi)有縮短跨結(jié)點(diǎn)訪問(wèn)路徑和跳步數(shù).針對(duì)該問(wèn)題,本文提出了一種可任意配置結(jié)點(diǎn)內(nèi)處理器規(guī)模的CC-NUMA系統(tǒng)——多并行緩存一致性域(multiple parallel cache coherency domain, MPD).該系統(tǒng)通過(guò)在結(jié)點(diǎn)內(nèi)構(gòu)建多個(gè)并行緩存一致性域來(lái)擴(kuò)大單結(jié)點(diǎn)規(guī)模,使其不再受限于處理器直連能力和處理器可識(shí)別ID數(shù),從而減少系統(tǒng)結(jié)點(diǎn)數(shù)量,簡(jiǎn)化系統(tǒng)拓?fù)浣Y(jié)構(gòu),縮短訪問(wèn)路徑和跳步數(shù),直接減少系統(tǒng)平均訪問(wèn)延遲.同時(shí),由于結(jié)點(diǎn)內(nèi)的多個(gè)緩存一致性域之間是并行關(guān)系,連接至1個(gè)一致性協(xié)同芯片,共同構(gòu)成結(jié)點(diǎn)內(nèi)一致性域,所以,與傳統(tǒng)CC-NUMA系統(tǒng)相比,MPD系統(tǒng)并未增加緩存一致性域的層級(jí).
為減少緩存遠(yuǎn)端訪問(wèn)頻率,降低緩存一致性維護(hù)開銷,CC-NUMA系統(tǒng)通常將緩存資源劃分為2個(gè)一致性同步域,使用兩級(jí)緩存一致性協(xié)議對(duì)各一致性域進(jìn)行一致性管理.圖1是一個(gè)典型的多結(jié)點(diǎn)CC-NUMA系統(tǒng),包含結(jié)點(diǎn)內(nèi)一致性域和結(jié)點(diǎn)間一致性域的兩級(jí)緩存一致性域.
1) 結(jié)點(diǎn)內(nèi)一致性域.n個(gè)處理器與1個(gè)一致性協(xié)同芯片互連,構(gòu)成結(jié)點(diǎn)內(nèi)一致性域,維護(hù)的是本結(jié)點(diǎn)內(nèi)n個(gè)處理器間的緩存一致性.
2) 結(jié)點(diǎn)間一致性域.M個(gè)結(jié)點(diǎn)通過(guò)一致性協(xié)同芯片互連,構(gòu)成結(jié)點(diǎn)間一致性域,維護(hù)的是系統(tǒng)內(nèi)各結(jié)點(diǎn)間的緩存一致性.
兩級(jí)一致性域系統(tǒng)中,一致性協(xié)同芯片用于維護(hù)兩級(jí)一致性協(xié)議的轉(zhuǎn)換和維護(hù),該芯片通常包含遠(yuǎn)端代理(remote proxy, RP)和本地代理(local proxy, LP)兩個(gè)處理單元.
1) RP.結(jié)點(diǎn)一致性協(xié)同芯片的遠(yuǎn)端內(nèi)存代理,存儲(chǔ)遠(yuǎn)端地址數(shù)據(jù)在本地結(jié)點(diǎn)內(nèi)處理器的一致性狀態(tài),監(jiān)控本地處理器對(duì)遠(yuǎn)端地址的請(qǐng)求,可與本地處理器及遠(yuǎn)端結(jié)點(diǎn)一致性協(xié)同芯片的LP單元進(jìn)行通信.
2) LP.結(jié)點(diǎn)一致性協(xié)同芯片的本地內(nèi)存代理,存儲(chǔ)本結(jié)點(diǎn)地址的數(shù)據(jù)在其他遠(yuǎn)端結(jié)點(diǎn)的一致性狀態(tài),監(jiān)控遠(yuǎn)端結(jié)點(diǎn)對(duì)本地地址的請(qǐng)求,可與本地根目錄及遠(yuǎn)端結(jié)點(diǎn)一致性協(xié)同芯片的RP單元進(jìn)行通信.
偵聽與目錄是對(duì)緩存一致性信息的2種處理方式[15].由于偵聽協(xié)議可擴(kuò)展性差,所以,CC-NUMA系統(tǒng)多采用基于目錄的緩存一致性協(xié)議.結(jié)點(diǎn)一致性協(xié)同芯片的緩存一致性目錄記錄了各緩存行的一致性狀態(tài)(State)、共享列表(Share List)和寫權(quán)限擁有者(Owner),按緩存數(shù)據(jù)地址的不同,分別由RP與LP單元維護(hù)與更新.
RP目錄存儲(chǔ)了遠(yuǎn)端數(shù)據(jù)在本結(jié)點(diǎn)的一致性狀態(tài)信息,目錄項(xiàng)如圖2所示:
1) State——狀態(tài)位,記錄遠(yuǎn)端數(shù)據(jù)在本結(jié)點(diǎn)的一致性狀態(tài),其長(zhǎng)度與協(xié)議有關(guān),如MI協(xié)議占用1 b,MESI協(xié)議占用2 b;
2) Share List——共享列表,記錄遠(yuǎn)端數(shù)據(jù)在本地結(jié)點(diǎn)內(nèi)處理器的一致性狀態(tài),其長(zhǎng)度與目錄實(shí)現(xiàn)技術(shù)有關(guān),如全映射目錄[3]的共享列表長(zhǎng)度為n;
3) Owner——寫權(quán)限擁有者,記錄遠(yuǎn)端數(shù)據(jù)在本結(jié)點(diǎn)內(nèi)處于ME態(tài)的處理器ID,其長(zhǎng)度為n.
LP目錄存儲(chǔ)了本地?cái)?shù)據(jù)在遠(yuǎn)端結(jié)點(diǎn)的一致性狀態(tài)信息,目錄項(xiàng)如圖3所示:
Fig. 3 LP directory entry in CC-NUMA system圖3 CC-NUMA系統(tǒng)結(jié)點(diǎn)一致性協(xié)同芯片LP目錄項(xiàng)
1) State——狀態(tài)位,記錄本地?cái)?shù)據(jù)在本結(jié)點(diǎn)的一致性狀態(tài);
2) Share List——共享列表,記錄本地?cái)?shù)據(jù)在本結(jié)點(diǎn)i之外的所有遠(yuǎn)端結(jié)點(diǎn)的一致性狀態(tài),全映射目錄的共享列表長(zhǎng)度為M-1;
3) Owner——寫權(quán)限擁有者,記錄本地?cái)?shù)據(jù)在遠(yuǎn)端結(jié)點(diǎn)處于ME態(tài)的遠(yuǎn)端結(jié)點(diǎn)ID,其長(zhǎng)度為M-1.
MPD系統(tǒng)是一個(gè)結(jié)點(diǎn)內(nèi)包含多個(gè)并行緩存一致性域的CC-NUMA系統(tǒng).如圖4所示,n個(gè)處理器與結(jié)點(diǎn)一致性協(xié)同芯片緊耦合互連,構(gòu)成1個(gè)緩存一致性域(cache coherence domain, CCD);k個(gè)緩存一致性域并行連接至1個(gè)結(jié)點(diǎn)一致性協(xié)同芯片,共同構(gòu)成結(jié)點(diǎn)內(nèi)一致性域;m個(gè)結(jié)點(diǎn)通過(guò)結(jié)點(diǎn)一致性協(xié)同芯片互連,構(gòu)成結(jié)點(diǎn)間一致性域,m=Mk.與圖1的CC-NUMA系統(tǒng)相比,圖4的MPD系統(tǒng)結(jié)點(diǎn)數(shù)量縮減為原系統(tǒng)的1k.
MPD系統(tǒng)中,結(jié)點(diǎn)內(nèi)的多個(gè)緩存一致性域并行連接至1個(gè)一致性協(xié)同芯片,并由該協(xié)同芯片統(tǒng)一維護(hù)其結(jié)點(diǎn)內(nèi)的緩存一致性,也就是說(shuō),這些并行的緩存一致性域并不單獨(dú)維護(hù)一致性域.所以,MPD系統(tǒng)的一致性域設(shè)計(jì)與CC-NUMA系統(tǒng)相同,都是結(jié)點(diǎn)內(nèi)結(jié)點(diǎn)間兩級(jí)一致性域架構(gòu),使用兩級(jí)緩存一致性協(xié)議,兩級(jí)一致性域間的協(xié)議轉(zhuǎn)換通過(guò)一致性協(xié)同芯片實(shí)現(xiàn).
1) 結(jié)點(diǎn)內(nèi)一致性域.k個(gè)緩存一致性域與1個(gè)一致性協(xié)同芯片互連,構(gòu)成結(jié)點(diǎn)內(nèi)一致性域,由本結(jié)點(diǎn)的一致性協(xié)同芯片統(tǒng)一維護(hù)結(jié)點(diǎn)內(nèi)nk個(gè)處理器間的緩存一致性.
Fig. 4 MPD system with multiple clumps圖4 多結(jié)點(diǎn)MPD系統(tǒng)
2) 結(jié)點(diǎn)間一致性域.m個(gè)結(jié)點(diǎn)通過(guò)一致性協(xié)同芯片互連,構(gòu)成結(jié)點(diǎn)間一致性域,由各結(jié)點(diǎn)的一致性協(xié)同芯片共同維護(hù)系統(tǒng)各結(jié)點(diǎn)間的緩存一致性.
與CC-NUMA系統(tǒng)類似,MPD系統(tǒng)的結(jié)點(diǎn)一致性協(xié)同芯片也包括遠(yuǎn)端代理RP和本地代理LP這2個(gè)處理單元,但邏輯功能和通信單元略有差異,主要是對(duì)LP進(jìn)行了功能擴(kuò)展,以同時(shí)維護(hù)結(jié)點(diǎn)內(nèi)所有處理器的緩存一致性.
1) RP.結(jié)點(diǎn)一致性協(xié)同芯片的遠(yuǎn)端內(nèi)存代理,存儲(chǔ)遠(yuǎn)端地址數(shù)據(jù)在本地結(jié)點(diǎn)內(nèi)(含本結(jié)點(diǎn)內(nèi)所有緩存一致性域)處理器的一致性狀態(tài),監(jiān)控本結(jié)點(diǎn)內(nèi)所有處理器對(duì)遠(yuǎn)端地址的請(qǐng)求,可與本結(jié)點(diǎn)內(nèi)處理器或遠(yuǎn)端結(jié)點(diǎn)一致性協(xié)同芯片的LP單元進(jìn)行通信.
2) LP.結(jié)點(diǎn)一致性協(xié)同芯片的本地內(nèi)存代理,存儲(chǔ)結(jié)點(diǎn)內(nèi)各緩存一致性域的本地?cái)?shù)據(jù)在本結(jié)點(diǎn)內(nèi)其他緩存一致性域各處理器以及系統(tǒng)內(nèi)所有遠(yuǎn)端結(jié)點(diǎn)的一致性狀態(tài),監(jiān)控各緩存一致性域?qū)Y(jié)點(diǎn)內(nèi)其他緩存一致性域的請(qǐng)求以及遠(yuǎn)端結(jié)點(diǎn)對(duì)本地地址的請(qǐng)求,可與本結(jié)點(diǎn)內(nèi)處理器、根目錄以及遠(yuǎn)端結(jié)點(diǎn)一致性協(xié)同芯片的RP單元進(jìn)行通信.
從CC-NUMA與MPD系統(tǒng)中RP與LP的邏輯功能對(duì)比來(lái)看,MPD系統(tǒng)中的RP與LP單元需要存儲(chǔ)更多處理器的一致性狀態(tài)信息,所以需要對(duì)CC-NUMA系統(tǒng)的一致性協(xié)同芯片目錄的共享列表進(jìn)行擴(kuò)展.
RP目錄存儲(chǔ)了遠(yuǎn)端數(shù)據(jù)在本結(jié)點(diǎn)內(nèi)所有并行緩存一致性域的一致性狀態(tài)信息,目錄項(xiàng)如圖5所示.
1) State——狀態(tài)位,記錄遠(yuǎn)端數(shù)據(jù)在本結(jié)點(diǎn)的一致性狀態(tài);
2) Share List——共享列表,記錄遠(yuǎn)端數(shù)據(jù)在本地結(jié)點(diǎn)所有緩存一致性域內(nèi)處理器的一致性狀態(tài),全映射目錄的共享列表長(zhǎng)度為nk;
3) Owner——寫權(quán)限擁有者,記錄遠(yuǎn)端數(shù)據(jù)在本結(jié)點(diǎn)內(nèi)處于ME態(tài)的處理器ID,其長(zhǎng)度為lb(nk).
Fig. 5 RP directory entry in MPD system圖5 MPD系統(tǒng)RP目錄項(xiàng)
LP目錄存儲(chǔ)了本結(jié)點(diǎn)各緩存一致性域的本地?cái)?shù)據(jù)在結(jié)點(diǎn)內(nèi)其他并行緩存一致性域以及系統(tǒng)遠(yuǎn)端結(jié)點(diǎn)的一致性狀態(tài)信息,目錄項(xiàng)如圖6所示.
1) State——狀態(tài)位,記錄本地?cái)?shù)據(jù)在本結(jié)點(diǎn)的一致性狀態(tài);
3) Owner——寫權(quán)限擁有者,記錄本地?cái)?shù)據(jù)在遠(yuǎn)端結(jié)點(diǎn)處于ME態(tài)的遠(yuǎn)端結(jié)點(diǎn)ID,或緩存一致性域本地?cái)?shù)據(jù)在結(jié)點(diǎn)內(nèi)其他緩存一致性域處于ME態(tài)的處理器ID,長(zhǎng)度為
Fig. 6 LP directory entry in MPD system圖6 MPD系統(tǒng)LP目錄項(xiàng)
雖然MPD系統(tǒng)與CC-NUMA系統(tǒng)的緩存一致性域?qū)哟蜗嗤?,但兩者的系統(tǒng)架構(gòu)不同,因此,2種系統(tǒng)的緩存一致性交互流程略有不同.
1) 緩存一致性域內(nèi)訪問(wèn)
MPD系統(tǒng)與CC-NUMA系統(tǒng)的緩存一致性域結(jié)構(gòu)相同,都是由多個(gè)處理器與一致性協(xié)同芯片互連而成,因此,兩者的緩存一致性域內(nèi)訪問(wèn)流程相同,均為CPU與根目錄直接交互,如圖7所示:
Fig. 7 Access within the same CCD in CC-NUMA or MPD system圖7 CC-NUMA系統(tǒng)與MPD系統(tǒng)的緩存一致性域內(nèi)訪問(wèn)
2) 緩存一致性域間訪問(wèn)
CC-NUMA系統(tǒng)內(nèi),結(jié)點(diǎn)內(nèi)一致性域由單個(gè)緩存一致性域構(gòu)成,所以,緩存一致性域間訪問(wèn)即為結(jié)點(diǎn)間一致性訪問(wèn),如圖8所示:
Fig. 8 Access between different CCDs in CC-NUMA system圖8 CC-NUMA系統(tǒng)的緩存一致性域間(結(jié)點(diǎn)間)訪問(wèn)
MPD系統(tǒng)內(nèi),單個(gè)結(jié)點(diǎn)一致性域內(nèi)包含多個(gè)緩存一致性域,因此,MPD系統(tǒng)的緩存一致性域間訪問(wèn)包含了結(jié)點(diǎn)內(nèi)的緩存一致性域間訪問(wèn)和結(jié)點(diǎn)間的緩存一致性域間訪問(wèn)2種類型,如圖9所示:
Fig. 9 Access between CCDs in MPD system圖9 MPD系統(tǒng)的緩存一致性域間訪問(wèn)
圖9(a)描述了MPD系統(tǒng)獨(dú)有的結(jié)點(diǎn)內(nèi)跨緩存一致性域訪問(wèn),它將CC-NUMA系統(tǒng)中的遠(yuǎn)端跨結(jié)點(diǎn)訪問(wèn)轉(zhuǎn)換為近端結(jié)點(diǎn)內(nèi)跨域訪問(wèn),僅與本地一致性協(xié)同芯片進(jìn)行交互;圖9(b)描述了與CC-NUMA系統(tǒng)相同的結(jié)點(diǎn)間的緩存一致性域間訪問(wèn),需與本地一致性協(xié)同芯片及遠(yuǎn)端一致性協(xié)同芯片進(jìn)行交互.
從2種系統(tǒng)的緩存一致性交互流程描述來(lái)看,MPD系統(tǒng)中的緩存一致性訪問(wèn)分為3類:
1) 結(jié)點(diǎn)內(nèi)的緩存一致性域內(nèi)訪問(wèn).該類訪問(wèn)對(duì)應(yīng)CC-NUMA系統(tǒng)的結(jié)點(diǎn)一致性內(nèi)訪問(wèn)(即緩存一致性域內(nèi)訪問(wèn)),兩者開銷相同.
2) 結(jié)點(diǎn)內(nèi)的緩存一致性域間訪問(wèn).該類訪問(wèn)對(duì)應(yīng)CC-NUMA系統(tǒng)中的結(jié)點(diǎn)間訪問(wèn),前者僅通過(guò)本地CC即可進(jìn)行交互,而后者需要通過(guò)本地CC與遠(yuǎn)端CC才可進(jìn)行交互,前者開銷小于后者.
3) 結(jié)點(diǎn)間的緩存一致性域間訪問(wèn).該類訪問(wèn)對(duì)應(yīng)CC-NUMA系統(tǒng)中的結(jié)點(diǎn)間訪問(wèn),兩者開銷相同.
因此,與CC-NUMA系統(tǒng)相比,MPD系統(tǒng)并未產(chǎn)生額外的一致性開銷,并將部分結(jié)點(diǎn)間訪問(wèn)轉(zhuǎn)換為結(jié)點(diǎn)內(nèi)訪問(wèn),直接縮短了訪問(wèn)路徑與跳步數(shù),從而降低系統(tǒng)平均訪問(wèn)延遲,減少一致性維護(hù)開銷,提升系統(tǒng)性能.
MPD系統(tǒng)通過(guò)在結(jié)點(diǎn)內(nèi)構(gòu)建多個(gè)并行緩存一致性域突破了單結(jié)點(diǎn)規(guī)模限制,減少了結(jié)點(diǎn)數(shù)量,從而降低了結(jié)點(diǎn)規(guī)模和結(jié)點(diǎn)間網(wǎng)絡(luò)復(fù)雜度.
假設(shè)某系統(tǒng)規(guī)模(即處理器總數(shù))為N,單個(gè)緩存一致性域內(nèi)最多容納處理器數(shù)量為n,那么,傳統(tǒng)CC-NUMA系統(tǒng)和MPD系統(tǒng)的結(jié)點(diǎn)數(shù)Num_C以及結(jié)點(diǎn)間全互連的連接數(shù)T分別為
Num_CCC-NUMA=Nn,
(1)
TCC-NUMA=N(N-n)2n2,
(2)
Num_CMPD=Nnk,
(3)
TMPD=N(N-nk)2(nk)2,
(4)
其中,k為MPD系統(tǒng)中單個(gè)結(jié)點(diǎn)內(nèi)包含的并行緩存一致性域個(gè)數(shù).
由式(1)~(4)可以得出,同等系統(tǒng)規(guī)模下,傳統(tǒng)CC-NUMA系統(tǒng)和MPD系統(tǒng)的結(jié)點(diǎn)數(shù)量的比值ηNum_C為
(5)
結(jié)點(diǎn)間全互連的連接數(shù)比值ηT為
(6)
因此,與傳統(tǒng)CC-NUMA系統(tǒng)相比,MPD系統(tǒng)的結(jié)點(diǎn)規(guī)??煽s減至1k,結(jié)點(diǎn)間全互連的連接數(shù)可降低到1k2以下.例如,當(dāng)N=64,n=4,k=2時(shí),MPD系統(tǒng)的結(jié)點(diǎn)規(guī)模降低50%,結(jié)點(diǎn)間全互連的連接數(shù)降低77%;而當(dāng)N=64,n=4,k=4時(shí),MPD系統(tǒng)的結(jié)點(diǎn)規(guī)模降低75%,結(jié)點(diǎn)間全互連的連接數(shù)降低95%.
由于同一結(jié)點(diǎn)內(nèi)不同緩存一致性域間的近端跨域訪問(wèn)延遲遠(yuǎn)小于不同結(jié)點(diǎn)間的遠(yuǎn)端跨結(jié)點(diǎn)訪問(wèn)延遲,所以MPD系統(tǒng)的平均訪問(wèn)延遲低于CC-NUMA系統(tǒng),如圖10所示:
Fig. 10 Clump architecture in different systems built with different CPU圖10 不同規(guī)格處理器搭建的系統(tǒng)單結(jié)點(diǎn)架構(gòu)
假設(shè)MPD系統(tǒng)中同一緩存一致性域內(nèi)的平均訪問(wèn)延遲為l,同一結(jié)點(diǎn)內(nèi)不同緩存一致性域間的平均訪問(wèn)延遲為3l,不同結(jié)點(diǎn)間的平均訪問(wèn)延遲為7l,緩存一致性域內(nèi)的緩存次數(shù)占比為α,近端結(jié)點(diǎn)內(nèi)跨域的訪問(wèn)次數(shù)占比為β,那么,MPD系統(tǒng)的遠(yuǎn)端跨結(jié)點(diǎn)的訪問(wèn)次數(shù)占比為1-α-β,而相同規(guī)模的CC-NUMA系統(tǒng)的遠(yuǎn)端跨結(jié)點(diǎn)的訪問(wèn)次數(shù)占比為1-α.因此,同規(guī)模的MPD系統(tǒng)與CC-NUMA系統(tǒng)的平均訪問(wèn)延遲L分別為
LMPD=l×α+3l×β+7l×(1-α-β)=
l×(7-6α-4β),
(7)
LCC-NUMA=l×α+7l×(1-α)=l×(7-6α).
(8)
① 該結(jié)論僅針對(duì)大規(guī)模CC-NUMA系統(tǒng),單結(jié)點(diǎn)等小規(guī)模系統(tǒng)不保證不等式結(jié)論成立.
由式(7)(8)可得2種系統(tǒng)平均訪問(wèn)延遲的比值為
(9)
假設(shè)α=10%,β=30%,則2種系統(tǒng)的平均訪問(wèn)延遲之比為1316=0.812 5,即MPD系統(tǒng)的平均訪問(wèn)延遲降低了近2成,有效提高了系統(tǒng)性能.
CC-NUMA系統(tǒng)中,每個(gè)緩存一致性域單獨(dú)維護(hù)1個(gè)結(jié)點(diǎn)一致性目錄,結(jié)點(diǎn)數(shù)量較多,系統(tǒng)的結(jié)點(diǎn)一致性目錄開銷較大;而MPD系統(tǒng)中,多個(gè)并行緩存一致性域共同維護(hù)1個(gè)結(jié)點(diǎn)一致性目錄,結(jié)點(diǎn)數(shù)量較少,系統(tǒng)的結(jié)點(diǎn)一致性目錄開銷較小.
以MESI(modified,exclusive, shared or invalid)協(xié)議的全映射目錄結(jié)構(gòu)為例,假設(shè)MPD系統(tǒng)規(guī)模為N,單個(gè)緩存一致性域內(nèi)最多容納處理器數(shù)量為n,每個(gè)結(jié)點(diǎn)內(nèi)共有k個(gè)緩存一致性域,內(nèi)存容量為B,緩存項(xiàng)大小為b,則該系統(tǒng)內(nèi)單個(gè)結(jié)點(diǎn)一致性目錄開銷為
(10)
該MPD系統(tǒng)內(nèi)所有結(jié)點(diǎn)的一致性目錄總開銷為
(11)
同等規(guī)模的傳統(tǒng)CC-NUMA系統(tǒng)內(nèi)單個(gè)結(jié)點(diǎn)目錄開銷為
(12)
該CC-NUMA系統(tǒng)內(nèi)所有結(jié)點(diǎn)的一致性目錄總開銷為
(13)
由式(11)(13)可得,傳統(tǒng)CC-NUMA系統(tǒng)與MPD系統(tǒng)的結(jié)點(diǎn)一致性目錄總開銷的差值ΔD為
因?yàn)樵诖笠?guī)模CC-NUMA系統(tǒng)中,
因此,對(duì)于大規(guī)模CC-NUMA系統(tǒng),同等規(guī)模的MPD系統(tǒng)的結(jié)點(diǎn)目錄開銷更小,而且,內(nèi)存容量越大,目錄開銷降低的幅度越大.
以64顆處理器組成的CC-NUMA系統(tǒng)為例,假設(shè)每個(gè)緩存一致性域內(nèi)最多可容納2顆處理器,系統(tǒng)內(nèi)存容量為16 GB,單個(gè)緩存項(xiàng)大小為128 KB.那么傳統(tǒng)CC-NUMA系統(tǒng)共需32個(gè)結(jié)點(diǎn)一致性協(xié)同芯片,目錄開銷為[8×(1 027+31×lb 31)]Mb,約為9.223 Gb;而單結(jié)點(diǎn)內(nèi)含2個(gè)并行緩存一致性域的MPD系統(tǒng)僅需16個(gè)結(jié)點(diǎn)一致性協(xié)同芯片,目錄開銷為[8×(293+15×lb 17)]Mb,約為2.768 Gb,不到CC-NUMA系統(tǒng)目錄開銷的13;單結(jié)點(diǎn)內(nèi)含4個(gè)并行緩存一致性域的MPD系統(tǒng)僅需8個(gè)結(jié)點(diǎn)一致性協(xié)同芯片,目錄開銷為[8×(118+7×lb 13)]Mb,約為1.124 Gb,不到CC-NUMA系統(tǒng)結(jié)點(diǎn)目錄開銷的18.
MPD系統(tǒng)中,單結(jié)點(diǎn)規(guī)模不再受處理器直連能力的限制,因此,可以選用直連能力較弱的處理器代替直連能力較強(qiáng)的處理器搭建同等結(jié)點(diǎn)規(guī)模的系統(tǒng),以降低系統(tǒng)成本與功耗.不同直連能力的處理器價(jià)格和功耗差異較大.支持8路直連的處理器有3個(gè)一致性互連端口,功耗約為130 W,單價(jià)約為2 500美元;支持4路直連的處理器有2個(gè)一致性互連端口,功耗為115 W,單價(jià)為2 000美元;而支持2路直連的處理器僅有1個(gè)一致性互連端口,功耗為100 W,單價(jià)為1 500美元.
假設(shè)要搭建8結(jié)點(diǎn)的32路系統(tǒng),傳統(tǒng)CC-NUMA系統(tǒng)需要32顆具有8路直連能力的處理器,結(jié)點(diǎn)內(nèi)結(jié)構(gòu)如圖10(a)所示;而結(jié)點(diǎn)內(nèi)含2個(gè)并行緩存一致性域的MPD1系統(tǒng)則只需要32顆具有4路直連能力的處理器,結(jié)點(diǎn)內(nèi)結(jié)構(gòu)如圖10(b)所示;結(jié)點(diǎn)內(nèi)含4個(gè)并行緩存一致性域的MPD2系統(tǒng)僅需要32顆具有2路直連能力的處理器,結(jié)點(diǎn)內(nèi)結(jié)構(gòu)如圖10(c)所示.
假定一致性協(xié)同芯片的單價(jià)為1 000美元,那么,CC-NUMA,MPD1,MPD2這3種8結(jié)點(diǎn)32路系統(tǒng)的硬件成本和處理器功耗如表1所示.相比于傳統(tǒng)CC-NUMA系統(tǒng),單結(jié)點(diǎn)內(nèi)含2個(gè)并行緩存一致性域的MPD1系統(tǒng)可降低功耗11.5%,降低成本20%;單結(jié)點(diǎn)內(nèi)含4個(gè)并行緩存一致性域的MPD2系統(tǒng)可降低功耗23.1%,降低成本40%.
Table 1 Comparison of Power and Cost AmongDifferent Systems
① 本文實(shí)驗(yàn)設(shè)置較小的內(nèi)存容量是為了避免部分緩存密集訪問(wèn),以便更好地模擬大規(guī)模系統(tǒng)的多結(jié)點(diǎn)間的緩存一致性維護(hù).
本文選用gem5[16]對(duì)兩級(jí)緩存一致性域的MPD系統(tǒng)和CC-NUMA系統(tǒng)進(jìn)行模擬,模擬系統(tǒng)中,系統(tǒng)結(jié)點(diǎn)無(wú)結(jié)點(diǎn)緩存功能,對(duì)接收的消息均做轉(zhuǎn)發(fā)處理.各級(jí)訪問(wèn)延遲比為∶緩存域內(nèi)訪問(wèn)延遲∶結(jié)點(diǎn)內(nèi)訪問(wèn)延遲∶結(jié)點(diǎn)間訪問(wèn)延遲=1∶3∶7.實(shí)驗(yàn)的主要系統(tǒng)參數(shù)如表2所示.實(shí)驗(yàn)測(cè)試程序選用了SPLASH2[17]的1個(gè)內(nèi)核程序和3個(gè)應(yīng)用程序,以及PARSEC[18]中的3個(gè)應(yīng)用程序,各配置如表3所示.
Table 2 Parameters of System Configuration表2 系統(tǒng)參數(shù)配置
Table 3 Benchmark SPLASH2 and PARSEC表3 測(cè)試集SPLASH2與PARSEC
為驗(yàn)證MPD系統(tǒng)對(duì)系統(tǒng)性能有效擴(kuò)展能力的提升,以及低功耗低成本MPD系統(tǒng)構(gòu)建的可行性,本節(jié)分別對(duì)16路、32路和64路的傳統(tǒng)CC-NUMA系統(tǒng)與不同配置的MPD系統(tǒng)進(jìn)行了對(duì)比測(cè)試.測(cè)試實(shí)驗(yàn)數(shù)據(jù)顯示,不同處理器規(guī)模的系統(tǒng)對(duì)比結(jié)果類似.因此,為了避免重復(fù),本節(jié)僅選用32路系統(tǒng)的對(duì)比測(cè)試數(shù)據(jù)進(jìn)行說(shuō)明.另外,為便于數(shù)據(jù)比較的直觀性,各組數(shù)據(jù)均以傳統(tǒng)CC-NUMA的系統(tǒng)性能為標(biāo)準(zhǔn)進(jìn)行了歸一化處理.
4.2.1 平均訪問(wèn)延遲對(duì)比
圖11顯示了CC-NUMA系統(tǒng)與各MPD系統(tǒng)中不同類型訪問(wèn)的數(shù)量占比.圖11中的橫坐標(biāo)m×k代表了系統(tǒng)的緩存一致性域規(guī)模:m代表結(jié)點(diǎn)數(shù),k代表單結(jié)點(diǎn)內(nèi)緩存一致性域數(shù)量.因此,m×1就代表了結(jié)點(diǎn)數(shù)為m的CC-NUMA系統(tǒng).從圖11中各類訪問(wèn)占比來(lái)看,由于MPD系統(tǒng)擴(kuò)大了單結(jié)點(diǎn)處理器規(guī)模,有效減少了結(jié)點(diǎn)數(shù)量,部分結(jié)點(diǎn)間遠(yuǎn)端訪問(wèn)轉(zhuǎn)換為結(jié)點(diǎn)內(nèi)跨域近端訪問(wèn),而且,單結(jié)點(diǎn)處理器規(guī)模越大,轉(zhuǎn)換為結(jié)點(diǎn)內(nèi)跨域訪問(wèn)的結(jié)點(diǎn)間訪問(wèn)量越多.圖11中結(jié)點(diǎn)間訪問(wèn)量減少最多的是OCEAN_NS.當(dāng)單結(jié)點(diǎn)內(nèi)有8個(gè)并行緩存一致性域時(shí),OCEAN_NS有58%的結(jié)點(diǎn)間訪問(wèn)轉(zhuǎn)換為結(jié)點(diǎn)內(nèi)跨域訪問(wèn).
Fig. 11 Comparison of the access ratio among different 32-way systems圖11 32路CC-NUMA系統(tǒng)與MPD系統(tǒng)的各類型訪問(wèn)量對(duì)比
因?yàn)榻Y(jié)點(diǎn)內(nèi)跨域訪問(wèn)延遲遠(yuǎn)小于結(jié)點(diǎn)間訪問(wèn)延遲,所以結(jié)點(diǎn)間訪問(wèn)數(shù)量的減少直接降低了系統(tǒng)平均訪問(wèn)延遲.例如,單結(jié)點(diǎn)內(nèi)有8個(gè)并行緩存一致性域時(shí),OCEAN_NS的系統(tǒng)平均訪存延遲降低32%.從圖12的對(duì)比結(jié)果來(lái)看,系統(tǒng)平均訪問(wèn)延遲的變化趨勢(shì)與結(jié)點(diǎn)間訪問(wèn)占比類似,均隨結(jié)點(diǎn)內(nèi)緩存一致性域數(shù)量k的增加而減少.當(dāng)k=2時(shí),與CC-NUMA系統(tǒng)相比,MPD系統(tǒng)的平均訪問(wèn)延遲降低3.9%;當(dāng)k=4時(shí),與CC-NUMA系統(tǒng)相比,MPD系統(tǒng)的平均訪問(wèn)延遲降低11.7%;當(dāng)k=8時(shí),與CC-NUMA系統(tǒng)相比,MPD系統(tǒng)的平均訪問(wèn)延遲降低27.9%.
Fig. 12 Comparison of the average access latency among different 32-way systems圖12 32路CC-NUMA系統(tǒng)與MPD系統(tǒng)的平均訪問(wèn)延遲對(duì)比
4.2.2 指令平均執(zhí)行周期對(duì)比
相較于系統(tǒng)平均訪問(wèn)延遲,CC-NUMA系統(tǒng)和MPD系統(tǒng)的指令平均執(zhí)行周期(cycles per instruction,CPI)差異較小,但仍是MPD系統(tǒng)性能較優(yōu),且系統(tǒng)CPI隨結(jié)點(diǎn)內(nèi)緩存一致性域數(shù)量k的增加而減少.這主要是因?yàn)?,系統(tǒng)平均訪問(wèn)延遲僅與訪問(wèn)類型占比有關(guān),而CPI還與程序指令數(shù)、指令類型等有關(guān).圖13中各程序的CPI變化幅度不同也是因?yàn)檫@個(gè)原因.盡管各測(cè)試程序的CPI降幅不同,但MPD系統(tǒng)整體平均性能仍呈現(xiàn)較明顯的線性下降趨勢(shì):當(dāng)k取值為2,4,8時(shí),MPD系統(tǒng)比傳統(tǒng)CC-NUMA系統(tǒng)的CPI分別降低3.6%,7.6%,12.6%,即MPD系統(tǒng)性能提升3.5%,8.2%,14.4%.
本文3.4節(jié)所述,MPD系統(tǒng)中可采用直連能力較弱的處理器代替直連能力較強(qiáng)的處理器搭建同等規(guī)模的系統(tǒng),以降低功耗、節(jié)約成本.但是,MPD系統(tǒng)采用的是單結(jié)點(diǎn)內(nèi)多緩存一致性域架構(gòu);原CC-NUMA系統(tǒng)中的部分緩存一致性域內(nèi)訪問(wèn)將轉(zhuǎn)換為結(jié)點(diǎn)內(nèi)跨一致性域訪問(wèn),從而導(dǎo)致系統(tǒng)平均訪問(wèn)延遲增加,性能下降.
Fig. 13 Comparison of CPI among different 32-way systems圖13 32路CC-NUMA系統(tǒng)與MPD系統(tǒng)的CPI對(duì)比
為測(cè)試這種低功耗低成本的MPD系統(tǒng)與傳統(tǒng)CC-NUMA系統(tǒng)的性能差異度,本節(jié)對(duì)不同規(guī)格處理器搭建的4結(jié)點(diǎn)16路系統(tǒng)、8結(jié)點(diǎn)32路系統(tǒng)和16結(jié)點(diǎn)64路系統(tǒng)進(jìn)行了性能測(cè)試.各組測(cè)試數(shù)據(jù)均表明,與傳統(tǒng)CC-NUMA系統(tǒng)相比,采用較低規(guī)格處理器搭建的MPD系統(tǒng)性能下降有限.以圖14中的32路系統(tǒng)為例,當(dāng)處理器為4路直連時(shí),每個(gè)結(jié)點(diǎn)內(nèi)有2個(gè)緩存一致性域,系統(tǒng)CPI上升1.7%;當(dāng)處理器為2路直連時(shí),每個(gè)結(jié)點(diǎn)內(nèi)有4個(gè)緩存一致性域,系統(tǒng)CPI上升2.6%,上升幅度變小.
與表1中處理器硬件成本的下降程度相比,這種MPD系統(tǒng)的性能下降幅度較小,因此,使用低規(guī)格處理器搭建的MPD系統(tǒng)具有更高的性價(jià)比.如圖15所示,與8路直連處理器搭建的CC-NUMA系統(tǒng)相比,4路直連處理器搭建的32路MPD系統(tǒng)性價(jià)比提升1.20倍,2路直連處理器搭建的32路MPD系統(tǒng)性價(jià)比提升1.53倍.
Fig. 14 Comparison of CPI among 8 clumps 32-way systems built by different processors圖14 不同處理器搭建的8結(jié)點(diǎn)32路系統(tǒng)的CPI對(duì)比
Fig. 15 Cost-effective of different systems圖15 不同處理器系統(tǒng)的性價(jià)比
處理器直連能力和處理器可識(shí)別ID數(shù)的有限性限制了CC-NUMA系統(tǒng)的單個(gè)結(jié)點(diǎn)規(guī)模,導(dǎo)致系統(tǒng)規(guī)模的擴(kuò)張只能通過(guò)結(jié)點(diǎn)數(shù)量的增加來(lái)實(shí)現(xiàn).而結(jié)點(diǎn)數(shù)量的增加致使緩存一致性維護(hù)開銷增大,結(jié)點(diǎn)間互連結(jié)構(gòu)復(fù)雜,降低了系統(tǒng)性能的有效擴(kuò)展.本文提出的MPD系統(tǒng)突破了單結(jié)點(diǎn)的處理器規(guī)模限制,能夠任意設(shè)置單結(jié)點(diǎn)規(guī)模,大幅減少結(jié)點(diǎn)數(shù)量.與其他系統(tǒng)性能優(yōu)化方法相比,這種擴(kuò)大單結(jié)點(diǎn)規(guī)模的方法直接縮短了系統(tǒng)平均訪問(wèn)路徑和跳步數(shù),從而降低了平均訪問(wèn)延遲,實(shí)現(xiàn)了系統(tǒng)性能的有效擴(kuò)展.另一方面,由于MPD系統(tǒng)的單結(jié)點(diǎn)規(guī)模與處理器直連能力無(wú)關(guān),MPD系統(tǒng)還可用于構(gòu)建低功耗低成本系統(tǒng),提升系統(tǒng)性價(jià)比.實(shí)驗(yàn)數(shù)據(jù)表明,32路系統(tǒng)中,采用同規(guī)格處理器時(shí),結(jié)點(diǎn)內(nèi)4個(gè)并行緩存一致性域的MPD系統(tǒng)平均訪問(wèn)延遲降低27.9%,系統(tǒng)性能提升14.4%;采用不同規(guī)格處理器時(shí),與8路直連處理器搭建的CC-NUMA系統(tǒng)相比,2路直連處理器搭建的MPD系統(tǒng)性價(jià)比提升1.53倍.
未來(lái)的工作中,我們將增加結(jié)點(diǎn)緩存功能,進(jìn)一步優(yōu)化MPD系統(tǒng)的一致性協(xié)議實(shí)現(xiàn),提升大規(guī)模系統(tǒng)性能.