TW201432451A - 用於改善輸入輸出效能之調節資料快取速率之方法 - Google Patents

用於改善輸入輸出效能之調節資料快取速率之方法 Download PDF

Info

Publication number
TW201432451A
TW201432451A TW102130922A TW102130922A TW201432451A TW 201432451 A TW201432451 A TW 201432451A TW 102130922 A TW102130922 A TW 102130922A TW 102130922 A TW102130922 A TW 102130922A TW 201432451 A TW201432451 A TW 201432451A
Authority
TW
Taiwan
Prior art keywords
cache
data
entity
window
recently used
Prior art date
Application number
TW102130922A
Other languages
English (en)
Inventor
Vinay Bangalore Shivashankaraiah
Netra Gopinath
Original Assignee
Lsi Corp
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 Lsi Corp filed Critical Lsi Corp
Publication of TW201432451A publication Critical patent/TW201432451A/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk 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
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

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

本發明描述一種快取裝置,該快取裝置用於快取資料且具體而言用於識別該快取裝置內之陳舊資料或一顛簸(thrashing)事件。進一步描述一種用於在一顛簸事件期間排定快取裝置中之快取資料之優先級的快取裝置以及該快取裝置中之陳舊快取資料。亦描述與使用該快取裝置快取資料及識別一顛簸事件中之資料或識別陳舊快取資料相關聯之方法。

Description

