JP4859658B2 - ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム - Google Patents
ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム Download PDFInfo
- Publication number
- JP4859658B2 JP4859658B2 JP2006347230A JP2006347230A JP4859658B2 JP 4859658 B2 JP4859658 B2 JP 4859658B2 JP 2006347230 A JP2006347230 A JP 2006347230A JP 2006347230 A JP2006347230 A JP 2006347230A JP 4859658 B2 JP4859658 B2 JP 4859658B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- updated
- update
- check code
- crc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
図12は、RAID装置が管理するユーザデータのフォーマット例を示す図である。RAID装置内部では、ユーザデータの信頼性を高めるために、図12(A)に示すように、512バイトのユーザデータに8バイトのBCC(Block Check Code)を付加しており、該BCCに基づいて、装置内部やHDD内部でのデータ化けが容易に検出できるようになっている。
上記8バイトのBCCは、6バイトのBID(Block ID)と、2バイトのブロックチェックコードであるCRCとから構成される。BIDは、ブロックを一意に識別する識別子である。
MainFrame系のデータを更新する場合、データの信頼性を持たせるため、更新対象となる元データだけでなく、更新ブロックデータ(更新データ)についてもCRCを付加している。更新データの形式の例を以下に示す。
512バイトのブロックデータ全体を更新対象とする場合、BCCも含めたLBA単位で更新データを書き込むことによって、データ更新を行う。
2.ブロックデータを部分更新する場合の更新データの形式
(1)更新データが右詰めされた形式
更新データが右詰めされた形式とは、図13(A)に示すように、更新データを右詰めして、非更新部分を0詰めしたフォーマットである。元データを更新する場合には、更新対象となる元データ上に、更新データを所定の位置まで左シフトして書き込む。この時、元データのBCC(BID+CRC)を更新する必要がある。
(2)更新データがデータ更新位置(元データに対する書き込み位置)に書き込まれた形式
更新データがデータ更新位置に書き込まれた形式とは、図13(B)に示すように、更新データがデータ更新位置に書き込まれ、非更新部分を0詰めしたフォーマットである。元データを更新する場合には、元データ上に該データ更新位置にある更新データをそのまま書き込む。この時、元データのBCC(BID+CRC)を更新する必要がある。
図14に示す部分データ更新回路は、例えば以下の[1]〜[8]までの手順に従ってブロックデータの部分更新処理を行う。なお、Mainframe系のシステムに対応するユーザデータのフォーマットに従うと、64バイト単位でデータ更新がされるため、この例では、更新ブロック位置を指定しやすいように、図15に示すように、各々が64バイトのBLK0〜BLK7までの8個のサブブロック(Sub−block)でユーザデータを表記する。
[1]Read DMA23が、キャッシュメモリ21に格納されている元データを520バイト(512バイトのユーザデータ+8バイトのBCC)読み込む。
[2]BCCチェッカー24が、読み込まれたユーザデータのCRCおよびBIDのチェックを行ない、正当であれば、該ユーザデータのBCCを削除する。
[3]バッファコントローラ25が、更新用データバッファ26内に用意された空のユーザデータのBLK7,6,5,1,0に、元データのBLK7,6,5,1,0のデータを格納する。
[4]Read DMA23が、キャッシュメモリ21に格納されている更新データを520バイト(512バイトのユーザデータ+8バイトのBCC)読み込む。
[5]BCCチェッカー24が、上記手順[4]で読み込まれたユーザデータのCRCおよびBIDのチェックを行ない、正当であれば、該ユーザデータのBCCを削除する。
[6]バッファコントローラ25が、更新データを更新データバッファ26に格納する。該手順[6]においては、更新データが右詰めされた形式か、更新データがデータ更新位置に書き込まれた形式かによって、更新データの格納処理が異なる。
図15中に示すBLK2,1,0のデータが更新データである場合のように、更新データが右詰めされた形式のとき、バッファコントローラ25は、更新用データバッファ26に用意され、上記手順[3]においてBLK7,6,5,1,0に元データが格納されたユーザデータのBLK4,3,2に更新データ(BLK2,1,0のデータ)を格納する。
図15中に示すBLK4,3,2が更新データである場合のように、更新データがデータ更新位置に書き込まれた形式であるとき、バッファコントローラ25は、更新用データバッファ26に用意され、上記手順[3]においてBLK7,6,5,1,0に元データが格納されたユーザデータのBLK4,3,2に更新データ(BLK4,3,2のデータ)を格納する。
[8]Write DMA28が、上記手順[7]においてBCCが付加された更新済みデータをキャッシュメモリ21に書き込む。
なお、従来のデータ更新に関する具体的技術として、下記の特許文献1に、書き込みデータ中の更新データからチェックコードを生成し、生成されたチェックコードと書き込みデータ中のチェックコードとの比較結果に基づいて、書き込みデータをディスク部に書き込むディスクアレイ装置に関して記載されている。
従って、BCCチェッカー24によってユーザデータのBCCが削除されてからBCC演算部27によって更新済みデータについてのBCCが生成されるまでの間の処理(元データの更新用データバッファ26への格納処理および更新データの元データ上への書き込み処理)におけるデータ化けを検出することが困難である。
該データ化けを検出するために、例えばBCCチェッカー24とバッファコントローラ25との間のデータパス、バッファコントローラ25と更新用データバッファ26との間のデータパスにパリティ(Parity)を付加することが考えられる。しかし、更新用データバッファ26のアドレス化け等により、更新用データバッファ26に対して誤ったデータが書き込まれた場合、BCC演算部27は、誤ったデータに対して正当なBCCを付加してしまい、RAID装置の信頼性が低下しまう恐れがある。
(1)チェックコードで保護されたブロックデータの部分更新装置を設ける。上記ブロックデータの部分更新装置が、チェックコードを生成するチェックコード生成手段と、更新対象となる元データD1の更新される部分のブロックデータBD1上に更新ブロックデータBD2を書き込んで、更新済みデータD2に更新し、該更新済みデータD2に上記チェックコード生成手段で生成されたチェックコードを付加するデータ更新手段とを備える。 また、上記チェックコード生成手段は、更新対象となる元データD1とそのチェックコードBCC1を格納した領域から、更新される部分のブロックデータBD1と、更新対象となる元データD1のチェックコードBCC1を読み取る手段と、上記更新される部分のブロックデータBD1のチェックコードBCCD1を生成する手段と、上記更新対象となる元データD1を更新する更新ブロックデータBD2と、そのチェックコードBCCD2を読み込む手段と、上記更新ブロックデータBD2のチェックコードBCCD2と、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1とから、更新済みデータD2のチェックコードBCC2を生成する手段とを備える。
(2)上記更新済みデータD2のチェックコードBCC2を生成する手段が、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1と、更新ブロックデータBD2が上記元データD1に対する書き込み位置にあるか否かに応じて決まる更新ブロックデータBD2のチェックコードBCCD2とに基づいて、上記更新済みデータD2のチェックコードBCC2を生成する。
(3)チェックコードで保護されたブロックデータの部分更新方法を実行する。上記ブロックデータの部分更新方法が、更新対象となる元データD1とそのチェックコードBCC1を格納した領域から、更新される部分のブロックデータBD1と、更新対象となる元データD1のチェックコードBCC1を読み取るステップと、上記更新される部分のブロックデータBD1のチェックコードBCCD1を生成するステップと、上記更新対象となる元データD1を更新する更新ブロックデータBD2と、そのチェックコードBCCD2を読み込むステップと、上記更新ブロックデータBD2のチェックコードBCCD2と、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1とから、更新済みデータD2のチェックコードBCC2を生成するステップと、上記元データD1の更新される部分のブロックデータBD1上に上記更新ブロックデータBD2を書き込んで、更新済みデータD2に更新し、該更新済みデータD2に上記チェックコードBCC2を付加するステップとからなる。
(4)上記更新済みデータD2のチェックコードBCC2を生成するステップが、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1と、更新ブロックデータBD2が上記元データD1に対する書き込み位置にあるか否かに応じて決まる更新ブロックデータBD2のチェックコードBCCD2とに基づいて、上記更新済みデータD2のチェックコードBCC2を生成する。
(5)チェックコードで保護されたブロックデータの部分更新プログラムを設ける。上記ブロックデータの部分更新プログラムが、コンピュータに、更新対象となる元データD1とそのチェックコードBCC1を格納した領域から、更新される部分のブロックデータBD1と、更新対象となる元データD1のチェックコードBCC1を読み取る処理と、上記更新される部分のブロックデータBD1のチェックコードBCCD1を生成する処理と、上記更新対象となる元データD1を更新する更新ブロックデータBD2と、そのチェックコードBCCD2を読み込む処理と、上記更新ブロックデータBD2のチェックコードBCCD2と、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1とから、更新済みデータD2のチェックコードBCC2を生成する処理と、上記元データD1の更新される部分のブロックデータBD1上に上記更新ブロックデータBD2を書き込んで、更新済みデータD2に更新し、該更新済みデータD2に上記チェックコードBCC2を付加する処理とを実行させる。
(6)上記更新済みデータD2のチェックコードBCC2を生成する処理が、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1と、更新ブロックデータBD2が上記元データD1に対する書き込み位置にあるか否かに応じて決まる更新ブロックデータBD2のチェックコードBCCD2とに基づいて、上記更新済みデータD2のチェックコードBCC2を生成する。
また、本発明によれば、元データに誤った更新データを上書きしてしまっても、本発明によって生成された正しい更新済みデータのチェックコードに基づいて、該更新済みデータが誤ったデータであることを検出することができる。
また、本発明によれば、正しい更新済みデータに誤ったチェックコードが付加された場合であっても、該チェックコードの正当性のチェックを通じて、正しい更新済みデータに誤ったチェックコードが付加されたことを検出することができる。
ブロックデータの部分更新装置1は、キャッシュメモリ11、キャッシュメモリインタフェース12、Read DMA13、BIDチェッカー14、元データCRC格納部15、更新部分CRC演算部16、更新データCRC格納部17、BCC演算部18、Write DMA19、CRCチェッカー20、更新データパス30を備える。
キャッシュメモリ11にはユーザデータが格納される。キャッシュメモリインタフェース12は、キャッシュメモリ11に対するデータの読込み/書き込みを媒介する。Read DMA13は、キャッシュメモリ11から元データと更新データとを読み込む。また、Read DMA13は、読み込んだ更新データを更新データパス30を通じてWrite DMA19に送信する。
BIDチェッカー14は、元データおよび更新データのBCC内部のBIDの正当性のチェックを行う。
BCC演算部18は、元データCRC格納部15に格納された元データCRCと、更新元部分CRC演算部16によって生成された更新元部分CRCと、更新データCRC格納部17に格納された更新データCRCとに基づいて、更新済みデータのCRC(更新済みデータCRC)を演算して生成する。更新済みデータとは、元データの更新される部分が更新データによって上書きされた結果得られるデータである。また、BCC演算部18は、生成されたCRCにBIDを付加して更新済みデータのBCCを生成する。
CRCチェッカー20は、キャッシュメモリ11に格納されているユーザデータのCRCの正当性をチェックする。本発明の一実施例によれば、ブロックデータの部分更新装置1が、ブロックデータの部分更新の結果をホストコンピュータ(図示を省略)に返す際に用いるインタフェースカード(図示を省略)に、ユーザデータのCRCの正当性をチェックする機能を備えたチップを備えるようにしてもよい。
なお、上述したブロックデータの部分更新装置1及びその各部の機能は、CPUとその上で実行されるプログラムにより実現される。本発明を実現するプログラムは、コンピュータが読み取り可能な記録媒体、例えば半導体メモリ、ハードディスク、CD−ROM、DVD等に格納することができ、これらの記録媒体に記録して提供され、又は、通信インタフェースを介してネットワークを利用した送受信により提供される。
更新元部分CRC演算部16が、ステップS1において読み込まれた元データのBLK4,3,2のデータに基づいて、更新元部分CRCを生成する(ステップS3)。Read DMA13が、ステップS1において読み込まれたBCCの内部のCRCを元データCRCとして元データCRC格納部15に格納する(ステップS4)。
そして、Write DMA19が、Read DMA13から送信された更新データのBLK4,3,2をキャッシュメモリ11に格納されている元データのBLK4,3,2に上書きするとともに、該更新データの上書き後の更新済みデータに上記ステップS8において生成された更新済みデータのBCCを付加して(ステップS9)、処理を終了する。
まず、Read DMA13が、キャッシュメモリ11から、元データのBLK4,3,2とBCCとを読み込む(ステップS11)。次に、BIDチェッカー14が、ステップS1において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS12)。
次に、Read DMA13が、キャッシュメモリ11から更新データのBLK2,1,0とBCCとを読み込み、更新データのBLK2,1,0をWrite DMA19に送信する(ステップS15)。そして、BIDチェッカー24が、上記ステップS15において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS16)。また、Read DMA13が、上記ステップS15において読み込まれたBCCの内部のCRCを更新データCRCとして更新データCRC格納部17に格納する(ステップS17)。
そして、Write DMA19が、Read DMA13から送信された更新データのBLK2,1,0をキャッシュメモリ11に格納されている元データのBLK4,3,2に上書きするとともに、該更新データの上書き後の更新済みデータに上記ステップS18において生成された更新済みデータのBCCを付加して(ステップS19)、処理を終了する。
(1)Write DMA19がキャッシュメモリ11に対して誤った更新データを書き込んでしまうような場合でも、誤った更新済みデータにはBCC演算部18によって生成された正しい更新済みデータのBCCが付加されている。従って、例えばCRCチェッカー20が、誤った更新済みデータについてのCRCチェックを行うことによって、CRCエラーとなり、該更新済みデータが誤ったデータであることを検出することができる。(2)BCC演算部18が誤ったBCCを生成し、Write DMA19がキャッシュメモリ11に対して正しい更新データと上記誤ったBCCとを書き込んだ場合、更新済みデータについてのCRCチェックの結果、CRCエラーとなるため、該更新済みデータに誤ったBCCが付加されたことを検出することができる。
(3)ブロックデータの部分更新装置が、データの部分更新を行うには、元データのBCCと、更新データのBCCと、更新部分のブロックデータを読込み/書き込みすればよい。従って、キャッシュメモリ11とデータ更新回路との間のデータ転送量を少なくすることができる。
(4)前述した図14に示す従来の部分データ更新回路において必要であった更新用データバッファ26が不要となる。
以下に、本発明の実施例について説明する。図4は、本発明の実施例に係るブロックデータの部分更新装置の構成の一例を示す図である。ブロックデータの部分更新装置3は、キャッシュメモリ11、キャッシュメモリインタフェース12、Read DMA13、BIDチェッカー14、元データCRC格納部15、更新部分CRC演算部16、更新データCRC格納部17、BCC演算部18、Write DMA19、更新データパス30を備える。図4に示すブロックデータの部分更新装置3が備える構成要素のうち、図1に示すブロックデータの部分更新装置1が備える構成要素と同符号のものは、該ブロックデータの部分更新装置1が備える構成要素と同様の機能を有するので、ここでの詳細な説明は省略する。
加算回路183は、更新データCRC格納部17に格納されている更新データCRC(以下、「CRCmod 」と記述)と、Seedパラメータ格納部181に格納されているSeedパラメータとを加算(XOR演算)する。
乗算回路185は、後述するCRC生成多項式G(X)を原始多項式とした乗算回路である。乗算回路185は、加算回路183による加算結果とマスク回路184の出力とを乗算する。
加算回路186は、乗算回路185による乗算結果と更新元部分CRC演算部16によって演算された更新元部分CRCと元データCRC格納部15に格納されている元データCRC(以下、「CRCpre 」と記述)とを加算(XOR演算)して、更新済みデータCRC(以下、「CRCpost」と記述)を生成する。BID付加部187は、CRCpostに更新済みデータに対するBIDを付加する。
なお、図5(B)中のQ2 は、右詰めされた形式の更新データを示し、図5(C)中のQ2 は、データ更新位置に書き込まれた形式の更新データを示している。
G(X)=X16+X15+X11+X9 +X8 +X7 +X5 +X4 +X2 +X1 +1
ここで、一般に、CRCを生成する回路のSeed値(初期値)として、以下の式(1)のように表記されるS(X)を定義する。
CRC=(S(X)×X4096+P(X)×X16)modG(X)・・・式(3)
また、更新データは、図5(B)または図5(C)に示すQ2 であることから、式(4)中のP2 (X)をQ2 (X)で置き換えることによって、更新済みデータCRC(CRCpost)は、以下の式(5)のように表現される。
図5(B)に示すように、更新データQ2 が右詰めされた形式である場合、CRCmod は、以下のように表現される。
CRCmod =(S(X)×X4096+Q2 (X)×X16)modG(X)・・・式(6)
上記式(4)と式(6)とを用いて、式(5)に示すCRCpostを以下の式(8)に書き換えることができる。下記の式(8)において、+、−はXOR演算を示している。
ここで、前述したSeedパラメータ(SEED)は、以下の式で定義される。
SEED=(S(X)×X4096)modG(X) …式(7)
また、前述した更新位置パラメータF(m)は、以下の式(9)で定義される。
また、更新元部分CRC演算部16が算出するCRCpartは、以下のように表現することができる。
CRCpart=(P2 (X)×X16×F(m))modG(X)・・・式(10)
式(10)は、前述した式(3)においてSeed値=0として、P2 (X)についてCRC生成の演算を行い、F(m)で乗算することによってCRCpartが算出されることを示している。
CRCpost=CRCpre +CRCpart+((CRCmod +SEED)×F(m))modG(X)・・・式(11)
図5(C)に示すように、更新データQ2 がデータ更新位置に書き込まれた形式である場合、CRCmod は、以下のように表現される。
前述した式(4)、式(7)、式(9)、式(10)、式(12)を用いて、式(5)に示すCRCpostを以下の式(13)に書き換えることができる。
まず、Read DMA13が、キャッシュメモリ11から、元データのBLK4,3,2とBCCとを読み込む(ステップS21)。次に、BIDチェッカー14が、ステップS21において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS22)。
更新元部分CRC演算部16が、ステップS21において読み込まれた元データのBLK4,3,2のデータに基づいて、CRCpartを算出し、算出したCRCpartをCRCpartレジスタに格納する(ステップS23)。ステップS23において、更新元部分CRC演算部16は、前述した式(3)に従って、Seed値=0としてBLK4,3,2のデータについてCRC生成の演算を行い、更新位置パラメータF(2)で乗算する演算を行う。より具体的には、更新元部分CRC演算部16は、P2 (X)をBLK4,3,2のデータの関数表現、F(m)をF(2)として、式(10)に従ってCRCpartを算出する。
BCC演算部18のBID付加部187が、ステップS29において算出されたCRCpostにBIDを付加して、更新済みデータのBCCを生成する(ステップS30)。Write DMA19が、Read DMA13から送信された更新データのBLK2,1,0をキャッシュメモリ11に格納されている元データのBLK4,3,2に上書きするとともに、更新済みデータに上記ステップS30において生成された更新済みデータのBCCを付加して(ステップS31)、処理を終了する。
更新元部分CRC演算部16が、ステップS41において読み込まれた元データのBLK4,3,2のデータに基づいて、CRCpartを算出し、算出したCRCpartをCRCpart レジスタに格納する(ステップS43)。ステップS43において、更新元部分CRC演算部16は、前述した式(3)に従って、Seed値=0としてBLK4,3,2のデータについてCRC生成の演算を行い、更新位置パラメータF(2)で乗算する演算を行う。より具体的には、更新元部分CRC演算部16は、P2 (X)をBLK4,3,2のデータの関数表現、F(m)をF(2)として、式(10)に従ってCRCpartを算出する。
BCC演算部18が、ステップS48における乗算結果と、ステップS43においてCRCpartレジスタに格納されたCRCpartと、ステップS44において元データCRC格納部15に格納されたCRCpre とを加算して、CRCpostを算出する(ステップS49)。すなわち、BCC演算部18は、前述した式(13)に従って、CRCpostを算出する。
BCC演算部18のBID付加部187が、ステップS49において算出されたCRCpostにBIDを付加して、更新済みデータのBCCを生成する(ステップS50)。Write DMA19が、Read DMA13から送信された更新データのBLK4,3,2をキャッシュメモリ11に格納されている元データのBLK4,3,2に上書きするとともに、更新済みデータに上記ステップS50において生成された更新済みデータのBCCを付加して(ステップS51)、処理を終了する。
また、本発明によれば、元データに誤った更新データを上書きしてしまっても、本発明によって生成された正しい更新済みデータのチェックコードに基づいて、該更新済みデータが誤ったデータであることを検出することができる。
また、本発明によれば、正しい更新済みデータに誤ったチェックコードが付加された場合であっても、該チェックコードの正当性のチェックを通じて、更新済みデータに誤ったチェックコードが付加されたことを検出することができる。
11、21 キャッシュメモリ
12、22 キャッシュメモリインタフェース
13、23 Read DMA
14 BIDチェッカー
15 元データCRC格納部
16 更新部分CRC演算部
17 更新データCRC格納部
18、27 BCC演算部
19、28 Write DMA
20 CRCチェッカー
24 BCCチェッカー
25 バッファコントローラ
26 更新用データバッファ
30 更新データパス
181 Seedパラメータ格納部
182 更新位置パラメータ格納部
183、186 加算回路
184 マスク回路
185 乗算回路
187 BID付加部
Claims (6)
- チェックコードで保護されたブロックデータの部分更新装置であって、
チェックコードを生成するチェックコード生成手段と、
更新対象となる元データD1の更新される部分のブロックデータBD1上に更新ブロックデータBD2を書き込んで、更新済みデータD2に更新し、該更新済みデータD2に上記チェックコード生成手段で生成されたチェックコードを付加するデータ更新手段とを備え、
上記チェックコード生成手段は、
更新対象となる元データD1とそのチェックコードBCC1を格納した領域から、更新される部分のブロックデータBD1と、更新対象となる元データD1のチェックコードBCC1を読み取る手段と、
上記更新される部分のブロックデータBD1のチェックコードBCCD1を生成する手段と、
上記更新対象となる元データD1を更新する更新ブロックデータBD2と、そのチェックコードBCCD2を読み込む手段と、
上記更新ブロックデータBD2のチェックコードBCCD2と、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1とから、更新済みデータD2のチェックコードBCC2を生成する手段とを備えることを特徴とするブロックデータの部分更新装置。 - 上記更新済みデータD2のチェックコードBCC2を生成する手段が、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1と、更新ブロックデータBD2が上記元データD1に対する書き込み位置にあるか否かに応じて決まる更新ブロックデータBD2のチェックコードBCCD2とに基づいて、上記更新済みデータD2のチェックコードBCC2を生成する
ことを特徴とする請求項1に記載のブロックデータの部分更新装置。 - チェックコードで保護されたブロックデータの部分更新方法であって、
更新対象となる元データD1とそのチェックコードBCC1を格納した領域から、更新される部分のブロックデータBD1と、更新対象となる元データD1のチェックコードBCC1を読み取るステップと、
上記更新される部分のブロックデータBD1のチェックコードBCCD1を生成するステップと、
上記更新対象となる元データD1を更新する更新ブロックデータBD2と、そのチェックコードBCCD2を読み込むステップと、
上記更新ブロックデータBD2のチェックコードBCCD2と、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1とから、更新済みデータD2のチェックコードBCC2を生成するステップと、
上記元データD1の更新される部分のブロックデータBD1上に上記更新ブロックデータBD2を書き込んで、更新済みデータD2に更新し、該更新済みデータD2に上記チェックコードBCC2を付加するステップとからなる
ことを特徴とするブロックデータの部分更新方法。 - 上記更新済みデータD2のチェックコードBCC2を生成するステップが、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1と、更新ブロックデータBD2が上記元データD1に対する書き込み位置にあるか否かに応じて決まる更新ブロックデータBD2のチェックコードBCCD2とに基づいて、上記更新済みデータD2のチェックコードBCC2を生成する
ことを特徴とする請求項3に記載のブロックデータの部分更新方法。 - チェックコードで保護されたブロックデータの部分更新プログラムであって、
コンピュータに、
更新対象となる元データD1とそのチェックコードBCC1を格納した領域から、更新される部分のブロックデータBD1と、更新対象となる元データD1のチェックコードBCC1を読み取る処理と、
上記更新される部分のブロックデータBD1のチェックコードBCCD1を生成する処理と、
上記更新対象となる元データD1を更新する更新ブロックデータBD2と、そのチェックコードBCCD2を読み込む処理と、
上記更新ブロックデータBD2のチェックコードBCCD2と、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1とから、更新済みデータD2のチェックコードBCC2を生成する処理と、
上記元データD1の更新される部分のブロックデータBD1上に上記更新ブロックデータBD2を書き込んで、更新済みデータD2に更新し、該更新済みデータD2に上記チェックコードBCC2を付加する処理とを実行させる
ことを特徴とするブロックデータの部分更新プログラム。 - 上記更新済みデータD2のチェックコードBCC2を生成する処理が、上記元データD1のチェックコードBCC1と、更新される部分のブロックデータBD1のチェックコードBCCD1と、更新ブロックデータBD2が上記元データD1に対する書き込み位置にあるか否かに応じて決まる更新ブロックデータBD2のチェックコードBCCD2とに基づいて、上記更新済みデータD2のチェックコードBCC2を生成する
ことを特徴とする請求項5に記載のブロックデータの部分更新プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006347230A JP4859658B2 (ja) | 2006-12-25 | 2006-12-25 | ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006347230A JP4859658B2 (ja) | 2006-12-25 | 2006-12-25 | ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2008158832A JP2008158832A (ja) | 2008-07-10 |
| JP4859658B2 true JP4859658B2 (ja) | 2012-01-25 |
Family
ID=39659664
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006347230A Expired - Fee Related JP4859658B2 (ja) | 2006-12-25 | 2006-12-25 | ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4859658B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102653845B1 (ko) * | 2018-12-03 | 2024-04-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04311217A (ja) * | 1991-04-09 | 1992-11-04 | Toshiba Corp | 外部記憶制御装置 |
| JPH04311218A (ja) * | 1991-04-09 | 1992-11-04 | Toshiba Corp | 外部記憶制御装置 |
| JPH06202967A (ja) * | 1993-01-06 | 1994-07-22 | Nec Corp | 入出力制御装置 |
| JP2000105675A (ja) * | 1998-09-29 | 2000-04-11 | Nec Corp | ディスクアレイ装置 |
-
2006
- 2006-12-25 JP JP2006347230A patent/JP4859658B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2008158832A (ja) | 2008-07-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN103164298B (zh) | 产生用于奇偶校验扇区的数据通路保护的冗余的数据存储装置 | |
| KR101730510B1 (ko) | 메타데이터 태그를 통한 불규칙적인 패리티 분포 검출 | |
| KR101905280B1 (ko) | 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템 | |
| US6651212B1 (en) | Recording/reproduction device, semiconductor memory, and memory card using the semiconductor memory | |
| US9377960B2 (en) | System and method of using stripes for recovering data in a flash storage system | |
| US20140068208A1 (en) | Separately stored redundancy | |
| KR20090028507A (ko) | 비휘발성 메모리 에러 보정 시스템 및 방법 | |
| CN101868830A (zh) | 容错非易失性集成电路存储器 | |
| CN101512491A (zh) | 电力安全磁盘存储装置、系统和方法 | |
| US7418645B2 (en) | Error correction/detection code adjustment for known data pattern substitution | |
| CN101388256B (zh) | 用于一存储器元件产生一低级错误更正码的控制器及方法 | |
| CN101256803B (zh) | 错误校正设备和记录及再现设备 | |
| WO2024098885A1 (zh) | 一种磁盘阵列写处理方法、装置、设备及介质 | |
| JP4859658B2 (ja) | ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム | |
| CN114625563B (zh) | Ssd的数据保护方法、装置、可读存储介质及电子设备 | |
| CN104021806A (zh) | 一种数据处理的方法和设备 | |
| CN101273573B (zh) | 数据解扰装置及数据解扰方法 | |
| CN104681095A (zh) | 储存装置及其操作方法 | |
| WO2007088597A1 (ja) | エラー訂正コード生成方法及びメモリ管理装置 | |
| TWI575529B (zh) | 促進資料儲存系統中的錯誤校正的方法及其資料儲存系統 | |
| CN119440901B (zh) | 数据的管理方法、电子设备以及存储介质 | |
| TW200832367A (en) | Decoding apparatus and method | |
| JP2010140261A (ja) | 情報処理装置、エラー訂正方法及びプログラム | |
| TWI273775B (en) | Method for generating syndrome value and related syndrome generator | |
| CN120526833A (zh) | 一种内存的编解码方法、装置、电子设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090907 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111101 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111101 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4859658 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141111 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |