説明

ディスク・ドライブ及びディスク・ドライブにおけるデータ変換処理方法

【課題】暗号化されたユーザ・データのリード処理の遅延を低減する。
【解決手段】本発明の一実施形態において、暗号処理部235は、暗号化フラグが暗号化を指示するユーザ・データを暗号化する。エンコード・デコード処理部236が、磁気ディスクに格納するために、暗号化したユーザ・データをエンコードする。エンコード・デコード処理部は、磁気ディスクから読み出したユーザ・データをデコードし、暗号処理部は、暗号化フラグが暗号化を指示するユーザ・データを復号化する。暗号化フラグは、エンコードされることなく、磁気ディスクに格納される。これにより、暗号処理部は、ユーザ・データのデコード処理を開始する前に、暗号化フラグの内容を知ることができる。HDDは、ユーザ・データのデコードと復号化とをパイプライン処理により行なうことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はディスク・ドライブ及びディスク・ドライブにおけるデータ変換処理方法に関し、特に、ディスクに格納するユーザ・データを暗号化するディスク・ドライブにおけるデータ変換処理に関する。
【背景技術】
【0002】
ディスク・ドライブとして、光ディスク、光磁気ディスク、あるいはフレキシブル磁気ディスクなどの様々な態様のディスクを使用する装置が知られているが、その中で、ハードディスク・ドライブ(HDD)は、コンピュータ・システムの他、動画像記録再生装置やカーナビゲーション・システムなど、多くの電子機器において使用されている。
【0003】
HDDは、ホストからのライト・コマンドに従って、ユーザ・データを磁気ディスクに格納する。具体的には、HDDは、ライト・コマンドが指定する磁気ディスク上のアドレスに、ホストから受け取ったユーザ・データを格納する。また、HDDは、ホストからのリード・コマンドが指定するアドレスのデータを磁気ディスクから読み出し、それらをホストに転送する。
【0004】
ディスク・ドライブにおいて、ディスクに保存されるユーザ・データを不正なアクセスから保護するため、そのユーザ・データを暗号化する技術が知られている。例えば、特許文献1は、光ディスク・ドライブにおいて、光ディスクに格納されている暗号化データを復号化する技術を開示している。
【0005】
ユーザ・データの暗号化技術は、一部のHDDにおいても使用されている。HDDは、ホストから受信したユーザ・データを暗号化し、その暗号化したユーザ・データを磁気ディスクに格納する。また、リード処理において、HDDは暗号化されているユーザ・データを読み出し、それらを復号化してからホストに転送する。
【0006】
HDDにおける暗号化の手法として、全てのユーザ・データを暗号化して磁気ディスクに格納するのではなく、選択された一部のユーザ・データのみを暗号化して磁気ディスクに格納する手法が知られている。具体的には、ホストが暗号化をすべきデータを指定し、HDDは、その指定されたユーザ・データを暗号化して磁気ディスクに格納する。HDDは、ホストによって指定されていないユーザ・データを暗号化することなく、平文のユーザ・データを磁気ディスクに格納する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−122843号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
HDDにおいては、その記憶容量の増加と共に、パフォーマンスの向上が常に要求されている。ユーザ・データの暗号化処理(暗号化及び復号化)を行なうHDDにおいて、暗号化処理に伴うデータ転送遅延をできる限り小さくすることが重要である。ライト処理においては、HDDは、ライト・キャッシュ機能によりホストに対して遅滞なくライト完了を通知し、ホストに対する処理遅延を避けることができる。一方、リード処理においては、ホストから指示されたユーザ・データをホストに対して送信することが必要である。
【0009】
暗号化データのリード処理において、HDDは、磁気ディスクから読み出したユーザ・データをデコードし、さらに、デコードしたユーザ・データを復号化して平文のユーザ・データを生成することが必要となる。パフォーマンス向上のため、HDDは、磁気ディスクからのユーザ・データを読み出してからホストへのユーザ・データ転送を開始するまでの処理時間(リード・データ変換処理時間)を、短縮することが望まれる。
【0010】
さらに、選択された一部のユーザ・データのみを暗号化するHDDは、磁気ディスクから読み出したユーザ・データが暗号化されているかを判定し、暗号化されているユーザ・データを復号化し、暗号化されていないユーザ・データの復号化をスキップする。したがって、このように選択的にユーザ・データを暗号化するHDDにおいては、暗号化データについての判定に伴う上記リード・データ変換処理の遅延を小さくすることが望まれる。
【課題を解決するための手段】
【0011】
本発明の一態様は、ユーザ・データを暗号処理するディスク・ドライブである。このディスク・ドライブは、エンコードされているユーザ・データとエンコードを省略されている暗号化フラグとを記憶するディスクを回転するモータと、エンコード・デコード処理部と、暗号処理部とを有する。前記エンコード・デコード処理部は、前記ディスクに書き込む暗号化フラグをエンコードすることなく前記ディスクに書き込むユーザ・データをエンコードし、前記ディスクから読み出した暗号化フラグをデコードすることなく、前記ディスクから読み出したユーザ・データをデコードする。前記暗号処理部は、取得した暗号化フラグが暗号化を示しているユーザ・データを、前記エンコード・デコード処理部がエンコードする前に暗号化し、前記エンコード・デコード処理部が前記ディスクから読み出したユーザ・データのデコードを終了する前に前記ディスクから読み出された暗号化フラグを取得し、前記暗号化フラグが暗号化を示しているとき、前記ユーザ・データのデコード終了前にデコードされたデータの復号化を開始する。この構成により、暗号化されたユーザ・データのリード処理の遅延を低減することができる。
【0012】
好ましくは、前記ディスク・ドライブは、前記暗号処理部によるユーザ・データの暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加する、エラー・チェック可能コード生成部をさらに有する。これにより、暗号化されたユーザ・データを保護することができる。
【0013】
好ましくは、前記ディスク・ドライブは、前記エンコード・デコード処理部は、ユーザ・データのRLLエンコードを行い、RLLエンコード・ルールを満足するように、RLLエンコードされた前記ユーザ・データ内に暗号化フラグを挿入する、挿入処理部をさらに有する。これにより、データのより正確な記録再生を行うことができる。
【0014】
好ましくは、前記ディスク・ドライブは、前記暗号化処理によるユーザ・データの暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加するエラー・チェック可能コード生成部をさらに有し、前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードの少なくとも一部とを一つのブロックにまとめて、RLLエンコードされた前記ユーザ・データ内に挿入する。これにより、所定サイズ・ブロックを効率的に生成することができる。
【0015】
好ましくは、前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードとを含むデータを、同一データ長の複数のブロックに分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する。これにより、RLLエンコード・ルールへの影響を小さくしつつ、シンプルな処理により所定サイズのブロックを効率的に生成することができる。
【0016】
好ましい構成において、前記エンコード・デコード処理部は前記ユーザ・データの一部のRLLエンコードを省略し、前記挿入処理部は前記暗号化フラグと前記エラー・チェック可能コードと前記ユーザ・データの一部とを含むデータを、同一データ長の複数のブロックに分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する。これにより、RLLエンコード・ルールへの影響を小さくしつつ、シンプルな処理により所定サイズのブロックを効率的に生成することができる。
【0017】
好ましくは、前記ディスク・ドライブは、暗号化フラグと前記エンコード・デコード処理部がエンコードしたユーザ・データとを含むデータに対するECCコードを生成して付加する、エラー訂正処理部をさらに有し、前記エラー訂正処理部は前記挿入処理部として機能し、前記ECCコードを同一データ長の複数のブロック分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する。これにより、シンプルな構成により、RLLエンコード・ルールへの影響を小さくしつつデータを挿入することができる。
【0018】
好ましくは、前記エラー訂正処理部は、前記暗号化フラグをRLLエンコードされた前記ユーザ・データに挿入した後に、前記ECCコードを挿入する。これにより、処理をよりシンプルなものとすることができる。
【0019】
好ましくは、前記エラー訂正処理部は、エラー訂正処理の後に、暗号化フラグを前記暗号処理部に転送する。これにより、暗号処理部が適切にユーザ・データの暗号化の有無を判定することができる。
【0020】
本発明の他の態様は、ディスク・ドライブにおけるデータ変換処理方法である。この方法は、暗号化フラグが暗号化を指示するユーザ・データを暗号化する。前記暗号化フラグをエンコードすることなく、前記暗号化されたユーザ・データをエンコードする。前記エンコードしたユーザ・データと前記エンコードを省略された暗号化フラグとを、ディスクに格納する。前記ディスクから読み出したユーザ・データをデコードする。前記ユーザ・データの前記デコードの終了前に前記ディスクから読み出された暗号化フラグを取得し、前記暗号化フラグが暗号化を示しているとき、前記ユーザ・データのデコード終了前にデコードされたデータの復号化を開始する。この構成により、暗号化されたユーザ・データのリード処理の遅延を低減することができる。
【発明の効果】
【0021】
本発明によれは、暗号化されたユーザ・データのリード処理の遅延を低減することができる。
【図面の簡単な説明】
【0022】
【図1】本実施形態に係るHDDの全体構成を模式的に示すブロック図である。
【図2】本実施形態に係るHDDにおいて、リード処理及びライト処理におけるデータ変換処理に関連する構成要素を模式的に示すブロック図である。
【図3】本実施形態に係るHDDにおいて、リード処理及びライト処理におけるデータ変換処理におけるデータの変換の様子を模式的に示すブロック図である。
【図4】本実施形態において、リード処理におけるHDC内のデータ処理の流れを示すフローチャートである。
【図5】本実施形態において、暗号処理部とエンコード・デコード処理部とにおけるパイプライン処理について説明する図である。
【図6】本実施形態において、非RLLエンコード・データのブロックをRLLエンコード・データの挿入する方法を模式的に示す図である。
【図7】本実施形態において、RLLエンコード・デコード処理部に加え、ランダマイザを有するエンコード・デコード処理部内のエンコード処理を模式的に示すブロック図である。
【発明を実施するための形態】
【0023】
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。以下においては、ディスク・ドライブの一例であるハードディスク・ドライブ(HDD)において、本発明の実施形態を説明する。
【0024】
本実施形態において、HDDは、ユーザ・データを暗号化し、その暗号化したユーザ・データを磁気ディスクに格納する。HDDは、指定されたユーザ・データを暗号化して磁気ディスクに格納し、指定されていないユーザ・データを暗号化することなく磁気ディスクに格納する。リード処理において、HDDは、暗号化されているユーザ・データを復号化してホストへ転送し、暗号化されていないユーザ・データの復号化を行うことなくホストに転送する。
【0025】
ユーザ・データに暗号化フラグが付されている。暗号化フラグは、対応するユーザ・データが、暗号化すべきデータであるか暗号化を省略すべきデータであるかを示す。典型的には、ホストが暗号化フラグ(暗号化の有無の指示)をセットする。HDDが、暗号化フラグをセットしてもよい。HDDは、暗号化フラグを参照することで、そのユーザ・データの暗号化/復号化についての判定を行う。暗号化フラグが暗号化を指示しているとき、HDDはユーザ・データを暗号化して磁気ディスクに書き込み、また、磁気ディスクから読み出したユーザ・データを復号化する。
【0026】
HDDは、ライト処理において、暗号化フラグが暗号化を指示するユーザ・データを暗号化し、暗号化したユーザ・データをエンコードしてから、ユーザ・データを磁気ディスクに格納する。リード処理において、HDDは、磁気ディスクから読み出したユーザ・データをデコードし、暗号化フラグが暗号化を指示するユーザ・データを復号化する。HDDは、暗号化フラグが非暗号化を指示するデータについては、暗号化及び復号化をスキップする。
【0027】
HDDは、暗号化フラグを、ユーザ・データと共に磁気ディスクに格納する。本実施形態の特徴として、HDDは、暗号化フラグをエンコードすることなく、磁気ディスクに格納する。これにより、HDDは、リード処理において、ユーザ・データのデコード処理を開始する前に、暗号化フラグの内容を知ることができる。HDDは、ユーザ・データのデコードと復号化とをパイプライン処理により行なう。
【0028】
具体的には、HDDは、ユーザ・データの全てのデコードを完了する前にユーザ・データの復号化を開始する。HDDは、ユーザ・データの一部のデコードを行いながら、デコードが終了している他の一部の復号化を行なう。このように、デコードと復号化を同時に行なうことで、リード処理の処理時間を短縮することができる。
【0029】
本実施形態のライト処理及びリード処理におけるデータ変換処理について詳細を説明する前に、まず、HDDの全体構成を説明する。図1は、HDD1の全体構成を模式的に示すブロック図である。エンクロージャ10の外側に固定された回路基板20に、リード・ライト・チャネル(RWチャネル)21、モータ・ドライバ・ユニット22、ロジック回路とMPUの集積回路であるハードディスク・コントローラ(HDC)23及びRAM24などの各回路が実装されている。
【0030】
エンクロージャ10内において、スピンドル・モータ(SPM)14は、所定の角速度で、磁気ディスク11を回転する。磁気ディスク11は、データを記憶するディスクである。各ヘッド・スライダ12は、磁気ディスク上を浮上するスライダと、スライダに固定され磁気信号と電気信号との間の変換(データの読み書き)を行うヘッド素子部とを備えている。各ヘッド・スライダ12はアクチュエータ16に支持されている。アクチュエータ16はボイス・コイル・モータ(VCM)15に連結され、回動軸を中心に回動することによって、ヘッド・スライダ12を回転する磁気ディスク11上においてその半径方向に移動する。
【0031】
モータ・ドライバ・ユニット22は、HDC23からの制御データに従って、SPM14とVCM15とを駆動する。アーム電子回路(AE:Arm Electronics)13は、HDC23からの制御データに従って複数のヘッド素子部12の中から磁気ディスク11にアクセス(リードもしくはライト)するヘッド・スライダ12を選択し、リード/ライト信号の増幅を行う。
【0032】
RWチャネル21は、リード処理において、AE13から供給されたリード信号を一定の振幅となるように増幅し、その後、AD変換、波形等化処理、ビタビ復号、シリアル・パラレル変換、エラー訂正処理などを行う。処理されたデータは、RWチャネル21からHDC23に転送される。また、RWチャネル21は、ライト処理において、HDC23から転送されたデータに対して、エラー訂正コードの追加、パラレル・シリアル変換、DA変換などの処理を行ってライト信号を生成し、ライト信号をAE13に出力する。
【0033】
コントローラの一例であるHDC23は、多くの機能を有する。MPUはRAM24にロードされたファーム・ウェアに従って動作して一部の機能を実行し、ハードウェア回路が他の一部の機能を実行する。HDC23は、リード/ライト処理制御、コマンド実行順序の管理、サーボ信号を使用したヘッド・ポジショニング制御(サーボ制御)、ホスト51との間のインターフェース制御、ディフェクト管理、エラー対応処理など、データ処理に関する必要な処理及びHDD1の全体制御を実行する。
【0034】
本形態のHDC23は、磁気ディスク11に記録されるユーザ・データの暗号処理を実行する。図2は、ユーザ・データのリード処理及びライト処理に関連するHDC23内の構成要素を模式的に示すブロック図である。HDC23は、ホスト・インターフェース231、ホスト・サイド・バッファ232、メモリ・マネージャ233、ディスク・サイド・バッファ234、暗号処理部235、エンコード・デコード処理部236、エラー訂正処理部237、そしてドライブ・マネージャ238を有している。これらは、論理回路で構成されている。
【0035】
ホスト・インターフェース231は、外部ホスト51とのデータ通信におけるインターフェースである。メモリ・マネージャ233は、データ・フローの制御やメモリ・バスのアクセス制御等を実施する。暗号処理部235は、ユーザ・データの暗号化及び復号化を行う。エンコード・デコード処理部236は、ユーザ・データが磁気ディスク11での記録に適したビット配列となるように、データのエンコード・デコード処理を行う。エラー訂正処理部237は、磁気ディスク11のデータの誤り検出及び誤り訂正処理を行う。
RAM24に形成されたセクタ・バッファ241は、ライト・データ及びリード・データを一時的に格納する。
【0036】
ライト処理において、ホスト・インターフェース231はホスト51からのユーザ・データを受信する。メモリ・マネージャ233はユーザ・データをホスト・サイド・バッファ232を介して受け取り、それらをセクタ・バッファ241に格納する。セクタ・バッファ241は、RAM24内の記憶領域である。メモリ・マネージャ233は、さらに、セクタ・バッファ241から取り出したユーザ・データをディスク・サイド・バッファ234に転送する。
【0037】
暗号処理部235は、ディスク・サイド・バッファ234から受け取ったユーザ・データを暗号化する。暗号処理部235は、暗号化フラグが指示するユーザ・データのみを暗号化する。暗号処理部235が使用する暗号アルゴリズムは、特に限定しない。また、暗号化フラグのビット数及びフォーマットは特に限定しない。暗号処理部235は、所定のブロック毎に暗号化を行なう。本構成において、データ・セクタ毎に暗号化する。暗号処理部235は、暗号化フラグが非暗号化を指示するユーザ・データの暗号化を省略し、平文の(暗号化されていない)データ・セクタをエンコード・デコード処理部236に転送する。
【0038】
エンコード・デコード処理部236は、磁気ディスク11にデータを書き込むためのエンコード処理を行う。エンコード・デコード処理部236は、所定のブロック毎にエンコードを行なう。本構成において、データ・セクタ毎にエンコードする。典型的な構成において、エンコード・デコード処理部236は、データをランダマイズし、さらに、そのランダマイズしたデータをRLLエンコードする。RLLは、ラン・レングス・リミテッドの略称である。本実施形態の特徴として、エンコード・デコード処理部236は暗号化フラグを含む所定データのエンコードを行なうことなく、平文の(エンコードされていない)上記所定データをエラー訂正処理部237に転送する。この点については後述する。
【0039】
本実施形態において、暗号処理部235とエンコード・デコード処理部236とはパイプライン化されている。エンコード・デコード処理部236は、暗号処理部235が暗号化を行なっているデータ・セクタと同じデータ・セクタのエンコードを並行して行うことができる。エンコード・デコード処理部236は、データ・セクタ内において暗号処理部235が暗号化したデータを受け取り、暗号処理部235が他の部分を暗号化している間に受け取った部分のエンコードを行なう。この点については後述する。
【0040】
エラー訂正処理部237は、受け取ったデータからECCコードを生成し、受け取ったデータとECCコードとをドライブ・マネージャ238に転送する。エラー訂正処理部237は、所定のブロック毎にECCコードを生成する。本構成において、データ・セクタ毎にECCコードを生成する。ドライブ・マネージャ238は、エラー訂正処理部237から受け取ったデータをRWチャネル21に転送する。
【0041】
リード処理において、エラー訂正処理部237からは、ドライブ・マネージャ238を介して、RWチャネル21から受け取ったデータのエラー訂正処理を行う。エラー訂正は、典型的に、データ・セクタ毎である。エラー訂正されたデータは、エンコード・デコード処理部236に転送され、デコード処理される。デコード処理も、典型的に、データ・セクタ毎に行なわれる。上述のようにエンコードされなかったデータのデコードは不要である。
【0042】
上述のように、エンコード・デコード処理部236と暗号処理部235と間はパイプライン化されている。暗号処理部235は、データ・セクタ内においてエンコード・デコード処理部236がデコードした部分を順次受け取り、復号化する。ライト処理において暗号化していないデータは、復号化されることなく、ディスク・サイド・バッファ234に転送される。
【0043】
メモリ・マネージャ233は、ディスク・サイド・バッファ234から受け取ったデータをセクタ・バッファ241に一旦格納した後、そこから取り出してホスト・サイド・バッファ232に出力する。ホスト・インターフェース231は、ホスト・サイド・バッファ232から受け取ったデータを、ホスト51に転送する。
【0044】
上記ライト処理及びリード処理において、本実施形態は、リード処理及びライト処理におけるデータ変換処理に特徴を有している。以下においては、上記構成要素におけるデータ処理について具体的に説明を行なう。図3は、メモリ・マネージャ233からエラー訂正処理部237までの各構成要素のデータ処理及びデータの変化の様子を模式的に示すブロック図である。これらのブロックにおいて、ライト処理とリード処理とは逆の処理であり、各ブロック間で転送されるデータのフォーマットは、リード処理とライト処理との間で同じである。
【0045】
ライト処理において、メモリ・マネージャ233は、ユーザ・データと暗号化フラグとをディスク・サイド・バッファ234に転送する。暗号化フラグはユーザ・データの最後尾に付されている。ディスク・サイド・バッファ234は、受け取ったユーザ・データと暗号化フラグから、CRCコードを生成する。ユーザ・データの暗号化前にCRCコードを付すことで、暗号化されたユーザ・データをエラーから保護することができる。設計によっては、エラー・チェック可能なコードとして、CRCコードに代えて、ECCコードを付してもよい。
【0046】
ディスク・サイド・バッファ234は、ユーザ・データを転送する前に、暗号化フラグを暗号処理部235に転送する。暗号処理部235は、暗号化フラグを参照することで、これら受け取るユーザ・データの暗号化すべきか否かを判定する。図3は、暗号処理部235がユーザ・データを暗号化する処理例を示している。暗号化フラグが暗号化しないことを指示するとき、ユーザ・データは、平文のままエンコード・デコード処理部236に転送される。
【0047】
暗号化フラグが暗号化を指示しているとき、暗号処理部235はユーザ・データを暗号化する。暗号化フラグとCRCコードとは、暗号化されない。上述のように、暗号処理部235とエンコード・デコード処理部236とはパイプライン処理が可能である。暗号処理部235は、データ・セクタ内の暗号化した部分からエンコード・デコード処理部236に転送する。エンコード・デコード処理部236は、暗号処理部235がデータ・セクタの暗号化処理を終了する前に、受け取った部分のエンコードを開始する。
【0048】
エンコード・デコード処理部236は、ユーザ・データをエンコードするが、暗号化フラグをエンコードしない。処理をシンプルなものとするため、好ましくは、CRCコードは、暗号化フラグの後ろのビット列である。このデータ配列においては、CRCコードもエンコードしないことが好ましい。これにより、処理をシンプルなものとできる。設計によっては、CRCコードをエンコードしてもよい。エンコード・デコード処理部236は、ユーザ・データの全てをエンコードする、あるいは、一部のみをエンコードしてもよい。図3の例においては、全てのユーザ・データがエンコードされている。
【0049】
エラー訂正処理部237は、ユーザ・データ、暗号化フラグ、そしてCRCコードを受け取り、それらからECCコードを生成する。ECCコードは、上記全てのデータをエラーから保護する。エラー訂正処理部237は、ユーザ・データ、暗号化フラグ、CRCコード、そしてECCコードからなるデータを、RWチャネル21に転送する。
【0050】
次に、図3のブロック図に加えて図4のフローチャートを参照して、リード処理について説明する。リード処理において、エラー訂正処理部237は、ECCコードを使用して必要なエラー訂正を行う(S11)。エラー訂正処理部237は、エラー訂正処理の後、取得した暗号化フラグを、暗号処理部235に転送する(S12)。エンコード・デコード処理部236は、エンコードされているデータをデコードする(S13)。図3の例においては、エンコード・デコード処理部236はエンコードされている全てのユーザ・データをデコードし、暗号処理部235に転送する(S14)。
【0051】
暗号処理部235は、取得した暗号化フラグを参照して、後に転送されてくるリード・データを暗号化するか否かを判定する(S15)。デコード処理と暗号処理部235における復号化処理はパイプライン処理である。ユーザ・データが暗号化されていない場合(S15におけるN)、暗号処理部235は、エンコード・デコード処理部236から転送されてくるデータを、復号化することなく、そのままディスク・サイド・バッファ234に転送する(S18)。
【0052】
暗号化フラグがユーザ・データの暗号化を示しているとき(S15におけるY)、暗号処理部235は、エンコード・デコード処理部236から転送されてくる暗号化データを順次復号化する。デコードと復号化はパイプライン処理である。暗号処理部235は、エンコード・デコード処理部236のデコードと並行して、データの復号化を行う(S16)。暗号処理部235は、復号化したデータを、順次ディスク・サイド・バッファ234に転送する(S17)。暗号化フラグとCRCは暗号化されていないため、それらは復号化されることなくディスク・サイド・バッファ234に転送される。
【0053】
ディスク・サイド・バッファ234は、CRCコードによるエラー・チェックを行なう。CRCコードがエラーの存在を示しているとき、HDC23は、磁気ディスク11から同一のデータ・セクタをもう一度読み出す。繰り返しエラーが検出される場合、HDC23は、そのエラーに対応する処理を実行する。エラー対応処理は広く知られた技術であり説明を省略する。
【0054】
上記説明から理解されるように、暗号化フラグはエンコードされることなく磁気ディスク11に格納される。このため、エンコード・デコード処理部236のデコードを待つことなく、暗号処理部235は、ユーザ・データが暗号化されているか否かを知ることができる。そのため、デコード処理と復号化処理とをパイプライン化することができ、暗号処理部235は、エンコード・デコード処理部236のデコード終了を待つことなく、転送されてきた暗号化データの復号を開始することができる。これにより、リード処理の処理時間を短縮し、パフォーマンスを向上することができる。
【0055】
また、デコード処理と復号化処理を同時に行うことで、暗号処理部235が復号化を開始する前に、エンコード・デコード処理部236がデコードしたデータをメモリ(SRAM)に保持しておく必要がなくなる。これにより、HDC23の回路規模を低減することができる。
【0056】
上述のように、ユーザ・データには、暗号化の前にCRCコードが付される。このため、ユーザ・データの暗号化から暗号化されたデータにECCコードが付されるまで、また、ECCコードによるエラー訂正された暗号化データが復号化されるまでの間におけるエラーから、ユーザ・データを保護することができる。
【0057】
図5を参照して、暗号処理部235とエンコード・デコード処理部236とにおけるパイプライン処理について説明を行なう。図5は、リード処理におけるデコード及び復号化のタイミング・チャートである。エラー訂正処理部237は、データ・セクタkのエラー訂正を行うと、エラー訂正処理の終了時に暗号化フラグを確定する。さらに、エラー訂正処理部237は、エラー訂正終了時にエンコード・デコード処理部236への転送を開始する。データ・セクタkの転送開始と、暗号化フラグの暗号処理部235への転送は同時に行われる。
【0058】
エンコード・デコード処理部236はデータ・セクタkのデコードを開始し、デコードしたデータを暗号処理部235に転送する。暗号処理部235にデコードされたデータ・セクタkの先頭データが転送されるときに、暗号処理部235は暗号化フラグを取得する。暗号処理部235は、暗号化フラグを参照して、転送されるデータ・セクタkを復号化するか否かを決定する。
【0059】
図5の例において、暗号処理部235は、転送されたデータ・セクタkとデータ・セクタk+1とを復号化する。データ・セクタkのデコードと復号とが並行して実行される。また、エラー訂正処理部237は、その間に、次のデータ・セクタk+1のエラー訂正処理を実行する。
【0060】
エンコード・デコード処理部236は、磁気ディスク11からのリードにおけるエラー・レートが低減されるように、ユーザ・データのエンコードを行なう。エンコードの典型的な手法は、RLLエンコードである。広く知られているように、RLLエンコードは、0もしくは1のビットの連続数が規定数未満となるようにデータをエンコードする手法である。RLLエンコードは広く知られた技術であり詳細な説明を省略する。
【0061】
上述のように、本形態のエンコード・デコード処理部236は、暗号化フラグをエンコードすることなくディスク側ブロックに転送する。また、暗号化フラグを付した後のデータ処理において付されるCRCコードは、処理のシンプリシティの点から暗号化フラグよりも後のビット列として追加され、RLLエンコードされない。これらのデータも磁気ディスク11に書き込まれるため、RLLエンコード・ルールからできるだけはずれていないことが好ましく、RLLエンコード・ルールに従っていることがさらに好ましい。
【0062】
また、エラー訂正処理部237は、エンコード・デコード処理部236のエンコード処理の後にECCコードを生成する。ECCコードもエンコード・デコード処理部236によりエンコードされない。ECCコードも、暗号化フラグやCRCコードと同様に、RLLエンコード・ルールからできるだけはずれていないことが好ましく、RLLエンコード・ルールに従っていることがさらに好ましい。
【0063】
本形態のHDC23は、RLLエンコードされていないデータを複数のブロックに分割し、それらをRLLエンコードされているデータに分離して挿入することで、エラー・レートを低減する。好ましい構成において、分割したブロックのデータ長と、RLLエンコード・データに挿入したブロック間のRLLエンコード・データのデータ長とは、RLLエンコード・ルールが満足されるように設定されている。
【0064】
以下において、好ましい構成として、暗号化フラグ、CRCコード、そしてECCコードの全てを含む非RLLエンコード・データを複数ブロックに分けてRLLエンコード・データに挿入する例を説明する。このように、全ての非RLLエンコード・データをブロックに分割することが好ましいが、その一部のみであっても、エラー・レート低減の効果を奏する。
【0065】
図6は、非RLLエンコード・データのブロックをRLLエンコード・データに挿入する方法を模式的に示す図である。本例において、RLLエンコードされる前、フレームは、4096ビット・ユーザ・データ、それに続く1ビット暗号化フラグ、その後ろの25ビットCRCコードで構成されている。エンコード・デコード処理部236は、4096ビット・ユーザ・データにおける4072ビット・データをRLLエンコードする。24ビット・ユーザ・データ、1ビット暗号化フラグ、25ビットCRCコードは、RLLエンコードされずに、平文である。
【0066】
RLLエンコードあるいは回路構成の点から、ユーザ・データ以外のデータに別のデータを追加することが好ましいとき、ユーザ・データの一部をRLLエンコードせず、そのデータを追加することが好ましい。これにより、RLLエンコードの方法(回路構成含む)に対してフレキシブルに対応することができるとともに、データ容量の減少を避けることができる。
【0067】
エラー訂正処理部237は、4200ビットRLLエンコード・データと、50ビット平文とから、400ビットECCコードを生成する。エラー訂正処理部237は、揮発性のメモリであるSRAMを有しており、上記データをSRAM内に格納する。その後、エラー訂正処理部237は、4200ビットRLLエンコード・データに、50ビット平文の複数ブロックと、400ビットECCコードの複数ブロックとを挿入する。
【0068】
例えば、エラー訂正処理部237は、50ビット平文(暗号化フラグ、CRCコード、そしてユーザ・データの一部)を分割して5つの10ビット・ブロック生成し、それらをRLLエンコード・データに分離した位置に挿入する。同様に、400ビットECCコードを分割して40の10ビット・ブロック生成し、それらをRLLエンコード・データに分離した位置に挿入する。
【0069】
上述のように、ブロックは、RLLエンコード・ルールを満足するブロック長とブロック間隔を有することが好ましい。処理のシンプリシティの観点から、ブロック長は同一であり、また、分散して挿入されるブロック間の距離は一定であることが、好ましい。
【0070】
エラー訂正処理部237は、SRAMから読み出すデータのアドレスを選択することで、複数のブロックをRLLエンコード・データ内に挿入する。例えば、エラー訂正処理部237内のSRAMは、RLLエンコード・データ、50ビット平文、そしてECCコードのアドレス順序でそれらを格納している。エラー訂正処理部237は、SRAMからデータを読み出す順序を制御することで、図6の最下段に示すデータを生成しつつドライブ・マネージャ238にデータを転送する。
【0071】
ECCコードは、RLLエンコード・データと50ビット平文から生成され、典型的には、それらの後ろに付される。したがって、処理のシンプリシティの点からは、図6の最下段に示すように、50ビット平文のブロックを挿入した後、ECCコードのブロックを挿入することが好ましい。図6の例において、いずれのブロックも同一ブロック長であり、ブロック間隔も一定である。
【0072】
エラー訂正処理部237は、リード処理において、図6の最下段の示フォーマットのデータをドライブ・マネージャ238から取得する。転送されるデータをSRAMに格納するとき、SRAM内の格納アドレスを制御することで、3段目のフォーマットのデータを生成することができる。エラー訂正処理部237は、分散しているブロックを抽出しつつ、連続するRLLエンコード・データとその後ろの50ビット平文とを連続するアドレスに格納することができる。また、ECCコードのブロックを抽出してRAM内の連続アドレスに格納する。エラー訂正処理部237は、ECCコードによるエラー訂正を行った後、暗号化フラグを暗号処理部235に転送する。
【0073】
このように、暗号化フラグとCRCコードに加え、ECCコードをブロックに分割してRLLエンコード・データ内に挿入する構成においては、エラー訂正処理部237が挿入処理部として機能し、全てのデータの分割と挿入を行うことが効率的である。しかし、例えば、暗号化フラグとCRCデータのみを分割、挿入する構成においては、エンコード・デコード処理部236が、挿入処理部として、この処理を行ってもよい。
【0074】
エンコード・デコード処理部236は、RLLエンコードの他に、ランダマイズを行なうことが好ましい。図7は、RLLエンコード・デコード処理部362に加え、ランダマイザ361を有するエンコード・デコード処理部236内のエンコード処理を模式的に示すブロック図である。図7は、エンコード・デコード処理部236によるエンコード処理を模式的に示している。デコード処理は、図7における処理の逆処理である。
【0075】
エンコード・デコード処理部236は、ランダマイズ処理を、RLLエンコードの前に行なう。ランダマイザ361は、ユーザ・データ全てをランダマイズする。暗号化フラグは、ディランダマイズ前に確認する必要があるため、ランダマイザ361は、暗号化フラグをランダマイズしない。また、CRCコードは暗号化フラグの後ろに続いており、処理のシンプリシティの点から、同様に、ランダマイザ361は、CRCコードをランダマイズしない。
【0076】
上述のように、暗号化フラグとCRCコードのみでは、RLLエンコード・データに挿入するブロックを生成するビットが不足するとき、ユーザ・データの一部を使用することが好ましい。図7においても、ユーザ・データの一部がブロック生成に使用される。RLLエンコード・デコード処理部362は、ユーザ・データの他の一部のRLLエンコードを行い、ブロック生成に使用するユーザ・データの一部、暗号化フラグ、そしてCRCコードは、RLLエンコードされることなく、その処理が省略される。
【0077】
以上、本発明を好ましい実施形態を例として説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本発明を、磁気ディスクと異なるディスクを使用するディスク・ドライブに適用することができる。あるいは、データの再生のみ行うディスク・ドライブに適用することができる。
【0078】
上記好ましい構成において、HDCが暗号化処理とエンコード・デコード処理を行う。HDD内において、上記処理はいずれの回路ブロックが行ってもよい。例えば、RWチャネルが同様の機能ブロックを有する場合には、それらの機能ブロックにおける処理に本発明を適用することができる。本発明はRLLエンコード・デコードを含むエンコード・デコード処理を行うディスク・ドライブに特に有用であるが、異なるエンコード・デコード処理を行うディスク・ドライブにも適用することができる。また、ランダマイズを行なうことが一般的であるが、必ずしも行なわなくともよい。
【符号の説明】
【0079】
1 ハードディスク・ドライブ、10 エンクロージャ、11 磁気ディスク
12 ヘッド・スライダ、13 アーム・エレクトロニクス(AE)、
14 スピンドル・モータ、15 ボイス・コイル・モータ、16 アクチュエータ
20 回路基板、21 RWチャネル、22 モータ・ドライバ・ユニット
23 HDC、24 RAM、51 ホスト
231 ホスト・インターフェース、232 ホスト・サイド・バッファ
233 メモリ・マネージャ、234 ディスク・サイド・バッファ
235 暗号処理部、236 エンコード・デコード処理部、237 エラー訂正処理部
238 ドライブ・マネージャ、241 セクタ・バッファ
361 ランダマイザ、362 RLLエンコード・デコード処理部

【特許請求の範囲】
【請求項1】
ユーザ・データを暗号処理するディスク・ドライブであって、
エンコードされているユーザ・データとエンコードを省略されている暗号化フラグとを記憶するディスク、を回転するモータと、
前記ディスクに書き込む暗号化フラグをエンコードすることなく、前記ディスクに書き込むユーザ・データをエンコードし、
前記ディスクから読み出した暗号化フラグをデコードすることなく、前記ディスクから読み出したユーザ・データをデコードする、
エンコード・デコード処理部と、
取得した暗号化フラグが暗号化を示しているユーザ・データを、前記エンコード・デコード処理部がエンコードする前に暗号化し、
前記エンコード・デコード処理部が前記ディスクから読み出したユーザ・データのデコードを終了する前に前記ディスクから読み出された暗号化フラグを取得し、前記暗号化フラグが暗号化を示しているとき、前記ユーザ・データのデコード終了前にデコードされたデータの復号化を開始する、
暗号処理部と、
を有する、ディスク・ドライブ。
【請求項2】
前記暗号処理部によるユーザ・データの暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加する、エラー・チェック可能コード生成部をさらに有する、
請求項1に記載のディスク・ドライブ。
【請求項3】
前記エンコード・デコード処理部は、ユーザ・データのRLLエンコードを行い、
RLLエンコード・ルールを満足するように、RLLエンコードされた前記ユーザ・データ内に暗号化フラグを挿入する、挿入処理部をさらに有する、
請求項1に記載のディスク・ドライブ。
【請求項4】
前記暗号化処理によるユーザ・データの暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加する、エラー・チェック可能コード生成部をさらに有し、
前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードの少なくとも一部とを一つのブロックにまとめて、RLLエンコードされた前記ユーザ・データ内に挿入する、
請求項3に記載のディスク・ドライブ。
【請求項5】
前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードとを含むデータを、同一データ長の複数のブロックに分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項4に記載のディスク・ドライブ。
【請求項6】
前記エンコード・デコード処理部は、前記ユーザ・データの一部のRLLエンコードを省略し、
前記挿入処理部は、前記暗号化フラグと前記エラー・チェック可能コードと前記ユーザ・データの一部とを含むデータを、同一データ長の複数のブロックに分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項5に記載のディスク・ドライブ。
【請求項7】
暗号化フラグと前記エンコード・デコード処理部がエンコードしたユーザ・データとを含むデータに対するECCコードを生成して付加する、エラー訂正処理部をさらに有し、
前記エラー訂正処理部は、前記挿入処理部として機能し、前記ECCコードを同一データ長の複数のブロック分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項3に記載のディスク・ドライブ。
【請求項8】
前記エラー訂正処理部は、前記暗号化フラグをRLLエンコードされた前記ユーザ・データに挿入した後に、前記ECCコードを挿入する、
請求項7に記載のディスク・ドライブ。
【請求項9】
前記エラー訂正処理部は、エラー訂正処理の後に、暗号化フラグを前記暗号処理部に転送する、
請求項7に記載のディスク・ドライブ。
【請求項10】
ディスク・ドライブにおけるデータ変換処理方法であって、
暗号化フラグが暗号化を指示するユーザ・データを暗号化し、
前記暗号化フラグをエンコードすることなく、前記暗号化されたユーザ・データをエンコードし、
前記エンコードしたユーザ・データと前記エンコードを省略された暗号化フラグとを、ディスクに格納し、
前記ディスクから読み出したユーザ・データをデコードし、
前記ユーザ・データの前記デコードの終了前に前記ディスクから読み出された暗号化フラグを取得し、前記暗号化フラグが暗号化を示しているとき、前記ユーザ・データのデコード終了前にデコードされたデータの復号化を開始する、
方法。
【請求項11】
ユーザ・データの前記暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加する、
請求項10に記載の方法。
【請求項12】
前記エンコード・デコード処理部は、ユーザ・データのRLLエンコードを行い、
RLLエンコード・ルールを満足するように、RLLエンコードされた前記ユーザ・データ内に暗号化フラグを挿入する、挿入処理部をさらに有する、
請求項10に記載の方法。
【請求項13】
ユーザ・データの前記暗号化の前に、そのユーザ・データのエラー・チェックが可能なコードを生成して付加し、
前記暗号化フラグと前記エラー・チェック可能コードの少なくとも一部とを一つのブロックにまとめて、RLLエンコードされた前記ユーザ・データ内に挿入する、
請求項12に記載の方法。
【請求項14】
前記暗号化フラグと前記エラー・チェック可能コードとを含むデータを、同一データ長の複数のブロック分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項13に記載の方法。
【請求項15】
前記ユーザ・データの一部のRLLエンコードを省略し、
前記暗号化フラグと前記エラー・チェック可能コードと前記ユーザ・データの一部とを含むデータを、同一データ長の複数のブロックに分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項14に記載の方法。
【請求項16】
暗号化フラグと前記エンコード・デコード処理部がエンコードしたユーザ・データとを含むデータに対するECCコードを生成して付加し、
前記挿入処理部として機能し、前記ECCコードを同一データ長の複数のブロックに分けて、RLLエンコードされた前記ユーザ・データ内に分けて挿入する、
請求項12に記載の方法。
【請求項17】
前記暗号化フラグをRLLエンコードされた前記ユーザ・データに挿入した後に、前記ECCコードを挿入する、
請求項16に記載の方法。
【請求項18】
エラー訂正処理の後に、暗号化フラグを前記暗号処理部に転送する、
請求項16に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−123946(P2011−123946A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−280408(P2009−280408)
【出願日】平成21年12月10日(2009.12.10)
【出願人】(503116280)ヒタチグローバルストレージテクノロジーズネザーランドビーブイ (1,121)
【Fターム(参考)】