用於改善輸入輸出效能之調節資料快取速率之方法
本發明大體上係關於電腦系統且更特定而言係關於儲存系統。
儲存裝置或快取裝置容許資料儲存於一系統中以容許在將來更快且更有效率地存取該資料。當資料儲存在一儲存裝置或快取裝置中時,若在一段時間內該資料未被存取,則該資料將變為陳舊。在一些情況中,將需要被快取於一快取裝置中之資料將大於該快取裝置之容量。在此等情況中,該快取裝置可開始快取資料以及移除較舊資料(該資料將需要重新快取),從而產生快取及丟棄同一資料之一連續循環,稱之為顛簸現象(thrashing)。
本發明之一實施例可包括一種用於在熱門資料之量超過一快取裝置之儲存容量時將資料儲存至該快取裝置上之方法,該方法包括:使用一最近最少使用之佇列區塊監測對儲存於快取裝置中之一或多個實體快取視窗中之資料之引用;將儲存於該一或多個實體快取視窗中之資料排定優先級至最近最少使用之佇列區塊中之一最近最少使用之佇列;基於一特定時間段期間對一或多個實體快取視窗中之資料之引用數目將一或多個實體快取視窗升級至最近最少使用之佇列區塊中之一較高優先級最近最少使用之佇列;當資料在某一時間段期間未被存 取時將一或多個實體快取視窗降級至最近最少使用之佇列區塊中之一較低優先級最近最少使用之佇列;及使用最近最少使用之佇列區塊中之一或多個計數器監測該快取裝置中之經降級實體快取視窗之數目。
本發明之一實施例可進一步包括一快取裝置,該快取裝置包括:至少一虛擬快取視窗;至少一實體快取視窗;一最近最少使用之佇列區塊,其與該至少一實體快取視窗通信;及一散列表,其與該最近最少使用之佇列區塊通信,且其中該最近最少使用之佇列區塊包括至少兩個最近最少使用之佇列、至少兩個計數器及一全域計數器。
100‧‧‧方塊圖
102‧‧‧快取裝置/快閃儲存裝置
104‧‧‧實體快取視窗/實體快取視窗結構
106‧‧‧實體快取視窗/實體快取視窗結構
108‧‧‧實體快取視窗/實體快取視窗結構
110‧‧‧實體快取視窗/實體快取視窗結構
112‧‧‧主機/硬碟
114‧‧‧輸入/輸出(I/O)資料
116‧‧‧通用輸入/輸出(I/O)埠
118‧‧‧輸入/輸出(I/O)存取信號
120‧‧‧虛擬快取視窗
122‧‧‧轉換
124‧‧‧最近最少使用(LRU)之佇列區塊
126‧‧‧最近最少使用(LRU)佇列之維護信號
128‧‧‧最近最少使用(LRU)佇列之維護信號
130‧‧‧散列表
132‧‧‧通信信號
138‧‧‧最近最少使用(LRU)之佇列
140‧‧‧最近最少使用(LRU)之佇列
142‧‧‧最近最少使用(LRU)之佇列
144‧‧‧最近最少使用(LRU)之佇列
146‧‧‧最近最少使用(LRU)之佇列
148‧‧‧最近最少使用(LRU)之佇列
150‧‧‧最近最少使用(LRU)之佇列
152‧‧‧最近最少使用(LRU)之佇列
154‧‧‧最近最少使用(LRU)之佇列
156‧‧‧最近最少使用(LRU)之佇列
158‧‧‧最近最少使用(LRU)之佇列
160‧‧‧最近最少使用(LRU)之佇列
162‧‧‧最近最少使用(LRU)之佇列
164‧‧‧最近最少使用(LRU)之佇列
166‧‧‧最近最少使用(LRU)之佇列
168‧‧‧最近最少使用(LRU)之佇列
170‧‧‧計數器
172‧‧‧全域計數器
200‧‧‧實體快取視窗及一最近最少使用之佇列區塊之一放大實例
300‧‧‧流程圖
302‧‧‧步驟
304‧‧‧步驟
306‧‧‧步驟
308‧‧‧步驟
310‧‧‧步驟
400‧‧‧流程圖
402‧‧‧步驟
404‧‧‧步驟
406‧‧‧步驟
408‧‧‧步驟
410‧‧‧步驟
412‧‧‧步驟
500‧‧‧流程圖
502‧‧‧步驟
504‧‧‧步驟
506‧‧‧步驟
508‧‧‧步驟
600‧‧‧流程圖
602‧‧‧步驟
604‧‧‧步驟
606‧‧‧步驟
608‧‧‧步驟
610‧‧‧步驟
612‧‧‧步驟
614‧‧‧步驟
616‧‧‧步驟
圖1係一快取裝置中之具有快取區塊之四個實體快取視窗之一方塊圖。
圖2係與具有最近最少使用之佇列及計數器之一最近最少使用之佇列區塊通信之具有快取區塊之一1 MB實體快取視窗之一放大視圖之一方塊圖。
圖3係將資料輸入至一實體快取視窗之一流程圖。
圖4係用於排定實體快取視窗之優先級之一流程圖。
圖5係展示當快取裝置處於一顛簸狀態中時替換熱門資料之方法之一流程圖。
圖6係展示如何判定快取裝置是否具有陳舊資料、是否處於一顛簸狀態中或實體快取視窗是否可用於儲存之一流程圖。
圖1係具有1 MB實體快取視窗之一快閃儲存裝置之一方塊圖100,該快閃儲存裝置用於儲存快取資料且具體而言用於識別一顛簸事件以及在一顛簸事件期間或當在快取裝置中存在陳舊快取資料時排定快取裝置中之儲存快取資料之優先級。在圖1中展示之實例中,將諸如具有100 MB容量(圖1中展示之容量係400 GB)之一快閃儲存裝置 之快閃儲存裝置或快取裝置102劃分成稱為快取視窗(CW)104、106、108及110之大小為1 MB之資料儲存區域。快取裝置102針對總共100 MB之儲存空間具有大小各自為1 MB之100個實體快取視窗104、106、108及110。使用一邏輯區塊定址方案在快取裝置102內初始化所有實體快取視窗104、106、108及110且將其等插入至具有可用於儲存來自主機或硬碟112之可快取資料之閒置儲存空間之實體快取視窗104、106、108及110之一集區(pool)。將各實體快取視窗104、106、108及110進一步分成十六個(16)快取區塊,其中各快取區塊之大小係64 KB。快取區塊之大小可為4 KB、8 KB、16 KB、32 KB、64 KB及128 KB,其中一預設值為64 KB。
參考圖1,快取裝置102自一硬碟或主機112接收輸入/輸出資料114以用於儲存,其中輸入/輸出資料114通過一通用輸入/輸出埠116自主機112傳輸。在將輸入/輸出資料114傳輸至一實體快取視窗104、106、108及110以用於儲存之前,本發明之系統將判定一實體快取視窗104、106、108及110是否可用於儲存。藉由一輸入/輸出(I/O)存取信號118將所有輸入/輸出資料114傳輸至快取裝置102中。藉由輸入/輸出(I/O)存取信號118,最初將資料114儲存於快取裝置102之分配為虛擬快取視窗120之一區域中,其中由虛擬快取視窗120追蹤且監測對資料114之存取。當輸入/輸出資料114在位於虛擬快取視窗120期間被重複存取或引用時(通常是三次引用或直至達到預定引用臨限值),將虛擬快取視窗120中之輸入/輸出資料114轉換122至一實體快取視窗104、106、108及110且進入實體快取視窗104、106、108及110內之快閃儲存位址之一特定區域中。當虛擬快取視窗120釋放輸入/輸出資料114時,來自虛擬快取視窗120之輸入/輸出資料114填入實體快取視窗104、106、108及110。一旦已將輸入/輸出資料114分配至且儲存於一實體快取視窗104、106、108及110中,即將實體快取視窗104、106、 108及110插入最近最少使用之佇列區塊124內之一最近最少使用(LRU)之佇列中且藉由該最近最少使用(LRU)之佇列監測實體快取視窗104、106、108及110。藉由一LRU佇列維護信號126及128,最近最少使用之佇列區塊124使用隨後將進一步論述之一系列最近最少使用之佇列(圖1中未展示)來追蹤對儲存於實體快取視窗104、106、108及110中之輸入/輸出資料114之引用及存取(輸入及讀取請求)。
在圖1中展示之實例快取裝置102中,繪示快取裝置102之一百個(100)實體快取視窗中之四個實體快取視窗104、106、108及110,但可使用任意數目之實體快取視窗進行資料儲存。因此,雖然此描述性實例具有四個實體快取視窗104、106、108及110,但應瞭解,此描述可適用於具有其他數目之實體快取視窗之任意此等設備,如熟悉此項技術者在瞭解本發明之原理之後將瞭解。
此外,在圖1中展示之實例快取裝置102中,繪示每個實體快取視窗具有十六(16)個快取區塊,但取決於實體快取視窗之大小,在實體快取視窗內可使用任意數目之快取區塊以供資料儲存。因此,雖然此描述性實例具有十六個快取區塊,但應瞭解,此描述可適用於具有其他數目之快取區塊之任意此等設備,如熟悉此項技術者在瞭解本發明之原理之後將瞭解。
作為實例,本發明之系統具有一(1)百萬個可組態追蹤標頭或虛擬快取視窗120,且各追蹤標頭或虛擬快取視窗120具有1 MB之虛擬資料空間。虛擬快取視窗120係快閃儲存裝置或快取裝置102內之記憶體資料結構。此等虛擬快取視窗120係用於追蹤硬碟空間或主機112之1 MB區域,其中主機112之1 MB區域未被快取至一實體快取視窗104、106、108及110。
在本發明之一實例中,若由一虛擬快取視窗120追蹤之硬碟空間或主機112之一特定1 MB區域被存取三次或三次以上,則判定該區域 之輸入/輸出資料係熱門的且自最近最少使用之佇列區塊124內之最近最少使用之佇列獲取一實體快取視窗結構104、106、108及110。將硬碟或主機112中之1 MB區域之熱門輸入/輸出資料複製且儲存至由1 MB實體快取視窗結構104、106、108及110表示之快閃儲存器102位址空間之特定區域上。至熱門1 MB硬碟112區域之未來輸入/輸出資料現在將被重新引導至較快的快取裝置或快閃儲存裝置102之實體快取視窗104、106、108及110之快取資料之特定區域而非較慢硬碟或主機112。
一旦自主機112應用程式接收到對資料114之一引用,一散列表130即維護實體快取視窗104、106、108及110之一列表,且其中資料114已儲存或分配於快取裝置102中。散列表130係藉由一通信信號132與最近最少使用之佇列區塊124通信。最近最少使用之佇列區塊124維護且監測對虛擬快取視窗120及實體快取視窗104、106、108及110資料結構兩者之引用。基於資料區域在主機112中之位置,藉由最近最少使用之佇列區塊124搜尋散列表130以判定是否已分配任意類型之快取視窗(不管是一虛擬快取視窗120還是實體快取視窗104、106、108及110)以追蹤該1 MB資料區域。若發現一實體快取視窗已正在追蹤且儲存來自1 MB資料區域之資料,則如將參考圖2而論述,更新與該實體快取視窗相關聯之適當計數器(圖1中未展示)且使該等計數器增大一(1)。若硬碟或主機區域112未在一實體快取視窗104、106、108及110中被追蹤,則分配一新虛擬快取視窗120以追蹤所關注之新區域。
若輸入/輸出資料114命中之前從未被存取過之一1 MB區域,則自虛擬快取視窗之一閒置列表分配一虛擬快取視窗120且將對該區域之資料之存取之數目設為一(1)。追蹤虛擬快取視窗120中之各存取,且若在一給定輸入/輸出資料週期(其藉由輸入/輸出之數目而非時間量測)期間,虛擬快取視窗120存取達到一臨限值(通常是對該虛擬快取 視窗中之資料之三次引用),則將虛擬快取視窗120中之輸入/輸出資料114轉移至一實體快取視窗104、106、108及110。虛擬快取視窗120現在為閒置而可接收新輸入/輸出資料114。
圖2提供一實體快取視窗及一最近最少使用之佇列區塊之一放大實例200。如圖2中所示,一最近最少使用之佇列區塊124係藉由一通信信號132與一散列表130通信。最近最少使用之佇列區塊124係由最近最少使用之佇列(LRU佇列)138、140、142、144、146、148、150、152、154、156、158、160、162、164、166至168(138至168)連同計數器170及一全域計數器172一起組成。如圖2中所示,十六個最近最少使用之佇列138至168、十六個計數器170及一全域計數器172藉由一LRU佇列維護信號126監測且追蹤資料使用及對儲存於實體快取視窗104中之資料之存取。雖然在圖2中展示十六個最近最少使用之佇列及十六個計數器,但應瞭解,此描述可適用於具有其他數目之最近最少使用之佇列及其他數目之計數器之任意此等設備,如熟悉此項技術者在瞭解本發明之原理之後將瞭解。
取決於存取一實體快取視窗104中之資料之頻率,將把實體快取視窗104移動至一較高或較低最近最少使用之佇列138至168。實體快取視窗104至最近最少使用之區塊124中之較高優先級最近最少使用之佇列138至168之移動稱為實體快取視窗104之一升級。實體快取視窗104至一較低優先級最近最少使用之佇列138至168之移動稱為一降級。
如圖2中進一步展示,向最近最少使用之區塊124之最近最少使用之佇列138至168指派一優先級佇列編號0至15,其中0具有最低優先級且15具有最高優先級。各最近最少使用之佇列138至168維護一最近最少使用列表且一計數器170監測有多少個經降級實體快取視窗104駐留於最近最少使用之佇列138至168中(隨後將論述一實體快取視窗104 之降級)及哪些經降級實體快取視窗104(如將論述)可重新用於經新分配實體快取視窗104。跨所有最近最少使用之佇列138至168存在一全域計數器172。
將任何經新分配之實體快取視窗104添加至最低優先級最近最少使用之佇列138至168之末端(在圖2中此將係LRU佇列0 168)。一旦達到對一實體快取視窗104內之一特定區域處之資料之足夠引用(諸如對資料之三次引用),即使該實體快取視窗104升級且將其移動至一較高優先級最近最少使用之佇列,諸如自LRU佇列0 168至LRU佇列1 166。當儲存於實體快取視窗104中之資料在某一預界定時間段期間未被存取時,將實體快取視窗104降級至先前優先級最近最少使用之佇列。在降級時,將實體快取視窗104添加至下一個最低最近最少使用之佇列,諸如自LRU佇列1 166至LRU佇列0 168。使用一全域計數器172追蹤最近最少使用之佇列區塊124中之經降級實體快取視窗104之總數目。在任意給定時間點,基於與散列表130、計數器170及全域計數器172之通信,最近最少使用之佇列區塊124知曉有多少個實體快取視窗104經分配及有多少個實體快取視窗104經實際上降級。若實體快取視窗104降級通過若干最近最少使用之佇列138至168,則與一特定最近最少使用之佇列138至168相關聯之一計數器170將不計數。仍將此一實體快取視窗104算作一降級,然而,調整計數器170使得各最近最少使用之計數器170將表示駐留於最近最少使用之佇列區塊124中之經降級實體快取視窗之當前數目。當一實體快取視窗104降級通過若干最近最少使用之佇列138至168時,全域計數器172將保持不變。當一實體快取視窗104已被降級時將在實體快取視窗104上使用一旗標,以區分同一最近最少使用之佇列138至168中之經升級與經降級實體快取視窗。當一實體快取視窗104升級時將重設旗標。
在將一實體快取視窗104升級至一較高優先級最近最少使用之佇 列138至168時,使與最近最少使用之佇列138至168通信之計數器170遞減。所以,若實體快取視窗104之升級比率等於實體快取視窗104之降級比率,則此比率表明快取裝置102之工作負荷正經歷顛簸,此將在隨後予以論述。若實體快取視窗104之降級比率較高,則此指示存在陳舊資料,此亦將在隨後予以論述。
使用下文描述之一指數時間衰減,將實體快取視窗104自較高優先級最近最少使用之佇列138至168移動至較低優先級最近最少使用之佇列138至168。當一實體快取視窗104自一較高最近最少使用之佇列138至168降級至下一個優先級最近最少使用之佇列138至168時,與對應之各最近最少使用之佇列138至168通信之個別計數器170監測實體快取視窗104之移動,且在一實體快取視窗104降級之情況下將計數器撞擊加上(bump)一(1)值。若一實體快取視窗自LRU佇列2 164降級至LRU佇列1 166,則將計數器撞擊加上一因數二(2)。類似地,當一實體快取視窗104自LRU佇列15 140移動至LRU佇列14 138時,對於實體快取視窗104將計數器170撞擊加上十五(15)。當此等經降級實體快取視窗104升級時,調整計數器170之適當值,諸如當一實體快取視窗104自LRU佇列14最近最少使用之佇列升級至LRU佇列15最近最少使用之佇列時,對於實體快取視窗104將計數器170減去十五(15)。
當基於對較新資料之重複引用而將該資料認作為熱門時,將該資料複製至快取裝置102上且儲存於實體快取視窗104中。若根據與最近最少使用之區塊124通信之散列表130,無實體快取視窗104可用於分配,則最近最少使用之佇列區塊124將基於藉由最近最少使用之佇列138至168接收之資訊識別其中之資料未被存取達最長持續時間之實體快取視窗104。
在一段時間內,經分配且儲存於一實體快取視窗104中之曾經為熱門之特定資料可潛在地歸因於主機應用程式對該資料之有限存取或 無存取而變為陳舊。雖然該資料被快取,但透過使用降級,該資料之實體快取視窗104將最終位於最低優先級最近最少使用之佇列(圖2中之LRU佇列0 168)中。當新資料變得熱門且需要被快取時,若在實體快取視窗104中無空間可用,則基於最近最少使用之佇列優先級138至168,自位於最低優先級最近最少使用之佇列(圖2中之LRU佇列0 168)中之實體快取視窗104替換陳舊資料。為識別供移除之資料,最近最少使用之佇列區塊124使用與最近最少使用之佇列138至168通信之計數器170識別位於最低優先級最近最少使用之佇列(圖2中之LRU佇列0 168)中之帶旗標經降級實體快取視窗104。接著,丟棄經識別實體快取視窗104中之資料。現在標定來自主機112之較新熱門資料114且將其引導至快取裝置102之後端處之虛擬快取視窗。最近最少使用之佇列區塊124開始重新使用最近為了較新熱門資料而丟棄資料之實體快取視窗104(其中該實體快取視窗104先前位於最低優先級LRU佇列0 168中)。
可將較小相鄰實體快取視窗104進行分組以形成一較大群組(256 K、512 K或1 MB)。此實體快取視窗之分組促進相鄰視窗之更快資料快取而不必使資料為了滿足最小準則而到達硬碟機(HDD)。當需要較小實體快取視窗大小(諸如128 KB)時需要此分組以容許更快提升至一1 MB區域。當128 KB大小之一實體快取視窗104被認作為熱門時,則最近最少使用之區塊124亦會自動將在該較小實體快取視窗之1 MB邊界內之相鄰實體快取視窗認作為熱門。此經完成以在首次啟用快取時具有更快之快取提升。本發明之系統容許實體快取視窗大小為128 KB、512 KB、1 MB、2 MB及4 MB,其中一預設值為1 MB。
在一段時間內,曾經為熱門之特定經快取資料將潛在地歸因於主機112或應用程式對該資料之有限存取或無存取而變為陳舊。雖然該資料經快取在一實體快取視窗104中,但該資料之實體快取視窗104 將位於最近最少使用之佇列區塊124中之最低優先級最近最少使用之佇列(圖2中之LRU 0 168)。若系統基於最近最少使用之佇列區塊124識別在實體快取視窗104中無額外空間可用,則將以較新熱門資料替換陳舊資料。當瞭解在一段時間內多少熱門資料正被主動存取時可定義陳舊資料。此可使用最近最少使用之佇列區塊124及區塊124中之最近最少使用之佇列或貯存區(bucket)來達成。無論何時一實體快取視窗歸因於對其快取資料之較少存取而被降級,將維護指派至最近最少使用之佇列或貯存區之計數器以瞭解有多少快取視窗當前處於一降級狀態中。如圖2中所示,存在兩組計數器,每個LRU佇列或貯存區138至168一個計數器170,及一全域計數器172。同樣地用一特定旗標標記當前被降級之實體快取視窗104。無論何時一經降級實體快取視窗104歸因於新存取而被再次升級,相應地調整未處理(outstanding)經降級計數器且將重設旗標。在任何給定時間,若全部經降級實體快取視窗不等於零,則此指示存在一些陳舊資料。若存在任何經佔據實體快取視窗或若陳舊資料存在於一實體快取視窗中,則使一資料區域(圖1之虛擬快取視窗120)被認作為熱門所需之要求將取決於當前經分配實體快取視窗104之狀態。若在最近最少使用之佇列區塊124上存在待使用之任何閒置實體快取視窗104或陳舊(經降級)實體快取視窗104,則將把臨限值設為三(3)。因此,將一虛擬快取視窗120中之資料認作為可快取所需之要求將需要三倍之預設存取計數(即對其各自區域之九次讀取存取)。若不存在閒置實體快取視窗104或經降級實體快取視窗104,則所需要之臨限值將較高,例如三倍之預設值或對資料之九次引用或存取。
在一些情況中,熱門資料將變得大於快取裝置102之容量。當選擇一實體快取視窗104、106、108及110以用於資料之快取時,將需要丟棄如由最近最少使用之佇列區塊124之較低優先級最近最少之使用 之佇列138至168識別之一實體快取視窗中之特定資料。歸因於資料之大小,經丟棄之資料迅速變得再次熱門,從而產生稱為顛簸之新資料與經丟棄資料之一循環。
為補償處於一顛簸模式中之系統,系統可以兩種方式處理資料之快取。在第一種方法中,以一較快速率自最低優先級最近最少使用之佇列中之實體快取視窗替換資料且隨後將該資料儲存於一新實體快取視窗中。在第二種方法中,修改將資料識別為熱門所需之引用之數目(諸如自三(3)次引用修改至九(9)次引用),因此,需要九次引用資料以分配或儲存在來自最低優先級最近最少使用之佇列之一實體快取視窗中以實現新熱門資料之儲存。在一些例子中,當系統處在顛簸模式中時,系統甚至可停止資料至實體快取視窗之所有分配或儲存。
圖3提供快取輸入至本發明之快取裝置中之資料之一流程圖300。在步驟302中,將資料輸入至快取裝置中。在步驟304中,將資料分配至快取裝置之一虛擬快取視窗或後台區且藉由該快取裝置之該虛擬快取視窗或後台區追蹤資料。在步驟306中,當一外部主機重複存取虛擬快取視窗中之資料時(通常至少三次引用該資料),將虛擬快取視窗中之資料轉換或傳輸至一實體快取視窗,其中資料被指派且儲存在一實體快取視窗中。一旦已自虛擬快取視窗移除來自虛擬快取視窗之資料,虛擬快取視窗即閒置而可容許將新資料分配至該虛擬快取視窗且在該虛擬快取視窗中追蹤新資料。在步驟308中,維護包括十六個最近最少使用之佇列或貯存區之一最近最少使用之佇列(LRU)區塊且該最近最少使用之佇列(LRU)區塊監測對跨所有實體快取視窗之資料之存取。在步驟310中,取決於存取一實體快取視窗中之資料之頻率及/或最近一次存取資料之時間,最近最少使用之佇列(LRU)區塊對儲存於實體快取視窗中之資料排定優先級。
如圖4中所示,提供展示排定一實體快取視窗中之資料之優先級 之一流程圖400。在步驟402中,最近最少使用之佇列區塊對各實體快取視窗排定優先級。在步驟404中,將所有實體快取視窗插入至最近最少使用之佇列區塊之最近最少使用之佇列(LRU佇列)中,使得可重新使用實體快取視窗,因為快取驅動器或快取裝置之快取容量遠小於實際實體或硬碟容量。本發明為所有實體快取視窗提供十六個最近最少使用之佇列,而非針對所有實體快取視窗維護一單一最近最少使用之佇列或貯存區。各最近最少使用之佇列或列表表示一LRU貯存區,其中使用由低(0)至高(15)變化之一優先級對各最近最少使用之佇列排定優先級。最初將所有實體快取視窗插入至具有最低優先級之最近最少使用之佇列(在此情況中為LRU佇列0)。在步驟406中,一旦接收到對一實體快取視窗中之快取資料之某個量之引用或存取,即將該實體快取視窗自最低優先級最近最少使用之佇列移動至一較高優先級列表。實體快取視窗自一較低最近最少使用之佇列至一較高最近最少使用之佇列之移動稱為一升級。在步驟408中,當一實體快取視窗在特定時間量內未被存取時,最近最少使用之佇列區塊識別該實體快取視窗中之資料未正被存取且將該實體快取視窗自當前最近最少使用之佇列移動至一較低最近最少使用之佇列。實體快取視窗自一較高最近最少使用之佇列至一較低最近最少使用之佇列之移動稱為一降級。為了具有一動態的實體快取視窗降級比率(而非一預設或高需求),當使實體快取視窗降級時使用一降級權重因數。當一實體快取視窗自最高優先級實體快取視窗降級至下一個優先級實體快取視窗時,將與各最近最少使用之優先級佇列(其與該經降級實體快取視窗相關聯)相關聯之一計數器撞擊加上一(1)值且將一旗標附加至該實體快取視窗。若使一實體快取視窗降級達兩個最近最少使用之優先級佇列,則將與最近最少使用之優先級佇列相關聯之計數器撞擊加上或增大一因數二(2)。類似地,當一實體快取視窗自第15個最近最少使用之佇列移動 至第14個最近最少使用之佇列時,對於各實體快取視窗將計數器增大十五(15)。當此等經降級實體快取視窗升級時,調整適當值。在步驟410中,在一段時間內,曾經為熱門之特定資料可潛在地歸因於應用程式對該資料之有限存取或無存取而變為陳舊。雖然該資料被快取,但透過使用降級,該資料之實體快取視窗最終位於最低優先級最近最少使用之佇列中。在步驟412中,當新資料變得熱門且需要被快取時,若在實體快取視窗中無空間可用,則基於最近最少使用之佇列優先級,自位於最低優先級最近最少使用之佇列中之實體快取視窗移除陳舊資料。系統將來自最低優先級最近最少使用之佇列之實體快取視窗重新用於較新熱門資料。
在圖5中提供展示用於識別本發明之系統是否在顛簸模式中之步驟之一流程圖500。在步驟502中,將熱門資料添加至快取裝置但新資料大於快取裝置之快取容量。在步驟504中,若無未使用之實體快取視窗可用於快取資料且無陳舊資料可用於自最低優先級最近最少使用之佇列中之實體快取視窗移除,則系統處於顛簸模式中。在步驟506中,為補償處於一顛簸模式中之系統,以一較快速率自最低優先級最近最少使用之佇列中之實體快取視窗移除資料且隨後將資料儲存於一新實體快取視窗中。在步驟508中,處理顛簸模式之一替代方法,修改將資料識別為熱門所需之引用之數目(一實例可為自三(3)次引用修改至九(9)次引用),因此,需要九(9)次引用來自系統之資料以儲存於來自最低優先級最近最少使用之佇列之一實體快取視窗中以實現新熱門資料之儲存。在一些例子中,當系統處於顛簸模式中時,系統甚至可停止資料至實體快取視窗之所有分配或儲存。
如圖6中所示,提供展示用於偵測在系統中是否存在任何陳舊快取資料或是否發生顛簸之邏輯之一流程圖600。在步驟602中,最近最少使用之優先級佇列監測隨著時間推移有多少儲存於各實體快取視窗 中之資料經主動存取。在步驟604中,基於藉由與最近最少使用之優先級佇列通信之計數器對資料使用之監測,在資料變成一較低優先級時在最近最少使用之佇列中使實體快取視窗降級。每個最近最少使用之佇列分配一計數器,其中針對最近最少使用之佇列區塊中之所有十六個最近最少使用之佇列分配一額外佇列。如上文論述,當一實體快取視窗自最高優先級實體快取視窗降級至下一個優先級實體快取視窗時,將與各最近最少使用之優先級佇列(其與經降級實體快取視窗相關聯)相關聯之計數器撞擊加上一(1)值。若使一實體快取視窗降級達兩個最近最少使用之優先級佇列,則將與最近最少使用之優先級佇列相關聯之計數器撞擊加上一因數二(2)且最近最少使用之佇列指示哪一個最近最少使用之佇列正在說明經降級實體快取視窗之當前位置。
然而,全域計數器保持不變。類似地,當一實體快取視窗自第14個最近最少使用之佇列移動至第15個最近最少使用之佇列時,將計數器撞擊加上十五(15)且計數器將接著指示說明實體快取視窗之當前位置之佇列。此計算提供關於快取視窗是否被部分填充、是否存在陳舊快取資料或系統是否處於一顛簸模式中之一瞭解且因此達成對快取速率之一調節。在步驟606中,基於權重因數,若經降級實體快取視窗之總數大於零且閒置實體快取視窗之總數等於零,則如步驟608中所示,在實體快取視窗中存在陳舊快取資料。在步驟610中,若經降級實體快取視窗之總數等於零且閒置實體快取視窗之總數等於零,則如步驟612中所示,系統處於顛簸模式中。在步驟614中,若經降級實體快取視窗之總數等於零且閒置實體快取視窗之總數大於零,則如步驟616中所示,系統具有可用於分配之閒置快取視窗。
已出於繪示及描述之目的呈現本發明之上述描述。上述描述不意欲為詳盡無疑的或將本發明限於所揭示之精確形式,且根據上文教示可存在其他修改及變動。實施例經選擇及描述以最佳地解釋本發明 之原理及其實際應用,以藉此使其他熟習此項技術者能夠在如適合於所預期之特定用途之多種實施例及多種修改中最佳地利用本發明。除受到先前技術所限制外,吾人意欲將隨附申請專利範圍理解為包含本發明之其他替代實施例。
500‧‧‧流程圖
502‧‧‧步驟
504‧‧‧步驟
506‧‧‧步驟
508‧‧‧步驟

