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

存儲(chǔ)信息的系統(tǒng)和方法

文檔序號(hào):6556909閱讀:137來源:國知局
專利名稱:存儲(chǔ)信息的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)。

發(fā)明內(nèi)容
公開一種用于在獨(dú)立存儲(chǔ)裝置冗余陣列(RAID)上存儲(chǔ)經(jīng)卷積編碼的數(shù)據(jù)的方法、系統(tǒng)和制造物品。在系統(tǒng)形式中,實(shí)施例包括用于處理從信息源接收的信息的卷積編碼器。卷積編碼器通過將信息的當(dāng)前和過去位卷積操作以產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)。分配器用于將所述編碼數(shù)據(jù)分配到多個(gè)存儲(chǔ)裝置、使得所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)在發(fā)生故障時(shí)允許從存儲(chǔ)在未發(fā)生故障的存儲(chǔ)裝置上的所述編碼數(shù)據(jù)重建所述信息。
在某些實(shí)施例中,糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,從所述卷積編碼器產(chǎn)生的每個(gè)所述字響應(yīng)所述卷積編碼器處理卷積編碼器接收的信息的一部分。在某些實(shí)施例中,所述分配器用于將每個(gè)字的所述n位分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收每個(gè)字的n位中的一個(gè)位以上。在其他實(shí)施例中,所述分配器用于將每個(gè)所述字分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收兩個(gè)或更多相鄰的字。在某些實(shí)施例中,所述多個(gè)存儲(chǔ)裝置的總數(shù)是n位的整數(shù)倍。
在某些實(shí)施例中,系統(tǒng)還包括元數(shù)據(jù)控制器,用于處理所述信息以產(chǎn)生與所述編碼數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)。所述元數(shù)據(jù)包括指定所述編碼數(shù)據(jù)的存儲(chǔ)位置的存儲(chǔ)位置信息和/或指定所述編碼數(shù)據(jù)的編碼類型的編碼器信息。在某些實(shí)施例中,元數(shù)據(jù)控制器還用于將所述元數(shù)據(jù)存儲(chǔ)在所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)和/或非易失性存儲(chǔ)器中。


圖1是圖解示例性存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)的各方面的方框圖。
圖2圖解(2,1,3)糾錯(cuò)碼的編碼器狀態(tài)圖。
圖3以表的形式圖解圖2的(2,1,3)糾錯(cuò)碼的編碼器狀態(tài)圖。
圖4圖解具有兩個(gè)輸出、一個(gè)輸入和三級(jí)延遲元件的(2,1,3)二進(jìn)制卷積編碼器電路。
圖5圖解圖4所示的每個(gè)單獨(dú)輸出的采樣信息的離散卷積編碼。
圖6圖解將圖4所示的每個(gè)單獨(dú)輸出交織成圖2和3所示的糾錯(cuò)編碼數(shù)據(jù)。
圖7圖解示例性SCSI寫命令。
圖8圖解元數(shù)據(jù)結(jié)構(gòu)。
圖9圖解對(duì)于k=2輸出編碼器、具有1位寬的帶區(qū)(stripe)的卷積RAID。
圖10圖解具有k=2位寬的帶區(qū)的卷積RAID。
圖11圖解在整個(gè)存儲(chǔ)裝置陣列上卷積編碼數(shù)據(jù)的生成以及隨后分配和存儲(chǔ)的流程圖。
圖12圖解將糾錯(cuò)編碼數(shù)據(jù)和元數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置上的流程圖。
圖13圖解(3,2,1)碼的編碼器狀態(tài)圖。
圖14以表的形式圖解圖13。
圖15圖解具有兩個(gè)輸出、一個(gè)輸入和一級(jí)延遲元件的(3,2,1)二進(jìn)制卷積編碼器電路。
圖16圖解對(duì)于k=3輸出編碼器具有1位寬的帶區(qū)的卷積RAID。
圖17圖解具有k=3位寬的帶區(qū)的卷積RAID。
具體實(shí)施例方式
參照附圖,其中相同的部分用相同的附圖標(biāo)記表示,圖1是圖解示例性存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)10的各方面的方框圖。SAN 10典型地設(shè)計(jì)成作為交換訪問網(wǎng)絡(luò)工作,其中使用交換機(jī)67創(chuàng)建交換網(wǎng)(fabric)66。在某些實(shí)施例中,使用運(yùn)行在光纖信道(“FC”)物理層上的小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議來實(shí)現(xiàn)SAN 10。在其他實(shí)施例中,可以使用其他協(xié)議,例如Infiniband、FICON(光纖信道連接的一種特殊形式)、TCP/IP、以太網(wǎng)、千兆位以太網(wǎng)或iSCSI來實(shí)現(xiàn)SAN 10。交換機(jī)67具有主機(jī)61、62、63、64、65和控制器80的地址,因而主機(jī)61-65中的任一個(gè)可以互換地連接到任何控制器80。
主機(jī)61、62、63、64、65分別使用I/O接口71、72、73、74、75連接到網(wǎng)66。I/O接口71-75可以是任何類型的I/O接口;例如,F(xiàn)C環(huán)、直接附接到網(wǎng)66或者主機(jī)61-65使用的一條或多條信號(hào)線,用于分別向/從網(wǎng)66傳輸信息。網(wǎng)66包括例如用于連接兩個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)的一個(gè)或多個(gè)FC交換機(jī)67。在某些實(shí)施例中,F(xiàn)C交換機(jī)67是常規(guī)的路由器交換機(jī)。
交換機(jī)67通過I/O接口79將主機(jī)61-65與控制器80互連。I/O接口79可以是任何類型的I/O接口,例如,光纖信道、Infiniband、千兆位以太網(wǎng)、以太網(wǎng)、TCP/IP、iSCSI、SCSI I/O接口或者由FC交換機(jī)67用來分別向/從控制器80并進(jìn)而向多個(gè)存儲(chǔ)裝置91-93傳輸信息的一條或多條信號(hào)線。在圖1所示的例子中,存儲(chǔ)裝置91-93和控制器80在RAID 90內(nèi)操作。RAID 90還可以包括備用存儲(chǔ)裝置97,它在存儲(chǔ)裝置91-93中的任一個(gè)發(fā)生故障時(shí)可以與存儲(chǔ)裝置91-93交換。在RAID 90中可以包括除了存儲(chǔ)裝置91-93之外的額外存儲(chǔ)裝置。作為選擇,存儲(chǔ)裝置91-93以及控制器80物理上可以彼此遠(yuǎn)離,從而一次災(zāi)難只能損害存儲(chǔ)裝置91-93中的一個(gè)。
RAID 90典型地包括用于指導(dǎo)RAID操作的一個(gè)或多個(gè)控制器80。控制器80可以采用很多不同的形式,并且可以包括嵌入式系統(tǒng)、分布式控制系統(tǒng)、個(gè)人計(jì)算機(jī)、工作站等。圖1示出了典型的RAID控制器80,具有處理器82、元數(shù)據(jù)控制器98、隨機(jī)存取存儲(chǔ)器(RAM)84、非易失性存儲(chǔ)器83、專用電路81、編碼數(shù)據(jù)接口85和主機(jī)信息接口89。處理器82、RAM84、非易失性存儲(chǔ)器83、專用電路81、元數(shù)據(jù)控制器98、編碼數(shù)據(jù)接口85和主機(jī)信息接口89通過總線99相互通信。
作為選擇,RAM 84和/或非易失性存儲(chǔ)器83可以與專用電路81、編碼數(shù)據(jù)接口85、元數(shù)據(jù)控制器98和主機(jī)信息接口89一起位于處理器82中。處理器82可以包括通用微處理器、定制處理器、FPGA、ASIC或其他形式的分立邏輯。RAM 84典型地用作主機(jī)61-65寫或主機(jī)61-65讀數(shù)據(jù)的高速緩存,用來保存計(jì)算出的數(shù)據(jù)、堆棧數(shù)據(jù)、可執(zhí)行指令等。此外,RAM 84典型地用于在來自編碼器86的編碼數(shù)據(jù)87被存儲(chǔ)在存儲(chǔ)裝置91-93上之前臨時(shí)存儲(chǔ)該數(shù)據(jù)。
非易失性存儲(chǔ)器83可以包括任何類型的非易失性存儲(chǔ)器,如電可擦可編程只讀存儲(chǔ)器(EEPROM)、閃速可編程只讀存儲(chǔ)器(PROM)、電池備用RAM、硬盤驅(qū)動(dòng)器或其他類似裝置。非易失性存儲(chǔ)器83典型地用于保存可執(zhí)行固件和任何非易失性數(shù)據(jù),例如元數(shù)據(jù)88。元數(shù)據(jù)88的細(xì)節(jié)將在下面參照?qǐng)D3進(jìn)一步討論。
在某些實(shí)施例中,編碼數(shù)據(jù)接口85包括允許處理器82與存儲(chǔ)裝置91-93通信的一個(gè)或多個(gè)通信接口。主機(jī)信息接口89允許處理器82與網(wǎng)66、交換機(jī)67和主機(jī)61-65通信。編碼數(shù)據(jù)接口85和主機(jī)信息接口89的例子包括諸如RS-232、USB(通用串行總線)、SCSI(小型計(jì)算機(jī)系統(tǒng)接口)、光纖信道、千兆位以太網(wǎng)等串行接口。此外,編碼數(shù)據(jù)接口85和/或主機(jī)信息接口89可以包括諸如射頻(“RF”)(如藍(lán)牙)之類的無線接口,或者諸如紅外(IR)之類的光通信裝置。
在某些實(shí)施例中,元數(shù)據(jù)控制器98在處理器82中由軟件、固件、專用邏輯或者其組合來實(shí)現(xiàn)。此外,元數(shù)據(jù)控制器98的全部或部分可以位于控制器82外部,例如以主機(jī)61-65之一或其他處理裝置中的軟件實(shí)現(xiàn)。元數(shù)據(jù)控制器98管理與為作為編碼數(shù)據(jù)在存儲(chǔ)裝置上存儲(chǔ)而接收的信息相關(guān)聯(lián)的元數(shù)據(jù)。在某些實(shí)施例中,元數(shù)據(jù)控制器98負(fù)責(zé)生成、改變、維護(hù)、存儲(chǔ)、取出和處理與為作為為編碼數(shù)據(jù)存儲(chǔ)而接收的信息相關(guān)聯(lián)的元數(shù)據(jù)。
在某些實(shí)施例中,分配器101在處理器82中由軟件、固件、專用邏輯或者其組合來實(shí)現(xiàn)。此外,分配器101的全部或部分可以位于控制器80外部,例如以主機(jī)61-65之一中的軟件實(shí)現(xiàn)。分配器101將編碼數(shù)據(jù)(即,編碼數(shù)據(jù)87)以如下格式分配給RAM和/或直接給存儲(chǔ)裝置使得在一個(gè)或多個(gè)存儲(chǔ)裝置發(fā)生故障的情況下,可以從未發(fā)生故障的存儲(chǔ)裝置中解碼和/或重建編碼數(shù)據(jù)和/或源信息(將在下面描述)。當(dāng)分配器101將數(shù)據(jù)分配給諸如裝置91-93之類的存儲(chǔ)裝置時(shí),根據(jù)元數(shù)據(jù)88進(jìn)行分配,以便稍后可以從存儲(chǔ)裝置中讀出分配的數(shù)據(jù)。
專用電路81提供額外的硬件來允許控制器80執(zhí)行獨(dú)有功能,例如用來對(duì)存儲(chǔ)裝置91-93、控制器80和編碼器86環(huán)境降溫的風(fēng)扇控制。編碼器86可以用卷積編碼器(即,圖4的卷積編碼器220、圖15的卷積編碼器420)實(shí)現(xiàn)。專用電路81可以包括提供脈沖寬度調(diào)制(PWM)控制、模數(shù)轉(zhuǎn)換(ADC)、數(shù)模轉(zhuǎn)換(DAC)、異或(XOR)之類的電子電路。此外,專用電路81的全部或部分可以位于控制器80外部,例如以主機(jī)61-65之一中的軟件實(shí)現(xiàn)。
在某些實(shí)施例中,編碼器86可以用卷積編碼器來實(shí)現(xiàn)??梢杂脿顟B(tài)圖來理解卷積編碼器的操作。圖2示出(2,1,3)二進(jìn)制卷積編碼的狀態(tài)圖200。狀態(tài)圖200包括8個(gè)狀態(tài)S0210、S1211、S2212、S3213、S4214、S5215、S6216和S7217。狀態(tài)圖200中的狀態(tài)之間的離散轉(zhuǎn)移受數(shù)量和方向限制。例如,在狀態(tài)S0210處開始的編碼處理只能轉(zhuǎn)移回到S0210或前進(jìn)到S1211。類似地,從S1211的處理只能轉(zhuǎn)移到S2212或S3213等。狀態(tài)圖200中的狀態(tài)之間的每次轉(zhuǎn)移導(dǎo)致將1位的信息編碼成2位的糾錯(cuò)編碼數(shù)據(jù)。將參照?qǐng)D3中的表290進(jìn)一步說明該編碼。
圖3中的表290具有四列初始狀態(tài)191、目的狀態(tài)292、信息293和糾錯(cuò)編碼數(shù)據(jù)294。根據(jù)狀態(tài)圖200中總共8種狀態(tài)和從一個(gè)特定狀態(tài)到下一直接可能狀態(tài)的兩種可能的轉(zhuǎn)移,表290中總共有16行。表290是通過狀態(tài)圖200生成的,并且這里用于說明將信息編碼以產(chǎn)生編碼數(shù)據(jù)。
在圖2中,對(duì)于輸入信息1111000的示例編碼,示出了突出表示的編碼路徑,包括S0210、S1211、S3213、S7217、S7217、S6216、S4214和S0210。S0210到S1211將1編碼成11。S1211到S3213將1編碼成10。S3213到S7217將1編碼成01。S7217到S7217將1編碼成10。S7217到S6216將0編碼成01。S6216到S4214將0編碼成00。最后,S4214到S0210將0編碼成11。其結(jié)果是輸入信息(即,來自主機(jī)61-65的主機(jī)信息)1111000被編碼成糾錯(cuò)編碼數(shù)據(jù)11100110010011以存儲(chǔ)在RAID 90中。
在圖4中,示出了用于圖2的狀態(tài)圖200和圖3的表290的二進(jìn)制(2,1,3)碼的編碼器電路220。編碼器電路220是控制器80的專用電路81中的編碼器86的一個(gè)實(shí)現(xiàn)。作為選擇,編碼器220可以在控制器80外部實(shí)現(xiàn)。編碼器電路220一次一位地接收輸入數(shù)據(jù)流U(J)221用來編碼。編碼器電路220包括m=3級(jí)移位寄存器,包括寄存器230、231和232。對(duì)于編碼處理,寄存器230-232的最初內(nèi)容最好為零。輸入信息流U(J)221和寄存器230、231和232的輸出由n=2個(gè)模2加法器選擇性相加(對(duì)二進(jìn)制加法不產(chǎn)生進(jìn)位),加法器包括產(chǎn)生輸出V(J,1)241的加法器240和產(chǎn)生輸出V(J,2)243的加法器242。復(fù)用器251將各個(gè)編碼器輸出V(J,1)241和V(J,2)243串行化成編碼輸出V 250。模2加法器可以以專用電路81中的XOR(異或)門或者以軟件、固件、專用邏輯等實(shí)現(xiàn)。因?yàn)槟?二進(jìn)制加法是線性運(yùn)算,因此編碼器可以作為線性前饋移位寄存器工作。由圖4的V(J,1)和V(J,2)定義的索引J的每個(gè)增量輸出V 250稱為字。
圖2-6圖解編碼器和輸出信息流之間的離散卷積。圖5-6中以其最簡單的數(shù)字細(xì)節(jié)形式示出了該離散卷積。表500(圖5)示出了示例輸入信息1111000和產(chǎn)生輸出V(J,1)的編碼器之間的離散卷積。類似地,表501(圖5)示出了示例輸入信息1111000和產(chǎn)生輸出V(J,2)的編碼器之間的離散卷積。
對(duì)于表500,產(chǎn)生V(J,1)的編碼器由數(shù)字串1011(表500右側(cè)的頂欄)表示,這是由于在圖4中,U(J)221和V(J,1)241之間存在連接(由1011中的第一個(gè)1表示),U(J-1)230和V(J,1)241之間沒有連接(由1011中的0表示),而U(J-2)231和V(J,1)241之間以及U(J-3)232和V(J,1)241之間存在連接(由1011中右邊的1表示)。對(duì)于表501,編碼器由數(shù)字串1111表示,這是由于在圖4中,U(J)221和V(J,2)243之間存在連接(由1111中的第一個(gè)1表示),U(J-1)230和V(J,2)243之間存在連接(由1111中的第二個(gè)1表示),而U(J-2)231和V(J,2)243之間以及U(J-3)232和V(J,2)243之間存在連接(由1111中最右邊的1表示)。
參照表500和501(圖5)描述通過卷積信息的當(dāng)前和過去位來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)的信息處理例子。離散卷積通過首先構(gòu)建輸入信息流1111000的鏡像(對(duì)于時(shí)間)來實(shí)現(xiàn),其中時(shí)間從左到右進(jìn)行。因此,鏡像0001111顯示在表500和501的行1到10中。鏡像0001111在表500和501的每個(gè)后繼行中向右移,以圖解鏡像0001111一次移動(dòng)一位的卷積操作。然后,不管下面示出0001111的哪些位,編碼器1011或編碼器1111都被該編碼器的各個(gè)位逐位相乘。然后將該逐位編碼的結(jié)果用模2加法來求和,以實(shí)現(xiàn)對(duì)于V(J,1)的表500的最右列和對(duì)于V(J,2)的表501的最右列中所示的編碼結(jié)果。
通過V(J,1)241和V(J,2)243的復(fù)用得到圖4的輸出,來產(chǎn)生輸出的糾錯(cuò)編碼數(shù)據(jù)流V 250。圖6的表502中圖解V(J,1)241和V(J,2)243的復(fù)用。在表502中,V(J,1)和V(J,2)被交錯(cuò),隨后在最右列中被合并成為11100110010011000000輸出流V。長度為2*m的尾隨零(在圖6的情況下為2*3或者6)被截?cái)?,從而獲得最終的示例的糾錯(cuò)編碼數(shù)據(jù)11100110010011。這些尾隨零將存儲(chǔ)器230-232重新初始化為0以用于下一輸入信息流,從而編碼器在接收信息的每個(gè)部分時(shí),編碼器可以用初始化為0的存儲(chǔ)器230-232開始操作。這樣,圖5-6圖解圖2-4中實(shí)現(xiàn)的離散卷積處理,而圖4是該特定離散卷積處理的實(shí)現(xiàn)電路的例子。
在某些實(shí)施例中,糾錯(cuò)編碼數(shù)據(jù)(例如,如圖9-10所示)在被存儲(chǔ)到存儲(chǔ)裝置91-93之前存儲(chǔ)在控制器80的RAM 84中??梢栽趯碜跃幋a器輸出(即,圖4的V 250或圖15的輸出V 450)的糾錯(cuò)編碼數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置91-93上之前使用RAM 84來保存它,直到糾錯(cuò)編碼數(shù)據(jù)達(dá)到預(yù)定大小為止。然后可以使用寫命令(即,圖7所示的示例性寫命令600)將來自RAM 84的糾錯(cuò)編碼數(shù)據(jù)存儲(chǔ)到目的存儲(chǔ)裝置(如圖1的存儲(chǔ)裝置91-93)上。寫命令600是SCSI寫命令的一個(gè)例子,包括起始邏輯塊地址(LBA)602、傳送長度603和邏輯單元號(hào)(LUN)604。LUN 604指定寫命令600指向存儲(chǔ)裝置91-93中的哪個(gè)。起始LBA 602指示接收數(shù)據(jù)的目的存儲(chǔ)裝置上的第一邏輯塊地址,而傳送長度603指示傳送多少數(shù)據(jù)。寫命令600可以在SCSI或光纖信道接口上實(shí)現(xiàn)。寫命令600僅僅是可以使用的一種可能的寫命令。其他SCSI寫命令包括帶有核對(duì)的寫,例如,在寫命令成功完成之前核對(duì)寫入的數(shù)據(jù)。
在某些實(shí)施例中,控制器80(即,通過元數(shù)據(jù)控制器98)在處理輸入信息和/或糾錯(cuò)編碼數(shù)據(jù)之前、期間或之后還產(chǎn)生元數(shù)據(jù)88。圖8示出元數(shù)據(jù)88的內(nèi)部結(jié)構(gòu)的一個(gè)例子??梢詫?duì)其上存儲(chǔ)糾錯(cuò)編碼數(shù)據(jù)87的每個(gè)存儲(chǔ)裝置91-93使用一列元數(shù)據(jù)88。在該實(shí)現(xiàn)中,元數(shù)據(jù)88包括糾錯(cuò)編碼數(shù)據(jù)在RAID 90的存儲(chǔ)裝置91-93上存儲(chǔ)的圖。元數(shù)據(jù)88可以例如包括存儲(chǔ)裝置91-93上的指示符(designator)621,例如作為可以被分配給每個(gè)存儲(chǔ)裝置(即,硬盤驅(qū)動(dòng)器)的唯一名稱的永久全球名稱。作為選擇,指示符621可以是VOLSER(卷序列號(hào))或特定存儲(chǔ)裝置的其他唯一名稱。元數(shù)據(jù)88還可以包括起始LBA 622和傳送長度623,這兩者都是在用于將糾錯(cuò)編碼數(shù)據(jù)存儲(chǔ)到存儲(chǔ)裝置91-93的SCSI寫命令600中指定的。元數(shù)據(jù)88還可以包括帶區(qū)寬度624,它可以是圖9和16的1位,或者是等于編碼器86的輸出位數(shù)量“n”(對(duì)于圖10是n=2位,而對(duì)于圖17是n=3位)的一個(gè)字。元數(shù)據(jù)88可以包括序列號(hào)625和文件名626,從而可以在RAM 84中重組和解碼從存儲(chǔ)裝置91-93中依次讀取的糾錯(cuò)編碼數(shù)據(jù)。最后,元數(shù)據(jù)88可以包括使用的編碼方法,當(dāng)編碼數(shù)據(jù)被存儲(chǔ)在可移動(dòng)介質(zhì)(如多個(gè)磁帶或光盤盒)上時(shí)編碼方法可能是有用的。元數(shù)據(jù)88可以存儲(chǔ)在控制器80的非易失性存儲(chǔ)器83和/或一個(gè)或多個(gè)目的存儲(chǔ)裝置91-93中??刂破?0可以使用元數(shù)據(jù)88來從目的存儲(chǔ)裝置中取出糾錯(cuò)編碼數(shù)據(jù),在RAM 84中重組糾錯(cuò)編碼數(shù)據(jù)并解碼該數(shù)據(jù)來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)所源自何處的信息,以便發(fā)送給主機(jī)61-65或其他信息源或接收者。
圖9示出包括多個(gè)存儲(chǔ)裝置261-266的RAID 260中編碼數(shù)據(jù)的存儲(chǔ)。RAID 260中所示的編碼數(shù)據(jù)可以是編碼器200編碼的一部分信息的結(jié)果。帶區(qū)1是RAID 260中的第一帶區(qū),并且它是這一部分糾錯(cuò)編碼數(shù)據(jù)的第一帶區(qū)。帶區(qū)1包括裝置261中的位V(1,1)271A、裝置262中的位V(1,2)271B、裝置263中的位V(2,1)271C、裝置264中的位V(2,2)271D、裝置265中的位V(3,1)271E和裝置266中的位V(3,2)271F。帶區(qū)2是這同一部分糾錯(cuò)編碼數(shù)據(jù)的RAID 260中的第二帶區(qū),并且它包括裝置261中的位V(4,1)272A、裝置262中的位V(4,2)272B、裝置263中的位V(5,1)272C、裝置264中的位V(5,2)272D、裝置265中的位V(6,1)272E和裝置266中的位V(6,2)272F。在某些實(shí)施例中,RAID 260具有n=2的整數(shù)倍個(gè)存儲(chǔ)裝置(即,6個(gè)存儲(chǔ)裝置)。
圖10示出對(duì)于編碼器220編碼的信息、對(duì)圖9所示的每帶區(qū)每裝置1位的替代。在圖10中,由于編碼器220具有n=2個(gè)輸出,因此在n=2位寬帶區(qū)中每裝置存儲(chǔ)輸出V的n=2位(稱為“字”)。圖10示出了包括裝置281-283的RAID 280的兩個(gè)帶區(qū),用于圖9中所示的相同部分的糾錯(cuò)編碼數(shù)據(jù)。帶區(qū)1是RAID 280的第一帶區(qū),并且它包括裝置281中的位V(1,1)和V(1,2)291A、裝置282中的位V(2,1)和V(2,2)291B和裝置283中的V(3,1)和V(3,2)291C。類似地,帶區(qū)2是RAID 280的第二帶區(qū),并且它包括裝置281中的位V(4,1)和V(4,2)292A、裝置282中的位V(5,1)和V(5,2)292B和裝置283中的V(6,1)和V(6,2)292C。因此,可以每帶區(qū)一位(圖9)或每帶區(qū)一個(gè)字(圖10)地存儲(chǔ)同一部分的糾錯(cuò)編碼數(shù)據(jù)。
用卷積糾錯(cuò)編碼數(shù)據(jù)可以容易地適應(yīng)RAID擴(kuò)展,這是因?yàn)閷?duì)給定部分的糾錯(cuò)編碼數(shù)據(jù)的帶區(qū)全部被邏輯連接,并且沒有對(duì)于特定帶區(qū)來說是唯一的奇偶校驗(yàn)。例如,通過將RAID中的驅(qū)動(dòng)器數(shù)量加倍并且將位從圖10所示的配置復(fù)制到圖9所示的配置中,可以將圖10的RAID 280擴(kuò)展為圖9的RAID 260。這種RAID擴(kuò)展為RAID增加了空閑空間以便進(jìn)一步添加數(shù)據(jù),而既不需要像RAID 3、4、5和6那樣必須進(jìn)行奇偶校驗(yàn)的重新計(jì)算,也不需要額外的卷積編碼??赡苄枰獙?duì)新擴(kuò)展的RAID中的所有存儲(chǔ)裝置重新計(jì)算元數(shù)據(jù)88,這是因?yàn)槠鹗糒BA和存儲(chǔ)指示符可能由于RAID擴(kuò)展而改變。
圖11所示的流程700示出了實(shí)現(xiàn)存儲(chǔ)由從信息源接收的信息得到的糾錯(cuò)編碼數(shù)據(jù)的一個(gè)實(shí)施例的處理。處理在步驟701開始,并且進(jìn)到判定步驟705,來確定控制器80是否接收到來自源(即,主機(jī)61-65)的信息。控制器80所接收的信息可以是由客戶、向客戶提供服務(wù)的第三方、用戶或任何其他能訪問控制器80的實(shí)體發(fā)送的。如果未接收到信息,則處理返回步驟705。如果接收到信息,則處理進(jìn)到步驟710,在該步驟中卷積編碼器(即,編碼器86)通過將該信息的當(dāng)前和過去位進(jìn)行卷積來處理該信息以產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)。編碼器86可以是圖4的編碼器220或圖15的編碼器420,或者是任何其他卷積編碼器。在某些實(shí)施例中,由控制器80從信息源(即,主機(jī)61-65)接收要編碼和存儲(chǔ)到存儲(chǔ)裝置91-93上的信息。主機(jī)信息接口89從主機(jī)61-65之一接收信息78并將信息78傳送到連接到控制器80的其他部件(即,處理器82、專用電路81等)。在編碼器86處理信息78來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)87之前、期間或之后,可以將信息78臨時(shí)存儲(chǔ)到存儲(chǔ)器件中(即,RAM 84、非易失性存儲(chǔ)器83、專用處理器存儲(chǔ)器等)。
處理從步驟710進(jìn)到步驟715,在該步驟中,在將糾錯(cuò)編碼數(shù)據(jù)(例如由分配器)分配到存儲(chǔ)裝置(即,RAID 90的存儲(chǔ)裝置91-93、97)之前將其存儲(chǔ)在RAM(即,RAM 84)中。作為選擇,可以將糾錯(cuò)編碼數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)器83、另一存儲(chǔ)器件、高速緩存等中。糾錯(cuò)編碼數(shù)據(jù)以用于分配到存儲(chǔ)裝置的格式存儲(chǔ)在RAM中。
處理從步驟715進(jìn)到步驟720,在該步驟中,分配器(即,控制器80中實(shí)現(xiàn)的分配器101)將編碼數(shù)據(jù)分配到多個(gè)存儲(chǔ)裝置(即,RAID 90的存儲(chǔ)裝置91-93、97),使得多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)在發(fā)生故障時(shí)允許從存儲(chǔ)在未發(fā)生故障的存儲(chǔ)裝置上的編碼數(shù)據(jù)重建所述信息。在一個(gè)實(shí)施例中,編碼器86的糾錯(cuò)編碼數(shù)據(jù)輸出以由用戶所選的帶區(qū)寬度(即,1位或1字)和RAID 90中的存儲(chǔ)裝置數(shù)量D確定的格式存儲(chǔ)在RAM 84中。
對(duì)于一個(gè)實(shí)施例,糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,n大于零,從卷積編碼器產(chǎn)生每個(gè)字響應(yīng)卷積編碼器處理信息的一部分。信息的一部分例如可以包括k個(gè)位,其中k大于0。分配器還用于將每個(gè)字的n個(gè)位分配到多個(gè)存儲(chǔ)裝置,使得多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收每個(gè)字的n位中的一個(gè)位以上。圖9示出了當(dāng)使用(2,1,3)二進(jìn)制卷積編碼器(圖4)處理信息來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)時(shí)分配到存儲(chǔ)裝置(260)的糾錯(cuò)編碼數(shù)據(jù)的例子。糾錯(cuò)編碼數(shù)據(jù)的每個(gè)字可以包括例如圖9所示的兩個(gè)位(n=2),第一字包括V(1,1)和V(1,2),第二字包括V(2,1)和V(2,2),第三字包括V(3,1)和V(3,2)等。對(duì)于這個(gè)例子,沒有一個(gè)存儲(chǔ)裝置接收每個(gè)字的兩個(gè)位中的一個(gè)位以上。
圖9還示出了存儲(chǔ)器件(如RAM 84)中存儲(chǔ)的糾錯(cuò)編碼數(shù)據(jù)的例子的表(270)。表270被組織成列,其中每列包括存儲(chǔ)在各個(gè)存儲(chǔ)裝置(即,存儲(chǔ)裝置91-93)中的糾錯(cuò)編碼數(shù)據(jù)。例如,表270的第一列示出驅(qū)動(dòng)器261上存儲(chǔ)的糾錯(cuò)編碼數(shù)據(jù)。列的長度可以變化,在一個(gè)實(shí)施例中,在將糾錯(cuò)編碼數(shù)據(jù)分配并寫入到各個(gè)存儲(chǔ)裝置之前允許列用糾錯(cuò)編碼數(shù)據(jù)填充到指定的容量??梢杂美鐚懨?00(圖7)將糾錯(cuò)編碼數(shù)據(jù)寫入到各個(gè)驅(qū)動(dòng)器。
在另一實(shí)施例中,使用(3,2,1)二進(jìn)制卷積編碼器來處理信息并產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)。圖16示出當(dāng)使用(3,2,1)二進(jìn)制卷積編碼器(圖15)處理信息來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)時(shí)分配到存儲(chǔ)裝置的糾錯(cuò)編碼數(shù)據(jù)的例子。糾錯(cuò)編碼數(shù)據(jù)的每個(gè)字可以包括例如圖16所示的三個(gè)位(n=3),第一字包括V(1,1)、V(1,2)和V(1,3),第二字包括V(2,1)、V(2,2)和V(2,3),第三字包括V(3,1)、V(3,2)和V(3,3)等。對(duì)于這個(gè)例子,沒有一個(gè)存儲(chǔ)裝置接收每個(gè)字的三個(gè)位中的一個(gè)位以上??梢酝ㄟ^增加每個(gè)字中的位數(shù)n以及增加與位數(shù)n成正比的驅(qū)動(dòng)器數(shù)量來適應(yīng)較大的字大小。在一個(gè)實(shí)施例中,多個(gè)存儲(chǔ)裝置的總數(shù)是n位的整數(shù)倍。對(duì)于圖16所示的例子,使用了6個(gè)存儲(chǔ)裝置,是總位數(shù)(在這種情況下n=3)的整數(shù)值倍(2倍)。
在另一實(shí)施例中,糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,從卷積編碼器產(chǎn)生的每個(gè)字響應(yīng)于卷積編碼器處理信息的一部分。信息的一部分可以包括k個(gè)位。分配器還用于將每個(gè)字分配到多個(gè)存儲(chǔ)裝置,使得多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收兩個(gè)或多個(gè)相鄰的字。圖10示出了當(dāng)使用(2,1,3)二進(jìn)制卷積編碼器(圖4)處理信息來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)時(shí)分配到存儲(chǔ)裝置(280)的糾錯(cuò)編碼數(shù)據(jù)的例子。糾錯(cuò)編碼數(shù)據(jù)的每個(gè)字可以包括例如圖10所示的兩個(gè)位(n=2),第一字包括V(1,1)和V(1,2),第二字包括V(2,1)和V(2,2),第三字包括V(3,1)和V(3,2)等。對(duì)于這個(gè)例子,沒有一個(gè)存儲(chǔ)裝置接收兩個(gè)或多個(gè)相鄰的字。對(duì)于該實(shí)施例,相鄰的字包括例如第一字(V(1,1)和V(1,2))與第二字(V(2,1)和V(2,2)),或者第二字V(2,1)和V(2,2))與第三字(V(3,1)和V(3,2))。不相鄰的字的例子是第一字(V(1,1)和V(1,2))與第三字(V(3,1)和V(3,2)),或者第二字V(2,1)和V(2,2))和第四字(V(4,1)和V(4,2))。
圖10還示出存儲(chǔ)在存儲(chǔ)器件(如RAM 84)中的糾錯(cuò)編碼數(shù)據(jù)的例子的表(290)。表290被組織成列,其中每列包括存儲(chǔ)在各個(gè)存儲(chǔ)裝置中的糾錯(cuò)編碼數(shù)據(jù)。例如,表290的第一列示出驅(qū)動(dòng)器281上存儲(chǔ)的糾錯(cuò)編碼數(shù)據(jù)。列的長度可以變化,在一個(gè)實(shí)施例中,在將糾錯(cuò)編碼數(shù)據(jù)分配并寫入到各個(gè)存儲(chǔ)裝置之前允許列用糾錯(cuò)編碼數(shù)據(jù)填充到指定的容量。在步驟725中,可以用例如寫命令600(圖7)將糾錯(cuò)編碼數(shù)據(jù)寫入到各個(gè)驅(qū)動(dòng)器。
在另一實(shí)施例中,使用(3,2,1)二進(jìn)制卷積編碼器來處理信息并產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)。圖16示出當(dāng)使用(3,2,1)二進(jìn)制卷積編碼器(圖14)處理信息來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù)時(shí)分配到存儲(chǔ)裝置的糾錯(cuò)編碼數(shù)據(jù)的例子。糾錯(cuò)編碼數(shù)據(jù)的每個(gè)字可以包括例如圖15所示的三個(gè)位(n=3),第一字包括V(1,1)、V(1,2)和V(1,3),第二字包括V(2,1)、V(2,2)和V(2,3),第三字包括V(3,1)、V(3,2)和V(3,3)等。對(duì)于這個(gè)例子,沒有一個(gè)存儲(chǔ)裝置接收兩個(gè)或多個(gè)相鄰的字。
處理從步驟725轉(zhuǎn)到步驟730,在該步驟中元數(shù)據(jù)控制器(即,元數(shù)據(jù)控制器98)處理信息來產(chǎn)生與糾錯(cuò)編碼數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)(即,圖8的元數(shù)據(jù)88)。元數(shù)據(jù)可以包括指定糾錯(cuò)編碼數(shù)據(jù)的存儲(chǔ)位置的存儲(chǔ)位置信息和/或指定編碼數(shù)據(jù)的編碼類型的編碼器信息。例如,編碼類型可以包括使用的特定卷積編碼器、編碼參數(shù)(即,圖4的(2,1,3)編碼器、圖15的(3,2,1)編碼器等)。編碼類型可以包括其他與使用的編碼器相關(guān)的參數(shù)。指定糾錯(cuò)編碼數(shù)據(jù)的存儲(chǔ)位置的存儲(chǔ)位置信息可以包括存儲(chǔ)裝置永久名、邏輯塊地址、裝置號(hào)、邏輯單元號(hào)、卷序列號(hào)或其他存儲(chǔ)位置標(biāo)識(shí)符??梢允褂锰幚砥?2來實(shí)現(xiàn)通過例如軟件、專用硬件、固件或其組合執(zhí)行上述功能的元數(shù)據(jù)控制器。
處理從步驟730轉(zhuǎn)到步驟735,在該步驟中,元數(shù)據(jù)控制器(即,元數(shù)據(jù)控制器98)將元數(shù)據(jù)處理和存儲(chǔ)在一個(gè)或多個(gè)存儲(chǔ)裝置或非易失性存儲(chǔ)器(即,非易失性存儲(chǔ)器83)中。在某些實(shí)施例中,元數(shù)據(jù)88可以在存儲(chǔ)前可以由編碼器86編碼。在執(zhí)行步驟730后,處理在步驟740結(jié)束。
在某些實(shí)施例中,糾錯(cuò)編碼數(shù)據(jù)通過圖12所示的處理800存儲(chǔ)到存儲(chǔ)裝置上。在步驟809中存儲(chǔ)在RAM 84中的糾錯(cuò)編碼數(shù)據(jù)達(dá)到預(yù)定大小之后,可以將糾錯(cuò)編碼數(shù)據(jù)存儲(chǔ)到存儲(chǔ)裝置上,并且將元數(shù)據(jù)存儲(chǔ)在一個(gè)或多個(gè)裝置中(即,非易失性存儲(chǔ)器83、RAM 84、主機(jī)61-65等)。處理從步驟809進(jìn)到步驟810,將索引D COUNT初始化為1。然后處理進(jìn)到判定步驟811,在該步驟中進(jìn)行D COUNT是否超過存儲(chǔ)裝置數(shù)量D的確定。如果D COUNT沒有超過存儲(chǔ)裝置數(shù)量D,則處理進(jìn)到步驟812,通過寫命令(即,寫命令600)將指定存儲(chǔ)裝置D COUNT的糾錯(cuò)編碼數(shù)據(jù)從RAM 84寫入到存儲(chǔ)裝置D COUNT。例如在圖9中,表270的列中的位(即,位V(1,1)、V(4,1)等)被稱為寫入存儲(chǔ)裝置261的糾錯(cuò)編碼數(shù)據(jù)段。處理然后進(jìn)到步驟813,對(duì)存儲(chǔ)在存儲(chǔ)裝置D COUNT中的數(shù)據(jù)生成元數(shù)據(jù)88。處理進(jìn)到步驟814,在該步驟中將步驟813中生成的元數(shù)據(jù)88冗余地存儲(chǔ)在非易失性存儲(chǔ)器83和D個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)中。然后,處理進(jìn)到步驟815,將D COUNT加1。然后處理回到判定步驟811再次重復(fù)。一旦在步驟811中D COUNT超過D,則處理800在步驟820中結(jié)束。
圖2的狀態(tài)圖200僅僅是用于卷積編碼的一個(gè)可能的狀態(tài)圖。圖13圖解(3,2,1)二進(jìn)制卷積編碼的狀態(tài)圖400。狀態(tài)圖400包括4個(gè)狀態(tài)S0410、S1411、S2412和S3413。狀態(tài)圖400中的各狀態(tài)之間的每次轉(zhuǎn)移導(dǎo)致將2位的輸入信息編碼成3位的糾錯(cuò)編碼數(shù)據(jù)。將參照?qǐng)D14中的表590最佳地說明該編碼。
與圖3中的表290相似,圖14中的表590具有四列初始狀態(tài)591、目的狀態(tài)592、輸入信息593和糾錯(cuò)編碼數(shù)據(jù)594。根據(jù)狀態(tài)圖400中總共4種狀態(tài)和從一個(gè)特定狀態(tài)到下一直接可能狀態(tài)的四種可能的轉(zhuǎn)移,表590中總共有16行。表590是通過狀態(tài)圖400生成的,并且這里用于進(jìn)一步說明(3,2,1)編碼處理。
在圖13中,對(duì)于1011110100的示例編碼,示出了突出表示的編碼路徑S0410、S1411、S3413、S3413、S2412和S0410。對(duì)輸入1011110100從左到右開始,S0410到S1411將10編碼成101。S1411到S3413將11編碼成001。S3413到S3413將11編碼成101。S3413到S2412將01編碼成000。最后,S2412到S0410將00編碼成100。這樣的結(jié)果是輸入信息1011110100被編碼成101001101000100分配并存儲(chǔ)在RAID 90的存儲(chǔ)裝置91-93中。
在圖15中,示出了圖13的狀態(tài)圖400和圖14的表590的二進(jìn)制(3,2,1)碼的編碼器電路420。編碼器電路420是可以在控制器80的裝置專用電路81中實(shí)現(xiàn)的編碼器86的另一個(gè)例子。在某些實(shí)施例中,在單個(gè)控制器(即,控制器80)中僅采用一種類型的編碼器電路220或420。編碼器電路420接收輸入信息流U 421并且通過去復(fù)用器422將輸入的位分成單個(gè)位流U(J,1)423和U(J,2)424以用來編碼。編碼器電路220包括m=1級(jí)移位寄存器,后者包括寄存器430和431。對(duì)于編碼處理,寄存器430-431的初始內(nèi)容典型地被初始化為零。輸入信息流U(J,1)423和U(J,2)424以及寄存器430和431的輸出由n=3個(gè)模2加法器選擇性相加;加法器包括產(chǎn)生輸出V(J,1)441的加法器440、產(chǎn)生輸出V(J,2)443的加法器442和產(chǎn)生輸出V(J,3)445的加法器444。復(fù)用器451將各個(gè)編碼器輸出V(J,1)441、V(J,2)443和V(J,3)445串行化成編碼輸出V 450。由圖15的V(J,1)441、V(J,2)443和V(J,3)445定義的關(guān)于索引J的每個(gè)增量輸出V 450稱為字。
圖16與圖9類似,其中編碼器電路420的輸出被存儲(chǔ)在經(jīng)過裝置461-466的1位寬的帶區(qū)中。裝置461-466是像圖1中的存儲(chǔ)裝置91-93那樣的多個(gè)存儲(chǔ)裝置。在圖16中,帶區(qū)1-3包括來自第一輸入信息的第一部分糾錯(cuò)編碼數(shù)據(jù),而帶區(qū)4包括來自第二輸入信息的第二部分糾錯(cuò)編碼數(shù)據(jù)。帶區(qū)1是RAID 460中的第一帶區(qū),并且它是第一部分糾錯(cuò)編碼數(shù)據(jù)的第一帶區(qū)。帶區(qū)1包括裝置461中的位V(1,1)471A、裝置462中的位V(1,2)471B、裝置463中的位V(1,3)471C、裝置464中的位V(2,1)471D、裝置465中的位V(2,2)471E和裝置466中的位V(2,3)471F。帶區(qū)2是相同的第一部分糾錯(cuò)編碼數(shù)據(jù)的RAID 460中的第二帶區(qū)。帶區(qū)2包括裝置461中的位V(3,1)472A、裝置462中的位V(3,2)472B、裝置463中的位V(3,3)472C、裝置464中的位V(4,1)472D、裝置465中的位V(4,2)472E和裝置466中的位V(4,3)472F。帶區(qū)3是相同的第一部分糾錯(cuò)編碼數(shù)據(jù)的RAID 460中的第三帶區(qū)。帶區(qū)3包括裝置461中的位V(5,1)473A、裝置462中的位V(5,2)473B、裝置463中的位V(5,3)473C、裝置464中的位V(6,1)473D、裝置465中的位V(6,2)473E和裝置466中的位V(6,3)473F。帶區(qū)4是第二部分糾錯(cuò)編碼數(shù)據(jù)的RAID 460中的第一帶區(qū)。帶區(qū)4包括裝置461中的位V(1,1)474A、裝置462中的位V(1,2)474B、裝置463中的位V(1,3)474C、裝置464中的位V(2,1)474D、裝置465中的位V(2,2)474E和裝置466中的位V(2,3)474F。
類似地,圖17與圖10相似,其中編碼器電路420的輸出被存儲(chǔ)在經(jīng)裝置481-482分布的3位寬的帶區(qū)(其中,n=3位包括一個(gè)“字”)中。圖17示出圖16所示的每帶區(qū)每裝置1位的替代。由于圖15具有n=3個(gè)輸出,因此在圖17中在n=3位寬帶區(qū)中每裝置存儲(chǔ)輸出V的n=3位。在圖17中對(duì)于包括裝置481-482的RAID 480示出了來自第一輸入信息的第一部分糾錯(cuò)編碼數(shù)據(jù)的卷積編碼數(shù)據(jù)的三個(gè)帶區(qū)、和來自第二輸入信息的第二部分糾錯(cuò)編碼數(shù)據(jù)的一個(gè)帶區(qū)。裝置481-482可以是圖1的存儲(chǔ)裝置91-93的任何一對(duì)。帶區(qū)1是RAID 480的第一帶區(qū),并且是第一部分糾錯(cuò)編碼數(shù)據(jù)的第一帶區(qū)。帶區(qū)1包括裝置481中的位V(1,1)、V(1,2)、V(1,3)491A和裝置482中的位V(2,1)、V(2,2)、V(1,3)491B。類似地,帶區(qū)2是相同的第一部分糾錯(cuò)編碼數(shù)據(jù)的RAID 460中的第二帶區(qū)。帶區(qū)2包括裝置481中的位V(3,1)、V(3,3)、V(3,3)492A、裝置482中的位V(4,1)、V(4,2)、V(4,3)492B。帶區(qū)3是相同的第一部分糾錯(cuò)編碼數(shù)據(jù)的RAID 480中的第三帶區(qū)。帶區(qū)3包括裝置481中的位V(5,1)、V(5,2)、V(5,3)493A和裝置482中的位V(6,1)、V(6,2)、V(6,3)493B。帶區(qū)4是RAID 480中的第四帶區(qū),但它也是第二部分糾錯(cuò)編碼數(shù)據(jù)的第一帶區(qū),因此它包括裝置481中的位V(1,1)、V(1,2)、V(1,3)494A和裝置482中的位V(2,1)、V(2,2)、V(2,3)494B。
這里說明卷積編碼和卷積的幾個(gè)具體示例。提供這些示例是為了卷積編碼能夠使本領(lǐng)域普通技術(shù)人員對(duì)所述實(shí)施例無限制地采用任何一種類型的卷積編碼。
參照?qǐng)D16-17示出了RAID擴(kuò)展的另一例子。通過將RAID中的驅(qū)動(dòng)器數(shù)量三倍并且將位從圖17所示的配置的位復(fù)制到圖16所示的配置中,可以將圖17的RAID 480擴(kuò)展為圖16的RAID 460。這種RAID擴(kuò)展為RAID增加了空閑空間以便進(jìn)一步添加數(shù)據(jù),而既不需要像RAID 3、4、5和6那樣必須進(jìn)行奇偶校驗(yàn)的重新計(jì)算,也不需要額外的卷積編碼??赡苄枰獙?duì)新擴(kuò)展的RAID中的所有存儲(chǔ)裝置重新計(jì)算元數(shù)據(jù)88,這是因?yàn)槠鹗糒BA和存儲(chǔ)指示符可能改變。在某些實(shí)施例中,存儲(chǔ)裝置(即,RAID 90中的存儲(chǔ)裝置91-93)被分配到分離的物理位置。例如,可以通過將存儲(chǔ)裝置92-93放在不同的房間、建筑、城市、州、國家等來將每個(gè)存儲(chǔ)裝置91、92和93在物理上相互分離。
某些實(shí)施例包括為存儲(chǔ)編碼數(shù)據(jù)向客戶收費(fèi),其中費(fèi)用基于接收到的信息量。這可以通過例如向服務(wù)提供商發(fā)送數(shù)據(jù)的客戶協(xié)議來完成,其中服務(wù)提供商負(fù)責(zé)按要求存儲(chǔ)和取出客戶的數(shù)據(jù)。服務(wù)提供商可以是存儲(chǔ)系統(tǒng)的管理者和/或作為客戶與另一實(shí)體之間的業(yè)務(wù)關(guān)系中的第三方??梢詾榭蛻籼峁┑接糜诖鎯?chǔ)信息的系統(tǒng)(即,圖1的SAN 10)的連接??蛻艨梢允褂迷撨B接或其他途徑將他的信息發(fā)送給系統(tǒng)以便存儲(chǔ)??蛻舭l(fā)送或SAN 10和/或控制器80接收的信息量可以通過本領(lǐng)域中已知的測量數(shù)據(jù)量的方法來測量。在所分配的存儲(chǔ)空間上存儲(chǔ)重建數(shù)據(jù)的費(fèi)用可以通過考慮發(fā)送來存儲(chǔ)的信息量和其他因素(如信息流速率、使用頻率、壓縮或未壓縮的信息、固定月費(fèi)率或其他考慮)來確定。
這里所述的實(shí)施例可以采用完全硬件實(shí)現(xiàn)、完全軟件實(shí)現(xiàn)或包括硬件和軟件部分的實(shí)現(xiàn)的形式。在某些實(shí)施例中,本發(fā)明用軟件實(shí)現(xiàn),包括但不限于固件、駐留軟件、微代碼等。
此外,這里所述的實(shí)施例可以采用可從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)訪問的計(jì)算機(jī)程序產(chǎn)品的形式,該介質(zhì)提供由(或連同)計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用的程序代碼。為了描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是任何包含、存儲(chǔ)、通信、傳播或傳送由(或連同)指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的程序的裝置。
介質(zhì)可以電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)(或設(shè)備或裝置)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)磁盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、剛性磁盤和光盤。光盤的當(dāng)前例子包括緊致盤只讀存儲(chǔ)器(CD-ROM)、緊致盤讀/寫(CD-R/W)和DVD。
適合存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)可以包括至少一個(gè)直接或間接通過系統(tǒng)總線連接到存儲(chǔ)器元件的處理器。存儲(chǔ)器元件可以包括在程序代碼實(shí)際執(zhí)行期間使用的局部存儲(chǔ)器、海量存儲(chǔ)裝置和高速緩存,高速緩存提供至少一些程序代碼的臨時(shí)存儲(chǔ),以便減少在執(zhí)行期間必須從海量存儲(chǔ)裝置中取出代碼的次數(shù)。
輸入/輸出或I/O裝置(包括但不限于鍵盤、顯示器、指針裝置等)可以直接或通過中間的I/O控制器連接到系統(tǒng)。
網(wǎng)絡(luò)適配器還可以連接到系統(tǒng)以允許數(shù)據(jù)處理系統(tǒng)通過中間的專用或公用網(wǎng)絡(luò)連接到其他數(shù)據(jù)處理裝置或遠(yuǎn)程打印機(jī)或存儲(chǔ)裝置。調(diào)制解調(diào)器、有線調(diào)制解調(diào)器和以太網(wǎng)卡只是幾個(gè)當(dāng)前可用類型的網(wǎng)絡(luò)適配器。
這里所述的實(shí)施例可以作為方法、裝置或者使用生產(chǎn)軟件、固件、硬件或其組合的標(biāo)準(zhǔn)編程和/或引擎技術(shù)實(shí)現(xiàn)的計(jì)算機(jī)程序產(chǎn)品。
在某些實(shí)施例中,申請(qǐng)人的發(fā)明包括指令,其中這些指令由處理器82(圖1)和/或控制器80(圖1)運(yùn)行來執(zhí)行圖11和12中所示的流程圖中的步驟。
在其他實(shí)施例中,申請(qǐng)人的發(fā)明包括駐留在任何其他計(jì)算機(jī)程序產(chǎn)品中的指令,其中這些指令由控制器80外部或內(nèi)部的計(jì)算機(jī)執(zhí)行。在任一種情況中,指令可以編碼在信息存儲(chǔ)介質(zhì)中,介質(zhì)包括磁信息存儲(chǔ)介質(zhì)、光信息存儲(chǔ)介質(zhì)、電信息存儲(chǔ)介質(zhì)等。申請(qǐng)人所謂的“電存儲(chǔ)介質(zhì)”是指諸如PROM、EPROM、EEPROM、閃速PROM、壓縮閃存、智能卡之類的裝置。
某些實(shí)施例可以針對(duì)由人或自動(dòng)處理系統(tǒng)采用計(jì)算基礎(chǔ)架構(gòu)的方法,包括將計(jì)算機(jī)可讀代碼集成進(jìn)執(zhí)行上述實(shí)施例的操作的系統(tǒng)。例如,圖11和12圖解使用所述實(shí)施例取出編碼數(shù)據(jù)格式的信息的步驟。代碼與系統(tǒng)(即,SAN 10)的組合能夠執(zhí)行這里所述實(shí)施例的操作的步驟。計(jì)算基礎(chǔ)架構(gòu)的部署可以在這里所述的實(shí)施例的服務(wù)、制造和/或配置期間進(jìn)行。例如,咨詢公司可以有對(duì)多個(gè)系統(tǒng)的服務(wù)責(zé)任。這種服務(wù)責(zé)任可以包括諸如系統(tǒng)升級(jí)、錯(cuò)誤診斷、性能調(diào)整和增強(qiáng)、安裝新硬件、安裝新軟件、與其他系統(tǒng)的配置等。作為該服務(wù)的一部分,或者作為單獨(dú)的服務(wù),服務(wù)人員可以根據(jù)這里所述的技術(shù)配置系統(tǒng),以便有效地允許這里所述實(shí)施例的操作。例如,該配置可以包括將計(jì)算機(jī)指令、參數(shù)、常數(shù)(即,卷積編碼類型、一個(gè)字中的位數(shù)量n、帶區(qū)寬度、存儲(chǔ)裝置數(shù)量等)、中斷向量加載到存儲(chǔ)器中,以便當(dāng)執(zhí)行代碼時(shí),系統(tǒng)可以執(zhí)行所述的技術(shù)來實(shí)現(xiàn)這里所述的實(shí)施例。
上述用于說明目的的描述使用特定術(shù)語來提供對(duì)所述實(shí)施例的詳盡理解。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,這些特定細(xì)節(jié)并不是實(shí)踐實(shí)施例的操作所必須的。在其他方面,公知的電路和裝置用方框圖的形式示出,以便避免不必要地分散對(duì)實(shí)施例的注意。因此,上述對(duì)特定實(shí)施例的描述是用于說明和描述目的。它們并不意圖窮舉或?qū)?shí)施例的操作限制于所公開的精確形式。顯然,根據(jù)上述討論,許多修改和變型是可能的。
圖11和12的邏輯描述了以特定順序發(fā)生的特定操作。在替代的實(shí)現(xiàn)中,一些邏輯操作可以以不同的順序執(zhí)行、修改或刪除。此外,可以向上述邏輯添加步驟并且任何符合所述實(shí)現(xiàn)。此外,這里所述的操作可以順序發(fā)生,或者可以并行處理某些操作,或者由單個(gè)處理執(zhí)行的所述操作可以由分散的處理來執(zhí)行。
圖11和圖12的邏輯可以用軟件實(shí)現(xiàn)。該邏輯可以是主機(jī)的操作系統(tǒng)的一部分或應(yīng)用程序。在另一個(gè)實(shí)現(xiàn)中,該邏輯可以保存在由SAN 10管理的存儲(chǔ)區(qū)域中,或者在只讀存儲(chǔ)器或其他硬線類型的裝置中。優(yōu)選的邏輯可以在硬盤驅(qū)動(dòng)器中實(shí)現(xiàn)或者在可編程和非可編程門陣列邏輯中實(shí)現(xiàn)。
RAID領(lǐng)域中的技術(shù)人員可以開發(fā)等效于這里所述實(shí)施例的其他實(shí)施例。上述說明書中采用的術(shù)語和表示方式在這里是用作描述性的術(shù)語,而非限制性,并且在使用這些術(shù)語和表示方式時(shí)并沒有意圖將其所示和描述的特征的等效物或其部分排除在外,應(yīng)當(dāng)認(rèn)識(shí)到范圍僅僅由權(quán)利要求書定義和限制。
權(quán)利要求
1.一種用于存儲(chǔ)信息的系統(tǒng),包括卷積編碼器,用于通過將所述信息的當(dāng)前和過去位進(jìn)行卷積來處理所述信息以產(chǎn)生糾錯(cuò)編碼數(shù)據(jù);和分配器,用于將所述編碼數(shù)據(jù)分配到多個(gè)存儲(chǔ)裝置使得所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)在發(fā)生故障時(shí)允許從存儲(chǔ)在未發(fā)生故障的存儲(chǔ)裝置上的所述編碼數(shù)據(jù)重建所述信息。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,從所述卷積編碼器產(chǎn)生的每個(gè)所述字響應(yīng)所述卷積編碼器處理所述信息的一部分,并且所述分配器還用于將每個(gè)字的所述n位分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收每個(gè)所述字的所述n位中的一個(gè)位以上。
3.如權(quán)利要求2所述的系統(tǒng),其中,所述多個(gè)存儲(chǔ)裝置的總數(shù)是所述n位的整數(shù)倍。
4.如權(quán)利要求1所述的系統(tǒng),其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,從所述卷積編碼器產(chǎn)生的每個(gè)所述字響應(yīng)所述卷積編碼器處理所述信息的一部分,并且所述分配器還用于將每個(gè)所述字分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收兩個(gè)或更多相鄰的字。
5.如權(quán)利要求1所述的系統(tǒng),還包括元數(shù)據(jù)控制器,用于處理所述信息以產(chǎn)生與所述編碼數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)包括指定所述編碼數(shù)據(jù)的存儲(chǔ)位置的存儲(chǔ)位置信息。
6.如權(quán)利要求5所述的系統(tǒng),其中,所述元數(shù)據(jù)控制器還用于將所述元數(shù)據(jù)存儲(chǔ)在所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)中。
7.如權(quán)利要求5所述的系統(tǒng),其中,所述元數(shù)據(jù)控制器還用于將所述元數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)器中。
8.如權(quán)利要求1所述的系統(tǒng),還包括元數(shù)據(jù)控制器,用于處理所述信息以產(chǎn)生與所述編碼數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)包括指定所述編碼數(shù)據(jù)的編碼類型的編碼器信息。
9.一種用于存儲(chǔ)信息的系統(tǒng),包括卷積編碼器,用于通過將提供給所述卷積編碼器的所述信息的當(dāng)前和過去位卷積來處理所述信息以產(chǎn)生糾錯(cuò)編碼數(shù)據(jù),其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,從所述卷積編碼器產(chǎn)生的每個(gè)所述字響應(yīng)所述卷積編碼器處理所述信息的一部分;多個(gè)存儲(chǔ)裝置,用于將所述編碼數(shù)據(jù)存儲(chǔ)在所述多個(gè)存儲(chǔ)裝置上;和分配器,用于將所述編碼數(shù)據(jù)分配到多個(gè)存儲(chǔ)裝置。
10.一種分配器,用于將卷積編碼器產(chǎn)生的糾錯(cuò)編碼數(shù)據(jù)分配到多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)在發(fā)生故障時(shí)允許從存儲(chǔ)在未發(fā)生故障的存儲(chǔ)裝置上的所述編碼數(shù)據(jù)重建所述信息,所述糾錯(cuò)編碼數(shù)據(jù)通過卷積提供給所述卷積編碼器的信息的當(dāng)前和過去位而生成。
11.如權(quán)利要求10所述的分配器,其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,從所述卷積編碼器產(chǎn)生的每個(gè)所述字響應(yīng)所述卷積編碼器處理所述信息的一部分,并且所述分配器還用于分配糾錯(cuò)編碼數(shù)據(jù),使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收每個(gè)所述字的所述n位中的一個(gè)位以上。
12.如權(quán)利要求10所述的分配器,其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,從所述卷積編碼器產(chǎn)生的每個(gè)所述字響應(yīng)所述卷積編碼器處理所述信息的一部分,并且所述分配器還用于將每個(gè)所述字分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收兩個(gè)或更多相鄰的字。
13.一種存儲(chǔ)區(qū)域網(wǎng)絡(luò),包括至少一個(gè)主機(jī);連接到所述至少一個(gè)主機(jī)的卷積編碼器,用于通過將所述信息的當(dāng)前和過去位進(jìn)行卷積來處理從所述至少一個(gè)主機(jī)接收的信息來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù);多個(gè)存儲(chǔ)裝置,用于將所述編碼數(shù)據(jù)存儲(chǔ)在所述多個(gè)存儲(chǔ)裝置上;和分配器,用于將所述編碼數(shù)據(jù)分配到多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)在發(fā)生故障時(shí)允許從存儲(chǔ)在未發(fā)生故障的存儲(chǔ)裝置上的所述編碼數(shù)據(jù)重建所述信息。
14.如權(quán)利要求13所述的存儲(chǔ)區(qū)域網(wǎng)絡(luò),其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,從所述卷積編碼器產(chǎn)生的每個(gè)所述字響應(yīng)所述卷積編碼器處理所述信息的一部分,并且所述分配器還用于將每個(gè)字的所述n位分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收每個(gè)所述字的所述n位中的一個(gè)位以上。
15.如權(quán)利要求14所述的存儲(chǔ)區(qū)域網(wǎng)絡(luò),其中,所述多個(gè)存儲(chǔ)裝置的總數(shù)是所述n位的整數(shù)倍。
16.如權(quán)利要求13所述的存儲(chǔ)區(qū)域網(wǎng)絡(luò),其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,從所述卷積編碼器產(chǎn)生的每個(gè)所述字響應(yīng)所述卷積編碼器處理所述信息的一部分,并且所述分配器還用于將每個(gè)所述字分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收兩個(gè)或更多相鄰的字。
17.如權(quán)利要求13所述的存儲(chǔ)區(qū)域網(wǎng)絡(luò),還包括元數(shù)據(jù)控制器,用于處理所述信息以產(chǎn)生與所述編碼數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)包括指定所述編碼數(shù)據(jù)的存儲(chǔ)位置的存儲(chǔ)位置信息。
18.如權(quán)利要求17所述的存儲(chǔ)區(qū)域網(wǎng)絡(luò),其中,所述元數(shù)據(jù)控制器還用于將所述元數(shù)據(jù)存儲(chǔ)在所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)中。
19.如權(quán)利要求17所述的存儲(chǔ)區(qū)域網(wǎng)絡(luò),其中,所述元數(shù)據(jù)控制器還用于將所述元數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)器中。
20.如權(quán)利要求13所述的存儲(chǔ)區(qū)域網(wǎng)絡(luò),還包括元數(shù)據(jù)控制器,用于處理所述信息以產(chǎn)生與所述編碼數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)包括指定所述編碼數(shù)據(jù)的編碼類型的編碼器信息。
21.如權(quán)利要求13所述的存儲(chǔ)區(qū)域網(wǎng)絡(luò),其中,所述多個(gè)存儲(chǔ)裝置被分配到分離的物理位置。
22.一種方法,包括從源接收信息;通過將所述信息的當(dāng)前和過去位進(jìn)行卷積來處理所述信息來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù);將所述編碼的數(shù)據(jù)分配到多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)在發(fā)生故障時(shí)允許從存儲(chǔ)在未發(fā)生故障的存儲(chǔ)裝置上的所述編碼數(shù)據(jù)重建所述信息;和將所述編碼數(shù)據(jù)存儲(chǔ)在所述多個(gè)存儲(chǔ)裝置上。
23.如權(quán)利要求22所述的方法,其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,每個(gè)所述字由處理所述信息的一部分而產(chǎn)生,并且其中所述分配步驟還包括將每個(gè)字的所述n位分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收每個(gè)所述字的所述n位中的一個(gè)位以上。
24.如權(quán)利要求23所述的方法,還包括提供所述多個(gè)存儲(chǔ)裝置的總數(shù),使得所述總數(shù)是所述n位的整數(shù)倍。
25.如權(quán)利要求22所述的方法,其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,每個(gè)所述字由處理所述信息的一部分而產(chǎn)生,并且其中所述分配步驟還包括將每個(gè)所述字分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收兩個(gè)或更多相鄰的字。
26.如權(quán)利要求22所述的方法,還包括處理所述信息以產(chǎn)生與所述編碼數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)包括指定所述編碼數(shù)據(jù)的存儲(chǔ)位置的存儲(chǔ)位置信息。
27.如權(quán)利要求26所述的方法,還包括將所述元數(shù)據(jù)存儲(chǔ)在所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)中。
28.如權(quán)利要求22所述的方法,還包括處理所述信息以產(chǎn)生與所述編碼數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)包括指定所述編碼數(shù)據(jù)的編碼類型的編碼器信息。
29.如權(quán)利要求22所述的方法,還包括對(duì)所述編碼數(shù)據(jù)的所述存儲(chǔ)向客戶收費(fèi),所述費(fèi)用基于接收的所述信息量。
30.一種包括計(jì)算機(jī)可用介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,具有嵌入在所述介質(zhì)中的計(jì)算機(jī)可讀程序,其中所述計(jì)算機(jī)可讀程序在計(jì)算機(jī)上執(zhí)行時(shí)使得計(jì)算機(jī)執(zhí)行如權(quán)利要求22到29中任一權(quán)利要求所述的步驟。
31.一種部署計(jì)算基礎(chǔ)架構(gòu)的方法,包括將計(jì)算機(jī)可讀代碼集成到存儲(chǔ)信息的系統(tǒng)中,其中代碼與所述系統(tǒng)組合能夠執(zhí)行下列步驟通過將所述信息的當(dāng)前和過去位進(jìn)行卷積來處理所述信息來產(chǎn)生糾錯(cuò)編碼數(shù)據(jù);和將所述編碼的數(shù)據(jù)分配到多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中的一個(gè)或多個(gè)在發(fā)生故障時(shí)允許從存儲(chǔ)在未發(fā)生故障的存儲(chǔ)裝置上的所述編碼數(shù)據(jù)重建所述信息。
32.如權(quán)利要求31所述的方法,其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,其中所述代碼與所述系統(tǒng)組合還能夠執(zhí)行下列步驟響應(yīng)于處理所述信息的一部分而產(chǎn)生每個(gè)所述字;和將每個(gè)字的所述n位分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收每個(gè)所述字的所述n位中的一個(gè)位以上。
33.如權(quán)利要求31所述的方法,其中,所述糾錯(cuò)編碼數(shù)據(jù)包括一個(gè)或多個(gè)字,每個(gè)字包括n個(gè)位,其中n大于零,其中所述代碼與所述系統(tǒng)組合還能夠執(zhí)行下列步驟響應(yīng)于處理所述信息的一部分而產(chǎn)生每個(gè)所述字;和將每個(gè)所述字的所述n位分配到所述多個(gè)存儲(chǔ)裝置,使得所述多個(gè)存儲(chǔ)裝置中沒有一個(gè)接收兩個(gè)或更多相鄰的字。
全文摘要
公開用于在獨(dú)立存儲(chǔ)裝置冗余陣列(RAID)上存儲(chǔ)經(jīng)卷積編碼的數(shù)據(jù)的方法、系統(tǒng)和制造物品。經(jīng)卷積編碼的數(shù)據(jù)包括經(jīng)糾錯(cuò)編碼的數(shù)據(jù),用于消除卷積RAID數(shù)據(jù)存儲(chǔ)中需要使用的奇偶校驗(yàn)。存儲(chǔ)裝置的數(shù)量可以變化來適應(yīng)存儲(chǔ)容量的擴(kuò)展并提供隨需的存儲(chǔ)。
文檔編號(hào)G06F11/10GK1862501SQ20061005899
公開日2006年11月15日 申請(qǐng)日期2006年3月9日 優(yōu)先權(quán)日2005年5月9日
發(fā)明者丹尼爾·J·威納爾斯基, 克雷格·A·克萊因, 尼爾斯·豪斯坦 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
丰顺县| 方正县| 突泉县| 闻喜县| 黄浦区| 阿拉尔市| 曲周县| 凤阳县| 长葛市| 内黄县| 云霄县| 青岛市| 建始县| 同江市| 儋州市| 清徐县| 宜宾市| 长岛县| 交口县| 策勒县| 高要市| 永嘉县| 宝兴县| 云阳县| 喀喇沁旗| 吉水县| 贞丰县| 德阳市| 吉木萨尔县| 安仁县| 荔浦县| 阳谷县| 连江县| 荣成市| 德庆县| 如皋市| 陵川县| 巧家县| 平阴县| 姜堰市| 鹤庆县|