TW201109924A - Partitioned replacement for cache memory - Google Patents

Partitioned replacement for cache memory Download PDF

Info

Publication number
TW201109924A
TW201109924A TW099119168A TW99119168A TW201109924A TW 201109924 A TW201109924 A TW 201109924A TW 099119168 A TW099119168 A TW 099119168A TW 99119168 A TW99119168 A TW 99119168A TW 201109924 A TW201109924 A TW 201109924A
Authority
TW
Taiwan
Prior art keywords
partition
cache memory
partitions
cache
replacement
Prior art date
Application number
TW099119168A
Other languages
English (en)
Inventor
Erich James Plondke
Lucian Codrescu
Ajay Anant Ingle
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201109924A publication Critical patent/TW201109924A/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
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

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

201109924 六、發明說明: 【發明所屬之技術領域】 本匙明大體而言係關於快取記憶體之分割替代系統及方 法。 【先前技術】 般而5,可在計算系統中使用快取記憶體以減少記憶 體存取潛時。該等計算系統可包括個人電腦、無線處理器 件(諸如無線電話、攜帶型數位助理(pda)及其他無線器 件)、遊戲系統、其他電子器件或其任何組合。通常,快 取記憶體位於處理器與主記憶體之間。由處理器存取之資 料及/或指令可自主記憶體提取且儲存於快取記憶體中以 減少潛時。 從處理器的角度來看,對快取記憶體之存取通常比對主 記憶體之存取快得多。若處理器不能定位快取記憶體中之 資料項或指令,則發生快取未命中且對主記憶體進行存取 以擷取該資料項或指令,該資料項或指令被載入快取記憶 體中。若快取記憶體已滿,則該資料項或指令可替代快^ 記憶體中之一現有項。 、 然而,在包括共用快取記憶體之多執行緒處理器中,每 一執行緒可能均可以存取快取記憶體且每—妯 執仃緒可能經 歷快取未命中,快取未命中導致新資料項祐 皮栽入快取記憶 體中。該等替代可導致自快取記憶體刪除另— '執行緒可能 不
為要之資料或指令。該等替代可對其他執行 I A 、<效能有 利影響。 148996.doc 201109924 【發明内容】 在一特定實施例中,一電路器件包括一變換後備緩衝區 (TLB),該Tlb經組態以接收一虛擬位址且將該虛擬位址 變換為一具有至少兩個分區之快取記憶體之一實體位址。 該電路器件亦包括一控制邏輯電路,該控制邏輯電路經調 適以基於一分區指示符來識別與該至少兩個分區中之經識 別分區相關聯之一分區替代策略。該控制邏輯電路回應於 一快取未命中事件而根據該經識別之分區替代策略來控制 該快取記憶體内的資料之替代。 在另一特定實施例中,揭示一種方法,其包括讀取一變 換後備緩衝區(TLB)項目以將一虛擬位址映射至一實體項 目。該實體項目包括與一包括至少兩個分區之快取記憶體 之一分區相關聯之-分區指示符。該方法亦包括基於該分 區指示符倆選擇一快取記憶體替代策略。 在又一特定實施例中,揭示一種方法,其包括將一快取 記憶體分割為_或兩個以上分區一系統組態設定定義 該兩個或兩個以上分區中之每—者之大小。該方法亦包括 組態-與該兩個或兩個以上分區中之每一者相關聯之替代 策略。 確疋快取記憶體分區替代策略之電路器件之實施例所提 供之-特定優點在於’電路器件可針對多執行緒處理器中 之共用快取記憶體之高優先權執行緒提供服務品質⑴叫 之保證。舉例而言’藉由在發生快取未命中時控制快取行 之替代本文中揭示之替代控制邏輯電路之實施例可使替 148996.doc 201109924 代限於快取記憶體内之特 〇 符疋刀區此貫例中,替代控制邏 輯電路可藉由阻止盘其振 一 。優先榷執灯,.者相關聯之快取記憶體 分區中的資料或指令之替 ° #代术減/興冋優先權執行緒相關 之資料或指令之不符合要求的替代。 另-特定優點在於,用於分區式快取記憶體之每一分區 亡替代策略可不同’其允許較高服務品質之操作具有受較 嚴格控制之替代策略,而其他處理程序利用循環替代策 略、隨機替代策略或其他替代策略。此分區特定替代策略 允許改良在多執行緒處理系統中控制快取記憶體效能之細 微性。 「=審閱整個申請案(包括以下章節:「圖式簡單說明」、 貫施方式」及「申請專利範圍」)後,本發明之其他態 樣、優點及特徵將變得顯而易見。 【實施方式】 圖1為包括一用以管理分區式快取記憶體内之快取記憶 體替代之快取記憶體替代控制電路104的處理器1〇〇之特^ 說明性實施例之方塊圖。在特定實例中,處理器1〇〇可為 數位信號處理器(DSP)、通用處理器、另一類型之處理器 或其任何組合。處理器100包括一記憶體1〇2,該記憶體 1 〇 2經由一匯流排介面丨〇 8耦接至一分區式共用指令快取記 憶體110及一分區式共用資料快取記憶體丨丨2。 快取記憶體替代控制電路104亦耦接至匯流排介面1〇8且 輕接至一變換後備緩衝區(TLB)1〇6。tLB 106包括用於將 虛擬記憶體位址變換為實體記憶體位址的一或多個表項 148996.doc 201109924 目。每一表項目包括一識別分區式共用指令快取記憶體 110或分區式共用資料快取記憶體丨12之一分區的分區識別 符(亦即,分區位元或p位元)1〇7。快取記憶體替代控制電 路104經調適以提供虛擬位址至TLB 1〇6且自TLB 106接收 實體位址及分區識別符。快取記憶體替代控制電路丨〇4基 於分區指示符107允許分區式共用指令快取記憶體11〇或分 區式共用t料快取記憶體112中之一纟内的一經識別之分 區中之項目的替代。詳言之,當發生導致對主記憶體1 之存取的快取未命中時,快取記憶體替代控制電路104自 TLB 106擷取分區指示符1〇7且使用分區指示符1〇7確定在 何處允卉陕取行替代(亦即,可在哪一分區中寫入所擷取 之資訊)。在特定實施例中,快取記憶體替代控制電路1〇4 可與分區式共用指令快取記憶體"〇、分區式共用資料快 取s己憶體112或其任何组合整合。 分區式共用指令快取記憶體11〇經由一匯流排ηι耦接至 :定序器114。定序器114亦接收可自一中斷暫存器(未圖 不)擷取之一般中斷116。在特定實施例中,分區式共用指 令快取記憶體110可經由複數個5見行指令%存器(未圖示燴 接至定序器114’該等現行指令暫存器可㈣至匯流排⑴ 且與處理器100之特定執行緒相關聯。在特定實施例中, 處理器1GG為包括六個執行緒之交錯式多執行緒處理器。 —在特定實施财’ E流排⑴為—百二十人位以⑵位 凡)匯流排且定序器114經組態以自記憶體1〇2擷取具有長 度為三十二(32)個位元之指令。匯流排lu亦耦接至第一指 148996.doc 201109924 々仃早疋118、第二指令執行單元120、第三指令執行單 凡122及第四指令執行單以4。每-指令執行單元118、 120、122、124經由整體上指示為128之匯流排輕接至一通 暫存态‘案126。通用暫存器檔案126亦可經由 排(未圖示)耦接s^ /;,L 接&序益⑴、資料快取記憶體112及記憶 憶體暫存讀案126轉接至分區式共用資料快取記 次 周適以自分區式共用資料快取記憶體112讀取 貝;且將資料寫人至分區式共用資料快取記憶體112。 處理器100亦可包括監督器控制暫存器U 存器136,直用以铗山—— 王4徑制暫 ㈣於a ^ 可由定序心怕之控制邏輯存取以 =二 元。在特定實例中,監督器控制暫存 〇〇 控制暫存11 136可包括用以組態分區式丘用# =取記憶㈣。及分區式共用資料快取記憶體上= = =:::元。此外,監督器控制暫存器⑽全 能可由快取記憶體替代控制電路104存 特m制暫存器134及/或全域控制暫存器136内之 特疋位7L可指疋一替代於制第 取计替代控制策略將由快 記憶體110及分令快取 在特定f 記憶體112内之特定行。 1 ’快取記憶體可為n路快取記憶體,豆經分 柄吏得η路快取記憶體之第一路經與第一分㈣ :快取記憶體之第二路徑與第二分區相關聯。在特定實例 令,替代控制策略可為分區特定的^寺疋只例 用於不同分區内之替代。可在管吏替代策略可 里刼作杈式期間組態替代[ 148996.doc 201109924 控制策略。在特定說明性實施財,特錢隸式可能能 夠在操作期間(亦即,工作中)組態替代控制策略以增強效 在特定實施例中,分區式共用指令快取記憶體11〇可由 執行單7GU8、120、122及124共用且可分割為兩個或兩個 以上分區。舉例而言,分區式共用指令快取記憶體ιι〇可 刀。彳為第分區及第二分區,諸如圖2中說明之分區230及 232及圖3中說明之分區306及308。在特定實例中,可將較 南優先權執行緒指派至第—分區而可將較低優先權執行緒 或不受信任之執行緒指派至其齡區。纟發生與較高優先 權執行緒(諸#高優&權處理執行緒)㈣之快取未命中 時,自主記憶體1〇2擷取新值,且快取記憶 路⑽確卜快取記憶體分區位元且根據該快取== 區位元將所摘取之新值分配至所選快取記憶體分區⑼ 如,第一分區230)。此外,快取記憶體替代控制電路⑽ 阻止其他處理程序替代所選分區中之資料或指令。藉由選 擇性地控制已快取指令之替代,可針對高優㈣執㈣增 強服務品質,因為用於高優先權執行緒之指令不會被與^ 一執行緒引起之快取未命中相關之所擷取資料替代。 類似地’可將與較高優先權執行緒相關聯之資料維持於 包括第-及第二分區之共用分區式資料快取記憶體⑴ 中。藉由阻止較低優先權執行緒替代第一分區中之資料, 較高優先權執行緒可確信第一分區中之資料不會基二較低 優先權執行緒引起之快取未命中而被替代n,可增強 148996.doc 201109924 針對特定執行緒之服務品質。 寺:::中,快取記憶體替代控制電路104可基於根 日不付⑽所確定之分區來選擇特定替代演算法。 ::而言,假設第一分區與較高優先權執行緒相關聯,則 '取δ己憶體替代控制電路104可選擇且利用「最不常用 型替代演算法或「循環」型替代演算法以用於管理第一二 區内之快取行替代。快取記憶體替代控制電路1〇4可選擇 不同替代演算法以用於第:分區。在特定實例中,快取記 憶體替代控制電路104可選擇性地應用循環演算法、最^ 常用替代演算法、隨機替代演算法中之—者或其任何組合 以用於第二分區中的資料或指令之替代。在特定實例中, 快取記憶體替代控制電路丨〇 4可基於特定執行緒之所要服 務品質來選擇特定替代演算法。可使用所選替代演算法確 定在快取記憶體110或112之特定分區内要替代記憶體之哪 一元件。 在特定實例中’快取記憶體替代控制電路1〇4可包括於 記憶體管理單元(MMU)中,且分區替代控制功能可擴展至 其他類型之記憶體。在另一實例中,記憶體替代控制電路 (諸如快取記憶體替代控制電路丨〇4)可經調適以控制對記憶 體之具有不良可快取性之分區的替代存取,使得具有不良 可快取性之分區中之記憶體結構不會將資訊驅逐出不同分 區中具有較隹可快取性之結構。 在另一特定實施例中’快取記憶體替代控制電路1 〇4經 調適以監視處理程序使用方式且動態地調整分區大小及分 148996.doc 201109924 2替f策略:提供所要服務品質給特定執行緒》舉例而 。’諸如h優先權任務(例如,即時或近即時可執行指 令)之某些任務可能需要服務品質保證。其他類型之程式 碼(諸如’ Linux®作業系統或應用程式碼java⑧,及其他 程式碼)可能不能同樣運作且可能試圖消耗很大百分比之 處理器資源。快取記憶體替代控制電路1〇4可動態地調整 分區式共用指令快取記憶體11〇及分區式共用資料快取記 憶體112中之一者或兩者内之快取記憶體分區的大小。舉 例而言,可藉由調整全域暫存器或TLB 1〇6内之頁面權限 來管理該動態分割。藉由控制對快取記憶體之特定分區内 之指令的替代存取,至少在該特定分區内為較高優先權任 務保證預期之資料及指令將不會由較低優先權任務覆寫。 圖2為包括快取記憶體替代控制電路224之處理器2〇〇之 第二特定說明性實施例的方塊圖。處理器2〇〇包括一變換 後備緩衝區(TLB)202,該TLB 202經由一匯流排206與一快 取記憶體204通信。快取記憶體2〇6亦與一記憶體管理單元 240通信,該記憶體管理單元24〇經由一匯流排2丨〇與一主 記憶體208通信。 TLB 202包括一 TLB項目表212,該TLB項目表212包括 TLB項目之清單。TLB項目表2丨2亦包括一分區指示符 214,諸如分區位元(P位元)。TLB項目表212亦可包括實體 位址、頁面大小、可快取性指示符,及權限(諸如讀取、 寫入、執行、其他權限或其任何組合)。在特定實施例 中,TLB項目表212中之每一項目具有相關聯之分區指示 148996.doc 201109924 符214 °在另—特定實施例中’ TLB項目表212中之一些項 目可有相關%之分區指示符2 i 4,且其他項目可被指派 有預設分區指示符。TLB 2〇2亦包括一用以接收虛擬位址 之輸入216 TLB 202Μ調適以在輸入216處接收虛擬位址 且將虛擬位址變換為可經由匯流排寫提供至快取記憶體 2〇4之具有分區指示符之實體位址。 在特定實施例中,快取記憶體204為多路⑺路)快取記憶 體八已括經由線路222與一標籤陣列220通信之快取記 隐體存取邏輯電路218。快取記憶體存取邏輯電路η 8包括 决取。己L體替代控制電路224,該快取記憶體替代控制 電路224基於經由匯流排2〇6接收到之分區指示符川來控 # &取„己It體204内之資料之替代。快取記憶體2()4亦包括 由線路226與標籤陣列22〇通信之分區式快取記憶體資 料陣列228。在特定實施例中’快取記憶體204為分區式指 =取記憶體陣列(諸如㈣說明之分區式共用指令快取 L體11 〇)刀區式資料快取記憶體陣列(諸如圖1中說明 之分區式共H料快取記憶體H2)或其任何組合。 快取記憶體存取邏輯電路218對自TLB 202接收到之實體 4址及刀區才曰不符貧訊作出回應。來自τα皿之每一位 址匕括;^籤部分及—索引部分(其可組成一實體位址)以 及—…玄實體位址相關聯之分區指示符214。在特定說明 只施例中f體位址可為32位元位址。在另—特定實施 J中刀區扣不符可包括用以識別快取記憶體2〇4内之一 分區的一或多個位元。 148996.doc 201109924 在特定實施例中,快取記憶體存取邏輯電路218經由線 路222將一包括索引值(Ιχ)及標籤值(Τχ)之控制信號提供至 才示籤陣列220以基於輸入索引值來摘取複數個標籤值。自 標籤陣列220操取之標籤值中之每一者對應於多路快取記 憶體資料陣列228内之複數條路徑(諸如路徑〇(w〇)、路徑 1(W1)、路徑2(W2)及路徑3(W3))中之一條不同路徑。快取 記憶體存取邏輯電路218亦經由線路234將索引值(Ιχ)提供 至分區式快取記憶體資料陣列228。 基於索引值來比較輸入標籤值(Τχ)與來自標籤陣列22〇 之複數個標籤中之每一者,以確定一匹配標籤及相關聯之 經識別路徑。在圖2中之特定說明性實例中,標籤值丁乂對 應於路徑W2,路徑W2與快取記憶體資料陣列228之第二分 區232相關聯。在此實例中,經由線路226將經識別路徑 W2提供至快取§己憶體資料陣列228 ^若標籤陣列220在標 籤陣列220内對應於索引值(Ιχ)之任何相關聯路徑處不含匹 配於標籤值(Τχ)的標籤,則發生快取未命中。快取記憶體 存取邏輯電路21 8可經由線路222自標籤陣列22〇接收快取 未命中資料且經由線路238向記憶體管理單元24〇提出一擷 取資料或指令之請求,記憶體管理單元24〇可自外部記憶 體208擷取資料及/或指令。 若存在快取命中(意谓在標籤陣列220内識別了路徑), 則在快取記憶體存取邏輯電路218處接收資訊,快取記憶 體存取邏輯電路218將索引資訊(Ιχ)提供至分區式資料快取 記憶體陣列且經識別路徑值被提供至分區式快取記憶體資 I48996.doc -12- 201109924 料陣列228之輸入。 快取記憶體資料陣列228被分割為第一分區23〇及第二八 區232。舉例而言’如圖2中所示,展示四條不同路經 (WO、W1、W2及W3)。此實例中,分割該四條路徑(w〇: W1、冒2及冒3),使得路徑W0&W1與第一分區23〇相關聯 且路徑W2及W3與苐一分區23 2相關聯。當快取記憶體資料 陣列228經由線路234及226接收索引值及路徑值時,可自 第二分區232擷取經識別之資料(dx)且經由線路236將其提 供為輸出。 若在分區式快取s己憶體資料陣列228中未找到所要資料 或在標籤陣列220中未找到路徑識別符,則發生快取未命 中。快取5己憶體存取邏輯電路218發送記憶體存取請求至 記憶體管理單元240以自外部記憶體2〇8擷取資料或指令。 記憶體管理單元240經由記憶體匯流排21〇自記憶體2〇8擷 取資料或指令且提供資訊至快取記憶體存取邏輯電路 218陕取δ己憶體替代控制電路2 2 4確定與特定資料或指令 相關聯之分區指示符以識別可將資料寫入至快取記憶體資 料陣列228内之哪一分區。舉例而言’若針對第二分區232 -發生陕取未命中,則快取記憶體替代控制電路可識別 第一分區232且將資料寫入至第二分區。詳言之,快取記 憶體替代控制電路224確定要替代分區式快取記憶體資料 陣列228之第一分區23〇或是第二分區232中之一行。一旦 識別了刀區(例如’第二分區232),則快取記憶體替代控制 電路224識別與經識別分區相關聯之替代控制策略。 148996.doc 201109924 替代控制策略定義—用於選擇哪—特定行將被所操取資 料或指令替代的替代策略。替代控制策略可為循環替代策 略’其替代按循環次序為下一行之位址行(亦即,猶環策 略可以在位址行G處開始,逐行繼續,直至到達位址行N, 且接著循環回至位址行〇重新開始的方式循環通過快取位· 址订)。另一替代控制策略可為最不常用替代策略,其包 括:識別快取記憶體令所有可用行中之一最不常用行’,、及 替代該經識別之行。亦可使用其他替代策略,諸如隨機替 代。另一策略可包括對可能不需要哪些快取行作出概率性 估计(例如,基於快取行之内容之部分解碼及關於當前正 在執行之處理程序之類型的假設)。 快取記憶體替代控制電路224可經調適以對第一快取記 憶體分區230應用第一替代控制策略且對第二快取記憶體 分區232應用第二替代控制策略。在特定實施例中,第一 快取記憶體分區230可用來儲存與高優先權處理程序相關 或與相對於其他處理程序具有高服務品質要求之處理程序 相關的指令。第二快取記憶體分區232可用來儲存來自可 能具有較低優先權或較低服務品質之其他處理程序之指 令。在此實例中,快取記憶體替代控制電路可利用最不常 用替代策略替代第一快取記憶體分區23〇中之行,且針對 第二快取記憶體分區232中之行之替代使用隨機替代策略 -或循環策略。在另一實施例中,快取記憶體替代控制電路 224可針對第一快取記憶體分區23〇及第二快取記憶體分區 232兩者利用循環替代策略,但替代控制電路224可以不同 148996.doc -14- 201109924 /循環通過第一快取記憶體分區及第二快取記憶體分 …舉例而言’若分區式快取記憶體包括自快取行〇擴展 ^陕取仃N之第-分區及自快取行〇擴展至快取行z之第二 ^區^則快取記憶體#代控制電路224可以自行㈣始且進 仃至行Ν’然後循環回來且在行〇處重新開始的方式替代第 :快取記憶體分區230處之資料。相反’替代控制電路224 可自行Ζ至行〇循環通過第二快取記憶體分區且接著在行ζ 處重新開始。圖5中說明此等兩種不同循環替代策略之實 例0 在特定說明性實施例中,快取記憶體替代控制電路224 經組態以搜尋包括標籤陣列220及分區式快取記憶體資料 陣列228之快取記憶體2〇4,以識別位址匹配。快取記憶體 薯代控制電路224經調適以基於分區指示符(ρ位元)2丨4來 識別與分區230及232中之一者相關聯之分區替代策略。快 取°己隐體替代控制電路224應用經識別之分區替代策略以 根據經識別之分區替代策略來控制經識別分區(例如,第 一快取記憶體分區23 〇)内的資料之替代。 S] 在特定實例中,快取記憶體存取邏輯電路218經調適以 允許對分區式快取記憶體資料陣列228(對第一分區230及 第一刀區232兩者)之讀取或寫入存取。然而,快取記憶體 替代控制電路224基於分區指示符214阻止或限制對特定分 區(諸如第一分區230)之替代存取。分區指示符21 4識別分 區式資料快取記憶體陣列228内之特定分區(例如,第一分 區23 0)。在特定實例中,快取記憶體存取邏輯218經組態 148996.doc -15- 201109924 以藉由禁止對分區式資料快取記憶體陣列之不與分區指示 符(P位元2M)相關聯之至少—部分(例如,第二分區232)之 二找(亦即,田卩位疋214指定第—分區⑽時)來減少功率 消耗。在特定實例中,快取記憶體存取邏輯218可利用分 區指示符確定分區23〇及232中哪—者未被使用。在此實例 中,快取記憶體存取邏輯218可基於分區指示符來減少供 應至未使用之分區之功率。在另—特定實例中,快取記憶 體存取邏輯218可包括用以選擇性地切斷供應至快取記憶 體204内的標籤陣列22〇之一部分' 快取記憶體資料陣列 228之°卩刀或其任何組合之功率的功率控制電路。 圖3為包括快取記憶體控制電路之電路器件3〇〇之特定說 明性實施例的方塊圖。電路器件·包括—與經分割之Ν路 快取記憶體304通信之快取記憶體替代控制電路3〇2 ^ ν路 快取記憶體304包括第一分區(分區Α)3〇6、第二分區(分區 Β)308及第二分區(分區c)31〇…决取記憶體替代控制電路 302包括一快取記憶體替代控制電路312、一快取記憶體分 區指標選擇邏輯電路3 14、替代演算法316、一權限邏輯電 路318、一標籤匹配邏輯電路32〇及一指標重設邏輯電路 322。 快取記憶體替代控制電路312經調適與標籤匹配邏輯電 路320通信以接收與一不匹配於標籤陣列(諸如圓2中說明 之標籤陣列220)中所儲存之資料的標籤(指示快取未命中) 相關的資料。當基於快取未命中擷取資料時,快取記憶體 替代控制電路3 12確定與經歷未命中之特定處理程序相關 148996.doc •16- 201109924 聯之^區指示符。基於來自變換後備緩衝區(tlb)之分區 扣不付,快取記憶體替代控制電路312確定替代演算法 316。替代演算法316可包括循環演算法324、冑機演算法 咖及另-種演算法328(諸如最不常用演算法、先進先出 演算法或其他演算法)。在另-特定實施例中,替代演管 法可包括循環演算法324、隨機演算法似、另—種演算法 或八任何組合。快取記憶體替代控制電路3 12接著利用 ^取記憶體分區指標選擇邏輯電路314確定在來自則之 刀區私示符所識別之分區内要替代哪一快取行。 在特定實例中,當特定分區與隨機替代演算法似相關 聯時’快取記憶體分區指標選擇邏輯314可經調適以隨機 確定一指標以用於快取行之替代。在另—實例中,當替代 策略為循環替代策略時,快取記憶體分區指標選擇邏輯電 路314可選擇下一快取行以進行替代。在此實例中,指標 重設邏輯電路322可監視何時已循環了該分區之每一行7 且接著重设該指標以使得快取記憶體分區指標選擇邏輯電 路3 14可在該分區内之第一位址行處重新開始。權限邏輯 電路318可持續追蹤與快取記憶體3〇4中之資料相關聯之特 定權限,使得快取記憶體替代控制電路312使權限與所替 代快取行相關聯。 圖4為變換後備緩衝區(T L B) 4 〇 〇之特定說明性實施例的 方塊圖,該TLB 400包括:虛擬/實體位址資訊4〇2 ;指示 頁面大小、可快取性指示符及其他資訊之其他位元4〇4 ; 權限406(亦即,讀取、寫人、執行、其他權限或其任何組 148996.doc -17- 201109924 合)’及分區指示符408。分區指示符408指示與一特定TLB 項目相關聯之一分區,其可由快取記憶體替代控制電路 (諸如圖3中說明之快取記憶體替代控制電路312)用來控制 與該TLB項目相關聯之特定快取行中的資料之替代β 圖5為分區式快取記憶體500之特定說明性實施例之方塊 圖。快取記憶體500包括第一分區(分區Α)5〇2及第二分區 (刀區Β)504。第一分區502可表示(例如)自位址〇xD8〇3 FFFF至〇xD802 0000之快取記憶體區。第二分區5〇4可表示 (例如)自位址0xD801 FFFF至0xD800 〇〇〇〇之快取記憶體 區。在特定說明性實施例中,快取記憶體替代控制電路 (諸如圖3中說明之快取記憶體替代控制電路312)經調適以 應用循環替A策略以替卩第一分區5〇2及第^分區5〇4兩者 中之資料或指令。然而,快取記憶體替代控制電路可在該 等分區中之每一者内以不同方式應用循環替代策略(如箭 頭寫及5〇8所指示)。詳言之’快取記憶體替代控制電路 在第-分區502内自最高行循環至最低行且接著返回至最 高行(如506所指示)。同肖’快取記憶體替代控制電路自第 二分區504之最低行猶環至最高行且接著返回至最低行(如 细所指示)。因此,快取記憶體替代控制電路經調適以對 該等分區中之每一者應用不同替代策略。 在特定實例中’替代策略可使用監督器控制暫存器、入 域控制暫存器或專用暫存器來組態。在特定實例中:入: 暫存器可將替代策略指派至特定分區。在另一特a : I 中’全域暫存器可在高優先權處理程序之執行期:(= 148996.doc 201109924 中)由特定處理程序組態以定義用於特定分區之替代策 略。 圖6為一種控制分區式快取記憶體中之項目之替代的方 法之特定說明性實施例之流程圖。在6〇2處,該方法包括 讀取一TLB項目以將虛擬位址映射至實體位址且擷取一與 包括至少兩個分區之快取記憶體之一分區相關聯之分區指 =符。前進至604,該方法包括搜尋快取記憶體以找到與 實體位址相關之資料。在606處,若存在快取命中,則該 方法則進至608且在實體位址處自記憶體操取資料。繼續 至610,該方法包括輸出所擷取資料。該方法在π處終 止0 返回至606,若存在快取未命中,則方法進行至612 , J 基於分區指不符來選擇快取記憶體替代策略。可基於監, 或王域暫存态内之位元設定來選擇快取記憶體替代笼 略。或者’邏輯電路可基於特定處理程序之所要服務品質 來選擇策略。舉例而言,高服務品質處理程序可使用需要 較^處理器之替代策略,而較低優先權處理程序可使用較 簡早之策略。在特定音合,丨士 疋只例中,快取記憶體替代控制電路可 針對該等分區中之每一者伟田τ门 #使用不同快取記憶體替代策略。 舉例而言,用於苐—分F α仏 刀£之快取記憶體替代策略可為最不 Γ朿略,且用於第二分區之快取記憶體替代策略可 為循環替代策略。亦可選擇其他替代策略。 繼續至6 1 4,該方法勹以 G括擷取與第二記憶體(諸如主記憶 體)相關聯之實體位址處 " 处之貧料。移動至616 ’該方法包括 I48996.doc 201109924 隐體之—與分區指示符相關聯之分區。在618 八^方法包括根據所選快取記憶體替代策略選擇經識別 置。繼續至·該方法包括用所操取資料 處终二 刀區之該所選位置處的資料。該方法在622 圖7為一種分割快取記恃體$ # + > + 的流程圖。在702虚,贫 特定說明性實施例 μ方法包括使用系統組態設定將快 取兄憶體分割為兩個或兩個以 兩個或兩個以上…之每=系統組態設定定義 之母一者之大小。繼續至704,該 方法亦包括組態與兩個或 .^ ^ 刀區中之每一者相關聯 艽产俨朿转#代朿略針對快取記憶體之分區控管對快取 吕己憶體之替代存取。在牲中者 在特疋Λ施例中,可藉由將替代策略 力區資料寫入至變換後備緩衝區中之多個項目中之至少一 者中來Μ替代策略。該方法在處終止。 在特定說明性實施例中,第一替代策略與兩個或兩個以 上分區中之第-分區相關聯,且第二替代策略與兩個或兩 個以上分區中之第二分區相關聯。在另一特定實施例令, 選擇一分區且可根據每-應用程式調用替代策略。在另— 料實施财,選擇-分區㈣於—特定處理㈣且根據 母一分區調用替代策略。在特定實施财,軟體處理程序 或應用程式可在操作期間修改替代策略。舉例而言,可回 應於應用程式請求、回應於作業系統命令或回歧使用方 式資訊而修改替代策略。在特定實例令,可回應於特定處 理程序之優先權等級或基於針對特定處理程序之服務品質 148996.doc -20- 201109924 指示符或要求而動態地修改替代策略。舉·言,基於確 定一特定處理程序為高優錢處理程序,可使特定^區及/ 或特定替代策略與該處理程序相關聯。在執行該處理程序 後,可將與該處理程序相關聯之指令及資料儲存於所選分 區中且使㈣應於所要服務品質之所選替代演算法進 理。 。圖8為包括分區式快取記憶體及快取記憶體替代控制邏 輯電路之通信器件之方塊圖。攜帶型通信器件800包括一 分區式快取記憶體86〇 ’諸如圖i中說明之分區式指令快取 圮憶體110及分區式資料快取記憶體112,及諸如圖2中說 明之快取記憶體204。攜帶型通信器件8〇〇亦包括一耦接至 分區式快取記憶體86〇之快取記憶體替代控制邏輯電路 870。快取s己憶體替代控制邏輯電路87〇可分別與圖丄至3之 快取圯憶體控制替代電路1〇4、224及3 12類似地操作。在 特疋貫施例中,耦接至分區式快取記憶體86〇之快取記憶 體替代控制邏輯電路870可包括圖2中說明之快取記憶體 204、快取記憶體存取邏輯2丨8、標籤陣列220及分區式資 料快取記憶體228。快取記憶體替代控制邏輯電路870可實 施圖6及圖7中描繪之一或多種方法之至少一部分(諸如, 藉由選擇性地控制分區式快取記憶體86〇之分區内的資料 及指令之替代)。 攜帶型通信器件800包括一晶載系統822,該晶載系統 8 22包括一處理器(諸如數位信號處理器81〇)。如關於圖1至 3所描述’數位信號處理器81 〇可包括分區式快取記憶體 148996.doc -21 · 201109924 860及快取記憶體替代控制邏輯電路87〇。在特定說明性實 施例中,快取記憶體替代控制邏輯電路87〇及分區式快取 s己憶體860可用來控制分區式快取記憶體86〇之分區内的資 料之替代,以增強針對處理器(諸如數位信號處理器81〇)之 特定執行緒之服務品質。 圖8亦展不一耦接至數位信號處理器81〇且耦接至一顯示 窃828之顯不控制器826。此外,一輸入器件83〇耦接至數 位信號處理器810。此外,一記憶體832耦接至數位信號處 理器810。一編碼器/解碼赛(編解碼器)834亦可耦接至數位 信號處理器810» —揚聲器836及一麥克風838可耦接至編 解碼器834。 圖8亦指示:一無線控制器84〇可耦接至數位信號處理器 810且耦接至一無線天線842。在特定實施例中,一電源供 應器844耦接至晶載系統822。此外,在特定實施例中,如 圖8中說明,顯示器、輸入器件83〇、揚聲器836、麥克 風838、無線天線842及電源供應器844位於晶載系統822外 部。然而,其中每一者均耦接至晶載系統822之組件。 應理解,雖然將快取記憶體替代控制邏輯電路87〇及分 區式快取記憶體860描繪為數位信號處理器81〇之獨立組 件,但快取記憶體替代控制邏輯電路87〇及分區式快取記 憶體860可改為整合至單一快取記憶體單元(諸如圖2中說 明之快取記憶體204)中。類似地,應理解可包括多個快取 記憶體替代控制邏輯電路87〇❶此外,雖然已關於分區式 快取記憶體描述替代控制電路,但應理解控制策略亦可用 148996.doc -22- 201109924 於其他類型之分區式記憶體,藉此控制對分區式記憶體内 之位置之替代存取。 熟習此項技術者應進一步瞭解,結合本文中所揭示之實 施例而描述之各種說明性邏輯區塊、組態'模組、電路1 演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。 為清楚地說明硬體與軟體之此可互換性, 、 工又匕在功能性 方面描述各種說明性組件、區塊、組態、模組、電路及步 驟。將該功能性實施為硬體或是軟體視特定應用及強加於 整個系統之設計約束而定。熟習此項技術者可針對每一特 定應用以變化的方式實施所描述之功能性,但該等實施決 策不應被解釋為會引起脫離本發明之範嘴。 結合本文中所揭示之實施例而描述之方法或演算法的步 驟可直接體現於硬體中、由處理器執行之軟體模組中或兩 者之組合中。軟體模組可駐留於RAM記憶體、快閃記憶 體、ROM記憶體、叹⑽記憶體、咖⑽記憶體、 EEPROM記憶體、暫存器、硬碟、抽取式磁碟、⑶-麵 或此項技術t已知的任何其他形式之儲存媒體中。例示性 儲存媒體Μ接至處理器,以使得處理器可自儲存媒體讀取 M S凡並寫入貧訊至儲存媒體〇力兹也/ 布仔蜾骽在替代例中,儲存媒體可整 合至處理器。處理器及儲存媒體可駐留於asic中。A"。 可駐留於計算ϋ件或使用者終端機令。在替代例中,處理 器及健存媒體可作為離散組件駐留於計算器件或使用者级 端機中。 提供所揭示之實施例之先前描述以使得熟f此項技術者 148996.doc •23- 201109924 能夠製造或使用所揭示之實施例。熟習此項技術者將顯而 易見對此等實施例之各種變動,且本文中所定義之一般原 理可在不脫離本發明之精神或範疇的情況下應用於其他實 施例。因此,本發明不意欲限於本文中所展示之實施例, 而應符合可能與如以下申請專利範圍所定義之原理及新穎 特徵一致的最廣範嘴。 【圖式簡單說明】 圖1為包括快取記憶體替代控制電路之處理器之一特定 說明性實施例的方塊圖; 圖2為包括快取記憶體替代控制電路之處理器之第二特 定說明性實施例的方塊圖; 圖3為包括快取5己憶體替代控制電路之電路器件之一特 定說明性實施例的方塊圖; 圖4為包括分區位元之變換後備緩衝區之一特定說明性 實施例的方塊圖; 圖5為分區式快取記憶體之一特定說明性實施例之方塊 圖’其說明應用於每一分區之不同替代策略. 圖6為控制分區式快取記憶體中項目之替代之方法的一 特定說明性實施例之流程圖; 圖7為分割快取記憶體之方法之一特定說明性實施例的 流程圖;及 圖8為包括分區式快取記憶體及快取記憶體替代控制邏 輯電路之通信器件之方塊圖。 【主要元件符號說明】 148996.doc -24· 201109924 100 處理器 102 記憶體 104 快取記憶體替代控制電路 106 變換後備緩衝區 107 分區識別符 108 匯流排介面 110 分區式共用指令快取記憶體 111 匯流排 112 分區式共用資料快取記憶體 114 定序器 116 一般中斷 118 執行單元 120 執行單元 122 執行單元 124 執行單元 126 通用暫存器檔案 128 匯流排 134 監督器控制暫存器 136 全域控制暫存器 200 處理器 202 變換後備缓衝區 204 快取記憶體 206 匯流排 208 外部記憶體 148996.doc •25. 201109924 210 記憶體匯流排 212 變換後備緩衝區項目表 214 分區指不符 216 輸入 218 快取記憶體存取邏輯電路 220 標籤陣列 222 線路 224 快取記憶體替代控制電路 226 線路 228 分區式快取記憶體資料陣列 230 第一分區 232 第二分區 234 線路 236 線路 238 線路 240 記憶體管理單元 300 電路器件 302 快取記憶體替代控制電路 304 N路快取記憶體 306 第一分區 308 第二分區 310 第三分區 312 快取記憶體替代控制電路 314 快取記憶體分區指標選擇邏輯電路 148996.doc -26- 201109924 316 318 320 322 324 326 328 400 402 404 406 408 500 502 504 506 508 800 810 822 826 828 830 替代演算法 權限邏輯電路 標籤匹配邏輯電路 指標重設趣輯電路 循環演算法 隨機演算法 其他演算法 變換後備緩衝區 虛擬/實體位址資訊 指示頁面大小、可快取性指示符及其他資 訊之其他位元 權限 分區指示符 分區式快取記憶體 第一分區 第二分區 箭頭 箭頭 攜帶型通信器件 數位信號處理器 晶載糸統 顯示控制器 顯示器 ~ 輸入器件 [S1 148996.doc -27- 201109924 832 記憶體 834 編碼器/解碼器 836 揚聲器 838 麥克風 840 無線控制器 842 無線天線 844 電源供應器 860 分區式快取記憶體 870 快取記憶體替代控制邏輯電路 Dx 經識別之資料 WO 路徑 W1 路徑 W2 路徑 W3 路徑 148996.doc -28-

