999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向非寫分配高速緩存的一致性協議及實現

2015-08-10 09:19:22修思文謝天藝葛海通嚴曉浪
浙江大學學報(工學版) 2015年2期
關鍵詞:一致性

修思文,黃 凱,余 慜,謝天藝,葛海通,嚴曉浪

(1.浙江大學 超大規模集成電路研究所,浙江 杭州310027;2.杭州中天微系統有限公司,浙江 杭州310027)

隨著性能和功耗需求的不斷增長,多核處理器系統已被業界廣泛使用.其中,基于對稱式共享存儲器的多核處理器架構具有較低的通信延遲、易懂的編程模型、高效的代碼和數據共享等特點因而備受歡迎,也最為常用[1].由于共享數據的存在,可能出現一個數據的多個版本同時存在于共享存儲器和多個處理器的高速緩存(cache)中的情況.如果此時有多于一個的處理器對該數據進行寫操作,則可能出現數據不一致的問題,導致程序執行發生錯誤.緩存一致性協議是一種用于保證多核處理器系統各處理器緩存中數據一致的機制,可由軟件或硬件方式來實現[2].采用硬件方式維護一致性非常方便高效而且對軟件透明,因此被廣泛采用[3].其中,基于監聽式的寫無效協議具有對互連帶寬占用小、硬件實現簡單、資源占用較少等優點,被大多數多核處理器所采用[4].

寫無效協議和處理器所采用的緩存的類型相關,如更新內存的方式是寫回(write back)還是寫透(write through);寫缺失時的策略是寫分配(write allocate)還是非寫分配(no-write allocate).一些面向特殊應用的多核處理器會經常處理一些有大量數據重用的、輸入和輸出的數據流地址不相關的并行化應用(如圖像處理等),適合采用基于寫回、非寫分配的緩存[5],避免不必要的緩存分配,減小對存儲器帶寬的壓力.然而,現有的一致性協議及一些優化措施[6-9]都是針對寫回、寫分配的緩存.雖然傳統的寫無效協議可以應用在非寫分配的緩存上,但發生寫缺失時,不僅要發起對共享存儲器的寫操作,而且系統中不再存在有效的該緩存行,對性能和功耗的損失很大,亟待改進.

針對基于寫回、非寫分配緩存的特點,本文提出一種新型的高速緩存一致性協議——寫干涉協議及其硬件架構.采用寫干涉協議,可以減少對共享存儲器的讀寫操作,降低了功耗,提升了系統的性能.

1 現有的寫無效協議

現有的寫無效協議主要包括MESI(Modified/Exclusive/Shared/Invalid)及其變種協議.MESI協議應用比較廣泛,其缺點是只能共享干凈的緩存行——緩存行從修改狀態(M)轉移到其他狀態時,一定要引起 寫 回 操 作.MOESI(Modified/Owner/Exclusive/Shared/Invalid)協議解決了這個問題,它引入了所有者狀態(O),支持了臟數據的共享,減少了寫回操作,是目前最為流行的MESI類協議[4],被AMD、ARM等公司所采用.Intel公司提出的MESIF(Modified/Exclusive/Shared/Invalid/Forward)協議是另外一種MESI協議的另外一個變種,但其旨在解決ccNUMA(Cache Coherence Non Uniform Memory Access)架構中處理器子系統間的一致性問題[10].然而,現有的MESI和MOESI等協議在應用到寫回、非寫分配的緩存時,都會引起性能和功耗上的損失,這里以MESI為典型例子加以說明.基于寫回、非寫分配的緩存的MESI協議的狀態轉換如圖1所示.

圖1 基于寫回、非寫分配緩存的MESI協議狀態轉換圖Fig.1 Write-back and no-write-allocate cache based MESI protocol state transition

處理器發生寫缺失時,先發出一個寫缺失請求,使其他處理器中該緩存行的副本無效,然后再把數據寫到共享存儲器中.其他處理器若監聽到有處理器對處于獨占(E)、共享(S)或修改狀態(M)的緩存行進行寫操作,都將該緩存行的狀態轉換為無效狀態(I),處于修改狀態(M)的緩存行還要搶先寫回共享存儲器中.可見,由于采用非寫分配的高速緩存,當有處理器對某個高速緩存行產生一次寫缺失時,需要發起對共享存儲器的寫更新操作,且所有處理器均不存在該高速緩存行的有效副本.緊接著,任何處理器下一次對該緩存行的讀操作也必定是缺失的,且需要發起對共享存儲器中該行的讀操作.更差的情況,如果沒有處理器發起過對該緩存行的讀操作,之后對該緩存行的寫操作都是缺失的,處理器會頻繁地發起對共享存儲器的訪問.由于外部共享存儲器一般由容量較大的DRAM 實現,需要不斷的刷新,不僅功耗較大,而且訪問延時遠大于處理器內部時鐘,因此,以上情況極大地影響了性能和功耗.

2 寫干涉協議

針對現有MOESI等協議運用于寫回、非寫分配緩存的缺點,提出了寫干涉協議,該協議利用以下5種狀態的一種來標記各緩存行:

無效狀態(I):指示該緩存行無效.

獨占干凈狀態(EC):指示該緩存行只存在于當前的緩存中,并且是干凈的(和共享存儲器中該行中的數據一致).當監聽到數據請求時,處于EC 狀態的緩存行必須提供數據.

獨占修改狀態(ED):指示該緩存行只存在于當前的緩存中,但它已被修改過,是臟的(在共享存儲器中的該行中的數據不再有效).當監聽到數據請求時,處于ED 狀態的緩存行必須提供數據.

共享干凈狀態(SC):指示該緩存行存在于當前的緩存中,而且其他處理器也可能擁有該緩存行.處于SC狀態的緩存行在被替換時不負責更新共享存儲器;當監聽到數據請求時,如果被仲裁選中,它必須提供數據.

共享修改狀態(SD):指示該緩存行存在于當前的緩存中,而且其他處理器也可能擁有該緩存行.處于SD 狀態的緩存行在被替換時負責更新共享存儲器;當監聽到數據請求時,如果被仲裁選中,它必須提供數據.

本協議定義了2個標記:“修改者標記”和“所有者標記”.擁有修改者標記的緩存行要負責把被修改過的數據寫回到共享存儲器中.因此,處于ED 狀態和SD狀態的緩存行擁有修改者標記.擁有所有者標記的緩存行既要負責給請求該緩存行的處理器提供數據,也要承擔對該緩存行的寫干涉.顯然,處于ED狀態和EC狀態的緩存行擁有所有者標記.當緩存行在系統中僅存在SD狀態或SC狀態時,由核間互連負責仲裁、賦予所有者標記.根據時間局部性原理,當發生緩存間的數據拷貝時,修改者標記將隨之遷移,請求該緩存行的處理將在下次所有者標記仲裁時擁有最高的優先級.

如圖2所示列出了本協議的狀態轉換圖.當某個處理器對某個緩存行中的某個地址產生寫缺失操作時:若其他所有處理器中均不存在有效的該緩存行,則把數據寫到共享存儲器的該地址中.若其他處理器中存在有效的該緩存行,則把數據直接寫入到其他處理器中擁有所有者標記的該緩存行中(定義為“寫干涉”操作),并將其狀態轉換為ED 狀態;同時,把其他處理器的該緩存行無效掉(定義為“寫無效”操作),即狀態轉換為I狀態.

當某個處理器對某個緩存行中的某個地址產生讀缺失操作時:若其他所有處理器中均不存在有效的該緩存行,則將共享存儲器中的該地址行分配到該處理器的緩存中,狀態設為EC狀態.若其他處理器中存在有效的該緩存行,則擁有所有者標記的該緩存行負責提供數據,并將其狀態轉化為SC 狀態.同時,提供數據的緩存行將其修改者標記轉移給請求數據的緩存行.

圖2 寫干涉協議狀態轉換圖Fig.2 Write intervention protocol state transition

當某個處理器對某個處于SD 或SC 狀態的緩存行中的某個地址產生寫命中操作時:若不存在其他有效的該緩存行,則可以執行該寫操作,且狀態轉換為ED 狀態;若存在有效的該緩存行,則須將它們均無效掉,然后發起該寫命中操作的處理器才可以執行該寫操作,狀態轉換為ED 狀態.

