專利名稱:用于對多層旋轉存儲介質記錄和讀取數據的方法和系統的制作方法
技術領域:
本發明通常涉及對多層旋轉數據存儲介質記錄數據和由其讀取數據,特別是,涉及在一層或多層上的數據不可讀的情形下減少數據丟失或不可訪問的風險。
背景技術:
具有多個記錄層的旋轉數據存儲介質是用于提高在一定體積中能夠存儲的數據量的一種方法。如此處所述,術語“層”廣義上指安裝在單個軸上的一堆盤片(disk platter)的記錄表面以及嵌在單片介質內的記錄層。圖1是示出前者,即具有四個盤片110、120、130、140的硬盤堆疊100的示例。每個盤片110、120都具有兩個記錄表面,它們分別為110A和110B、120A和120B、130A和130B、以及140A和140B。如人們已知的,盤片被安裝在軸150上,并與其一起旋轉。圖2是后者的示例,即其中在間隔層之間嵌入四個記錄層210A、210B、210C、210D的多層光盤200的截面圖。多層光盤200可為DVD(數字多功能光盤)、HD-DVD(高清晰度DVD)光盤、或藍光盤。這些層通過激光器220進行光學訪問。一般而言,數據最初按照連續塊進行記錄,從一層繼續到下一層。在可重寫環境中,隨著數據被修改或覆寫,具有新數據的塊可變得更加擴散,以填充舊的、被擦除或移動的數據所留下的空隙。
盡管通過對多層介質進行記錄來提高數據密度的方式提供了許多優點,然而如果例如由于擦傷、介質缺陷、讀寫頭碰撞或老化等而使得某層的一部分或全部變得不可讀,則可能使某些數據發生危險。從而,仍然需要提高多層介質的可靠性,以及由此提高其上記錄的數據的安全性。
發明內容
本發明通過提供一種用于對旋轉存儲介質的多個層記錄數據和從中讀取數據的方法、數據存儲設備和計算機程序產品,來提高多層介質的可靠性。根據本發明的方法,數據流U將被記錄到具有多個(L個)可記錄層的旋轉存儲介質,數據流U包括數據位序列,其中,U(J)表示在數據流U中的第J位。接收數據流U,并將每個數據位U(J)編碼成X個表示位B(1,J)、B(2,J)、...,B(X,J)。將第一個表示位B(1,J)記錄到存儲介質的第一層上,將第二個表示位B(2,J)記錄到存儲介質的第二層上,將其余表示位記錄到存儲介質的各層上。隨后接收從存儲介質讀取記錄數據U的請求,從存儲介質回讀多個(X個)表示位B(1,J)、B(2,J)、...,B(X,J)。然后,將多個(X個)表示位B(1,J)、B(2,J)、...,B(X,J)解碼成原始數據位U(J)。在一個實施例中,編碼可通過卷積編碼算法實現,解碼則通過PRML解碼算法實現。在另一實施例中,可使用里德-索羅蒙編碼/解碼。
本發明的數據存儲設備包括被連接以接收要記錄到旋轉存儲介質的數據流U的數據輸入,該旋轉存儲介質具有多個(L個)可記錄層,數據流U包括數據位序列,其中,U(J)表示在數據流U中的第J位。存儲設備還包括用于將每個數據位U(J)編碼成X個表示位B(1,J)、B(2,J)、...,B(X,J)的編碼器;和用于將第一個表示位B(1,J)記錄到存儲介質的第一層上、將第二個表示位B(2,J)記錄到存儲介質的第二層上、將其余表示位記錄到存儲介質的各層上的裝置。存儲設備還包括用于接收從存儲介質讀取記錄數據U的請求的命令輸入;用于從存儲介質回讀多個(X個)表示位B(1,J)、B(2,J)、...,B(X,J)的裝置;和用于將多個(X個)表示位B(1,J)、B(2,J)、...,B(X,J)解碼成原始數據U(J)的解碼器。在一個實施例中,編碼器為卷積編碼器,解碼器為PRML解碼器。在另一實施例中,編碼器和解碼器分別為里德-索羅蒙編碼器和解碼器。
本發明的計算機程序產品包括計算機可讀介質,所述計算機可讀介質具有計算機可讀代碼,計算機可讀代碼包括用于執行以下步驟的指令接收要記錄到具有多個(L個)可記錄層的旋轉存儲介質的數據流U,數據流U包括數據位序列,其中,U(J)表示在數據流U中的第J位;將每個數據位U(J)編碼成X個表示位B(1,J)、B(2,J)、...,B(X,J);將第一個表示位B(1,J)記錄到存儲介質的第一層上,將第二個表示位B(2,J)記錄到存儲介質的第二層上,將其余表示位記錄到存儲介質的各層上;接收從存儲介質讀取記錄數據U的請求;從存儲介質回讀多個(X個)表示位B(1,J)、B(2,J)、...,B(X,J);將多個(X個)表示位B(1,J)、B(2,J)、...,B(X,J)解碼成原始數據U(J)。
圖1表示可應用本發明的硬盤堆疊;圖2表示可應用本發明的多層光盤;圖3表示可用于實現根據本發明的編碼器的狀態圖的示例;圖4表示在本發明中可實現的卷積編碼器的一個示例的框圖;圖5表示可用于實現根據本發明的解碼器的格子圖(trellisdiagram)示例;圖6表示用于重構丟失數據的PRML路徑;以及圖7表示以一定角度偏移量將數據記錄在多個層上的本發明又一實施例。
具體實施例方式
來自主機的要記錄到旋轉多層存儲介質(如以上所述,可為具有數量L個嵌入記錄層的單片介質或連成堆疊的各個盤)上的數據流U包括數據位序列U(1)...U(J)。一般而言,將對數據位進行順序記錄,其中記錄開始于一個層上,并且如有必要,繼續對一個或多個其他層進行記錄。然而,根據本發明,將數據位編碼成表示位并且記錄在多層介質上,其中,將第一個表示位記錄到第一層上,將第二個表示位記錄到第二層上,將第三個表示位記錄到第三層上,一直繼續,直至將第L個表示位記錄到第L層上。然后,將下一個表示位記錄到第一層上,處理繼續,直至將所有表示位記錄到存儲介質上。
表I表示出將表示位記錄到具有四個層L1-L4的存儲介質上的位位置(bit position)的序列。
表I
在時間T=1處,如表I第一數據列所示,將前四個表示位同時或迅速相繼地編碼到四個層L(1,1)、L(2,1)、L(3,1)、L(4,1)中每一層的第一位置。在下一時間窗口T=2期間,如表I第二數據列所示,將接著的四個表示位編碼到四個層L(1,1)、L(2,1)、L(3,1)、L(4,1)中每一層的第二位置。在下一時間窗口T=3期間,如表I第三數據列所示,將接著的四個表示位編碼到四個層L(1,1)、L(2,1)、L(3,1)、L(4,1)中每一層的第三位置。在將表示位編碼和存儲在緩沖器中之后,如表I所示,通常由表I的行所表示的層寫入表示位(以避免激光器在層之間進行不必要的跳轉),其中,層j接收位L(j,1)至位L(j,N),而層k接收位L(k,1)至位L(k,N)。
當主機請求從存儲介質回讀數據U時,一般由層讀取表示位,其中,從層j讀取位L(j,1)至位L(j,N),而從層k讀取位L(k,1)至位L(k,N)。然后,可將位緩沖和重新裝配到表I中,并解碼成原始數據流U(1)...U(J)。損傷或其它使得不能從一層的區域進行讀取的情況將僅僅影響某些表示位,并且通過采用本發明的進一步的特征,盡管丟失某些表示位,但仍可重構數據。
在本發明的一個實施例中,將每個數據位U(1)...U(J)卷積編碼成預定數量的表示位。例如,可將每個數據位K卷積編碼成數量與記錄層的數量(L個)相同的表示位B(1,K)、B(2,K)、...、B(L,K)。或者,可將每個數據位K卷積編碼成數量兩倍于記錄層的數據(L個)的表示位B(1,K)、B(2,K)、...,B(2*L,K)。將第一批L個表示位記錄到L個層上,將第二批L個表示位也記錄到L個層上。一般而言,可將每個數據位K卷積編碼成數量X個表示位,該數量X等于記錄層數量(L個)的整數(M)倍,該數量X個表示位為B(1,K)、B(2,K)、...、B(M*L=X,K)。
在可選實施例中,層數量為卷積編碼器編碼的位數的整數倍。例如,圖4中的卷積編碼器在給定時間生成四個表示位。從而,在八層盤或盤堆疊中,可將四個位記錄在第一批四個層上,并且可將第二批四個位記錄在第二批四個層上,對于接下來的位組,重復上述處理。
表II和圖3的狀態圖說明了將數據位U卷積編碼成要記錄到L=4個記錄層上的X=4個表示位的示例。表II的列1包含可能的初始狀態(視圖中示出8個),列2包含每個初始狀態的可能目的狀態,列3包含原始數據位U的兩個狀態,列4包含編碼“字”,編碼“字”包括要記錄到記錄介質的四個層上的四個輸出表示位。
表II
圖4表示可用于實現本發明的卷積編碼器400的框圖。圖4可直接實現于半導體芯片中,或可通過軟件實現。編碼器400包括三級移位寄存器,所述三級移位寄存器包括串聯連接的第一、第二和第三寄存器402、404、406。由這三個移位寄存器產生如表II和圖3所示的8個狀態,即,將二自乘(二進制運算)至等于移位寄存器數目的次數;在所示示例中,是二的三次冪(三個移位寄存器)。編碼器400還包括第一、第二、第三和第四模2加法器408、410、412、414,可將其實現為異或(XOR)邏輯門。將輸入數據流U(J)與第一寄存器402的輸入以及第一、第二、第三和第四加法器408、410、412、414的輸入相連。第一寄存器402的輸出與第二寄存器404的輸入以及第二、第三和第四加法器410、412、414的輸入相連。第二寄存器404的輸出與第三寄存器406的輸入以及第一和第四加法器408、414的輸入相連。第三寄存器406的輸出與第一、第二、第三和第四加法器408、410、412、414的輸入相連。
在操作上,寄存器402、404、406的初始內容通常為0。通過加法器408、410、412、414有選擇地將輸入數據位U(J)與寄存器402、404、406的輸出相加。第一加法器408生成和輸出第一表示位B(1,J);第二加法器410生成和輸出第二表示位B(2,J);第三加法器412生成和輸出第三表示位B(3,J);以及第四加法器414生成和輸出第四表示位B(4,J)。如所圖示的,編碼器400包括前饋移位寄存器。應該理解,可采用其他方式實現卷積編碼器400。此外,通過并行編碼多個數據位可提高編碼吞吐率。
圖5表示可用于實現根據本發明的部分響應、最大似然(PRML)解碼器的格子圖的示例。圖5中示出狀態S0-S7,并假設寄存器402、404、406的初始內容為零;因此,格子圖500開始于狀態S0510A。從S0510A,通過格子圖500的路徑跳到S0510B或S1511B。將格子圖500中狀態編號從后綴A到后綴B的增加稱為分支,當從后綴A跳躍到后綴B時,分支索引I為零。從S0510B,路徑跳躍到S0510C或S1 511C,從S1511B跳躍到S2512C或S3513C,分支索引I為1。從S0510C,路徑跳躍到S0510D或S1511D,從S1511C跳躍到S2512D或S3513D,從S2512C跳躍到S4514D或S5515D,從S3513C跳躍到S6516D或S7517D,分支索引I為2。
通過格子圖500的路徑中的下一系列跳躍顯示出解碼操作的全部寬度。從S0510D,路徑跳躍到S0510E或S1511E,從S1511D跳躍到S2512E或S3513E,從S2512D跳躍到S4514E或S5515E,從S3513D跳躍到S6516E或S7517E,分支索引I為3。此外,從S7517D,路徑跳躍到S7517E或S6516E,從S6516D跳躍到S5515E或S4514E,從S5515D跳躍到S3513E或S2512E,從S4514D跳躍到S1511E或S0510E。
一般而言,針對分支索引I=3示出的跳躍在格子圖中重復多次。然而,出于簡化目的,在圖5中僅示出一次這樣的迭代。對于圖5的其余部分,顯示出格子圖終止,表示解碼處理結束。從S0510E,路徑僅跳躍到S0510F,從S1511E僅跳躍到S2512F,從S2512E僅跳躍到S4514F,從S3513E僅跳躍到S6516F,分支索引I為4。此外,從S7517E,路徑僅跳躍到S6516F,從S6516E僅跳躍到S4514F,從S5515E僅跳躍到S2512F,從S4514E僅跳躍到S0510F。從S0510F,路徑僅跳躍到S0510G,從S2512F僅跳躍到S4514G,分支索引I為5。此外,從S6516F,路徑僅跳躍到S4514G,從S4514F僅跳躍到S0510G。最后,從S0510G,路徑僅跳躍到S0510H;分支索引I為6。此外,從S4514G,路徑僅跳躍到S0510H。
在表III中,對于將1111000編碼成針對四個(在該示例中)層L1、L2、L3、L4的表示位的給定示例,示出了圖3所示狀態圖中被突出表示的編碼路徑(S0,S1,S3,S7,S7,S6,S4和S0)的編碼數據。表III還顯示出對于在圖5所示格子圖中被突出表示的解碼路徑的解碼數據。從而,可將表III認為是編碼-解碼(ENDEC)表,其中,第一列為初始狀態,第二列為目的狀態,第三列包含原始串行數據U,第四列表示對于盤層L1、L2、L3和L4的編碼數據。
表III
在由于記錄層的全部或部分受損而使層中的數據變得不可讀的情形中,可使用本發明重構丟失的數據。圖6和表IV表示根據本發明重構丟失的數據的處理示例。在示例中,層L2和L3的數據完全丟失。然而,圖6使用PRML(最小漢明距離)來確定哪條路徑是通過格子解碼圖的正確路徑。出于簡化目的,僅分析數據恢復的3個分支。
數據恢復的第一分支(I=0)包括找出對于數據1xy1的正確數據恢復,其中,x和y表示由于層L2和L3完全丟失而未知的編碼數據。從S0至S0的漢明距離為1xy1<XOR>0000=1xy1,而從S0至S1的漢明距離為1xy1<XOR>1111=0xy0。由于從S0至S1的路徑具有更小的漢明距離,從而,它是正確的路徑,可將分支I=0的丟失數據重構為x=1和y=1。
同樣,數據恢復的第二分支(I=1)包括找出數據1xy0的正確數據恢復路徑。從S1至S2的漢明距離為1xy0<XOR>0111=1xy1,而從S1至S3的漢明距離為1xy0<XOR>1000=0xy0。由于從S1至S3的路徑具有更小的漢明距離,從而,它是正確的路徑,可將分支I=1的丟失數據重構為x=y=0。
最后,數據恢復的第三分支(I=2)包括找出數據0xy1的正確數據恢復。從S3至S6的漢明距離為0xy1<XOR>1110=1xy1,而從S3至S7的漢明距離為0xy1<XOR>0001=0xy0。由于從S3至S7的路徑具有更小的漢明距離,從而,它是正確的路徑。
表IV
此外,還可使用其他編碼/解碼算法實現本發明。一種這樣的算法是里德-索羅蒙碼,它是一種常用于多差錯校正并且基于伽羅瓦域GF(2m)的有限運算的隨機、糾錯、循環碼的形式。針對m=4的伽羅瓦域被表示為GF(24)。該域的元素為{0、1,α,α2,α3,α4,α5,α6,α7,α8,α9,α10,α11,α12,α13,α14}。為了將兩個元素αi和αj相乘,將它們的指數相加,并利用α15=1的事實。例如,α12*α7=α19=α15*α4=α4。表V顯示出由p(X)=1+X+X4生成的GF(24)的元素的三種表示。
表V
為了將GF(24)中兩個元素αi和αj相加,使用它們在以上表中的多項式表示。例如,α5+α7=(α+α2)+(1+α+α3)=1+α2+α3=α13。
對于校正t個符號的里德-索羅蒙編碼器的生成多項式為
g(X)=(X+α)(X+α2)(X+α3)...(X+α2t)。
為了更好地理解這樣的生成多項式,對于由GF(24)校正t=3個符號的里德-索羅蒙編碼器,如表V所示,示例性生成多項式為g(X)=(X+α)(X+α2)(X+α3)(X+α4)(X+α5)(X+α6)g(X)=α6+α9X+α6X2+α4X3+α14X4+α10X5+X6從而,可將里德-索羅蒙編碼器用作為卷積編碼器的可選實施例,以便在分布于存儲介質的多個層上的數據中提供冗余。里德-索羅蒙編碼器具有n=2m-1的塊長度和2t個奇偶校驗位。
在圖7中示出了本發明的另一特征。盤700包括四個層702、704、706、708。并非將由數據位編碼而成的四個表示位記錄成從一層到一層垂直對準(即,各層具有相同的起始地址)的方式,而是對每個表示位給定這樣的起始地址,使得將其記錄于一個層上的位置處,而該位置相對于相鄰層中的位具有角度偏移。在圖7中,角度偏移量為90°,在第一、第二、第三和第四層702、704、706,708上分別由線A、B、C和D表示。此外,也可使用其他角度偏移量。從而,盡管在一個層(例如,頂層702)上的劃傷或其他缺陷可能對從該層的特定區域讀出表示位構成障礙,但該缺陷不會阻礙數組中的其他三個表示位。
重要的是要注意,盡管在全功能數據處理系統的背景下描述了本發明,然而本領域普通技術人員應該理解,本發明的處理可以采用指令的計算機可讀介質的形式以及各種形式發布,并且本發明的適用與實際用于實現發布的信號承載介質的具體類型無關。計算機可讀介質的示例包括可記錄類型介質,例如軟盤、硬盤驅動器、RAM和CD-ROM,和傳輸型介質,例如數字和模擬通信鏈路。
以上出于說明和描述的目的,給出了本發明的描述,但這并不意在窮舉出本發明或將本發明局限于所述形式。本領域普通技術人員顯然可以想到許多修改例和變型例。所選出和描述的實施例是為了更好地解釋本發明的原理、實際應用,以及使本領域其他普通技術人員能夠想到本發明具有適合于所考慮的具體應用的各種修改的各種實施例。此外,盡管以上在方法和系統方面進行了描述,然而通過包含用于將數據記錄到旋轉存儲介質的多個層和從其讀取數據的指令的計算機程序產品,也可滿足本領域中的需求。
權利要求
1.一種用于對旋轉存儲介質的多個層記錄數據和從其讀取數據的方法,包括接收要記錄到具有多個,即L個可記錄層的旋轉存儲介質的數據流U,所述數據流U包括數據位序列,其中,U(J)表示在數據流U中的第J位;將每個數據位U(J)編碼成X個表示位B(1,J)、B(2,J)、…、B(X,J);將第一個表示位B(1,J)記錄到存儲介質的第一層上,將第二個表示位B(2,J)記錄到存儲介質的第二層上,將其余表示位記錄到存儲介質的各層上;接收從存儲介質讀取記錄數據U的請求;從存儲介質回讀多個,即X個表示位B(1,J)、B(2,J)、…、B(X,J);以及將多個,即X個表示位B(1,J)、B(2,J)、…、B(X,J)解碼成原始數據位U(J)。
2.根據權利要求1的方法,其中,將每個數據位U(J)編碼成X個表示位B(1,J)、B(2,J)、…、B(X,J)包括對每個數據位U(J)進行卷積編碼;以及將多個,即X個表示位B(1,J)、B(2,J)、…、B(X,J)解碼成原始數據位U(J)包括執行PRML解碼算法。
3.根據權利要求1的方法,其中,將每個數據位U(J)編碼成X個表示位B(1,J)、B(2,J)、…、B(X,J)包括執行里德-索羅蒙編碼算法;以及將多個,即X個表示位B(1,J)、B(2,J)、…、B(X,J)解碼成原始數據位U(J)包括執行里德-索羅蒙解碼算法。
4.根據權利要求1的方法,其中,X=L;其余表示位包括表示位B(3,J)、…、B(X,J);以及記錄其余表示位包括將其余表示位B(3,J)、…、B(X,J)記錄到存儲介質的第三至第L個層上。
5.根據權利要求1的方法,其中,X為L的預定整數M倍;其余表示位包括表示位B(3,J)、…、B(X,J);以及記錄表示位包括將表示位B(1,J)、B(2,J)、…、B(X,J)組合成均具有L個表示位的M個組;將第一組的L個表示位B(1,J)、B(2,J)、…、B(L,J)分別記錄到存儲介質的第一至第L個層上;以及將每個其他組的L個表示位分別記錄到存儲介質的第一至第L個層上。
6.根據權利要求1的方法,還包括將數據流U的多個數據位并行編碼。
7.根據權利要求1的方法,其中,旋轉存儲介質包括具有L個可記錄層的光盤。
8.根據權利要求1的方法,其中,旋轉存儲介質包括具有L個可記錄磁表面的硬盤堆疊。
9.根據權利要求1的方法,其中,記錄表示位包括將每個表示位記錄到相應層上的起始位置,所述起始位置相對相鄰層上表示位的起始位置具有預定量的角度偏移。
10.一種用于對旋轉存儲介質的多個層記錄數據和從其讀取數據的數據存儲設備,包括被連接以便接收要記錄到旋轉存儲介質的數據流U的數據輸入,所述旋轉存儲介質具有多個,即L個可記錄層,數據流U包括數據位序列,其中,U(J)表示在數據流U中的第J位;編碼器,用于將每個數據位U(J)編碼成X個表示位B(1,J)、B(2,J)、…、B(X,J);用于將第一個表示位B(1,J)記錄到存儲介質的第一層上、將第二個表示位B(2,J)記錄到存儲介質的第二層上、將其余表示位記錄到存儲介質的各層上的裝置;用于接收從存儲介質讀取記錄數據U的請求的命令輸入裝置;用于從存儲介質回讀多個,即X個表示位B(1,J)、B(2,J)、…、B(X,J)的裝置;和解碼器,用于將多個,即X個表示位B(1,J)、B(2,J)、…、B(X,J)解碼成原始數據位U(J)。
11.根據權利要求10的數據存儲設備,其中,編碼器包括卷積編碼器,解碼器包括PRML解碼器。
12.根據權利要求11的數據存儲設備,其中,X=4,編碼器包括串聯連接的第一、第二和第三移位寄存器,每個移位寄存器具有輸入和輸出,第一移位寄存器的輸入與所述數據輸入相連;第一、第二、第三和第四模2加法器,均具有針對X個表示位中的相應位的輸出,其中,第一加法器具有與所述數據輸入以及第一和第三移位寄存器的輸出相連的輸入;第二加法器具有與所述數據輸入以及第一和第三移位寄存器的輸出相連的輸入;第三加法器具有與所述數據輸入以及第一和第三移位寄存器的輸出相連的輸入;以及第四加法器具有與所述數據輸入以及每個移位寄存器的輸出相連的輸入。
13.根據權利要求11的數據存儲設備,其中,解碼器包括格子解碼器。
14.根據權利要求10的數據存儲設備,其中,編碼器包括里德-索羅蒙編碼器;以及解碼器包括里德-索羅蒙解碼器。
15.根據權利要求10的數據存儲設備,其中,旋轉存儲介質包括具有L個可記錄層的光盤。
16.根據權利要求10的數據存儲設備,其中,旋轉存儲介質包括具有L個可記錄磁表面的硬盤堆疊。
全文摘要
公開了用于對多層旋轉存儲介質記錄和讀取數據的方法和系統。通過本發明,使多層介質的可靠性提高。接收要記錄到多層旋轉存儲介質的數據流U,所述數據流U包括數據位序列。將每個數據位U(J)編碼成X個表示位。將第一個表示位B(1,J)記錄到存儲介質的第一層上,將第二個表示位B(2,J)記錄到存儲介質的第二層上,等等。當隨后接收從存儲介質讀取記錄數據U的請求時,從存儲介質回讀多個(X)表示位,并將它們解碼成原始數據U(J)。在一個實施例中,編碼可通過卷積編碼算法實現,解碼則通過PRML解碼算法實現。在另一實施例中,可使用里德-索羅蒙編碼/解碼。
文檔編號G11B7/125GK101064131SQ20071008934
公開日2007年10月31日 申請日期2007年3月23日 優先權日2006年4月28日
發明者丹尼爾·詹姆斯·威納爾斯基, 劉錚, 艾倫·凱斯·貝茨, 克萊格·安托尼·克萊恩, 尼爾斯·豪斯坦 申請人:國際商業機器公司