欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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


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