固態盤的自適應記錄高速緩存的制作方法
【專利摘要】存儲控制器接收對應于訪問高速緩存中的軌道的請求。做出該軌道是否對應于存儲在固態盤中的數據的確定。響應于確定該軌道對應于存儲在固態盤中的數據,執行從固態盤到高速緩存的記錄分段存儲,其中每個軌道包括多個記錄。
【專利說明】固態盤的自適應記錄高速緩存
【技術領域】
[0001]本公開涉及一種固態盤的自適應記錄高速緩存的方法、系統和制造品。
【背景技術】
[0002]存儲控制器可以控制可包括硬盤、磁帶等的多個存儲設備。高速緩存也可以由存儲控制器維持,其中所述高速緩存可以包含高速存儲器,其與諸如硬盤、磁帶等的某些其它存儲設備相比可以更快速地訪問。然而,高速緩存的存儲容量的總量與諸如硬盤等的由存儲控制器控制的某些其它存儲設備的存儲容量相比可能是相對較小的。
[0003]在某些存儲控制器中,可以使用各種預期的或自適應的高速緩存機制以將數據存儲在高速緩存中。某些被更頻繁使用的數據或者可能被更頻繁使用的數據在可能在不久的將來訪問該數據的預期下被移動到高速緩存中。這樣類型的高速緩存機制可被稱為預期的或自適應的高速緩存,并且可以通過在存儲控制器中維持的自適應高速緩存應用程序來執行。響應于對數據的請求,如果在高速緩存中沒有找到所請求的數據,則存儲控制器可以從該存儲控制器控制的存儲設備中取得所請求的數據。
[0004]固態盤(SSD)可包括使用固態存儲器來存儲持久數字數據的存儲設備。固態盤可包括閃存或其他類型的存儲器。相較于諸如硬盤的機電式訪問的數據存儲設備可以更快地訪問固態盤。
【發明內容】
[0005]提供了一種方法、系統和計算機程序產品,其中存儲控制器接收對應于訪問高速緩存中的軌道的請求。做出該軌道是否對應于存儲在固態盤中的數據的確定。響應于確定該軌道對應于存儲在固態盤中的數據,執行從固態盤到高速緩存的記錄分段存儲(staging),其中每個軌道包括多個記錄。
[0006]在進一步的實施例中,做出該軌道是否對應于存儲在硬盤中的數據的確定。響應于確定該軌道對應于存儲在硬盤中的數據,基于在存儲控制器中維持的標準,在執行從硬盤到高速緩存的部分軌道分段存儲、完整軌道分段存儲和記錄分段存儲之中做出選擇。在完整軌道分段存儲中分段存儲整個軌道,在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
[0007]在進一步的實施例中,當相對地最近沒有訪問軌道時,執行從固態盤的記錄分段存儲,并且當相對地最近訪問了該軌道時,至少在執行部分軌道分段存儲和執行完整軌道分段存儲之中做出選擇,
[0008]在附加的實施例中,維持軌道的最近最少使用的列表,其中,按照在高速緩存中對每個軌道的訪問以單調遞增的順序為該列表中的每個軌道順序編號,然后將其放置在最近最少使用的列表中。基于預定的標準,做出關于最近是否使用了所選軌道的確定,所述預定的標準基于軌道的最近最少使用的列表中軌道的序列號、存儲在高速緩存中的那些軌道所消耗的高速緩存空間量和指示存儲量的閾值。[0009]在另一附加的實施例中,記錄分段存儲被用作耦合到存儲控制器的固態盤的默認分段存儲操作,并且部分軌道分段存儲被用作耦合到存儲控制器的硬盤的默認分段存儲操作,其中在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
【專利附圖】
【附圖說明】
[0010]現在參考附圖,其中全部附圖中相同的參考標號表示相應的部件:
[0011]圖1示出根據某些實施例的包括耦合到多個主機的存儲控制器、多個硬盤和多個固態盤的計算環境的框圖;
[0012]圖2示出根據某些實施例的顯示了貯存器的邏輯表示的框圖;
[0013]圖3A示出根據某些實施例的顯示了示例性分段存儲操作的框圖;
[0014]圖3B示出根據某些實施例的顯示了完整軌道分段存儲、部分軌道分段存儲和記錄分段存儲的框圖;
[0015]圖4示出根據某些實施例的顯示了用于自適應高速緩存的數據結構的框圖;
[0016]圖5示出根據某些實施例的顯示了自適應高速緩存的操作的框圖;
[0017]圖6示出根據某些實施例的顯示了固態盤的示例性實施例的框圖;
[0018]圖7示出根據某些實施例的顯示了某些操作的流程圖;
[0019]圖8示出根據某些實施例的顯示了某些操作的流程圖;以及
[0020]圖9示出根據某些實施例的顯示了可以被包括在圖1的存儲控制器中的某些元件的計算系統的框圖。
【具體實施方式】
[0021]在以下描述中,參考了組成本說明書的一部分并說明若干實施例的附圖。應當理解,可以利用其他實施例,并且可作出結構和操作上的改變。
[0022]自適應高速緩存機制
[0023]可以為耦合到存儲控制器的硬盤設計自適應高速緩存機制。在某些實施例中,固態設備也可耦合到存儲控制器。然而,固態盤具有與硬盤不同的特性。雖然與硬盤相比可以更快地訪問固態盤,但是固態盤在大塊傳輸上的性能可能會比小塊傳輸差很多。然而,為硬盤設計的自適應高速緩存機制可以執行大塊傳輸。在使用固態盤的某些實施例中,可以修改這樣的自適應高速緩存機制以提高固態盤的性能。
[0024]在某些實施例中,與為硬盤優選的部分軌道高速緩存相比,為固態盤優選記錄高速緩存。與部分軌道高速緩存或用于此的完整軌道高速緩存相比,記錄高速緩存(即,分段存儲(staging)或復制被請求到高速緩存的記錄/扇區)導致相對較小的塊傳輸。應注意,軌道由多個記錄組成,并且傳輸整個軌道或部分軌道與傳輸所選記錄相比通常會導致大塊傳輸。
[0025]此外,在某些實施例中,如果固態盤的軌道最近沒有被使用(即,該軌道在為高速緩存維持的最近最少使用(LRU)列表中較低),則使用記錄高速緩存。在某些實施例中,當固態盤的軌道最近已被使用時(即,該軌道在為高速緩存維持的LRU列表中較高),可以通過在記錄分段存儲、部分軌道分段存儲或者完整軌道分段存儲中進行選擇,以類似于從硬盤到高速緩存的分段存儲操作的方式,執行從固態盤到高速緩存的分段存儲操作。
[0026]因此,在某些實施例中,修改用于硬盤的自適應高速緩存應用程序,以生成可被用于硬盤和固態設備兩者的增強的自適應高速緩存應用程序。
[0027]示例性實施例
[0028]圖1示出根據某些實施例的包括耦合到多個主機104a、104b......104η、多個硬盤
106和多個固態盤108的存儲控制器102的計算環境100的框圖。 [0029]存儲控制器102和主機104a、104b……104η可以包括任何合適的計算設備,包括那些在本領域中目前已知的,諸如,個人計算機、工作站、服務器、大型機、手持式計算機、掌上計算機、電話設備、網絡裝置、刀片計算機、服務器等。所述多個硬盤106可以包括本領域中已知的任何合適的物理硬盤。所述多個固態盤108可包括本領域中已知的任何合適的物
理固態盤。
[0030]存儲控制器102、主機104a、104b……104η、多個硬盤106和多個固態盤108可以在諸如因特網、存儲區域網絡、廣域網、局域網等的網絡上進行通信。所述多個硬盤106可在一個或多個硬盤驅動之內進行配置,并且所述多個固態盤108可在一個或多個固態盤驅動之內進行配置。
[0031]存儲控制器102執行增強的自適應高速緩存應用程序110,并且控制在存儲控制器102內示出的高速緩存112。在可替換實施例中,高速緩存112可以存在于存儲控制器102的外部。
[0032]增強的自適應高速緩存應用程序110為用于硬盤106的部分軌道的分段存儲增加了用于固態盤108的記錄高速緩存。在某些實施例中,當固態盤的軌道最近沒有被使用時,僅記錄分段存儲用于固態盤。應用程序110被稱為增強的自適應高速緩存應用程序110,這是因為為硬盤設計的自適應高速緩存應用程序可以被修改或利用附加的操作進行增強,以創建增強的自適應高速緩存應用程序110,使得固態盤和硬盤兩者可以在存儲控制器102的控制下高效地運作。
[0033]圖2示出根據某些實施例的顯示了貯存器202的邏輯表示的框圖200。
[0034]增強的自適應高速緩存應用程序110可以動態地改變用于數據的分段存儲操作。
自適應的粒度是柱面帶(cylinder band) 204,其是設備上任意數量的連續柱面206a......206η。在某些實施例中,所述帶中柱面的數量可以是126。每個柱面帶可以包含數據結構以管理與該帶相關聯的自適應高速緩存統計信息。
[0035]每個柱面可以包括多個軌道,其中每個軌道可以包括多個扇區。例如,柱面206a被示為具有多個軌道208a……208p,其中軌道208a包含多個扇區210a……210m。扇區是硬盤驅動、固態盤或任何其它類型的存儲介質的特定大小的劃分。操作系統可以參考對應于存儲在存儲介質上的扇區的記錄。
[0036]圖3A示出根據某些實施例的顯示了示例性分段存儲操作302的框圖300。分段存儲操作可以將硬盤或某些其他儲存介質上的數據復制到高速緩存112。增強的自適應高速緩存應用程序110支持下面的三個分段存儲策略:
[0037](a)扇區分段存儲(也被稱為記錄分段存儲或記錄高速緩存)304:在扇區分段存儲中只將滿足當前請求所需的(多個)扇區分段存儲到高速緩存112 ;
[0038](b)部分軌道分段存儲306:在部分軌道分段存儲中,分段存儲從軌道上的初始訪問點到軌道末尾的部分軌道,以及
[0039](c)完整軌道分段存儲308:在完整軌道分段存儲中,不考慮軌道上的訪問點,將整個軌道分段存儲到高速緩存112。
[0040]圖3B示出根據某些實施例的顯示了完整軌道分段存儲、部分軌道分段存儲和記錄分段存儲的框圖310。圖3B中顯示了包含多個扇區314、316、318、320、322、324、326、328、330、332、334、336的完整軌道312。諸如主機104a的主機向存儲控制器102請求顯示為所請求扇區338的扇區,其中經由圖3b的參考標號340指示所請求扇區的開始。還顯示了完整軌道312的軌道開始342和軌道末尾344。完整軌道分段存儲是將完整的軌道312分段存儲到高速緩存112中。部分軌道分段存儲346是將從所請求扇區的開始340到軌道末尾344的扇區分段存儲到高速緩存112中。記錄分段存儲是將所請求扇區338分段存儲到高速緩存112中。
[0041]圖4示出根據某些實施例的顯示了用于自適應高速緩存的數據結構402的框圖400。在自適應高速緩存中,為了確定對于特定的請求使用哪個分段存儲策略,經由數據結構402為每個柱面帶維持下列計數器:
[0042]I)未中(miss) 404,如果軌道不在高速緩存112中則遞增;
[0043]2)命中(hit) 406:如果軌道在高速緩存112中則遞增;
[0044]3)前端訪問(FA) 408:如果軌道在高速緩存中并且所請求的第一扇區在導致該軌道被提升的扇區之前,則遞增;
[0045]4)后端訪問(BA) 410:如果軌道在高速緩存中并且所請求的第一扇區在導致該軌道被提升的扇區之后,則遞增;
[0046]5)歷史前端訪問比率(HFEAR) 412 ;以及
[0047]6)歷史交替記錄訪問比率(HARAR) 414。
[0048]每次訪問軌道,這些計數器就更新。大約每訪問128次柱面帶之后,更新歷史比率并更新用于柱面帶的當前分段存儲策略。
[0049]圖5示出根據某些實施例的顯示了自適應高速緩存的操作500的框圖。圖5中,如下計算下列歷史比率(參考標號502):
[0050]新HFEAR= ((FA/ (命中 + 未中))+HFEAR) /2[0051 ]新 HARAR= (((FA+BA) / (命中 + 未中))+HARAR) /2
[0052]柱面帶分段存儲策略被設置為僅當HARAR小于0.10時(參考標號506)分段存儲所請求的扇區504,如果HARAR大于或等于0.10并且HFEAR小于0.05 (參考標號510)則分段存儲部分軌道508,以及如果HARAR大于或等于0.10并且HFEAR大于或等于0.05 (參考標號514)則分段存儲完整軌道(參考標號512)。
[0053]在某些實施例中圖5示出的自適應高速緩存操作可以被應用到硬盤。可以根據圖5所示的計算和條件執行扇區、部分軌道或完整的軌道的分段存儲。在可替換實施例中,可使用其它的計算和條件來實施自適應高速緩存操作。
[0054]圖6示出根據某些實施例的顯示了固態盤108的示例性實施例602的框圖600。
[0055]高速緩存112中的每個軌道具有全局序列號,其中所述全局序列號是單調遞增的號碼。當在高速緩存112中訪問示例性軌道604時,軌道604被分配該全局序列號,并被添力口(605)到最近最少使用(LRU)列表606的最近使用端。隨后全局序列號遞增。因此,LRU列表606中的所有軌道都已分配了序列號,使得在最近最少使用端的軌道608具有最低的序列號,而在最近使用端的軌道610具有最高的序列號。
[0056]圖7示出根據某些實施例的顯示了某些操作的流程圖700。圖7所示的操作對應于由增強的自適應高速緩存應用程序110所執行的操作,所述增強的自適應高速緩存應用程序110可通過修改圖3a、3b、4和5所示的用于硬盤中的自適應高速緩存的自適應高速緩存應用程序來生成。
[0057]控制開始于方框702,其中維持軌道的LRU列表606。(在方框704)維持單調遞增全局序列號的數據結構。(在方框706)訪問高速緩存中的軌道,并且(在方框708)將全局序列號分配給所訪問的軌道作為變量“THISSeq”,然后(在方框710)遞增全局序列號。(在方框712)所訪問的軌道被添加到LRU列表606的最近使用端。
[0058]控制前進到方框714,其中對于固態盤軌道,如果該軌道的位置在LRU列表606中是低的(即訪問該軌道是獨立于先前的訪問的)則執行記錄高速緩存。換句話說,記錄高速緩存被用于處在LRU列表606的低端的固態設備軌道。部分軌道分段存儲/高速緩存仍為硬盤的默認項。如下執行對低位置的確定:
[0059]如果(((MRUseq-THISseq)*Consumed_Cache_Space/ (MRUseq - LRUseq)) >16GB)則執行記錄高速緩存,
[0060]其中:
[0061 ] MRUSeq=LRU列表的MRU端的軌道的序列號;
[0062]LRUSeq=LRU列表的LRU端的軌道的序列號;
[0063]THISseq=該軌道的序列號;以及
[0064]Consumed_Cache_Space=這是高速緩存中軌道所消耗的高速緩存空間總量。
[0065]因此,在圖7中,當訪問獨立于先前的訪問時,即正在訪問的軌道最近沒有被訪問時,將記錄分段存儲用于固態盤。在這種情況下,優選通過分段存儲扇區/記錄執行小塊傳輸,而不是將完整的或部分的軌道分段存儲到高速緩存中。
[0066]圖8示出根據某些實施例的顯示了某些操作的流程圖800。在某些實施例中,圖8所示的操作可以通過在存儲控制器102中實施的增強的自適應高速緩存應用程序110來執行。
[0067]控制開始于方框802,其中存儲控制器102接收對應于訪問高速緩存112中的軌道
的請求。該請求可以通過存儲控制器102從主機104a......104η之一接收。該請求可以針
對駐留在軌道中的一個或多個記錄(對應于扇區)。
[0068]控制前進到方框804,其中存儲控制器102中的增強的自適應高速緩存應用程序110確定該軌道是否對應于存儲在固態盤108中的數據。如果是,則(在方框806)增強的自適應高速緩存應用程序Iio確定該軌道是否在相對的最近已經被訪問過。可以根據圖7的方框714所示的操作來做出該軌道是否在相對的最近已經被訪問過的確定,在圖7的方框714所示的操作中,確定該軌道具有低的序列號(在此情況下,在相對的最近該軌道沒有被訪問過)或是高的序列號(在這種情況下,在相對的最近該軌道已經被訪問過)。
[0069]如果在方框806中確定該軌道在相對的最近沒有被訪問過,則控制前進到方框808,其中增強的自適應高速緩存應用程序110執行從固態盤108到高速緩存112的記錄分段存儲。可以注意到,每個軌道包括多個記錄。在固態硬盤中,一次傳輸較少數據塊更有效。因此,除非存在未請求的相鄰記錄有可能在不久的將來被使用的很大的可能性,否則優選地為固態盤執行到高速緩存112的記錄分段存儲。因此,當軌道最近沒有被訪問時(即,該軌道朝向LRU列表606的最近最少使用端),優選地對固態盤只執行記錄高速緩存(即,只分段存儲所請求的扇區/記錄)。
[0070]如果在方框806中確定該軌道在相對的最近已經被訪問過(即,該軌道朝向LRU列表606的最近使用端),則控制前進到方框810,其中增強的自適應高速緩存應用程序110基于存儲控制器102中維持的標準,在執行從固態盤108到高速緩存112的部分軌道分段存儲、完整軌道分段存儲和記錄分段存儲之間進行選擇。在某些實施例中,用于選擇執行部分軌道分段存儲、完整軌道分段存儲或者記錄分段存儲的標準可以基于圖5所示的操作,方框504、506、508、510、512、514顯示何時分段存儲所請求的扇區/記錄504,何時分段存儲部分軌道508以及何時分段存儲完整軌道512。因此,當軌道朝向高速緩存112中的LRU列表606中的最近使用端時,增強的自適應高速緩存應用程序110以類似方式對固態盤和硬盤起作用。
[0071]如果在方框804中確定該軌道不對應于存儲在固態盤中的數據,則控制前進到方框812,其中做出關于該軌道是否對應于存儲在硬盤106中的數據的確定。如果是,則(在方框814)增強的自適應高速緩存應用程序110基于存儲控制器102維持的標準,在執行從硬盤106到高速緩存112的部分軌道分段存儲、完整軌道分段存儲和記錄分段存儲之間進行選擇。在某些實施例中,用于選擇執行部分軌道分段存儲、完整軌道分段存儲或者記錄分段存儲的標準可以基于圖5所示的操作,其顯示何時分段存儲所請求的扇區/記錄504,何時分段存儲部分軌道508以及何時分段存儲完整軌道512。
[0072]如果在方框812處,做出該軌道不對應于存儲在硬盤106中的數據的確定,則(在方框816)該處理停止。控制也從方框808、810和814前進到該處理停止的方框816。
[0073]因此,圖1-8說明了在其中利用對固態盤的記錄高速緩存來增強對硬盤的部分軌道的分段存儲的某些實施例,其中,當固態盤軌道最近未被使用時,只對固態盤使用記錄高速緩存。可以注意到,在完整軌道分段存儲中,分段存儲整個軌道,在部分軌道分段存儲中,分段存儲從所請求的扇區起始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。某些實施例提供了一些條件,在這些條件下,由控制硬盤和固態盤兩者的存儲控制器執行部分軌道分段存儲、記錄分段存儲和/或完整軌道分段存儲。
[0074]附加實施例的詳細信息
[0075]所描述的操作可以使用標準的編程和/或工程技術生產出的軟件、固件、硬件或者任何上述的組合來實現為裝置、方法或計算機程序產品。因此,本發明的各個方面可以具體實現為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統稱為“電路”、“模塊”或“系統”。此外,本發明的各個方面還可以實現為在一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。
[0076]可以采用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件的上下文中,計算機可讀存儲介質可以是任何可包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0077]計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0078]計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0079]可以以一種或多種程序設計語言的任意組合來編寫用于執行本發明各方面操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java*、Smalltalk、C++等,還包括常規的過程式程序設計語言一諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括局域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
[0080]下面將參照根據本發明實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或框圖描述本發明各方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些計算機程序指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。
[0081]也可以把這些計算機程序指令存儲在計算機可讀介質中,這些指令使得計算機、其它可編程數據處理裝置、或其他設備以特定方式工作,從而,存儲在計算機可讀介質中的指令就產生出包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的指令的制造品(article of manufacture)0
[0082]計算機程序指令也可以被加載到計算機、其它可編程數據處理裝置或其它設備上,以引起在計算機、其它可編程裝置或其他設備上執行一系列操作步驟以產生計算機實現的處理,使得在計算機或其他可編程裝置上執行的指令能夠提供用于實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的處理。
[0083]圖9示出根據某些實施例的顯示了可以被包括在存儲控制器102或主機104a......104η中的某些元件的框圖。系統900可以包括存儲控制器102或主機104a……104η,并且可以包括電路902,其可在某些實施例中至少包括處理器904。該系統900還可以包括存儲器906 (例如,易失性存儲器設備)和貯存器908。貯存器908可包括非易失性存儲器設備(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、閃存、固件、可編程邏輯等)、磁盤驅動器、光盤驅動器、磁帶驅動器等。貯存器908可以包括內部存儲設備、附接存儲設備和/或網絡可訪問的存儲設備。系統900可以包括包含代碼912的程序邏輯910,代碼912可以被加載到存儲器906并由處理器904或電路902執行。在某些實施例中,包括代碼912的程序邏輯910可以被存儲在貯存器908中。在某些其它實施例中,程序邏輯910可以在電路902中實現。因此,雖然圖9顯示程序邏輯910與其它元件分離,但是程序邏輯910可以在存儲器906和/或電路902中實現。
[0084]某些實施例可針對一種用于通過人工或集成計算機可讀代碼的自動處理來將計算指令部署到計算系統的方法,其中所述代碼與所述計算系統相結合能夠執行所描述的實施例的操作。
[0085]除非明確地另有規定,術語“一實施例”、“實施例”、“多個實施例”、“該實施例”、“該多個實施例”、“一個或多個實施例”、“一些實施例”和“一個實施例”是指“本發明的一個或多個(但不是全部的)實施例”。
[0086]除非明確地另有規定,術語“包括”、“包含”、“具有”及其各種變型是指“包括但不
限于”。
[0087]除非明確地另有規定,列舉的項目列表并不意味著任何或全部項目是相互排斥的。
[0088]除非明確地另有規定,術語“一”、“一個”和“該”是指“一個或多個”。
[0089]除非明確地另有規定,相互通信的設備不需要彼此不斷地通信。此外,相互通信的設備可以通過一個或多個媒介直接或間接地通信。
[0090]對于具有若干相互通信的組件的實施例的描述,并不意味著需要所有這些組件。相反,描述了多種可選組件以說明本發明的各種可能的實施例。
[0091]此外,盡管可以以順序的次序描述處理步驟、方法步驟、算法等,但是這樣的處理、方法和算法可以被配置為以交替的順序工作。換句話說,所描述的步驟的任何順序或次序不一定表明要求該步驟以所述次序執行。可以任何可實現的次序來執行本文所描述的處理的步驟。此外,可以同時進行一些步驟。
[0092]當本文描述單個設備或物品時,顯然,可以使用多于一個的設備/物品(無論它們是否協作)來代替單個設備/物品。類似地,在本文描述的一個以上的設備或物品的地方(無論它們是否協作),顯然,可以使用單個設備/物品來代替多個設備或物品,或者可以使用不同數量的設備/物品來代替所顯示數量的設備或程序。設備的功能和/或特征可以可替換地由一個或多個沒有被明確描述為具有此類功能/特性的其它設備實施。因此,本發明的其它實施例不必包括設備本身。
[0093]可能已在附圖中所示的至少某些操作顯示以一定的次序發生的某些事件。在可替換實施例中,某些操作可以以不同的次序來執行、修改或刪除。此外,步驟可以被添加到上述邏輯并且仍然符合所描述的實施例。此外,本文所描述的操作可以順序地發生,或者可以并行地處理某些操作。更進一步地,可以由單個處理單元或通過分布式處理單元來執行所述操作。
[0094]已經為了說明和描述的目的而提出本發明的各種實施例的前述描述。并非旨在窮舉或將本發明限制為所公開的精確形式。根據上述教導許多修改和變型是可能的。意圖是,本發明的范圍不受該詳細描述的限制,而是由所附的權利要求書所限定。以上說明、示例和數據提供了本發明的組合物的制造和使用的完整描述。由于可以不脫離本發明的精神和范圍地做出本發明的許多實施例,因此本發明存在于所附的權利要求書中。
【權利要求】
1.一種方法,包括: 由存儲控制器接收對應于訪問高速緩存中的軌道的請求; 確定所述軌道是否對應于存儲在固態盤中的數據;以及 響應于確定所述軌道對應于存儲在固態盤中的數據,執行從固態盤到高速緩存的記錄分段存儲,其中每個軌道包括多個記錄。
2.根據權利要求 1所述的方法,所述方法進一步包括: 確定所述軌道是否對應于存儲在硬盤中的數據;以及 響應于確定所述軌道對應于存儲在硬盤中的數據,基于由存儲控制器維持的標準,在執行從硬盤到高速緩存的部分軌道分段存儲、完整軌道分段存儲和記錄分段存儲之中做出選擇,其中,在完整軌道分段存儲中分段存儲整個軌道,在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
3.根據權利要求1所述的方法,其中,當相對地最近沒有訪問軌道時,執行從固態盤的記錄分段存儲,并且當相對地最近訪問了所述軌道時,至少在執行部分軌道分段存儲和執行完整軌道分段存儲之中做出選擇。
4.根據權利要求1所述的方法,進一步包括: 維持軌道的最近最少使用的列表,其中,按照在高速緩存中對每個軌道的訪問,以單調遞增的順序為該列表中的每個軌道順序編號,然后放置在最近最少使用的列表中;以及基于預定的標準,確定最近是否使用了所選擇的軌道,所述預定的標準基于軌道的最近最少使用的列表中軌道的序列號、存儲在高速緩存中的那些軌道所消耗的高速緩存空間量和指示存儲量的閾值。
5.根據權利要求1所述的方法,其中: 記錄分段存儲被用作耦合到存儲控制器的固態盤的默認分段存儲操作;并且部分軌道分段存儲被用作耦合到存儲控制器的硬盤的默認分段存儲操作,其中在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
6.一種系統,包括: 存儲器;以及 耦合到所述存儲器的處理器,其中,所述處理器執行操作,所述操作包括: 接收對應于訪問高速緩存中的軌道的請求; 確定所述軌道是否對應于存儲在固態盤中的數據;以及 響應于確定所述軌道對應于存儲在固態盤中的數據,執行從固態盤到高速緩存的記錄分段存儲,其中每個軌道包括多個記錄。
7.根據權利要求6所述的系統,所述操作進一步包括: 確定所述軌道是否對應于存儲在硬盤中的數據;以及 響應于確定所述軌道對應于存儲在硬盤中的數據,基于維持的標準,在執行從硬盤到高速緩存的部分軌道分段存儲、完整軌道分段存儲和記錄分段存儲之中做出選擇,其中,在完整軌道分段存儲中分段存儲整個軌道,在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
8.根據權利要求6所述的系統,其中,當相對地最近沒有訪問軌道時,執行從固態盤的記錄分段存儲,并且當相對地最近訪問了所述軌道時,至少在執行部分軌道分段存儲和執行完整軌道分段存儲之中做出選擇。
9.根據權利要求6所述的系統,所述操作進一步包括: 維持軌道的最近最少使用的列表,其中,按照在高速緩存中對每個軌道的訪問,以單調遞增的順序為所述列表中的每個軌道順序編號,然后放置在最近最少使用的列表中;以及 基于預定的標準,確定最近是否使用了所選擇的軌道,所述預定的標準基于軌道的最近最少使用的列表中軌道的序列號、存儲在高速緩存中的那些軌道所消耗的高速緩存空間量和指示存儲量的閾值。
10.根據權利要求6所述的系統,其中: 記錄分段存儲被用作固態盤的默認分段存儲操作;并且 部分軌道分段存儲被用作硬盤的默認分段存儲操作,其中在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
11.一種與固態盤和硬盤通信的存儲控制器,所述存儲控制器包括: 處理器; 耦合到所述處理器的高速緩存,其中所述存儲控制器執行: 接收對應于訪問高速緩存中的軌道的請求; 確定所述軌道是否對應于存儲在固態盤中的數據;以及 響應于確定所述軌道對應于存儲在固態盤中的數據,執行從固態盤到高速緩存的記錄分段存儲,其中每個軌道包括多個記錄。
12.根據權利要求11所述的存儲控制器,其中所述存儲控制器進一步執行: 確定所述軌道是否對應于存儲在硬盤中的數據;以及 響應于確定所述軌道對應于存儲在硬盤中的數據,基于由存儲控制器維持的標準,在執行從硬盤到高速緩存的部分軌道分段存儲、完整軌道分段存儲和記錄分段存儲之中做出選擇,其中,在完整軌道分段存儲中分段存儲整個軌道,在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
13.根據權利要求11所述的存儲控制器,其中,當相對地最近沒有訪問軌道時,執行從固態盤的記錄分段存儲,并且當相對地最近訪問了所述軌道時,至少在執行部分軌道分段存儲和執行完整軌道分段存儲之中做出選擇。
14.根據權利要求11所述的存儲控制器,其中,所述存儲控制器進一步執行:維持軌道的最近最少使用的列表,其中,按照在高速緩存中對每個軌道的訪問,以單調遞增的順序為所述列表中的每個軌道順序編號,然后放置在最近最少使用的列表中;以及 基于預定的標準,確定最近是否使用了所選擇的軌道,所述預定的標準基于軌道的最近最少使用的列表中軌道的序列號、存儲在高速緩存中的那些軌道所消耗的高速緩存空間量和指示存儲量的閾值。
15.根據權利要求11所述的存儲控制器,其中: 記錄分段存儲被用作耦合到存儲控制器的固態盤的默認分段存儲操作;并且部分軌道分段存儲被用作耦合到存儲控制器的硬盤的默認分段存儲操作,其中在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
16.一種計算機程序產品,所述計算機程序產品包括: 計算機可讀存儲介質,其上包含計算機可讀程序代碼,所述計算機可讀程序代碼被配置為執行操作,所述操作包括: 由存儲控制器接收對應于訪問高速緩存中的軌道的請求; 確定所述軌道是否對應于存儲在固態盤中的數據;以及 響應于確定所述軌道對應于存儲在固態盤中的數據,執行從固態盤到高速緩存的記錄分段存儲,其中每個軌道包括多個記錄。
17.根據權利要求16所述的計算機程序產品,所述操作進一步包括: 確定所述軌道是否對應于存儲在硬盤中的數據;以及 響應于確定所述軌道對應于存儲在硬盤中的數據,基于由存儲控制器維持的標準,在執行從硬盤到高速緩存的部分軌道分段存儲、完整軌道分段存儲和記錄分段存儲之中做出選擇,其中,在完整軌道分段存儲中分段存儲整個軌道,在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
18.根據權利要求16所述的計算機程序產品,其中,當相對地最近沒有訪問軌道時,執行從固態盤的記錄分段存儲,`并且當相對地最近訪問了所述軌道時,至少在執行部分軌道分段存儲和執行完整軌道分段存儲之中做出選擇。
19.根據權利要求16所述的計算機程序產品,所述操作進一步包括:維持軌道的最近最少使用的列表,其中,按照在高速緩存中對每個軌道的訪問,以單調遞增的順序為所述列表中的每個軌道順序編號,然后放置在最近最少使用的列表中;以及基于預定的標準,確定最近是否使用了所選擇的軌道,所述預定的標準基于軌道的最近最少使用的列表中軌道的序列號、存儲在高速緩存中的那些軌道所消耗的高速緩存空間量和指示存儲量的閾值。
20.根據權利要求16所述的計算機程序產品,其中: 記錄分段存儲被用作耦合到存儲控制器的固態盤的默認分段存儲操作;并且部分軌道分段存儲被用作耦合到存儲控制器的硬盤的默認分段存儲操作,其中在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
21.一種用于部署計算基礎設施的方法,包括將計算機可讀代碼集成到存儲控制器中,其中所述代碼結合存儲控制器執行操作,所述操作包括: 由存儲控制器接收對應于訪問高速緩存中的軌道的請求; 確定所述軌道是否對應于存儲在固態盤中的數據;以及 響應于確定所述軌道對應于存儲在固態盤上的數據,執行從固態盤到高速緩存的記錄分段存儲,其中每個軌道包括多個記錄。
22.根據權利要求21所述的部署計算基礎設施的方法,所述操作進一步包括: 確定所述軌道是否對應于存儲在硬盤中的數據;以及響應于確定所述軌道對應于存儲在硬盤中的數據,基于由存儲控制器維持的標準,在執行從硬盤到高速緩存的部分軌道分段存儲、完整軌道分段存儲和記錄分段存儲之中做出選擇,其中,在完整軌道分段存儲中分段存儲整個軌道,在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區。
23.根據權利要求21所述的部署計算基礎設施的方法,其中,當相對地最近沒有訪問軌道時,執行從固態盤的記錄分段存儲,并且當相對地最近訪問了所述軌道時,至少在執行部分軌道分段存儲和執行完整軌道分段存儲之中做出選擇。
24.根據權利要求21所述的部署計算基礎設施的方法,所述操作進一步包括: 維持軌道的最近最少使用的列表,其中,按照在高速緩存中對每個軌道的訪問,以單調遞增的順序為所述列表中的每個軌道順序編號,然后放置在最近最少使用的列表中;以及 基于預定的標準,確定最近是否使用了所選擇的軌道,所述預定的標準基于軌道的最近最少使用的列表中軌道的序列號、存儲在高速緩存中的那些軌道所消耗的高速緩存空間量和指示存儲量的閾值。
25.根據權利要求21所述的部署計算基礎設施的方法,其中: 記錄分段存儲被用作耦合到存儲控制器的固態盤的默認分段存儲操作;并且 部分軌道分段存儲被用作耦合到存儲控制器的硬盤的默認分段存儲操作,其中在部分軌道分段存儲中分段存儲從所請求的扇區的起始開始到軌道末尾的所有扇區,在記錄分段存儲中只分段存儲所請求的扇區`。
【文檔編號】G11C7/00GK103688249SQ201280035909
【公開日】2014年3月26日 申請日期:2012年6月26日 優先權日:2011年7月26日
【發明者】M.T.本哈斯, L.M.古普塔, J.S.海德二世, L.C.拉弗里斯 申請人:國際商業機器公司