(57)【特許請求の範囲】
【請求項１】
第１の符号化方式で、誤り検出符号が付加されたデータを符号化して、第１のデータを生成する第１の符号器と、
前記第１の符号器が生成した第１のデータを保持するレジスタと、
前記第１の符号化方式の逆符号化に対応する第２の符号化方式で、前記レジスタが保持した第１のデータを符号化して、第２のデータを生成する第２の符号器と、
前記データに付加された誤り検出符号に基づいて、前記第２のデータの誤り検出を行う誤り検出器とを備え、
前記レジスタは、前記第２のデータの誤り検出の結果が誤りなしを示す場合に、保持した前記第１のデータを出力すること
を特徴とする情報処理装置。
【請求項２】
前記レジスタが出力した第１のデータを記録媒体へ記録する記録部をさらに具備したことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の符号器は、前記第１の符号化方式で、前記データに続くデータを符号化して第３のデータを生成し、
前記レジスタは、保持した前記第１のデータを出力した後、前記第３のデータを保持すること
を特徴とする請求項１に記載の情報処理装置。
【請求項４】
所定の復号化方式で、誤り検出符号が付加されたデータを復号化して、第１のデータを生成する復号器と、
前記復号器が生成した第１のデータを保持するレジスタと、
前記所定の復号化方式に対応する所定の符号化方式で、前記レジスタが保持した第１のデータを符号化して、第２のデータを生成する符号器と、
前記データに付加された誤り検出符号に基づいて、前記第２のデータの誤り検出を行う誤り検出器とを備え、
前記レジスタは、前記第２のデータの誤り検出の結果が誤りなしを示す場合に、保持した前記第１のデータを出力すること
を特徴とする情報処理装置。
【請求項５】
第１の符号化方式で、誤り検出符号が付加されたデータを符号化して、第１のデータを生成するステップと、
前記第１のデータをレジスタに保持させるステップと、
前記第１の符号化方式の逆符号化に対応する第２の符号化方式で、前記レジスタが保持した第１のデータを符号化して、第２のデータを生成するステップと、
前記データに付加された誤り検出符号に基づいて前記第２のデータの誤り検出を行うステップと、
前記第２のデータの誤り検出の結果が誤りなしを示す場合に、前記レジスタが保持した第１のデータを出力するステップと
を具備する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法に関し、より詳細には、データを符号化又は逆符号化する情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来の情報処理装置には、データの記録時には、前記データを暗号化して磁気記録ディスクに記録し、前記磁気記録ディスクからデータを読み出すときには、前記暗号化されたデータを復号（逆符号化）して出力するものがあった（特許文献１参照）。
【特許文献１】特開２００１−２３６７１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の情報処理装置は、データを磁気ディスクに書き込む際にデータの暗号化が成功したか否かを確認していなかった。また、データを磁気ディスクから読み出す際にデータの復号が成功したか否かを確認していなかった。このため暗号化回路の故障や宇宙線などに起因した誤動作により誤ったデータが記録または出力されることを防止できなかった。
上記に鑑み、本発明は、誤ったデータの出力を防止した情報処理装置および情報処理方法を得ることを目的とする。
【課題を解決するための手段】
【０００４】
本発明の一態様に係る情報処理装置は、第１の符号化方式で、誤り検出符号が付加されたデータを符号化して、第１のデータを生成する第１の符号器と、第１の符号器が生成した第１のデータを保持するレジスタと、第１の符号化方式の逆符号化に対応する第２の符号化方式で、レジスタが保持した第１のデータを符号化して、第２のデータを生成する第２の符号器と、データに付加された誤り検出符号に基づいて、第２のデータの誤り検出を行う誤り検出器とを備え、レジスタは、第２のデータの誤り検出の結果が誤りなしを示す場合に、保持した前記第１のデータを出力することを特徴とする。
【０００５】
本実施の一態様に係る情報処理方法は、第１の符号化方式で、誤り検出符号が付加されたデータを符号化して、第１のデータを生成するステップと、第１のデータをレジスタに保持させるステップと、第１の符号化方式の逆符号化に対応する第２の符号化方式で、レジスタが保持した第１のデータを符号化して、第２のデータを生成するステップと、データに付加された誤り検出符号に基づいて第２のデータの誤り検出を行うステップと、第２のデータの誤り検出の結果が誤りなしを示す場合に、レジスタが保持した第１のデータを出力するステップとを具備する。
【発明の効果】
【０００６】
本発明によれば、誤ったデータの出力を防止する情報処理装置および情報処理方法を得ることができる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
（第１の実施形態）
図１はこの実施形態に係る磁気ディスク装置１の構成を示した図である。図２はこの実施形態に係るハードディスクコントローラ４の構成を示した図である。この磁気ディスク装置１およびハードディスクコントローラ４はそれぞれ情報処理装置を構成する。
ＲＡＭ（Random Access Memory）２は、ＣＰＵ（Central Processing Unit）１０の作業領域として使用される。ＲＯＭ（Read Only Memory）３は、ＣＰＵ１０の動作コードを格納する。ヘッダ部５は、磁気ヘッドを備え、磁気記録ディスク（記録媒体）６に対してデータの書き込みおよび読み出しを行う。
【０００８】
磁気記録ディスク６は、データを記録する。磁気記録ディスク６に記録されているデータは、符号部１２により符号化されている。ディスク回転用モータ７は、磁気記録ディスク６を回転させる。ハードディスクコントローラ４は、磁気ディスク装置１全体の動作を制御する。ホストアクセス制御部１１は、ホストインタフェースを備え、図示しないホストとの間でＰＡＴＡ（Parallel Advanced Technology Attachment）／ＳＡＴＡ（Serial Advanced Technology Attachment）等のプロトコルに従ったデータの送受信を行う。
【０００９】
符号部１２は、ホストアクセス制御部１１がホストから受信したデータを符号化し、ホストへ送信するデータを復号（逆符号化）する。符号部１２では、データの暗号化もしくはデータの圧縮を目的とした符号化が行われる。このデータの暗号化には、ＡＥＳ（Advanced Encryption Standard）、ＤＥＳ（Data Encryption Standard）、トリプルＤＥＳ、Ｃ２、ＲＳＡなどの方式を用いることができる。また、データ圧縮の符号化には、ハフマン、ＬＺ７７、ランレングスなど可逆性を有する圧縮方式を用いることができる。また、圧縮の前処理に使用されるブロックソートなどもこの実施形態に係る符号部１２の符号化の対象となる。
【００１０】
外部メモリアクセス制御部１３は、外部メモリインタフェースを備え、ＲＡＭ２およびＲＯＭ３との間でデータの送受信を行う。ディスクアクセス制御部１４は、ディスクアクセスインタフェースを備え、ヘッダ部５、ディスク回転用モータ７を制御して、磁気記録ディスク６に対するデータの書き込み、読み出しを行う。このディスクアクセス制御部１４は記録部を構成する。
【００１１】
なお、以上のプロセスはハードウェア回路、ＣＰＵ１０、ＲＯＭ３及び磁気記録ディスク６上のコードに従って動作するファームウェアにより実現され、必要に応じてＲＡＭ２が作業領域として利用される。
【００１２】
次に、この実施形態の磁気ディスク装置１およびハードディスクコントローラ４の動作を説明する。図３は、この実施形態に係る磁気ディスク装置１の書き込み動作を示したフローチャートである。図４は、この実施形態に係る磁気ディスク装置１の読み出し動作を示したフローチャートである。
【００１３】
（データ書き込み時の動作）
ハードディスクコントローラ４のホストアクセス制御部１１は、ホストインタフェースを介して、ホストからデータの書き込み要求信号を受信する。次に、ホストアクセス制御部１１は、磁気記録ディスク６へ書き込むデータ（以下、ライトデータと称す）をホストから受信して符号部１２へ入力する。符号部１２は入力されたライトデータを符号化し（ステップＳ１）、符号化が成功したか確認する（ステップＳ２）。なお、確認方法については、後の図５、６の説明において詳述する。
【００１４】
ライトデータの符号化が失敗した場合、符号部１２は、符号化に失敗したライトデータを破棄する。また、既に次のライトデータの符号化を開始している場合、符号部１２は、該ライトデータも破棄する。ＣＰＵ１０は、符号部１２がライトデータの符号化に失敗した回数をカウントしており、ライトデータの符号化に失敗した回数が予め定められた所定の回数を超えているか否かを確認する（ステップＳ３）。ライトデータの符号化に失敗した回数が予め定められた所定の回数を超えていない場合、符号部１２はステップＳ１の処理に戻り、符号化に失敗したライトデータから符号化を再実施する。
【００１５】
また、符号化に失敗した回数が予め定められた所定の回数を超えている場合、ホストアクセス制御部１１は、ホストからの書き込み要求に対してアボート信号を送信する。また、ステップＳ２の処理でライトデータを正しく符号化できた場合、外部メモリアクセス制御部１３は、符号部１２で符号化されたライトデータをＲＡＭ２へ書き込む。外部メモリアクセス制御部１３は、磁気記録ディスク６へのアクセスが可能なタイミングでＲＡＭ２から前記符号化されたライトデータを読み出す。ディスクアクセス制御部１４は、ＲＡＭ２から読み出されたライトデータをホストにより指定された磁気記録ディスク６の番地（アドレス）へ書き込む。
【００１６】
（データ読み出し時の動作）
ハードディスクコントローラ４のホストアクセス制御部１１は、ホストインタフェースを介して、ホストからデータの読み出し要求信号を受信する。ディスクアクセス制御部１４は、ホストから読み出し要求信号により指定された番地のデータ（以下、リードデータと称す）を磁気記録ディスク６から読み出す。外部メモリアクセス制御部１３は、ディスクアクセス制御部１４により読み出されたリードデータをＲＡＭ２へ書き込む。
【００１７】
外部メモリアクセス制御部１３は、ＲＡＭ２に書き込まれたリードデータを符号部１２へ入力する。符号部１２は、前記受け取ったリードデータを復号し（ステップＳ４）、復号が成功したか確認する（ステップＳ５）。なお、確認方法については、後の図５、７の説明において詳述する。リードデータの復号に失敗した場合は、符号部１２は、前記リードデータを破棄する。また、既に次のリードデータの復号を開始している場合、符号部１２は、該リードデータも破棄する。
【００１８】
符号部１２は、復号に失敗した回数が、予め定められた所定の回数を超えているか否かを確認する（ステップＳ６）。復号に失敗した回数が予め定められた所定の回数を超えていない場合、符号部１２はステップＳ４の処理に戻り、復号に失敗したリードデータから復号を再実施する。また、復号に失敗した回数が予め定められた所定の回数を超えている場合、符号部１２はホストからの読み出し要求に対してアボート信号を送信する。また、ステップＳ５の処理でリードデータを正しく復号できた場合、ホストアクセス制御部１１は、該リードデータをホストインタフェースを介してホストに送信する。
【００１９】
なお、ホストからデータの読み出し要求を受信した時に磁気記録ディスク６から読み出してＲＡＭ２に書き込むリードデータについては、磁気記録ディスク６上の番地が一致していれば、ホストからデータの読み出し要求を受信するより以前にＲＡＭ２に書き込まれたリードデータを用いてもよい。例えば、ホストからのデータの読み出し要求のあった番地からリードデータを読み出した際、ホストから要求されていない後続の番地のデータも読み出してＲＡＭ２へ書き込むようにしても良い。また、ホストから書き込み要求があり、ＲＡＭ２に書き込んだライトデータでも良い。
【００２０】
図５は、この実施形態に係る符号部１２の構成およびデータの流れを示した図である。実線はライトデータの流れを示している。点線はリードデータの流れを示している。一点鎖線は、制御信号の流れを示している。
【００２１】
符号器１０４は、データを符号化して出力する。復号器１０５は、データを復号して出力する。マルチプレクサ１０２、１０３、１０６、１０７は、２つの入力ポート０、１と一つの出力ポートを備える。ライトデータが入力される時はポート０が選択される。リードデータが入力される場合はポート１が選択される。
【００２２】
レジスタ１０８、１０９、１１０は、データを記録する。比較器１１１は、マルチプレクサ１０７およびレジスタ１１０から入力される２つのデータを比較して、入力された２つのデータが同一であるか否かを判定する。制御部１０１は、符号器１０４、復号器１０５、マルチプレクサ１０２、１０３、１０６、１０７、レジスタ１０８、１０９、１１０、および比較器１１１とバス１１４を介して接続されている。
【００２３】
制御部１０１は、このバス１１４を介して、符号器１０４、復号器１０５、マルチプレクサ１０２、１０３、１０６、１０７、レジスタ１０８、１０９、１１０、および比較器１１１との間で制御信号を送受信し、マルチプレクサ１０２、１０３、１０６、１０７の入力ポートの切り替え、比較器１１１における判定結果の出力、ライトデータおよびリードデータの入出力、レジスタ１０８、１０９、１１０へのデータ取り込み、符号器１０４におけるデータの符号化および復号器１０５におけるデータ復号の開始、終了など、符号部１２全体の制御を行う。従って、符号器１０４、復号器１０５、マルチプレクサ１０２、１０３、１０６、１０７、レジスタ１０８、１０９、１１０、および比較器１１１は、制御部１０１の指示により動作する。また、制御部１０１は、ホストアクセス制御部１１からデータの符号化および復号必要な情報を取得する。
【００２４】
図６は、この実施形態に係る符号部１２の書き込み時の動作を示したフローチャートである。図７は、この実施形態に係る符号部１２の読み出し時の動作を示したフローチャートである。図８は、この実施形態に係る符号部の動作を工程毎に示した工程図である。なお、今後の説明において、入力されるライトデータもしくはリードデータをライトデータＮｘもしくはリードデータＮｘ（ｘ＝０、１、２、３、、、ｎ：ｎは正の整数）とする。また、Ｎｘを符号化したものをＥ(Ｎｘ)、それをさらに復号したものをＤ(Ｅ(Ｎｘ))とする。また、Ｎｘを復号したものをＤ(Ｎｘ)、それをさらに符号化したものをＥ(Ｄ(Ｎｘ))とする。
【００２５】
（データ書き込み時の動作）
ホストアクセス制御部１１から符号部１２へライトデータＮ０が入力される（ステップＳ１０１）。レジスタ１０９は入力されたライトデータＮ０を記録する。マルチプレクサ１０２は、ポート０へ入力されたライトデータＮ０を符号器１０４へ入力する。符号器１０４は、入力されたライトデータＮ０を符号化する（ステップＳ１０２）。
【００２６】
符号器１０４は、符号化したライトデータＥ（Ｎ０）をマルチプレクサ１０６へのポート０へ入力する。マルチプレクサ１０６は、入力されたライトデータＥ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ０）を記録する（ステップＳ１０３）。ここで次のライトデータＮ１が入力可能であれば、ホストアクセス制御部１１から符号部１２へライトデータＮ１が入力される。
【００２７】
レジスタ１０８は、記録しているライトデータＥ（Ｎ０）をマルチプレクサ１０３のポート０へ入力する。マルチプレクサ１０３は、入力されたライトデータＥ（Ｎ０）を復号器１０５へ入力する。復号器１０５は、入力されたライトデータＥ（Ｎ０）を復号する（ステップＳ１０４）。レジスタ１０９は、記録しているライトデータＮ０をレジスタ１１０へ入力する。ここで次のライトデータＮ１が入力されていれば、レジスタ１０９は、ライトデータＮ１を記録する。
【００２８】
また、マルチプレクサ１０２は、ポート０へ入力されたライトデータＮ１を符号器１０４へ入力する。符号器１０４は、入力されたライトデータＮ１を符号化する。復号器１０５は、ライトデータＥ（Ｎ０）の復号が完了すると、復号後のライトデータＤ（Ｅ（Ｎ０））をマルチプレクサ１０７のポート０へ入力する。マルチプレクサ１０７は、入力されたライトデータＤ（Ｅ（Ｎ０））を比較器１１１へ入力する。レジスタ１１０は、記録しているライトデータＮ０を比較器１１１へ入力する。
【００２９】
比較器１１１は、入力された二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とを比較する（ステップＳ１０５）。符号化前のライトデータに誤りがなく、全てのライトデータの符号化と復号に成功していれば、符号化する前と同じライトデータが得られているから、二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とが同一となり、比較器１１１は、符号化成功の判定結果を出力する。また、符号化前のライトデータに誤りがある場合、または、全てのライトデータの符号化と復号が1ビットでも失敗していれば、二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とは同一とはならず、比較器１１１は、符号化失敗の判定結果を出力する。また、レジスタ１０８は、記録されているライトデータＥ（Ｎ０）を出力するが、比較器１１１から符号化失敗の判定結果が出力されている場合は、該ライトデータＥ（Ｎ０）は破棄される。
【００３０】
また、符号器１０４は、ライトデータＮ１の符号化が完了していれば、符号化したライトデータＥ（Ｎ１）をマルチプレクサ１０６へのポート０へ入力する。マルチプレクサ１０６は、入力されたライトデータＥ（Ｎ１）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ１）を記録する
以下、同様にしてライトデータＮ２以降のデータ処理が行われる。
【００３１】
（データ読み出し時の動作）
磁気記録ディスク６から読み取られたリードデータＮ０が、ディスクアクセス制御部１４から符号部１２へ入力される（ステップＳ２０１）。レジスタ１０９は、入力されたリードデータＮ０を記録する。マルチプレクサ１０３は、ポート１へ入力されたリードデータＮ０を復号器１０５へ入力する。復号器１０５は、入力されたリードデータＮ０を復号する（ステップＳ２０２）。
【００３２】
復号器１０５は、復号したリードデータＤ（Ｎ０）をマルチプレクサ１０６のポート１へ入力する。マルチプレクサ１０６は、入力されたリードデータＤ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ０）を記録する（ステップＳ２０３）。ここで次のリードデータＮ１が入力可能であれば、ホストアクセス制御部１１から符号部１２へリードデータＮ１が入力される。
【００３３】
レジスタ１０８は、記録しているリードデータＤ（Ｎ０）をマルチプレクサ１０２のポート１へ入力する。マルチプレクサ１０２は、入力されたリードデータを符号器１０４へ入力する。符号器１０４は、入力されたリードデータＤ（Ｎ０）を符号化する（ステップＳ２０４）。レジスタ１０９は、記録しているリードデータＮ０をレジスタ１１０へ入力する。ここで次のリードデータＮ１が入力されていれば、レジスタ１０９は、リードデータＮ１を記録する。
【００３４】
また、マルチプレクサ１０３は、ポート１へ入力されたリードデータＮ１を復号器１０５へ入力する。復号器１０５は、入力されたリードデータＮ１を復号する。符号器１０４は、リードデータＤ（Ｎ０）の符号化が完了すると、符号化後のリードデータＥ（Ｄ（Ｎ０））をマルチプレクサ１０７のポート１へ入力する。マルチプレクサ１０７は、入力されたリードデータＥ（Ｄ（Ｎ０））を比較器１１１へ入力する。レジスタ１１０は、記録しているリードデータＮ０を比較器１１１へ入力する。
【００３５】
比較器１１１は、入力された二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とを比較する（ステップＳ２０５）。復号前のリードデータに誤りがなく、全てのリードデータの復号と符号化に成功していれば、復号する前と同じリードデータが得られているから、二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とは同一となり、比較器１１１は、復号成功の判定結果を出力する。また、復号前のリードデータに誤りがある場合、または、全てのリードデータの復号と符号化が1ビットでも失敗していれば、二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とは同一とならず、比較器１１１は、復号失敗の判定結果を出力する。また、レジスタ１０８は、記録されているリードデータＤ（Ｎ０）を出力するが、比較器１１１から復号失敗の判定結果が出力されている場合は、該リードデータＤ（Ｎ０）は破棄される。
【００３６】
また、復号器１０５は、リードデータＮ１の復号が完了していれば、復号したリードデータＤ（Ｎ１）をマルチプレクサ１０６へのポート１へ入力する。マルチプレクサ１０６は、入力されたリードデータＤ（Ｎ１）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ１）を記録する
以下、同様にしてリードデータＮ２以降のデータ処理が行われる。
【００３７】
次に図８を用いて、この実施形態に係る符号部１２の動作を工程毎に詳細に説明する。
（工程１）
ホストアクセス制御部１１は、ライトデータＮ０を符号部１２へ入力する。
【００３８】
（工程２）
レジスタ１０９は、入力されたライトデータＮ０を記録する。また、符号器１０４は、マルチプレクサ１０２を介して入力されたライトデータＮ０の符号化処理を開始する。
【００３９】
（工程３）
符号器１０４は、ライトデータＮ０の符号化処理を完了して、符号化されたライトデータＥ（Ｎ０）をマルチプレクサ１０６へ入力する。
【００４０】
（工程４）
レジスタ１０８は、符号器１０４からマルチプレクサ１０６を介して入力されたライトデータＥ（Ｎ０）を記録する。
【００４１】
（工程５）
ホストアクセス制御部１１は、ライトデータＮ１を符号部１２へ入力する。
【００４２】
（工程６）
レジスタ１１０は、レジスタ１０９が記録しているライトデータＮ０を記録する。復号器１０５は、マルチプレクサ１０３を介してレジスタ１０８から入力されたライトデータＥ（Ｎ０）の復号処理を開始する。レジスタ１０９は、入力されたライトデータＮ１を記録する。符号器１０４は、マルチプレクサ１０２を介して入力されたライトデータＮ１の符号化処理を開始する。
【００４３】
（工程７）
復号器１０５は、ライトデータＥ（Ｎ０）の復号処理を完了して復号後のライトデータＤ（Ｅ（Ｎ０））をマルチプレクサ１０７を介して比較器１１１へ入力する。符号器１０４は、ライトデータＮ１の符号化処理を完了して、符号化されたライトデータＥ（Ｎ１）をマルチプレクサ１０６へ入力する。レジスタ１１０は、記録したライトデータＮ０を比較器１１１へ入力する。比較器１１１は、レジスタ１１０から入力されたライトデータＮ０と、復号器１０５から入力されたライトデータＤ（Ｅ（Ｎ０））とが同一であるか判定する。レジスタ１１０から入力されたライトデータＮ０と、復号器１０５から入力されたライトデータＤ（Ｅ（Ｎ０））とが同一である場合、比較器１１１は、符号化成功の判定結果を出力する。レジスタ１０８は、記録したライトデータＥ（Ｎ０）を出力する。
【００４４】
（工程８）
レジスタ１０８は、符号器１０４からマルチプレクサ１０６を介して入力されたライトデータＥ（Ｎ１）を記録する。
【００４５】
（工程９）
ホストアクセス制御部１１は、ライトデータＮ２を符号部１２へ入力する。
【００４６】
（工程１０）
レジスタ１１０は、レジスタ１０９が記録しているライトデータＮ１を記録する。復号器１０５は、マルチプレクサ１０３を介してレジスタ１０８から入力されたライトデータＥ（Ｎ１）の復号処理を開始する。レジスタ１０９は、入力されたライトデータＮ２を記録する。符号器１０４は、マルチプレクサ１０２を介して入力されたライトデータＮ２の符号化処理を開始する。
【００４７】
（工程１１）
復号器１０５は、ライトデータＥ（Ｎ１）の復号処理を完了して復号後のライトデータＤ（Ｅ（Ｎ１））をマルチプレクサ１０７を介して比較器１１１へ入力する。符号器１０４は、ライトデータＮ２の符号化処理を完了して、符号化されたライトデータＥ（Ｎ２）をマルチプレクサ１０６へ入力する。レジスタ１１０は、記録したライトデータＮ１を比較器１１１へ入力する。比較器１１１は、レジスタ１１０から入力されたライトデータＮ１と、復号器１０５から入力されたライトデータＤ（Ｅ（Ｎ１））とが同一であるか判定する。レジスタ１１０から入力されたライトデータＮ１と、復号器１０５から入力されたライトデータＤ（Ｅ（Ｎ１））とが同一である場合、比較器１１１は、符号化成功の判定結果を出力する。レジスタ１０８は、記録したライトデータＥ（Ｎ１）を出力する。
【００４８】
（工程１２）
レジスタ１０８は、符号器１０４からマルチプレクサ１０６を介して入力されたライトデータＥ（Ｎ２）を記録する。
【００４９】
（工程１３）
ホストアクセス制御部１１は、ライトデータＮ３を符号部１２へ入力する。
以下、同様にしてライトデータＮ３以降のデータ処理が行われる。なお、リードデータの読み出し動作の処理についても同様である。
【００５０】
以上のように、データを磁気記録ディスク６に書き込む際にデータの符号化が成功したか否かを確認するため誤ったデータを出力して磁気記録ディスク６へ記録することを防止できる。また、データを磁気記録ディスク６から読み出す際にデータの復号が成功したか否かを確認するので誤ったデータを出力して送信することを防止できる。
【００５１】
（第２の実施形態）
符号部１２の外部(ハードディスクコントローラ内、もしくは、データ書き込み時についてはホスト側で)データに誤り検出用コード（誤り検出符号）を付加されている場合、この付加された誤り検出用コードを用いて符号化もしくは復号が成功したか否かを判定できる。この実施形態では、この誤り検出用コードを用いて、符号化もしくは復号が成功したか否かを判定する。
【００５２】
誤り検出には、パリティ、チェックサム、ＣＲＣ（Cyclic Redundancy Check）などの方式があり、これらの方式を誤り検出用コードとして用いることができる。また、誤り訂正符号によっても誤り検出ができる。誤り訂正符号には、リード・ソロモン、ハミング符号などにより誤り訂正を実現できる。ただし、それぞれの方式により検出が可能な誤りビット数には限界があり、誤りビット数が検出能力を超過しない場合について、回路故障やソフトエラーを検出することができる。
【００５３】
図９は、この実施形態に係る磁気ディスク装置１およびハードディスクコントローラ４の符号部１２の構成およびデータの流れを示した図である。誤り検出器１１２は、入力される誤り検出用コードを用いて、データの符号化もしくは復号が成功したか否かを判定する。その他の構成については、図５において既に説明しているので、共通する構成要素については同一の符号を付して重複する説明を省略する。
【００５４】
図１０は、この実施形態に係る符号部１２の書き込み時の動作を示したフローチャートである。図１１は、この実施形態に係る符号部１２の読み出し時の動作を示したフローチャートである。以下、図１０、図１１を用いて、この実施形態に係る符号部１２の動作について説明する。
【００５５】
（データ書き込み時の動作）
ホストアクセス制御部１１から符号部１２へライトデータＮ０が入力される（ステップＳ３０１）。マルチプレクサ１０２は、ポート０へ入力されたライトデータＮ０を符号器１０４へ入力する。符号器１０４は、入力されたライトデータＮ０を符号化する（ステップＳ３０２）。
【００５６】
符号器１０４は、符号化したライトデータＥ（Ｎ０）をマルチプレクサ１０６へのポート０へ入力する。マルチプレクサ１０６は、入力されたライトデータＥ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ０）を記録する（ステップＳ３０３）。ここで次のライトデータＮ１が入力可能であれば、ホストアクセス制御部１１から符号部１２へライトデータＮ１が入力される。
【００５７】
レジスタ１０８は、記録しているライトデータＥ（Ｎ０）をマルチプレクサ１０３のポート０へ入力する。マルチプレクサ１０３は、入力されたライトデータを復号器１０５へ入力する。復号器１０５は、入力されたライトデータＥ（Ｎ０）を復号する（ステップＳ３０４）。
【００５８】
また、マルチプレクサ１０２は、ポート０へ入力されたライトデータＮ１を符号器１０４へ入力する。符号器１０４は、入力されたライトデータＮ１を符号化する。復号器１０５は、ライトデータＥ（Ｎ０）の復号が完了すると、復号後のライトデータＤ（Ｅ（Ｎ０））をマルチプレクサ１０７のポート０へ入力する。マルチプレクサ１０７は、入力されたライトデータＤ（Ｅ（Ｎ０））を誤り検出器１１２へ入力する。
【００５９】
また、誤り検出器１１２は、ライトデータＮ０とは別途入力されたライトデータＮ０に付加されていた誤り検出コードを用いて、マルチプレクサ１０７から入力されたライトデータＤ（Ｅ（Ｎ０））の誤り検出処理を実施する（ステップＳ３０５）。符号化前のライトデータに誤りがなく、全てのライトデータの符号化と復号に成功していれば、符号化する前と同じライトデータが得られているから、誤り検出器１１２は、誤りなし、すなわち符号化成功と判定する。また、符号化前のライトデータに誤りがある場合、または、全てのライトデータの符号化と復号が1ビットでも失敗していれば、誤り検出器１１２は誤りあり、すなわち符号化失敗と判定する。
【００６０】
誤りが検出されない場合、誤り検出器１１２は、符号化成功の判定結果を出力する。また、誤りが検出された場合、誤り検出器１１２は、符号化失敗の判定結果を出力する。レジスタ１０８は、記録されているライトデータＥ（Ｎ０）を出力するが、符号化失敗の判定結果が出力されている場合、該ライトデータＥ（Ｎ０）は破棄される。
【００６１】
また、符号器１０４は、ライトデータＮ１の符号化が完了していれば、符号化したライトデータＥ（Ｎ１）をマルチプレクサ１０６へのポート０へ入力する。マルチプレクサ１０６は、入力されたライトデータＥ（Ｎ１）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ１）を記録する
以下、同様にしてライトデータＮ１以降のデータ処理が行われる。
【００６２】
なお、符号器１０４の符号化処理および復号器１０５の復号処理のデータ単位と異なるデータ単位で誤り検出コードが付加されている場合、例えば、誤り検出コードが２５６ビット単位で付加されており、符号器１０４および復号器１０５が１２８ビット単位でしか処理を行うことができない場合、誤り検出器１１２は、符号化もしくは復号の単位である１２８ビット毎に誤り検出を行い、誤り検出コードが付加されている単位である２５６ビット分までライトデータの処理が完了すると誤り検出コードによる誤り検出処理を実施する。
【００６３】
この場合には、符号化されたライトデータは一旦ＲＡＭ２に記録される。そして、誤り検出器１１２から、符号化成功の判定結果が出力された場合は、ＲＡＭ２に一旦記録したライトデータを磁気記録ディスク６へ書き込み、誤り検出器１１２から、符号化失敗の判定結果が出力された場合は、一旦ＲＡＭ２に記録しているライトデータを破棄する。
【００６４】
（データ読み出し時の動作）
ディスクアクセス制御部１４から符号部１２へリードデータＮ０が入力される（ステップＳ４０１）。マルチプレクサ１０３は、ポート１へ入力されたリードデータＮ０を復号器１０５へ入力する。復号器１０５は、入力されたリードデータＮ０を復号する（ステップ４０２）。
【００６５】
復号器１０５は、復号したリードデータＤ（Ｎ０）をマルチプレクサ１０６へのポート１へ入力する。マルチプレクサ１０６は、入力されたリードデータＤ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ０）を記録する（ステップＳ４０３）。ここで次のリードデータＮ１が入力可能であれば、ホストアクセス制御部１１から符号部１２へリードデータＮ１が入力される。
【００６６】
レジスタ１０８は、記録しているリードデータＤ（Ｎ０）をマルチプレクサ１０２のポート１へ入力する。マルチプレクサ１０２は、入力されたリードデータＤ（Ｎ０）を符号器１０４へ入力する。符号器１０４は、入力されたリードデータＤ（Ｎ０）を符号化する（ステップＳ４０４）。
【００６７】
また、マルチプレクサ１０３は、ポート１へ入力されたリードデータＮ１を復号器１０５へ入力する。復号器１０５は、入力されたリードデータＮ１を復号する。符号器１０４は、リードデータＤ（Ｎ０）の符号化が完了すると、符号化後のリードデータＥ（Ｄ（Ｎ０））をマルチプレクサ１０７のポート１へ入力する。マルチプレクサ１０７は、入力されたリードデータＥ（Ｄ（Ｎ０））を誤り検出器１１２へ入力する。
【００６８】
また、誤り検出器１１２は、リードデータＮ０とは別途入力されたリードデータＮ０に付加されていた誤り検出コードを用いて、マルチプレクサ１０７から入力されたリードデータＥ（Ｄ（Ｎ０））の誤り検出処理を実施する（ステップＳ４０５）。復号前のリードデータに誤りがなく、全てのリードデータの復号と符号化に成功していれば、復号する前と同じリードデータが得られているから、誤り検出器１１２は、誤りなし、すなわち復号成功と判定する。また、復号前のリードデータに誤りがある場合、または、全てのリードデータの復号と符号化が1ビットでも失敗していれば、誤り検出器は誤りあり、すなわち復号失敗と判定する。
【００６９】
誤りが検出されない場合、誤り検出器１１２は、復号が成功した旨の判定結果を出力する。また、誤りが検出された場合、誤り検出器１１２は、正しく復号できなかった旨の判定結果を出力する。また、レジスタ１０８は、記録されているリードデータＤ（Ｎ０）を出力するが、復号失敗の判定結果が出力されている場合、該リードデータＤ（Ｎ０）は破棄される。
【００７０】
また、復号器１０５は、リードデータＮ１の復号が完了していれば、復号したリードデータＤ（Ｎ１）をマルチプレクサ１０６へのポート１へ入力する。マルチプレクサ１０６は、入力されたリードデータＤ（Ｎ１）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ１）を記録する
以下、同様にしてリードデータＮ１以降のデータ処理が行われる。
なお、符号データ単位と異なるデータ単位で誤り検出コードが付加されているときは、データ書き込み時で説明した処理と同様の処理が行われる。
【００７１】
以上のように、データを磁気記録ディスク６に書き込む際にデータの符号化が成功したか否かを確認するため誤ったデータを出力して磁気記録ディスク６へ記録することを防止できる。また、データを磁気記録ディスク６から読み出す際にデータの復号が成功したか否かを確認するので誤ったデータを出力して送信することを防止できる。
【００７２】
（第３の実施形態）
図１２は、この実施形態に係る磁気ディスク装置１およびハードディスクコントローラ４の符号部１２の構成およびデータの流れを示した図である。この実施形態では、データの符号化および復号を一つの回路で処理できる符号／復号器１１３を用いる。データを符号化するか復号するかは制御部１０１の制御による。その他の構成については、図５で既に説明しているので、共通する構成要素については同一の符号を付して重複する説明を省略する。なお、この実施形態では、ライトデータとリードデータの流れは同じになる。このため、ライトデータとリードデータのどちらの流れも実線で示している。
【００７３】
図１３は、この実施形態に係る符号部１２の書き込み時の動作を示したフローチャートである。図１４は、この実施形態に係る符号部１２の読み出し時の動作を示したフローチャートである。以下、図１３、図１４を用いて、この実施形態の符号部１２の動作について説明する。
【００７４】
（データ書き込み時の動作）
ホストアクセス制御部１１から符号部１２へライトデータＮ０が入力される（ステップＳ５０１）。レジスタ１０９は入力されたライトデータＮ０を記録する。符号／復号器１１３Ａは、入力されたライトデータＮ０を符号化する（ステップＳ５０２）。
【００７５】
符号／復号器１１３Ａは、符号化したライトデータＥ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ０）を記録する（ステップＳ５０３）。ここで次のライトデータＮ１が入力可能であれば、ホストアクセス制御部１１から符号部１２へライトデータＮ１が入力される。レジスタ１０８は、記録しているライトデータＥ（Ｎ０）を符号／復号器１１３Ｂへ入力する。
【００７６】
符号／復号器１１３Ｂは、入力されたライトデータＥ（Ｎ０）を復号する（ステップＳ５０４）。レジスタ１０９は、記録しているライトデータＮ０をレジスタ１１０へ入力する。ここで次のライトデータＮ１が入力されていれば、レジスタ１０９は、ライトデータＮ１を記録する。また、符号／復号器１１３Ａは、入力されたライトデータＮ１を符号化する。符号／復号器１１３Ｂは、ライトデータＥ（Ｎ０）の復号が完了すると、復号後のライトデータＤ（Ｅ（Ｎ０））を比較器１１１へ入力する。レジスタ１１０は、記録しているライトデータＮ０を比較器１１１へ入力する。
【００７７】
比較器１１１は、入力された二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とを比較する（ステップＳ５０５）。二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とが同一である場合、比較器１１１は、符号化成功の判定結果を出力する。また、二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とが同一でない場合、比較器１１１は、符号化失敗の判定結果を出力する。また、レジスタ１０８は、記録されているライトデータＥ（Ｎ０）を出力するが、比較器１１１が符号化失敗の判定結果を出力している場合、該ライトデータＥ（Ｎ０）は破棄される。
【００７８】
また、符号／復号器１１３Ａは、ライトデータＮ１の符号化が完了していれば、符号化したライトデータＥ（Ｎ１）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ１）を記録する。
以下、同様にしてライトデータＮ１以降のデータ処理が行われる。
【００７９】
（データ読み出し時の動作）
ディスクアクセス制御部１４から符号部１２へリードデータＮ０が入力される（ステップＳ６０１）。レジスタ１０９は入力されたリードデータＮ０を記録する。符号／復号器１１３Ａは、入力されたリードデータＮ０を復号する（ステップＳ６０２）。
【００８０】
符号／復号器１１３Ａは、復号したリードデータＤ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ０）を記録する（ステップＳ６０３）。ここで次のリードデータＮ１が入力可能であれば、ホストアクセス制御部１１から符号部１２へリードデータＮ１が入力される。レジスタ１０８は、記録しているリードデータＤ（Ｎ０）を符号／復号器１１３Ｂへ入力する。
【００８１】
符号／復号器１１３Ｂは、入力されたリードデータＤ（Ｎ０）を符号化する（ステップＳ６０４）。レジスタ１０９は、記録しているリードデータＮ０をレジスタ１１０へ入力する。ここで次のリードデータＮ１が入力されていれば、レジスタ１０９は、リードデータＮ１を記録する。また、符号／復号器１１３Ａは、入力されたリードデータＮ１を復号する。符号／復号器１１３Ｂは、リードデータＤ（Ｎ０）の符号化が完了すると、符号化後のリードデータＥ（Ｄ（Ｎ０））を比較器１１１へ入力する。レジスタ１１０は、記録しているリードデータＮ０を比較器１１１へ入力する。
【００８２】
比較器１１１は、入力された二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とを比較する（ステップＳ６０５）。二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とが同一である場合、比較器１１１は、復号成功の判定結果を出力する。また、二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とが同一でない場合、比較器１１１は、復号失敗の判定結果を出力する。また、レジスタ１０８は、記録されているリードデータＤ（Ｎ０）を出力するが、比較器１１１が復号失敗の判定結果を出力している場合、該リードデータＤ（Ｎ０）は破棄される。
【００８３】
また、符号／復号器１１３Ａは、リードデータＮ１の復号が完了していれば、復号したリードデータＤ（Ｎ１）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ１）を記録する
以下、同様にしてリードデータＮ１以降のデータ処理が行われる。
【００８４】
（第４の実施形態）
図１５は、この実施形態に係る磁気ディスク装置１およびハードディスクコントローラ４の符号部１２の構成およびデータの流れを示した図である。この実施形態では、符号／復号器１１３を用いる。データを符号化するか復号するかは制御部１０１の制御による。この実施形態に係る符号部１２の構成については図５、図９、図１２で既に説明した。このため、共通する構成要素については同一の符号を付して重複する説明を省略する。また、第３の実施形態と同様に、ライトデータとリードデータの流れをどちらも実線で示した。
【００８５】
図１６は、この実施形態の符号部１２の書き込み時の動作を示したフローチャートである。図１７は、この実施形態の符号部１２の読み出し時の動作を示したフローチャートである。以下、図１６、図１７を用いて、この実施形態の符号部１２の動作について説明する。
【００８６】
（データ書き込み時の動作）
ホストアクセス制御部１１から符号部１２へライトデータＮ０が入力される（ステップＳ７０１）。符号／復号器１１３Ａは、入力されたライトデータＮ０を符号化する（ステップＳ７０２）。
【００８７】
符号／復号器１１３Ａは、符号化したライトデータＥ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ０）を記録する（ステップＳ７０３）。ここで次のライトデータＮ１が入力可能であれば、ホストアクセス制御部１１から符号部１２へライトデータＮ１が入力される。レジスタ１０８は、記録しているライトデータＥ（Ｎ０）を符号／復号器１１３Ｂへ入力する。
【００８８】
符号／復号器１１３Ｂは、入力されたライトデータＥ（Ｎ０）を復号する（ステップＳ７０４）。符号／復号器１１３Ａは、入力されたライトデータＮ１を符号化する。符号／復号器１１３Ｂは、ライトデータＥ（Ｎ０）の復号が完了すると、復号後のライトデータＤ（Ｅ（Ｎ０））を誤り検出器１１２へ入力する。
【００８９】
また、誤り検出器１１２は、ライトデータＮ０とは別途入力された誤り検出コードを用いて、符号／復号器１１３Ｂから入力されたライトデータＤ（Ｅ（Ｎ０））の誤り検出処理を実施する（ステップＳ７０５）。誤りが検出されない場合、比較器１１１は、符号化成功の判定結果を出力する。また、誤りが検出された場合、誤り検出器１１２は、符号化失敗の判定結果を出力する。また、レジスタ１０８は、記録されているライトデータＥ（Ｎ０）を出力するが、誤り検出器１１２が符号化失敗の判定結果を出力している場合、該ライトデータＥ（Ｎ０）を破棄する。
【００９０】
また、符号／復号器１１３Ａは、ライトデータＮ１の符号化が完了していれば、符号化したライトデータＥ（Ｎ１）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ１）を記録する。
以下、同様にしてライトデータＮ１以降のデータ処理が行われる。
【００９１】
（データ読み出し時の動作）
ディスクアクセス制御部１４から符号部１２へリードデータＮ０が入力される（ステップＳ８０１）。符号／復号器１１３Ａは、入力されたリードデータＮ０を復号する（ステップ８０２）。
【００９２】
符号／復号器１１３Ａは、復号したリードデータＤ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ０）を記録する（ステップＳ８０３）。ここで次のリードデータＮ１が入力可能であれば、ホストアクセス制御部１１から符号部１２へリードデータＮ１が入力される。レジスタ１０８は、記録しているリードデータＤ（Ｎ０）を符号／復号器１１３Ｂへ入力する。
【００９３】
符号／復号器１１３Ｂは、入力されたリードデータＤ（Ｎ０）を符号化する（ステップＳ８０４）。また、符号／復号器１１３Ａは、入力されたリードデータＮ１を復号する。符号／復号器１１３Ｂは、リードデータＤ（Ｎ０）の符号化が完了すると、符号化後のリードデータＥ（Ｄ（Ｎ０））を誤り検出器１１２へ入力する。
【００９４】
また、誤り検出器１１２は、誤り検出コードを用いて、符号／復号器１１３Ｂから入力されたリードデータＥ（Ｄ（Ｎ０））の誤り検出処理を実施する（ステップＳ８０５）。誤りが検出されない場合、誤り検出器１１２は、復号が成功した旨の判定結果を出力する。また、誤りが検出された場合、誤り検出器１１２は、正しく復号できなかった旨の判定結果を出力する。また、レジスタ１０８は、記録されているリードデータＤ（Ｎ０）を出力するが、誤り検出器１１２が復号失敗の判定結果を出力している場合、該リードデータＤ（Ｎ０）を破棄する。
【００９５】
また、符号／復号器１１３Ａは、リードデータＮ１の復号が完了していれば、復号したリードデータＤ（Ｎ１）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ１）を記録する。
以下、同様にしてデータの処理が行われる。
【００９６】
（第５の実施形態）
図１８は、この実施形態に係る磁気ディスク装置１およびハードディスクコントローラ４の符号部１２の構成およびデータの流れを示した図である。この実施形態では、符号／復号器１１３を用いており構成を簡略化できる。符号／復号器１１３を用いる。データを符号化するか復号するかは制御部１０１の制御による。この実施形態に係る符号部１２の構成要素については、図５および図１２で既に説明した。このため、共通する構成要素に同一の符号を付して重複する説明を省略する。また、ライトデータとリードデータの流れをどちらも実線で示した。
【００９７】
図１９は、この実施形態の符号部１２の書き込み時の動作を示したフローチャートである。図２０は、この実施形態の符号部１２の読み出し時の動作を示したフローチャートである。以下、図１９、図２０を用いて、この実施形態の符号部１２の動作について説明する。
【００９８】
（データ書き込み時の動作）
ホストアクセス制御部１１から符号部１２へライトデータＮ０が入力される（ステップＳ９０１）。レジスタ１０９は入力されたライトデータＮ０を記録する。マルチプレクサ１０２は、ポート０へ入力されたライトデータＮ０を符号／復号器１１３へ入力する。符号／復号器１１３は、入力されたライトデータＮ０を符号化する（ステップＳ９０２）。
【００９９】
符号／復号器１１３は、符号化したライトデータＥ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ０）を記録する（ステップＳ９０３）。レジスタ１０８は、記録しているライトデータＥ（Ｎ０）をマルチプレクサ１０２のポート１へ入力する。マルチプレクサ１０２は、ポート１へ入力されたライトデータＥ（Ｎ０）を符号／復号器１１３へ入力する。
【０１００】
符号／復号器１１３は、入力されたライトデータＥ（Ｎ０）を復号する（ステップＳ９０４）。符号／復号器１１３は、ライトデータＥ（Ｎ０）の復号が完了すると、復号後のライトデータＤ（Ｅ（Ｎ０））を比較器１１１へ入力する。レジスタ１０９は、記録しているライトデータＮ０を比較器１１１へ入力する。
【０１０１】
比較器１１１は、入力された二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とを比較する（ステップＳ９０５）。二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とが同一である場合、比較器１１１は、符号化成功の判定結果を出力する。また、二つのライトデータＤ（Ｅ（Ｎ０））とＮ０とが同一でない場合、比較器１１１は、符号化失敗の判定結果を出力する。また、レジスタ１０８は、記録されているライトデータＥ（Ｎ０）を出力するが、比較器１１１から符号化失敗の判定結果が出力されている場合、該ライトデータＥ（Ｎ０）は破棄される。
以下、同様にしてライトデータＮ０以降のデータ処理が行われる。
【０１０２】
（データ読み出し時の動作）
ディスクアクセス制御部１４から符号部１２へリードデータＮ０が入力される（ステップＳ１００１）。レジスタ１０９は入力されたリードデータＮ０を記録する。マルチプレクサ１０２は、ポート０へ入力されたリードデータＮ０を符号／復号器１１３へ入力する。符号／復号器１１３は、入力されたリードデータＮ０を復号する（ステップＳ１００２）。
【０１０３】
符号／復号器１１３は、復号したリードデータＤ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ０）を記録する（ステップＳ１００３）。レジスタ１０８は、記録しているリードデータＤ（Ｎ０）をマルチプレクサ１０２のポート１へ入力する。マルチプレクサ１０２は、ポート１へ入力されたリードデータＤ（Ｎ０）を符号／復号器１１３へ入力する。
【０１０４】
符号／復号器１１３は、入力されたリードデータＤ（Ｎ０）を符号化する（ステップＳ１００４）。符号／復号器１１３は、リードデータＤ（Ｎ０）の符号化が完了すると、符号化後のリードデータＥ（Ｄ（Ｎ０））を比較器１１１へ入力する。レジスタ１０９は、記録しているリードデータＮ０を比較器１１１へ入力する。
【０１０５】
比較器１１１は、入力された二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とを比較する（ステップＳ１００５）。二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とが同一である場合、比較器１１１は、復号成功の判定結果を出力する。また、二つのリードデータＥ（Ｄ（Ｎ０））とＮ０とが同一でない場合、比較器１１１は、復号失敗の判定結果を出力する。また、レジスタ１０８は、記録されているリードデータＤ（Ｎ０）を出力するが、比較器１１１から復号失敗の判定結果が出力されている場合、該リードデータＤ（Ｎ０）は破棄される。
以下、同様にしてリードデータＮ０以降のデータ処理が行われる。
【０１０６】
（第６の実施形態）
図２１は、この実施形態に係る磁気ディスク装置１およびハードディスクコントローラ４の符号部１２の構成およびデータの流れを示した図である。この実施形態では、符号／復号器１１３を用いており構成を簡略化できる。符号／復号器１１３を用いる。データを符号化するか復号するかは制御部１０１の制御による。この実施形態に係る符号部１２の構成要素については、図５、９、１２で既に説明した。このため、共通する構成要素に同一の符号を付して重複する説明を省略する。また、ライトデータとリードデータの流れをどちらも実線で示した。
【０１０７】
図２２は、この実施形態の符号部１２の書き込み時の動作を示したフローチャートである。図２３は、この実施形態の符号部１２の読み出し時の動作を示したフローチャートである。以下、図２２、図２３を用いて、この実施形態の符号部１２の動作について説明する。
【０１０８】
（データ書き込み時の動作）
ホストアクセス制御部１１から符号部１２へライトデータＮ０が入力される（ステップＳ１０１１）。マルチプレクサ１０２は、ポート０へ入力されたライトデータＮ０を符号／復号器１１３へ入力する。符号／復号器１１３は、入力されたライトデータＮ０を符号化する（ステップＳ１０１２）。
【０１０９】
符号／復号器１１３は、符号化したライトデータＥ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたライトデータＥ（Ｎ０）を記録する（ステップＳ１０１３）。レジスタ１０８は、記録しているライトデータＥ（Ｎ０）をマルチプレクサ１０２のポート１へ入力する。マルチプレクサ１０２は、ポート１へ入力されたライトデータＥ（Ｎ０）を符号／復号器１１３へ入力する。
【０１１０】
符号／復号器１１３は、入力されたライトデータＥ（Ｎ０）を復号する（ステップＳ１０１４）。符号／復号器１１３は、ライトデータＥ（Ｎ０）の復号が完了すると、復号後のライトデータＤ（Ｅ（Ｎ０））を誤り検出器１１２へ入力する。
【０１１１】
また、誤り検出器１１２は、ライトデータＮ０とは別途入力された誤り検出コードを用いて、符号／復号器１１３から入力されたライトデータＤ（Ｅ（Ｎ０））の誤り検出処理を実施する（ステップＳ１０１５）。誤りが検出されない場合、誤り検出器１１２は、符号化成功の判定結果を出力する。また、誤りが検出された場合、誤り検出器１１２は、符号化失敗の判定結果を出力する。また、レジスタ１０８は、記録されているライトデータＥ（Ｎ０）を出力するが誤り検出器１１２から符号化失敗の判定結果が出力されている場合は、該ライトデータＥ（Ｎ０）は破棄される。
以下、同様にしてライトデータＮ０以降のデータ処理が行われる。
【０１１２】
（データ読み出し時の動作）
ディスクアクセス制御部１４から符号部１２へリードデータＮ０が入力される（ステップＳ１０２１）。マルチプレクサ１０２は、ポート０へ入力されたリードデータＮ０を符号／復号器１１３へ入力する。符号／復号器１１３は、入力されたリードデータＮ０を復号する（ステップＳ１０２２）。
【０１１３】
符号／復号器１１３は、復号したリードデータＤ（Ｎ０）をレジスタ１０８へ入力する。レジスタ１０８は、入力されたリードデータＤ（Ｎ０）を記録する（ステップＳ１０２３）。レジスタ１０８は、記録しているリードデータＤ（Ｎ０）をマルチプレクサ１０２のポート１へ入力する。マルチプレクサ１０２は、ポート１へ入力されたリードデータＤ（Ｎ０）を符号／復号器１１３へ入力する。
【０１１４】
符号／復号器１１３は、入力されたリードデータＤ（Ｎ０）を符号化する（ステップＳ１０２４）。符号／復号器１１３は、リードデータＤ（Ｎ０）の符号化が完了すると、符号化後のリードデータＥ（Ｄ（Ｎ０））を誤り検出器１１２へ入力する。
【０１１５】
また、誤り検出器１１２は、リードデータＮ０とは別途入力された誤り検出コードを用いて、符号／復号器１１３から入力されたリードデータＥ（Ｄ（Ｎ０））の誤り検出処理を実施する（ステップＳ１０２５）。誤りが検出されない場合、比較器１１１は、復号成功の判定結果を出力する。また、誤りが検出された場合、誤り検出器１１２は、復号失敗の判定結果を出力する。また、レジスタ１０８は、記録されているリードデータＤ（Ｎ０）を出力するが、誤り検出器１１２から復号失敗の判定結果が出力されている場合、該リードデータＤ（Ｎ０）は破棄される。
以下、同様にしてリードデータＮ０以降のデータ処理が行われる。
【０１１６】
（第７の実施形態）
図２４は、この実施形態に係るメモリ装置１６の構成を示した図である。図２５はこの応用例１に係るＮＡＮＤフラッシュメモリアクセスコントローラ８の構成を示した図である。このメモリ装置１６およびＮＡＮＤフラッシュメモリアクセスコントローラ８はそれぞれ情報処理装置を構成する。また、この実施形態では、メモリとしてＮＡＮＤフラッシュメモリを用いたメモリ装置について説明するが、他の書き換え可能なメモリを使用することもできる。
【０１１７】
ＮＡＮＤフラッシュメモリ（記録媒体）９は、データを記録する。ＮＡＮＤフラッシュメモリアクセスコントローラ８は、ＮＡＮＤフラッシュメモリ全体の動作を制御する。ＮＡＮＤフラッシュメモリアクセス制御部１５は、ＮＡＮＤフラッシュメモリアクセスインタフェースを備え、ＮＡＮＤフラッシュメモリ９に対するデータの書き込み、読み出しを行う。符号部１２は、第１乃至第６の実施形態で説明した符号部１２である。その他の構成要素については、図１および図２で既に説明した。このため、共通する構成要素に同一の符号を付して重複する説明を省略する。
【０１１８】
（第８の実施形態）
図２６は、この実施形態に係るイーサコントローラ１７の構成を示した図である。このイーサコントローラ１７は情報処理装置を構成する。受信制御部２０２は、イーサ通信規格に従って、イーサ受信インタフェースよりフレームを受信し、受信バッファ２０４に入力する。受信バッファ２０４は、受信制御部２０２で受信したフレームをバッファリングする。ヘッダ解析部２０６は、受信バッファ２０４に入力されたフレームのヘッダを解析する。符号部１２は、第１乃至第６の実施形態で説明した符号部１２であり、受信バッファ２０４のフレームで符号化されている部分を復号する。
【０１１９】
外部アクセス制御部２０７は、ＰＣＩ（Peripheral Component Interconnect）、ＰＩＯ（Parallel Input / Output）、ＳＩＯ（Serial Input / Output）などの外部アクセスインタフェースを介して復号したデータを外部装置へ送信する。また、外部アクセス制御部２０７は、外部アクセスインタフェースを介して外部装置から送信先情報と送信データを受信する。送信バッファ２０３は、外部アクセス制御部２０７が受信した送信先情報と送信データをバッファリングする。
【０１２０】
ヘッダ生成部２０５は、送信バッファ２０３の送信先情報からデータのヘッダを生成してデータに付与する。符号部１２は、送信バッファ２０３に入力されたデータの必要な部分を符号化する。送信制御部２０１は、イーサ通信規格に従って、イーサ送信インタフェースから、その生成したヘッダと送信データにより作成したイーサフレームを、イーサ通信規格に従って送信する。
【０１２１】
なお、イーサコントローラ１７を用いる装置としては、ネットワークルータ、ネットワークハブやＰＣ（Personal Computor）、デジタル家電等がある。通信規格はイーサに限らず、ＵＳＢ（Universal Serial Bus）等でも良い。
【０１２２】
以上のように、データの符号化もしくは復号が成功したか否かを確認するため誤ったデータを送信することを防止できる。
【０１２３】
なお、第１乃至第８に係る符号部１２の符号器１０４、復号器１０５、符号／復号器１１３および誤り検出器１１２には、必要に応じてバッファリングのための回路が設けられる。符号器１０４、復号器１０５もしくは符号／復号器１１３のデータ単位と誤り検出符号のデータ単位とが一致しない場合の調整、その他、前後の回路での制御上の目的でバッファリングする場合がある。磁気記録ディスク６へのデータの書き込みまたは読み出しとは独立して、符号器１０４、復号器１０５もしくは符号／復号器１１３を用いてデータの符号化、復号を行う場合にも、上記バッファリング用回路が使用される。
【０１２４】
また、符号部１２へのデータ入力単位は、符号または復号のデータ単位毎であってもいいし、そうでなくてもいい。符号または復号のデータ単位毎ではない場合は、入力されたデータはバッファリングしてから符号または復号のデータ単位毎に処理する。符号部１２からのデータ出力単位は、符号または復号のデータ単位毎であってもいいし、そうでなくてもいい。符号データ単位毎ではない場合は、符号化もしくは復号した情報はバッファリングしてからデータを出力単位毎に出力する。
【０１２５】
（その他の実施形態）
本発明の実施形態は上記の実施形態に限られず拡張、変更可能であり、拡張、変更した実施形態も本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【０１２６】
【図１】第１の実施形態に係る磁気ディスク装置の構成を示した図である。
【図２】第１の実施形態に係るハードディスクコントローラの構成を示した図である。
【図３】第１の実施形態に係る磁気ディスク装置の書き込み動作を示したフローチャートである。
【図４】第１の実施形態に係る磁気ディスク装置の読み出し動作を示したフローチャートである。
【図５】第１の実施形態に係る符号部の構成およびデータの流れを示した図である。
【図６】第１の実施形態に係る符号部の書き込み時の動作を示したフローチャートである。
【図７】第１の実施形態に係る符号部の読み出し時の動作を示したフローチャートである。
【図８】第１の実施形態に係る符号部の動作を工程毎に示した工程図である。
【図９】第２の実施形態に係る符号部の構成を示した図である。
【図１０】第２の実施形態に係る符号部の書き込み時の動作を示したフローチャートである。
【図１１】第２の実施形態に係る符号部の読み出し時の動作を示したフローチャートである。
【図１２】第３の実施形態に係る符号部の構成およびデータの流れを示した図である。
【図１３】第３の実施形態に係る符号部の書き込み時の動作を示したフローチャートである。
【図１４】第３の実施形態に係る符号部の読み出し時の動作を示したフローチャートである。
【図１５】第４の実施形態に係る符号部の構成およびデータの流れを示した図である。
【図１６】第４の実施形態に係る符号部の書き込み時の動作を示したフローチャートである。
【図１７】第４の実施形態に係る符号部の読み出し時の動作を示したフローチャートである。
【図１８】第５の実施形態に係る符号部の構成およびデータの流れを示した図である。
【図１９】第５の実施形態に係る符号部の書き込み時の動作を示したフローチャートである。
【図２０】第５の実施形態に係る符号部の読み出し時の動作を示したフローチャートである。
【図２１】第６の実施形態に係る符号部の構成およびデータの流れを示した図である。
【図２２】第６の実施形態に係る符号部の書き込み時の動作を示したフローチャートである。
【図２３】第６の実施形態に係る符号部の読み出し時の動作を示したフローチャートである。
【図２４】第７の実施形態に係るメモリ装置の構成を示した図である。
【図２５】第７の実施形態に係るＮＡＮＤフラッシュメモリアクセスコントローラの構成を示した図である。
【図２６】第８の実施形態に係るイーサコントローラの構成を示した図である。
【符号の説明】
【０１２７】
１…磁気ディスク装置、２…ＲＡＭ、３…ＲＯＭ、４…ハードディスクコントローラ、５…ヘッダ部、６…磁気記録ディスク（記録媒体）、７…ディスク回転用モータ、８…ＮＡＮＤフラッシュメモリアクセスコントローラ、９…ＮＡＮＤフラッシュメモリ（記録媒体）、１０…ＣＰＵ、１１…ホストアクセス制御部、１２…符号部、１３…外部メモリアクセス制御部、１４…ディスクアクセス制御部、１５…ＮＡＮＤフラッシュメモリアクセス制御部、１６…メモリ装置、１７…イーサコントローラ、１０１…制御部、１０２，１０３，１０６，１０７…マルチプレクサ、１０４…符号器、１０５…復号器、１０８，１０９，１１０…レジスタ、１１１…比較器、１１２…誤り検出器、１１３，１１３Ａ，１１３Ｂ…符号／復号器 、１１４…バス、２０１…送信制御部、２０２…受信制御部、２０３…送信バッファ、２０４…受信バッファ、２０５…ヘッダ生成部、２０６…ヘッダ解析部、２０７…外部アクセス制御部。
【要約】
【課題】誤ったデータの出力を防止する情報処理装置および情報処理方法を得る。
【解決手段】第１の符号化方式で、データを符号化して、第１のデータを生成する第１の符号器と、第１の符号化方式の逆符号化に対応する第２の符号化方式で、第１のデータを符号化して、第２のデータを生成する第２の符号器と、第１、第２のデータが一致するか否かを比較する比較器とを具備する。
【選択図】図１【図１】
0004327883.tif 000002
【図２】
0004327883.tif 000003
【図３】
0004327883.tif 000004
【図４】
0004327883.tif 000005
【図５】
0004327883.tif 000006
【図６】
0004327883.tif 000007
【図７】
0004327883.tif 000008
【図８】
0004327883.tif 000009
【図９】
0004327883.tif 000010
【図１０】
0004327883.tif 000011
【図１１】
0004327883.tif 000012
【図１２】
0004327883.tif 000013
【図１３】
0004327883.tif 000014
【図１４】
0004327883.tif 000015
【図１５】
0004327883.tif 000016
【図１６】
0004327883.tif 000017
【図１７】
0004327883.tif 000018
【図１８】
0004327883.tif 000019
【図１９】
0004327883.tif 000020
【図２０】
0004327883.tif 000021
【図２１】
0004327883.tif 000022
【図２２】
0004327883.tif 000023
【図２３】
0004327883.tif 000024
【図２４】
0004327883.tif 000025
【図２５】
0004327883.tif 000026
【図２６】
0004327883.tif 000027