TW201617891A - 用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置 - Google Patents

用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置 Download PDF

Info

Publication number
TW201617891A
TW201617891A TW104122750A TW104122750A TW201617891A TW 201617891 A TW201617891 A TW 201617891A TW 104122750 A TW104122750 A TW 104122750A TW 104122750 A TW104122750 A TW 104122750A TW 201617891 A TW201617891 A TW 201617891A
Authority
TW
Taiwan
Prior art keywords
cache memory
component
component cache
index
configuration table
Prior art date
Application number
TW104122750A
Other languages
English (en)
Other versions
TWI610172B (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 TW201617891A publication Critical patent/TW201617891A/zh
Application granted granted Critical
Publication of TWI610172B publication Critical patent/TWI610172B/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/0893Caches characterised by their organisation or structure
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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
    • 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
    • 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
    • G06F2212/1021Hit rate 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/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • 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/601Reconfiguration of cache memory
    • 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
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

諸態樣包括用於經由集合和通道來將系統快取記憶體劃分成分量快取記憶體的計算設備、系統和方法。系統快取緩衝記憶體控制器可以管理分量快取記憶體並且管理對分量快取記憶體的存取。系統快取緩衝記憶體控制器可以接收指定分量快取記憶體識別符的系統快取記憶體存取請求,並且將分量快取記憶體識別符與記錄匹配,這些記錄將分量快取記憶體識別符的特性與分量快取記憶體配置表相關。分量快取記憶體特性可以包括可以定義分量快取記憶體在系統快取記憶體中的位置的集合移位特性、集合偏移特性和目標通道。系統快取記憶體控制器亦可以在系統快取記憶體存取請求中接收系統快取記憶體的實體位址,決定分量快取記憶體的索引模式,以及轉譯分量快取記憶體的實體位址。

Description

用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置 【相關申請案】
本案係關於與本案同時提交的題為「Method And Apparatus For A Shared Cache With Dynamic Partitioning(用於具有動態劃分的共用快取記憶體的方法和裝置)」的美國專利申請案第14/334,010號,該美國專利申請案的全部內容經由援引納入於此。
本案係關於用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置。
劃分快取記憶體以服務計算系統中的多個客戶端程序(「客戶端」)具有若干益處。分區大小可以改變以匹配客戶端的效能要求。客戶端經歷穩健的效能,因為其私有快取記憶體中的資料不會由於其他客戶端的存取而遭受驅逐。閒置分區可被關閉以降低功耗。然而,由於達成當前快取記憶體劃分的方式所施加的限制,這些益處並沒有如它們可以達 到的那麼大。
目前,快取記憶體僅可以跨快取記憶體通道來劃分,這具有數個限制。快取記憶體分區數目受限於快取記憶體通道的數目,並且向快取記憶體分區添加關聯性以減少快取記憶體衝突減少了可能的快取記憶體分區的最大數目。最小通道分區大小由關聯性決定。例如,具有8個通道的作為8通道關聯的8MB快取記憶體的最小分區為1MB。另外,較小的快取記憶體分區可能由於碎片而導致快取記憶體空間損失。使用相同的實例,儲存在最小1MB快取記憶體分區中的512KB資料將導致快取記憶體分區中512KB的未使用空間。最小通道分區電源系統故障細微性由關聯性決定。在相同的實例中,可能電源系統故障的最小細微性為1MB快取記憶體分區。特別是在共用系統快取記憶體取代可能獨立地電源系統故障的多個私有記憶體的情況下,系統故障細微性的大小會影響功率節省/使用。
在行動片上系統(SOC)計算系統中面對的另一問題是由子系統產生的不同存取模式。例如,多媒體子系統(例如視訊和圖形)具有較長的存取時間並且受益於較長的快取記憶體線,而來自應用中央處理單元(CPU)的存取更隨機並且對等待時間更敏感,並且由此受益於較小的快取記憶體線和較高的關聯性。不是所有潛在的存取模式皆能夠與依賴通道快取記憶體劃分的當前快取記憶體劃分一起良好地工作。習知的快取記憶體劃分針對所有應用和子系統提供相同大小的快取記憶體。快取記憶體分區的大小可以使某些存取模 式要比其他存取模式更受益。另一實例是在影像處理引擎與顯示引擎之間看到的生產者到消費者存取模式,其可以受益於先入先出(FIFO)替換策略。然而,保持引擎之間的中轉資料的快取記憶體可能將效率低下的替換策略用於應用。
各個態樣的方法和裝置提供了用於劃分系統快取記憶體的電路和方法,其可以包括:載入配置成儲存與集合移位特性、集合偏移特性和目標通道特性相關的複數個分量快取記憶體識別符的分量快取記憶體配置表,該集合移位特性被配置成指示系統快取記憶體中的集合群的數目,該集合偏移特性被配置成指示分量快取記憶體所位於的集合群,該目標通道特性被配置成指示分量快取記憶體所位於的一或多個通道,其中集合移位特性大於0指示由複數個集合群劃分的分量快取記憶體。方法可以進一步包括:從客戶端接收包括分量快取記憶體識別符的系統快取記憶體存取請求,從分量快取記憶體配置表中檢索與分量快取記憶體配置表中的分量快取記憶體識別符相關的集合移位特性、集合偏移特性和目標通道特性,以及將系統快取記憶體位置劃分成由集合移位特性、集合偏移特性和目標通道特性定義的分量快取記憶體。
在一態樣,從客戶端接收包括分量快取記憶體識別符的系統快取記憶體存取請求可以包括接收系統快取記憶體的實體位址和定製索引。一個態樣的方法可以進一步包括:從分量快取記憶體配置表中檢索與分量快取記憶體配置表中的分量快取記憶體識別符相關的索引模式,決定該索引模式 是指示實體索引還是指示定製索引,將系統快取記憶體的實體位址轉譯成分量快取記憶體的實體位址,以及存取分量快取記憶體的實體位址以從分量快取記憶體的實體位址讀取或者寫入分量快取記憶體的實體位址。在一態樣,將系統快取記憶體的實體位址轉譯成分量快取記憶體的實體位址可以包括將系統快取記憶體的實體位址的集合索引的第一組位元與系統快取記憶體的實體位址的標籤相組合,其中該集合索引的第一組位元的數目由集合移位特性的值決定;用集合偏移特性的值來取代集合索引的第一組位元,以及在決定索引模式指示定製索引時用定製索引來取代集合索引的第二組位元。
在一態樣,從客戶端接收包括分量快取記憶體識別符的系統快取記憶體存取請求可以包括接收分量快取記憶體的一或多個特性,以及更新分量快取記憶體配置表中同所接收到的與分量快取記憶體識別符相關的一或多個特性相對應的一或多個特性。
一個態樣的方法可以進一步包括決定在分量快取記憶體配置表中是否存在分量快取記憶體識別符,以及回應於決定在分量快取記憶體配置表中不存在分量快取記憶體識別符而在分量快取記憶體配置表中建立關於該分量快取記憶體識別符的記錄。
一個態樣的方法可以進一步包括在計算設備的引導時間載入分量快取記憶體配置表,以及將集合移位特性、集合偏移特性和目標通道特性的所有可能組合包括在所載入的 分量快取記憶體配置表中,其中每一組合與不同的分量快取記憶體識別符相關。
一個態樣的方法可以進一步包括在執行時靜態地或者動態地根據每個分量快取記憶體的目標通道特性來定製每個分量快取記憶體的關聯性,以及根據每個分量快取記憶體的替換策略特性來定製每個分量快取記憶體的替換策略。一個態樣的方法可以進一步包括定製每個分量快取記憶體的快取記憶體線大小。
一態樣包括具有通訊地彼此連接的處理器、系統快取緩衝記憶體、和系統快取記憶體控制器,其中系統快取記憶體控制器被配置成執行上述各個態樣方法中的一或多個方法的操作。
一態樣包括其上儲存有處理器可執行軟體指令的非瞬態處理器可讀取媒體,這些指令使處理器和系統快取記憶體控制器執行上述各個態樣方法中的一或多個方法的操作。
一態樣包括一種計算設備,其具有用於執行上述各個態樣方法中的一或多個方法的功能的裝置。
10‧‧‧計算設備
12‧‧‧SoC
14‧‧‧處理器
16‧‧‧記憶體
18‧‧‧通訊介面
20‧‧‧儲存介面
22‧‧‧通訊元件
24‧‧‧儲存元件
26‧‧‧天線
28‧‧‧網路介面
30‧‧‧無線網路
32‧‧‧無線連接
40‧‧‧網際網路
44‧‧‧有線連接
50‧‧‧遠端計算設備
200‧‧‧處理核
201‧‧‧處理核
202‧‧‧處理核
203‧‧‧處理核
300‧‧‧系統集線器
302‧‧‧系統快取記憶體
304‧‧‧系統快取記憶體控制器
306‧‧‧CPU群集
308‧‧‧協定轉換器
310‧‧‧GPU
312‧‧‧數據機DSP
314‧‧‧應用DSP
316‧‧‧記憶體介面
318‧‧‧相機子系統
320‧‧‧視訊子系統
322‧‧‧顯示子系統
324‧‧‧系統片上網路(NoC)
326‧‧‧記憶體控制器
328‧‧‧隨機存取記憶體(RAM)
400‧‧‧系統快取記憶體
402‧‧‧通道
404‧‧‧通道
406‧‧‧通道
408‧‧‧通道
410‧‧‧通道
412‧‧‧通道
414‧‧‧通道
416‧‧‧通道
418‧‧‧集合
420‧‧‧系統快取記憶體
422‧‧‧集合群
424‧‧‧集合群
430‧‧‧系統快取記憶體
432‧‧‧集合群
434‧‧‧集合群
436‧‧‧集合群
438‧‧‧集合群
440‧‧‧系統快取記憶體
442‧‧‧集合群
444‧‧‧集合群
446‧‧‧集合群
448‧‧‧集合群
450‧‧‧集合群
452‧‧‧集合群
454‧‧‧集合群
456‧‧‧集合群
500‧‧‧分量快取記憶體配置表
502‧‧‧分量快取記憶體識別符欄位
504‧‧‧有效性指示符特性欄位
506‧‧‧集合移位特性欄位
508‧‧‧集合偏移特性欄位
510‧‧‧目標通道特性欄位
512‧‧‧探測所有通道特性欄位
514‧‧‧索引模式特性欄位
516‧‧‧替換策略特性欄位
518‧‧‧行
520‧‧‧行
522‧‧‧行
524‧‧‧行
526‧‧‧行
528‧‧‧快取記憶體線大小特性欄位
600‧‧‧系統快取記憶體
602‧‧‧分量快取記憶體
604‧‧‧分量快取記憶體
606‧‧‧分量快取記憶體
608‧‧‧分量快取記憶體
610‧‧‧分量快取記憶體
700‧‧‧處理器核A
702‧‧‧處理器核B
704‧‧‧處理器核C
706‧‧‧處理器核D
708‧‧‧處理器核E
710‧‧‧系統記憶體管理單元
712‧‧‧系統記憶體管理單元
714‧‧‧系統記憶體管理單元
716‧‧‧系統記憶體管理單元
718‧‧‧系統記憶體管理單元E
720‧‧‧分量快取記憶體A
722‧‧‧分量快取記憶體B
724‧‧‧分量快取記憶體C
726‧‧‧預設分量快取記憶體D
800‧‧‧系統快取緩衝記憶體空間
802‧‧‧標籤
804‧‧‧集合索引
806‧‧‧塊偏移
808‧‧‧定製索引
810‧‧‧選擇
812‧‧‧丟棄(或移位)和級聯操作
814‧‧‧實體位址
816‧‧‧擴展標籤
818‧‧‧集合索引
820‧‧‧塊偏移
900‧‧‧最高有效位元
902‧‧‧集合偏移特性
904‧‧‧最高有效位元
906‧‧‧剩餘位元
908‧‧‧相同位元
1000‧‧‧較低位元
1002‧‧‧相同位元
1004‧‧‧中間位元
1006‧‧‧中間位元
1100‧‧‧分量快取記憶體啟動/停用控制命令
1102‧‧‧觸發
1104‧‧‧操作碼
1106‧‧‧分量快取記憶體識別符
1108‧‧‧應用目標通道
1110‧‧‧目標通道
1200‧‧‧分量快取記憶體啟動/停用控制狀態
1202‧‧‧完成指示符
1300‧‧‧分量快取記憶體活躍通道表
1302‧‧‧分量快取記憶體識別符欄位
1304‧‧‧活躍通道欄位
1400‧‧‧分量快取記憶體保留表
1402‧‧‧通道列
1404‧‧‧通道列
1406‧‧‧通道列
1408‧‧‧通道列
1410‧‧‧通道列
1412‧‧‧通道列
1414‧‧‧通道列
1416‧‧‧通道列
1418‧‧‧集合群行
1420‧‧‧集合群行
1422‧‧‧集合群行
1424‧‧‧集合群行
1426‧‧‧集合群行
1428‧‧‧集合群行
1430‧‧‧集合群行
1432‧‧‧集合群行
1500‧‧‧系統快取緩衝記憶體
1502‧‧‧通道
1504‧‧‧通道
1506‧‧‧通道
1508‧‧‧通道
1510‧‧‧通道
1512‧‧‧通道
1514‧‧‧通道
1516‧‧‧通道
1518‧‧‧通道
1520‧‧‧通道
1522‧‧‧通道
1524‧‧‧通道
1526‧‧‧通道
1528‧‧‧通道
1530‧‧‧通道
1532‧‧‧通道
1534‧‧‧通道
1536‧‧‧快取記憶體通道
1538‧‧‧快取記憶體通道
1540‧‧‧快取記憶體通道
1542‧‧‧快取記憶體通道
1600‧‧‧快取記憶體通道
1700‧‧‧快取記憶體通道
1702‧‧‧快取記憶體通道
1704‧‧‧快取記憶體通道
1800‧‧‧快取記憶體通道
1900‧‧‧方法
1902‧‧‧方塊
1904‧‧‧方塊
1906‧‧‧方塊
1908‧‧‧方塊
1910‧‧‧方塊
1912‧‧‧方塊
1914‧‧‧方塊
1916‧‧‧方塊
1918‧‧‧方塊
1920‧‧‧方塊
2000‧‧‧方法
2002‧‧‧方塊
2004‧‧‧方塊
2006‧‧‧方塊
2008‧‧‧方塊
2010‧‧‧方塊
2012‧‧‧方塊
2014‧‧‧方塊
2016‧‧‧方塊
2018‧‧‧方塊
2020‧‧‧方塊
2022‧‧‧方塊
2100‧‧‧方法
2102‧‧‧方塊
2104‧‧‧方塊
2106‧‧‧方塊
2108‧‧‧方塊
2110‧‧‧方塊
2112‧‧‧方塊
2200‧‧‧方法
2202‧‧‧方塊
2204‧‧‧方塊
2206‧‧‧方塊
2208‧‧‧方塊
2300‧‧‧方法
2302‧‧‧方塊
2304‧‧‧方塊
2306‧‧‧方塊
2400‧‧‧方法
2402‧‧‧方塊
2404‧‧‧方塊
2406‧‧‧方塊
2408‧‧‧方塊
2410‧‧‧方塊
2412‧‧‧方塊
2414‧‧‧方塊
2416‧‧‧方塊
2500‧‧‧行動設備
2502‧‧‧處理器
2504‧‧‧觸控式螢幕控制器
2506‧‧‧內部記憶體
2508‧‧‧收發機
2510‧‧‧天線
2512‧‧‧觸控式螢幕面板
2514‧‧‧揚聲器
2516‧‧‧蜂巢網路無線數據機晶片
2518‧‧‧周邊設備連接介面
2520‧‧‧外殼
2522‧‧‧電源
2524‧‧‧實體按鈕
2526‧‧‧電源按鈕
2600‧‧‧膝上型電腦
2608‧‧‧天線
2613‧‧‧磁碟機
2614‧‧‧軟碟機
2615‧‧‧壓縮光碟(CD)驅動器
2616‧‧‧處理器
2617‧‧‧觸控板
2618‧‧‧鍵盤
2619‧‧‧顯示器
納入本文且構成本說明書一部分的附圖圖示了本發明的實例態樣,並與以上提供的一般描述和下面提供的詳細描述一起用來解釋本發明的特徵。
圖1是圖示適於實現一態樣的計算設備的元件方塊圖。
圖2是圖示適於實現一態樣的實例多核處理器的組 件方塊圖。
圖3是圖示根據一態樣的適於經由集合和通道來將快取緩衝記憶體劃分成分量快取記憶體的計算設備的元件方塊圖。
圖4是圖示根據一態樣的經由集合和通道來不同地劃分實例快取記憶體以允許分量快取記憶體的示意圖。
圖5是圖示根據一態樣的實例分量快取記憶體配置表的示意圖。
圖6是圖示根據一態樣的經由集合和通道來不同地將實例快取記憶體劃分成分量快取記憶體的示意圖。
圖7是圖示根據一態樣的分量快取記憶體的客戶端存取的實例的示意圖和程序流程圖。
圖8是圖示根據一態樣的用於存取分量快取記憶體的位址轉譯的實例的示意圖和程序流程圖。
圖9是圖示根據一態樣的使用實體位址來存取分量快取記憶體的位址轉譯的實例的示意圖和程序流程圖。
圖10是圖示根據一態樣的使用實體位址結合定製索引來存取分量快取記憶體的位址轉譯的實例的示意圖和程序流程圖。
圖11是圖示適於實現一態樣的實例分量快取記憶體啟動/停用控制命令的組件方塊圖。
圖12是圖示適於實現一態樣的實例分量快取記憶體啟動/停用控制狀態的元件方塊圖。
圖13是圖示根據一態樣的實例分量快取記憶體活躍 通道表的示意圖。
圖14是圖示根據一態樣的實例分量快取記憶體保留表的示意圖。
圖15是圖示根據一態樣的具有分配給各個分量快取記憶體的保留快取記憶體通道的實例系統快取緩衝記憶體的示意圖。
圖16是圖示根據一態樣的具有分配給分量快取記憶體的保留和獎勵快取記憶體通道的實例系統快取緩衝記憶體的示意圖。
圖17是圖示根據一態樣的具有分配給各個分量快取記憶體的保留快取記憶體通道的實例系統快取緩衝記憶體的示意圖。
圖18是圖示根據一態樣的具有分配給分量快取記憶體的保留和獎勵快取記憶體通道的實例系統快取緩衝記憶體的示意圖。
圖19是圖示用於存取經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法的程序流程圖。
圖20是圖示用於存取經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法的程序流程圖。
圖21是圖示用於轉譯用於存取經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的快取緩衝記憶體位址的一態樣方法的程序流程圖。
圖22是圖示用於動態地啟動經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法的程序流程圖。
圖23是圖示用於動態地停用經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法的程序流程圖。
圖24是圖示用於動態地調整經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的大小的一態樣方法的程序流程圖。
圖25是圖示適於與各個態樣聯用的實例行動設備的元件方塊圖。
圖26是圖示適於與各個態樣聯用的實例行動設備的元件方塊圖。
將參照附圖詳細描述各種態樣。在可能之處,相同元件符號將貫穿附圖用於代表相同或類似部分。對特定實例和實現所作的引用是用於說明性目的,而無意限定本發明或請求項的範疇。
術語「計算設備」和「行動設備」在本文可互換地使用以代表以下各項中的任一個或全部:蜂巢式電話、智慧型電話、個人或行動多媒體播放機、個人資料助理(PDA)、膝上型電腦、平板電腦、智慧型電腦、超級本、掌上電腦、無線電子郵件接收器、啟用網際網路的多媒體蜂巢式電話、無線遊戲控制器、以及包括記憶體和可程式設計處理器的類 似的個人電子設備。儘管各個態樣對於具有有限能量資源的行動計算裝置(諸如智慧型電話)是特別有用的,但是各個態樣一般而言在實現複數個記憶體設備和有限能量預算的任何電子設備中皆是有用的,其中降低記憶體設備的功耗可以延長行動計算裝置的電池工作時間。
術語「片上系統」(SoC)在本文中被用於代表一組互連的電子電路,通常但非排他性地包括硬體核、記憶體和通訊介面。硬體核可包括各種不同類型的處理器,諸如通用處理器、中央處理單元(CPU)、數位訊號處理器(DSP)、圖形處理單元(GPU)、加速處理單元(APU)、輔助處理器、單核處理器、以及多核處理器。硬體核可進一步實施其他硬體和硬體組合,諸如現場可程式設計閘陣列(FPGA)、特殊應用積體電路(ASCI)、其他可程式設計邏輯裝置、個別閘邏輯、電晶體邏輯、效能監視硬體、看門狗硬體、以及時間參考。積體電路可被配置成使得該積體電路的組件常駐在單片半導體材料(諸如矽)上。
在一態樣,用於劃分快取記憶體的方法實現了跨快取記憶體通道和跨快取記憶體集合的劃分以建立分量快取記憶體,這些分量快取記憶體是比以用於建立分量快取記憶體的習知方法所能達成的分量快取記憶體更小的分量快取記憶體。分量快取記憶體配置表可以儲存每個分量快取記憶體的定義分量快取記憶體特徵的參數,包括關於集合的總數或大小、分量快取記憶體佔用的集合的位置、分量快取記憶體佔用的通道、是使用(例如,從虛擬位址推導的)定製索引還 是從實體位址推導的集合索引來存取分量快取記憶體(索引模式)、以及用於分量快取記憶體的替換策略的參數。分量快取記憶體配置表可以在客戶端請求快取記憶體存取時動態地填充,或者分量快取記憶體配置表可以在引導時間填充以定義數個分量快取記憶體並且在執行時保持靜態。每個分量快取記憶體被給予一分量快取記憶體識別符,該分量快取記憶體識別符對應於分量快取記憶體配置表中針對分量快取記憶體識別符的一群參數。
為了存取經通道和集合劃分的分量快取記憶體,客戶端可以請求在匯流排互連上存取劃分成分量快取記憶體的系統快取記憶體。該存取請求可以包括系統記憶體中的實體位址以及分量快取記憶體識別符。系統快取記憶體控制器可以在分量快取記憶體配置表中檢視分量快取記憶體識別符的參數。定義系統快取記憶體中的集合的數目或大小、分量快取記憶體佔用的集合在系統快取記憶體中的位置、分量快取記憶體的索引模式的參數可以從分量快取記憶體配置表中讀取。系統快取記憶體控制器可以計算用於系統快取記憶體存取的集合索引和標籤。索引模式可以決定是實體位址還是定製索引被用於計算系統快取記憶體中的位置。在任一情形中,可以直接從實體位址的數個最低有效位元或者從定製索引推導出偏移。由指示集合的數目或大小的參數決定的實體位址的中間部分的一些位元可被丟棄,並且被丟棄的位元可以由指示分量快取記憶體佔用的集合的位置的參數來取代以決定集合索引。實體位址的新形成的中間部分的位元可被記錄 。標籤可以包括與被丟棄的位元附加在一起的實體位址的最高有效位元。
系統快取記憶體控制器可以在執行時產生實體分量快取記憶體(系統快取記憶體的諸分區)。快取緩衝記憶體控制器可以基於設備的客戶端的任務請求來啟動和停用分量快取記憶體。客戶端可以為任務請求啟動分量快取記憶體,並且分量快取記憶體啟動/停用控制命令暫存器可以向系統快取記憶體控制器發送關於分量快取記憶體啟動的參數。儲存在暫存器中的這些參數可以包括用於觸發操作的位元、用於啟動和停用分量快取記憶體的操作碼、可被用於標識分量快取記憶體的配置的分量快取記憶體識別符、指定要在分量快取記憶體中使用的目標通道的目標通道參數、以及用於將操作資訊應用於目標通道的位元。
分量快取記憶體的啟動可以導致分量快取記憶體的保留。啟動可以規定被指定由客戶端用於任務的快取記憶體通道。系統快取記憶體控制器可以保留系統快取記憶體的對應於分量快取記憶體的線,並且特別是保留分量快取記憶體的所指定的通道以供由請求方客戶端使用。保留可以導致快取記憶體控制器設置保留位元以記錄快取記憶體的一部分被保留用於主機啟動分量快取記憶體。當主機發佈以分量快取記憶體為目標的寫入時,該分量快取記憶體的快取記憶體線可被寫入。保留分量快取記憶體避免了與其他客戶端想要將資料寫入分量快取記憶體的保留線的衝突。分量快取記憶體活躍通道表可被用於指示活躍的且被使用的快取記憶體通道 以避免因嘗試向同一佔用的分量快取記憶體分配線而導致的客戶端衝突。分量快取記憶體啟動/停用控制狀態暫存器可以指示任務是否完成。分量快取記憶體的由目標快取記憶體通道部分地指定的保留空間可以在客戶端的任務需要更多或更少快取緩衝記憶體時被動態地更改以支援該任務。在任務完成之際,快取緩衝記憶體控制器可以停用分量快取記憶體,從而使子快取記憶體的先前保留的部分可供任何客戶端使用。分量快取記憶體可以佔用系統快取記憶體的毗連部分,或者可以佔用系統快取記憶體的非毗連部分。
圖1圖示了適於與各個態樣聯用的包括與遠端計算設備50處於通訊中的計算設備10的系統。計算設備10可以包括具有處理器14、記憶體16、通訊介面18和儲存介面20的SoC 12。計算設備可以進一步包括通訊元件22(諸如有線或無線數據機)、儲存元件24、用於建立至無線網路30的無線連接32的天線26、及/或連接至去往網際網路40的有線連接44的網路介面28。處理器14可以包括各種硬體核中的任一種硬體核以及數個處理器核。SoC 12可以包括一或多個處理器14。計算設備10可以包括一個以上SoC 12,由此增加處理器14和處理器核的數目。計算設備10亦可以包括不與SoC 12相關聯的處理器核14。個體處理器14可以是如以下參照圖2描述的多核處理器。處理器14可以各自被配置成用於特定目的,這些特定目的對於計算設備10的其他處理器14而言可以是相同的或不同的。相同或不同配置的處理器14和處理核中的一者或多者可以編組在一起作為計算設備10的一或多個子系統的一部分 ,如以下參照圖3所描述的。
SoC 12的記憶體16可以是被配置成用於儲存供處理器14存取的資料和處理器可執行代碼的揮發性或非揮發性記憶體。在一態樣,記憶體16可以被配置成至少臨時地儲存資料結構,諸如用於管理經由集合和通道來劃分的快取緩衝記憶體的分量快取記憶體的表,如以下參照圖5、13和14所描述的。如以下更詳細地論述的,每個處理器核可以存取快取緩衝記憶體的各種分量快取記憶體。
計算設備10和/SoC 12可以包括被配置成用於各種目的的一或多個記憶體16。在一態樣,一或多個記憶體16可被配置成專用於儲存資料結構,該資料結構用於以使資料結構資訊能夠被存取以管理由處理器14作出的分量快取記憶體存取請求的方式來儲存分量快取記憶體資訊。當儲存資料結構的記憶體16為非揮發性時,記憶體16可以甚至在計算設備10已被斷電之後保留資料結構的資訊。當重新上電並且計算設備10重啟時,儲存在非揮發性記憶體16中的資料結構的資訊可供計算設備10使用。
通訊介面18、通訊元件22、天線26、及/或網路介面28可以一致地工作以使計算設備10能夠在無線網路30上經由無線連接32及/或在有線網路44上與遠端計算設備50通訊。無線網路30可以使用各種無線通訊技術(包括例如用於無線通訊的射頻頻譜)來實現以向計算設備10提供至網際網路40的連接,計算設備10可以經由該連接來與遠端計算設備50交換資料。
儲存介面20和儲存元件24可以一致地工作以允許計算設備10在非揮發性儲存媒體上儲存資料。儲存元件24可以與在其中儲存元件24可以儲存資料結構的記憶體16的一態樣非常相似地配置,以使得資料結構資訊可以由一或多個處理器14存取。非揮發性的儲存元件24可以甚至在計算設備10斷電之後保留資料結構資訊。當重新上電並且計算設備10重啟時,儲存在儲存元件24上的資料結構資訊可供計算設備10使用。儲存介面20可以控制對存放裝置24的存取並且允許處理器14從存放裝置24讀取資料和向存放裝置24寫入資料。
計算設備10的一些或全部元件可以不同地安排及/或組合而仍然服務必要的功能。此外,計算設備10可以不限於每個元件中的一個,並且每個元件的多個例子可被包括在計算設備10的各種配置中。
圖2圖示了適於實現一態樣的多核處理器14。多核處理器14可以具有複數個等效的處理核200、201、202、203。處理核200、201、202、203可以是等效的,因為單個處理器14的處理核200、201、202、203可以被配置成用於相同目的並且具有相同或相似的效能特性。例如,處理器14可以是通用處理器,並且處理核200、201、202、203可以是等效的通用處理器核。替換地,處理器14可以是圖形處理單元或數位訊號處理器,並且處理核200、201、202、203可以分別是等效的圖形處理器核或數位訊號處理器核。經由製造製程和材料的改變,處理器核200、201、202、203的效能特性可能在同一個多核處理器14內或使用相同設計的處理器核的另一多 核處理器14內隨處理器核而不同。在圖2中圖示的實例中,多核處理器14包括4個處理器核200、201、202、203(亦即,處理器核0、處理器核1、處理器核2、以及處理器核3)。為了便於解釋,本文中的實例可以代表圖2中的4個處理器核200、201、202、203。然而,應當注意,圖2中圖示和本文中描述的4個處理器核200、201、202、203僅是作為實例提供的並且絕不表示限定。計算設備10、SoC 12或多核處理器14可以個體地或組合地包括少於或多於本文圖示和描述的4個處理器核200、201、202、203。
圖3圖示了被配置成經由集合和通道來將快取緩衝記憶體劃分成分量快取記憶體的計算設備。SoC 12可以包括如前述的各種元件。一些此類元件和額外元件可被用於實現分量快取記憶體。例如,被配置成實現分量快取記憶體的SoC 12可以包括系統集線器300、系統快取記憶體302、系統快取記憶體控制器304、CPU群集306、協定轉換器308、GPU 310、數據機DSP 312、應用DSP 314、記憶體介面316、相機子系統318、視訊子系統320、顯示子系統322、系統片上網路(NoC)324、記憶體控制器326、以及隨機存取記憶體(RAM)328。系統集線器300可以是SoC 12的管理由各個處理器308、310、312、314作出的對各個記憶體的存取的元件。在一態樣,系統集線器300可以管理對SoC 12的系統快取記憶體302以及亦對RAM 328的存取。可以存取各種記憶體的一些處理器可以被包括在CPU群集306和各種子系統中(諸如相機、視訊和顯示子系統318、320、322),並且亦可以包括其他專用處理 器(諸如GPU 310、數據機DSP 312和應用DSP 314)。
系統快取記憶體302可以是SoC 12中用於替代或補充可以與各種處理器及/或子系統相關聯的快取緩衝記憶體的共用記憶體設備。系統快取記憶體302可以集中SoC 12的快取緩衝記憶體資源,以使得各種處理器和子系統可以存取系統快取記憶體302以讀取和寫入被指定用於重複的及/或快速的存取的程式命令和資料。系統快取記憶體302可以儲存來自各種處理器和子系統並且亦來自計算設備的其他記憶體設備(諸如主記憶體、RAM 328、以及存放裝置(例如,硬碟))的資料。在一態樣,在發生快取記憶體未命中的情形中,系統快取記憶體302可以由此類記憶體和存放裝置備份,因為不能定位從系統快取記憶體302請求的專案。在一態樣,系統快取記憶體302可被用作各種處理器和子系統的中間結果暫存記憶體。系統快取記憶體302可以在儲存空間和實體大小態樣小於不採用系統快取記憶體302的類似架構的SoC的本端快取緩衝記憶體的組合。然而,如本文進一步描述的對系統快取記憶體302的管理可以允許SoC 12的更大的能量節省以及相等或更好的效能速度,而不管系統快取記憶體較小的儲存空間和實體大小。
系統快取記憶體控制器304可以管理由各種處理器和子系統作出的對系統快取記憶體302的存取。對系統快取記憶體302的存取管理的一部分可以包括經由通道和集合兩者來劃分系統快取緩衝記憶體空間。經由通道和集合兩者來劃分系統快取緩衝記憶體空間可以導致將系統快取緩衝記憶體 空間劃分成系統快取緩衝記憶體空間中的各種大小和位置的分量快取記憶體。系統快取記憶體控制器304可以維護這些分量快取記憶體的記錄並且使各種特性/特徵/參數與每一個分量快取記憶體相關,如本文進一步描述的。
系統快取記憶體控制器304可以接收指定特定分量快取記憶體的系統快取記憶體存取請求。系統快取記憶體存取請求亦可以包括系統快取記憶體存取請求的分量快取記憶體的特性。在一態樣,分量快取記憶體的特性可以單獨地在分量快取記憶體配置請求中、在相同或不同的通訊匯流排上由系統快取記憶體控制器304接收。分量快取記憶體配置請求可以是自立信號或者可以與系統快取記憶體存取請求相關聯。分量快取記憶體配置請求可以由系統快取記憶體控制器304接收作為系統快取記憶體存取請求的部分。為了便於解釋,以下實例是按照分量快取記憶體特性被接收作為系統快取記憶體存取請求的一部分來描述的,這並不意欲限制系統快取記憶體控制器304可以接收分量快取記憶體特性的方式。應當理解,分量快取記憶體特性可以經由各種相關聯的或獨立的信號來接收。
系統快取記憶體控制器304可以使用所指定的分量快取記憶體和相關特性的資訊來控制對分量快取記憶體及其相關記錄的存取、更新及/或建立以及保留分量快取記憶體及其相關記錄。在一態樣,系統快取記憶體控制器304可以基於來自系統快取記憶體302的客戶端的系統快取記憶體存取請求來動態地將系統快取緩衝記憶體空間劃分成分量快取記憶 體。這些客戶端可以包括SoC 12的各種處理器和子系統。
CPU群集306可以包括若干通用處理器及/或通用處理器核的編組。CPU群集306可以經由系統快取記憶體控制器304來存取系統快取記憶體302。CPU群集306與系統快取記憶體控制器304之間的通訊可以由協定轉換器308從CPU群集306和系統快取記憶體控制器304中的一者的標準或專用協定轉換成適於另一者的協定以達成它們之間的互可操作性。CPU群集306可以向系統快取記憶體控制器304發送指定特定分量快取記憶體的系統快取記憶體存取請求及/或所指定的分量快取記憶體的特性。作為回應,系統快取記憶體控制器可以更新及/或建立所指定的分量快取記憶體的記錄,允許或拒絕對所指定的分量快取記憶體的存取,以及向CPU群集306返回儲存在所指定的分量快取記憶體中的資訊。
類似於CPU群集306,專用處理器(例如,GPU 310、數據機DSP 312、應用DSP 314)可以經由系統快取記憶體控制器304來存取系統快取記憶體302。專用處理器310、312、314與系統快取記憶體控制器304之間的通訊可以由專用的個體記憶體介面316來管理。在一態樣,記憶體介面316可以管理多個類似的或不同的專用處理器310、312、314與系統快取記憶體控制器304之間的通訊。
各種子系統(例如,相機子系統318、視訊子系統320、和顯示子系統322)可以類似地經由系統快取記憶體控制器304和記憶體介面316來存取系統快取記憶體302。NoC 324可以管理子系統318、320、322與系統集線器300以及SoC 12的 其他元件之間的通訊話務。
系統快取記憶體控制器304亦可以管理由SoC 12的各種處理器和子系統作出的對RAM 328的存取。儘管各種處理器和子系統可以經由記憶體控制器326作出對RAM 328的直接存取請求,但是在某些例子中,系統快取記憶體存取請求可以針對RAM 328。在一態樣,系統快取記憶體存取請求可以在所指定的分量快取記憶體中沒有找到從所指定的分量快取記憶體請求的資訊的情況下導致快取記憶體未命中。結果,系統快取記憶體控制器304可以將系統快取記憶體存取請求指向RAM 328以檢索未在分量快取記憶體中找到的所請求資訊。在一態樣,指向RAM 328的資訊請求首先指向可以控制對RAM 328的存取的記憶體控制器326。指向RAM 328的資訊請求可以由系統快取記憶體控制器304發送,並且結果得到的資訊可以被返回給系統快取記憶體控制器304以被寫入分量快取記憶體,以及從分量快取記憶體返回給作出系統快取記憶體存取請求的元件。在一態樣,結果得到的資訊可以直接或者經由系統快取記憶體控制器304返回給作出系統快取記憶體存取請求的元件,而不被寫入分量快取記憶體。
在一些態樣,快取緩衝記憶體控制器304可以在韌體中實現和配置以執行各個態樣方法的操作。在一些態樣,快取緩衝記憶體控制器304可以是經由控制器可執行指令來配置以執行各個態樣方法的操作的可程式設計控制器。在一些態樣,快取緩衝記憶體控制器304可以經由韌體和控制器可執行指令的組合來實現和配置以執行各個態樣方法的操作。
本文中對SoC 12及其各種元件的描述僅意欲是示例性的而絕不是限定性的。SoC 12的若干元件可被不同地配置、組合、和分開。若干元件可以按更大或更少的數目來包括,並且可以在SoC 12內不同地定位和連接或者與SoC 12分開。類似地,眾多其他元件(諸如其他記憶體、處理器、子系統、介面和控制器)可以被包括在SoC 12中並且與系統快取記憶體控制器304處於通訊以存取系統快取記憶體302。
圖4圖示了系統快取緩衝記憶體經由集合和通道來不同地劃分以允許分量快取記憶體。系統快取記憶體400(諸如以上圖3中描述的系統快取記憶體)可以被配置成包括數個通道402、404、406、408、410、412、414、416以及N個集合418,其中N是正整數。經由通道402-416來劃分系統快取記憶體400是已知的。在此實例中,系統快取記憶體400包括8個通道402-416,並且經由這8個通道402-416中的每一個通道來劃分系統快取記憶體400將導致經劃分的系統快取記憶體400具有8個分區,每個分區包括一個通道402-416以及相應通道402-416的所有N個集合418。在一態樣,系統快取記憶體400亦可以使用通道402-416的群來劃分。繼續具有8個通道402-416的系統快取記憶體400的實例,每個分區可以包括通道402-416中的2個通道,從而導致4個分區,或者包括通道402-416中的4個通道,從而導致2個分區。
為了建立分量快取記憶體,系統快取記憶體400可以額外地經由N個集合的所定義群來劃分。在一態樣,由系統快取記憶體控制器使用的分量快取記憶體的特性可以決定N個 集合可以被劃分成多少個集合群。在一態樣,該特性可被稱為集合移位特性。例如,系統快取記憶體400不被劃分成集合群,因此集合移位特性可以是指示不經由集合群來劃分的值,諸如空值或0。在另一實例中,系統快取記憶體420可以被劃分成2個集合群422、424。系統快取記憶體420是與系統快取記憶體400相同的系統快取記憶體,但是系統快取記憶體420圖示了集合移位特性是指示經由2個集合群422、424來劃分的值時的系統快取記憶體400。對於系統快取記憶體420,系統快取記憶體控制器可以使用由系統快取記憶體420的經由2個集合群422、422建立的分區所建立的額外分量快取記憶體來管理系統快取緩衝記憶體空間的使用。這些分量快取記憶體可以包括由通道分區和集合群分區的任何組合建立的系統快取記憶體420的分區,如本文更詳細地描述的。
類似地,系統快取記憶體430可以與系統快取記憶體400相同,除了系統快取記憶體430圖示了集合移位特性是指示經由4個集合群432、434、436、438來劃分的值時的系統快取記憶體400。類似地,系統快取記憶體440圖示了集合移位特性是指示經由8個集合群442、444、446、448、450、452、454、456來劃分的值時的系統快取記憶體400。在圖4中圖示的這些實例系統快取記憶體430和440中的每一者中,系統快取記憶體控制器可以使用經由4個集合群432、434、436、438或8個集合群442-456來劃分系統快取記憶體430、440所建立的額外分量快取記憶體來管理系統快取緩衝記憶體空間的使用。這些實例中的分量快取記憶體可以包括由通道分區和集合 群分區的任何組合建立的系統快取記憶體430、440的分區,如本文更詳細地描述的。
各種形式的符號可被用於指示集合移位特性,諸如整數。在一態樣,指示系統快取緩衝記憶體空間被劃分成的集合群的數目的集合移位特性可以指示集合群的數目的遞增變化。例如,用於指示集合群數目的下一較高變化的集合移位特性值變化可以指示相加、相乘、指數增加、或經由某個其他函數增加集合群數目的遞增變化。對於圖4中的實例,集合群的數目是2的冪,其中冪為集合移位特性。集合群可以大小相等,並且每個集合群的集合數目亦可以是2的冪。可構想集合數目可以是另一數字的冪,這可能要求一些硬體被不同地配置(例如,除以非2的整數冪)以計算集合索引,如以下進一步描述的。
在一態樣,由系統快取記憶體控制器使用的分量快取記憶體的特性可以決定分量快取記憶體位於集合群422、424、432、434、436、438、442、444、446、448、450、452、454、456中的哪個集合群中。在一態樣,該特性可被稱為集合偏移特性。各種形式的符號可被用於指示集合偏移特性。
繼續本文描述的實例集合群,所描述的集合群的總數為14,不包括N個集合418。對於這個實例,集合偏移特性可以是3位元二進位碼,其中在不實現集合群時不需要集合偏移特性。在實現2個集合群時,集合群422、424分別與集合偏移特性=000和100相關。在實現4個集合群時,集合群432、434 、436、438分別與集合偏移特性=000、010、100和110相關。類似地,在實現8個集合群時,集合群442-456分別與集合偏移特性=000、001、010、011、100、101、110和111相關。
圖5圖示了可由系統快取記憶體控制器用於管理各種分量快取記憶體的特性的分量快取記憶體配置表500。分量快取記憶體配置表500可以包括分量快取記憶體識別符欄位502、有效性指示符特性欄位504、集合移位特性欄位506、集合偏移特性欄位508、目標通道特性欄位510、探測所有通道特性欄位512、索引模式特性欄位514、替換策略特性欄位516、以及快取記憶體線大小特性欄位528。系統快取記憶體的每個分量快取記憶體可以與分量快取記憶體識別符特性欄位502中所示的個體分量快取記憶體識別符相關。
分量快取記憶體識別符可以由系統快取記憶體控制器在來自SoC上的客戶端的系統快取記憶體存取請求中接收,並且由系統快取記憶體控制器用於將該系統快取記憶體存取請求與正確的分量快取記憶體及其特性相匹配。在一態樣,當接收到不存在於分量快取記憶體配置表500中的分量快取記憶體識別符時,系統快取記憶體控制器可以更新分量快取記憶體配置表500以包括所接收到的分量快取記憶體識別符。
在一態樣,所接收到的分量快取記憶體識別符可能存在於分量快取記憶體配置表500中,但是與該分量快取記憶體識別符相關的一或多個其他分量快取記憶體特性可能與用所接收到的分量快取記憶體識別符接收到的分量快取記憶體特性不匹配。在此類情況下,系統快取記憶體控制器可以使 用所接收到的分量快取記憶體特性來更新分量快取記憶體表500中與分量快取記憶體識別符相關的分量快取記憶體特性。各種符號可被用於表示分量快取記憶體識別符欄位502中的分量快取記憶體識別符的值。
系統快取記憶體的每個分量快取記憶體可以與如有效性指示符特性欄位504中所示的有效性指示符相關,並且可被用於指示分量快取記憶體配置表500中相關的分量快取記憶體的有效條目。對於各種情況,分量快取記憶體的記錄可被標記為是有效的或無效的,諸如用與有效或無效狀況相關的值或標誌(例如,「0」或「1」)來標記。系統快取記憶體控制器可以允許針對與有效性指示符特性欄位504中的有效識別符相關的分量快取記憶體識別符的系統快取記憶體存取請求。在接收到針對與有效性指示符特性欄位504中的無效識別符相關的分量快取記憶體識別符的系統快取記憶體存取請求時,系統快取記憶體控制器可以將該系統快取記憶體存取請求作為錯誤來對待。
分量快取記憶體配置表500中的集合移位特性欄位506可被用於指示如前述的集合移位特性。如前述,集合移位特性標識對於與相應集合移位值相關的每一個分量快取記憶體而言系統快取緩衝記憶體空間被劃分成的集合群的數目。例如,對於指示僅2個集合群分區的集合移位特性而言,可能存在由集合和通道分區的各種組合構成的眾多分量快取記憶體。例如,在圖5中,行522包括集合移位特性=1,這在此實例中指示2個集合群分區。行522表示分量快取記憶體集合和 通道分區中的僅一個分區,包括集合偏移特性欄位508中的一個值和目標通道特性欄位510中的一個值。可能存在集合偏移特性欄位508中的同一個值與和集合移位特性欄位506中的相同值相關的目標通道特性欄位510中的其他值的眾多其他組合。對於表示由集合移位特性欄位506中的集合移位特性=1所指示的兩個集合群分區中的另一個分區的集合偏移特性欄位508的可能的其他值而言,甚至更多組合是可能的。類似的實例包括對於集合移位特性欄位506的其他可能值而言不同分量快取記憶體的集合和通道分區的較大數目的組合。在一態樣,系統快取記憶體的已知分區(亦即,整個快取記憶體或者僅通道快取記憶體分區)可以被包括在分量快取記憶體配置表500中。儘管由於這些已知分區不包括通過集合建立的系統快取記憶體分區,因而分量快取記憶體配置表500對於這些已知分區而言先前是不必要的,但是這些已知分區可以被包括在分量快取記憶體配置表500中。當集合移位特性欄位506如行518和526中那樣包括集合移位特性=0或空值時,可以在分量快取記憶體配置表500中定義系統快取記憶體的已知分區。此集合移位特性值可以指示與其相關聯的分量快取記憶體不是經由集合來劃分的。經由集合來劃分的分量快取記憶體可以與大於0的集合移位特性值相關聯。各種符號可被用於表示分量快取記憶體集合移位特性欄位506中的集合移位特性的值。
分量快取記憶體配置表500中的集合偏移特性欄位508可被用於指示集合偏移特性,該集合偏移特性可以指示相 關的分量快取記憶體所常駐的集合群。如以上所論述的,分量快取記憶體是部分由集合群分區與通道分區相組合地構成的。集合移位特性可以標識集合群分區的數目,並且集合偏移特性可以指示該數目的集合群分區內包含相關的分量快取記憶體的特定集合群。如以上所論述的,每個集合群可以與分量快取記憶體配置表500中的集合偏移特性欄位508中表示的特定集合偏移特性值相關。更具體地,在一態樣,集合移位特性和集合偏移特性的組合可以定義包含分量快取記憶體的集合群,因為針對一個集合移位特性值的集合偏移特性值可以與針對另一集合移位特性值的集合偏移特性值交疊。例如,每個集合移位特性可以包括集合偏移特性=000,這可以與第一集合群相關。這是因為對於指示多個集合群的每個集合移位特性值而言存在至少第一集合群。因此,針對集合移位特性=1的集合偏移特性=000可以表示與針對另一集合移位特性值的集合偏移特性=000不同的集合群。將唯一性的集合偏移特性值指派給各種可能的集合群亦是可能的。各種符號可被用於表示分量集合偏移特性欄位508中的集合偏移特性的值。
分量快取記憶體配置表500中的目標通道特性欄位510可被用於指示目標通道特性,該目標通道特性可以指示相關的分量快取記憶體所常駐的通道群分區。非常類似於集合群,通道群可以包括分量快取記憶體可以常駐的系統快取緩衝記憶體空間的通道。對於任何分量快取記憶體,無論集合移位特性或集合偏移特性如何,目標通道可以指示系統快取 記憶體的單個或連貫通道的任何組合。分量快取記憶體的通道群分區可以允許在執行時靜態地和動態地定製分量快取記憶體的關聯性。在分量快取記憶體配置表500中,目標通道值的所有組合可以與集合移位特性和集合偏移特性值的任何組合相關。分量快取記憶體配置表500中的集合移位特性、集合偏移特性和目標通道的組合為系統快取記憶體控制器定義所有可能的分量快取記憶體。在一態樣,目標通道特性值可以經由位元向量來表示,其中向量中的每一位元表示系統快取記憶體的個體通道。在分量快取記憶體配置表500中,位元向量是以16進位表示的。返回到與行522有關的實例,在行522中表示的系統快取記憶體與圖4中的系統快取記憶體420相同,具有8個通道和2個集合群。在此實例中,目標通道特性欄位510包含值0xF0,該值亦可以表示為二進位位元向量1111 0000。因此,在此實例中,分量快取記憶體可以常駐在由「F」或由「1」值表示的4個通道中,該4個通道與圖4中的系統快取記憶體420的通道402、404、406、和410相關。各種符號可被用於表示目標通道特性欄位510中的目標通道的值。
分量快取記憶體配置表500中的探測所有通道特性欄位512可被用於指示是否針對對分量快取記憶體的存取來檢視或探測系統快取記憶體的所有通道的標籤。當探測所有通道特性指示要探測系統快取記憶體的所有通道時,對分量快取記憶體的探測可以不受目標通道值的限制。在動態分量快取記憶體中可能就是這種情形,該動態分量快取記憶體可以能夠改變其集合群內的大小,亦即,改變其目標通道。因 此,若分量快取記憶體在不同時間增長或縮小,則以不再是分量快取記憶體的一部分的方式儲存的資訊可以仍然在系統快取記憶體中的相同集合群中找到。當分量快取記憶體是靜態的以使得它不改變分量快取記憶體佔用的通道群時,探測所有通道特性欄位512可以包含空值或者指示不針對相關的分量快取記憶體啟用探測所有通道特徵的值。這可以經由使跨系統快取記憶體的所有通道的標籤檢視和比較操作最小化來降低功耗。
分量快取記憶體配置表500中的索引模式特性欄位514可被用於指示可以使用實體索引模式(PI)中的實體位址還是定製索引模式(CI)中的定製索引來索引。在一態樣,實體定址可以導致不可預測的並且有時過多的快取記憶體衝突(取決於記憶體分配),因此定製索引模式可被用於存取分量快取記憶體。任何形式的定製索引可被使用。在一態樣,定製索引可以包括虛擬位址索引以確保可預測的衝突未命中,諸如根據高級作業系統記憶體分配方案。另一態樣可以使用具有虛擬位址最高有效位元的定製索引的散列來使衝突未命中最小化。在實體索引模式中,系統快取記憶體控制器可以接收系統快取記憶體的實體位址作為來自客戶端的系統快取記憶體存取請求的一部分,並且使用所接收到的系統快取記憶體的實體位址來將其轉譯成系統快取記憶體中的分量快取記憶體的實體位址。在定製索引模式中,系統快取記憶體控制器可以接收系統快取記憶體的實體位址和定製索引作為來自客戶端的系統快取記憶體存取請求的一部分,並且使用 所接收到的系統快取記憶體的實體位址和所接收到的定製索引來將其轉譯成系統快取記憶體中的分量快取記憶體的實體位址。本文中進一步描述用於將所接收到的系統快取記憶體的實體位址及/或所接收到的定製索引轉譯成系統快取記憶體中的分量快取記憶體的實體位址的一態樣程序。
分量快取記憶體配置表500中的替換策略特性欄位516可被用於指示關於儲存在相關的分量快取記憶體中的資訊的替換策略。一些此類替換策略可以包括已知的替換策略,包括最近最多使用、最近最少使用、先入先出、後入先出、以及隨機替換策略。其他已知和專用的替換策略可被用於儲存在各種分量快取記憶體中的資訊。可以根據替換策略特性欄位516針對每個分量快取記憶體定製替換策略。
分量快取記憶體配置表500中的快取記憶體線大小特性欄位528可被用於指示相關的分量快取記憶體的快取記憶體線的預設或定製大小。預設快取記憶體線大小可以是系統快取緩衝記憶體的標準快取記憶體線大小。在一態樣,當在分量快取記憶體配置表500中建立相應的分量快取記憶體時,對於一些或全部分量快取記憶體,可以將快取記憶體線大小特性欄位528設置成預設快取記憶體線大小。在一態樣,空值亦可以指示預設快取記憶體線大小。在一態樣,快取記憶體線大小特性欄位528可被設置成定製快取記憶體線大小,該定製快取記憶體線大小可以在分量快取記憶體配置表500中建立分量快取記憶體時或者與系統快取記憶體存取請求相關聯地從記憶體設置。定製快取記憶體線大小可以在所指示 的定製快取記憶體線大小與預設快取記憶體線大小相同時包括預設快取記憶體線大小。在圖5中圖示的實例中,在行518-526中表示的分量快取記憶體可以在快取記憶體線大小特性欄位528中包括不同的值。如所圖示的,這些值可以經由以數位資訊單位(諸如位元、位元組、百萬位元組以及其他變型)量測的大小值來表示。這些值亦可以按照快取記憶體線可以橫跨的系統快取緩衝記憶體的集合及/或通道的數目來表示。
在一態樣,快取記憶體線大小亦可以使用集合移位特性欄位506及/或目標通道特性欄位510來決定。如前述,集合移位特性欄位506可以指示在分量快取記憶體中使用的系統快取緩衝記憶體的集合的數目,並且目標通道特性欄位510可以指示系統快取緩衝記憶體的通道。分量快取記憶體中的快取記憶體線的大小可以取決於構成該分量快取記憶體的快取記憶體集合及/或通道的數目。因此,定製相應的分量快取記憶體的快取記憶體線大小可以經由設置集合移位特性欄位506及/或目標通道特性欄位510來達成。
在一態樣,分量快取記憶體配置表500可以是靜態的,因為每個可能的分量快取記憶體可以在分量快取記憶體配置表500中用至少分量快取記憶體識別符欄位502、集合移位特性欄位506、集合偏移特性欄位508和目標通道特性欄位510來表示。其他欄位502、512、514和516未必定義分量快取記憶體,但是表示分量快取記憶體的可以是靜態的或者可變的特性。因此,在靜態的快取記憶體配置表500中,對於與分量 快取記憶體識別符相關的集合移位特性、集合偏移特性、和目標通道的每個組合可以存在行。在靜態的快取記憶體配置表500中,其他欄位502、512、514和516仍然可以是可變的並且允許改變它們的值。在一態樣,分量快取記憶體配置表500可以是動態的,因為包括與分量快取記憶體識別符相關的集合移位特性、集合偏移特性和目標通道的各種組合的行可以在執行時間期間被添加到分量快取記憶體配置表500和從分量快取記憶體配置表500中刪除。類似於靜態的分量快取記憶體配置表500,其他欄位502、512、514和516未必定義分量快取記憶體,並且可以是可變的以及允許改變它們的值。
圖6圖示了經由集合和通道被不同地劃分成分量快取記憶體的系統快取記憶體600。圖6中圖示並且本文中描述的分量快取記憶體僅表示實例並且絕不表示限定。圖6中圖示的分量快取記憶體與圖5的行518、520、522、524和526中圖示的分量快取記憶體的非限定性實例相關。分量快取記憶體602與分量快取記憶體配置表500中的行518相關。在此實例中,在行518,集合移位特性值為空或0。因為不存在集合群分區,所以集合偏移特性值是不相關的,但是仍可以為空或0。目標通道包括系統快取記憶體600的所有通道402-416,如由目標通道=0xFF所指示的,其在位元向量中可以被表示為1111 1111,如以上所描述的。
在圖6中所圖示的實例中,分量快取記憶體604與分量快取記憶體配置表500中的行520相關。在此實例中,在行520中,集合移位特性=3可以表示系統快取記憶體600被劃分 成8個集合群442-456。集合偏移特性=100可以表示分量快取記憶體604位於集合群450中。由位元向量0000 1100表示的目標通道=0x0C可以表示分量快取記憶體604位於通道410和412中。
在圖6中所圖示的實例中,分量快取記憶體606與分量快取記憶體配置表500中的行522相關。在此實例中,在行522中,集合移位特性=1可以表示系統快取記憶體600被劃分成2個集合群422和424。集合偏移特性=000可以表示分量快取記憶體604位於集合群422中。由位元向量1111 0000表示的目標通道=0xF0可以表示分量快取記憶體604位於通道402、404、406和408中。
在圖6中所圖示的實例中,分量快取記憶體608與分量快取記憶體配置表500中的行524相關。在此實例中,在行524中,集合移位特性=2可以表示系統快取記憶體600被劃分成4個集合群432-438。集合偏移特性=110可以表示分量快取記憶體604位於集合群438中。由位元向量0111 1000表示的目標通道=0x78可以表示分量快取記憶體604位於通道404、406、408和410中。
在圖6中所圖示的實例中,分量快取記憶體610與分量快取記憶體配置表500中的行526相關。在此實例中,在行526中,集合移位特性值為空或0。因為不存在集合群分區,所以集合偏移特性值是不相關的,但是仍可以為空或0。目標通道包括系統快取記憶體600的通道416,如由目標通道=0x01所指示的,其在位元向量中可以被表示為0000 0001。
圖6僅圖示了可由系統快取記憶體控制器使用分量快取記憶體配置表500來管理的潛在分量快取記憶體的小範例。儘管圖6中將分量快取記憶體604、606、608和610圖示為佔用系統快取記憶體600中的非交疊位置(除了分量快取記憶體602之外),但是應當注意,這僅是為了便於解釋而這麼做的並且許多分量快取記憶體可以在與分量快取記憶體602交疊時與其他分量快取記憶體交疊。不是所有分量快取記憶體在同一時間皆可以是活躍的,因此分量快取記憶體的交疊的使用可以由系統快取記憶體控制器來管理,如本文進一步論述的。亦應當注意,不同分量快取記憶體的參數可以導致每個分量快取記憶體不同的快取記憶體線大小。由於每個分量快取記憶體包括系統快取記憶體的全部快取記憶體集合的劃分,因而與每個分量快取記憶體相關聯的快取記憶體線可以少於快取記憶體通道中的所有快取記憶體集合。這可以導致比在不經由快取記憶體集合來劃分的情況下小的快取記憶體線,並且由集合移位特性定義的每個分量快取記憶體的快取記憶體集合的數目可以決定每個分量快取記憶體的快取記憶體線大小。
圖7圖示了對分量快取記憶體的客戶端存取的實例。客戶端可以包括例如程式軟體、作業系統軟體、計算設備韌體、處理器、處理器核、或計算設備子系統和系統記憶體管理單元,並且可以作出系統快取記憶體存取請求以從系統快取記憶體302的分量快取記憶體讀取和寫入該分量快取記憶體。由一或多個客戶端作出的系統快取記憶體存取請求可 以在對系統快取記憶體作出的請求中以及在接收自系統快取記憶體的回應中改變。來自客戶端的系統快取記憶體存取請求可以包括處理器核(諸如處理器核A 700、處理器核B 702、處理器核C 704、處理器核D 706和處理器核E 708)發送請求從系統快取記憶體302讀取或者寫入系統快取記憶體302的信號。
連同用於讀取或寫入的系統快取記憶體存取請求,處理器700-708可以包括虛擬位址或實體位址、分量快取記憶體識別符、以及分量快取記憶體特性。在一態樣,系統記憶體管理單元710、712、714、716可以是SoC上的在處理器、處理器核、或子系統與系統快取記憶體控制器之間的分開元件、或者被整合到相同元件中的一者或多者中。系統記憶體管理單元710、712、714、716可以接收系統快取記憶體存取請求、虛擬位址、分量快取記憶體識別符、以及分量快取記憶體特性。根據虛擬位址,系統記憶體管理單元710、712、714、716可以決定系統快取緩衝記憶體空間的相關實體位址。在一態樣,系統記憶體管理單元710、712、714、716可以從虛擬位址構成定製索引。系統記憶體管理單元710、712、714、716可以向系統快取記憶體302轉發系統快取記憶體存取請求、系統快取記憶體的實體位址、定製索引、分量快取記憶體識別符、以及分量快取記憶體特性。在本文進一步描述的一態樣,系統快取記憶體控制器可以接收由系統記憶體管理單元710、712、714、716轉發的資訊並且將系統快取緩衝記憶體空間的實體位址轉譯成所標識出的分量快取記憶體的實體 位址。
以下實例描述各種類型的系統快取緩衝記憶體存取請求。一個實例可以包括處理器核A 700向分量快取記憶體A 720作出指定使用實體索引模式的系統快取緩衝記憶體存取請求。處理器核A 700可以發送其系統快取緩衝記憶體存取請求連同分量快取記憶體A 720的分量快取記憶體識別符、系統快取緩衝記憶體空間的虛擬位址、以及至少實體索引模式特性指示符。系統記憶體管理單元A 710可以接收由處理器核A 700發送的資訊,決定系統快取緩衝記憶體空間中與虛擬位址相關的實體位址,以及轉發系統快取緩衝記憶體存取請求、分量快取記憶體識別符、分量快取記憶體特性、和系統快取記憶體的實體位址。在一態樣,系統記憶體管理單元A 710可以或者可以不構成定製索引。構成定製索引在此例子中不是必需的,因為指定了實體索引模式並且因此將不使用定製索引。然而,在一態樣,定製索引可被構成和轉發,並且不被使用。在其中沒有指定索引模式的態樣,定製索引模式可以與分量快取記憶體配置表中的分量快取記憶體識別符相關,這可以在其中沒有指定索引模式的實例中可以是有益的,以便無論如何提供定製索引。由系統記憶體管理單元A 710轉發的資訊可以由系統快取記憶體302用於存取分量快取記憶體A 720。在一態樣,分量快取記憶體A 720可以調和其與RAM 328儲存的資料的變化。
另一實例可以包括處理器核B 702向分量快取記憶體B 722作出指定使用定製索引模式的系統快取緩衝記憶體 存取請求。處理器核B 702可以發送其系統快取緩衝記憶體存取請求連同分量快取記憶體B 722的分量快取記憶體識別符、系統快取緩衝記憶體空間的虛擬位址、以及至少定製索引模式特性指示符。系統記憶體管理單元B 712可以接收由處理器核B 702發送的資訊,決定系統快取緩衝記憶體空間中與虛擬位址相關的實體位址,構成定製索引,以及轉發系統快取緩衝記憶體存取請求、分量快取記憶體識別符、分量快取記憶體特性、系統快取記憶體的實體位址、和定製索引。由系統記憶體管理單元B 712轉發的資訊可以由系統快取記憶體302用於存取分量快取記憶體B 722。在一態樣,分量快取記憶體B 722可以調和其與RAM 328儲存的資料的變化。
在一實例中,處理器核C 704可以向分量快取記憶體C 724作出使用系統快取記憶體的實體位址的系統快取緩衝記憶體存取請求。處理器核C 704可以直接向系統快取記憶體302發送其系統快取緩衝記憶體存取請求連同分量快取記憶體C 724的分量快取記憶體識別符、系統快取緩衝記憶體空間的虛擬位址、以及任何分量快取記憶體特性。由處理器核C 704發送的資訊可以由系統快取記憶體302用於存取分量快取記憶體C 724。
另一實例可以包括處理器核D 706向預設分量快取記憶體D 726作出系統快取緩衝記憶體存取請求,該分量快取記憶體D 726可以表示涵蓋整個系統快取記憶體的分量快取記憶體(諸如圖6的分量快取記憶體602),而不是涵蓋系統快取記憶體的一分區的分量快取記憶體。處理器核D 706可以發 送其系統快取緩衝記憶體存取請求連同系統快取緩衝記憶體空間的虛擬位址。處理器核D 706不需要發送分量快取記憶體識別符或分量快取記憶體特性,因為該系統快取緩衝記憶體存取請求是針對預設分量快取記憶體D 726的。預設分量快取記憶體識別符(諸如空或0)可以被發送並且用於在分量快取記憶體配置表中標識系統快取緩衝記憶體存取請求是針對預設分量快取記憶體的。系統記憶體管理單元D 716可以接收由處理器核D 706發送的資訊,決定系統快取緩衝記憶體空間中與虛擬位址相關的實體位址,以及轉發系統快取緩衝記憶體存取請求、分量快取記憶體識別符(在被提供時)、和系統快取記憶體的實體位址。由系統記憶體管理單元D 716轉發的資訊可以由系統快取記憶體302用於存取預設分量快取記憶體D 726。在一態樣,預設分量快取記憶體D 726可以調和其與RAM 328儲存的資料的變化。
在一實例中,處理器核E 708可以作出非可快取記憶體的系統快取緩衝記憶體存取請求。在此實例中,非可快取記憶體的系統快取緩衝記憶體存取請求可以經由系統快取記憶體302指向RAM 328。處理器核E 708可以發送其非可快取記憶體的系統快取緩衝記憶體存取請求連同系統快取緩衝記憶體空間的虛擬位址。系統記憶體管理單元E 718可以接收由處理器核E 708發送的資訊,決定系統快取緩衝記憶體空間中與虛擬位址相關的實體位址,以及轉發系統快取緩衝記憶體存取請求和系統快取記憶體的實體位址。由系統記憶體管理單元E 718轉發的資訊可以由系統快取記憶體302用於存取RAM 328以執行所請求的記憶體存取功能。
圖8圖示了用於存取分量快取記憶體的位址轉譯。由以上提及的系統快取記憶體控制器進行的位址轉譯將系統快取緩衝記憶體空間800中的實體位址轉譯成系統快取緩衝記憶體空間中的分量快取記憶體814的實體位址。在一態樣,系統快取緩衝記憶體空間800中的實體位址可以包括標籤802和實體索引,該實體索引包括集合索引804和塊偏移806。分量快取記憶體814的實體位址可以包括擴展標籤816和經修改實體索引,該經修改實體索引包括集合索引818和塊偏移820。如前述,系統快取記憶體控制器可以接收系統快取記憶體存取請求的資訊和與系統快取記憶體存取請求有關的資訊,包括系統快取緩衝記憶體空間800中的實體位址、分量快取記憶體識別符、以及分量快取記憶體特性(諸如索引模式)。系統快取記憶體控制器可以使用此資訊來決定分量快取記憶體814的實體位址。系統快取記憶體控制器可以在被提供系統快取記憶體存取請求時使用分量快取記憶體索引模式特性來更新分量快取記憶體配置表500中關於亦與系統快取記憶體存取請求一起接收的相應的分量快取記憶體識別符的索引模式特性欄位。系統快取記憶體控制器可以使用分量快取記憶體識別符來從分量快取記憶體配置表500中決定合適的索引模式、集合移位特性和集合偏移特性以用於為該分量快取記憶體識別符決定分量快取記憶體814的實體位址。
系統快取記憶體控制器可以使用系統快取緩衝記憶體空間800中的實體位址的諸部分來決定關於決定分量快取 記憶體814的實體位址的諸部分。例如,系統快取記憶體控制器可以使用來自系統快取緩衝記憶體空間800中的實體位址的塊偏移806來決定分量快取記憶體814的實體位址的塊偏移820。在一態樣,塊偏移806和塊偏移820中的值可以是相同的。系統快取記憶體控制器可以使用系統快取緩衝記憶體空間800中的實體位址的標籤802和集合索引804的諸部分及/或定製索引808來分別決定分量快取記憶體814的實體位址的標籤816和集合索引818。
在一態樣,標籤802和集合索引804可被修改以決定標籤816和集合索引818。為了修改標籤802和集合索引804,系統快取記憶體控制器可以使用分量快取記憶體配置表500中關於相應的分量快取記憶體識別符的索引模式特性來選擇(810)是在指示實體索引模式時使用集合索引804的第一組位元還是在指示定製索引模式時用定製索引808來取代集合索引804的第一組位元。索引模式可以決定使用集合索引804的第一組位元或者定製索引808構成的集合索引818的第一組位元的構成。無論選擇集合索引804的第一組位元或者定製索引808中的哪一者,系統快取記憶體控制器可以將集合索引804的第二組位元用作集合索引818的第二組位元並且將它們與集合索引804的第一組位元或定製索引808相組合。另外,無論選擇集合索引804的第一組位元或者定製索引808中的哪一者,系統快取記憶體控制器可以使用相應的分量快取記憶體識別符的集合移位特性和集合偏移特性來決定丟棄(或移位)和級聯操作812的實現。集合移位特性可以定義來自集合 索引804的第一組位元或定製索引808中的要丟棄和添加(或移位)至標籤816的最高有效位元的數目,由此將被丟棄的(或經移位)的位元附加至標籤802以決定標籤816,並且將標籤816的大小從標籤802的大小擴展相同的位元數。集合偏移特性可被用於取代集合索引818中被丟棄(或經移位)的位元。
圖9圖示了將實體位址用於存取分量快取記憶體的位址轉譯。如以上參照圖8所描述的,塊偏移806可被轉置成塊偏移820。當索引模式指示實體索引時,集合索引804可以被修改以丟棄(或移位出)集合索引804的第一組位元(在一態樣是最高有效位元900)。集合索引804的第一組位元的數目可以取決於分量快取記憶體的集合移位特性的值。集合索引804的第二組位元(其在一態樣是集合索引804的剩餘位元906)可以被用作集合索引818的第二組位元。在一態樣,剩餘位元906可以被轉置成集合索引818的相同位元908。分量快取記憶體的集合偏移特性902的位元可以取代集合索引804的被丟棄(或移位出)的第一組位元(例如,集合索引804的最高有效位元900)作為集合索引818的第一組位元(在一態樣是集合索引818的最高有效位元904)。與集合索引804的被丟棄(或移位出)的第一組位元(例如,集合索引804的最高有效位元900)相組合(例如,與其附加在一起)的標籤802可以被轉置成標籤816。
圖10圖示了將定製索引用於存取分量快取記憶體的位址轉譯。如以上參照圖8所描述的,塊偏移806可被轉置成 塊偏移820。當索引模式指示定製索引時,集合索引804可以被修改以丟棄(或移位出)集合索引804的第一組位元(在一態樣是最高有效位元900)。集合索引804的第一組位元的數目可以取決於分量快取記憶體的集合移位特性的值。集合索引804的剩餘的第二組位元(其在一態樣是集合索引804的中間位元1006和較低位元1000)可以被用作集合索引818的第二組位元。在一態樣,較低位元1000可以被轉置成集合索引818的相同位元1002。定製索引808可以在集合索引818的相應的中間位元1004中取代中間位元1006。分量快取記憶體的集合偏移特性902的位元可以取代集合索引804的第一組位元(例如,集合索引804的最高有效位元900)作為集合索引818的第一組位元(其在一態樣是集合索引818的最高有效位元904)。與集合索引804的被丟棄(或移位出)的第一組位元(例如,集合索引804的最高有效位元900)相組合(或與其附加在一起)的標籤802可以被轉置成標籤816。
應當注意,丟棄、移位、轉置、組合、以及額外實體位址800集合偏移特性902和定製索引808的各個位元的以上實例僅是實例並且絕不表示是限定性的。以任何數目的方式來操縱和組合這些分量的各個位元以安排實體位址814的各個位元是可能的。例如,集合偏移特性902的位元可以取代集合索引804的最高有效位元、最低有效位元、或中間位元。
在一態樣,分量快取記憶體可被啟動和停用。由於存在分量快取記憶體在系統快取緩衝記憶體空間中交疊的可能性,因而為了避免快取記憶體衝突,可以停用與活躍分量 快取記憶體交疊的分量快取記憶體。另外,為了節省功率,可以停用不在使用中的分量快取記憶體。分量快取記憶體可以在執行時啟動和停用以部分地動態劃分系統快取緩衝記憶體空間和將分量快取記憶體指派給指定的客戶端。系統快取記憶體的一些客戶端可能僅需要分量快取記憶體達相對較短的時間段,並且正被分量快取記憶體使用的系統快取緩衝記憶體空間可以為客戶端保留以避免與使用該系統快取記憶體的其他客戶端的快取記憶體衝突。此外,當客戶端完成使用分量快取記憶體時,該分量快取記憶體可被停用並且系統快取記憶體空間未被保留,從而使系統快取緩衝記憶體空間和分量快取記憶體可用於其他客戶端。
圖11圖示了實例分量快取記憶體啟動/停用控制命令1100,其包括用於儲存與分量快取記憶體啟動和記憶體存取操作有關的資訊的暫存器。在一態樣,分量快取記憶體啟動/停用控制命令1100可以包含資訊,諸如觸發1102、操作碼1104、分量快取記憶體識別符1106、應用目標通道1108、以及目標通道1110。觸發1102可以是用於指示是否開始對分量快取記憶體的系統快取緩衝記憶體存取的標誌,諸如1位元碼。例如,位元值「0」可以指示系統快取緩衝記憶體存取不應開始,並且位元值「1」可以指示系統快取緩衝記憶體存取可以開始。操作碼1104可以是用於指示是啟動還是停用分量快取記憶體的代碼。例如,其中「01」表示啟動並且「10」表示停用的2位元碼可被用於操作碼1104。分量快取記憶體識別符1106可以儲存與同分量快取記憶體啟動/停用控制命令1100 的其他資訊有關的特定分量快取記憶體相關聯的值。應用目標通道1108可以是表示是否在系統快取緩衝記憶體存取中使用儲存在目標通道1110中的資訊的標誌。例如,位元值「0」可以指示不使用儲存在目標通道1110中的資訊,並且位元值「1」可以指示使用儲存在目標通道1110中的資訊。目標通道1110可以儲存系統快取緩衝記憶體空間中的分量快取記憶體內要啟動的通道,並且可以僅在操作碼1104表示啟動時才是有效的。在一態樣,客戶端可以不需要將整個分量快取記憶體用於系統快取緩衝記憶體存取,並且可以指定僅啟動分量快取記憶體內的某些通道。當客戶端需要使用分量快取記憶體中的更多通道時,目標通道1110可以指定分量快取記憶體中的更多通道。
圖12圖示了分量快取記憶體啟動/停用控制狀態1200,其可以包括用於儲存與分量快取緩衝記憶體存取操作有關的資訊的暫存器。在一態樣,分量快取記憶體啟動/停用控制狀態1200可以包含諸如完成指示符1202之類的資訊,該完成指示符1202可以是標誌。例如,位元值「0」可以指示系統快取緩衝記憶體存取操作尚未開始或者正在進行中,並且位元值「1」可以指示系統快取緩衝記憶體存取操作完成。
分量快取記憶體啟動/停用控制命令1100和分量快取記憶體啟動/停用控制狀態1200可以由系統快取記憶體控制器讀取以管理系統快取緩衝記憶體空間。另外,圖13圖示了可由系統快取記憶體控制器用於管理分量快取記憶體內的通道的使用的分量快取記憶體活躍通道表1300。如前述,客戶 端可以或者可以不需要將整個分量快取記憶體用於系統快取緩衝記憶體存取,並且可以指定僅啟動分量快取記憶體內的某些通道。系統快取記憶體控制器可以經由更新分量快取記憶體活躍通道表1300來追蹤分量快取記憶體的活躍通道。在分量快取記憶體活躍通道表1300中,分量快取記憶體識別符欄位1302(例如,分量快取記憶體配置表中的分量快取記憶體識別符欄位)可以與相應的活躍通道欄位1304相關。在應用目標通道指示要應用目標通道時,系統快取記憶體控制器可以在活躍通道欄位1304中儲存由客戶端請求的、如從分量快取記憶體啟動/停用控制命令的目標通道中讀取出的目標通道。在應用目標通道指示不應用目標通道時,活躍通道欄位1304可被設置成預設值、空值、或者指示分量快取記憶體的所有目標通道的值,如在分量快取記憶體配置表中所規定的。
圖14圖示了可以是上述分量快取記憶體活躍通道表的相伴表的分量快取記憶體保留表1400的一態樣。分量快取記憶體保留表1400可以包括通道列1402、1404、1406、1408、1410、1412、1414、1416、以及集合群行1418、1420、1422、1424、1426、1428、1430、1432,它們可以表示劃分成分量快取記憶體的系統快取記憶體的通道和集合群。分量快取記憶體保留表1400可以為系統快取記憶體中的由客戶端保留及/或未保留的每一對通道和集合群設置保留及/或未保留指示符。根據一態樣的分量快取記憶體保留表1400可以允許系統快取記憶體控制器追蹤正被客戶端使用的系統快取記憶體 的位置,並且經由不允許客戶端使用正被另一客戶端使用或者為另一客戶端保留的系統快取記憶體位置來避免快取記憶體衝突。在一態樣,保留指示符可以匹配與系統快取記憶體活躍通道表和分量快取記憶體配置表中的分量快取記憶體識別符相關的集合群,並且匹配在系統快取記憶體活躍通道表中指示的通道。一旦客戶端完成使用其已保留的分量快取記憶體空間,則保留指示符可被從分量快取記憶體保留表1400中的相應位置移除,或者被改變成關於分量快取記憶體保留表1400中的相應位置的未保留指示符。
在一實例中,圖13中圖示的分量快取記憶體活躍通道表1300圖示4個分量快取記憶體識別符的活躍通道。系統快取記憶體控制器可以為每個分量快取記憶體識別符保留系統快取記憶體位置,從而將所保留的通道限制為所指示的活躍通道。系統快取記憶體位置可以根據分量快取記憶體配置表中的集合移位特性、集合偏移特性以及分量快取記憶體活躍通道表1300中的活躍通道來決定。系統快取記憶體控制器可以經由在分量快取記憶體保留表1400中保留系統快取記憶體位置來保留系統快取記憶體中的位置。因此,在圖14所圖示的實例中,分量快取記憶體保留表1400包括資料,該資料指示指定的集合群和活躍通道被保留用於由分量快取記憶體配置表和分量快取記憶體活躍通道表1300中的分量快取記憶體識別符和相應的分量快取記憶體特性所指定的每一個系統快取記憶體位置。
應當注意,儘管不太可能,但是將來自分量快取記 憶體配置表500的表示整個系統快取記憶體的分量快取記憶體的分量快取記憶體識別符「0」包括在分量快取記憶體啟動表1300和分量快取記憶體保留表1400中是可能的,因為這將保留整個系統快取記憶體,除非此分量快取記憶體的活躍通道受限制。這將導致沒有其他客戶端能夠使用系統快取記憶體,直至至少一些通道被停用。
在一態樣,分量快取記憶體可以使用2個W位元向量來調整大小,其中W是快取記憶體通道的數目並且這些向量中的每一位元表示特定的快取記憶體通道。每個分量快取記憶體可以與W位元向量中的一個或兩個相關聯。保留向量或第一向量可以指示在啟動時被保留用於分配給相關聯的分量快取記憶體的快取記憶體通道。獎勵向量或第二向量可以指示在閒置時或者在未被任何分量快取記憶體保留時可被分配給相關聯的分量快取記憶體的額外的快取記憶體通道。如以上所論述的,分量快取記憶體可以與特定的客戶端(諸如計算設備的處理元件或子系統)相關聯。
圖15圖示了具有分配給各種分量快取記憶體的所保留快取記憶體通道的實例系統快取緩衝記憶體。系統快取緩衝記憶體1500可以包括數個通道;在此實例中,系統快取緩衝記憶體1500包括16個通道1502、1504、1506、1508、1510、1512、1514、1518、1520、1522、1524、1526、1528、1530、1532和1534。對於這個實例,2個W位元向量可以是16位元向量。所保留的快取記憶體通道1536可以被分配給第一客戶端(諸如CPU)的第一分量快取記憶體,並且可以包括快取記 憶體通道1502-1508。所保留的快取記憶體通道1536可以經由16進位符號中的第一保留向量=0xF000來表示。在二進位形式中,所保留的快取記憶體通道1536可以經由第一保留向量=1111 0000 0000 0000來表示。將第一保留快取記憶體向量的二進位形式與快取記憶體通道1502-1534相比較,「1」位元對應於所保留的快取記憶體通道1536,包括快取記憶體通道1502-1508。類似地,所保留的快取記憶體通道1538可被分配給第二客戶端(諸如計算設備的其他處理元件或子系統之一)的第二分量快取記憶體,並且可以包括快取記憶體通道1506-1518。所保留的快取記憶體通道1536可以經由16進位符號中的第二保留向量=0x3F00來表示。所保留的快取記憶體通道1540可被分配給第三客戶端(諸如計算設備的其他處理元件或子系統之一)的第三分量快取記憶體,並且可以包括快取記憶體通道1520-1526。所保留的快取記憶體通道1540可以經由16進位符號中的第三保留向量=0x00F0來表示。未保留的快取記憶體通道1542可以包括快取記憶體通道1528-1534。另外,第一分量快取記憶體可以與16進位符號中的第一獎勵向量=0x0FFF相關聯,其表示將第一分量快取記憶體擴展到快取記憶體通道1510-1534中的潛力。如用所保留的快取記憶體通道1536、1538所展現的,所保留的快取記憶體通道可以在分量快取記憶體之間交疊。這是可能的,因為分量快取記憶體可能佔用系統快取記憶體的相同通道中不同集合群。因此,可能在相同的快取記憶體通道內啟動多個分量快取記憶體。在一態樣,圖6中的具有分量快取記憶體識別符「0」的分量 快取記憶體602(如圖5中的行518中所圖示的)可以具有相關聯的保留向量,該保留向量可以與其他分量快取記憶體的保留向量交疊。
為了使第一分量快取記憶體擴展到由第一獎勵快取記憶體向量中指示的快取記憶體通道1510-1534中,分量快取記憶體擴展到的每個快取記憶體通道1510-1534應當是未保留的。保留向量可以在針對每個分量快取記憶體的啟動命令中指定。計算設備可以根據啟動命令的保留向量來保留和分配快取記憶體通道1502-1534中用於合適的分量快取記憶體的一或多個快取記憶體通道。所保留的快取記憶體通道可以儲存在記憶體設備(諸如暫存器)中。計算設備亦可以在記憶體設備(諸如暫存器)中儲存每個分量快取記憶體的獎勵向量。獎勵向量可以在引導時間被寫入記憶體設備及/或資源管理器可以基於使用情形來將獎勵向量指派給每個分量快取記憶體。儲存所分配的用於特定分量快取記憶體的快取記憶體通道的記憶體設備可被擴增以回應於這些快取記憶體通道被分配給分量快取記憶體而包括獎勵向量的快取記憶體通道。計算設備(其在一態樣可以是系統快取記憶體控制器)可以針對分量快取記憶體的保留向量及/或獎勵向量計算可用通道以分配給該分量快取記憶體。這一計算可以使用下式來達成:
在上式中,X可以是相關分量快取記憶體的分量快取記憶體識別符,N可以是分量快取記憶體的總數,並且I可 以是所有分量快取記憶體的分量快取記憶體識別符。ReservedVecX、ReservedVecI、和BonusVecX可以是分別由X和I指示的分量快取記憶體的保留向量和獎勵向量。當I的分量快取記憶體活躍時,Active1可被斷言。合計可以是應用於每個分量快取記憶體的逐位元OR運運算元。回應於計算包括在分量快取記憶體的獎勵向量中的可用快取記憶體通道,分量快取記憶體可以被分配可用快取記憶體通道。
圖16圖示了根據一態樣的具有分配給分量快取記憶體的保留和獎勵快取記憶體通道的實例系統快取緩衝記憶體。繼續圖15中的實例,第一分量快取記憶體可以使用系統快取記憶體1500中的快取記憶體通道1502-1510和1528-1534。如以上所提及的,快取記憶體通道1502-1510可以落入第一分量快取記憶體的保留向量的範圍;然而,快取記憶體通道1528-1534落入第一分量快取記憶體的獎勵向量的範圍。為了將快取記憶體通道1528-1534分配給第一分量快取記憶體,快取記憶體通道1528-1534可不由計算設備的另一分量快取記憶體保留。儘管快取記憶體通道1528-1534在此實例中未被保留,但是第一分量快取記憶體的獎勵快取記憶體向量的確與所保留的快取記憶體通道1538和1540交疊,包括快取記憶體通道1510-1526,如圖15中所示。為了將快取記憶體通道1528-1534分配給第一分量快取記憶體,計算設備可以分配在第一分量快取記憶體的獎勵向量中指示的所有快取記憶體通道1510-1534。計算設備可以停用第二和第三分量快取記憶體以不保留快取記憶體通道1510-1526並且除了圖15中的所保留 的快取記憶體通道1538之外亦將快取記憶體通道1510-1534分配給第一分量快取記憶體。第一分量快取記憶體可以被分配所保留的快取記憶體通道1600,包括快取記憶體通道1502-1534的全部。
圖17圖示了根據一態樣的具有分配給各種分量快取記憶體的所保留快取記憶體通道的實例系統快取緩衝記憶體。以下實例使用圖15的相同系統快取記憶體1500,唯一的區別在於所保留的快取記憶體通道1700和1702以及未保留的快取記憶體通道1704不同。所保留的快取記憶體通道1700可以被分配給第一分量,並且可以包括快取記憶體通道1502-1508。所保留的快取記憶體通道1700可以經由16進位符號中的第一保留向量=0xF000來表示。所保留的快取記憶體通道1702可以被分配給第二分量快取記憶體,並且可以包括快取記憶體通道1506-1518。所保留的快取記憶體通道1536可以經由16進位符號中的第二保留向量=0x3F00來表示。未保留的快取記憶體通道1704可以包括快取記憶體通道1520-1534。另外,第二分量快取記憶體可以與16進位符號中的第二獎勵向量=0xC000相關聯,其表示將第二分量快取記憶體擴展到快取記憶體通道1502和1504中的潛力。
圖18圖示了根據一態樣的具有分配給分量快取記憶體的保留和獎勵快取記憶體通道的實例系統快取緩衝記憶體。繼續圖17中的實例,第二分量快取記憶體可以使用系統快取記憶體1500中的快取記憶體通道1506-1518。如以上所提及的,快取記憶體通道1506-1518可以落在第二分量快取記憶體 的保留向量的範圍內。為了將快取記憶體通道1506-1518分配給第二分量快取記憶體,快取記憶體通道1506-1518可不由計算設備的另一分量快取記憶體保留。然而,快取記憶體通道1506和1508與所保留的快取記憶體通道1700交疊,包括快取記憶體通道1502-1508,如圖17中所示。為了將快取記憶體通道1506-1518分配給第二分量快取記憶體,計算設備可以停用第一分量快取記憶體以不保留快取記憶體通道1506和1508,並且將快取記憶體通道1502-1518分配給第二分量快取記憶體。第二分量快取記憶體可以被分配所保留的快取記憶體通道1800,包括所保留的快取記憶體通道1702以及經由停用第一分量快取記憶體而不被保留的額外的快取記憶體通道1502和1504,該快取記憶體通道1502和1504包括在第二分量快取記憶體的獎勵快取記憶體向量中。
圖19圖示了用於存取經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法1900。方法1900可以由如本文中描述的計算設備(諸如由系統快取記憶體控制器)來執行。在方塊1902,計算設備可以載入分量快取記憶體配置表。在具有靜態分量快取記憶體配置表的一態樣,載入分量快取記憶體配置表可以在計算設備的引導時間期間發生,並且分量快取記憶體配置表可以用對於系統快取記憶體而言是可能的分量快取記憶體的每種組合來填充。分量快取記憶體配置表可以用至少分量快取記憶體識別符、集合移位特性、集合偏移特性和目標通道特性來填充。在具有如本文中描述的動態分量快取記憶體配置表 的態樣,分量快取記憶體表可以在引導時間載入或者在首次請求分量快取記憶體存取之際載入。動態分量快取記憶體配置表可以從已由計算設備保存的最新版本的分量快取記憶體配置表載入,或者可以是基於所接收到的分量快取記憶體存取請求來填充的空表。
在方塊1904,計算設備可以接收系統快取記憶體存取請求。如前述,系統快取記憶體存取請求可以源自計算設備上的客戶端並且可以由系統快取記憶體控制器接收。系統快取記憶體存取請求可以包括從系統快取記憶體讀取或寫入系統快取記憶體的請求、分量快取記憶體識別符、分量快取記憶體特性、系統快取記憶體的實體位址、以及定製索引。在決定方塊1906,計算設備可以決定系統快取記憶體存取請求是否包括分量快取記憶體識別符(CCID)。回應於決定系統快取記憶體存取請求不包括分量快取記憶體識別符(亦即,決定方塊1906=「否」),則計算設備可以在方塊1908將系統快取記憶體存取請求作為經由已知方法作出的正常存取請求來對待。
回應於決定該系統快取記憶體存取請求的確包括分量快取記憶體識別符(亦即,決定方塊1906=「是」),計算設備可以在方塊1910檢視分量快取記憶體配置表中與分量快取記憶體識別符相關的記錄。如前述,在其中分量快取記憶體配置表為靜態的態樣,對於系統快取記憶體的具有分量快取記憶體識別符的每個可能的分量快取記憶體而言皆存在記錄。在可任選方塊1912,計算設備可以用可能與已經在記錄中 的分量快取記憶體特性不同的任何收到分量快取記憶體特性來更新分量快取記憶體配置表中對應於分量快取記憶體識別符的記錄。替換地,計算設備可以替換該記錄中的所有分量快取記憶體特性,而不決定它們是否不同。
在方塊1914,計算設備可以將連同系統快取記憶體存取請求一起接收的實體位址轉換成系統快取記憶體中的分量快取記憶體的相應實體位址。如本文中更詳細地描述的,轉換位址可以涉及決定分量快取記憶體的索引模式特性是實體索引還是定製索引。
在決定方塊1916,計算設備可以決定分量快取記憶體是否可用。如本文中進一步描述的,決定分量快取記憶體是否可用可以涉及決定分量快取記憶體的系統快取記憶體位置是否被保留用於計算設備的另一客戶端。回應於決定分量快取記憶體不可用(亦即,決定方塊1916=「否」),在方塊1918,計算設備可以保持系統快取記憶體存取請求,直至分量快取記憶體變得可用。在方塊1920,計算設備可以存取與系統快取記憶體存取請求的分量快取記憶體識別符相關聯的分量快取記憶體以實現所請求的讀或寫操作。
圖20圖示了用於存取經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法2000。方法2000可以由如本文中描述的計算設備(諸如由系統快取記憶體控制器)來執行。在一態樣,可以針對如本文中所描述的經載入的動態分量快取記憶體配置表來實現方法2000。在方塊2002,計算設備可以接收系統快取記憶體 存取請求。如前述,系統快取記憶體存取請求可以源自計算設備上的客戶端並且可以由系統快取記憶體控制器接收。系統快取記憶體存取請求可以包括從系統快取記憶體讀取或寫入系統快取記憶體的請求、分量快取記憶體識別符、分量快取記憶體特性、系統快取記憶體的實體位址、以及定製索引。
在決定方塊2004,計算設備可以決定系統快取記憶體存取請求是否包括分量快取記憶體識別符(CCID)。回應於決定系統快取記憶體存取請求不包括分量快取記憶體識別符(亦即,決定方塊2004=「否」),計算設備可以在方塊2006將系統快取記憶體存取請求作為經由已知方法作出的正常存取請求來對待。
回應於決定該系統快取記憶體存取請求的確包括分量快取記憶體識別符(亦即,決定方塊2004=「是」),計算設備可以在決定方塊2006決定在分量快取記憶體配置表中是否存在關於該分量快取記憶體識別符的記錄。在分量快取記憶體配置表中可能或可能不存在關於該分量快取記憶體識別符的記錄,因為在動態分量快取記憶體配置表中,關於分量快取記憶體識別符的記錄可以不是經載入的分量快取記憶體配置表的一部分,或者例如該記錄在分量快取記憶體被停用時被從該表中移除。
回應於決定在分量快取記憶體配置表中不存在關於該分量快取記憶體的記錄(亦即,決定方塊2006=「否」),計算設備可以在方塊2010在分量快取記憶體配置表中建立關於 該分量快取記憶體的記錄。在一態樣,系統快取記憶體控制器可以使用提供有系統快取記憶體存取請求(包括分量快取記憶體識別符和分量快取記憶體特性)的資訊來在分量快取記憶體配置表中建立關於分量快取記憶體的記錄。
回應於決定在分量快取記憶體配置表中的確存在關於該分量快取記憶體的記錄(亦即,決定方塊2006=「是」),計算設備可以在方塊2012在分量快取記憶體配置表中檢視與該分量快取記憶體識別符相關的記錄。在可任選方塊2014,計算設備可以用可能與已經在記錄中的分量快取記憶體特性不同的任何收到分量快取記憶體特性來更新分量快取記憶體配置表中對應於分量快取記憶體識別符的記錄。替換地,計算設備可以僅僅替換該記錄中的所有分量快取記憶體特性,而不決定它們是否不同。
在方塊2016,計算設備可以將連同系統快取記憶體存取請求一起接收的實體位址轉換成系統快取記憶體中的分量快取記憶體的相應實體位址。如本文中更詳細地描述的,轉換位址可以涉及決定分量快取記憶體的索引模式特性是實體索引還是定製索引。
在決定方塊2018,計算設備可以決定分量快取記憶體是否可用。如本文中描述的,決定分量快取記憶體是否可用可以涉及決定分量快取記憶體的系統快取記憶體位置是否被保留用於計算設備的另一客戶端。回應於決定分量快取記憶體不可用(亦即,決定方塊2018=「否」),在方塊2020,計算設備可以保持系統快取記憶體存取請求,直至分量快取記 憶體變得可用。在方塊2022,計算設備可以存取與系統快取記憶體存取請求的分量快取記憶體識別符相關聯的分量快取記憶體以實現所請求的讀或寫操作。
圖21圖示了用於轉譯快取緩衝記憶體位址以用於存取經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法2100。方法2100可以被實現為圖19中的方法1900的方塊1914的一部分以及圖20中的方法2000的方塊2016的一部分。方法2100可以由如本文中描述的計算設備(諸如由系統快取記憶體控制器)來執行。
在決定方塊2102,計算設備可以決定針對相關的分量快取記憶體識別符的索引模式特性是指示實體索引還是定製索引。計算設備可以檢查分量快取記憶體配置表中相關的分量快取記憶體識別符的記錄的索引模式特性欄位,以決定索引模式是指示實體索引還是定製索引。回應於決定針對相關的分量快取記憶體識別符的索引模式特性指示定製索引(亦即,決定方塊2102=「CI」),計算設備可以在方塊2104用接收到的定製索引來取代接收到的實體位址中的集合索引的中間位元。如以上所提及的,集合索引的中間位元是從集合索引移位出的最高有效位元與集合索引的較低位元之間的位元,這些較低位元被轉置成分量快取記憶體的實體位址的集合索引的較低位元。
在方塊2106,計算設備可以移位出接收到的實體位址中的集合索引的數個最高有效位元。從集合索引移位出的最高有效位元的數目可以經由分量快取記憶體配置表中的相 應分量快取記憶體識別符的集合移位特性的值來決定。在方塊2108,計算設備可以將集合索引的經移位的最高有效位元附加至接收到的實體位址的標籤,並且將與經移位的位元相組合的標籤用作標籤。在方塊2110,計算設備可以在分量快取記憶體配置表中插入相應的分量快取記憶體識別符的集合偏移特性的值。在方塊2112,計算設備可以使用接收到的實體位址的相同塊偏移。因此,系統快取記憶體中的分量快取記憶體的實體位址是針對系統快取記憶體存取請求所接收到的實體位址的函數,其中經由移位最高有效位元、用所指定的值來取代經移位的位元、替換地使用相同的中間位元或者用定製索引來取代這些中間位元、使用相同的較低位元、使用具有附連至標籤的經移位的位元的相同標籤、以及使用相同的塊偏移來從接收到的集合索引修改該集合索引。
圖22圖示了用於動態地啟動經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法2200。方法2200亦可以被認為使用分量快取記憶體來動態地劃分系統快取記憶體,因為被啟動的分量快取記憶體的一些或全部系統快取記憶體位置可以被保留用於客戶端,由此防止其他客戶端使用系統快取記憶體的經動態地劃分的部分。方法2200可以被實現為圖19中的方法1900的方塊1916-1920的一部分以及圖20中的方法2000的方塊2018-2022的一部分。方法2200可以由如本文中描述的計算設備(諸如由系統快取記憶體控制器)來執行。
在方塊2202,計算設備可以針對與分量快取記憶體 識別符有關的分量快取記憶體位置來檢查分量快取記憶體保留表中的系統快取記憶體位置的保留指示符。如本文所描述的,分量快取記憶體位置並且由此系統快取記憶體位置可以經由分量快取記憶體配置表中的分量快取記憶體識別符的集合移位特性、集合偏移特性和目標通道的組合來決定。在一態樣,所保留的分量快取記憶體位置亦可以經由分量快取記憶體活躍通道表中的分量快取記憶體識別符的活躍通道來調控。活躍通道可以指示所保留的位置,而目標通道可以指示所保留的位置或者僅指示可以由分量快取記憶體使用和保留、但是未必被使用或保留的標籤的全部。
在決定方塊2204,計算設備可以決定分量快取記憶體位置是否被保留。如以上所論述的,分量快取記憶體位置是否被保留可以取決於活躍通道分量快取記憶體表中相應的分量快取記憶體的活躍通道。回應於決定分量快取記憶體位置被保留(亦即,決定方塊2204=「是」),計算設備可以在方塊2202檢查這些位置是否被再次保留。
回應於決定分量快取記憶體位置未被保留(亦即,決定方塊2204=「否」),計算設備可以在方塊2206更新該分量快取記憶體識別符的活躍通道表。更新該分量快取記憶體識別符的活躍通道表指示系統快取記憶體存取請求的分量快取記憶體可以保留由分量快取記憶體識別符的集合移位特性、集合偏移特性、和活躍通道所表示的系統快取緩衝記憶體位置。在方塊2208,計算設備可以更新分量快取記憶體的分量快取記憶體保留表中的系統快取記憶體位置的保留指示符。 一旦為分量快取記憶體保留表中的分量快取記憶體保留了系統快取記憶體位置,這些位置就被有效地且動態地從系統快取記憶體的剩餘部分劃分出,因為這些位置被保留用於特定的請求方客戶端。請求存取系統快取記憶體的所保留位置的其他客戶端可被拒絕存取所保留位置,直至為保留了該位置的客戶端停用了所保留位置。
圖23圖示了用於動態地停用經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的一態樣方法2300。方法2300可以被實現為圖19中的方法1900的方塊1920的一部分以及圖20中的方法2000的方塊622的一部分。方法2300可以由如本文中描述的計算設備(諸如由系統快取記憶體控制器)來執行。在方塊2302,計算設備可以從與系統快取記憶體存取請求的分量快取記憶體識別符相關聯的分量快取記憶體的所保留位置讀取及/或寫入該所保留位置。在決定方塊2304,計算設備可以決定系統快取記憶體存取是否完成。回應於決定系統快取記憶體存取未完成(亦即,決定方塊2304=「否」),計算設備可以在方塊2302繼續從分量快取記憶體的所保留位置讀取及/或寫入該所保留位置。回應於決定系統快取記憶體存取完成(亦即,決定方塊2304=「是」),計算設備可以在方塊2306更新分量快取記憶體保留表中的系統快取記憶體位置的保留指示符以釋放/停用由分量快取記憶體保留的位置。
在一態樣,為其保留系統快取記憶體空間的客戶端可以動態地請求額外的或更少的分量快取記憶體空間,並且 由此保留系統快取記憶體空間。在方法2200中,請求更多空間的客戶端可以針對分量快取記憶體的尚未被保留的系統快取記憶體位置來這麼做。在方法2300中,請求更少空間的客戶端可以經由完成僅對分量快取記憶體的所保留的系統快取記憶體位置的一部分進行存取來這麼做。
圖24圖示了用於動態地調整經由集合和通道劃分成分量快取記憶體的系統快取緩衝記憶體的分量快取記憶體的大小的一態樣方法2400。方法2400可以被實現為圖19中的方法1900的方塊1916-1920的一部分以及圖20中的方法2000的方塊2018-2022的一部分。方法2200可以由如本文中描述的計算設備(諸如由系統快取記憶體控制器)來執行。在方塊2402,計算設備可以載入至少一個分量快取記憶體識別符的獎勵向量。如以上所提及的,獎勵向量可以指示相關聯的分量快取記憶體的要擴展到的一或多個快取記憶體通道,該一或多個快取記憶體通道關聯於與獎勵向量有關的分量快取記憶體識別符。載入獎勵向量可以在引導時間及/或執行時間進行,並且獎勵向量可以被儲存在暫存器中。計算設備可以載入獎勵向量的全部或一些。在方塊2404,計算設備可以接收至少一個分量快取記憶體識別符的保留向量。如以上所提及的,保留向量可以指示要被保留用於相關聯的分量快取記憶體的一或多個快取記憶體通道,該一或多個快取記憶體通道關聯於與保留向量有關的分量快取記憶體識別符。
在決定方塊2406,計算設備可以決定保留向量的一或多個快取記憶體通道是否被另一分量快取記憶體保留。為 了作出這個決定,計算設備可以實現以上論述的等式。回應於決定保留向量的快取記憶體通道被另一分量快取記憶體保留(亦即,決定方塊2406=「是」),計算設備可以在方塊2408停用該另一分量快取記憶體。停用該另一分量快取記憶體可以導致不保留由該另一分量快取記憶體保留的快取記憶體通道,由此不保留與保留向量的快取記憶體通道交疊的快取記憶體通道。回應於決定保留向量的快取記憶體通道未被保留(亦即,決定方塊2406=「否」),計算設備可以在方塊2410決定使用分量快取記憶體是否包括使用相關聯的獎勵向量中的一或多個快取記憶體通道。
回應於決定使用分量快取記憶體不包括使用與相關聯的獎勵向量中的一或多個快取記憶體通道(亦即,決定方塊2410=「否」),計算設備可以在方塊2412保留相關聯的分量快取記憶體的未保留的快取記憶體通道。保留快取記憶體通道可以經由將保留向量寫入包含所保留快取記憶體通道資料的暫存器來達成。回應於決定使用分量快取記憶體的確包括使用與相關聯的獎勵向量中的一或多個快取記憶體通道(亦即,決定方塊2410=「是」),計算設備可以在決定方塊2414決定獎勵向量中的一或多個快取記憶體通道是否被另一分量快取記憶體保留。回應於決定獎勵向量中的一或多個快取記憶體通道未被另一分量快取記憶體保留(亦即,決定方塊2414=「否」),計算設備可以在方塊2412保留相關聯的分量快取記憶體的未保留的快取記憶體通道。回應於決定保留向量中的一或多個快取記憶體通道被另一分量快取記憶體保留(亦即 ,決定方塊2414=「是」),計算設備可以在方塊2416停用該另一分量快取記憶體。在方塊2412,計算設備可以保留相關聯的分量快取記憶體的未保留的快取記憶體通道。
圖25圖示了適於與各種態樣聯用的實例行動設備。行動設備2500可包括耦合到觸控式螢幕控制器2504和內部記憶體2506的處理器2502。處理器2502可以是指定用於一般或特定處理任務的一或多個多核積體電路。內部記憶體2506可以是揮發性或非揮發性記憶體,並且亦可以是安全及/或加密的記憶體、或者不安全及/或未加密記憶體,或者以上的組合。可被利用的記憶體類型的實例包括但不限於DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM以及嵌入式DRAM。觸控式螢幕控制器2504和處理器2502亦可被耦合到觸控式螢幕面板2512,諸如電阻式傳感觸控式螢幕、電容式傳感觸控式螢幕、紅外傳感觸控式螢幕等。另外,計算設備2500的顯示器不需要具有觸控式螢幕能力。
行動設備2500可具有彼此耦合及/或耦合至處理器2502的一或多個無線電信號收發機2508(例如,Peanut、藍芽,Zigbee,Wi-Fi,RF無線電)以及用於發送和接收通訊的天線2510。收發機2508和天線2510可與以上提到的電路系統一起使用以實現各種無線傳輸協定堆疊和介面。行動設備2500可包括蜂巢網路無線數據機晶片2516,該晶片使得能夠經由蜂巢網路進行通訊並且耦合至處理器。
行動設備2500可以包括耦合至處理器2502的周邊設 備連接介面2518。周邊設備連接介面2518可被配置成單獨接受一種類型的連接,或者配置成接受公共的或專用的各種類型的實體和通訊連接,諸如USB、火線(FireWire)、雷點(Thunderbolt)或PCIe。周邊設備連接介面2518亦可以耦合至類似地配置的周邊設備連接埠(未圖示)。
行動設備2500亦可包括用於提供音訊輸出的揚聲器2514。行動設備2500亦可包括用於放置此處論述的元件中的全部或一些元件的外殼2520,外殼2520由塑膠、金屬或多種材料的組合來構成。行動設備2500可以包括耦合至處理器2502的電源2522,諸如一次性或可充電電池。可充電電池亦可以耦合至周邊設備連接埠以從行動設備2500外部的源接收充電電流。行動設備2500亦可包括實體按鈕2524以用於接收使用者輸入。行動設備2500亦可包括用於開啟和關閉行動設備2500的電源按鈕2526。
以上所描述的各個態樣亦可在各種行動設備(諸如圖26中所圖示的膝上型電腦2600)內實現。許多膝上型電腦包括擔當電腦的定點設備的觸控板觸摸表面2617,並且由此可接收與在裝備有觸控式螢幕顯示器的行動計算裝置以及上述計算設備上實現的拖曳、滾動和輕擊手勢類似的拖曳、滾動和輕擊手勢。膝上型電腦2600將通常包括耦合至揮發性記憶體2612和大容量非揮發性記憶體(諸如快閃記憶體的磁碟機2613)的處理器2611。另外,電腦2600可具有用於發送和接收電磁輻射的一或多個天線2608,這一或多個天線2608可連接至無線資料連結及/或耦合至處理器2611的蜂巢式電話收 發機2616。電腦2600亦可包括耦合至處理器2611的軟碟機2614和壓縮光碟(CD)驅動器2615。在筆記本配置中,電腦外殼包括均耦合至處理器2611的觸控板2617、鍵盤2618、和顯示器2619。計算設備的其他配置可包括耦合至處理器(例如,經由USB輸入)的電腦滑鼠或軌跡球(這亦是公知的),這亦可結合各態樣來使用。
用於在可程式設計處理器上執行以實施各種態樣的操作的電腦程式代碼或「程式碼」可用高級程式設計語言(諸如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic)、結構化查詢語言(例如Transact-SQL)、Perl、或以各種其他程式設計語言來編寫。如本案中所使用的儲存在電腦可讀取儲存媒體上的程式碼或程式可指其格式能被處理器理解的機器語言碼(諸如,物件碼)。
操作系統核心的許多計算設備被組織成使用者空間(其中執行非授權代碼)和核心空間(其中執行授權代碼)。這種分離在Android和其他通用公共許可(GPL)環境中是尤其重要的,在GPL環境中,作為核心空間的一部分的代碼必須得到GPL許可,而在使用者空間中執行的代碼可不被GPL許可。應理解,此處論述的各種軟體元件/模組可在核心空間或使用者空間中的任一者中實現,除非另有明確聲明。
上述方法描述和程序流程圖僅作為說明性實例提供,且並非意欲要求或暗示各個態樣的操作必須按所提供的次序來執行。如本發明所屬領域中具有通常知識者將領會的,前述各態樣中的操作次序可按任何次序來執行。諸如「其後 」、「隨後」、「接著」等的措辭並非意欲限定操作的次序;這些措辭僅是簡單地用以指引讀者遍歷方法的描述。進一步,對單數形式的請求項元素的任何引述,例如使用冠詞「一」、「某」或「該」的引述不應解釋為將該元素限定為單數。
結合各個態樣來描述的各種說明性邏輯區塊、模組、電路、和演算法操作可實現為電子硬體、電腦軟體、或這兩者的組合。為清楚地圖示硬體與軟體的這一可互換性,各種說明性元件、方塊、模組、電路、和操作在上面是以其功能性的形式作一般化描述的。此類功能性是被實現為硬體還是軟體取決於具體應用和施加於整體系統的設計約束。技藝人士對於每種特定應用可用不同的方式來實現所描述的功能性,但此類實現決策不應被解讀成導致脫離了本發明的範疇。
用於實現結合本文中揭示的態樣描述的各種說明性邏輯、邏輯區塊、模組、以及電路的硬體可利用設計成執行本文中描述的功能的通用處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯裝置、個別閘或電晶體邏輯、個別的硬體元件、或其任何組合來實現或執行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何習知的處理器、控制器、微控制器、或狀態機。處理器亦可以被實現為計算設備的組合,例如DSP與微處理器的組合、複數個微處理器、與DSP核心協同的一或多個微處理器、或任何其他此類配置。替代地,一些操作或方法可由專用於給定功能的電路 系統來執行。
在一或多個態樣中,所描述的功能可在硬體、軟體、韌體或其任何組合中實現。若在軟體中實現,則這些功能可作為一或多個指令或代碼儲存在非瞬態電腦可讀取媒體或非瞬態處理器可讀取媒體上。本文中揭示的方法或演算法的操作可在處理器可執行軟體模組中實施,該處理器可執行軟體模組可常駐在非瞬態電腦可讀或處理器可讀儲存媒體上。非瞬態電腦可讀或處理器可讀儲存媒體可以是能被電腦或處理器存取的任何儲存媒體。作為實例而非限定,此類非瞬態電腦可讀或處理器可讀取媒體可包括RAM、ROM、EEPROM、快閃記憶體、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置、或能被用來儲存指令或資料結構形式的期望程式碼且能被電腦存取的任何其他媒體。如本文中所使用的盤(disk)和碟(disc)包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中盤(disk)往往以磁的方式再現資料而碟(disc)用鐳射以光學方式再現資料。以上的組合亦被包括在非瞬態電腦可讀和處理器可讀取媒體的範疇內。另外,方法或演算法的操作可作為一條代碼及/或指令或者任何代碼及/或指令組合或集合而常駐在可被納入電腦程式產品中的非瞬態處理器可讀取媒體及/或電腦可讀取媒體上。
提供了以上對所公開態樣的描述是為了使得本發明所屬領域中任何具有通常知識者皆能夠製作或使用本發明。對這些態樣的各種修改容易為本發明所屬領域中具有通常知 識者所顯見,並且本文所定義的普適原理可被應用於其他態樣而不會脫離本發明的精神或範疇。由此,本發明並非意欲限定於本文中示出的態樣,而是應被授予與所附請求項和本文中揭示的原理和新穎特徵一致的最廣義的範疇。
1900‧‧‧方法
1902‧‧‧方塊
1904‧‧‧方塊
1906‧‧‧方塊
1908‧‧‧方塊
1910‧‧‧方塊
1912‧‧‧方塊
1914‧‧‧方塊
1916‧‧‧方塊
1918‧‧‧方塊
1920‧‧‧方塊

Claims (36)

  1. 一種用於劃分一系統快取記憶體的方法,包括以下步驟:載入配置成儲存與一集合移位特性、一集合偏移特性和一目標通道特性相關的複數個分量快取記憶體識別符的一分量快取記憶體配置表,該集合移位特性被配置成指示該系統快取記憶體中的集合群的一數目,該集合偏移特性被配置成指示一分量快取記憶體所位於的一集合群,該目標通道特性被配置成指示該分量快取記憶體所位於的一或多個通道,其中該集合移位特性大於0指示由複數個集合群劃分的一分量快取記憶體;從一客戶端接收包括一分量快取記憶體識別符的一系統快取記憶體存取請求;從該分量快取記憶體配置表中檢索與該分量快取記憶體配置表中的該分量快取記憶體識別符相關的一集合移位特性、一集合偏移特性和一目標通道特性;及將系統快取記憶體位置劃分成由該集合移位特性、該集合偏移特性和該目標通道特性定義的該分量快取記憶體。
  2. 如請求項1之方法,其中從該客戶端接收包括該分量快取記憶體識別符的該系統快取記憶體存取請求包括接收該系統快取記憶體的一實體位址和一定製索引。
  3. 如請求項2之方法,進一步包括以下步驟: 從該分量快取記憶體配置表中檢索與該分量快取記憶體配置表中的該分量快取記憶體識別符相關的一索引模式;決定該索引模式指示實體索引還是定製索引;將該系統快取記憶體的該實體位址轉譯成該分量快取記憶體的一實體位址;及存取該分量快取記憶體的該實體位址以從該分量快取記憶體的該實體位址讀取或者寫入該分量快取記憶體的該實體位址。
  4. 如請求項3之方法,其中將該系統快取記憶體的該實體位址轉譯成該分量快取記憶體的該實體位址包括以下步驟:將該系統快取記憶體的該實體位址的一集合索引的一第一組位元與該系統快取記憶體的該實體位址的一標籤相組合,其中該集合索引的該第一組位元的一數目是經由該集合移位特性的一值來決定的;用該集合偏移特性的一值來取代該集合索引的該第一組位元;及在決定該索引模式指示定製索引時,用一定製索引來取代該集合索引的一第二組位元。
  5. 如請求項1之方法,其中從該客戶端接收包括該分量快取記憶體識別符的該系統快取記憶體請求包括以下步驟:接收該分量快取記憶體的一或多個特性;及更新該分量快取記憶體配置表中的同所接收到的與該分 量快取記憶體識別符相關的該一或多個特性相對應的一或多個特性。
  6. 如請求項1之方法,進一步包括以下步驟:決定在該分量快取記憶體配置表中是否存在該分量快取記憶體識別符;及回應於決定在該分量快取記憶體配置表中不存在該分量快取記憶體識別符而在該分量快取記憶體配置表中建立關於該分量快取記憶體識別符的一記錄。
  7. 如請求項1之方法,進一步包括以下步驟:在一計算設備的一引導時間載入該分量快取記憶體配置表;及在該所載入的分量快取記憶體配置表中包括該集合移位特性、該集合偏移特性和該目標通道特性的所有可能組合,其中每一組合與一不同的分量快取記憶體識別符相關。
  8. 如請求項1之方法,進一步包括以下步驟:在執行時間根據每個分量快取記憶體的該目標通道特性來靜態地或動態地定製每個分量快取記憶體的一關聯性;及根據每個分量快取記憶體的一替換策略特性來定製每個分量快取記憶體的一替換策略。
  9. 如請求項1之方法,進一步包括定製每個分量快取記憶體 的一快取記憶體線大小。
  10. 一種計算設備,包括:一處理器;連接至該處理器的一系統快取記憶體,該系統快取記憶體被配置成提供用於儲存和檢索資料的快速存取;通訊地連接至該處理器和該系統快取記憶體的一系統快取記憶體控制器,該快取記憶體控制器被配置成執行操作,該等操作包括:載入配置成儲存與一集合移位特性、一集合偏移特性和一目標通道特性相關的複數個分量快取記憶體識別符的一分量快取記憶體配置表,該集合移位特性被配置成指示該系統快取記憶體中的集合群的一數目,該集合偏移特性被配置成指示一分量快取記憶體所位於的一集合群,該目標通道特性被配置成指示該分量快取記憶體所位於的一或多個通道,其中該集合移位特性大於0指示由複數個集合群劃分的一分量快取記憶體;從一客戶端接收包括一分量快取記憶體識別符的一系統快取記憶體存取請求;從該分量快取記憶體配置表檢索與該分量快取記憶體配置表中的該分量快取記憶體識別符相關的一集合移位特性、一集合偏移特性和一目標通道特性;及將系統快取記憶體位置劃分成由該集合移位特性、該集合偏移特性和該目標通道特性定義的該分量快取記憶 體。
  11. 如請求項10之計算設備,其中該系統快取記憶體控制器被進一步配置成執行操作,以使得從該客戶端接收包括該分量快取記憶體識別符的該系統快取記憶體存取請求包括接收該系統快取記憶體的一實體位址和一定製索引。
  12. 如請求項11之計算設備,其中該系統快取記憶體控制器被配置成執行進一步包括以下操作的操作:從該分量快取記憶體配置表中檢索與該分量快取記憶體配置表中的該分量快取記憶體識別符相關的一索引模式;決定該索引模式指示實體索引還是定製索引;將該系統快取記憶體的該實體位址轉譯成該分量快取記憶體的一實體位址;及存取該分量快取記憶體的該實體位址以從該分量快取記憶體的該實體位址讀取或者寫入該分量快取記憶體的該實體位址。
  13. 如請求項12之計算設備,其中該系統快取記憶體控制器被配置成執行操作,以使得將該系統快取記憶體的該實體位址轉譯成該分量快取記憶體的該實體位址包括:將該系統快取記憶體的該實體位址的一集合索引的一第一組位元與該系統快取記憶體的該實體位址的一標籤相組合,其中該集合索引的該第一組位元的一數目是經由該集合移 位特性的一值來決定的;用該集合偏移特性的一值來取代該集合索引的該第一組位元;及在決定該索引模式指示定製索引時,用一定製索引來取代該集合索引的一第二組位元。
  14. 如請求項10之計算設備,其中該系統快取記憶體控制器被配置成執行操作,以使得從該客戶端接收包括該分量快取記憶體識別符的該系統快取記憶體存取請求包括:接收該分量快取記憶體的一或多個特性;更新該分量快取記憶體配置表中的同所接收到的與該分量快取記憶體識別符相關的該一或多個特性相對應的一或多個特性。
  15. 如請求項10之計算設備,其中該系統快取記憶體控制器被配置成執行進一步包括以下操作的操作:決定在該分量快取記憶體配置表中是否存在該分量快取記憶體識別符;及回應於決定在該分量快取記憶體配置表中不存在該分量快取記憶體識別符而在該分量快取記憶體配置表中建立關於該分量快取記憶體識別符的一記錄。
  16. 如請求項10之計算設備,其中該系統快取記憶體控制器被配置成執行進一步包括以下操作的操作: 在一計算設備的一引導時間載入該分量快取記憶體配置表;及在該所載入的分量快取記憶體配置表中包括該集合移位特性、該集合偏移特性和該目標通道特性的所有可能組合,其中每一組合與一不同的分量快取記憶體識別符相關。
  17. 如請求項10之計算設備,其中該系統快取記憶體控制器被配置成執行進一步包括以下操作的操作:在執行時間根據每個分量快取記憶體的該目標通道特性來靜態地或動態地定製每個分量快取記憶體的一關聯性;及根據每個分量快取記憶體的一替換策略特性來定製每個分量快取記憶體的一替換策略。
  18. 如請求項10之計算設備,其中該系統快取記憶體控制器被配置成執行進一步包括以下操作的操作:定製每個分量快取記憶體的一快取記憶體線大小。
  19. 一種其上儲存有處理器可執行軟體指令的非瞬態處理器可讀取媒體,該等指令用於使一處理器和一系統快取記憶體控制器執行操作,該等操作包括:載入配置成儲存與一集合移位特性、一集合偏移特性和一目標通道特性相關的複數個分量快取記憶體識別符的一分量快取記憶體配置表,該集合移位特性被配置成指示一系統快取記憶體中的集合群的一數目,該集合偏移特性被配置成 指示一分量快取記憶體所位於的一集合群,該目標通道特性被配置成指示該分量快取記憶體所位於的一或多個通道,其中該集合移位特性大於0指示由複數個集合群劃分的一分量快取記憶體;從一客戶端接收包括一分量快取記憶體識別符的一系統快取記憶體存取請求;從該分量快取記憶體配置表檢索與該分量快取記憶體配置表中的該分量快取記憶體識別符相關的一集合移位特性、一集合偏移特性和一目標通道特性;及將系統快取記憶體位置劃分成由該集合移位特性、該集合偏移特性和該目標通道特性定義的該分量快取記憶體。
  20. 如請求項19之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該處理器和系統快取記憶體控制器執行操作,以使得從該客戶端接收包括該分量快取記憶體識別符的該系統快取記憶體存取請求包括接收該系統快取記憶體的一實體位址和一定製索引。
  21. 如請求項20之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該處理器和系統快取記憶體控制器執行進一步包括以下操作的操作:從該分量快取記憶體配置表中檢索與該分量快取記憶體配置表中的該分量快取記憶體識別符相關的一索引模式;決定該索引模式指示實體索引還是定製索引; 將該系統快取記憶體的該實體位址轉譯成該分量快取記憶體的一實體位址;及存取該分量快取記憶體的該實體位址以從該分量快取記憶體的該實體位址讀取或者寫入該分量快取記憶體的該實體位址。
  22. 如請求項21之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該處理器和系統快取記憶體控制器執行操作,以使得將該系統快取記憶體的該實體位址轉譯成該分量快取記憶體的該實體位址包括:將該系統快取記憶體的該實體位址的一集合索引的一第一組位元與該系統快取記憶體的該實體位址的一標籤相組合,其中該集合索引的該第一組位元的一數目是經由該集合移位的一值來決定的;用該集合偏移特性的一值來取代該集合索引的該第一組位元;及在決定該索引模式指示定製索引時,用一定製索引來取代該集合索引的一第二組位元。
  23. 如請求項19之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該處理器和系統快取記憶體控制器執行操作,以使得從該客戶端接收包括該分量快取記憶體識別符的該系統快取記憶體存取請求包括:接收該分量快取記憶體的一或多個特性; 更新該分量快取記憶體配置表中的同所接收到的與該分量快取記憶體識別符相關的該一或多個特性相對應的一或多個特性。
  24. 如請求項19之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該處理器和系統快取記憶體控制器執行進一步包括以下操作的操作:決定在該分量快取記憶體配置表中是否存在該分量快取記憶體識別符;及回應於決定在該分量快取記憶體配置表中不存在該分量快取記憶體識別符而在該分量快取記憶體配置表中建立關於該分量快取記憶體識別符的一記錄。
  25. 如請求項19之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該處理器和系統快取記憶體控制器執行進一步包括以下操作的操作:在一計算設備的一引導時間載入該分量快取記憶體配置表;及在該所載入的分量快取記憶體配置表中包括該集合移位特性、該集合偏移特性和該目標通道特性的所有可能組合,其中每一組合與一不同的分量快取記憶體識別符相關。
  26. 如請求項19之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該處理器和系統快取 記憶體控制器執行進一步包括以下操作的操作:在執行時間根據每個分量快取記憶體的該目標通道特性來靜態地或動態地定製每個分量快取記憶體的一關聯性;及根據每個分量快取記憶體的一替換策略特性來定製每個分量快取記憶體的一替換策略。
  27. 如請求項19之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成使該處理器和系統快取記憶體控制器執行進一步包括以下操作的操作:定製每個分量快取記憶體的一快取記憶體線大小。
  28. 一種計算設備,包括:用於載入配置成儲存與一集合移位特性、一集合偏移特性和一目標通道特性相關的複數個分量快取記憶體識別符的一分量快取記憶體配置表的裝置,該集合移位特性被配置成指示一系統快取記憶體中的集合群的一數目,該集合偏移特性被配置成指示一分量快取記憶體所位於的一集合群,該目標通道特性被配置成指示該分量快取記憶體所位於的一或多個通道,其中該集合移位特性大於0指示由複數個集合群劃分的一分量快取記憶體;用於從一客戶端接收包括一分量快取記憶體識別符的一系統快取記憶體存取請求的裝置;用於從該分量快取記憶體配置表檢索與該分量快取記憶體配置表中的該分量快取記憶體識別符相關的一集合移位特 性、一集合偏移特性和一目標通道特性的裝置;及用於將系統快取記憶體位置劃分成由該集合移位特性、該集合偏移特性和該目標通道特性定義的該分量快取記憶體的裝置。
  29. 如請求項28之計算設備,其中用於從該客戶端接收包括該分量快取記憶體識別符的該系統快取記憶體存取請求的裝置包括用於接收該系統快取記憶體的一實體位址和一定製索引的裝置。
  30. 如請求項29之計算設備,進一步包括:用於從該分量快取記憶體配置表中檢索與該分量快取記憶體配置表中的該分量快取記憶體識別符相關的一索引模式的裝置;用於決定該索引模式指示實體索引還是定製索引的裝置;用於將該系統快取記憶體的該實體位址轉譯成該分量快取記憶體的一實體位址的裝置;及用於存取該分量快取記憶體的該實體位址以從該分量快取記憶體的該實體位址讀取或者寫入該分量快取記憶體的該實體位址的裝置。
  31. 如請求項30之計算設備,其中用於將該系統快取記憶體的該實體位址轉譯成該分量快取記憶體的該實體位址的裝置 包括:用於將該系統快取記憶體的該實體位址的一集合索引的一第一組位元與該系統快取記憶體的該實體位址的一標籤相組合的裝置,其中該集合索引的該第一組位元的一數目是經由該集合移位特性的一值來決定的;用於用該集合偏移特性的一值來取代該集合索引的該第一組位元的裝置;及用於在決定該索引模式指示定製索引時,用一定製索引來取代該集合索引的一第二組位元的裝置。
  32. 如請求項28之計算設備,其中用於從該客戶端接收包括該分量快取記憶體識別符的該系統快取記憶體請求的裝置包括:用於接收該分量快取記憶體的一或多個特性的裝置;用於更新該分量快取記憶體配置表中的同所接收到的與該分量快取記憶體識別符相關的該一或多個特性相對應的一或多個特性的裝置。
  33. 如請求項28之計算設備,進一步包括:用於決定在該分量快取記憶體配置表中是否存在該分量快取記憶體識別符的裝置;及用於回應於決定在該分量快取記憶體配置表中不存在該分量快取記憶體識別符而在該分量快取記憶體配置表中建立關於該分量快取記憶體識別符的一記錄的裝置。
  34. 如請求項28之計算設備,進一步包括:用於在一計算設備的一引導時間載入該分量快取記憶體配置表的裝置;及用於在該所載入的分量快取記憶體配置表中包括該集合移位特性、該集合偏移特性和該目標通道特性的所有可能組合,其中每一組合與一不同的分量快取記憶體識別符相關的裝置。
  35. 如請求項28之計算設備,進一步包括:用於在執行時間根據每個分量快取記憶體的該目標通道特性來靜態地或動態地定製每個分量快取記憶體的一關聯性的裝置;及用於根據每個分量快取記憶體的一替換策略特性來定製每個分量快取記憶體的一替換策略的裝置。
  36. 如請求項28之計算設備,進一步包括用於定製每個分量快取記憶體的一快取記憶體線大小的裝置。
TW104122750A 2014-07-17 2015-07-14 用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置 TWI610172B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/333,981 US9612970B2 (en) 2014-07-17 2014-07-17 Method and apparatus for flexible cache partitioning by sets and ways into component caches
US14/333,981 2014-07-17

Publications (2)

Publication Number Publication Date
TW201617891A true TW201617891A (zh) 2016-05-16
TWI610172B TWI610172B (zh) 2018-01-01

Family

ID=55074693

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104122750A TWI610172B (zh) 2014-07-17 2015-07-14 用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置

Country Status (6)

Country Link
US (1) US9612970B2 (zh)
EP (1) EP3170085B1 (zh)
JP (1) JP6214815B2 (zh)
CN (1) CN106537361B (zh)
TW (1) TWI610172B (zh)
WO (1) WO2016010706A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI636363B (zh) * 2017-08-08 2018-09-21 慧榮科技股份有限公司 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2547191B (en) * 2016-02-05 2020-01-08 Advanced Risc Mach Ltd An apparatus and method for supporting multiple cache features
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
CN109508302B (zh) * 2017-09-14 2023-04-18 华为技术有限公司 一种内容填充方法和存储器
CN107861819B (zh) * 2017-12-07 2021-07-16 郑州云海信息技术有限公司 一种缓存组负载均衡的方法、装置和计算机可读存储介质
US10747679B1 (en) * 2017-12-11 2020-08-18 Amazon Technologies, Inc. Indexing a memory region
US10915326B1 (en) 2019-07-31 2021-02-09 Micron Technology, Inc. Cache systems and circuits for syncing caches or cache sets
US11048636B2 (en) 2019-07-31 2021-06-29 Micron Technology, Inc. Cache with set associativity having data defined cache sets
US11194582B2 (en) 2019-07-31 2021-12-07 Micron Technology, Inc. Cache systems for main and speculative threads of processors
US11200166B2 (en) 2019-07-31 2021-12-14 Micron Technology, Inc. Data defined caches for speculative and normal executions
US10908915B1 (en) 2019-07-31 2021-02-02 Micron Technology, Inc. Extended tags for speculative and normal executions
US11010288B2 (en) 2019-07-31 2021-05-18 Micron Technology, Inc. Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution
CN116185886B (zh) * 2022-12-13 2023-10-13 中国科学院声学研究所 一种匹配表系统
CN117234431B (zh) * 2023-11-14 2024-02-06 苏州元脑智能科技有限公司 缓存管理方法、装置、电子设备及存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01251386A (ja) * 1988-03-30 1989-10-06 Toshiba Corp システム拡張方式
JPH05324468A (ja) 1992-05-21 1993-12-07 Fujitsu Ltd 階層化キャッシュメモリ
US5434992A (en) 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5479627A (en) 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
US5781926A (en) 1996-05-20 1998-07-14 Integrated Device Technology, Inc. Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of line fill
JP3834323B2 (ja) * 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
US7558920B2 (en) 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
JP4336848B2 (ja) * 2004-11-10 2009-09-30 日本電気株式会社 マルチポートキャッシュメモリ及びマルチポートキャッシュメモリのアクセス制御方式
JP2007034514A (ja) * 2005-07-25 2007-02-08 Fuji Xerox Co Ltd 情報処理装置
US7430145B2 (en) * 2005-09-16 2008-09-30 Hewlett-Packard Development Company, L.P. System and method for avoiding attempts to access a defective portion of memory
US20070143550A1 (en) * 2005-12-19 2007-06-21 Intel Corporation Per-set relaxation of cache inclusion
US7613898B2 (en) 2006-01-17 2009-11-03 Globalfoundries Inc. Virtualizing an IOMMU
US20070239661A1 (en) 2006-03-28 2007-10-11 Sun Microsystems, Inc. Systems and methods for a distributed in-memory database and distributed cache
US7685401B2 (en) 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system
US8285757B2 (en) * 2007-01-31 2012-10-09 Agency For Science, Technology And Research File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
CN101135994B (zh) * 2007-09-07 2010-06-23 杭州华三通信技术有限公司 一种划分缓存空间的方法和装置以及缓存控制器
CN100492323C (zh) * 2007-09-10 2009-05-27 杭州华三通信技术有限公司 对缓存内容进行保护的方法和装置以及缓存控制器
TWI382426B (zh) * 2007-10-04 2013-01-11 Realtek Semiconductor Corp 預測快取記憶體之存取位置的方法及系統
US8055847B2 (en) * 2008-07-07 2011-11-08 International Business Machines Corporation Efficient processing of data requests with the aid of a region cache
US20100115233A1 (en) 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
CN101482851B (zh) * 2008-12-31 2011-02-16 中国科学院计算技术研究所 二进制翻译器中线程共享目标本地码缓存替换方法及系统
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
US20120198159A1 (en) * 2009-10-14 2012-08-02 Panasonic Corporation Information processing device
US8533399B2 (en) 2010-01-15 2013-09-10 International Business Machines Corporation Cache directory look-up re-use as conflict check mechanism for speculative memory requests
US8386749B2 (en) 2010-03-16 2013-02-26 Advanced Micro Devices, Inc. Address mapping in virtualized processing system
JP2012203729A (ja) 2011-03-25 2012-10-22 Fujitsu Ltd 演算処理装置および演算処理装置の制御方法
US8813085B2 (en) 2011-07-19 2014-08-19 Elwha Llc Scheduling threads based on priority utilizing entitlement vectors, weight and usage level
US9098418B2 (en) * 2012-03-20 2015-08-04 Apple Inc. Coordinated prefetching based on training in hierarchically cached processors
JP5776821B2 (ja) * 2013-08-26 2015-09-09 富士ゼロックス株式会社 情報処理装置、演算処理装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI636363B (zh) * 2017-08-08 2018-09-21 慧榮科技股份有限公司 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器
US10310746B2 (en) 2017-08-08 2019-06-04 Silicon Motion Inc. Method, associated memory device and controller thereof for performing dynamic resource management

Also Published As

Publication number Publication date
US20160019157A1 (en) 2016-01-21
EP3170085A1 (en) 2017-05-24
US9612970B2 (en) 2017-04-04
JP6214815B2 (ja) 2017-10-18
WO2016010706A1 (en) 2016-01-21
JP2017527884A (ja) 2017-09-21
CN106537361B (zh) 2018-09-28
CN106537361A (zh) 2017-03-22
EP3170085B1 (en) 2018-08-15
TWI610172B (zh) 2018-01-01

Similar Documents

Publication Publication Date Title
TWI610172B (zh) 用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置
CN106537360B (zh) 用于具有动态分区的共享高速缓存的方法和装置
EP3295315B1 (en) Method and apparatus for virtualized control of a shared system cache
TWI556099B (zh) 用於高效能和低成本快閃記憶體轉換層的系統和方法
JP6496626B2 (ja) 異種統合メモリ部及びその拡張統合メモリスペース管理方法
US9075730B2 (en) Mechanisms to bound the presence of cache blocks with specific properties in caches
US11263149B2 (en) Cache management of logical-physical translation metadata
US9195579B2 (en) Page replacement method and memory system using the same
US10503647B2 (en) Cache allocation based on quality-of-service information
US20190073305A1 (en) Reuse Aware Cache Line Insertion And Victim Selection In Large Cache Memory
US20200004687A1 (en) Performance By Retaining High Locality Data In Higher Level Cache Memory
US20190087344A1 (en) Reducing Clean Evictions In An Exclusive Cache Memory Hierarchy
US9858196B2 (en) Power aware padding
KR20160110514A (ko) 오프-다이 캐시 메모리의 태그들의 세트들을 캐시하기 위한 방법, 장치, 및 시스템
CN117940908A (zh) 动态分配高速缓存存储器作为ram
US11714753B2 (en) Methods and nodes for handling memory

Legal Events

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