Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4859658B2 - ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム - Google Patents
[go: Go Back, main page]

JP4859658B2 - ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム - Google Patents

ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム Download PDF

Info

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
Application number
JP2006347230A
Other languages
English (en)
Other versions
JP2008158832A (ja
Inventor
貞之 大山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006347230A priority Critical patent/JP4859658B2/ja
Publication of JP2008158832A publication Critical patent/JP2008158832A/ja
Application granted granted Critical
Publication of JP4859658B2 publication Critical patent/JP4859658B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ブロックデータの部分更新技術に関し、特に、ブロックデータを部分更新する際のチェックコードを生成するブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラムに関する。
RAID装置は、LBA単位(512バイト(byte))のブロックデータで、ユーザデータを管理し、HDD(Hard Disk Drive)にRead(読み込み)/Write(書き込み)を行っている。
図12は、RAID装置が管理するユーザデータのフォーマット例を示す図である。RAID装置内部では、ユーザデータの信頼性を高めるために、図12(A)に示すように、512バイトのユーザデータに8バイトのBCC(Block Check Code)を付加しており、該BCCに基づいて、装置内部やHDD内部でのデータ化けが容易に検出できるようになっている。
上記8バイトのBCCは、6バイトのBID(Block ID)と、2バイトのブロックチェックコードであるCRCとから構成される。BIDは、ブロックを一意に識別する識別子である。
Mainframe系のシステムの場合は、可変長なCKDフォーマットで構成されているため、図12(B)、図12(C)に示すように、512バイトのLBAの中にCount,Key,Dataの3つの可変長フィールドを64バイトの境界で敷き詰めている。このため、Cout,Key,Dataの一部のフィールド(Field)を更新する場合、更新したLBAのBCC(BID+CRC)を更新する必要がある。
MainFrame系のデータを更新する場合、データの信頼性を持たせるため、更新対象となる元データだけでなく、更新ブロックデータ(更新データ)についてもCRCを付加している。更新データの形式の例を以下に示す。
1.ブロックデータ全体を更新対象とする更新データの形式
512バイトのブロックデータ全体を更新対象とする場合、BCCも含めたLBA単位で更新データを書き込むことによって、データ更新を行う。
2.ブロックデータを部分更新する場合の更新データの形式
(1)更新データが右詰めされた形式
更新データが右詰めされた形式とは、図13(A)に示すように、更新データを右詰めして、非更新部分を0詰めしたフォーマットである。元データを更新する場合には、更新対象となる元データ上に、更新データを所定の位置まで左シフトして書き込む。この時、元データのBCC(BID+CRC)を更新する必要がある。
(2)更新データがデータ更新位置(元データに対する書き込み位置)に書き込まれた形式
更新データがデータ更新位置に書き込まれた形式とは、図13(B)に示すように、更新データがデータ更新位置に書き込まれ、非更新部分を0詰めしたフォーマットである。元データを更新する場合には、元データ上に該データ更新位置にある更新データをそのまま書き込む。この時、元データのBCC(BID+CRC)を更新する必要がある。
従来、図14に示すような部分データ更新回路によってブロックデータを部分更新していた。図14に示す部分データ更新回路は、ユーザデータを格納するキャッシュメモリ21と、キャッシュメモリ21に対するデータの読込み/書き込みを媒介するキャッシュメモリインタフェース22と、キャッシュメモリ21から元データと更新データとを読み込むRead DMA23と、元データおよび更新データのBCCのチェックを行うBCCチェッカー24と、元データの上に更新データを書き込んで更新済みデータに更新し、該更新済みデータを更新用データバッファ26に格納するバッファコントローラ25と、更新済みデータが格納される更新用データバッファ26と、更新用データバッファ26に格納された更新済みデータのBCCを生成して該更新済みデータに付加するBCC演算部27と、BCCが付加された更新済みデータをキャッシュメモリに書き込むWrite DMA28とを備える。
図14に示す部分データ更新回路は、例えば以下の[1]〜[8]までの手順に従ってブロックデータの部分更新処理を行う。なお、Mainframe系のシステムに対応するユーザデータのフォーマットに従うと、64バイト単位でデータ更新がされるため、この例では、更新ブロック位置を指定しやすいように、図15に示すように、各々が64バイトのBLK0〜BLK7までの8個のサブブロック(Sub−block)でユーザデータを表記する。
例えば、更新対象となる元データのBLK4,3,2を更新データで更新する場合、図14に示す部分データ更新回路は、以下の手順で該更新処理を行う。
[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のデータ)を格納する。
[7]BCC演算部27が、更新用データバッファ26に格納されたユーザデータ(更新済みデータ)に基づいてBCC(CRC+BID)を生成し、生成されたBCCを更新済みデータに付加する。
[8]Write DMA28が、上記手順[7]においてBCCが付加された更新済みデータをキャッシュメモリ21に書き込む。
なお、従来のデータ更新に関する具体的技術として、下記の特許文献1に、書き込みデータ中の更新データからチェックコードを生成し、生成されたチェックコードと書き込みデータ中のチェックコードとの比較結果に基づいて、書き込みデータをディスク部に書き込むディスクアレイ装置に関して記載されている。
特開2000−105675号公報
上述した図14に示す従来の部分データ更新回路では、BCCチェッカー24によって元データおよび更新データのBCCを削除し、該BCCが削除された元データを更新データで更新した上で、更新済みデータについてのBCCをBCC演算部27によって生成する。すなわち、従来の部分データ更新回路では、データの更新回路とBCCの演算回路とが分離されていない。
従って、BCCチェッカー24によってユーザデータのBCCが削除されてからBCC演算部27によって更新済みデータについてのBCCが生成されるまでの間の処理(元データの更新用データバッファ26への格納処理および更新データの元データ上への書き込み処理)におけるデータ化けを検出することが困難である。
該データ化けを検出するために、例えばBCCチェッカー24とバッファコントローラ25との間のデータパス、バッファコントローラ25と更新用データバッファ26との間のデータパスにパリティ(Parity)を付加することが考えられる。しかし、更新用データバッファ26のアドレス化け等により、更新用データバッファ26に対して誤ったデータが書き込まれた場合、BCC演算部27は、誤ったデータに対して正当なBCCを付加してしまい、RAID装置の信頼性が低下しまう恐れがある。
本発明は上記問題点を解決するためになされたものであって、誤った更新済みデータに正しいBCCを付加することを防止するブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラムの提供を目的とする。
上記課題を解決するため、本発明においては、データの更新回路とBCCの演算回路とが分離されたブロックデータの部分更新装置を設ける。
すなわち、本発明は、次のようにして前記課題を解決する。
(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を生成する。
本発明のブロックデータの部分更新装置においては、更新済みデータのチェックコードを演算する回路と、データの更新回路とが分離されている。従って、本発明によれば、誤った更新済みデータに正しいBCCを付加することを防止することが可能となる。
また、本発明によれば、元データに誤った更新データを上書きしてしまっても、本発明によって生成された正しい更新済みデータのチェックコードに基づいて、該更新済みデータが誤ったデータであることを検出することができる。
また、本発明によれば、正しい更新済みデータに誤ったチェックコードが付加された場合であっても、該チェックコードの正当性のチェックを通じて、正しい更新済みデータに誤ったチェックコードが付加されたことを検出することができる。
図1は、本発明のブロックデータの部分更新装置の構成の一例を示す図である。ブロックデータの部分更新装置1は、ブロックデータを部分更新する処理装置である。ブロックデータの部分更新とは、ブロックデータの一部を更新することをいう。例えば、ブロックデータの部分更新装置1は、ホストコンピュータ(図示を省略)からのブロックデータの部分更新要求を受けて、該ブロックデータの部分更新を行う。
ブロックデータの部分更新装置1は、キャッシュメモリ11、キャッシュメモリインタフェース12、Read DMA13、BIDチェッカー14、元データCRC格納部15、更新部分CRC演算部16、更新データCRC格納部17、BCC演算部18、Write DMA19、CRCチェッカー20、更新データパス30を備える。
図1の点線で囲った部分に示すように、BIDチェッカー14、元データCRC格納部15、更新部分CRC演算部16、更新データCRC格納部17、BCC演算部18が、BCCの演算回路を構成し、Read DMA13、更新データパス30、Write DMA19が、データの更新回路を構成する。
キャッシュメモリ11にはユーザデータが格納される。キャッシュメモリインタフェース12は、キャッシュメモリ11に対するデータの読込み/書き込みを媒介する。Read DMA13は、キャッシュメモリ11から元データと更新データとを読み込む。また、Read DMA13は、読み込んだ更新データを更新データパス30を通じてWrite DMA19に送信する。
BIDチェッカー14は、元データおよび更新データのBCC内部のBIDの正当性のチェックを行う。
元データCRC格納部15には、元データのCRC(元データCRC)が格納される。更新元部分CRC演算部16は、元データのうち更新される部分のブロックデータに基づいて、更新元部分CRCを演算して生成する。更新元部分CRCとは、元データのうち更新される部分のブロックデータのCRCである。更新データCRC17には、更新データのCRC(更新データCRC)が格納される。
BCC演算部18は、元データCRC格納部15に格納された元データCRCと、更新元部分CRC演算部16によって生成された更新元部分CRCと、更新データCRC格納部17に格納された更新データCRCとに基づいて、更新済みデータのCRC(更新済みデータCRC)を演算して生成する。更新済みデータとは、元データの更新される部分が更新データによって上書きされた結果得られるデータである。また、BCC演算部18は、生成されたCRCにBIDを付加して更新済みデータのBCCを生成する。
Write DMA19は、Read DMA13から受信した更新データとBCC演算部18によって生成された更新済みデータのBCCとをキャッシュメモリ11に格納されている元データに上書きする。
CRCチェッカー20は、キャッシュメモリ11に格納されているユーザデータのCRCの正当性をチェックする。本発明の一実施例によれば、ブロックデータの部分更新装置1が、ブロックデータの部分更新の結果をホストコンピュータ(図示を省略)に返す際に用いるインタフェースカード(図示を省略)に、ユーザデータのCRCの正当性をチェックする機能を備えたチップを備えるようにしてもよい。
なお、上述したブロックデータの部分更新装置1及びその各部の機能は、CPUとその上で実行されるプログラムにより実現される。本発明を実現するプログラムは、コンピュータが読み取り可能な記録媒体、例えば半導体メモリ、ハードディスク、CD−ROM、DVD等に格納することができ、これらの記録媒体に記録して提供され、又は、通信インタフェースを介してネットワークを利用した送受信により提供される。
図2は、本発明のブロックデータの部分更新処理フローの一例を示す図である。この例では、ユーザデータを、前述した図15に示すようなBLK0〜BLK7までの8個のサブブロックで表記する。また、図2に示す処理フローでは、元データのBLK4,3,2を、データ更新位置(BLK4,3,2)に書き込まれた形式の更新データで更新する処理を例にとって説明する。
まず、Read DMA13が、キャッシュメモリ11から、元データのBLK4、3、2とBCCとを読み込む(ステップS1)。次に、BIDチェッカー14が、ステップS1において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS2)。
更新元部分CRC演算部16が、ステップS1において読み込まれた元データのBLK4,3,2のデータに基づいて、更新元部分CRCを生成する(ステップS3)。Read DMA13が、ステップS1において読み込まれたBCCの内部のCRCを元データCRCとして元データCRC格納部15に格納する(ステップS4)。
次に、Read DMA13が、キャッシュメモリ11から更新データのBLK4,3,2とBCCとを読み込み、更新データのBLK4,3,2をWrite DMA19に送信する(ステップS5)。そして、BIDチェッカー14が、上記ステップS5において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS6)。また、Read DMA13が、上記ステップS5において読み込まれたBCCの内部のCRCを更新データCRCとして更新データCRC格納部17に格納する(ステップS7)。 BCC演算部18が、元データCRC格納部15に格納された元データCRCと、更新元部分CRC演算部16によって生成された更新元部分CRCと、更新データCRC格納部17に格納された更新データCRCとに基づいて、更新済みデータCRCを演算して生成し、生成された更新済みデータCRCにBIDを付加して、更新済みデータのBCCを生成する(ステップS8)。
そして、Write DMA19が、Read DMA13から送信された更新データのBLK4,3,2をキャッシュメモリ11に格納されている元データのBLK4,3,2に上書きするとともに、該更新データの上書き後の更新済みデータに上記ステップS8において生成された更新済みデータのBCCを付加して(ステップS9)、処理を終了する。
図3は、本発明のブロックデータの部分更新処理フローの他の例を示す図である。図2に示す処理フローでは、図15に示すフォーマットを有する元データのBLK4,3,2を、右詰めされた形式の更新データ(BLK2,1,0の更新データ)で更新する処理を例にとって説明する。
まず、Read DMA13が、キャッシュメモリ11から、元データのBLK4,3,2とBCCとを読み込む(ステップS11)。次に、BIDチェッカー14が、ステップS1において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS12)。
更新元部分CRC演算部16が、ステップS11において読み込まれた元データのBLK4,3,2のデータに基づいて、更新元部分CRCを生成する(ステップS13)。Read DMA13が、ステップS11において読み込まれたBCCの内部のCRCを元データCRCとして元データCRC格納部15に格納する(ステップS14)。
次に、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)。
BCC演算部18が、元データCRC格納部15に格納された元データCRCと、更新元部分CRC演算部16によって生成された更新元部分CRCと、更新データCRC格納部17に格納された更新データCRCとに基づいて、更新済みデータCRCを演算して生成し、生成された更新済みデータCRCにBIDを付加して、更新済みデータのBCCを生成する(ステップS18)。
そして、Write DMA19が、Read DMA13から送信された更新データのBLK2,1,0をキャッシュメモリ11に格納されている元データのBLK4,3,2に上書きするとともに、該更新データの上書き後の更新済みデータに上記ステップS18において生成された更新済みデータのBCCを付加して(ステップS19)、処理を終了する。
前述した図1に示す本発明のブロックデータの部分更新装置1では、データの更新回路と、BCCの計算回路とが分離されている。従って、図1に示す本発明のブロックデータの部分更新装置1が、上記図2または図3に示す処理フローに従ってブロックデータの部分更新処理を行うことにより、データ信頼性に対して以下のような効果がある。
(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が備える構成要素と同様の機能を有するので、ここでの詳細な説明は省略する。
更新元部分CRC演算部16は、元データのうち更新される部分のデータと、更新位置パラメータ格納部182に格納された更新位置パラメータ(F(m))とに基づいて、後述する式(10)に従って、更新元部分CRC(以下、「CRCpart」と記述)を算出する。算出されたCRCpartは、更新元部分CRC演算部16内のCRCpartレジスタ(図示を省略)に格納される。上記更新位置パラメータ(F(m))は、上記更新される部分の先頭のブロック位置(更新開始ブロック位置)であるmに対応するパラメータである。更新位置パラメータ(F(m))を示す式については、後述する。
BCC演算部18は、Seedパラメータ格納部181、更新位置パラメータ格納部182、加算回路183、186、マスク回路184、乗算回路185、BID付加部187を備える。Seedパラメータ格納部181には、Seedパラメータ(SEED)が予め格納されている。SEEDとは、後述するSeed値で決まる定数である。SEEDを示す式については後述する。更新位置パラメータ格納部182には、更新位置パラメータ(F(m))が予め格納されている。
加算回路183は、更新データCRC格納部17に格納されている更新データCRC(以下、「CRCmod 」と記述)と、Seedパラメータ格納部181に格納されているSeedパラメータとを加算(XOR演算)する。
マスク回路184は、更新位置パラメータ格納部182から更新位置パラメータを読み出して出力する。更新データが右詰めされた形式である場合、マスク回路184は、更新位置パラメータ格納部182から読み出した更新位置パラメータをそのまま出力する。更新データがデータ更新位置に書き込まれた形式である場合、マスク回路184は、値「1」を出力する。
乗算回路185は、後述するCRC生成多項式G(X)を原始多項式とした乗算回路である。乗算回路185は、加算回路183による加算結果とマスク回路184の出力とを乗算する。
加算回路186は、乗算回路185による乗算結果と更新元部分CRC演算部16によって演算された更新元部分CRCと元データCRC格納部15に格納されている元データCRC(以下、「CRCpre 」と記述)とを加算(XOR演算)して、更新済みデータCRC(以下、「CRCpost」と記述)を生成する。BID付加部187は、CRCpostに更新済みデータに対するBIDを付加する。
本発明の実施例における、CRCpostの生成処理の例について、以下に説明する。この例では、ユーザデータは、前述した図15に示すような、各々が64バイトのBLK0〜BLK7までの8個のサブブロックで表記されるものとする。また、ブロックデータの部分更新装置3は、図5(A)に示す元データの更新される部分のデータであるP2 を、図5(B)または図5(C)に示す更新データであるQ2 で更新するものとする。図5(A)において、P2 は、更新される部分であるBLKmからBLKn−1までのサブブロックに格納されている。また、P1 およびP3 は、元データにおける更新されない部分のデータである。
なお、図5(B)中のQ2 は、右詰めされた形式の更新データを示し、図5(C)中のQ2 は、データ更新位置に書き込まれた形式の更新データを示している。
以下、ブロックデータの部分更新装置3が処理する各データを多項式表記で表示する。本発明の実施例においては、以下のように定義される、ANSI T10のCRC演算の生成多項式G(X)を用いる。
G(X)=X16+X15+X11+X9 +X8 +X7 +X5 +X4 +X2 +X1 +1
ここで、一般に、CRCを生成する回路のSeed値(初期値)として、以下の式(1)のように表記されるS(X)を定義する。
Figure 0004859658
ユーザデータP(X)を、上記式(2)と表記すると、CRCを生成する回路によって生成されるCRCは、以下の(3)式のように表現することができる。
CRC=(S(X)×X4096+P(X)×X16)modG(X)・・・式(3)
図6は、上記式(3)に従うCRCの算出処理を説明する図である。一般に、CRCを生成する回路は、図6(A)に示すユーザデータP(X)に16ビット(2バイト)の空の領域を付加するとともに、S(X)を512バイトのデータの先頭にシフトする。そして、CRCを生成する回路は、図6(B)に示すように、P(X)に16ビットの空の領域が付加されたデータとS(X)が512バイトの先頭にシフトされたデータとを加算して、図6(C)に示すような、S(X)とP(X)とが512バイトの領域に格納され、該512バイトの領域に16ビットの空の領域が付加されたデータを生成する。そして、CRCを生成する回路は、図6(D)に示すように、図6(C)に示すデータをG(X)で割って、その余りをCRCとして算出する。算出されたCRCは、図6(E)に示すように、P(X)に付加されていた16ビットの空の領域に格納される。
本発明の実施例において、前述した図5(A)に示す元データのP1 ,P2 ,P3 と、図5(B)または図5(C)に示す更新データQ2 をそれぞれP1 (X),P2 (X),P3 (X),Q2 (X)と関数表現すると、元データCRC格納部15に格納される元データCRC(CRCpre )は、以下の式(4)のように表現される。
Figure 0004859658
図7は、上記式(4)に従うCRCpre の算出処理を説明する図である。まず、図7(A)に示すような、元データのうち更新される部分のデータP2 、更新されない部分のデータP1 、P3 からなるユーザデータに16ビット(2バイト)の空の領域を付加するとともに、S(X)を512バイトのデータの先頭にシフトする。そして、図7(B)に示すように、ユーザデータに16ビットの空の領域が付加されたデータとS(X)が512バイトの先頭にシフトされたデータとを加算して、図7(C)に示すような、S(X)とP1 、P2 、P3 とが512バイトの領域に格納され、該512バイトの領域に16ビットの空の領域が付加されたデータを生成する。そして、図7(D)に示すように、図7(C)に示すデータをG(X)で割って、その余りをCRCpre として算出する。
また、更新データは、図5(B)または図5(C)に示すQ2 であることから、式(4)中のP2 (X)をQ2 (X)で置き換えることによって、更新済みデータCRC(CRCpost)は、以下の式(5)のように表現される。
Figure 0004859658
次に、更新データCRC格納部17に格納されている更新データCRC(CRCmod )について説明する。CRCmod を表現する式は、更新データが右詰めされた形式であるか、更新データがデータ更新位置に書き込まれた形式であるかによって異なる。
図5(B)に示すように、更新データQ2 が右詰めされた形式である場合、CRCmod は、以下のように表現される。
CRCmod =(S(X)×X4096+Q2 (X)×X16)modG(X)・・・式(6)
図8は、上記式(6)に従うCRCmod の算出処理を説明する図である。まず、図8(A)に示す更新データQ2 に16ビット(2バイト)の空の領域を付加するとともに、S(X)を512バイトのデータの先頭にシフトする。そして、図8(B)に示すように、Q2 に16ビットの空の領域が付加されたデータとS(X)が512バイトの先頭にシフトされたデータとを加算して、図8(C)に示すような、S(X)とQ2 とが512バイトの領域に格納され、該512バイトの領域に16ビットの空の領域が付加されたデータを生成する。そして、図8(D)に示すように、図8(C)に示すデータをG(X)で割って、その余りをCRCmod として算出する。
上記式(4)と式(6)とを用いて、式(5)に示すCRCpostを以下の式(8)に書き換えることができる。下記の式(8)において、+、−はXOR演算を示している。
ここで、前述したSeedパラメータ(SEED)は、以下の式で定義される。
SEED=(S(X)×X4096)modG(X) …式(7)
また、前述した更新位置パラメータF(m)は、以下の式(9)で定義される。
Figure 0004859658
本発明の実施例においては、ユーザデータが、BLK0〜BLK7までの8個のサブブロックで表記されることから、更新開始ブロック位置mは、0〜7までの値をとり、F(m)は、該更新開始ブロック位置mに対応するパラメータとなる。
また、更新元部分CRC演算部16が算出するCRCpartは、以下のように表現することができる。
CRCpart=(P2 (X)×X16×F(m))modG(X)・・・式(10)
式(10)は、前述した式(3)においてSeed値=0として、P2 (X)についてCRC生成の演算を行い、F(m)で乗算することによってCRCpartが算出されることを示している。
従って、前述した式(8)で表現されるCRCpostは、式(9)で定義されるF(m)と、式(10)に示されるCRCpartと、式(7)で定義されるSEEDとを用いて、以下の式(11)に書き換えることができる。
CRCpost=CRCpre +CRCpart+((CRCmod +SEED)×F(m))modG(X)・・・式(11)
図5(C)に示すように、更新データQ2 がデータ更新位置に書き込まれた形式である場合、CRCmod は、以下のように表現される。
Figure 0004859658
図9は、上記式(12)に従うCRCmod の算出処理を説明する図である。まず、図9(A)に示す、データ更新位置(BLKm〜BLKn−1)にある更新データQ2 に16ビット(2バイト)の空の領域を付加するとともに、S(X)を512バイトのデータの先頭にシフトする。そして、図9(B)に示すように、Q2 に16ビットの空の領域が付加されたデータとS(X)が512バイトの先頭にシフトされたデータとを加算して、図9(C)に示すような、S(X)とQ2 とが512バイトの領域に格納され、該512バイトの領域に16ビットの空の領域が付加されたデータを生成する。そして、図9(D)に示すように、図9(C)に示すデータをG(X)で割って、その余りをCRCmod として算出する。
前述した式(4)、式(7)、式(9)、式(10)、式(12)を用いて、式(5)に示すCRCpostを以下の式(13)に書き換えることができる。
Figure 0004859658
上記式(13)は、式(11)の右辺の第3項におけるF(m)をF(0)=1としたときの計算と同値である。従って、式(11)で示される、更新データQ2 が右詰めされた形式である場合のCRCpostと、式(13)で示される、更新データQ2 がデータ更新位置に書き込まれた形式である場合のCRCpostは、マスク回路184の出力する値を「1」とすれば、一つのBCCの演算回路で算出することができる。
図10は、更新データが右詰めされた形式である場合の、ブロックデータの部分更新処理フローの例を示す図である。図10に示す処理フローでは、図15に示すようなフォーマットを有する元データのBLK4,3,2を、BLK2,1,0に書き込まれた形式の更新データで更新する処理を例にとって説明する。
まず、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を算出する。
次に、Read DMA13が、ステップS21において読み込まれたBCCの内部のCRCをCRCpre として元データCRC格納部15に格納する(ステップS24)。 次に、Read DMA13が、キャッシュメモリ11から更新データのBLK2,1,0とBCCとを読み込み、更新データのBLK2,1,0をWrite DMA19に送信する(ステップS25)。そして、BIDチェッカー14が、上記ステップS25において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS26)。また、Read DMA13が、上記ステップS25において読み込まれたBCCの内部のCRCをCRCmod として更新データCRC格納部17に格納する(ステップS27)。 BCC演算部18が、更新データCRC格納部17に格納されたCRCmod にSEEDを加算(XOR)した後、マスク回路184から出力される更新位置パラメータF(2)を乗算する(ステップS28)。
BCC演算部18が、ステップS28における乗算結果と、ステップS23においてCRCpartレジスタに格納されたCRCpartと、ステップS24において元データCRC格納部15に格納されたCRCpre とを加算して、CRCpostを算出する(ステップS29)。すなわち、BCC演算部18は、前述した式(11)に従って、CRCpostを算出する。
BCC演算部18のBID付加部187が、ステップS29において算出されたCRCpostにBIDを付加して、更新済みデータのBCCを生成する(ステップS30)。Write DMA19が、Read DMA13から送信された更新データのBLK2,1,0をキャッシュメモリ11に格納されている元データのBLK4,3,2に上書きするとともに、更新済みデータに上記ステップS30において生成された更新済みデータのBCCを付加して(ステップS31)、処理を終了する。
図11は、更新データがデータ更新位置に書き込まれた形式である場合の、ブロックデータの部分更新処理フローの例を示す図である。図11に示す処理フローでは、元データのBLK4,3,2を、データ更新位置(BLK4,3,2)に書き込まれた形式の更新データで更新する処理を例にとって説明する。
まず、Read DMA13が、キャッシュメモリ11から、元データのBLK4,3,2とBCCとを読み込む(ステップS41)。次に、BIDチェッカー14が、ステップS41において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS42)。
更新元部分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を算出する。
Read DMA13が、ステップS41において読み込まれたBCCの内部のCRCをCRCpre として元データCRC格納部15に格納する(ステップS44)。そして、Read DMA13が、キャッシュメモリ11から更新データのBLK4,3,2とBCCとを読み込み、更新データのBLK4,3,2をWrite DMA19に送信する(ステップS45)。そして、BIDチェッカー14が、上記ステップS45において読み込まれたBCCの内部のBIDの正当性をチェックする(ステップS46)。また、Read DMA13が、上記ステップS45において読み込まれたBCCの内部のCRCをCRCmod として更新データCRC格納部17に格納する(ステップS47)。
BCC演算部18が、更新データCRC格納部17に格納されたCRCmod にSEEDを加算(XOR)した後、マスク回路184から出力される値「1」を乗算する(ステップS48)。
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)、処理を終了する。
以上、説明したように、本発明によれば、誤った更新済みデータに正しいBCCを付加することを防止することが可能となる。
また、本発明によれば、元データに誤った更新データを上書きしてしまっても、本発明によって生成された正しい更新済みデータのチェックコードに基づいて、該更新済みデータが誤ったデータであることを検出することができる。
また、本発明によれば、正しい更新済みデータに誤ったチェックコードが付加された場合であっても、該チェックコードの正当性のチェックを通じて、更新済みデータに誤ったチェックコードが付加されたことを検出することができる。
本発明のブロックデータの部分更新装置の構成の一例を示す図である。 本発明のブロックデータの部分更新処理フローの一例を示す図である。 本発明のブロックデータの部分更新処理フローの他の例を示す図である。 本発明の実施例に係るブロックデータの部分更新装置の構成の一例を示す図である。 元データおよび更新データを示す図である。 式(3)に従うCRCの算出処理を説明する図である。 式(4)に従うCRCpre の算出処理を説明する図である。 式(6)に従うCRCmod の算出処理を説明する図である。 式(12)に従うCRCmod の算出処理を説明する図である。 更新データが右詰めされた形式である場合の、ブロックデータの部分更新処理フローの例を示す図である。 更新データがデータ更新位置に書き込まれた形式である場合の、ブロックデータの部分更新処理フローの例を示す図である。 RAID装置が管理するユーザデータのフォーマット例を示す図である。 更新データの形式の例を示す図である。 従来の部分データ更新回路を示す図である。 ユーザデータのサブブロックを示す図である。
符号の説明
1 ブロックデータの部分更新装置
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)

  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を生成する
    ことを特徴とする請求項1に記載のブロックデータの部分更新装置。
  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を生成する
    ことを特徴とする請求項3に記載のブロックデータの部分更新方法。
  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を生成する
    ことを特徴とする請求項5に記載のブロックデータの部分更新プログラム。
JP2006347230A 2006-12-25 2006-12-25 ブロックデータの部分更新装置、ブロックデータの部分更新方法、およびブロックデータの部分更新プログラム Expired - Fee Related JP4859658B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653845B1 (ko) * 2018-12-03 2024-04-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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 ディスクアレイ装置

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