TW200817897A - Pseudo-LRU virtual counter for a locking cache - Google Patents

Pseudo-LRU virtual counter for a locking cache Download PDF

Info

Publication number
TW200817897A
TW200817897A TW096113350A TW96113350A TW200817897A TW 200817897 A TW200817897 A TW 200817897A TW 096113350 A TW096113350 A TW 096113350A TW 96113350 A TW96113350 A TW 96113350A TW 200817897 A TW200817897 A TW 200817897A
Authority
TW
Taiwan
Prior art keywords
cache
lru
array
memory
computer
Prior art date
Application number
TW096113350A
Other languages
English (en)
Inventor
Jonathan James Dement
Ronald P Hall
Brian Patrick Hanley
Kevin C Stelzer
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200817897A publication Critical patent/TW200817897A/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
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • 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
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

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

200817897 九、發明說明: 【發明所屬之技術領域】 本申請案大體上係關於一種改良的資料處理系統,且特 定而言係關於一種用於處理資料之方法及設備。更特定言 之’本發明係關於一種用於管理快取記憶體中之資料的電 腦實施的方法、設備及電腦可用程式碼。 【先前技術】
(; 快取記憶體係記憶體之一部分,該部分用於儲存比彼等 儲存於可能需要更長時間來存取的儲存位置上之資料更頻 繁地被使用的資料。處理器通常使用快取記憶體來減少存 取圯憶體所需之平均時間。當處理器希望在主記憶體中之 一位置上進行讀取或寫入時,該處理器首先檢查以確定彼 記憶體位置是否存在於快取記憶體巾。若處理器發現記憶 體位置存在於快取記憶體中,則已發生快取命中(cache hn)。否則,存在快取未中(cache作為快取未中之 結果,處理器立即在快取列中讀取或寫入資料。快取列為 快取纪憶體中之一具有一含有主記憶體中之儲存於該快取 記憶體中之資料的索引之標籤的位置。此快取列亦被稱為 快取區塊。 /則處理器發展所面臨的設計問題為記憶體潛伏。在許 、器"又。十中,用於自主記憶體至執行單元之資料傳遞 週』時間可能超過4〇〇個週期。為了幫助解決此問題, 品或^ (Ll)及二階(L2)快取記憶體。區域階快取記 憶體為用於幫助解決資料之時間及空間位置(兩個常見架 120182.doc 200817897 構問題)之記憶體的子集。 多任務及多線緒技術)時, 問題。該等應用可導致快 當作業系統使用環境技術(如 引入區域記憶體爭用及錯誤共用 置將降低資料定 取記憶體崩潰。該非確定性之記憶體再配 位技術(例如預取及擲出)之效率。 性 可將應用分為三個資料樣式類型:串&、鎖定及機會 。串流為循序存取之資料,可能經修改且然後不再被引
用。鎖定為可引用多次或在長閒置時間段後之特殊關聯的 資料通巾藉由# &機、循環或最近最少使用的 演算法來處理配置及替換。軟體可侧所使用之資料樣式 的類型,且應使用資源、管理演算法概念以幫助硬體最小化 。己〖思體犬。在一集合關聯式快取記憶體中之軟體控制的 集合配置及替換方法將為各應用產生"虛擬"作業空間。在 一些情況下,軟體可將8路集合關聯式快取記憶體劃分為5 路與3路、6路與2路、7路與丨路之組合。將快取記憶體結 構劃为為項目(如列)及路線(如行)。各項目可具有多個路 線。在8路集合關聯式快取記憶體中,在各項目中存在8個 路線。因此,可將資料儲存於項目中之8個路線之一路線 中。路線亦稱為集合。機會性描述隨機資料存取。 偽LRU(p-LRU)為追蹤存取快取記憶體同餘類内之快取 列之順序的近似替換策略,使得在存在快取未中時,僅最 近最少被存取的快取列被新資料替換。對於各快取記憶體 存取,更新P-LRU,使得最後被存取的項現變為最近被使 用的項’且僅次於最後被存取之項的項現變為最近最少使 120182.doc 200817897 用的資料。 、完全LRU實施起來係非常昂貴的。其對於N路集合關聯 式快取記憶體需要每—同餘類至少l〇g2(N!)個位元(例如, 4路需要5個位元)。通常使用之折衷係偽LRU。傳統上而 口,以一兀樹演异法來實施偽lru,該二元樹演算法僅使 用N-1個位几,或為8路集合關聯式快取記憶體使用7個位 兀。各位兀表不二元樹之一個内部節點,該二元樹之頁表 不N個集合。 偽LRU替換之目標為接近完全:肋方法之效能,同時節 省所需空間量。然❿,在偽LRU方法將8路關聯式快取記 fe體以不平衡方式劃分為5路與3路或6路與2路之組合的情 況下,與連續快取未中情況下之完全LRU相比,偽方 法僅達成約40%之效能。此外,當前方法僅達成組合快取 未中與快取命中之快取記憶體存取中之完全LRU方法效能 的40%左右。 【發明内容】 本發明提供一種用於管理一鎖定快取記憶體中之集合之 替換之電腦實施的方法、設備及電腦可用程式碼。回應於 一程式進行之一快取記憶體存取,識別一個二元樹之一由 一基礎頁(base leaf)所指向的側。判定存取二元樹之識別 側之數目是否等於與識別側上之程式相關聯之集合的數 目。若存取識別側之數目等於與識別側上之程式相關聯之 集合的數目,則將該基礎頁改變為指向該二元樹之一相對 側。 120182.doc 200817897 【實施方式】 現餐看圖1,:Ml展+甘士 — 理系餅… 貫施本發明之態樣的資料處 .....▲圖。育料處理系統100為本發明之方法、設 備可位於之電腦的垂彳丨 ° 貝例。在繪示的實例中,資料處 100使用一中樞架谣甘A ^ y、 /、匕括一北橋及記憶體控制器中樞 )102與一南橋及輸入/輸出(I/O)控制器中樞(ICH) 104處理杰早几106、主記憶體⑽及圖形處理器n〇連接 至北橋及記憶體控制器中樞102。 圖形處理器m可經由(例如)加速圖形璋(AGp)連接至 處理a早π 1G6含有—或多個處理器之集合。當存 在-個以上處理器時,該等處理器可為獨立封裝中之獨立 ❹里器。或者’該等處理器可為—封裝中之多個核心。此 外,處理器可為多個多核心單元。 此類型之處理器之實例為Cell Br〇adband EngineTM處理 厂,為異質處理器。該處理器具有—針對分散式處理之 处理盗木構。此架構使得能夠實施廣範圍的單個或多處理 器及記憶體組態’以便最佳地滿足許多不同系統及應用要 :。該類型之處理器可由主機板或其他二階封裝上之單個 晶片、多晶片模組(或多個多晶片模組)或多 組成’此視所用之技術及預期實,々丨夕+ 士 , ' ^ 7 ^預期貫轭例之成本/效能特性而 疋。Cell Broadband EngineTM具有 處理器元件 (PPE)及若干協同處理器單元(spu)。ppE為可執行系統管 理功能(如定址記憶體保護表)之通用處理單元。SPU為不 具有系統官理功能之複雜性較小的計算單元。實情為, 120182.doc 200817897 SPU向應用提供計算處理aSpu由PPE管理。 在繪示之實例中,區域網路(LAN)配接器112連接至南橋 及I/O控制裔中樞1 〇4 ’而音訊配接器i i 6、鍵盤及滑鼠配 接器120、數據機122、唯讀記憶體(R0M) 124、硬碟驅動 器(HDD) 126、CD-ROM驅動器130、通用串列匯流排 (USB)埠及其他通信埠132,及pci/pcie裝置134經由匯流 排138及匯流排140連接至南橋及1/〇控制器中樞。
PCI/PCIe裝置可包括(例如)用於筆記型電腦之乙太網路配 接器、插件卡及pc卡。PCI使用卡匯流排控制器,而pcie 不使用。ROM 124可為(例如)快閃二進制輸入/輸出系統 (BIOS)。硬碟驅動器126及CD-R〇M驅動器可使用(例 如)整合驅動電子(IDE)或串行先進技術附件(sata)介面。 超級I/O (SIO)裝置136可連接至南橋及1/〇控制器中樞 104。 2業系統在處理器單元106上執行且協調及提供對圖!中 之資料處理系'統100内之各種組件的控制。作業系統可為 可購传之作業系統,例如Microsoft@ Windows⑧ ⑽⑽純及Windows為美國、其他國家或兩者之⑽⑽⑽ 公司的商標)。物件導向式程式設計系統(例如心❿程式 設計系統)可與作業系統一起執行,且藉由在資料處理系 充上執仃之Java%式或應用來提供對作業系統之調用 (Java為美國、其他國家或兩者之^ _⑽㈣⑽,―之 商標)。 用於作m物件導向式程式設計“,及應用或程 120182.doc -10· 200817897 式之指令位於儲存裝置(例如硬碟動器i26)上,且可被載 入至主記憶體1〇8中以供處理器單元1〇6執行。本發明之方 法係藉由處理器單元1〇6佶用带 6使用-恥貫施的指令來執行,該 寺‘令可位於記憶體(例如, 主忑隐體108、唯讀記憶體 U4)或一或多個周邊裝置中。 上熟習此項技術者應瞭解:可根據實施例而改變硬體。除 该硬體外’或替代該硬體,可使料他㈣硬體或周邊裝
置’諸如快閃記憶體、等效非揮發性記憶體或光碟驅動器 及其類似者。而且,本於明夕士 i 不'明之方法可用於多處理器資料處 理糸統。 在-些例示性實例中’資料處理系統1〇〇可為個人數位 助理(PDA),其與快閃記憶體—起組態以提供用於儲存作 業系統檔案及/或使用者產生之資料的非揮發性記憶體。 匯流排系統可包含一或多個匯流排’例如系統匯流排、 1/〇匯流排及⑽匯流排。當'然,可使用任何類型之通H 織或架構來實施匯流排系統,該通信組織或架構提供附接 至該通信組織或架構之不同組件或裝置之間的資料傳送。 通b單兀可包括-或多個用於發送及接收資料之裝置,例 如數據機或網路配接器。記憶體可為(例如)主記憶體1〇8或 (例如)可見於北橋及記憶體控制器中樞1〇2中之快取記憶 體。處理單元可包括-或多個處理器或cpu。圖i中纷示 之貫例及上述實例並不意謂隱含架構限制。舉例而言,資 料處理系統1 0 0亦可為φ ,, 宁几 j馮千板電、膝上型電腦或除採用 PDA之形式外的電話裝置。 120182.doc -11- 200817897 現簽看圖2,其為根據例示性實施例繪示之說明一處理 杰系統的圖式。處理器系統2〇〇為圖i中之處理器單元丄% 中可見之處理器的一實例。在此實例中,處理器系統2〇〇 含有提取單兀2〇2、解碼單元2〇4、發出單元2〇6、分支單 凡208、執行單元2 10及完成單元212。處理器單元2〇〇亦含 有記憶體子系統214 °記憶體子系統214含有快取記憶體陣 歹J216、最近最少使用(LRU)陣列2i8、控制、。載 入及儲存件列控制222、目錄陣列以及替換管理表(rmt) 226。處理器系統2〇〇連接至主機匯流排。此外,主記
十思體單元2 3 0、匯流排抑岳彳蛋& 〇 Q 爪排栓制早兀232,及更多處理器及外部 4置2 3 4亦連接至主機匯流排a 8。 在此等實例中,提取單元2G2自記憶體 憶體230提取招a以★ $ i』 乂 义 取^以加速程式之執行。提取單元202在需要 曰7則’自記憶體擷取彼指令, 口 記憶體(例如呓_俨+条鉍 处ί ι§'必須等待 Ο (Η 4體子糸統214或主記憶體23Q)答覆對該指 碼單元2〇4對指令進行解碼以用於執行。換 解碼單元204識別待執行之人八 、 施加至之運曾-& P令,以及待將該命令 之運异兀。發出單元206發送 於執行之罝^ t 心、工解碼之指令至一用 丁之早7L,例如執行單元21〇。 發出單元206接收之指丁早X210為執行自 該指令f ^的早7°的貫例。執行單元210執行 …“周用之運算及計算。舉例而+ 包括内部單元σ,執行單兀210可 1早兀(啫如洋點單元、曾 —些其他單元。^, π術璉軻單元(ALU)),或 凡成早兀212以可由勃< 〇 行之指令的 田執仃早元210亂序地執 的牙壬式順序來驗證操作。 刀叉早元208處理指令 120182.doc -12- 200817897 中之分支。 一陕取汜k體陣列2 1 6含有處理器系統2〇〇所需之資料集 口 此等集合亦稱為路線且亦如陣列中之行。在此等實例 中陕取5己彳思體陣列216為L2快取記憶體。LRU陣列21 8擁 有用於N路集合關聯式快取記憶體之位元。集合關聯式快 取圯憶體為具有辅助記憶體中之可映射至相同快取記憶體 項目之不同貧料的快取記憶體。在δ路集合關聯式快取記 憶體中,每一項目存在8個不同的路線或集合。因此,存 在映射至相同項目之8個不同資料。此系統用於改良快取 命中率效能。此陣列中之各位元代表二元樹之一個内部節 ”占"亥一元樹具有表示關於相應快取記憶體項目之各路線 或集合之最近最少使用的資訊的頁。LRU控制22〇含有例 示性實施例之用於管理儲存於快取記憶體陣列2丨6中之資 料的方法。替換管理表(RMT) 226定義將集合關聯式快取 纪憶體中之哪些集合用於替換。在8路集合關聯式快取記 隐體中,RMT 226可為8位元寬及8項目深之表。項目中之 各位元可儲存快取記憶體路線之鎖定資訊。若值為"丨,,, 則其可被自由替換。若值為,,〇,,,則其被鎖定而不能被替 換。可為不同程式或記憶體空間分配RMT 226中之各項 目。可由特權模式軟體(例如作業軟體)對RMt進行程式設 計。L2載入及儲存佇列控制222控制L2快取記憶體(快取記 憶體陣列2 1 6)中之快取記憶體集合的儲存及保留。 目錄陣列224將資料之快取記憶體一致性資訊、實位址 及有效位元儲存在快取記憶體陣列216中之相應快取記憶 120182.doc -13 - 200817897 體項目中。此障兩I洗g 士 早歹j亦具有與快取記憶體陣列2 1 6相同之集 合關聯式結構。舉例而言,在8路集合關聯式快取記憶體 中目錄陣列224亦具有8個路線。路線亦稱為集合。此目 錄/、有對之匹配。每次存取快取記憶體陣列216時, 將同時存取目錄陣列224以判定是否發生了快取命中或快 取未中,及項目是否有效。 主記憶體單元230含有可由處理器系統·提取或榻取以 用於執行之指令及資料。在資料仍未被提取至快取記憶體 陣列W之情況下,匯流排控制單元232充當匯流排之訊務 控制器,以仲裁來自附接至匯流排之裝置的請求及回鹿。 在此實例中’ #執行單元21()中之u資料快取記憶體(未圖 不)中發生未中時’執行單元21G發送—請求及—位址至記 憶體子系統2丨4。結果’執行單元21()導致L2載人及儲存件 列控制222存取LRU陣列218、目錄陣列咖及快取記憶體 陣列216 ° L1快取記憶體中之快取未中可引入目錄陣列224 中之資料。目錄陣列224傳回資料以指示以快取記憶體中 之未中中所請求之資料是否位於快取記憶體陣列216(其在 此實例中用作L2快取記憶體)中。自目錄陣列224傳回之資 料包括:命中或未中;快取記憶體項目之路線中的資料有 效或無效;及項目之哪種記憶體—則生狀態,諸如共用、 獨佔、修改。LRU陣列218傳回LRU資料至LRU控制22〇。 LRU控制220亦自RMT 226擷取集合之鎖定資訊。⑽丁以 為快取記憶體陣列21 6中之不同請求記憶體位址範圍提供 替換管理策略。 120182.doc -14· 200817897 '在此等例*性實例+,‘決取記憶體系統使用"鎖定”策略 X开少成鎖疋快取g己憶體。鎖定快取記憶體為其中一或多個 1·夬取。己體集合防止被替換之快取記憶體。彼等快取記憶 體集合被視為,,鎖定,,。一個實例為作業系統選擇用以鎖定
快取§己憶體陣列LK A . 中之一、七疋集合的第一階中斷處理程 . =。有了該資訊,LRU控制220計算快取記憶體陣列216之 t近更新的最近最少使用及最近最多使用的快取記憶體集 合0 C 一- 右對資料之請求導致目錄陣列224中之命中,則控 制220更新儲存於LRU陣列218中之lru資料。在此狀況 下,快取記憶體陣列216含有該資料且無其他資訊。目錄 陣列224可被視為擁有快取記憶體陣列中之所有其他資訊 (諸士位址、有效性及快取記憶體一致性狀態)之陣列。當 存在具有存取目錄及快取記憶體陣列之位址之以快取未中 請求時,若位址與儲存於目錄陣列224中之相應項目中的 ί) 位址匹配,則其意謂在L2快取記憶體陣列中存在命中。否 則,發生未中。此對於LRU資料之更新為L2快取記憶體 (快取記憶體陣列21 6)中之最近最多使用及最近最少使用的 集合。LRU控制220藉由回寫至LRU陣列218來根據本文中 描述之一元樹方案更新LRU資料。快取記憶體陣列2丨6回 應於目錄陣列224上之命中而傳回資料至執行單元21()。 目錄陣列224中之未中導致執行單元21〇將請求置放於L2 載入及儲存控制222中。請求保持於此組件中,直至Μ載 入及儲存佇列控制222自主機匯流排228擷取資料。回應於 120I82.doc -15- 200817897 此未中,LRU控制220藉由回寫至LRu陣列21 8來根據二元 樹方案更新LRU資料。此LRU資料之更新含有快取記憶體 陣列216中之最近最多使用及最近最少使用之快取記憶體 集合。一旦未中資料自主機匯流排228傳回至^快取記憶 體,則LRU控制220亦轉發回此資料至L1快取記憶體及執 行單元2 1 0。 現參看圖3,其為根據一例示性實施例繪示之說明用於 沄理一快取§己憶體之組件的圖式。在此實例中,此等組件 包括快取記憶體陣列300、目錄陣列302、LRU陣列304及 偽LRU (p-LRU)控制306。快取記憶體陣列3〇〇類似於圖2中 之快取記憶體陣列21 6。可將目錄陣列3 〇2實施為圖2中之 目錄陣列224。可將LRU陣列304實施為圖2中之LRU陣列 。可將p-LRU控制306實施為圖2中之LRU控制22〇或 LRU控制220之一部分。 此圖式說明p-LRU控制306如何與快取記憶體陣列3〇〇、 目錄陣列302及LRU陣列304相互作用。只要p-LRU控制306 自執行單元或L2載入及儲存佇列(未圖示)連同位址接收到 載入/儲存請求,p-LRU 306便檢查LRU 304内之資料。詳 言之’ p-LRU控制3 06自LRU陣列304擷取LRU位元。相同 數目之項目存在於L2快取記憶體陣列、目錄陣列3 02及 LRU陣列304中。當將L1快取未中請求向下發送至p_LRu 控制306時’此請求亦包括位址。p丄ru控制306使用此位 址在所有三個陣列(快取記憶體陣列3〇〇、目錄陣列3〇2及 LRU陣列3 04)中進行查找。目錄陣列中之命中導致L2快取 120182.doc -16- 200817897 。己隐體陣列中之.相應項目傳回快取記憶體資料。lRU陣列 3〇4中之相應項目將傳回LRU位元至p_LRu控制3〇6以用於 更新及替換。若目錄陣列3〇2中發生未中,則忽略來自快 取圯丨思體陣列300中之相應L2快取記憶體陣列項目的資 料。當未中資料傳回時,來自相應LRU陣列項目之lRU資 料將用於替換。 相應LRU項目中之所有位元將用於計算一替換。p-LRu 抆制306檢查此等位元以在快取未中情況下選取或選擇快 取圮憶體陣列300中之最近最少使用的集合以用於替換。 使用如下參看圖4所描述之選擇方法來選擇快取記憶體中 之集合。更新新的LRU位元以使其為快取命中或快取未中 指向下一個最近最少使用的集合。P-LRU控制306接著將 新的LRU位元及其陣列寫入賦能發送回lru陣列304。 現簽看圖4,其為根據例示性實施例繪示之說明二元樹 的圖式。二元或根樹400含有頁4〇2_414。二元樹4〇〇為可 在LRU陣列(例如圖3中之LRU陣列3〇4)中實施之二元樹的 圖不。在此等實例中,此樹用於判定快取記憶體中之哪些 集合將被替換。頁402為基礎頁且對應於位元〇 ;頁4〇4對 應於位元1 ;頁406對應於位元2 ;頁408對應於位元3 ;頁 4 10對應於位元4 ;頁412對應於位元5 ;且頁414對應於位 元6。 最後的頁(頁408-4 14)指向此等實例中之集合。當 然’視特定實施例而定,可實施不同數目的集合。若將頁 402中之位元〇設定為〇,則方法向左前進至頁4〇4。若將頁 120182.doc •17· 200817897 402中之位元〇設定為!,則方法向樹之右側前進至頁。 無論何時存取以二元樹400表示之集合,貝,jp_LRU控制(例 如圖3中之p-LRU控制3〇〇)將相應LRU位元設定為指向遠離 彼集合。 在此等實例中,實施二元樹4〇〇以用於p_LRU中之二元 樹演算法。當快取記憶體中存在鎖定時,可能發生集合之 不平衡替換,因為當二元樹400中之集合為供某些應用使 用而鎖定時,二元樹4〇〇之一側可能具有更多的存取。二 兀樹400具有兩側。一側(左側)包括頁404、408及410,而 另一側(右側)包括頁406、4丨2及414,且為左側之相對側。 重側為二元樹之具有已鎖定的更多集合的側。 當前偽LRU系統將快取記憶體(例如圖3中之快取記憶體 300)劃分為不平衡組合。舉例而言,可將8路關聯式快取 圮憶體劃分為5路與3路或劃分為6路與2路。舉例而言,鎖 定集合A、B、C、D及E以供程式X使用,且鎖定集合F、G 及Η以供程式γ使用。因為程式X僅可替換集合a、b、c、 D及E,所以p-LRU僅可更新LRU位元(〇、i、3、4)以用於 替換。忽略位元(2、5、6)。結果,集合E在此實例中每隔 一次快取未中被選取用於替換。若發生快取未中,則選擇 集合D。p-LRU控制使位元翻轉,從而導致將D設定為相反 值,導致位元0變為邏輯1。 由於在此實例中存在鎖定,因此當位元〇為邏輯丨時,尸 LRU僅選取集合E以用於替換。在下一未中情況下,將 LRU控制位元〇設定回邏輯〇,且選擇集合B。下一未中導 120182.doc -18- 200817897 致位元〇改變為邏輯1,從而導致再次選取集合E。當發生 未中時,p-LRU控制選擇位元〇被設定為邏輯〇之側上的不 同集合’而P-LRU控制在位元〇被設定為邏輯1時,總是選 擇集合E。
對於對同一同餘類之ίο次連續快取未中,在完全lru中 各集合僅應被選取2次以用於替換。在此實例中,p_LRu 選取集合E為五次。因此,在連續快取未中狀況下,僅約 達成το全LRU之效能的40%。此最糟狀況可適用於在二元 樹之左側或右側上保留或鎖定4個集合,且在該二元樹另 一側上僅保留或鎖定一個集合的任何狀況。 例示性實施例使用虛擬計數器416減少了快取記憶體(1 中存在集合之鎖定)中之集合的此不平衡替換。在此等實 例中,虛擬計數器416係位於圖3中之LRU陣列3〇4中。在 此等實例中’使用圖3中之LRU陣列3附之各項目的位元 0位πΐ及位7L4來形成虛擬計數器416。此計數器為計數 方式與正常計數器不同之廑擬計數器。舉例而言,LRU陣 列之各項目的位元0將改變為,,Γ,,除非位元〇、位元卜位 二^於,,G11”。虛擬計數器416用於強制請2中之位元〇 杏對肖^餘類之快取記憶體存取時不更新。在此等 貝歹’,同餘類為快取記憶體陣列項目或列。 取tLr具有相同較低位址集合之資料映射至相同的快 炉取:-員目纟8路集合關聯式快取記憶體中,在相同 快取記情髀诏B _ 1 u 中,若Μ 可儲存8個不同的資料。在此等實例 取命中或對於-集合之替換,則發生快取記 120182.doc -19- 200817897 憶體存取。 在此等例示性實例中,當虛擬計數器4i6指示已發生對 側之夕於對輕側之存取時,頁術中之位元〇更新。具體 而 '在此貫例中,在於重側上已發生4次命中後,虛擬 • 。十數即416將頁402中之位元〇改變為邏輯1。在繪示之實例 • 巾纟LRU位〇之_側上,鎖定4個集合,而在另一側 中鎖疋一個集合。剩餘位元(諸如LRU位元1、3及4)以與 (、 正^肋方案相同之方式被切換。在此等例示性實例中, 僅位元0由虛擬計數器強制。 該等例示性實施例改良了此偽LRU系統之效能,而不增 加額外的LRU位元。在此等例示性實施例中,現有位元用 作如虛擬計數器416所示之虛擬計數器。在此等實例中, 用於一元樹400之虛擬叶數器確保在p_LRU控制已選取 位元〇之重側四次後,P_LRU控制中之邏輯選取lru位元〇 之位元大小。在此實例中,當將具有頁4〇2中之LRU位元 ( 〇、頁404中之位元1,及位元4之虛擬計數器416設定為 ”011 ”時,ρ-LRU控制將頁402中之lRU位元〇切換為邏輯 1,以選取集合E作為下一個最近使用之集合用於替換。結 果,在此等實例中,在卜LRU控制選擇頁4〇2中之位元〇四 次後,p_LRU控制選擇集合β作為下一個最近使用之集合 用於替換,而非重複選擇集合A-D中之資料。 接著參看圖5,其為根據一例示性實施例繪示之快取未 中狀況下之等式的圖式。等式5 00為可在lru控制(例如圖 3中之p-LRU控制306)中實施之等式的實例。用於計算新的 120182.doc -20· 200817897 LRU位元之等式見於部分500中,而寫入脈衝等式見於部 分502中。部分5〇〇中之等式展示藉由p_LRU控制用於在快 取未中狀況下計算新的LRIj位元〇、1、3及4的等式。該等 用於LRU位元i、3及4之等式與正常p_LRU控制所使用之等 式相同。
在每次快取未中或快取命中發生時,LRU資料用於計算 替換。亦需要為對同一快取記憶體項目之下一次存取而更 斤匕為料此專專式展示P-LRIJ控制如何產生更新的lru 4元僅富舊的LRU位元0 ' 1及4 = ”〇 11"時,p-LRU控制才 將LRU位疋〇改變為丨。無論何時需要因為發生對快取記憶 體陣列之存取而更新LRU陣列,則使用寫入脈衝等式。 吏用P刀502中之寫入脈衝等式以.節約功率,使得將會 僅將彼等需要更新之LRU位元回寫至LRU陣列。對於彼等
不需要更新之LRU位it,彼等LRU位元不將被回寫至LRU 陣列。無論何時發生對L2快取記憶體之存取,則寫入脈衝 等式為各更新的LRU位元產生功率符記。此等符記用於判 定什麼位元將藉由P-LRU控制回寫至LRU陣列。因此,當 無對L2快取記憶體之存取發生時’無需更新刚陣列。 現參看圖6,其為說明根據一例示性實施例之用於快取 命中狀況之等式的圖 <。等式6〇〇為用於實施所說明之 位元之等式 中之p-LRU控制3 06)中實施。用於計曾 、 1斤新的LRU位元之等 式見於部分600中,而寫入脈衝等式 飞見於部分602中。圖6 中之部分600中之等式展示用於藉由 田P-LRU控制在快取命 120182.doc -21 - 200817897 中之狀況下,計算新的LRU位元0、1、3及4的等式。 舉例而言,LRU—bit 0含有LRU 一 bit 0之值,其為”〇”抑或 為1 。该等用於LRU位元1、3及4之等式與正常p_LRU控 制使用之等式相同。結果,無論LRU位元為何且無論何時 在集合A、B或C中存在快取命中,則p-LRU控制LRU位元 1、3及4將被更新。LRU位元〇將僅在集合D被命中且在 LRU位元0、1及4等於”〇 11 ”時被更新。無論何時需要因為 發生對快取記憶體陣列之存取而更新Lru陣列,則使用部 分602中之寫入脈衝等式。舉例而言,LRU〇—WR—EN為用 於LRU—ΒΙΤ0之功率符記。 現參看圖7 ’其為根據一例示性實施例繪示之說明lRu 位兀之定義的圖式。在此實例中,表7〇〇說明LRU陣列内 之不同集合名稱之LRU位元。在此實例中,此等集合名稱 對應於來自圖4中之二元樹4〇〇之集合A_H。在此實例中, 項目702-716分別對應於集合A-H。此等項目中之lru位元 的值對應於達到圖4中之二元樹4〇〇中之特定集合所需的 值。 現筝看圖8,其為根據一例示性實施例繪示之說明基於 圖5及圖6中“述之等式而對lru位it進行之更新的圖式。 在表800中,項目802_81〇分別含有針對集合B、匸、Α、β 及E之更新的LRU位元。此等位元為見於圖3中之乙肋陣列 304中之位TL的實例。在此等實例中,p_LRu控制使用具 有LRU位元〇、位元〗及位元4之虛擬計數器進行此等^ 新。以此方式,相對於通常將需要晶片上之額外空間的實 120182.doc -22- 200817897 際LRU貫施例達成增強的效能。 在快取命中狀況下,P-LRU控制僅當快取命中存現於集 合D上,且集合D為最近最少使用之集合時,將位元〇 設定為1。在此實例中,再返回參看圖4中所描述之實例, 集合D在二元樹之重側上。自彼實例可見,集合a、b、 C、D及E鎖定用於供程式又使用,而集合卩、鎖定用 _ 於供程式Y使用。較輕側為二元樹之具有較少的鎖定用於 f、 特疋程式之集合的側。一旦P-LRU控制將LRU位元〇設定為 邏輯1,則此位元保持設定為丨,直至較輕側上之集合被選 取用於替換。
現芩看圖9,其為根據一例示性實施例繪示之說明使用 虛擬計數器以替換集合之表。在此實例中,表9〇〇展示具 有LRU位兀〇、位元丨及位元4之虛擬計數器的使用。在此 實例中,存在項目902_914。各項目含有一動作、一當前 LRU位元、一集合以替換及更新1][111位元。p_LRu使用虛 〇 擬計數器更新LRU位元。如在該特定實例中可見,P-LRU 控制選取集合E用於替換兩次而非將在通常使用之方法下 發生之四次。結果,此虛擬計數器方案提供對典型偽LRu 實施例之5 0 %的改良。 現茶看圖1 0,其為根據一例示性實施例繪示之用於管理 LRU陣列之方法的流程圖。圖1〇中所說明之方法可在lru 單元(例如圖3中之p_LRU控制3〇6)中實施。詳言之,此方 法說明LRU控制如何與LRU陣列及替換管理表相互作用之 時序。 120182.doc -23- 200817897 該方法開始於自請求者接收載人/料請求及位址(步驟 1〇〇〇)°在此等實例中’請求者為(例如)執行單元或L2載入 及儲存f?列控帝j。該方法存取LRU陣列及謝表(步驟 1002)。此存取在第一處理器週期期間發生。獲得資 料及RMT育料,且方法檢查LRU資料及趙資料以識別快 取記憶體陣列中之最近最少使用的集合(步驟10 0 4)。此步 驟發生於第二處理器週期期間。 此後,該方法使用LRU資料及RMT資料以識別下一個最 近最少使用的集合及與彼集合相關聯的lru資料(步驟 1〇〇6)。在此等實例中,此特定步驟發生於處理器之第三 週期上。接下來’肖方法以新的資料來更新陣列(步 驟),且其後方法終止。新的資料為由^及圖6中所 示之等式在每次快取記憶體存取時所產生之新的咖資 料。圖5中所產生之資料係針對快取未中,而圖6中所產生 之資料係針對快取命中。 現參看圖11,其為根據一例示性實施例繪示之用於使用 虛擬計數器來選擇二元樹之側的方法的流程圖。圖U中所 說明之方法可在—組件(例如圖3中之p-LRU控们06)中實 該方法回應於當集合在快取記憶體中被鎖定時對集合之 快取記憶體存取而起始。此等實例中之存取為對一集合之 快取命令或-集合之替㉟。該方法開始力等待對_集人之 快取記憶體存取的發生(步驟11〇〇)。在此等實例中;':取 記憶體存取係針對正在執行之程式。當快取記憶體存取發 120182.doc -24- 200817897 生時,該方法識別二元樹中之基礎頁所指向的側(步驟 1102)。基礎頁為二元樹中含有位元〇之頁。其後,方法使 虛擬計數器遞增(步驟丨i 〇 4)。虛擬計數器為(例如)圖4中之 虛擬计數益406,且維持在LRU陣列(例如圖3中2Lru陣列 304)中。該方法在每次對集合之存取發生時,使計數器遞 增。判定虛擬計數ϋ是Μ於已被識別之側上之集合的數 目(步驟11 0 6)。
右虛擬計數器等於集合之數目,則方法改變基礎頁之值 二元樹之相對側(步驟11〇8)。其後,方法重置虛擬 為〇( ν驟111 〇)且終止。再轉向步驟^中所作之判 定,若虛擬計數器不等於集合之數目,則方法終止。 例不性實施例可採用 或含有㈣μ硬时施m軟體實施例 體及軟體元件兩者之實施例的形式。例示性實施 施。 、)朝體、吊駐軟體、微碼等之軟體中實 此外,例示性實施例可 體獲得之電腦程式產品之开二可自電腦可用或電腦可讀媒 體提供用於電腦或任何;::,"電腦可用或電腦可讀媒 指令執行f ^心 行純或與該電腦或該任何 或電腦可讀媒體可為可含有為此描述之目的’電腦可用 於指令執行系統、設備或:置 裝置有關的程式。 或”扣々執行系統、設備或 媒體可為電子、磁诠 、, (或設備或裝置)或傳播焊體光學、電磁、紅外或半導體系統 系體。電腦可讀媒體之實例包括半 120182.doc 200817897 導體或固態記憶體'磁帶、可抽取式電腦碟片、隨機存取 記憶體(RAM)、唯讀記憶體(R0M)、硬磁碟及光碟。光碟 之當前實例包括緊密光碟-唯讀記憶體(cd_r〇m)、緊密光 碟-讀 /寫(CD-R/W)及 DVD。 適於儲存及/或執行f呈式碼之資料處理系統冑包括至少 -直接或經由系、統匯流排間接純至記憶體元件之處理 器。記憶體元件可包括在程式碼實際執行期間所使用之區 域記憶體、塊體儲存器,及提供至少某些程式碼之臨時儲 存’以便減少在執行期間必須自塊體儲存器擷取程式碼之 次數的快取記憶體。 輸入/輸出或1/〇裳置(包括(但不限於)鍵盤、顯示写、扑 標裝置等)可直接或經由介入的1/0控制器間接地㈣^ 統。 μ 亦可將網路配接器耦接至系統以使資料處理系統能夠姑 由介入的私有或公眾網路純至其他資料處理系統或遠端 印表機或儲存裝置。數據機、電㈣據機及乙太網路卡僅 為些^釗可用之網路配接器類型。 已提供例示性實施例之描述,其目的在於說明及描述, 且並非思欲砰盡無遺或限於所揭示形式的例示性實施例。 熟習此項技術者將顯而易見許多修改及變化。選 實施例’以便最佳解釋例示性實施例、實際應用之原:: 技:者能夠瞭解具有各種適合特定的預期用途之 > Θ之種貝鈿例的例示性實施例。 【圖式簡單說明】 120182.doc -26- 200817897 圖1為一其中可實施例示性實施例之資料處理系統 塊圖; 圖2為說明根據例示性實施例之處理器系統之圖式; 圖3為說明根據例示性實施例之用於管理快取記憶體之 組件的圖式; 圖4為說明根據例示性實施例之二元樹的圖式;
圖5為說明根據一例示性實施例之快取未中情況之等式 的圖式; 圖6為說明根據一例示性實施例之快取命中情況之等式 的圖式; 圖7為說明根據一例示性實施例繪示之LRU位元之定義 的圖式; 圖8為說明根據一例示性實施例之基於圖5及圖6中描述 之等式對LRU位元之更新的圖式; 圖9為說明根據一例示性實施例之使用虛擬計數器以替 換集合的表; 圖1 〇為根據一例示性實施例之用於管理Lrxj陣列之方法 的流程圖;及 圖11為根據一例示性實施例之用於使用虛擬計數器選擇 二元樹之側的方法的流程圖。 【主要元件符號說明】 100 資料處理系統 北橋及記憶體控制器中榷 南橋及輸入/輸出(I/O)控制器中樞 120182.doc -27- 200817897 106 108 110 112 116 120 122 124 126 130 132 134 136 138 140 200 202 204 206 208 210 212 214 216 處理器單元 主記憶體 圖形處理器 區域網路(LAN)配接器 音訊配接器 鍵盤及滑鼠配接器 數據機 唯讀記憶體(ROM) 硬碟驅動器(HDD) C D - R 01VI.驅動恭 通用串列匯流排埠(USB)及其他通信埠 PCI/PCIe 裝置 超級I/0(SI0)裝置 匯流排 匯流排 處理器系統 提取單元 解碼單元 發出單元 分支單元 執行單元 完成早元 記憶體子系統 快取記憶體陣列 120182.doc -28· 200817897 218 最近最少使用(LRU)陣列 220 LRU控制 222 L2載入及儲存佇列控制 224 目錄陣列 226 替換管理表(RMT) 228 主機匯流排 230 主記憶體單元 232 匯流排控制單元 234 更多處理器及外部裝置 300 快取記憶體陣列 302 目錄陣列 304 LRU陣列 306 偽 LRU(p-LRU)控制 400 二元樹 402 頁 404 頁 406 頁 408 頁 410 頁 412 頁 414 頁 416 虛擬計數裔 500 等式 502 寫入脈衝等式 120182.doc -29- 200817897 600 等 式 602 寫 入脈衝等式 700 表 702 項 g 704 項 9 706 項 S 708 項 g 710 項 712 項 § 714 項 B 716 項 800 表 802 項 g 804 項 目 806 項 目 808 項 目 810 項 目 900 表 902 項 目 904 項 目 906 項 目 908 項 g 910 項 912 項 @ 914 項 目 120182.doc -30

