• 緩存污染

    編輯
    本詞條由“匿名用戶” 建檔。

    緩存污染

    編輯

    緩存污染是指執行中的計算機程序不必要地將數據加載到CPU高速緩存中,從而導致其他有用的數據從高速緩存中逐出到較低的內存層次結構中,從而降低了性能。例如,在多核處理器中,一個內核可以將其他內核提取的塊替換為共享緩存,或者預取的塊可以替換從緩存中按需提取的塊。

    緩存污染

    解決方案

    編輯

    除了上述代碼重組以外,緩存污染的解決方案還可以確保僅將高重復使用數據存儲在緩存中。這可以通過使用特殊緩存控制指令操作系統支持或硬件支持來實現。

    專用硬件指令的示例包括PowerPC?AltiVec提供的“ lvxl”?。該指令將128位寬的值到寄存器和標記對應的緩存塊為“最近最少使用”,即作為總理候選人在驅逐需要逐出來自其緩存集的一個塊。為了在以上示例的上下文中適當地使用該指令,必須使用該指令來加載循環引用的數據元素。當以這種方式實現時,不會發生高速緩存污染,因為這種循環的執行不會導致從高速緩存中過早地退出T。可以避免這種情況,因為隨著循環的進行,C中元素的地址將映射到相同的緩存方式,而實際上保留了較舊的(但未標記為“最近最少使用”的)數據,而另一種方式完好無損。 )。僅從最早的數據(與給定的示例無關)中刪除T不屬于的緩存,因為它的更新恰好在循環開始之前發生。

    類似地,使用操作系統(OS)支持,可以將主內存中與C數據數組相對應的頁面標記為“禁止緩存”,或者說是不可緩存的。類似地,在硬件級別,可以使用緩存繞過方案,該方案基于程序訪問模式識別低重用數據并從緩存中繞過它們。同樣,共享緩存可以被分區以避免運行中的應用程序之間的破壞性干擾。這些解決方案的權衡點在于,基于OS的方案可能具有較大的延遲,這可能會使通過避免緩存污染而獲得的收益無效(除非開始時不可緩存的內存區域),而基于硬件的技術可能沒有全局性。程序控制流和內存訪問模式的視圖。

    重要性越來越高

    編輯

    緩存污染控制的重要性日益提高,因為所謂的“內存墻”造成的懲罰不斷增加。芯片制造商繼續設計新技巧,以克服不斷增加的相對于CPU的相對內存延遲。他們通過增加緩存大小并為軟件工程師提供有用的方式來控制數據到達和停留在CPU上的方式來做到這一點。緩存污染控制是(主要是嵌入式的)編程器可用的眾多設備之一。但是,也使用其他方法,其中大多數是專有方法,并且高度依賴于硬件和應用程序。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/117156/

    (3)
    詞條目錄
    1. 緩存污染
    2. 解決方案
    3. 重要性越來越高

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久