鮑慶元,李孟春,王煥東,曾 露,王啟銀,趙 銳
BAO Qingyuan1,LI Mengchun1,WANG Huandong2,ZENG Lu2,WANG Qiyin3,ZHAO Rui3
1.太原理工大學(xué),太原 030024
2.中國(guó)科學(xué)院 計(jì)算技術(shù)研究所,北京 100190
3.大同供電分公司,山西 大同 037008
1.Taiyuan University of Technology,Taiyuan 030024,China
2.Institute of Computing Technology,Chinese Academy of Sciences,Beijing 100190,China
3.State Grid Datong Power Supply Company,Datong,Shanxi 037008,China
縱觀當(dāng)今的信息產(chǎn)業(yè)技術(shù)發(fā)展,各個(gè)國(guó)家都在不斷努力進(jìn)行著產(chǎn)業(yè)轉(zhuǎn)型,尤其以日本為主的微電子技術(shù)在20世紀(jì)率先發(fā)展起來(lái),取得了重大成就,帶動(dòng)國(guó)內(nèi)各相關(guān)領(lǐng)域的飛速進(jìn)步。而自多核處理器的出現(xiàn)至今,并行計(jì)算機(jī)可以實(shí)現(xiàn)大規(guī)模科學(xué)與工程計(jì)算,高性能超級(jí)計(jì)算機(jī)也加速了人類(lèi)對(duì)科學(xué)領(lǐng)域的量化分析和探索研究,并且代表著國(guó)家的科技發(fā)展水平。除了一般性的科研計(jì)算外,在信息服務(wù)、金融、地理、國(guó)防、生物醫(yī)藥等領(lǐng)域,超級(jí)計(jì)算機(jī)全天候地進(jìn)行著高速并行數(shù)據(jù)處理,為各個(gè)行業(yè)提供研究和服務(wù)需求發(fā)揮重要作用。
以中科院計(jì)算技術(shù)研究所為核心的科研團(tuán)隊(duì),開(kāi)發(fā)出的基于mips架構(gòu)的龍芯3號(hào)系列處理器已成功應(yīng)用于國(guó)內(nèi)超級(jí)計(jì)算機(jī),已處于國(guó)內(nèi)計(jì)算機(jī)CPU芯片研發(fā)技術(shù)領(lǐng)先水平。現(xiàn)在,在國(guó)家核高基項(xiàng)目支持下,我國(guó)首臺(tái)自主設(shè)計(jì)的龍芯3B八核處理器的萬(wàn)億次高性能計(jì)算機(jī)“KD-90”,通過(guò)專(zhuān)家組鑒定,集成了十顆龍芯3B處理器,理論計(jì)算峰值可達(dá)每秒1萬(wàn)億次。
在單片處理器的性能保證上,本課題將對(duì)基于國(guó)產(chǎn)的龍芯3號(hào)多片互連體系結(jié)構(gòu)進(jìn)行規(guī)模擴(kuò)展,主要工作集中在片間通信的一致性消息傳遞方面。為了使數(shù)據(jù)在讀寫(xiě)時(shí)保持一致,需要通過(guò)一種機(jī)制來(lái)維護(hù)系統(tǒng)間數(shù)據(jù)交換時(shí)的Cache一致性?;谀夸浗Y(jié)構(gòu)的高速緩存一致性協(xié)議可以將事務(wù)請(qǐng)求維護(hù)起來(lái),并且更好地實(shí)現(xiàn)了CC-NUMA系統(tǒng)擴(kuò)展,也是本文研究的主要內(nèi)容。
發(fā)生狀態(tài)變換的觸發(fā)事件主要有五個(gè),本地讀RD,本地寫(xiě)WR,替換REP,遠(yuǎn)程讀rRD,遠(yuǎn)程寫(xiě)rWR。下面就圖1所示來(lái)說(shuō)明一下?tīng)顟B(tài)是如何進(jìn)行轉(zhuǎn)換的,這里不再討論自轉(zhuǎn)移事件。
圖1 高速緩存塊狀態(tài)轉(zhuǎn)移
初始狀態(tài)為I:當(dāng)處理器核發(fā)生RD操作時(shí),系統(tǒng)將請(qǐng)求發(fā)給遠(yuǎn)端處理器,得到響應(yīng)后,本地處理器將會(huì)收到一個(gè)共享狀態(tài)的緩存?zhèn)浞?;?dāng)處理器核發(fā)生WR操作時(shí),系統(tǒng)將請(qǐng)求發(fā)給擁有此緩存塊的處理器,當(dāng)返回響應(yīng)后,本地處理器將得到一個(gè)獨(dú)占的緩存?zhèn)浞荨?/p>
初始狀態(tài)為S:當(dāng)處理器核發(fā)生REP時(shí),處理器核將本地緩存塊換出到下一存儲(chǔ)層,并且將本地緩存塊無(wú)效;遠(yuǎn)端處理器發(fā)生rWR時(shí),系統(tǒng)將本地緩存塊無(wú)效,并返回響應(yīng);當(dāng)處理器核發(fā)生WR操作時(shí),在實(shí)際應(yīng)用中為了降低請(qǐng)求處理的開(kāi)銷(xiāo),無(wú)法從共享狀態(tài)直接到達(dá)獨(dú)占狀態(tài),虛線表示,必須經(jīng)過(guò)無(wú)效狀態(tài)。系統(tǒng)會(huì)將所有擁有共享塊的處理器核無(wú)效處理(包括本地),得到響應(yīng)后,本地處理器核再重復(fù)上述的由I狀態(tài)變到M狀態(tài)的轉(zhuǎn)換過(guò)程。
初始狀態(tài)為M:當(dāng)處理器核發(fā)生REP時(shí),處理器核將本地緩存塊換出到下一存儲(chǔ)層,并且將本地緩存塊無(wú)效;遠(yuǎn)端處理器發(fā)生rWR時(shí),系統(tǒng)將本地緩存塊無(wú)效,并返回響應(yīng);當(dāng)遠(yuǎn)端處理器發(fā)生rRD時(shí),系統(tǒng)將本地緩存塊置為共享狀態(tài),并返回響應(yīng)。
基于目錄的高速緩存一致性協(xié)議,是將數(shù)據(jù)塊與其所在處理器位置相關(guān)聯(lián)實(shí)現(xiàn)的。在長(zhǎng)期的對(duì)目錄協(xié)議的研究中,研究人員設(shè)計(jì)出不同的目錄組織形式,最主要的組織經(jīng)常采用位向量的方式[3]。通過(guò)對(duì)目錄中位向量的查找可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)響應(yīng),同時(shí)一致性問(wèn)題也由目錄來(lái)進(jìn)行相應(yīng)維護(hù)。目錄的結(jié)構(gòu)可以充分發(fā)揮出CC-NUMA系統(tǒng)的局部性優(yōu)勢(shì),如果當(dāng)訪問(wèn)失效時(shí),在本地節(jié)點(diǎn)可以查找到相應(yīng)數(shù)據(jù)塊,則不必通過(guò)遠(yuǎn)程端寫(xiě)回,降低了延遲開(kāi)銷(xiāo)。但是,位向量目錄所使用的存儲(chǔ)器大小與系統(tǒng)中處理器核數(shù)n的平方成正比,所以當(dāng)n過(guò)大時(shí),目錄協(xié)議的存儲(chǔ)開(kāi)銷(xiāo)也會(huì)隨之增大,并且系統(tǒng)的性能開(kāi)銷(xiāo)也會(huì)受到緩存?zhèn)浞輸?shù)量的影響。
對(duì)于目錄的組織來(lái)說(shuō),可以實(shí)現(xiàn)的形式分為兩種,分別是扁平目錄方案和層次目錄方案[4-5]。如圖2所示,左圖為扁平目錄組織,右圖為層次目錄組織。
圖2 目錄組織形式
扁平目錄組織是將一個(gè)塊的目錄信息存放在一個(gè)固定位置。圖2中的P是處理節(jié)點(diǎn),每當(dāng)發(fā)生讀失效時(shí),處理節(jié)點(diǎn)會(huì)直接訪問(wèn)統(tǒng)一的宿主節(jié)點(diǎn)進(jìn)行查詢,因?yàn)樵L問(wèn)的路徑和延遲不同,所以圖中會(huì)有不同長(zhǎng)短的連線。這樣的結(jié)構(gòu)方案比較簡(jiǎn)單,所有的一致性事務(wù)全都會(huì)到一個(gè)地方來(lái)處理,但是也帶來(lái)了問(wèn)題,所有的處理節(jié)點(diǎn)無(wú)論路徑大小都會(huì)去訪問(wèn)同一節(jié)點(diǎn),對(duì)于路徑遠(yuǎn)的處理節(jié)點(diǎn)經(jīng)常訪問(wèn)時(shí)就會(huì)增大開(kāi)銷(xiāo)。并且,對(duì)于向大規(guī)模CC-NUMA系統(tǒng)擴(kuò)展的情況來(lái)說(shuō)就會(huì)出現(xiàn)更差的性能,如果將宿主節(jié)點(diǎn)放在片內(nèi)的話,隨著處理器核數(shù)的增加會(huì)增大芯片面積的成本開(kāi)銷(xiāo)。
層次式的目錄可以有效地解決這些問(wèn)題。在大規(guī)模的系統(tǒng)中,訪問(wèn)可以選擇最短路徑,有效地利用了局部性的優(yōu)勢(shì)。對(duì)于目錄開(kāi)銷(xiāo)問(wèn)題,層次化的目錄存儲(chǔ)開(kāi)銷(xiāo)可以分?jǐn)偟狡渌挠布?dāng)中,減輕了片內(nèi)因存儲(chǔ)器而耗費(fèi)面積。但是,在層次式的目錄方案中,與扁平目錄方案發(fā)生失效的一致性事務(wù)情況不同,層次結(jié)構(gòu)的一致性事務(wù)可能會(huì)遍歷整個(gè)目錄級(jí),每一次的訪問(wèn)都會(huì)去查詢目錄節(jié)點(diǎn)上的目錄信息,造成一定的訪存延遲。但是,當(dāng)系統(tǒng)擴(kuò)展到一定規(guī)模時(shí),對(duì)于那些局部性較好的程序來(lái)說(shuō),這種目錄方案將會(huì)體現(xiàn)出好的一面來(lái)。
降水中的穩(wěn)定同位素D與18O在補(bǔ)給過(guò)程中,將大氣D與18O的信號(hào)傳遞給地下水,地下水在滲透的過(guò)程中使得水中同位素的含量發(fā)生變化,這些變化為地下水來(lái)源調(diào)查提供了基礎(chǔ)[15]。地下水的δD與δ18O含量在垂向上具有明顯的分層特點(diǎn),整體表現(xiàn)為隨著地下水的埋藏深度的增加,地下水的δD與δ18O值逐漸偏負(fù),指示著地下水不同含水層段上水力聯(lián)系微弱[16]。
龍芯3A處理器由4顆處理器核組成[6],在片內(nèi)通過(guò)二級(jí)緩存統(tǒng)一維護(hù)多核處理器的一致性問(wèn)題,內(nèi)部構(gòu)成CC-NUMA系統(tǒng)。而處理器間的一致性問(wèn)題就不能單靠二級(jí)緩存來(lái)維護(hù)整個(gè)系統(tǒng)的一致性了。隨著系統(tǒng)規(guī)模的擴(kuò)大,數(shù)據(jù)訪存的Cache一致性請(qǐng)求也會(huì)不斷增加,導(dǎo)致目錄訪問(wèn)沖突、延遲增加等問(wèn)題,這都是需要在構(gòu)建更大規(guī)模的CC-NUMA系統(tǒng)中考慮的因素。因此,在互連系統(tǒng)間利用橋片來(lái)處理跨區(qū)域訪存的一致性事務(wù)。并且,通過(guò)在橋片中加入遠(yuǎn)程Cache模塊,可以降低訪存延遲,使大規(guī)模的CC-NUMA系統(tǒng)開(kāi)銷(xiāo)能夠得到降低。
Origin2000/3000是一種典型的CC-NUMA系統(tǒng),采用與龍芯處理器構(gòu)架相同的MIPS R10000。具有良好可編程性的分布式共享結(jié)構(gòu)DSM,在很大的范圍內(nèi)實(shí)現(xiàn)了系統(tǒng)的可擴(kuò)展性,256節(jié)點(diǎn)內(nèi),系統(tǒng)都具有線性擴(kuò)展能力。Origin系統(tǒng)經(jīng)典的4立方體結(jié)構(gòu)[7],通過(guò)中間路由,使同位置的處理節(jié)點(diǎn)相互連接起來(lái),然后每個(gè)節(jié)點(diǎn)會(huì)根據(jù)地址信息在內(nèi)部路由給需要訪問(wèn)的處理節(jié)點(diǎn)。最近到最遠(yuǎn)路徑訪問(wèn)的延遲比約為1∶4。在并行程序中,保持局部范圍的訪問(wèn)可以發(fā)揮出這種體系結(jié)構(gòu)的極大優(yōu)勢(shì)來(lái)。由于Origin系列構(gòu)架還是過(guò)于復(fù)雜,128處理器的系統(tǒng)已將近達(dá)到了性能的峰值。而當(dāng)今的處理器多為多核處理器,龍芯3號(hào)系列的處理器集成了多處理器核,在芯片內(nèi)部已完全構(gòu)成了小規(guī)模的CC-NUMA系統(tǒng)結(jié)構(gòu),而通過(guò)橋片,可以經(jīng)過(guò)簡(jiǎn)單化的外部擴(kuò)展,構(gòu)成大規(guī)模的CC-NUMA服務(wù)器系統(tǒng)。
整個(gè)系統(tǒng)將分成兩級(jí)目錄形式將所有的處理器核的一致性問(wèn)題進(jìn)行硬件的維護(hù),一級(jí)目錄由64位位向量組成,用來(lái)維護(hù)處理器的片內(nèi)和本系統(tǒng)的一致性問(wèn)題,統(tǒng)一由二級(jí)緩存來(lái)保存處理器核的緩存塊狀態(tài)。龍芯3A處理器最多支持8芯片直連,而當(dāng)系統(tǒng)規(guī)模超過(guò)8片時(shí),就需要通過(guò)橋片來(lái)進(jìn)行跨系統(tǒng)訪問(wèn)和一致性維護(hù)。二級(jí)目錄在橋片中維護(hù),目錄記錄的將不再是處理器核的私有一級(jí)緩存塊狀態(tài),而是本互連系統(tǒng)中芯片的塊狀態(tài)。通過(guò)粗向量的方式,以更大的粒度來(lái)解決大規(guī)模系統(tǒng)多核處理器的數(shù)據(jù)一致性問(wèn)題,從而可以降低目錄方面的開(kāi)銷(xiāo)。像二級(jí)緩存維護(hù)處理器核的一致性一樣,橋片中粗向量會(huì)維護(hù)多片系統(tǒng)的一致性問(wèn)題。此時(shí),橋片的Cache目錄將會(huì)記錄一組塊的位向量,當(dāng)系統(tǒng)需要查找時(shí),粗向量會(huì)指向某個(gè)處理節(jié)點(diǎn),然后再通過(guò)上一級(jí)目錄查找到具體所要訪問(wèn)的核。
4顆龍芯3A8處理器(第8版龍芯3A芯片)可以構(gòu)成一個(gè)CC-NUMA互連系統(tǒng)。3A8可以通過(guò)HT接口實(shí)現(xiàn)兩兩互連,再通過(guò)橋片構(gòu)成一個(gè)完整的互連系統(tǒng)。每個(gè)橋片可以通過(guò)PCIe總線連接其他的橋片,利用4個(gè)PCIe接口可以組建多種Mesh網(wǎng)絡(luò),簡(jiǎn)單的二維Mesh網(wǎng)絡(luò)可以通過(guò)X-Y的路由方式,即首先向X方向路由再向Y方向路由的方法到達(dá)目標(biāo)橋片,構(gòu)成Mesh網(wǎng)絡(luò)。也可以構(gòu)建更大規(guī)模的CC-NUMA系統(tǒng),最多可以使64個(gè)橋片進(jìn)行互連,形成三維的立方體Mesh網(wǎng)絡(luò)。但實(shí)際應(yīng)用中,只考慮擴(kuò)展到16片互連的情況,避免因路徑太長(zhǎng)而產(chǎn)生極大的延遲開(kāi)銷(xiāo)問(wèn)題。如圖3給出兩個(gè)互連系統(tǒng)的結(jié)構(gòu)圖。
圖3 兩個(gè)互連系統(tǒng)通過(guò)橋片實(shí)現(xiàn)系統(tǒng)級(jí)互連
在橋片內(nèi)部主要包括三種控制模塊:遠(yuǎn)程緩存控制器(RMC),本地目錄控制器和I/O接口控制器。遠(yuǎn)程緩存控制器主要的功能是將本系統(tǒng)要訪問(wèn)的遠(yuǎn)程地址請(qǐng)求轉(zhuǎn)發(fā)給遠(yuǎn)程系統(tǒng),當(dāng)遠(yuǎn)程系統(tǒng)收到請(qǐng)求時(shí),經(jīng)過(guò)各個(gè)存儲(chǔ)層數(shù)據(jù)的取回,再通過(guò)遠(yuǎn)程系統(tǒng)的同等橋片,將數(shù)據(jù)響應(yīng)給請(qǐng)求端。在收到來(lái)自遠(yuǎn)程系統(tǒng)的數(shù)據(jù)響應(yīng)后,控制器不會(huì)立即將數(shù)據(jù)發(fā)送給請(qǐng)求的處理器核,會(huì)先把數(shù)據(jù)緩存起來(lái),并且記錄下緩存塊狀態(tài)和位向量后再將數(shù)據(jù)發(fā)送給請(qǐng)求處理器核,緩存的數(shù)據(jù)以便本地其他處理器核請(qǐng)求相同地址的訪存時(shí)可以迅速返回?cái)?shù)據(jù)而不需要再跨系統(tǒng)進(jìn)行訪問(wèn)。
3A處理器是通過(guò)HT總線實(shí)現(xiàn)片間互連的,包括處理器-處理器,處理器-橋片。在圖4簡(jiǎn)化的結(jié)構(gòu)圖中可以看到4路HT總線代表連接4片龍芯處理器,通過(guò)協(xié)議轉(zhuǎn)換模塊,由AXI片內(nèi)總線協(xié)議實(shí)現(xiàn)內(nèi)部的消息傳遞[8]。由于CC-NUMA是主要利用局部性原理來(lái)實(shí)現(xiàn)系統(tǒng)的高效性,所以不會(huì)發(fā)生高頻的外部地址訪問(wèn)。RMC模塊只需連接容量為1 MB的高速緩存模塊用來(lái)存儲(chǔ)遠(yuǎn)程系統(tǒng)地址的數(shù)據(jù)并且記錄下本地?fù)碛性摂?shù)據(jù)塊的芯片的位向量。在遠(yuǎn)程控制模塊的下游會(huì)將上游的請(qǐng)求路由到指定的I/O設(shè)備(遠(yuǎn)程橋片),發(fā)往其他系統(tǒng)橋片的本地控制器。
圖4 橋片局部模塊RMC結(jié)構(gòu)
在仿真環(huán)境中,主要針對(duì)驗(yàn)證RMC模塊功能進(jìn)行搭建,如圖5所示。首先,環(huán)境會(huì)模擬芯片內(nèi)4個(gè)master(龍芯3A處理器)發(fā)出AXI的讀寫(xiě)請(qǐng)求,這里可以先使用一個(gè)簡(jiǎn)單的MUX模塊實(shí)現(xiàn)仲裁,將請(qǐng)求串行發(fā)給RMC。利用交叉開(kāi)關(guān)直接將請(qǐng)求發(fā)送給slave(這里放置一個(gè)可以處理AXI一致性請(qǐng)求的二級(jí)緩存),二級(jí)緩存下游連接DDR3內(nèi)存模塊,這樣就可以先利用具有相似結(jié)構(gòu)和一致性功能的二級(jí)緩存來(lái)實(shí)現(xiàn)對(duì)RMC的驗(yàn)證。
圖5 仿真環(huán)境方案
通過(guò)verilog、SV(Systemverilog)來(lái)編寫(xiě)環(huán)境,并使用Synopsys公司提供的VCS進(jìn)行編譯和前仿。手工編寫(xiě)特定向量的仿真環(huán)境可以初步驗(yàn)證模塊功能的正確性。在外加特定激勵(lì)的情況下,觀察響應(yīng)數(shù)據(jù)及一致性事務(wù)等是否達(dá)到預(yù)期的結(jié)果。圖6為仿真抓取的波形。
圖6 RMC仿真波形
可以看到,仿真開(kāi)始時(shí)會(huì)讓4個(gè)master同時(shí)對(duì)同一外部地址發(fā)起讀請(qǐng)求(G1),請(qǐng)求會(huì)逐一去訪問(wèn)RMC,第一次訪問(wèn)時(shí)會(huì)發(fā)生失效,RMC會(huì)將請(qǐng)求下發(fā)給二級(jí)緩存,再給到內(nèi)存最終查找到數(shù)據(jù)。數(shù)據(jù)會(huì)沿路返回給RMC(G2),當(dāng)RMC接受到數(shù)據(jù)后會(huì)響應(yīng)第一個(gè)發(fā)起請(qǐng)求的處理器。然后其他三個(gè)處理器的請(qǐng)求會(huì)依次被RMC處理。在接下來(lái)的不同處理器的同地址訪問(wèn)會(huì)在RMC模塊中全部命中,所以數(shù)據(jù)會(huì)在很短的周期內(nèi)將返回給3個(gè)處理器。當(dāng)另一端某個(gè)處理器再次發(fā)起同地址的寫(xiě)請(qǐng)求時(shí)(G3),本地4個(gè)處理器都會(huì)收到無(wú)效請(qǐng)求,并且返回4個(gè)無(wú)效確認(rèn)(G4)。在二級(jí)緩存收到來(lái)自所有擁有共享緩存塊返回的確認(rèn)時(shí),才會(huì)將數(shù)據(jù)塊發(fā)送給發(fā)起寫(xiě)請(qǐng)求的處理器(G5)。
從上述的處理過(guò)程中,可以分析出同地址不同情況的訪存延遲,如表1所示。當(dāng)?shù)谝粋€(gè)處理器發(fā)出讀請(qǐng)求時(shí),訪存延遲沒(méi)有變化。但是,當(dāng)其他處理器第二次訪問(wèn)相同外部地址的數(shù)據(jù)時(shí),請(qǐng)求會(huì)發(fā)送給之前預(yù)存的Cache塊,數(shù)據(jù)直接返回給請(qǐng)求端,由于還需要處理一致性事務(wù),所以會(huì)額外增加幾拍延遲,可是看到第二次的訪存延遲也只有前一次的1/4。而第三次以后,由于數(shù)據(jù)塊已經(jīng)是共享狀態(tài),不需要再有一致性事務(wù)處理產(chǎn)生的延遲,所以訪存會(huì)進(jìn)一步加快。而遠(yuǎn)程系統(tǒng)在首次寫(xiě)請(qǐng)求時(shí),需要經(jīng)過(guò)橋片到橋片的訪問(wèn)和一致性事務(wù)處理過(guò)程,產(chǎn)生相當(dāng)于從內(nèi)存取回?cái)?shù)據(jù)的延遲開(kāi)銷(xiāo)。
表1 訪存一致性延遲開(kāi)銷(xiāo)
同時(shí),在對(duì)同地址的一致性請(qǐng)求事務(wù)的處理過(guò)程中,系統(tǒng)會(huì)嚴(yán)格遵守一個(gè)序關(guān)系,只有當(dāng)一件事務(wù)完全結(jié)束后,才會(huì)去處理下一個(gè)請(qǐng)求。而在不同地址的訪問(wèn)過(guò)程中則不需要嚴(yán)格保持序關(guān)系,這樣可以提高訪存效率。
隨機(jī)測(cè)試技術(shù)是大規(guī)模集成電路仿真驗(yàn)證中重要的環(huán)節(jié)之一,在處理器的行為級(jí)功能驗(yàn)證方面,它具有重要地位。人工編寫(xiě)定向測(cè)試會(huì)花費(fèi)大量的時(shí)間成本,并且也很難做到覆蓋所有要驗(yàn)證的各個(gè)角落,可重用性較差。所以用隨機(jī)測(cè)試向量為DUT提供大量的隨機(jī)數(shù)據(jù)流,可以有效地提高驗(yàn)證效率并具有靈活性和可移植性。
基于此環(huán)境之上,還需要進(jìn)行隨機(jī)發(fā)送大量請(qǐng)求來(lái)了解該模塊的性能。激勵(lì)方面仍然采用帶有一致性的AXI請(qǐng)求,隨機(jī)選擇讀和寫(xiě)兩種情況,并在預(yù)先設(shè)定的地址域內(nèi)發(fā)送。在圖6中可以看到,冷失效的情況是必然出現(xiàn)的,但是在大量的隨機(jī)請(qǐng)求中,冷失效、沖突失效和維護(hù)Cache一致性引起的失效所占比重較小,而影響最大的是容量失效。所以有必要對(duì)Cache的不同容量和失效率之間的關(guān)系進(jìn)行分析。從圖7的統(tǒng)計(jì)結(jié)果中發(fā)現(xiàn),當(dāng)塊大小是64 B的緩存時(shí),可以明顯看出失效率隨著緩存容量的增加而降低,在芯片面積允許的情況下,采用大容量的Cache可以有效提高橋片的命中率。同時(shí),使用8way(相聯(lián)度)的Cache也可以降低失效率,但是相比于4way,8way的硬件條件更高,訪存延遲也會(huì)增加,對(duì)提高性能而換來(lái)的好處不明顯。
圖7 Cache容量與失效率關(guān)系
由于Cache模塊中會(huì)以一種隊(duì)列的機(jī)制來(lái)維護(hù)大量請(qǐng)求集中到來(lái)的狀況,所以在同地址(順序)和不同地址(亂序)的訪存操作中不會(huì)導(dǎo)致沖突現(xiàn)象發(fā)生。
本文從具體的龍芯處理器配套橋片設(shè)計(jì)側(cè)面闡述了CC-NUMA系統(tǒng)向大規(guī)模擴(kuò)展的思想,并且分析在大規(guī)模系統(tǒng)中如何來(lái)維護(hù)好全局一致性問(wèn)題。通過(guò)針對(duì)龍芯處理器特性的了解,在配套的橋片中加入了緩存的結(jié)構(gòu)設(shè)計(jì),這樣橋片就不僅僅作為跨系統(tǒng)訪問(wèn)的橋梁,同時(shí)兼有多級(jí)緩存的功能,提高訪存效率。在當(dāng)今訪存優(yōu)化競(jìng)爭(zhēng)的年代,每降低一點(diǎn)訪存延遲都會(huì)給計(jì)算機(jī)性能提高一大塊。同時(shí),龍芯處理器內(nèi)部將沿用基于目錄的高速緩存一致性協(xié)議,設(shè)計(jì)也會(huì)將這種一致性方法應(yīng)用到橋片中,這樣可以保持處理器和橋片在一致性問(wèn)題上的高度統(tǒng)一。在程序設(shè)計(jì)方面,具有良好的局部性的并行程序?qū)?huì)更加高效地運(yùn)行在多核,多處理器,多系統(tǒng)的CC-NUMA體系當(dāng)中。橋片也為L(zhǎng)inux更加穩(wěn)定地應(yīng)用在大規(guī)模系統(tǒng)提供保障。本文實(shí)現(xiàn)了橋片預(yù)期的功能,并且搭建了針對(duì)模塊所需的驗(yàn)證環(huán)境,在環(huán)境中,對(duì)橋片的部分功能給出了正確的驗(yàn)證結(jié)果。但是在完整可靠的設(shè)計(jì)和驗(yàn)證工作中還有大量的問(wèn)題有待解決,為了最終可以實(shí)現(xiàn)成功流片,還需繼續(xù)努力做好此后的工作。
[1]景濤.多核環(huán)境下基于L2 cache的目錄一致性協(xié)議的研究[D].哈爾濱:哈爾濱工程大學(xué),2010.
[2]夏宏,任捷.基于WishBone總線Cache數(shù)據(jù)一致性方案[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(9):93-95.
[3]王煥東,高翔.龍芯3號(hào)互聯(lián)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)研究與發(fā)展,2008,45(12):2001-2010.
[4]Culler D,Singh J,Gupta A.Parallel computer architecture:a hardware/software approach[M].[S.l.]:Morgan Kaufmann Pub,1999.
[5]潘國(guó)騰,竇強(qiáng),謝倫國(guó).基于目錄的Cache一致性協(xié)議的可擴(kuò)展性研究[J].計(jì)算機(jī)工程與科學(xué),2008,30(6):131-133.
[6]Bryant R E,O’Hallaron D R.Computer systems:a programmer’s perspective[M].[S.l.]:Addison-Wesley Educational Publishers Inc,2010.
[7]Laudon J,Lenoski D.The SGI origin:a CC-NUMA highly scalable server[C]//ACM SIGARCH Computer Architecture New,1997.
[8]ARM,AMBA3.0,AXI protocol specification[S].2004.
[9]Almaless G,Wajsburt F.On the scalability of image and signal processing parallel applications on emerging CC-NUMA many-cores[C]//Design and Architectures for Signal and Image Processing(DASIP),2012.
[10]Gao Yuhui,Zhu Mingfa,Huo Jiantong.Design and implementation of BIOS for Godson-3A interconnections[C]//Computer and Management(CAMAN),2011.
[11]Wang Ruibo,Lu Kai.Using transactional memory on CCNUMA systems[C]//Networked Computing(INC),2010.
[12]楊鵬飛.多核環(huán)境Cache一致性協(xié)議研究[D].哈爾濱:哈爾濱工程大學(xué),2011.
[13]陳杰,章軍.一種集成“龍芯1號(hào)”IP核的SoC的體系結(jié)構(gòu)[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(19):111-114.
[14]屈文新,樊曉婭.“龍騰”2微處理器Cache單元的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(17):22-25.