两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于管理奇偶raid數(shù)據(jù)重建的方法、系統(tǒng)和程序的制作方法

文檔序號:6503905閱讀:245來源:國知局
專利名稱:用于管理奇偶raid數(shù)據(jù)重建的方法、系統(tǒng)和程序的制作方法
技術(shù)領(lǐng)域
實施例涉及在數(shù)據(jù)組織系統(tǒng)例如RAID系統(tǒng)中管理數(shù)據(jù)的方法、系統(tǒng)和程序。
背景技術(shù)
已提出了許多技術(shù)用于組織存儲在存儲設(shè)備例如盤驅(qū)動器中的數(shù)據(jù)。一個這種數(shù)據(jù)存儲組織稱為獨立(或廉價)盤冗余陣列或(RAID)。在RAID組織中,兩個或更多個盤驅(qū)動器配合使用,以改進容錯或性能,或二者。有不同類型的RAID數(shù)據(jù)存儲組織,并且這些不同的類型常稱為RAID 0級、1級、2級...。
例如,在RAID 0級數(shù)據(jù)組織中,使用戶文件數(shù)據(jù)成“條帶”狀,即,用戶數(shù)據(jù)塊分布在多個盤上以改進性能。但是,在RAID 0級數(shù)據(jù)組織中,如果其中一個驅(qū)動器失效,則通常沒有提供冗余作數(shù)據(jù)恢復(fù)。RAID 3級數(shù)據(jù)組織與RAID 0級類似,但通常保留有一個盤來存儲糾錯數(shù)據(jù),常常稱為“奇偶數(shù)據(jù)”。如果一個驅(qū)動器失效,則該奇偶數(shù)據(jù)就可用來重建丟失的用戶數(shù)據(jù)。在RAID 5級數(shù)據(jù)組織中,為盤驅(qū)動器陣列上的每個條帶提供有奇偶數(shù)據(jù),且沒有特定的盤驅(qū)動器專門用來存儲奇偶數(shù)據(jù)。而是,用于用戶數(shù)據(jù)條帶的奇偶數(shù)據(jù)塊分布在該陣列的所有盤上,以進一步改進性能。
在一個RAID-5組織中,有一個奇偶數(shù)據(jù)塊用于盤驅(qū)動器陣列上的每個條帶。如果一個驅(qū)動器失效,那么這種布置提供簡便的數(shù)據(jù)重建。例如,如果一個數(shù)據(jù)條帶包括四個數(shù)據(jù)塊和一個奇偶數(shù)據(jù)塊,如果由于驅(qū)動器故障、數(shù)據(jù)破壞或其它類型故障,條帶的一個數(shù)據(jù)塊丟失,則使用條帶中仍保持完好的四個塊就可重建丟失的塊。
圖1示出現(xiàn)有技術(shù)為重建丟失數(shù)據(jù)可執(zhí)行的邏輯操作的一個實例。如果數(shù)據(jù)條帶n有四個數(shù)據(jù)塊和一個奇偶數(shù)據(jù)塊,且條帶n中一個塊的數(shù)據(jù)丟失了,則使用條帶n中三個好數(shù)據(jù)塊的一個好數(shù)據(jù)子塊以及好奇偶數(shù)據(jù)塊的一個好奇偶數(shù)據(jù)子塊就可重建丟失的數(shù)據(jù)。因此,在圖1的實例中,對條帶n中一個好數(shù)據(jù)塊的第一好數(shù)據(jù)子塊30和條帶n中第二好數(shù)據(jù)塊的第二好數(shù)據(jù)子塊32執(zhí)行“異或”操作?!爱惢颉边壿嫴僮鞯慕Y(jié)果可與條帶n中第三好數(shù)據(jù)塊的另一好數(shù)據(jù)子塊33進行“異或”。這次“異或”邏輯操作的結(jié)果可與條帶n的好奇偶數(shù)據(jù)塊中的好奇偶數(shù)據(jù)子塊34進行“異或”,以重建數(shù)據(jù)子塊36,來替代丟失的數(shù)據(jù)子塊。如果條帶的整個數(shù)據(jù)塊丟失了,則對于該塊的每個子塊重復(fù)圖1的操作,就可重建整個塊。
圖2示出按照圖1邏輯操作用于重建RAID存儲單元丟失數(shù)據(jù)的RAID存儲處理器的現(xiàn)有技術(shù)邏輯引擎50的實例。邏輯引擎50具有存儲隊列52,其可對存儲隊列52的內(nèi)容執(zhí)行“異或”邏輯操作,如箭頭54所表示,并在其輸入端給出數(shù)據(jù),如箭頭56表示。英特爾80303集成電路芯片具有類似的邏輯引擎,稱為應(yīng)用加速器單元(AAU)。
圖3示出在重建數(shù)據(jù)中使用邏輯引擎50讀出數(shù)據(jù)和處理所讀數(shù)據(jù)的操作。在復(fù)位(過程框60)存儲隊列52后,在第一讀出操作63(圖2)中,可將好數(shù)據(jù)塊從RAID陣列66中盤驅(qū)動器64a的條帶n中讀(過程框62)到存儲處理器或控制器的局部內(nèi)存68中。在第二讀出操作70中,可將另一好數(shù)據(jù)塊從RAID陣列66中盤驅(qū)動器64b的條帶n中讀(過程框62)到存儲處理器或控制器的局部內(nèi)存68中。在第三讀出操作72中,可將第三好數(shù)據(jù)塊從RAID陣列66中盤驅(qū)動器64c的條帶n中讀(過程框62)到局部內(nèi)存68中。在第四讀出操作74中,可將一個好奇偶數(shù)據(jù)塊從RAID陣列66中盤驅(qū)動器64e的條帶n中讀(過程框62)到局部內(nèi)存68中。
一旦所有好的數(shù)據(jù)塊和奇偶數(shù)據(jù)塊都已從條帶讀出(過程框80),在一部分第五讀出操作84中從盤驅(qū)動器64a讀出的數(shù)據(jù)子塊就可從局部內(nèi)存68讀出(過程框82),并存儲在存儲隊列52中。該數(shù)據(jù)例如可以是圖1的數(shù)據(jù)子塊30。由于存儲隊列52之前已復(fù)位,所以通過對從局部內(nèi)存68讀出的數(shù)據(jù)30和存儲隊列52的復(fù)位內(nèi)容執(zhí)行“異或”操作,源自驅(qū)動器64a的數(shù)據(jù)30就可存儲在存儲隊列52中。從局部內(nèi)存68到邏輯引擎50的讀出操作的大小通常取決于存儲隊列52的容量。因此,如果例如存儲隊列52的容量是1K字節(jié),則讀出操作84會繼續(xù)執(zhí)行,直到存儲隊列52填滿1K字節(jié)的數(shù)據(jù)30為止。
條帶n中下一數(shù)據(jù)塊的子塊,即從盤驅(qū)動器64b讀出的數(shù)據(jù)塊的子塊,可在一部分第六讀出操作90中從局部內(nèi)存68中讀出(過程框86)。該數(shù)據(jù)例如可以是圖1的數(shù)據(jù)子塊32。從驅(qū)動器64b讀出的數(shù)據(jù)塊的數(shù)據(jù)子塊32與以前存儲在存儲隊列52中的數(shù)據(jù)子塊30進行“異或”(過程框88),并作為中間結(jié)果存儲在存儲隊列52中。
條帶n中下一數(shù)據(jù)塊的子塊33(圖1),即從盤驅(qū)動器64c讀出的數(shù)據(jù)塊的子塊,可在一部分第七讀出操作92中從局部內(nèi)存68中讀出(過程框86)。從驅(qū)動器64c讀出的數(shù)據(jù)塊的數(shù)據(jù)子塊33與存儲隊列52的內(nèi)容進行“異或”操作(過程框88),并作為中間結(jié)果存儲在存儲隊列52中。
條帶n中數(shù)據(jù)的奇偶數(shù)據(jù)塊的子塊34(圖1),即從盤驅(qū)動器64e讀出的數(shù)據(jù)塊的子塊,可在一部分第八讀出操作94中從局部內(nèi)存68中讀出(過程框86)。從驅(qū)動器64e讀出的奇偶塊的奇偶數(shù)據(jù)子塊34與存儲隊列52的內(nèi)容進行“異或”操作(過程框88),并作為中間結(jié)果存儲在存儲隊列52中。
一旦條帶n中好的數(shù)據(jù)塊和奇偶數(shù)據(jù)塊的所有對應(yīng)子塊都已被接收和處理(過程框95),存儲在存儲隊列52中的中間結(jié)果就是條帶n的重建子塊36,它可在一部分寫入操作96中被寫入(過程框96)局部內(nèi)存68,要在隨后的寫入操作97中寫入到盤驅(qū)動器64d,來替代丟失的子塊。
可對條帶n中數(shù)據(jù)塊的每個子塊重復(fù)圖3的過程,直到所有子塊都已被邏輯引擎50接收(過程框98)和處理,其中如果需要,條帶n的整個塊可被重建。而且,如果驅(qū)動器64d的所有數(shù)據(jù)例如都已丟失,則該過程可以對盤驅(qū)動器陣列66的每個條帶重復(fù),直到損壞的盤驅(qū)動器64d的每個塊都已重建為止。當在RAID類型數(shù)據(jù)組織中用新數(shù)據(jù)更新老數(shù)據(jù)時,構(gòu)建新奇偶數(shù)據(jù)的過程也類似。
盡管如此,業(yè)界一直有一種需要,要改進數(shù)據(jù)存儲組織中處理器的性能。


