TWI619016B - 共享快取記憶體系統之快取控制器及用於分配共享快取記憶體系統之快取線之方法 - Google Patents

共享快取記憶體系統之快取控制器及用於分配共享快取記憶體系統之快取線之方法 Download PDF

Info

Publication number
TWI619016B
TWI619016B TW104136888A TW104136888A TWI619016B TW I619016 B TWI619016 B TW I619016B TW 104136888 A TW104136888 A TW 104136888A TW 104136888 A TW104136888 A TW 104136888A TW I619016 B TWI619016 B TW I619016B
Authority
TW
Taiwan
Prior art keywords
cache
partition
qos
minimum
bit mask
Prior art date
Application number
TW104136888A
Other languages
English (en)
Other versions
TW201633148A (zh
Inventor
德瑞克 羅伯特 霍華
哈洛德 韋德 三世 坎
Original Assignee
高通公司
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 高通公司 filed Critical 高通公司
Publication of TW201633148A publication Critical patent/TW201633148A/zh
Application granted granted Critical
Publication of TWI619016B publication Critical patent/TWI619016B/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/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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Abstract

本發明揭示於共享快取記憶體系統中提供共享快取記憶體分配控制。在一個態樣中,提供包含複數個快取行之共享快取記憶體系統之快取控制器。快取控制器包含快取分配電路,其提供用於將服務品質(QoS)類別映射至快取行之最小分割區之最小映射位元遮罩,及用於將QoS類別映射至快取行之最大分割區之最大映射位元遮罩。快取分配電路接收包含QoS類別之QoS識別符(QoSID)之記憶體存取請求,且經組態以判定記憶體存取請求是否對應於複數個快取行中之快取行。若判定為「否」,則快取分配電路選擇經映射至QoS類別之最小分割區或經映射至QoS類別之最大分割區作為目標分割區。

Description

共享快取記憶體系統之快取控制器及用於分配共享快取記憶體系統之快取線之方法 優先權主張
本申請案根據35 U.S.C.§ 119(e)規定主張2014年11月25日申請且名為「PROVIDING FINE-GRAINED AND FLEXIBLE SHARED CACHE MEMORY ALLOCATION CONTROL,AND RELATED METHODS AND SYSTEMS」之美國臨時專利申請案第62/084,480號的優先權,該美國臨時專利申請案之內容的全文係以引用的方式併入本文中。
本發明之技術大體上係關於共享快取記憶體系統,且尤其係關於控制共享快取記憶體之分配。
愈來愈多數目個電腦硬體單元(例如(作為非限制性實例),中央處理單元(CPU)、圖形處理單元(GPU)、數位信號處理(DSP)單元及/或直接記憶體存取(DMA)引擎)經組態以共享諸如快取記憶體、記憶體、互連頻寬及快取頻寬之記憶體系統資源。電腦硬體單元之間的資源干擾及衝突可引起負面結果,諸如(作為非限制性實例)遺漏行動系統單晶片(SoC)上之即時期限,或違反合併伺服器上之服務等級協議(SLA)。另外,與一些電腦硬體單元相關聯之參考串流可具有很小時間局部性(temporal locality),從而在未經檢查的情況下導致快取污染 及對總效能之負面影響。就此而言,可需要使得使用者能夠控制共享資源之使用量。
然而,不同於系統之大多數其他效能關鍵分量(例如,CPU使用量、記憶體使用量、網路頻寬及/或磁碟頻寬),習知共享快取記憶體之分配很大程度上保持不受使用者控制。因此,此等習知共享快取記憶體系統可保持使用量過低以在存在快取干擾的情況下保護免遭最差狀況效能。此外,現有快取服務品質(QoS)及分割方案可缺乏為處理諸如(作為非限制性實例)嚴格容量分配及/或輸貫量最大化之多個使用案例所必要的靈活性。
【實施方式】中所揭示之態樣包括於共享快取記憶體系統中提供共享快取記憶體分配控制。就此而言,在一個態樣中,提供一種共享快取記憶體之快取控制器。該快取控制器支援複數個服務品質(QoS)類別,該複數個QoS類別中之每一者對應於一QoS識別符(QoSID)。該快取控制器提供一快取分配電路,其使得該共享快取記憶體之快取行能夠基於由該快取控制器接收之一記憶體存取請求之一QoSID而被選擇性地分配。該快取分配電路包含一最小映射位元遮罩,其將一QoS類別映射至該共享快取記憶體之該等快取行之一最小分割區。該最小分割區表示可被分配至該QoS類別的該共享快取記憶體之一最小部分。相似地,該快取分配電路亦包含一最大映射位元遮罩,其將該QoS類別映射至該共享快取記憶體之該等快取行之一最大分割區。該最大分割區表示可被分配至該QoS類別的該共享快取記憶體之一最大部分。在接收到一記憶體存取請求後,該快取分配電路就判定該記憶體存取請求是否對應於複數個快取行中之一快取行。若否(亦即,若發生一快取遺漏),則該快取分配電路選擇由該最小映射位元遮罩映射至對應於該QoSID之該QoS類別之該最小分割區或由該最 大映射位元遮罩映射至對應於該QoSID之該QoS類別之該最大分割區作為一目標分割區。該快取分配電路接著將一快取行分配於該目標分割區內以用於一快取填充操作。以此方式,可在多個QoS類別當中分割該共享快取記憶體以使得能夠經由分配該共享快取記憶體之該等快取行而進行精細粒度級且靈活之控制。
在另一態樣中,提供一種共享快取記憶體系統之快取控制器。該共享快取記憶體系統包含複數個快取行。該快取控制器包含一快取分配電路。該快取分配電路包含用於將複數個QoS類別中之一QoS類別映射至該複數個快取行之一最小分割區之一最小映射位元遮罩。該快取分配電路進一步包含用於將該複數個QoS類別中之該QoS類別映射至該複數個快取行之一最大分割區之一最大映射位元遮罩。該快取分配電路經組態以接收包含對應於該複數個QoS類別中之該QoS類別之一QoS識別符(QoSID)之一記憶體存取請求。該快取分配電路經進一步組態以判定該記憶體存取請求是否對應於該複數個快取行中之一快取行。該快取分配電路亦經組態以回應於判定該記憶體存取請求不對應於該複數個快取行中之該快取行而選擇由該最小映射位元遮罩映射至對應於該QoSID之該QoS類別之該最小分割區及由該最大映射位元遮罩映射至對應於該QoSID之該QoS類別之該最大分割區中的一者作為一目標分割區。該快取分配電路另外經組態以將一快取行分配於該目標分割區內以用於一快取填充操作。
在另一態樣中,提供一種共享快取記憶體系統之快取控制器。該快取控制器包含一用於接收包含對應於複數個QoS類別中之一QoS類別之一QoSID之一記憶體存取請求的構件。該快取控制器進一步包含一用於判定該記憶體存取請求是否對應於該共享快取記憶體系統之複數個快取行中之一快取行的構件。該快取控制器亦包含一用於回應於判定該記憶體存取請求不對應於該複數個快取行中之該快取行而選 擇由一最小映射位元遮罩映射至對應於該QoSID之該QoS類別之一最小分割區及由一最大映射位元遮罩映射至對應於該QoSID之該QoS類別之一最大分割區中的一者作為一目標分割區的構件。該快取控制器另外包含一用於回應於判定該記憶體存取請求不對應於該複數個快取行中之該快取行而將該複數個快取行中之該快取行分配於該目標分割區內以用於一快取填充操作的構件。
在另一態樣中,提供一種用於分配一共享快取記憶體系統之快取行之方法。該方法包含由一快取控制器之一快取分配電路接收包含對應於複數個QoS類別中之一QoS類別之一QoSID之一記憶體存取請求。該方法進一步包含判定該記憶體存取請求是否對應於該共享快取記憶體系統之複數個快取行中之一快取行。該方法亦包含回應於判定該記憶體存取請求不對應於該複數個快取行中之該快取行而選擇由一最小映射位元遮罩映射至對應於該QoSID之該QoS類別之一最小分割區及由一最大映射位元遮罩映射至對應於該QoSID之該QoS類別之一最大分割區中的一者作為一目標分割區。該方法另外包含將該複數個快取行中之該快取行分配於該目標分割區內以用於一快取填充操作。
100‧‧‧共享快取記憶體系統(SCMS)
102(0)‧‧‧記憶體組
102(X)‧‧‧記憶體組
104(0)‧‧‧集合
104(1)‧‧‧集合
104(2)‧‧‧集合
104(Y)‧‧‧集合
106(0)‧‧‧快取行
106(L)‧‧‧快取行
108(0)‧‧‧通路
108(Z)‧‧‧通路
110‧‧‧快取控制器
112(0)‧‧‧服務品質(QoS)類別
112(1)‧‧‧服務品質(QoS)類別
112(2)‧‧‧服務品質(QoS)類別
112(N)‧‧‧服務品質(QoS)類別
114(0)‧‧‧服務品質(QoS)識別符(QoSID)
114(N)‧‧‧服務品質(QoS)識別符(QoSID)
116‧‧‧快取分配電路
118‧‧‧記憶體存取請求
120‧‧‧服務品質(QoS)識別符(QoSID)
122‧‧‧指示
124‧‧‧快取使用量監視器
126‧‧‧機率函數提供者電路
200(0)‧‧‧最小映射位元遮罩
200(1)‧‧‧最小映射位元遮罩
200(2)‧‧‧最小映射位元遮罩
202(0)‧‧‧最大映射位元遮罩
202(1)‧‧‧最大映射位元遮罩
202(2)‧‧‧最大映射位元遮罩
204(0)‧‧‧平均分配目標值
204(1)‧‧‧平均分配目標值
204(2)‧‧‧平均分配目標值
206(0)‧‧‧最小分割區
206(1)‧‧‧最小分割區
206(2)‧‧‧最小分割區
208(0)‧‧‧最大分割區
208(1)‧‧‧最大分割區
208(2)‧‧‧最大分割區
300‧‧‧區塊
302‧‧‧區塊
304‧‧‧區塊
306‧‧‧區塊
308‧‧‧區塊
310‧‧‧區塊
312‧‧‧區塊
314‧‧‧區塊
316‧‧‧區塊
318‧‧‧區塊
320‧‧‧區塊
322‧‧‧區塊
400‧‧‧基於處理器之系統
402‧‧‧中央處理單元(CPU)
404‧‧‧處理器
406‧‧‧快取記憶體
408‧‧‧系統匯流排
410‧‧‧記憶體控制器
412‧‧‧記憶體系統
414‧‧‧輸入裝置
416‧‧‧輸出裝置
418‧‧‧網路介面裝置
420‧‧‧顯示控制器
422‧‧‧網路
424(0)‧‧‧記憶體單元
424(N)‧‧‧記憶體單元
426‧‧‧顯示器
428‧‧‧視訊處理器
圖1為說明包括快取控制器之例示性共享快取記憶體系統的方塊圖,該快取控制器包含快取分配電路以用於提供共享快取記憶體分配控制;圖2A至圖2C為說明由圖1之快取分配電路使用以用於強制分配圖1之共享快取記憶體系統之例示性最小映射位元遮罩及最大映射位元遮罩的方塊圖;圖3A至圖3C為說明用於提供共享快取記憶體分配控制的圖1之快取控制器之例示性操作的流程圖;及圖4為可包括圖1之快取控制器以提供共享快取記憶體分配控制 之例示性基於處理器之系統的方塊圖。
現在參看圖式,描述本發明之若干例示性態樣。本文中使用詞語「例示性」以意謂「充當實例、例項或說明」。未必將本文中被描述為「例示性」之任何態樣認作比其他態樣較佳或有利。
就此而言,提供圖1以說明共享快取記憶體系統100之結構。作為非限制性實例,可將共享快取記憶體系統100提供於半導體晶粒中。在一些態樣中,共享快取記憶體系統100可為記憶體階層(未圖示)中之層級1(L1)快取記憶體、層級2(L2)快取記憶體或層級3(L3)快取記憶體等等。在圖1之實例中,共享快取記憶體系統100為經組織成記憶體組102(0)至102(X)之記憶體陣列。記憶體組102(0)至102(X)中之每一者包含一或多個集合104(0)至104(Y),其中集合104(0)至104(Y)中之每一者係由快取行106(0)至106(L)之一子集構成。集合104(0)至104(Y)中之每一者中的快取行106(0)至106(L)之數目Z被稱作共享快取記憶體系統100之「關聯性(associativity)」,且集合104(0)至104(Y)中之每一者內的位於自0至Z之特定位置處的該群快取行106(0)至106(L)被稱作對應「通路(way)」108(0)至108(Z)。每一通路108(0)至108(Z)可因此被視為所有集合104(0)至104(Y)中之快取行106(0)至106(L)之垂直「截塊(slice)」。
應理解,本文中所描述之態樣並不限於任何特定元件配置,且所揭示技術可容易地延伸至共享快取記憶體系統100之各種結構及佈局。圖1所說明之組態僅係為了說明性目的。在一些態樣中,共享快取記憶體系統100可包含比本文中所說明者更少或更多的記憶體組102(0)至102(X)、更少或更多的集合104(0)至104(Y)、更少或更多的快取行106(0)至106(L)及/或更少或更多的通路108(0)至108(Z)。
繼續參看圖1,快取控制器110連接性地耦接至每一記憶體組 102(0)至102(X)。在習知操作中,諸如執行軟體應用程式之請求代理程式(未圖示)可請求儲存於記憶體位址(未圖示)處之指令或值(未圖示)。若未在共享快取記憶體系統100中找到經請求指令或值,則會引起快取遺漏。作為回應,快取控制器110可起始一快取填充操作,其致使大小等於快取行106(0)至106(L)中之一或多者且含有經請求指令或值的系統記憶體(未圖示)之一部分被擷取及儲存於快取行106(0)至106(L)中之一者中。
共享快取記憶體系統100提供針對多個QoS類別112(0)至112(N)之支援以用於實施針對共享記憶體使用量之QoS支援。QoS類別112(0)至112(N)中之每一者係與一唯一QoSID 114(0)至114(N)相關聯。為了更高效地於多個請求代理程式當中分配快取行106(0)至106(L),快取控制器110在一些態樣中可提供快取分配電路116。快取分配電路116可使得使用者能夠藉由使QoSID 114(0)至114(N)中之每一者與一特定請求代理程式相關聯且針對彼QoSID 114(0)至114(N)指定快取行106(0)至106(L)之分配而控制共享快取記憶體系統100之快取資源。
雖然習知快取控制器可使得能夠分配快取行106(0)至106(L),但習知快取控制器可不提供為處理不同使用案例所需要之靈活性。舉例而言,在雲端計算環境使用案例中,可需要提供快取行106(0)至106(L)之嚴格分配,使得多個執行虛擬機器(VM)能夠獨佔式地存取快取行106(0)至106(L)之子集。在其他使用案例中,可需要更靈活的分配。在使用靈活分配機制的情況下,快取使用量在共享快取記憶體系統100之完全利用下接近指定平均值。在低爭用下,或當快取消費者正獨自地執行時,使用量應接近規定最大分配。當快取消費者不在執行時,使用量應接近規定最小值。最後,當快取消費者不需要足夠快取行106(0)至106(L)以滿足平均分配時,應由另一類別使用額外容量。
就此而言,快取分配電路116針對QoS類別112(0)至112(N)中之一或多者中之每一者提供一最小映射位元遮罩(未圖示)及一最大映射位元遮罩(未圖示)。每一最小映射位元遮罩用以將對應QoS類別112(0)至112(N)映射至複數個快取行106(0)至106(L)之最小分割區(亦即,可被分配至彼QoS類別112(0)至112(N)之複數個快取行106(0)至106(L)之最小部分)。同樣地,每一最大映射位元遮罩將其對應QoS類別112(0)至112(N)映射至複數個快取行106(0)至106(L)之最大分割區,該最大分割區表示可被分配至彼QoS類別112(0)至112(N)之複數個快取行106(0)至106(L)之最大部分。在一些態樣中,最小映射位元遮罩可儲存於最小映射表(未圖示)中,而最大映射位元遮罩可儲存於最大映射表(未圖示)中。
對於包含數目N個位元之每一最小映射位元遮罩及最大映射位元遮罩,每一位元對應於共享快取記憶體系統100之複數個快取行106(0)至106(L)之一不相交1/N分割區。最小映射位元遮罩及最大映射位元遮罩中之每一者因此表示一快取分割之一邏輯視圖,其中特定態樣判定如何將最小映射位元遮罩及最大映射位元遮罩轉譯成可實現的分割。如下文更詳細地所論述,一些態樣亦可規定:針對QoS類別112(0)至112(N)中之每一者指定一平均分配目標值(未圖示)。在此等態樣中,平均分配目標值可被指定為共享快取記憶體系統100之快取行106(0)至106(L)的百分比,且可在與每一QoS類別112(0)至112(N)相關聯之最小映射位元遮罩及最大映射位元遮罩相異時用作目標分配。
快取分配電路116經進一步組態以自請求代理程式(未圖示)接收記憶體存取請求118。記憶體存取請求118包括對應於QoS類別112(0)至112(N)中之一者的QoSID 120。在圖1之實例中,QoSID 120對應於QoS類別112(0)之QoSID 114(0)。快取分配電路116判定記憶體存取請求118是否對應於共享快取記憶體系統100之複數個快取行106(0)至 106(L)中之一者。若記憶體存取請求118不對應於複數個快取行106(0)至106(L)中之任一者(亦即,快取遺漏),則快取分配電路116選擇由最小映射位元遮罩映射至對應於QoSID 120之QoS類別112(0)之最小分割區或由最大映射位元遮罩映射至對應於QoSID 120之QoS類別112(0)之最大分割區。如下文更詳細地所論述,在一些態樣中,快取分配電路116可在必要時確定性地選擇最小映射位元遮罩或最大映射位元遮罩以確保快取使用量接近平均分配目標值,或可機率性地選擇最小映射位元遮罩或最大映射位元遮罩。
快取分配電路116接著將快取行106(0)至106(L)中之一者分配於目標分割區內以用於快取填充操作。在一些態樣中,快取分配電路116可藉由首先識別一或多個快取行106(0)至106(L)而將快取行106(0)至106(L)中之一者分配於目標分割區內作為一或多個收回候選者(在本文中被稱作「收回候選者106(0)至106(L)」)。快取分配電路116接著可自共享快取記憶體系統100收回一或多個收回候選者106(0)至106(L)中之一收回候選者106(0)至106(L)。
藉由於QoSID 114(0)至114(N)當中分配快取行106(0)至106(L)(因此有效地於對應QoS類別112(0)至112(N)當中分配快取行106(0)至106(L)),共享快取記憶體系統100可在數種使用案例情境中改良快取效能。舉例而言,在一些態樣中,共享快取記憶體系統100可使得能夠服務即時約束以確保由請求代理程式進行之潛時關鍵操作具有足夠快取記憶體以滿足即時要求。為了提供回應於即時約束之服務,快取分配電路116可經組態以保證用於時間關鍵請求代理程式之快取行106(0)至106(L)之最小工作集合將保留於共享快取記憶體系統100中。由快取分配電路116分配快取行106(0)至106(L)亦可有用於強制雲端計算服務等級協議(SLA),及/或用於限定用於某些請求代理程式之快取行106(0)至106(L)之快取配額以改良電腦處理系統之總輸貫量。下文 關於圖2A至圖2C更詳細地論述由圖1之快取分配電路116使用以用於在不同使用案例中強制分配圖1之共享快取記憶體系統100的例示性最小映射位元遮罩及最大映射位元遮罩。
在一些態樣中,快取分配電路116亦可針對QoS類別112(0)至112(N)中之每一者提供一平均分配目標值。當隨後選擇最小分割區或最大分割區作為目標分割區以用於對應於QoSID 120之QoS類別112(0)至112(N)時,快取分配電路116可使其選擇基於無論哪一目標分割區將致使經分配至QoS類別112(0)至112(N)之快取行106(0)至106(L)之實際分配接近平均分配目標值。因此,當QoS類別112(0)至112(N)積極地執行於爭用系統中時,快取分配電路116將嘗試使用於QoS類別112(0)至112(N)之複數個快取行106(0)至106(L)之實際分配保持接近平均分配目標值。若QoS類別112(0)至112(N)未被排程,或若QoS類別112(0)至112(N)正使用小於平均分配的複數個快取行106(0)至106(L)之分配,則實際分配將接近由對應最小映射位元遮罩表示之最小位準。若QoS類別112(0)至112(N)正隔離地或與具有輕微快取壓力之其他工作負載一起執行,則實際分配將接近由對應最大映射位元遮罩表示之最大位準。
根據一些態樣,快取分配電路116可使用來自快取使用量監視器124的複數個快取行106(0)至106(L)於複數個QoS類別112(0)至112(N)當中之分配之指示122以指導選擇最小分割區或最大分割區作為目標分割區。作為非限制性實例,指示122可表示由給定QoS類別112(0)至112(N)進行的快取使用量之近似量測。基於指示122,快取分配電路116在一些態樣中接著可依照需要選擇最小分割區或最大分割區以致使用於彼QoS類別112(0)至112(N)之快取分配傾向於平均分配目標值。
藉由使用最小映射位元遮罩或最大映射位元遮罩以判定快取填 充操作期間之分割,複數個快取行106(0)至106(L)之所得分配將自然地在最小使用量與最大使用量之間振盪。舉例而言,若快取分配電路116選擇最小映射位元遮罩,則用於對應QoS類別112(0)至112(N)之快取使用量將朝向其最小分割區漸縮。若快取分配電路116選擇最大映射位元遮罩,則用於對應QoS類別112(0)至112(N)之快取使用量將朝向最大分割區增加。因此,在一些態樣中,快取分配電路116可確定性地在當前快取使用量高於平均分配目標值時選擇最小映射位元遮罩,且在當前快取使用量低於平均分配目標值時選擇最大映射位元遮罩。
在一些態樣中,可需要使快取分配電路116機率性地選擇最小映射位元遮罩或最大映射位元遮罩,使得快取分配電路116週期性地選擇「錯誤」位元遮罩(亦即,引起當前快取使用量遠離平均分配目標值之位元遮罩)。藉由機率性地選擇,快取分配電路116可更有效地針對QoS類別112(0)至112(N)中之每一者探索有利於自然快取型樣之快取分配,從而引起更有效地且高效地使用共享快取記憶體系統100。
根據一些態樣,快取分配電路116可經組態以基於由機率函數提供者電路126提供之機率函數(未圖示)而機率性地選擇最小映射位元遮罩或最大映射位元遮罩。一些態樣可規定:作為非限制性實例,機率函數提供者電路126可基於線性機率函數及/或S型機率函數。舉例而言,線性機率函數可在實施簡易性為重要的態樣中為較佳的。根據一些態樣,使用S型機率函數可引起較快地傾向於平均分配目標值,藉此使得快取分配電路116能夠隨著發生改變(例如,作為非限制性實例,QoS類別112(0)至112(N)具有頻繁相變的情形)更具回應性。在使用S型機率函數之態樣中,機率函數提供者電路126可結合線性回饋移位暫存器(未圖示)而被實施為經重新填入硬體查找表(未圖示)作為隨機性源。下文展示採取形狀參數μ之例示性S型函數:
為了說明可由圖1之快取分配電路116使用以用於強制分配共享快取記憶體系統100的例示性最小映射位元遮罩及最大映射位元遮罩,提供圖2A至圖2C。詳言之,圖2A說明可用以嚴格地使QoS類別112(0)及112(1)相互隔離之例示性最小映射位元遮罩及最大映射位元遮罩。圖2B說明用於將QoS類別112(0)、112(1)映射至為每一QoS類別112(0)、112(1)所獨佔之最小分割區的例示性最小映射位元遮罩,及用於將QoS類別112(0)、112(1)映射至不為每一QoS類別112(0)、112(1)所獨佔之最大分割區的例示性最大映射位元遮罩。圖2C說明可用以縮減QoS類別112(0)至112(N)可引起快取輾轉現象(cache thrashing)之影響的例示性最小映射位元遮罩及最大映射位元遮罩。在圖2A至圖2C中,QoS類別112(0)至112(2)係藉由快取分配電路116而分別與最小映射位元遮罩200(0)至200(2)、最大映射位元遮罩202(0)至202(2)及平均分配目標值204(0)至204(2)相關聯。最小映射位元遮罩200(0)至200(2)針對QoS類別112(0)至112(2)映射最小分割區206(0)至206(2),而最大映射位元遮罩202(0)至202(2)針對QoS類別112(0)至112(2)映射最大分割區208(0)至208(2)。
在圖2A之實例中,最小映射位元遮罩200(0)、200(1)及最大映射位元遮罩202(0)、202(1)將QoS類別112(0)、112(1)映射至為每一QoS類別112(0)、112(1)所獨佔的複數個快取行106(0)至106(L)之同一目標分割區。此引起QoS類別112(0)、112(1)在共享快取記憶體系統100內嚴格地相互隔離,其在諸如雲端計算應用之使用案例中可為理想的。因為最小映射位元遮罩200(0)、200(1)及最大映射位元遮罩202(0)、 202(1)針對給定QoS類別112(0)、112(1)為相同的,所以QoS類別112(0)、112(1)將決不超過由最小映射位元遮罩200(0)、200(1)及最大映射位元遮罩202(0)、202(1)指定之使用量。在最小映射位元遮罩200(0)、200(1)及最大映射位元遮罩202(0)、202(1)相同的一些態樣中,快取分配電路116可在選擇目標分割區時使用最小映射位元遮罩200(0)、200(1)及最大映射位元遮罩202(0)、202(1)中之單一者。
在圖2B中,最大映射位元遮罩202(0)、202(1)中之每一者被指定為用於給定QoS類別112(0)、112(1)的各別最小映射位元遮罩200(0)、200(1)之超集。因此,最小映射位元遮罩200(0)、200(1)將QoS類別112(0)、112(1)映射至為QoS類別112(0)、112(1)所獨佔之最小分割區206(0)、206(1)。相似地,最大映射位元遮罩202(0)、202(1)將QoS類別112(0)、112(1)映射至不為QoS類別112(0)、112(1)所獨佔之最大分割區208(0)、208(1)(亦即,在QoS類別112(0)、112(1)之間共享最大分割區208(0)、208(1)之部分)。此組態可允許使用者確保QoS類別112(0)、112(1)各自能夠獨佔式地存取複數個快取行106(0)至106(L)之部分,但亦允許QoS類別112(0)、112(1)在輕微爭用下使用複數個快取行106(0)至106(L)中之更多者。如在圖2B中所見,當無低優先權應用程式在執行時或當彼等低優先權應用程式未在使用複數個快取行106(0)至106(L)中之25%以上的快取行時,QoS類別112(0)、112(1)被保證25%之最小分配,但被允許使用複數個快取行106(0)至106(L)中之高達75%的快取行。應注意,在此組態中,位元之置放係重要的。詳言之,QoS類別112(0)、112(1)各自被獨佔式地給出複數個快取行106(0)至106(L)中之25%的快取行,此係因為其最小映射位元遮罩200(0)、200(1)中之位元不重疊。
現在參看圖2C,為了最大化輸貫量,可設定最小映射位元遮罩200(0)至200(2)及最大映射位元遮罩202(0)至202(2)以縮減使快取記憶 體發生輾轉現象之應用程式的影響。在圖2C之實例中,最小映射位元遮罩200(0)及最大映射位元遮罩202(0)嚴格地限制用於QoS類別112(0)之分配。最小映射位元遮罩200(1)、200(2)及最大映射位元遮罩202(1)、202(2)使得QoS類別112(1)、112(2)能夠共享複數個快取行106(0)至106(L)之剩餘部分,同時確保用於QoS類別112(1)、112(2)之最小分配。因此,由與QoS類別112(1)、112(2)相關聯之應用程式造成的快取記憶體之任何輾轉現象將限於最大分割區208(1)、208(2)之重疊分割區,且將不影響快取記憶體之剩餘部分。
圖3A至圖3C為說明用於提供共享快取記憶體分配控制的圖1之快取分配電路116之例示性操作的流程圖。為了清晰起見,在描述圖3A至圖3C時參考圖1及圖2A至圖2C之元件。在一些態樣中,操作始於快取分配電路116提供平均分配目標值204(0)(區塊300)。因此,快取分配電路116可在本文中被稱作「用於提供平均分配目標值的構件」。快取分配電路116接收包含對應於複數個QoS類別112(0)至122(N)中之一QoS類別112(0)之QoSID 120之記憶體存取請求118(區塊302)。快取分配電路116因此可在本文中被稱作「用於接收包含對應於複數個QoS類別中之一QoS之QoSID之記憶體存取請求的構件」。
快取分配電路116接著判定記憶體存取請求118是否對應於共享快取記憶體系統100之複數個快取行106(0)至106(L)中之一快取行106(0)(區塊304)。就此而言,快取分配電路116可在本文中被稱作「用於判定記憶體存取請求是否對應於共享快取記憶體系統之複數個快取行中之一快取行的構件」。若快取分配電路116在決策區塊304處判定記憶體存取請求118對應於複數個快取行106(0)至106(L)中之一快取行106(0),則快取分配電路116傳回快取行106(0)(亦即,快取命中)(區塊306)。然而,若記憶體存取請求118不對應於複數個快取行106(0)至106(L)中之一快取行106(0)(亦即,快取遺漏),則處理在圖3B之區塊 308處恢復執行。
現在參看圖3B,快取分配電路116選擇由最小映射位元遮罩200(0)映射至對應於QoSID 120之QoS類別112(0)之最小分割區206(0)及由最大映射位元遮罩202(0)映射至對應於QoSID 120之QoS類別112(0)之最大分割區208(0)中的一者作為目標分割區(區塊308)。因此,快取分配電路116可在本文中被稱作「用於選擇由最小映射位元遮罩映射至對應於QoSID之QoS類別之最小分割區及由最大映射位元遮罩映射至對應於QoSID之QoS類別之最大分割區中的一者作為目標分割區的構件」。在一些態樣中,用於選擇最小分割區206(0)及最大分割區208(0)中之一者的區塊308之操作包括選擇最小分割區206(0)及最大分割區208(0)中之一者以致使經分配至對應於QoSID 120之QoS類別112(0)之快取行106(0)至106(L)之實際分配接近平均分配目標值204(0)(區塊310)。快取分配電路116因此可在本文中被稱作「用於選擇最小分割區及最大分割區中之一者以致使經分配至對應於QoSID之QoS類別之快取行之實際分配接近平均分配目標值的構件」。一些態樣可規定:用於選擇最小分割區206(0)及最大分割區208(0)中之一者的區塊310之操作係基於由快取使用量監視器124提供的複數個快取行106(0)至106(L)於複數個QoS類別112(0)至122(N)當中之分配之指示122(區塊312)。作為非限制性實例,指示122可表示由給定QoS類別112(0)至112(N)進行的快取使用量之近似量測。基於由指示122指示的快取使用量之近似量測,快取分配電路116在一些態樣中接著可在需要時選擇最小分割區或最大分割區以致使用於彼QoS類別112(0)至122(N)之快取分配傾向於平均分配目標值204(0)。就此而言,快取分配電路116可在本文中被稱作「用於基於由快取使用量監視器提供的複數個快取行於複數個QoS類別當中之分配之指示而選擇最小分割區及最大分割區中之一者的構件」。
在一些態樣中,用於由快取分配電路116選擇最小分割區206(0)及最大分割區208(0)中之一者的區塊308之操作包括機率性地選擇最小分割區206(0)及最大分割區208(0)中之一者(區塊314)。因此,快取分配電路116可在本文中被稱作「用於機率性地選擇最小分割區及最大分割區中之一者的構件」。一些態樣可規定:用於機率性地選擇最小分割區206(0)及最大分割區208(0)中之一者的區塊314之操作係基於機率函數提供者電路126(區塊316)。處理在圖3C之區塊318處恢復執行。
現在轉至圖3C,快取分配電路116然後將快取行106(0)分配於目標分割區內以用於快取填充操作(區塊318)。就此而言,快取分配電路116可在本文中被稱作「用於回應於判定記憶體存取請求不對應於複數個快取行中之一快取行而將該快取行分配於目標分割區內以用於快取填充操作的構件」。根據一些態樣,用於將快取行106(0)分配於目標分割區內以用於快取填充操作的區塊318之操作包括:快取分配電路116將目標分割區內之一或多個快取行106(0)至106(L)識別為一或多個收回候選者106(0)至106(L)(區塊320)。因此,快取分配電路116可在本文中被稱作「用於將目標分割區內之一或多個快取行識別為一或多個收回候選者的構件」。快取分配電路116接著可自共享快取記憶體系統100收回一或多個收回候選者106(0)至106(L)中之一收回候選者106(0)(區塊322)。快取分配電路116因此可在本文中被稱作「用於自共享快取記憶體系統收回一或多個收回候選者中之一收回候選者的構件」。
於共享快取記憶體系統中提供共享快取記憶體分配控制可提供於或整合至任何基於處理器之裝置中。在無限制的情況下,實例包括機上盒、娛樂單元、導航裝置、通信裝置、固定位置資料單元、行動位置資料單元、行動電話、蜂巢式電話、電腦、攜帶型電腦、桌上型電 腦、個人數位助理(PDA)、監視器、電腦監視器、電視、調諧器、收音機、衛星收音機、音樂播放器、數位音樂播放器、攜帶型音樂播放器、數位視訊播放器、視訊播放器、數位視訊光碟(DVD)播放器,及攜帶型數位視訊播放器。
就此而言,圖4為例示性基於處理器之系統400的方塊圖,基於處理器之系統400可包括具有圖1之快取控制器110的共享快取記憶體系統(SCMS)100。在此實例中,基於處理器之系統400包括一或多個CPU 402,其各自包括一或多個處理器404。CPU 402可為主控器裝置。CPU 402可具有耦接至處理器404以用於快速存取經暫時儲存資料之快取記憶體406。在一些態樣中,快取記憶體406可包含圖1之共享快取記憶體系統100及/或快取分配電路116。CPU 402耦接至系統匯流排408,且可相互耦接包括於基於處理器之系統400中的主控器裝置及受控器裝置。眾所周知,CPU 402藉由經由系統匯流排408交換位址、控制及資料資訊而與此等其他裝置通信。舉例而言,CPU 402可將匯流排異動請求傳達至作為受控器裝置之實例的記憶體控制器410。
其他主控器裝置及受控器裝置可連接至系統匯流排408。如圖4所說明,作為實例,此等裝置可包括記憶體系統412、一或多個輸入裝置414、一或多個輸出裝置416、一或多個網路介面裝置418,及一或多個顯示控制器420。輸入裝置414可包括任何類型之輸入裝置,包括但不限於輸入按鍵、開關、話音處理器等等。輸出裝置416可包括任何類型之輸出裝置,包括但不限於音訊、視訊、其他視覺指示器等等。網路介面裝置418可為經組態以允許資料至及自網路422之交換的任何裝置。網路422可為任何類型之網路,包括但不限於有線或無線網路、私用或公用網路、區域網路(LAN)、無線區域網路(WLAN)、廣域網路(WAN)、BLUETOOTHTM網路及網際網路。網路介面裝置418 可經組態以支援任何類型之所要通信協定。記憶體系統412可包括一或多個記憶體單元424(0)至424(N)。
CPU 402亦可經組態以經由系統匯流排408而存取顯示控制器420以控制經發送至一或多個顯示器426之資訊。顯示控制器420將資訊發送至顯示器426以經由一或多個視訊處理器428而顯示,視訊處理器428將待顯示之資訊處理成適合於顯示器426之格式。顯示器426可包括任何類型之顯示器,包括但不限於陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器等等。
熟習此項技術者將進一步瞭解,可將結合本文中所揭示之態樣而描述的各種說明性邏輯區塊、模組、電路及演算法實施為電子硬體。作為實例,可在任何電路、硬體組件、積體電路(IC)或IC晶片中使用本文中所描述之裝置。本文中所揭示之記憶體可為任何類型及大小之記憶體,且可經組態以儲存任何類型之所要資訊。為了清楚地說明此互換性,上文已大體上在功能性方面描述各種說明性組件、區塊、模組、電路及步驟。如何實施此功能性取決於特定應用、設計選擇,及/或強加於總系統之設計約束。熟習此項技術者可針對每一特定應用而以不同方式實施所描述之功能性,但此等實施決策不應被解譯為致使脫離本發明之範疇。
可運用經設計以執行本文中所描述之功能的處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或其任何組合來實施或執行結合本文中所揭示之態樣而描述的各種說明性邏輯區塊、模組及電路。處理器可為微處理器,但在替代方案中,處理器可為任何習知處理器、控制器、微控制器或狀態機。處理器亦可被實施為計算裝置之組合,例如,DSP與微處理器之組合、複數個微處理器、結合DSP核心之一或多個微處理器,或任何其他此類組態。
亦應注意,描述本文中在例示性態樣中之任一者中所描述之操作步驟以提供實例及論述。可以除了所說明之序列以外的眾多不同序列來執行所描述之操作。此外,可實際上在數個不同步驟中執行單一操作步驟中所描述之操作。另外,可組合例示性態樣中所論述之一或多個操作步驟。應理解,對於熟習此項技術者而言將顯而易見,流程圖中所說明之操作步驟可經受眾多不同修改。熟習此項技術者亦將理解,可使用多種不同技術中之任一者來表示資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其任何組合表示可貫穿以上描述而參考之資料、指令、命令、資訊、信號、位元、符號及碼片。
提供本發明之前述描述以使得任何熟習此項技術者能夠作出或使用本發明。在不脫離本發明之精神或範疇的情況下,對本發明之各種修改對於熟習此項技術者而言將顯而易見,且可將本文中所定義之一般原理應用於其他變化。因此,本發明不意欲限於本文中所描述之實例及設計,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣泛範疇。

Claims (26)

  1. 一種包含複數個快取行之一共享快取記憶體系統之快取控制器,該快取控制器包含一快取分配電路,該快取分配電路包含:用於將複數個服務品質(QoS)類別中之一QoS類別映射至該複數個快取行之一最小分割區之一最小映射位元遮罩;用於將該複數個QoS類別中之該QoS類別映射至該複數個快取行之一最大分割區之一最大映射位元遮罩;且該快取分配電路經組態以:接收包含對應於該複數個QoS類別中之該QoS類別之一QoS識別符(QoSID)之一記憶體存取請求;判定該記憶體存取請求是否對應於該複數個快取行中之一快取行;及回應於判定該記憶體存取請求不對應於該複數個快取行中之該快取行:選擇由該最小映射位元遮罩映射至對應於該QoSID之該QoS類別之該最小分割區及由該最大映射位元遮罩映射至對應於該QoSID之該QoS類別之該最大分割區中的一者作為一目標分割區;及將一快取行分配於該目標分割區內以用於一快取填充操作。
  2. 如請求項1之快取控制器,其中該快取分配電路經組態以藉由以下操作將該快取行分配於該目標分割區內:將該目標分割區內之該複數個快取行中之一或多個快取行識別為一或多個收回候選者;及 自該共享快取記憶體系統收回該一或多個收回候選者中之一收回候選者。
  3. 如請求項1之快取控制器,其中:該快取分配電路經進一步組態以提供一平均分配目標值;該快取分配電路經組態以選擇該最小分割區及該最大分割區中之該一者作為該目標分割區以致使經分配至對應於該QoSID之該QoS類別之快取行之一實際分配接近該平均分配目標值。
  4. 如請求項3之快取控制器,其中:該快取控制器進一步包含一快取使用量監視器,其用於提供該複數個快取行於該複數個QoS類別當中之一分配之一指示;且該快取分配電路經組態以基於由該快取使用量監視器提供之該指示而選擇該最小分割區及該最大分割區中之該一者作為該目標分割區。
  5. 如請求項1之快取控制器,其中該快取分配電路經組態以藉由機率性地選擇該最小分割區及該最大分割區中之該一者而選擇該最小分割區及該最大分割區中之該一者作為該目標分割區。
  6. 如請求項5之快取控制器,其進一步包含一機率函數提供者電路;其中該快取分配電路經組態以基於該機率函數提供者電路而機率性地選擇該最小分割區及該最大分割區中之該一者。
  7. 如請求項1之快取控制器,其中該最小映射位元遮罩及該最大映射位元遮罩將該複數個QoS類別中之該QoS類別映射至為該QoS類別所獨佔的該複數個快取行之一同一分割區。
  8. 如請求項1之快取控制器,其中:該最小映射位元遮罩將該複數個QoS類別中之該QoS類別映射至為該QoS類別所獨佔之該最小分割區;且 該最大映射位元遮罩將該複數個QoS類別中之該QoS類別映射至不為該QoS類別所獨佔之該最大分割區。
  9. 如請求項1之快取控制器,其整合至一積體電路(IC)中。
  10. 如請求項1之快取控制器,其整合至選自由以下各者組成之一群組的一裝置中:一機上盒;一娛樂單元;一導航裝置;一通信裝置;一固定位置資料單元;一行動位置資料單元;一行動電話;一蜂巢式電話;一電腦;一攜帶型電腦;一桌上型電腦;一個人數位助理(PDA);一監視器;一電腦監視器;一電視;一調諧器;一收音機;一衛星收音機;一音樂播放器;一數位音樂播放器;一攜帶型音樂播放器;一數位視訊播放器;一視訊播放器;一數位視訊光碟(DVD)播放器;及一攜帶型數位視訊播放器。
  11. 一種共享快取記憶體系統之快取控制器,其包含:一用於接收包含對應於複數個服務品質(QoS)類別中之一QoS類別之一QoS識別符(QoSID)之一記憶體存取請求的構件;一用於判定該記憶體存取請求是否對應於該共享快取記憶體系統之複數個快取行中之一快取行的構件;一用於回應於判定該記憶體存取請求不對應於該複數個快取行中之該快取行而選擇由一最小映射位元遮罩映射至對應於該QoSID之該QoS類別之一最小分割區及由一最大映射位元遮罩映射至對應於該QoSID之該QoS類別之一最大分割區中的一者作為一目標分割區的構件;及一用於回應於判定該記憶體存取請求不對應於該複數個快取行中之該快取行而將該複數個快取行中之該快取行分配於該目標分割區內以用於一快取填充操作的構件。
  12. 如請求項11之快取控制器,其中該用於將該快取行分配於該目標 分割區內的構件包含:一用於將該目標分割區內之該複數個快取行中之一或多個快取行識別為一或多個收回候選者的構件;及一用於自該共享快取記憶體系統收回該一或多個收回候選者中之一收回候選者的構件。
  13. 如請求項11之快取控制器,其進一步包含一用於提供一平均分配目標值的構件;其中該用於選擇該最小分割區及該最大分割區中之該一者作為該目標分割區的構件包含一用於選擇該最小分割區及該最大分割區中之該一者以致使經分配至對應於該QoSID之該QoS類別之快取行之一實際分配接近該平均分配目標值的構件。
  14. 如請求項13之快取控制器,其中該用於選擇該最小分割區及該最大分割區中之該一者作為該目標分割區的構件包含一用於基於由一快取使用量監視器提供的該複數個快取行於該複數個QoS類別當中之一分配之一指示而選擇該最小分割區及該最大分割區中之該一者的構件。
  15. 如請求項11之快取控制器,其中該用於選擇該最小分割區及該最大分割區中之該一者作為該目標分割區的構件包含一用於機率性地選擇該最小分割區及該最大分割區中之該一者的構件。
  16. 如請求項15之快取控制器,其中該用於機率性地選擇該最小分割區及該最大分割區中之該一者的構件係基於一機率函數提供者電路。
  17. 如請求項11之快取控制器,其中該最小映射位元遮罩及該最大映射位元遮罩將該複數個QoS類別中之該QoS類別映射至為該QoS類別所獨佔的該複數個快取行之一同一分割區。
  18. 如請求項11之快取控制器,其中: 該最小映射位元遮罩將該複數個QoS類別中之該QoS類別映射至為該QoS類別所獨佔之該最小分割區;且該最大映射位元遮罩將該複數個QoS類別中之該QoS類別映射至不為該QoS類別所獨佔之該最大分割區。
  19. 一種用於分配一共享快取記憶體系統之快取行之方法,其包含:由一快取控制器之一快取分配電路接收包含對應於複數個服務品質(QoS)類別中之一QoS類別之一QoS識別符(QoSID)之一記憶體存取請求;判定該記憶體存取請求是否對應於該共享快取記憶體系統之複數個快取行中之一快取行;及回應於判定該記憶體存取請求不對應於該複數個快取行中之該快取行:選擇由一最小映射位元遮罩映射至對應於該QoSID之該QoS類別之一最小分割區及由一最大映射位元遮罩映射至對應於該QoSID之該QoS類別之一最大分割區中的一者作為一目標分割區;及將該複數個快取行中之該快取行分配於該目標分割區內以用於一快取填充操作。
  20. 如請求項19之方法,其中將該複數個快取行中之該快取行分配於該目標分割區內包含:將該目標分割區內之一或多個快取行識別為一或多個收回候選者;及自該共享快取記憶體系統收回該一或多個收回候選者中之一收回候選者。
  21. 如請求項19之方法,其進一步包含提供一平均分配目標值; 其中選擇該最小分割區及該最大分割區中之該一者作為該目標分割區包含選擇該最小分割區及該最大分割區中之該一者以致使經分配至對應於該QoSID之該QoS類別之快取行之一實際分配接近該平均分配目標值。
  22. 如請求項21之方法,其中選擇該最小分割區及該最大分割區中之該一者作為該目標分割區包含基於由一快取使用量監視器提供的該複數個快取行於該複數個QoS類別當中之一分配之一指示而選擇該最小分割區及該最大分割區中之該一者。
  23. 如請求項19之方法,其中選擇該最小分割區及該最大分割區中之該一者作為該目標分割區包含機率性地選擇該最小分割區及該最大分割區中之該一者。
  24. 如請求項23之方法,其中機率性地選擇該最小分割區及該最大分割區中之該一者係基於一機率函數提供者電路。
  25. 如請求項19之方法,其中該最小映射位元遮罩及該最大映射位元遮罩將該複數個QoS類別中之該QoS類別映射至為該QoS類別所獨佔的該複數個快取行之一同一分割區。
  26. 如請求項19之方法,其中:該最小映射位元遮罩將該複數個QoS類別中之該QoS類別映射至為該QoS類別所獨佔之該最小分割區;且該最大映射位元遮罩將該複數個QoS類別中之該QoS類別映射至不為該QoS類別所獨佔之該最大分割區。
TW104136888A 2014-11-25 2015-11-09 共享快取記憶體系統之快取控制器及用於分配共享快取記憶體系統之快取線之方法 TWI619016B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462084480P 2014-11-25 2014-11-25
US62/084,480 2014-11-25
US14/861,025 US9678875B2 (en) 2014-11-25 2015-09-22 Providing shared cache memory allocation control in shared cache memory systems
US14/861,025 2015-09-22

Publications (2)

Publication Number Publication Date
TW201633148A TW201633148A (zh) 2016-09-16
TWI619016B true TWI619016B (zh) 2018-03-21

Family

ID=56010346

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104136888A TWI619016B (zh) 2014-11-25 2015-11-09 共享快取記憶體系統之快取控制器及用於分配共享快取記憶體系統之快取線之方法

Country Status (11)

Country Link
US (1) US9678875B2 (zh)
EP (1) EP3224728B1 (zh)
JP (1) JP6262407B1 (zh)
KR (1) KR101851294B1 (zh)
CN (1) CN107111557B (zh)
AU (1) AU2015354703A1 (zh)
BR (1) BR112017010809A2 (zh)
ES (1) ES2693341T3 (zh)
HU (1) HUE040009T2 (zh)
TW (1) TWI619016B (zh)
WO (1) WO2016085641A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055158B2 (en) * 2016-09-22 2018-08-21 Qualcomm Incorporated Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems
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
US10649900B2 (en) * 2017-11-06 2020-05-12 Samsung Electronics Co., Ltd. Method to avoid cache access conflict between load and fill
CN109240829B (zh) * 2018-08-29 2021-02-02 盛科网络(苏州)有限公司 用于交换芯片的申请、管理独占资源的方法及装置
US10884959B2 (en) * 2019-02-13 2021-01-05 Google Llc Way partitioning for a system-level cache
EP3924832A4 (en) * 2019-02-14 2022-11-23 Telefonaktiebolaget Lm Ericsson (Publ) MEMORY MANAGEMENT CONTROL METHODS AND DEVICES
US11093287B2 (en) * 2019-05-24 2021-08-17 Intel Corporation Data management for edge architectures
US11762770B2 (en) * 2020-10-22 2023-09-19 EMC IP Holding Company LLC Cache memory management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200426675A (en) * 2003-04-02 2004-12-01 Intel Corp Cache allocation
US20070050070A1 (en) * 2005-08-05 2007-03-01 Pfizer Inc Automated batch manufactuirng
TW201110619A (en) * 2009-09-01 2011-03-16 Fiber Logic Communications Inc Telecommunication network transmission diver system and method
TW201306616A (zh) * 2011-06-01 2013-02-01 Interdigital Patent Holdings 內容傳遞網路互連(cdni)機制

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147218A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd キャッシュ制御装置
US7047366B1 (en) 2003-06-17 2006-05-16 Emc Corporation QOS feature knobs
JP4643479B2 (ja) * 2006-03-22 2011-03-02 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US20090138220A1 (en) * 2007-11-28 2009-05-28 Bell Jr Robert H Power-aware line intervention for a multiprocessor directory-based coherency protocol
US8296522B2 (en) 2007-12-20 2012-10-23 Intel Corporation Method, apparatus, and system for shared cache usage to different partitions in a socket with sub-socket partitioning
US8621149B2 (en) 2009-12-23 2013-12-31 Intel Corporation Controlling access to a cache memory using privilege level information
US8850122B2 (en) 2011-11-30 2014-09-30 International Business Machines Corporation Cache optimization via predictive cache size modification
US8751746B2 (en) 2011-12-15 2014-06-10 Apple Inc. QoS management in the L2 cache
US9824013B2 (en) 2012-05-08 2017-11-21 Qualcomm Incorporated Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors
KR101593161B1 (ko) * 2014-10-02 2016-02-15 한국전자통신연구원 메모리 관리 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200426675A (en) * 2003-04-02 2004-12-01 Intel Corp Cache allocation
US20070050070A1 (en) * 2005-08-05 2007-03-01 Pfizer Inc Automated batch manufactuirng
TW201110619A (en) * 2009-09-01 2011-03-16 Fiber Logic Communications Inc Telecommunication network transmission diver system and method
TW201306616A (zh) * 2011-06-01 2013-02-01 Interdigital Patent Holdings 內容傳遞網路互連(cdni)機制

Also Published As

Publication number Publication date
JP6262407B1 (ja) 2018-01-17
JP2018503888A (ja) 2018-02-08
CN107111557A (zh) 2017-08-29
BR112017010809A2 (pt) 2017-12-26
US9678875B2 (en) 2017-06-13
US20160147656A1 (en) 2016-05-26
EP3224728B1 (en) 2018-08-15
CN107111557B (zh) 2018-09-14
KR101851294B1 (ko) 2018-04-23
ES2693341T3 (es) 2018-12-11
HUE040009T2 (hu) 2019-02-28
EP3224728A1 (en) 2017-10-04
WO2016085641A1 (en) 2016-06-02
KR20170087457A (ko) 2017-07-28
AU2015354703A1 (en) 2017-05-04
TW201633148A (zh) 2016-09-16

Similar Documents

Publication Publication Date Title
TWI619016B (zh) 共享快取記憶體系統之快取控制器及用於分配共享快取記憶體系統之快取線之方法
JP7116047B2 (ja) プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するためのメモリコントローラおよび方法
US9864712B2 (en) Shared receive queue allocation for network on a chip communication
TWI781201B (zh) 使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之服務品質控制
TWI612422B (zh) 產生用於共享快取記憶體系統之近似使用量測
JP6391855B2 (ja) メモリ管理ユニット(mmu)パーティショニングされたトランスレーションキャッシュ、ならびに関連する装置、方法およびコンピュータ可読媒体を提供すること
EP3353663B1 (en) Providing memory management functionality using aggregated memory management units (mmus)
US20220398196A1 (en) Apparatuses, systems, and methods for configuring combined private and shared cache levels in a processor-based system
JP6396625B1 (ja) 複数のマスタデバイス間の条件付き介入を使用したキャッシュコヒーレンシの維持
CN117795490A (zh) 用于在基于处理器的系统中配置组合私有和共享高速缓存层级的设备、系统和方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees