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 PDF

Info

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
Application number
TW094121498A
Other languages
English (en)
Other versions
TW200615755A (en
Inventor
Matthew Mattina
Antonio Juan-Hormigo
Joel Emer
Ramon Matas-Navarro
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW200615755A publication Critical patent/TW200615755A/zh
Application granted granted Critical
Publication of TWI285810B publication Critical patent/TWI285810B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way 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)

  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·
TW094121498A 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 TWI285810B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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