Claims (15)

  1. 一種在熱門資料之量超過一快取裝置之儲存容量時將資料儲存至該快取裝置上之方法,其包括:藉由利用一最近最少使用之佇列區塊監測對儲存於一快取裝置中之一或多個實體快取視窗中之資料之引用;對儲存於該一或多個實體快取視窗中之該資料排定優先級至該最近最少使用之佇列區塊中之一最近最少使用之佇列;基於在某一時間段期間對該一或多個實體快取視窗中之該資料之該等引用之數目將該一或多個實體快取視窗升級至該最近最少使用之佇列區塊中之一較高優先級最近最少使用之佇列;當在某一時間段期間未存取該資料時將該一或多個實體快取視窗降級至該最近最少使用之佇列區塊中之一較低優先級最近最少使用之佇列;及使用該最近最少使用之佇列區塊中之一或多個計數器監測該快取裝置中之經降級實體快取視窗之數目。
  2. 如請求項1之方法,其進一步包括:搜尋與該最近最少使用之佇列區塊通信之一散列表以識別該快取裝置中之經降級實體快取視窗之數目及閒置實體快取視窗之數目。
  3. 如請求項2之方法,其進一步包括:識別在該快取裝置中無閒置實體快取視窗可用;自該最低優先級最近最少使用之佇列中之該經降級實體快取視窗替換資料;將新資料儲存至該經降級實體快取視窗;及利用該最近最少使用之佇列區塊追蹤對儲存於該經降級實體 快取視窗中之該新資料之引用。
  4. 如請求項3之方法,其進一步包括:使用一虛擬快取視窗追蹤一主機中之資料;使用該虛擬快取視窗監測對該主機中之該資料之引用之數目;及基於來自該主機之該資料在某一時間段期間接收到一數目之該等引用而將來自該主機之該資料儲存至由該一或多個實體快取視窗表示之該快取裝置上。
  5. 如請求項2之方法,其進一步包括:當該等經降級實體快取視窗之總數等於零且該等閒置實體快取視窗之總數等於零時,識別該快取裝置係顛簸的。
  6. 如請求項5之方法,其進一步包括:增大將該資料儲存於該經降級實體快取視窗中所需之該等引用之數目。
  7. 如請求項6之方法,其中該等引用之該數目之該增大係大於三次引用。
  8. 如請求項2之方法,其進一步包括:當該等經降級實體快取視窗之總數大於零且該等閒置實體快取視窗之總數等於零時,識別該快取裝置具有陳舊資料。
  9. 如請求項2之方法,其進一步包括:當該等經降級快取視窗之總數等於零且該等閒置快取視窗之總數大於零時,識別何時該快取裝置具有閒置實體快取視窗。
  10. 一種用於資料之快取之快取裝置,其包括:至少一虛擬快取視窗;至少一實體快取視窗;一最近最少使用之佇列區塊,其與該至少一實體快取視窗通 信,其中該最近最少使用之佇列區塊包括至少兩個最近最少使用之佇列、至少兩個計數器及一全域計數器;及一散列表,其與該最近最少使用之佇列區塊通信。
  11. 如請求項10之快取裝置,其中基於對儲存於該至少一實體快取視窗中之資料之引用之數目將該至少一實體快取視窗排定優先級至該最近最少使用之佇列區塊中之該最近最少使用之佇列。
  12. 如請求項11之快取裝置,其中該散列表維護儲存於該至少一實體快取視窗中之該資料之位置以及該至少一實體快取視窗之位置之一列表。
  13. 如請求項12之快取裝置,其中該最近最少使用之佇列區塊監測對儲存於該至少一實體快取視窗中之該資料之引用之數目。
  14. 如請求項13之快取裝置,其中該至少兩個計數器及一全域計數器監測與該最近最少使用之佇列區塊通信之該至少一實體快取視窗之降級。
  15. 如請求項14之快取裝置,其中該至少一實體快取視窗進一步包括用於該資料之儲存之至少一快取區塊。
