預(yù)取用于使更新軌道離臺的數(shù)據(jù)軌道和奇偶校驗(yàn)數(shù)據(jù)的制作方法
【專利摘要】提供了一種用于預(yù)取用于使更新軌道離臺的數(shù)據(jù)軌道和奇偶校驗(yàn)數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品、系統(tǒng)和方法。接收對軌道組的包含至少一個(gè)更新軌道的寫入請求。所述至少一個(gè)更新軌道被存儲在第一高速緩存設(shè)備中。預(yù)取請求被發(fā)送至至少一個(gè)順序存取存儲設(shè)備,以將所述軌道組中的軌道預(yù)取至第二高速緩存設(shè)備。在發(fā)送預(yù)取請求之后,讀取請求被生成以讀取預(yù)取軌道。從第二高速緩存設(shè)備返回至所述讀取請求的、所讀取的預(yù)取軌道被存儲在第一高速緩存設(shè)備中。從所述至少一個(gè)更新軌道和所讀取的預(yù)取軌道計(jì)算新的奇偶校驗(yàn)數(shù)據(jù)。
【專利說明】預(yù)取用于使更新軌道離臺的數(shù)據(jù)軌道和奇偶校驗(yàn)數(shù)據(jù)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種預(yù)取用于使更新軌道離臺的數(shù)據(jù)軌道和奇偶校驗(yàn)數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品、系統(tǒng)和方法。
【背景技術(shù)】
[0002]在獨(dú)立磁盤冗余陣列(RAID)存儲系統(tǒng)中,來自文件的數(shù)據(jù)被存儲在跨不同的磁盤驅(qū)動(dòng)而分布的軌道中。步幅(stride)包括軌道和從跨磁盤驅(qū)動(dòng)而條帶狀分布(stripe)的軌道計(jì)算的奇偶校驗(yàn)數(shù)據(jù)。RAID控制器使軌道跨被配置為RAID設(shè)備的磁盤而條帶狀分布,同時(shí)將所述軌道寫入磁盤,計(jì)算被寫入一個(gè)或多個(gè)磁盤的奇偶校驗(yàn)(或校驗(yàn)和)值。所述奇偶校驗(yàn)數(shù)據(jù)可以通過多個(gè)磁盤上的用戶數(shù)據(jù)而條帶狀分布或交織。利用所述奇偶校驗(yàn),如果一個(gè)或多個(gè)磁盤出現(xiàn)故障,則故障磁盤上的數(shù)據(jù)可以用算法恢復(fù),所述算法結(jié)合奇偶校驗(yàn)數(shù)據(jù)和幸存磁盤上的數(shù)據(jù)以重建故障磁盤上的數(shù)據(jù)。
[0003]當(dāng)存儲控制器接收到對RAID步幅中的一個(gè)或多個(gè)軌道的寫入時(shí),更新軌道被存儲在高速緩存中,直到?jīng)Q定將更新軌道離臺(destage)至步幅被條帶狀分布所跨的一個(gè)或多個(gè)存儲設(shè)備為止。如果在包含更新軌道的步幅中不是所有軌道都被保持在高速緩存中,則RAID控制器需要讀取除更新軌道之外的舊軌道、以及舊的奇偶校驗(yàn)數(shù)據(jù),以便將包含更新軌道的整個(gè)步幅重寫至磁盤,并計(jì)算新的奇偶校驗(yàn)以在數(shù)據(jù)軌道被寫入時(shí)寫入。因此,當(dāng)存儲控制器準(zhǔn)備離臺時(shí),其需要執(zhí)行額外的讀取,并且直到所要求的舊軌道和舊的奇偶校驗(yàn)被讀取時(shí)才能執(zhí)行離臺操作。所述RAID控制器必須讀取舊的數(shù)據(jù)軌道和舊的奇偶校驗(yàn)數(shù)據(jù),然后將舊軌道和更新軌道相比較,更新奇偶校驗(yàn)數(shù)據(jù),再然后將整個(gè)步幅和數(shù)據(jù)寫入回至磁盤驅(qū)動(dòng)。
【發(fā)明內(nèi)容】
[0004]提供了一種預(yù)取用于使更新軌道離臺的數(shù)據(jù)軌道和奇偶校驗(yàn)數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品、系統(tǒng)和方法。接收對軌道組的包含至少一個(gè)更新軌道的寫入請求。所述至少一個(gè)更新軌道被存儲在第一高速緩存設(shè)備中。預(yù)取請求被發(fā)送至至少一個(gè)順序存取存儲設(shè)備,以將軌道組中的軌道預(yù)取至第二高速緩存設(shè)備。在發(fā)送預(yù)取請求之后生成讀取請求,以讀取預(yù)取軌道。從第二高速緩存設(shè)備返回至所述讀取請求的所讀取的預(yù)取軌道被存儲在第一高速緩存設(shè)備中。從所述至少一個(gè)更新軌道和所讀取的預(yù)取軌道計(jì)算新的奇偶校驗(yàn)數(shù)據(jù)。
[0005]優(yōu)選地,提供了一種系統(tǒng),包括:具有多個(gè)順序存取存儲設(shè)備的存儲裝置,其中軌道的步幅和奇偶校驗(yàn)數(shù)據(jù)跨所述順序存取存儲設(shè)備而條帶狀分布,其中順序存取存儲設(shè)備各自具有非易失性存儲設(shè)備、與該存儲裝置通信的存儲控制器,其包括:處理器、高速緩存設(shè)備、在其上包含由處理器運(yùn)行以執(zhí)行操作的計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲介質(zhì),所述操作包括:接收對被請求的步幅軌道的包含至少一個(gè)更新軌道的寫入請求;在高速緩存設(shè)備中存儲所述至少一個(gè)更新軌道;發(fā)送預(yù)取請求至至少一個(gè)所述順序存取存儲設(shè)備,以將被請求的步幅中的軌道預(yù)取至預(yù)取請求被發(fā)送至的每個(gè)順序存取存儲設(shè)備中的非易失性存儲設(shè)備;在發(fā)送預(yù)取請求之后,為預(yù)取請求被發(fā)送至的每個(gè)順序存取存儲設(shè)備生成讀取請求,以讀取預(yù)取軌道;將從非易失性存儲設(shè)備返回至所述讀取請求的、所讀取的預(yù)取軌道存儲在高速緩存設(shè)備中;以及從所述至少一個(gè)更新軌道和所讀取的預(yù)取軌道計(jì)算新的奇偶校驗(yàn)數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0006]現(xiàn)在,將參考如以下附圖中所圖示的本發(fā)明的優(yōu)選實(shí)施例,僅通過示例來描述本發(fā)明:
[0007]圖1圖示了計(jì)算環(huán)境的實(shí)施例;
[0008]圖2圖示了第一高速緩存管理信息的實(shí)施例;
[0009]圖3圖示了第二高速緩存管理信息的實(shí)施例;
[0010]圖4圖示了順序存取存儲設(shè)備的實(shí)施例;
[0011]圖5圖示了第一高速緩存控制塊的實(shí)施例;
[0012]圖6圖示了第二高速緩存控制塊的實(shí)施例;
[0013]圖7圖示了非易失性存儲高速緩存控制塊的實(shí)施例;
[0014]圖8圖示了空間索引條目的實(shí)施例;
[0015]圖9圖示了具有順序存取存儲設(shè)備的存儲裝置的實(shí)施例;
[0016]圖10圖示了存儲系統(tǒng)RAID配置信息的實(shí)施例;
[0017]圖11圖示了預(yù)取請求的實(shí)施例;
[0018]圖12圖示了處理包括對軌道組(如步幅)的更新軌道的寫入請求、并使更新軌道離臺的操作的實(shí)施例;
[0019]圖13和圖14圖示了處理讀取請求以讀取預(yù)取軌道的操作的實(shí)施例。
【具體實(shí)施方式】
[0020]圖1圖示了計(jì)算環(huán)境的實(shí)施例。多個(gè)主機(jī)2a、2b"?2n可以通過網(wǎng)絡(luò)6向存儲控制器4提交輸入/輸出(I/O)請求以存取存儲裝置10中卷8 (例如,邏輯單元號、邏輯設(shè)備、邏輯子系統(tǒng)等)的數(shù)據(jù)。所述存儲控制器4包括處理器復(fù)合體12 (其包括一個(gè)或多個(gè)具有單個(gè)或多個(gè)核心的處理器)、第一高速緩存14、用以備份高速緩存14中的軌道的第一高速緩存?zhèn)浞菰O(shè)備16、以及第二高速緩存18。第一高速緩存14和第二高速緩存18緩存在主機(jī)2a、2b…2n和存儲裝置10之間轉(zhuǎn)移的數(shù)據(jù)。第一高速緩存?zhèn)浞菰O(shè)備16可提供第一高速緩存14中的軌道的非易失性存儲。在另外的實(shí)施例中,第一高速緩存?zhèn)浞菰O(shè)備16可以位于與第一高速緩存14不同的電源邊界(power boundary)上的集群或硬件中。
[0021]所述存儲控制器4具有:存儲器20,其包括用于管理在主機(jī)2a、2b-2n和存儲裝置10之間轉(zhuǎn)移的軌道的轉(zhuǎn)移的存儲管理器22、和管理在第一高速緩存14、第一高速緩存?zhèn)浞菰O(shè)備16和第二高速緩存18中的、在主機(jī)2a、2b…2n和存儲裝置10之間轉(zhuǎn)移的數(shù)據(jù)的高速緩存管理器24。軌道可以包括在存儲裝置10中配置的任意數(shù)據(jù)單元,諸如軌道、邏輯塊地址(LBA)等,其是諸如卷、邏輯設(shè)備等的更大的軌道組的一部分。高速緩存管理器24維持第一高速緩存管理信息26和第二高速緩存管理信息28,以管理第一高速緩存14和第二高速緩存18中的讀取(未被修改)和寫入(被修改)軌道。第一高速緩存?zhèn)浞菰O(shè)備索引30提供了對于第一高速緩存?zhèn)浞菰O(shè)備16中的位置的軌道標(biāo)識符的索引。
[0022]存儲管理器22和高速緩存管理器24在圖1中所示為被加載到存儲器20并由處理器復(fù)合體12運(yùn)行的程序代碼?;蛘撸恍┗蛩泄δ芸梢栽诖鎯刂破?中的硬件設(shè)備中實(shí)現(xiàn),諸如在專用集成電路(ASIC)中。
[0023]第二高速緩存18可以在日志結(jié)構(gòu)陣列(LSA)32中存儲軌道,其中軌道以被接收的順序次序被寫入,由此提供了軌道被寫入第二高速緩存18的時(shí)間次序。在LSA中,已經(jīng)出現(xiàn)在LSA中的軌道的之后版本被寫入LSA32的端部。在另外的實(shí)施例中,第二高速緩存18可以用除了 LSA中的格式之外的格式存儲數(shù)據(jù)。
[0024]存儲器20還包括存儲裝置RAID配置信息36,其提供了有關(guān)對于存儲裝置10的RAID配置的信息,該信息被存儲管理器22用于確定如何形成寫入存儲系統(tǒng)10的步幅,其中所述步幅中的軌道跨存儲系統(tǒng)10的存儲設(shè)備而條帶狀分布。在這樣的RAID實(shí)施例中,存儲管理器22可以實(shí)現(xiàn)RAID控制器操作。
[0025]在一個(gè)實(shí)施例中,第一高速緩存14可以包括隨機(jī)存取存儲器(RAM),諸如動(dòng)態(tài)隨機(jī)存取存儲器(DRAM),第二高速緩存18可以包括閃存,諸如固態(tài)器件,并且,存儲裝置10包括一個(gè)或多個(gè)順序存取存儲設(shè)備,諸如硬盤驅(qū)動(dòng)和磁帶。存儲裝置10可以包括單個(gè)順序存取存儲設(shè)備、或可以包括存儲設(shè)備陣列,諸如簡單磁盤捆綁(JB0D)、直接存取存儲設(shè)備(DASD)、獨(dú)立磁盤冗余陣列(RAID)陣列、虛擬化設(shè)備等。在一個(gè)實(shí)施例中,第一高速緩存14是比第二高速緩存18更快的存取設(shè)備,第二高速緩存18是比存儲裝置10更快的存取設(shè)備。而且,第一高速緩存14可能具有比第二高速緩存18更高的單位存儲成本,第二高速緩存18可能具有比存儲裝置10中的存儲設(shè)備更高的單位存儲成本。
[0026]第一高速緩存14可以是存儲器20的一部分或在諸如DRAM的單獨(dú)的存儲器設(shè)備中實(shí)現(xiàn)。在一個(gè)實(shí)施例中,第一高速緩存?zhèn)浞菰O(shè)備16可以包括非易失性備份存儲裝置(NVS),諸如非易失性存儲器,例如,電池備份隨機(jī)存取存儲器(RAM)、靜態(tài)RAM (SRAM)等。
[0027]網(wǎng)絡(luò)6可以包括存儲區(qū)域網(wǎng)絡(luò)(SAN)、局域網(wǎng)絡(luò)(LAN)、廣域網(wǎng)絡(luò)(WAN)、因特網(wǎng)和內(nèi)部網(wǎng),等等。
[0028]圖2圖示了第一高速緩存管理信息26的實(shí)施例,其包括:軌道索引50,其向控制塊目錄52中的控制塊提供第一高速緩存14中的軌道的索引;未被修改的順序LRU列表54,其提供第一高速緩存14中的未被修改的順序軌道的時(shí)間次序;被修改的LRU列表56,其提供第一高速緩存14中的被修改的順序和非順序軌道的時(shí)間次序;以及未被修改的非順序LRU列表58,其提供第一高速緩存14中未被修改的非順序軌道的時(shí)間次序。
[0029]在某些實(shí)施例中,一旦確定第一高速緩存?zhèn)浞菰O(shè)備16是滿的,則被修改的LRU列表56被用于使被修改的軌道從第一高速緩存14離臺,使得那些軌道在第一高速緩存?zhèn)浞菰O(shè)備16中的拷貝可以被丟棄,從而在第一高速緩存?zhèn)浞菰O(shè)備16中為新的被修改的軌道騰出空間。
[0030]圖3圖示了第二高速緩存管理信息28的實(shí)施例,其包括:軌道索引70,其向控制塊目錄72中的控制塊提供第二高速緩存18中的軌道的索引;未被修改的列表74,其提供第二高速緩存18中的未被修改的軌道的時(shí)間次序;以及空間索引76,其基于被修改的軌道在存儲裝置10中存儲的物理位置,提供第二高速緩存18中的被修改的軌道的空間次序。
[0031]所有LRU列表54、56、58和74都可以包括根據(jù)被識別的軌道上次被存取的時(shí)間而排序的第一高速緩存14和第二高速緩存18中的軌道的軌道ID。LRU列表54、56、58和74具有指示最近被存取的軌道的最近使用的(MRU)端、和指示最近最少使用或存取的軌道的LRU端。將添加至高速緩存14和18的軌道的軌道ID添加至LRU列表的MRU端,而從LRU端存取從高速緩存14和18降級(demote)的軌道。軌道索引50和70和空間索引76可以包括散點(diǎn)(scatter)索引表(SIT)。替代的類型數(shù)據(jù)結(jié)構(gòu)可以被用于提供高速緩存14和18中的軌道的時(shí)間次序以及第二高速緩存18中的軌道的空間次序。
[0032]非順序軌道可以包括聯(lián)機(jī)事務(wù)處理(OLTP)軌道,其通常包括不完全隨機(jī)且具有一些引用的地方(some locality of reference)(即,具有被重復(fù)存取的可能性)的小塊寫入。
[0033]圖4圖示了順序存取存儲設(shè)備100的實(shí)施例,其中存儲裝置10可以由一個(gè)或多個(gè)順序存取存儲設(shè)備100實(shí)現(xiàn)。順序存取存儲設(shè)備100包括示出為I/O管理器102的控制邏輯、用以緩沖被修改的數(shù)據(jù)的非易失性存儲設(shè)備104、和存儲器106,存儲器106包括:軌道索引108,其向控制塊目錄110中的控制塊提供非易失性存儲設(shè)備104中的軌道的索引的;空間索引112,其提供非易失性存儲設(shè)備104中的軌道(讀取和寫入)在順序存取存儲介質(zhì)114中存儲將被讀取或?qū)懭氲能壍赖奈锢砦恢蒙系目臻g次序;以及請求隊(duì)列116,在其中讀取和寫入請求被排隊(duì)。請求隊(duì)列116中的條目可以識別請求的類型(讀取或?qū)懭?和被請求的軌道,被請求的軌道在順序存取存儲介質(zhì)114上的位置可以從空間索引112確定。I/O管理器102將讀取和寫入請求添加到請求隊(duì)列112,并從請求隊(duì)列112存取讀取和寫入請求以針對順序存取存儲介質(zhì)114執(zhí)行。I/O管理器102可以發(fā)送命令至讀取/寫入控制單元118,其生成控制信號,以將一個(gè)或多個(gè)具有讀取/寫入頭120的致動(dòng)器(actuator)移動(dòng)到數(shù)據(jù)在順序存取存儲介質(zhì)114上可以被讀取或?qū)懭氲奈恢谩?br>
[0034]存儲器106還包括優(yōu)先級讀取隊(duì)列122,用以緩沖高優(yōu)先級的讀取請求。較低的或不高的優(yōu)先級的讀取請求被添加到請求隊(duì)列116。存儲控制器4可以在被提交到順序存取存儲設(shè)備100的讀取請求的報(bào)頭字段中指示該讀取請求的優(yōu)先級。在某些實(shí)施例中,優(yōu)先級讀取隊(duì)列122和請求隊(duì)列116中的讀取請求基于時(shí)間次序或它們被添加到隊(duì)列116和122的次序被讀取,其中所述隊(duì)列可以包括LRU隊(duì)列。離臺請求基于寫入請求被接收的時(shí)間次序被添加到請求隊(duì)列116?;诳臻g索引112處理非易失性存儲設(shè)備104中的被修改的軌道和請求隊(duì)列116中的讀取請求,所以當(dāng)在請求隊(duì)列116中處理離臺或讀取請求時(shí),基于讀取/寫入頭120的當(dāng)前位置,使用空間索引112選擇將被離臺或讀取的軌道。由此,雖然讀取請求和離臺請求根據(jù)時(shí)間次序被添加到請求隊(duì)列116,但是它們在請求隊(duì)列116中基于它們在順序存取存儲介質(zhì)114中相對于讀取/寫入頭120的位置而被處理,以最小化讀取/寫入頭120搜尋和介質(zhì)114旋轉(zhuǎn)以存取將被讀取或?qū)懭氲能壍牢恢玫臅r(shí)間。
[0035]設(shè)備100中的緩沖器124可以臨時(shí)緩沖讀取和寫入輸入請求和被返回至讀取請求的數(shù)據(jù)。緩沖器124也可以用于臨時(shí)緩沖對于不在非易失性存儲設(shè)備中維持的寫入請求(諸如,對于順序?qū)懭胝埱蠛退鼈儽恍薷牡臄?shù)據(jù))的被修改的軌道。緩沖器124可以在非易失性存儲設(shè)備104之外的單獨(dú)的設(shè)備中,并且可以包括比非易失性存儲設(shè)備104中可用的存儲空間更小的存儲空間?;蛘?,一些或所有緩沖器124可以在非易失性存儲設(shè)備中實(shí)現(xiàn)。
[0036]非易失性存儲裝置(NVS) LRU列表126提供對于非易失性存儲設(shè)備104中緩沖的軌道的LRU隊(duì)列,其包括要寫入順序存取存儲介質(zhì)114的被修改的軌道和預(yù)取軌道。NVSLRU列表126可以用于確定在非易失性存儲設(shè)備104中的空間需要被釋放的情況下從非易失性存儲設(shè)備104移除的軌道。
[0037]順序存取存儲介質(zhì)114可以包括用于硬盤驅(qū)動(dòng)設(shè)備的一個(gè)或多個(gè)硬盤驅(qū)動(dòng)盤片、或磁帶。在某些實(shí)施例中,非易失性存儲設(shè)備104可以包括閃存設(shè)備(其包含固態(tài)存儲裝置)。在某些實(shí)施例中,在包括順序存取存儲設(shè)備100的部件的附件(enclosure)內(nèi),在順序存取存儲設(shè)備100的電路板上實(shí)現(xiàn)非易失性存儲設(shè)備104 (例如閃存)。例如,可以包括8GB閃存設(shè)備。
[0038]I/O管理器102的一些或所有功能可以實(shí)現(xiàn)為由順序存取存儲設(shè)備100中的處理器運(yùn)行的代碼?;蛘撸琁/o管理器102的一些或所有功能可以在順序存取存儲設(shè)備100上的ASIC中實(shí)現(xiàn)。
[0039]在順序存取存儲設(shè)備100包括非易失性存儲設(shè)備104的一個(gè)實(shí)施例中,存儲控制器4可以僅包括第一高速緩存14,而不包括第二高速緩存18,因?yàn)榈诙壐咚倬彺鎸?shí)現(xiàn)為順序存取存儲設(shè)備100中的非易失性存儲設(shè)備104。而且,在存儲控制器4包括第一高速緩存14和第二高速緩存18的實(shí)施例中,順序存取存儲設(shè)備100可以包括或可以不包括非易失性存儲設(shè)備104。
[0040]圖5圖示了控制塊目錄52中的第一高速緩存控制塊150條目的實(shí)施例,其包括控制塊標(biāo)識符(ID) 152、軌道在第一高速緩存14中的物理位置的第一高速緩存位置154、指示所述軌道被修改或未被修改的信息156、以及指示所述軌道是順序或非順序存取的信息158。
[0041]圖6圖示了第二高速緩存控制塊目錄72中的第二高速緩存控制塊160條目的實(shí)施例,其包括控制塊標(biāo)識符(ID) 162和軌道在LSA32中所處的LSA位置164。在某些實(shí)施例中,第二高速緩存控制塊160還可以包括預(yù)取標(biāo)志166,其指示所述軌道是否用于預(yù)取操作,以便預(yù)取軌道可以在第二高速緩存18中被維持更久以可用于將需要預(yù)取軌道的讀取。未被修改的LRU列表74可以識別從第一高速緩存14被降級且提升至第二高速緩存18的未被修改的非順序軌道、以及從存儲裝置10讀取以預(yù)取用于接下來的操作的預(yù)取軌道。
[0042]圖7圖示了非易失性存儲設(shè)備104的控制塊目錄110中的非易失性存儲控制塊170條目的實(shí)施例,其包括控制塊標(biāo)識符(ID)172和軌道所處的物理位置174,諸如,如果所述軌道被存儲在非易失性存儲設(shè)備上的LSA中則為LSA位置。在某些實(shí)施例中,非易失性存儲控制塊170可以包括預(yù)取標(biāo)志176,其指示所述軌道是否被從順序存取存儲介質(zhì)114中讀取并置于非易失性存儲設(shè)備104中而作為預(yù)取操作的一部分。在某些實(shí)施例中,作為預(yù)取操作的一部分而從順序存取存儲介質(zhì)114中讀取的軌道可以在被移除以釋放空間之前在非易失性存儲設(shè)備104中被維持更久。
[0043]圖8圖示了空間索引條目180,其包括非易失性存儲設(shè)備104中的軌道的軌道標(biāo)識符182、和將被讀取或?qū)懭氲能壍涝陧樞虼嫒〈鎯橘|(zhì)114中被存儲的物理位置184 (諸如柱面(cylinder)、盤片號、柱面上角位置等)。
[0044]在實(shí)施例中,請求隊(duì)列116可以包括基于數(shù)據(jù)在順序存取存儲介質(zhì)上的位置的空間次序選擇用于處理的低優(yōu)先級讀取請求和寫入請求。當(dāng)順序存取存儲設(shè)備100包括硬盤驅(qū)動(dòng)且順序存取存儲介質(zhì)114包括磁盤時(shí),空間索引112指示軌道在磁盤上的柱面。為了確定請求隊(duì)列116中能夠以最少的時(shí)間從讀取/寫入頭120的當(dāng)前位置存取的軌道,I/O管理器102可以分析空間索引112中將被讀取或?qū)懭氲能壍赖闹婧徒俏恢茫怨烙?jì)讀取/寫入頭120搜尋到軌道的柱面和旋轉(zhuǎn)讀取/寫入頭之下的磁盤以到達(dá)所要求的軌道的角位置的時(shí)間。接著,I/o管理器可以選擇請求隊(duì)列116中具有最小估計(jì)存取時(shí)間的軌道。
[0045]優(yōu)先級讀取隊(duì)列122可以包括高優(yōu)先級讀取請求,并且優(yōu)先級讀取隊(duì)列122中的請求可以以比請求隊(duì)列116中的請求更高的優(yōu)先級被處理。
[0046]在其它實(shí)施例中,順序存取存儲設(shè)備114可以包括具有多個(gè)磁盤盤片和用于寫入各個(gè)盤片的多個(gè)寫入頭的硬盤驅(qū)動(dòng)。I/O管理器102可以確定從寫入頭的當(dāng)前位置搜尋和旋轉(zhuǎn)到每個(gè)磁盤盤片上的每個(gè)被修改的軌道的估計(jì)時(shí)間,以選擇具有最小估計(jì)時(shí)間的被修改的軌道以跨磁盤盤片而進(jìn)行存取。
[0047]在替代實(shí)施例中,請求隊(duì)列116中的較低優(yōu)先級請求可以根據(jù)被要求的軌道的時(shí)間次序(而不僅僅是空間次序)被處理。
[0048]另外,如果I/O管理器104確定需要執(zhí)行離臺操作以使非易失性存儲設(shè)備104中的被修改的軌道離臺至順序存取存儲介質(zhì)114以釋放非易失性存儲設(shè)備104中的空間,則離臺操作可以中斷對優(yōu)先級讀取隊(duì)列122和請求隊(duì)列116中的請求的處理。
[0049]圖9圖示了圖1的存儲裝置10的實(shí)施例,其包括順序存取存儲設(shè)備200的陣列,其中每個(gè)順序存取存儲設(shè)備200可以包括順序存取存儲設(shè)備100或其它順序存取存儲設(shè)備。存儲管理器22可以包括RAID控制器以跨順序存取存儲設(shè)備200而條帶狀分布步幅中的軌道和奇偶校驗(yàn)數(shù)據(jù)。
[0050]圖10圖示了存儲裝置RAID配置36的實(shí)施例,其被維持以確定如何形成第一高速緩存14中的被修改的軌道離臺至存儲裝置10的步幅。RAID級別230指示使用的RAID配置,存儲用戶數(shù)據(jù)的軌道的數(shù)據(jù)磁盤(m) 232的數(shù)目、以及存儲從數(shù)據(jù)磁盤522計(jì)算的奇偶校驗(yàn)的奇偶校驗(yàn)磁盤(P) 234的數(shù)目(其中P可以是一個(gè)或多個(gè))指示用于存儲所計(jì)算的奇偶校驗(yàn)塊的磁盤的數(shù)目。來自第一高速緩存14的軌道的步幅可以跨存儲系統(tǒng)10中的磁盤200而條帶狀分布。在替代實(shí)施例中,所述軌道和任意奇偶校驗(yàn)數(shù)據(jù)可以以組被排列,所述組不局限于RAID步幅,而可以是用于對數(shù)據(jù)進(jìn)行分組以跨磁盤而寫入的其它組類型。
[0051]圖11圖示了預(yù)取請求250的實(shí)施例,其包括預(yù)取請求252操作代碼、指示順序存取存儲介質(zhì)114中開始預(yù)取的起始軌道的軌道地址254、以及指示預(yù)取開始的轉(zhuǎn)移長度256。
[0052]圖12圖示了由存儲管理器22和高速緩存管理器24執(zhí)行的操作的實(shí)施例,其管理具有對于跨順序存取存儲設(shè)備200而條帶狀分布的步幅中的軌道的更新軌道的寫入請求。一旦接收到(在塊300)包括更新軌道的寫入請求,存儲管理器22可以將更新軌道存儲(在塊302)在第一高速緩存14、或第一高速緩存設(shè)備中。因?yàn)樯院笮枰椒械钠渌壍篮推媾夹r?yàn)數(shù)據(jù)以使更新軌道離臺以便為該步幅計(jì)算新的奇偶校驗(yàn),所以存儲管理器22對于每個(gè)非順序存取存儲設(shè)備100生成(在塊304)包括至少一個(gè)順序存取存儲設(shè)備中的軌道和奇偶校驗(yàn)數(shù)據(jù)至第二高速緩存設(shè)備的預(yù)取請求250。所述預(yù)取軌道可以包括步幅中除了由寫入請求更新的軌道之外的軌道、和用于該步幅的奇偶校驗(yàn)數(shù)據(jù)。在一個(gè)實(shí)施例中,第二高速緩存設(shè)備可以包括存儲控制器4中的第二高速緩存18、或者可以替代地包括順序存取存儲設(shè)備100中的非易失性存儲設(shè)備104 (圖4)。
[0053]高速緩存管理器24可以發(fā)起(在塊306)使第一高速緩存14中的更新軌道離臺的操作以便釋放第一高速緩存14中的空間。在這種情況下,存儲管理器22接著可能需要存取預(yù)取軌道以便寫入條帶狀的所有軌道(其包括更新軌道),并計(jì)算用于該步幅的奇偶校驗(yàn)。為了獲取舊的軌道和舊的奇偶校驗(yàn),存儲管理器22生成(在塊308)至少一個(gè)讀取請求,以讀取來自第二高速緩存設(shè)備(第二高速緩存18或非易失性存儲設(shè)備104)的預(yù)取軌道。所讀取的從第二高速緩存設(shè)備18、104返回到讀取請求的預(yù)取軌道被存儲(在塊310)在第一高速緩存設(shè)備14中。存儲管理器22從至少一個(gè)更新軌道和所讀取的預(yù)取軌道(包括奇偶校驗(yàn)數(shù)據(jù))計(jì)算(在塊312)新的奇偶校驗(yàn)數(shù)據(jù),并使包括更新軌道和所讀取的預(yù)取軌道的軌道步幅和新的奇偶校驗(yàn)數(shù)據(jù)離臺(在塊314)至至少一個(gè)順序存取存儲設(shè)備200。
[0054]在一個(gè)實(shí)施例中,當(dāng)軌道被跨順序存取存儲設(shè)備200而條帶狀分布時(shí),存儲管理器22可以根據(jù)RAID算法(諸如RAID5或某個(gè)其它RAID級別)計(jì)算奇偶校驗(yàn)數(shù)據(jù)。
[0055]圖13圖示了當(dāng)?shù)谝缓偷诙咚倬彺嬖O(shè)備分別包括存儲控制器4中的第一高速緩存14和第二高速緩存18時(shí)、高速緩存管理器24處理來自存儲管理器22的讀取請求的操作的實(shí)施例。在圖13的實(shí)施例中,順序存取存儲設(shè)備100可以包括或可以不包括非易失性存儲設(shè)備104。一旦處理(在塊350)讀取請求,高速緩存管理器24 (或存儲管理器22)就確定(在塊352)預(yù)取軌道是否在第二高速緩存18中。當(dāng)與更新軌道結(jié)合時(shí),如果(在塊354)第二高速緩存18中的一些或所有預(yù)取軌道被需要以形成全步幅,則高速緩存管理器24將預(yù)取軌道從第二高速緩存18提升(在塊356)至第一高速緩存14,用于預(yù)取第二高速緩存18中的軌道。如果(在塊358)在第二高速緩存18中沒有為了形成步幅而所需要的一些預(yù)取軌道、或者在第二高速緩存18中沒有預(yù)取軌道(從塊354的“否”分支),則高速緩存管理器24傳送(在塊360)讀取請求至具有不在第二高速緩存18中的預(yù)取軌道的每個(gè)順序存取存儲設(shè)備200。響應(yīng)于被傳送至順序存取存儲設(shè)備的讀取請求而從順序存取存儲設(shè)備200返回的預(yù)取軌道被存儲(在塊362)在第一高速緩存14中。在圖13的實(shí)施例中,順序存取存儲設(shè)備200可以包括或可以不包括非易失性存儲設(shè)備104。
[0056]一旦步幅(或組)中的所有軌道都在第一高速緩存14中(其包括舊的預(yù)取軌道、新的更新軌道和奇偶校驗(yàn)數(shù)據(jù)),則數(shù)據(jù)可以跨存儲步幅中的軌道的順序存取存儲設(shè)備200而條帶狀分布。
[0057]圖14圖示了當(dāng)存儲步幅中的軌道和奇偶校驗(yàn)數(shù)據(jù)的每個(gè)非順序存儲設(shè)備200包括如圖4所示的非易失性存儲設(shè)備104時(shí)、發(fā)送讀取請求的操作的實(shí)施例,其中,在這種情況下,順序存取存儲設(shè)備200內(nèi)包括多個(gè)第二高速緩存設(shè)備。在這些實(shí)施例中,響應(yīng)于預(yù)取請求,預(yù)取軌道被存儲在每個(gè)順序存取存儲設(shè)備200中的非易失性存儲設(shè)備104中。在這些實(shí)施例中,一旦發(fā)起(在塊400)發(fā)送讀取請求的操作,存儲管理器22就發(fā)送(在塊402)讀取請求至每個(gè)順序存取存儲設(shè)備200,以從順序存取存儲設(shè)備200中的非易失性存儲設(shè)備104存取預(yù)取軌道。在一個(gè)實(shí)施例中,所述讀取請求可以被指定為高優(yōu)先級,諸如比預(yù)取請求被提交至順序存取存儲設(shè)備200的優(yōu)先級更高的優(yōu)先級。
[0058]在所述實(shí)施例中,所述預(yù)取請求被指定為以低于讀取請求的優(yōu)先級被處理。所述預(yù)取請求被添加到請求隊(duì)列116,其中,根據(jù)請求隊(duì)列116中的讀取和寫入軌道的空間次序處理所述預(yù)取請求。然而,如果要針對順序存取存儲介質(zhì)114而處理讀取請求,諸如預(yù)取軌道不在非易失性存儲設(shè)備104中的情況,則會基于優(yōu)先級讀取隊(duì)列122中的讀取請求的時(shí)間次序以更高的優(yōu)先級處理所述讀取請求。例如,在稍后當(dāng)更新軌道準(zhǔn)備離臺時(shí),以高優(yōu)先級使軌道的條帶離臺的存儲管理器22會需要舊的軌道和奇偶校驗(yàn)數(shù)據(jù)以使所述軌道和奇偶校驗(yàn)數(shù)據(jù)跨順序存取存儲設(shè)備200而條帶狀分布。在這樣的情況下,存儲管理器22可以以比存儲管理器22使更新軌道從第一高速緩存14離臺的高優(yōu)先級低的優(yōu)先級預(yù)取舊的軌道和舊的奇偶校驗(yàn)。然而,當(dāng)存儲管理器22需要使更新軌道離臺時(shí),則以比發(fā)送預(yù)取請求的優(yōu)先級高的高優(yōu)先級發(fā)出對被預(yù)取的軌道的讀取請求。
[0059]所述實(shí)施例提供了如下技術(shù):允許使用初級或第一級高速緩存設(shè)備和存儲來自順序存取存儲設(shè)備的步幅中的舊的軌道和奇偶校驗(yàn)數(shù)據(jù)的存儲裝置之間的第二級高速緩存設(shè)備,以使得在步幅中的更新軌道需要被離臺時(shí)可用。所述實(shí)施例減少了離臺時(shí)讀取舊的數(shù)據(jù)和舊的奇偶校驗(yàn)的讀取延時(shí),因?yàn)榕f的軌道和奇偶校驗(yàn)以較低優(yōu)先級被預(yù)取,以使得當(dāng)離臺所需時(shí)在更快的存取設(shè)備中可用。
[0060]進(jìn)一步的優(yōu)勢通過如下實(shí)現(xiàn):允許讀取請求的優(yōu)先級指示,以便由于使被修改的軌道離臺至順序存取存儲介質(zhì)114的操作而對高優(yōu)先級讀取請求和較低優(yōu)先級預(yù)取請求的處理不會過度地延遲。這樣,高優(yōu)先級讀取請求可以以比較低優(yōu)先級讀取請求、預(yù)取請求和使對于在非易失性存儲設(shè)備104中緩存的寫入請求的被修改的軌道離臺的離臺請求更高的優(yōu)先級被處理。
[0061]此外,通過所述實(shí)施例,基于請求隊(duì)列中接收到的較低優(yōu)先級讀取請求和對于寫入請求的離臺請求的空間次序,處理請求隊(duì)列116中的較低優(yōu)先級讀取請求?;诮邮盏降母邇?yōu)先級讀取請求的時(shí)間次序,處理對于舊的軌道和舊的奇偶校驗(yàn)的高優(yōu)先級讀取和預(yù)取請求。然而,基于寫入請求、低優(yōu)先級讀取請求、預(yù)取請求的空間次序、以及讀取/寫入頭120的當(dāng)前位置,處理對于寫入請求、預(yù)取請求和低優(yōu)先級讀取請求的被修改的軌道,以優(yōu)化讀取和寫入請求的搜尋和延遲。
[0062]所描述的操作可以使用標(biāo)準(zhǔn)的編程和/或工程技術(shù)生產(chǎn)出的軟件、固件、硬件或者任何上述的組合來實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀程序代碼。
[0063]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或者計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0064]計(jì)算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計(jì)算機(jī)可讀程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括一但不限于——電磁信號、光信號或上述的任意合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)還可以是計(jì)算機(jī)可讀存儲介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0065]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0066]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0067]也可以把這些計(jì)算機(jī)程序指令存儲在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備以特定方式工作,從而,存儲在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
[0068]所述計(jì)算機(jī)程序指令也可以被加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理儀器、或其它設(shè)備上,以使得在計(jì)算機(jī)、其它可編程儀器或其它設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,使得計(jì)算機(jī)或其它可編程儀器上運(yùn)行的指令提供用于實(shí)現(xiàn)流程圖和/或框圖的塊中指定的功能/行為的處理。
[0069]術(shù)語“一實(shí)施例”、“實(shí)施例”、“多個(gè)實(shí)施例”、“所述實(shí)施例”、“所述多個(gè)實(shí)施例”、“一個(gè)或多個(gè)實(shí)施例”、“一些實(shí)施例”和“一個(gè)實(shí)施例”意指“本發(fā)明的一個(gè)或多個(gè)(而不是所有)實(shí)施例”,除非另有明確說明。
[0070]術(shù)語“包括”、“包含”、“具有”和其變形意指“包括但不限于”,除非另有明確說明。
[0071]項(xiàng)目的枚舉列表不意味著任意或所有項(xiàng)目是相互排斥的,除非另有明確說明。
[0072]術(shù)語“一”、“一個(gè)”和“所述”意味著“一個(gè)或多個(gè)”,除非另有明確說明。
[0073]相互通信的設(shè)備不需要持續(xù)地相互通信,除非另有明確說明。另外,相互通信的設(shè)備可以直接地或者通過一個(gè)或多個(gè)中間層間接地通信。
[0074]對具有相互通信的若干個(gè)組件的實(shí)施例的說明不意味著所有這樣的組件都被要求。相反,說明多個(gè)可選的組件以闡明本發(fā)明可能的實(shí)施例的廣泛多樣性。
[0075]此外,雖然處理步驟、方法步驟、算法等可以以順序的次序被說明,但這些處理、方法和算法可以被配置為以交替的次序運(yùn)作。換言之,所描述的步驟的任意序列或次序不一定指示步驟按那個(gè)次序執(zhí)行的要求。這里描述的處理的步驟可以以任意實(shí)際的次序執(zhí)行。此外,一些步驟可以被同時(shí)執(zhí)行。
[0076]當(dāng)在這里描述單個(gè)設(shè)備或物件時(shí),顯然,多于一個(gè)設(shè)備/物件(無論它們是否配合)可以替代單個(gè)設(shè)備/物件而被使用。相似地,當(dāng)在這里描述多于一個(gè)設(shè)備或物件(無論它們是否配合)時(shí),顯然,單個(gè)設(shè)備/物件可以替代多于一個(gè)設(shè)備或物件而被使用,或者,不同數(shù)量的設(shè)備/物件可以替代所示數(shù)量的設(shè)備或程序而被使用。設(shè)備的功能和/或特征可以被一個(gè)或多個(gè)未被顯式地描述為具有這樣的功能/特征的其它設(shè)備替代地體現(xiàn)。由此,本發(fā)明的其它實(shí)施例不需要包括設(shè)備本身。
[0077]圖12至圖14所圖示的操作顯示了以特定次序發(fā)生的特定事件。在替代實(shí)施例中,某些操作可以以不同的次序被執(zhí)行、修改或移除。而且,步驟可以被添加到上述邏輯中并仍然符合所述實(shí)施例。而且,這里描述的操作可以順序地發(fā)生,或者某些操作可以并行地處理。另外,可以由單個(gè)處理單元或由分布式處理單元執(zhí)行操作。
[0078]已經(jīng)為了示例和說明的目的而示出了對本發(fā)明的不同實(shí)施例的前述說明。它不是為了窮舉或?qū)⒈景l(fā)明限于所公開的精確形式。鑒于上述教示,很多修改和變形是可能的。本發(fā)明的范圍并非意圖由這里的詳細(xì)說明限定,而是由所附的權(quán)利要求限定。上述說明書、示例和數(shù)據(jù)提供了制造和使用本發(fā)明的構(gòu)造的詳細(xì)說明。由于可以在不背離本發(fā)明的范圍的情況下做出本發(fā)明的許多實(shí)施例,因此本發(fā)明存在于這里所附的權(quán)利要求中。
【權(quán)利要求】
1.一種用于處理與至少一個(gè)順序存取存儲設(shè)備關(guān)聯(lián)的數(shù)據(jù)軌道組和奇偶校驗(yàn)數(shù)據(jù)、并與第一高速緩存設(shè)備和第二高速緩存設(shè)備通信的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括在其上包含運(yùn)行以執(zhí)行操作的計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲介質(zhì),所述操作包括: 接收對軌道組的包含至少一個(gè)更新軌道的寫入請求; 使用所述第一高速緩存設(shè)備存儲所述至少一個(gè)更新軌道; 將預(yù)取請求發(fā)送至所述至少一個(gè)順序存取存儲設(shè)備,以將與所述軌道組關(guān)聯(lián)的軌道預(yù)取至所述第二高速緩存設(shè)備; 在發(fā)送所述預(yù)取請求之后生成讀取請求,以讀取預(yù)取軌道; 使用所述第一高速緩存設(shè)備存儲從所述第二高速緩存設(shè)備返回至所述讀取請求的、所讀取的預(yù)取軌道;以及 從所述至少一個(gè)更新軌道和所讀取的預(yù)取軌道計(jì)算新的奇偶校驗(yàn)數(shù)據(jù)。
2.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其中所述操作還包括: 使包含所述更新軌道和所讀取的預(yù)取軌道的軌道組和新的奇偶校驗(yàn)數(shù)據(jù)離臺至所述至少一個(gè)順序存取存儲設(shè)備,其中所讀取的預(yù)取軌道包括該組中除了與所述至少一個(gè)順序存取存儲設(shè)備關(guān)聯(lián)的所述至少一個(gè)更新軌道之外的軌道。
3.如權(quán)利要求1 或2所述的計(jì)算機(jī)程序產(chǎn)品,其中響應(yīng)于接收所述寫入請求而生成所述預(yù)取請求。
4.如前面任意權(quán)利要求所述的計(jì)算機(jī)程序產(chǎn)品,其中所述預(yù)取請求被指定為以第一優(yōu)先級在所述順序存取存儲設(shè)備中被處理,以及其中,所述讀取請求被指定為以第二優(yōu)先級在所述順序存取存儲設(shè)備被處理,其中所述第一優(yōu)先級在所述順序存取存儲設(shè)備中具有比更高的優(yōu)先級低的優(yōu)先級處理。
5.如權(quán)利要求4所述的計(jì)算機(jī)程序產(chǎn)品,其中所述預(yù)取請求被指定為根據(jù)使用所述順序存取存儲設(shè)備存儲第一優(yōu)先級軌道的物理位置的空間次序在所述順序存取存儲設(shè)備被處理,以及其中,所述讀取請求被指定為根據(jù)第二優(yōu)先級軌道在所述順序存取存儲設(shè)備的時(shí)間次序在所述順序存取存儲設(shè)備被處理。
6.如前面任意權(quán)利要求所述的計(jì)算機(jī)程序產(chǎn)品,其中所述第一高速緩存設(shè)備和所述第二高速緩存設(shè)備與所述順序存取存儲設(shè)備外部的存儲控制器關(guān)聯(lián),其中所述操作還包括: 處理所述讀取請求,以確定所述預(yù)取軌道是否與所述第二高速緩存設(shè)備關(guān)聯(lián); 響應(yīng)于確定所述預(yù)取軌道與所述第二高速緩存設(shè)備關(guān)聯(lián),將所述預(yù)取軌道從所述第二高速緩存設(shè)備提升至所述第一高速緩存設(shè)備; 響應(yīng)于確定所述預(yù)取軌道與所述第二高速緩存設(shè)備不關(guān)聯(lián),將所述讀取請求傳送至所述至少一個(gè)順序存取存儲設(shè)備;以及 使用所述第一高速緩存設(shè)備,存儲響應(yīng)于被傳送至所述順序存取存儲設(shè)備的讀取請求而從所述順序存取存儲設(shè)備返回的預(yù)取軌道。
7.如前面任意權(quán)利要求所述的計(jì)算機(jī)程序產(chǎn)品,其中所述第二高速緩存設(shè)備包括與所述順序存取存儲設(shè)備關(guān)聯(lián)的非易失性存儲設(shè)備,以及所述第一高速緩存設(shè)備與所述順序存取存儲設(shè)備外部的存儲控制器關(guān)聯(lián)。
8.如前面任意權(quán)利要求所述的計(jì)算機(jī)程序產(chǎn)品,其中所述第一高速緩存設(shè)備是比所述第二高速緩存設(shè)備更快的存取設(shè)備。
9.如前面任意權(quán)利要求所述的計(jì)算機(jī)程序產(chǎn)品,其中所述軌道組包括跨多個(gè)順序存取存儲設(shè)備而寫入的軌道的步幅和奇偶校驗(yàn)數(shù)據(jù),其中發(fā)送所述預(yù)取請求包括:向存儲所述步幅中的軌道和所述奇偶校驗(yàn)數(shù)據(jù)的每個(gè)所述順序存取存儲設(shè)備發(fā)送預(yù)取請求。
10.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其中所述操作還包括: 使包含所述更新軌道和所讀取的預(yù)取軌道的軌道的步幅、以及新的奇偶校驗(yàn)數(shù)據(jù)離臺至存儲軌道的步幅和奇偶校驗(yàn)數(shù)據(jù)的順序存取存儲設(shè)備。
11.如權(quán)利要求9或10所述的計(jì)算機(jī)程序產(chǎn)品,其中每個(gè)所述順序存取存儲設(shè)備包括使用所述步幅存儲所述預(yù)取軌道的第二高速緩存設(shè)備,以及其中,生成所述讀取請求包括:發(fā)送讀取請求至每個(gè)所述順序存取存儲設(shè)備,以從與所述順序存取存儲設(shè)備關(guān)聯(lián)的第二高速緩存設(shè)備存取所述預(yù)取軌道。
12.一種用于處理至少一個(gè)順序存取存儲設(shè)備中的數(shù)據(jù)軌道組和奇偶校驗(yàn)數(shù)據(jù)、且與第一高速緩存設(shè)備和第二高速緩存設(shè)備通信的系統(tǒng),包括: 用于接收對軌道組的包含至少一個(gè)更新軌道的寫入請求的部件; 用于使用所述第一高速緩存設(shè)備存儲所述至少一個(gè)更新軌道的部件; 用于將預(yù)取請求發(fā)送至所述至少一個(gè)順序存取存儲設(shè)備以將與所述軌道組關(guān)聯(lián)的軌道預(yù)取至所述第二高速緩存設(shè)備的部件; 用于響應(yīng)于所述預(yù)取請求被發(fā)送而生成讀取請求以讀取預(yù)取軌道的部件; 用于使用所述第一高速緩存設(shè)備存儲從所述第二高速緩存設(shè)備返回至所述讀取請求的所讀取的預(yù)取軌道的部件;以及` 用于從所述至少一個(gè)更新軌道和所讀取的預(yù)取軌道計(jì)算新的奇偶校驗(yàn)數(shù)據(jù)的部件。
13.如權(quán)利要求12所述的系統(tǒng),還包括: 用于使包含所述更新軌道和所讀取的預(yù)取軌道的軌道組以及新的奇偶校驗(yàn)數(shù)據(jù)離臺至所述至少一個(gè)順序存取存儲設(shè)備的部件,其中所讀取的預(yù)取軌道包括該組中除了與所述至少一個(gè)順序存取存儲設(shè)備關(guān)聯(lián)的所述至少一個(gè)更新軌道之外的軌道。
14.如權(quán)利要求12或13所述的系統(tǒng),其中所述預(yù)取請求能夠操作為響應(yīng)于所述寫入請求的接收而被生成。
15.如權(quán)利要求12至14中的任意項(xiàng)所述的系統(tǒng),其中所述預(yù)取請求能夠操作為被指定為以第一優(yōu)先級在所述順序存取存儲設(shè)備中被處理,以及其中,所述讀取請求能夠操作為被指定為以第二優(yōu)先級在所述順序存取存儲設(shè)備被處理,其中所述第一優(yōu)先級在所述順序存取存儲設(shè)備中具有比更高的優(yōu)先級低的優(yōu)先級處理。
16.如權(quán)利要求15所述的系統(tǒng),其中所述預(yù)取請求能夠操作為被指定為根據(jù)能夠使用所述順序存取存儲設(shè)備存儲第一優(yōu)先級軌道的物理位置的空間順序在所述順序存取存儲設(shè)備被處理,以及其中,所述讀取請求能夠操作為被指定為根據(jù)第二優(yōu)先級軌道在所述順序存取存儲設(shè)備的時(shí)間次序在所述順序存取存儲設(shè)備被處理。
17.如權(quán)利要求12至16中的任意項(xiàng)所述的系統(tǒng),其中所述第一高速緩存設(shè)備和所述第二高速緩存設(shè)備能夠操作為與所述順序存取存儲設(shè)備外部的存儲控制器關(guān)聯(lián),所述系統(tǒng)還包括: 用于處理所述讀取請求以確定所述預(yù)取軌道是否與所述第二高速緩存設(shè)備關(guān)聯(lián)的部件; 用于響應(yīng)于確定所述預(yù)取軌道與所述第二高速緩存設(shè)備關(guān)聯(lián)而將所述預(yù)取軌道從所述第二高速緩存設(shè)備提升至所述第一高速緩存設(shè)備的部件; 用于響應(yīng)于確定所述預(yù)取軌道與所述第二高速緩存設(shè)備不關(guān)聯(lián)而將所述讀取請求傳送至所述至少一個(gè)順序存取存儲設(shè)備的部件;以及 用于使用所述第一高速緩存設(shè)備存儲響應(yīng)于被傳送至所述順序存取存儲設(shè)備的讀取請求而從所述順序存取存儲設(shè)備返回的預(yù)取軌道的部件。
18.如權(quán)利要求12至17中的任意項(xiàng)所述的系統(tǒng),其中所述第二高速緩存設(shè)備包括與所述順序存取 存儲設(shè)備關(guān)聯(lián)的非易失性存儲設(shè)備,以及所述第一高速緩存設(shè)備與所述順序存取存儲設(shè)備外部的存儲控制器關(guān)聯(lián)。
19.如權(quán)利要求12至18中的任意項(xiàng)所述的系統(tǒng),其中所述第一高速緩存設(shè)備是比所述第二高速緩存設(shè)備更快的存取設(shè)備。
20.如權(quán)利要求12至19中的任意項(xiàng)所述的系統(tǒng),其中所述軌道組包括跨多個(gè)順序存取存儲設(shè)備而寫入的軌道的步幅和奇偶校驗(yàn)數(shù)據(jù),其中用于發(fā)送所述預(yù)取請求的部件包括用于向能夠操作為存儲所述步幅中的軌道和所述奇偶校驗(yàn)數(shù)據(jù)的每個(gè)所述順序存取存儲設(shè)備發(fā)送預(yù)取請求的部件。
21.如權(quán)利要求20所述的系統(tǒng),還包括: 用于使包含所述更新軌道和所讀取的預(yù)取軌道的軌道的步幅以及新的奇偶校驗(yàn)數(shù)據(jù)離臺至能夠操作為存儲所述軌道的步幅和奇偶校驗(yàn)數(shù)據(jù)的順序存取存儲設(shè)備的部件。
22.如權(quán)利要求20或21所述的系統(tǒng),其中每個(gè)所述順序存取存儲設(shè)備包括能夠操作為使用所述步幅存儲所述預(yù)取軌道的第二高速緩存設(shè)備,以及其中,用于生成所述讀取請求的部件包括用于將讀取請求發(fā)送至每個(gè)所述順序存取存儲設(shè)備以從與所述順序存取存儲設(shè)備關(guān)聯(lián)的第二高速緩存設(shè)備存取所述預(yù)取軌道的部件。
23.如權(quán)利要求12至22中的任意項(xiàng)所述的系統(tǒng),其中所述第二高速緩存設(shè)備與所述順序存取存儲設(shè)備關(guān)聯(lián)。
24.一種用于處理與至少一個(gè)順序存取存儲設(shè)備關(guān)聯(lián)的數(shù)據(jù)軌道組和奇偶校驗(yàn)數(shù)據(jù)、并與第一高速緩存設(shè)備和第二高速緩存設(shè)備通信的方法,所述包括以下步驟: 接收對軌道組的包含至少一個(gè)更新軌道的寫入請求; 使用所述第一高速緩存設(shè)備存儲所述至少一個(gè)更新軌道; 將預(yù)取請求發(fā)送至所述至少一個(gè)順序存取存儲設(shè)備,以將與所述軌道組關(guān)聯(lián)的軌道預(yù)取至所述第二高速緩存設(shè)備; 在發(fā)送所述預(yù)取請求之后生成讀取請求,以讀取預(yù)取軌道; 使用所述第一高速緩存設(shè)備,存儲從所述第二高速緩存設(shè)備返回至所述讀取請求的、所讀取的預(yù)取軌道;以及 從所述至少一個(gè)更新軌道和所讀取的預(yù)取軌道計(jì)算新的奇偶校驗(yàn)數(shù)據(jù)。
25.如權(quán)利要求24所述的方法,還包括以下步驟: 使包含所述更新軌道和所讀取的預(yù)取軌道的軌道組以及新的奇偶校驗(yàn)數(shù)據(jù)離臺至所述至少一個(gè)順序存取存儲設(shè)備,其中所讀取的預(yù)取軌道包括該組中除了與所述至少一個(gè)順序存取存儲設(shè)備關(guān)聯(lián)的所述至少一個(gè)更新軌道之外的軌道。
26.如權(quán)利要求24或25所述的方法,其中響應(yīng)于接收所述寫入請求而生成所述預(yù)取請求。
27.如權(quán)利要求24至26中的任意項(xiàng)所述的方法,其中所述預(yù)取請求被指定為以第一優(yōu)先級在所述順序存取存儲設(shè)備中被處理,以及其中,所述讀取請求被指定為以第二優(yōu)先級在所述順序存取存儲設(shè)備被處理,其中所述第一優(yōu)先級在所述順序存取存儲設(shè)備中具有比更高的優(yōu)先級低的優(yōu)先級處理。
28.如權(quán)利要求27所述的方法,其中所述預(yù)取請求被指定為根據(jù)使用所述順序存取存儲設(shè)備存儲第一優(yōu)先級軌道的物理位置的空間次序在所述順序存取存儲設(shè)備被處理,以及其中,所述讀取請求被指定為根據(jù)第二優(yōu)先級軌道在所述順序存取存儲設(shè)備中的時(shí)間次序在所述順序存取存儲設(shè)備被處理。
29.如權(quán)利要求24至28中的任意項(xiàng)所述的方法,其中所述第一高速緩存設(shè)備和所述第二高速緩存設(shè)備與所述順序存取存儲設(shè)備外部的存儲控制器關(guān)聯(lián),其中所述方法還包括以下步驟: 處理所述讀取請求,以確定所述預(yù)取軌道是否與所述第二高速緩存設(shè)備關(guān)聯(lián); 響應(yīng)于確定所述預(yù)取軌道與所述第二高速緩存設(shè)備關(guān)聯(lián),將所述預(yù)取軌道從所述第二高速緩存設(shè)備提升至所述第一高速緩存設(shè)備; 響應(yīng)于確定所述預(yù)取軌道與所述第二高速緩存設(shè)備不關(guān)聯(lián),將所述讀取請求傳送至所述至少一個(gè)順序存取存儲設(shè)備;以及 使用所述第一高速緩存設(shè)備,存儲響應(yīng)于被傳送至所述順序存取存儲設(shè)備的讀取請求而從所述順序存取存儲設(shè)備返回的預(yù)取軌道。
30.如權(quán)利要求24至29中的任意項(xiàng)所述的方法,其中所述第二高速緩存設(shè)備包括與所述順序存取存儲設(shè)備關(guān)聯(lián)的非易失性存儲設(shè)備,以及所述第一高速緩存設(shè)備與所述順序存取存儲設(shè)備外部的存儲控制器關(guān)聯(lián)。
31.如權(quán)利要求24至30中的任意項(xiàng)所述的方法,其中所述第一高速緩存設(shè)備是比所述第二高速緩存設(shè)備更快的存取設(shè)備。
32.如權(quán)利要求24至31中的任意項(xiàng)所述的方法,其中所述軌道組包括跨多個(gè)順序存取存儲設(shè)備而寫入的軌道的步幅和奇偶校驗(yàn)數(shù)據(jù),其中發(fā)送所述預(yù)取請求包括:向存儲所述步幅中的軌道和所述奇偶校驗(yàn)數(shù)據(jù)的每個(gè)所述順序存取存儲設(shè)備發(fā)送預(yù)取請求。
33.如權(quán)利要求32所述的方法,還包括以下步驟: 使包含所述更新軌道和所讀取的預(yù)取軌道的軌道的步幅以及新的奇偶校驗(yàn)數(shù)據(jù)離臺至存儲軌道的步幅和奇偶校驗(yàn)數(shù)據(jù)的順序存取存儲設(shè)備。
34.如權(quán)利要求32或33所述的方法,其中每個(gè)所述順序存取存儲設(shè)備包括使用所述步幅存儲所述預(yù)取軌道的第二高速緩存設(shè)備,以及其中,生成所述讀取請求包括:將讀取請求發(fā)送至每個(gè)所述順序存取存儲設(shè)備以從與所述順序存取存儲設(shè)備關(guān)聯(lián)的第二高速緩存設(shè)備存取所述預(yù)取軌道。
【文檔編號】G06F11/14GK103703440SQ201280036319
【公開日】2014年4月2日 申請日期:2012年7月2日 優(yōu)先權(quán)日:2011年7月22日
【發(fā)明者】L.M.古普塔, M.T.本哈斯, B.S.吉爾, J.L.哈夫納 申請人:國際商業(yè)機(jī)器公司