Claims (1)

  1. 200817897 十、申請專利範圍: 1. 一種 不〇<臂秧之電腦實 施的方法’該電腦貫施的方法包含· 回應於一程式進行之一快取記恃 ^體存取,識別一個二 元樹之一由一基礎頁所指向的側, J从形成一識別側; 判定一存取該識別側之數目是否笠 、 疋古專於一與該識別側上 之该程式相關聯之集合的數目;及 方该存取該識別側之 式相關聯之集合的數目 元樹之一相對側。 數目等於該與該識別側上之該程 ,則將該基礎頁改變為指向該二 2·如請求項1之電腦實施的方法,其進一步包含: 使用該基礎頁之-值更新—最近最少使用陣列。 3·如請求項!之電腦實施的方法,其中一虛擬計數器追蹤 該存取該識別側之數目。
    如明求項1之電腦實施的方法,其中該存取為該鎖定快 取記憶體中之一集合的一快取命中或一替換。 如請求項1之電腦實施的方法,其中該快取記憶體經鎖 定使得該二元樹失衡。 6·如凊求項1之電腦實施的方法,其中該快取記憶體具有8 個集合。 ' 入如請求項1之電腦實施的方法,其中藉由一最近最少使 用控制來執行該識別步驟' 該判定步驟及該改變步驟。 8· 一種電腦程式產品,其包含·· -有用於官理一鎖定快取記憶體中之集合之電腦可 120182.doc 200817897 用程式碼的電腦可用媒體’該電腦程式媒體包含: 一用於回應於-程式進行之—快取記憶體存取而識別 -個二元樹之_*—基礎頁所指向的側以形成一識別 側的電腦可用程式碼; 用於判定一存取該識別側之數 〜数㈢疋否4於一與該識 !ί上之j各式相關聯之集合的數目的電腦可用程式 碼;及 9. 10. 11. 12. 13. 14. 15. 料當該存取該識別側之數目等於該與該識別側上 7该程式相關聯之集合的數目時,將該基礎頁改變為 指向該二元樹之一相對側的電腦可用程式碼。 如請求項8之電腦程式產品,其進一步包含·· 用於使用該基礎頁之一值更新一最近最少使用陣列的 電腦可用程式碼。 一虛擬計數器追縱該 如請求項8之電腦程式產品,其中 存取該識別侧之數目。 如明求項8之電腦程式產品,其中該存取為該鎖定快取 口己隐體中之-集合的_快取命中或—替換。 其中該快取記憶體具有8個 如請求項8之電腦程式產品 集合。 一最近最少使用 如請求項8之電腦程式產品,其中藉由 控制來執行該電腦可用程式碼指令。 一種快取系統,其包含: 120182.doc 200817897 决取記憶體陣列,其中資料之集合係儲存於該快取 。己隐體陣列中,且其中該快取記憶體為一鎖定快取記憶 體; 最近最少使用陣列,其中該最近最少使用陣列含有 一個二元樹;及 一控制單元,其中該控制單元回應於一程式進行之一 快取記憶體存取而識別該:元樹之—由—基礎頁所指向 的側以形成—識別側;判存取該識別側之數目是否 等於一與該識別側上之該程式相關聯之集合的數目;及 在該存取該識關之數目等於該與該識別側上之該程式 相關聯之集合的數目時,將該基礎頁改變為指向該二元 樹之一相對側。 16·如請求項15之快取系統, ,、τ °茨控制早凡使用該基礎頁 之一值更新一最近最少使用陣列。 1 7·如請求項15之快取系統,苴中一 。 Ύ 虛擬汁數器追蹤該存取
    該識別側之數目。 18·如請求項15之快取系統,其中該 于取马5亥鎖疋快取記憶 體中之一集合的一快取命中或一替換。 19. 一種處理器,其包含: 一執行單元;及 其中該記憶體 纪憶體子系統,其耦接至該執行單元 子系統包含: 一快取記憶體陣列;及 一控制器,其耦接至該快取 記憶體陣列 其中該控 120182.doc 200817897 制器回應於該執行單元對該快取記憶體陣列之—心 記憶體存取而識別-個二元樹之—由一基礎頁所指向 的侧以形成一識別側;判定一存取該識別側之數目^ 否等於-與該識別側上之程式相關聯之集合的數目疋 及在該存取該識別側之數目等於該與該識別側上之該 程式相關聯之集合的數目時,將該基礎頁改變為指向 或一元樹之一相對側。 20.如請求項19之處判,其巾該記㈣子“進一步包 含: -載入及儲存仵列控制,其輕接至該快取記憶體陣 列,其:該载入及儲存佇列控制回應於—自該執行單元 接收之請求而存取該快取記憶體陣列。 120182.doc
