(57)【要約】【課題】  ＨＤＤのパフォーマンスを向上する。【解決手段】  磁気ディスク１２１からＭＢＲが読み出され、読み出されたＭＢＲはイベント・ハンドラ３０４によって、セクタ・バッファ３０７に記憶される。セグメント制御部３０２は、セクタ・バッファ３０７に記憶されているＭＢＲを取得し、パーティション・タイプのフィールドを参照してファイル・システムを特定する。セグメント制御部は、キャッシュ・モード・テーブル３０５を参照し、ＭＢＲに記憶されているファイル・システムに対応するキャッシュ・モードを決定するこの後のリード及びライト処理において、決定されたキャッシュ・モードに従って、バッファ・ハンドリング及びコマンド実行制御を行う。ファイル・システムに応じて好適なキャッシュ・モードを選択することでパフォーマンスを向上することができる。【選択図】  図４
2005267497.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するメディアと、
前記メディアへのライト・データ及び／もしくは前記メディアからのリード・データを、一時的に記憶するセクタ・バッファと、
前記メディアに記憶されているデータのファイル・システムに基づいてキャッシュ・モードを決定する、キャッシュ・モード決定部と、
前記決定されたキャッシュ・モードに従って、前記セクタ・バッファをハンドリングする制御部と、
を有するデータ記憶装置。
【請求項２】
前記キャッシュ・モード決定部は、予め登録された複数のキャッシュ・モードの中から、前記ファイル・システムに対応するキャッシュ・モードを選択する、請求項１に記載のデータ記憶装置。
【請求項３】
前記データ記憶装置は、複数のファイル・システムと前記複数のファイル・システムのそれぞれに対応付けられたキャッシュ・モードとを登録するキャッシュ・モード・テーブルを予め記憶し、
前記キャッシュ・モード決定部は、前記キャッシュ・モード・テーブルを参照して前記ファイル・システムに対応するキャッシュ・モードを決定する、
請求項２に記載のデータ記憶装置。
【請求項４】
前記メディアは、ファイル・システムを特定するファイル・システム特定データを記憶し、
前記データ記憶装置は、前記ファイル・システム特定データを参照して前記メディアに記憶されているデータのファイル・システムを特定するファイル・システム特定部をさらに備え、
前記キャッシュ・モード決定部は、前記ファイル・システム特定部により特定されたファイル・システムに対応するキャッシュ・モードを決定する、
請求項１に記載のデータ記憶装置。
【請求項５】
前記ファイル・システム特定部及び前記キャッシュ・モード決定部は、前記データ記憶装置の起動処理において前記ファイル・システム及びキャッシュ・モードを決定する、請求項４に記載のデータ記憶装置。
【請求項６】
前記ファイル・システム特定データは、前記メディアに記憶されているマスター・ブート・レコードに含まれている、請求項４に記載のデータ記憶装置。
【請求項７】
前記データ記憶装置は、複数のファイル・システムと前記複数のファイル・システムのそれぞれに対応付けられたキャッシュ・モードとを登録するキャッシュ・モード・テーブルを予め記憶し、
前記キャッシュ・モード決定部は、前記キャッシュ・モード・テーブルを参照して前記ファイル・システムに対応するキャッシュ・モードを決定する、
請求項４に記載のデータ記憶装置。
【請求項８】
前記データ記憶装置は、前記メディアに記憶されているデータのファイル・システムを特定するファイル・システム特定部をさらに備え、
前記メディアは、ファイル・システムを特定するファイル・システム特定データを記憶し、
前記ファイル・システム特定部は、データ記憶装置の起動処理において前記ファイル・システム特定データを参照してファイル・システムを特定し、
前記キャッシュ・モード決定部は、前記ファイル・システム特定部により特定されたファイル・システムに対応するキャッシュ・モードを決定する、
請求項１に記載のデータ記憶装置。
【請求項９】
ホストのデータを記憶するメディアと、前記メディアと前記ホストとの間のデータ転送において前記ホストのデータを一時的に記憶するセクタ・バッファと、を有するデータ記憶装置の制御方法であって、
（ａ）前記ホストが使用するファイル・システムを特定するステップと、
（ｂ）前記特定されたファイル・システムに基づいてキャッシュ・モードを決定するステップと、
（ｃ）前記決定されたキャッシュ・モードに従って、前記セクタ・バッファをハンドリングするステップと、
を有するデータ記憶装置の制御方法。
【請求項１０】
前記ステップ（ｂ）は、複数のファイル・システムと前記複数のファイル・システムのそれぞれに対応付けられたキャッシュ・モードとを登録するキャッシュ・モード・テーブル参照して、前記ファイル・システムに対応するキャッシュ・モードを決定する、請求項９に記載のデータ記憶装置の制御方法。
【請求項１１】
前記ステップ（ａ）は、前記ホストの起動処理において、予め前記データ記憶装置に記憶されているファイル・システム特定データを参照してファイル・システムを特定する、請求項９に記載のデータ記憶装置の制御方法。
【請求項１２】
前記ステップ（ａ）は、予め前記メディアに記憶されているファイル・システム特定データを参照してファイル・システムを特定し、
前記ステップ（ｂ）は、前記ファイル・システムに対応するキャッシュ・モードを、予め登録されている複数のキャッシュ・モードから選択する、
請求項９に記載のデータ記憶装置の制御方法。
【請求項１３】
前記ホストの起動に応答して前記メディアに記憶されている管理データを取得するステップをさらに備え、
前記ステップ（ｂ）は、前記管理データに含まれるファイル・システム特定データを参照してファイル・システムを特定する、
請求項９に記載のデータ記憶装置の制御方法。
【請求項１４】
ホストのデータを記憶する磁気ディスクと、
前記磁気ディスクと前記ホストとの間のデータ転送において前記ホストのデータを一時的に記憶するセクタ・バッファと、
前記磁気ディスクに記憶されているマスター・ブート・レコードを取得し、前記ホストのオペレーティング・システムが使用するファイル・システムを特定する、ファイル・システム特定部と、
複数のファイル・システムと前記複数のファイル・システムのそれぞれに対応付けられたキャッシュ・モードとを登録するキャッシュ・モード・テーブルを記憶する記憶部と、
前記キャッシュ・モード・テーブルを検索して、前記特定されたファイル・システムに対応するキャッシュ・モードを決定するキャッシュ・モード決定部と、
前記決定されたキャッシュ・モードに従って、前記セクタ・バッファをハンドリングする制御部と、
を有する磁気ディスク記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置、その制御方法及び磁気ディスク記憶装置に関し、特に、データ記憶装置におけるキャッシュ・モード制御に関する。
【背景技術】
【０００２】
データ記憶装置として、光ディスクや磁気テープなどの様々な態様のメディアを使用する装置が知られている。その中で、磁気ディスクにデータを記憶するハード・ディスク・ドライブ（ＨＤＤ）は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、あるいはデジタル・カメラなどで使用されるリムーバブルメモリなど、ＨＤＤの用途は、その優れた特性により益々拡大している。
【０００３】
ＨＤＤで使用される磁気ディスクは、同心円状に形成された複数のトラックを有しており、各トラックにはアドレス情報（サーボ情報）と、ユーザ・データが記憶される。薄膜素子で形成された磁気ヘッドがアドレス情報に従って所望の領域（セクタ）にアクセスすることによって、データ書き込みあるいはデータ読み出しを行うことができる。データ読み出し処理において、磁気ヘッドが磁気ディスクから読み出した信号は、信号処理回路によって波形整形や復号処理などの所定の信号処理が施され、ホストに送信される。ホストからの転送データは、信号処理回路によって同様に所定処理された後に、磁気ディスクに書き込まれる。
【０００４】
上記のように、磁気ディスクへのデータ書き込み、あるいは磁気ディスクからのデータ読み出し処理において、磁気ヘッドが磁気ディスクの記憶領域にアクセスするためのアクセス・タイムが必要とされる。このため、ホストとの間のデータ通信を高速化し、パフォーマンスを向上させる手法として、ＨＤＤにおいてキャッシュが使用される。ＨＤＤはユーザ・データを一時的に記憶するセクタ・バッファを備え、セクタ・バッファを介してホストとの間のデータ通信を行うことによって、パフォーマンスを上げることができる。ＨＤＤのキャッシュとして、一般に、リード・キャッシュとライト・キャッシュが知られている。
【０００５】
リード・キャッシュは、ホストから所定アドレスのリード・コマンドを受信する前に、データを前もって磁気ディスクから読み出し（Look ahead）、セクタ・バッファに記憶する。ホストからリード・コマンドを受信し、指定アドレスのデータがセクタ・バッファに記憶されている場合（キャッシュ・ヒット）、磁気ディスクへアクセスすることなく、セクタ・バッファに記憶されているデータをホストに返す。
【０００６】
ライト・キャッシュは、ホストからライト・コマンドを受信すると、ホストからのライト・データをセクタ・バッファに記憶し、磁気ディスクへの書き込み完了前に、コマンド・コンプリートをホストへ返す。これによって、ホストは新たなコマンドを発行することがきる。特に、２つのライト・コマンドが連続するセクタへのデータ書き込みである場合、磁気ディスクへのアクセス時間を省略することができることから、処理の高速化に大きく寄与することができる。
【０００７】
ＨＤＤにおけるバッファ・ハンドリングの手法、つまりリード・キャッシュあるいはライト・キャッシュの手法（キャッシュ・フィーチャ）として、上記の他に、様々な手法が知られている。例えば、Write Back Read Cacheは、セクタ・バッファに記憶されているライト・データについてリード・コマンドを受けると、そのライト・データの磁気ディスクへの書き出しが完了していない場合であっても、セクタ・バッファに記憶されているデータをホストに返す。
【０００８】
従来技術として、複数のキャッシュ・モードを備え、ファイルのアクセス・モードに応じて、最適なキャッシュ・モードを設定する技術が特許文献１に開示されている。特許文献１によれば、プログラムからのファイルへのアクセス・モードによりそのアクセス・モードに見合った適切なキャッシュ・モードがあり、適切なモードが設定、指定されていない場合にはパフォーマンスが低下する。
【０００９】
このため、ファイルのアクセス・モードに応じて、最適なキャッシュ・モードを設定することによって、ＨＤＤのパフォーマンスを向上する。特許文献１開示の技術は、ホストからの制御によりＨＤＤに対して複数のディスクキャッシュ・モードの設定を行う。さらに、ホストは、キャッシュ・モードによりファイルに最適なモードが設定されているディスクの領域にファイルを確保する。ファイル使用時に、ファイル・アクセス・タイプにより最適なキャッシュ・モードを設定する。ファイルに対応して最適なキャッシュ・モードが設定され、キャッシュの有効利用を可能にする。
【００１０】
【特許文献１】特開２００２−１０８７０４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ファイル・アクセス・タイプを特定する方法として、過去のアクセス履歴から推測する方法や特許文献１に開示されている方法の様に複数のディスクキャッシュ・モードを備えるものがある。しかし、これらの方法は必ずしも最適なパフォーマンスを達成することはできない。例えば、過去のアクセス履歴から推測する方法では、過去のいくつかのアクセスによってファイル・アクセス・タイプを推測するので、その推測自体に使われるアクセスには、適切なキャッシュ・モードが適用されない。また、特許文献１に開示の方法では、特定の単純なファイル・アクセス・タイプでは効果があるが、複雑な実環境上のファイル・アクセス・タイプにおいては、実現が困難である。実環境上のファイル・アクセス・タイプにおいて、パフォーマンスの向上を図るためには、前もって、実使用環境をシミュレートするようなベンチマークによる実測で、最適なキャッシュ・モードを決めておき、それを選択するようにすればよい。しかし、ホストの使用するファイル・システム（例えばＦＡＴなど）に応じて、適切なキャッシュ・モードは異なるので、ファイル・システムに応じて、適切なキャッシュ・モードを設定することが重要である。一方、パーソナル・コンピュータのＯＳ（Operating System）の多様化、ＨＤＤの用途の多様化が進み、ＨＤＤを使用するホストのファイル・システムは多種多様となっている。従って、異なるファイル・システムを使用するホストに応じて、ＨＤＤのキャッシュ・モードを変更、設定することができることが要求される。
【００１２】
本発明は上記の事情を背景としてなされたものであって、本発明の目的は、異なるファイル・システムに対して効率的なキャッシュ処理を行うことである。
【課題を解決するための手段】
【００１３】
以下に課題を解決するための手段を開示する。本項目において、いくつかの構成要素は、実施の形態において説明された構成要素と対応されている。しかし、この対応付けは、説明の容易のためになされたものであって、各要素は実施の形態の対応要素にのみ限定されるものでない。
【００１４】
本発明の第１の態様に係るデータ記憶装置は、データを記憶するメディア（例えば、磁気ディスク１２１）と、前記メディアへのライト・データ及び／もしくは前記メディアからのリード・データを、一時的に記憶するセクタ・バッファ（例えば、セクタ・バッファ３０７）と、前記メディアに記憶されているデータのファイル・システムに基づいてキャッシュ・モードを決定する、キャッシュ・モード決定部（例えば、セグメント制御部３０２）と、前記決定されたキャッシュ・モードに従って、前記セクタ・バッファをハンドリングする制御部（例えば、セグメント制御部３０２）と、を有する。ファイル・システムに基づいてキャッシュ・モードを決定することによって、異なるファイル・システムに対して適切なバッファ・ハンドリングを行うことができる。
【００１５】
前記キャッシュ・モード決定部は、予め登録された複数のキャッシュ・モードの中から前記ファイル・システムに対応するキャッシュ・モードを選択することが好ましい。さらに、前記データ記憶装置は、複数のファイル・システムと前記複数のファイル・システムのそれぞれに対応付けられたキャッシュ・モードとを登録するキャッシュ・モード・テーブル（例えば、キャッシュ・モード・テーブル３０５）を予め記憶し、前記キャッシュ・モード決定部は、前記キャッシュ・モード・テーブルを参照して前記ファイル・システムに対応するキャッシュ・モードを決定する。これによって、適切なキャッシュ・モードを効率的に決定することができる。
【００１６】
前記メディアは、ファイル・システムを特定するファイル・システム特定データ（例えば、図２におけるパーティション・タイプ）を記憶し、前記データ記憶装置は、前記ファイル・システム特定データを参照して前記メディアに記憶されているデータのファイル・システムを特定するファイル・システム特定部（例えば、セグメント制御部３０２）をさらに備え、前記キャッシュ・モード決定部は、前記ファイル・システム特定部により特定されたファイル・システムに対応するキャッシュ・モードを決定することが好ましい。メディアに記憶されたデータによりファイル・システムを特定することで、データ記憶装置の内部データ、内部処理によってキャッシュ・モード決定することができる。さらに、前記ファイル・システム特定部及び前記キャッシュ・モード決定部は、前記データ記憶装置の起動処理において前記ファイル・システム及びキャッシュ・モードを決定することが好ましい。これによって、実際のユーザ・データ伝送の前にキャッシュ・モードを決定することができる。あるいは、前記ファイル・システム特定データとして、前記メディアに記憶されているマスター・ブート・レコードに含まれているデータを使用することができる。
【００１７】
前記データ記憶装置は、前記メディアに記憶されているデータのファイル・システムを特定するファイル・システム特定部をさらに備え、前記メディアは、ファイル・システムを特定するファイル・システム特定データを記憶し、前記ファイル・システム特定部は、データ記憶装置の起動処理において前記ファイル・システム特定データを参照してファイル・システムを特定し、前記キャッシュ・モード決定部は、前記ファイル・システム特定部により特定されたファイル・システムに対応するキャッシュ・モードを決定することが好ましい。
【００１８】
本発明の第２の態様は、ホストのデータを記憶するメディアと、前記メディアと前記ホストとの間のデータ転送において前記ホストのデータを一時的に記憶するセクタ・バッファと、を有するデータ記憶装置の制御方法であって、（ａ）前記ホストが使用するファイル・システムを特定するステップと、（ｂ）前記特定されたファイル・システムに基づいてキャッシュ・モードを決定するステップと、（ｃ）前記決定されたキャッシュ・モードに従って、前記セクタ・バッファをハンドリングするステップと、を有する。ファイル・システムに基づいてキャッシュ・モードを決定することによって、異なるファイル・システムに対して適切なバッファ・ハンドリングを行うことができる。
【００１９】
前記ステップ（ｂ）は、複数のファイル・システムと前記複数のファイル・システムのそれぞれに対応付けられたキャッシュ・モードとを登録するキャッシュ・モード・テーブル参照して、前記ファイル・システムに対応するキャッシュ・モードを決定することが好ましい。これによって、適切なキャッシュ・モードを効率的に決定することができる。
【００２０】
前記ステップ（ａ）は、前記ホストの起動処理において、予め前記データ記憶装置に記憶されているファイル・システム特定データを参照してファイル・システムを特定することが好ましい。起動処理において特定することによって、実際のユーザ・データ伝送の前にキャッシュ・モードを決定することができる。
【００２１】
前記ステップ（ａ）は、予め前記メディアに記憶されているファイル・システム特定データを参照してファイル・システムを特定し、前記ステップ（ｂ）は、前記ファイル・システムに対応するキャッシュ・モードを、予め登録されている複数のキャッシュ・モードから選択することが好ましい。メディアに記憶されたデータによりファイル・システムを特定することで、データ記憶装置の内部データ、内部処理によってキャッシュ・モード決定することができる。
【００２２】
前記ホストの起動に応答して前記メディアに記憶されている管理データ（例えばＭＢＲ）を取得するステップをさらに備え、前記ステップ（ｂ）は、前記管理データに含まれるファイル・システム特定データを参照してファイル・システムを特定することができる。
【００２３】
本発明の第３の態様に係る磁気ディスク記憶装置は、ホストのデータを記憶する磁気ディスクと、前記磁気ディスクと前記ホストとの間のデータ転送において前記ホストのデータを一時的に記憶するセクタ・バッファと、前記磁気ディスクに記憶されているマスター・ブート・レコードを取得し、前記ホストのオペレーティング・システムが使用するファイル・システムを特定する、ファイル・システム特定部と、複数のファイル・システムと前記複数のファイル・システムのそれぞれに対応付けられたキャッシュ・モードとを登録するキャッシュ・モード・テーブルを記憶する記憶部と、前記キャッシュ・モード・テーブルを検索して、前記特定されたファイル・システムに対応するキャッシュ・モードを決定するキャッシュ・モード決定部と、前記決定されたキャッシュ・モードに従って、前記セクタ・バッファをハンドリングする制御部と、を有する。ファイル・システムに基づいてキャッシュ・モードを決定することによって、異なるファイル・システムに対して適切なバッファ・ハンドリングを行うことができる。
【発明の効果】
【００２４】
本発明によれば、ファイル・システムに応じたキャッシュ・モードを設定し、記憶装置のパフォーマンスを向上することができる。
【発明を実施するための最良の形態】
【００２５】
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。尚、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
【００２６】
図１は、本実施形態におけるデータ処理システム１００の概略構成を示す構成図である。データ処理システム１００は、コンピュータやデジタル・カメラなど、データ処理を行うホスト１１０と、データ記憶装置の一例であるハード・ディスク・ドライブ（ＨＤＤ）１２０を有している。ＨＤＤ１２０はホスト１１０から伝送されたデータを記憶し、記憶メディアの一例である１枚もしくは複数枚の磁気ディスク１２１、各磁気ディスク１２１の記録面に対応し、磁気ディスク１２１の記憶領域にアクセスする磁気ヘッド１２２を備えたヘッド・スタック・アセンブリ１２３、さらに、磁気ディスク１２１へのデータの書き込み及び磁気ディスク１２１からのデータ読み出しのために、これらの要素を制御するコントローラ１２４を備えている。
【００２７】
ホスト１１０から伝送されたホスト・ユーザ・データは、コントローラ１２４によって必要な処理がなされ、ライト信号に変換されたあと、ヘッド・スタック・アセンブリ１２３に送られる。磁気ヘッド１２２は、取得したライト信号に応じて、磁気ディスク１２１の記録面にデータを書き込む。一方、磁気ヘッド１２２によって磁気ディスクから読み出されたリード信号は、コントローラ１２４によってデジタル信号に変換され、必要な処理がなされたあと、ホスト１１０に伝送される。
【００２８】
磁気ディスク１２１は、磁性層が磁化されることによってデータを記録する不揮発性の記録媒体であり、ＨＤＤ１２０が動作しているときに、スピンドル・モータ１２５のスピンドル軸を中心として所定の速度で回転駆動される。ＨＤＤ１２０の非動作時には、磁気ディスク１２１は静止している。磁気ディスク１２１の表面には、データを格納するための区画として同心円状に複数のトラックが形成されている。
【００２９】
磁気ディスク１２１の表面には磁気ディスク１２１の半径方向に沿って形成されたサーボ・データ記憶領域が形成されている。磁気ディスク１２１の表面には複数のサーボ・データ記憶領域が形成され、各サーボ・データ記憶領域の間には、ユーザ・データ記憶領域が形成されている。ユーザ・データ記憶領域は、各トラックにおいて、円周方向に複数のセクタに分割されている。サーボ・データを磁気ヘッド１２２が読み取ることによって、磁気ヘッド１２２の位置に関する情報を取得することができる。サーボ・データは、トラック番号、サーボ・セクタ番号、及びバースト・パターンを有している。
【００３０】
ヘッド・スタック・アセンブリ１２３は、磁気ディスク１２１の表面に沿って揺動可能にフレーム内に取り付けられており、ボイス・コイル・モータ（ＶＣＭ）１２６によって駆動される。ヘッド・スタック・アセンブリ１２３の先端部にはスライダが固定され、スライダ表面に磁気ヘッド１２２が固定されている。磁気ヘッド１２２は、典型的には、再生ヘッドと記録ヘッドを一体的に形成した薄膜素子である。ヘッド・スタック・アセンブリ１２３が揺動することによって、磁気ヘッド１２２が磁気ディスク１２１の表面の半径方向に沿って移動する。これによって、磁気ヘッド１２２が所望の領域にアクセスすることができる。
【００３１】
図１の例においては、ヘッド・スタック・アセンブリ１２３は、一つの磁気ディスク１２１に対して２つの磁気ヘッド１２２を有しており、磁気ヘッドそれぞれが磁気ディスク１２１の各表裏面に対応する。尚、ＨＤＤ１２０は磁気ディスク１２１を１枚のみ有すること、あるいは、磁気ディスクの片面のみに対応する磁気ヘッド１２２を有することも可能である。
【００３２】
図１に示すように、コントローラ１２４は、リード／ライト・チャネル（Ｒ／Ｗチャネル）１２７、ハードディスク・コントローラ（ＨＤＣ）１２８、マイクロプロセッサ・ユニット（ＭＰＵ）１２９、メモリ１３０、モータ・ドライバ・ユニット１３１を有している。モータ・ドライバ・ユニット１３１は、ボイス・コイル・モータ・ドライバ（ＶＣＭドライバ）１３２及びスピンドル・モータ・ドライバ（ＳＰＭドライバ）１３３を有している。
【００３３】
Ｒ／Ｗチャネル１２７は、ホスト１１０から取得したデータについて、ライト処理及びリード処理を実行する。ライト処理において、Ｒ／Ｗチャネル１２７はＨＤＣ１２８から供給された書き込みデータをコード変調し、さらにコード変調された書き込みデータをライト信号（電流）に変換して磁気ヘッド１２２に供給する。磁気ヘッド１２２は、取得した信号に応じてコイルに電流を流すことによって磁気ディスク１２１にデータを書き込む。また、ホスト１１０にデータを供給する際にはリード処理を行う。リード処理において、Ｒ／Ｗチャネル１２７は磁気ヘッド１２２から供給されたリード信号からデータを抽出し、デコード処理を行う。デコード処理された読み出しデータは、ＨＤＣ１２８に供給される。
【００３４】
ＭＰＵ１２９は、メモリ１３０にロードされたマイクロ・コードに従って動作し、磁気ヘッド１２２のポジショニング制御、インターフェース制御、ディフェクト管理などのＨＤＤ１２０の全体の制御のほか、データ処理に関する必要な処理を実行する。特に、本形態において、ＭＰＵ１２９は、ホスト１１０との間のデータ通信におけるセクタ・バッファのハンドリング（キャッシュ処理）において、特徴的な処理を実行する。本形態のバッファ・ハンドリングについては、後に詳述される。ＨＤＤ１２０の起動に伴い、メモリ１３０には、ＭＰＵ１２９上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク１２１あるいはＲＯＭ（不図示）からロードされる。
【００３５】
Ｒ／Ｗチャネル１２７によって読み出されるデジタル・データは、ホスト１１０からのユーザ・データの他に、サーボ・データを含んでいる。Ｒ／Ｗチャネル１２７は読み出しデータからサーボ・データを抽出する。ＭＰＵ１２９は、マイクロ・コードに従って、サーボ・データを使用した磁気ヘッド１２２の位置決め制御処理を行う。ＭＰＵ１２９からの制御データはＶＣＭドライバ１３２に出力される。ＶＣＭドライバ１３２は制御信号に応じて駆動電流をＶＣＭ１２６に供給する。また、ＭＰＵ１２９は、マイクロ・コードに従って、スピンドル・モータ１２５の回転制御のために、モータ・ドライバ・ユニット１３１のレジスタにＳＰＭ制御データをセットする。ＳＰＭドライバ１３３は、セットされたＳＰＭ制御データに応じて、スピンドル・モータ１２５の回転制御を実行する。尚、例えば、サーボ制御は、ＨＤＣ１２８が実行するようにＨＤＤ１２０を構成することも可能である。
【００３６】
ＨＤＣ１２８は、ホスト１１０との間のインターフェース機能を備えており、ホスト１１０から伝送されるユーザ・データ及び、リード・コマンドやライト・コマンドを含む制御データなどを受信する。受信したユーザ・データは、Ｒ／Ｗチャネル１２７に転送される。また、Ｒ／Ｗチャネル１２７から取得した磁気ディスク１２１からの読み出しデータ、あるいは、データ転送のための制御データをホスト１１０に送信する。ＨＤＣ１２８は、この他、ユーザ・データについての誤り訂正処理などを実行する。
【００３７】
ＨＤＣ１２８とホスト１１０との間における制御データ及びユーザ・データ伝送、あるいは、ＨＤＣ１２８と磁気ディスク１２１（Ｒ／Ｗチャネル）との間のユーザ・データ伝送は、ＨＤＣ１２８及びＭＰＵ１２９上で動作するマイクロ・コードによって制御される。本形態のＨＤＤ１２０は、ホスト１１０から伝送されたライト・データ、あるいは、ホスト１１０へ伝送するリード・データを一時的に記憶するセクタ・バッファを有している。セクタ・バッファを介してホスト１１０との間のデータ通信を行うことによって、磁気ディスク１２１へのアクセス・タイムを短縮、省略し、パフォーマンスを向上することができる。以下において、本形態のバッファ・ハンドリング(キャッシュ処理)について説明される。
【００３８】
バッファ・ハンドリングについて、いくつかの手法（キャッシュ・フィーチャ）が知られている。一つ、もしくは、複数のキャッシュ・フィーチャを選択的に使用することによって、複数のバッファ・ハンドリング・モード（以下、キャッシュ・モードと呼ぶ）を構成することができる。本形態のＨＤＤ１２０は複数のキャッシュ・モードを備え、使用するキャッシュ・モードを変更することができる。ＨＤＤ１２０は、ホスト１１０のＯＳ（Operating System）、特に、ＯＳのファイル・システムに応じてキャッシュ・モードを変更、選択し、好適なキャッシュ・モードを選択することでパフォーマンスを向上することができる。ここで、ファイル・システムは、ＯＳ（ホスト）によるファイルの管理方式のことであり、ファイル・システムによって、ＨＤＤ１２０内でファイルの管理方法が決定される
【００３９】
ＨＤＤ１２０は、ホストが起動時にシステムを判別するために使用するＭＢＲ（Master Boot Record）を参照することによって使用されるファイル・システムを特定し、適切なキャッシュ・モードを決定する。磁気ディスク１２１にはＭＢＲが予め記憶されており、ホストはＨＤＤ１２０にアクセスするためにこの情報を必要とする。ＭＢＲは、ＯＳの起動プログラムの他、パーティションに関する情報を記憶するパーティション・テーブルを備えている。パーティション・テーブルには、ファイル・システムの種類を表すパーティション・タイプというフィールドが含まれている。磁気ディスク１２１に記憶されているＭＢＲによりキャッシュ・モードを決定することによって、ホストからの情報を必要とすることなく、ＨＤＤ１２０内部において適切なキャッシュ・モードを決定することができる。尚、ＨＤＤ１２０は磁気ディスク１２１とは別に不揮発性メモリを備え、そこにＭＢＲを記憶することも可能である。
【００４０】
典型的には、ＨＤＤ１２０は複数のパーティションに分けて使用され、各パーティションは論理的に別のドライブとしてホスト１１０に使用される。パーティションの分け方は、パーティション・テーブルによって表される。図２（ａ）は、ＭＢＲのデータ構造の概略を示している。ＭＢＲは、起動コード及びパーティション・テーブルを備えている。起動コードは、アクティブ・パーティションから起動用のプログラムを読み出すプログラムである。パーティション・テーブルには、磁気ディスク１２１におけるパーティションの位置及びサイズ、ＯＳを特定するＩＤなどが記憶されている。
【００４１】
パーティション・テーブルは、典型的には、１６バイトの４つのエントリからなり、ＨＤＤを４つのパーティションに分割することができる。各エントリは、図２（ｂ）に示すように、アクティブ・フラグ、ＣＨＳ（Cylinder Head Sector）開始セクタ、パーティション・タイプ、ＣＨＳ終了セクタ、ＬＢＡ（Logical Block Address）開始セクタ、パーティション・サイズの各フィールドを備えている。アクティブ・フラグは、典型的には、起動パーティションを識別するために使用される。ＣＨＳ開始セクタ、ＣＨＳ終了セクタは、それぞれ、ＣＨＳによって開始セクタ、終了セクタを特定する。ＬＢＡ開始セクタはＬＢＡによって開始セクタを特定する。
【００４２】
パーティション・タイプは、そのパーティションにおいて使用されるファイル・システムの種類を特定する。ファイル・システム（パーティション・タイプ）としてはいくつかのものが知られており、例示すれば、ＦＡＴ１６（File Allocation Table 16）（ＣＨＳ）、ＦＡＴ１６（ＬＢＡ）、ＦＡＴ３２（ＬＢＡ）、ＦｒｅｅＢＳＤ、ＮＴＦＳ（New Technology File System）、ＯＳ／２Boot Manager hidden FAT16、Ｌｉｎｕｘ  Ｓｗａｐなどが存在する。これらの各ファイル・システムは周知の技術であり、説明は省略される。
【００４３】
効率的なキャッシュ・モードは、ファイル・システムによって変化する。従って、ファイル・システムに応じて最適なキャッシュ・モードを決定することによって、パフォーマンスを向上することができる。ＨＤＤ１２０は、起動時にＭＢＲが読み出されるタイミングで、パーティション・テーブルのパーティション・タイプ・フィールドを参照することによって、ホストのファイル・システムを特定し、それに応じたキャッシュ・モードの選択を行う。起動後は、選択されたキャッシュ・モードによって、セクタ・バッファが制御される。
【００４４】
ここで、キャッシュ・フィーチャ及びキャッシュ・モードの具体例について説明する。本形態において、キャッシュ・フィーチャとして、（１）Write Back Read Cache、（２）Inhibit Read Abort Operation、（３）Read Before Pending Writeが説明される。（１）Write Back Read Cacheがenableである場合、セクタ・バッファに記憶されているライト・データについてリード・コマンドを受けると、そのライト・データの磁気ディスク１２１への書き出しが完了していない場合を含めて、セクタ・バッファに記憶されているデータがホスト１１０に返される。
【００４５】
（２）Inhibit Read Abort Operationがenableである場合、Read Abort Operationが禁止される。Read Abort Operationは、リード処理においてLook aheadにより先のデータを読み出している間にライト・コマンドが受領された場合に、リードを中止し、ライト・コマンドに対する処理を開始する。Inhibit Read Abort Operationは、この処理を禁止する。（３）Read Before Pending Writeがenableである場合、ＨＤＤ１２０は、前のライト・コマンドに対する処理を行う前に、後のリード・コマンドの処理を実行する。具体的には、ＨＤＤ１２０は、ライト・コマンド及びライト・データをホスト１１０から受け取ると、セクタ・バッファにライト・データを記憶し、コマンド・コンプリートをホスト１１０に返す。その後にリード・コマンドをホスト１１０から受け取ると、ライト処理の前に、リード処理を実行する。
【００４６】
上記の各キャッシュ・フィーチャ、あるいは、各キャッシュ・フィーチャの組み合わせによって、複数のキャッシュ・モードを構成することができる。例えば、以下のキャッシュ・モードを用意することができる。
（ａ）特別Featureなし
（ｂ）Write Back Read Cache
（ｃ）Inhibit Read Abort Operation
（ｄ）Write Back Read Cache and Inhibit Read Abort Operation
（ｅ）Read Before Pending Write and Inhibit Read Abort Operation
（ｆ）Write Back Read Cache and Read Before Pending Write and Inhibit Read Abort Operation
【００４７】
ここで、「（ａ）特別Featureなし」は、上記３つのキャッシュ・フィーチャ（１）、（２）、（３）のいずれも使用しないキャッシュ・モードである。複数のキャッシュ・フィーチャを含むキャッシュ・モード（ｄ）、（ｅ）、（ｆ）のそれぞれは、含まれるキャッシュ・フィーチャを全て実行する。尚、上記キャッシュ・モードは一例であって、他のキャッシュ・フィーチャ、あるいは、他のキャッシュ・フィーチャの組み合わせにより、適切なキャッシュ・モードを設定することができる。
【００４８】
図３は、上記のキャッシュ・モードと所定のファイル・システムの各組み合わせに対する、ベンチマーク・テストの結果を表すグラフである。Ｘ軸はキャッシュ・モード、Ｙ軸は測定値を示している。ベンチマーク・テスト・プログラムとしては、Business DiskWinMark99が使用された。ベンチマーク・テストは、所定パターンのデータ入出力処理を繰り返し、そのスピードを測定することによって、ＨＤＤのパフォーマンスを測る。ファイル・システムとしては、ＰＣの代表的なファイル・システムである、ＦＡＴ３２（ＬＢＡ）とＮＴＦＳが選択されている。ＦＡＴ３２（ＬＢＡ）とＮＴＦＳのそれぞれについて、上記６つのキャッシュ・モードのベンチマーク・テスト測定を行った。
【００４９】
図３のグラフは、キャッシュ・モード（ａ）のスコアを１００％として、他のキャッシュ・モードのテスト結果を相対値で表している。スコアが大きいほど、パフォーマンスが優れていることを示している。図３から理解されるように、ＮＴＦＳに対してはキャッシュ・モード（ｄ）もしくは（ｆ）が最適であり、ＦＡＴ３２（ＬＢＡ）に対してはキャッシュ・モード（ａ）が最適である。このように、ファイル・システムによってパフォーマンスの観点から最適なキャッシュ・モードは異なる。本形態のＨＤＤ１２０は、ファイル・システムに応じて適切なキャッシュ・モードを選択することで、パフォーマンスを向上することができる。
【００５０】
本形態のＨＤＤ１２０におけるキャッシュ・モード制御について、以下に詳述する。図４は、本形態のＨＤＤ１２０における、バッファ・ハンドリングに関連する論理構成を示すブロック図である。図４において、３０１はＨＤＣ１２８を介して、ホスト１１０との間のインターフェースを制御するインターフェース・ハンドラ、３０２はバッファ・ハンドリング及びコマンド実行を制御するセグメント制御部、３０３は実行コマンドをディスパッチするコマンド・ディスパッチャ、３０４はリード／ライトのコマンド実行を制御するイベント・ハンドラである。
【００５１】
ＭＰＵ１２９上で動作するマイクロ・コードが、各構成要素に対応するタスクとして機能する、あるいは、マイクロ・コードに従って動作するＭＰＵ１２９が、各構成要素として機能する。メモリ１３０には、キャッシュ・モード・テーブル３０５、コマンド・キュー３０６、そして、セクタ・バッファ３０７が形成される。キャッシュ・モード・テーブル３０５には、ファイル・システムとキャッシュ・モードが関連付けられて記憶されている。コマンド・キュー３０６には、実行コマンドがキューされる。セクタ・バッファ３０７は、リード・データ及びライト・データを記憶する。
【００５２】
尚、各構成要素は、設計によって、ハード・ウェア、ソフト・ウェアもしくは、その組み合わせによって構成することが可能であり、例えば、ＨＤＣ１２８が一部の機能を分担することができる。また、ＨＤＤ１２０内において、各機能を実行するハード・ウェア構成は、設計により適宜変更することができる。
【００５３】
図４を参照して、インターフェース・ハンドラ３０１は、ホスト１１０との間におけるコマンド、ユーザ・データ及び制御データの通信処理及びその制御を実行し、ホスト１１０との間のインターフェースとして機能する。セグメント制御部３０２は、メモリ１３０上のセクタ・バッファ３０７に存在するユーザ・データのセグメントを管理・制御するとともに、コマンド・キュー３０６にキューされているコマンドの再スケジューリングを実行し、パフォーマンス最適化の観点から適切なコマンド実行順序を決定する。また、本形態において、セグメント制御部３０２はファイル・システムに応じたキャッシュ・モードの決定を行う。セグメント制御部３０２は、決定されたキャッシュ・モードに従って、コマンド実行を制御する。
【００５４】
コマンド・ディスパッチャ３０３は、セグメント制御部３０２によって決定された順序に従って、コマンド・キュー３０６を参照してコマンドをディスパッチする。イベント・ハンドラ３０４は、コマンド・ディスパッチャ３０３がディスパッチしたコマンドに従って、磁気ディスク１２１との間におけるデータ書き込み処理及びデータ読み出し処理を制御する。ライト処理においては、イベント・ハンドラ３０４は、セクタ・バッファ３０７から読み出したデータをライト要求と共にＨＤＣ１２８へ出力し、リード処理においては、磁気ディスク１２１から読み出したデータをＨＤＣ１２８から取得し、セクタ・バッファ３０７に記憶する。
【００５５】
図５は、キャッシュ・モード・テーブル３０５の一構成例を示している。キャッシュ・モード・テーブル３０５には、例えば、上記に例示された６つのキャッシュ・モードが登録される。キャッシュ・モード・テーブル３０５において、各キャッシュ・モードとファイル・システムが対応付けられて記憶されており、ファイル・システムに対してキャッシュ・モードが一意に決定される。異なるファイル・システムに対して、同一もしくは異なるキャッシュ・モードが登録されることができる。ベンチマーク・テストを利用した実測値によってファイル・システムに最適なキャッシュ・モードを決定、選択することで、適切なキャッシュ・モード・テーブル３０５を構成することができる。
【００５６】
図４に示された論理構成の動作について説明する。まず、起動処理における、ホスト１１０が使用するファイル・システムに基づいたキャッシュ・モードの決定処理について、図６のフローチャートを参照して説明する。起動処理においてキャッシュ・モードを決定することによって、ホスト１１０との間のユーザ・データ伝送開始前、最も早いタイミングで最適なキャッシュ・モードを設定することができる。システム１００が起動されると、ホスト１１０からＨＤＤ１２０に、管理情報の一例であるＭＢＲのリード・コマンドが発行される（Ｓ１０１）。インターフェース・ハンドラ３０１はリード・コマンドを受け取る。インターフェース・ハンドラ３０１からの要求に応答してセグメント制御部３０２が動作する。セグメント制御部３０２はインターフェース・ハンドラ３０１からリード・コマンドの情報を取得し、このコマンドとセクタ・バッファ３０７内データの関連を調べる。
【００５７】
セクタ・バッファ３０７にデータは記憶されていないので、特別な処理なくインターフェース・ハンドラ３０１はコマンド・キュー３０６にリード・コマンドのコマンド情報を登録する。インターフェース・ハンドラ３０１からの要求に応答して、コマンド・ディスパッチャ３０３が起動される。コマンド・ディスパッチャ３０３は、コマンド・キュー３０６にキューされているリード・コマンドについて、イベント・ハンドラ３０４にシーク、あるいは、リードの指示をする。イベント・ハンドラ３０４は、コマンド・ディスパッチャ３０３からの指示に応じて、ＭＢＲの磁気ディスク１２１からの読み出しをＨＤＣ１２８に要求する。
【００５８】
磁気ディスク１２１からＭＢＲが読み出され、読み出されたＭＢＲはイベント・ハンドラ３０４によって、セクタ・バッファ３０７に記憶される（Ｓ１０２）。セグメント制御部３０２は、セクタ・バッファ３０７に記憶されているＭＢＲを取得し、パーティション・タイプのフィールドを参照してファイル・システム（パーティション・タイプ）を特定する（Ｓ１０３）。このように、セグメント制御部３０２はファイル・システム特定部として機能する。セグメント制御部３０２は、キャッシュ・モード・テーブル３０５を参照し、ＭＢＲに記憶されているファイル・システムに対応するキャッシュ・モードを決定する（Ｓ１０４）。セグメント制御部３０２はキャッシュ・モード決定部として機能する。セグメント制御部３０２は、この後のリード及びライト処理において、決定されたキャッシュ・モードに従って、バッファ・ハンドリング及びコマンド実行制御を行う（Ｓ１０５）。
【００５９】
次に、キャッシュ・モードが決定された後の、リード／ライト処理の一般的な手順について、図７のフローチャートを参照して説明する。ホスト１１０からコマンドが送信されると、インターフェース・ハンドラ３０１がコマンドを受け取る（Ｓ２０１）。ライト・コマンドの場合、インターフェース・ハンドラ３０１はホスト１１０からライト・データを受け取り、そのデータをセクタ・バッファ３０７に記憶する。インターフェース・ハンドラ３０１からの要求によってセグメント制御部３０２が呼ばれ、セグメント制御部３０２は、インターフェース・ハンドラ３０１からコマンド情報を取得する。
【００６０】
インターフェース・ハンドラ３０１は、ホスト１１０から取得したコマンドのコマンド情報を、コマンド・キュー３０６に登録する（Ｓ２０２）。コマンド情報は、例えば、コマンド種類、ＬＢＡ、データ長、データが記憶されているセクタ・バッファ３０７のページなどを含む。次に、セグメント制御部３０２が、セクタ・バッファ３０７内のデータとホスト１１０から送信されたコマンドの関連を調べ、キャッシュ・モードに従って、コマンドあるいはセクタ・バッファ３０７に関する必要な処理を実行する（Ｓ２０３）。例えば、リード・コマンドをホスト１１０から取得し、セクタ・バッファ３０７に要求データが記憶されている場合、キャッシュ・ヒットとして、セクタ・バッファ３０７内のデータを、ホスト１１０に返すことができる。あるいは、ライト・コマンドを受信した場合、セクタ・バッファ３０７内に記憶されている同一アドレスのデータを廃棄するなどの処理を実行する。
【００６１】
続いて、インターフェース・ハンドラ３０１の要求に応答してコマンド・ディスパッチャ３０３が起動される。コマンド・ディスパッチャ３０３は、セグメント制御部３０２から、キャッシュ・モードに応じた磁気ディスク１２１へのリードもしくは磁気ディスク１２１からのライト処理の方法について情報を取得する。
【００６２】
セグメント制御部３０２は、キャッシュ・モードに応じて、リード／ライト処理方法の情報を渡す（Ｓ２０４）。コマンド・ディスパッチャ３０３は、取得した情報に応じて、イベント・ハンドラ３０４に指示を行う。シーク、リード、あるいはライトなどの指示を受けたイベント・ハンドラ３０４は、ＨＤＣ１２８に対して磁気ディスク１２１へのデータ書き込み、あるいは、データ読み出しを要求する（Ｓ２０５）。
【００６３】
尚、各処理と論理構成との関係は上記例に限定されるものではない。設計者は、効率的な機能及び回路構成によって、記憶装置を設計することができる。本実施形態において、ＨＤＤ１２０はデータの書き込み及び読み出し処理を行うことができるが、再生のみを行う再生専用装置に本発明を適用することも可能である。キャッシュ・モードの決定は、ＨＤＤ内のデータによって、ＨＤＤが内部的に決定することが好ましいが、ホストからの情報により、ファイル・システムの特定、あるいはそれに応じたキャッシュ・モードの選択をＨＤＤが行うことも可能である。尚、本発明は磁気ディスク記憶装置に特に有用であるが、光ディスク記憶装置など、記憶媒体としてのメディアを駆動する他の態様の記憶装置に適用することが可能である。
【図面の簡単な説明】
【００６４】
【図１】本実施形態における、データ処理システムの概略構成を示すブロック図である。
【図２】本実施形態における、ＭＢＲ及びパーテョション・テーブルのデータ構造の儀略を示す図である。
【図３】本実施形態における、所定のキャッシュ・モードと所定のファイル・システムの各組み合わせに対する、ベンチマーク・テストの結果を表すグラフである。
【図４】本実施形態における、バッファ・ハンドリングに関連する論理構成を示すブロック図である。
【図５】本実施形態における、キャッシュ・モード・テーブルの一構成例を示す図である。
【図６】本実施形態における、ファイル・システムに基づいたキャッシュ・モードの決定処理を示すフローチャートである。
【図７】本実施形態における、キャッシュ・モードが決定された後のリード／ライト処理の一般的な手順を示すフローチャートである。
【符号の説明】
【００６５】
１００  データ処理システム、１１０  ホスト、
１２０  ハード・ディスク・ドライブ（ＨＤＤ）、１２１  磁気ディスク、
１２２  磁気ヘッド、１２３  ヘッド・スタック・アセンブリ、１２４  コントローラ、
１２５  スピンドル・モータ、１２６  ボイス・コイル・モータ（ＶＣＭ）、
１２７  リード／ライト・チャネル、
１２８  ハードディスク・コントローラ（ＨＤＣ）、
１２９  マイクロプロセッサ・ユニット（ＭＰＵ）、１３０  メモリ、
１３４  ボイス・コイル・モータ・ドライバ、３０１  インターフェース・ハンドラ、
３０２  セグメント制御部、３０３  コマンド・ディスパッチャ、
３０４  イベント・ハンドラ、３０５  キャッシュ・モード・テーブル、
３０６  コマンド・キュー、３０７  セクタ・バッファ
【図１】
2005267497.tif 000003
【図２】
2005267497.tif 000004
【図３】
2005267497.tif 000005
【図４】
2005267497.tif 000006
【図５】
2005267497.tif 000007
【図６】
2005267497.tif 000008
【図７】
2005267497.tif 000009