TWI285810B - Method, apparatus, and system for partitioning a shared cache of a chip multi-processor, and computer-readable recording medium having stored thereon related instructions - Google Patents
Method, apparatus, and system for partitioning a shared cache of a chip multi-processor, and computer-readable recording medium having stored thereon related instructions Download PDFInfo
- Publication number
- TWI285810B TWI285810B TW094121498A TW94121498A TWI285810B TW I285810 B TWI285810 B TW I285810B TW 094121498 A TW094121498 A TW 094121498A TW 94121498 A TW94121498 A TW 94121498A TW I285810 B TWI285810 B TW I285810B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- block
- cache memory
- processor
- request
- 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
-
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
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)
Description
1285810 * (1) . 九、發明說明 【發明所屬之技術領域】 本發明之一實施例整體而言係關於積體電路及電腦系 統設計之領域。詳言之,本發明之一或多個實施例係關於 分割一晶片多處理器之分享快取記憶體。 【先前技術】 • 晶片多處理器(CMP)係在相同晶粒上包含數個處理器 。在一分享快取記憶體CMP中,該快取記億體的某些層 級係共享的且可以由晶片上之某些或全部的處理器所存取 。通常,此共享係有利的,因爲該等處理器係執行一多線 程(multi-thread)軟體應用程式,其中該等線程係分享資料 及指令。藉由分享該快取記憶體,由一個以上的處理器所 存取之一資料字元便可以佔據在該快取記憶體中之一單一 位址。再者,任何處理器可以視需要來使用所有的快取記 ® 憶體’且可被其他的處理器所允許。分享該快取記憶體之 ϋ險在於若該等處理器集體請求超出可用容量的容量時, 貝!J可能會遭受到比具有較小的專用快取記億體還要多的總 快取記憶體未命中。 在一集結合式快取記憶體中,在該快取記憶體中所請 求資料的快取記億體未命中係需要將一區塊(在此稱之爲” 區域”)從該快取記憶體逐出,以產生供所請求之區塊 % @間。該集結合式快取記憶體之存取係依照快取請求之 ~索引來執行,該索引係用以選擇在該快取記憶體中之一 -5- 1285810 . (2) • 集合。一旦該集合被選定,該快取請求之一標籤値係用以 辨識在該包含有所請求快取記憶體區塊之所選定集合的一 向。當相較於該快取請求之標籤値無法確認在選定集合中 之一對應向時,便會偵測到一快取記億體未命中。在一分 享快取記憶體中,相應於一快取記憶體未命中,取決於分 享該快取記憶體之處理器的數量來選擇欲逐出之犧牲區塊 係會變得相當麻煩。 【發明內容及實施方式】 以下將說明用以分割一晶片多處理器(CMP)之分享快 取記憶體的方法及裝置。在一實施例中,該方法包括依照 從一處理器所接收到之請求,在一分享快取記憶體中被偵 測到一快取記憶體未命中的情況下,從系統記憶體發出一 快取記憶體區域之請求。一旦請求該快取記憶體區塊,則 依照一處理器ID及所接收到之請求的請求類型,在該分 • 享快取記憶體中選出一犧牲區塊。在一實施例中,依照一 處理器ID及請求類型之犧牲區塊的選擇係根據一集結合 式分享快取記憶體之分割,以限制根據該快取記憶體分割 而從一可用快取記憶體向之子集合的犧牲區塊的選擇。在 一實施例中,可由任一取代演算法所使用的快取記憶體向 的子集合對於不同類型的記憶體請求可能係不同的,例如 ,命令及預提取請求。 在以下的說明中,某些術語係用以說明本發明之特徵 。例如,術語”邏輯”係表示被組態成可執行一或多個功 -6- 1285810 • (3) β 能之硬體及/或軟體。舉例來說,,,硬體”之實例包括( 但不限於)一積體電路、一有限態機器或甚至係組合邏輯 。該積體電路可採用一處理器的型式,諸如微處理器、應 用導向的積體電路、一數位信號處理器、一微控制器等等 〇 “軟體”之一實例包括應用程式型式的可執行碼、 小型應用程式、常式或甚至係一系列的指令。在一實施例 • 中,一製造物品可包括一機器或電腦可讀取媒體,其具有 儲存於其上之軟體,該軟體可用以程式化一電腦(其其他 電子裝置),以依照一實施例來執行一程序。該電腦或機 器可讀取媒體包括(但不限於):一可程式電子電路、 一半導體記憶體裝置(包括易失性記憶體(例如,隨機存 取記憶體等等)及/或非易失性記憶體(例如,任何類型 的唯讀記憶體” ROM ”,快閃記憶體))、軟磁片、光 磁(例如,CD光碟或數位影音光碟)、一硬碟、磁帶等 ❿等。 系統 圖1係一方塊圖,其中顯示一依照本發明之一實施例 之晶片多處理器(CMP)IOO,其包括一分享快取記憶體150 ,該分享快取記憶體具有用以分割該分享快取記憶體之快 取記憶體分割邏輯200,以限制從可用快取記憶體向之一 子集合來選擇一犧牲區塊。代表性地,該CMP 100包含複 數個處理器核心1 10(1 10-1、…、1 10-N),其被形成在相同 1285810 • (4) • 晶粒上。如圖所示,該處理器核心(CPU)l 10係被耦接至 互連網路1 3 0以存取該分享快取記憶體1 5 0。在一實施例 中,每一 CPU 1 1 0包括一專用核心快取記憶體層級1 1 2, 其可用以暫時儲存或資料的高速緩衝儲存。 在一實施例中,CPU 1 10經由被耦接至互連網路130 之系統記憶體互連部192存取系統記憶體190。在一實施 例中,系統記憶體1 90可包括(但不限於)一雙側邊記憶體 φ 封裝,其包括由隨機存取記憶體(RAM)、動態 RAM(DRAM)、靜態 RAM(SRAM)、同步 DRAM(SDRAM)、 雙資料速率(DDR)SDRAM(DDR-SDRAM) 、 Rambus DRAM(RDRAM)或可以支援在每一記億體模組中之資料的 高速緩衝之記憶體模組。 代表性地,分享快取記憶體150係由CMP 100之 CPU 110所分享。通常,此分享係具有優點的,因爲cpu 1 1 〇係執行一多線程軟體應用程式,其中該線程分享資料 • 及指令,藉此降低儲存條件,以及允許一單一 CPU 1 1 0依 照程式條件來存取該整個分享快取記憶體。不幸地,分享; 快取記憶體150之風險在於,若CPU 1 10集體地需要比可 從分享快取記憶體150取得之容量時,該等CPU 1 10可能 會遭受到比若其具有較小之專用快取記憶體還要多的總快 取記憶體未命中。 因此’在一實施例中,分享快取記憶體1 5 〇係藉由限 制何等處理窃可被指疋至哪一'個向來予以分割。在—實施 例中,該分享快取記憶體1 50係一集結合式快取記憶體, -8 - 1285810 • (5) - 其可依照一可在分享快取記憶體1 50中確認一集合之記億 體請求的快取記憶體索引來予以存取。根據該快取記憶體 索引,該請求之一標籤値係用以在被選出之集合中確認一 向,其中在該集合中包含一被請求之資料區塊。然而,若 被請求之資料區塊並未被包含在該集合中(“快取記憶體未 命中”),則從該分享快取記憶體1 50中選出一用以被逐出 之資料區塊(在本文中稱之爲”犧牲區塊”),以挪出供被請 φ 求之區塊所用的空間。 在一實施例中,每一 CPU 110被允許接觸(使用)該分 享快取記憶體150之任何或所有向之資料,不論該CPU 是否一開始便將該資料實際帶入該快取記憶體。然而,在 一實施例中,當一快取記憶體控制器(未圖示)偵測到一快 取記憶體未命中且必須將一犧牲區塊從該分享快取記憶體 1 5 0逐出以挪出供被請求區塊使用之空間時,快取記憶體 分割邏輯200會依照接收到該記憶體請求之該CPU 110來 • 限制從可用之快取記憶體向之一子集合來選擇該犧牲區塊 。在一實施例中,如圖2所示,快取記憶體分割邏輯200 係在該分享快取記憶體1 50之快取記憶體控制器中被實現 〇 如圖2所示,在一實施例中,快取記億體分割邏輯包 括取代邏輯220及候選邏輯230,該取代邏輯係與快取記 憶體控制器2 1 0配合使用,且該候選邏輯係用以限制依照 分享快取記億體1 50之一分割而從可用的快取記憶體向之 一子集合中選擇一犧牲區塊。在一實施例中,可由取代邏 1285810 • (6) _ 輯220所使用之快取記憶體向之子集合係對於不同類型的 記憶體請求而改變,例如命令及預提取請求。代表性地, 分享快取記憶體150可包括M-向(W1 152-1、W2 152-2、 …、WM 15 2-M)。因此,當一 CPU 1 10在一各別之專用核 心快取記憶體1 1 2偵測到一快取記憶體未命中時,該CPU 1 1 〇可傳送一快取記憶體請求至該分享快取記憶體〗5 〇之 快取記憶體控制器2 1 0。 # 在一實施例中,與快取記憶體請求有關之索引値204 係被提供給譯碼器1 6 0,以確認在該分享快取記憶體1 5 〇 中之一集合。一旦該集合被確認,一與該快取記憶體請求 有關之標籤値202便與該分享快取記憶體〗50之…向 1 5 2( 1 52- 1、…、152-M)相比較,以確認一包含有被請求之 快取記憶體區塊的向。然而,若偵測到一快取記憶體未命 中,則在一實施例中,候選犧牲區塊邏輯230及取代邏輯 220會限制該快取記憶體控制器210在由索引値204所確 # 認之集合中來選取一犧牲區塊。 代表性地,N-處理器(CPU 1 10-1、···、1 10-N)分享該 分享快取記憶體1 5 0之M-向1 5 2。在一實施例中,快取記 憶體分割邏輯200可依照由N-CPU 110及該等CPU 110 所發出之記憶體請求之T種類來分割該分享快取記憶體 150。在一實施例中,N倍T M-位元暫存器(向暫存器)被 標示爲D[i][j](其中i位在[0...N-1]之範圍內且j位在 [0..T-1]之範圍內)。在一實施例中,在一向暫存器中之每 一位元(標示爲d[i][j][b],其中b位在[0..M-1]之範圍內) -10- 1285810 ^ (7) • 係指示是否((〗)或(〇))可對於一 j類型之快取記憶體請求之 快取記憶體未命中來指定一 C P U i至向b。 在一實施例中,變數” i”係指發出該快取記憶體請求之 CPU的處理器識別碼。如本文所述,處理器識別碼係被定 義爲表示任何信號、資料順序或其他機制,藉以將CMP 1〇〇之一處理器與其他的的處理器加以區別。在一實施例 ’一硬體識別碼被指定至每一處理器或CMP 100之CPU φ 1 10,以作爲處理器識別碼(CPU_ID)。在另一實施例中, 該處理器識別碼或CPU_ID係一序列號碼,或者係其他的 數値裝置識別裝置,以區別出CMP 100中的各別處理器。 如本文所述,術語”處理器識別碼”係替代性地表示爲 一請求器識別碼,當該請求器係CMP 100之一處理器時, 其係等同於一處理器識別碼。然而,習於此技者應可瞭解 ,本文中所述之快取記憶體分割架構並未侷限於由處理器 所發出之快取記憶體請求,其亦可包括由CMP 1 00之其他 # 裝置所發出之快取記憶體請求,諸如一記憶體控制器發出 快取記憶體請求至該分享快取記憶體1 5 0,這亦落在申請 專利範圍之標的物的範圍內。 在一實施例中,提供有向暫存器之實現方式,如將參 考圖3所說明者。代表性地,一查看表(d)240係依照一處 理器識別碼(CPU_ID)206及一請求種類(REQ_TYPE)208。 根據此兩數値,查看表240會確認一識別一向暫存器250 之位址242,在本文中亦稱之爲一”M-位元遮罩”。在一實 施例中,該M-位元遮罩係直接對應至該分享快取記憶體 -11 - 1285810 * (8) • 150 之每一 Μ-向 152。 因此,在一實施例中,再次參考圖2,該向暫存器 25 0被提供給邏輯閘1 70( 1 70- 1、...、170-Μ),其從該分享 快取記憶體150接收有效性位元1 54( 1 54- 1、…、154-Μ) 。一旦被提供,取代邏輯220可依照Μ-位元遮罩250之 對應的位元25 2(252“、…、252-Μ)而在快取記憶體索引 値2 04處選取一犧牲區塊。因此,當一 CPU i未命中在一 φ 位址a處之專用核心快取記憶體112時,CPU 11 Ο-i會傳 送一區塊請求至該分享快取記憶體150。在一實施例中, 分享快取記憶體控制器2 1 0會檢查區塊a是否存在於該分 享快取記憶體1 5 0。 若存在區塊a,則該分享快取記億體會將區塊a返回 至處理器i。然而,若區塊不存在,則分享快取記憶體將 對系統記憶體1 90發出區塊a的請求。在一實施例中,快 取記億體控制器2 1 0需要在快取記憶體索引値204逐出該 # 等M-1區塊中之一區塊,以挪出供所請求之區塊a使用的 空間。在一實施例中,犧牲區塊之選擇係藉由分享快取記 憶體150之快取記憶體分割邏輯200的取代邏輯220來執 在一實施例中,取代邏輯係對於CPU 1 10_i之一 k類 型之記憶體請求而藉由使用該向暫存器25 0(d[i][k])來選 擇出該犧牲區塊。若在暫存器(d[i][k])中之位元b係被設 定爲(d[i][k][b] = l),則向b係一逐出候選者。在一實施例 中,當在暫存器d[i][k]中具有多個位元被設定時,則對於 -12- 1285810 * (9) , 被逐出之犧牲區塊會有多個選擇。在一實施例中,當具有 多個候選犧牲區塊時,取代邏輯220便會選擇至少最近最 不被使用的逐出向。以下將提供用於實現上述該等實施例 之其中一實施例的程序方法。 操作 圖4係一流程圖,其中闡述依照一實施例用以從一已 φ 分割之分享快取記憶體(例如,如圖2所示者)選擇一犧牲 區塊之方法300。在程序方塊326中,其係判斷是否在一 分享快取記憶體中偵測到一快取記憶體未命中。若未偵測 到一快取記憶體未命中(“快取記憶體選中”),則在程序方 塊328中,一所請求之區塊便提供給一請求者,諸如一晶 片多處理器(CMP)之一處理器核心或CPU。否則,在程序 方塊3 3 0中,便依照一已接收到的請求來對於所請求的區 塊發出一請求給系統記憶體。 • 在一實施例中,在程序方塊340處,依照所接收到之 請求的請求者ID以及請求類型,從該分享快取記憶體中 選出用於逐出之犧牲區塊。.在一實施例中,犧牲區塊之選 擇係藉由取代邏輯220來選擇,如圖2所示。在程序方塊 3 60中,舉例來說,藉由一快取記億體控制器而從該分享 快取記憶體逐出該選出的犧牲區塊。在程序方塊370中, 所請求的快取記憶體區塊被提供給該請求者。在程序方塊 3 8 0中,所請求的快取記憶體區塊被儲存在該分享快取記 憶體中該犧牲區塊被逐出的一部分中。 -13- 1285810 - (10) ' 圖5係一流程圖,其中顯示依照一實施例用於分割一 分享快取記憶體以限制犧牲區塊之選擇的方法3 1 0。在程 序方塊312中,諸如一 CMP之一 CPU的請求者係從分享 一快取記憶體之複數個請求者中被選出。在程序方塊3 1 4 中,一記憶體請求類型係對於被選擇的請求器來予以選擇 。一旦被選取,在程序方塊3 1 6中,該分享快取記憶體之 M-向之一或多個便會對於被選取之記憶體請求類型來予以 φ 配置。在一實施例中,該記憶體請求類型可包括(但不限 於)載入請求、儲存請求、資料預選取、資料推測、命令 請求等等。 在一實施例中,在程序方塊3 1 8中,依照程序方塊 316之已被配置向來產生一 Μ ·位元遮罩。例如,如圖3所 示,該Μ-位元遮罩或向暫存器250係包括一位元域,其 對應於在該分享快取記億體150中之每一向。因此,當在 一由快取記憶體索引値204所指示之集合中選出一逐出的 φ 犧牲區塊時,在該Μ-位元向遮罩250中的每一集合位元 會確認一潛在的犧牲區塊,其將被逐出以挪出供所請求之 資料區塊使用的空間。 一旦該Μ-位元向遮罩或向暫存器被產生時’在程序 方塊320中,依照所選出之請求者的請求者識別碼(例如 ,CPU_ID)及請求類型來產生一入口欄,以確認該位元 向遮罩。在一實施例中,形成有一諸如圖3所示之表格’ 該表格係依照一 CPU_ID 206及一 REQ_TYPE而被編索引 。在程序方塊3 2 2中,程序方塊3 1 4 - 3 2 0係對於每一記億 -14- 1285810 • (11) ' 體請求類型來重複進行。在程序方塊324中,程序方塊 3 12-322係對於每一請求者(諸如分享一分享快取記憶體之 晶片多處理器之每一處理器核心)來重複進行。 圖6係一依照如圖3所示之一實施例之流程圖,其中 顯示用以相應於在一分享快取記憶體中之一請求區塊之快 取記憶體未命中而從一分享快取記憶體中選出一犧牲區塊 的方法3 5 0。在程序方塊3 5 2中,依照一請求者及一請求 • 類型來查詢一表,以確認一 M-位元向遮罩,其可以在一 暫存器或其他資料儲存裝置中來實現。在程序方塊354中 ’依照所接收到的請求之快取記憶體索引來存取該分享快 取記憶體之一集合,例如,如圖2所示。在程序方塊3 5 6 中,依照該M·位元向遮罩之至少一集合位元而確認甩於 該集合之至少一犧牲區塊。 換言之,如上所述,在M-位元向遮罩中之每一集合 位元會在由所接收到之請求之一索引所指示之分享快取記 # 憶體之一集合中確認一候選犧牲區塊。在一實施例中,當 從邏輯230所接收到之一 M-位元遮罩250包括多個集合 位元時,圖2之取代邏輯220將會選擇出至少一最近最不 被使用的向1 5 2。如本文所述,各種不同的信號可以代表 主動高或主動低信號。因此,如本文所述,術語,,確立”、 ”正確立,’、”已確立”、,,設定”、,,正設定,,、”未確立”、,,未 被確立”、”正消除確立,,或類似用語可指稱主動低或者主 動高信號的資料信號。因此,此等術語當與信號有關時, 係可互換使用,以要求或指示主動低或主動高信號。 -15- 1285810 • (12) • 雖然上述實施例之一或多者已參考一晶片多處理器之 分享快取記憶體來予以說明,·然而習於此技者應瞭解,在 此所述之實施例可提供給其他的系統結構,其中一快取記 憶體係由一或多個處理器所分享。再者,依照記憶體請求 或處理器ID之快取記憶體的分割係被提供作爲一用以實 現上述實施例的實例。然而,用以限制一犧牲區塊之選擇 之一分享快取記憶體之額外的分割架構亦可行,且仍落在 φ 上述實施例的範圍內。 圖7係一方塊圖,其中顯示利用所揭示之技術來模擬 、模仿及製造一設計之各種表示方式或格式。代表一設計 之資料可代表各種方式的設計。首先,當使用在模擬時, 該硬體可利用硬體描述語言或者其他功能性描述語言來予 以表示,該語言基本上提供已設計之硬體被預期如何執行 之電腦化模型。該硬體模型410可被儲存在一儲存媒體 4 00中,諸如電腦記憶體,使得該模型可利用模擬軟體 # 420來予以模擬,該軟體係供應一特殊的測試組套43 0至 該硬體模型,以判斷其是否符何所要的功能。在某些實施 例中,該模擬軟體並未被記錄、捕捉或包含在該媒體中。 在設計之任何表示型式中,資料可被儲存在任何形式 的機器可讀取媒體中。一光學或電波460被調變或者產生 以輸送此資訊,一記憶體450或一磁性或光學儲存器440 ,諸如一碟片,可以作爲該機器可讀取媒體。任何這些媒 體可以攜帶該設計資訊。所用之術語”攜帶”(例如,攜帶 資訊之機器可讀取媒體)因此涵蓋被儲存在一儲存裝置之 -16- (13) 1285810 資訊或被編碼或調變至一載波中(或上)之資訊◊描述該設 計或該設計之一特例的位元集合係(當以一機器可讀取媒 體來具體實施時,諸如一載波或儲存媒體)一物件,該物 件可被密封於本身內或外,其者由用以進一步設計或製造 的其他者所使用。 替代性實施例 φ 就其他實施例而言,應瞭解亦可以使用不同的系統結 構。舉例來說,雖然系統1 00係包括一晶片多處理器,然 而包括至少一 CPU之電腦系統亦可從各個實施例之快取 記憶體分割及犧牲區塊選擇架構中獲得益處。再者,不同 類型的系統或不周類型的電腦系統,諸如一伺服器、一工 作站、一桌上型電腦系統、一遊戲系統、一嵌入式電腦系 統、一刀鋒伺服器等等,亦可用於其他實施例。 以上已揭示實施例及最佳模式,然而對所揭示之實施 Φ 例仍可以具有修飾及變化,同時仍保持在後附申請專利範 圍所界定之本發明實施例的範疇內。 【圖式簡單說明】 本發明之各個貫施例係在附圖中以7K例性方式來加以 闡述,其中: 圖1係一方塊圖,其中顯示一晶片多處理器(CMP), 其包括一依照一實施例之控制器以提供一分享快取記憶體 之分割。 -17- 1285810 • (14) • 圖2係一方塊圖,其進一步闡述圖1之分享快取記憶 體及控制器,以依照一實施例來提供該分享快取記憶體之 快取記憶體分割。 圖3係一方塊圖,其進一步闡述依照一實施例之圖2 的候選犧牲區塊邏輯。 圖4係一流程圖,其中闡述依照一實施例在一分享快 取記憶體中依照該分享快取記憶體之分割來選擇一犧牲區 _ 塊之方法。 圖5係一流程圖,其中闡述依照一實施例用以分割一 晶片多處理器(CMP)之分享快取記億體的方法。 圖6係一流程圖,其中闡述依照一實施例以根據該分 享快取記憶體之一快取記憶體分割架構來選擇一犧牲區塊 的方法。 圖7係一方塊圖,其中闡述使用本發明所揭示之技術 用於模仿、模擬及製造一設計之各種不同設計表示方式或 _ 格式。 【主要元件符號說明】 100 晶 片 多 處 理 器 110 處 理 器 核 心 1 12 專 用 核 心 快 取記億體階級 130 互 連 網 路 150 分 享 快 取 記 憶體 152 向 -18- (15) 1285810
154 有 效 性位 元 160 譯 碼 器 170 邏 輯 閘 190 系 統 記 憶 體 192 系 統 記 憶 體 互 連 部 200 快 取 記 憶 體 分 割 邏輯 202 標 籤 値 204 索 引 値 206 處 理 器 =dii m 別 碼 208 請 求 類 型 2 10 快 取 記 憶 體 控 制 器 220 取 代 邏 輯 230 候 公BB m 邏 輯 240 查 看 表 242 位 址 250 向 暫 存 器 252 位 元 3 00 - 3 80方 法 步 驟 400 儲 存 媒 體 410 硬 體 模 型 420 模 擬 軟 體 430 測 試 組 套 440 儲 存 器 450 記 憶 體 (16) 1285810 460 光學或電波
-20
Claims (1)
- 考二月曰修(束替換貝 J285810煩請委員明示年月曰 所提之修正本有無超出原説明書 (1^圖式所揭露之範圍 十、申請專利範面 附件4 A : 第9 4 1 2 1 4 9 8號專利申請案 中文申請專利範圍替換本 民國96年4月4日修正 1 . 一種用以分割晶片多處理器的分享快取記憶體之方 法,包含:當依照從一處理器所接收到之請求而偵測到在一分享 快取記憶體中之一快取記憶體未命中,則從系統記憶體請 求一被請求之快取記億體區塊;及 依照一處理器識別碼及所接收請求之請求類型而自該 分享快取記憶體選擇一逐出之犧牲區塊。 2 ·如申請專利範圍第1項之方法,其進一步包含: 從該分享快取記憶體逐出被選擇的犧牲區塊; 提供所請求之快取記憶體區塊至該處理器;及 將所請求之快取記憶體區塊儲存在該分享快取記憶體 之一部分中’其中該部分係該犧牲區塊被逐出之部分。 3 ·如申請專利範圍第1項之方法,其中在請求一被請 求之快取記憶體區塊之前,該方法進一步包含·· (a) 依照N個處理器及T個記憶體請求類型來分割一 M-向集結合式分享快取記憶體;及 (b) 依照步驟(a)之分割將犧牲區塊之處理器選擇限制 在該M -向集結合式分享快取記憶體之可用向之一子集合J285810 • (2) 4.如申請專利範圍第3項之方法,其中限制處理器選 擇犧牲區塊包含: (a) 選擇一處理器; (b) 對於被選擇之處理器來選擇一記憶體請求類型; (c) 將一個或多個M-向分享快取記憶體配置至被選擇 之記憶體請求類型; (d) 依照步驟(c)所配置之向來產生一 Μ-位元遮罩;(e) 依照所選擇之處理器之處理器ID以及請求類型而 在一表中產生一入口欄,以確認該M-位元遮罩; (f) 對於每一個之T個記憶體請求類型重複步驟(b)-(e) :及 (g)對於每一個之N個處理器來重複步驟(a)-(f)。 5 ·如申請專利範圍第1項之方法,其中該選擇進一步 包含: 依照處理器識別碼及請求類型來查詢一表,以確認一 φ M-位元向遮罩; 依照所接收到之請求之快取記憶體索引來存取一組分 享快取記憶體; 依照該M-位元向遮罩之至少一組位元而從該組中確 認至少一犧牲區塊;及 逐出該被確認的犧牲區塊。 6. —種儲存有執行分享快取記憶體之分割的指令之電 腦可讀取的記錄媒體,該等指令可用以程式化一系統來執 行一方法,該方法包含: -2- 1285810 (3)享請 分體 一 憶 在記 到統 測系 偵從 當δις 而, 求中 請命 之未 到體 收憶 接記 所取 器快 理一 處之 1 中 從體 照憶 依記 取 快 求一被請求之快取記憶體區塊;及 依照一處理器識別碼及所接收請求之請求類型來自該 分享快取記憶體選擇一逐出之犧牲區塊。 7.如申請專利範圍第6項之電腦可讀取的記錄媒體, 其進一步包含: 從該分享快取記憶體逐出被選擇的犧牲區塊; 提供所請求之快取記憶體區塊至該處理器;及 將所請求之快取記億體區塊儲存在該分享快取記憶體 之一部分中,其中該部分係該犧牲區塊被逐出之部分。 8 ·如申請專利範圍第6項之電腦可讀取的記錄媒體, 其中在請求一被請求之快取記憶體區塊之前,該方法進一 步包含: (a) 依照N個處理器及T個記憶體請求類型來分割一 向集結合式分享快取記憶體;及 (b) 依照(a)步驟之分割將犧牲區塊之處理器選擇限制 #該M-向集結合式分享快取記憶體之可用向之一子集合 9·如申請專利範圍第6項之電腦可讀取的記錄媒體 其中限制處理器選擇犧牲區塊包含: (a) 選擇一處理器; (b) 對於被選擇之處理器來選擇一記憶體請求類型; (c〇將分享快取記憶體之M-向之一或多個配置給被選 (4) (4) 1285810 9a 4·η丨柳: 定之記憶體請求類型; (d) 依照步驟(c)所配置之向來產生一 Μ-位元遮罩; (e) 依照所選擇之處理器之處理器ID以及請求類 在一表中產生一入口欄,以確認該Μ-位元遮罩; (f) 對於每一個Τ個記憶體請求類型重複步驟(b)-(e); 及 (g) 對於每一個N個處理器來重複步驟(a)-(f)。1 0 ·如申請專利範圍第6項之電腦可讀取的記錄媒體 ’其中該選擇進一步包含: 依照處理器識別碼及請求類型來查詢一表,以確認一 M-位元向遮罩; 依照所接收到之請求之快取記憶體索引來存取該分享 快取記憶體之一集合; 依照該M-位元向遮罩之至少一組位元而確認該組中 之至少一犧牲區塊;及逐出該被確認的犧牲區塊。 1 1 . 一種用於分割晶片多處理器的分享快取記億體之 方法,包含: 依照一所接收之請求以檢查一分享快取記憶體,以判 斷一被請求之快取記憶體區塊是否儲存於其中;及 當偵測到該所請求之快取記憶體之一快取記億體未命 中,則依照所接收到之請求之一請求者識別碼及一請求類 型而從該分享快取記憶體逐出一被選擇的犧牲區塊。 1 2 .如申請專利範圍第Π項之方法’其中在檢查該分 -4 - 1285810 Ίν 一二 Αώ—-----•….··-·· ..-. ;- Μ. L ..--.. .‘” *'λ. "* 、.. (5) 一 .…X…—一 ' 享快取記憶體之前,該方法進一步包含: (a) 選擇一請求者; (b) 對於所選擇之請求者來選擇一記憶體請求類型; (c) 將分享快取記憶體之M-向之一或多個配置給被 選定之記憶體請求類型; (d) 依照步驟(Ο所配置之向來產生一 M-位元遮罩; (e) 依照所選擇之處理器之處理器ID以及請求類型而 φ 在一表中產生一入口欄,以確認該M-位元遮罩; (f) 對於每一個T個記憶體請求類型重複步驟(b)-(e); 及 (g) 對於每一個N個處理器重複步驟(a)-(f)。 13·如申請專利範圍第1 1項之方法,其中逐出該被選 擇之犧牲區塊包含: 依照一處理器識別碼及請求類型來查詢一表,以確認 一 M-位元向遮罩,其中在該M-位元向遮罩中之每一組位 Φ 元會在由所接收到之請求之索引所指示之一組分享快取記 憶體中確認一候選犧牲區塊。 1 4 ·如申請專利範圍第1 3項之方法,其中該查詢進一 步包含: 當該M -位元遮罩之至少兩個位元被設定,則選擇最 近最不被使用的向、一最近最被使用的向及一任意向之其 中一者來作爲該被選擇的犧牲區塊。 1 5 ·如申g靑專利範圍第1 1項之方法,其進一步包含: 若在一分享快取記憶體中偵測到一快取記憶體未命中 -5- 正#換 1285810 " (6) * ,則依照從一處理器所接收到之請求而從系統記憶體請求 一被請求之快取記憶體區塊; 提供被請求之快取記憶體區塊至該處理器;及 將所請求之快取記憶體區塊儲存在該分享快取記憶體 之一部分中,其中該部分係該犧牲區塊被逐出之部分。 1 6 . —種儲存有執行分享快取記憶體之分割的指令之 電腦可讀取的記錄媒體,該等指令可用以程式化一系統來 φ 執行一方法,該方法包含: 依照一已接收之請求來檢查一分享快取記憶體,以判 斷一被請求之快取記憶體區塊是否儲存於其中;及 若偵測到該所請求之快取記憶體之一快取記億體未命 中,則依照所接收到之請求之一請求者識別碼及一請求類 型而從該分享快取記憶體逐出一被選擇的犧牲區塊。 1 7 ·如申請專利範圍第1 6項之電腦可讀取的記錄媒體 ,其中在檢查該分享快取記憶體之前,該方法進一步包含(a)選擇一請求者; (b) 對於所選擇之請求者來選擇一記憶體請求類型; (c) 將分享快取記憶體之M-向之一或多個配置給被選 定之記憶體請求類型; (d) 依照步驟(c)所配置之向來產生一 Μ -位元遮覃; (e) 依照所選擇之處理器之處理器ID以及請求類型而 在一表中產生一入口欄,以確認該M-位元遮罩; (f) 對於T個記憶體請求類型之每一種類型來重複步驟 1285810 「举V日修1*征替換頁j . (7) ^^ * (b)-(e);及 (g)對於N個處理器之每一個處理器來重複步驟(a)-(f) 〇 1 8 ·如申請專利範圍第1 6項之電腦可讀取的記錄媒體 ’其中逐出該被選擇之犧牲區塊包含: 依照一處理器識別碼及請求類型來查詢一表,以確認 一 M -位元向遮罩,其中在該M -位元向遮罩中之每一組位 φ 元會在由所接收到之請求之索引所指示之一組分享快取記 憶體中確認一候選犧牲區塊。 1 9.如申請專利範圍第1 8項之電腦可讀取的記錄媒體 ,其中該查詢進一步包含: 若該M-位元遮罩之至少兩個位元被設定,則選擇一 最近最不被使用的向、一最近最被使用的向及一任意向之 其中一者來作爲該被選擇的犧牲區塊。 20.如申請專利範圍第1 6項之電腦可讀取的記錄媒體 Φ ,其進一步包含: 當在一分享快取記憶體中偵測到一快取記憶體未命中 ,則依照從一處理器所接收到之請求而從系統記憶體請求 一被請求之快取記憶體區塊; 提供被請求之快取記憶體區塊至該處理器;及 將所請求之快取記憶體區塊儲存在該分享快取記憶體 之一部分中,其中該部分係該犧牲區塊被逐出之部分。 2 1 . —種用於分割晶片多處理器的分享快取記憶體之 裝置,包含: J285810 f貪日修(声)^1替换頁 (8) 1--^ • 一控制器,其係從系統記憶體請求一被請求之區塊, 若在該被請求之區塊中偵測到一快取記憶體未命中,並且 依照一所接收到之請求之一請求者識別碼及一請求類型來 選擇一欲被逐出之犧牲區塊以儲存該被請求之區塊。 22. 如申請專利範圍第21項之裝置,其中該控制器進 一步包含: 犧牲區塊候選邏輯,其用以依照一處理器識別碼及請 φ 求類型來查詢一表,以確認一 M-位元向遮罩,其中在該 M-位元向遮罩中之每一組位元會在由所接收到之請求之索 引所指示之一組分享快取記憶體中確認一候選犧牲區塊。 23. 如申請專利範圍第21項之裝置,其中該控制器進 一步包含: 快取記憶體分割邏輯,其依照N個處理器及T個記憶 體請求類型來分割一 M-向集結合式分享快取記憶體,並 且將犧牲區塊之選擇限制在該M-向集結合式分享快取記 # 憶體之可用向之一子集合。 24·如申請專利範圍第22項之裝置,其中該控制器進 一步包含: 取代邏輯,其用以依照所接收到之請求之一快取記憶 體索引來存取該組分享快取記憶體,俾依照該M-位元向 遮罩之至少一組位元來從該組中確認至少一犧牲區塊,以 將該已確認之犧牲區塊逐出。 25·如申請專利範圍第24項之裝置,其中當該M-位元 向遮罩之至少兩位元被設定,則該取代邏輯係進一步選擇 -8 - .1285810(9) 9一最近最不常被使用的向、一最近最常使用的向及一任意 向來作爲該被選擇的犧牲區塊。 26· —種用於分割晶片多處理器的分享快取記憶體之 系統,包含: 一被耦接至一互連網路之系統記億體; 一晶片多處理器,其包含複數個被耦接至該互連網路 之處理器核心;及一被耦接至該互連網路之分享快取記憶體,該分享快 取記憶體包括一快取記憶體分割邏輯,若在該分享快取記 憶體之快取記憶體區塊中偵測到一快取記憶體未命中,則 其相應於從複數個處理器之一處理器核心所接收到之請求 來引導一快取記憶體控制器,俾從該系統記憶體請求一快 取記憶體區塊,並且依照一處理器識別碼及所接收到之請 求之一請求類型來選擇一從該分享快取記憶體逐出之犧牲 區塊。27·如申請專利範圍第26項之系統,其中該系統記憶 體包含RDRAM(RumbUS動態隨機存取記憶體)。 28 ·如申請專利範圍第26項之系統,其中該快取記憶 體分割邏輯進一步包含: 犧牲區塊候選邏輯,其用以依照一處理器識別碼及請 求類型來查詢一表,以確認一 M-位元向遮罩,其中在該 Μ -位元向遮罩中之每一組位元會在由所接收到之請求之索 引所指示之一組分享快取記憶體中確認一候選犧牲區塊。 29·如申請專利範圍第28項之系統,其中該快取記憶 .1285810 ' (10) -* * i» 年月 /日修正替换頁 體分割邏輯進一步包含: 取代邏輯,其用以依照所接收到之請求之一快取記億 體索引來存取該組分享快取記憶體,俾依照該Μ-位元向 遮罩之至少一組位元來從該組中確認至少一犧牲區塊,且 將該已確認之犧牲區塊逐出。 3 0.如申請專利範圍第29項之系統,其中當該Μ-位元 向遮罩之至少兩位元被設定,則該取代邏輯係進一步選擇 φ 一最近最不常被使用的向、一最近最常使用的向及一任意 向來作爲該被選擇的犧牲區塊。-10·
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/882,048 US7558920B2 (en) | 2004-06-30 | 2004-06-30 | Apparatus and method for partitioning a shared cache of a chip multi-processor |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200615755A TW200615755A (en) | 2006-05-16 |
TWI285810B true TWI285810B (en) | 2007-08-21 |
Family
ID=35464043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094121498A TWI285810B (en) | 2004-06-30 | 2005-06-27 | Method, apparatus, and system for partitioning a shared cache of a chip multi-processor, and computer-readable recording medium having stored thereon related instructions |
Country Status (5)
Country | Link |
---|---|
US (1) | US7558920B2 (zh) |
EP (1) | EP1612683A3 (zh) |
KR (1) | KR20060049710A (zh) |
CN (1) | CN100511184C (zh) |
TW (1) | TWI285810B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI420311B (zh) * | 2010-03-18 | 2013-12-21 | Univ Nat Sun Yat Sen | 基於集合分模組之快取記憶體之分割方法 |
TWI467374B (zh) * | 2007-10-08 | 2015-01-01 | Hewlett Packard Development Co | 運算系統及用於分割記憶體之受保護部分之方法 |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1703404A1 (fr) * | 2005-03-16 | 2006-09-20 | Amadeus s.a.s | Méthode et système pour maintenir la cohérence d'une mémoire cache utilisée par de multiples processus indépendants |
US20070033371A1 (en) * | 2005-08-04 | 2007-02-08 | Andrew Dunshea | Method and apparatus for establishing a cache footprint for shared processor logical partitions |
US20070073974A1 (en) * | 2005-09-29 | 2007-03-29 | International Business Machines Corporation | Eviction algorithm for inclusive lower level cache based upon state of higher level cache |
US20070094664A1 (en) * | 2005-10-21 | 2007-04-26 | Kimming So | Programmable priority for concurrent multi-threaded processors |
US7415575B1 (en) * | 2005-12-08 | 2008-08-19 | Nvidia, Corporation | Shared cache with client-specific replacement policy |
US7730261B1 (en) * | 2005-12-20 | 2010-06-01 | Marvell International Ltd. | Multicore memory management system |
US8984256B2 (en) * | 2006-02-03 | 2015-03-17 | Russell Fish | Thread optimized multiprocessor architecture |
US7962694B2 (en) * | 2006-03-31 | 2011-06-14 | Intel Corporation | Partial way hint line replacement algorithm for a snoop filter |
US8244980B2 (en) * | 2006-06-21 | 2012-08-14 | Intel Corporation | Shared cache performance |
US7434001B2 (en) * | 2006-08-23 | 2008-10-07 | Shi-Wu Lo | Method of accessing cache memory for parallel processing processors |
US8341604B2 (en) | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8370806B2 (en) | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US8380966B2 (en) | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US7627718B2 (en) * | 2006-12-13 | 2009-12-01 | Intel Corporation | Frozen ring cache |
US8055851B2 (en) * | 2006-12-14 | 2011-11-08 | Intel Corporation | Line swapping scheme to reduce back invalidations in a snoop filter |
US8484516B2 (en) | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
JP5217432B2 (ja) * | 2007-12-28 | 2013-06-19 | 富士通株式会社 | セクタ機能付きキャッシュメモリ |
US8223650B2 (en) * | 2008-04-02 | 2012-07-17 | Intel Corporation | Express virtual channels in a packet switched on-chip interconnection network |
US20090254712A1 (en) * | 2008-04-02 | 2009-10-08 | Naveen Cherukuri | Adaptive cache organization for chip multiprocessors |
US8589629B2 (en) * | 2009-03-27 | 2013-11-19 | Advanced Micro Devices, Inc. | Method for way allocation and way locking in a cache |
US8140767B2 (en) * | 2009-06-04 | 2012-03-20 | International Business Machines Corporation | Cache management through delayed writeback |
US8543769B2 (en) * | 2009-07-27 | 2013-09-24 | International Business Machines Corporation | Fine grained cache allocation |
US9311245B2 (en) * | 2009-08-13 | 2016-04-12 | Intel Corporation | Dynamic cache sharing based on power state |
US8745618B2 (en) * | 2009-08-25 | 2014-06-03 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments |
US20110197031A1 (en) * | 2010-02-05 | 2011-08-11 | Nokia Corporation | Update Handler For Multi-Channel Cache |
US8661200B2 (en) * | 2010-02-05 | 2014-02-25 | Nokia Corporation | Channel controller for multi-channel cache |
US10187247B2 (en) | 2010-07-30 | 2019-01-22 | Hewlett Packard Enterprise Development Lp | Computer system and method for sharing computer memory |
JP5683205B2 (ja) | 2010-10-18 | 2015-03-11 | キヤノン株式会社 | 情報処理装置、情報処理装置を制御する制御方法、およびそのプログラム |
US20120096295A1 (en) * | 2010-10-18 | 2012-04-19 | Robert Krick | Method and apparatus for dynamic power control of cache memory |
US9021206B2 (en) | 2011-08-25 | 2015-04-28 | International Business Machines Corporation | Use of cache statistics to ration cache hierarchy access |
US20130097387A1 (en) * | 2011-10-14 | 2013-04-18 | The Board Of Trustees Of The Leland Stanford Junior University | Memory-based apparatus and method |
US9753858B2 (en) | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
US8984368B2 (en) | 2012-10-11 | 2015-03-17 | Advanced Micro Devices, Inc. | High reliability memory controller |
US10140219B2 (en) | 2012-11-02 | 2018-11-27 | Blackberry Limited | Multi-port shared cache apparatus |
GB2509755B (en) | 2013-01-14 | 2015-07-08 | Imagination Tech Ltd | Partitioning a shared cache using masks associated with threads to avoiding thrashing |
US9213644B2 (en) | 2013-03-07 | 2015-12-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Allocating enclosure cache in a computing system |
WO2014143036A1 (en) | 2013-03-15 | 2014-09-18 | Intel Corporation | Method for pinning data in large cache in multi-level memory system |
WO2014143053A1 (en) * | 2013-03-15 | 2014-09-18 | Intel Corporation | Dead block predictors for cooperative execution in the last level cache |
US10089238B2 (en) | 2014-07-17 | 2018-10-02 | Qualcomm Incorporated | Method and apparatus for a shared cache with dynamic partitioning |
US9612970B2 (en) | 2014-07-17 | 2017-04-04 | Qualcomm Incorporated | Method and apparatus for flexible cache partitioning by sets and ways into component caches |
KR102354848B1 (ko) | 2014-11-28 | 2022-01-21 | 삼성전자주식회사 | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 |
EP3066572B1 (en) * | 2014-12-14 | 2020-02-19 | VIA Alliance Semiconductor Co., Ltd. | Cache memory budgeted by chunks based on memory access type |
KR101835949B1 (ko) * | 2014-12-14 | 2018-03-08 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 메모리 접근 타입을 고려한 캐시 치환 정책 |
WO2016097813A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Set associative cache memory with heterogeneous replacement policy |
US9652400B2 (en) * | 2014-12-14 | 2017-05-16 | Via Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by memory access type |
US9910785B2 (en) | 2014-12-14 | 2018-03-06 | Via Alliance Semiconductor Co., Ltd | Cache memory budgeted by ways based on memory access type |
KR101639943B1 (ko) * | 2015-03-12 | 2016-07-15 | 성균관대학교산학협력단 | 범용 그래픽 프로세서의 공유 메모리를 캐시로 동작시키기 위한 공유 메모리 제어 방법 및 이를 이용한 범용 그래픽 프로세서 |
KR101627456B1 (ko) * | 2015-03-16 | 2016-06-07 | 성균관대학교산학협력단 | 그래픽 사용자 인터페이스 품질 개선방법 및 그 방법을 수행하는 프로그램이 저장된 기록매체 |
US9563564B2 (en) * | 2015-04-07 | 2017-02-07 | Intel Corporation | Cache allocation with code and data prioritization |
US10180908B2 (en) | 2015-05-13 | 2019-01-15 | Qualcomm Incorporated | Method and apparatus for virtualized control of a shared system cache |
US9971693B2 (en) * | 2015-05-13 | 2018-05-15 | Ampere Computing Llc | Prefetch tag for eviction promotion |
JP6424330B2 (ja) * | 2015-10-13 | 2018-11-21 | 株式会社アクセル | 情報処理装置、及び情報処理方法 |
EP3258382B1 (en) * | 2016-06-14 | 2021-08-11 | Arm Ltd | A storage controller |
US9928176B2 (en) * | 2016-07-20 | 2018-03-27 | Advanced Micro Devices, Inc. | Selecting cache transfer policy for prefetched data based on cache test regions |
US20180203807A1 (en) * | 2017-01-13 | 2018-07-19 | Arm Limited | Partitioning tlb or cache allocation |
US11080810B2 (en) * | 2017-04-21 | 2021-08-03 | Intel Corporation | Dynamically reconfigurable memory subsystem for graphics processors |
US10482017B2 (en) * | 2017-09-29 | 2019-11-19 | Intel Corporation | Processor, method, and system for cache partitioning and control for accurate performance monitoring and optimization |
US10635590B2 (en) * | 2017-09-29 | 2020-04-28 | Intel Corporation | Software-transparent hardware predictor for core-to-core data transfer optimization |
TWI795470B (zh) * | 2017-11-20 | 2023-03-11 | 南韓商三星電子股份有限公司 | 資料管理方法、多處理器系統和非暫態計算機可讀儲存媒體 |
KR101936951B1 (ko) * | 2018-04-11 | 2019-01-11 | 주식회사 맴레이 | 메모리 제어 장치 및 이를 포함하는 메모리 시스템 |
US10761988B2 (en) * | 2018-07-25 | 2020-09-01 | Arm Limited | Methods and apparatus of cache access to a data array with locality-dependent latency characteristics |
US10802973B1 (en) | 2019-07-01 | 2020-10-13 | Bank Of America Corporation | Data access tool |
TWI760702B (zh) * | 2020-03-03 | 2022-04-11 | 瑞昱半導體股份有限公司 | 資料寫入系統與方法 |
US10949352B1 (en) * | 2020-03-05 | 2021-03-16 | Nxp Usa, Inc. | Data processing system having a shared cache |
CN111651376B (zh) * | 2020-07-06 | 2023-09-19 | Oppo广东移动通信有限公司 | 数据读写方法、处理器芯片及计算机设备 |
WO2023165543A1 (zh) * | 2022-03-02 | 2023-09-07 | 华为技术有限公司 | 共享缓存的管理方法、装置及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5584014A (en) | 1994-12-20 | 1996-12-10 | Sun Microsystems, Inc. | Apparatus and method to preserve data in a set associative memory device |
JP3348367B2 (ja) * | 1995-12-06 | 2002-11-20 | 富士通株式会社 | 多重アクセス方法および多重アクセスキャッシュメモリ装置 |
US6745292B1 (en) | 1995-12-08 | 2004-06-01 | Ncr Corporation | Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors |
US20010029574A1 (en) * | 1998-06-18 | 2001-10-11 | Rahul Razdan | Method and apparatus for developing multiprocessore cache control protocols using a memory management system generating an external acknowledgement signal to set a cache to a dirty coherence state |
US6421762B1 (en) | 1999-06-30 | 2002-07-16 | International Business Machines Corporation | Cache allocation policy based on speculative request history |
DE60042640D1 (de) | 1999-12-17 | 2009-09-10 | Nxp Bv | Datenprozessor mit cachespeicher |
US6757793B1 (en) * | 2000-03-29 | 2004-06-29 | Advanced Micro Devices, Inc. | Reducing probe traffic in multiprocessor systems using a victim record table |
US6889291B1 (en) | 2000-06-30 | 2005-05-03 | Intel Corporation | Method and apparatus for cache replacement for a multiple variable-way associative cache |
US6745293B2 (en) * | 2000-08-21 | 2004-06-01 | Texas Instruments Incorporated | Level 2 smartcache architecture supporting simultaneous multiprocessor accesses |
US6668307B1 (en) | 2000-09-29 | 2003-12-23 | Sun Microsystems, Inc. | System and method for a software controlled cache |
JP3620473B2 (ja) | 2001-06-14 | 2005-02-16 | 日本電気株式会社 | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 |
US6748479B2 (en) * | 2001-11-20 | 2004-06-08 | Broadcom Corporation | System having interfaces and switch that separates coherent and packet traffic |
US7003631B2 (en) * | 2002-05-15 | 2006-02-21 | Broadcom Corporation | System having address-based intranode coherency and data-based internode coherency |
-
2004
- 2004-06-30 US US10/882,048 patent/US7558920B2/en not_active Expired - Fee Related
-
2005
- 2005-06-27 TW TW094121498A patent/TWI285810B/zh not_active IP Right Cessation
- 2005-06-30 CN CNB2005100980710A patent/CN100511184C/zh not_active Expired - Fee Related
- 2005-06-30 KR KR1020050058252A patent/KR20060049710A/ko active Search and Examination
- 2005-06-30 EP EP05254137A patent/EP1612683A3/en not_active Ceased
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI467374B (zh) * | 2007-10-08 | 2015-01-01 | Hewlett Packard Development Co | 運算系統及用於分割記憶體之受保護部分之方法 |
TWI420311B (zh) * | 2010-03-18 | 2013-12-21 | Univ Nat Sun Yat Sen | 基於集合分模組之快取記憶體之分割方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1728112A (zh) | 2006-02-01 |
US7558920B2 (en) | 2009-07-07 |
CN100511184C (zh) | 2009-07-08 |
TW200615755A (en) | 2006-05-16 |
EP1612683A3 (en) | 2008-04-30 |
KR20060049710A (ko) | 2006-05-19 |
US20060004963A1 (en) | 2006-01-05 |
EP1612683A2 (en) | 2006-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI285810B (en) | Method, apparatus, and system for partitioning a shared cache of a chip multi-processor, and computer-readable recording medium having stored thereon related instructions | |
TWI545435B (zh) | 於階層式快取處理器中之協調預取 | |
KR101559023B1 (ko) | 메모리 페이지들의 일부에 저장된 메타데이터를 갖는 메모리 | |
US10474584B2 (en) | Storing cache metadata separately from integrated circuit containing cache controller | |
US8386701B2 (en) | Apparatus and method for multi-level cache utilization | |
JP2016534431A (ja) | ロード/記憶ユニット及びデータキャッシュの順序付け及びバンド幅の向上 | |
US8639889B2 (en) | Address-based hazard resolution for managing read/write operations in a memory cache | |
US10503655B2 (en) | Data block sizing for channels in a multi-channel high-bandwidth memory | |
TW200411389A (en) | Weighted cache line replacement | |
US8583873B2 (en) | Multiport data cache apparatus and method of controlling the same | |
TW201140319A (en) | Replacing cache lines in a cache memory | |
US10324760B2 (en) | Leases for blocks of memory in a multi-level memory | |
US20150019813A1 (en) | Memory hierarchy using row-based compression | |
US8566532B2 (en) | Management of multipurpose command queues in a multilevel cache hierarchy | |
CN106233258B (zh) | 可变宽度纠错 | |
JP2009528612A (ja) | データ処理システム並びにデータ及び/又は命令のプリフェッチ方法 | |
US10545887B2 (en) | Multiple linked list data structure | |
US9104583B2 (en) | On demand allocation of cache buffer slots | |
KR102540752B1 (ko) | 비할당 캐시 정책 | |
US20180276139A1 (en) | Least recently used-based hotness tracking mechanism enhancements for high performance caching | |
US7293141B1 (en) | Cache word of interest latency organization | |
US9146870B2 (en) | Performance of accesses from multiple processors to a same memory location | |
US10877889B2 (en) | Processor-side transaction context memory interface systems and methods | |
US7380180B2 (en) | Method, system, and apparatus for tracking defective cache lines | |
CN117940908A (zh) | 动态分配高速缓存存储器作为ram |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |