(57)【要約】【課題】ハミング符号を使用する符号化・復号化処理において、入力データのパターン依存性を回避できるようにして、エラー誤検出や誤訂正の発生を抑制できる符号化・復号化装置を提供することにある。【解決手段】実施形態によれば、符号化・復号化装置は、符号化モジュールと、復号化モジュールと、符号化・復号化操作モジュールとを具備する。符号化モジュールは、所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成する。復号化モジュールは、前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する。符号化・復号化操作モジュールは、符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を行なう。【選択図】図１
2012099942.tif 000002
【特許請求の範囲】
【請求項１】
所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成する符号化手段と、
前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する復号化手段と、
符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を行なう符号化・復号化操作手段と
を具備する符号化・復号化装置。
【請求項２】
前記符号化・復号化操作手段は、
前記符号化手段に含まれて、符号化処理時に前記入れ替え操作に応じたパリティビット列のパリティデータを出力する入れ替え操作用ロジックと、
前記復号化手段に含まれて、復号化処理時に前記入れ替え操作に応じたエラー位置を示すエラーアドレスから、前記入れ替え操作前のエラー位置を示すエラーアドレスに修正して出力するエラーアドレス修正用ロジックと
を含む請求項１に記載の符号化・復号化装置。
【請求項３】
前記符号化・復号化操作手段は、
前記入れ替え操作において、前記検査行列の入れ替え対象の列及びペアとなる列の数を設定された入れ替え位置テーブルを使用する構成である請求項１に記載の符号化・復号化装置。
【請求項４】
前記入れ替え操作用ロジックは、
前記入れ替え操作において、前記検査行列の入れ替え対象の列及びペアとなる列の数を設定された入れ替え位置テーブルを含む請求項２に記載の符号化・復号化装置。
【請求項５】
前記入れ替え操作用ロジックは、
前記検査行列の入れ替え対象の列のペアにおいて列ベクトル同士の差分の排他的論理和演算結果に基づいて生成した差分検査行列と、前記入れ替え対象の列の位置に対応した入力ビットとの排他的論理和演算を実行する手段を含む請求項２に記載の符号化・復号化装置。
【請求項６】
請求項１に記載の符号化・復号化装置と、
ホストシステムから受信したデータを前記符号化・復号化装置により符号化した符号化データを格納する記憶デバイスと、
前記記憶デバイスから読み出した前記符号化データを前記符号化・復号化装置により復号化して前記ホストシステムに送信するインターフェース手段と
を具備するデータ記憶装置。
【請求項７】
前記記憶デバイスはバッファメモリであり、
前記インターフェース手段は、
前記ホストシステムからデータを受信したときに、前記符号化・復号化装置により前記受信データを符号化した符号化データを前記バッファメモリに格納し、
前記ホストシステムからの要求に応じて、前記バッファメモリに格納された符号化データを前記符号化・復号化装置により復号化して前記ホストシステムに送信するように構成されている請求項６に記載のデータ記憶装置。
【請求項８】
前記バッファメモリに格納された符号化データをディスクに書き込み、及び前記ディスクから読み出す手段を有し、
前記インターフェース手段は、
前記ホストシステムからの要求に応じて、前記ディスクから読み出される符号化データを前記バッファメモリに格納し、
前記バッファメモリに格納された符号化データを前記符号化・復号化装置により復号化して前記ホストシステムに送信するように構成されている請求項７に記載のデータ記憶装置。
【請求項９】
符号化処理時に所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成し、復号化処理時に前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する符号化・復号化方法において、
前記符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、
復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を実行する符号化・復号化方法。
【請求項１０】
前記入れ替え操作に応じたパリティビット列のパリティデータを出力し、
前記復号化処理時に前記入れ替え操作に応じたエラー位置を示すエラーアドレスから、前記入れ替え操作前のエラー位置を示すエラーアドレスに修正して出力する請求項９に記載の符号化・復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ記憶装置に適用可能な符号化・復号化技術に関する。
【背景技術】
【０００２】
一般的に、データ記憶装置や通信装置では、データの誤りを検出し訂正する誤り訂正機能が組み込まれている。この誤り訂正機能は、１ビット訂正可能なハミング符号（短縮化ハミング符号語）を使用する符号化・復号化方式により実現できる。
【０００３】
符号化・復号化方式は、情報ビット列（情報ベクトル）と生成行列とを使用してハミング符号を生成する符号化処理と、ハミング符号と生成行列に対応する検査行列（パリティ検査行列）とを使用してエラー位置を検出する復号化処理とを実行する。
【０００４】
情報ビット列は、データ記憶装置の場合には記録媒体（ディスクまたはメモリ）に記憶される入力データ（通信装置の場合には送信データ）に相当する。また、ハミング符号は、情報ビット列とパリティビット列（パリティデータ）とから構成される。
【０００５】
復号化処理は、ハミング符号からなる出力データ（通信装置の場合に受信データ）のエラー位置（エラーアドレス）を検出し、そのエラー位置を示すシンドローム（syndrome）と呼ばれるエラーデータを生成する。エラー訂正処理は、復号化処理により検出されたエラー位置のエラービットを訂正した出力データを出力する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１４１４１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ハミング符号を使用する符号化・復号化方式において、検査行列（又は生成行列）は、所定の規則性を有する構成の行列である。この検査行列（又は生成行列）を使用する符号化・復号化処理において、入力データが規則性を有するビットパターンや、あるビット列の繰り返しパターンである場合に、生成されるパリティデータまたはシンドロームがオールゼロになる可能性がある。このため、出力データ（ハミング符号データ）に対して、エラーを誤って検出する誤検出や誤訂正を行なう可能性がある。
【０００８】
そこで、本発明の目的は、ハミング符号を使用する符号化・復号化処理において、入力データのパターン依存性を回避できるようにして、エラー誤検出や誤訂正の発生を抑制できる符号化・復号化装置を提供することにある。
【課題を解決するための手段】
【０００９】
実施形態によれば、符号化・復号化装置は、符号化手段と、復号化手段と、符号化・復号化操作手段とを具備する。符号化手段は、所定の規則性を有する検査行列に基づいて入力データのハミング符号データを生成する。復号化手段は、前記ハミング符号データからなる出力データのエラー位置を前記検査行列に基づいて検出する。符号化・復号化操作手段は、符号化処理時に前記規則性を維持する範囲で前記検査行列を構成する複数列から選択された組み合わせの各列の配置を入れ替える入れ替え操作を実行し、復号化処理時に前記入れ替え操作に対応する前記エラー位置の変更処理を行なう。
【図面の簡単な説明】
【００１０】
【図１】実施形態に関する符号化・復号化装置の構成を説明するためのブロック図。
【図２】実施形態に関するディスクドライブの要部を示すブロック図。
【図３】実施形態に関する検査行列の構成を説明するための図。
【図４】実施形態に関する符号化・復号化モジュールの要部を説明するためのブロック図。
【図５】実施形態に関する検査行列の入れ替え操作を説明するための図。
【図６】実施形態に関する検査行列の入れ替え操作を説明するための図。
【図７】実施形態に関する検査行列の列ベクトルのＸＯＲ演算を説明するための図。
【図８】実施形態に関する検査行列の行ベクトルのＸＯＲ演算を説明するための図。
【図９】実施形態に関する入れ替え操作用ロジックの構成を説明するためのブロック図。
【図１０】実施形態に関するエラーアドレス修正用ロジックの構成を説明するためのブロック図。
【発明を実施するための形態】
【００１１】
以下図面を参照して、実施形態を説明する。
【００１２】
［符号化・復号化装置の構成］
図１は本実施形態の符号化・復号化装置の構成を説明するためのブロック図である。
【００１３】
本実施形態の符号化・復号化装置は、ハードディスクドライブ（ＨＤＤ）やＳＳＤ（solid state drive）などのデータ記憶装置、あるいは無線通信装置などの通信装置に適用可能である。
【００１４】
図１に示すように、符号化・復号化装置１は、符号化・復号化モジュール１０と、マルチプレクサ（ＭＵＸ）１１と、エラー訂正（ＥＣ）モジュール１３とを有し、例えば１チップの集積回路により構成されている。符号化・復号化モジュール１０は、例えばホストシステムから転送される入力データ１００に対して符号化処理を実行する符号化機能を含む。一方、符号化・復号化モジュール１０は、記憶デバイス１２から出力される符号化データ１３０に対して復号化処理を実行する復号化機能を含む。
【００１５】
符号化・復号化モジュール１０は、入力データ１００の情報ビット列（ビット数ｋ＝４０９６）からパリティビット列（ビット数ｍ＝１２）からなるパリティデータ１１０を生成する。マルチプレクサ１１は、入力データ１００の情報ビット列とパリティデータ１１０とから構成される符号化データ（ハミング符号）１２０を生成する。この符号化データ１２０が記憶デバイス１２に記憶される。なお、入力データ１００は、例えば１セクタ分（５１２バイト）のユーザデータに相当する。
【００１６】
一方、符号化・復号化モジュール１０は、記憶デバイス１２から出力される符号化データ（ハミング符号）１３０のエラー位置（エラーアドレス）を検出し、そのエラー位置を示すエラーデータ（シンドローム）１４０を生成する。エラー訂正モジュール１３は、符号化データ１３０に対してエラーデータ１４０により示すエラー位置を訂正した出力データ２００として出力する。出力データ２００は、例えばホストシステムに転送されるデータまたはディスクに記憶されるデータに相当する。
【００１７】
［ディスクドライブの構成］
図２は、本実施形態の符号化・復号化装置１を適用するデータ記憶装置として、ハードディスクドライブ（以下、単にディスクドライブと表記する）の要部を示すブロック図である。
【００１８】
図２に示すように、ディスクドライブは大別して、ヘッド・ディスクアセンブリ（head-disk assembly：ＨＤＡ）、ヘッドアンプ集積回路（以下、ヘッドアンプＩＣ）２５と、回路基板２６とから構成されている。ＨＤＡは、磁気記録媒体であるディスク２０と、スピンドルモータ（ＳＰＭ）２１と、ヘッド２２を搭載しているアーム２３と、ボイスコイルモータ（ＶＣＭ）２４とを有する。
【００１９】
ディスク２０は、スピンドルモータ２１より回転する。アーム２３とＶＣＭ２４は、アクチュエータを構成している。アクチュエータは、ＶＣＭ２４の駆動により、アーム２３に搭載されているヘッド２２をディスク２０上の指定の位置まで移動制御する。ヘッド２２は、リードヘッド素子及びライトヘッド素子を有する。リードヘッド素子は、ディスク２０上に記録されているデータを読み出す。ライトヘッド素子は、ディスク２０上にデータを書き込む。
【００２０】
ヘッドアンプＩＣ２５は、リードアンプ及びライトドライバを有する。リードアンプは、リードヘッド素子により読み出されたリード信号を増幅して、リード／ライト（Ｒ／Ｗ）チャネル２７に伝送する。一方、ライトドライバは、Ｒ／Ｗチャネル２７から出力されるライトデータに応じたライト電流をライトヘッド素子に伝送する。
【００２１】
回路基板２６は、Ｒ／Ｗチャネル２７と、ディスクコントローラ２８と、マイクロプロセッサ（ＣＰＵ）２９とを含む。Ｒ／Ｗチャネル２７は、リードデータの信号処理を実行するリードチャネルと、ライトデータの信号処理を実行するライトチャネルとを含む。ＣＰＵ２９は、ドライブのメインコントローラであり、ヘッド２２の位置決めを行なうサーボ制御及びデータのリード／ライト制御を実行する。
【００２２】
ディスクコントローラ２８は、ホストシステム３０とＲ／Ｗチャネル２７との間のデータ転送を制御するインターフェース制御を実行する。ディスクコントローラ２８は、本実施形態の符号化・復号化モジュール１０を主要部とする符号化・復号化装置１を含む。ディスクコントローラ２８は、ＤＲＡＭからなるバッファメモリ２８０を制御し、ホストシステム３０から転送されるユーザデータまたはディスク２０から読み出されたリードデータをバッファメモリ２８０に格納する。
【００２３】
なお、図１に示す記憶デバイス１２は、例えばＤＲＡＭからなるバッファメモリ２８０に相当する。また、記憶デバイス１２はディスク２０に相当する。さらに、本実施形態の符号化・復号化装置１を、データ記憶装置としてＳＳＤに適用する場合には、記憶デバイス１２はバッファメモリまたはフラッシュメモリに相当する。
【００２４】
［符号化・復号化モジュールの構成及び符号化・復号化処理］
以下、図３から図１０を参照して、本実施形態の符号化・復号化モジュール１０の構成及び符号化・復号処理を具体的に説明する。
【００２５】
図３は、符号化・復号化モジュール１０の符号化・復号処理で使用される検査行列（パリティ検査行列）３００の転置行列の具体例を示す図である。なお、本実施形態では、検査行列の転置行列、及び符号化処理で使用される検査行列に対応する生成行列のいずれも検査行列と呼ぶ。
【００２６】
本実施形態で採用可能な検査行列は、所定の規則性を有し、以下のような処理に有効な構成である。即ち、１ビット訂正可能なハミング符号化データ（短縮化ハミング符号語）を使用する符号化・復号化処理の高速化に有効である。また、符号化処理では、例えば２のべき乗ビット単位で入力データ（情報ビット列）の処理が可能である。さらに、復号化処理では、１ビットエラーが発生した場合のシンドロームからエラーアドレス（エラー位置）への変換が不要であり、エラーアドレス及びエラーの有無判定を瞬時に出力できる。
【００２７】
図３に示すように、検査行列（の転置行列）３００は、後述する入力データ１００の情報ビット数３３０が「２ｍ＝ｋ」ビットのとき、必要最低限必要なパリティビット数３１０（ｍ＋１ビット）に、さらに追加ビット３２０（ｎビット）を追加してパリティビット列（パリティデータ）を生成することが可能な構成に基づいている。
【００２８】
ここで、情報ビット数３３０では、各行には０〜（ｋ−１）までのバイナリコードが順に並べられる。また、追加ビット３２０は、各行が単位行列３４０と重複しないように、１１，０１，１０，００または１１，１０，０１，００の４パターンの繰り返しパターンからなる。
【００２９】
本実施形態の具体例としては、情報ビット数３３０は４０９６ビット（ｋ＝４０９６）、パリティビット数３１０の１３ビット（ｍ＝１２）、及び追加ビット３２０が３ビット（ｎ＝３）である。情報ビット数３３０は、例えばディスクドライブの１セクタ分のデータ量である５１２バイトに相当する。
【００３０】
検査行列３００の構成方法は、行列の右から１２列を使用して２ｍ個の組み合わせを昇順または降順に配置する。次に、検査行列の右から１３、１４、１５列目の３ビットの組み合わせを決める。組み合わせの設定方法は、例えばハミング符号などでよく用いられる組織符号の単位行列３４０と重複せず、かつ、行の中の“１”が２個以上になるように設定する。これにより、行列の行成分の全てが排他的となり、１ビット訂正可能なハミング符号の検査行列として成立する。
【００３１】
このような検査行列の構成であれば、復号化処理において、１ビットエラーが発生した場合のシンドロームを計算すると、例えば右から１列目〜１２列目の値がそのままエラー位置を示すエラーアドレスとして出力することができる。従って、シンドロームからエラーアドレスへの変換処理が不要となるので、符号長が大きくても、１サイクルでエラーアドレスを求めることができる。また、シンドロームの上位３ビットと下位３ビットの組み合わせに基づいて、入力データ（情報ビット列）とパリティデータ（パリティビット列）のいずれにエラーが発生しているか否かを瞬時に判定することが可能である。
【００３２】
図４は、本実施形態の符号化・復号化モジュール１０が含む符号化・復号化処理のための主要ロジックの構成を示す図である。
【００３３】
ここで、本実施形態では、図２に示すように、符号化・復号化モジュール１０は、例えば、ＤＲＡＭからなるバッファメモリ２８０の入力データ１００に対する符号化処理を実行する。また、符号化・復号化モジュール１０は、バッファメモリ２８０から読み出される符号化データ１３０に対する復号化処理を実行する。
【００３４】
図４に示すように、符号化・復号化モジュール１０は、排他的オアゲート（exclusive OR gate:ＸＯＲ）４０、アンドゲート（AND gate）４１、フリップフロップ４２及びノアゲート（NOR gate）４３から構成されている主要ロジックを含む。主要ロジックにおいて、符号化・復号化モジュール１０は、符号化処理（エンコード）と復号化処理（デコード）とを切り替えるロジック４１０を有する。このロジック４１０は、アンドゲート（AND gate）４１の一方に後述するパリティデータ１２０が入力されて、他方にエンコードとデコードの一方を指示するＥ／Ｃ信号（デコード:“１”）が入力される。
【００３５】
符号化・復号化モジュール１０には、例えば１クロックにつき６４ビットの入力データ１００が入力される。符号化処理では、ロジック４１０の他方の入力として、エンコードを指示するＥ／Ｃ信号（エンコード:“０”）が入力される。符号化処理では、１５個のＸＯＲ４０からなる出力側回路４２０から、例えば１５ビットのパリティビット列からなるパリティデータ１２０が生成される。この場合、複数の３３入力ＸＲ回路及び６４入力ＸＲ回路を有する入力側回路の構成が、６４ビットの入力データ１００と検査行列に対応する生成行列との演算に相当する。
【００３６】
一方、復号化処理では、ロジック４１０の他方の入力として、デコードを指示するＥ／Ｃ信号（デコード:“１”）が入力される。復号化処理では、符号化・復号化モジュール１０には、バッファメモリ２８０から読み出される符号化データ１３０が入力される。符号化データ１３０は、符号化処理により生成された１５ビットのパリティデータ１２０及び６４ビットの入力データ１００が含まれている。
【００３７】
符号化・復号化モジュール１０は、ロジック４１０の一方の入力としてパリティデータ１２０を入力する。これにより、符号化・復号化モジュール１０は、入力データ１００とパリティデータ１２０によるパリティ演算を実行し、出力側回路４２０からシンドロームとして例えば１２ビットのエラーアドレス１４０を出力する。また、符号化・復号化モジュール１０は、ノアゲート４３からエラーの有無を示す復号結果フラグ４３０を出力する。
【００３８】
ここで、パリティデータ１２０のビット０からビット５までは、６４ビットの入力データ１００の中で、パリティ計算に用いるのは常に決められたビット位置の３２ビットである。複数の３３入力ＸＲ回路は、その３２ビットと、からなるパリティ計算結果を格納するレジスタ（フリップフロップ４２）のフィードバックループとを合わせた３３ビットのパリティ計算を行なう。また、パリティデータ１２０のビット６からビット１１までは、入力データ１００の６４ビット全てが“０”または“１”となるため、６４入力ＸＲ回路においてＸＯＲ演算を実行する。この演算結果とバイナリカウンタ（６ビット）の各ビットとのアンド演算により、パリティ計算を行なう。さらに、パリティデータ１２０のビット１２からビット１４までは、付加ビット列３２０のｎビット部分の計算であるため、その付加方法に応じてパリティ計算を行なえばよいし、単一パリティが付加される場合は全入力ビットのＸＯＲ演算を行なう回路を付加すればよい。
【００３９】
以上のように、図３に示す所定の規則性を有する検査行列３００に基づいて、図４に示す符号化・復号化モジュール１０の主要ロジックを構成した場合に、前述したような有効な符号化・復号化処理を実現できる。即ち、符号化・復号化処理の高速化、２のべき乗ビット単位で入力データの処理、シンドロームからエラーアドレスへの変換不要、及びエラーの有無判定の瞬時での出力である。
【００４０】
ここで、符号化・復号化モジュール１０の主要ロジック構成において、入力データ１００として規則性を持ったパターンや、あるビット列の繰り返しパターンが入力された場合に、符号化処理で生成されるパリティデータ１２０が非常に高い確率でオールゼロになることがある。また、復号化処理でのパリティ演算により計算されるエラーアドレス１４０（シンドローム）が非常に高い確率でオールゼロになることがある。このことは、逆に言えば規則性パターンや繰り返しパターンという特徴を持ったエラー系列が入力データに付加されている場合に、エラーの誤検出及び誤訂正を行なう可能性がある。
【００４１】
そこで、本実施形態の符号化・復号化モジュール１０は、図４の主要ロジックに対して、図９及び図１０に示すロジックを追加する構成により、パリティデータ１２０及びエラーアドレス１４０（シンドローム）がオールゼロになる確率を減少させることができる。
【００４２】
図９は、符号化処理時に検査行列の入れ替え操作を行なうための入れ替え操作用ロジックである。入れ替え操作用ロジックは、入れ替え位置テーブル５０、アンドゲート５１、及びＸＯＲ５２，５３から構成されている。図１０は、復号化処理時に、入れ替え操作後の検査行列を使用したエラーアドレス１４０を修正するためのエラーアドレス修正用ロジックである。このエラーアドレス修正用ロジックは、入れ替え位置テーブル５０、コンパレータ６０、ＸＯＲ６１及びセレクタ６２から構成されている。
【００４３】
以下、図５から図８を参照して、入れ替え操作用ロジック及びエラーアドレス修正用ロジックの動作を説明する。
【００４４】
図５は、入れ替え操作前の検査行列の構成を示す。即ち、入れ替え操作前の検査行列は、情報ビット数３３０の２ｍ（または２ｍ−１）ビットを昇順または降順に並べた規則的配置に基づいている。図９に示す入れ替え操作用ロジックは、当該規則性を失わない範囲で非常に少数の列について、ある列と別の列を複数回入れ替え操作し、図６に示すように、入れ替え操作後の検査行列を実現する。
【００４５】
図９に示す入れ替え操作用ロジックは、図４に示す符号化・復号化モジュール１０の主要ロジックに対して、符号化処理時の出力であるパリティデータ１２０がＸＯＲ５３の一方の入力として入力されるように付加される。ＸＯＲ５３は他方の入力としてＸＯＲ５２のＸＯＲ演算結果が入力される。ＸＯＲ５２は、図８に示すような差分検査行列９１を使用して、アンドゲート５１から出力される入れ替え対象の列の位置に対応した入力ビット列９０に対するＸＯＲ演算を実行する。
【００４６】
検査行列の入れ替え操作において、入れ替え対象の列と入れ替えペアの列の数は、入れ替え位置テーブル５０により設定される。なお、入れ替え位置テーブル５０の内容は、回路規模の複雑さと性能のトレードオフを考慮しながら、例えば乱数で決めてもよいし、規則性を持った方法で決めてもよい。
【００４７】
図８に示す差分検査行列９１は、図７（Ａ）〜（Ｃ）に示すように、予め決められた全ての入れ替え対象の列のペアにおいて、列ベクトル同士の差分を排他的論理和演算により算出される。即ち、求められた差分の列ベクトルを、全ての入れ替え対象の位置に配置して、入れ替え対象以外の列ベクトルはオールゼロとした差分検査行列９１が生成される。
【００４８】
以上のように、符号化・復号化モジュール１０の符号化処理時に、図９に示す入れ替え操作用ロジックにより、検査行列の入れ替え操作が実行される。図１０に示すエラーアドレス修正用ロジックにより、復号化処理時に、入れ替え操作後の検査行列を使用したエラーアドレス１４０を修正し、本来の正しいエラーアドレス１４０Ｅを出力する。
【００４９】
図１０に示すエラーアドレス修正用ロジックにおいて、コンパレータ６０は、エラーアドレス１４０の位置と、入れ替え位置テーブル５０から出力される予め決められた入れ替え対象のビット位置とが一致するか否かを比較する。エラーアドレス１４０は、復号化処理時に、入れ替え操作後の検査行列により算出されたシンドロームである。
【００５０】
ＸＯＲ６１は、その入れ替え対象のビット位置に対応した差分検査行列９１の列ベクトルの値と、エラーアドレス１４０（シンドローム）との排他的論理和演算を実行する。セレクタ６２は、コンパレータ６０によりビット位置が一致した場合に、ＸＯＲ６１の演算結果から、入れ替え操作前の正しいエラーアドレス１４０Ｅを出力する。ここで、図１０に示すエラーアドレス修正用ロジックは、簡単な回路構成により実現でき、処理時間も短時間である。従って、入れ替え操作を実行しない復号化処理と比較して、殆どデメリットはない。
【００５１】
なお、入れ替え操作において、入れ替える列のペアを増やしたり、入れ替える列の位置をランダムに決めたりすることで、パリティデータ（シンドローム）がオールゼロとなる確率をさらに減少させることが可能である。但し、多少符号化処理および復号化処理が複雑になり、回路規模の構成が複雑になる。符号化処理および復号化処理時においては、１サイクルで複数ビット（例えば３２ビット）を同時に処理することが求められることが多い。このような場合に、例えば検査行列を３２ビット単位で区切り（３２列を１ブロックとし）、１ブロック内に１列だけ、入れ替え操作対象とする列を擬似乱数で求める。そして、隣接する２つのブロックから、選択されたそれぞれの列を交換する操作が効果的な実現方法の一例である。
【００５２】
また、検査行列のある列と別の列を入れ替え操作の際に、符号化処理および復号化処理における入力ビットの処理方法においても、回路規模の複雑さと性能のトレードオフを考慮することが望ましい。具体的には、入れ替え対象となる列の位置に対応したペアとなる入力ビットが両方とも、あるいは複数ペア入力されてから入れ替え操作の演算を行なう方法が有効である。また、入れ替え操作対象となる列の位置に対応した入力ビットが入力され次第、即座に入れ替え操作に相当する演算を実行する方法でもよい。
【００５３】
本実施形態において、符号化処理時に検査行列の入れ替え操作を実行した場合に、以下のような具体的効果を確認できた。
【００５４】
具体例として、入力データ１００が５１２バイト(４０９６ビット)で、全１０，０００パターンの１６ビット、３２ビット、６４ビットといった２のべき乗単位の繰り返しパターンを持った入力データの符号化処理の場合である。この符号化処理において、図３に示すように所定の規則性を有する検査行列３００から生成したパリティデータ１２０は、入力データの１０，０００パターン全てがオールゼロとなった。
【００５５】
これに対して、符号化処理時に、入力データ１００を６４ビット単位で６４ブロックに分割し、１ブロック目と２ブロック目、３ブロック目と４ブロック目、・・・、６３ブロック目と６４ブロック目のように隣接するブロック間でそれぞれ１ビットずつの入れ替え操作を行なった場合である。この入れ替え操作は、入れ替え対象のビットの位置をブロックごとにランダムとして、検査行列を操作した場合である。この符号化処理では、先ほどの入力データ１０，０００パターンに対して、パリティデータがオールゼロとなったのはわずか１０パターンであり、激減させることができた。
【００５６】
以上要するに本実施形態の符号化・復号化装置であれば、規則性や繰り返しパターンを有する入力データに対刷る符号化処理又は復号化処理において、生成されるパリティデータまたはシンドローム（エラーアドレス）がオールゼロとなる確率を大幅に低減できる。従って、小規模構成での高速な符号化・復号化処理のメリットを確保すると共に、規則性のある入力データに対してパリティデータまたはシンドローム（エラーアドレス）がオールゼロとなる確率を大幅に低減できる。
【００５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５８】
１…符号化・復号化装置、１０…符号化・復号化モジュール、
１１…マルチプレクサ（ＭＵＸ）、１２…記憶デバイス、
１３…エラー訂正（ＥＣ）モジュール、２０…ディスク（磁気記録媒体）、
２１…スピンドルモータ（ＳＰＭ）、２２…ヘッド、２３…アーム、
２４…ボイスコイルモータ（ＶＣＭ）、２５…ヘッドアンプＩＣ、２６…回路基板、
２７…リード／ライト（Ｒ／Ｗ）チャネル、２８…ディスクコントローラ、
２９…マイクロプロセッサ（ＣＰＵ）、３０…ホストシステム、
２８０…バッファメモリ。
【図１】
2012099942.tif 000003
【図２】
2012099942.tif 000004
【図３】
2012099942.tif 000005
【図４】
2012099942.tif 000006
【図５】
2012099942.tif 000007
【図６】
2012099942.tif 000008
【図７】
2012099942.tif 000009
【図８】
2012099942.tif 000010
【図９】
2012099942.tif 000011
【図１０】
2012099942.tif 000012