Claims (1)

  1. 201109924 七、申請專利範圍: 1. 一種電路器件,其包含: -變換後備緩衝區(TLB)’其經組態以接收一虛擬位 址且將該虛擬位址變換為一具有至少兩個分區之快取記 憶體之一實體位址;及 -控制邏輯電路,其經調適以:基於—分區指示符來 識別與該至少兩個分區中之_經_分區㈣聯之一分 品替代策略且回應於一快取未命中事件而根據該經識 別之分區替代策略來控制該快取記憶體内的資料之替 代。 2.如請求項!之電路器件,苴 八〒4 fLB包括一識別該至少!^ 個分區中之一者的分區指示符。 3·如請求項1之電路器件,立中嗜抻剎.露ρ^ /、T邊徑制邏輯電路經調適γ 允許對該快取記憶體之讀取或耷 貝取^馬入存取’且其中該控希 邏輯電路經組態以限制對輿 _ 中! Ϊ丁興通刀k知不付相關聯之該至 少兩個分區中之一者的替代存取。 (如請求項!之電路器件,其中該分區指示符識別該快添 €憶體内之—特定分區,且其中該控制邏輯電路經組態 以切斷供應至該快取記憶體之未由該分區指示符識別之 至少一部分之功率。 5. 如凊求項1之電路器件,其中該TLB包含複數個項目且其 :忒歿數個項目中之每一者包括一相關聯之分區指示 6.如喷求項5之電路器件,其令該複數個項目中之至少 148996.doc 201109924 一可快取性指示符及 者包括一實體位址、一頁面大小 權限。 7. 如请求項1之電路器件 以根據一第一替代演算法來控制該至 一第—分區内的資料之替代,且根據一 來控制一第二分區内的資料之替代。 其中該控制邏輯電路經調適 少兩個分區中之 第二替代演算法 8.如請求項7之電路器件,其中該第一替代演算法包含一 先進先出演算法且該第二替代演算法包含一隨機演算 法。 9. 如請求項丨之電路器件,其中該快取記憶體包含一指令 快取s己憶體及一資料快取記憶體中之至少一者。 10. :請求項!之電路器件’其進一步包含用以基於該分區 指不符選擇性地降低供應至一標籤陣列之一部分、一資 料快取記«之-部分或其任何組合之功率的功率控制 電路。 11. 一種方法,其包含: 讀取一變換後備緩衝區(TLB)項目以將一虛擬位址映 射至-實體項目’該實體項目包括與—包括至少兩個分 區之快取記憶體之一分區相關聯的一分區指示符丨及 基於该分區指示符來選擇一快取記憶體替代策略。 12. 如请求項11之方法,其進一步包含回應於一快取未命中 事件而使用該所選快取記憶體替代策略來替代該快取記 憶體之由該分區指示符識別之該分區内的資料。 13. 如請求項丨丨之方法,其中該一或多個分區中之一第一者 I48996.doc 201109924 j有1—快取記憶體替代策略且該—或多個分區中之 一第二者具有一第二快取記憶體替代策略。 14.如請求項13之方法’其中該第—快取記憶體替代策略包 括一快取記憶體替代演算法。 1 5. —種方法,其包含: /將一快取記憶體分割為兩個或兩個以上分區,其中一 系統組態設定定義該兩個或兩個以上分區中之每一者之 一大小;及 組態-與該兩個或兩個以上分區中之每一者相關聯之 替代策略。 16·如凊求項15之方法,其中組態該替代策略包括將替代策 略分區資料寫入至一變換後備緩衝區中之至少一 中。 θ求項15之方法,其中—第—替代策略與該兩個或兩 個以上分區中之一第一分區相關聯且一第二替代策略與 該兩個或兩個以上分區中之一第二分區相關聯。 18. 如請求項17之方法’其中該第一替代策略控管對該第一 分區之替代存取。 其中以每一應用程式為基礎調用寄 19. 如請求項18之方法 第一替代策略。 20. 如請求項15之方法,苴中可虛 八甲了回應於一應用程式請求而充 改與該兩個或兩個以上分區中之一 Τ ^ 弟一分區相關聯之宏 替代策略。 儿如請求項15之方法,其中可回應於一作業系統命令“ 148996.doc 201109924 改與兩個或兩個以上分區中之—第—分區相關聯之該 替代策略。 22 23. 24. 25. 如咕求項15之方法,其中回應於應用程式使用方式而動 也地修改與§亥兩個或兩個以上分區中之一第一分區相關 聯之該替代策略。 如明求項15之方法,其中回應於一應用程式之一優先權 而動態地修改與該兩個或兩個以上分區t之一第一分區 相關聯之該替代策略。 如凊求項15之方法,其中該替代策略減少該兩個或兩個 以上分區中之一第—分區内由低優先權執行緒進行之對 資料或指令之替代,該第一分區與一處理器之高優先權 執行緒相關。 如請求項24之方法,其中該處理器包含一包括六個執行 緒之交錯式多執行绪處理器,且其中該快取記憶體由= 六個執行緒中之至少兩者共用。 148996.doc
TW099119168A 2009-06-11 2010-06-11 Partitioned replacement for cache memory TW201109924A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/482,529 US8250332B2 (en) 2009-06-11 2009-06-11 Partitioned replacement for cache memory

Publications (1)

Publication Number Publication Date
TW201109924A true TW201109924A (en) 2011-03-16

Family

ID=42677214

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099119168A TW201109924A (en) 2009-06-11 2010-06-11 Partitioned replacement for cache memory

Country Status (3)

Country Link
US (1) US8250332B2 (zh)
TW (1) TW201109924A (zh)
WO (1) WO2010144832A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI489273B (zh) * 2011-12-23 2015-06-21 Intel Corp 地址範圍的優先機制
CN105701032A (zh) * 2014-12-14 2016-06-22 上海兆芯集成电路有限公司 具多样替换策略的集合关联快取内存
US10394456B2 (en) 2017-08-23 2019-08-27 Micron Technology, Inc. On demand memory page size
TWI679536B (zh) * 2017-08-23 2019-12-11 美商美光科技公司 具有虛擬頁面大小之記憶體

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543769B2 (en) * 2009-07-27 2013-09-24 International Business Machines Corporation Fine grained cache allocation
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
US8661200B2 (en) * 2010-02-05 2014-02-25 Nokia Corporation Channel controller for multi-channel cache
US20110197031A1 (en) * 2010-02-05 2011-08-11 Nokia Corporation Update Handler For Multi-Channel Cache
JP5485055B2 (ja) * 2010-07-16 2014-05-07 パナソニック株式会社 共有メモリシステム及びその制御方法
CN105897769B (zh) * 2011-02-11 2019-07-02 交互数字专利控股公司 用于流送内容的方法和服务器
US8615636B2 (en) * 2011-03-03 2013-12-24 International Business Machines Corporation Multiple-class priority-based replacement policy for cache memory
JP2013097416A (ja) * 2011-10-28 2013-05-20 Hitachi Ltd 記憶装置および計算機
US20130219125A1 (en) * 2012-02-21 2013-08-22 Microsoft Corporation Cache employing multiple page replacement algorithms
US9824013B2 (en) * 2012-05-08 2017-11-21 Qualcomm Incorporated Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors
GB2509755B (en) * 2013-01-14 2015-07-08 Imagination Tech Ltd Partitioning a shared cache using masks associated with threads to avoiding thrashing
US20150121012A1 (en) * 2013-10-30 2015-04-30 Advanced Micro Devices, Inc. Method and apparatus for providing dedicated entries in a content addressable memory to facilitate real-time clients
US11126559B2 (en) 2013-12-30 2021-09-21 Michael Henry Kass Translation look-aside buffer and prefetch indicator
US9514053B2 (en) * 2013-12-30 2016-12-06 Michael Henry Kass Providing memory system programming interfacing
US10216632B2 (en) * 2013-12-30 2019-02-26 Michael Henry Kass Memory system cache eviction policies
US10002080B2 (en) 2013-12-30 2018-06-19 Michael Henry Kass Memory system address modification policies
US20150186287A1 (en) * 2013-12-30 2015-07-02 Michael Henry Kass Using Memory System Programming Interfacing
US9652400B2 (en) 2014-12-14 2017-05-16 Via Alliance Semiconductor Co., Ltd. Fully associative cache memory budgeted by memory access type
US10719434B2 (en) 2014-12-14 2020-07-21 Via Alliance Semiconductors Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode
EP3055775B1 (en) * 2014-12-14 2019-08-21 VIA Alliance Semiconductor Co., Ltd. Cache replacement policy that considers memory access type
WO2016097812A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
EP3066571B1 (en) * 2014-12-14 2018-06-13 VIA Alliance Semiconductor Co., Ltd. Cache memory budgeted by ways on memory access type
WO2016097810A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon mode
EP3129886B1 (en) 2014-12-14 2019-10-02 VIA Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
US9323657B1 (en) * 2014-12-30 2016-04-26 Sandisk Technologies Inc. Memory system and method for improving read latency of a high-priority partition
US10664751B2 (en) 2016-12-01 2020-05-26 Via Alliance Semiconductor Co., Ltd. Processor with memory array operable as either cache memory or neural network unit memory
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
EP3258382B1 (en) * 2016-06-14 2021-08-11 Arm Ltd A storage controller
US10037283B2 (en) 2016-08-12 2018-07-31 Advanced Micro Devices, Inc. Updating least-recently-used data for greater persistence of higher generality cache entries
US10423876B2 (en) * 2016-12-01 2019-09-24 Via Alliance Semiconductor Co., Ltd. Processor with memory array operable as either victim cache or neural network unit memory
US11216371B2 (en) * 2017-03-27 2022-01-04 Mitsubishi Electric Corporation Cache memory and method for controlling the same
US20180292991A1 (en) * 2017-04-11 2018-10-11 Micron Technology, Inc. Memory protocol with programmable buffer and cache size
US10678690B2 (en) * 2017-08-29 2020-06-09 Qualcomm Incorporated Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems
US10761744B2 (en) 2017-09-05 2020-09-01 International Business Machines Corporation Synchronously performing commit records operations
US10521115B2 (en) 2017-09-05 2019-12-31 International Business Machines Corporation Handling cache and non-volatile storage (NVS) out of sync writes
US11314659B2 (en) * 2017-09-05 2022-04-26 International Business Machines Corporation Using real segments and alternate segments in non-volatile storage
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
KR101936951B1 (ko) 2018-04-11 2019-01-11 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US10725923B1 (en) * 2019-02-05 2020-07-28 Arm Limited Cache access detection and prediction
US11379380B2 (en) 2020-05-07 2022-07-05 Nxp Usa, Inc. Systems and methods for managing cache replacement
CN112769891B (zh) * 2020-12-11 2023-07-14 国汽(北京)智能网联汽车研究院有限公司 一种边缘云系统、服务器及云控平台

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696932A (en) * 1995-05-16 1997-12-09 International Business Machines Corporation Method and system for estimating minumun requirements on a cache in a computer based storage system
EP0856798B1 (en) * 1997-01-30 2004-09-29 STMicroelectronics Limited A cache system
US6223256B1 (en) 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US20020087393A1 (en) * 1998-07-31 2002-07-04 Laurent Philonenko Dynamically updated QoS parameterization according to expected business revenue
US20030115346A1 (en) * 2001-12-13 2003-06-19 Mchenry Stephen T. Multi-proxy network edge cache system and methods
JP2004259098A (ja) 2003-02-27 2004-09-16 Renesas Technology Corp バンク制御回路及びキャッシュメモリ装置、並びにキャッシュメモリ装置の設計方法及びマイクロプロセッサの設計方法
US7246216B2 (en) * 2004-07-14 2007-07-17 Lsi Corporation Dynamic partitioning of storage media for mixed applications
US20060259733A1 (en) * 2005-05-13 2006-11-16 Sony Computer Entertainment Inc. Methods and apparatus for resource management in a logically partitioned processing environment
US7558919B1 (en) * 2005-10-19 2009-07-07 Emc Corporation Dynamic cache partitioning
US20070143546A1 (en) * 2005-12-21 2007-06-21 Intel Corporation Partitioned shared cache
US7797555B2 (en) * 2006-05-12 2010-09-14 Intel Corporation Method and apparatus for managing power from a sequestered partition of a processing system
US8195886B2 (en) * 2007-03-16 2012-06-05 Arm Limited Data processing apparatus and method for implementing a replacement scheme for entries of a storage unit
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US20090049272A1 (en) 2007-08-13 2009-02-19 International Business Machines Corporation Method for improving the performance of software-managed tlb

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI489273B (zh) * 2011-12-23 2015-06-21 Intel Corp 地址範圍的優先機制
US9477610B2 (en) 2011-12-23 2016-10-25 Intel Corporation Address range priority mechanism
US9727482B2 (en) 2011-12-23 2017-08-08 Intel Corporation Address range priority mechanism
CN105701032A (zh) * 2014-12-14 2016-06-22 上海兆芯集成电路有限公司 具多样替换策略的集合关联快取内存
CN105701032B (zh) * 2014-12-14 2019-06-11 上海兆芯集成电路有限公司 具备多种替换策略的组相联高速缓存存储器
US10394456B2 (en) 2017-08-23 2019-08-27 Micron Technology, Inc. On demand memory page size
TWI679536B (zh) * 2017-08-23 2019-12-11 美商美光科技公司 具有虛擬頁面大小之記憶體
US11157176B2 (en) 2017-08-23 2021-10-26 Micron Technology, Inc. On demand memory page size
US11210019B2 (en) 2017-08-23 2021-12-28 Micron Technology, Inc. Memory with virtual page size
US11747982B2 (en) 2017-08-23 2023-09-05 Micron Technology, Inc. On-demand memory page size
US12001715B2 (en) 2017-08-23 2024-06-04 Micron Technology, Inc. Memory with virtual page size

Also Published As

Publication number Publication date
WO2010144832A1 (en) 2010-12-16
US20100318742A1 (en) 2010-12-16
US8250332B2 (en) 2012-08-21

Similar Documents

Publication Publication Date Title
TW201109924A (en) Partitioned replacement for cache memory
US20190213132A1 (en) Methods of cache preloading on a partition or a context switch
US10635593B2 (en) Create page locality in cache controller cache allocation
US7290116B1 (en) Level 2 cache index hashing to avoid hot spots
US7558939B2 (en) Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor
JP6009589B2 (ja) マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
US9940238B2 (en) Changing cache ownership in clustered multiprocessor
US20150089143A1 (en) Method and Apparatus for Saving Power by Efficiently Disabling Ways for a Set-Associative Cache
TWI329803B (en) Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
US7430643B2 (en) Multiple contexts for efficient use of translation lookaside buffer
US20130111135A1 (en) Variable cache line size management
US10628318B2 (en) Cache sector usage prediction
US20100287339A1 (en) Demand based partitioning or microprocessor caches
KR20070121812A (ko) 시퀀서 어드레스 관리
JP6630449B2 (ja) 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換
WO2003102781A1 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US9053057B2 (en) Cache coherence directory in multi-processor architectures
US8799611B2 (en) Managing allocation of memory pages
WO2013095636A1 (en) Address range priority mechanism
WO2014105163A1 (en) Apparatus and method for implementing a scratchpad memory
US9424198B2 (en) Method, system and apparatus including logic to manage multiple memories as a unified exclusive memory
JP2022545848A (ja) 投機的データ要求が非投機的になるまでの、投機的データ要求に応答したプロセッサベースのシステム内の非投機的キャッシュメモリにおけるキャッシュ状態更新の延期
US11789874B2 (en) Method, apparatus, and system for storing memory encryption realm key IDs
US9983880B2 (en) Method and apparatus for improved thread selection
US7543132B1 (en) Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes