(57)【要約】【課題】暗号化されたユーザ・データのリード処理の遅延を低減する。【解決手段】本発明の一実施形態において、暗号処理部２３５は、暗号化フラグが暗号化を指示するユーザ・データを暗号化する。エンコード・デコード処理部２３６が、磁気ディスクに格納するために、暗号化したユーザ・データをエンコードする。エンコード・デコード処理部は、磁気ディスクから読み出したユーザ・データをデコードし、暗号処理部は、暗号化フラグが暗号化を指示するユーザ・データを復号化する。暗号化フラグは、エンコードされることなく、磁気ディスクに格納される。これにより、暗号処理部は、ユーザ・データのデコード処理を開始する前に、暗号化フラグの内容を知ることができる。ＨＤＤは、ユーザ・データのデコードと復号化とをパイプライン処理により行なうことができる。【選択図】図３
2011123946.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ・データを暗号処理するディスク・ドライブであって、
エンコードされているユーザ・データとエンコードを省略されている暗号化フラグとを記憶するディスク、を回転するモータと、
前記ディスクに書き込む暗号化フラグをエンコードすることなく、前記ディスクに書き込むユーザ・データをエンコードし、
前記ディスクから読み出した暗号化フラグをデコードすることなく、前記ディスクから読み出したユーザ・データをデコードする、
エンコード・デコード処理部と、
取得した暗号化フラグが暗号化を示しているユーザ・データを、前記エンコード・デコード処理部がエンコードする前に暗号化し、
前記エンコード・デコード処理部が前記ディスクから読み出したユーザ・データのデコードを終了する前に前記ディスクから読み出された暗号化フラグを取得し、前記暗号化フラグが暗号化を示しているとき、前記ユーザ・データのデコード終了前にデコードされたデータの復号化を開始する、
暗号処理部と、
を有する、ディスク・ドライブ。
【請求項２】
前記暗号処理部によるユーザ・データの暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加する、エラー・チェック可能コード生成部をさらに有する、
請求項１に記載のディスク・ドライブ。
【請求項３】
前記エンコード・デコード処理部は、ユーザ・データのＲＬＬエンコードを行い、
ＲＬＬエンコード・ルールを満足するように、ＲＬＬエンコードされた前記ユーザ・データ内に暗号化フラグを挿入する、挿入処理部をさらに有する、
請求項１に記載のディスク・ドライブ。
【請求項４】
前記暗号化処理によるユーザ・データの暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加する、エラー・チェック可能コード生成部をさらに有し、
前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードの少なくとも一部とを一つのブロックにまとめて、ＲＬＬエンコードされた前記ユーザ・データ内に挿入する、
請求項３に記載のディスク・ドライブ。
【請求項５】
前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードとを含むデータを、同一データ長の複数のブロックに分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項４に記載のディスク・ドライブ。
【請求項６】
前記エンコード・デコード処理部は、前記ユーザ・データの一部のＲＬＬエンコードを省略し、
前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードと前記ユーザ・データの一部とを含むデータを、同一データ長の複数のブロックに分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項５に記載のディスク・ドライブ。
【請求項７】
暗号化フラグと前記エンコード・デコード処理部がエンコードしたユーザ・データとを含むデータに対するＥＣＣコードを生成して付加する、エラー訂正処理部をさらに有し、
前記エラー訂正処理部は、前記挿入処理部として機能し、前記ＥＣＣコードを同一データ長の複数のブロック分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項３に記載のディスク・ドライブ。
【請求項８】
前記エラー訂正処理部は、前記暗号化フラグをＲＬＬエンコードされた前記ユーザ・データに挿入した後に、前記ＥＣＣコードを挿入する、
請求項７に記載のディスク・ドライブ。
【請求項９】
前記エラー訂正処理部は、エラー訂正処理の後に、暗号化フラグを前記暗号処理部に転送する、
請求項７に記載のディスク・ドライブ。
【請求項１０】
ディスク・ドライブにおけるデータ変換処理方法であって、
暗号化フラグが暗号化を指示するユーザ・データを暗号化し、
前記暗号化フラグをエンコードすることなく、前記暗号化されたユーザ・データをエンコードし、
前記エンコードしたユーザ・データと前記エンコードを省略された暗号化フラグとを、ディスクに格納し、
前記ディスクから読み出したユーザ・データをデコードし、
前記ユーザ・データの前記デコードの終了前に前記ディスクから読み出された暗号化フラグを取得し、前記暗号化フラグが暗号化を示しているとき、前記ユーザ・データのデコード終了前にデコードされたデータの復号化を開始する、
方法。
【請求項１１】
ユーザ・データの前記暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加する、
請求項１０に記載の方法。
【請求項１２】
前記エンコード・デコード処理部は、ユーザ・データのＲＬＬエンコードを行い、
ＲＬＬエンコード・ルールを満足するように、ＲＬＬエンコードされた前記ユーザ・データ内に暗号化フラグを挿入する、挿入処理部をさらに有する、
請求項１０に記載の方法。
【請求項１３】
ユーザ・データの前記暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加し、
前記暗号化フラグと前記エラー・チェック可能コードの少なくとも一部とを一つのブロックにまとめて、ＲＬＬエンコードされた前記ユーザ・データ内に挿入する、
請求項１２に記載の方法。
【請求項１４】
前記暗号化フラグと前記エラー・チェック可能コードとを含むデータを、同一データ長の複数のブロック分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項１３に記載の方法。
【請求項１５】
前記ユーザ・データの一部のＲＬＬエンコードを省略し、
前記暗号化フラグと前記エラー・チェック可能コードと前記ユーザ・データの一部とを含むデータを、同一データ長の複数のブロックに分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項１４に記載の方法。
【請求項１６】
暗号化フラグと前記エンコード・デコード処理部がエンコードしたユーザ・データとを含むデータに対するＥＣＣコードを生成して付加し、
前記挿入処理部として機能し、前記ＥＣＣコードを同一データ長の複数のブロックに分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項１２に記載の方法。
【請求項１７】
前記暗号化フラグをＲＬＬエンコードされた前記ユーザ・データに挿入した後に、前記ＥＣＣコードを挿入する、
請求項１６に記載の方法。
【請求項１８】
エラー訂正処理の後に、暗号化フラグを前記暗号処理部に転送する、
請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスク・ドライブ及びディスク・ドライブにおけるデータ変換処理方法に関し、特に、ディスクに格納するユーザ・データを暗号化するディスク・ドライブにおけるデータ変換処理に関する。
【背景技術】
【０００２】
ディスク・ドライブとして、光ディスク、光磁気ディスク、あるいはフレキシブル磁気ディスクなどの様々な態様のディスクを使用する装置が知られているが、その中で、ハードディスク・ドライブ（ＨＤＤ）は、コンピュータ・システムの他、動画像記録再生装置やカーナビゲーション・システムなど、多くの電子機器において使用されている。
【０００３】
ＨＤＤは、ホストからのライト・コマンドに従って、ユーザ・データを磁気ディスクに格納する。具体的には、ＨＤＤは、ライト・コマンドが指定する磁気ディスク上のアドレスに、ホストから受け取ったユーザ・データを格納する。また、ＨＤＤは、ホストからのリード・コマンドが指定するアドレスのデータを磁気ディスクから読み出し、それらをホストに転送する。
【０００４】
ディスク・ドライブにおいて、ディスクに保存されるユーザ・データを不正なアクセスから保護するため、そのユーザ・データを暗号化する技術が知られている。例えば、特許文献１は、光ディスク・ドライブにおいて、光ディスクに格納されている暗号化データを復号化する技術を開示している。
【０００５】
ユーザ・データの暗号化技術は、一部のＨＤＤにおいても使用されている。ＨＤＤは、ホストから受信したユーザ・データを暗号化し、その暗号化したユーザ・データを磁気ディスクに格納する。また、リード処理において、ＨＤＤは暗号化されているユーザ・データを読み出し、それらを復号化してからホストに転送する。
【０００６】
ＨＤＤにおける暗号化の手法として、全てのユーザ・データを暗号化して磁気ディスクに格納するのではなく、選択された一部のユーザ・データのみを暗号化して磁気ディスクに格納する手法が知られている。具体的には、ホストが暗号化をすべきデータを指定し、ＨＤＤは、その指定されたユーザ・データを暗号化して磁気ディスクに格納する。ＨＤＤは、ホストによって指定されていないユーザ・データを暗号化することなく、平文のユーザ・データを磁気ディスクに格納する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１２２８４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＨＤＤにおいては、その記憶容量の増加と共に、パフォーマンスの向上が常に要求されている。ユーザ・データの暗号化処理（暗号化及び復号化）を行なうＨＤＤにおいて、暗号化処理に伴うデータ転送遅延をできる限り小さくすることが重要である。ライト処理においては、ＨＤＤは、ライト・キャッシュ機能によりホストに対して遅滞なくライト完了を通知し、ホストに対する処理遅延を避けることができる。一方、リード処理においては、ホストから指示されたユーザ・データをホストに対して送信することが必要である。
【０００９】
暗号化データのリード処理において、ＨＤＤは、磁気ディスクから読み出したユーザ・データをデコードし、さらに、デコードしたユーザ・データを復号化して平文のユーザ・データを生成することが必要となる。パフォーマンス向上のため、ＨＤＤは、磁気ディスクからのユーザ・データを読み出してからホストへのユーザ・データ転送を開始するまでの処理時間（リード・データ変換処理時間）を、短縮することが望まれる。
【００１０】
さらに、選択された一部のユーザ・データのみを暗号化するＨＤＤは、磁気ディスクから読み出したユーザ・データが暗号化されているかを判定し、暗号化されているユーザ・データを復号化し、暗号化されていないユーザ・データの復号化をスキップする。したがって、このように選択的にユーザ・データを暗号化するＨＤＤにおいては、暗号化データについての判定に伴う上記リード・データ変換処理の遅延を小さくすることが望まれる。
【課題を解決するための手段】
【００１１】
本発明の一態様は、ユーザ・データを暗号処理するディスク・ドライブである。このディスク・ドライブは、エンコードされているユーザ・データとエンコードを省略されている暗号化フラグとを記憶するディスクを回転するモータと、エンコード・デコード処理部と、暗号処理部とを有する。前記エンコード・デコード処理部は、前記ディスクに書き込む暗号化フラグをエンコードすることなく前記ディスクに書き込むユーザ・データをエンコードし、前記ディスクから読み出した暗号化フラグをデコードすることなく、前記ディスクから読み出したユーザ・データをデコードする。前記暗号処理部は、取得した暗号化フラグが暗号化を示しているユーザ・データを、前記エンコード・デコード処理部がエンコードする前に暗号化し、前記エンコード・デコード処理部が前記ディスクから読み出したユーザ・データのデコードを終了する前に前記ディスクから読み出された暗号化フラグを取得し、前記暗号化フラグが暗号化を示しているとき、前記ユーザ・データのデコード終了前にデコードされたデータの復号化を開始する。この構成により、暗号化されたユーザ・データのリード処理の遅延を低減することができる。
【００１２】
好ましくは、前記ディスク・ドライブは、前記暗号処理部によるユーザ・データの暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加する、エラー・チェック可能コード生成部をさらに有する。これにより、暗号化されたユーザ・データを保護することができる。
【００１３】
好ましくは、前記ディスク・ドライブは、前記エンコード・デコード処理部は、ユーザ・データのＲＬＬエンコードを行い、ＲＬＬエンコード・ルールを満足するように、ＲＬＬエンコードされた前記ユーザ・データ内に暗号化フラグを挿入する、挿入処理部をさらに有する。これにより、データのより正確な記録再生を行うことができる。
【００１４】
好ましくは、前記ディスク・ドライブは、前記暗号化処理によるユーザ・データの暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加するエラー・チェック可能コード生成部をさらに有し、前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードの少なくとも一部とを一つのブロックにまとめて、ＲＬＬエンコードされた前記ユーザ・データ内に挿入する。これにより、所定サイズ・ブロックを効率的に生成することができる。
【００１５】
好ましくは、前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードとを含むデータを、同一データ長の複数のブロックに分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する。これにより、ＲＬＬエンコード・ルールへの影響を小さくしつつ、シンプルな処理により所定サイズのブロックを効率的に生成することができる。
【００１６】
好ましい構成において、前記エンコード・デコード処理部は前記ユーザ・データの一部のＲＬＬエンコードを省略し、前記挿入処理部は前記暗号化フラグと前記エラー・チェック可能コードと前記ユーザ・データの一部とを含むデータを、同一データ長の複数のブロックに分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する。これにより、ＲＬＬエンコード・ルールへの影響を小さくしつつ、シンプルな処理により所定サイズのブロックを効率的に生成することができる。
【００１７】
好ましくは、前記ディスク・ドライブは、暗号化フラグと前記エンコード・デコード処理部がエンコードしたユーザ・データとを含むデータに対するＥＣＣコードを生成して付加する、エラー訂正処理部をさらに有し、前記エラー訂正処理部は前記挿入処理部として機能し、前記ＥＣＣコードを同一データ長の複数のブロック分けて、ＲＬＬエンコードされた前記ユーザ・データ内に分けて挿入する。これにより、シンプルな構成により、ＲＬＬエンコード・ルールへの影響を小さくしつつデータを挿入することができる。
【００１８】
好ましくは、前記エラー訂正処理部は、前記暗号化フラグをＲＬＬエンコードされた前記ユーザ・データに挿入した後に、前記ＥＣＣコードを挿入する。これにより、処理をよりシンプルなものとすることができる。
【００１９】
好ましくは、前記エラー訂正処理部は、エラー訂正処理の後に、暗号化フラグを前記暗号処理部に転送する。これにより、暗号処理部が適切にユーザ・データの暗号化の有無を判定することができる。
【００２０】
本発明の他の態様は、ディスク・ドライブにおけるデータ変換処理方法である。この方法は、暗号化フラグが暗号化を指示するユーザ・データを暗号化する。前記暗号化フラグをエンコードすることなく、前記暗号化されたユーザ・データをエンコードする。前記エンコードしたユーザ・データと前記エンコードを省略された暗号化フラグとを、ディスクに格納する。前記ディスクから読み出したユーザ・データをデコードする。前記ユーザ・データの前記デコードの終了前に前記ディスクから読み出された暗号化フラグを取得し、前記暗号化フラグが暗号化を示しているとき、前記ユーザ・データのデコード終了前にデコードされたデータの復号化を開始する。この構成により、暗号化されたユーザ・データのリード処理の遅延を低減することができる。
【発明の効果】
【００２１】
本発明によれは、暗号化されたユーザ・データのリード処理の遅延を低減することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態に係るＨＤＤの全体構成を模式的に示すブロック図である。
【図２】本実施形態に係るＨＤＤにおいて、リード処理及びライト処理におけるデータ変換処理に関連する構成要素を模式的に示すブロック図である。
【図３】本実施形態に係るＨＤＤにおいて、リード処理及びライト処理におけるデータ変換処理におけるデータの変換の様子を模式的に示すブロック図である。
【図４】本実施形態において、リード処理におけるＨＤＣ内のデータ処理の流れを示すフローチャートである。
【図５】本実施形態において、暗号処理部とエンコード・デコード処理部とにおけるパイプライン処理について説明する図である。
【図６】本実施形態において、非ＲＬＬエンコード・データのブロックをＲＬＬエンコード・データの挿入する方法を模式的に示す図である。
【図７】本実施形態において、ＲＬＬエンコード・デコード処理部に加え、ランダマイザを有するエンコード・デコード処理部内のエンコード処理を模式的に示すブロック図である。
【発明を実施するための形態】
【００２３】
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。以下においては、ディスク・ドライブの一例であるハードディスク・ドライブ（ＨＤＤ）において、本発明の実施形態を説明する。
【００２４】
本実施形態において、ＨＤＤは、ユーザ・データを暗号化し、その暗号化したユーザ・データを磁気ディスクに格納する。ＨＤＤは、指定されたユーザ・データを暗号化して磁気ディスクに格納し、指定されていないユーザ・データを暗号化することなく磁気ディスクに格納する。リード処理において、ＨＤＤは、暗号化されているユーザ・データを復号化してホストへ転送し、暗号化されていないユーザ・データの復号化を行うことなくホストに転送する。
【００２５】
ユーザ・データに暗号化フラグが付されている。暗号化フラグは、対応するユーザ・データが、暗号化すべきデータであるか暗号化を省略すべきデータであるかを示す。典型的には、ホストが暗号化フラグ（暗号化の有無の指示）をセットする。ＨＤＤが、暗号化フラグをセットしてもよい。ＨＤＤは、暗号化フラグを参照することで、そのユーザ・データの暗号化／復号化についての判定を行う。暗号化フラグが暗号化を指示しているとき、ＨＤＤはユーザ・データを暗号化して磁気ディスクに書き込み、また、磁気ディスクから読み出したユーザ・データを復号化する。
【００２６】
ＨＤＤは、ライト処理において、暗号化フラグが暗号化を指示するユーザ・データを暗号化し、暗号化したユーザ・データをエンコードしてから、ユーザ・データを磁気ディスクに格納する。リード処理において、ＨＤＤは、磁気ディスクから読み出したユーザ・データをデコードし、暗号化フラグが暗号化を指示するユーザ・データを復号化する。ＨＤＤは、暗号化フラグが非暗号化を指示するデータについては、暗号化及び復号化をスキップする。
【００２７】
ＨＤＤは、暗号化フラグを、ユーザ・データと共に磁気ディスクに格納する。本実施形態の特徴として、ＨＤＤは、暗号化フラグをエンコードすることなく、磁気ディスクに格納する。これにより、ＨＤＤは、リード処理において、ユーザ・データのデコード処理を開始する前に、暗号化フラグの内容を知ることができる。ＨＤＤは、ユーザ・データのデコードと復号化とをパイプライン処理により行なう。
【００２８】
具体的には、ＨＤＤは、ユーザ・データの全てのデコードを完了する前にユーザ・データの復号化を開始する。ＨＤＤは、ユーザ・データの一部のデコードを行いながら、デコードが終了している他の一部の復号化を行なう。このように、デコードと復号化を同時に行なうことで、リード処理の処理時間を短縮することができる。
【００２９】
本実施形態のライト処理及びリード処理におけるデータ変換処理について詳細を説明する前に、まず、ＨＤＤの全体構成を説明する。図１は、ＨＤＤ１の全体構成を模式的に示すブロック図である。エンクロージャ１０の外側に固定された回路基板２０に、リード・ライト・チャネル（ＲＷチャネル）２１、モータ・ドライバ・ユニット２２、ロジック回路とＭＰＵの集積回路であるハードディスク・コントローラ（ＨＤＣ）２３及びＲＡＭ２４などの各回路が実装されている。
【００３０】
エンクロージャ１０内において、スピンドル・モータ（ＳＰＭ）１４は、所定の角速度で、磁気ディスク１１を回転する。磁気ディスク１１は、データを記憶するディスクである。各ヘッド・スライダ１２は、磁気ディスク上を浮上するスライダと、スライダに固定され磁気信号と電気信号との間の変換（データの読み書き）を行うヘッド素子部とを備えている。各ヘッド・スライダ１２はアクチュエータ１６に支持されている。アクチュエータ１６はボイス・コイル・モータ（ＶＣＭ）１５に連結され、回動軸を中心に回動することによって、ヘッド・スライダ１２を回転する磁気ディスク１１上においてその半径方向に移動する。
【００３１】
モータ・ドライバ・ユニット２２は、ＨＤＣ２３からの制御データに従って、ＳＰＭ１４とＶＣＭ１５とを駆動する。アーム電子回路（ＡＥ：Arm Electronics）１３は、ＨＤＣ２３からの制御データに従って複数のヘッド素子部１２の中から磁気ディスク１１にアクセス（リードもしくはライト）するヘッド・スライダ１２を選択し、リード／ライト信号の増幅を行う。
【００３２】
ＲＷチャネル２１は、リード処理において、ＡＥ１３から供給されたリード信号を一定の振幅となるように増幅し、その後、ＡＤ変換、波形等化処理、ビタビ復号、シリアル・パラレル変換、エラー訂正処理などを行う。処理されたデータは、ＲＷチャネル２１からＨＤＣ２３に転送される。また、ＲＷチャネル２１は、ライト処理において、ＨＤＣ２３から転送されたデータに対して、エラー訂正コードの追加、パラレル・シリアル変換、ＤＡ変換などの処理を行ってライト信号を生成し、ライト信号をＡＥ１３に出力する。
【００３３】
コントローラの一例であるＨＤＣ２３は、多くの機能を有する。ＭＰＵはＲＡＭ２４にロードされたファーム・ウェアに従って動作して一部の機能を実行し、ハードウェア回路が他の一部の機能を実行する。ＨＤＣ２３は、リード／ライト処理制御、コマンド実行順序の管理、サーボ信号を使用したヘッド・ポジショニング制御（サーボ制御）、ホスト５１との間のインターフェース制御、ディフェクト管理、エラー対応処理など、データ処理に関する必要な処理及びＨＤＤ１の全体制御を実行する。
【００３４】
本形態のＨＤＣ２３は、磁気ディスク１１に記録されるユーザ・データの暗号処理を実行する。図２は、ユーザ・データのリード処理及びライト処理に関連するＨＤＣ２３内の構成要素を模式的に示すブロック図である。ＨＤＣ２３は、ホスト・インターフェース２３１、ホスト・サイド・バッファ２３２、メモリ・マネージャ２３３、ディスク・サイド・バッファ２３４、暗号処理部２３５、エンコード・デコード処理部２３６、エラー訂正処理部２３７、そしてドライブ・マネージャ２３８を有している。これらは、論理回路で構成されている。
【００３５】
ホスト・インターフェース２３１は、外部ホスト５１とのデータ通信におけるインターフェースである。メモリ・マネージャ２３３は、データ・フローの制御やメモリ・バスのアクセス制御等を実施する。暗号処理部２３５は、ユーザ・データの暗号化及び復号化を行う。エンコード・デコード処理部２３６は、ユーザ・データが磁気ディスク１１での記録に適したビット配列となるように、データのエンコード・デコード処理を行う。エラー訂正処理部２３７は、磁気ディスク１１のデータの誤り検出及び誤り訂正処理を行う。
ＲＡＭ２４に形成されたセクタ・バッファ２４１は、ライト・データ及びリード・データを一時的に格納する。
【００３６】
ライト処理において、ホスト・インターフェース２３１はホスト５１からのユーザ・データを受信する。メモリ・マネージャ２３３はユーザ・データをホスト・サイド・バッファ２３２を介して受け取り、それらをセクタ・バッファ２４１に格納する。セクタ・バッファ２４１は、ＲＡＭ２４内の記憶領域である。メモリ・マネージャ２３３は、さらに、セクタ・バッファ２４１から取り出したユーザ・データをディスク・サイド・バッファ２３４に転送する。
【００３７】
暗号処理部２３５は、ディスク・サイド・バッファ２３４から受け取ったユーザ・データを暗号化する。暗号処理部２３５は、暗号化フラグが指示するユーザ・データのみを暗号化する。暗号処理部２３５が使用する暗号アルゴリズムは、特に限定しない。また、暗号化フラグのビット数及びフォーマットは特に限定しない。暗号処理部２３５は、所定のブロック毎に暗号化を行なう。本構成において、データ・セクタ毎に暗号化する。暗号処理部２３５は、暗号化フラグが非暗号化を指示するユーザ・データの暗号化を省略し、平文の（暗号化されていない）データ・セクタをエンコード・デコード処理部２３６に転送する。
【００３８】
エンコード・デコード処理部２３６は、磁気ディスク１１にデータを書き込むためのエンコード処理を行う。エンコード・デコード処理部２３６は、所定のブロック毎にエンコードを行なう。本構成において、データ・セクタ毎にエンコードする。典型的な構成において、エンコード・デコード処理部２３６は、データをランダマイズし、さらに、そのランダマイズしたデータをＲＬＬエンコードする。ＲＬＬは、ラン・レングス・リミテッドの略称である。本実施形態の特徴として、エンコード・デコード処理部２３６は暗号化フラグを含む所定データのエンコードを行なうことなく、平文の（エンコードされていない）上記所定データをエラー訂正処理部２３７に転送する。この点については後述する。
【００３９】
本実施形態において、暗号処理部２３５とエンコード・デコード処理部２３６とはパイプライン化されている。エンコード・デコード処理部２３６は、暗号処理部２３５が暗号化を行なっているデータ・セクタと同じデータ・セクタのエンコードを並行して行うことができる。エンコード・デコード処理部２３６は、データ・セクタ内において暗号処理部２３５が暗号化したデータを受け取り、暗号処理部２３５が他の部分を暗号化している間に受け取った部分のエンコードを行なう。この点については後述する。
【００４０】
エラー訂正処理部２３７は、受け取ったデータからＥＣＣコードを生成し、受け取ったデータとＥＣＣコードとをドライブ・マネージャ２３８に転送する。エラー訂正処理部２３７は、所定のブロック毎にＥＣＣコードを生成する。本構成において、データ・セクタ毎にＥＣＣコードを生成する。ドライブ・マネージャ２３８は、エラー訂正処理部２３７から受け取ったデータをＲＷチャネル２１に転送する。
【００４１】
リード処理において、エラー訂正処理部２３７からは、ドライブ・マネージャ２３８を介して、ＲＷチャネル２１から受け取ったデータのエラー訂正処理を行う。エラー訂正は、典型的に、データ・セクタ毎である。エラー訂正されたデータは、エンコード・デコード処理部２３６に転送され、デコード処理される。デコード処理も、典型的に、データ・セクタ毎に行なわれる。上述のようにエンコードされなかったデータのデコードは不要である。
【００４２】
上述のように、エンコード・デコード処理部２３６と暗号処理部２３５と間はパイプライン化されている。暗号処理部２３５は、データ・セクタ内においてエンコード・デコード処理部２３６がデコードした部分を順次受け取り、復号化する。ライト処理において暗号化していないデータは、復号化されることなく、ディスク・サイド・バッファ２３４に転送される。
【００４３】
メモリ・マネージャ２３３は、ディスク・サイド・バッファ２３４から受け取ったデータをセクタ・バッファ２４１に一旦格納した後、そこから取り出してホスト・サイド・バッファ２３２に出力する。ホスト・インターフェース２３１は、ホスト・サイド・バッファ２３２から受け取ったデータを、ホスト５１に転送する。
【００４４】
上記ライト処理及びリード処理において、本実施形態は、リード処理及びライト処理におけるデータ変換処理に特徴を有している。以下においては、上記構成要素におけるデータ処理について具体的に説明を行なう。図３は、メモリ・マネージャ２３３からエラー訂正処理部２３７までの各構成要素のデータ処理及びデータの変化の様子を模式的に示すブロック図である。これらのブロックにおいて、ライト処理とリード処理とは逆の処理であり、各ブロック間で転送されるデータのフォーマットは、リード処理とライト処理との間で同じである。
【００４５】
ライト処理において、メモリ・マネージャ２３３は、ユーザ・データと暗号化フラグとをディスク・サイド・バッファ２３４に転送する。暗号化フラグはユーザ・データの最後尾に付されている。ディスク・サイド・バッファ２３４は、受け取ったユーザ・データと暗号化フラグから、ＣＲＣコードを生成する。ユーザ・データの暗号化前にＣＲＣコードを付すことで、暗号化されたユーザ・データをエラーから保護することができる。設計によっては、エラー・チェック可能なコードとして、ＣＲＣコードに代えて、ＥＣＣコードを付してもよい。
【００４６】
ディスク・サイド・バッファ２３４は、ユーザ・データを転送する前に、暗号化フラグを暗号処理部２３５に転送する。暗号処理部２３５は、暗号化フラグを参照することで、これら受け取るユーザ・データの暗号化すべきか否かを判定する。図３は、暗号処理部２３５がユーザ・データを暗号化する処理例を示している。暗号化フラグが暗号化しないことを指示するとき、ユーザ・データは、平文のままエンコード・デコード処理部２３６に転送される。
【００４７】
暗号化フラグが暗号化を指示しているとき、暗号処理部２３５はユーザ・データを暗号化する。暗号化フラグとＣＲＣコードとは、暗号化されない。上述のように、暗号処理部２３５とエンコード・デコード処理部２３６とはパイプライン処理が可能である。暗号処理部２３５は、データ・セクタ内の暗号化した部分からエンコード・デコード処理部２３６に転送する。エンコード・デコード処理部２３６は、暗号処理部２３５がデータ・セクタの暗号化処理を終了する前に、受け取った部分のエンコードを開始する。
【００４８】
エンコード・デコード処理部２３６は、ユーザ・データをエンコードするが、暗号化フラグをエンコードしない。処理をシンプルなものとするため、好ましくは、ＣＲＣコードは、暗号化フラグの後ろのビット列である。このデータ配列においては、ＣＲＣコードもエンコードしないことが好ましい。これにより、処理をシンプルなものとできる。設計によっては、ＣＲＣコードをエンコードしてもよい。エンコード・デコード処理部２３６は、ユーザ・データの全てをエンコードする、あるいは、一部のみをエンコードしてもよい。図３の例においては、全てのユーザ・データがエンコードされている。
【００４９】
エラー訂正処理部２３７は、ユーザ・データ、暗号化フラグ、そしてＣＲＣコードを受け取り、それらからＥＣＣコードを生成する。ＥＣＣコードは、上記全てのデータをエラーから保護する。エラー訂正処理部２３７は、ユーザ・データ、暗号化フラグ、ＣＲＣコード、そしてＥＣＣコードからなるデータを、ＲＷチャネル２１に転送する。
【００５０】
次に、図３のブロック図に加えて図４のフローチャートを参照して、リード処理について説明する。リード処理において、エラー訂正処理部２３７は、ＥＣＣコードを使用して必要なエラー訂正を行う（Ｓ１１）。エラー訂正処理部２３７は、エラー訂正処理の後、取得した暗号化フラグを、暗号処理部２３５に転送する（Ｓ１２）。エンコード・デコード処理部２３６は、エンコードされているデータをデコードする（Ｓ１３）。図３の例においては、エンコード・デコード処理部２３６はエンコードされている全てのユーザ・データをデコードし、暗号処理部２３５に転送する（Ｓ１４）。
【００５１】
暗号処理部２３５は、取得した暗号化フラグを参照して、後に転送されてくるリード・データを暗号化するか否かを判定する（Ｓ１５）。デコード処理と暗号処理部２３５における復号化処理はパイプライン処理である。ユーザ・データが暗号化されていない場合（Ｓ１５におけるＮ）、暗号処理部２３５は、エンコード・デコード処理部２３６から転送されてくるデータを、復号化することなく、そのままディスク・サイド・バッファ２３４に転送する（Ｓ１８）。
【００５２】
暗号化フラグがユーザ・データの暗号化を示しているとき（Ｓ１５におけるＹ）、暗号処理部２３５は、エンコード・デコード処理部２３６から転送されてくる暗号化データを順次復号化する。デコードと復号化はパイプライン処理である。暗号処理部２３５は、エンコード・デコード処理部２３６のデコードと並行して、データの復号化を行う（Ｓ１６）。暗号処理部２３５は、復号化したデータを、順次ディスク・サイド・バッファ２３４に転送する（Ｓ１７）。暗号化フラグとＣＲＣは暗号化されていないため、それらは復号化されることなくディスク・サイド・バッファ２３４に転送される。
【００５３】
ディスク・サイド・バッファ２３４は、ＣＲＣコードによるエラー・チェックを行なう。ＣＲＣコードがエラーの存在を示しているとき、ＨＤＣ２３は、磁気ディスク１１から同一のデータ・セクタをもう一度読み出す。繰り返しエラーが検出される場合、ＨＤＣ２３は、そのエラーに対応する処理を実行する。エラー対応処理は広く知られた技術であり説明を省略する。
【００５４】
上記説明から理解されるように、暗号化フラグはエンコードされることなく磁気ディスク１１に格納される。このため、エンコード・デコード処理部２３６のデコードを待つことなく、暗号処理部２３５は、ユーザ・データが暗号化されているか否かを知ることができる。そのため、デコード処理と復号化処理とをパイプライン化することができ、暗号処理部２３５は、エンコード・デコード処理部２３６のデコード終了を待つことなく、転送されてきた暗号化データの復号を開始することができる。これにより、リード処理の処理時間を短縮し、パフォーマンスを向上することができる。
【００５５】
また、デコード処理と復号化処理を同時に行うことで、暗号処理部２３５が復号化を開始する前に、エンコード・デコード処理部２３６がデコードしたデータをメモリ（ＳＲＡＭ）に保持しておく必要がなくなる。これにより、ＨＤＣ２３の回路規模を低減することができる。
【００５６】
上述のように、ユーザ・データには、暗号化の前にＣＲＣコードが付される。このため、ユーザ・データの暗号化から暗号化されたデータにＥＣＣコードが付されるまで、また、ＥＣＣコードによるエラー訂正された暗号化データが復号化されるまでの間におけるエラーから、ユーザ・データを保護することができる。
【００５７】
図５を参照して、暗号処理部２３５とエンコード・デコード処理部２３６とにおけるパイプライン処理について説明を行なう。図５は、リード処理におけるデコード及び復号化のタイミング・チャートである。エラー訂正処理部２３７は、データ・セクタｋのエラー訂正を行うと、エラー訂正処理の終了時に暗号化フラグを確定する。さらに、エラー訂正処理部２３７は、エラー訂正終了時にエンコード・デコード処理部２３６への転送を開始する。データ・セクタｋの転送開始と、暗号化フラグの暗号処理部２３５への転送は同時に行われる。
【００５８】
エンコード・デコード処理部２３６はデータ・セクタｋのデコードを開始し、デコードしたデータを暗号処理部２３５に転送する。暗号処理部２３５にデコードされたデータ・セクタkの先頭データが転送されるときに、暗号処理部２３５は暗号化フラグを取得する。暗号処理部２３５は、暗号化フラグを参照して、転送されるデータ・セクタkを復号化するか否かを決定する。
【００５９】
図５の例において、暗号処理部２３５は、転送されたデータ・セクタｋとデータ・セクタｋ＋１とを復号化する。データ・セクタｋのデコードと復号とが並行して実行される。また、エラー訂正処理部２３７は、その間に、次のデータ・セクタｋ＋１のエラー訂正処理を実行する。
【００６０】
エンコード・デコード処理部２３６は、磁気ディスク１１からのリードにおけるエラー・レートが低減されるように、ユーザ・データのエンコードを行なう。エンコードの典型的な手法は、ＲＬＬエンコードである。広く知られているように、ＲＬＬエンコードは、０もしくは１のビットの連続数が規定数未満となるようにデータをエンコードする手法である。ＲＬＬエンコードは広く知られた技術であり詳細な説明を省略する。
【００６１】
上述のように、本形態のエンコード・デコード処理部２３６は、暗号化フラグをエンコードすることなくディスク側ブロックに転送する。また、暗号化フラグを付した後のデータ処理において付されるＣＲＣコードは、処理のシンプリシティの点から暗号化フラグよりも後のビット列として追加され、ＲＬＬエンコードされない。これらのデータも磁気ディスク１１に書き込まれるため、ＲＬＬエンコード・ルールからできるだけはずれていないことが好ましく、ＲＬＬエンコード・ルールに従っていることがさらに好ましい。
【００６２】
また、エラー訂正処理部２３７は、エンコード・デコード処理部２３６のエンコード処理の後にＥＣＣコードを生成する。ＥＣＣコードもエンコード・デコード処理部２３６によりエンコードされない。ＥＣＣコードも、暗号化フラグやＣＲＣコードと同様に、ＲＬＬエンコード・ルールからできるだけはずれていないことが好ましく、ＲＬＬエンコード・ルールに従っていることがさらに好ましい。
【００６３】
本形態のＨＤＣ２３は、ＲＬＬエンコードされていないデータを複数のブロックに分割し、それらをＲＬＬエンコードされているデータに分離して挿入することで、エラー・レートを低減する。好ましい構成において、分割したブロックのデータ長と、ＲＬＬエンコード・データに挿入したブロック間のＲＬＬエンコード・データのデータ長とは、ＲＬＬエンコード・ルールが満足されるように設定されている。
【００６４】
以下において、好ましい構成として、暗号化フラグ、ＣＲＣコード、そしてＥＣＣコードの全てを含む非ＲＬＬエンコード・データを複数ブロックに分けてＲＬＬエンコード・データに挿入する例を説明する。このように、全ての非ＲＬＬエンコード・データをブロックに分割することが好ましいが、その一部のみであっても、エラー・レート低減の効果を奏する。
【００６５】
図６は、非ＲＬＬエンコード・データのブロックをＲＬＬエンコード・データに挿入する方法を模式的に示す図である。本例において、ＲＬＬエンコードされる前、フレームは、４０９６ビット・ユーザ・データ、それに続く１ビット暗号化フラグ、その後ろの２５ビットＣＲＣコードで構成されている。エンコード・デコード処理部２３６は、４０９６ビット・ユーザ・データにおける４０７２ビット・データをＲＬＬエンコードする。２４ビット・ユーザ・データ、１ビット暗号化フラグ、２５ビットＣＲＣコードは、ＲＬＬエンコードされずに、平文である。
【００６６】
ＲＬＬエンコードあるいは回路構成の点から、ユーザ・データ以外のデータに別のデータを追加することが好ましいとき、ユーザ・データの一部をＲＬＬエンコードせず、そのデータを追加することが好ましい。これにより、ＲＬＬエンコードの方法（回路構成含む）に対してフレキシブルに対応することができるとともに、データ容量の減少を避けることができる。
【００６７】
エラー訂正処理部２３７は、４２００ビットＲＬＬエンコード・データと、５０ビット平文とから、４００ビットＥＣＣコードを生成する。エラー訂正処理部２３７は、揮発性のメモリであるＳＲＡＭを有しており、上記データをＳＲＡＭ内に格納する。その後、エラー訂正処理部２３７は、４２００ビットＲＬＬエンコード・データに、５０ビット平文の複数ブロックと、４００ビットＥＣＣコードの複数ブロックとを挿入する。
【００６８】
例えば、エラー訂正処理部２３７は、５０ビット平文（暗号化フラグ、ＣＲＣコード、そしてユーザ・データの一部）を分割して５つの１０ビット・ブロック生成し、それらをＲＬＬエンコード・データに分離した位置に挿入する。同様に、４００ビットＥＣＣコードを分割して４０の１０ビット・ブロック生成し、それらをＲＬＬエンコード・データに分離した位置に挿入する。
【００６９】
上述のように、ブロックは、ＲＬＬエンコード・ルールを満足するブロック長とブロック間隔を有することが好ましい。処理のシンプリシティの観点から、ブロック長は同一であり、また、分散して挿入されるブロック間の距離は一定であることが、好ましい。
【００７０】
エラー訂正処理部２３７は、ＳＲＡＭから読み出すデータのアドレスを選択することで、複数のブロックをＲＬＬエンコード・データ内に挿入する。例えば、エラー訂正処理部２３７内のＳＲＡＭは、ＲＬＬエンコード・データ、５０ビット平文、そしてＥＣＣコードのアドレス順序でそれらを格納している。エラー訂正処理部２３７は、ＳＲＡＭからデータを読み出す順序を制御することで、図６の最下段に示すデータを生成しつつドライブ・マネージャ２３８にデータを転送する。
【００７１】
ＥＣＣコードは、ＲＬＬエンコード・データと５０ビット平文から生成され、典型的には、それらの後ろに付される。したがって、処理のシンプリシティの点からは、図６の最下段に示すように、５０ビット平文のブロックを挿入した後、ＥＣＣコードのブロックを挿入することが好ましい。図６の例において、いずれのブロックも同一ブロック長であり、ブロック間隔も一定である。
【００７２】
エラー訂正処理部２３７は、リード処理において、図６の最下段の示フォーマットのデータをドライブ・マネージャ２３８から取得する。転送されるデータをＳＲＡＭに格納するとき、ＳＲＡＭ内の格納アドレスを制御することで、３段目のフォーマットのデータを生成することができる。エラー訂正処理部２３７は、分散しているブロックを抽出しつつ、連続するＲＬＬエンコード・データとその後ろの５０ビット平文とを連続するアドレスに格納することができる。また、ＥＣＣコードのブロックを抽出してＲＡＭ内の連続アドレスに格納する。エラー訂正処理部２３７は、ＥＣＣコードによるエラー訂正を行った後、暗号化フラグを暗号処理部２３５に転送する。
【００７３】
このように、暗号化フラグとＣＲＣコードに加え、ＥＣＣコードをブロックに分割してＲＬＬエンコード・データ内に挿入する構成においては、エラー訂正処理部２３７が挿入処理部として機能し、全てのデータの分割と挿入を行うことが効率的である。しかし、例えば、暗号化フラグとＣＲＣデータのみを分割、挿入する構成においては、エンコード・デコード処理部２３６が、挿入処理部として、この処理を行ってもよい。
【００７４】
エンコード・デコード処理部２３６は、ＲＬＬエンコードの他に、ランダマイズを行なうことが好ましい。図７は、ＲＬＬエンコード・デコード処理部３６２に加え、ランダマイザ３６１を有するエンコード・デコード処理部２３６内のエンコード処理を模式的に示すブロック図である。図７は、エンコード・デコード処理部２３６によるエンコード処理を模式的に示している。デコード処理は、図７における処理の逆処理である。
【００７５】
エンコード・デコード処理部２３６は、ランダマイズ処理を、ＲＬＬエンコードの前に行なう。ランダマイザ３６１は、ユーザ・データ全てをランダマイズする。暗号化フラグは、ディランダマイズ前に確認する必要があるため、ランダマイザ３６１は、暗号化フラグをランダマイズしない。また、ＣＲＣコードは暗号化フラグの後ろに続いており、処理のシンプリシティの点から、同様に、ランダマイザ３６１は、ＣＲＣコードをランダマイズしない。
【００７６】
上述のように、暗号化フラグとＣＲＣコードのみでは、ＲＬＬエンコード・データに挿入するブロックを生成するビットが不足するとき、ユーザ・データの一部を使用することが好ましい。図７においても、ユーザ・データの一部がブロック生成に使用される。ＲＬＬエンコード・デコード処理部３６２は、ユーザ・データの他の一部のＲＬＬエンコードを行い、ブロック生成に使用するユーザ・データの一部、暗号化フラグ、そしてＣＲＣコードは、ＲＬＬエンコードされることなく、その処理が省略される。
【００７７】
以上、本発明を好ましい実施形態を例として説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本発明を、磁気ディスクと異なるディスクを使用するディスク・ドライブに適用することができる。あるいは、データの再生のみ行うディスク・ドライブに適用することができる。
【００７８】
上記好ましい構成において、ＨＤＣが暗号化処理とエンコード・デコード処理を行う。ＨＤＤ内において、上記処理はいずれの回路ブロックが行ってもよい。例えば、ＲＷチャネルが同様の機能ブロックを有する場合には、それらの機能ブロックにおける処理に本発明を適用することができる。本発明はＲＬＬエンコード・デコードを含むエンコード・デコード処理を行うディスク・ドライブに特に有用であるが、異なるエンコード・デコード処理を行うディスク・ドライブにも適用することができる。また、ランダマイズを行なうことが一般的であるが、必ずしも行なわなくともよい。
【符号の説明】
【００７９】
１  ハードディスク・ドライブ、１０  エンクロージャ、１１  磁気ディスク
１２  ヘッド・スライダ、１３  アーム・エレクトロニクス（ＡＥ）、
１４  スピンドル・モータ、１５  ボイス・コイル・モータ、１６  アクチュエータ
２０  回路基板、２１  ＲＷチャネル、２２  モータ・ドライバ・ユニット
２３  ＨＤＣ、２４  ＲＡＭ、５１  ホスト
２３１  ホスト・インターフェース、２３２  ホスト・サイド・バッファ
２３３  メモリ・マネージャ、２３４  ディスク・サイド・バッファ
２３５  暗号処理部、２３６  エンコード・デコード処理部、２３７  エラー訂正処理部
２３８  ドライブ・マネージャ、２４１  セクタ・バッファ
３６１  ランダマイザ、３６２  ＲＬＬエンコード・デコード処理部
【図１】
2011123946.tif 000003
【図２】
2011123946.tif 000004
【図３】
2011123946.tif 000005
【図４】
2011123946.tif 000006
【図５】
2011123946.tif 000007
【図６】
2011123946.tif 000008
【図７】
2011123946.tif 000009