當某個處理器對某個處于EC 狀態的緩存行的某個地址產生寫命中操作時,可以直接執行該寫操作,狀態轉換為ED 狀態.其他情況下,狀態不變.

3 協議正確性

利用符號模型狀態法[11](symbolic state model,SSM),定義如下表示符:

0:表示有0個實例,表示時可以省略;

1:表示有且只有1個實例;

+:表示1個或多個實例;

*:表示0個、1個或多個實例.

通過這些符號,可以構建復雜狀態的簡明表示,例如可以用(SD1,SC+,I*)來表示:對于某個緩存行,一個或者多個緩存處于SC 狀態,僅有1個緩存處于SD 狀態,0個、1個或多個緩存是無效的.對于寫干涉協議,從初始的(I+)狀態開始擴張,每個狀態轉換的條件要覆蓋寫/讀操作和替換操作,最后形成的狀態轉換圖如圖3所示.共產生了另外7種狀態,在這些狀態中,一致性都得到了保證,從而驗證了寫干涉協議的正確性.

圖3 寫干涉協議的SSM 狀態轉換Fig.3 SSM state transition of write intervention protocol

4 協議分析

4.1 寫缺失

對于現有MOESI等協議,需要把系統中有效的該緩存行無效掉,如果系統中存在被修改過的緩存行,還要先把該緩存行寫回到共享存儲器中,最后把寫缺失的數據寫到共享存儲器中.耗時(單位:處理器周期數)為

功耗為

式中:耗時和功耗從處理器發出一致性請求開始算起,下同;c為指示系統中緩存行是否都是干凈的布爾型變量,c=1代表系統中該緩存行都是干凈的;n為表存在有效的該緩存行的處理器的個數;Tf和Wf分別為一致性操作固定的耗時和功耗;Tmb和Wmb分別為寫回一個緩存行的耗時和功耗,有Tf?Tmb;Wt為一致性命令更新一個處理器Tag RAM的功耗;Wmw為向共享存儲器某地址寫1個數據的功耗.設處理器每個緩存行包含k(一般k≥4)個寫數據寬度大小的數據,則有2Wmw<Wmb≤kWmw.由于寫緩沖區的廣泛應用,對共享存儲器的寫操作對系統性能的影響很小.假設寫緩沖區足夠大,從處理器角度看,認為向共享存儲器寫一個數據沒有耗時.

對于寫干涉協議,只需把數據直接寫到擁有所有者標記的緩存行,并更新緩存狀態,同時把其他有效的緩存行無效掉.耗時為

功耗為

式中:Wcw為向處理器的某緩存行中寫一個數據的功耗,有Wt<Wcw<Wf?Wmw.

則寫干涉協議相對于現有MOESI等協議的耗時節省比例為

功耗節省比例為

根據前面對各系數的分析可知,當c=1時,βwm趨近于1,αwm=0;當c=0時,βwm更趨近于1,αwm趨近于1.對比可見,采用寫干涉協議,發生寫缺失時,可以顯著降低系統功耗;當存在臟緩存行時,可以顯著提高系統性能;當不存在臟緩存行時,雖然性能沒有提升,但由于緩存中保留了有效的該緩存行,對寫缺失后再讀和寫缺失后再寫影響很大.

4.2 寫缺失后再讀

對于現有MOESI等協議,系統中已不存在有效的緩存行,從共享存儲器中讀取數據,并更新該緩存行狀態.耗時為

功耗為

式中:Tmr和Wmr分別為從共享存儲器中讀取一個緩存行到緩存中的耗時和功耗.

對于寫干涉協議,如果發起讀請求的是處于ED 狀態的緩存行,直接命中;否則,產生讀缺失,由處于ED 狀態的緩存行提供數據,并更新雙方的緩存行狀態.耗時為

功耗為

式中:e為指示發起讀請求的是否處于ED 狀態的緩存行的布爾型變量,e=1時代表發起讀請求的是處于ED 狀態的緩存行;Tcr和Wcr分別為緩存間數據拷貝的耗時和功耗,有Tcr≤Tf?Tmr和Wt<Wcr≤Wf?Wmr.

