(57)【要約】【課題】コマンドをサポートしていないホストシステムでも不揮発性メモリを有効に使用することができる磁気ディスク装置を提供することを目的とする。【解決手段】磁気ディスク装置１０は、不揮発性メモリ３０をホスト１から保存を指定されるデータを格納するハイブリッドハードディスク用データ領域３１と、磁気ディスク装置１０側で独自に判断してデータを保存する独自領域であるリードデータ領域３３とライトデータ領域３４との２つの領域に区分けして構成される。【選択図】        図１
2009187604.tif 000002
【特許請求の範囲】
【請求項１】
ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリを備えた磁気ディスク装置であって、
前記不揮発性メモリは、
前記ホストが指定するホスト指定データを保存するホスト指定データ領域と、
前記ホスト指定データ以外のデータを独自に保存する独自データ領域と、
を備えることを特徴とする磁気ディスク装置。
【請求項２】
前記独自データ領域は、前記ホストから送信される読み出し要求用のコマンドによるリードデータを保存するリードデータ領域及び書き込み要求用のコマンドによるライトデータを保存するライトデータ領域とを備えることを特徴とする請求項１に記載の磁気ディスク装置。
【請求項３】
ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリとファームウェア回路部とを備えた磁気ディスク装置であって、
前記不揮発性メモリは、
前記ホストが指定するホスト指定データを保存するホスト指定データ領域と、
前記ホスト指定データ以外のデータを独自に保存する独自データ領域とを備え、
前記ファームウェア回路部は、前記ホストが電源をオフすることを予測するとともに、電源をオフする前のリードデータを前記不揮発性メモリに保存する処理を行なうことを特徴とする磁気ディスク装置。
【請求項４】
前記独自データ領域は、前記ホストから送信される読み出し要求用のコマンドによるリードデータを保存するリードデータ領域及び書き込み要求用のコマンドによるライトデータを保存するライトデータ領域とを備えることを特徴とする請求項３に記載の磁気ディスク装置。
【請求項５】
前記ファームウェア回路部は、
前記ホストが発行するコマンドを定期的に採取するとともに、当該採取したコマンドを前記リードデータ領域に保存し、コマンドログを複数個用いてパターンマッチング処理によって集計および比較することで、電源をオフする前の電源オフシーケンスを認識することを特徴とする請求項３または４に記載の磁気ディスク装置。
【請求項６】
前記パターンマッチング処理は、電源のオン時に、電源のオフ時に採取した最終のコマンドログから遡った複数のコマンドログを用いることを特徴とする請求項５に記載の磁気ディスク装置。
【請求項７】
前記ホストから定期的に採取するコマンドログの種類は、電源オフシーケンスに関するコマンドであるＳｔａｎｄｂｙコマンド、Ｓｌｅｅｐコマンド、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドの何れかであることを特徴とする請求項５または６に記載の磁気ディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリを備えた磁気ディスク装置に関し、特に、磁気ディスク装置に搭載された不揮発性メモリを有効に活用することができるハイブリッド型の磁気ディスク装置に関する。
【背景技術】
【０００２】
近年では、大容量（２５６ＭＢ、５１２ＭＢ）の不揮発性メモリを搭載した磁気ディスク装置（ハイブリッドハードディスク：Ｈｙｂｒｉｔ Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）が知られている（例えば、特許文献１〜３参照）。このような大容量の不揮発性メモリを備えた磁気ディスク装置の場合、ホストから送信されるコマンドに基づいて、頻繁にアクセスされるデータを予め不揮発性メモリに保存することができるため、ディスク媒体へのアクセス時間を省いてコマンドの応答時間を短縮することができる。
【０００３】
【特許文献１】特開２００６−３０２３１５号公報
【特許文献２】特開２００１−３５０６６９号公報
【特許文献３】特開平０７−２４８９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、このようなハイブリッド型の磁気ディスク装置に搭載された不揮発性メモリにはディスク媒体に記憶されている所定領域（例えば、「ＬＢＡ０〜５００」）のデータを記憶しているが、ホストから不揮発性メモリに記憶されていないデータ（例えば、ＬＢＡ６００）のリード要求が発行された場合、不揮発性メモリにはデータがなくディスク媒体からリードする必要があるため、アクセス速度が低下するという問題がある。
【０００５】
また、実際にホストシステムが不揮発性メモリに対するコマンドのアクセスをサポートしていない場合には、この磁気ディスク装置に搭載された大容量の不揮発性メモリを有効に活用することができないという問題がある。
【０００６】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、アクセス速度を短縮するとともに、ホストシステムが不揮発性メモリに対するコマンドのアクセスをサポートしていない場合でもこの磁気ディスク装置に搭載された不揮発性メモリを有効に活用することができる磁気ディスク装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリを備えた磁気ディスク装置であって、前記不揮発性メモリは、前記ホストが指定するホスト指定データを保存するホスト指定データ領域と、前記ホスト指定データ以外のデータを独自に保存する独自データ領域と、を備えることを特徴とする。
【０００８】
また、請求項２に係る発明は、上記発明において、前記独自データ領域は、前記ホストから送信される読み出し要求用のコマンドによるリードデータを保存するリードデータ領域及び書き込み要求用のコマンドによるライトデータを保存するライトデータ領域とを備えることを特徴する。
【０００９】
また、請求項３に係る発明は、ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリとファームウェア回路部とを備えた磁気ディスク装置であって、前記不揮発性メモリは、前記ホストが指定するホスト指定データを保存するホスト指定データ領域と、前記ホスト指定データ以外のデータを独自に保存する独自データ領域とを備え、前記ファームウェア回路部は、前記ホストが電源をオフすることを予測するとともに、電源をオフする前のリードデータを前記不揮発性メモリに保存する処理を行なうことを特徴とする。
【００１０】
また、請求項４に係る発明は、上記発明において、前記独自データ領域は、前記ホストから送信される読み出し要求用のコマンドによるリードデータを保存するリードデータ領域及び書き込み要求用のコマンドによるライトデータを保存するライトデータ領域とを備えることを特徴とする。
【００１１】
また、請求項５に係る発明は、上記発明において、前記ファームウェア回路部は、前記ホストが発行するコマンドを定期的に採取するとともに、当該採取したコマンドを前記リードデータ領域に保存し、コマンドログを複数個用いてパターンマッチング処理によって集計および比較することで、電源をオフする前の電源オフシーケンスを認識することを特徴とする。
【００１２】
また、請求項６に係る発明は、上記発明において、前記パターンマッチング処理は、電源のオン時に、電源のオフ時に採取した最終のコマンドログから遡った複数のコマンドログを用いることを特徴とする。
【００１３】
また、請求項７に係る発明は、上記発明において、前記ホストから定期的に採取するコマンドログの種類は、電源オフシーケンスに関するコマンドであるＳｔａｎｄｂｙコマンド、Ｓｌｅｅｐコマンド、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドの何れかであることを特徴とする。
【発明の効果】
【００１４】
請求項１の発明によれば、磁気ディスク装置は、ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリを備えるとともに、この不揮発性メモリは、ホストが指定するホスト指定データを保存するホスト指定データ領域と、ホスト指定データ以外のデータを独自に保存する独自データ領域とを備えるので、ホストシステムが不揮発性メモリに対するコマンドのアクセスをサポートしていない場合でもこの磁気ディスク装置に搭載された不揮発性メモリを有効に活用することができる。
【００１５】
また、請求項２の発明によれば、独自データ領域は、ホストから送信される読み出し要求用のコマンドによるリードデータを保存するリードデータ領域及び書き込み要求用のコマンドによるライトデータを保存するライトデータ領域とを備えるので、ホストシステムが不揮発性メモリに対するコマンドのアクセスをサポートしていない場合でもデータをライトデータ領域に保存することができるので、磁気ディスク装置に搭載された不揮発性メモリを有効に活用することができる。
【００１６】
また、請求項３の発明によれば、磁気ディスク装置は、ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリとファームウェア回路部とを備えており、不揮発性メモリは、ホストが指定するホスト指定データを保存するホスト指定データ領域と、ホスト指定データ以外のデータを独自に保存する独自データ領域とを備え、ファームウェア回路部は、ホストが電源をオフすることを予測するとともに、電源をオフする前のリードデータを不揮発性メモリに保存する処理を行なうので、ホストシステムが不揮発性メモリに対するコマンドのアクセスをサポートしていない場合でもデータを不揮発性メモリに保存することができるので、磁気ディスク装置に搭載された不揮発性メモリを有効に活用することができる。また、リードデータに使用する領域（ブロック）を固定にすることができ、これによって、書き込みおよび消去を最小限にすることができるうえ、不揮発性メモリに保存されたデータの消去作業の効率化を図ることができる。また、ホスト側のＯＳの種類やユーザー環境に左右されることなく、電源ＯＮ時の起動を高速化とすることができる。
【００１７】
また、請求項４の発明によれば、独自データ領域は、ホストから送信される読み出し要求用のコマンドによるリードデータを保存するリードデータ領域及び書き込み要求用のコマンドによるライトデータを保存するライトデータ領域とを備えるので、ホストシステムが不揮発性メモリに対するコマンドのアクセスをサポートしていない場合でもデータをライトデータ領域に保存することができるので、磁気ディスク装置に搭載された不揮発性メモリを有効に活用することができる。
【００１８】
また、請求項５の発明によれば、ファームウェア回路部は、ホストが発行するコマンドを定期的に採取するとともに、採取したコマンドをリードデータ領域に保存し、コマンドログを複数個用いてパターンマッチング処理によって集計および比較することで、電源をオフする前の電源オフシーケンスを認識するので、リードデータに使用する領域（ブロック）を固定にすることができ、これによって、書き込みおよび消去を最小限にすることができるうえ、不揮発性メモリに保存されたデータの消去作業の効率化を図ることができる。また、電源ＯＮシーケンスを独自に解析し、データを保存することで、ホストに依存することなく不揮発性メモリを利用することが可能になる。
【００１９】
また、請求項６の発明によれば、パターンマッチング処理は、電源のオン時に、電源のオフ時に採取した最終のコマンドログから遡った複数のコマンドログを用いるので、最終のコマンドログから遡った複数のコマンドログに基づいて、パターンマッチング処理を効率的に行なうことができる。
【００２０】
また、請求項７の発明によれば、ホストから定期的に採取するコマンドログの種類は、電源オフシーケンスに関するコマンドであるＳｔａｎｄｂｙコマンド、Ｓｌｅｅｐコマンド、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドの何れかであるので、これら電源オフシーケンスに関するコマンドの受領に基づいて、電源オフシーケンスを実行することができる。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照し、本発明の磁気ディスク装置に係る実施例１について詳細に説明する。なお、以下では、本発明に係る磁気ディスク装置の概要および特徴を説明した後に、本実施例に係る磁気ディスク装置について説明することとする。図１は、磁気ディスク装置の内部を示す全体構成図である。なお、以下に示す実施例１によりこの発明が限定されるものではない。
【実施例】
【００２２】
［磁気ディスク装置の概要および特徴］
まず最初に、本発明に係る磁気ディスク装置の概要および特徴を説明する。図１は、本発明に係る磁気ディスク装置の概要および特徴を説明するための説明図である。同図に示すように、磁気ディスク装置1０は、ホスト１から発行されるリードコマンドおよびライトコマンドを解析するディスク制御部２０と、データを記憶するディスク媒体４０と、ディスク媒体４０に記憶される所定領域のデータを記憶する不揮発性メモリ３０とを備えている。
【００２３】
また、磁気ディスク装置1０に搭載された不揮発性メモリ３０は、ホスト１から保存を指定されるデータ（ＰＩＮＮ登録指定されていないコマンドに該当するデータ）を格納（記憶）する領域（ハイブリッドハードディスク用データ領域３１）と、磁気ディスク装置１０が独自に判断してリードデータを保存するリード用の領域（リードデータ領域３３）とライトデータを保存する領域（ライトデータ領域３４）とを備えることに特徴があり、これによって、ホスト１に依存することなく大容量の不揮発性メモリ３０を有効に活用できるようにしている。
【００２４】
この主たる特徴を具体的に説明すると、図１に示すように、ホスト１からリードコマンドが発行された場合、ディスク制御部２０により、リードコマンドがＰＩＮＮ登録されたコマンドであるかを判定し（図１の（１）参照）、ＰＩＮＮ登録されたコマンドの場合、不揮発性メモリ３０のハイブリッドハードディスク用データ領域３１からデータをリードし、ホスト１にデータを転送する（図１の（２）参照）。また、ＰＩＮＮ登録されたコマンドでなく不揮発性メモリ３０のリードデータ領域３３に該当するデータがあれば（図１の（３）参照）、このリードデータ領域３３からデータをリードし、ホスト１にデータを転送する（図１の（４）参照）。
【００２５】
また、リードデータ領域３３に該当するデータがない場合、ディスク媒体４０からデータをリードし（図１の（５）参照）、リードしたデータをホスト１に転送する（図１の（６）参照）。なお、この時にリードデータ領域３３に空き領域がある場合、ディスク媒体４０からリードしたデータは、使用頻度が高いデータとして、このデータは、リードデータ領域３３に保存する（図１５の（７）参照）。
【００２６】
また、ホスト１からライトコマンドが発行された場合には、ディスク制御部２０により、このライトコマンドのデータをディスク媒体４０に書き込むとともに（図１の（８）参照）、このライトコマンドがＰＩＮＮ登録されたコマンドであれば、ハイブリッドハードディスク用データ領域３１にデータを保存し（図１の（９）参照）、ＰＩＮＮ登録されたコマンドでなくライトデータ領域３４に空き領域があれば、このライトデータ領域３４の空き領域にデータを保存する（図１の（１０）参照）。
【００２７】
以上のように、本実施例では、リードデータ領域３３とライトデータ領域３４には、ＰＩＮＮ登録指定されていないデータを保存する領域としており、これにより、ホストに依存することなく大容量不揮発性メモリを利用することが可能になる。また、従来の不揮発性メモリの場合、ブロック単位の消去、書き込みが必要ではあるが、このように、保存するデータをリード/ライトの領域に区分することで、リードデータに使用する領域（ブロック）を固定（リードデータ領域３３に固定）にすることで書き込みおよび消去を最小限にすることができる。すなわち、ライトデータはいずれディスク媒体４０に書き戻すデータであることから、この領域（ライトデータ領域３４に固定）をひとまとめとすることで、ディスク媒体４０に書き戻した後でまとめて消去することで、不揮発性メモリ３０に保存されたデータの消去作業の効率化を図ることができる。
【００２８】
［磁気ディスク装置１０の構成］
次に、本実施例１に係る磁気ディスク装置１０の構成の詳細について説明する。図２は、本実施例１に係る磁気ディスク装置１０の構成を示すブロック図である。ここで、図１に示すホスト１（ホストシステム）で指定するアドレスはＰＩＮＮと呼ばれ、開始ＬＢＡとセクタ数で設定される。このようなハイブリッド型の磁気ディスク装置を搭載したホストシステムは、３種類（Add LBAs to NV Cache Pinnes Setコマンド：不揮発性メモリを使用するアドレスを指定するコマンド、Remove LBAs from NV Cache Pinned Setコマンド：不揮発性メモリを使用するアドレスの指定を解除するコマンド、Flush NV Cacheコマンド：不揮発性メモリのデータを媒体に書き込むコマンド）のコマンドを発行して大容量不揮発性メモリを使用する構成としている。
【００２９】
同図に示すように、磁気ディスク装置１０は、ホスト転送処理部１１と、コマンド処理部１２と、データバッファ１３と、ディスク制御部２０と、ディスク媒体４０と、ヘッド４１と、不揮発性メモリ３０（ＮＡＮＤ）とから構成される。
【００３０】
ホスト転送処理部１１は、磁気ディスク装置１０が接続されたホスト１とコマンドやデータの送受信を行なう処理部であり、具体的には、ホスト１から送信されるリードコマンドやライトコマンドを受領したり、ディスク制御部２０とのデータの授受をデータバッファ１３を介して行なう。
【００３１】
コマンド処理部１２は、ホスト１が送信したリードコマンドやライトコマンド、その他のコマンドを受領し、この受領したコマンドを解析し、ディスク制御部２０に対して所定の処理を指示する。データバッファ１３は、ホスト１側と送受信するデータを一時的に記憶する。
【００３２】
ディスク制御部２０は、コマンド処理部１２により指示されたリードコマンド（読み出し要求）またはライトコマンド（書き込み要求）をディスク媒体４０に対して行なうファームウェアを展開するメモリ（ファームウェア回路部）を有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、リードコマンド処理部２１とライトコマンド処理部２２と電源ＯＦＦデータ処理部２３とを備える。
【００３３】
不揮発性メモリ３０は、データ領域であるハイブリッドハードディスク用データ領域３１と独自領域３２との２つに区分された領域を備えている。このうち、独自領域３２は、リードデータ領域３３とライトデータ領域３４とにより構成されている。なお、実際には、不揮発性メモリ３０は、データ領域であるハイブリッドハードディスク用データ領域３１と独自領域３２とは別に、これらハイブリッドハードディスク用データ領域３１と独自領域３２内に保存されたデータを管理する管理データ領域であるシステム領域（図示せず）を備えており、例えば、リードコマンドからのリード要求が発行された場合、最初に、システム領域に保存されているＰＩＮＮ登録データ領域とリード領域とライト領域に記憶されたＬＢＡ番地を参照することとなる。そして、ＰＩＮＮ登録データ領域を参照し、該当するＬＢＡ番地を探し、該当するＬＢＡ番地があれば、データ領域のハイブリッドハードディスク用データ領域３１からＬＢＡ番地に対応するデータをリードする。
【００３４】
リードコマンド処理部２１は、ホスト１からのリードコマンドを受領した場合に、データをディスク媒体４０或いは不揮発性メモリ３０のハイブリッドハードディスク用データ領域３１或いはリードデータ領域３３から読み出す処理を行なう。このリードコマンド処理部２１による具体的な制御処理については、図３のフローチャートで詳細に説明する。
【００３５】
ライトコマンド処理部２２は、ホスト１からのライトコマンドを受領した場合に、データをディスク媒体４０或いは不揮発性メモリ３０のライトデータ領域３４に書き込む処理を行なう。このライトコマンド処理部２２による具体的な制御処理については、図４のフローチャートで詳細に説明する。
【００３６】
電源ＯＦＦデータ処理部２３は、ホスト１からコマンドを受領した場合に、電源ＯＦＦシーケンスに該当するライトコマンドを受領した場合に、このライトコマンドをライトデータ領域３４に保存する処理を行なう。この電源ＯＦＦデータ処理部２３による具体的な制御処理については、図５および図６のフローチャートで詳細に説明する。
【００３７】
ディスク媒体４０は、アプリケーションや所望のデータを格納する磁気ディスクであり、ヘッド４１により読み書き（リード／ライト）が行なわれる。
【００３８】
（リードコマンド制御処理）
次に、図３を参照して、本実施例に係る「リードコマンド制御処理」の手順について説明する。ここで、図３は、リードコマンド制御処理の手順を示すフローチャートを示している。
【００３９】
すなわち、ホスト１から送信されたリードコマンドを受領すると（ステップＳ１０１肯定）、この受領したリードコマンドにＰＩＮＮ登録が無いか（ハイブリッドハードディスク用データ領域３１にデータがあるか？）を判定する（ステップＳ１０２）。具体的には、リードコマンドに該当するＬＢＡがＰＩＮＮ登録されているかを判定する。そして、この受領したリードコマンドにＰＩＮＮ登録があると判定されたならば（ステップＳ１０２否定）、不揮発性メモリ３０のハイブリッドハードディスク用データ領域３１に保存されているデータをホスト１に転送し（ステップＳ１０３）、ステップＳ１０１に戻る。
【００４０】
そして、受領したリードコマンドにＰＩＮＮ登録が無いと判定されたならば（ステップＳ１０２肯定）、次いで、不揮発性メモリ３０のリードデータ領域３３に該当するデータが存在しないかを判定する（ステップＳ１０４）。そして、この不揮発性メモリ３０のリードデータ領域３３に該当するデータが存在すると判定された場合（ステップＳ１０４否定）、このリードデータ領域３３に保存されているデータをホスト１に転送し（ステップＳ１０５）、ステップＳ１０１に戻る。
【００４１】
これとは反対に、ステップＳ１０４の判定により、不揮発性メモリ３０のリードデータ領域３３に該当するデータが存在しないと判定された場合（ステップＳ１０４肯定）、ディスク媒体４０からデータをリードし（読み出し）、このリードしたデータをホスト１に転送し（ステップＳ１０６）、リードコマンドを終了する（ステップＳ１０７）。
【００４２】
続いて、ステップＳ１０８の判定により実行待ちコマンドが無いかを判定し（ステップＳ１０８）、実行待ちコマンドがある場合（ステップＳ１０８否定）、待機しているコマンドの実行処理を行なう（ステップＳ１０９）。このステップＳ１０８〜ステップＳ１０９までの処理は、実行待ちコマンドが全て無くなるまでループする。
【００４３】
そして、全ての実行待ちコマンドが無くなったならば（ステップＳ１０８肯定）、次に、不揮発性メモリ３０のリードデータ領域３３に空き領域があるかを判定する（ステップＳ１１０）。そして、このリードデータ領域３３に空き領域がないと判定されたならば（ステップＳ１１０否定）、長時間ヒットしないデータ（古くから保存されている使用されないデータ）をタイムスタンプに基づいて選択し、この選択したリードデータをブロック単位で消去（イレース処理）する（ステップＳ１１１）。これにより、新たにデータを保存する空き領域をつくることができ、この空き領域には、頻繁にアクセスされるデータを保存することができる。
【００４４】
一方、不揮発性メモリ３０のリードデータ領域３３に空きがあると判定されたならば（ステップＳ１１０肯定）、このリードデータ領域３３の空き領域に、ステップＳ１０６によりディスク媒体４０からリードしたデータを保存し（ステップＳ１１２）、ステップＳ１０１に戻る。すなわち、ディスク媒体４０からデータをリードするよりも不揮発性メモリ３０のリードデータ領域３３からデータをリードする方がアクセスを速くすることができるため、ディスク媒体４０からリードされたデータは、頻繁にアクセスされるデータとしてリードデータ領域３３に保存することとしている。
【００４５】
（ライトコマンド制御処理）
次に、図４を参照して、本実施例に係る「ライトコマンド制御処理」の手順について説明する。ここで、図４は、ライトコマンド制御処理の手順を示すフローチャートを示している。
【００４６】
すなわち、ホスト１から送信されたライトコマンドを受領すると（ステップＳ２０１肯定）、この受領したライトコマンドのデータをディスク媒体４０に書き込む（ステップＳ２０２）。次に、ライトコマンドに該当するＬＢＡがＰＩＮＮ登録されているかを判定する（ステップＳ２０１）。そして、この受領したライトコマンドにＰＩＮＮ登録があると判定されたならば（ステップＳ２０３否定）、ハイブリッドハードディスク用データ領域３１にライトコマンドのデータを保存し（ステップＳ２０４）、ステップＳ２０１に戻る。
【００４７】
反対に、受領したライトコマンドにＰＩＮＮ登録が無いと判定されたならば（ステップＳ２０３肯定）、次いで、実行待ちコマンドが無いかを判定し（ステップＳ２０５）、実行待ちコマンドがある場合（ステップＳ２０５否定）、コマンドの実行処理を行なう（ステップＳ２０６）。このステップＳ２０５〜ステップＳ２０６までの処理は、実行待ちコマンドがなくなるまでループする。
【００４８】
そして、全ての実行待ちコマンドが無くなったならば（ステップＳ２０５肯定）、次に、不揮発性メモリ３０のライトデータ領域３４に空き領域があるかを判定する（ステップＳ２０７）。そして、このライトデータ領域３４に空き領域があると判定されたならば（ステップＳ２０７肯定）、データをライトデータ領域３４に保存し（ステップＳ２０９）、ステップＳ２０１に戻る。反対に、ライトデータ領域３４に空き領域がないと判定されたならば（ステップＳ２０７否定）、ブロックイレーズ処理を行ない（ステップＳ２０８）、ステップＳ２０９に移行し、データをライトデータ領域３４に保存し（ステップＳ２０９）、ステップＳ２０１に戻る。このように実行するコマンドが控えていない場合、ある程度まとまった単位で一括してデータをブロックイレーズすることができる。また、頻繁にリードするデータがライトデータ領域３４に保存され、これによりアクセスを速くすることができる。
【００４９】
（電源ＯＦＦシーケンス制御処理）
次に、図５および図６を参照して、本実施例に係る「電源ＯＦＦシーケンス制御処理」の手順について説明する。ここで、図５は、電源ＯＦＦシーケンス制御処理の概要を説明する説明図を、図６は、電源ＯＦＦシーケンス制御処理の手順を示すフローチャートをそれぞれ示している。また、図７は、電源ＯＦＦシーケンス時のホストからのコマンドデータの一例を示す図である。
【００５０】
すなわち、従来からホスト１では、電源をＯＦＦする際（電源ＯＦＦシーケンスの起動時）には、ホスト１側に残存しているライトデータを磁気ディスク装置１０のディスク媒体４０に書き込む（保存）という処理を行なっている。このため、磁気ディスク装置１０のＯＮ時（起動時）には、ディスク媒体４０に保存したデータをリードすることとなり（電源ＯＦＦ前に保存するデータは、次回の電源ＯＮ時にリードされることが多い）、これによって、アクセス時間が長くなるなどの問題があることから、電源ＯＦＦシーケンス制御処理により、次回の電源ＯＮ時にリードされることが多いデータ（有効なデータ）は、不揮発性メモリ３０に保存することで起動を高速化とすることとしている。
【００５１】
ここで、電源ＯＦＦシーケンスの開始判定は、ＯＳの種類、ユーザー環境により異なるため、図５および以下の（１）〜（５）に示す手順により電源ＯＦＦシーケンスを解析し、有効なデータを不揮発性メモリ３０のライトデータ領域３４に保存する制御処理を行なうこととしている。
（１）定期的にホスト１から送信されるコマンドログを採取する。
（２）電源がＯＦＦされる前に送信されるコマンド（最新受領コマンド）がＳｔａｎｄｂｙコマンド、Ｓｌｅｅｐコマンド、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドの何れかである場合、このコマンドをログし保存する。
（３）ライトデータのログを判定する。
（４）ライトデータの複数パターンを保存／集計する。
（５）電源ＯＮ時、最後のログから遡って比較によりパターンマッチングを行い、同一パターンを検出した場合にその同一パターンを電源ＯＦＦシーケンスと認識する。
（６）電源ＯＦＦシーケンスに該当するライトコマンドが発行された場合、ライトデータを不揮発性メモリ３０に保存する。
【００５２】
以下、図５および図６のフローチャートを参照して、電源ＯＦＦシーケンス制御処理の手順の詳細を説明する。すなわち、図６のフローチャートに示すように、ホスト１から送信されたコマンドを受領すると（ステップＳ３０１肯定）、この受領したコマンドをログする（ステップＳ３０２）。ここで、ホスト１から送信されたコマンドは、一時的にデータバッファ１３に保存される（図５の（１）参照）。
【００５３】
次に、受領したコマンドが、電源ＯＦＦシーケンスに関するコマンド（Ｓｔａｎｄｂｙコマンド、Ｓｌｅｅｐコマンド、Ｆｌｕｓｈ Ｃａｃｈｅコマンド）かを判定する（ステップＳ３０３）。具体的に説明すると、データバッファ１３にログされたコマンドの最新の受領コマンド（５０コマンド）がＳｔａｎｄｂｙコマンド、Ｓlｅｅｐコマンド、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドの何れかであるかを判定する（図５の（２）参照）。そして、受領したコマンドがＳｔａｎｄｂｙコマンド、Ｓｌｅｅｐコマンド、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドの何れでもない場合（ステップＳ３０３否定）、次に、この受領したコマンドがライトコマンドであるかを判定する（ステップＳ３０４）。
【００５４】
そして、受領したコマンドがライトコマンドである場合（ステップＳ３０４肯定）、電源ＯＦＦシーケンスに含まれるライトコマンドとＬＢＡが同一かを判定し（ステップＳ３０５）、電源ＯＦＦシーケンスに含まれるライトコマンドとＬＢＡが同一である場合（ステップＳ３０５肯定）、ライトデータを不揮発性メモリ３０のライトデータ領域３４に保存し（ステップＳ３０６）、受領コマンドを実行した後（ステップＳ３１２）、ステップＳ３０１に戻る。
【００５５】
ここで、ステップＳ３０４の判定により受領したコマンドがライトコマンドでない場合（ステップＳ３０４否定）、また、ステップＳ３０５の判定により電源ＯＦＦシーケンスに含まれるライトコマンドとＬＢＡが同一でない場合（ステップＳ３０５否定）、受領コマンドを実行した後（ステップＳ３１２）、ステップＳ３０１に戻る。
【００５６】
一方、ステップＳ３０３の判定により受領したコマンドがＳｔａｎｄｂｙコマンド、Ｓｌｅｅｐコマンド、Ｆｌｕｓｈ Ｃａｃｈｅコマンドのいずれかのコマンドである場合（ステップＳ３０４肯定）、これより前に受領した所定範囲（例えば、５０コマンド）以内にライトコマンドが含まれるか（図５の（３）参照）を判定する（ステップＳ３０７）。図７の例では、５０コマンド目の最新受領コマンドがＳｔａｎｄｂｙコマンドであることを示している。
【００５７】
そして、受領した５０コマンド以内にライトコマンドが含まれる場合（ステップＳ３０７肯定）、この受領したコマンドから前の５０コマンドを電源ＯＦＦシーケンス候補としてシステム領域（図５の（４）参照）に保存する（ステップＳ３０８）。このように、システム領域には、電源ＯＦＦシーケンス候補としての５０のコマンド（所定のパターン）が複数個保存されることとなる。
【００５８】
次に、保存している電源ＯＦＦシーケンスとコマンドパターンが半分以上一致するかを判定する（ステップＳ３０９）。具体的に説明すると、電源ＯＦＦシーケンスの候補として予め保存したコマンドと今回のコマンドのパターン（種類）が２５コマンド以上一致するかを判定する（図５の（５）参照）。
【００５９】
そして、保存している電源ＯＦＦシーケンスとコマンドパターンが半分以上一致すると判定された場合（ステップＳ３０９肯定）、次に、データバッファ１３内にコマンドパターンと一致すライトコマンドのデータが残っているかを判定し（ステップＳ３１０）、データバッファ１３内にパターンと一致するライトコマンドのデータが残っていると判定された場合（ステップＳ３１０肯定）、このライトデータを不揮発性メモリ３０のライトデータ領域３４（図５の（６）参照）に保存し（ステップＳ３１１）、受領コマンドを実行した後（ステップＳ３１２）、ステップＳ３０１に戻る。ここで、保存している電源ＯＦＦシーケンスとコマンドパターンが半分以上一致しない判定された場合（ステップＳ３０９否定）、また、データバッファ１３内にパターンと一致するライトコマンドのデータが残っていないと判定された場合（ステップＳ３１０否定）、受領コマンドを実行した後（ステップＳ３１２）、ステップＳ３０１に戻る。
【００６０】
図７の例では、コマンドログされた５０コマンド内にライトデータ（ＷＲＩＴＥ ＦＰＤＮＡ ＱＵＥＵＤ ×××××）が複数含まれており、このライトデータのパターンと予めシステム領域に保存されている複数のコマンドのライトデータのパターンの半分以上（網掛け部分）が一致していることを示している。以上説明した図６に示す電源ＯＦＦシーケンス制御処理により、次回の電源ＯＮ時にリードされることが多いデータ（有効なデータ）は、不揮発性メモリ３０のライトデータ領域３４に保存することができ、これにより、ホスト1側のＯＳの種類やユーザー環境に左右されることなく、電源ＯＮ時の起動を高速化とすることができる。なお、システムがスタンバイ状態であっても、この電源ＯＦＦシーケンス制御処理により同様の効果を得ることができる。
【００６１】
以上説明したように、本実施例の磁気ディスク装置１０は、不揮発性メモリ３０をホスト１から保存を指定されるデータを格納するハイブリッドハードディスク用データ領域３１と、磁気ディスク装置１０側で独自に判断してデータを保存するリードデータ領域３３とライトデータ領域３４との２つの領域に区分けして構成されるので、ホスト１（ホストシステム）が不揮発性メモリ３０に対するコマンドのアクセスをサポートしていない場合でもこの磁気ディスク装置１０に搭載された不揮発性メモリ３０を有効に活用することができる。
【００６２】
ここで、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。 
【００６３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 
【００６４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６５】
（付記１）ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリを備えた磁気ディスク装置であって、
前記不揮発性メモリは、
前記ホストが指定するホスト指定データを保存するホスト指定データ領域と、
前記ホスト指定データ以外のデータを独自に保存する独自データ領域と、
を備えることを特徴とする磁気ディスク装置。
【００６６】
（付記２）前記独自データ領域は、前記ホストから送信される読み出し要求用のコマンドによるリードデータを保存するリードデータ領域及び書き込み要求用のコマンドによるライトデータを保存するライトデータ領域とを備えることを特徴とした付記１に記載の磁気ディスク装置。
【００６７】
（付記３）ホストから送信されるリードデータおよびライトデータを保存する不揮発性メモリとファームウェア回路部とを備えた磁気ディスク装置であって、
前記不揮発性メモリは、
前記ホストが指定するホスト指定データを保存するホスト指定データ領域と、
前記ホスト指定データ以外のデータを独自に保存する独自データ領域とを備え、
前記ファームウェア回路部は、前記ホストが電源をオフすることを予測するとともに、電源をオフする前のリードデータを前記不揮発性メモリに保存する処理を行なうことを特徴とする磁気ディスク装置。
【００６８】
（付記４）前記独自データ領域は、前記ホストから送信される読み出し要求用のコマンドによるリードデータを保存するリードデータ領域及び書き込み要求用のコマンドによるライトデータを保存するライトデータ領域とを備えることを特徴とした付記３に記載の磁気ディスク装置。
【００６９】
（付記５）前記ファームウェア回路部は、
前記ホストが発行するコマンドを定期的に採取するとともに、当該採取したコマンドを前記リードデータ領域に保存し、コマンドログを複数個用いてパターンマッチング処理によって集計および比較することで、電源をオフする前の電源オフシーケンスを認識することを特徴とする付記３または４に記載の磁気ディスク装置。
【００７０】
（付記６）前記パターンマッチング処理は、電源のオン時に、電源のオフ時に採取した最終のコマンドログから遡った複数のコマンドログを用いることを特徴とする付記５に記載の磁気ディスク装置。
【００７１】
（付記７）前記パターンマッチング処理は、電源のオン時に、電源のオフ時に採取した最終のコマンドログから遡った複数のコマンドログを対象としてコマンド種類の一致を判定することを特徴とする付記５に記載の磁気ディスク装置。
【００７２】
（付記８）前記ホストから定期的に採取するコマンドログの種類は、電源オフシーケンスに関するコマンドであるＳｔａｎｄｂｙコマンド、Ｓlｅｅｐコマンド、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドの何れかであることを特徴とする付記５、６または７に記載の磁気ディスク装置。
【産業上の利用可能性】
【００７３】
本発明は、大容量の不揮発性メモリを備えたハイブリッド型の磁気ディスク装置に有用であり、特に、磁気ディスク装置に搭載した不揮発性メモリを有効に使用することができる磁気ディスク装置として効果的である。
【図面の簡単な説明】
【００７４】
【図１】実施例に係る磁気ディスク装置の特徴及び概要を説明する説明図である。
【図２】図１の磁気ディスク装置の構成を示すブロック図である。
【図３】リードコマンド制御処理を説明するフローチャートである。
【図４】ライトコマンド制御処理を説明するフローチャートである。
【図５】電源ＯＦＦシーケンス制御処理を説明する説明図である。
【図６】電源ＯＦＦシーケンス制御処理を説明するフローチャートである。
【図７】電源ＯＦＦシーケンス時のホストからのコマンドデータの一例を示す図である。
【符号の説明】
【００７５】
１  ホスト
１０  磁気ディスク装置
１１  ホスト転送処理部
１２  コマンド処理部
１３  データバッファ
２０  ディスク制御部
２１  リードコマンド処理部
２２  ライトコマンド処理部
２３  電源ＯＦＦデータ処理部
３０  不揮発性メモリ（ＮＡＮＤ）
３１  ハイブリッドハードディスク用データ領域
３２  独自領域
３３  リードデータ領域
３４  ライトデータ領域
４０  ディスク媒体
４１  ヘッド
【図１】
2009187604.tif 000003
【図２】
2009187604.tif 000004
【図３】
2009187604.tif 000005
【図４】
2009187604.tif 000006
【図５】
2009187604.tif 000007
【図６】
2009187604.tif 000008
【図７】
2009187604.tif 000009