TW201441817A - 資料緩存系統及方法 - Google Patents
資料緩存系統及方法 Download PDFInfo
- Publication number
- TW201441817A TW201441817A TW102114468A TW102114468A TW201441817A TW 201441817 A TW201441817 A TW 201441817A TW 102114468 A TW102114468 A TW 102114468A TW 102114468 A TW102114468 A TW 102114468A TW 201441817 A TW201441817 A TW 201441817A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- state
- weight value
- cache memory
- read
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
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
本發明提供一種資料緩存系統及方法。該系統與一緩存記憶體連接及一中央處理單元CPU連接,該緩存記憶體內資料利用一權重值進行標記,用於表示該資料在緩存記憶體中被讀取的次數。該系統包含:一接收模組,用於接收CPU發送的讀取資料請求;一讀取模組,用於根據讀取資料請求讀取對應的資料;一權重值計算模組,用於快取命中時將緩存記憶體內讀取的資料的權重值加1,在緩存記憶體的空間滿時,處於權重值為零的資料在下次需進行緩存記憶體替換時被隨機選擇若干進行替換。
Description
本發明涉及一種資料緩存系統及方法,尤其涉及一種讀取緩存記憶體內最經常使用內容的資料緩存系統及方法。
當接收到資料讀取請求時,緩存記憶體讀取速度較快,因此首先去緩存記憶體中讀取資料。 若所需讀取內容已經在緩存記憶體內,則叫“緩存命中”(cache hit)。若所需讀取內容不在緩存記憶體內,則叫“緩存錯失”(cache miss)。當發生緩存錯失時,需從主記憶體內讀取內容,並將讀取到的內容存儲至緩存記憶體內以提高下次讀取的速度。由於緩存記憶體(cache)記憶體通常比它們耦合到的主記憶體小,因此若緩存記憶體空間滿時,需要及時替換其中的部分內容,這時,需要使用替換演算法用於確定應該替換緩存記憶體中的哪些內容。
應用到NAND記憶體(如SSD)上的常用的緩存記憶體替換演算法為先進先出(FIFO)演算法及最近最少使用(least recently used,LRU)演算法。但是,由於這些演算法是快取最近使用的內容,而不是最經常使用的內容,因此這些演算法存在不足之處。
有鑒於此,故需要提供一種快取緩存記憶體內最經常使用內容的資料緩存系統及方法。
一種資料緩存系統,運行於一處理器上,與一緩存記憶體連接及一中央處理單元CPU連接,該緩存記憶體內資料利用一權重值進行標記,用於表示該資料在緩存記憶體中被讀取的次數,該系統包含:一接收模組,用於接收CPU發送的讀取資料請求;一讀取模組,用於根據讀取資料請求讀取對應的資料;一權重值計算模組,用於快取命中時將緩存記憶體內讀取的資料的權重值加1,在緩存記憶體的空間滿時,處於權重值為零的資料在下次需進行緩存記憶體替換時被隨機選擇若干進行替換。
一種資料緩存方法,包含步驟:接收CPU發送的讀取資料請求;根據讀取資料請求讀取對應的資料;及在快取命中時將緩存記憶體內讀取的資料的權重值加1,在緩存記憶體的空間滿時,處於權重值為零的資料在下次需進行緩存記憶體替換時被隨機選擇若干進行替換。
本發明的資料緩存系統及方法,快取緩存記憶體內最經常使用內容而不是最近使用的內容,從而確定緩存記憶體中需替換的內容更加迅速有效。
10...緩存記憶體管理系統
20...CPU
30...緩存記憶體
40...主記憶體
101...接收模組
102...讀取模組
103...空間判斷模組
104...權重值計算模組
105...狀態確定模組
106...記錄模組
圖1為本發明優選實施方式下的緩存記憶體管理系統的系統架構圖。
圖2為圖1中的緩存記憶體管理系統執行資料緩存記憶體的方法流程圖。
請參閱圖1,為本發明優選實施方式下的緩存記憶體管理系統的系統架構圖。該緩存記憶體管理系統10為一可編程系統,運行於一處理器上。該處理器與一緩存記憶體30連接及一中央處理單元CPU20連接。緩存記憶體30將緩存記憶體管理系統10耦合至一主記憶體40。
緩存記憶體管理系統10接收CPU20的讀取指令,在緩存命中時從緩存記憶體30讀取資料,而在緩存錯失時,從主記憶體40中讀取資料,並將讀取資料存儲至緩存記憶體30。
緩存記憶體管理系統10內的資料均用一權重值進行標記,該權重值用於表示該資料在緩存記憶體30中被讀取的次數。緩存記憶體30內的資料具有5種狀態如下:權重值大於2的資料被認為處於熱狀態;權重值等於1且未寫入主記憶體40的資料被認為處於第一冷狀態;權重值等於1且已寫入硬碟的資料被認為處於第二冷狀態;權重值等於零的資料被認為處於可用/可選狀態;被替換出該緩存記憶體30的資料被存放在主記憶體40中,其定址方式被保存在緩存記憶體30中,該定址方式的資料對應的權重值為1,被認為該定址方式的資料處於暫時狀態。系統初始化時,所有緩存記憶體30內存儲的資料的權重值設置為零,即均處於可用/可選狀態。在緩存記憶體30的空間滿時,處於可用/可選狀態的資料在下次需進行緩存記憶體替換時被隨機選擇若干進行替換。
緩存記憶體管理系統10包括一接收模組101、一讀取模組102、一空間判斷模組103、一權重值計算模組104、一狀態確定模組105、一替換模組106及一記錄模組107。各模組的功能將結合圖2進行說明。
圖2為圖1中的緩存記憶體管理系統執行資料緩存記憶體的方法流程圖。
步驟S201中,接收模組101接收CPU20發送的讀取資料請求。
步驟S202中,讀取模組102確定該資料請求是否存在緩存命中。如果在步驟S202中發生了緩存命中,則控制流程至步驟203。如果在步驟S202中發生了緩存錯失,則控制流程至步驟205。
步驟S203中,權重值計算模組104將緩存記憶體30內讀取的資料的權重值加1。
步驟S204中,狀態確定模組105確定該讀取的資料對應的狀態。具體的,若讀取的資料之前處於熱狀態,則權重值加1後仍然大於2,確定該資料仍處於熱狀態;若讀取的資料之前處於第一冷狀態,則權重值加1後等於2,確定該資料處於熱狀態;若讀取的資料之前處於第二冷狀態,則權重值加1等於2後,確定該資料處於熱狀態;若讀取的資料之前處於可用/可選狀態,則權重值加1後若未寫入硬碟,則確定該資料處於第一冷狀態,權重值加1後若已寫入硬碟,則確定該資料處於第二冷狀態;在讀取的資料未在緩存記憶體30中,而該讀取的資料對應的定址方式保存在緩存記憶體30中且處於暫時狀態時,如果緩存記憶體30內具有處於可用/可選狀態的資料,則隨機從處於可用/可選狀態的資料中選擇若干資料用於替換該讀取的資料,並將該讀取的數據的權重值設置為2,處於熱狀態;及在讀取的資料未在緩存記憶體30中,而該讀取的資料對應的定址方式保存在緩存記憶體30中且處於暫時狀態時,如果緩存記憶體30內不具有處於可用/可選狀態的資料,則啟動一次權重值壓縮,並根據壓縮後的權重值按照上面的方式重新確定緩存記憶體30內的全部資料的狀態。權重值壓縮指將緩存記憶體30內的全部資料的權重值除以2後進行取整操作。
步驟S205中,空間判斷模組103判斷緩存記憶體30內存儲空間是否已滿,若否,流程至步驟S206;若是,流程至步驟S207。
步驟S206中,讀取模組102從主記憶體40讀取該內容至緩存記憶體30,流程轉至步驟S204。
步驟S207中,狀態確定模組105啟動一次權重值壓縮,重新確定緩存記憶體30內存儲的全部資料對應的狀態。具體的,若讀取的資料之前處於熱狀態,權重值壓縮後權重值仍大於2,則確定該資料仍處於熱狀態;若讀取的資料之前處於第一冷狀態,則權重值壓縮後為零,則確定需先將該資料保存至硬碟,且確定該資料處於可用/可選狀態;若讀取的資料之前處於第二冷狀態,則權重值壓縮後為零,確定該資料處於可用/可選狀態;若讀取的資料之前處於暫時狀態,則權重值壓縮後為0,若該資料未寫入硬碟,則將該資料寫入硬碟後確定該資料處於可用/可選狀態,若該資料已寫入硬碟,則確定該資料處於可用/可選狀態。
步驟S208中,讀取模組102從可用/可選狀態的資料中隨機選擇若干替換為主記憶體40讀取的資料。
步驟S209中,記錄模組106將被選擇替換的資料的定址方式記錄在緩存記憶體30內,表示該定址方式的資料的權重值等於1,處於暫時狀態。
該資料緩存系統及方法,快取緩存記憶體30內最經常使用內容而不是最近使用的內容,從而確定緩存記憶體30中需替換的內容更加迅速有效。
10...緩存記憶體管理系統
20...CPU
30...緩存記憶體
40...主記憶體
101...接收模組
102...讀取模組
103...空間判斷模組
104...權重值計算模組
105...狀態確定模組
106...記錄模組
Claims (10)
- 一種資料緩存系統,運行於一處理器上,與一緩存記憶體連接及一中央處理單元CPU連接,其改良在於,該緩存記憶體內資料利用一權重值進行標記,用於表示該資料在緩存記憶體中被讀取的次數,該系統包含:
一接收模組,用於接收CPU發送的讀取資料請求;
一讀取模組,用於根據讀取資料請求讀取對應的資料;
一權重值計算模組,用於快取命中時將緩存記憶體內讀取的資料的權重值加1,在緩存記憶體的空間滿時,處於權重值為零的資料在下次需進行緩存記憶體替換時被隨機選擇若干進行替換。 - 如申請專利範圍第1項所述之資料緩存系統,其中,所述系統還包括一狀態確定模組,用於確定該讀取的資料對應的狀態,具體的,該緩存記憶體內包括5種狀態的資料:權重值大於2的資料被認為處於熱狀態;權重值等於1且未寫入主記憶體的資料被認為處於第一冷狀態;權重值等於1且已寫入硬碟的資料被認為處於第二冷狀態;權重值等於零的資料被認為處於可用/可選狀態;權重值等於1的定址方式資料被認為處於暫時狀態,系統初始化時,所有緩存記憶體內存儲的資料的權重值設置為零,即均處於可用/可選狀態,在緩存記憶體的空間滿時,處於可用/可選狀態的資料在下次需進行緩存記憶體替換時被隨機選擇若干進行替換。
- 如申請專利範圍第2項所述之資料緩存系統,其中,所述權重值計算模組將緩存記憶體內讀取的資料的權重值加1後,狀態確定模組確定該讀取的資料對應的狀態的具體方法為:若讀取的資料之前處於熱狀態,則權重值加1後仍然大於2,確定該資料仍處於熱狀態;若讀取的資料之前處於第一冷狀態,則權重值加1後等於2,確定該資料處於熱狀態;若讀取的資料之前處於第二冷狀態,則權重值加1等於2後,確定該資料處於熱狀態;若讀取的資料之前處於可用/可選狀態,則權重值加1後若未寫入硬碟,則確定該資料處於第一冷狀態,權重值加1後若已寫入硬碟,則確定該資料處於第二冷狀態;在讀取的資料未在緩存記憶體中,而該讀取的資料對應的定址方式保存在緩存記憶體中且處於暫時狀態時,如果緩存記憶體內具有處於可用/可選狀態的資料,則隨機從處於可用/可選狀態的資料中選擇若干資料用於替換該讀取的資料,並將該讀取的數據的權重值設置為2,處於熱狀態;及在讀取的資料未在緩存記憶體中,而該讀取的資料對應的定址方式保存在緩存記憶體中且處於暫時狀態時,如果緩存記憶體內不具有處於可用/可選狀態的資料,則啟動一次權重值壓縮,並根據壓縮後的權重值按照上面的方式重新確定緩存記憶體內的全部資料的狀態,權重值壓縮指將緩存記憶體內的全部資料的權重值除以2後進行取整操作。
- 如申請專利範圍第3項所述之資料緩存系統,其中,所述狀態確定模組在啟動權重值壓縮後重新確定狀態的具體方法為:若讀取的資料之前處於熱狀態,權重值壓縮後權重值仍大於2,則確定該資料仍處於熱狀態;若讀取的資料之前處於第一冷狀態,則權重值壓縮後為零,則確定需先將該資料保存至硬碟,且確定該資料處於可用/可選狀態;若讀取的資料之前處於第二冷狀態,則權重值壓縮後為零,確定該資料處於可用/可選狀態;若讀取的資料之前處於暫時狀態,則權重值壓縮後為0,若該資料未寫入硬碟,則將該資料寫入硬碟後確定該資料處於可用/可選狀態,若該資料已寫入硬碟,則確定該資料處於可用/可選狀態。
- 如申請專利範圍第1項所述之資料緩存系統,其中,在快取錯失時且緩存記憶體空間足夠時,所述讀取模組還用於從主記憶體讀取該內容至緩存記憶體,在快取錯失時且緩存記憶體空間不足時,所述讀取模組還用於從可用/可選狀態的資料中隨機選擇若干替換為主記憶體讀取的資料。
- 如申請專利範圍第4項所述之資料緩存系統,其中,所述系統還包括一記錄模組,用以將被選擇替換的資料的定址方式記錄在緩存記憶體內,表示該定址方式的資料的權重值等於1,處於暫時狀態。
- 一種資料緩存方法,包含步驟:
接收CPU發送的讀取資料請求;
根據讀取資料請求讀取對應的資料;及
在快取命中時將緩存記憶體內讀取的資料的權重值加1,在緩存記憶體的空間滿時,處於權重值為零的資料在下次需進行緩存記憶體替換時被隨機選擇若干進行替換。 - 如申請專利範圍第7項所述之資料緩存方法,其中,所述方法還包括步驟根據一狀態確定規則確定該讀取的資料對應的狀態,具體的,該緩存記憶體內包括5種狀態的資料:權重值大於2的資料被認為處於熱狀態;權重值等於1且未寫入主記憶體的資料被認為處於第一冷狀態;權重值等於1且已寫入硬碟的資料被認為處於第二冷狀態;權重值等於零的資料被認為處於可用/可選狀態;權重值等於1的定址方式資料被認為處於暫時狀態,系統初始化時,所有緩存記憶體內存儲的資料的權重值設置為零,即均處於可用/可選狀態,在緩存記憶體的空間滿時,處於可用/可選狀態的資料在下次需進行緩存記憶體替換時被隨機選擇若干進行替換。
- 如申請專利範圍第8項所述之資料緩存方法,其中,所述將緩存記憶體內讀取的資料的權重值加1後,確定該讀取的資料對應的狀態的具體方法為:若讀取的資料之前處於熱狀態,則權重值加1後仍然大於2,確定該資料仍處於熱狀態;若讀取的資料之前處於第一冷狀態,則權重值加1後等於2,確定該資料處於熱狀態;若讀取的資料之前處於第二冷狀態,則權重值加1等於2後,確定該資料處於熱狀態;若讀取的資料之前處於可用/可選狀態,則權重值加1後若未寫入硬碟,則確定該資料處於第一冷狀態,權重值加1後若已寫入硬碟,則確定該資料處於第二冷狀態;在讀取的資料未在緩存記憶體中,而該讀取的資料對應的定址方式保存在緩存記憶體中且處於暫時狀態時,如果緩存記憶體內具有處於可用/可選狀態的資料,則隨機從處於可用/可選狀態的資料中選擇若干資料用於替換該讀取的資料,並將該讀取的數據的權重值設置為2,處於熱狀態;及在讀取的資料未在緩存記憶體中,而該讀取的資料對應的定址方式保存在緩存記憶體中且處於暫時狀態時,如果緩存記憶體內不具有處於可用/可選狀態的資料,則啟動一次權重值壓縮,並根據壓縮後的權重值按照上面的方式重新確定緩存記憶體內的全部資料的狀態,權重值壓縮指將緩存記憶體內的全部資料的權重值除以2後進行取整操作。
- 如申請專利範圍第8項所述之資料緩存方法,其中,所述在啟動權重值壓縮後重新確定狀態的具體方法為:若讀取的資料之前處於熱狀態,權重值壓縮後權重值仍大於2,則確定該資料仍處於熱狀態;若讀取的資料之前處於第一冷狀態,則權重值壓縮後為零,則確定需先將該資料保存至硬碟,且確定該資料處於可用/可選狀態;若讀取的資料之前處於第二冷狀態,則權重值壓縮後為零,確定該資料處於可用/可選狀態;若讀取的資料之前處於暫時狀態,則權重值壓縮後為0,若該資料未寫入硬碟,則將該資料寫入硬碟後確定該資料處於可用/可選狀態,若該資料已寫入硬碟,則確定該資料處於可用/可選狀態。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102114468A TW201441817A (zh) | 2013-04-23 | 2013-04-23 | 資料緩存系統及方法 |
US14/223,965 US20140317354A1 (en) | 2013-04-23 | 2014-03-24 | Electronic device, data caching system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102114468A TW201441817A (zh) | 2013-04-23 | 2013-04-23 | 資料緩存系統及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201441817A true TW201441817A (zh) | 2014-11-01 |
Family
ID=51729931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102114468A TW201441817A (zh) | 2013-04-23 | 2013-04-23 | 資料緩存系統及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140317354A1 (zh) |
TW (1) | TW201441817A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016105241A1 (en) * | 2014-12-23 | 2016-06-30 | Emc Corporation | Selective compression in data storage systems |
CN113342504B (zh) * | 2021-07-02 | 2023-04-21 | 西安邮电大学 | 基于缓存的智能制造边缘计算任务调度方法及*** |
CN114063923A (zh) * | 2021-11-17 | 2022-02-18 | 海光信息技术股份有限公司 | 数据读取方法、装置、处理器及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7568072B2 (en) * | 2006-08-31 | 2009-07-28 | Arm Limited | Cache eviction |
US8335122B2 (en) * | 2007-11-21 | 2012-12-18 | The Regents Of The University Of Michigan | Cache memory system for a data processing apparatus |
JP5999645B2 (ja) * | 2009-09-08 | 2016-10-05 | ロンギチュード エンタープライズ フラッシュ エスエイアールエル | ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法 |
US8788757B2 (en) * | 2011-12-09 | 2014-07-22 | International Business Machines Corporation | Dynamic inclusive policy in a hybrid cache hierarchy using hit rate |
-
2013
- 2013-04-23 TW TW102114468A patent/TW201441817A/zh unknown
-
2014
- 2014-03-24 US US14/223,965 patent/US20140317354A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20140317354A1 (en) | 2014-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6613375B2 (ja) | プロファイリングキャッシュ置換 | |
JP6514569B2 (ja) | データ処理装置における動的なキャッシュ・アロケーション・ポリシーの適応 | |
US8949544B2 (en) | Bypassing a cache when handling memory requests | |
US20110231598A1 (en) | Memory system and controller | |
JP5762930B2 (ja) | 情報処理装置および半導体記憶装置 | |
JP5117608B1 (ja) | 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法 | |
JP2017516234A5 (zh) | ||
JP6711121B2 (ja) | 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム | |
KR20170129701A (ko) | 캐시 삽입을 위한 기준으로서 데이터의 압축률을 사용하는 것에 의한 스토리지 캐시 성능 향상 | |
US10185619B2 (en) | Handling of error prone cache line slots of memory side cache of multi-level system memory | |
JPWO2020243098A5 (zh) | ||
JP7030942B2 (ja) | メモリ装置及びその制御方法 | |
US20140164712A1 (en) | Data processing apparatus and control method thereof | |
JP7160792B2 (ja) | キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 | |
US20040148465A1 (en) | Method and apparatus for reducing the effects of hot spots in cache memories | |
US9996478B1 (en) | No allocate cache policy | |
TW201441817A (zh) | 資料緩存系統及方法 | |
US10083117B2 (en) | Filtering write request sequences | |
JP6689325B2 (ja) | メモリ装置の制御方法 | |
JP6595654B2 (ja) | 情報処理装置 | |
CN104123243B (zh) | 数据缓存***及方法 | |
US9934150B1 (en) | Data caching circuit and method | |
KR20220033976A (ko) | 저장 디바이스들에 대한 강화된 선판독 능력 | |
US20140281157A1 (en) | Memory system, memory controller and method | |
More et al. | Dynamic Cache Resizing in Flashcache |