TWI238935B - Reconfigurable cache controller for nonuniform memory access computer systems - Google Patents
Reconfigurable cache controller for nonuniform memory access computer systems Download PDFInfo
- Publication number
- TWI238935B TWI238935B TW092120849A TW92120849A TWI238935B TW I238935 B TWI238935 B TW I238935B TW 092120849 A TW092120849 A TW 092120849A TW 92120849 A TW92120849 A TW 92120849A TW I238935 B TWI238935 B TW I238935B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache memory
- memory
- cache
- node
- line
- 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
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
1238935 玖、發明說明: 【發明所屬之技術領域】 本發明一般與用於電腦系統的快取記憶體之快取記憶體 控制器的設計有關,在該等電腦系統中該等記憶體之間的記 憶體存取潛時有變化,資料即從該等記憶體中快取。 【先前技術】 用於電腦系統的組關聯式快取記憶體之設計中的當前實 踐係採用一預定及固定替換方法以便在具有映射至一既定 組的一快取記憶體錯失時在該組内選擇要替換的一線路。例 如在採用最近取少使用(least recently used ; LRU)替換的 一四路組關聯式快取記憶體中,為了處理映射至既定組的一 快取記憶體錯失,該快取記憶體控制器應選擇該組之四線路 中的最近最少參考快取記憶體線路來替換。在此情況下該 LRU資訊係在該快取記憶體目錄中編碼,而且該快取記憶體 控制器硬體更新用於每個快取記憶體存取的快取記憶體目 錄LRU資訊。料速度,該替換方法係實施為硬體邏輯。雖 然已廣泛地研究了快取記憶體之設計、快取記憶體目錄及快 取記憶體控㈣H,但是-根本假定為該替換方法係固定並且 貪施為該快取記憶體控制器中的硬體邏輯。 【發明内容】 依據本發明之-方面,提供用於一電腦系統中的一組關聯 式快取記憶f豊之一快取記憶體控制器,該電腦系、、统包括一快 取記憶體替換控制陣列(Cache Replacemem c〇ntr〇i An吖; CRCA)。該CRCA可由系統軟體窝入。藉由適當載入該crca 86861 1238935 4内容,為處理一錯失而採取的該快取記憶體控制器選擇要 替換的-線路之方法可動態重新配置以便改善性能而不影 響該快取記憶體_器之速度。本發明可應料記憶體存取 潛時有變化的電腦系統’從如非均勻記憶體存取^醜滿⑽ me—mory access ; NUMA)系統、具有非壓縮記憶體區域的壓 縮記憶體系統、某些主要記憶體模組係以低功率模式運作以 減小系統功率消耗的電腦系統等。該CRCA包含已定義用於 替換選擇的一組狀態中之每個快取記憶體線路狀態之一項 目。例如在-NUMA系統的情況下,一設計包括每(節點,廳 f置)對之-狀態,其中「節點」為該快取記憶體線路從中 讀取的該NUMA系統之節點數量,而「聊位置」為g至叫用 於K路組關聯式快取記憶體)中的—數字,該數字藉由最後參 考而排序每組中的線路(LRU位置〇指最近參考線路,則位 置1指第二最近參考線路等)。為了處理-錯失,該快取記憶 體控制器決定該錯失映射的該組中的每個快取記憶體線路 之狀怨的孩CRCA中的索引,並選擇具有最大財引的狀態 中之線路來替換。此外,藉由控縣個快取記憶體控制器, 可收集各種狀態的線路之參考數量方面的統計及各種記憶 體的記憶體存取潛時上之變化方面賴計,而且該等統計可 用以計算該CRCA中的狀能 > 丨猫产, 狀,K順序以便最小化期望替換懲 罰。 本發明包括一種替換具有—組關聯式快取記憶體的電腦 系統中之快取記憶體線路的方法。該方法建立使用—可窝入 快取記憶體替換控制降列的劃分指南,其中該等指南可藉由 86861 1238935 將資料寫入該快取記憶體替換控制陣列而動態改變。本發明 依據孩等劃分指南劃分不同快取記憶體線路的狀態並在一 快取記憶體錯失後替換具有該等劃分指南之一較高等級的 一快取記憶體線路。 本發明可劃分遠端節點線路前的本地節點線路、劃分本地 郎點線路前的遠端節點線路、劃分具有一較高潛時的節點線 路前之具有一較低潛時的節點線路、根據節點潛時劃分節點 、泉路、依據一最近最少使用方法劃分每個節點内的記憶體線 路、依據每個節點的命中及錯失數量以及每個節點的記憶體 參考數量劃分該電腦系統内的節點。 本發明還揭示包括一組關聯式快取記憶體及一快取記憶 體控制器的一電腦系統,該控制器包括一可寫入快取記憶體 替換控制陣列。指南係用以劃分替換所需的快取記憶體線 路,而且可藉由將不同資料寫入該可窝入快取記憶體替換控 伟J陣列而動怨改變。該快取記憶體替換控制陣列包括足夠數 1的複數個比較器以獨特地劃分該等快取記憶體線路之每 個。 【實施方式】 如以下範例所說明,存在需要能夠重新配置該快取記憶體 控制器使用的該替換方法之情況。一非均勻記憶體存取 (NUMA)電腦系統包括許多節點,每個節點包括一處理器(或 夕個處理斋)、一快取記憶體階層及一本地主要記憶體,加 上一互連網路。為了方便,將僅考慮每個此類節點中恰好在 該本地主要記憶體之上的快取記憶體。一全球真實記憶體空 86861 1238935 間係依靠定址方案而提供在此類結構中,在該方案中任一^ 點可依靠快取記憶㈣傳送而定址任何其他節點之該真: 冗憶體。®ι說明一此類較高級系統結構。如圖i所示,在: 典型miMA系統中具有許多節點’丨中每個節點包括—處理 器(第-節點中的11〇、第二節點中的12〇及最後節點中的 13〇)、—快取記憶體(第一節點中的140、第二節點中的15〇 及最後節點中的i 6〇)及該節點之—本地記憶體(第—節點中 的Π0、第二節點中的180及最後節點中的19〇)。快取記憶體 間傳迗(其能進行從一節點至一不同節點之一非本地(遠端) 記憶體的存取)依靠一互連網路(195)進行。在每個節點中, 任一時間點的快取記憶體都將包含來自該本地記憶體及來 自mNUMA系統中的各種遠端記憶體之線路的集合。 已知一快取記憶體錯失,處理該錯失所花的潛時取決於該 錯失是否至一本地或遠端記憶體(因此稱為「非均勻記憶體 存取」)。例如若處理一本地錯失所花的時間為一平均時間 單位,則處理一遠端錯失所花的時間可平均為十倍時間單 位,即可能長一等級。考慮以下情況:假定該快取記憶體為 四路組關聯式,LRU替換在每個組内,並假設具有一快取記 憶體錯失’其中藉由該錯失映射至的該組中之Lru線路為一 运端線路’而此組中的第二LRU線路為一本地線路。同樣假 設對於至任一既定組的每個記憶體參考,機率為:其係至該
最近使用(most recently used ; MRU)線路的一命中占40%、 其係至該第二MRU線路的一命中占25%、其係至該第二LRU 線路的一命中占15%、其係至該LRU線路的一命中占10〇/〇而 86861 1238935 其係一錯失占10%。若替換該LRU線路(其為一遠端線路), 則期望懲罰可估异為〇. 1 * 1 0 = 1. 〇記憶體存取時間單位7 疋,若替換该第一 LRU線路(其為一本地線路),則期望舞3 可估算為0.15* 1=0.15時間單位。因此,在此特定情況下,較 佳替換該第二LRU線路而非嚴格按LRU替換。此範例說明在 NUMA系統的情況下,獲得處理快取記憶體錯失所需的記憶 體存取潛時上的改善可藉由不僅考慮一組關聯式快取記憶 體之每個組中的每個線路之LRU位置,而且考慮快取記憶體 命中依據其LRU位置而出現在每個線路中的機率,加上考虞 根據該線路是否係一本地線路或該等遠端記憶體之一中的 一線路而處理一錯失所需的平均時間。因此,本發明之一目 的係提供一機制,該快取記憶體控制器之替換邏輯可藉由該 機制而重新配置以便藉由考慮此類额外因素而改善numa 系統中的平均記憶體存取潛時。 需要具有用以重新配置該快取記憶體控制器之該替換邏 輯的一機制之另一範例為一壓縮記憶體系統。在此系統中, 主要記憶體係分成許多邏輯固定大小區段(壓縮單位,亦稱 線路),但是每個此類邏輯區段都係以一壓縮格式儲存(若一 區段不此得到壓縮,則其係以一非壓縮格式儲存)。實施此 類系統的一方法為採用主要記憶體與較高級快取記憶體之 間的一快取記憶體以解壓縮快取記憶體錯失上的線路,並壓 編修改快取記憶體線路之窝回上的線路。圖2說明—此類壓 縮記憶體系統所需的一高級系統結構:處理器,加上級“以) 及級2(L2)快取記憶體(21〇、22〇)共用一較大L3快取記憶體 86861 1238935 (23 Ο) ’其中資料係以非壓縮格式儲存。在一快取記憶體窝回 上,該資料係在儲存於主要記憶體(260)中之前藉由一壓縮器 (240)壓縮;相反地,在一快取記憶體錯失,從主要記憶體(260) 中讀取資料時其係藉由一解壓縮器(250)解壓縮。關於此類電 腦結構之更詳細論述’爹見以下範例:R.B. Tremaine、P. A. Franaszek、J.T. Robinson、C.O. Schulz、T.B. Smith、M.E. Wazlowski 及 P.M. Bland,IBM 記憶體擴展技術(Memory Expansion Technology ; MXT),IBM研發刊物45,2 (2001 年3 月),頁碼271 至 285 ; P.A. Franaszek 及 J.T. Robinson,壓縮隨 機存取記憶體中的内部組織,IBM研發刊物45,2 (2001年3 月),頁碼 259 至 270 ;以及P. A. Franaszek、P· Heidelberger、 D. E. Poff及J.T. Robinson,壓縮記憶體機器用之演算法及資 料結構,IBM研發刊物45,2 (2001年3月),頁碼245至258。 在此類系統中,由於性能原因,需要具有以一非壓縮格式 儲存的記憶體之某些部分。雖然實務上該等非壓縮區域通常 不會鄰近儲存,但是為了說明之方便,圖2中非壓縮記憶體 區域之一集合係表示為非壓縮記憶體270。非壓縮記憶體之 記憶體參考可避免解壓縮潛時,因而要快甚多。假定為了非 壓縮記憶體之記憶體參考係快十倍的一範例之方便,上述用 於NUMA系統的範例直接應用於具有非壓縮記憶體區域的 壓縮記憶體系統(即按照說明非LRU替換之潛在利益的範 例,若考慮記憶體存取潛,則該NUMA系統中的本地記憶體 對應該壓縮記憶體系統中的非壓縮記憶體,而該NUMA系統 中的遠端記憶體對應該壓縮記憶體系統中的壓縮記憶體)° 86861 -10- 1238935 需要具有用以重新配置該快取記憶體控制器之替換邏輯 的一機制之另一範例為一電腦系統,其中為了減小功率消 耗,某些主要記憶體模組係以一低功率模式運作。用 圮憶體的各種低功率模式係說明,例如在論文「控制^^八“ 功率模式用之硬體及軟體技術」中,該論文由Delaluz等人編 窝,其係在IEEE電腦學報中,卷號5〇,編號1丨,日期2〇〇1年 U月,頁碼1154至1173。功率消耗與速度之間存在折衷··用 於DRAM的低功率模式增加記憶體存取潛時。具有不同低功 率模式中的主要記憶體模組之電腦系統的一範例係表示在 圖3中,其中具有一處理器(310)、一快取記憶體(32〇)、常規 =動(完全功率)模式的一記憶體模組(33〇)、具有增加的記憶 體存取潛時之一備用功率模式的一記憶體模組(34〇)及具有 很而記憶fi存取潛時之—功率降低模式的—記憶體模組 (0)因此,類似於上述範例,存在改善的期望快取記憶體 性能可藉由採用-替換方法而達到的情況,該方法考慮每個 快取記憶體線路駐留的記憶體模組之記憶體潛時。 另-乾例涉及到-既定組中每個線路的修改狀況。為了替 奐—修改線路’對於―儲存快取記憶體(其係典型用於如今 :高性能快取記憶體),有必要首先將該線路窝回至記憶體 (貫務上,—般該寫回藉由將該修改線路移至-窝回缓衝器 :進行,而且該寫回並不同時進行)。但是一清潔(即非修改) 可無需—窝回而替換。因此’與—清潔線路相比,替換 一修改線路時涉及難外時間,而且若該替換方法考慮此資 成,則此資訊可用以改善期望快取記憶體性能。 86861 -11- 1238935 如以上討論所說明,存在大量範例,其中用於組關聯式快 取記憶體的期望快取記憶體性能之改善可藉由採用一替換 方法(其考慮用以替換一既定組中的每個線路之期望懲罰), 其對立於採用一固定及預定方法,例如實施為該快取記憶體 控制器中的硬體邏輯之LRU替換。但是,通常不可能在設計 時預測該期望懲罰將會如何。雖然在某些情況下可預測用於 一既定電腦系統設計的記憶體存取潛時方面的變化(例如其 對立於一 NUMA系統中的遠端記憶體之本地記憶體、所用的 DRAM記憶體之既定詳情、互連網路速度,加上許多其他設 計詳情),但是該等變化可根據工作量及其他因素而改變(例 如與NUMA系統的互連網路之競爭存在相關性)。此外,用於 一既定組中的每個快取記憶體線路之重新參考的機率一般 不能預測,因為此與工作量密切相關。因此,本發明之一目 的係提供一機制,該快取記憶體控制器之替換邏輯可藉由該 機制動態重新配置而不影響該快取記憶體控制器的速度。 本發明將首先依靠一快取記憶體替換控制陣列(隨後稱為 CRCA)之内容的某些範例來說明。該CRCA為該快取記憶體 控制器中的一陣列,其可藉由系統軟體寫入,該CRC A控制 該快取記憶體控制器使用的替換方法。因此,該快取記憶體 控制器使用的該替換方法可藉由將新的數值窝入該CRCA而 重新配置。如上所述,快取記憶體控制器之設計中的當前實 踐係採用硬體邏輯中實施的一固定及預定替換選擇方法;採 用一 CRCA來控制替換選擇為本發明揭示的一區別。該CRCA 之使用係在圖4中說明為一高級,其中快取記憶體控制器邏 86861 -12- 1238935
輯410採用該快取記憶體目錄420及該CRCA 430以便在具有 映射至該組的一快取記憶體錯失時決定一既定組中要替換 的快取記憶體線路。該CRCA之格式及内容將通常取決於該 快取記憶體控制器設計所針對的系統之類型(例如NUMA系 統、可延展NUMA系統、具有非壓縮記憶體區域的壓縮記憶 體系統、具有各種活動及低功率模式之記憶體模組的電腦系 統等)。以下範例將說明在一 4節點NUMA系統之背景中(如以 上所說明,並如圖1之一般多節點情況所說明),其中該等快 取記憶體(140、150、...、160)為4路組關聯式。對於該等範 例,該CRCA之内容將表示用於該4節點NUMA系統中的節點 〇,該等内容可直接修改用於該系統之其他節點。對於該等 範例,還假定記憶體存取潛時可因該系統之每個節點而不 同,即可以具有四個大不相同的期望記憶體存取潛時用於記 憶體參考,從節點0至其本地記憶體及至節點1、2及3中的遠 端記憶體(隨後將說明用以支援具有高度可延展性的NUMA 系統之修改)。還假定在一既定組中的該等四個快取記憶體 線中之每個的LRU位置係由該快取記憶體控制器保持並記 錄在該快取記憶體目錄中(此在當前採用LRU替換方法的快 取記憶體中具有典型性)。已知該等假定,該快取記憶體中 的每個線路可以為十六個可能狀態中的一個,該等狀態係為 替換選擇之目的:具有四個LRU位置(即0、1、2及3,其中0 為該MRU線路,1為該第二MRU線路,2為該第二LRU線路, 及3為該LRU線路)及四個可能節點,該快取記憶體線路即從 該等節點(節點0、1、2及3)讀取。 86861 -13 - 1238935 總之,該CRC A包含已定義用於替換選擇的狀態之一集合 中的每個狀態所需的一項目,該等狀態為快取記憶體線路所 需的可能狀態,而且該CRCA中的該等狀態之順序決定選擇 用於替換的快取記憶體線路。更明確地說,對於具有4路組 關聯式快取記憶體的該4節點NUMA系統,該CRCA將包含一 既定順序之十六個項目。每個此類項目具有該CRC A中的一 索引,此範例中其範圍從0至15,而且一快取記憶體線路係 選擇用於替換如下。對於該快取記憶體錯失映射至的該組中 的該等四個快取記憶體線路之每個,本發明求出該線路之狀 態(LRU位置、節點)。對於該等四種狀態(其將必須為四種不 同狀態,因為每個快取記憶體線路具有一不同LRU位置)之每 個,本發明求出該CRCA中的該狀態之該索引。然後本發明 選擇具有在該CRCA中具有最大索引的狀態之快取記憶體線 路來替換。 例如,在具有4路組關聯式快取記憶體的一 4節點NUMA系 統之情況下,該CRCA可窝入如下:實施嚴格lrU替換的一 CRCA係表示在圖5A中。此實施嚴格LRU替換,因為具有LRU 位置0(即該MRU線路)的該等四個狀態具有該等最小CRCA 索引(0至3),具有LRU位置1(即該第二MRU線路)的該等四個 狀態具有該等其次的CRCA索引(4至7),具有LRU位置2(即薇 第二LRU線路)的該等四個狀態具有該等其次的CRCA索引(8 至11),而具有LRU位置3(即該LRU線路)的該等四個狀態具 有該等最大CRCA索引(12至15)。 另一範例為在該4節點NUMA系統中,記憶體存取在一本 86861 -14- 1238935
地節點與遠端節點之間極不均勾,以及選擇要替換的一本地 線路而非一遠端線路總是有利^若該組中具有一個以上的線 路’則採用該LRU本地線路。在此範例中’假定該記憶體存 取時間對於遠端節點而言接近均勻,因此若一組中沒有本地 線路,即該組中的所有線路都為遠端線路,則將選擇該LRU 線路。實施此替換方法的一CRCA係表示在圖5B中(其中,如 上所述,該CRCA係表示用於節點0,即節點0為該本地節 點)。為瞭解此CRCA實施以上說明的替換方法,首先應注意 該線路為一本地線路的該等狀態(即具有節點零的狀態)具有 該等最大CRCA索引(12至15),因而若具有一線路,則該等狀 態之一中的一快取記憶體線路將選擇用於替換。還應注意該 等四個狀態係由LRU位置排序,因此若具有一個以上的本地 線路,則該LRU線路將選擇用於替換。若該組中沒有本地線 路,則所有線路將處在具有索引〇至11的該CRCA之該等狀態 之一中。應注意該等狀態係由LRU位置排序,即具有LRU位 置〇(具有索引〇、1、2)的該等狀態首先出現,具有LRU位置 1(具有索引2、3、4)的該等狀態然後出現等。因此,若一組 中的所有線路為遠端線路,則該LRU線路將選擇用於替換。 以下提供的另一範例說明一特定替換規則之實施方案。此 類替換規則(在該4節點NUMA系統之背景下)可如下:總是替 換該LRU線路,除非該LRU線路為一遠端線路而且該該第二 LRU線路為一本地線路,在此情況下則替換該第二LRU線 路。實施此替換規則的一 CRCA係表示在圖5C中。應注意具 有LRU位置2或3且CRCA索引為14及15之本地線路若在該組 86861 -15- 1238935 中,則係首先選擇用於替換,否則該替換選擇遵循LRU順序 (CRCA陣列索引0至13)。因此,圖5C之該CRCA實施以上說 明的規則。 另一範例為該4節點NUMA系統中的節點0之記憶體存取 時間極不均勻,至節點3之遠端記憶體的潛時很高,至節點2 之遠端記憶體的潛時較高,至節點1之遠端記憶體的潛時中 等,而至該本地記憶體的潛時較低。在此類情況下,需要藉 由節點數量嚴格優先化快取記憶體替換,節點〇之線路具有 替換之最高優先權,節點1之線路具有替換之其次最高優先 權,節點2之線路具有替換之其次最高優先權,而最後節點3 之線路具有替換之最低優先權,採用LRU在相同節點之線路 中選擇。實施此替換方法的一CRCA係表示在圖5D中,其中 CRCA索引為12至15的節點0之線路具有替換之最高優先 權,CRCA索引為8至11的節點1之線路具有替換之其次最高 優先權等,以此類推,而且其中相同節點之群組線路係由 LRU位置排序。 以下範例說明如何能計算該CRCA之内容以便最小化期望 替換懲罰。此計算依賴於快取記憶體存取統計之集合,如下 所述。為此範例之目的,假定該快取記憶體控制器已控制以 便收集至LRU位置0、1、2、3中的線路之快取記憶體命中的 計數,即C[0]、C[l]、C[2]及C[3];用於至每個節點的錯失 所造成的記憶體參考之總記憶體存取週期的計數,即T[0]、 T[l]、Τ[2]及Τ[3];以及至每個節點的記憶體參考(由錯失造 成)的計數,即R[〇]、R[l]、R[2]及R[3]。應注意雖然當前快 86861 -16- 1238935 取記憶體控制器沒有此詳情等級的性能控制,但是在快取記 憶體控制器之設計方面當前具有提供增加性能控制的趨 勢。已知該等計數器,替換LRU位置p中的節點η之一線路的 懲罰可估算為與C[p] x(T[n]/R[n])成比例。應注意若期望參考 之位置可因節點而不同,則可保持計數器C[p、η]之一陣列, 其中C[p、η]為至節點η之LRU位置ρ中的線路之命中的一計 數,而該替換懲罰之一估算則與C[p、n]x(T[n]/R[n])成比例 (但是此方法採用該快取記憶體控制器中的更多計數器)。估 算替換懲罰的該等方法類似於(例如)以下專利中說明的替換 懲罰之估算:美國專利6,385,699,「根據物件替換懲罰及參 考機率管理一物件儲存」,申請人為Bozman、Robinson及 Tetzlaff,申請日期為2002年5月7日,其已讓渡給IBM且以引 用方式併入本文中(雖然在此說明的該方法比較普通,而且 沒有不適於快取記憶體控制器硬體的合適限制,但是在許多 其他本質區別中對於具有不同大小之物件的軟體管理快取 記憶體而言,其更具適用性)。在任何情況下,已計算該第 二方法之數值 C[p]x(T[n]/R[n])或 C[p、n]x(T[n]/R[n])後,對 於每個(節點、LRU位置)對,將最小化該期望替換懲罰的一 CRCA可藉由分類該等狀態進行計算以減小替換懲罰。在此 情況下,系統軟體可定期讀取以上說明的計數器、計算一 CRCA以最小化期望替換懲罰、寫入該CRCA並重設該等計數 器。或者,若缺乏此詳情等級的快取記憶體控制器性能控 制,則一CRCA可依靠一既定工作量之離線分析而計算,例 如採用該系統之一性能模式的軌跡驅動或執行驅動模擬。 86861 -17- 1238935 已提供一 CRCA之可能内容的範例後,加上一 CRCA應如何 最小化期望替換懲罰可採用性能統計或缺乏依靠離線分析
的性能統計而計算之一範例,該快取記憶體控制器替換邏輯 中的該CRCA之運作將更詳細地說明如下。一内容可定址記 憶體(或CAM,亦稱一關聯式記憶體)由保存該CAM之記憶體 内容的一暫存器陣列及允許一 CAM輸入同時與該CAM中儲 存的每個數值比較的比較器之一陣列組成。藉由擴展比較器 之該陣列,多個CAM輸入可同時與該CAM中儲存的每個數值 比較;若具有N個CAM輸入,則此將稱為一 N埠CAM。應注 意具有N個埠的大小為Μ(即該CAM保存Μ個數值)之一 CAM 需要ΜχΝ個比較器而且具有ΜχΝ個輸出。每個此類輸出為 · 「真實」(比較相等)或「虚假」(比較不相等)者。圖6說明用 · 於一快取記憶體控制器的硬體邏輯之一簡介,該控制器用以 選擇要替換的一線路,假定該4節點NUMA範例,其具有4路 組關聯式快取記憶體並具有圖5Α至5D所示的CRCA格式。每 個CRCA項目由一(節點、LRU位置)對組成,在此範例之該内 · 容中需要4位元(2位元用於該節點數量及2位元用於該LRU位 置)。採用該快取記憶體目錄610,快取記憶體控制器邏輯620 ' 求出用於一錯失已映射的該組中之線路的四個狀態(節點、 ·
LRU位置)。該等四個狀態係作為四CAM輸入發送至一4埠 16x4位元CAM 630(即該CAM記憶體儲存16個4位元數值而 且具有4個4位元輸入及4群組16個1位元輸出)。該可寫入 CRCA係實施為該CAM 630之暫存器陣列内容CRCA[〇]至 CRCA[ 15]。該等CAM輸出之結果恰好為該等4 X16二64個CAM 86861 -18- 1238935 輸出之4個的四「比較相等」信號(因為每個線路必須處於一 不同及明顯狀態)。編碼邏輯640選擇具有「比較相等」的最 大CAM輸出並將此編碼為對應產生此輸出的該〇αμ輸入之〇 土 3的一數值。取後,此數值係用作該組中的該等快取記憶 體線路之一索引以便選擇要替換的該快取記憶體線。 圖7說明圖6之編碼邏輯組件64〇的一實施方案。十六個狀 怨#號狀怨[i](〇<=i<=15)係依靠十六個r 〇R」閘極71〇採用 四個CAM輸出之連續群組決定。求出具有最大索引的「真實」 狀悲仏號而且其索引係依靠一 16線路至4線路二進制優先權 編碼器720編碼為一 4位元二進制編號state—num[〇:3]。十六個 2位元快取記憶體線路編號nne_num[1,j](〇<=i<=15 ; j=〇、” 係依靠十六個4線路至2線路二進制編碼器730採用四個CAM 輸出之連續群組產生。最後,該編碼邏輯之該2位元線路索 引輸出係由二個16線路至1線路多工器74〇產生,該4位元狀 怨編號state—num[0:3]選擇該等適當高順序及低順序線路編 號位元(line_num[i,0]及line_mxm[i5l])。 熟悉技術人士將自然明白另外的等效硬體實施方案。特定 T之,在圖6及7說明的設計中,該閘極計數可藉由注意具有 對應於CRC A索引0、1及2的狀態之線路決不可選擇用於替換 而大大減小(採用常規邏輯設計)。此較簡單,因為具有該最 高對應CRCA索引的線路將得到選擇,而且因為具有四線 路,此索引必須為3或大於3。此意味著從該CAM 630開始, 保存CRCA[0]、CRCA[1]及CRCA[2]的暫存器可以取消,而 且取決於該等暫存器之數值的所有後續邏輯也可以取消。雖 86861 -19- 1238935 /二所得取佳$又计從概念上不如所示的設計清楚,但是邏輯上 在替換延擇方面其具有等效性。在此特定情況下,此最佳化 可減小該閘極計數接近13/16,即約8〇%。 已詳細說明具有4路組關聯式快取記憶體的一 4節點 NUMA系統中的一 CRCA之使用,以下為針對上述情況的各 種一般化。為了更易於支援NUMA系統中的可延展性,作為 一第一範例,而非具有用於每(節點、LRU位置)對的該CRCA 中的項目,該等項目之「節點」組件僅可取對應本地或遠端 節點的二值。即在此範例中,所有遠端節點可連在一起,而 孩等不同節點之每個所用的該快取記憶體替換控制陣列可 具有八個項目(假定4路組關聯式快取記憶體),而不管該系統 中的節點數量為何。 作為可延展性支援的一第二稍微更複雜範例,NUMA節點 可分類為(1)本地、(2)低潛時遠端、中等潛時遠端及(4)高 潛時遠端。系統軟體可將所有遠端節點(在任一既定本地節 點上)分類為該等遠端節點類別之一,例如採用以上說明的 該等硬體計時器T[n]及參考計數器R[n]。此外,每個快取記 憶體控制益可具有等於該系統中的節點之數量的長度之一 陣列L(由軟體窝入),其中每個項目L[i]取四個數值,取決於 節點1係該等四個類別之一中的一本地節點或係一遠端節 點。取後’该CRCA可具有该形式(類別、lru位置)之項目, 其中「類別」取對應以上列舉的節點之該等四個類別的四個 數值。在此範例中,所有遠端節點可分為三個類別,而該等 不同節點之每個所用的該CRCA可具有丨6項目(假定一 4路組 86861 -20- 1238935 關聯式快取記憶體),而不管該系統 曰# T J即點义數量為何。 取後,如依靠先前技術之上述說明中的_㈣明, 以外的其他情況,其中至記憶體的存取;均 "括具有非壓縮記憶體區域的壓縮記憶體系統 小功率消耗)某些記憶體模組係以各種低功率模式運作的系 統。另-範例為替麟罰取決於—絲記憶輯路之清潔或 修改狀態的i统。用以支援最小化該等類型的系統所需的期 望替換懲罰之快取記憶體替換選擇的_ c R c A之使用係直接 與麵A系財的— CRCA之使用類比,因為所有該等*** 及範例中的記憶體存取時間之非均勾性為該等系統及範例 的共同特性,該特性利用一所需的可寫入CR(:A。 雖然本發明已按照較佳具體實施例說明,但是熟悉技術人 士應明白,本發明可在隨附的申請專利範圍之精神及範疇内 進行修改。 【圖式簡單說明】 仗以上茶考附圖的本發明之較佳具體實施例的詳細說明 中可更好地瞭解上述及其他目的、方面及優點,其中: 圖1為一多節點NUMA系統之一範例; 圖2為具有非壓縮記憶體區域的壓縮記憶體系統; 圖3為具有不同存取潛時之各種活動或低功率模式中的主 要圮憶體之一系統的一範例; 圖4為具有快取記憶體目錄及CRCA的該快取記憶體控制 器; 圖5八為用於嚴格1^11替換的〇10人(4節點1^1;]^八範例); 86861 -21 - 1238935 圖5B為用於本地線路優先權替換的CRCA (4節點NUMA範 例); 圖5C為用於LRU/第二LRU線路替換規則的CRCA (4節點 NUMA範例);
圖5D為用於藉由節點的優先權替換之CRCA (4節點NUMA 範例); 圖6為將CRCA用以選擇要替換的線路之控制邏輯(4節點 NUMA範例);及 圖7為該編碼邏輯(4節點NUMA範例)。 【圖式代表符號說明】 110 處理器 120 處理器 130 處理器 140 快取記憶體 150 快取記憶體 160 快取記憶體 170 記憶體 180 記憶體 190 記憶體 195 互連網路 210 快取記憶體 220 快取記憶體 230 快取記憶體 240 壓縮器 86861 -22 - 2501238935 260 270 310 320 330 340 350 410 420 430 610 620 630 640 710 720 730 740 解壓縮器 主要記憶體 非壓縮記憶體 處理器 快取記憶體 活動記憶體 備用記憶體 功率降低記憶體 快取記憶體控制器替換選擇邏輯 快取記憶體記憶體 快取記憶體替換控制陣列 快取記憶體目錄 快取記憶體控制器邏輯 可定址内容記憶體 編碼邏輯 閘極 優先編碼器 二進制編碼器 多工器 86861 -23 -
Claims (1)
1238935 第092120849號專利申請案 ^ 中文申請專利範圍替換本(94年3月): 拾、申請專利範園·· 一——————
έ、且古、 句記憶體存取電腦隸之方法,該電腦系 、无:有—組關聯式快取記憶體、-快取記憶體控制器及一 可寫入快取記憶體替換控料列,該方法包括: 藉由該快取記憶體控制器選擇要替換的快取記憶體線 路’用以處理快取記憶體錯失’其中該選擇係藉由該可寫 入快取記憶體替換控制陣列控制; 、在任一時間點正確保持每個快取記憶體線路於一狀態 之預定集合之-中,以便在任—時間點中該快取記憶體中 的每個組内及在該組中的每個快取記憶體線路係處於狀態 之孩預足集合中的-狀態中’該狀態不同於該組中的該等 其他快取記憶體線路之一所處的該狀態;以及 保持該快取記憶體替換控制陣列以具有對應該狀態之 預定集合中的該等狀態之每一個的一項目; 其中該選擇包括在該快取記憶體中的每組内,藉由決定 對應該組内的每個快取記憶體線路之該狀態預定集合中的 該狀態之該快取記憶體替換控制陣列中的該位置而選擇要 替換的一快取記憶體線路,並依據該快取記憶體替換控制 陣列中替換優先權位置之一預定順序,選擇要替換的快取 記憶體線路,該線路具有對應該快取記憶體替換控制陣列 中決定的該等位置中的最高替換優先權位置之一狀態。 2. —種非均勻記憶體存取之電腦系統,包括: 一組關聯式快取記憶體; 一快取記憶體控制器,其操作性與該組關聯式快取記憶 86861-940325.doc 1238935 體連接;及 可寫入快取記憶體替換控制陣列,其操作性與該快取 記憶體控制器連接, /、中謔可寫入快取記憶體替換控制陣列包括比較器之 陣列,其中比較器之數量大約為該快取記憶體替換控制 陣列中的項目數量與組關聯性之程度的乘積, 其>中比較器之冑陣列係構成以允許一快取記憶體組中 的該等線路之每個的該狀態與該快取記憶體替換控制陣列 中的每個項目之間的並列比較,而且其中該等並列比較之 結果為相等比較之一數量;及 其中孩可寫入快取記憶體替換控制陣列係調適用以藉 足t 决取屺丨思體線路而在該快取記憶體組中選擇要替 換的一快取記憶體線路,該快取記憶體線路具有與該快取 $憶體替換控制陣列中的該項目的—相等比較,該控制陣 列具有依據該快取記憶體替換控制陣列中的替換優先權位 置之一預定順序的該最高替換優先權。 •一種替換具有一組關聯式快取記憶體的一電腦系統中之快 取記憶體線路的方法,該方法包括: 建立採用一可寫入快取記憶體替換控制陣列的劃分指 南,其中該等指南可藉由將資料寫入該可寫入快取記憶體 替換控制陣列而動態改變; 依據該等劃分指南劃分不同快取記憶體線路之狀態丨及 快取圮憶體錯失後,替換具有該等劃分之一最高等級 的一快取記憶體線路。 86861-940325.doc -2- 1238935 4.如申請專利範圍第3項之方法’其中該劃分步驟劃分遠端節 點線路前的本地節點線路。 5 ·如申請專利範圍第3項之方法,其中該劃分步驟劃分本地節 點線路前的遠端節點線路。 6·如申請專利範圍第3項之方法,其中該劃分步驟劃分具有一 較高潛時之節點線路前的具有一較低潛時之節點線路。 7.如申請專利範圍第3項之方法,其中該劃分步驟根據節點潛 時劃分節點線路並依據一最近最少使用方法劃分每個節點 内的記憶體線路。 8·如申請專利範圍第3項之方法,其中該劃分步驟依據每個節 點之命中及錯失數量,以及每個節點之記憶體參考數量而 劃分該電腦系統内的節點。 如申印專利範圍第3項之方法,進一步包括將該組關聯式快 取屺憶體寫入一非均勻主要記憶體,該主要記憶體包括以 下記憶體之至少一個: 一壓縮主要記憶體; 一非壓縮主要記憶體;及 低功率模式主要記憶體,其以低於其他主要記憶體部 分的一功率位準運作。 •種非均勻記憶體存取之電腦系統,包括: 組關聯式快取記憶體;及 一快取記憶體控制器,其包括一可寫入快取記憶體替換 控制陣列, 其中用以劃分要替換的快取記憶體線路之指南可藉由 86861-940325.doc 1238935 將不同資料寫入該 改變。 寫入快取記憶體替換控制陣列而動態 11. 12· 13. Η. 15. 16. 17. :=利範園第㈣之電嶋,其中 列包括具有足夠數量的複數個比較 = 地劃分該等快取記憶體線路之每—個。 用以獨特 如申請專利範圍第1〇 端節點線路前的本系統,其W南劃分遠 2請專利_第_之電m其巾該等指南劃分本 也即點線路前的遠端節點線路。 :申請t利範圍第10項之電腦***,其中該等指南劃分具 幸乂呵潛時之節點線路前的具有一較低潛時之節點線 路〇 # 7 如申請專利範圍第10項之電腦系統,丨中該等指南根據節 2潛時劃分節點線路並依據一最近最少使用方法劃分每個 節點内的記憶體線路。 如申請專利範圍第10項之電腦系統,纟中該等指南依據每 個即點义命中及錯失數量,以及每個節點之記憶體參考數 里而劃分该電腦系統内的節點。 申叫專利範圍第10項之電腦系統,進一步包括將該組關 聯式快取記憶體與一非均勾主要記憶體連接,該主要記憶 月豆包括以下記憶體之至少一個: 一壓縮主要記憶體; 一非壓縮主要記憶體;及 低功率模式主要記憶體,其以低於其他主要記憶體部 分的一功率位準運作。 86861-940325.doc
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/272,032 US6961821B2 (en) | 2002-10-16 | 2002-10-16 | Reconfigurable cache controller for nonuniform memory access computer systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200412499A TW200412499A (en) | 2004-07-16 |
TWI238935B true TWI238935B (en) | 2005-09-01 |
Family
ID=32092559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092120849A TWI238935B (en) | 2002-10-16 | 2003-07-30 | Reconfigurable cache controller for nonuniform memory access computer systems |
Country Status (5)
Country | Link |
---|---|
US (1) | US6961821B2 (zh) |
JP (1) | JP3871331B2 (zh) |
KR (1) | KR100514677B1 (zh) |
CN (1) | CN1287297C (zh) |
TW (1) | TWI238935B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI424313B (zh) * | 2006-11-17 | 2014-01-21 | Microsoft Corp | 用於軟體交換進行次序及衝突管理之方法及電腦可讀取媒體 |
TWI509412B (zh) * | 2008-11-13 | 2015-11-21 | Ibm | 提供對具脈動式移至前端重新組織之磚式儲存陣列的存取之儲存電路、方法及處理系統 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7246102B2 (en) * | 2001-12-21 | 2007-07-17 | Agere Systems Inc. | Method of improving the lookup performance of three-type knowledge base searches |
US7237067B2 (en) * | 2004-04-22 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Managing a multi-way associative cache |
US7302543B2 (en) * | 2004-06-16 | 2007-11-27 | Nec Laboratories America, Inc. | Compressed memory architecture for embedded systems |
US7464246B2 (en) * | 2004-09-30 | 2008-12-09 | International Business Machines Corporation | System and method for dynamic sizing of cache sequential list |
US7287122B2 (en) * | 2004-10-07 | 2007-10-23 | International Business Machines Corporation | Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing |
US20060179231A1 (en) * | 2005-02-07 | 2006-08-10 | Advanced Micron Devices, Inc. | System having cache memory and method of accessing |
US7930484B2 (en) * | 2005-02-07 | 2011-04-19 | Advanced Micro Devices, Inc. | System for restricted cache access during data transfers and method thereof |
JP4368320B2 (ja) * | 2005-03-16 | 2009-11-18 | 富士通株式会社 | 情報処理システム,パイプライン処理装置,ビジー判定プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
US7218566B1 (en) * | 2005-04-28 | 2007-05-15 | Network Applicance, Inc. | Power management of memory via wake/sleep cycles |
US7991959B2 (en) * | 2005-05-16 | 2011-08-02 | Texas Instruments Incorporated | Visualizing contents and states of hierarchical storage systems |
US8606998B2 (en) * | 2006-08-24 | 2013-12-10 | Advanced Micro Devices, Inc. | System and method for instruction-based cache allocation policies |
JP2008090395A (ja) * | 2006-09-29 | 2008-04-17 | Hitachi Ltd | 計算機システム、演算用ノード及びプログラム |
WO2008043670A1 (en) * | 2006-10-10 | 2008-04-17 | International Business Machines Corporation | Managing cache data |
JP5137002B2 (ja) | 2007-01-25 | 2013-02-06 | 株式会社メガチップス | メモリコントローラ |
CN100464290C (zh) * | 2007-09-10 | 2009-02-25 | 杭州华三通信技术有限公司 | 缓存管理*** |
CN101652760B (zh) * | 2007-12-10 | 2012-12-26 | 松下电器产业株式会社 | 共享缓存控制装置、共享缓存控制方法及集成电路 |
US7930483B2 (en) * | 2008-03-04 | 2011-04-19 | International Business Machines Corporation | Associativity implementation in a system with directly attached processor memory |
US7984240B2 (en) * | 2008-03-04 | 2011-07-19 | International Business Machines Corporation | Memory compression implementation in a system with directly attached processor memory |
US8037251B2 (en) | 2008-03-04 | 2011-10-11 | International Business Machines Corporation | Memory compression implementation using non-volatile memory in a multi-node server system with directly attached processor memory |
US7966455B2 (en) * | 2008-03-04 | 2011-06-21 | International Business Machines Corporation | Memory compression implementation in a multi-node server system with directly attached processor memory |
CN101620588B (zh) * | 2008-07-03 | 2011-01-19 | 中国人民解放军信息工程大学 | 高效能计算机中可重构部件的一种连接与管理方法 |
US8725927B2 (en) * | 2008-10-15 | 2014-05-13 | Micron Technology, Inc. | Hot memory block table in a solid state storage device |
US8543768B2 (en) | 2008-11-13 | 2013-09-24 | International Business Machines Corporation | Memory system including a spiral cache |
US8868838B1 (en) | 2008-11-21 | 2014-10-21 | Nvidia Corporation | Multi-class data cache policies |
US8103894B2 (en) * | 2009-04-24 | 2012-01-24 | International Business Machines Corporation | Power conservation in vertically-striped NUCA caches |
US8068373B1 (en) | 2010-10-25 | 2011-11-29 | Network Appliance, Inc. | Power management of memory via wake/sleep cycles |
US8738962B2 (en) | 2010-11-17 | 2014-05-27 | International Business Machines Corporation | Memory mirroring with memory compression |
US8495267B2 (en) | 2010-11-24 | 2013-07-23 | International Business Machines Corporation | Managing shared computer memory using multiple interrupts |
JP5868213B2 (ja) * | 2012-02-24 | 2016-02-24 | 三菱電機株式会社 | キャッシュ制御装置、及びキャッシュ制御方法 |
US10019381B2 (en) * | 2012-05-01 | 2018-07-10 | Nvidia Corporation | Cache control to reduce transaction roll back |
EP2680152B1 (en) * | 2012-06-27 | 2017-05-03 | Alcatel Lucent | Process for managing the storage of a list of N items in a memory cache of C items of a cache system |
US10031802B2 (en) * | 2013-06-28 | 2018-07-24 | Intel Corporation | Embedded ECC address mapping |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
US9875185B2 (en) * | 2014-07-09 | 2018-01-23 | Intel Corporation | Memory sequencing with coherent and non-coherent sub-systems |
US9767042B2 (en) * | 2015-02-25 | 2017-09-19 | Intel Corporation | Enhancing cache performance by utilizing scrubbed state indicators associated with cache entries |
CN104932990B (zh) * | 2015-06-03 | 2018-05-11 | 华为技术有限公司 | 一种高速缓冲存储器中数据块的替换方法和装置 |
US9832277B2 (en) * | 2015-11-13 | 2017-11-28 | Western Digital Technologies, Inc. | Systems and methods for adaptive partitioning in distributed cache memories |
US10521432B2 (en) * | 2016-11-10 | 2019-12-31 | Sap Se | Efficient execution of data stream processing systems on multi-core processors |
CN110879797B (zh) * | 2019-10-31 | 2021-09-07 | 西安交通大学 | 高速可重构处理器配置信息缓存替换方法及存储体系结构 |
EP3876104B1 (en) * | 2020-03-03 | 2023-08-02 | Technische Universität München | Method for evicting data from memory |
CN114564882A (zh) * | 2022-01-29 | 2022-05-31 | 内蒙古工业大学 | 基于离散事件的边缘深度学习模拟器的构建与应用 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5924116A (en) * | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
US6591347B2 (en) * | 1998-10-09 | 2003-07-08 | National Semiconductor Corporation | Dynamic replacement technique in a shared cache |
US6317778B1 (en) * | 1998-11-23 | 2001-11-13 | International Business Machines Corporation | System and method for replacement and duplication of objects in a cache |
US6633891B1 (en) * | 1998-11-24 | 2003-10-14 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
US6272598B1 (en) * | 1999-03-22 | 2001-08-07 | Hewlett-Packard Company | Web cache performance by applying different replacement policies to the web cache |
US6360298B1 (en) * | 2000-02-10 | 2002-03-19 | Kabushiki Kaisha Toshiba | Load/store instruction control circuit of microprocessor and load/store instruction control method |
US6738865B1 (en) * | 2000-06-09 | 2004-05-18 | International Business Machines Corporation | Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data |
JP2002140234A (ja) * | 2000-11-02 | 2002-05-17 | Hitachi Ltd | キャッシュ装置 |
-
2002
- 2002-10-16 US US10/272,032 patent/US6961821B2/en not_active Expired - Fee Related
-
2003
- 2003-07-30 TW TW092120849A patent/TWI238935B/zh not_active IP Right Cessation
- 2003-07-30 CN CNB031524125A patent/CN1287297C/zh not_active Expired - Fee Related
- 2003-09-15 KR KR10-2003-0063739A patent/KR100514677B1/ko not_active IP Right Cessation
- 2003-09-17 JP JP2003325290A patent/JP3871331B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI424313B (zh) * | 2006-11-17 | 2014-01-21 | Microsoft Corp | 用於軟體交換進行次序及衝突管理之方法及電腦可讀取媒體 |
TWI509412B (zh) * | 2008-11-13 | 2015-11-21 | Ibm | 提供對具脈動式移至前端重新組織之磚式儲存陣列的存取之儲存電路、方法及處理系統 |
Also Published As
Publication number | Publication date |
---|---|
TW200412499A (en) | 2004-07-16 |
JP2004164606A (ja) | 2004-06-10 |
US6961821B2 (en) | 2005-11-01 |
CN1490730A (zh) | 2004-04-21 |
KR100514677B1 (ko) | 2005-09-14 |
JP3871331B2 (ja) | 2007-01-24 |
US20040078524A1 (en) | 2004-04-22 |
KR20040034388A (ko) | 2004-04-28 |
CN1287297C (zh) | 2006-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI238935B (en) | Reconfigurable cache controller for nonuniform memory access computer systems | |
US11531617B2 (en) | Allocating and accessing memory pages with near and far memory blocks from heterogenous memories | |
US20230169011A1 (en) | Adaptive Cache Partitioning | |
CN100421088C (zh) | 用于管理高速缓存数据的数字数据处理设备和方法 | |
KR101443231B1 (ko) | 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템 | |
US8725950B2 (en) | Horizontally-shared cache victims in multiple core processors | |
US6772291B2 (en) | Method and apparatus for cache replacement for a multiple variable-way associative cache | |
US9152569B2 (en) | Non-uniform cache architecture (NUCA) | |
CN106909515B (zh) | 面向混合主存的多核共享末级缓存管理方法及装置 | |
JP4006436B2 (ja) | 種々のキャッシュ・レベルにおける連想セットの重畳一致グループを有するマルチレベル・キャッシュ | |
KR102157354B1 (ko) | 효율적으로 압축된 캐시 라인의 저장 및 처리를 위한 시스템 및 방법 | |
US20130205089A1 (en) | Cache Device and Methods Thereof | |
CN1940892A (zh) | 逐出高速缓存的行的电路布置、数据处理***和方法 | |
KR102437775B1 (ko) | 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법 | |
CN103314363A (zh) | 用于设计分级存储器***的高速存储器***和方法 | |
WO2005071550A2 (en) | Multi-processor computing system that employs compressed cache lines’ worth of information and processor capable of use in said system | |
CN108762671A (zh) | 基于pcm和dram的混合内存***及其管理方法 | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
US7007135B2 (en) | Multi-level cache system with simplified miss/replacement control | |
JP2008512758A (ja) | 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法 | |
US20050071566A1 (en) | Mechanism to increase data compression in a cache | |
Chen et al. | Co-optimizing storage space utilization and performance for key-value solid state drives | |
Yeo et al. | Hierarchical request-size-aware flash translation layer based on page-level mapping | |
US20210117100A1 (en) | Hybrid first-fit k-choice insertions for hash tables, hash sets, approximate set membership data structures, and caches | |
CN111709872B (zh) | 一种图三角形计数算法的自旋存内计算架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |