TWI533201B - 縮減交易回復的快取控制 - Google Patents
縮減交易回復的快取控制 Download PDFInfo
- Publication number
- TWI533201B TWI533201B TW102114419A TW102114419A TWI533201B TW I533201 B TWI533201 B TW I533201B TW 102114419 A TW102114419 A TW 102114419A TW 102114419 A TW102114419 A TW 102114419A TW I533201 B TWI533201 B TW I533201B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- replacement
- level
- column
- architecture
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
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
本發明關於縮減交易被回復之可能性的方式控制微處理器之快取的新穎系統和方法。更特定而言,本發明關於用於更換在快取中的快取列的多級別架構。
微處理器可採用交易型(transaction-based)處理,其中將運算(例如算術、邏輯、記憶體、分支、浮點等)組織成不可分隔集(indivisible sets),其指稱為交易。每個交易在作為完整單元以該微處理器處理上不是成功就是失敗。換言之,該微處理器確使在交易中的所有運算皆完成無誤或皆未完成任一者。若完成某些該等運算但當嘗試該等其他的運算時出現錯誤,則該微處理器「回復(rolls back)」該交易之所有該等運算(包括該等成功的運算),從而清除該交易之所有痕跡並將該系統恢復成該微處理器開始處理該交易的一致已知狀態。若成功完成交易之所有運算,則以該微處理器提交該交易,所有改變皆係永久性,且該已知狀態係最新。
交易處理防範可能讓交易部分完成的硬體和軟體錯誤,其可導致未知不一致狀態。舉例來說,若未涉及該交易的代理者(例如處理核心、直接記憶體存取(Direct Memory Access,DMA)偵伺記憶體控制器、指令提取單元等)嘗試存取或修改涉及該交易的資料,則該交易處理系統保證回復在任何未提交(亦即未完全處理)之交易中的所有運算,且恢復一致狀態。若
無法提交交易,則藉由追蹤該微處理器之已知和一致狀態,並回復這樣的狀態,可以保護在該微處理器中的資料之完整性以免惡化並可以增加該微處理器之運算穩定性。
雖然回復交易防止資料惡化,但仍有與回復相關聯的性能損失。舉例來說,相對於成功提交的交易,在從回復恢復的期間需承受所處理之附加運算之損失。尤其是,對於大型或長期運行的交易而言,性能損失可能相當顯著。
本發明提出用於以縮減交易被回復之可能性的方式控制微處理器之快取的新穎系統和方法。更特定而言,本發明與用於更換在快取中的快取列的多級別架構相關。
在一範例中,快取列的更換係基於其更換會造成交易被回復之可能性而依優先排序。尤其是,在快取中的每個快取列皆被分配選自複數個更換優先級別的更換優先級別。舉例來說,在包含式快取中,在較低級別快取中複製的快取列可被分配比無效快取列更低的更換優先級別,因為若更換在該較低級別快取中複製的該快取列,則將亦必須更換在該較低級別快取中的該對應的快取列。由於這樣的更換影響多個快取,故有較高可能性會干擾造成交易回復的運算。相對而言,可以更換該無效快取列而不影響記憶體之另一級別。在此範例中,具有該較高更換優先級別的該快取列之更換,將比該較低更換優先級別的該快取列之更換具有一較低的可能性來造成交易回復。
在此架構中,選擇在該快取中(或在集相聯快取的情況下的該快取之快取列集中)具有最高可使用更換優先級別的最近最少使用(Least-recently-used,LRU)快取列。又,根據更換架構以更換具有該最高可使用更換優先級別的所選之最近最少使用快取列。在一範例中,採用樹狀
LRU快取列更換架構以更換在該快取中的該所選擇之快取列。應注意的是,該最高可使用更換優先級別代表了若沒有快取列之特徵在於在該快取中的該最高更換優先級別(或在該快取中的經指定之快取列集),則經由該等更換優先級別搜尋具有下一個最高更換優先級別的LRU快取列等,直到選擇出具有最高可使用更換優先級別的LRU快取列。相對於僅更換最近最少使用快取列的方法,藉由採用除了原始的更換方法(例如樹狀LRU)之外還結合基於更換優先級別選擇快取列的多級別控制架構,可縮減交易被回復之可能性。據此,相對於當決定快取列更換時不考量交易回復損失的快取控制方法,可增加該微處理器之處理性能。
100‧‧‧微處理系統;微處理器
102‧‧‧記憶體階層
104‧‧‧L1(第1級別)資料快取
106‧‧‧L1指令快取
108‧‧‧L2(第2級別)快取
110‧‧‧L3(第3級別)快取
112‧‧‧記憶體控制器
114‧‧‧主記憶體
116‧‧‧二次儲存體
118‧‧‧三次儲存體
120‧‧‧LRU(最近最少使用)陣列
122‧‧‧標籤陣列
124‧‧‧更換優先位元
126‧‧‧資料陣列
128‧‧‧快取控制器
130‧‧‧提取邏輯
132‧‧‧解碼邏輯
134‧‧‧執行邏輯
136‧‧‧記憶體邏輯
138‧‧‧寫回邏輯
200‧‧‧列表
300‧‧‧樹狀LRU快取列更換架構;LRU樹狀更換架構
400‧‧‧方法
圖1顯示根據本發明所揭示內容的運算裝置之微處理器之具體實施例。
圖2顯示用於描繪在快取中的快取列之特徵的更換優先級別之範例列表。
圖3示意性顯示快取所使用之樹狀最近最少使用(tree-LRU)快取列更換架構。
圖4顯示用於控制快取以縮減交易回復的方法之具體實施例。
圖1示意性描繪出可與在此所說明之該等系統和方法有關而採用的微處理系統100。微處理器100可能係交易型微處理器。微處理系統100各種各樣地包括及/或與一記憶體階層102通信,其包括一第1級別(Level 1,L1)資料快取104、一L1指令快取106、一第2級別(Level 2,L2)快取108、一第3級別(Level 3,L3)快取110、主記憶體114(例如一或多個
動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)晶片)、二次儲存體116(例如磁性及/或光學儲存單元)及/或三次儲存體118(例如磁帶電場(tape farm))。通常,該等L1-L3快取係實行於處理器晶片上,且該等較高級別記憶體/儲存體組件係分開實行於晶片外。一般而言,較低級別記憶體可能較小且較快,而較高級別記憶體可能較大且較慢。記憶體控制器112操縱該協定,且提供主記憶體114所要求並通常可排程記憶體存取的該信號介面。記憶體控制器112可以實行於該處理器晶片上或分開的晶片上。
應可了解這些記憶體/儲存體組件雖然以存取時間和容量之遞增順序列出,但仍可能有例外情形。在某些具體實施例中,可從該微處理器省略一或多個這些組件。應可了解以上所提供之該記憶體階層係非限制性,且可使用其他的記憶體階層而不悖離所揭示內容之範疇。該所描繪出之記憶體階層係示例性例示,且應了解可採用其他的階層而不悖離本發明所揭示內容之精神。
在某些具體實施例中,該等不同級別快取(例如L1、L2、L3)中至少某些可將快取列之逐出(eviction)及/或更換報告給至少一個其他的不同級別快取。換言之,該等不同級別快取不會沉默地(silently)放棄列。在一特定範例中,L1資料快取104和L1指令快取106將快取列之逐出及/或更換報告給L2快取108。由於L2快取108可基於該等L1快取之該等現有的內容做出更換決定,故此範例組態可能尤其適合在此所說明之該多級別更換方法。
另一方面,若該等L1快取正在配置快取列但當其放棄快取列時不報告給該L2快取,則最後每個快取列皆將主張係該等L1快取所有。這樣的快取列所有權主張將造成所有快取列皆被認為成具有相同優先級別。若所有快取列皆具有相同更換優先級別,則由於所有優先皆相同故該多級別更換架構轉變成標準LRU更換架構,且縮減了回復損失之防護。
在某些具體實施例中,該等不同級別快取中至少某些係包含
式快取,其為了來自至少一個較低級別快取的資料之複製而配置快取列。在一範例中,L2快取108係混合式快取(unified cache),其係為了來自L1資料快取104和L1指令快取106的資料之複製而配置快取列的包含式快取。由於L2快取108可基於該等L1快取之該等現有的內容做出更換決定,故此範例組態可能尤其適合在此所說明之該多級別更換方法。
在某些具體實施例中,微處理系統100係管線處理器,其包括提取邏輯130、解碼邏輯132、執行邏輯134、記憶體邏輯136以及寫回邏輯138。提取邏輯130從L2-L3快取和主記憶體所支援之該L1指令快取擷取指令。解碼邏輯132,例如藉由剖析運算碼(opcodes)、運算元(operands)和定址模式解碼所提取之指令。在剖析後,隨後立即以執行邏輯134執行該等指令。對於產生結果的運算(舉例來說,相對於在該執行程式中執行分支至另一位置的運算),寫回邏輯138將該結果寫於適當位置,諸如處理器記錄器。在載入/儲存結構中,記憶體邏輯136執行載入和儲存運算,諸如將來自主記憶體的運算元載入處理器記錄器。
應可了解該等以上五個階段係稍微具體並包括於一般精簡指令集運算(Reduced Instruction Set Computing,RISC)實作中。更概括而言微處理器可包括提取、解碼以及執行邏輯,其中以該執行邏輯執行記憶體和寫回功能。本發明所揭示內容同樣可施行於這些和其他的微處理器實作。
對於L2快取108,本發明關注控制L2快取108之運算,且更特定而言,關注用於更換在L2快取108中的快取列的多級別更換架構。L2快取108包括一記憶體空間,其分成複數個快取列。在一特定範例中,每個快取列皆係六十四位元。該L2快取係集相聯快取,且該等快取列在邏輯上分成複數個快取列集。應可察知該L2快取可包括任何適合數目之快取列集,每個該等快取列皆可能係任何適合的大小,以及在每個快取列中的許多位元皆可能不同而不悖離本發明所揭示內容之範疇。
在快取列集中的快取列之數目可定義在主記憶體中的任何
特定位置皆可以映射於在L2快取108中的位置之數目。在一範例中,該L2快取包括一16路(way)集相聯陣列,其中快取列之每個集皆係相聯並包括可儲存資料的16路。應可察知L2快取108在快取列集中可包括任何適合數目之路或資料位置(例如2路、8路、充分相聯等)而不悖離本發明所揭示內容之範疇。
L2快取108之每個快取列皆分成提供不同資訊的不同位元欄位。具體而言,L2快取108之每個快取列皆包括最近最少使用(Least-recently-used,LRU)位元、包括更換優先級別位元的標籤位元以及資料位元。該等LRU位元指示在快取列集中的最近最少使用(或存取)路。該等標籤位元識別儲存對應該位址的指令的所指定之路。該等更換優先位元指示特徵化該快取列之特徵的更換優先級別。該等資料位元儲存該快取列之該資料。
每個該等快取列之該等不同的位元欄位皆組織成以快取控制器128控制的不同陣列。具體而言,L2快取108包括一LRU陣列120、包括更換優先位元124的一標籤陣列122以及一資料陣列126。該LRU陣列120包括在L2快取108中的每個快取列集之該等LRU位元。標籤陣列122包括在L2快取108中的每個快取列之該等標籤位元,以及在L2快取108中的每個快取列之該等更換優先位元124。資料陣列126包括在L2快取108中的每個快取列之該等資料位元。
應可知該等更換優先位元124可儲存於該快取列之任何適合的欄位或不同的位置中而不悖離本發明所揭示內容之範疇。又,應注意該等不同級別快取和其他的記憶體/資料儲存體組件係以簡化形式顯示,且可包括替代性或附加元件。舉例來說,該L2快取可包括替代性或附加陣列。
快取控制器128控制在該L2快取108中的快取列之更換。在一範例中,快取控制器128將選自複數個更換優先級別的更換優先級別分配給在該快取中的每個快取列。又,快取控制器128可動態更新快取列
之更換優先級別。舉例來說,每當出現改變該快取之狀態的事件時,皆可以在快取索引更新更換優先級別。改變該快取之狀態的事件之非限制性範例包括至快取列的一新項目(entry)配置、命中快取列的一讀/寫要求、至快取列的一寫回以及快取列之一逐出。應注意可基於如同該等更換優先級別的相同類型之事件更新該等LRU位元。
雖然根據影響不同級別快取之可能性而對該等更換優先級別依優先排序,但應可知在某些具體實施例中可為了不同的運算特徵對該等優先級別依優先排序,而不悖離本發明所揭示內容之範疇。舉例來說,該等更換優先級別可針對最佳化運算速度、減少耗能等。
快取控制器128選擇出在L2快取108中具有最高可使用更換優先級別的該等複數個快取列之最近最少使用快取列。應注意,若該L2快取係集相聯快取,則快取控制器128從在L2快取之所指定之快取列集中的複數個快取列中選擇出具有最高可使用更換優先級別的最近最少使用快取列。舉例來說,所指定之快取列集可包括一快取列集,其包括對應即將儲存於該L2快取中的資料之位址的標籤位元。可藉由影響較低級別快取之可能性而針對該等複數個更換優先級別依優先排序。尤其是,具有較高更換優先級別的快取列之更換,將比具有較低更換優先級別的快取列之更換具有更低的可能性來影響較低級別快取並造成交易回復。應注意若沒有快取列之特徵在於特定更換優先級別,則可從該搜尋省略該更換優先級別,且可為了LRU快取列而搜尋該下一個最高可使用更換優先級別。
在一範例中,快取控制器128搜尋具有該最高更換優先級別的所有快取列,且為了更換而選擇具有該最高更換優先級別的該最近最少使用快取列。若沒有快取列之特徵在於該最高更換優先級別,則快取控制器128搜尋具有該下一個最高更換優先級別的所有快取列,且為了更換而選擇具有該下一個最高更換優先級別的該最近最少使用快取列。快取控制器128向下搜尋從該最高更換優先級別移動的該等快取列,直到找到具有
最高可使用更換優先級別的LRU快取列。又,快取控制器128根據更換架構更換具有該最高可使用更換優先級別的該所選擇之LRU快取列。
應可知,可協同該更換優先級別的選擇而採用任何適合的快取列更換架構,以形成多級別控制方法,而不悖離本發明所揭示內容之範疇。在一範例中,該更換架構包括一完美的最近最少使用快取列更換架構。在這樣的實作中,每次使用快取列時,皆更新在該快取中的所有其他的快取列之該等LRU位元,且更換在該快取中的該最近最少使用快取列。在另一範例中,該更換架構包括一虛擬的最近最少使用快取列更換架構,諸如樹狀最近最少使用快取列更換架構。由於追蹤完美的LRU之實作成本變得過高,故這樣的架構可用於有高度相聯性的快取。在這樣的更換架構中,相對於完美的LRU更換架構,可使用較少位元以追蹤在快取列集中的LRU。在又另一範例中,可利用先進先出(First-in-first-out,FIFO)快取列更換架構以更換具有該最高更換優先級別的所選擇之快取列。在又另一範例中,可利用隨機更換架構以更換具有該最高更換優先級別的所選擇之快取列。
應注意在此所說明之該多級別更換架構可施行於任何適合的級別快取或其他的記憶體組件,以縮減以微處理器交易回復之可能性而不悖離本發明所揭示內容之範疇。
圖2顯示用於描繪在快取中的快取列之特徵的更換優先級別之範例列表200。列表200包括五個更換優先級別,其從1係最高至5係最低分級。藉由影響較低級別快取之可能性依優先排序該等複數個更換優先級別,其中具有較高更換優先級別的快取列之更換,將比具有較低更換優先級別的快取列之更換具有之更低的可能性來影響較低級別快取並造成交易回復。
該第一(1)更換優先級別包括無效快取列。該等無效快取列可包括快取列,其非任何快取所有或所用,或者包括無效資料,其對於任
何快取皆無用。該第二(2)更換優先級別包括未決逐出(pending eviction)的快取列。在一範例中,每個快取列皆可包括一未決逐出位元,其在該標籤欄中以指示該快取列是否係未決逐出。該第三(3)更換優先級別包括有效快取列,其非另一快取所有。換言之,這些快取列可包括有效資訊,且可由該L2快取所有。該第四(4)更換優先級別包括快取列,其由L1指令快取106所有而非該L1資料快取所有。該第五(5)更換優先級別包括快取列,其由L1資料快取104所有。如以上所討論,該L2快取可能係包含式,且因此為了在該L1指令快取和該L1資料快取中的資料之複製而配置快取列。由於這些快取列之更換可影響該L1指令快取和該L1資料快取之狀態,其可導致交易回復,故這些快取列具有較低優先級別。
應可知該等以上所說明之更換優先級別僅係範例,且可採用或多或少之更換優先級別而不悖離本發明所揭示內容之範疇。舉例來說,在該處理管線之寫回邏輯138中的載入/儲存單元(未顯示)可將附加資訊提供給L2快取108,因此可縮減為了更換而可考量的快取列之數目。這樣的設計可能較迅速,但潛在將複雜度添加於該微處理器之設計。
圖3顯示樹狀LRU快取列更換架構300,其可由該L2快取採用作為本發明所揭示內容之該多級別更換架構之部分。樹狀LRU快取列更換架構300係施行於十六個快取列或十六路之快取列集。在一範例中,該快取列集係構成十六路集相聯L2快取的複數個快取列集之一。又,可選擇在該快取中的快取列集作為基於在該快取列集中的快取列之該等標籤位元的快取列更換之候選者。該樹狀LRU更換架構為了更換而選擇在該快取列集中的該等十六路之一。該編碼LRU[14:0]代表在該LRU樹狀中的該等十六路之時間關係。在該編碼中的每個項目皆可被分配0或1之值,以指示在該樹狀中的節點之適當的時間關係,以判定哪些路係最近最少使用。舉例來說,有1之值的LRU[4]指示WAY1比WAY0更最近最少使用,且有0之值的LRU[4]指示WAY0比WAY1更最近最少使用。
如以上所述,在該多級別更換架構中,對於每個更換優先級別該LRU樹狀皆可橫向往返移動(traversed)以選擇該LRU路。隨後,在該等較低優先級別LRU路上方撿出最高可使用更換優先級別LRU路。在選擇該最高更換優先級別LRU路之後,更新該LRU[14:0]編碼以反映該新的LRU順序。在一特定範例中,若選擇WAY6作為具有該最高更換優先級別的該LRU路,則更新該LRU[14:0]編碼以反映在與WAY6相關聯的該等節點之間的時間關係上的該改變。具體而言,以下列方式更新該等LRU位元:LRU[8]=1、LRU[6]=0、LRU[1]=0且LRU[0]=1。在該LRU[14:0]編碼中的該等位元之其餘部分並未改變。
應注意作為本發明所揭示內容之多級別更換架構之部分,LRU樹狀更換架構300僅係可用於更換在快取中的最高更換優先級別快取列的更換架構之一範例。而且,可與該等更換優先級別結合使用任何適合的更換架構而不悖離本發明所揭示內容之範疇。
圖4顯示用於控制快取以縮減在交易型微處理器中的交易回復之可能性的方法400之具體實施例。該微處理器可包括複數個不同級別快取,且該等不同級別快取中至少某些級別快取可將快取列之逐出及/或更換報告給至少一個其他的不同級別快取。又,該等不同級別快取中至少某些級別快取可能係包含式快取,其為了來自至少一個較低級別快取的資料之複製而配置快取列。在一特定範例中,以在圖1中所顯示之微處理系統100之L2快取108之快取控制器128執行方法400。在此範例中,該L2快取係混合式快取,其係為了來自L1指令快取106和L1資料快取104的資料之複製而配置快取列的包含式快取。而且,L1指令快取106和L1資料快取104將快取列之逐出及/或更換報告給L2快取108。
再者,在該快取中的每個快取列之特徵皆在於選自複數個更換優先級別的更換優先級別。可藉由影響較低級別快取之可能性針對該等複數個更換優先級別依優先排序。尤其是,具有較高更換優先級別的快取
列之更換,比具有較低更換優先級別的快取列之更換具有之更低的可能性來影響較低級別快取並造成交易回復。在一範例中,從最高優先級別至最低優先級別分級,該等複數個更換優先級別包括:(1)無效快取列;(2)未決逐出的快取列;(3)非另一快取所有的有效快取列;(4)L1指令快取所有而非該L1資料快取所有的快取列;以及(5)該L1資料快取所有的快取列。在一特定範例中,每個快取列皆包括更換優先級別位元,其與該快取列之標籤位元一起被包括。
應注意在某些情況下,可基於造成該快取之狀態改變的事件以及其他的事件動態更新快取列之更換優先級別。
在402,方法400包括選擇在快取中具有最高更換優先級別的LRU快取列。在例如該快取係集相聯快取的某些具體實施例中,該LRU快取列可選自該快取之經指定之快取列集。在某些具體實施例中,該LRU快取列可選自在該快取中的某些或所有快取列。
在404,方法400包括判定是否為了該最高更換優先級別而選擇LRU快取列。若為了該最高更換優先級別而選擇LRU路,則方法400移動至408。否則,方法400移動至406。
在406,在該快取(或經指定之快取列集)中沒有快取列之特徵在於該最高更換優先級別,且方法400包括搜尋該下一個最高更換優先級別以為了該更換優先級別而選擇LRU快取列。方法400遞迴搜尋該等更換優先級別,直到選擇了具有最高可使用更換級別的LRU快取列。
在408,方法400包括根據更換架構更換具有該最高可使用更換優先級別的該LRU快取列。即使該較低更換優先級別快取列比該較高更換優先級別快取列更最近最少使用,但更換仍可包括在較低更換優先級別快取列上方為了更換而選擇較高更換優先級別快取列。換言之,由於該最近較常使用(More-recently-used)快取列之更換相對於該LRU快取列可有更低的可能性干擾交易完成,故可在該LRU快取列上方選擇該最近較常使
用快取列。如此,可縮減與交易回復相關聯的損失。
再者,可使用任何適合的更換架構更換該最高更換優先級別快取列。舉例來說,該更換架構可包括一完美的最近最少使用快取列更換架構、一樹狀最近最少使用快取列更換架構以及一先進先出快取列更換架構之一。在更換架構未選擇LRU快取列的情況下,可為了更換而選擇具有較高優先級別的快取列而不論其在快取列集或快取中是否係最近最少使用。
應注意可以微處理器之任何適合的級別快取或記憶體組件實行方法400而不悖離本發明所揭示內容之範疇。應可了解在此所說明之該等組態及/或方法在本質上係示例性,且由於眾多變化例皆可能,故這些特定的具體實施例或範例不應被視為限制性。在此所說明之該等具體常式或方法可代表一或多個任何數目之處理策略。如此,可以所例示之序列、以其他的序列、以並行方式執行所例示之各種動作,或者在某些情況下省略。同樣地,可改變該等以上所說明之程序之順序。
本發明所揭示內容之標的包括在此所揭示之該等各種程序、系統與組態和其他的特徵、功能、動作及/或特性之所有新穎性和非顯而易知性的組合和子組合,以及其任何和所有相等物。
100‧‧‧微處理系統;微處理器
102‧‧‧記憶體階層
104‧‧‧L1(第1級別)資料快取
106‧‧‧L1指令快取
108‧‧‧L2(第2級別)快取
110‧‧‧L3(第3級別)快取
112‧‧‧記憶體控制器
114‧‧‧主記憶體
116‧‧‧二次儲存體
118‧‧‧三次儲存體
120‧‧‧LRU(最近最少使用)陣列
122‧‧‧標籤陣列
124‧‧‧更換優先位元
126‧‧‧資料陣列
128‧‧‧快取控制器
130‧‧‧提取邏輯
132‧‧‧解碼邏輯
134‧‧‧執行邏輯
136‧‧‧記憶體邏輯
138‧‧‧寫回邏輯
Claims (9)
- 一種微處理系統,包含:一快取,包含:複數個快取列,其特徵在於從複數個更換優先級別所選的一更換優先級別;以及一快取控制器,用以:(1)選擇具有一最高可使用更換優先級別的該等複數個快取列之一最近最少使用(Least-recently-used)快取列;以及(2)根據一更換架構,更換具有該最高可使用更換優先級別的該最近最少使用快取列,其中該更換架構包括一完美的最近最少使用快取列更換架構、一樹狀最近最少使用快取列更換架構以及一先進先出(First-in-first-out)快取列更換架構中之一者。
- 如申請專利範圍第1項之微處理系統,其中該更換架構係一樹狀最近最少使用快取列更換架構。
- 如申請專利範圍第1項之微處理系統,其中該微處理器包括複數個不同級別快取,且該等不同級別快取中的至少某些級別快取將一快取列之逐出及/或更換報告給至少一個其他的不同級別快取。
- 如申請專利範圍第3項之微處理系統,其中該等不同級別快取中的至少某些級別快取為包含式快取(inclusive cache),其為了來自至少一個較低級別快取的資料之複製而配置快取列。
- 如申請專利範圍第3項之微處理系統,其中該快取係一L2(第2級別)混合式快取(unified cache),該L2混合式快取係為了複製來自一L1(第 1級別)指令快取和一L1資料快取的資料而配置快取列的一包含式快取。
- 如申請專利範圍第1項之微處理系統,其中該微處理器係一交易型(transaction-based)微處理器。
- 如申請專利範圍第6項之微處理系統,其中藉由根據影響一較低級別快取之一可能性,將該等複數個更換優先級別依優先排序,其中具有一較高更換優先級別的一快取列之更換,將比具有一較低更換優先級別的一快取列之更換,具有一較低的可能性來影響該較低級別快取並造成一交易回復。
- 如申請專利範圍第1項之微處理系統,其中該等複數個更換優先級別從一最高優先級別至一最低優先級別分級包括:(1)無效快取列;(2)未決(pending)逐出的快取列;(3)非另一快取所有的有效快取列;(4)一L1指令快取所有而非一L1資料快取所有的快取列;以及(5)該L1資料快取所有的快取列。
- 如申請專利範圍第1項之微處理系統,其中每個快取列皆包括優先位元,其指示該快取列特徵所在的一更換優先級別。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/461,458 US10019381B2 (en) | 2012-05-01 | 2012-05-01 | Cache control to reduce transaction roll back |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201407469A TW201407469A (zh) | 2014-02-16 |
TWI533201B true TWI533201B (zh) | 2016-05-11 |
Family
ID=49384598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102114419A TWI533201B (zh) | 2012-05-01 | 2013-04-23 | 縮減交易回復的快取控制 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10019381B2 (zh) |
CN (1) | CN103383672B (zh) |
DE (1) | DE102013206336A1 (zh) |
TW (1) | TWI533201B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170955B2 (en) * | 2012-11-27 | 2015-10-27 | Intel Corporation | Providing extended cache replacement state information |
US9158702B2 (en) | 2012-12-28 | 2015-10-13 | Intel Corporation | Apparatus and method for implementing a scratchpad memory using priority hint |
US9720847B2 (en) * | 2013-07-17 | 2017-08-01 | Nxp Usa, Inc. | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed |
KR101817847B1 (ko) | 2014-12-14 | 2018-02-21 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 메모리 접근 타입에 기초한 통로에 의해 버짓화된 캐시 메모리 |
EP3230874B1 (en) * | 2014-12-14 | 2021-04-28 | VIA Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by 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 |
US9652398B2 (en) * | 2014-12-14 | 2017-05-16 | Via Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
JP6207766B2 (ja) * | 2014-12-14 | 2017-10-04 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | ヘテロジニアス置換ポリシーを用いるセット・アソシエイティブ・キャッシュ・メモリ |
US10366013B2 (en) * | 2016-01-15 | 2019-07-30 | Futurewei Technologies, Inc. | Caching structure for nested preemption |
CN106126434B (zh) * | 2016-06-22 | 2019-04-30 | 中国科学院计算技术研究所 | 中央处理器的缓存区的缓存行的替换方法及其装置 |
US11106599B2 (en) * | 2016-09-30 | 2021-08-31 | Intel Corporation | System and method for replacement in associative memories using weighted PLRU trees |
CN108108312A (zh) * | 2016-11-25 | 2018-06-01 | 华为技术有限公司 | 一种高速缓存清理方法及处理器 |
US11886342B2 (en) * | 2021-12-01 | 2024-01-30 | International Business Machines Corporation | Augmenting cache replacement operations |
WO2024058801A1 (en) * | 2022-09-12 | 2024-03-21 | Google Llc | Time-efficient implementation of cache replacement policy |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809527A (en) * | 1993-12-23 | 1998-09-15 | Unisys Corporation | Outboard file cache system |
US5943687A (en) * | 1997-03-14 | 1999-08-24 | Telefonakiebolaget Lm Ericsson | Penalty-based cache storage and replacement techniques |
US6542966B1 (en) * | 1998-07-16 | 2003-04-01 | Intel Corporation | Method and apparatus for managing temporal and non-temporal data in a single cache structure |
US6490654B2 (en) * | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
US6961821B2 (en) * | 2002-10-16 | 2005-11-01 | International Business Machines Corporation | Reconfigurable cache controller for nonuniform memory access computer systems |
US8214601B2 (en) * | 2004-07-30 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Purging without write-back of cache lines containing spent data |
WO2007068122A1 (en) * | 2005-12-16 | 2007-06-21 | Univ Western Ontario | System and method for cache management |
TW201015579A (en) | 2008-09-18 | 2010-04-16 | Panasonic Corp | Buffer memory device, memory system, and data readout method |
JP5547208B2 (ja) * | 2008-11-24 | 2014-07-09 | インテル コーポレイション | シーケンシャル・プログラムを複数スレッドに分解し、スレッドを実行し、シーケンシャルな実行を再構成するシステム、方法および装置 |
US20100318741A1 (en) | 2009-06-12 | 2010-12-16 | Cray Inc. | Multiprocessor computer cache coherence protocol |
US8255626B2 (en) * | 2009-12-09 | 2012-08-28 | International Business Machines Corporation | Atomic commit predicated on consistency of watches |
US8301840B2 (en) * | 2009-12-15 | 2012-10-30 | International Business Machines Corporation | Assigning cache priorities to virtual/logical processors and partitioning a cache according to such priorities |
US8752054B2 (en) * | 2010-03-11 | 2014-06-10 | Avaya Inc. | Intelligent merging of transactions based on a variety of criteria |
US9626187B2 (en) * | 2010-05-27 | 2017-04-18 | International Business Machines Corporation | Transactional memory system supporting unbroken suspended execution |
US9110691B2 (en) * | 2010-11-16 | 2015-08-18 | Advanced Micro Devices, Inc. | Compiler support technique for hardware transactional memory systems |
-
2012
- 2012-05-01 US US13/461,458 patent/US10019381B2/en active Active
-
2013
- 2013-04-10 DE DE102013206336A patent/DE102013206336A1/de active Pending
- 2013-04-23 TW TW102114419A patent/TWI533201B/zh active
- 2013-04-24 CN CN201310145331.XA patent/CN103383672B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TW201407469A (zh) | 2014-02-16 |
CN103383672B (zh) | 2016-05-11 |
DE102013206336A1 (de) | 2013-11-07 |
US20130297876A1 (en) | 2013-11-07 |
US10019381B2 (en) | 2018-07-10 |
CN103383672A (zh) | 2013-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533201B (zh) | 縮減交易回復的快取控制 | |
US8745334B2 (en) | Sectored cache replacement algorithm for reducing memory writebacks | |
US9798590B2 (en) | Post-retire scheme for tracking tentative accesses during transactional execution | |
US7552286B2 (en) | Performance of a cache by detecting cache lines that have been reused | |
JP5526626B2 (ja) | 演算処理装置およびアドレス変換方法 | |
US20180300258A1 (en) | Access rank aware cache replacement policy | |
US20080082754A1 (en) | Method and cache system with soft i-mru member protection scheme during make mru allocation | |
KR102453192B1 (ko) | 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체 | |
US10545879B2 (en) | Apparatus and method for handling access requests | |
US20080229011A1 (en) | Cache memory unit and processing apparatus having cache memory unit, information processing apparatus and control method | |
JP7096840B2 (ja) | 能力メタデータを管理するための装置及び方法 | |
Wang et al. | Persistent transactional memory | |
JP2010033480A (ja) | キャッシュメモリおよびキャッシュメモリ制御装置 | |
US10783031B2 (en) | Identifying read-set information based on an encoding of replaceable-information values | |
US7010649B2 (en) | Performance of a cache by including a tag that stores an indication of a previously requested address by the processor not stored in the cache | |
JP2007156821A (ja) | キャッシュシステム及び共用2次キャッシュ | |
KR101121902B1 (ko) | 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법 | |
US9053030B2 (en) | Cache memory and control method thereof with cache hit rate | |
US8793437B2 (en) | Cache memory system using temporal locality information and a data storage method | |
US9734071B2 (en) | Method and apparatus for history-based snooping of last level caches | |
JP4463152B2 (ja) | マルチプロセッサシステム及びそれに用いるコピーキャッシュ情報掃き出しレベル選択方法 | |
US11940914B2 (en) | Performance aware partial cache collapse | |
US20120102271A1 (en) | Cache memory system and cache memory control method | |
US8504776B2 (en) | Device and method for controlling caches | |
US20170286317A1 (en) | Alternative direct-mapped cache and cache replacement method |