TW096113350A 2006-04-25 2007-04-16 Pseudo-LRU virtual counter for a locking cache TW200817897A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/380,140 US7516275B2 (en) 2006-04-25 2006-04-25 Pseudo-LRU virtual counter for a locking cache

Publications (1)

Publication Number Publication Date
TW200817897A true TW200817897A (en) 2008-04-16

Family

ID=38620810

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096113350A TW200817897A (en) 2006-04-25 2007-04-16 Pseudo-LRU virtual counter for a locking cache

Country Status (4)

Country Link
US (1) US7516275B2 (zh)
JP (1) JP5090047B2 (zh)
CN (1) CN100573477C (zh)
TW (1) TW200817897A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8660234B2 (en) 2008-07-31 2014-02-25 International Business Machines Corporation RAM based implementation for scalable, reliable high speed event counters

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006101113A1 (ja) * 2005-03-22 2006-09-28 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ制御方法およびキャッシュメモリ制御装置
US7512739B2 (en) * 2006-07-05 2009-03-31 International Business Machines Corporation Updating a node-based cache LRU tree
US8296320B1 (en) * 2007-04-30 2012-10-23 Network Appliance, Inc. Method and system for storing clients' access permissions in a cache
US7861041B2 (en) * 2007-09-04 2010-12-28 Advanced Micro Devices, Inc. Second chance replacement mechanism for a highly associative cache memory of a processor
US8566529B2 (en) * 2008-02-13 2013-10-22 International Business Machines Corporation Method, system and computer program product for generalized LRU in cache and memory performance analysis and modeling
US8195881B2 (en) * 2008-02-26 2012-06-05 International Business Machines Corporation System, method and processor for accessing data after a translation lookaside buffer miss
US8140767B2 (en) * 2009-06-04 2012-03-20 International Business Machines Corporation Cache management through delayed writeback
US8386717B1 (en) * 2010-09-08 2013-02-26 Symantec Corporation Method and apparatus to free up cache memory space with a pseudo least recently used scheme
US20130339620A1 (en) * 2012-06-15 2013-12-19 Futurewei Technololgies, Inc. Providing Cache Replacement Notice Using a Cache Miss Request
US9164928B2 (en) * 2013-05-22 2015-10-20 Globalfoundries U.S. 2 Llc Validation of cache locking using instruction fetch and execution
GB2528071B (en) * 2014-07-08 2021-04-07 Advanced Risc Mach Ltd Arbitrating and multiplexing circuitry
CN104850508B (zh) * 2015-04-09 2018-02-09 深圳大学 基于数据局部性的访存方法
US11106599B2 (en) * 2016-09-30 2021-08-31 Intel Corporation System and method for replacement in associative memories using weighted PLRU trees
US10528482B2 (en) * 2018-06-04 2020-01-07 International Business Machines Corporation Cache management
US11360704B2 (en) 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device
CN110704541A (zh) * 2019-10-15 2020-01-17 浪潮云信息技术有限公司 一种Redis集群多数据中心高可用的分布式方法及架构
CN112948283B (zh) * 2021-01-25 2024-03-08 中国人民解放军军事科学院国防科技创新研究院 一种Cache替换方法
US11893254B2 (en) * 2021-06-04 2024-02-06 International Business Machines Corporation Dynamic permission management of storage blocks

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06124238A (ja) * 1992-10-13 1994-05-06 Toshiba Corp 書換え対象エントリ選択方法および装置
US5594886A (en) * 1994-10-23 1997-01-14 Lsi Logic Corporation Pseudo-LRU cache memory replacement method and apparatus utilizing nodes
TW374873B (en) * 1997-06-30 1999-11-21 Hyundai Electronics Ind A high-performance LRU memory capable of supporting multiple ports
US20030159003A1 (en) * 2001-10-23 2003-08-21 Ip-First, Llc Associative cache memory with replacement way information integrated into directory
JP3988485B2 (ja) * 2002-02-25 2007-10-10 セイコーエプソン株式会社 キャッシュ回路、情報処理装置及び電子機器
US7020748B2 (en) * 2003-01-21 2006-03-28 Sun Microsystems, Inc. Cache replacement policy to mitigate pollution in multicore processors
US7055004B2 (en) * 2003-09-04 2006-05-30 International Business Machines Corporation Pseudo-LRU for a locking cache
EP1667028A4 (en) * 2003-09-19 2008-10-29 Matsushita Electric Ind Co Ltd ANTEMEMOIRE AND METHOD FOR CONTROLLING ANTEMEMOIRE
KR100813370B1 (ko) * 2003-11-12 2008-03-12 마쯔시다덴기산교 가부시키가이샤 캐시 메모리 및 그 제어방법
US7558921B2 (en) * 2005-08-16 2009-07-07 International Business Machines Corporation Method for data set replacement in 4-way or greater locking cache
US7716423B2 (en) * 2006-02-07 2010-05-11 International Business Machines Corporation Pseudo LRU algorithm for hint-locking during software and hardware address translation cache miss handling modes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8660234B2 (en) 2008-07-31 2014-02-25 International Business Machines Corporation RAM based implementation for scalable, reliable high speed event counters
US9088284B2 (en) 2008-07-31 2015-07-21 International Business Machines Corporation RAM based implementation for scalable, reliable high speed event counters

