TWI650642B - 用於機會式快取注入資料至快取階層之較低延遲層級的方法、設備及系統 - Google Patents
用於機會式快取注入資料至快取階層之較低延遲層級的方法、設備及系統 Download PDFInfo
- Publication number
- TWI650642B TWI650642B TW104109006A TW104109006A TWI650642B TW I650642 B TWI650642 B TW I650642B TW 104109006 A TW104109006 A TW 104109006A TW 104109006 A TW104109006 A TW 104109006A TW I650642 B TWI650642 B TW I650642B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- cache
- data
- low latency
- interconnect
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
- G06F2213/2806—Space or buffer allocation for DMA transfers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
根據一般態樣,一種方法可包括自經組配來執行直接記憶體存取之非中央處理器裝置接收在記憶體位址處在記憶體系統內寫入資料的請求。該方法亦可包括判定快取標籤命中是否藉由該記憶體系統之快取層基於該記憶體位址產生,該快取層與相干記憶體互連體相比以延遲方式更接近於中央處理器。該方法可進一步包括在該快取層產生了該快取標籤命中的情況下將該資料注入至該快取層中。
Description
本申請案根據35 U.S.C.§119主張2014年3月21日申請之題為「METHOD FOR OPPORTUNISTIC CACHE INJECTION OF DATA INTO LOWER LATENCY LEVELS OF THE CACHE HIERARCHY TO IMPROVE PERFORMANCE WHERE AN UNINTELLIGENT I/O DEVICE OR DMA MASTER PRODUCES DATA TO BE CONSUMED BY SOFTWARE RUNNING ON A CPU CORE」之臨時專利申請案第61/969,077號的優先權。此早先申請之申請案的標的特此以引用的方式併入。
此描述係關於記憶體管理,且更特定言之係關於記憶體之一部分的管理,該部分與用於輸入/輸出(I/O)裝置與在處理器上執行之軟體之間的通訊之可快取記憶體部分相關聯。
一般而言,電腦及藉由其執行之程式非常需要無限量之快速記憶體。不幸地,記憶體(尤其是快速記憶體)在成本及晶粒面積兩方面一般為昂貴的。對於對無限快速記憶體之需求的傳統解決方案為記憶體階層或記憶體之層或層級的系統。一般而言,分層記憶體系統包括記憶體之多個層級,每一層級慢於但大於先前層。
典型電腦記憶體階層可包括三個層級。最快及最小的記憶體(常常被稱作「層級1(L1)快取記憶體」)最接近於處理器,且包括靜態隨機存取記憶體(RAM及SRAM)。下一層或層級常常被稱作層級2(L2)快取記憶體,且大於但慢於L1快取記憶體。第三層級為主記憶體且一般包括常常插入至記憶體模組中之動態RAM(DRAM)。然而,其他系統可具有更多或更少之記憶體層。又,在一些系統中,處理器暫存器及永久或半永久儲存裝置(例如,硬碟、固態驅動機等)可被視為記憶體系統之部分。
根據一一般態樣,一種方法可包括自經組配來執行一直接記憶體存取之一非中央處理器裝置接收在一記憶體位址處在一記憶體系統內寫入資料的一請求。該方法亦可包括判定一快取標籤命中是否藉由該記憶體系統之一快取層基於該記憶體位址產生,該快取層與一相干記憶體互連體相比以延遲方式更接近於一中央處理器。該方法可進
一步包括在該快取層產生了該快取標籤命中的情況下將該資料注入至該快取層中。
根據另一一般態樣,一種設備可包括一高延遲記憶體、一低延遲記憶體及一記憶體互連體。該高延遲記憶體可經組配來儲存資料,其中該高延遲記憶體與一記憶體互連體相比以延遲方式更遠離一中央處理器。該低延遲記憶體可經組配來儲存資料,其中該低延遲記憶體與該記憶體互連體相比以延遲方式更接近於一中央處理器。該記憶體互連體可經組配來:自經組配來執行一直接記憶體存取之一非中央處理器裝置接收在一記憶體位址處寫入資料的一請求;請求該低延遲記憶體基於該記憶體位址向該記憶體互連體提供一快取標籤命中抑或一快取標籤未命中;及在該低延遲記憶體提供了一快取標籤命中的情況下將該資料注入至該低延遲記憶體中。
根據另一一般態樣,一種系統可包括一處理器、一非中央處理器裝置及一分層記憶體系統。該處理器可經組配來自一分層記憶體系統讀取資料及將資料寫入至一分層記憶體系統。該非中央處理器裝置可經組配來對該分層記憶體系統執行一直接記憶體存取,且請求將資料寫入至該分層記憶體系統。該分層記憶體系統可包括一高延遲記憶體、一低延遲記憶體及一記憶體互連體。該高延遲記憶體可經組配來儲存資料,其中該高延遲記憶體與一記憶體互連體相比以延遲方式更遠離一中央處理器。該低延遲記憶體可經組配來儲存資料,其中該低延遲記憶體與該記憶
體互連體相比以延遲方式更接近於一中央處理器。該記憶體互連體可經組配來:自經組配來執行一直接記憶體存取之一非中央處理器裝置接收在一記憶體位址處寫入資料的一請求;請求該低延遲記憶體基於該記憶體位址向該記憶體互連體提供一快取標籤命中抑或一快取標籤未命中;及在該低延遲記憶體提供了一快取標籤命中的情況下將該資料注入至該低延遲記憶體中。
一或多個實行方案之細節闡述於隨附圖式及以下描述中。其他特徵將自描述及圖式且自申請專利範圍顯而易見。
此描述係關於用於記憶體管理之系統及/方法,且更特定言之係關於實質上如諸圖中之至少一者中所示及/或結合該至少一者所述,如更完整地闡述於申請專利範圍中的記憶體之一部分的管理,該部分與用於輸入/輸出(I/O)裝置與在處理器上執行之軟體之間的通訊之可快取記憶體部分相關聯。
100、200、201、300‧‧‧系統
102‧‧‧處理器/中央處理器
104‧‧‧輸入/輸出(I/O)裝置
106‧‧‧記憶體互連體
108、208、209、308‧‧‧分層記憶體系統
112、212、312a、312b、312c‧‧‧L1快取記憶體
122、222、322a、322b、322c‧‧‧層級2(L2)快取記憶體
132、232、332‧‧‧層級3(L3)快取記憶體
142‧‧‧主記憶體
154、156、292、294‧‧‧路徑
190‧‧‧資料
191‧‧‧記憶體位址
192‧‧‧快取標籤/路徑
194‧‧‧舊資料/路徑
196、296‧‧‧資料路徑
202、302a、302b、302c、510‧‧‧處理器
400‧‧‧技術
402、404、406、408‧‧‧區塊
500‧‧‧資訊處理系統
505‧‧‧系統匯流排
515‧‧‧組合邏輯區塊(CLB)
520‧‧‧依電性記憶體
530‧‧‧非依電性記憶體
540‧‧‧網路介面
550‧‧‧使用者介面單元
560‧‧‧其他裝置或硬體組件
570‧‧‧軟體組件
圖1a為根據所揭示標的的系統之實例實施例的方塊圖。
圖1b為根據所揭示標的的系統之實例實施例的方塊圖。
圖2a為根據所揭示標的的系統之實例實施例的方塊圖。
圖2b為根據所揭示標的的系統之實例實施例的
方塊圖。
圖3為根據所揭示標的的系統之實例實施例的方塊圖。
圖4為根據所揭示標的的技術之實例實施例的流程圖。
圖5為可包括根據所揭示標的之原理形成之裝置的資訊處理系統之示意性方塊圖。
各圖式中之相似參考符號指示相似元件。
下文將參看展示有一些實例實施例之隨附圖式更全面地描述各種實例實施例。然而,本揭示標的可以許多不同的形式體現,且不應解釋為限於本文所闡述之實例實施例。實情為,此等實例實施例經提供,使得本發明將為詳盡且完整的,且將向熟習此項技術者全面地傳達本揭示標的之範疇。在圖式中,層及區域之大小及相對大小可為清楚起見得以誇示。
將理解,當元件或層被稱為「在另一元件或層上」、「連接至」或「耦接至」另一元件或層時,其可直接在另一元件或層上、直接連接或耦接至另一元件或層,或可存在介入元件或層。對比而言,當元件被稱為「直接在另一元件或層上」、「直接連接至」或「直接耦接至」另一元件或層時,不存在介入元件或層。相似數字遍及全文指代相似元件。如本文所使用,「及/或」一詞包括相關聯之
所列出項目中之一或多者的任何及所有組合。
將理解,儘管第一、第二、第三等詞在本文中可用以描述各種元件、組件、區域、層及/或區段,但此等元件、組件、區域、層及/或區段不應受此等術語限制。此等術語僅用以區分一元件、組件、區域、層或區段與另一區域、層或區段。因此,在不脫離本揭示標的之教示的情況下,下文所論述之第一元件、組件、區域、層或區段可被稱為第二元件、組件、區域、層或區段。
諸如「在......之下」、「在......下方」、「下部」、「在......上方」、「上部」及其類似者之空間相對術語在本文中為易於描述可得以使用,以描述如諸圖中所例示之一元件或特徵與另一(多個)元件或特徵的關係。將理解,除諸圖中所描繪之方位之外,空間相對術語亦意欲涵蓋在使用中之裝置或操作的不同方位。舉例而言,若諸圖中之裝置經翻轉,則描述為「在其他元件或特徵下方」或「在其他元件或特徵之下」之元件將接著定向為「在其他元件或特徵上方」。因此,示範性術語「在......下方」可涵蓋上方及下方之方位兩者。裝置可以其他方式定向(旋轉90度或以其他方位),且本文所使用之空間相對描述符經相應地解譯。
本文所使用之術語僅係用於描述特定實例實施例之目的,且不欲限制本揭示標的。如本文所使用,單數形式「一」及「該」意欲亦包括複數形式,除非上下文清楚地另有指示。將進一步理解,「包含」一詞在用於本說明書中時指定所陳述之特徵、整體、步驟、操作、元件及/或
組件之存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組之存在或添加。
本文參考為理想化實例實施例(及中間結構)之示意性圖解的橫截面圖解描述實例實施例。因而,預期由於例如製造技術及/或公差而引起的自圖解之形狀的變化。因此,實例實施例不應解釋為限於本文所例示之區域的特定形狀,而是包括由例如製造引起的形狀之偏差。舉例而言,例示為矩形之植入區域將通常在其邊緣處具有圓形或彎曲特徵及/或植入濃度之梯度,而非自植入至非植入區域的二元改變。同樣,藉由植入所形成之內埋式區域可在內埋式區域與藉以發生植入之表面之間的區域中導致一定程度之植入。因此,諸圖中所例示之區域在本質上為示意性的,且其形狀不欲例示裝置之區域的實際形狀且不欲限制本揭示標的的範疇。
除非另有定義,否則本文所使用之所有術語(包括技術術語及科學術語)具有與一般熟習本揭示標的所屬之技術者通常所理解的含義相同的含義。將進一步理解,諸如常用辭典中所定義之術語的術語應解譯為具有與其在相關技術之情形中之含義一致的含義,且將不會在理想化或過度正式的意義上來解譯,除非本文明確地如此定義。
下文中,將參看隨附圖式詳細地解釋實例實施例。
在對於每一處理器具有單獨快取記憶體之共用記憶體多處理器系統中,具有資料之任一片段之許多複本
為可能的,例如,在主記憶體中有一個複本且在每一快取記憶體中有一個複本。當資料之一片段的一複本改變時,資料之其他複本應理想地改變。快取一致性為確保共用資料之值的改變以及時型式傳播遍及系統的技術。
強加快取一致性之一技術為確保處理器在其寫入資料項目之前具有對該項目的排他性存取權。此樣式之協定因為其在一次寫入時使其他快取記憶體中之複本無效而被稱作寫入無效協定,且一般被視為更一般窺探樣式之協定的部分。在此狀況下,排他性存取確保在寫入發生時不存在項目之其他可讀或可寫複本:使項目之所有其他快取複本無效。
為了查看此協定確保一致性之方式,考慮藉由第一處理器進行寫入繼之以藉由另一處理器進行讀取。在此實例中,假設存在兩個處理器,具有其兩個個別快取記憶體,且每一快取記憶體保留或儲存資料之一片段的複本。在此實例中,資料之兩個複本近來已獲讀取且因此包括資料之最新版本。資料之片段可被視為在該兩個快取記憶體之間共用。
在此實例中,第一處理器嘗試寫入至其資料複本。作為第一步驟,第一處理器發出或廣播窺探請求至記憶體系統之其餘部分,從而詢問任何其他快取記憶體是否當前儲存資料之複本。一般而言,此係藉由比較資料之記憶體位址與快取記憶體之各種快取標籤而進行。其他處理器或快取記憶體藉由窺探回應來回應窺探請求。每一窺探
回應指示所談論之記憶體位址是否包括於個別快取記憶體中(快取標籤命中),且若如此,則經快取資料之一致性狀態(例如,有效、無效、共用、排他等)亦得以包括。為了簡化此實例,假設若任何快取標籤命中發生,則其將為共用或非排他性的,且寫入可在無混亂之情況下繼續進行。
因為寫入要求排他性存取,所以使藉由另一處理器在其個別快取記憶體中所保留之任何複本無效(因此協定名稱為「寫入無效」)。因此,當第二處理器希望讀取相同資料時,其快取記憶體中之無效資料引起快取未命中,且快取記憶體被迫使擷取資料之新複本。
在各種實施例中,其他協定可得以使用,諸如寫入更新技術、目錄協定、誘捕協定(snarfing protocol)等。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
常常,計算系統與一或多個輸入/輸出裝置或周邊裝置(例如,圖1a之I/O裝置104)耦接。此等裝置可包括(但不限於)網路介面、麥克風、視訊攝影機、視訊圖形卡、共處理器(例如,加密引擎、物理引擎等)等。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。偶爾,此等I/O裝置相對地獨立於主處理器而操作。此移除來自處理器之大量管理工作,但一般導致一些困難。在此情形中,可存取記憶體但並非處理器或處理器核心的諸如此等及其他裝置之裝置可被稱為「非中央處理器裝置」。為了例示性實例,「I/O裝置」一詞可在本文中使用,但應理解,該術
語僅為所揭示標的並不限於之一例示性實例。
在此實施例中,I/O裝置可能能夠直接存取(例如,讀取、寫入等)記憶體之數個部分。在各種實施例中,記憶體之此等部分可受限制,使得I/O裝置與其他裝置相比具有特殊特權(例如,僅I/O裝置可寫入至記憶體部分而其他裝置可自其讀取,等)。在各種實施例中,此可被稱為直接記憶體存取(DMA)。應理解,以上內容僅為所揭示標的並不限於之例示性實例。
快取注入為允許I/O裝置起始指引至目標裝置(記憶體系統之快取記憶體或快取層,等)之匯流排交易(例如,資料寫入等)的架構特徵。傳統地,在無快取注入之系統中,此目標裝置為主記憶體控制器。藉由快取注入,交易可指引至系統中之特定快取記憶體。目標裝置接著窺探匯流排以檢查其是否可匹配目標。若如此,則目標消耗資料,否則記憶體控制器消耗資料。
同樣,藉由上文之多處理器快取一致性實例,資料自I/O裝置寫入至記憶體中可包括各種快取一致性問題。第一快取注入實行方案可存在,其中I/O DMA主控器藉由記憶體互連體及快取記憶體控制器所回應於之分配/更新屬性明確地且選擇性地對其寫入交易加標籤。第二快取注入實行方案可存在,其中記憶體之特定位址範圍在快取記憶體內組配來告知其「宣稱」與應分配或更新之I/O寫入交易/快取列相關聯的窺探。
第三快取注入實行方案可存在,其中I/O寫入交
易自然地流過與DRAM(動態隨機存取記憶體)控制器成直線就位的快取階層層級。在此實行方案中,當I/O寫入在該直列快取記憶體通往DRAM之途中通過該快取記憶體時,儲存於該快取記憶體之快取列內的資料可藉由資料之新版本來更新。亦即,隨著I/O寫入正將新資料發送至DRAM,新資料將亦經由直列快取記憶體來傳輸,此係由於該快取記憶體在I/O裝置與DRAM之間,如下文所述。
在此情形中,若存在用於源於發送實體(例如,I/O裝置、處理器、L1快取記憶體等)之寫入交易隨著該等寫入在其朝向主記憶體(例如,DRAM)的途中分配至記憶體/快取階層之次高延遲層級中或更新次高延遲層級的路徑,則記憶體、快取記憶體或層被視為與主記憶體「成直線」。相反地,在此情形中,若不存在用於源於發送實體之寫入交易隨著該等寫入在其朝向主記憶體的途中分配至記憶體/快取階層之次高延遲層級中或更新次高延遲層級的路徑,則記憶體、快取記憶體或層被視為與主記憶體「不成直線」。
第四快取注入實行方案可存在,其中硬體佇列管理器卸載或加速器區塊確切地追蹤處理器核心當前正處理何工作單元且所有工作對其排佇列以供將來處理。替代於資料在I/O裝置寫入/產生資料至記憶體時經分配/更新,佇列管理器指示資料僅在處理器核心接近其將以「及時」方式消耗資料之點時放於快取記憶體中。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
如下文所述,所揭示標的提供與以上快取注入實行方案技術相比各種可能有用的修改。在該等可能有用的修改當中的是(但不僅僅限於)以下內容。
與第一快取注入實行方案對比,所揭示標的不要求I/O主控器產生顯式分配/更新屬性,且不要求記憶體互連體運輸顯式分配/更新屬性。而且,所揭示標的亦不引起快取階層中之可能有用快取列的立即收回。此外,因為I/O裝置無需改變且可保持為非智慧的,所以所揭示標的可更簡單地實施。
與第二快取注入實行方案對比,所揭示標的不要求軟體初始化具有特殊位址範圍/窗之快取記憶體控制器組態空間,亦不要求對資料結構將藉由軟體分配之位置的特殊限制及/或理解。
與第三快取注入實行方案對比,所揭示標的藉由查看I/O寫入通常去往DRAM並不自然地通過的不同快取階層層級或層而允許陳舊快取列的更新。此外,所揭示標的藉由支援快取列更新或注入至快取階層之較低延遲層級(例如,L1快取記憶體、L2快取記憶體等)中而增加處理器核心擷取延遲益處。
與第四快取注入實行方案對比,所揭示標的不需要與I/O裝置及處理器核心通訊之單獨硬體佇列管理器區塊。此外,所揭示標的與第四快取注入實行方案相比可更簡單地實施。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
下文提供所揭示標的之使用狀況的簡要及一般概述。此外,在下文中,亦提供更詳細之例示性實例。在下文中,詳細例示性實例為所揭示標的之幾個非限制性變化。應理解,以下內容僅為所揭示標的並不限於之幾個例示性實例。
圖1a為根據所揭示標的的系統100之實例實施例的方塊圖。在各種實施例中,系統100可包括處理器102、分層記憶體系統108及一或多個輸入/輸出(I/O)裝置104。在所例示實施例中,分層記憶體系統108可包括三個層(自最小至最大):L1快取記憶體112、層級2(L2)快取記憶體122、層級3(L3)快取記憶體132,及主記憶體142。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
在各種實施例中,I/O裝置104可獲給予對記憶體之指定部分的存取權。在各種實施例中,此部分可藉由記憶體位址之一或多個範圍來定義。在此實施例中,當I/O裝置104希望自記憶體之保留部分讀取資料190/將資料190寫入至保留部分時,存取請求可與與資料190相關聯的記憶體位址191相關聯或包括記憶體位址191。在此實施例中,整個保留記憶體部分無需整體或立刻被讀取或寫入。
在此實施例中,在於處理器102上執行之軟體消耗資料之後,含有與I/O裝置104至處理器102通訊相關聯之陳舊資料結構的快取列可長時間地保留於快取階層(例如,L2快取記憶體122等)中。在各種實施例中,軟體可頻繁地再用與此等陳舊資料結構相關聯之記憶體位址,且將
擁有權給予或傳回至I/O裝置104以寫入或產生新資料。在一些實施例中,此等位址可用於同一類型之資料結構且資料反復流動,諸如I/O裝置104寫入資料至的且軟體可將來消耗之圓形描述符佇列/環及資料緩衝集區輸入項。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
在所例示實施例中,當I/O裝置104希望相干地寫入至快取記憶體(例如,藉由資料190等)時,系統100可產生訊息之窺探請求/回應對。若對應的窺探交易命中處理器102之快取階層(例如,L2快取記憶體122)中的快取列(例如,快取標籤命中,有效的抑或無效的),則快取標籤命中可提供關於與該快取列相關聯之資料藉由軟體之將來消耗的提示。在各種實施例中,可為有利的是,分配/更新與此快取列相關聯之資料且在不自快取記憶體收回有用資料的情況下覆寫快取記憶體中之陳舊資料。
在一些實施例中,所揭示標的可消除與至DRAM或主記憶體142之寫入相關聯的功率之完整部分。隨著新I/O寫入發生,資料可藉由在經修改狀態下之快取記憶體(例如,L2快取記憶體122等)擁有。所揭示標的可消除或減小對主記憶體142之往返讀取延遲的一部分,及用於在處理器102最終擷取此快取列以消耗資料結構(例如,經由命中處理器102快取階層之讀取)時所遇到之主記憶體142讀取的功率之完整部分。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
在另一實施例中,藉由I/O寫入交易所分配/更新
之快取列可自然地收回出快取階層且在處理器102擷取其以供消耗之前寫入至主記憶體142。在此實施例中,此可能不比I/O寫入對主記憶體142完成之情況差,且與其相關聯之窺探簡單地使快取記憶體中含有陳舊資料的快取列無效而非觸發該快取列的分配/更新。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
在一些實施例中,甚至在I/O寫入交易自然地僅流過與主記憶體142成直線就位之快取階層層級(例如,共用之L3快取記憶體132等)的狀況下,添加控制及資料路徑邏輯以支援分配及/或更新存在於快取階層之較高層級(例如,L1快取記憶體112、L2快取記憶體122等)中的陳舊快取列仍可為有利的。舉例而言,處理器102之擷取延遲益處可藉由支援至快取階層之較低延遲層級中的此等更新而增加。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
關於更詳細且具體之例示性實例,I/O裝置104(或其他DMA非處理器裝置)可能希望將資料190寫入至分層記憶體系統108。在所例示實施例中,I/O裝置104可發出傳統寫入交易,該交易包括資料190但並不公然地包括寫入涉及特定形式之機會式快取注入的指示。在此實施例中,寫入交易或請求可與記憶體位址191相關聯。
在所例示實施例中,寫入請求可藉由記憶體互連體106接收。在各種實施例中,記憶體互連體106可被稱為相干互連體或相干記憶體互連體。應理解,以上內容僅為
所揭示標的並不限於之幾個例示性實例。
在各種實施例中,記憶體互連體106可將窺探請求發送至各種快取層。在所例示實施例中,記憶體互連體106可經由路徑154朝向L3快取記憶體132且最終朝向主記憶體142發送窺探請求。在所例示實施例中,記憶體互連體106亦可經由路徑156朝向L2快取記憶體122及/或在記憶體互連體106與處理器102之間的其他快取記憶體(例如,L1快取記憶體112等)發送窺探請求。
在所例示實施例中,主記憶體142可在記憶體位址191處儲存資料190。在此實施例中,主記憶體142可藉由快取標籤命中來回應窺探請求。然而,L2快取記憶體122亦可儲存資料190(表示為舊資料194),且資料194可與快取標籤192相關聯,快取標籤192又與記憶體位址191相關聯。在此實施例中,L2快取記憶體122可藉由快取標籤命中來回應窺探請求。
在此實施例中,記憶體互連體106可經組配來判定快取標籤命中是否藉由記憶體系統108之與相干記憶體互連體106相比以延遲方式更接近於處理器102的快取層產生。在所例示實施例中,主記憶體142與記憶體互連體106相比以延遲方式更遠離處理器102,且因此其可能並非自I/O裝置104接受寫入資料190的所要快取層。相反地,L2快取記憶體122與記憶體互連體106相比以延遲方式更接近於處理器102,且因此其可被視為自I/O裝置104接受寫入資料190的合乎需要之快取層。應理解,以上內容僅為所揭示標
的並不限於之幾個例示性實例。特定言之,關於圖2a、圖2b及圖3論述其他更複雜之實例。
在此實施例中,記憶體互連體106可告知L2快取記憶體122預期寫入資料(資料190)被推動或注入至其中。在資料190包括部分快取列之一些實施例中,注入可採取快取列合併或更新之形式。在資料190包括完整快取列之一些實施例中,注入可採取快取列覆寫之形式。在所例示實施例中,記憶體互連體106可執行快取注入至快取層(例如,L2快取記憶體122)中。
現將進一步強調上文所述之實例的一些態樣。如上文所述,在各種實施例中,來自L2快取記憶體122之快取標籤命中為有效抑或無效快取標籤命中可能並不重要。在此實施例中,快取標籤命中單獨可提供資料190藉由軟體或處理器102之將來消耗的提示或指示且分配及/或更新資料190可為有利的,即使此更新意味覆寫快取記憶體中之陳舊資料194亦如此。在此實施例中,此可在不自快取記憶體收回其他有用資料之情況下進行。在此實施例中,快取記憶體污染(藉由不太可能藉由處理器102需要之資料污染快取記憶體)之危險可得以降低或緩和。
在上文所述之實例的另一態樣中,應注意,傳統地,用於關於快取標籤命中進行快取注入之邏輯及電路對於非直列快取記憶體(例如,L1快取記憶體112、L2快取記憶體122等)而言並不受支援。傳統地,控制及資料路徑邏輯或電路存在,以使I/O裝置104能夠僅更新與自記憶體互
連體106至主記憶體142之正常路徑成直線的該等快取記憶體(關於快取標籤命中)(例如,L3快取記憶體132、主記憶體142等)。
可存在並非直列的更接近於處理器102就位的大快取記憶體容量(例如,L1快取記憶體112、L2快取記憶體122等)。在各種實施例中,此等快取記憶體可頻繁地保留I/O裝置104寫入之資料的陳舊及/或無用版本(例如,舊資料194)。在另一實施例中,直列快取記憶體(例如,L3快取記憶體132等)可能甚至不存在,且因此傳統系統不能寫入至非直列快取記憶體(例如,L2快取記憶體122等)可能降低效能。直列快取記憶體(例如,L3快取記憶體132等)之此不存在對於具有並非直列之大的共用L2快取記憶體的實行方案而言可為常見的。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
在以一些方式不同於以上實例之另一替代性實施例中,在自L2快取記憶體及主記憶體142接收快取標籤命中後,記憶體互連體106即可替代於直接將資料190寫入至L2快取記憶體122中而在L2快取記憶體122(及可能地,L1快取記憶體112)中引起快取列無效。在此實施例中,此可使L2快取記憶體122發出針對資料190(或記憶體位址191)之讀取請求,以便取得經修改或改變資料190的擁有權。在此實施例中,此經修改或改變資料190可在記憶體互連體106內緩衝。因此,藉由讀取所招致之延遲可小於要求存取主記憶體142而非記憶體互連體106的讀取。在各種實施例
中,此讀取請求可被認為使L2快取記憶體122將經更新資料190預先擷取至L2快取記憶體122中。
在此實施例中,自I/O裝置104之寫入可包括完整快取列,使得自非直列快取記憶體(例如,L2快取記憶體122等)之後續讀取可用於完整快取列。在此實施例之另一變體中,若寫入資料(資料190)經寫入直至主記憶體142,則藉由L2快取記憶體122所發出之讀取可能並非針對經修改或更新資料190之擁有權,此係由於快取列可在空的狀態下分配。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
為了描述所揭示標的之另一變化或例子,在一些實施例中,資料190可能不儲存於L1快取記憶體112抑或L2快取記憶體122內。因而,窺探請求可能不自該等快取記憶體或任何非直列快取記憶體產生快取標籤命中(有效的抑或無效的)。在此實施例中,記憶體互連體106可能不具有記憶體系統108之與相干記憶體互連體106相比以延遲方式更接近於處理器102的快取層,該快取層為用於快取注入之良好候選者。在此實施例中,記憶體互連體106可將資料190注入至與相干記憶體互連體106相比以延遲方式更遠離中央處理器102之快取層(例如,主記憶體142)中。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
圖1b為根據所揭示標的的系統100之實例實施例的方塊圖(其亦展示於圖1a中)。圖1b強調傳統系統及所揭示標的移動資料之方式的差異。
圖1b展示藉由傳統系統所使用之傳統資料路徑,其中資料係自I/O裝置104(或非處理器DMA裝置)及主記憶體142發送(經由路徑192所例示)。然後,資料自主記憶體142移動至L2快取記憶體122或L1快取記憶體112(經由路徑194所例示)。在此實施例中,藉由處理器102所經歷之延遲為相對高的。
相反地,資料路徑196例示,在所揭示標的中,資料可經由降低或緩和可能快取記憶體污染之機會式快取注入自I/O裝置104直接移動至L2快取記憶體122(或L1快取記憶體112)。資料路徑196亦例示,最後,資料可自L2快取記憶體122移動至主記憶體142。應理解,類似的資料路徑可對於圖2a及圖3之系統或對於所揭示標的之其他實施例繪製。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
圖2a為根據所揭示標的的系統200之實例實施例的方塊圖。在各種實施例中,系統200可包括處理器102、分層記憶體系統208及一或多個輸入/輸出(I/O)裝置104。在所例示實施例中,分層記憶體系統208可包括三個層(自最小至最大):L1快取記憶體112、層級2(L2)快取記憶體122、層級3(L3)快取記憶體232,及主記憶體142。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
圖1a之系統100展示了分層記憶體系統108,分層記憶體系統108包括至少例示性地與主記憶體142緊密耦接之L3快取記憶體132。圖2a之系統200展示分層記憶體系統
208,分層記憶體系統208包括至少例示性地與記憶體互連體106緊密耦接之L3快取記憶體232。在所例示實施例中,上文參看圖1a及圖1b所述之機會式快取注入方案可以實質上類似之方式發生。在此實施例中,L3快取記憶體232與相干記憶體互連體106相比可仍以延遲方式更遠離中央處理器102,且因此快取注入可仍對L2快取記憶體122或其他更接近延遲快取層發生。圖2a例示所揭示標的不限於特定記憶體拓撲。
圖2b為根據所揭示標的的系統201之實例實施例的方塊圖。圖2b強調在最低層級快取記憶體(LLC)或L3快取記憶體332之間的耦接之程度及傳統系統及所揭示標的移動資料之方式兩方面的差異。
在各種實施例中,系統201可包括處理器202、分層記憶體系統209及一或多個輸入/輸出(I/O)裝置104。在所例示實施例中,分層記憶體系統209可包括三個層(自最小至最大):L1快取記憶體212、層級2(L2)快取記憶體222、層級3(L3)快取記憶體332,及主記憶體142。在所例示實施例中,L3快取記憶體332可能並未與記憶體互連體106或主記憶體142緊緊地耦接(如圖1a及圖2a中所示)。實情為,L3快取記憶體332(或藉由所例示之L3快取記憶體332所表示的其他快取記憶體)可經由匯流排與記憶體互連體106及分層記憶體系統209之其餘部分以通訊方式耦接。
然而,不管此鬆散耦接,L3快取記憶體332可仍關於I/O裝置104或甚至處理器202被視為對主記憶體142為
直列的。此外,L3快取記憶體332與記憶體互連體106相比可以延遲方式更遠離處理器202,如下文所述。
圖2b展示藉由傳統系統所使用之傳統資料路徑,其中資料係自I/O裝置104(或非處理器DMA裝置)及主記憶體142發送(經由路徑292所例示)。然後,資料自主記憶體142移動至L2快取記憶體222或L1快取記憶體212(經由路徑294所例示)。如所示,此通常經由L3快取記憶體332而發生。常常,此係因為L3快取記憶體332被視為在拓撲上位於主記憶體142與該一或多個處理器(對於具有多個處理器之簡化實施例參見圖3)之間的共用快取記憶體而進行。在此實施例中,藉由處理器202所經歷之延遲為相對高的。
資料路徑296例示,在所揭示標的中,資料可經由降低或緩和可能快取記憶體污染之機會式快取注入自I/O裝置104直接移動至L2快取記憶體222(或L1快取記憶體212)。資料路徑296亦例示,最後,資料可自L2快取記憶體222移動至主記憶體142。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
圖3為根據所揭示標的的系統300之實例實施例的方塊圖。在各種實施例中,系統300可包括多個處理器或處理器核心(例如,處理器302a、302b、302c等),處理器302a、302b及302c中之每一者可與個別快取記憶體(例如,L1快取記憶體312a、312b、312c;及L2快取記憶體322a、322b、322c等)、共同或共用記憶體互連體106、共同或共用L3或最後層級(LLC)快取記憶體132、共同或共用主記憶
體142及一或多個輸入/輸出(I/O)裝置104相關聯。在所例示實施例中,分層記憶體系統308可包括三個層(自最小至最大):L1快取記憶體312a、312b及312c,層級2(L2)快取記憶體322a、322b及322c,層級3(L3)快取記憶體132,及主記憶體142。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
在所例示實施例中,上文參看圖1a所述之技術可以實質上相同的方式發生。然而,在所例示實施例中,窺探請求可產生或導致兩個以上參看圖1a所述之快取標籤命中。在各種實施例中,一個以上快取記憶體可儲存資料190之複本。此實例展示第一處理器之L2快取記憶體322a內的複本及第三處理器之L2快取記憶體322c內的第二複本。在各種實施例中,此等L2快取記憶體332a及322c兩者可產生快取標籤命中。
在此實施例中,記憶體互連體106可面對與記憶體互連體106相比以延遲方式皆更接近於個別處理器302a及302c之兩個(或在一些例子中,兩個以上)快取層。在此實施例中,記憶體互連體106可選擇多個快取記憶體中之一者為用於快取注入的接收快取記憶體。在一實施例中,此選擇可基於一或多個預定義選擇準則(例如,最近使用之無效對有效處理器親和性偏好、循環方案、最低延遲等)。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
在各種實施例中,若未選擇之快取記憶體並非當前無效的,則其資料可為無效的。此可作為窺探處理程序
之部分而發生,如上文所述。應理解,以上內容僅為所揭示標的並不限於之一例示性實例。
圖4為根據所揭示標的的技術400之實例實施例的流程圖。在各種實施例中,技術400可藉由諸如圖1a、圖1b、圖2a、圖2b、圖3或圖5之系統的系統使用或產生。但,應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。應理解,所揭示標的不限於藉由技術400所例示之行動的排序或數目。
區塊402例示,在一實施例中,可接收在記憶體位址處在記憶體系統內寫入資料之請求,如上文所述。在一些實施例中,此請求可自經組配來執行直接記憶體存取之非中央處理器裝置接收,如上文所述。在一些實施例中,此請求可藉由記憶體互連體接收,如上文所述。在各種實施例中,該請求可能並不公然地指示資料將注入至快取層中,如上文所述。在各種實施例中,藉由此區塊所例示之(多個)行動中的一或多者可藉由圖1a、圖1b、圖2a、圖2b、圖3或圖5之設備、系統或組件,圖1a、圖1b、圖2a、圖2b或圖3之記憶體系統、記憶體互連體及/或I/O裝置執行,如上文所述。
區塊404例示,在一實施例中,可判定快取標籤命中是否藉由記憶體系統之快取層基於記憶體位址產生,該快取層與相干記憶體互連體相比以延遲方式更接近於中央處理器,如上文所述。在一些實施例中,判定可包括將窺探請求發送至快取層,及自快取層接收窺探回應,如上
文所述。在另一實施例中,判定可包括自與相干記憶體互連體相比各自以延遲方式更接近於個別中央處理器之多個快取層接收多個快取標籤命中,及自該等多個該等多個快取層選擇所選擇快取層,如上文所述。在又一實施例中,判定可包括使與快取標籤命中相關聯之快取列無效,如上文所述。在一些實施例中,判定可包括不管快取標籤命中與有效快取列抑或無效快取列相關聯,認為快取標籤命中得以產生,如上文所述。在各種實施例中,藉由此區塊所例示之(多個)行動中的一或多者可藉由圖1a、圖1b、圖2a、圖2b、圖3或圖5之設備、系統或組件,圖1a、圖1b、圖2a、圖2b或圖3之記憶體系統及/或記憶體互連體執行,如上文所述。
區塊406例示,在一實施例中,若藉由快取層產生了快取標籤命中,則將資料注入至快取層中,如上文所述。在各種實施例中,將資料注入至快取層中可包括,若快取層產生了快取標籤命中,則藉由僅將資料注入至快取層中而緩和快取記憶體污染,如上文所述。在多個快取層藉由快取命中回應之另一實施例中,注入可包括將資料注入至所選擇快取層中,如上文所述。在使與快取標籤命中相關聯之快取列無效之又一實施例中,注入可包括使快取層自相干記憶體互連體預先擷取資料,如上文所述。在各種實施例中,藉由此區塊所例示之(多個)行動中的一或多者可藉由圖1a、圖1b、圖2a、圖2b、圖3或圖5之設備、系統或組件,圖1a、圖1b、圖2a、圖2b或圖3之記憶體系統及/
或記憶體互連體執行,如上文所述。
區塊408例示,在一實施例中,若快取層並未產生快取標籤命中,則將資料注入至與相干記憶體互連體相比以延遲方式更遠離中央處理器的另外快取層中,如上文所述。在各種實施例中,藉由此區塊所例示之(多個)行動中的一或多者可藉由圖1a、圖1b、圖2a、圖2b、圖3或圖5之設備、系統或組件,圖1a、圖1b、圖2a、圖2b或圖3之記憶體系統及/或記憶體互連體執行,如上文所述。
圖5為可包括根據所揭示標的之原理形成之半導體裝置的資訊處理系統500之示意性方塊圖。
參看圖5,資訊處理系統500可包括根據所揭示標的之原理建構之裝置中的一或多者。在另一實施例中,資訊處理系統500可使用或執行根據所揭示標的之原理的一或多種技術。
在各種實施例中,資訊處理系統500可包括計算裝置,諸如膝上型電腦、桌上型電腦、工作站、伺服器、刀鋒型伺服器、個人數位助理、智慧型電話、平板電腦及其他適當之電腦等,或其虛擬機或虛擬計算裝置。在各種實施例中,資訊處理系統500可藉由使用者(未圖示)使用。
根據所揭示標的之資訊處理系統500可進一步包括中央處理單元(CPU)、邏輯或處理器510。在一些實施例中,處理器510可包括一或多個功能單元區塊(FUB)或組合邏輯區塊(CLB)515。在此實施例中,組合邏輯區塊可包括各種布林邏輯運算(例如,NAND、NOR、NOT、XOR等)、
穩定化邏輯裝置(例如,正反器、鎖存器等)、其他邏輯裝置,或其組合。此等組合邏輯運算可以簡單或複雜型式組配以處理輸入信號來達成所要結果。應理解,儘管同步組合邏輯運算之幾個例示性實例得以描述,但所揭示標的並未如此限制且可包括非同步運算,或其混合物。在一實施例中,組合邏輯運算可包含多個互補金氧半導體(CMOS)電晶體。在各種實施例中,此等CMOS電晶體可配置為執行邏輯運算之閘;但應理解,其他技術可得以使用且在所揭示標的之範疇內。
根據所揭示標的之資訊處理系統500可進一步包括依電性記憶體520(例如,隨機存取記憶體(RAM)等)。根據所揭示標的之資訊處理系統500可進一步包括非依電性記憶體530(例如,硬碟、光學記憶體、NAND或快閃記憶體,等)。在一些實施例中,依電性記憶體520、非依電性記憶體530,抑或其組合或多個部分可被稱為「儲存媒體」。在各種實施例中,依電性記憶體520及/或非依電性記憶體530可經組配來以半永久或實質上永久形式儲存資料。
在各種實施例中,資訊處理系統500可包括一或多個網路介面540,該一或多個網路介面540經組配來允許資訊處理系統500為通訊網路之部分且經由通訊網路來通訊。Wi-Fi協定之實例可包括(但不限於)電氣電子工程師學會(IEEE)802.11g、IEEE 802.11n等。蜂巢式協定之實例可包括(但不限於):IEEE 802.16m(又名進階無線MAN(都會區域網路))、進階長期演進(LTE)、增強型資料速率GSM(全球
行動通訊系統)演進(EDGE)、演進型高速封包存取(HSPA+)等。有線協定之實例可包括(但不限於)IEEE 802.3(又名乙太網路)、光纖通道、電力線通訊(例如,HomePlug、IEEE 1901等)等。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
根據所揭示標的之資訊處理系統500可進一步包括使用者介面單元550(例如,顯示器配接器、觸覺式介面、人類介面裝置等)。在各種實施例中,此使用者介面單元550可經組配來自使用者接收輸入及/或將輸出提供至使用者。其他種類之裝置亦可用以提供與使用者之互動;例如,提供至使用者之回饋可為任何形式之感覺回饋,例如,視覺回饋、聽覺回饋或觸覺回饋;且來自使用者之輸入可以任何形式接收,包括聲音、話音或觸覺輸入。
在各種實施例中,資訊處理系統500可包括一或多個其他裝置或硬體組件560(例如,顯示器或監視器、鍵盤、滑鼠、相機、指紋讀取器、視訊處理器等)。應理解,以上內容僅為所揭示標的並不限於之幾個例示性實例。
根據所揭示標的之資訊處理系統500可進一步包括一或多個系統匯流排505。在此實施例中,系統匯流排505可經組配來以通訊方式耦接處理器510、依電性記憶體520、非依電性記憶體530、網路介面540、使用者介面單元550,及一或多個硬體組件560。藉由處理器510所處理之資料或自非依電性記憶體530外部輸入的資料可儲存於非依電性記憶體530抑或依電性記憶體520中。
在各種實施例中,資訊處理系統500可包括或執行一或多個軟體組件570。在一些實施例中,軟體組件570可包括作業系統(OS)及/或應用程式。在一些實施例中,OS可經組配來將一或多個服務提供至應用程式,且管理該應用程式及資訊處理系統500之各種硬體組件(例如,處理器510、網路介面540等)或充當其間的中間者。在此實施例中,資訊處理系統500可包括一或多個原生應用程式,該一或多個原生應用程式可經局部地安裝(例如,在非依電性記憶體530等內)且經組配來藉由處理器510直接執行且直接與OS互動。在此實施例中,原生應用程式可包括預編譯機器可執行碼。在一些實施例中,原生應用程式可包括經組配來將原始或目標程式碼轉譯為接著藉由處理器510執行之可執行碼的指令碼解譯器(例如,C shell(csh)、AppleScript、AutoHotkey等)或虛擬執行機(VM)(例如,Java Virtual Machine、Microsoft Common Language Runtime等)。
上文所述之半導體裝置可使用各種封裝技術來囊封。舉例而言,根據所揭示標的之原理建構之半導體裝置可使用以下各者中的任一者來囊封:堆疊式封裝(POP)技術、球狀柵格陣列(BGA)技術、晶片級封裝(CSP)技術、塑膠引線晶片載體(PLCC)技術、塑膠雙列直插封裝(PDIP)技術、窩伏爾組件中晶粒技術、晶圓形式晶粒技術、板載晶片(COB)技術、陶瓷雙列直插封裝(CERDIP)技術、塑膠量度四方扁平封裝(PMQFP)技術、塑膠四方扁平封裝(PQFP)技術、小外形封裝(SOIC)技術、收縮式小外形封裝(SSOP)
技術、薄型小外形封裝(TSOP)技術、薄型四方扁平封裝(TQFP)技術、系統級封裝(SIP)技術、多晶片封裝(MCP)技術、晶圓級製造封裝(WFP)技術、晶圓級處理堆疊封裝(WSP)技術,或熟習此項技術者如將知曉的其他技術。
方法步驟可藉由一或多個可規劃處理器執行,該一或多個可規劃處理器藉由對輸入資料操作及產生輸出來執行電腦程式以執行功能。方法步驟亦可藉由專用邏輯電路執行且設備可實施為專用邏輯電路,該專用邏輯電路例如FPGA(場可規劃閘陣列)或ASIC(特定應用積體電路)。
在各種實施例中,電腦可讀媒體可包括指令,該等指令在被執行時使裝置執行方法步驟之至少一部分。在一些實施例中,電腦可讀媒體可包括於磁性媒體、光學媒體、其他媒體,或其組合(例如,CD-ROM、硬碟、唯讀記憶體、快閃驅動器等)中。在此實施例中,電腦可讀媒體可為有形及非暫時性地體現之製造物品。
儘管已參考實例實施例描述了所揭示標的之原理,但熟習此項技術者將顯而易見,在不脫離此等所揭示概念之精神及範疇的情況下,可對其進行各種改變及修改。因此,應理解,以上實施例並非限制性的,而僅為例示性的。因此,所揭示概念之範疇將藉由以下申請專利範圍及其等效物之最廣容許解譯來判定,且不應藉由前述描述來約束或限制。因此,應理解,所附申請專利範圍意欲涵蓋如屬於實施例之範疇的所有此等修改及改變。
Claims (20)
- 一種方法,其包含下列步驟:自經組配來執行一直接記憶體存取的一非中央處理器裝置接收一請求以在一記憶體系統內在一記憶體位址處寫入資料;基於該記憶體位址來判定一快取標籤命中是否藉由該記憶體系統之一快取層而被產生,該快取層與一相干記憶體互連體相比係以延遲方式更接近於一中央處理器;若該快取層產生了該快取標籤命中,則不論該快取層是否已經具體地被組配以用於快取注入,將該資料注入至該快取層中;並且其中將該資料注入至該快取層中包含致使該快取層從由該相干記憶體互連體所包括之一緩衝預先擷取該資料。
- 如請求項1之方法,其中該請求並不公然地指示該資料係要被注入至該快取層中。
- 如請求項1之方法,其進一步包含,若與一相干記憶體互連體相比係以延遲方式更接近於一中央處理器的該記憶體系統之該快取層並未產生該快取標籤命中,則將該資料注入至與該相干記憶體互連體相比係以延遲方式更遠離該中央處理器的一另外快取層中。
- 如請求項1之方法,其中將該資料注入至該快取層中之 步驟包含:若該快取層產生了該快取標籤命中,則藉由僅將該資料注入至該快取層中而緩和快取記憶體污染。
- 如請求項1之方法,其中判定一快取標籤命中是否藉由該記憶體系統之一快取層而被產生之步驟包含:自與該相干記憶體互連體相比係各自以延遲方式更接近於一各自的中央處理器之多個快取層接收多個快取標籤命中,及自該等多個快取層選擇一所選擇之快取層;且其中將該資料注入至該快取層中包含將該資料注入至該所選擇之快取層中。
- 如請求項1之方法,其中判定該快取標籤命中是否藉由該快取層而被產生之步驟,包含:將一窺探請求發送至該快取層,及自該快取層接收一窺探回應。
- 如請求項1之方法,其中判定一快取標籤命中是否藉由該記憶體系統之一快取層而被產生之步驟包含使得與該快取標籤命中相關聯之一快取列無效。
- 如請求項1之方法,其中判定該快取標籤命中是否被產生之步驟包含考量該快取標籤命中要被產生無關於一快取標籤命中係與一有效快取列抑或一無效快取列相關聯。
- 一種設備,其包含: 經組配來儲存資料的一高延遲記憶體,其中該高延遲記憶體與一記憶體互連體相比係以延遲方式更遠離一中央處理器;經組配來儲存資料的一低延遲記憶體,其中該低延遲記憶體與該記憶體互連體相比係以延遲方式更接近於一中央處理器;及該記憶體互連體,其經組配來:自經組配來執行一直接記憶體存取的一非中央處理器裝置接收一請求以在一記憶體位址處寫入資料,基於該記憶體位址,請求該低延遲記憶體向該記憶體互連體提供一快取標籤命中抑或一快取標籤未命中,及若該低延遲記憶體提供了一快取標籤命中,則不論該快取層是否已經具體地被組配以用於快取注入,將該資料注入至該低延遲記憶體中,其中將該資料注入至該低延遲記憶體中包含致使該低延遲記憶體從由該相干記憶體互連體所包括之一緩衝預先擷取該資料。
- 如請求項9之設備,其中該請求並不公然地指示該資料係要被注入至該低延遲記憶體中。
- 如請求項9之設備,其中該記憶體互連體係經組配來在該低延遲記憶體提供了一快取標籤未命中時,將該資料注入至該高延遲記憶體中。
- 如請求項9之設備,其中該記憶體互連體係經組配來在該低延遲記憶體產生了該快取標籤命中時,藉由僅將該資料注入至該低延遲記憶體中來最小化快取記憶體污染。
- 如請求項9之設備,其中該設備包含多個低延遲記憶體,且該等多個低延遲記憶體包含該低延遲記憶體;且其中該記憶體互連體係經組配來:自該等多個低延遲記憶體中之兩者或兩者以上接收快取標籤命中,自該等多個低延遲記憶體中產生了該等快取標籤命中之該兩者或兩者以上選擇一所選擇之低延遲記憶體,及將該資料僅注入至該所選擇之低延遲記憶體中。
- 如請求項9之設備,其中該記憶體互連體係經組配來將一窺探請求發送至該低延遲記憶體。
- 如請求項9之設備,其中低延遲記憶體係經組配來回應於針對該快取標籤命中之該請求,使得與該快取標籤命中相關聯之一快取列無效。
- 如請求項9之設備,其中該記憶體互連體係經組配來在該低延遲記憶體提供了一快取標籤命中時,不論該快取標籤命中與一有效快取列抑或一無效快取列相關聯,將該資料注入至該低延遲記憶體中。
- 一種系統,其包含:一處理器,其經組配來自一分層記憶體系統讀取資 料及將資料寫入至該分層記憶體系統;一非中央處理器裝置,其係經組配來對該分層記憶體系統執行一直接記憶體存取,並且請求將資料寫入至該分層記憶體系統;及該分層記憶體系統,其包含:經組配來儲存資料的一高延遲記憶體,其中該高延遲記憶體與一記憶體互連體相比係以延遲方式更遠離一中央處理器,經組配來儲存資料的一低延遲記憶體,其中該低延遲記憶體與該記憶體互連體相比係以延遲方式更接近於一中央處理器,及該記憶體互連體,其經組配來:回應於藉由該非中央處理器裝置之該請求而判定將資料寫入至該分層記憶體系統,至少部分地基於該資料,請求該低延遲記憶體向該記憶體互連體提供一快取標籤命中抑或一快取標籤未命中,及若該低延遲記憶體提供了一快取標籤命中,則不論該快取層是否已經具體地被組配以用於快取注入,將該資料注入至該低延遲記憶體中,其中將該資料注入至該低延遲記憶體中包含致使該低延遲記憶體從由該相干記憶體體所包括之一緩衝預先擷取該資料。
- 如請求項17之系統,其中該記憶體互連體係經組態來: 嘗試改善該低延遲記憶體中之快取記憶體污染,及若該低延遲記憶體提供了一快取標籤未命中,則將該資料注入至該高延遲記憶體中。
- 如請求項17之系統,其中該分層記憶體系統包含多個低延遲記憶體,且該等多個低延遲記憶體包含該低延遲記憶體;且其中該記憶體互連體經組配來:自該等多個低延遲記憶體中之兩者或兩者以上接收快取標籤命中,自該等多個低延遲記憶體中產生了該等快取標籤命中之該兩者或兩者以上選擇一所選擇之低延遲記憶體,及將該資料僅注入至該所選擇之低延遲記憶體中。
- 如請求項17之系統,其中該記憶體互連體係經組配來在來自低延遲記憶體之該快取標籤命中與一無效快取列相關聯時,將該資料注入至該低延遲記憶體中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461969077P | 2014-03-21 | 2014-03-21 | |
US61/969,077 | 2014-03-21 | ||
US14/642,654 US10216640B2 (en) | 2014-03-21 | 2015-03-09 | Opportunistic cache injection of data into lower latency levels of the cache hierarchy |
US14/642,654 | 2015-03-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201602784A TW201602784A (zh) | 2016-01-16 |
TWI650642B true TWI650642B (zh) | 2019-02-11 |
Family
ID=54142256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104109006A TWI650642B (zh) | 2014-03-21 | 2015-03-20 | 用於機會式快取注入資料至快取階層之較低延遲層級的方法、設備及系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10216640B2 (zh) |
JP (1) | JP6415366B2 (zh) |
KR (1) | KR102381454B1 (zh) |
TW (1) | TWI650642B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI795470B (zh) * | 2017-11-20 | 2023-03-11 | 南韓商三星電子股份有限公司 | 資料管理方法、多處理器系統和非暫態計算機可讀儲存媒體 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6636906B1 (en) * | 2000-04-28 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | Apparatus and method for ensuring forward progress in coherent I/O systems |
US20080307168A1 (en) * | 2007-06-05 | 2008-12-11 | Lilly Brian P | Latency Reduction for Cache Coherent Bus-Based Cache |
US20100070712A1 (en) * | 2008-09-18 | 2010-03-18 | International Business Machines Corporation | Techniques for Cache Injection in a Processor System with Replacement Policy Position Modification |
TW201342062A (zh) * | 2012-01-16 | 2013-10-16 | Qualcomm Inc | 混合直寫式/回寫式快取策略管理器及相關系統及方法 |
TW201351146A (zh) * | 2009-07-10 | 2013-12-16 | Via Tech Inc | 微處理器、快取資料的方法及電腦程式產品 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04130551A (ja) | 1990-09-20 | 1992-05-01 | Fujitsu Ltd | キャッシュ制御方法 |
US5802576A (en) * | 1996-07-01 | 1998-09-01 | Sun Microsystems, Inc. | Speculative cache snoop during DMA line update |
US5893153A (en) | 1996-08-02 | 1999-04-06 | Sun Microsystems, Inc. | Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control |
US6546462B1 (en) | 1999-12-30 | 2003-04-08 | Intel Corporation | CLFLUSH micro-architectural implementation method and system |
JP4114915B2 (ja) | 2002-05-24 | 2008-07-09 | 株式会社ルネサステクノロジ | データ処理装置及びデータ処理システム |
US7325108B2 (en) | 2005-03-15 | 2008-01-29 | International Business Machines Corporation | Method and system for page-out and page-in of stale objects in memory |
TWI310501B (en) * | 2005-10-06 | 2009-06-01 | Via Tech Inc | Bus controller and data buffer allocation method |
US8078803B2 (en) | 2008-01-30 | 2011-12-13 | Qualcomm Incorporated | Apparatus and methods to reduce castouts in a multi-level cache hierarchy |
US8127079B2 (en) | 2009-01-16 | 2012-02-28 | International Business Machines Corporation | Intelligent cache injection |
US8554967B2 (en) | 2009-06-16 | 2013-10-08 | Freescale Semiconductor, Inc. | Flow control mechanisms for avoidance of retries and/or deadlocks in an interconnect |
US8364899B2 (en) | 2010-06-24 | 2013-01-29 | International Business Machines Corporation | User-controlled targeted cache purge |
US9176885B2 (en) | 2012-01-23 | 2015-11-03 | International Business Machines Corporation | Combined cache inject and lock operation |
-
2015
- 2015-03-09 US US14/642,654 patent/US10216640B2/en active Active
- 2015-03-20 KR KR1020150039035A patent/KR102381454B1/ko active IP Right Grant
- 2015-03-20 TW TW104109006A patent/TWI650642B/zh active
- 2015-03-23 JP JP2015060001A patent/JP6415366B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6636906B1 (en) * | 2000-04-28 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | Apparatus and method for ensuring forward progress in coherent I/O systems |
US20080307168A1 (en) * | 2007-06-05 | 2008-12-11 | Lilly Brian P | Latency Reduction for Cache Coherent Bus-Based Cache |
US20100070712A1 (en) * | 2008-09-18 | 2010-03-18 | International Business Machines Corporation | Techniques for Cache Injection in a Processor System with Replacement Policy Position Modification |
TW201351146A (zh) * | 2009-07-10 | 2013-12-16 | Via Tech Inc | 微處理器、快取資料的方法及電腦程式產品 |
TW201342062A (zh) * | 2012-01-16 | 2013-10-16 | Qualcomm Inc | 混合直寫式/回寫式快取策略管理器及相關系統及方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6415366B2 (ja) | 2018-10-31 |
JP2015185170A (ja) | 2015-10-22 |
KR20150110401A (ko) | 2015-10-02 |
US10216640B2 (en) | 2019-02-26 |
KR102381454B1 (ko) | 2022-03-31 |
TW201602784A (zh) | 2016-01-16 |
US20150269084A1 (en) | 2015-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11966581B2 (en) | Data management scheme in virtualized hyperscale environments | |
US10423541B1 (en) | Using encryption within a computing system | |
US9471532B2 (en) | Remote core operations in a multi-core computer | |
CN107408079B (zh) | 带有一致单元的多级别系统存储器的存储器控制器 | |
US20160147667A1 (en) | Address translation in memory | |
TWI492055B (zh) | 具資料擱置狀態之系統快取記憶體及最佳化系統快取記憶體之方法 | |
US9355034B2 (en) | Removal and optimization of coherence acknowledgement responses in an interconnect | |
KR102513446B1 (ko) | 집적된 컨펌 대기열 회로를 포함하는 장치 및 그것의 동작 방법 | |
US9569361B2 (en) | Pre-fetch chaining | |
US10963388B2 (en) | Prefetching in a lower level exclusive cache hierarchy | |
TWI650642B (zh) | 用於機會式快取注入資料至快取階層之較低延遲層級的方法、設備及系統 | |
TWI743400B (zh) | 用以避免負載填充衝突的設備以及系統 | |
CN104932989B (zh) | 数据到高速缓冲层次低延迟层级中的机会性高速缓冲注入 | |
US11055221B2 (en) | Speculative DRAM read, in parallel with cache level search, leveraging interconnect directory | |
US20230315293A1 (en) | Data management scheme in virtualized hyperscale environments | |
TW202349214A (zh) | 輸入/輸出裝置的位址變換預取出 |