現(xiàn)參閱附圖,所有附圖中相同的參考編號表示對應(yīng)的部件圖1示出現(xiàn)有技術(shù)的RAID數(shù)據(jù)重建;圖2示出用于RAID數(shù)據(jù)重建的現(xiàn)有技術(shù)邏輯引擎;圖3示出使用圖2現(xiàn)有技術(shù)邏輯引擎重建數(shù)據(jù)的現(xiàn)有技術(shù)操作;圖4示出實現(xiàn)數(shù)據(jù)構(gòu)建方面的計算環(huán)境的一個實施例;圖5示出實現(xiàn)數(shù)據(jù)構(gòu)建方面的存儲處理器環(huán)境的一個實施例;圖6示出按照數(shù)據(jù)構(gòu)建方面用于圖5存儲處理器的邏輯引擎的一個實施例;圖7示出重建數(shù)據(jù)所執(zhí)行操作的一個實施例;圖8示出用于重建數(shù)據(jù)塊的數(shù)據(jù)塊;圖9示出重建數(shù)據(jù)所執(zhí)行操作的另一實施例;圖10示出構(gòu)建奇偶數(shù)據(jù)所執(zhí)行操作的另一實施例;以及圖11示出可與所述實施例一起使用的體系結(jié)構(gòu)。
具體實施例方式
在以下說明中,參閱附圖,其中附圖形成本發(fā)明的一部分,并示出幾個實施例。應(yīng)理解,可使用其它實施例,并可作結(jié)構(gòu)和操作改變。
圖4示出可以實現(xiàn)數(shù)據(jù)構(gòu)建方面的計算環(huán)境。計算機102包括一個或多個中央處理單元(CPU)104(僅示出一個)、內(nèi)存106、非易失性存儲器108、存儲處理器109、操作系統(tǒng)110以及網(wǎng)絡(luò)適配器112。應(yīng)用程序114還在內(nèi)存106中執(zhí)行,并能夠從存儲器108中讀出數(shù)據(jù)和向其寫入數(shù)據(jù)。計算機102可包括業(yè)界已知的任何計算設(shè)備,例如大型機、服務(wù)器、個人計算機、工作站、膝上型電腦、手持計算機、電話設(shè)備、網(wǎng)絡(luò)設(shè)備、虛擬化設(shè)備、存儲處理器、存儲控制器等等。業(yè)界已知的任何CPU104和操作系統(tǒng)110都可使用。作為內(nèi)存管理操作的一部分,內(nèi)存106中的程序和數(shù)據(jù)可交換到存儲器108中。計算機102可通過網(wǎng)絡(luò)適配器112與網(wǎng)絡(luò)118通信。
設(shè)備驅(qū)動程序120在內(nèi)存106中執(zhí)行,并包括存儲處理器特定命令,以與存儲處理器109以及操作系統(tǒng)110和存儲處理器109之間的接口通信。存儲器108包括多個盤存儲單元,例如即盤驅(qū)動器150a、150b...150n,其中數(shù)據(jù)可存儲為允許數(shù)據(jù)重建的組織類型。在圖示的實施例中,盤驅(qū)動器150a、150b...150n組織成RAID陣列151。
在某些實現(xiàn)中,存儲處理器109執(zhí)行某些操作,以協(xié)助計算機102從存儲器108中讀出數(shù)據(jù)和向其寫入數(shù)據(jù)。例如,存儲處理器109可具有軟件、固件或硬件或它們的組合,以將LBA地址從計算機102轉(zhuǎn)換成盤驅(qū)動器150a、150b...150n的柱面、磁頭和扇區(qū)規(guī)范。此外,存儲處理器109包括數(shù)據(jù)構(gòu)建管理器130,它在驅(qū)動器故障或其它數(shù)據(jù)丟失時管理數(shù)據(jù)的重建。另外,在用新數(shù)據(jù)更新老數(shù)據(jù)時,構(gòu)建管理器130可管理新奇偶數(shù)據(jù)的構(gòu)建。
圖5示出適當存儲處理器109的一個實例。存儲處理器109便于在主機102和存儲器108之間快速移動大量數(shù)據(jù)。存儲處理器109包括電橋160,它在主機102的主總線162和連接到存儲器108的存儲控制器166的次總線164之間。電橋160允許例如可以是串行-高級技術(shù)附件(SATA)控制器的存儲控制器166與主總線162物理隔離??刂破?66還可將計算機信息轉(zhuǎn)到將存儲處理器109連接到存儲器108的存儲接口。雖然存儲控制器166示為存儲處理器109的一部分,但存儲控制器166可以是存儲器108的一部分,或是一個分離單元。
主地址轉(zhuǎn)換單元168提供從主總線162通過局部總線174到處理器170和局部內(nèi)存172的高通過量數(shù)據(jù)通路。連接到局部總線174的還有邏輯引擎176,它為RAID算法提供“異或”計算,以產(chǎn)生奇偶塊。次地址轉(zhuǎn)換單元178提供從處理器單元170和局部內(nèi)存172到次總線164的高通過量數(shù)據(jù)通路。在所示實施例中,總線162、164是PCI總線,但也可使用其它類型的外圍總線。
局部內(nèi)存172具有內(nèi)存控制器180。在所示實施例中,局部內(nèi)存172是易失性RAM型存儲器,并用于對傳送到盤驅(qū)動器150a、150b...150e的數(shù)據(jù)或從這些盤驅(qū)動器接收的數(shù)據(jù)進行高速緩存。也可使用其它類型的存儲器。例如,在數(shù)據(jù)傳送期間存儲處理器109或存儲器108意外停止工作時,非易失性快閃存儲器可用于存儲標識不完整條帶的恢復(fù)信息。直接存儲器存取(DMA)控制器182、184允許從主機102向局部內(nèi)存172以及從局部內(nèi)存172向驅(qū)動器150a...150n的直接存儲器傳送。
如前所述,一些RAID數(shù)據(jù)重建過程利用至少8個讀出操作來為具有5個數(shù)據(jù)塊(包括一個奇偶塊)的條帶重建數(shù)據(jù)塊。按照所示實施例的一個方面,構(gòu)建管理器130包括存儲處理器109的邏輯引擎176,它在一些應(yīng)用中能顯著便于丟失數(shù)據(jù)的有效重建或在數(shù)據(jù)更新時新奇偶數(shù)據(jù)的構(gòu)建。例如在一個應(yīng)用中,為具有5個數(shù)據(jù)塊(包括一個奇偶塊)的條帶重建數(shù)據(jù)塊的讀出操作數(shù)可減到四個讀出操作。另外,存儲重建塊的寫入操作數(shù)可從兩個寫入操作減到一個寫入操作。
圖6以示意圖形式示出包括存儲隊列200的邏輯引擎176的一個實例。存儲隊列200可對存儲隊列200的內(nèi)容執(zhí)行“異或”邏輯操作,如箭頭202所示,并在其輸入端給出數(shù)據(jù),如箭頭204所示。按照所示實施例的一個方面,在一個讀出操作中,數(shù)據(jù)可直接從盤驅(qū)動器150a、150b...150n之一讀出,并在邏輯引擎176中處理,不用先在局部內(nèi)存172中高速緩沖。按照所示實施例的另一方面,存儲隊列200一次可容納整個數(shù)據(jù)塊。更詳細解釋的是,一個或多個這些和其它特征可便于數(shù)據(jù)構(gòu)建,包括數(shù)據(jù)重建。
在所示實施例中,邏輯引擎176顯示為包括存儲隊列。也可使用其它類型的電路,包括寄存器和其它類型的邏輯和存儲器。
圖7示出包括處理器單元170和邏輯引擎176的數(shù)據(jù)構(gòu)建管理器130在數(shù)據(jù)重建中的操作實例。在此實例中,包括5個數(shù)據(jù)塊,其中包括一個奇偶塊的數(shù)據(jù)條帶n(圖8)分別存儲在5個盤驅(qū)動器150a、150b、150c、150d和150e上,其中條帶的每個數(shù)據(jù)塊存儲在盤驅(qū)動器150a、150b...150e中的一個上。而且,盤驅(qū)動器150a、150b...150e中之一,在此實例中,即盤驅(qū)動器150d,已失效,以致每個條帶的數(shù)據(jù)塊都已丟失或者被破壞,并需要重建。
在復(fù)位(過程框260)存儲隊列200后,可對特定條帶的所有塊啟動讀出操作(過程框286)。按照一方面,所有塊或子塊可以從存儲器108中并行讀出和處理,如下所述。因此,讀出命令可由存儲處理器109同時發(fā)給所有盤驅(qū)動器150a、150b...150e,以讀出條帶的相應(yīng)塊。一旦對發(fā)給盤驅(qū)動器的讀出命令作出響應(yīng)而從盤驅(qū)動器150a、150b...150e之一接收(過程框292)一個塊(或子塊),此塊就可存儲在存儲隊列200中(圖6)。該數(shù)據(jù)例如可以是條帶n的數(shù)據(jù)塊1,如圖8所示,如果含有塊1的盤驅(qū)動器是第一個對所發(fā)出的讀出命令作出響應(yīng)的話。由于存儲隊列200之前復(fù)位了,因此通過對從驅(qū)動器150a讀出的塊1數(shù)據(jù)和存儲隊列200的復(fù)位內(nèi)容執(zhí)行“異或”操作(框296),例如從驅(qū)動器150a讀出的數(shù)據(jù)塊1就可存儲在存儲隊列200中。在所示實施例中,存儲隊列200的容量足以容納來自盤驅(qū)動器條帶的整個數(shù)據(jù)塊。因此,如果例如存儲隊列200的容量是64K字節(jié),則對每個塊的讀出操作可繼續(xù)執(zhí)行,直到存儲隊列200填滿整個64K字節(jié)的塊1數(shù)據(jù)為止。應(yīng)理解,存儲隊列200的大小可以改變,視應(yīng)用而定。
對以前發(fā)出(過程框286)的讀出命令作出響應(yīng),可以接收到(過程框292)來自條帶n的另一數(shù)據(jù)塊,例如塊2(圖8)。來自驅(qū)動器150b的數(shù)據(jù)塊2與以前存儲在存儲隊列200中的數(shù)據(jù)塊1執(zhí)行“異或”操作(過程框296),并作為中間結(jié)果存儲在存儲隊列200中。
對以前發(fā)出(過程框286)的讀出命令作出響應(yīng),可以接收到(過程框292)來自條帶n的另一數(shù)據(jù)塊,例如塊3(圖8)。來自驅(qū)動器150c的數(shù)據(jù)塊3與存儲隊列200的內(nèi)容執(zhí)行“異或”操作(過程框296),并作為中間結(jié)果存儲在存儲隊列200中。
對以前發(fā)出(過程框286)的讀出命令作出響應(yīng),可以接收到(過程框292)來自條帶n的另一數(shù)據(jù)塊,例如塊5(圖8)。來自驅(qū)動器150e的(奇偶)數(shù)據(jù)塊5與存儲隊列200的內(nèi)容執(zhí)行“異或”操作(過程框296),并作為中間結(jié)果存儲在存儲隊列200中。
一旦已從盤驅(qū)動器150a、150b...150e接收到(過程框302)條帶n的所有好數(shù)據(jù)塊,存儲在存儲隊列200中的中間結(jié)果就是條帶n的重建塊4(圖8),它可在第一寫入操作306中被寫入(過程框304)盤驅(qū)動器150d,來替代條帶n的丟失塊4。圖7的過程可以對盤驅(qū)動器150a、150b...150e的陣列151中的每個條帶重復(fù),直到每個損壞的塊(過程框310)都已被重建為止。
雖然圖7的過程框292是指“塊”的接收,但應(yīng)理解,條帶n的數(shù)據(jù)塊的子塊不必一起接收和處理。而是,子塊可以在不同的時間被接收,并在被接收時與存儲隊列200的內(nèi)容作“異或”。因此,條帶n的每個塊的子塊可在它們被存儲隊列200接收和處理時與條帶n其它塊的子塊相互混合。因此,存儲處理器109可以同時向每個盤驅(qū)動器150a、150b...150e發(fā)出讀出命令,且盤驅(qū)動器可同時用所請求的數(shù)據(jù)作出響應(yīng),這樣條帶n的各個塊的子塊就可在它們在總線164上從盤驅(qū)動器傳送到存儲處理器109和存儲隊列200時相互混合在一起。
圖9示出構(gòu)建管理器130操作的另一實施例,其中在降級數(shù)據(jù)讀出操作中,重建的數(shù)據(jù)可直接從存儲隊列200寫入主機102,例如寫入主機內(nèi)存106。在此實施例中,構(gòu)建管理器130包括存儲處理器109中的DMA功能,其允許例如在DMA寫入操作350中,重建的數(shù)據(jù)從存儲隊列200向主機內(nèi)存106直接轉(zhuǎn)儲。DMA控制器例如可以是圖5的DMA控制器182,或可以在邏輯引擎176的電路中或其它地方實現(xiàn),視應(yīng)用而定。
圖10示出構(gòu)建管理器130操作的另一實施例,其中構(gòu)建了新的奇偶數(shù)據(jù),以在用新數(shù)據(jù)更新老數(shù)據(jù)時替代老的奇偶數(shù)據(jù)。在復(fù)位存儲隊列200后,在第一讀出操作400中,可從主機102讀出條帶n的新數(shù)據(jù)塊,并將其存儲在存儲隊列200中。在如上所述的一個實施例中,此數(shù)據(jù)傳送可作為DMA傳送完成。在第一寫入操作402中,新數(shù)據(jù)也可從存儲隊列200傳送到局部內(nèi)存172中。在第二讀出操作404中,老數(shù)據(jù)可以從盤驅(qū)動器例如盤驅(qū)動器150a傳送出去。來自驅(qū)動器150a的老數(shù)據(jù)塊與以前存儲在存儲隊列200中的新數(shù)據(jù)塊執(zhí)行“異或”操作,并作為中間結(jié)果存儲在存儲隊列200中。
在第三讀出操作406中,下一個塊,即條帶n的老奇偶數(shù)據(jù)塊,可從盤驅(qū)動器例如盤驅(qū)動器150b中讀出。來自驅(qū)動器150b的老奇偶數(shù)據(jù)塊與存儲隊列200的內(nèi)容執(zhí)行“異或”操作,并作為中間結(jié)果存儲在存儲隊列200中。
一旦條帶n的老數(shù)據(jù)塊和老奇偶數(shù)據(jù)塊以及條帶n的新數(shù)據(jù)塊已分別從盤驅(qū)動器150a、150b和主機102接收到,存儲在存儲隊列200中的中間結(jié)果就是條帶n的新奇偶數(shù)據(jù)塊,它可在第二寫入操作408中被寫入盤驅(qū)動器150b,以替代條帶n的老奇偶數(shù)據(jù)。此外,在第三寫入操作410中,新數(shù)據(jù)可從局部內(nèi)存172寫入到盤驅(qū)動器150a,以替代老數(shù)據(jù)。應(yīng)理解,在數(shù)據(jù)更新操作中讀出和寫入操作數(shù)可顯著減少,如上所述。
再者按照另一方面,所有塊或子塊都可從存儲器108和主機內(nèi)存106中并行讀出和處理。因此,讀出命令可由存儲處理器109同時發(fā)到主機內(nèi)存和所有盤驅(qū)動器150a、150b...150e,以讀出條帶的相應(yīng)塊。
附加實施例詳情用于管理數(shù)據(jù)構(gòu)建的所述技術(shù)可使用標準編程和/或工程技術(shù)來產(chǎn)生軟件、固件、硬件或它們的任何組合實現(xiàn)為方法、設(shè)備或制品。本文所用的詞語“制品”是指在硬件邏輯(例如集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等)或計算機可讀介質(zhì)例如磁存儲介質(zhì)(例如硬盤驅(qū)動器、軟盤、磁帶等)、光存儲器(CD-ROM、光盤等)、易失性和非易失性存儲器件(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)實現(xiàn)的代碼或邏輯。計算機可讀介質(zhì)中的代碼由處理器存取和執(zhí)行。實現(xiàn)優(yōu)選實施例的代碼還可在網(wǎng)絡(luò)上通過傳輸介質(zhì)或從文件服務(wù)器存取。在這種情況下,實現(xiàn)代碼的制品可包括傳輸介質(zhì),例如網(wǎng)絡(luò)傳輸線、無線傳輸介質(zhì),信號則通過空間、無線電波、紅外信號等傳播。所以,“制品”可包括實施代碼的介質(zhì)。此外,“制品”可包括實施、處理和執(zhí)行代碼的硬件和軟件成分的組合。當然,業(yè)界技術(shù)人員會認識到,對于這種配置可以作出許多改動,并且制品可包括業(yè)界已知的任何信息承載介質(zhì)。
雖然在本文中將邏輯引擎描述為具有一個存儲隊列或寄存器用于執(zhí)行“異或”操作,但應(yīng)理解,邏輯引擎可具有多個存儲隊列或寄存器,特別是對于具有多個奇偶塊的數(shù)據(jù)組織,如在2003年12月29日提交的、授予本申請受讓人的、代理檔案號P17729、題目為“生成奇偶數(shù)據(jù)的方法、系統(tǒng)和程序(METHOD,SYSTEM AND PROGRAMFOR GENERATING PARITY DATA)”的同時待審的申請中所述。
在某些實現(xiàn)中,存儲處理器109包括管理數(shù)據(jù)構(gòu)建和重建的數(shù)據(jù)構(gòu)建管理器130。存儲處理器109可具有軟件、固件或硬件或它們的組合,以執(zhí)行這些和其它功能。例如,在一個實施例中,處理器170和邏輯引擎176可以在與主機處理器分開的存儲處理器109中的硬件中實現(xiàn)。在其它實現(xiàn)方案中,數(shù)據(jù)構(gòu)建管理器可以在包括驅(qū)動程序、操作系統(tǒng)或應(yīng)用程序或這些的組合的主機軟件中實現(xiàn)。
在某些實現(xiàn)方案中,計算機系統(tǒng)可包括驅(qū)動程序和存儲控制器,例如串行-高級技術(shù)附件(SATA)、串行連接SCSI(SAS)、獨立盤冗余陣列(RAID)等控制器,其管理對非易失性存儲設(shè)備的存取,例如磁盤驅(qū)動器、磁帶介質(zhì)、光盤等。在備選實現(xiàn)方案中,存儲控制器實施例可包含在沒有驅(qū)動程序的系統(tǒng)中。用于設(shè)備和擴展器的SAS體系結(jié)構(gòu)的更多詳情在技術(shù)說明書“信息技術(shù)-串行連接SCSI(SAS)(Information Technology-Serial Attached SCSI(SAS))”中有說明,參考由ANSI出版的No.ISO/IEC 14776-150200x和ANSI INCITS.***200x PHY layer(2003年7月9日)。關(guān)于SATA體系結(jié)構(gòu)的詳情在技術(shù)說明書“串行ATA高速串行化AT附件(Serial ATAHigh SpeedSerialized AT Attachment)”Rev.1.0A(2003年1月)中有說明。
雖然在本文中將邏輯引擎描述為接收和處理一個完全的數(shù)據(jù)塊,但應(yīng)理解,一次也可接收和處理一個塊或多個塊的一部分。此外,雖然在本文中將邏輯引擎描述為直接從非易失性存儲單元例如盤驅(qū)動器接收數(shù)據(jù),但應(yīng)理解,在某些實施例中,數(shù)據(jù)也可從易失性存儲器例如RAM存儲器傳送到邏輯引擎。
在某些實現(xiàn)方案中,設(shè)備驅(qū)動程序和存儲處理器實施例可以在包括視頻控制器的計算機系統(tǒng)中實現(xiàn),以提供信息在連接到包括設(shè)備驅(qū)動程序和網(wǎng)絡(luò)適配器的計算機系統(tǒng)的監(jiān)視器上顯示,這種計算機系統(tǒng)包括臺式計算機、工作站、服務(wù)器、大型機、膝上型電腦、手持計算機等。備選的是,存儲處理器和設(shè)備驅(qū)動程序?qū)嵤├梢栽诓话ㄒ曨l控制器的計算設(shè)備中實現(xiàn)。
在某些實現(xiàn)方案中,網(wǎng)絡(luò)適配器可配置成在連接到網(wǎng)絡(luò)適配器上端口的電纜上傳輸數(shù)據(jù)。備選的是,網(wǎng)絡(luò)適配器實施例可配置成在無線網(wǎng)絡(luò)或連接上傳輸數(shù)據(jù),例如無線LAN、藍牙等。
圖7所示邏輯示出了以某種順序發(fā)生的某些事件。在備選實施例中,某些操作可以不同順序執(zhí)行、更改或刪除。而且,一些操作可添加到上述邏輯,且仍然與所述實施例相符。另外,本文所述的操作可依次發(fā)生,或某些操作可并行處理。還有,操作可由單一處理單元執(zhí)行,或由分布式處理單元執(zhí)行。
圖11示出網(wǎng)絡(luò)組件的計算機體系結(jié)構(gòu)500的一個實現(xiàn)方案,例如圖4所示的主機和存儲設(shè)備。體系結(jié)構(gòu)500可包括處理器502(例如微處理器)、內(nèi)存504(例如易失性存儲裝置)以及存儲器506(例如非易失性存儲器,例如磁盤驅(qū)動器、光盤驅(qū)動器、磁帶驅(qū)動器等)。存儲器506可包括內(nèi)部存儲設(shè)備或附加的或網(wǎng)絡(luò)可存取的存儲器。存儲器506中的程序以業(yè)界已知的方式加載到內(nèi)存504中,并由處理器502執(zhí)行。存儲處理器507可控制存儲器506。該體系結(jié)構(gòu)還包括網(wǎng)絡(luò)適配器508,以便能與網(wǎng)絡(luò)例如以太網(wǎng)、光纖通道仲裁環(huán)路等通信。關(guān)于光纖通道體系結(jié)構(gòu)的詳情在技術(shù)說明書“Fibre Channel Framingand Signaling Interface”中有說明,文件號為ISO/IEC AWI 14165-25。
另外,在某些實施例中,該體系結(jié)構(gòu)可包括視頻控制器509,以將信息呈現(xiàn)在顯示監(jiān)視器上,其中視頻控制器509可以在視頻卡上實現(xiàn),或集成到安裝在母板上的集成電路組件上。如上所述,某些網(wǎng)絡(luò)設(shè)備可具有多個存儲卡或控制器。輸入設(shè)備510用來提供對處理器502的用戶輸入,并可包括鍵盤、鼠標、筆針、擴音器、觸摸式顯示屏、或業(yè)界已知的任何其它激活或輸入構(gòu)件。輸出設(shè)備512能夠提供從處理器502或其它組件例如顯示監(jiān)視器、打印機、存儲器等傳輸?shù)男畔ⅰ?br> 存儲處理器506和網(wǎng)絡(luò)適配器508各可在卡上實現(xiàn),例如外圍部件互連(PCI)卡或某個其它的I/O卡,或在安裝在母板上的集成電路組件上實現(xiàn)。關(guān)于PCI體系結(jié)構(gòu)的詳情在PCI-SIG出版的“PCI LocalBus,Rev.2.3”中有說明。
已經(jīng)出于圖示和說明目的給出了各種實施例的上述說明。上述說明書、實例和數(shù)據(jù)提供了各成分的制造和使用的完整說明。不應(yīng)認為本說明書是排他性的,或局限于所公開的明確形式。根據(jù)上述內(nèi)容可以作出許多更改和改變。
權(quán)利要求
1.一種方法,包括在旁路高速緩存的第一傳送操作中,將存儲在多個非易失性存儲單元上條帶中的第一數(shù)據(jù)單元從所述多個非易失性存儲單元的第一非易失性存儲單元傳送到具有所述高速緩存的存儲處理器的邏輯引擎;在旁路所述高速緩存的第二傳送操作中,將存儲在所述條帶中的第二數(shù)據(jù)單元從所述多個非易失性存儲單元的第二非易失性存儲單元傳送到所述邏輯引擎;以及使用在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數(shù)據(jù)單元并使用在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數(shù)據(jù)單元,在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元。
2.如權(quán)利要求1所述的方法,還包括在第三傳送操作中將所述構(gòu)建的第三數(shù)據(jù)單元傳送到所述多個非易失性存儲單元的第三非易失性存儲單元,并將所述構(gòu)建的第三數(shù)據(jù)單元存儲在所述條帶中。
3.如權(quán)利要求2所述的方法,其中所述第三傳送操作旁路所述高速緩存。
4.如權(quán)利要求2所述的方法,其中所述多個非易失性存儲單元布置成獨立盤冗余陣列組織。
5.如權(quán)利要求4所述的方法,其中所述第二數(shù)據(jù)單元是奇偶數(shù)據(jù)。
6.如權(quán)利要求5所述的方法,其中每個非易失性存儲單元是一個盤驅(qū)動器。
7.如權(quán)利要求6所述的方法,其中所述條帶組織成包括奇偶數(shù)據(jù)塊的獨立盤冗余陣列條帶數(shù)據(jù)塊,且每個所述數(shù)據(jù)單元是所述獨立盤冗余陣列條帶的一個數(shù)據(jù)塊。
8.如權(quán)利要求7所述的方法,其中所述邏輯引擎包括能夠存儲來自所述獨立盤冗余陣列條帶的數(shù)據(jù)塊的存儲隊列。
9.如權(quán)利要求1所述的方法,其中所述邏輯引擎的所述高速緩存是隨機存取存儲器。
10.如權(quán)利要求1所述的方法,其中所述在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元包括將在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數(shù)據(jù)單元加到所述邏輯引擎的存儲隊列,并對所述第一存儲隊列的內(nèi)容和所述所加的第一數(shù)據(jù)單元執(zhí)行“異或”邏輯函數(shù)操作,并且包括將在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數(shù)據(jù)單元加到所述邏輯引擎的所述存儲隊列,并對所述存儲隊列的內(nèi)容和所述所加的第二數(shù)據(jù)單元執(zhí)行“異或”邏輯函數(shù)操作。
11.如權(quán)利要求2所述的方法,還包括在旁路所述高速緩存的第四傳送操作中,將存儲在所述條帶中的第四數(shù)據(jù)單元從所述多個非易失性存儲單元的第四非易失性存儲單元傳送到所述邏輯引擎;以及在旁路所述高速緩存的第五傳送操作中,將存儲在所述條帶中的第五數(shù)據(jù)單元從所述多個非易失性存儲單元的第五非易失性存儲單元傳送到所述邏輯引擎;以及其中所述在所述邏輯引擎中構(gòu)建所述第三數(shù)據(jù)單元,在所述第三傳送操作中所述將所述構(gòu)建的第三數(shù)據(jù)單元傳送到所述第三非易失性存儲單元之前,還使用在所述第四傳送操作中傳送到所述邏輯引擎的所述第四數(shù)據(jù)單元,并使用在所述第五傳送操作中傳送到所述邏輯引擎的所述第五數(shù)據(jù)單元。
12.如權(quán)利要求2所述的方法,還包括對于所述多個存儲單元的每個附加非易失性存儲單元在旁路所述高速緩存的附加傳送操作中,將存儲在所述條帶中的附加數(shù)據(jù)單元從所述多個非易失性存儲單元的附加非易失性存儲單元傳送到所述邏輯引擎;以及其中所述在所述邏輯引擎中構(gòu)建所述第三數(shù)據(jù)單元,在所述第三傳送操作中所述將所述構(gòu)建的第三數(shù)據(jù)單元傳送到所述第三非易失性存儲單元之前,還使用在所述附加傳送操作中傳送到所述邏輯引擎的所述附加數(shù)據(jù)單元。
13.如權(quán)利要求1所述的方法,還包括將作為要存儲在所述條帶中的新數(shù)據(jù)的第四數(shù)據(jù)單元傳送到所述邏輯引擎;其中所述第一數(shù)據(jù)單元是在所述條帶中要由所述新數(shù)據(jù)替代的老數(shù)據(jù),所述第二數(shù)據(jù)單元是在所述條帶中要被替代的老奇偶數(shù)據(jù),并且其中所述在所述邏輯引擎中構(gòu)建所述第三數(shù)據(jù)單元使用傳送到所述邏輯引擎的所述新數(shù)據(jù)來構(gòu)建替代奇偶數(shù)據(jù)單元,所述方法還包括將所述第三新奇偶數(shù)據(jù)單元傳送到所述第二非易失性存儲單元,以替代所述第二老奇偶數(shù)據(jù)單元。
14.如權(quán)利要求1所述的方法,還包括在第三傳送操作中將所述構(gòu)建的第三數(shù)據(jù)單元傳送到主機。
15.如權(quán)利要求1所述的方法,其中所述存儲處理器向所述第一和第二非易失性存儲單元發(fā)出讀出命令,以使所述第一和第二數(shù)據(jù)單元從所述第一和第二非易失性存儲單元中至少部分并行地存取。
16.一種包括存儲介質(zhì)的物品,所述存儲介質(zhì)包括其上存儲的機器可讀指令,以在旁路高速緩存的第一傳送操作中,將存儲在多個非易失性存儲單元上條帶中的第一數(shù)據(jù)單元從所述多個非易失性存儲單元的第一非易失性存儲單元傳送到具有所述高速緩存的存儲處理器的邏輯引擎;在旁路所述高速緩存的第二傳送操作中,將存儲在所述條帶中的第二數(shù)據(jù)單元從所述多個非易失性存儲單元的第二非易失性存儲單元傳送到所述邏輯引擎;以及使用在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數(shù)據(jù)單元并使用在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數(shù)據(jù)單元,在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元。
17.如權(quán)利要求16所述的物品,其中所述存儲介質(zhì)還包括其上存儲的機器可讀指令,以在第三傳送操作中將所述構(gòu)建的第三數(shù)據(jù)單元傳送到所述多個非易失性存儲單元的第三非易失性存儲單元,并將所述構(gòu)建的第三數(shù)據(jù)單元存儲在所述條帶中。
18.如權(quán)利要求17所述的物品,其中所述第三傳送操作旁路所述高速緩存。
19.如權(quán)利要求17所述的物品,其中所述多個非易失性存儲單元布置成獨立盤冗余陣列組織。
20.如權(quán)利要求19所述的物品,其中所述第二數(shù)據(jù)單元是奇偶數(shù)據(jù)。
21.如權(quán)利要求20所述的物品,其中每個非易失性存儲單元是一個盤驅(qū)動器。
22.如權(quán)利要求21所述的物品,其中所述條帶組織成包含奇偶數(shù)據(jù)塊的獨立盤冗余陣列條帶數(shù)據(jù)塊,且每個所述數(shù)據(jù)單元是所述獨立盤冗余陣列條帶的一個數(shù)據(jù)塊。
23.如權(quán)利要求22所述的物品,其中所述邏輯引擎包括能夠存儲來自所述獨立盤冗余陣列條帶的數(shù)據(jù)塊的存儲隊列。
24.如權(quán)利要求16所述的物品,其中所述邏輯引擎的所述高速緩存是隨機存取存儲器。
25.如權(quán)利要求16所述的物品,其中在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元的機器可讀指令包括存儲在所述存儲介質(zhì)上的機器可讀指令,以將在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數(shù)據(jù)單元加到所述邏輯引擎的存儲隊列,并對所述第一存儲隊列的內(nèi)容和所述所加的第一數(shù)據(jù)單元執(zhí)行“異或”邏輯函數(shù)操作,并且將在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數(shù)據(jù)單元加到所述邏輯引擎的所述存儲隊列,并對所述存儲隊列的內(nèi)容和所述所加的第二數(shù)據(jù)單元執(zhí)行“異或”邏輯函數(shù)操作。
26.如權(quán)利要求17所述的物品,其中所述存儲介質(zhì)還包括其上存儲的機器可讀指令,以在旁路所述高速緩存的第四傳送操作中,將存儲在所述條帶中的第四數(shù)據(jù)單元從所述多個非易失性存儲單元的第四非易失性存儲單元傳送到所述邏輯引擎;以及在旁路所述高速緩存的第五傳送操作中,將存儲在所述條帶中的第五數(shù)據(jù)單元從所述多個非易失性存儲單元的第五非易失性存儲單元傳送到所述邏輯引擎;并且其中在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元的機器可讀指令包括存儲在所述存儲介質(zhì)上的機器可讀指令,以在所述第三傳送操作中所述將所述構(gòu)建的第三數(shù)據(jù)單元傳送到所述第三非易失性存儲單元之前,使用在所述第四傳送操作中傳送到所述邏輯引擎的所述第四數(shù)據(jù)單元,并使用在所述第五傳送操作中傳送到所述邏輯引擎的所述第五數(shù)據(jù)單元。
27.如權(quán)利要求16所述的物品,其中所述存儲介質(zhì)還包括其上存儲的機器可讀指令,以將作為要存儲在所述條帶中的新數(shù)據(jù)的第四數(shù)據(jù)單元傳送到所述邏輯引擎;其中所述第一數(shù)據(jù)單元是在所述條帶中要由所述新數(shù)據(jù)替代的老數(shù)據(jù),所述第二數(shù)據(jù)單元是在所述條帶中要被替代的老奇偶數(shù)據(jù),且其中在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元的機器可讀指令包括存儲在所述存儲介質(zhì)上的機器可讀指令,以使用傳送到所述邏輯引擎的所述新數(shù)據(jù)構(gòu)建替代奇偶數(shù)據(jù)單元,且其中所述存儲介質(zhì)還包括其上存儲的機器可讀指令,以將所述第三新奇偶數(shù)據(jù)單元傳送到所述第二非易失性存儲單元,來替代所述第二老奇偶數(shù)據(jù)單元。
28.如權(quán)利要求16所述的物品,其中所述存儲介質(zhì)還包括其上存儲的機器可讀指令,以在第三傳送操作中將所述構(gòu)建的第三數(shù)據(jù)單元傳送到主機。
29.如權(quán)利要求16所述的物品,其中所述存儲介質(zhì)還包括其上存儲的機器可讀指令,以向所述第一和第二非易失性存儲單元發(fā)出讀出命令,以使所述第一和第二數(shù)據(jù)單元從所述第一和第二非易失性存儲單元中至少部分并行地存取。
30.一種系統(tǒng),包括至少一個內(nèi)存,它包含操作系統(tǒng)和應(yīng)用程序;連接到所述內(nèi)存的處理器;具有多個非易失性存儲單元的數(shù)據(jù)存儲器;數(shù)據(jù)存儲處理器,適于管理對所述數(shù)據(jù)存儲器的輸入/輸出(I/O)存取,并具有高速緩存和邏輯引擎;以及在所述內(nèi)存中可由所述處理器執(zhí)行的設(shè)備驅(qū)動程序,其中所述應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動程序和所述存儲處理器中至少一項適于在旁路所述高速緩存的第一傳送操作中,將存儲在所述多個非易失性存儲單元上條帶中的第一數(shù)據(jù)單元從第一非易失性存儲單元傳送到所述存儲處理器的所述邏輯引擎;在旁路所述高速緩存的第二傳送操作中,將存儲在所述條帶中的第二數(shù)據(jù)單元從所述多個非易失性存儲單元的第二非易失性存儲單元傳送到所述邏輯引擎;以及使用在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數(shù)據(jù)單元并使用在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數(shù)據(jù)單元,在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元。
31.如權(quán)利要求30所述的系統(tǒng),其中所述應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動程序和所述存儲處理器中的所述至少一項還適于在第三傳送操作中將所述構(gòu)建的第三數(shù)據(jù)單元傳送到所述多個非易失性存儲單元的第三非易失性存儲單元,并將所述構(gòu)建的第三數(shù)據(jù)單元存儲在所述條帶中。
32.如權(quán)利要求31所述的系統(tǒng),其中所述第三傳送操作旁路所述高速緩存。
33.如權(quán)利要求31所述的系統(tǒng),其中所述多個非易失性存儲單元布置成獨立盤冗余陣列組織。
34.如權(quán)利要求33所述的系統(tǒng),其中所述第二數(shù)據(jù)單元是奇偶數(shù)據(jù)。
35.如權(quán)利要求34所述的系統(tǒng),其中每個非易失性存儲單元是一個盤驅(qū)動器。
36.如權(quán)利要求35所述的系統(tǒng),其中所述條帶組織成包括奇偶數(shù)據(jù)塊的獨立盤冗余陣列條帶數(shù)據(jù)塊,且每個所述數(shù)據(jù)單元是所述獨立盤冗余陣列條帶的一個數(shù)據(jù)塊。
37.如權(quán)利要求36所述的系統(tǒng),其中所述邏輯引擎包括能夠存儲來自所述獨立盤冗余陣列條帶的數(shù)據(jù)塊的存儲隊列。
38.如權(quán)利要求30所述的系統(tǒng),其中所述邏輯引擎的所述高速緩存是隨機存取存儲器。
39.如權(quán)利要求30所述的系統(tǒng),其中為了在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元,所述應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動程序和所述存儲處理器中的所述至少一項還適于將在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數(shù)據(jù)單元加到所述邏輯引擎的存儲隊列,并對所述第一存儲隊列的內(nèi)容和所述所加的第一數(shù)據(jù)單元執(zhí)行“異或”邏輯函數(shù)操作,并且將在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數(shù)據(jù)單元加到所述邏輯引擎的所述存儲隊列,并對所述存儲隊列的內(nèi)容和所述所加的第二數(shù)據(jù)單元執(zhí)行“異或”邏輯函數(shù)操作。
40.如權(quán)利要求31所述的系統(tǒng),其中所述應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動程序和所述存儲處理器中的所述至少一個還適于在旁路所述高速緩存的第四傳送操作中,將存儲在所述條帶中的第四數(shù)據(jù)單元從所述多個非易失性存儲單元的第四非易失性存儲單元傳送到所述邏輯引擎;以及在旁路所述高速緩存的第五傳送操作中,將存儲在所述條帶中的第五數(shù)據(jù)單元從所述多個非易失性存儲單元的第五非易失性存儲單元傳送到所述邏輯引擎;以及其中為了在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元,所述應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動程序和所述存儲處理器中的所述至少一項還適于在所述第三傳送操作中所述將所述構(gòu)建的第三數(shù)據(jù)單元傳送到所述第三非易失性存儲單元之前,使用在所述第四傳送操作中傳送到所述邏輯引擎的所述第四數(shù)據(jù)單元,并使用在所述第五傳送操作中傳送到所述邏輯引擎的所述第五數(shù)據(jù)單元。
41.如權(quán)利要求30所述的系統(tǒng),其中所述應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動程序和所述存儲處理器中的所述至少一項還適于將作為要存儲在所述條帶中的新數(shù)據(jù)的第四數(shù)據(jù)單元傳送到所述邏輯引擎;其中所述第一數(shù)據(jù)單元是在所述條帶中要由所述新數(shù)據(jù)替代的老數(shù)據(jù),所述第二數(shù)據(jù)單元是在所述條帶中要被替代的老奇偶數(shù)據(jù),且其中在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元的機器可讀指令包括存儲在所述存儲介質(zhì)上的機器可讀指令,以使用傳送到所述邏輯引擎的所述新數(shù)據(jù)來構(gòu)建替代奇偶數(shù)據(jù)單元,且其中所述存儲介質(zhì)還包括其上存儲的機器可讀指令,以將所述第三新奇偶數(shù)據(jù)單元傳送到所述第二非易失性存儲單元,來替代所述第二老奇偶數(shù)據(jù)單元。
42.如權(quán)利要求30所述的系統(tǒng),其中所述應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動程序和所述存儲處理器中的所述至少一項還適于在第三傳送操作中將所述構(gòu)建的第三數(shù)據(jù)單元傳送到主機。
43.如權(quán)利要求30所述的系統(tǒng),其中所述應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動程序和所述存儲處理器中的所述至少一項還適于向所述第一和第二非易失性存儲單元發(fā)出讀出命令,以使所述第一和第二數(shù)據(jù)單元從所述第一和第二非易失性存儲單元中至少部分并行地存取。
44.一種與具有多個非易失性存儲單元的數(shù)據(jù)存儲器一起使用的設(shè)備,包括數(shù)據(jù)存儲處理器,適于管理對所述數(shù)據(jù)存儲器的輸入/輸出(I/O)存取,并具有高速緩存和邏輯引擎,其中所述存儲處理器還適于在旁路所述高速緩存的第一傳送操作中,將存儲在所述多個非易失性存儲單元上條帶中的第一數(shù)據(jù)單元從第一非易失性存儲單元傳送到所述存儲處理器的所述邏輯引擎;在旁路所述高速緩存的第二傳送操作中,將存儲在所述條帶中的第二數(shù)據(jù)單元從所述多個非易失性存儲單元的第二非易失性存儲單元傳送到所述邏輯引擎;以及使用在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數(shù)據(jù)單元并使用在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數(shù)據(jù)單元,在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元。
45.如權(quán)利要求44所述的設(shè)備,其中所述設(shè)備還適于在第三傳送操作中將所述構(gòu)建的第三數(shù)據(jù)單元傳送到所述多個非易失性存儲單元的第三非易失性存儲單元,并將所述構(gòu)建的第三數(shù)據(jù)單元存儲在所述條帶中。
46.如權(quán)利要求45所述的設(shè)備,其中所述第三傳送操作旁路所述高速緩存。
47.如權(quán)利要求45所述的設(shè)備,其中每個非易失性存儲單元是一個盤驅(qū)動器,所述多個非易失性存儲單元布置成獨立盤冗余陣列組織,所述條帶組織成包括奇偶數(shù)據(jù)塊的獨立盤冗余陣列條帶數(shù)據(jù)塊,且每個所述數(shù)據(jù)單元是所述獨立盤冗余陣列條帶的一個數(shù)據(jù)塊。
48.如權(quán)利要求47所述的設(shè)備,其中所述邏輯引擎包括能夠存儲來自所述獨立盤冗余陣列條帶的數(shù)據(jù)塊的存儲隊列,所述邏輯引擎的所述高速緩存是隨機存取存儲器,并且為了在所述邏輯引擎中構(gòu)建第三數(shù)據(jù)單元,所述存儲處理器還適于將在所述第一傳送操作中傳送到所述邏輯引擎的所述第一數(shù)據(jù)單元加到所述邏輯引擎的存儲隊列,并對所述第一存儲隊列的內(nèi)容和所述所加的第一數(shù)據(jù)單元執(zhí)行“異或”邏輯函數(shù)操作,并將在所述第二傳送操作中傳送到所述邏輯引擎的所述第二數(shù)據(jù)單元加到所述邏輯引擎的所述存儲隊列,并對所述存儲隊列的內(nèi)容和所述所加的第二數(shù)據(jù)單元執(zhí)行“異或”邏輯函數(shù)操作。
49.如權(quán)利要求44所述的設(shè)備,其中所述存儲處理器還適于在第三傳送操作中將所述構(gòu)建的第三數(shù)據(jù)單元傳送到主機。
50.如權(quán)利要求44所述的設(shè)備,其中所述存儲處理器還適于向所述第一和第二非易失性存儲單元發(fā)出讀出命令,以使所述第一和第二數(shù)據(jù)單元從所述第一和第二非易失性存儲單元中至少部分并行存取。
全文摘要
提供一種用于構(gòu)建數(shù)據(jù)的方法、系統(tǒng)和程序,包括重建組織成允許數(shù)據(jù)重建的數(shù)據(jù)組織類型例如獨立盤冗余陣列(RAID)組織的數(shù)據(jù)。在一個實施例中,將數(shù)據(jù)塊從存儲在存儲單元例如RAID陣列中的盤驅(qū)動器上的數(shù)據(jù)條帶傳送到存儲處理器的邏輯引擎,旁路存儲處理器的高速緩存。在每個數(shù)據(jù)塊從盤驅(qū)動器傳送時,存儲隊列對該數(shù)據(jù)塊執(zhí)行邏輯操作,例如“異或”,以從條帶重建數(shù)據(jù)塊。重建的數(shù)據(jù)塊隨后可傳送到RAID陣列的盤驅(qū)動器,以替代RAID陣列上數(shù)據(jù)條帶中丟失的數(shù)據(jù)塊,或替代老奇偶數(shù)據(jù)塊。
文檔編號G06F11/10GK1965298SQ200480039136
公開日2007年5月16日 申請日期2004年12月20日 優(yōu)先權(quán)日2003年12月29日
發(fā)明者M·施米索伊爾 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
建平县| 上杭县| 扎鲁特旗| 浮梁县| 中超| 盱眙县| 禹州市| 诏安县| 日照市| 琼海市| 新绛县| 昌图县| 同江市| 泰兴市| 钟祥市| 乳山市| 酉阳| 喜德县| 大冶市| 全椒县| 黑龙江省| 农安县| 哈巴河县| 广元市| 来凤县| 富阳市| 屏东县| 尼木县| 小金县| 桂林市| 石门县| 衢州市| 武邑县| 方正县| 龙胜| 英超| 翁源县| 阿坝| 东宁县| 中卫市| 镇沅|