亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

編碼和/或解碼系統(tǒng)數(shù)據(jù)的方法、裝置、系統(tǒng)和體系結(jié)構(gòu)的制作方法

文檔序號:6775844閱讀:151來源:國知局
專利名稱:編碼和/或解碼系統(tǒng)數(shù)據(jù)的方法、裝置、系統(tǒng)和體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及數(shù)據(jù)存儲和檢索的領(lǐng)域。更具體而言,本發(fā)明的實 施例涉及用于對系統(tǒng)數(shù)據(jù)(或元數(shù)據(jù))多次編碼的方法、裝置、系統(tǒng)和體 系結(jié)構(gòu)。
背景技術(shù)
在一些傳統(tǒng)的數(shù)據(jù)存儲系統(tǒng)中,例如在那些采用硬盤驅(qū)動器、致密
盤、數(shù)字多功能盤(DVD)、閃存和隨機訪問存儲器的數(shù)據(jù)存儲系統(tǒng)中, 所謂的用戶數(shù)據(jù)和元數(shù)據(jù)可被存儲在同一個扇區(qū)中。用戶數(shù)據(jù)可包括諸如 文檔、照片、音頻文件、媒體文件、操作文件等等之類的數(shù)據(jù)。關(guān)于用戶 數(shù)據(jù)的附加信息可由系統(tǒng)生成并且例如可對應于用戶數(shù)據(jù)的長度和/或位 置、用戶數(shù)據(jù)的創(chuàng)建時間、用戶數(shù)據(jù)的類型、用戶數(shù)據(jù)的保護狀態(tài),等 等。該附加信息有時被稱為系統(tǒng)數(shù)據(jù),或者元數(shù)據(jù)。 一般地,用戶數(shù)據(jù)占 用的存儲空間比相應元數(shù)據(jù)占用的存儲空間要大得多。為了幫助諸如數(shù)據(jù) 組合、索引和搜索之類的系統(tǒng)操作,存儲系統(tǒng)經(jīng)常需要僅訪問元數(shù)據(jù)。
一些傳統(tǒng)的數(shù)據(jù)存儲系統(tǒng)還可以結(jié)合糾錯和/或差錯檢測來確保對用戶 數(shù)據(jù)和元數(shù)據(jù)兩者的可靠存儲和檢索。例如,通過采用諸如Bose-Chaudhuri-Hocquenghem (BCH)編碼、Reed-Solomon編碼、低密度奇偶 校驗編碼、Hamming編碼、Reed-Muller編碼、二進制Golay編碼、Viterbi 編碼、Turbo編碼、最優(yōu)矩形編碼或迭代編碼之類的糾錯算法,或者通過 采用諸如奇偶校驗比特、校驗和或者循環(huán)冗余校驗之類的差錯檢測算法, 可以從相應的用戶數(shù)據(jù)和/或元數(shù)據(jù)生成冗余數(shù)據(jù)。冗余數(shù)據(jù)通常與用戶數(shù) 據(jù)和元數(shù)據(jù)被存儲在同 一扇區(qū)中。
參考圖1和2的示例, 一些傳統(tǒng)的體系結(jié)構(gòu)包括將用戶數(shù)據(jù)20、元數(shù) 據(jù)30和冗余數(shù)據(jù)40存儲在存儲系統(tǒng)的同一個扇區(qū)10中,其中冗余數(shù)據(jù)40對應于聯(lián)合編碼的用戶數(shù)據(jù)20和元數(shù)據(jù)30。對用戶數(shù)據(jù)和元數(shù)據(jù)進行 聯(lián)合編碼(即,將用戶數(shù)據(jù)和元數(shù)據(jù)一起作為單個串行數(shù)據(jù)流進行編碼) 提供了對用戶數(shù)據(jù)的更可靠存儲和檢索。出于說明而非限制目的,假定在 每個扇區(qū)10中,4千字節(jié)被分配給用戶數(shù)據(jù)20,并且80字節(jié)被分配給元 數(shù)據(jù)。如果生成與對用戶數(shù)據(jù)20和元數(shù)據(jù)30的聯(lián)合16比特BCH編碼相 對應的冗余數(shù)據(jù)40,則將會觀察到,當?shù)扔?0的BCH糾錯力(T)(對 應于二進制數(shù)據(jù)的約T*16比特)被分配給冗余數(shù)據(jù)40時,對用戶數(shù)據(jù)和 元數(shù)據(jù)兩者解碼的失敗率概率約為10~5。類似地,當T = 117 (對應于二 進制數(shù)據(jù)的約117*16比特)被分配給冗余數(shù)據(jù)40時,對用戶數(shù)據(jù)和元數(shù) 據(jù)兩者解碼的失敗率概率約為10A-25。然而,因為冗余數(shù)據(jù)40是從用戶 數(shù)據(jù)20和元數(shù)據(jù)30兩者生成的,所以用戶數(shù)據(jù)20和元數(shù)據(jù)30都必須被 讀取并被聯(lián)合解碼,即使在希望只檢索元數(shù)據(jù)30時也是如此。從而,一 些傳統(tǒng)的體系結(jié)構(gòu)雖然使得數(shù)據(jù)存儲和檢索能夠具有極佳的可靠性,但卻 不能僅對元數(shù)據(jù)進行高吞吐量的檢索。
從而,在一些其他的傳統(tǒng)體系結(jié)構(gòu)中,提供了兩組冗余數(shù)據(jù)——一組 僅對應于用戶數(shù)據(jù),另一組僅對應于元數(shù)據(jù)。在這些方案中,元數(shù)據(jù)可以 獨立于用戶數(shù)據(jù)地利用其相應地冗余數(shù)據(jù)來被解碼,從而使得能夠僅對元 數(shù)據(jù)進行高吞吐量的檢索。參考圖3和4的示例,用戶數(shù)據(jù)120、元數(shù)據(jù) 130、對應于用戶數(shù)據(jù)120的第一冗余數(shù)據(jù)143和對應于元數(shù)據(jù)130的第二 冗余數(shù)據(jù)146被存儲在存儲系統(tǒng)的同一扇區(qū)110中。然而,分配給冗余數(shù) 據(jù)的總空間現(xiàn)在由第一冗余數(shù)據(jù)143和第二冗余數(shù)據(jù)146共享,這可能增 大開銷成本和/或減小差錯校驗和/或糾正(ECC)的能力。
再次考慮生成對應于16比特BCH編碼的冗余數(shù)據(jù)的示例,4千字節(jié) 被分配給用戶數(shù)據(jù)120, 80字節(jié)被分配給元數(shù)據(jù)130,并且被分配用于經(jīng) 編碼的冗余數(shù)據(jù)(即,第一冗余數(shù)據(jù)143和第二冗余數(shù)據(jù)146)的總可用 空間為220字節(jié)。換言之,如果使用16比特BCH編碼,則總糾錯力 T—total=110。如圖所示,當更多比特被分配給第二冗余數(shù)據(jù)146時,則更 少的比特可用于分配給第一冗余數(shù)據(jù)143,因此導致用戶數(shù)據(jù)120的失敗 率概率更高。如果希望元數(shù)據(jù)的失敗率概率小于或等于用戶數(shù)據(jù)失敗率概率,則對第一和第二冗余數(shù)據(jù)的相應比特分配必須滿足解答線180 (例 如,位于解答線180處或者在解答線180的左側(cè))。從而,為了使得元數(shù) 據(jù)130的差錯檢驗和/或糾正與用戶數(shù)據(jù)120—樣可靠,必須向第一冗余數(shù) 據(jù)143分配不多于T=95 (對應于95*16比特)(例如參見解答點183)。 結(jié)果,約T=15 (對應于15*16比特)可用于分配給第二冗余數(shù)據(jù)146 (例 如,總ECC糾正力[117]和分配給第一冗余數(shù)據(jù)的ECC糾正力[95]之間的 差)。在此情況下,用戶數(shù)據(jù)的失敗率概率約為10A-17 (與圖l和2的聯(lián) 合編碼體系結(jié)構(gòu)的10A-25對比)。因此,雖然對用戶數(shù)據(jù)和元數(shù)據(jù)的獨立 編碼提供了僅對元數(shù)據(jù)的更高吞吐量檢索,但它卻沒有提供數(shù)據(jù)存儲和檢 索的極佳可靠性。另一方面,增大ECC比特的數(shù)目以對經(jīng)過解碼的用戶數(shù)據(jù)和元數(shù)據(jù)進 行單獨的差錯校驗和/或糾正不僅會增大所消耗的存儲器的量,而且還會增 大差錯校驗和/或糾正邏輯的復雜度。因此,需要能夠僅對元數(shù)據(jù)進行迅 速、獨立和可靠的檢索,其中用戶數(shù)據(jù)可靠性的降低達到最低限度。發(fā)明內(nèi)容本發(fā)明的實施例涉及用于對系統(tǒng)數(shù)據(jù)(或元數(shù)據(jù))進行多次編碼的方 法、裝置、系統(tǒng)和體系結(jié)構(gòu)。更具體而言,本發(fā)明的實施例涉及對元數(shù)據(jù) 進行至少兩次編碼,其中至少一次是獨立編碼,至少一次是與用戶數(shù)據(jù)一 起的聯(lián)合編碼。在一些實施例中,在存儲系統(tǒng)中存儲具有用戶數(shù)據(jù)部分和元數(shù)據(jù)部分 的數(shù)據(jù)的方法可包括利用長度為A的第一冗余碼對用戶數(shù)據(jù)和元數(shù)據(jù)進 行編碼;利用長度為尸的第二冗余碼對元數(shù)據(jù)進行編碼;以及將用戶數(shù) 據(jù)、元數(shù)據(jù)、第一冗余碼和第二冗余碼中的每一個一起寫在存儲系統(tǒng)中。(一個或多個)算法和/或軟件一般可被配置為實現(xiàn)這種方法和/或體現(xiàn)這 里描述的發(fā)明構(gòu)思的任何過程或步驟序列。在其他實施例中,在具有多個部分的數(shù)據(jù)的第一部分和第二部分被利 用第一冗余碼來聯(lián)合編碼,第二部分被利用第二冗余碼來(單獨)編碼, 并且第一部分和第二部分以及第一冗余碼和第二冗余碼被一起寫在存儲系統(tǒng)中的情況下,恢復該數(shù)據(jù)的一部分的方法可包括從存儲系統(tǒng)中讀取對 應于第二部分的一部分數(shù)據(jù)和對應于第二冗余碼的一部分數(shù)據(jù);利用第二 冗余碼對第二部分進行解碼;以及指示出是否利用第二冗余碼對第二部分 進行了成功解碼。(一個或多個)算法和/或軟件可類似地被配置為實現(xiàn)這 種方法和/或體現(xiàn)這里描述的發(fā)明構(gòu)思的任何過程或步驟序列。在各種實施 例中,第一部分包括用戶數(shù)據(jù),并且第二部分包括元數(shù)據(jù)。在其他實施例中, 一種數(shù)據(jù)編碼器可包括至少一個輸入,該至少一 個輸入接收將要被寫入到存儲介質(zhì)的第一數(shù)據(jù)部分(例如,用戶數(shù)據(jù))和 (相關(guān)聯(lián)的)第二數(shù)據(jù)部分(例如,元數(shù)據(jù));邏輯,該邏輯被配置為生 成(0與第一和第二數(shù)據(jù)部分兩者相對應的第一冗余碼,以及(ii)與第 二數(shù)據(jù)部分而不與第一數(shù)據(jù)部分相對應的第二冗余碼;以及輸出,該輸出 將經(jīng)編碼的數(shù)據(jù)信號提供到存儲介質(zhì)的數(shù)據(jù)記錄機構(gòu),其中,經(jīng)編碼的數(shù) 據(jù)信號包括第一和第二數(shù)據(jù)部分、第一冗余碼和第二冗余碼。在其他實施例中,數(shù)據(jù)解碼器可包括輸入,該輸入從存儲介質(zhì)接 收所存儲的數(shù)據(jù)信號,其中所存儲的數(shù)據(jù)信號包括(i)通過第一冗余碼 聯(lián)合編碼的第一和第二數(shù)據(jù)部分(例如,用戶數(shù)據(jù)和相關(guān)聯(lián)的元數(shù)據(jù))兩 者的表示,以及(ii)通過第二冗余碼編碼的第二數(shù)據(jù)部分的表示;以及 邏輯,該邏輯被配置為對所存儲的數(shù)據(jù)信號進行解碼并提供從存儲介質(zhì)讀 取的第二數(shù)據(jù)部分。在其他實施例中,用于存儲具有第一部分和第二部分的數(shù)字數(shù)據(jù)的系 統(tǒng)可包括具有多個可寫扇區(qū)的數(shù)據(jù)存儲介質(zhì);編碼邏輯,該編碼邏輯生 成對應于該數(shù)字數(shù)據(jù)的至少兩個冗余碼,其中這兩個冗余碼中的第一冗余 碼包括對應于數(shù)字數(shù)據(jù)的第一部分(或者第一和第二部分)的糾錯碼,并 且這兩個冗余碼中的第二冗余碼包括對應于數(shù)字數(shù)據(jù)的第二部分的糾錯 碼;數(shù)據(jù)記錄機構(gòu),該數(shù)據(jù)記錄機構(gòu)被配置為將數(shù)字數(shù)據(jù)和該至少兩個冗 余碼寫在可寫扇區(qū)之一中;讀取器,該讀取器被配置為從該(一個)可寫扇區(qū)中讀取數(shù)字數(shù)據(jù)的表示和冗余碼的表示;以及解碼邏輯,該解碼邏輯 被配置為對來自該(一個)可寫扇區(qū)的數(shù)字數(shù)據(jù)進行解碼。在其他實施例中,編碼器、解碼器和/或差錯校驗和糾正體系結(jié)構(gòu)可包括體現(xiàn)這里描述的發(fā)明構(gòu)思的編碼器、解碼器和/或任何其他(一個或多 個)電路。本發(fā)明有利地提供了僅對元數(shù)據(jù)的迅速、獨立和可靠的檢索,其中數(shù) 據(jù)可靠性的降低達到最低限度。本發(fā)明的這些和其他優(yōu)點將從以下對示例 性實施例的描述中變得更清楚。


圖1是示出傳統(tǒng)數(shù)據(jù)存儲體系結(jié)構(gòu)的圖,其中用戶數(shù)據(jù)和元數(shù)據(jù)被聯(lián) 合編碼。圖2是示出圖l的體系結(jié)構(gòu)的典型失敗率概率的示圖。 圖3是示出傳統(tǒng)數(shù)據(jù)存儲體系結(jié)構(gòu)的圖,其中用戶數(shù)據(jù)和元數(shù)據(jù)被分 別編碼。圖4是示出圖3的體系結(jié)構(gòu)的典型失敗率概率的示圖。圖5是示出根據(jù)本發(fā)明實施例的示例性數(shù)據(jù)存儲體系結(jié)構(gòu)的圖。圖6是示出圖5的體系結(jié)構(gòu)的典型失敗率概率的示圖。圖7是示出根據(jù)本發(fā)明實施例對數(shù)據(jù)編碼的示例性方法的流程圖。圖8是示出根據(jù)本發(fā)明實施例對數(shù)據(jù)解碼的示例性方法的流程圖。圖9是示出根據(jù)本發(fā)明實施例對數(shù)據(jù)解碼的另一種方法的流程圖。圖10是示出根據(jù)本發(fā)明實施例的示例性編碼系統(tǒng)和/或裝置的框圖。圖11是示出根據(jù)本發(fā)明實施例的示例性解碼系統(tǒng)和/或裝置的框圖。圖12是示出根據(jù)本發(fā)明實施例的示例性系統(tǒng)和/或裝置的框圖。
具體實施方式
現(xiàn)在將詳細述及本發(fā)明的各種實施例,這些實施例的示例在附圖中示 出。雖然將結(jié)合以下提供的示例性實施例來描述本發(fā)明,但是這些實施例 并不意圖限制本發(fā)明。相反,本發(fā)明意圖覆蓋可包括在由所附權(quán)利要求限 定的本發(fā)明的范圍內(nèi)的替換、修改和等同。另外,在以下對本發(fā)明的描述 中,闡述了許多具體細節(jié)以幫助全面理解本發(fā)明。然而,沒有這些具體細 節(jié)也可實現(xiàn)本發(fā)明。在其他情況下,沒有詳細描述公知的方法、過程、組件和電路,以避免不必要地模糊本發(fā)明的技術(shù)方案。以下的詳細描述的一些部分是以進程、過程、邏輯塊、功能塊、處理 以及計算機、處理器、控制和/或存儲器內(nèi)對數(shù)據(jù)比特、數(shù)據(jù)流或波形的操 作的其他符號表示的形式給出的。這些描述和表示一般被數(shù)據(jù)處理領(lǐng)域的 技術(shù)人員用于將其工作的實質(zhì)有效地傳達給本領(lǐng)域的其他技術(shù)人員。進 程、過程、邏輯塊、功能、操作等等在這里并且一般來說被認為是帶來期 望的和/或預期的結(jié)果的頻率或指令的自洽序列。步驟一般包括對物理量的 物理操縱。通常(但并非一定),這些量采取能夠在計算機、數(shù)據(jù)處理系 統(tǒng)或邏輯電路中存儲、傳送、組合、比較和以其他方式操縱的電、磁、光 或量子信號的形式。已經(jīng)證明,有時,出于通常使用的原因,將這些信號 稱為比特、波、波形、流、值、元素、符號、字符、項、數(shù)字等等將是便 利的。所有這些和類似的術(shù)語都與適當?shù)奈锢砹肯嚓P(guān)聯(lián)并且僅僅是應用到這 些量的便利標簽。除非另有明確指明和/或從以下論述中清楚可見,否則應 當明白,在整個本申請中,利用諸如"處理"、"操作"、"計算"、"生成"、"確定"、"操縱"、"變換"、"顯示"之類的術(shù)語的論述 指的是對被表示為物理(例如,電子)量的數(shù)據(jù)進行操縱和變換的計算 機、數(shù)據(jù)處理系統(tǒng)、邏輯電路或類似的處理設(shè)備(例如,電氣、光學或量 子計算或處理設(shè)備)的動作和進程。這些術(shù)語指的是處理設(shè)備的將一個系 統(tǒng)或體系結(jié)構(gòu)(例如,寄存器、存儲器、其他這樣的信息存儲裝置、傳輸 或顯示設(shè)備等等)的(一個或多個)組件內(nèi)的物理量操縱或變換成同一個 系統(tǒng)或體系結(jié)構(gòu)的其他組件或不同的系統(tǒng)或體系結(jié)構(gòu)內(nèi)的被類似地表示為 物理量的其他數(shù)據(jù)的動作、操作和/或進程。另外,為了便利和簡單,術(shù)語"數(shù)據(jù)"、"碼"、"數(shù)據(jù)流"、"波形"和"信息"可被互換使用,術(shù) 語"連接到"、"與...耦合"、"耦合到"和"與...通信"也是如此(這 些術(shù)語還指連接的元件、耦合的元件和/或通信元件之間的直接和/或間接 關(guān)系,除非術(shù)語的使用上下文明確地有其他指示),但這些術(shù)語一般也被 賦予其在本領(lǐng)域承認的含義。用于存儲元數(shù)據(jù)的示例性方法在一個方面中,本發(fā)明涉及用于對元數(shù)據(jù)進行至少兩次編碼的方法,其中至少一次是獨立編碼,至少一次是與用戶數(shù)據(jù)聯(lián)合編碼。參考圖5和 6的示例性圖示,根據(jù)本發(fā)明的實施例,用戶數(shù)據(jù)220、元數(shù)據(jù)230、第一 冗余數(shù)據(jù)244和第二冗余數(shù)據(jù)246可被存儲在數(shù)據(jù)存儲系統(tǒng)的同一個扇區(qū) 210中。如下文中更充分論述的,在一些示例中(但并非限于此),第一 冗余碼244可對應于通過對用戶數(shù)據(jù)220和元數(shù)據(jù)230進行聯(lián)合編碼而創(chuàng) 建的差錯校驗和/或糾正碼,并且第二冗余碼246可對應于通過獨立于用戶 數(shù)據(jù)220地對元數(shù)據(jù)230編碼而創(chuàng)建的差錯校驗和/或糾正碼。在一種實現(xiàn) 方式中,第二冗余碼246是通過對元數(shù)據(jù)230單獨編碼(例如,對構(gòu)成元 數(shù)據(jù)230的數(shù)字數(shù)據(jù)編碼)而產(chǎn)生的。排除用戶數(shù)據(jù)對元數(shù)據(jù)編碼至少一 次使得可以對元數(shù)據(jù)230進行獨立的讀取和/或解碼。這使得能夠?qū)?shù)據(jù)存 儲系統(tǒng)中的元數(shù)據(jù)進行更迅速和/或更準確的讀取,這也可以帶來文件系統(tǒng) 操作中的顯著性能改善。此外,對元數(shù)據(jù)和用戶數(shù)據(jù)聯(lián)合編碼也使得元數(shù)據(jù)能夠與用戶數(shù)據(jù)一 樣可靠。例如(但并非限于此),假定對于數(shù)據(jù)存儲系統(tǒng)的給定扇區(qū) 210, 4千字節(jié)被分配給用戶數(shù)據(jù)220, 80字節(jié)被分配給元數(shù)據(jù)230,并且 總共220字節(jié)可用于第一冗余碼244和第二冗余碼246。還假定,例如 (但并非限于此),第一冗余碼244是聯(lián)合對應于用戶數(shù)據(jù)220和元數(shù)據(jù) 230的16比特BCH碼,并且第二冗余碼246是僅對應于元數(shù)據(jù)230的16 比特BCH碼,在此情況下分配給所有冗余比特(220字節(jié))的總存儲空間 對應于110的糾錯力。參考圖6的示圖,例如,當糾錯力尸=95 (例如參 見解答點253)被分配給第一冗余碼244時,最多達i = 15可用于分配給 第二冗余碼246。這種分配將提供具有約10~17的解碼失敗率概率的獨立 元數(shù)據(jù)恢復,并且還將提供具有約10A-17的解碼失敗率概率的聯(lián)合元數(shù)據(jù) 和用戶數(shù)據(jù)恢復。然而,與一些傳統(tǒng)的獨立編碼體系結(jié)構(gòu)(例如,圖3和 4所示的體系結(jié)構(gòu))不同,本發(fā)明的實施例提供了可位于解答點253右側(cè) 的分配解答線(例如(但并非限于)解答線250)。例如(但并非限于此),在一種實現(xiàn)方式中,糾錯力^= 108可被分ii配給第一冗余碼244 (例如參見解答線250上的解答點258,在該處它與 數(shù)據(jù)解碼失敗率概率曲線251相交),并且尸=2可被分配給第二冗余碼(例如參見解答線250上的解答點256,在該處它與元數(shù)據(jù)解碼失敗率概 率曲線252相交)。如上所述,這種分配可提供具有例如(但不限于)約 10~5的失敗率概率的獨立元數(shù)據(jù)恢復,以及具有例如(但不限于)約 10~23的失敗率概率的用戶數(shù)據(jù)恢復。因此,對于只需要訪問元數(shù)據(jù)的系 統(tǒng)操作,在一些實施例中,可以首先利用相對較"弱"的第二冗余碼246 對元數(shù)據(jù)230獨立解碼,這具有約10~5的失敗率概率。然后,如果沒有 成功恢復元數(shù)據(jù),則可以通過利用相對較"強"的第一冗余碼244對用戶 數(shù)據(jù)220和元數(shù)據(jù)230聯(lián)合解碼來恢復元數(shù)據(jù)230,這具有約10~23的更 可靠的失敗率概率。從而,元數(shù)據(jù)可被編碼至少兩次 一次利用較"弱" 的冗余碼,這使得能夠?qū)υ獢?shù)據(jù)進行迅速的獨立恢復, 一次利用較"強" 的冗余碼,這使得能夠?qū)υ獢?shù)據(jù)和用戶數(shù)據(jù)兩者進行更可靠的恢復。根據(jù)本發(fā)明的實施例也可設(shè)想對冗余碼的其他比特分配。例如(但并 非限于此),如圖6的示例性示圖中所示,尸=17可被分配給第二冗余碼(從而提供約為10~12的失敗率概率),并且^ = 93可被分配給第一冗余 碼(從而提供約為10A-20的失敗率概率)。雖然以上示例涉及16比特 BCH型編碼并且向用戶數(shù)據(jù)、元數(shù)據(jù)和(一個或多個)恢復碼分配特定的 扇區(qū)大小,但是使用不同的扇區(qū)大小分配和/或其他類型的編碼也完全在本 領(lǐng)域技術(shù)人員的能力范圍內(nèi)。例如(但并非限于此),第一冗余碼可對應 于16比特BCH編碼,而第二冗余碼可對應于8比特BCH編碼。從數(shù)學 上解答相應的編碼方程以向(一個或多個)冗余碼提供不同的比特分配并 從而提供不同的失敗率概率,這也完全在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)。對元數(shù)據(jù)和用戶數(shù)據(jù)一起進行編碼使得元數(shù)據(jù)能夠與用戶數(shù)據(jù)一樣可 靠。在圖5的實施例中,對于數(shù)據(jù)存儲系統(tǒng)的給定扇區(qū)210,義千字節(jié)被 分配給用戶數(shù)據(jù)220, F千字節(jié)被分配給元數(shù)據(jù)230,并且總共i +尸字節(jié) 可用于第一冗余碼244 和第二冗余碼246 (尸)。數(shù)據(jù)扇區(qū)的大小和 分配給用戶數(shù)據(jù)、元數(shù)據(jù)和冗余碼(例如,差錯校驗和/或糾正碼)的存儲 器/存儲裝置的具體量一般取決于數(shù)據(jù)存儲介質(zhì)(例如,諸如硬盤驅(qū)動器之類的磁盤、諸如CD-ROM或DVD之類的光盤、諸如閃存驅(qū)動器或閃存條 之類的非易失性存儲器、例如用于網(wǎng)絡交換機或網(wǎng)絡緩沖器中那種隨機訪 問存儲器,等等),并且這種值是本領(lǐng)域中標準化的或者公知的。圖6是針對圖5的實施例的、作為分配給第一冗余碼244的糾錯力A 的函數(shù)的、對用戶數(shù)據(jù)解碼和對元數(shù)據(jù)解碼的失敗率("差錯率")的示 圖,其中用戶數(shù)據(jù)和元數(shù)據(jù)被編碼為16比特BCH碼(其中Z=扇區(qū)210 中的4千字節(jié),7=扇區(qū)210中的80字節(jié),并且A + P-220字節(jié)的奇偶校 驗比特)。在圖6的實施例中,第一冗余碼244和第二冗余碼246分別對 應于(i)用戶數(shù)據(jù)220和元數(shù)據(jù)230 —起以及(ii)元數(shù)據(jù)230單獨。圖 6的示圖中的數(shù)據(jù)失敗率線251和交點253表明,當大于A = 95的糾錯力 被分配給第一冗余碼244 (即,A > 95*16比特)時,發(fā)生對用戶數(shù)據(jù)220 和元數(shù)據(jù)230—起的相對可靠的解碼。這種分配提供了具有約10A-17的失 敗率概率的對用戶數(shù)據(jù)和元數(shù)據(jù)一起的恢復。然而,即使可用于分配給第 二冗余碼246的糾錯力小于尸=15 (參見元數(shù)據(jù)失敗率線252和解答點 253),元數(shù)據(jù)仍能以合理的可靠度被成功解碼。從而, 一般而言,可以確定作為分配給第一冗余碼244的冗余存儲的 量的函數(shù)的、對用戶數(shù)據(jù)和元數(shù)據(jù)一起解碼的失敗率和對元數(shù)據(jù)單獨解碼 的失敗率的示圖,以及交點(在該處兩個失敗率曲線相交,例如圖6中的 解答點253)。交點處的失敗率可被稱為FCR,并且分配給第一和第二冗 余碼的冗余存儲的量可以分別被稱為i ^和PCR。在本發(fā)明的各種實施例 中,分配給第一冗余碼的存儲量i (例如,以字節(jié)或比特為單位)相對于 分配給第二冗余碼246的存儲量尸可用公式i /尸> ^cr/尸cr來表示。例如, i /尸可以大于或等于1."(^y尸o0、 1.2*(i CR/PCR)、 1.5*(i CR/PCR),或者任何其他大于i^K/戶Ql的最小值。作為替換或附加,i CK和尸CK可以被選擇為 使得對用戶數(shù)據(jù)和元數(shù)據(jù)一起解碼的失敗率Fuser小于FCR,并且對用戶 元數(shù)據(jù)單獨解碼的失敗率,meta大于,CR。在各種實現(xiàn)方式中,失敗率 尸user可以小于FCR/10、 Fcr/100、 Fcr/1000,或者任何其他小于Fcr的最大值,并且失敗率Fmeta可以大于Fc^100、 Fcr"00、尸o^1000,或者任 何其他大于/^的最小值。例如,失敗率Fuser可以小于或等于10~20,并且失敗率Fmeta可以大于或等于10A-5?,F(xiàn)在參考圖7所示的示例,存儲數(shù)據(jù)的示例性方法260包括在步驟 261中利用第一冗余碼(或者第一冗余數(shù)據(jù))對用戶數(shù)據(jù)和元數(shù)據(jù)一起編 碼。接下來,方法260包括在步驟262中利用第二冗余碼(或者第二冗余 數(shù)據(jù))獨立于用戶數(shù)據(jù)地對元數(shù)據(jù)編碼。在一些示例中,可以在執(zhí)行步驟 262之前執(zhí)行步驟261。在其他示例中,可以在執(zhí)行步驟261之前執(zhí)行步 驟262。在其他示例中,可以同時執(zhí)行步驟261和262。例如(但并非限 于此),用戶數(shù)據(jù)和元數(shù)據(jù)可被存儲在兩個緩沖器中,并且邏輯可被配置 為(i)對應于第一冗余碼對用戶數(shù)據(jù)和元數(shù)據(jù)編碼,以及(ii)對應于第 二冗余碼對元數(shù)據(jù)編碼。如下所述,冗余碼中的一個或多個可以是編碼算 法的多項式系數(shù),在各種實施例中,該編碼算法被實現(xiàn)為由于使數(shù)據(jù)經(jīng)過 巻積邏輯而生成的附加數(shù)據(jù)。使用第一和第二冗余碼兩者以便能夠?qū)υ獢?shù) 據(jù)進行可靠的數(shù)據(jù)存儲和相對迅速的檢索,這是在本領(lǐng)域技術(shù)人員的能力 范圍內(nèi)的。在已利用第一冗余碼對用戶數(shù)據(jù)和元數(shù)據(jù)編碼并且已利用第二冗余碼 對元數(shù)據(jù)編碼之后,在步驟263中將用戶數(shù)據(jù)、元數(shù)據(jù)和冗余數(shù)據(jù)(或者 冗余碼)寫到存儲系統(tǒng)中。在一些實現(xiàn)方式中,數(shù)據(jù)和冗余碼被寫到包括 硬盤驅(qū)動器的存儲系統(tǒng)。在各種其他實現(xiàn)方式中,用戶數(shù)據(jù)、元數(shù)據(jù)和冗 余碼被寫到可包括致密盤和/或數(shù)字多功能盤(DVD)的存儲系統(tǒng)。在其 他實現(xiàn)方式中,用戶數(shù)據(jù)、元數(shù)據(jù)和冗余碼被寫到包括一個或多個基于閃 存的或者其他非易失性存儲器、 一個或多個隨機訪問存儲器和/或一個或多 個只讀取存儲器的存儲系統(tǒng)。在其他實施例中,數(shù)據(jù)和冗余碼可被寫到存儲系統(tǒng)的同一個扇區(qū)。例 如(但并非限于此),數(shù)據(jù)和碼可被寫到硬盤驅(qū)動器的同一個物理扇區(qū)。 在其他示例中,數(shù)據(jù)和碼可被寫到致密盤或DVD的(一個或多個)扇區(qū) 的連續(xù)的幀。在其他實施例中,數(shù)據(jù)和碼可被寫到一個或多個基于閃存的 存儲器的連續(xù)的頁和/或塊。明白其他類似的其中用戶數(shù)據(jù)、元數(shù)據(jù)和冗余 碼可被一起存儲并從而被一起檢索的基于扇區(qū)的分區(qū)方案,這是在本領(lǐng)域 技術(shù)人員的能力范圍內(nèi)的。在一些實施例中,第一冗余碼包括糾錯碼。在一些特定實現(xiàn)方式中,
糾錯碼可以是Bose-Chaudhuri-Hocquenghem (BCH)碼。例如(但并非限 于此),第一冗余碼可包括n比特BCH碼,其具有特定的生成多項式, 該生成多項式被選擇來糾正所采用的存儲系統(tǒng)(例如,硬驅(qū)動器、非易失 性存儲器(例如,閃存驅(qū)動器)、或者數(shù)字多功能盤,它們具有不同特性 的最常出現(xiàn)的差錯樣式)所特有的多個隨機差錯樣式。在其他示例中(但 并非限于此),當存儲系統(tǒng)包括隨機訪問存儲器時,第一冗余碼可包括 LDPC碼,因為其具有糾正軟差錯的能力。然而,根據(jù)本發(fā)明的一些實施 例中,可以從由以下各項構(gòu)成的組中選擇糾錯碼Bose-Chaudhuri-Hocquenghem 碼、Reed-Solomon碼、低密度奇偶校驗碼、Hamming碼、 Reed-Muller碼、二進制Golay碼、Viterbi碼、Turbo碼、最優(yōu)矩形碼、迭 代碼、及其組合。選擇要結(jié)合本發(fā)明實施例使用的糾錯碼的類型、系數(shù)和 因子是在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
在一些實施例中,第二冗余碼也可包括糾錯碼。如上所述,根據(jù)本發(fā) 明的一些實施例,可以從由以下各項構(gòu)成的組中選擇該糾錯碼Bose-Chaudhuri-Hocquenghem 碼、Reed-Solomon碼、低密度奇偶校驗碼、 Hamming碼、Reed-Muller碼、二進制Golay碼、巻積碼、Turbo碼、最優(yōu) 矩形碼、迭代碼、及其組合。第一和第二冗余碼可包括相同類型的糾錯碼
(例如,它們可都包括BCH碼)?;蛘撸谝缓偷诙哂啻a可包括不同 類型的糾錯碼。例如(但并非限于此),第一冗余碼可包括BCH碼,而 第二冗余碼可包括迭代碼。應當明白,要采用的糾錯碼的類型可以不僅是 所采用的特定存儲系統(tǒng)的函數(shù),還可以是所編碼的數(shù)據(jù)的特性的函數(shù)。
如上所述,可以利用"較弱"的第二冗余碼來獨立于用戶數(shù)據(jù)地對元 數(shù)據(jù)編碼。對元數(shù)據(jù)的"較弱"的獨立編碼和/或解碼雖然提供了對元數(shù)據(jù) 的迅速獨立檢索,但卻可能具有比對元數(shù)據(jù)和用戶數(shù)據(jù)的聯(lián)合編碼和/或解 碼更高的失敗率概率。因此,可能希望向?qū)υ獢?shù)據(jù)單獨編碼的過程添加額 外的差錯保護。從而,在其他實施例中,第二冗余碼還可包括從由以下各 項構(gòu)成的組中選擇的差錯檢測碼奇偶校驗比特、校驗和、循環(huán)冗余校驗
(CRC)、及其組合。例如(但并非限于此),第二冗余碼可以可選地還包括CRC碼,以減小可能由糾錯碼引起的糾正差錯的可能性。在其他實 施例中,第二冗余碼可包括用于指示元數(shù)據(jù)的奇偶校驗的單個奇偶校驗比 特。
如上所述,第一冗余碼可具有長度A,并且第二冗余碼可具有長度 尸。例如,參考圖5-6的示例性實施例,在總共220字節(jié)的可用冗余比特 中,第一冗余碼可具有200到210字節(jié)(例如,在一個示例中為200字 節(jié),在另一個示例中為208字節(jié))的長度(例如,A),并且第二冗余碼 可具有10到20字節(jié)(例如,在一個示例中為20字節(jié),在另一個示例中為 12字節(jié))的長度(例如,尸)。應當明白,根據(jù)本發(fā)明的實施例也可設(shè)想 其他分配。
在一些特定實現(xiàn)方式中,^和尸分別對應于失敗率概率F和^,其中 F可以小于或等于好。例如,參考圖6,當?shù)谝蝗哂啻a的長度7 為208字 節(jié)時,它對應于約10八-23的失敗率概率,并且當?shù)诙哂啻a的長度尸為 12字節(jié)時,它對應于約10~5的失敗率概率。在其他示例中(但并非限于 此),長度分別為200字節(jié)和20字節(jié)的第一和第二冗余碼分別對應于約 10~20和約10八-12的失敗率概率。應當明白,根據(jù)本發(fā)明的實施例,也可 設(shè)想其他失敗率概率。
在其他實施例中,對元數(shù)據(jù)編碼的方法還可包括利用長度為5"的第三 冗余碼對元數(shù)據(jù)編碼的步驟。例如,元數(shù)據(jù)可被(i)與用戶數(shù)據(jù)聯(lián)合編 碼一次,(ii)利用較弱的冗余碼、獨立于用戶數(shù)據(jù)地編碼一次,以及 (iii)利用較強的冗余碼,還是獨立于用戶數(shù)據(jù)地編碼一次。在其他實施 例中,元數(shù)據(jù)可被(i)與用戶數(shù)據(jù)聯(lián)合編碼一次,(ii)獨立于用戶數(shù) 據(jù)地編碼一次,以及(iii)與用戶數(shù)據(jù)的一個或多個部分聯(lián)合編碼一次。 在一些實現(xiàn)方式中,A、 S和尸可分別對應于失敗率概率F、 G和好,其中 F小于G,并且G"小于H。例如,A (即,第一冗余碼的長度,其對應于 聯(lián)合編碼的用戶數(shù)據(jù)和元數(shù)據(jù))可以是190字節(jié),<S (即,第三冗余碼的 長度,其在一些示例中可對應于對元數(shù)據(jù)的較"強"的獨立編碼(但并非 限于此))可以是20字節(jié),并且尸(即,第二冗余碼的長度,其在一些示 例中可對應于對元數(shù)據(jù)的較"弱"的獨立編碼(但并非限于此))可以是IO字節(jié)。按照所分配的,參考圖6所示的16比特BCH失敗概率曲線,在 一些示例中(但并非限于此),第一、第二和第三冗余碼的失敗率概率可 以分別約為10~17、 10~12和10A-3。然而,應當明白,根據(jù)本發(fā)明的實 施例也可設(shè)想其他分配。
用于恢復元數(shù)據(jù)的示例性方法
技術(shù)領(lǐng)域
本發(fā)明的一些方面涉及對至少已被獨立地編碼一次并且與用戶數(shù)據(jù)一 起編碼一次的元數(shù)據(jù)進行恢復的方法。在一些實施例中,(i)元數(shù)據(jù)和用 戶數(shù)據(jù)被用第一冗余碼聯(lián)合編碼,(ii)元數(shù)據(jù)被用第二冗余碼編碼,并 且(iii)元數(shù)據(jù)、用戶數(shù)據(jù)、第一冗余碼和第二冗余碼被一起寫在存儲系 統(tǒng)中,該方法可包括從存儲系統(tǒng)讀取元數(shù)據(jù)和第二冗余碼;利用第二冗 余碼對元數(shù)據(jù)進行解碼;以及指示出元數(shù)據(jù)是否被成功解碼。
圖8示出了恢復元數(shù)據(jù)的示例性方法270,其包括在步驟271中從存 儲系統(tǒng)讀取包括元數(shù)據(jù)的一部分數(shù)據(jù)和包括第二冗余碼的一部分數(shù)據(jù)。在 利用第二冗余碼對元數(shù)據(jù)解碼之后,方法270隨后在步驟272中判定元數(shù) 據(jù)是否被成功恢復。在一些實施例中,指示出元數(shù)據(jù)是否被成功解碼的步 驟可包括對經(jīng)過解碼的元數(shù)據(jù)進行差錯校驗。例如(但并非限于此),當 第二冗余碼包括奇偶校驗比特時,經(jīng)過解碼的元數(shù)據(jù)的奇偶校驗被計算并 與該奇偶校驗比特相比較。在其他示例中,可利用能夠檢測和/或糾正特定 數(shù)目的差錯的糾錯和檢測碼(例如(但不限于)Hamming碼)來對元數(shù)據(jù) 編碼。應用這些和其他判定元數(shù)據(jù)是否被成功解碼的方式是在本領(lǐng)域技術(shù) 人員的能力范圍內(nèi)的。如果元數(shù)據(jù)已被成功解碼,則在步驟273中它被以 傳統(tǒng)的方式輸出(例如,顯示給用戶)。
在示例性實施例中,當未利用第二冗余碼對元數(shù)據(jù)成功解碼時,該方 法還包括以下步驟從存儲系統(tǒng)中讀取存儲在該頁或扇區(qū)中的用戶數(shù)據(jù)、 元數(shù)據(jù)和第一冗余碼(步驟274);利用第一冗余碼對用戶數(shù)據(jù)和元數(shù)據(jù) 聯(lián)合解碼(步驟275);以及判定是否利用第一冗余碼對用戶數(shù)據(jù)和元數(shù) 據(jù)進行了成功解碼(步驟276)。從而,示例性方法270還可包括通過利 用第一冗余碼對元數(shù)據(jù)和用戶數(shù)據(jù)聯(lián)合解碼來嘗試恢復元數(shù)據(jù)的額外步
17驟。在一些示例中(但并非限于此),在解碼步驟275中可以再次使用在 步驟271中讀取的元數(shù)據(jù)。在其他實施例中,在步驟274中可以重新讀取 元數(shù)據(jù)。
在聯(lián)合解碼275之后,元數(shù)據(jù)可被恢復,并且如步驟275所示,該方 法可包括在元數(shù)據(jù)被成功恢復時輸出元數(shù)據(jù)的步驟273。如上所述,在一 些示例中(但并非限于此),步驟276可包括對所恢復的元數(shù)據(jù)進行奇偶 校驗,或者類似的差錯檢測方法。在其他實施例中,當沒有利用第一冗余 碼對元數(shù)據(jù)成功解碼時,該方法可包括指示(扇區(qū))讀取失敗(步驟 277)。
現(xiàn)在參考圖9所示的示例,恢復元數(shù)據(jù)的示例性方法280可包括步驟 281,即從存儲系統(tǒng)讀取包括元數(shù)據(jù)的一部分數(shù)據(jù)和包括"弱"冗余碼的 一部分數(shù)據(jù),如上所述。示例性方法280在步驟282中利用弱冗余碼對元 數(shù)據(jù)解碼并且在步驟283中指示出元數(shù)據(jù)是否被成功恢復。在一些實施例 中,如上所述,指示出元數(shù)據(jù)是否被成功解碼的步驟可包括對經(jīng)過解碼的 元數(shù)據(jù)進行差錯校驗。如果元數(shù)據(jù)被成功解碼,則元數(shù)據(jù)被輸出(例如, 通過將元數(shù)據(jù)或其表示顯示給用戶)。
在各種實施例中,當未利用弱冗余碼對元數(shù)據(jù)成功解碼時,方法280 還可包括從存儲系統(tǒng)中讀取包括"強"冗余碼的一部分數(shù)據(jù);利用強冗余 碼對元數(shù)據(jù)解碼;并且指示出元數(shù)據(jù)是否被成功解碼。從而,示例性方法 280還可包括通過利用相對較強的第三冗余碼對元數(shù)據(jù)解碼來嘗試恢復元 數(shù)據(jù)。在一些示例中(但并非限于此),在解碼步驟285中可再次使用在 步驟281中讀取的元數(shù)據(jù)。在其他示例中,在步驟284中可以可選地重新 讀取元數(shù)據(jù)。如上所述,指示出元數(shù)據(jù)是否被成功解碼的步驟可包括對經(jīng) 過解碼的元數(shù)據(jù)進行差錯校驗。如果元數(shù)據(jù)被成功解碼,則元數(shù)據(jù)被輸出 (例如,通過將元數(shù)據(jù)或其表示顯示給用戶)。
然而,當未利用強冗余碼對元數(shù)據(jù)成功解碼時,方法280還包括在步 驟287中從存儲系統(tǒng)中讀取包括用戶數(shù)據(jù)的一部分數(shù)據(jù)和包括第一冗余碼 的一部分數(shù)據(jù);在步驟288中利用第一冗余碼對用戶數(shù)據(jù)和元數(shù)據(jù)聯(lián)合解 碼;以及在步驟289中指示出用戶數(shù)據(jù)和元數(shù)據(jù)是否被成功解碼。從而,示例性方法280還包括通過利用固定的聯(lián)合冗余碼對元數(shù)據(jù)和用戶數(shù)據(jù)聯(lián) 合解碼來嘗試恢復元數(shù)據(jù)。在一些示例中,在解碼步驟285中可再次使用 在步驟281中讀取的元數(shù)據(jù)。在其他示例中,在步驟284中可以可選地重 新讀取元數(shù)據(jù)。
在步驟288中的聯(lián)合解碼之后,可以恢復元數(shù)據(jù),并且可以判定元數(shù) 據(jù)是否被成功恢復。如上所述,在一些示例中,判定步驟289可包括對經(jīng) 過恢復的元數(shù)據(jù)進行奇偶校驗或使用類似的差錯檢測方法。在一些實施例 中,當未利用第一冗余碼對元數(shù)據(jù)成功解碼時,該方法可在步驟290中指 示出讀取失敗。
從而,在一些實施例中,可對元數(shù)據(jù)進行多于兩次編碼。從而,恢復 元數(shù)據(jù)的方法可包括對元數(shù)據(jù)進行任意次解碼。例如,元數(shù)據(jù)可被(i) 獨立于用戶數(shù)據(jù)地編碼, 一次利用"弱"冗余碼, 一次利用"強"冗余 碼,以及(ii)利用"聯(lián)合"冗余碼與用戶數(shù)據(jù)一起編碼。結(jié)果,在一些 示例中,恢復元數(shù)據(jù)的方法可包括順序地利用弱、強和聯(lián)合冗余碼來嘗試 恢復元數(shù)據(jù)。
從而,可以看出,本發(fā)明使得能夠?qū)υ獢?shù)據(jù)進行獨立訪問和恢復,而 無需讀取用戶數(shù)據(jù)部分。在一些示例中,僅在未能獨立于用戶數(shù)據(jù)地成功 恢復元數(shù)據(jù)之后才讀取用戶數(shù)據(jù)。
用于對元數(shù)據(jù)編碼的示例性裝置
本發(fā)明的一些方面涉及用于至少對元數(shù)據(jù)進行一次獨立的編碼和一次 與用戶數(shù)據(jù)一起的編碼的裝置。應當明白,(一個或多個)電路、(一個 或多個)算法和/或軟件可被配置為實現(xiàn)體現(xiàn)了以下描述的發(fā)明構(gòu)思的這種 編碼器。在一些示例中,現(xiàn)在參考圖10,可利用一個或多個專用集成電路 (ASIC)、現(xiàn)場可編程門陣列(FPGA)、分立模擬或數(shù)字元件、處理器 和/或微控制器來實現(xiàn)編碼器300。在其他示例中,可以用軟件或固件來實 現(xiàn)編碼器。另外,編碼器可被結(jié)合到存儲設(shè)備350中或者與存儲設(shè)備350 通信,在存儲設(shè)備350中存儲了經(jīng)過編碼的用戶數(shù)據(jù)和元數(shù)據(jù)。例如(但 并非限于此),編碼器可被結(jié)合到諸如硬盤驅(qū)動器、致密盤或DVD驅(qū)動器或者基于閃存的存儲器控制器之類的存儲設(shè)備中。在其他示例中,編碼 器可以與一個或多個存儲設(shè)備分開但與之通信。
在一些實施例中,編碼器300可包括至少一個輸入302,其接收將 被寫入到存儲介質(zhì)370中的用戶數(shù)據(jù)和元數(shù)據(jù);邏輯330,其被配置為生 成與用戶數(shù)據(jù)和元數(shù)據(jù)兩者相對應的第一冗余碼;邏輯320,其被配置為 生成與元數(shù)據(jù)而不是用戶數(shù)據(jù)相對應的第二冗余碼;以及輸出304,其將 經(jīng)過編碼的數(shù)據(jù)提供到用于存儲介質(zhì)370的數(shù)據(jù)記錄機構(gòu)360,其中,經(jīng) 過編碼的數(shù)據(jù)包括用戶數(shù)據(jù)、元數(shù)據(jù)、第一冗余碼和第二冗余碼。雖然示 例性編碼器300被示為兩個并行的編碼器320和330,但將編碼器300實 現(xiàn)為單個編碼器或者多于兩個編碼器(這些編碼器可被串行地和/或并行地 布置),也是在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
在一些示例中(但并非限于此),存儲設(shè)備350可以是硬盤驅(qū)動器, 并且存儲介質(zhì)370可以是一個或多個磁盤片。在其他示例中,存儲設(shè)備 350可以是諸如致密盤驅(qū)動器或數(shù)字多功能盤驅(qū)動器之類的光盤驅(qū)動器, 并且存儲介質(zhì)370可以是諸如致密盤或數(shù)字多功能盤之類的光盤。然而, 應當明白,根據(jù)本發(fā)明的實施例也可設(shè)想其他存儲設(shè)備和介質(zhì)。
當希望將用戶數(shù)據(jù)和元數(shù)據(jù)寫入到存儲設(shè)備350時,數(shù)據(jù)可被傳遞到 "元數(shù)據(jù)冗余"編碼器320以及聯(lián)合元數(shù)據(jù)和用戶數(shù)據(jù)編碼器330的至少 一個輸入302或被該輸入302所接收。在一些示例中(但并非限于此), 編碼器輸入302可以是用于接收數(shù)據(jù)波形的物理輸入,例如但不限于并行 總線、串行總線等等。在其他示例中,編碼器輸入可以是用于訪問存儲器 310中存儲的數(shù)據(jù)的邏輯輸入。例如(但并非限于此),編碼器可被配置 為訪問共享的存儲器空間并且從中檢索出要被編碼的用戶數(shù)據(jù)和元數(shù)據(jù)。 然而,應當明白,根據(jù)本發(fā)明的實施例也可設(shè)想其他類型的輸入。
在一些示例中(但并非限于此),編碼器邏輯(例如,編碼邏輯 334)可被配置為通過對用戶數(shù)據(jù)和元數(shù)據(jù)兩者執(zhí)行一個或多個邏輯和/或 數(shù)學運算來生成第一冗余碼。類似地,在一些示例中(但并非限于此), 編碼器邏輯(例如,元數(shù)據(jù)編碼邏輯325)可被配置為通過僅對元數(shù)據(jù)執(zhí) 行一個或多個邏輯和/或數(shù)學運算來生成第二冗余碼。或者,在其他示例中(但并非限于此),編碼邏輯324可被配置為元數(shù)據(jù)提供相對較"弱"的 第二冗余碼,并且編碼邏輯325可被配置為通過僅對元數(shù)據(jù)執(zhí)行一個或多 個邏輯和/或數(shù)學運算來生成相對較"強"的第二冗余碼。
在一些示例中(但并非限于此),可通過使要編碼的數(shù)據(jù)(例如,用 戶數(shù)據(jù)和元數(shù)據(jù)一起和/或元數(shù)據(jù)獨立地)順序地經(jīng)過一系列存儲器寄存器
(例如,聯(lián)合編碼器330中的寄存器332和333)來對數(shù)據(jù)進行巻積編 碼。在其他示例中,可通過分離要編碼的數(shù)據(jù)并且使分離后的數(shù)據(jù)經(jīng)過兩 個或更多個并行的一系列存儲器寄存器(例如,使用寄存器322和323, 它們在一個實施例中可以分別分開存儲用戶數(shù)據(jù)和元數(shù)據(jù)),來對數(shù)據(jù)進 行巻積編碼。在一些示例中(但并非限于此),編碼邏輯可以是非遞歸式 的(例如,不存在存儲器寄存器的反饋組件)。在其他示例中,編碼邏輯 可以是遞歸式的。實現(xiàn)與這里設(shè)想類型的冗余碼相對應的編碼邏輯是在本 領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
在各種實現(xiàn)方式中,如這里概括描述地,第一和第二冗余碼可以獨立 地包括Bose-Chaudhuri-Hocquenghem碼、Reed-Solomon碼、低密度奇偶校 驗碼、Hamming碼、Reed-Muller碼、二進制Golay碼、Viterbi碼、Turbo 碼、最優(yōu)矩形碼、迭代碼、或其組合。例如,第一和第二冗余碼可包括相 同或不同類型的糾錯碼,并且第二冗余碼可包括一個或多個奇偶校驗比 特、校驗和、循環(huán)冗余校驗(CRC)或其組合。在一種實現(xiàn)方式中,第二 冗余碼可包括CRC碼,以減輕可能由第二冗余碼引起的潛在糾正差錯。 在另一種實現(xiàn)方式中,第二冗余碼可具有9比特的總長度,其中8比特被 分配給糾錯碼(例如但不限于Hamming碼),1比特被分配給奇偶校驗比 特。應當明白,存在根據(jù)本發(fā)明的實施例可以設(shè)想的其他組合和配置的糾 錯和差錯檢測碼。
一般地,第一冗余碼具有小于第二冗余碼的失敗率概率。從而,如這 里概括描述的,與用于第二冗余碼的相比,編碼邏輯可被配置為利用提供 更高可靠性的可用冗余存儲空間分配和/或編碼技術(shù)來生成第一冗余碼。
同樣如這里所述,編碼器300可被配置為在輸出304處提供第一經(jīng)編 碼數(shù)據(jù)信號并且在輸出306處單獨提供第二經(jīng)編碼數(shù)據(jù)信號到用于存儲介質(zhì)370的數(shù)據(jù)存儲機構(gòu)360,其中第一經(jīng)編碼數(shù)據(jù)信號包括經(jīng)編碼的用戶數(shù)據(jù)、經(jīng)編碼的元數(shù)據(jù)以及第二 (例如,僅限元數(shù)據(jù)的)冗余碼,第二經(jīng)編碼數(shù)據(jù)信號包括聯(lián)合編碼的用戶數(shù)據(jù)和元數(shù)據(jù)以及第一冗余碼(例如,用于用戶數(shù)據(jù)和元數(shù)據(jù)兩者)。在一些示例中(但并非限于此),數(shù)據(jù)存儲機構(gòu)360可包括被配置為選擇性地磁化鐵磁盤片或盤的一個或多個區(qū)域的寫磁頭。在其他示例中,數(shù)據(jù)存儲機構(gòu)360可包括被配置為選擇性地對光盤的染料層的一些部分加熱的激光器。在其他示例中,數(shù)據(jù)存儲機構(gòu)360可包括用于對存儲元件陣列進行選擇性的充電或放電(例如,編程)的一個或多個感測和/或充電電路。
在一些示例中(但并非限于此),元數(shù)據(jù)冗余編碼器320可被配置為將用戶數(shù)據(jù)和元數(shù)據(jù)存儲在臨時存儲器(例如多端口存儲器、先進先出存儲器、或其他緩沖器321)中,然后通過讀該臨時存儲器來構(gòu)造經(jīng)編碼的數(shù)據(jù)信號。在某些實施例中,時鐘或其他定時電路(例如,326和/或336)可向編碼器320或330的各種組件提供適當?shù)亩〞r信號。編碼器300(或者第一編碼器320和第二編碼器330)可包括輸出電路(例如,327和/或338),該輸出電路被配置為將經(jīng)編碼的數(shù)據(jù)傳送到另外的電路和/或數(shù)據(jù)/信號處理塊(例如,數(shù)據(jù)記錄機構(gòu)360)。輸出電路可包括一個或多個輸出緩沖器、 一個或多個輸出驅(qū)動器,并且在輸出電路327的情況下,可以包括被配置為選擇多個輸入之一以從第一編碼器320輸出的數(shù)據(jù)或輸入選擇電路(例如多路復用器)。這種選擇電路可被輸出控制塊328所控制,其適合于響應于相應的預定事件(例如,同步或者標識經(jīng)編碼用戶數(shù)據(jù)或經(jīng)編碼元數(shù)據(jù)的其他比特或樣式)的發(fā)生而選擇預定的輸入。
在圖10所示的示例中,第一編碼器320可對用戶數(shù)據(jù)和元數(shù)據(jù)單獨編碼,并且第二編碼器330可對用戶數(shù)據(jù)和元數(shù)據(jù)一起編碼。從而,編碼邏輯324、 325和334中的每一個可充當一 CRC計算器或奇偶校驗計算器,從而向?qū)⒁挥涗浀慕?jīng)編碼數(shù)據(jù)添加ECC/CRC碼和/或一個或多個奇偶校驗比特。 一般地,第一編碼器320可被配置為通過將數(shù)據(jù)放置在被配置為將數(shù)據(jù)傳送到存儲設(shè)備350中的總線304上來將單獨編碼的用戶數(shù)據(jù)、單獨編碼的元數(shù)據(jù)以及單獨的用戶數(shù)據(jù)和元數(shù)據(jù)冗余碼中的每一個提供給數(shù)據(jù)存儲機構(gòu)360,而第二編碼器330可被配置為通過將數(shù)據(jù)放置在被配置為將數(shù)據(jù)傳送到存儲設(shè)備350中的總線306上來將聯(lián)合編碼的用戶數(shù)據(jù)和元數(shù)據(jù)以及第一冗余碼(用于用戶數(shù)據(jù)和元數(shù)據(jù)兩者)提供給數(shù)據(jù)存儲機構(gòu)360。實現(xiàn)用于將經(jīng)編碼的數(shù)據(jù)信號提供給數(shù)據(jù)存儲機構(gòu)的電路和/或其他硬件是完全在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
用于對元數(shù)據(jù)解碼的示例性裝置
本發(fā)明的其他方面涉及用于已至少被進行一次獨立的編碼以及一次與用戶數(shù)據(jù)一起的編碼的元數(shù)據(jù)進行解碼的裝置。應當明白,(一個或多個)電路、(一個或多個)算法和/或軟件可被配置為實現(xiàn)體現(xiàn)了以下描述的發(fā)明構(gòu)思的解碼器。在一些實施例中,參考圖ll,解碼器400可包括一個或多個輸入402、 404,其從用于存儲介質(zhì)470的數(shù)據(jù)讀取機構(gòu)460接收所存儲的數(shù)據(jù),其中所存儲的數(shù)據(jù)包括(0利用第一冗余碼聯(lián)合編碼的用戶數(shù)據(jù)和元數(shù)據(jù)兩者的表示以及(ii)利用第二冗余碼編碼的元數(shù)據(jù)的表示;以及被配置為對所存儲的數(shù)據(jù)進行解碼并且提供來自存儲介質(zhì)470的元數(shù)據(jù)的邏輯。聯(lián)合編碼的用戶數(shù)據(jù)和元數(shù)據(jù)、第一冗余碼、單獨編碼的用戶數(shù)據(jù)、單獨編碼的元數(shù)據(jù)以及第二冗余碼可以各自被單獨存儲在存儲介質(zhì)470上,并且它們可被串行地或者并行地從存儲介質(zhì)470中檢索出或讀出。在各種實施例中,聯(lián)合編碼的用戶數(shù)據(jù)和元數(shù)據(jù)以及第一冗余碼被從第一存儲介質(zhì)中串行讀取,并且單獨編碼的用戶數(shù)據(jù)、單獨編碼的元數(shù)據(jù)以及第二冗余碼被從同一個或者一個不同的存儲介質(zhì)中串行讀取,并且在后一種情況下,不同的串行數(shù)據(jù)流可以被并行讀取。
在一些示例中(但并非限于此),可利用一個或多個專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、分立模擬或數(shù)字元件、處理器和/或微控制器來實現(xiàn)解碼器400。在其他示例中,可以用軟件或固件來實現(xiàn)解碼器400。另外,應當明白,解碼器可被結(jié)合到存儲設(shè)備450中或者與存儲設(shè)備450通信。例如(但并非限于此),解碼器400可被結(jié)合到諸如硬盤驅(qū)動器、致密盤或DVD驅(qū)動器或者基于閃存的存儲器或隨機訪問存儲器控制器之類的存儲設(shè)備450中。在其他示例中,解碼器400可以與一個或多個存儲設(shè)備450分開但與之通信。雖然示例性的解碼器400被示為兩個并行的解碼器420和430,但將解碼器實現(xiàn)為單個解碼器或者多于兩個解碼器(這些解碼器可被串行地和/或并行地布置),也是在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
在一些示例中(但并非限于此),存儲設(shè)備450可以是硬盤驅(qū)動器,并且存儲介質(zhì)470可以是一個或多個磁盤片。在一些示例中(但并非限于此),數(shù)據(jù)讀取機構(gòu)460可包括被配置為選擇性地感測磁化鐵磁盤片的一個或多個區(qū)域的磁化的讀磁頭。在其他示例中,存儲設(shè)備450可以是諸如致密盤驅(qū)動器或數(shù)字多功能盤驅(qū)動器之類的光盤驅(qū)動器,并且存儲介質(zhì)470可以是諸如致密盤或數(shù)字多功能盤之類的光盤。在一些示例中,數(shù)據(jù)讀取機構(gòu)460可包括被配置為選擇性地感測光盤的染料層的坑和岸的激光器和光電二極管。在其他示例中,存儲設(shè)備450可包括多個固態(tài)存儲元件,并且數(shù)據(jù)讀取機構(gòu)460可包括用于選擇性地感測固態(tài)存儲元件中的存儲元件的電荷的一個或多個感測和/或檢測電路。然而,應當明白,根據(jù)本發(fā)明的實施例也可設(shè)想其他存儲設(shè)備、介質(zhì)和數(shù)據(jù)讀取機構(gòu)。
解碼邏輯400可被配置為執(zhí)行與在數(shù)據(jù)被寫到存儲介質(zhì)470之前為了對數(shù)據(jù)編碼而執(zhí)行的邏輯和/或數(shù)學運算互補的邏輯和/或數(shù)學運算。在圖ll所示的示例中,第一解碼器420可以對用戶數(shù)據(jù)和元數(shù)據(jù)單獨解碼(在對后者解碼時利用第二冗余碼),并且第二解碼器430可根據(jù)第一冗余碼對用戶數(shù)據(jù)和元數(shù)據(jù)一起解碼。例如(但并非限于此),解碼邏輯424、425和434中的每一個可充當差錯校驗和/或糾正電路,從而使用任何接收到的ECC/CRC碼和/或(一個或多個)奇偶校驗比特來判定接收到的數(shù)據(jù)中是否存在差錯,并且如果存在則糾正這種差錯。另外,解碼邏輯424和425可被配置為分別利用已知的編碼約束和第二冗余碼來對存儲的用戶數(shù)據(jù)和元數(shù)據(jù)進行解碼?;蛘?,解碼邏輯324可被配置為利用相對較"弱"的第二冗余碼對元數(shù)據(jù)解碼,并且解碼邏輯325可被配置為利用相對較"強"的第二冗余碼對元數(shù)據(jù)解碼。在一些示例中(但并非限于此),解碼邏輯可以是非遞歸式的(即,不存在存儲器寄存器的反饋組件)。在其他示例中,解碼邏輯可以是遞歸式的。在其他示例中(但并非限于此),解碼器可包括實現(xiàn)概率性解碼算法(例如Viterbi算法)的分立邏輯和/或軟件。
在一些示例中(但并非限于此),解碼器可被配置為接收可具有用戶數(shù)據(jù)、元數(shù)據(jù)和冗余碼部分的所存儲數(shù)據(jù),并將接收到的數(shù)據(jù)存儲到臨時存儲器(例如,輸入緩沖器431和/或緩沖器421)中。臨時存儲器可以與圖10中的緩沖器321相同。返回參考圖11,在一些示例中,解碼邏輯400可接收并存儲與硬盤驅(qū)動器的整個扇區(qū)相對應的數(shù)據(jù)。當存儲在臨時存儲器(例如,緩沖器421)中時,解碼邏輯400可包括被配置為識別與用戶數(shù)據(jù)、元數(shù)據(jù)和第二冗余碼相對應的那些數(shù)據(jù)部分的存儲器控制器或其他邏輯和/或控制電路(例如,存儲器控制器429)。
在一些示例中(但并非限于此),第一解碼器420可識別所接收數(shù)據(jù)的可具有已知的固定數(shù)據(jù)長度的部分(例如(但并非限于此),可對應于用戶數(shù)據(jù)的前4千字節(jié),可對應于元數(shù)據(jù)的接下來的80字節(jié),以及可對應于第二冗余碼的20比特)。在其他示例中,所存儲數(shù)據(jù)信號的每個部分的開始和/或結(jié)束可具有諸如頭部、尾部和/或同步比特之類的樣式標記(例如,它們可由存儲器控制器429識別)。應當明白,根據(jù)本發(fā)明的實施例也可設(shè)想其他所存儲的數(shù)據(jù)信號。
解碼邏輯(例如,424、 425和434)可被配置為通過對用戶數(shù)據(jù)、元數(shù)據(jù)和冗余碼的表示執(zhí)行一個或多個邏輯或數(shù)學運算來對所存儲的數(shù)據(jù)信號(或者其一個或多個部分)進行解碼。在一些示例中(但并非限于此),冗余碼可對應于巻積糾錯碼的多項式系數(shù)。在其他示例中,冗余碼可對應于復制或奇偶校驗數(shù)據(jù)。在一些示例中(但并非限于此),可以通過使數(shù)據(jù)經(jīng)過一系列存儲器寄存器(例如,寄存器432和433)來對數(shù)據(jù)進行巻積解碼。在其他示例中,可以通過使數(shù)據(jù)通過兩個或更多個并行的存儲器寄存器(例如,寄存器422和423)來對要解碼的數(shù)據(jù)進行巻積解碼。
在一些示例中,解碼邏輯400可被配置為例如利用第二解碼邏輯425,通過利用所存儲數(shù)據(jù)的對應于第二冗余碼的部分來對所存儲數(shù)據(jù)的僅對應于元數(shù)據(jù)的部分進行獨立解碼,來提供元數(shù)據(jù)。例如(但并非限于此),解碼邏輯400可從數(shù)據(jù)讀取機構(gòu)460接收所存儲的數(shù)據(jù)信號,并且將元數(shù)據(jù)部分和第二冗余碼部分提供給實現(xiàn)概率性解碼算法的分立電路
(例如,解碼邏輯425)。在其他示例中,所存儲的數(shù)據(jù)信號的元數(shù)據(jù)部分和第二冗余碼部分可被提供給實現(xiàn)Hamming解碼功能的分立電路。類似地,解碼邏輯400可被配置為例如利用解碼邏輯434,通過利用所存儲數(shù)據(jù)的對應于第一冗余碼的部分對所存儲數(shù)據(jù)的對應于用戶數(shù)據(jù)和元數(shù)據(jù)兩者的部分進行聯(lián)合解碼,來提供元數(shù)據(jù)。例如(但并非限于此),第二解碼器430可被配置為將從數(shù)據(jù)讀取機構(gòu)460接收的與用戶數(shù)據(jù)、元數(shù)據(jù)和第一冗余碼相對應的數(shù)據(jù)提供給實現(xiàn)Hamming解碼功能的分立電路
(例如,解碼邏輯434)。
在一些實施例中,解碼邏輯400還可被配置為通過首先利用第二冗余碼對元數(shù)據(jù)的表示進行解碼,然后利用第一冗余碼對用戶數(shù)據(jù)和元數(shù)據(jù)兩者的表示進行聯(lián)合解碼,來提供元數(shù)據(jù)。例如,解碼器420可被配置為首先通過利用所存儲數(shù)據(jù)信號的包括第二冗余碼的部分僅對所存儲數(shù)據(jù)信號的包括元數(shù)據(jù)的部分解碼來嘗試從經(jīng)編碼的數(shù)據(jù)信號中恢復元數(shù)據(jù)。如果解碼不成功(即,在輸出406處的經(jīng)解碼的元數(shù)據(jù)中檢測到差錯),那么然后,聯(lián)合解碼器430可通過利用所存儲數(shù)據(jù)信號的包括第一冗余碼的部分對數(shù)據(jù)的包括用戶數(shù)據(jù)和元數(shù)據(jù)的部分聯(lián)合解碼來嘗試恢復元數(shù)據(jù)。設(shè)計適當?shù)目刂菩盘?例如,到存儲器控制器429和輸入緩沖器431,或者到輸出控制器427和輸出緩沖器438)來實現(xiàn)本段落中描述的解碼序列,也是在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
在一些示例中(但并非限于此),解碼邏輯400可包括時鐘或其他定時電路(例如,426和/或436),其可向解碼器420或430的各種組件提供適當?shù)亩〞r信號。解碼器400 (或者第一解碼器420和第二解碼器430)可包括被配置為將經(jīng)解碼的數(shù)據(jù)傳送到另外的電路或數(shù)據(jù)/信號處理塊的輸出電路(例如,427和/或438)。輸出電路可包括一個或多個輸出緩沖器、 一個或多個輸出驅(qū)動器,并且在輸出電路427的情況下,可包括被配置為選擇多個輸入之一的數(shù)據(jù)或輸入選擇電路(例如多路復用器)。這種選擇電路可由輸出控制塊428控制,其適合于響應于相應的預定事件
26的發(fā)生而選擇預定的輸入。
在圖11所示的示例中,元數(shù)據(jù)解碼器420可被配置為通過將數(shù)據(jù)放置在被配置為將數(shù)據(jù)傳送到下游電路或設(shè)備的總線406上來將經(jīng)過解碼和糾錯的用戶數(shù)據(jù)和元數(shù)據(jù)提供給下游電路或設(shè)備,而聯(lián)合解碼器430可被配置為通過將數(shù)據(jù)放置在被配置為將數(shù)據(jù)傳送到下游電路或設(shè)備的總線408上來將經(jīng)過聯(lián)合解碼和糾錯的用戶數(shù)據(jù)和元數(shù)據(jù)提供給下游電路或設(shè)備。實現(xiàn)用于將經(jīng)解碼的數(shù)據(jù)提供給下游電路或設(shè)備的電路和/或其他硬件是完全在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
用于存儲和檢索元數(shù)據(jù)的示例性系統(tǒng)
本發(fā)明的其他方面涉及用于存儲具有第一部分和第二部分的數(shù)字數(shù)據(jù)的系統(tǒng)。現(xiàn)在參考圖12,在一些實施例中,該系統(tǒng)可具有數(shù)據(jù)存儲介質(zhì)577,該數(shù)據(jù)存儲介質(zhì)577具有多個可寫扇區(qū);編碼邏輯520,該編碼邏輯520生成與數(shù)字數(shù)據(jù)相對應的至少兩個冗余碼,其中第一冗余碼包括與數(shù)字數(shù)據(jù)的第一部分和第二部分兩者相對應的第一糾錯碼,并且第二冗余碼包括與數(shù)字數(shù)據(jù)的第二部分相對應而不與數(shù)字數(shù)據(jù)的第一部分相對應的二糾錯碼;數(shù)據(jù)記錄機構(gòu)572,該數(shù)據(jù)記錄機構(gòu)572被配置為將數(shù)字數(shù)據(jù)和冗余碼寫在可寫扇區(qū)之一中;讀取器574,該讀取器被配置為從該可寫扇區(qū)中讀取數(shù)字數(shù)據(jù)的表示和冗余碼的表示;以及解碼邏輯540,該解碼邏輯被配置為對來自可寫扇區(qū)的數(shù)字數(shù)據(jù)進行解碼。
圖12示出了用于存儲和檢索用戶數(shù)據(jù)和元數(shù)據(jù)的示例性數(shù)據(jù)存儲系統(tǒng)570。在一些示例中(但并非限于此),數(shù)據(jù)存儲系統(tǒng)570可以是硬盤驅(qū)動器。在其他示例中,數(shù)據(jù)存儲系統(tǒng)570可以是光盤驅(qū)動器。在其他實施例中,數(shù)據(jù)存儲系統(tǒng)570可以是固態(tài)存儲設(shè)備,例如閃存(例如,基于閃存的記憶棒)。然而,根據(jù)本發(fā)明的實施例也可設(shè)想其他類型的數(shù)據(jù)存儲系統(tǒng)。
在一些示例中(但并非限于此),數(shù)據(jù)存儲系統(tǒng)570可包括一個或多個數(shù)據(jù)存儲介質(zhì)577、數(shù)據(jù)記錄機構(gòu)572以及讀取器574。在一些特定實現(xiàn)方式中,數(shù)據(jù)存儲系統(tǒng)570可以是硬盤驅(qū)動器,并且數(shù)據(jù)存儲介質(zhì)可包括一個或多個磁盤。在其他示例中,數(shù)據(jù)存儲系統(tǒng)570可以是包含一個或多個光盤的光盤驅(qū)動器。然而,應當明白,根據(jù)本發(fā)明的一些實施例,數(shù)據(jù)存儲介質(zhì)可包括至少一個磁盤、光盤、磁光盤、存儲器存儲元件、或其組合。還應當明白,存儲介質(zhì)577可被固定在存儲系統(tǒng)570內(nèi)(當存儲系統(tǒng)570是硬盤驅(qū)動器時就通常是這種情況),或者存儲介質(zhì)577可以被從存儲系統(tǒng)570中去除(當存儲系統(tǒng)570是光盤驅(qū)動器或磁帶驅(qū)動器時就通常是這種情況)。
如上所述,存儲系統(tǒng)570還可包括被配置為將數(shù)據(jù)寫入到存儲介質(zhì)577的扇區(qū)的數(shù)據(jù)記錄機構(gòu)572。在一些示例中(但并非限于此),數(shù)據(jù)記錄機構(gòu)572可以是磁存儲系統(tǒng)570的寫磁頭,其被配置為選擇性地磁化磁盤片的一個或多個區(qū)域。在其他示例中,數(shù)據(jù)記錄機構(gòu)572可以是光存儲系統(tǒng)570的激光器,并且可被配置為選擇性地對光盤的染料層的一些部分進行照射和/或加熱。在其他示例中,數(shù)據(jù)記錄機構(gòu)572可包括固態(tài)存儲器存儲系統(tǒng)570的感測和/或充電電路,用于選擇性地對固態(tài)存儲元件陣列(例如,基于閃存的系統(tǒng),例如記憶棒)中的存儲單元進行充電或放電。
類似地,數(shù)據(jù)存儲系統(tǒng)570還可包括讀取器574。在一些示例中(但并非限于此),讀取器574可以是讀磁頭、激光和/或光電二極管,或者感測和/或檢測電路。對于特定的存儲系統(tǒng)570實現(xiàn)存儲介質(zhì)577、數(shù)據(jù)記錄機構(gòu)572和讀取器574的不同組合是在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
在一些示例中(但并非限于此),數(shù)據(jù)記錄機構(gòu)572可與包括編碼邏輯的編碼器520通信。類似地(但并非限于此),讀取器574可與包括解碼邏輯的解碼器540通信。在一些示例中,如圖12所示,編碼器520和解碼器540可包括不同的電路。例如(但并非限于此),編碼器520可包括第一專用集成電路(ASIC),并且編碼器520可包括第二 ASIC。然而,應當明白,編碼器520和解碼器540兩者可被包括在單個編解碼器510中。在一些示例中(但并非限于此),編解碼器510可包括單個ASIC或現(xiàn)場可編程門陣列(FPGA)。在其他示例中,編解碼器510可包括若干個不同的數(shù)字和/或模擬組件。在一些示例中(但并非限于此),編碼器520可包括用于從數(shù)據(jù)寫入緩沖器560接收數(shù)字數(shù)據(jù)的輸入。類似地,在一些示例中(但并非限于此),解碼器540可包括用于將所恢復的數(shù)據(jù)提供到數(shù)據(jù)讀取緩沖器580的輸出。在其他示例中,解碼器540可包括用于將數(shù)據(jù)提供到存儲單元的輸出。還應當明白,結(jié)合以上和以下描述的本發(fā)明實施例利用各種電路、算法、輸入、輸出、固件、軟件等等來實現(xiàn)編碼器520和/或解碼器540 ,這是在本領(lǐng)域技術(shù)人員的能力范圍內(nèi)的。
在一些示例中(但并非限于此),編碼器520可被配置為接收具有至少兩部分的數(shù)字數(shù)據(jù)521,并且響應于此向數(shù)據(jù)記錄機構(gòu)572提供寫信號數(shù)據(jù)527。如上所述,編碼器520可被配置為生成與數(shù)字數(shù)據(jù)521的一個或多個部分相對應的至少兩個冗余碼。在一些示例中,第一冗余碼可對應于數(shù)字數(shù)據(jù)521的第一部分或從第一部分導出,并且第二冗余碼可對應于數(shù)字數(shù)據(jù)521的第二部分或從第二部分導出。在一些示例中(但并非限于此),寫信號527除了冗余碼外還可包括數(shù)字數(shù)據(jù)521的第一和第二部分的表示。在其他示例中(但并非限于此),解碼器540可從讀取器接收數(shù)據(jù)541,其中數(shù)據(jù)541可對應于先前已被寫入到存儲介質(zhì)577中的數(shù)字數(shù)據(jù)的第一和第二部分以及相應的冗余碼。解碼器540可被配置為對數(shù)據(jù)541進行解碼并且響應于此提供讀信號547。在另一種示例中,解碼器540可從讀取器接收數(shù)據(jù)541,其中數(shù)據(jù)541可對應于數(shù)字數(shù)據(jù)的第二部分(例如,元數(shù)據(jù))以及第二冗余碼(例如,從元數(shù)據(jù)中導出的)。在一些特定實現(xiàn)方式中,編碼器可被配置為使得第一冗余碼和第二冗余碼可具有根據(jù)本文中別處描述的失敗率概率。
在一些實施例中,解碼器540可被配置為通過(0利用第一冗余碼對數(shù)字數(shù)據(jù)的第一部分以及(ii)利用第二冗余碼對數(shù)字數(shù)據(jù)的第二部分獨立地解碼來對數(shù)字數(shù)據(jù)進行解碼。例如(但并非限于此),解碼器540可利用其相應的冗余碼(即,第一冗余碼)對從讀取器574接收(并且先前被寫入到存儲介質(zhì)577)的數(shù)據(jù)541的第一部分進行解碼。解碼器540還可被配置為利用相應的第二冗余碼對從讀取器574接收(并且先前被寫入到存儲介質(zhì)577)的數(shù)據(jù)541的第二部分進行解碼。在一些特定的實現(xiàn)方式中,解碼邏輯可被配置為首先對數(shù)字數(shù)據(jù)的第二部分進行解碼,并且如果解碼失敗,則對數(shù)字數(shù)據(jù)的第一部分進行解碼。例如(但并非限于此),解碼器540首先只需要接收數(shù)據(jù)541的第二部分及其相應的冗余 碼。如果對先前由編碼器520編碼并寫入到存儲介質(zhì)577的數(shù)據(jù)541的第 二部分的解碼不成功,則解碼器隨后可接收數(shù)據(jù)541的第一部分及其相應 的冗余碼。在此情況下,解碼器540可嘗試利用"較強"的冗余碼來恢復 數(shù)據(jù)541。在一些特定的實現(xiàn)方式中,數(shù)字數(shù)據(jù)的第一部分可包括數(shù)字數(shù) 據(jù)的第二部分。
例如(但并非限于此),數(shù)據(jù)的第二部分可包括數(shù)據(jù)Y (例如,元數(shù) 據(jù)),并且數(shù)據(jù)的第一部分可包括與數(shù)據(jù)Y復用的數(shù)據(jù)X。從而,應當明 白,在一些實施例中,數(shù)據(jù)Y可利用"較弱"的第一冗余碼來被獨立地編 碼和解碼,并且再利用"較強"的第二冗余碼來與數(shù)據(jù)X —起被聯(lián)合編碼 和解碼。在一些特定的實現(xiàn)方式中,根據(jù)本發(fā)明的一個或多個實施例,數(shù) 字數(shù)據(jù)的第一部分可包括用戶數(shù)據(jù)和元數(shù)據(jù)兩者,數(shù)字數(shù)據(jù)的第二部分可 僅包括元數(shù)據(jù)。
示例性軟件
本發(fā)明還包括可在配備有傳統(tǒng)的數(shù)字信號處理器的通用計算機或工作 站中實現(xiàn)和/或執(zhí)行的算法、(一個或多個)計算機程序和/或軟件,其被 配置為執(zhí)行(一個或多個)方法的一個或多個步驟和/或硬件的一個或多個 操作。從而,本發(fā)明的另一個方面涉及實現(xiàn)以上的(一個或多個)方法的 算法和/或軟件。例如,本發(fā)明還可涉及包含被配置為執(zhí)行上述方法和/或 算法的、可由通用計算機和/或適當?shù)奶幚碓O(shè)備(例如,信號處理設(shè)備,例 如微控制器、微處理器或DSP設(shè)備)執(zhí)行的一組指令的計算機程序或計算 機可讀介質(zhì)。
例如,計算機程序可以在任何種類的可讀物理介質(zhì)上,并且計算機可 讀介質(zhì)可以包括被配置為讀介質(zhì)并執(zhí)行其上或其中存儲的代碼的處理設(shè)備 可讀的任何介質(zhì),例如軟盤、CD-ROM、 DVD、磁帶或硬盤驅(qū)動器。這種 代碼可包括目標代碼、源代碼和/或二進制代碼。
代碼一般被配置用于通過適當?shù)慕橘|(zhì)傳輸,所述介質(zhì)例如是銅線、傳 統(tǒng)的雙絞線、傳統(tǒng)的網(wǎng)絡線纜、傳統(tǒng)的光數(shù)據(jù)傳輸線纜、或者甚至是用于無線信號傳輸?shù)目諝饣蛘婵?例如,外太空)。用于實現(xiàn)這里的(一個或 多個)方法的波形和/或代碼一般是數(shù)字的,并且一般被配置來供傳統(tǒng)的數(shù) 字數(shù)據(jù)處理器(例如,微處理器、微控制器或者諸如可編程門陣列、可編 程邏輯電路/器件或?qū)S?集成)電路之類的邏輯電路)處理。
結(jié)論/總結(jié)
從而,本公開的實施例提供了用于對元數(shù)據(jù)進行至少兩次編碼的方 法、裝置、系統(tǒng)和體系結(jié)構(gòu),其中至少一次是獨立的編碼,至少一次是與 用戶數(shù)據(jù)一起聯(lián)合的編碼,從而提供了僅對元數(shù)據(jù)的迅速、獨立和可靠的 檢索,其中,用戶數(shù)據(jù)的可靠性的降低達到最低限度。
以上對本公開實施例的描述是出于說明和描述的目的而給出的。它們 并不意圖是窮盡性的或者將本發(fā)明限制到所公開的確切形式,很明顯在考 慮到上述教導后可以進行許多修改和變化。選擇和描述實施例是為了最好 地說明本發(fā)明的原理及其實際應用,以便使得本領(lǐng)域的技術(shù)人員能夠在進 行適合于所設(shè)想的特定用途的各種修改的情況下最好地利用本發(fā)明和各種 實施例。希望本發(fā)明的范圍由所附權(quán)利要求及其等同物來限定。
本申請要求2008年7月14日提交的美國臨時申請No. 61/080,532和 2009年7月10日提交的美國專利申請No. 12/_,—(代理案巻號No. MP2694)的優(yōu)先權(quán),上述每個申請通過引用被完全結(jié)合于此。
權(quán)利要求
1.一種在存儲系統(tǒng)中存儲具有第一部分和第二部分的數(shù)據(jù)的方法,所述方法包括利用長度為R的第一冗余碼將所述第一部分和所述第二部分編碼;利用長度為P的第二冗余碼將所述第二部分編碼;以及將所述第一部分、所述第二部分、所述第一冗余碼和所述第二冗余碼中的每一個一起寫在所述存儲系統(tǒng)中。
2. 如權(quán)利要求1所述的方法,其中,所述第二部分包括元數(shù)據(jù)。
3. 如權(quán)利要求2所述的方法,其中,所述第一部分包括用戶數(shù)據(jù)。
4. 如權(quán)利要求1所述的方法,其中,所述第一冗余碼包括第一糾錯 碼,并且所述第二冗余碼包括第二糾錯碼。
5. 如權(quán)利要求4所述的方法,其中,所述第一糾錯碼和所述第二糾錯 碼中的每 一 個獨立地為Bose-Chaudhuri-Hocquenghem碼、Reed-Solomon 碼、低密度奇偶校驗碼、Hamming碼、Reed-Muller碼、二進制Golay 碼、Viterbi碼、Turbo碼、最優(yōu)矩形碼、迭代碼、或其組合。
6. 如權(quán)利要求1所述的方法,其中W和尸分別對應于失敗率概率F和 丑,其中F小于丑。
7. 如權(quán)利要求1所述的方法,還包括利用長度為S的第三冗余碼對所 述第二部分進行編碼。
8. 如權(quán)利要求7所述的方法,其中所述第三冗余碼包括從由以下各項 構(gòu)成的組中選擇出來的糾錯碼 一個或多個奇偶校驗比特、校驗和、循環(huán) 冗余校驗、及其組合。
9. 如權(quán)利要求7所述的方法,其中,A、 S和尸分別對應于失敗率概率 F、 G和丑,其中F小于( ,并且G小于好。
10. —種恢復具有多個部分的數(shù)據(jù)的一部分的方法,其中,所述數(shù)據(jù) 的第一部分和第二部分被利用第一冗余碼來聯(lián)合編碼,所述第二部分被利 用第二冗余碼來編碼,并且所述第一部分和第二部分、所述第一冗余碼和第二冗余碼被一起寫在存儲系統(tǒng)中,該方法包括從所述存儲系統(tǒng)中讀取包括所述第二部分的一部分數(shù)據(jù)和包括所述第 二冗余碼的一部分數(shù)據(jù);利用所述第二冗余碼對所述第二部分進行解碼;以及指示出是否利用所述第二冗余碼對所述第二部分進行了成功解碼。
11. 如權(quán)利要求IO所述的方法,其中,所述指示出是否對所述第二部 分進行了成功解碼的步驟包括對經(jīng)過解碼的第二部分進行差錯校驗。
12. 如權(quán)利要求10所述的方法,還包括,當未利用所述第二冗余碼對 所述第二部分進行成功解碼時從所述存儲系統(tǒng)中讀取包括所述第一部分的一部分數(shù)據(jù)和包括所述第 一冗余碼的一部分數(shù)據(jù);利用所述第一冗余碼對所述第一部分和所述第二部分一起進行解碼;以及指示出是否利用所述第一冗余碼對所述第一部分和所述第二部分進行 了成功解碼。
13. —種編碼器,包括 至少一個輸入,該至少一個輸入接收將要被寫入到存儲介質(zhì)的第一部 分和第二部分;邏輯,該邏輯被配置為(i)從所述第一部分和所述第二部分兩者生成 第一冗余碼,以及(ii)從所述第二部分而不從所述第一部分生成第二冗 余碼;以及輸出,該輸出將經(jīng)編碼的數(shù)據(jù)提供到用于所述存儲介質(zhì)的數(shù)據(jù)記錄機 構(gòu),其中,所述經(jīng)編碼的數(shù)據(jù)包括所述第一部分、所述第二部分、所述第 一冗余碼和所述第二冗余碼。
14. 如權(quán)利要求13所述的編碼器,其中,所述第一冗余碼和所述第二 冗余碼中的每一個獨立地包括Bose-Chaudhuri-Hocquenghem碼、Reed-Solomon 碼、低密度奇偶校驗碼、Hamming碼、Reed-Muller碼、二進制 Golay碼、Viterbi碼、Turbo碼、最優(yōu)矩形碼、迭代碼、或其組合,并且所 述第二冗余碼還包括一個或多個奇偶校驗比特、校驗和、循環(huán)冗余校驗、 或其組合。
15. 如權(quán)利要求13所述的編碼器,其中,所述邏輯包括第一存儲器 存儲元件,該第一存儲器存儲元件被配置為存儲所述第一部分和第二部 分;第一編碼邏輯,該第一編碼邏輯被配置為對所述第一部分和第二部分 編碼并且生成所述第一冗余碼;第二存儲器存儲元件,該第二存儲器存儲 元件被配置為至少存儲所述第二部分;以及第二編碼邏輯,該第二編碼邏 輯被配置為對所述第二部分編碼而不對所述第一部分編碼并且生成所述第 二冗余碼。
16. 如權(quán)利要求13所述的編碼器,其中,所述第一冗余碼的解碼失敗 率概率小于所述第二冗余碼的解碼失敗率概率。
17. —種解碼器,包括輸入,該輸入從存儲介質(zhì)的數(shù)據(jù)讀取機構(gòu)接收所存儲數(shù)據(jù),其中所述 所存儲數(shù)據(jù)包括(i)利用第一冗余碼聯(lián)合編碼的第一部分和第二部分兩 者的表示,以及(ii)利用第二冗余碼編碼的所述第二部分的表示;以及邏輯,該邏輯被配置為對所述所存儲數(shù)據(jù)進行解碼并提供來自所述存 儲介質(zhì)的所述第二部分。
18. 如權(quán)利要求17所述的解碼器,其中,所述邏輯還被配置為通過首 先利用所述第二冗余碼對所述第二部分的所述表示進行解碼來提供所述第 二部分。
19. 如權(quán)利要求18所述的解碼器,其中,所述邏輯還被配置為在利用 所述第二冗余碼對所述第二部分的所述表示的解碼失敗時,通過利用所述 第一冗余碼對所述第一部分和所述第二部分兩者的所述表示進行聯(lián)合解碼 來提供所述第二部分。
20. 如權(quán)利要求17所述的解碼器,其中,所述邏輯包括第一存儲器存儲元件,該第一存儲器存儲元件被配置為存儲被聯(lián)合編碼的所述第一部分和第二部分以及所述第一冗余碼;第一解碼邏輯,該第一解碼邏輯被配 置為根據(jù)所述第一冗余碼對所述第一部分和第二部分進行解碼;第二存儲 器存儲元件,該第二存儲器存儲元件被配置為至少存儲利用所述第二冗余 碼解碼的所述第二部分;以及第二解碼邏輯,該第二解碼邏輯被配置為根 據(jù)所述第二冗余碼對所述第二部分進行解碼。
全文摘要
本發(fā)明提供了編碼和/或解碼系統(tǒng)數(shù)據(jù)的方法、裝置、系統(tǒng)和體系結(jié)構(gòu)。用于提供對來自存儲系統(tǒng)的系統(tǒng)數(shù)據(jù)(例如,元數(shù)據(jù))的迅速、獨立且可靠的檢索的方法、裝置、系統(tǒng)和體系結(jié)構(gòu)使得用戶數(shù)據(jù)的可靠性降低可達到最低限度。方法一般包括對系統(tǒng)數(shù)據(jù)進行至少兩次編碼,其中至少一次為獨立編碼,至少一次是與用戶數(shù)據(jù)一起的聯(lián)合編碼。方法還包括首先對系統(tǒng)數(shù)據(jù)解碼,并且在解碼失敗后,對系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)聯(lián)合解碼。
文檔編號G11B20/00GK101635158SQ20091015948
公開日2010年1月27日 申請日期2009年7月14日 優(yōu)先權(quán)日2008年7月14日
發(fā)明者楊雪石 申請人:馬維爾國際貿(mào)易有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1