TWI867623B - 快取替換策略之時間效率實施 - Google Patents
快取替換策略之時間效率實施 Download PDFInfo
- Publication number
- TWI867623B TWI867623B TW112126708A TW112126708A TWI867623B TW I867623 B TWI867623 B TW I867623B TW 112126708 A TW112126708 A TW 112126708A TW 112126708 A TW112126708 A TW 112126708A TW I867623 B TWI867623 B TW I867623B
- Authority
- TW
- Taiwan
- Prior art keywords
- lru
- cache
- nodes
- path
- node
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
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)
Abstract
一種快取包含:多個集合,其中每一集合具有多個各別路徑;及替換邏輯,其經組態以實施一兩階段最近最少使用(LRU)的替換運算。該兩階段LRU替換運算致使該快取執行:一第一階段,在這期間該快取運算一集合之一LRU路徑;及一第二階段,在這期間該快取利用一經異動存取路徑之資訊來更新一LRU資料結構。
Description
本說明書係關於具有積體電路裝置之系統。
一快取係為一系統中的一或多個不同硬體裝置儲存自記憶體中擷取之資料或待寫入至記憶體之資料的一裝置。硬體裝置可係整合至一系統單晶片(SOC)中之不同組件。在本說明書中,透過快取提供讀取請求及寫入請求之裝置將被稱作用戶端裝置。某些快取服務於整合至一單個系統中之多個不同用戶端裝置之記憶體請求。
快取可用於藉由減少向主記憶體之整體請求來降低電力消耗。另外,只要用戶端裝置可存取快取中之其所需資料,便可藉由將主記憶體以及至主記憶體之資料路徑置於一低電力狀態中來進一步節省電力。因此,快取使用率與整體電力消耗相關,且增加快取使用率會導致整體電力消耗之一減少。因此,依賴於電池電力之裝置(例如行動運算裝置)可藉由針對整合式用戶端裝置增加快取使用率來延長其電池壽命。
一快取放置策略判定如何將一記憶體區塊放置於快取中。對於一集合關聯快取,可使用一最近最少使用(LRU)替換策略。在習用LRU替換實施中,一系統針對一異動將所有快取替換操作安排於同一時脈循環中。然而,因LRU替換策略中之多數操作之執行時間隨快取之一集合中之快取線之數目而增加,對於具有高關聯性之一集合關聯快取,將針對異動之所有操作安排至一單個時脈循環中可係有挑戰的。
本說明書闡述一種包含多個快取線集合及經組態以實施一兩階段最近最少使用(LRU)替換策略之替換邏輯之快取系統。藉由在兩個階段中執行LRU替換,該快取系統克服了習用LRU替換實施之某些限制,且提高了執行多個快取異動之時間效率。
在本說明書之一項特定態樣中,提供一種快取系統。該快取系統包含:多個集合,其中每一集合具有多個各別路徑;及替換邏輯,其經組態以實施一兩階段最近最少使用(LRU)替換運算。該兩階段LRU替換運算致使該快取執行:一第一階段,在其期間該快取運算一集合之一LRU路徑,及一第二階段,在其期間該快取利用一經異動存取路徑之資訊來更新一LRU資料結構。
在該快取系統之某項實施中,該快取經組態以在連續時脈循環中執行該兩階段LRU替換運算。
在該快取系統之某項實施中,該快取經組態以使用該經運算LRU路徑來實施一LRU替換策略。
在該快取系統之某項實施中,該替換邏輯包括儲存每一集合之各別路徑值之複數個節點,且其中執行該第二階段包括將所儲存之該等路徑值在用於該集合之該等節點之間移位。
在該快取系統之某項實施中,為執行該第二階段,該快取系統經組態以利用用於一集合之每一節點已儲存之資料或自另一節點移位之資料來更新該節點。
在該快取系統之某項實施中,在針對一當前異動執行該第一階段時,回應於由對同一特定集合執行前一異動之該第二階段而導致之一危險狀況,該快取系統針對該當前異動執行該危險解決方案。
在該快取系統之某項實施中,針對該當前異動執行該危險解決方案包含:回應於判定該特定集合中之所有該等各別路徑皆有資格進行替換,在針對該前一異動已更新該LRU資料結構之後,基於該LRU資料結構而判定用於該當前異動之該LRU路徑。
在該快取系統之某項實施中,該替換邏輯經組態以回應於判定該特定集合中之並非所有該等各別路徑皆有資格進行替換:判定該複數個節點中危險已解決之合格節點;自該等危險已解決之合格節點中選擇一合格節點;及使用儲存於該所選擇合格節點中之該路徑值來判定該LRU路徑。
在該快取系統之某項實施中,該替換邏輯經組態以在已完成該前一異動之該第二階段之前,開始判定該複數個節點中該等危險已解決之合格節點。
在該快取系統之某項實施中,判定該複數個節點中該等危險已解決之合格節點包含:在該LRU資料結構已藉由該前一異動之該第二階段更新之前,基於合格路徑及該LRU資料結構而產生識別該複數個節點中之合格節點之未解決之節點資料;及使用在該前一異動之該第二階段期間產生之移位資訊來將該未解決之節點資料移位以產生識別該等危險已解決之合格節點之危險已解決之節點資料。
在本說明書之另一態樣中,提供一種用於執行LRU替換運算之方法。該方法由上文闡述之該快取系統執行且包含上文闡述之該等操作。
本說明書中所闡述之標的物可實施於特定實施中以便實現一或多個優點。舉例而言,在某些實施中,藉由在兩個連續時脈循環中執行兩階段LRU替換策略,快取系統可提高執行多個快取異動之時間效率。進一步,在某些實施中,在一危險發生於當前異動與前一異動之間時,該系統可在前一異動之LRU更新已結束之前針對當前異動開始危險解決方案程序,以將危險解決方案之時間影響最小化。所提高之時間效率可有助於實施具有高關聯性數目之集合關聯快取之高階LRU替換策略。
本說明書中所闡述之標的物之一或多項實施例之細節列述於附圖及下文說明中。根據說明、圖式及申請專利範圍將明瞭標的物之其他特徵、態樣及優點。
一快取放置策略判定如何將一記憶體區塊放置於快取中。本說明書專注於集合關聯快取放置策略,其中快取被劃分成多個集合且每一集合包含多個快取線。
圖1展示一快取系統100。快取系統100可係一處理系統(諸如通信地耦合至記憶體裝置之一系統單晶片(SOC))之一部分。特定而言,快取系統100係一集合關聯快取且包含多個集合110。每一集合110包含多個各別快取線114。
亦被稱為一路徑之一快取線係快取與另一記憶體裝置(例如處理系統之主記憶體)之間的資料傳送單元。集合中之所有快取線具有一固定大小,例如64位元組。在64位元組區域中之任何位置被讀取或被寫入時,一處理器將讀取或寫入一整個快取線。
快取系統100進一步包含管理快取系統100之快取異動之一快取異動控制器120。在本說明書中,一快取異動係指利用對一特定記憶體區塊之一請求來存取快取系統之一程序。一實例性快取異動程序將參考圖2來闡述。大體而言,快取異動控制器120使用自所請求記憶體區塊之位址中衍生之索引位元來將該記憶體區塊映射至一特定集合110。然後快取異動控制器120執行一標籤檢查以判定所請求記憶體區塊是否已放置於快取線114中之一者中。標籤檢查係基於儲存記憶體裝置之所有快取線114之標籤之標籤資料130而執行。特定而言,快取異動控制器120比較記憶體區塊之位址之標籤位元與所映射集合110中之快取線114之標籤。若記憶體區塊標籤匹配所映射集合中之快取線中之任一者,則標籤檢查返回一「快取命中」。否則,標籤檢查返回一「快取未命中」。
在一「快取未命中」之情形中,快取異動控制器120向另一記憶體裝置(諸如向處理系統之主記憶體或向處理系統之下一層級快取)請求記憶體區塊,且將記憶體區塊放置於所映射集合110之一所選擇快取線114中。若所映射集合110中之所有快取線114皆已被分配(亦即,先前已放置有各別記憶體區塊),則快取異動控制器120使用自外部記憶體裝置中讀取之新資料來替換儲存於透過一替換策略識別之一快取線中之區塊。
特定而言,系統100使用快取替換邏輯125來實施(自
K個路徑中)選擇最近最少使用快取線進行替換之一最近最少使用(LRU)替換策略。,此程序需要保持追蹤一特定集合110中之每一快取線114相對於所有其他快取線之使用率的新近度。因此,系統100維持指定系統100之每一集合110中之每一快取線114之新近度資訊之LRU資料140。
快取替換邏輯125在兩個階段中實施LRU替換運算。在第一階段期間,快取系統100至少基於當前LRU資料140而判定最近最少使用快取線(在本申請案中稱為LRU路徑)。LRU路徑經選擇以進行替換。在第二階段期間,快取系統100基於經異動存取路徑之資訊而更新LRU資料140,因此LRU資料140對下一異動係最新的。
圖2圖解說明用於執行一快取異動之一實例性程序200。為了便利,程序200將被闡述為由一快取系統(諸如圖1之快取系統100)執行。
在執行程序200之前,系統已判定用於快取異動之集合。程序200之輸出指定該集合中用於存取快取異動請求中所指定之記憶體區塊之一特定快取線(在本說明書中稱為「存取路徑」)。
在接收到指定記憶體區塊之快取異動請求之後,系統在步驟210中執行一標籤檢查。特定而言,系統比較同記憶體區塊之位址相關聯之標籤位元與該集合中之快取線之標籤。
系統在步驟220中判定標籤檢查是導致一快取命中還是未命中。即,若與記憶體區塊之位址相關聯之標籤位元匹配該集合中之快取線中之一者之標籤,則系統判定標籤檢查結果係一快取命中。為了便利,具有與記憶體區塊標籤匹配之標籤之快取線稱為「命中路徑」。若與記憶體區塊之位址相關聯之標籤位元不匹配該集合中之快取線之標籤中之任一者,則系統判定標籤檢查結果係一未命中。
若系統判定標籤檢查結果係一快取命中,則系統針對異動使用命中路徑,且因此在步驟230中將存取路徑指派給命中路徑。
若系統判定標籤檢查結果係一快取未命中,則此意味著所指定記憶體區塊中之資料尚未載入至該集合中之快取線中之任一者中,且系統需要向記憶體階層中之一下一層級請求資料,並將資料載入至該集合中之一所選擇快取線中。
系統在步驟240中檢查該集合中尚未被佔用之一快取線。為了便利,一未佔用之快取線稱為「空閒路徑」。若系統在步驟250中判定一空閒路徑可用,則系統針對快取未命中情境使用空閒路徑以執行異動。即,系統在步驟260中將存取路徑指派給空閒路徑。
若系統在步驟250中判定一空閒路徑不可用,則此意味著該集合中之所有快取線皆已被佔用,且系統需要透過替換策略來識別要替換之一快取線,並將資料放置於識別為要替換之快取線中。
因系統實施LRU替換策略,系統在步驟270中運算LRU路徑。系統在步驟280中將存取路徑指派給LRU路徑。
一旦存取路徑經判定(藉由步驟230、260或280),系統便在步驟290中更新LRU資料。LRU資料追蹤該集合中之快取線之新近度,亦即,指定與該集合中之其他快取線相比,已針對一異動存取一特定快取線之新近程度。將參考圖4A至圖6來更詳細地闡述更新程序。
在習用LRU替換實施中,一系統針對一異動將圖2中所展示之所有操作安排於同一時脈循環中。在此情形中,完成此等操作所需之時間可被估算為:
此處,O(<操作>)表示用於完成<操作>之時序深度,C係用於諸如選擇圖2中所展示之命中路徑分支/空閒路徑分支/運算LRU路徑分支中之一者等操作之一恆定時間延遲。
應注意,在該集合中之快取線之總數目增加時,三個項O(確定命中路徑)、O(選擇空閒路徑)及O(運算LRU路徑)中之每一者增加。即,用於判定存取路徑之時間隨快取關聯性增加而增加。在快取關聯性顯著時(例如,在該集合中之快取線之總數目超過一臨限值時),將針對異動之所有操作安排至一單個時脈循環中可係有挑戰的。
為克服習用LRU替換實施之限制,本說明書中所闡述之系統使用一2階段方案來執行LRU替換。即,系統在連續時脈循環中實施兩階段LRU替換策略。
在第一階段中,系統判定存取路徑。在第二階段中,系統更新LRU資料。
因此,第一時脈循環所需之時間係:
第二時脈循環所需之時間係:
藉由將執行針對異動之操作所需之時間分裂成兩個時脈循環,系統可大體上提高執行快取異動之時間效率。舉例而言,在系統已針對一特定異動在第一階段中判定存取路徑之後,系統可針對下一快取異動開始第一階段,而非等待針對該特定異動在第二階段中之LRU資料更新結束,亦即在針對該特定快取異動執行第二階段之同時開始判定用於下一快取異動之存取路徑。因此,一當前異動之第二階段及下一異動之第一階段可平行執行。此方案大體上縮短了執行多個快取異動所需之總時間。
圖3圖解說明用於針對3個快取異動執行快取操作之時脈循環。對快取中之一第一集合(集合A)執行第一異動(txn 1)。對快取中之一第二集合(集合B)執行第二異動(txn 2)。亦對第二集合(集合B)執行第三異動(txn 3)。
如圖3中所展示,在clk=1時,系統執行第一異動之第一階段。在clk=2時,系統執行第一異動之第二階段及第二異動之第一階段。在clk=3時,系統執行第二異動之第二階段及第三異動之第一階段。
應注意,在clk=2時,系統平行地執行兩個階段,亦即,第一異動之第二階段及第二異動之第一階段。時序中之此重疊並不導致一危險,乃因第一及第二異動係對快取之不同集合執行,亦即,第一異動係對集合A執行且第二異動係對集合B執行。在本說明書中,一危險係指在下一指令不能在隨後時脈循環中正確執行時之一指令管線問題,例如,此歸因於指令在一管線之不同階段中展現出對已修改資料的資料相依性。因第一及第二異動係對不同集合執行,兩個異動之間不存在資料相依性,且不會發生危險。
相比而言,在clk=3時,兩個階段之時序中的重疊可導致危險,乃因第二及第三異動兩者係對同一集合(集合B)執行。於clk=3之循環中,在集合的LRU資料正在第二異動之第二階段中被更新的同時,第三異動之第一階段可能需要使用同一集合的LRU資料來判定存取路徑(例如,用於運算LRU路徑)。這導致一危險。因此,為針對第三異動正確運算LRU路徑,需要解決該危險。將參考圖5及圖7來闡述用於解決危險的實例性程序及實施。
圖4A展示用於儲存LRU資料之一實例性資料結構400。該資料結構包含與集合中之
K個快取線具有一一對應性之一序列
K個節點。每一節點410儲存識別對應快取線之一路徑值412。每一節點410係與一各別節點索引(例如
k= 0、1、…、(
K- 1))相關聯。一節點410之各別節點索引
k指定由節點410之路徑值412識別之快取線的新近度。舉例而言,由經儲存於第0節點中之路徑值識別的快取線係集合中之最近最少存取的快取線,且由經儲存於第(
k-1)節點中之路徑值識別的快取線係集合中之最近最多存取的快取線。
在更新LRU資料之處理期間,亦即,在一快取異動之第二階段期間,系統藉由將儲存於該序列節點410中之路徑值412移位來更新LRU資料。
圖4B圖解說明用於更新儲存於一資料結構中(例如,圖4A中所展示之該序列節點中)之LRU資料之一實例性程序。圖4B中,頂列節點在LRU資料更新之前儲存路徑值。底列節點在LRU資料更新之後儲存路徑值。該兩列節點皆自左至右以新近度遞減次序配置。即,每一列之最左側節點儲存最近最多使用(MRU)快取線之路徑值,且每一列之最右側節點儲存最近最少使用(LRU)快取線之路徑值。
在圖4B中所展示之實例中,用於異動之存取路徑由儲存於自頂列左側數第4節點中之路徑值「2」識別。系統藉由將路徑值「2」移動至MRU節點且將儲存於第一至第三節點中之路徑值自左至右移位一個節點從而產生底列中所展示之路徑值而更新LRU資料以反映新近度之改變。
圖5展示用於執行LRU運算中之危險解決方案之一實例性程序500。為了便利,程序500將被闡述為由一快取系統(諸如圖1之快取系統100)執行。
在系統針對一當前異動開始運算LRU路徑時,若該當前異動被映射至前一異動所映射到的同一集合,且在當前異動之前該前一異動已開始一個時脈循環,則可發生資料危險且系統執行程序500以解決該危險。
作為一圖解說明性實例,參考圖3,在異動#3 (txn3)係對集合B執行之當前異動時,可在針對txn3運算LRU路徑(T1階段)與針對前一異動(txn2) (亦對集合B執行)更新LRU資料(T2階段)之間發生資料危險。
返回參考圖5,在危險解決方案程序500之步驟510中,系統判定集合中之所有快取線是否皆有資格進行替換。需要此步驟乃因在某些情境中,快取系統可由多個用戶端裝置存取。在本說明書中,一用戶端裝置係將讀取請求及寫入請求發佈至快取系統以存取快取系統之資料之一裝置。在快取系統正在由多個用戶端裝置存取時,每一用戶端裝置可僅使用當前集合中之快取線之一子集來進行替換。因此,針對與一特定用戶端裝置相關聯之當前異動,僅快取線之一子集有資格進行替換,且系統可僅自合格快取線中運算LRU路徑。
若系統判定集合中之所有快取線皆有資格進行替換,則系統可僅執行步驟520以等待LRU更新結束,然後才執行步驟525以基於已更新之LRU資料(針對前一異動已更新)而針對當前異動判定LRU路徑。舉例而言,在步驟525中,系統可僅判定由儲存於如圖4A中所展示之LRU資料400之LRU節點(節點0)中之路徑值412指定之LRU路徑,其中所有LRU資料節點410已針對前一異動更新。因LRU路徑係基於相對於前一異動之最新LRU資料而選擇,所選擇LRU路徑係危險已解決的。
作為一圖解說明性實例,參考圖3,為解決當前異動(txn3)與前一異動(txn2)之間的危險,在集合B中之所有快取線皆有資格進行替換時,系統可僅等待在clk=3時txn2之LRU資料更新結束,然後才針對txn3開始運算LRU路徑。
返回參考圖5,若系統判定集合中之並非所有快取線皆有資格進行替換,亦即,對於當前異動,集合中之僅一快取線子集有資格進行替換,則系統需要在自合格快取線中判定LRU路徑之前識別快取線之合格子集。因快取線之新近度資訊可儲存於各別LRU資料節點中(例如,如圖4A中所展示),系統可藉由判定LRU資料節點之合格集合且使用儲存於合格LRU資料節點中之各別已儲存之路徑值412以識別合格快取線,從而判定合格快取線。此處,一合格LRU資料節點係指儲存識別一合格快取線之一路徑值之一LRU資料節點。
因在前一異動正在更新LRU資料時在同一時脈循環期間針對當前異動執行程序500,為正確識別合格路徑,系統需要在步驟530中判定危險已解決之合格節點。此處,一危險已解決之合格節點係指儲存識別一合格快取線之一最新路徑值之一LRU資料節點。最新路徑值係指與來自前一異動之已更新之LRU資料一致之路徑值。
在某些實施中,為提高時間效率,系統在針對前一異動完成LRU資料更新之前,開始針對當前異動判定危險已解決之合格節點之步驟。此可藉由直接使用在前一異動中更新LRU資料之節點移位資訊來達成。對於用於當前集合之LRU資料之每一節點,節點移位資訊指定該節點是否藉由用於前一異動之LRU資料更新程序移位(或將被移位)。將參考圖7闡述以一時間效率方式判定危險已解決之合格節點之一實例性實施。
在已於步驟530中判定危險已解決之合格節點之後,系統在步驟540中自危險已解決之合格節點中選擇LRU節點。所選擇LRU節點係危險已解決之合格節點之集合當中之最近最少使用節點。在步驟550中,系統使用儲存於所選擇LRU節點中之路徑值來判定LRU路徑。
圖6展示應用於儲存於一序列節點610中之LRU資料(亦即,用於集合中之快取線之各別路徑值)之一LRU快取替換策略之一實例性硬體實施600。類似於圖4中所展示之資料結構,該序列
K個節點610係根據由儲存於節點中之各別路徑值識別之快取線之新近度(其中新近度自左至右遞減)來配置。即,在圖6中所展示之實例中,最左側節點(亦即,節點(
K- 1))儲存MRU快取線之路徑值,而最右側節點(亦即,節點0)儲存LRU快取線之路徑值。
電路600包含複數個比較器640、複數個「或」閘650及複數個多工器660。該電路接收藉由快取異動之第一階段判定之存取路徑605作為一輸入,且使用一各別比較器640來比較存取路徑605與儲存於節點610中之路徑值中之每一者。比較器640之輸出連接至向一各別邏輯「或」閘650之一第一輸入。
為便於說明且在不損失一般性之情況下,使用第
k比較器640比較儲存於節點
k中之路徑值與存取路徑605,其中
k= 0、1、2、…、(
K- 1)。存在用於第
k節點之「或」閘,其中
k= 1、2、3、…(
K- 1)。對於
k> 1,第
k比較器640之輸出連接至第
k「或」閘之第一輸入,且第
k「或」閘之第二輸入連接至第(
k- 1)「或」閘之輸出。對於
k= 1,第
k比較器640之輸出連接至第
k「或」閘之第一輸入,且第
k「或」閘之第二輸入連接至第(
k- 1)比較器之輸出。即,「或」閘對當前節點(節點
k)與所有先前節點(節點0、1、…
k- 1)之比較結果執行「或」運算。若節點0、1、…
k中之一者儲存匹配存取路徑605之路徑值,則第
k「或」閘輸出「1」。若節點0、1、…、
k皆未儲存匹配存取路徑605之路徑值,則第
k「或」閘輸出「0」。
第
k「或」閘之輸出連接至一各別多工器660 (MUX
k)之控制輸入。此處,
k= 1、2、…、(
K- 1)。最右側多工器(MUX 0)之控制輸入連接至節點0之比較結果。MUX
k之資料輸入分別連接至當前節點(節點
k)及下一節點(節點(
k+ 1)),其中
k= 0、…、(
K- 2)。最左側多工器(MUX (
k- 1))之資料輸入分別連接至節點(
K- 1)及存取路徑輸入。因此,多工器660輸出已更新之LRU資料630,亦即,根據多工器660之控制輸入已被移位之路徑值。
電路600進一步將多工器660之控制輸入作為移位旗標信號620來輸出。移位旗標信號620包含每一特定LRU資料節點610之一各別旗標值,該各別旗標值用於指示對儲存於特定LRU資料節點610中之路徑值是否已執行(或將執行)一移位操作。如參考圖7所闡述,系統可使用移位旗標信號620來執行兩個異動之間的危險解決方案。
圖7展示用於當前快取異動與前一快取異動之間的快取危險解決方案之一實例性硬體實施700。特定而言,在於同一時脈循環中執行前一快取異動之第二階段(用於LRU資料更新)及當前快取異動之第一階段(用於LRU路徑運算)時(如圖3之clk = 3循環中所圖解說明,在此期間前一異動(txn2)執行LRU資料更新且當前異動(txn3)執行LRU路徑運算),電路700執行危險解決方案。
返回參考圖7,電路700接收數個輸入信號,包含:(1)合格路徑730,其針對當前異動識別集合中有資格進行替換之快取線;(2)用於前一異動之存取路徑705;(3)移位旗標720,其由前一異動輸出且指定用於前一異動中之LRU資料更新之LRU資料節點之移位資訊;(4)已更新之LRU資料740,其指定已藉由前一異動更新之路徑值;(5)未更新之LRU資料710,其指定尚未由前一異動更新之路徑值;及(6)危險旗標760,其指示是否執行前一異動與當前異動之間的危險解決方案。電路700輸出針對當前異動運算之LRU路徑770。
應注意,在針對前一異動已完成LRU資料更新程序之前,輸入信號705、720及730可對當前異動係可用的。因此,在針對前一異動已完成LRU資料更新程序之前,可針對當前異動開始使用此等輸入信號之資料處理。
電路700包含複數個
K× 1多工器702,包含MUX 0、MUX 1、…、MUX
K。每一
K× 1多工器702接收合格路徑730作為輸入。合格路徑730可被編碼成用於集合中之
K個快取線之一
K長度向量中之「1」或「0」旗標,其中一「1」旗標指示對應路徑有資格進行替換且一「0」旗標指示對應路徑無資格進行替換。MUX 0、…、MUX (
K- 1)中之每一者亦自各別LRU資料節點710獲得路徑值作為控制輸入。應注意,由多工器MUX 0、…、MUX(
K- 1)接收之路徑值係過時路徑值,亦即,尚未藉由前一異動之第二階段(T2)更新之路徑值。多工器MUX
K接收存取路徑705作為第二輸入。多工器702之輸出指定尚未進行危險解決之未解決之合格LRU資料節點。即,一多工器702之輸出指定一對應節點是否儲存識別合格快取線中之一者之一過時路徑值。過時路徑值係指尚未藉由前一異動之LRU資料更新程序更新之路徑值。
電路700包含接收移位旗標信號720作為控制信號之複數個多工器704。每一多工器704之資料輸入連接至兩個毗鄰
K× 1多工器702之輸出。因此,在存在一危險時,多工器704基於移位旗標720而對未解決之合格LRU資料節點執行資料移位。危險信號760指示對同一集合執行兩個異動,亦即,存在危險。因移位旗標720已由前一異動輸出且指定針對前一異動的LRU資料節點之移位資訊,多工器704對未解決之合格LRU資料節點執行如由前一異動對LRU資料節點執行之相同資料移位。因此,多工器704之輸出指定危險已解決之LRU資料節點。
電路700包含一固定優先級仲裁器790,該固定優先級仲裁器在危險已解決之合格節點當中執行一固定優先級仲裁且在危險已解決之合格節點當中選擇LRU節點780,亦即,如由節點索引所指示之最近最少使用節點。電路700可使用另一
K× 1多工器708,該另一
K× 1多工器接收所選擇LRU節點780作為控制信號以取決於危險信號760而自已更新之LRU資料740或未更新之LRU資料710中選擇LRU路徑770。
如上文所闡述,電路700經組態以至少部分與前一異動之LRU資料更新程序平行而針對當前異動對合格LRU資料節點執行危險解決方案。因此,利用危險解決方案在第一階段中判定存取路徑所需之時間可被估算為:
其中C2係用於執行額外操作(諸如對未解決之合格節點執行資料移位)之一恆定小時間延遲。
與LRU替換策略之習用實施相比,上文闡述之實施提供一時間節省:
因用於更新LRU資料之時間隨快取關聯性而增加,如由方程式(5)所指示之時間節省 可對在每一集合中具有大量快取線之集合關聯快取係重要的。
如由上文分析所展示,藉由使用參考圖2、圖3及圖6所闡述之快取替換程序及參考圖5及圖7所闡述之危險解決方案程序,所闡述之快取系統可克服習用LRU替換實施之某些限制,且提高改良用於執行多個快取異動之時間效率。
本說明書中所闡述之標的物及功能性操作之實施例可實施於數位電子電路中、有形體現的電腦軟體或韌體中、包含本說明書中所揭示之結構及其結構等效物之電腦硬體中,或者其中之一或多者之組合中。可將本說明書中所闡述之標的物之實施例實施為一或多個電腦程式,亦即,編碼於一有形的非暫時性儲存媒體上供資料處理設備執行或用於控制資料處理設備之操作的一或多個電腦程式指令模組。電腦儲存媒體可係一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或者其中之一或多者之一組合。另一選擇係或另外,程式指令可編碼於一人為產生的傳播信號(例如,一機器產生的電、光學或電磁信號)上,該傳播信號經產生以對資訊進行編碼來傳輸至適合接收器設備以供由一資料處理設備執行。
本說明書結合系統及電腦程式組件而使用術語「經組態」。對於經組態以執行特定操作或行動之一或多個電腦的一系統,意味著系統已於其上安裝在操作中致使系統執行該等操作或行動的軟體、韌體、硬體或其一組合。對於經組態以執行特定操作或行動之一或多個電腦程式,意味著一或多個程式包含在由資料處理設備執行時致使設備執行該等操作或行動之指令。本說明書中所闡述之標的物及功能性操作的實施例可被實施於數位電子電路中、有形體現的電腦軟體或韌體中、包含本說明書中所揭示的結構及其結構等效物的電腦硬體中,或者其中之一或多者的組合中。可將本說明書中所闡述之標的物的實施例實施為一或多個電腦程式,亦即,編碼於一有形的非暫時性儲存媒體上供資料處理設備執行或用於控制資料處理設備之操作的一或多個電腦程式指令模組。電腦儲存媒體可係一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或者其中之一或多者的一組合。另一選擇係或另外,程式指令可被編碼於一人為產生的傳播信號(例如,一機器產生的電、光學或電磁信號)上,該傳播信號經產生以將資訊編碼用於傳輸至適合接收器設備以供一資料處理設備執行。
術語「資料處理設備」係指資料處理硬體且涵蓋用於處理資料之所有種類的設備、裝置及機器,以實例之方式包含一可程式化處理器、一電腦,或者多個處理器或多個電腦。設備亦可係或進一步包含特殊用途邏輯電路,例如,一FPGA (場可程式化閘陣列)或一ASIC (特定應用積體電路)。除硬體外,設備亦可視情況包含為電腦程式建立一執行環境的程式碼,例如,構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或者其中之一或多者之一組合的程式碼。
一電腦程式,其亦可被稱為或被闡述為一程式、軟體、一軟體應用程式、一應用程式、一模組、一軟體模組、一指令碼或程式碼,可以程式設計語言之任一形式寫入,包含編譯或解譯語言,或者宣告式或程序性語言;且其可以任一形式部署,包含作為一獨立程式或作為一模組、組件、副常式或適合在一運算環境中使用的其他單元。一程式可但非必然對應於一檔案系統中之一檔案。一程式可被儲存於保持其他程式或資料(例如,經儲存於一標記語言文件中的一或多個指令碼)之一檔案的一部分中、經儲存於專用於所討論程式之一單個檔案中或經儲存於多個經協調檔案(例如,儲存一或多個模組、子程式或程式碼之部分的檔案)中。一電腦程式可經部署以在一個電腦上或在位於一個位點處或跨越多個位點分佈且藉由一資料通信網路互連的多個電腦上執行。
本說明書中所闡述之程序及邏輯流程可由執行一或多個電腦程式之一或多個可程式化電腦執行以藉由對輸入資料進行操作並產生輸出來執行功能。程序及邏輯流程亦可由特殊用途邏輯電路(例如,一FPGA或一ASIC)執行,或由特殊用途邏輯電路與一或多個經程式化電腦之一組合執行。
適合執行一電腦程式之電腦可基於一般或特殊用途微處理器或兩者,或任何其他種類的中央處理單元。大體而言,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之基本元件係用於執行或實行指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。中央處理單元及記憶體可由特殊用途邏輯電路補充或併入於特殊用途邏輯電路中。大體而言,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或光碟),或以操作方式耦合以自該一或多個大容量儲存裝置接收資料或向其傳送資料或既接收又傳送資料。然而,一電腦不必具有此類設備。此外,一電腦可嵌入另一裝置中,例如,一行動電話、一個人數位助理(PDA)、一行動式音訊或視訊播放器、一遊戲控制台、一全球定位系統(GPS)接收器或一可攜式儲存裝置(例如,一通用串列匯流排(USB)隨身碟),僅舉幾例。
適合於儲存電腦程式指令及資料之電腦可讀媒體包含所有形式之非揮發性記憶體、媒體及記憶體裝置,以實例之方式包含半導體記憶體裝置(例如,EPROM、EEPROM及快閃記憶體裝置);磁碟(例如,內部硬磁碟或可抽換式磁碟);磁光碟;以及CD ROM及DVD-ROM碟。
雖然本說明書含有諸多特定實施細節,但此等細節不應解釋為限制任一發明之範疇或可主張之內容之範疇,而應解釋為可係特定發明之特定實施例特有之特徵之說明。本說明書中在單獨實施例之內容脈絡中闡述之特定特徵亦可以組合方式實施於一單項實施例中。相反地,在一單項實施例之內容脈絡中闡述之各種特徵亦可單獨地或以任何適合子組合方式實施於多項實施例中。此外,儘管上文可將特徵闡述為以特定組合方式起作用且甚至最初係如此主張,但在某些情形中,可自一所主張組合中去除來自該組合之一或多個特徵,且所主張之組合可針對於一子組合或一子組合之變化。
類似地,雖然以一特定次序在圖式中繪示操作且在申請專利範圍中陳述操作,但不應將此理解為需要以所展示之特定次序或以順序次序執行此等操作或執行所有所圖解說明之操作以達成期望結果。在特定情形下,多任務及平行處理可係有利的。此外,不應將在上文所闡述之實施例中之各種系統模組及組件之分離理解為在所有實施例中需要此分離,且應理解,通常可將所闡述之程式組件及系統一起整合於一單個軟體產品中或封裝至多個軟體產品中。
已闡述標的物之特定實施例。其他實施例在以下申請專利範圍之範疇內。舉例而言,申請專利範圍中所陳述之行動可以一不同次序來執行且仍達成期望結果。作為一項實例,附圖中所繪示之程序未必需要所展示之特定次序或順序次序來達成期望結果。在某些情形中,多任務及平行處理可係有利的。
100:快取系統/系統
110:集合/特定集合/所映射集合
114:快取線/所選擇快取線/各別快取線
120:快取異動控制器
125:快取替換邏輯
130:標籤資料
140:最近最少使用資料
200:實例性程序/程序
210:步驟
220:步驟
230:步驟
240:步驟
250:步驟
260:步驟
270:步驟
280:步驟
290:步驟
400:實例性資料結構/最近最少使用資料
410:最近最少使用資料節點/節點
412:路徑值
500:實例性程序/程序/危險解決方案程序
510:步驟
520:步驟
525:步驟
530:步驟
540:步驟
550:步驟
600:實例性硬體實施/電路
605:存取路徑
610:節點/特定最近最少使用資料節點
620:移位旗標信號
630:已更新之最近最少使用資料
640:比較器/各別比較器/第k比較器
650:「或」閘
660:多工器/各別多工器
700:實例性硬體實施/電路
702:K×1多工器/多工器
704:多工器
705:存取路徑/輸入信號
708:K×1多工器
710:未更新之最近最少使用資料/各別最近最少使用資料節點
720:移位旗標信號/移位旗標/輸入信號
730:合格路徑/輸入信號
740:已更新之最近最少使用資料
760:危險旗標/危險信號
770:最近最少使用路徑
780:最近最少使用節點/所選擇最近最少使用節點
790:固定優先級仲裁器
clk:時脈循環
Mux 0:多工器
Mux 1:多工器
Mux 2:多工器
Mux (K-1):多工器
Mux K:多工器
txn1:第一異動
txn2:第二異動/前一異動
txn3:第三異動/當前異動
圖1展示一快取系統之一實例。
圖2係圖解說明用於執行一快取異動之一實例性程序之一流程圖。
圖3圖解說明用於執行多個快取異動之一實例性程序。
圖4A展示一集合之LRU資料之一實例性資料結構。
圖4B圖解說明用於更新LRU資料之一實例性程序。
圖5係圖解說明用於針對一快取異動執行危險解決方案之一實例性程序之一流程圖。
圖6展示一LRU快取替換策略之一實例性硬體實施。
圖7展示一快取危險解決方案之一實例性硬體實施。
各種圖式中之相似元件符號及名稱指示相似元件。
100:快取系統/系統
110:集合/特定集合/所映射集合
114:快取線/所選擇快取線/各別快取線
120:快取異動控制器
125:快取替換邏輯
130:標籤資料
140:最近最少使用資料
Claims (15)
- 一種快取系統,其包括:多個集合,其中每一集合具有多個各別路徑;及一快取異動控制器,其經組態以將一經請求之記憶體區塊映射至該多個集合之一集合,該快取異動控制器包含快取替換邏輯,其中該快取系統判定是否該集合中的所有路徑已被佔用,且該快取替換邏輯經組態以實施一兩階段最近最少使用(LRU)替換運算以回應於該集合中的所有路徑係被佔用,其中該兩階段LRU替換運算致使該快取系統執行包括以下各項之操作:針對一當前異動之一第一階段,在這期間該快取系統運算該集合之一LRU路徑,及一第二階段,在這期間該快取系統利用一經異動存取路徑之資訊來更新一LRU資料結構,其中針對該當前異動執行該第一階段包括:回應於由對同一特定集合執行一前一異動之該第二階段而導致之一危險狀況,針對該當前異動執行危險解決方案。
- 如請求項1之快取系統,其中該快取系統經組態以在連續時脈循環中執行該兩階段LRU替換運算。
- 如請求項1之快取系統,其中該快取系統經組態以使用該經運算LRU路徑來實施一LRU替換策略。
- 如請求項1之快取系統,其中該快取替換邏輯包括儲存每一集合之各別路徑值的複數個節點,且其中執行該第二階段包括將所儲存的該等路徑值在用於該集合的該等節點之間移位。
- 如請求項4之快取系統,其中執行該第二階段包括利用用於該集合之每一節點已儲存的資料或自另一節點移位的資料來更新該節點。
- 如請求項1之快取系統,其中針對該當前異動執行該危險解決方案包括:回應於判定該特定集合中之所有該等各別路徑皆有資格進行替換,在針對該前一異動已更新該LRU資料結構之後,基於該LRU資料結構來判定用於該當前異動之該LRU路徑。
- 如請求項1之快取系統,其中該快取替換邏輯經組態以回應於判定該特定集合中之並非所有該等各別路徑皆有資格進行替換:判定該複數個節點中危險已解決之合格節點;自該等危險已解決之合格節點中選擇一合格節點;及使用經儲存於該所選擇合格節點中之該路徑值來判定該LRU路徑。
- 如請求項7之快取系統,其中該快取替換邏輯經組態以在該前一異動之該第二階段已完成之前,開始判定該複數個節點中該等危險已解決的合格節點且可選地(optionally),其中判定該複數個節點中該等危險已解決 的合格節點包括:在該LRU資料結構已藉由該前一異動之該第二階段更新之前,基於合格路徑及該LRU資料結構來產生識別該複數個節點中之合格節點之未解決的節點資料;及使用在該前一異動之該第二階段期間產生的移位資訊來將該未解決的節點資料移位以產生識別該等危險已解決之合格節點之危險已解決的節點資料。
- 一種用於執行一快取系統之LRU替換運算之方法,該快取系統包含多個集合及一快取異動控制器,其中每一集合具有多個各別路徑,且該快取異動控制器包含快取替換邏輯且經組態以將一經請求之記憶體區塊映射至該多個集合之一集合,該方法包括:藉由該快取系統判定是否該集合中的所有路徑已被佔用;藉由該快取替換邏輯實施一兩階段最近最少使用(LRU)替換運算以回應於該集合中的所有路徑係被佔用;藉由該快取系統在針對一當前異動之該第一階段期間運算該集合之一LRU路徑,及藉由該快取系統在一第二階段期間利用一經異動存取路徑之資訊來更新一LRU資料結構,其中針對該當前異動執行該第一階段包括:回應於由對同一特定集合執行一前一異動之該第二階段而導致的一危險狀況,針對該當前異動執行危險解決方案。
- 如請求項9之方法,其中在連續時脈循環中執行該第一階段及該第二階段。
- 如請求項9之方法,其中該快取系統經組態以使用該經運算LRU路徑來實施一LRU替換策略。
- 如請求項9之方法,其中:該方法進一步包括:將每一集合之各別路徑值儲存於複數個節點中;且執行該第二階段包括將所儲存之該等路徑值在用於該集合之該等節點之間移位且可選地,其中執行該第二階段包括利用用於該集合之每一節點已儲存的資料或自另一節點移位的資料來更新該節點。
- 如請求項9之方法,其中針對該當前異動執行該危險解決方案包括:回應於判定該特定集合中之所有該等各別路徑皆有資格進行替換,在針對該前一異動已更新該LRU資料結構之後,基於該LRU資料結構來判定用於該當前異動的該LRU路徑。
- 如請求項9之方法,其中針對該當前異動執行該危險解決方案包括,回應於判定該特定集合中之並非所有該等各別路徑皆有資格進行替換:判定該複數個節點中危險已解決之合格節點;自該等危險已解決之合格節點中選擇一合格節點;及使用經儲存於該所選擇合格節點中之該路徑值來判定該LRU路徑。
- 如請求項14之方法,其中判定危險已解決之合格節點包括:在已完成該前一異動之該第二階段之前,開始判定該複數個節點中該等危險已解決之合格節點且可選地,其中判定該等危險已解決之合格節點包括:在該LRU資料結構已藉由該前一異動之該第二階段更新之前,基於合格路徑及該LRU資料結構來產生識別該複數個節點中之合格節點之未解決的節點資料;及使用在該前一異動之該第二階段期間產生的移位資訊來將該未解決的節點資料移位以產生識別該等危險已解決之合格節點之危險已解決的節點資料。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2022/076285 WO2024058801A1 (en) | 2022-09-12 | 2022-09-12 | Time-efficient implementation of cache replacement policy |
| WOPCT/US22/76285 | 2022-09-12 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202411849A TW202411849A (zh) | 2024-03-16 |
| TWI867623B true TWI867623B (zh) | 2024-12-21 |
Family
ID=83598532
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112126708A TWI867623B (zh) | 2022-09-12 | 2023-07-18 | 快取替換策略之時間效率實施 |
Country Status (6)
| Country | Link |
|---|---|
| EP (1) | EP4359936B1 (zh) |
| JP (1) | JP2025529409A (zh) |
| KR (1) | KR20250053933A (zh) |
| CN (1) | CN119895409A (zh) |
| TW (1) | TWI867623B (zh) |
| WO (1) | WO2024058801A1 (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150248354A1 (en) * | 2014-03-03 | 2015-09-03 | Kabushiki Kaisha Toshiba | Cache memory control circuit and processor |
| TW201614503A (en) * | 2014-09-18 | 2016-04-16 | Via Alliance Semiconductor Co Ltd | Cache management request fusing |
| WO2016097812A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Cache memory budgeted by chunks based on memory access type |
| CN110362506A (zh) * | 2019-03-20 | 2019-10-22 | 上海兆芯集成电路有限公司 | 高速缓存存储器及其中实现的方法 |
| CN113853592A (zh) * | 2019-05-24 | 2021-12-28 | 德州仪器公司 | 用于促进高速缓存中的管线化读取-修改-写入支持的方法和设备 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6823427B1 (en) * | 2001-05-16 | 2004-11-23 | Advanced Micro Devices, Inc. | Sectored least-recently-used cache replacement |
| US6857048B2 (en) * | 2002-01-17 | 2005-02-15 | Intel Corporation | Pseudo least-recently-used (PLRU) replacement method for a multi-node snoop filter |
| US7039760B2 (en) * | 2003-04-28 | 2006-05-02 | International Business Machines Corporation | Programming means for dynamic specifications of cache management preferences |
| US7962695B2 (en) * | 2007-12-04 | 2011-06-14 | International Business Machines Corporation | Method and system for integrating SRAM and DRAM architecture in set associative cache |
| US8171220B2 (en) * | 2009-04-24 | 2012-05-01 | International Business Machines Corporation | Cache architecture with distributed state bits |
| US10019381B2 (en) * | 2012-05-01 | 2018-07-10 | Nvidia Corporation | Cache control to reduce transaction roll back |
| US9734059B2 (en) * | 2012-11-21 | 2017-08-15 | Advanced Micro Devices, Inc. | Methods and apparatus for data cache way prediction based on classification as stack data |
| US9367348B2 (en) * | 2013-08-15 | 2016-06-14 | Globalfoundries Inc. | Protecting the footprint of memory transactions from victimization |
| US20150193355A1 (en) * | 2014-01-07 | 2015-07-09 | Samsung Electronics Co., Ltd. | Partitioned cache replacement algorithm |
| KR101817847B1 (ko) * | 2014-12-14 | 2018-02-21 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 메모리 접근 타입에 기초한 통로에 의해 버짓화된 캐시 메모리 |
| WO2016097806A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by memory access type |
| US10789175B2 (en) * | 2017-06-01 | 2020-09-29 | Mellanox Technologies Ltd. | Caching policy in a multicore system on a chip (SOC) |
-
2022
- 2022-09-12 WO PCT/US2022/076285 patent/WO2024058801A1/en not_active Ceased
- 2022-09-12 KR KR1020257009802A patent/KR20250053933A/ko active Pending
- 2022-09-12 CN CN202280100527.4A patent/CN119895409A/zh active Pending
- 2022-09-12 EP EP22786241.4A patent/EP4359936B1/en active Active
- 2022-09-12 JP JP2025514809A patent/JP2025529409A/ja active Pending
-
2023
- 2023-07-18 TW TW112126708A patent/TWI867623B/zh active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150248354A1 (en) * | 2014-03-03 | 2015-09-03 | Kabushiki Kaisha Toshiba | Cache memory control circuit and processor |
| TW201614503A (en) * | 2014-09-18 | 2016-04-16 | Via Alliance Semiconductor Co Ltd | Cache management request fusing |
| TW201618117A (zh) * | 2014-09-18 | 2016-05-16 | 上海兆芯集成電路有限公司 | 診斷快取記憶體回寫之處理器及其操作方法、以及利用其操作方法控制處理器之電腦程式產品 |
| WO2016097812A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Cache memory budgeted by chunks based on memory access type |
| CN110362506A (zh) * | 2019-03-20 | 2019-10-22 | 上海兆芯集成电路有限公司 | 高速缓存存储器及其中实现的方法 |
| CN113853592A (zh) * | 2019-05-24 | 2021-12-28 | 德州仪器公司 | 用于促进高速缓存中的管线化读取-修改-写入支持的方法和设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202411849A (zh) | 2024-03-16 |
| WO2024058801A1 (en) | 2024-03-21 |
| EP4359936B1 (en) | 2024-11-06 |
| KR20250053933A (ko) | 2025-04-22 |
| EP4359936A1 (en) | 2024-05-01 |
| CN119895409A (zh) | 2025-04-25 |
| JP2025529409A (ja) | 2025-09-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11915139B2 (en) | Modifying machine learning models to improve locality | |
| US7873820B2 (en) | Processor utilizing a loop buffer to reduce power consumption | |
| US8095779B2 (en) | System and method for optimization within a group priority issue schema for a cascaded pipeline | |
| CN102934076B (zh) | 指令发行控制装置以及方法 | |
| US8108654B2 (en) | System and method for a group priority issue schema for a cascaded pipeline | |
| US7996654B2 (en) | System and method for optimization within a group priority issue schema for a cascaded pipeline | |
| US20150026414A1 (en) | Stride prefetching across memory pages | |
| US20090210677A1 (en) | System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline | |
| JP3681647B2 (ja) | キャッシュメモリシステム装置 | |
| CN102822809B (zh) | 计算机系统 | |
| CN114661442B (zh) | 处理方法及装置、处理器、电子设备及存储介质 | |
| KR20230084140A (ko) | 제어 독립성 기술을 채용한 프로세서에서 처리되는 명령어에 대한 추론성 예측을 행하는 데 사용된 추론성 이력의 복원 | |
| CN120029933A (zh) | 数据请求处理方法、装置、电子设备、存储介质和程序产品 | |
| US20070162895A1 (en) | Mechanism and method for two level adaptive trace prediction | |
| TWI867623B (zh) | 快取替換策略之時間效率實施 | |
| CN109799897B (zh) | 一种减少gpu二级缓存能耗的控制方法及装置 | |
| US20140115257A1 (en) | Prefetching using branch information from an instruction cache | |
| US20090210664A1 (en) | System and Method for Issue Schema for a Cascaded Pipeline | |
| US10394566B2 (en) | Banked cache temporarily favoring selection of store requests from one of multiple store queues | |
| US12223202B2 (en) | Store buffer | |
| KR20250048797A (ko) | 저 레이턴시 캐시 | |
| US10936043B2 (en) | Thermal management of hardware accelerators | |
| TW202447416A (zh) | 用於在系統部件之間移動資料的系統及方法 | |
| CN112380013A (zh) | 缓存预载方法、装置、处理器芯片及服务器 | |
| CN121411938A (zh) | 基于时序历史分析的gpu动态内存资源管理方法及系统 |