則寫干涉協議相對于現有MOESI等協議的耗時節省比例為

功耗節省比例為

根據前面對各系數的分析可知,當e=1 時,αwmr=1,βwmr=1;當e=0時,αwmr和βwmr均趨近于1.對比可見,采用寫干涉協議,發生寫缺失后再讀時,可以顯著降低系統功耗、提升系統性能.

4.3 寫缺失后再寫

如果寫缺失后還沒有處理器對該緩存行進行過讀操作,對于現有MOESI等協議,系統中已不存在有效的該緩存行,直接把數據寫到共享存儲器中,耗時為

功耗為

對于寫干涉協議,如果發起讀請求的是處于ED 狀態的緩存行,直接命中;否則,直接把數據寫到出于ED 狀態的緩存行.耗時為

功耗為

則寫干涉協議相對于現有MOESI等協議的耗時節省比例為

功耗節省比例為

根據前面對各系數的分析可知,當e=0 時,αwmw=0,βwmw均趨近于1;當e=1時,αwmw=1,βwmw更趨近于1;可見,采用寫干涉協議,發生寫缺失后再寫時,可以顯著降低系統功耗;當發起寫操作的是被寫干涉的處理器時,可以顯著提升系統性能.更重要的是,如果寫缺失之后沒有對該緩存行的讀操作,之后的寫操作仍然存在這些優勢.

5 硬件實現

5.1 總體架構

圖4 CK610MP總體架構Fig.4 Architecture of CK610MP

采用寫干涉協議,設計出如圖4所示的CK610MP多核處理器,由修改后的CK610處理器[12]、核間互連以及AMBA AXI總線接口單元組成,并支持2~8個處理器的配置.修改了CK610處理器的讀寫單元(LSU)部分的邏輯,使其支持一致性請求的發起和一致性命令的響應.定制了核間互連模塊,它不僅負責維護寫干涉協議,還負責處理對共享存儲器的請求;為了提高帶寬,把數據和指令的通道分開.由于指令不存在一致性的問題,以下只討論數據通道.

5.2 核間互連設計

如圖5所示,核間互連由請求單元、一致性處理單元、存儲器接口單元和應答單元組成.

請求單元負責串行化各個處理器的訪問,并把一致性訪問轉發到一致性處理單元,把非一致性訪問轉發到存儲器接口單元.

圖5 核間互連架構Fig.5 Architecture of interconnect

一致性處理單元是核間互連的核心模塊.一致性處理單元收到訪問請求后,首先把信息壓入一致性請求隊列,同時查詢Snoop Tag.下一個周期結果出來后進行比較,并根據查詢的結果產生相應的一致性命令.由于Tag 比較后的時序已經非常緊張了,一致性命令會進入一致性命令緩沖區,下一個周期再發往相應的處理器,同時請求更新Snoop Tag.當一致性操作是讀缺失時,如果Snoop Tag查詢結果指示系統中存在有效的該緩存行,通過緩存間數據拷貝獲取數據并發送給應答單元;否則把讀請求發給存儲器接口單元.當一致性操作是寫缺失時,如果Snoop Tag查詢結果指示系統中存在有效的該緩存行,則通過寫干涉命令把缺失的數據寫到擁有所有者標記的緩存中;否則把數據發送給存儲器接口單元,寫到共享存儲器中.

存儲器接口單元由寫緩沖區、讀緩沖區及總線接口組成,負責接收并發起對共享存儲器的訪問.

應答單元接收到一致性處理單元或存儲器接口單元的響應后,按照相應的順序答復發起訪問的處理器.同一個處理器的操作,在核間互連中可以亂序執行,但需要按照請求單元記錄的順序按序應答;對于不同處理器的操作,如果沒有地址依賴關系,可以亂序執行、亂序應答,極大地提高了性能.

5.3 處理器Tag和Snoop Tag

單核處理器Tag 一般由Tag RAM 和Dirty RAM 組 成.Tag RAM 中 保 存 相 應 索 引 字 段(index)的有效狀態位(V)和標志字段(tag),Dirty RAM 用來保存臟狀態位(D).對于寫干涉協議,只需在Tag RAM 中擴充一個Exclusive(E)狀態位,即可表示協議的5種狀態.但是這里臟狀態位的意義發生了改變,它不僅代表緩存中的數據和存儲器中不一致,還代表更新共享存儲器的責任,即擁有修改者標記.

在一致性處理單元中,利用Snoop Tag 來減少對其他處理器的不必要的干擾.Snoop Tag 可以看作是對每個處理器內部Tag 的拷貝,但由于Snoop Tag 只用來查詢各處理器中是否存在被訪問的緩存行,所以只需要一個有效狀態位(V)即可,如表1所示.

如圖5所示,Snoop Tag有3個訪問源:查詢請求、更新請求和維護請求(處理器的緩存清空或緩存同步操作).為確保功能正確,把維護請求的優先級設為最高.為了提高性能,避免一致性訪問的堵塞,設置查詢的優先級高于更新的優先級.如果出現查詢與更新的競爭,更新請求將在一致性命令緩沖區等待,并且被視為Snoop Tag中的內容,會被隨后的一致性訪問所查詢.然而,一致性命令緩沖區的大小終歸有限,如果被填滿仍會阻塞一致性訪問.為了進一步提高性能,按照索引字段的低2位模4運算的結果把每個處理器的Snoop Tag 分為4 個塊(bank),不同的塊可以被同時訪問,從而降低了查詢請求與更新請求沖突的概率.至于處理器Tag,由于對Tag的訪問處于時序的關鍵路徑,所以不能進行分塊.

表1 處理器Tag和Snoop Tag各狀態位與寫干涉協議各狀態的對應關系Tab.1 Corresponding relation between the states of processor Tag and Snoop Tag and the states of write intervention protocol

5.4 處理器設計

處理器部分的設計是基于CK610單核的擴展.如圖6所示,新增了一致性命令接口、緩存間數據拷貝接口、緩存仲裁邏輯、一致性判斷邏輯、請求接口和應答接口.

圖6 處理器部分的架構Fig.6 Architecture of processor

利用可反轉固定優先級的緩存仲裁邏輯來選擇請求緩存操作的源.為了減少處理器的阻塞,提高性能,定義處理器讀請求的優先級最高,其中,Tag查詢請求也是讀請求的一種.但是,如果處理器一直發起讀請求,將會堵塞一致性命令,造成整個系統的堵塞.因此,設計規定:如果N 個處理器時鐘周期后一致性命令還沒有搶到緩存資源,處理器讀請求和一致性命令的優先級將臨時反轉一次.由于核間互連保證了能夠發往處理器的一致性命令的順序一定是先于處理器未完成的一致性請求的順序,所以定義處理器對緩存寫請求的優先級為最低.

一致性命令接口用來把接收到的一致性命令譯碼成相應的對各個RAM 的操作,如表2所示,根據寫干涉協議,定義了4種一致性命令,這里以“讀數據命令”為例簡要說明.當某個處理器發起讀缺失請求時,核間互連向擁有所有者標記的處理器發送讀數據命令,把處理器Tag RAM 相應index的E 位寫為0,Dirty RAM 的D 位寫為0,同時讀取Data RAM 中的數據.這里利用了SRAM 的特性,把Dirty RAM 的數據輸入端置0的同時,在數據輸出端同時讀出之前的D 狀態位,和數據一起通過緩存間數據拷貝接口答復給核間互連,完成了修改者標記的轉移.

表2 一致性命令與對處理器緩存操作的對應關系Tab.2 Relation between coherence commands and operations on processor cache

一致性判斷邏輯會根據一致性協議、緩存命中判斷的結果和地址區間的屬性來判斷發起的請求是否為一致性請求,然后通過請求接口把信息發給核間互連.核間互連通過一致性處理后,通過應答接口發送應答、讀數據、協議狀態位、臟狀態位等給處理器,完成整個操作.

6 實驗結果與分析

圖7 實驗所用的系統環境Fig.7 Experiment environment

在實驗中,CK610MP 被集成到一個小型系統中,如圖7 所示,該系統還包括AXI總線、APB 總線、中 斷 控 制 器(INTC)、定 時 器(TIM)、看 門 狗(WDT)、存儲器控制器(MMC)及共享存儲器(SDR).其中,各處理器一級數據/指令緩存大小為16KB,每個緩存行大小為4個字,采用SMIC65nmLL工藝的單端口SRAM;處理器時鐘頻率為480 MHz,AXI和SDR 時鐘頻率為120 MHz;SDR 選取的型號 為美光半導體(Micron)的MT48LC32M16A2[13],大小為128 MB.選取EEMBC Multi-bench[14]中有代表性的md5、rgbcmy和rotate程序進行性能測試和功耗評估.這3 個程序各有特點,md5 程序計算多數據流的MD5校驗和,數據并行度較高,通信相對較少;rgbcmy程序把RGB 色彩模式的圖像轉換成CMYK 印刷色彩模式的圖像,通信計算比高于md5;rotate程序處理一系列二進制圖像,將其旋轉90°、180°和270°,計算量很少,由于輸入和輸出的數據流地址相關性較低,會產生較多的寫缺失,對共享存儲器帶寬帶來壓力.在服務器中進行ASIC仿真,通過統計程序運行時間以及對SDR 的訪問次數來評 估 性 能;通 過Synopsys Prime Power 統 計CK610MP、AXI、MMC 和SDR 部分的動態功耗來評估功耗.其中,對共享存儲器訪問的統計是通過硬件性能計數器實現的.

實驗中,用寫無效協議中性能最好的MOESI協議作為參考和寫干涉協議進行對比,分別比較2、4、6和8核配置下對相同任務的運行情況.為便于進行橫向對比,CK610MP實現了2個版本:支持緩存間數據拷貝的MOESI協議版本和寫干涉協議版本.

6.1 共享存儲器訪問次數測試結果及分析

如圖8所示,在各種處理器核數N 配置下,寫干涉協議(WI)對共享存儲器的訪問次數M 比MOESI協議對共享存儲器的訪問次數都有顯著減少,其中,通信相對較少的md5 程序平均減少了6%;通信相對較多的rgbcmyk 程序平局減少了11%;寫缺失較多的rotate程序平均減少了27%.

圖8 共享存儲器訪問次數統計Fig.8 Statistics of shared memory access

圖9 歸一化的共享存儲器訪問次數統計Fig.9 Normalized statistics of shared memory access

如圖9所示 顯示了寫干涉協議對共享存儲器訪問次數(Mwi)占MOESI協議對共享存儲器訪問次數(Mmoesi)的百分比隨處理器核數變化的情況.進一步發現,隨著處理器核數的增多,核間通信隨之增加,寫干涉協議減少共享存儲器訪問次數的優勢變得更明顯.

6.2 性能測試結果及分析

如圖10所示,寫干涉協議減少了程序執行時間T,對性能有所提升,其中,md5程序平均減少了1%;rgbcmyk程序平均減少了2%,rotate程序平均減少了3%.從以上統計可以看出,寫干涉協議可以減少共享存儲器的訪問次數,提升系統的性能,而且在處理器核數固定的情況下,隨著核間通信比例的增加、寫缺失比例的增加,這些提升變得更明顯.

如圖11所示顯示了寫干涉協議的程序執行時間(Twi)占MOESI協議的程序執行時間(Tmoesi)的百分比隨處理器核數變化的情況.隨著處理器核數的增多,核間通信及寫缺失將增多.因此,在2、4、6核的配置下,寫干涉協議對性能的提升逐漸變得明顯.但是,隨著處理器核數的增多,寫干涉操作的時間、空間局部性將變差,被寫干涉的緩存行極有可能被迅速替換掉,導致在8核配置下,寫缺失比例少于rotate的md5 和rgbcmyk 程序對性能的提升程度有所降低.

圖10 執行時間統計Fig.10 Statistics of execution time

圖11 歸一化執行時間統計Fig.11 Normalized statistics of execution time

6.3 功耗測試結果及分析

CMOS電路中的功耗由2部分功耗組成,一部分是漏電流引起的靜態功耗,另一部分是由信號翻轉造成的動態功耗.這里討論的功耗均為動態功耗.把整個系統的功耗分為3個部分:

式中:ECORES為處理器內核的功耗,EIC為核間互連的功耗,EOUT為AXI、MMC和SDR 部分的功耗.顯然CK610MP部分的功耗為ECORES+EIC.根據第4 章分析可知,對比MOESI協議,寫干涉協議大幅減少了對共享存儲器的訪問,因此降低了EOUT;增加了緩存命中率,因此降低了EIC;增加了緩存間的數據拷貝,將增加ECORES.而從如圖12顯示的實驗結果來看,寫干涉協議對EOUT的降低更為明顯,因此總體的功耗(P)還是大幅下降的.其中,md5程序平均下降了3%;rgbcmyk程序平均下降了10%,rotate程序平均下降了13%.

如圖13 所示顯示了寫干涉協議的總體功耗(Pwi)占MOESI協議的總體功能(Pmoesi)的百分比隨處理器核數變化的情況.隨著處理器核數的增多,數據部分的緩存間共享將增多,而指令部分無法進行緩存共享,導致處理器指令部分的功耗所占的比例將越來越大,是一致性協議無法解決的,因此ECORES占系統功耗的比例將越來越大,寫干涉協議對功耗節省的優勢將趨近飽和.

圖12 動態功耗統計Fig.12 Statistics of dynamic power dissipation

圖13 歸一化動態功耗統計Fig.13 Normalized statistics of dynamic power dissipation

7 結 語

本文提出了一種基于寫干涉的高速緩存一致性協議,用于采用寫回、非寫分配緩存的多核處理器系統,并在32位嵌入式多核處理器設計中加以實現.實驗結果表明,和MOESI協議相比,寫干涉協議減少了共享存儲器的訪問量,提升了系統的性能,同時也降低了動態功耗.

利用仿真的方法進行性能和功耗的評估,雖然結果精確,但速度很慢.今后,將對寫干涉協議在更高的抽象層次進行快速評估,并將進一步考慮不同緩存大小和不同處理器體系結構等對協議的影響.

):

[1]ZHOU X,YU C,DASH A,et al.Application-aware snoop filtering for low-power cache coherence in embedded multiprocessors[J].ACM Transactions on Design Automation of Electronic Systems(TODAES),2008,13(1):16:1-16:25.

[2]CRAWFORD S E,DEMARA R F.Cache coherence in a multiport memory environment[C]∥Proceedings of the First International Conference on Massively Parallel Computing Systems.Ischia:IEEE,1994:632-642.

[3]STENSTROM P.A survey of cache coherence schemes for multiprocessors [J].Computer,1990,23(6):12-24.

[4]HENNESSY J L,PATTERSON D A.Computer architecture:aquantitative approach,Fourth Edition [M].Amsterdam:Elsevier,2007:208-284.

[5]LEVERICH J,ARAKIDA H,SOLOMATNIKOV A,et al.Comparing memory systems for chip multiprocessors[J].ACM SIGARCH Computer Architecture News,2007,35(2):358-368.

[6]JANG Y J,RO W W.Evaluation of cache coherence protocols on multi-core systems with linear workloads[C]∥ISECS International Colloquium on Computing,Communication, Control,and Managemen. Sanya:IEEE,2009:342-345.

[7]YI K,RO W,GAUDIOT J.Importance of coherence protocols with network applications on multi-Core processors[J].IEEE Transactions on Computers,2013,62(1):6-15.

[8]LI J M,LIU W J,JIAO P.A new kind of cache coherence protocol with sc-cache for multiprocessor[C]∥2010 2nd International Workshop on Intelligent Systems and Applications(ISA).Wuhan:IEEE,2010:1-5.

[9]KAXIRAS S,ROS A.Efficient,snoopless,system-onchip coherence[C]∥SOC Conference(SOCC).Niagara Falls,NY:IEEE,2012:230-235.

[10]HACKENBERG D,MOLKA D,NAGEL W E.Comparing cache architectures and coherency protocols on x86-64 multicore SMP systems[C]∥Proceedings of the 42Nd Annual IEEE/ACM International Symposium on microarchitecture. New York: IEEE, 2009:413-422.

[11]PONG F,DUBOIS M.Formal automatic verification of cache coherence in multiprocessors with relaxed memory models[J].IEEE Transactions on Parallel and Distributed Systems,2000,11(9):989-1006.

[12]C-SKY Microsystems Co.,Ltd.CK600Introduction[EB/OL].[2014-01-11].http:∥www.c-sky.com/downdisp.php?aid=72

[13]Micron Technology,Inc.MT48LC32M16A2datasheet[EB/OL].[2014-01-11].http:∥www.micron.com/~/media/Documents/Products/Data%20Sheet/DRAM/512Mb_sdr.pdf

[14]Embedded Microprocessor Benchmark Consortium.MultiBenchTM1.0 Benchmark Software [EB/OL].[2014-01-11].http:∥www.eembc.org/benchmark/multi_sl.php

猜你喜歡
一致性
注重整體設計 凸顯數與運算的一致性
遼寧教育(2022年19期)2022-11-18 07:20:42
關注減污降碳協同的一致性和整體性
公民與法治(2022年5期)2022-07-29 00:47:28
商用車CCC認證一致性控制計劃應用
注重教、學、評一致性 提高一輪復習效率
對歷史課堂教、學、評一體化(一致性)的幾點探討
IOl-master 700和Pentacam測量Kappa角一致性分析
基于CFD仿真分析的各缸渦流比一致性研究
ONVIF的全新主張:一致性及最訪問控制的Profile A
方形截面Rogowski線圈的一致性分析
電測與儀表(2016年7期)2016-04-12 00:22:18
基于事件觸發的多智能體輸入飽和一致性控制
主站蜘蛛池模板: 在线播放真实国产乱子伦| 国产91透明丝袜美腿在线| 国产一在线观看| 日韩东京热无码人妻| 国产网站一区二区三区| 无码人中文字幕| 免费人成网站在线观看欧美| 国产精品永久不卡免费视频 | 丁香婷婷综合激情| 精品人妻无码中字系列| 秋霞午夜国产精品成人片| 亚洲无码91视频| 亚洲大尺度在线| 欧美性久久久久| 天天综合网色中文字幕| 久久人人妻人人爽人人卡片av| 天天综合天天综合| 国模视频一区二区| 激情午夜婷婷| 欧美精品高清| 色欲不卡无码一区二区| 欧美色伊人| a欧美在线| 国产精品区视频中文字幕| 成人亚洲视频| 久久精品人人做人人爽电影蜜月| 欧美a在线| 亚洲精品福利网站| 午夜视频在线观看免费网站 | 欧美人与牲动交a欧美精品| 久草热视频在线| 99久久人妻精品免费二区| 国产日韩精品欧美一区灰| 久久久久国产精品免费免费不卡| 亚洲日韩欧美在线观看| 日韩小视频在线播放| 国产主播喷水| 在线视频一区二区三区不卡| 久久亚洲天堂| 国产手机在线ΑⅤ片无码观看| 九九九国产| 天天躁日日躁狠狠躁中文字幕| 女同久久精品国产99国| 久久久久人妻一区精品| 国产视频欧美| 亚洲啪啪网| 亚洲二区视频| 中文字幕2区| 国产成人免费观看在线视频| 99热这里只有精品久久免费| 亚洲一区国色天香| 久久综合伊人 六十路| 67194在线午夜亚洲| 国产欧美综合在线观看第七页| 成年人福利视频| 亚洲国产黄色| 国产精品999在线| 国产在线一二三区| 国产福利在线观看精品| 国产一级一级毛片永久| 福利在线不卡| 毛片视频网| 色妺妺在线视频喷水| 欧美伦理一区| 欧美综合区自拍亚洲综合天堂| 精品国产中文一级毛片在线看| 四虎国产精品永久在线网址| 欧美 国产 人人视频| 99久久亚洲精品影院| 狼友视频国产精品首页| 99这里只有精品在线| a亚洲视频| 欧美一区福利| a亚洲视频| 伊人久久大香线蕉影院| 国产成人亚洲精品蜜芽影院| 亚洲男人的天堂久久香蕉| 成人在线欧美| 国产综合在线观看视频| 国产精品99一区不卡| 久996视频精品免费观看| 国产精品美女自慰喷水|