Also Published As

Publication number Publication date
JP5090047B2 (ja) 2012-12-05
CN100573477C (zh) 2009-12-23
US20070250667A1 (en) 2007-10-25
US7516275B2 (en) 2009-04-07
JP2007293839A (ja) 2007-11-08
CN101063957A (zh) 2007-10-31

Similar Documents

Publication Publication Date Title
TW200817897A (en) Pseudo-LRU virtual counter for a locking cache
US9092321B2 (en) System and method for performing efficient searches and queries in a storage node
US9021189B2 (en) System and method for performing efficient processing of data stored in a storage node
TWI545435B (zh) 於階層式快取處理器中之協調預取
US9280474B2 (en) Adaptive data prefetching
CN107844267B (zh) 缓冲区分配和存储器管理
US11349639B2 (en) Circuit and method for overcoming memory bottleneck of ASIC-resistant cryptographic algorithms
US8196147B1 (en) Multiple-processor core optimization for producer-consumer communication
US20150019798A1 (en) Method and Apparatus for Providing Dual Memory Access to Non-Volatile Memory
US20030105940A1 (en) Method and apparatus for reinforcing a prefetch chain
US8447897B2 (en) Bandwidth control for a direct memory access unit within a data processing system
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
TW201234263A (en) CPU in memory cache architecture
TW201220197A (en) for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment
JPS595483A (ja) 計算装置の動作方法
KR20190052546A (ko) 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법
TW202215251A (zh) 用於合併及分層資料架構的適應性路由
KR20210038313A (ko) 레이턴시에 중점을 둔 판독 동작과 대역폭에 중점을 둔 판독 동작 사이의 동적 변경
JP2017522645A (ja) フラッシュメモリベースのストレージデバイスの入力/出力仮想化(iov)ホストコントローラ(hc)(iov−hc)
US7444435B2 (en) Non-fenced list DMA command mechanism
CN101652759B (zh) 可编程数据预取的方法和系统
TWI292989B (en) Method,system and apparatus for hublink read return streaming and mechine-readable medium
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
TW201941087A (zh) 具有旋轉布隆過濾器之資料結構
US10303375B2 (en) Buffer allocation and memory management