JP2012099942A - 符号化・復号化装置、データ記憶装置、及び方法 - Google Patents
符号化・復号化装置、データ記憶装置、及び方法 Download PDFInfo
- Publication number
- JP2012099942A JP2012099942A JP2010244306A JP2010244306A JP2012099942A JP 2012099942 A JP2012099942 A JP 2012099942A JP 2010244306 A JP2010244306 A JP 2010244306A JP 2010244306 A JP2010244306 A JP 2010244306A JP 2012099942 A JP2012099942 A JP 2012099942A
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- decoding
- data
- check matrix
- error
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/618—Shortening and extension of codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
【課題】ハミング符号を使用する符号化・復号化処理において、入力データのパターン依存性を回避できるようにして、エラー誤検出や誤訂正の発生を抑制できる符号化・復号化装置を提供することにある。
【解決手段】実施形態によれば、符号化・復号化装置は、符号化モジュールと、復号化モジュールと、符号化・復号化操作モジュールとを具備する。符号化モジュールは、所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成する。復号化モジュールは、前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する。符号化・復号化操作モジュールは、符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を行なう。
【選択図】図1
【解決手段】実施形態によれば、符号化・復号化装置は、符号化モジュールと、復号化モジュールと、符号化・復号化操作モジュールとを具備する。符号化モジュールは、所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成する。復号化モジュールは、前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する。符号化・復号化操作モジュールは、符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を行なう。
【選択図】図1
Description
本発明の実施形態は、データ記憶装置に適用可能な符号化・復号化技術に関する。
一般的に、データ記憶装置や通信装置では、データの誤りを検出し訂正する誤り訂正機能が組み込まれている。この誤り訂正機能は、1ビット訂正可能なハミング符号(短縮化ハミング符号語)を使用する符号化・復号化方式により実現できる。
符号化・復号化方式は、情報ビット列(情報ベクトル)と生成行列とを使用してハミング符号を生成する符号化処理と、ハミング符号と生成行列に対応する検査行列(パリティ検査行列)とを使用してエラー位置を検出する復号化処理とを実行する。
情報ビット列は、データ記憶装置の場合には記録媒体(ディスクまたはメモリ)に記憶される入力データ(通信装置の場合には送信データ)に相当する。また、ハミング符号は、情報ビット列とパリティビット列(パリティデータ)とから構成される。
復号化処理は、ハミング符号からなる出力データ(通信装置の場合に受信データ)のエラー位置(エラーアドレス)を検出し、そのエラー位置を示すシンドローム(syndrome)と呼ばれるエラーデータを生成する。エラー訂正処理は、復号化処理により検出されたエラー位置のエラービットを訂正した出力データを出力する。
ハミング符号を使用する符号化・復号化方式において、検査行列(又は生成行列)は、所定の規則性を有する構成の行列である。この検査行列(又は生成行列)を使用する符号化・復号化処理において、入力データが規則性を有するビットパターンや、あるビット列の繰り返しパターンである場合に、生成されるパリティデータまたはシンドロームがオールゼロになる可能性がある。このため、出力データ(ハミング符号データ)に対して、エラーを誤って検出する誤検出や誤訂正を行なう可能性がある。
そこで、本発明の目的は、ハミング符号を使用する符号化・復号化処理において、入力データのパターン依存性を回避できるようにして、エラー誤検出や誤訂正の発生を抑制できる符号化・復号化装置を提供することにある。
実施形態によれば、符号化・復号化装置は、符号化手段と、復号化手段と、符号化・復号化操作手段とを具備する。符号化手段は、所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成する。復号化手段は、前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する。符号化・復号化操作手段は、符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を行なう。
以下図面を参照して、実施形態を説明する。
[符号化・復号化装置の構成]
図1は本実施形態の符号化・復号化装置の構成を説明するためのブロック図である。
図1は本実施形態の符号化・復号化装置の構成を説明するためのブロック図である。
本実施形態の符号化・復号化装置は、ハードディスクドライブ(HDD)やSSD(solid state drive)などのデータ記憶装置、あるいは無線通信装置などの通信装置に適用可能である。
図1に示すように、符号化・復号化装置1は、符号化・復号化モジュール10と、マルチプレクサ(MUX)11と、エラー訂正(EC)モジュール13とを有し、例えば1チップの集積回路により構成されている。符号化・復号化モジュール10は、例えばホストシステムから転送される入力データ100に対して符号化処理を実行する符号化機能を含む。一方、符号化・復号化モジュール10は、記憶デバイス12から出力される符号化データ130に対して復号化処理を実行する復号化機能を含む。
符号化・復号化モジュール10は、入力データ100の情報ビット列(ビット数k=4096)からパリティビット列(ビット数m=12)からなるパリティデータ110を生成する。マルチプレクサ11は、入力データ100の情報ビット列とパリティデータ110とから構成される符号化データ(ハミング符号)120を生成する。この符号化データ120が記憶デバイス12に記憶される。なお、入力データ100は、例えば1セクタ分(512バイト)のユーザデータに相当する。
一方、符号化・復号化モジュール10は、記憶デバイス12から出力される符号化データ(ハミング符号)130のエラー位置(エラーアドレス)を検出し、そのエラー位置を示すエラーデータ(シンドローム)140を生成する。エラー訂正モジュール13は、符号化データ130に対してエラーデータ140により示すエラー位置を訂正した出力データ200として出力する。出力データ200は、例えばホストシステムに転送されるデータまたはディスクに記憶されるデータに相当する。
[ディスクドライブの構成]
図2は、本実施形態の符号化・復号化装置1を適用するデータ記憶装置として、ハードディスクドライブ(以下、単にディスクドライブと表記する)の要部を示すブロック図である。
図2は、本実施形態の符号化・復号化装置1を適用するデータ記憶装置として、ハードディスクドライブ(以下、単にディスクドライブと表記する)の要部を示すブロック図である。
図2に示すように、ディスクドライブは大別して、ヘッド・ディスクアセンブリ(head-disk assembly:HDA)、ヘッドアンプ集積回路(以下、ヘッドアンプIC)25と、回路基板26とから構成されている。HDAは、磁気記録媒体であるディスク20と、スピンドルモータ(SPM)21と、ヘッド22を搭載しているアーム23と、ボイスコイルモータ(VCM)24とを有する。
ディスク20は、スピンドルモータ21より回転する。アーム23とVCM24は、アクチュエータを構成している。アクチュエータは、VCM24の駆動により、アーム23に搭載されているヘッド22をディスク20上の指定の位置まで移動制御する。ヘッド22は、リードヘッド素子及びライトヘッド素子を有する。リードヘッド素子は、ディスク20上に記録されているデータを読み出す。ライトヘッド素子は、ディスク20上にデータを書き込む。
ヘッドアンプIC25は、リードアンプ及びライトドライバを有する。リードアンプは、リードヘッド素子により読み出されたリード信号を増幅して、リード/ライト(R/W)チャネル27に伝送する。一方、ライトドライバは、R/Wチャネル27から出力されるライトデータに応じたライト電流をライトヘッド素子に伝送する。
回路基板26は、R/Wチャネル27と、ディスクコントローラ28と、マイクロプロセッサ(CPU)29とを含む。R/Wチャネル27は、リードデータの信号処理を実行するリードチャネルと、ライトデータの信号処理を実行するライトチャネルとを含む。CPU29は、ドライブのメインコントローラであり、ヘッド22の位置決めを行なうサーボ制御及びデータのリード/ライト制御を実行する。
ディスクコントローラ28は、ホストシステム30とR/Wチャネル27との間のデータ転送を制御するインターフェース制御を実行する。ディスクコントローラ28は、本実施形態の符号化・復号化モジュール10を主要部とする符号化・復号化装置1を含む。ディスクコントローラ28は、DRAMからなるバッファメモリ280を制御し、ホストシステム30から転送されるユーザデータまたはディスク20から読み出されたリードデータをバッファメモリ280に格納する。
なお、図1に示す記憶デバイス12は、例えばDRAMからなるバッファメモリ280に相当する。また、記憶デバイス12はディスク20に相当する。さらに、本実施形態の符号化・復号化装置1を、データ記憶装置としてSSDに適用する場合には、記憶デバイス12はバッファメモリまたはフラッシュメモリに相当する。
[符号化・復号化モジュールの構成及び符号化・復号化処理]
以下、図3から図10を参照して、本実施形態の符号化・復号化モジュール10の構成及び符号化・復号処理を具体的に説明する。
以下、図3から図10を参照して、本実施形態の符号化・復号化モジュール10の構成及び符号化・復号処理を具体的に説明する。
図3は、符号化・復号化モジュール10の符号化・復号処理で使用される検査行列(パリティ検査行列)300の転置行列の具体例を示す図である。なお、本実施形態では、検査行列の転置行列、及び符号化処理で使用される検査行列に対応する生成行列のいずれも検査行列と呼ぶ。
本実施形態で採用可能な検査行列は、所定の規則性を有し、以下のような処理に有効な構成である。即ち、1ビット訂正可能なハミング符号化データ(短縮化ハミング符号語)を使用する符号化・復号化処理の高速化に有効である。また、符号化処理では、例えば2のべき乗ビット単位で入力データ(情報ビット列)の処理が可能である。さらに、復号化処理では、1ビットエラーが発生した場合のシンドロームからエラーアドレス(エラー位置)への変換が不要であり、エラーアドレス及びエラーの有無判定を瞬時に出力できる。
図3に示すように、検査行列(の転置行列)300は、後述する入力データ100の情報ビット数330が「2m=k」ビットのとき、必要最低限必要なパリティビット数310(m+1ビット)に、さらに追加ビット320(nビット)を追加してパリティビット列(パリティデータ)を生成することが可能な構成に基づいている。
ここで、情報ビット数330では、各行には0〜(k−1)までのバイナリコードが順に並べられる。また、追加ビット320は、各行が単位行列340と重複しないように、11,01,10,00または11,10,01,00の4パターンの繰り返しパターンからなる。
本実施形態の具体例としては、情報ビット数330は4096ビット(k=4096)、パリティビット数310の13ビット(m=12)、及び追加ビット320が3ビット(n=3)である。情報ビット数330は、例えばディスクドライブの1セクタ分のデータ量である512バイトに相当する。
検査行列300の構成方法は、行列の右から12列を使用して2m個の組み合わせを昇順または降順に配置する。次に、検査行列の右から13、14、15列目の3ビットの組み合わせを決める。組み合わせの設定方法は、例えばハミング符号などでよく用いられる組織符号の単位行列340と重複せず、かつ、行の中の“1”が2個以上になるように設定する。これにより、行列の行成分の全てが排他的となり、1ビット訂正可能なハミング符号の検査行列として成立する。
このような検査行列の構成であれば、復号化処理において、1ビットエラーが発生した場合のシンドロームを計算すると、例えば右から1列目〜12列目の値がそのままエラー位置を示すエラーアドレスとして出力することができる。従って、シンドロームからエラーアドレスへの変換処理が不要となるので、符号長が大きくても、1サイクルでエラーアドレスを求めることができる。また、シンドロームの上位3ビットと下位3ビットの組み合わせに基づいて、入力データ(情報ビット列)とパリティデータ(パリティビット列)のいずれにエラーが発生しているか否かを瞬時に判定することが可能である。
図4は、本実施形態の符号化・復号化モジュール10が含む符号化・復号化処理のための主要ロジックの構成を示す図である。
ここで、本実施形態では、図2に示すように、符号化・復号化モジュール10は、例えば、DRAMからなるバッファメモリ280の入力データ100に対する符号化処理を実行する。また、符号化・復号化モジュール10は、バッファメモリ280から読み出される符号化データ130に対する復号化処理を実行する。
図4に示すように、符号化・復号化モジュール10は、排他的オアゲート(exclusive OR gate:XOR)40、アンドゲート(AND gate)41、フリップフロップ42及びノアゲート(NOR gate)43から構成されている主要ロジックを含む。主要ロジックにおいて、符号化・復号化モジュール10は、符号化処理(エンコード)と復号化処理(デコード)とを切り替えるロジック410を有する。このロジック410は、アンドゲート(AND gate)41の一方に後述するパリティデータ120が入力されて、他方にエンコードとデコードの一方を指示するE/C信号(デコード:“1”)が入力される。
符号化・復号化モジュール10には、例えば1クロックにつき64ビットの入力データ100が入力される。符号化処理では、ロジック410の他方の入力として、エンコードを指示するE/C信号(エンコード:“0”)が入力される。符号化処理では、15個のXOR40からなる出力側回路420から、例えば15ビットのパリティビット列からなるパリティデータ120が生成される。この場合、複数の33入力XR回路及び64入力XR回路を有する入力側回路の構成が、64ビットの入力データ100と検査行列に対応する生成行列との演算に相当する。
一方、復号化処理では、ロジック410の他方の入力として、デコードを指示するE/C信号(デコード:“1”)が入力される。復号化処理では、符号化・復号化モジュール10には、バッファメモリ280から読み出される符号化データ130が入力される。符号化データ130は、符号化処理により生成された15ビットのパリティデータ120及び64ビットの入力データ100が含まれている。
符号化・復号化モジュール10は、ロジック410の一方の入力としてパリティデータ120を入力する。これにより、符号化・復号化モジュール10は、入力データ100とパリティデータ120によるパリティ演算を実行し、出力側回路420からシンドロームとして例えば12ビットのエラーアドレス140を出力する。また、符号化・復号化モジュール10は、ノアゲート43からエラーの有無を示す復号結果フラグ430を出力する。
ここで、パリティデータ120のビット0からビット5までは、64ビットの入力データ100の中で、パリティ計算に用いるのは常に決められたビット位置の32ビットである。複数の33入力XR回路は、その32ビットと、からなるパリティ計算結果を格納するレジスタ(フリップフロップ42)のフィードバックループとを合わせた33ビットのパリティ計算を行なう。また、パリティデータ120のビット6からビット11までは、入力データ100の64ビット全てが“0”または“1”となるため、64入力XR回路においてXOR演算を実行する。この演算結果とバイナリカウンタ(6ビット)の各ビットとのアンド演算により、パリティ計算を行なう。さらに、パリティデータ120のビット12からビット14までは、付加ビット列320のnビット部分の計算であるため、その付加方法に応じてパリティ計算を行なえばよいし、単一パリティが付加される場合は全入力ビットのXOR演算を行なう回路を付加すればよい。
以上のように、図3に示す所定の規則性を有する検査行列300に基づいて、図4に示す符号化・復号化モジュール10の主要ロジックを構成した場合に、前述したような有効な符号化・復号化処理を実現できる。即ち、符号化・復号化処理の高速化、2のべき乗ビット単位で入力データの処理、シンドロームからエラーアドレスへの変換不要、及びエラーの有無判定の瞬時での出力である。
ここで、符号化・復号化モジュール10の主要ロジック構成において、入力データ100として規則性を持ったパターンや、あるビット列の繰り返しパターンが入力された場合に、符号化処理で生成されるパリティデータ120が非常に高い確率でオールゼロになることがある。また、復号化処理でのパリティ演算により計算されるエラーアドレス140(シンドローム)が非常に高い確率でオールゼロになることがある。このことは、逆に言えば規則性パターンや繰り返しパターンという特徴を持ったエラー系列が入力データに付加されている場合に、エラーの誤検出及び誤訂正を行なう可能性がある。
そこで、本実施形態の符号化・復号化モジュール10は、図4の主要ロジックに対して、図9及び図10に示すロジックを追加する構成により、パリティデータ120及びエラーアドレス140(シンドローム)がオールゼロになる確率を減少させることができる。
図9は、符号化処理時に検査行列の入れ替え操作を行なうための入れ替え操作用ロジックである。入れ替え操作用ロジックは、入れ替え位置テーブル50、アンドゲート51、及びXOR52,53から構成されている。図10は、復号化処理時に、入れ替え操作後の検査行列を使用したエラーアドレス140を修正するためのエラーアドレス修正用ロジックである。このエラーアドレス修正用ロジックは、入れ替え位置テーブル50、コンパレータ60、XOR61及びセレクタ62から構成されている。
以下、図5から図8を参照して、入れ替え操作用ロジック及びエラーアドレス修正用ロジックの動作を説明する。
図5は、入れ替え操作前の検査行列の構成を示す。即ち、入れ替え操作前の検査行列は、情報ビット数330の2m(または2m−1)ビットを昇順または降順に並べた規則的配置に基づいている。図9に示す入れ替え操作用ロジックは、当該規則性を失わない範囲で非常に少数の列について、ある列と別の列を複数回入れ替え操作し、図6に示すように、入れ替え操作後の検査行列を実現する。
図9に示す入れ替え操作用ロジックは、図4に示す符号化・復号化モジュール10の主要ロジックに対して、符号化処理時の出力であるパリティデータ120がXOR53の一方の入力として入力されるように付加される。XOR53は他方の入力としてXOR52のXOR演算結果が入力される。XOR52は、図8に示すような差分検査行列91を使用して、アンドゲート51から出力される入れ替え対象の列の位置に対応した入力ビット列90に対するXOR演算を実行する。
検査行列の入れ替え操作において、入れ替え対象の列と入れ替えペアの列の数は、入れ替え位置テーブル50により設定される。なお、入れ替え位置テーブル50の内容は、回路規模の複雑さと性能のトレードオフを考慮しながら、例えば乱数で決めてもよいし、規則性を持った方法で決めてもよい。
図8に示す差分検査行列91は、図7(A)〜(C)に示すように、予め決められた全ての入れ替え対象の列のペアにおいて、列ベクトル同士の差分を排他的論理和演算により算出される。即ち、求められた差分の列ベクトルを、全ての入れ替え対象の位置に配置して、入れ替え対象以外の列ベクトルはオールゼロとした差分検査行列91が生成される。
以上のように、符号化・復号化モジュール10の符号化処理時に、図9に示す入れ替え操作用ロジックにより、検査行列の入れ替え操作が実行される。図10に示すエラーアドレス修正用ロジックにより、復号化処理時に、入れ替え操作後の検査行列を使用したエラーアドレス140を修正し、本来の正しいエラーアドレス140Eを出力する。
図10に示すエラーアドレス修正用ロジックにおいて、コンパレータ60は、エラーアドレス140の位置と、入れ替え位置テーブル50から出力される予め決められた入れ替え対象のビット位置とが一致するか否かを比較する。エラーアドレス140は、復号化処理時に、入れ替え操作後の検査行列により算出されたシンドロームである。
XOR61は、その入れ替え対象のビット位置に対応した差分検査行列91の列ベクトルの値と、エラーアドレス140(シンドローム)との排他的論理和演算を実行する。セレクタ62は、コンパレータ60によりビット位置が一致した場合に、XOR61の演算結果から、入れ替え操作前の正しいエラーアドレス140Eを出力する。ここで、図10に示すエラーアドレス修正用ロジックは、簡単な回路構成により実現でき、処理時間も短時間である。従って、入れ替え操作を実行しない復号化処理と比較して、殆どデメリットはない。
なお、入れ替え操作において、入れ替える列のペアを増やしたり、入れ替える列の位置をランダムに決めたりすることで、パリティデータ(シンドローム)がオールゼロとなる確率をさらに減少させることが可能である。但し、多少符号化処理および復号化処理が複雑になり、回路規模の構成が複雑になる。符号化処理および復号化処理時においては、1サイクルで複数ビット(例えば32ビット)を同時に処理することが求められることが多い。このような場合に、例えば検査行列を32ビット単位で区切り(32列を1ブロックとし)、1ブロック内に1列だけ、入れ替え操作対象とする列を擬似乱数で求める。そして、隣接する2つのブロックから、選択されたそれぞれの列を交換する操作が効果的な実現方法の一例である。
また、検査行列のある列と別の列を入れ替え操作の際に、符号化処理および復号化処理における入力ビットの処理方法においても、回路規模の複雑さと性能のトレードオフを考慮することが望ましい。具体的には、入れ替え対象となる列の位置に対応したペアとなる入力ビットが両方とも、あるいは複数ペア入力されてから入れ替え操作の演算を行なう方法が有効である。また、入れ替え操作対象となる列の位置に対応した入力ビットが入力され次第、即座に入れ替え操作に相当する演算を実行する方法でもよい。
本実施形態において、符号化処理時に検査行列の入れ替え操作を実行した場合に、以下のような具体的効果を確認できた。
具体例として、入力データ100が512バイト(4096ビット)で、全10,000パターンの16ビット、32ビット、64ビットといった2のべき乗単位の繰り返しパターンを持った入力データの符号化処理の場合である。この符号化処理において、図3に示すように所定の規則性を有する検査行列300から生成したパリティデータ120は、入力データの10,000パターン全てがオールゼロとなった。
これに対して、符号化処理時に、入力データ100を64ビット単位で64ブロックに分割し、1ブロック目と2ブロック目、3ブロック目と4ブロック目、・・・、63ブロック目と64ブロック目のように隣接するブロック間でそれぞれ1ビットずつの入れ替え操作を行なった場合である。この入れ替え操作は、入れ替え対象のビットの位置をブロックごとにランダムとして、検査行列を操作した場合である。この符号化処理では、先ほどの入力データ10,000パターンに対して、パリティデータがオールゼロとなったのはわずか10パターンであり、激減させることができた。
以上要するに本実施形態の符号化・復号化装置であれば、規則性や繰り返しパターンを有する入力データに対刷る符号化処理又は復号化処理において、生成されるパリティデータまたはシンドローム(エラーアドレス)がオールゼロとなる確率を大幅に低減できる。従って、小規模構成での高速な符号化・復号化処理のメリットを確保すると共に、規則性のある入力データに対してパリティデータまたはシンドローム(エラーアドレス)がオールゼロとなる確率を大幅に低減できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…符号化・復号化装置、10…符号化・復号化モジュール、
11…マルチプレクサ(MUX)、12…記憶デバイス、
13…エラー訂正(EC)モジュール、20…ディスク(磁気記録媒体)、
21…スピンドルモータ(SPM)、22…ヘッド、23…アーム、
24…ボイスコイルモータ(VCM)、25…ヘッドアンプIC、26…回路基板、
27…リード/ライト(R/W)チャネル、28…ディスクコントローラ、
29…マイクロプロセッサ(CPU)、30…ホストシステム、
280…バッファメモリ。
11…マルチプレクサ(MUX)、12…記憶デバイス、
13…エラー訂正(EC)モジュール、20…ディスク(磁気記録媒体)、
21…スピンドルモータ(SPM)、22…ヘッド、23…アーム、
24…ボイスコイルモータ(VCM)、25…ヘッドアンプIC、26…回路基板、
27…リード/ライト(R/W)チャネル、28…ディスクコントローラ、
29…マイクロプロセッサ(CPU)、30…ホストシステム、
280…バッファメモリ。
Claims (10)
- 所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成する符号化手段と、
前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する復号化手段と、
符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を行なう符号化・復号化操作手段と
を具備する符号化・復号化装置。 - 前記符号化・復号化操作手段は、
前記符号化手段に含まれて、符号化処理時に前記入れ替え操作に応じたパリティビット列のパリティデータを出力する入れ替え操作用ロジックと、
前記復号化手段に含まれて、復号化処理時に前記入れ替え操作に応じたエラー位置を示すエラーアドレスから、前記入れ替え操作前のエラー位置を示すエラーアドレスに修正して出力するエラーアドレス修正用ロジックと
を含む請求項1に記載の符号化・復号化装置。 - 前記符号化・復号化操作手段は、
前記入れ替え操作において、前記検査行列の入れ替え対象の列及びペアとなる列の数を設定された入れ替え位置テーブルを使用する構成である請求項1に記載の符号化・復号化装置。 - 前記入れ替え操作用ロジックは、
前記入れ替え操作において、前記検査行列の入れ替え対象の列及びペアとなる列の数を設定された入れ替え位置テーブルを含む請求項2に記載の符号化・復号化装置。 - 前記入れ替え操作用ロジックは、
前記検査行列の入れ替え対象の列のペアにおいて列ベクトル同士の差分の排他的論理和演算結果に基づいて生成した差分検査行列と、前記入れ替え対象の列の位置に対応した入力ビットとの排他的論理和演算を実行する手段を含む請求項2に記載の符号化・復号化装置。 - 請求項1に記載の符号化・復号化装置と、
ホストシステムから受信したデータを前記符号化・復号化装置により符号化した符号化データを格納する記憶デバイスと、
前記記憶デバイスから読み出した前記符号化データを前記符号化・復号化装置により復号化して前記ホストシステムに送信するインターフェース手段と
を具備するデータ記憶装置。 - 前記記憶デバイスはバッファメモリであり、
前記インターフェース手段は、
前記ホストシステムからデータを受信したときに、前記符号化・復号化装置により前記受信データを符号化した符号化データを前記バッファメモリに格納し、
前記ホストシステムからの要求に応じて、前記バッファメモリに格納された符号化データを前記符号化・復号化装置により復号化して前記ホストシステムに送信するように構成されている請求項6に記載のデータ記憶装置。 - 前記バッファメモリに格納された符号化データをディスクに書き込み、及び前記ディスクから読み出す手段を有し、
前記インターフェース手段は、
前記ホストシステムからの要求に応じて、前記ディスクから読み出される符号化データを前記バッファメモリに格納し、
前記バッファメモリに格納された符号化データを前記符号化・復号化装置により復号化して前記ホストシステムに送信するように構成されている請求項7に記載のデータ記憶装置。 - 符号化処理時に所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成し、復号化処理時に前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する符号化・復号化方法において、
前記符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、
復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を実行する符号化・復号化方法。 - 前記入れ替え操作に応じたパリティビット列のパリティデータを出力し、
前記復号化処理時に前記入れ替え操作に応じたエラー位置を示すエラーアドレスから、前記入れ替え操作前のエラー位置を示すエラーアドレスに修正して出力する請求項9に記載の符号化・復号化方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010244306A JP4861509B1 (ja) | 2010-10-29 | 2010-10-29 | 符号化・復号化装置、データ記憶装置、及び方法 |
US13/174,596 US8429508B2 (en) | 2010-10-29 | 2011-06-30 | Data storage apparatus with encoder and decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010244306A JP4861509B1 (ja) | 2010-10-29 | 2010-10-29 | 符号化・復号化装置、データ記憶装置、及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4861509B1 JP4861509B1 (ja) | 2012-01-25 |
JP2012099942A true JP2012099942A (ja) | 2012-05-24 |
Family
ID=45604563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010244306A Expired - Fee Related JP4861509B1 (ja) | 2010-10-29 | 2010-10-29 | 符号化・復号化装置、データ記憶装置、及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8429508B2 (ja) |
JP (1) | JP4861509B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012230734A (ja) * | 2011-04-26 | 2012-11-22 | Toshiba Corp | 符号化・復号化装置、データ記憶装置、及び方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8683296B2 (en) | 2011-12-30 | 2014-03-25 | Streamscale, Inc. | Accelerated erasure coding system and method |
US8914706B2 (en) | 2011-12-30 | 2014-12-16 | Streamscale, Inc. | Using parity data for concurrent data authentication, correction, compression, and encryption |
WO2014109054A1 (ja) * | 2013-01-11 | 2014-07-17 | 三菱電機株式会社 | エンコーダ、サーボアンプ、コントローラ、およびサーボシステムにおける情報交換方法 |
US9425952B2 (en) * | 2014-03-27 | 2016-08-23 | Samsung Israel Research Corporation | Algebraic manipulation detection codes from algebraic curves |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04130550A (ja) * | 1990-09-21 | 1992-05-01 | Hitachi Ltd | メモリ装置 |
US6477200B1 (en) * | 1998-11-09 | 2002-11-05 | Broadcom Corporation | Multi-pair gigabit ethernet transceiver |
JP2001102938A (ja) * | 1999-09-30 | 2001-04-13 | Icom Inc | 受信信号の誤り検出方法、誤り訂正方法、及び誤り訂正装置 |
US7020811B2 (en) * | 2001-04-24 | 2006-03-28 | Sun Microsystems, Inc. | System and method for verifying error detection/correction logic |
JP4130550B2 (ja) | 2002-03-19 | 2008-08-06 | セイコーエプソン株式会社 | プロファイル生成装置、プロファイル生成方法、プログラムおよび記録媒体 |
US7680995B1 (en) * | 2002-11-19 | 2010-03-16 | Oracle International Corporation | Data replication system and method for clustered systems |
US7596743B2 (en) * | 2005-09-28 | 2009-09-29 | Ati Technologies Inc. | Method and apparatus for error management |
JP4619931B2 (ja) | 2005-11-22 | 2011-01-26 | 株式会社東芝 | 復号装置、記憶装置および復号方法 |
JP2008199148A (ja) | 2007-02-09 | 2008-08-28 | Sony Corp | 復号装置、復号方法、およびプログラム |
JP4760769B2 (ja) | 2007-05-15 | 2011-08-31 | 住友電気工業株式会社 | 復号回路及び部分処理回路 |
JP4487212B2 (ja) | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム |
US8627163B2 (en) * | 2008-03-25 | 2014-01-07 | Micron Technology, Inc. | Error-correction forced mode with M-sequence |
US8438344B2 (en) * | 2010-03-12 | 2013-05-07 | Texas Instruments Incorporated | Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes |
-
2010
- 2010-10-29 JP JP2010244306A patent/JP4861509B1/ja not_active Expired - Fee Related
-
2011
- 2011-06-30 US US13/174,596 patent/US8429508B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012230734A (ja) * | 2011-04-26 | 2012-11-22 | Toshiba Corp | 符号化・復号化装置、データ記憶装置、及び方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4861509B1 (ja) | 2012-01-25 |
US8429508B2 (en) | 2013-04-23 |
US20120110416A1 (en) | 2012-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7530009B2 (en) | Data storage method and data storage device | |
JP6540703B2 (ja) | メモリコントローラおよびメモリコントローラの制御方法 | |
JP4861509B1 (ja) | 符号化・復号化装置、データ記憶装置、及び方法 | |
JP4619931B2 (ja) | 復号装置、記憶装置および復号方法 | |
KR20160090054A (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
JP4790790B2 (ja) | 誤り検出訂正回路及び半導体メモリ | |
JP2019057752A (ja) | メモリシステム | |
JP2013137708A (ja) | メモリコントローラ、データ記憶装置およびメモリ制御方法 | |
JP2019503603A (ja) | 積符号のためのダイアグノスティクスを伴う復号後エラー・チェック | |
US20090276685A1 (en) | Data decoding apparatus, magnetic disk apparatus, and data decoding method | |
US20160285478A1 (en) | Memory controller, semiconductor memory device, and control method for semiconductor memory device | |
US20070198904A1 (en) | Error correction processing apparatus and error correction processing method | |
JP2013029882A (ja) | メモリコントローラ、半導体記憶装置および復号方法 | |
US10970166B2 (en) | Memory system and method of controlling non-volatile memory | |
US10025652B2 (en) | Error location pointers for non volatile memory | |
JP5117593B2 (ja) | 符号化・復号化装置、データ記憶装置、及び方法 | |
JP2005086683A (ja) | 誤り復号回路、データバス制御方法、及びデータバスシステム | |
US9633691B2 (en) | Storage controller, storage device, and method | |
JP2011233186A (ja) | ディスク記憶装置及びデータ復元方法 | |
JP2009271963A (ja) | 復号方法、ハードディスクコントローラ及びハードディスク装置 | |
TWI707354B (zh) | 錯誤更正碼記憶體裝置和碼字存取方法 | |
JP2014155052A (ja) | 誤り訂正復号方法および誤り訂正復号装置 | |
US10114569B2 (en) | Computing system with shift expandable coding mechanism and method of operation thereof | |
JPH11177440A (ja) | 誤訂正検証方法および装置、エラー訂正装置、再生装置、記録再生装置、通信装置 | |
KR20230132697A (ko) | 일반 연결 코드 코드워드를 디코딩하는 장치, 저장 시스템 및 그 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20111011 |
|
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: 20111104 |
|
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 |