TWI585583B - 快取更換策略 - Google Patents
快取更換策略 Download PDFInfo
- Publication number
- TWI585583B TWI585583B TW100147087A TW100147087A TWI585583B TW I585583 B TWI585583 B TW I585583B TW 100147087 A TW100147087 A TW 100147087A TW 100147087 A TW100147087 A TW 100147087A TW I585583 B TWI585583 B TW I585583B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- request
- eviction mode
- eviction
- memory
- Prior art date
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明之具體實施例關於處理器設計之領域。更具體而言,本發明之具體實施例關於快取更換策略之系統及方法。
處理器快取,無論用於指令或資料或兩者,皆固定係有限容量或大小。當快取係「滿載(full)」,例如所有可能的快取記憶體位置皆被利用時,必須做出丟棄(discard)或「逐出(evict)」哪個資訊的判定,以添加新資訊至該快取。做出此類判定的機制或「規則(rule)」係已知為或指稱為「更換策略(replacement policy)」。
理想的更換策略將總是逐出最長一段時間將不會(再次)被使用的資訊。實際而言,不可能知道資訊將在未來何時被需要。因此,許多更換策略基於被快取資訊之時期或距離上次使用的時間做出預測。
一個此類更換策略係已知為或指稱為「最近最少使用的(Least Recently Used,LRU)」。LRU更換策略首先丟棄或逐出該最近最少使用的快取項目。LRU更換策略通常需要追蹤何時使用了什麼,若系統想確定該演算法總是丟棄該唯一最近最少使用的項目,則對於儲存及處理時間而言被認為是代價高昂的。
另一更換策略係已知為或指稱為「虛擬最近最少使用的(Pseudo Least Recently Used,PLRU)」。雖然該被丟棄項目可能並非該唯一最近最少使用的項目,但PLRU更換策略通常丟棄或逐出大約最過時的被快取項目或之一。PLRU更換策略通常欠缺逐出(a lack of evicting)真正的該最近最少使用的被快取項目,以交換(trades)有利的減少儲存及處理時間。
不幸的是,慣用的PLRU更換策略對於在相同時脈週期中需要多重快取查詢請求的電腦系統通常係不足。
據此,存在對於快取更換策略的需要,其用於在相同時脈週期中允許多重快取查詢請求的快取。
因此,快取更換策略之系統及方法係有需要的。在相同時脈週期中實現多重快取查詢請求的快取更換策略之系統及方法係有附加需要的。對於與快取設計及操作之現存系統及方法相容且互補的快取更換策略之系統及方法,存在進一步需要。本發明之具體實施例提供這些優勢。
根據本發明之第一具體實施例,裝置包含佇列記憶體結構,其配置成佇列在錯過(missing)第一快取後錯過第二快取的快取請求。包含有關該佇列記憶體結構的附加記憶體的該裝置係配置成,為該快取記錄該快取請求之逐出方式。該裝置可更配置成鎖定記錄於該附加記憶體中的該逐
出方式,舉例來說,以避免重複使用該逐出方式。該裝置可更配置成解鎖該逐出方式以回應從該第二快取至該快取的填入。該附加記憶體可能係更高層級快取之部件。
根據本發明之方法具體實施例,查詢請求係在第一快取接收。回應在該第一快取之該請求之錯過,該請求係轉發至第二快取。該第二快取係較該第一快取在記憶體階層之更高層級。回應於在該第二快取之該請求之錯過,該請求係轉發至第二快取錯過佇列。為對應該請求的該第一快取判定逐出方式。該逐出方式係儲存於該第二快取錯過佇列中。該逐出方式之該判定可與該請求之該轉發至該第二快取同時發生。該逐出方式可被鎖定以避免重複使用該逐出方式。該逐出方式可被解鎖以回應從該第二快取填入該請求。
根據本發明之其他具體實施例中,電腦系統包含快取子系統,其配置成:為對於第一快取之錯過的請求選擇逐出方式,其在該請求存取記憶體之下個更高層級的相同時脈週期上。該電腦系統可更配置以避免在填入該請求之前重複使用該逐出方式。
現在將詳細參照本發明(快取更換策略)之各種具體實施例,其範例係例示於所附圖式中。雖然本發明將搭配這些具體實施例說明,但應可了解其係不欲限制本發明於這些具體實施例。相反地,本發明係欲涵蓋替代例、修飾例
及相等物,其可包括於如由所附申請專利範圍所定義的本發明之精神與範疇內。再者,在以下本發明之詳細描述中,許多具體細節係提出以提供本發明之周密了解。然而,此領域一般技術人士之一可了解,本發明可以沒有這些具體細節而實施。在其他實例中,已習知的方法、程序、部件及電路並未詳細說明,以免不必要模糊本發明之態樣。
標記及命名
以下該詳細描述之某些部分係依據在可執行於電腦記憶體上的資料位元上的操作之程序、步驟、邏輯區塊、處理及其他符號代表項進行描述。這些描述及代表項係熟習資料處理領域人士所使用的方法,以最有效傳達其工作之主旨給熟習此領域的其他人士。程序、電腦執行的步驟、邏輯區塊、流程等,在此且通常係構想成導引至所需結果的步驟或指令之自我一致(self-consistent)的序列。該些步驟係需要物理量之物理操控的那些。通常,雖然不必要,這些量具有之形式為能夠在電腦系統中儲存、傳輸、結合、相較或者操控的電性或磁性信號。主要由於常見使用之原因,指稱這些信號為位元、數值、要素、符號、字元、術語、數字或此類,已被證明有時是便利的。
然而應記住,所有這些及類似術語係有關該適當物理量,且僅係施行於這些量的方便標記。除非有被特別陳述或是在下列討論為明顯的,其被了解到在整個本發明中,
利用術語諸如「存取(accessing)」或「執行(performing)」或「產生(generating)」或「調整(adjusting)」或「創造(creating)」或「執行(executing)」或「持續(continuing)」或「索引(indexing)」或「處理(processing)」或「運算(computing)」或「轉譯(translating)」或「計算(calculating)」或「判定(determining)」或「測量(measuring)」或「收集(gathering)」或「運行(running)」或此類的術語,指稱電腦系統之動作及流程,或者類似的電子運算裝置,其操控並轉換在該電腦系統之記錄器及記憶體內表示為物理(電子)量的資料為其他資料,而在該電腦系統記憶體或記錄器或其他此類資訊儲存、傳輸或顯示裝置內同樣表示為物理量。
快取更換策略
根據本發明之示例性具體實施例係依據指稱或說明為「L1」的層級1快取(Level 1 cache)於文中說明。快取之下個層級,通常說明為快取之「更高(higher)」層級,可指稱或說明為層級2快取(Level 2 cache),或者「L2」。應可瞭解根據本發明之具體實施例非常適合所有種類之快取,例如指令快取、資料快取、預擷取快取、轉譯後備緩衝器(translation lookaside buffers,TLB)及此類,以及在快取階層之其他層級的快取。
考慮在快取中有m個集合及多達n個請求(其允許在一個週期中存取該快取)的系統。所有n個請求皆至相同
集合的可能性係:1/(n * m)。當n及m變大,該可能性變低。對於低發生可能性的事件,降低該週期時間並非最佳性能靈敏解決辦法。
根據本發明之具體實施例提供快取更換策略,其可以1(快取「方式(ways)」數量)及n(允許在一個週期中存取該快取的請求數量)之數值擴充(scalable)。
根據本發明之具體實施例,快取更換策略之特性包括:
1. L1係包含於L2中。
2.對於在L1中的該錯過請求,僅一個請求可以在一週期中存取L2快取。
3.僅一個請求被允許在一個週期中填入L1。
圖1例示根據本發明之具體實施例的快取更換策略之資料流程圖100。該快取更換策略可舉例來說透過記憶體結構及邏輯,在電腦系統例如微處理器之快取子系統中實行。快取查詢請求105係在層級1快取(L1)110接收。該層級1快取在某些具體實施例中可能係層級1資料快取(Level 1 data cache,L1D)。該查詢請求係錯過。錯過請求115係從L1發送至該L1錯過佇列120。該請求並未在該L1錯過之時間選擇逐出方式。而是,該錯過的請求係轉發125至L2快取130及L1虛擬最近最少使用的(PLRU)陣列140。
應瞭解PLRU陣列140在邏輯上係在L1和L2之間。在此類結構之間實際定位PLRU陣列140可能亦有益。舉例來說,該PLRU陣列140可能係該L2記憶體結構之部件。應更可瞭解L2快取130可包含管線(pipeline)(未顯示),其耦合並且服務(servicing)L2快取。
若該快取查詢請求常駐於該L2快取130中,則該請求係透過136轉發至L1 110。若該快取查詢請求錯過L2快取130,則該請求係轉發135至L2錯過佇列150。L2錯過佇列150以習知方式解決該錯過,舉例來說,透過至更高層級快取或記憶體的請求。應可瞭解未顯示例如從更高層級快取或記憶體至L2快取130的任何填入。
根據本發明之具體實施例,該錯過的請求亦係從L1 PLRU陣列140轉發145至L2錯過佇列150。L2錯過佇列150包含附加儲存位置160以記錄該L1逐出方式。以此方式,該L1錯過可以「被鎖定(locked)」於該L2錯過佇列中。
當請求105錯過L1 110時,在L1錯過之該時間選擇逐出方式並不麻煩。錯過L1的請求,隨後前進至L2快取130。
該L2快取130,不像L1 110,在一個週期中僅允許一個快取查詢請求。應注意,藉由其高命中率,L1 110可
從在一個週期中支援多重請求的設計受益。然而,由於其大型尺寸且由於存取之低比率,L2快取130並未從在一個週期中服務多重請求受益。當多重請求錯過L1 110時,該些請求前進至L2 130,以每個週期一個之方式被串列化以存取L2 130。在該L2快取130中,該些請求一次選擇其一個逐出方式。
因為錯過L1 110的這些請求(全部皆在相同週期中),在L2 130中超過例如數百個隨後的週期,一次一個地選擇其逐出方式,故可能有超過一個請求選擇相同方式作為其逐出方式。基於性能原因,這係不欲見到的。舉例來說,考慮Request0(請求0)在時間t0選擇way0(方式0)。Request1(請求1)隨後在某時間後(例如在t10)存取L2快取130。在t0和t10之間,用於該集合的該PLRU陣列140前進經過許多數值改變且在時間t0立即回到其先前位置。此將導致Request1如同Request0亦在相同逐出方式數值到達。因此,Request1將非常迅速取代剛被Request0填入L1 110的該快取行(line)。
此潛在問題係藉由在結構(L2錯過佇列150)中記錄Request0之該逐出方式而設法解決,該結構已存在以追蹤錯過L1 110且亦錯過L2快取130的該請求。舉例來說,L2錯過佇列150「記得(remembers)」哪個方式已被選擇為逐出方式且該方式變成「被鎖定(locked)」,避免該方式再次被使用,直到其被解鎖。被鎖定的逐出方式無法被任何未來請求者選擇。當L2快取130填入L1 110時,一方式
被解鎖。
圖2例示根據本發明之具體實施例的方法200。在210,在第一快取接收查詢請求。舉例來說,查詢請求105之一係在L1 110接收,如在圖1中所例示。在220,回應於在該第一快取之該請求之錯過,轉發該請求至第二快取。該第二快取係較該第一快取在記憶體階層之更高層級,並可包括該第一快取。舉例來說,錯過請求115係透過L1錯過佇列120轉發至L2快取130,如在圖1中所例示。應可瞭解根據本發明之具體實施例非常適合轉發該錯過的請求至非快取記憶體,例如主記憶體。
在230,回應於在該第二快取之該請求之錯過,轉發該請求至第二快取錯過佇列。舉例來說,該錯過的請求係轉發至L2錯過佇列150,如在圖1中所例示。在240,為對應該請求的該第一快取判定逐出方式。根據本發明之具體實施例,該逐出方式可根據虛擬最近最少使用的快取更換策略判定。根據本發明之具體實施例,該逐出方式可例如在相同時脈週期上,與該請求至該第二快取之該轉發同時判定。
在250,儲存該逐出方式於該第二快取錯過佇列中。舉例來說,該逐出方式係儲存於L1逐出方式記憶體160中,如在圖1中所例示。
在選擇性的260中,鎖定該逐出方式以避免重複使用
該逐出方式。在選擇性的270中,解鎖該逐出方式以回應從該第二快取(或記憶體)填入該請求。據此,在該請求被填入後,可重複使用該逐出方式。根據本發明之具體實施例,逐出方式之此類鎖定及解鎖在其已被使用後,立即避免逐出方式之該不欲見的重複使用。此類近期將發生的重複使用逐出方式可導致快取子系統不良的性能降低。
根據本發明之具體實施例非常適合在電腦系統記憶體階層中滿足記憶體之各種種類及層級。於文中進行描述的許多該示例性具體實施例係說明或指稱快取記憶體,因為快取記憶體可從根據本發明之具體實施例之該性能優勢受益。應可瞭解此類範例係不欲為限制,且此領域一般技術人士將能夠展望如何延伸於文中進行描述的所揭示內容至其他記憶體種類及結構,且所有此類具體實施例被視為在本發明之範疇內。
根據本發明之具體實施例提供快取更換策略之系統及方法。根據本發明之具體實施例亦提供在相同時脈週期中實現多重快取查詢請求的快取更換策略之系統及方法。又,根據本發明之具體實施例提供與用於快取設計及操作的現存系統及方法相容且互補的快取更換策略之系統及方法。
本發明之各種具體實施例係因此說明。雖然本發明已在特定具體實施例中說明,但應可瞭解本發明不應被理解為被此類具體實施例限制,而是根據下方申請專利範圍理
解。
100‧‧‧資料流程圖
105‧‧‧快取查詢請求;請求;查詢請求
110‧‧‧層級1快取(L1);L1
115‧‧‧錯過請求
120‧‧‧L1錯過佇列
125‧‧‧轉發
130‧‧‧L2快取;L2
135‧‧‧轉發
140‧‧‧L1虛擬最近最少使用的(PLRU)陣列;PLRU陣列;L1 PLRU陣列
145‧‧‧轉發
150‧‧‧L2錯過佇列
160‧‧‧附加儲存位置;L1逐出方式記憶體
納入且形成本說明書之部分的所附圖式例示本發明之具體實施例,並與該描述一起可以解釋本發明之原則。除非另外提及,所附圖式並非成比例繪製。
圖1例示根據本發明之具體實施例的快取更換策略之資料流程圖。
圖2例示根據本發明之具體實施例的方法。
Claims (20)
- 一種裝置,包含:一佇列記憶體結構,其配置成佇列(queue)在錯過(missing)一第一快取後錯過一第二快取的快取請求;以及有關該佇列記憶體結構的附加記憶體,其配置成為該第一快取記錄該快取請求之一逐出(evict)方式,以避免重複使用(reuse)該逐出方式。
- 如申請專利範圍第1項之裝置,更配置成鎖定記錄於該附加記憶體中的該逐出方式。
- 如申請專利範圍第1項之裝置,更配置成解鎖該逐出方式以回應從該第二快取至該第一快取的一填入(fill)。
- 如申請專利範圍第1項之裝置,其中該第一快取係包括於該第二快取中。
- 如申請專利範圍第1項之裝置更包含:一第三記憶體結構,其配置成記錄該第一快取之虛擬最近最少使用的(pseudo least recently used)資訊;以及其中該第三記憶體結構係配置成由該第一及該第二快取存取。
- 如申請專利範圍第1項之裝置,其中該第一快取係一層級1(Level 1)資料快取。
- 如申請專利範圍第6項之裝置,其中該第二快取係一層級2(Level 2)快取。
- 一種方法,包含:在一第一快取接收一查詢請求;回應於在該第一快取之該請求之一錯過,轉發該請求至一第二快取,其中該第二快取係較該第一快取在一記憶體階層之一更高層級;回應於在該第二快取之該請求之一錯過,轉發該請求至一第二快取錯過佇列;為對應該請求的該第一快取判定一逐出方式;以及儲存該逐出方式於該第二快取錯過佇列中,以避免重複使用該逐出方式。
- 如申請專利範圍第8項之方法,其中該判定與該轉發該請求至該第二快取同時發生。
- 如申請專利範圍第8項之方法更包含:鎖定該逐出方式以避免重複使用該逐出方式。
- 如申請專利範圍第10項之方法更包含:解鎖該逐出方式以回應從該第二快取填入該請求。
- 如申請專利範圍第8項之方法,其中該判定更包含根據一虛擬最近最少使用的快取更換策略判定該逐出方式。
- 如申請專利範圍第8項之方法,其中該第一快取係一層級1資料快取。
- 如申請專利範圍第8項之方法,其中該第二快取係一層級2快取。
- 如申請專利範圍第8項之方法,其中該第二快取係包括該第一快取。
- 一種電腦系統,包含:一快取子系統,其配置成:為對於一第一快取之一錯過的請求選擇與儲存一逐出方式,其在該請求存取記憶體之一下個更高層級的相同時脈週期上,以避免重複使用該逐出方式。
- 如申請專利範圍第16項之電腦系統,其中該記憶體之下個更高層級係一快取記憶體結構。
- 如申請專利範圍第17項之電腦系統,其中該快取記憶體結構係包括該第一快取。
- 如申請專利範圍第16項之電腦系統,更配置成根據一虛擬最近最少使用的快取更換策略選擇該逐出方式。
- 如申請專利範圍第16項之電腦系統,更配置成避免在填入該請求之前重複使用該逐出方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100147087A TWI585583B (zh) | 2011-12-19 | 2011-12-19 | 快取更換策略 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100147087A TWI585583B (zh) | 2011-12-19 | 2011-12-19 | 快取更換策略 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201327159A TW201327159A (zh) | 2013-07-01 |
TWI585583B true TWI585583B (zh) | 2017-06-01 |
Family
ID=49225026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100147087A TWI585583B (zh) | 2011-12-19 | 2011-12-19 | 快取更換策略 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI585583B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020010839A1 (en) * | 1999-10-01 | 2002-01-24 | Sun Microsystems, Inc. | Multiple variable cache replacement policy |
TW200933522A (en) * | 2008-01-25 | 2009-08-01 | Via Tech Inc | Graphics processing systems, cache systems and data-handling methods |
CN101694640A (zh) * | 2009-10-22 | 2010-04-14 | 浙江大学 | 多核架构下共享二级Cache的替换策略的实现方法 |
TW201140319A (en) * | 2009-12-16 | 2011-11-16 | Intel Corp | Replacing cache lines in a cache memory |
-
2011
- 2011-12-19 TW TW100147087A patent/TWI585583B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020010839A1 (en) * | 1999-10-01 | 2002-01-24 | Sun Microsystems, Inc. | Multiple variable cache replacement policy |
TW200933522A (en) * | 2008-01-25 | 2009-08-01 | Via Tech Inc | Graphics processing systems, cache systems and data-handling methods |
CN101694640A (zh) * | 2009-10-22 | 2010-04-14 | 浙江大学 | 多核架构下共享二级Cache的替换策略的实现方法 |
TW201140319A (en) * | 2009-12-16 | 2011-11-16 | Intel Corp | Replacing cache lines in a cache memory |
Also Published As
Publication number | Publication date |
---|---|
TW201327159A (zh) | 2013-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8909871B2 (en) | Data processing system and method for reducing cache pollution by write stream memory access patterns | |
US10430349B2 (en) | Scaled set dueling for cache replacement policies | |
US9274959B2 (en) | Handling virtual memory address synonyms in a multi-level cache hierarchy structure | |
US8140759B2 (en) | Specifying an access hint for prefetching partial cache block data in a cache hierarchy | |
US8473689B2 (en) | Predictive sequential prefetching for data caching | |
US20140208038A1 (en) | Sectored cache replacement algorithm for reducing memory writebacks | |
US20070136535A1 (en) | System and Method for Reducing Unnecessary Cache Operations | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
US11907753B2 (en) | Controller with caching and non-caching modes | |
US20100262784A1 (en) | Empirically Based Dynamic Control of Acceptance of Victim Cache Lateral Castouts | |
US9348753B2 (en) | Controlling prefetch aggressiveness based on thrash events | |
US20100262783A1 (en) | Mode-Based Castout Destination Selection | |
US8095739B2 (en) | Barriers processing in a multiprocessor system having a weakly ordered storage architecture without broadcast of a synchronizing operation | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
JP2018005395A (ja) | 演算処理装置、情報処理装置および演算処理装置の制御方法 | |
US8694732B2 (en) | Enhanced coherency tracking with implementation of region victim hash for region coherence arrays | |
US9928179B2 (en) | Cache replacement policy | |
US8261022B2 (en) | Method and apparatus for adaptive cache frame locking and unlocking | |
US20030225980A1 (en) | Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status | |
US7325101B1 (en) | Techniques for reducing off-chip cache memory accesses | |
TWI585583B (zh) | 快取更換策略 | |
US20140136784A1 (en) | Enhanced cache coordination in a multi-level cache | |
US8028128B2 (en) | Method for increasing cache directory associativity classes in a system with a register space memory | |
US8176254B2 (en) | Specifying an access hint for prefetching limited use data in a cache hierarchy | |
TW201741879A (zh) | 快取更換策略 |