TW102130922A 2013-02-07 2013-08-28 用於改善輸入輸出效能之調節資料快取速率之方法 TW201432451A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/761,397 US9189422B2 (en) 2013-02-07 2013-02-07 Method to throttle rate of data caching for improved I/O performance

Publications (1)

Publication Number Publication Date
TW201432451A true TW201432451A (zh) 2014-08-16

Family

ID=49322205

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102130922A TW201432451A (zh) 2013-02-07 2013-08-28 用於改善輸入輸出效能之調節資料快取速率之方法

Country Status (6)

Country Link
US (1) US9189422B2 (zh)
EP (1) EP2765519A1 (zh)
JP (1) JP2014154138A (zh)
KR (1) KR20140100876A (zh)
CN (1) CN103984648A (zh)
TW (1) TW201432451A (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6146087B2 (ja) * 2013-03-28 2017-06-14 富士通株式会社 ストレージ制御プログラム,ストレージ制御方法,ストレージシステム及びその階層制御装置
US9384138B2 (en) * 2014-05-09 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Temporal tracking of cache data
US10606795B2 (en) * 2015-06-18 2020-03-31 Netapp, Inc. Methods for managing a buffer cache and devices thereof
US10067884B2 (en) 2015-08-21 2018-09-04 International Business Machines Corporation Distributing a plurality of tracks to add to cache to lists assigned to processors
US10114753B2 (en) 2015-08-21 2018-10-30 International Business Machines Corporation Using cache lists for multiple processors to cache and demote tracks in a storage system
US10108552B2 (en) 2015-08-21 2018-10-23 International Business Machines Corporation Using cache lists for processors to determine tracks to demote from a cache
US9921974B2 (en) 2015-08-21 2018-03-20 International Business Machines Corporation Assigning cache control blocks and cache lists to multiple processors to cache and demote tracks in a storage system
US9952904B2 (en) 2015-08-21 2018-04-24 International Business Machines Corporation Distributing tracks to add to cache to processor cache lists based on counts of processor access requests to the cache
US9996470B2 (en) * 2015-08-28 2018-06-12 Netapp, Inc. Workload management in a global recycle queue infrastructure
CN106649150B (zh) * 2016-12-26 2020-04-24 锐捷网络股份有限公司 一种缓存管理方法及装置
US11061622B2 (en) * 2017-11-13 2021-07-13 Weka.IO Ltd. Tiering data strategy for a distributed storage system
US11237730B2 (en) 2019-05-12 2022-02-01 International Business Machines Corporation Favored cache status for selected volumes within a storage system
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system
US11163698B2 (en) 2019-05-12 2021-11-02 International Business Machines Corporation Cache hit ratios for selected volumes using synchronous I/O
US11169919B2 (en) 2019-05-12 2021-11-09 International Business Machines Corporation Cache preference for selected volumes within a storage system
US11176052B2 (en) 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
US11663144B2 (en) 2020-01-20 2023-05-30 International Business Machines Corporation LRU list reorganization for favored and unfavored volumes
US11294829B2 (en) * 2020-04-21 2022-04-05 International Business Machines Corporation Cache replacement with no additional memory space
US11681620B2 (en) * 2021-07-23 2023-06-20 Advanced Micro Devices, Inc. Using error correction code (ECC) bits for retaining victim cache lines in a cache block in a cache memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752261A (en) 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
US20020056025A1 (en) * 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US6701393B1 (en) 2002-06-27 2004-03-02 Emc Corporation Systems and methods for managing storage location descriptors
US6948032B2 (en) 2003-01-29 2005-09-20 Sun Microsystems, Inc. Method and apparatus for reducing the effects of hot spots in cache memories
US7457926B2 (en) 2005-05-18 2008-11-25 International Business Machines Corporation Cache line replacement monitoring and profiling
US20080086599A1 (en) 2006-10-10 2008-04-10 Maron William A Method to retain critical data in a cache in order to increase application performance
US8117396B1 (en) * 2006-10-10 2012-02-14 Network Appliance, Inc. Multi-level buffer cache management through soft-division of a uniform buffer cache
US8176255B2 (en) 2007-10-19 2012-05-08 Hewlett-Packard Development Company, L.P. Allocating space in dedicated cache ways
US8583893B2 (en) * 2009-05-28 2013-11-12 Marvell World Trade Ltd. Metadata management for virtual volumes
US8578145B2 (en) 2010-10-13 2013-11-05 International Business Machines Corporation Port throttling across an operating system restart during a hot upgrade
US8595451B2 (en) 2010-11-04 2013-11-26 Lsi Corporation Managing a storage cache utilizing externally assigned cache priority tags
US20130097387A1 (en) * 2011-10-14 2013-04-18 The Board Of Trustees Of The Leland Stanford Junior University Memory-based apparatus and method

Also Published As

Publication number Publication date
EP2765519A1 (en) 2014-08-13
JP2014154138A (ja) 2014-08-25
US9189422B2 (en) 2015-11-17
US20140223106A1 (en) 2014-08-07
KR20140100876A (ko) 2014-08-18
CN103984648A (zh) 2014-08-13

Similar Documents

Publication Publication Date Title
TW201432451A (zh) 用於改善輸入輸出效能之調節資料快取速率之方法
EP3210121B1 (en) Cache optimization technique for large working data sets
EP3229142B1 (en) Read cache management method and device based on solid state drive
KR102043886B1 (ko) 프로파일링 캐시 대체
CN108763110B (zh) 一种数据缓存方法及装置
CN105117180B (zh) 一种数据存储方法和装置以及固态硬盘
US9235508B2 (en) Buffer management strategies for flash-based storage systems
EP3388935B1 (en) Cache management method, cache controller and computer system
EP3089039B1 (en) Cache management method and device
US9886386B2 (en) Self-adjusting caching system
JP6313993B2 (ja) ホストのサービス品質インジケータに重みを割り当てるための装置および方法ならびに記憶媒体
US9658959B2 (en) Cache resource manager
US9971698B2 (en) Using access-frequency hierarchy for selection of eviction destination
US9372810B2 (en) Collaborative caching
CN106372007B (zh) 缓存使用率估计
US20170329721A1 (en) Information processing device, method of controlling a cache memory, and storage medium
JP2015001909A (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
CN110413545B (zh) 存储管理方法、电子设备和计算机程序产品
CN114600091A (zh) 基于重用距离的高速缓存管理
KR101704936B1 (ko) 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템
KR102334237B1 (ko) 다중 포그라운드 어플리케이션을 위한 페이지 캐쉬 관리 방법 및 장치
JP2019049856A (ja) ストレージ制御装置およびストレージ制御プログラム
JP2017058904A (ja) キャッシュ装置およびキャッシュ装置の制御方法