(57)【要約】【課題】ホスト装置側からの特別なコマンドを必要とせず、記録装置側においてデータをディスク媒体にディスクスケジューリング記録する。【解決手段】テーブルＴ１は、論理ページ番号に対応付けられた、不揮発性メモリおよびHDDの物理ページ番号を示すものである。ブロックビットは、論理ページ番号をブロック単位で物理ページ番号に変換する場合には１、論理ページ番号をページ単位で物理ページ番号に変換できる場合には０を記録するようになされている。本発明は,HDDに対してデータを記録する記録装置に適用することができる。【選択図】図１７
2008117491.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置から供給される記録すべきデータ、および記録位置を示す論理ブロックアドレスに基づいて、前記記録すべきデータをディスク媒体に記録する記録装置において、
前記ホスト装置から供給された前記論理ブロックアドレスを論理ページ番号に変換する変換手段と、
前記論理ページ番号に対応付けられている前記ディスク媒体の物理ページ番号を示す第１のテーブルを保持する保持手段と、
前記変換手段による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を選択する選択手段と、
前記選択手段によって選択された前記ディスク媒体の前記物理ページ番号の位置に、前記ホスト装置から供給された前記記録すべきデータを記録する記録手段と、
前記記録手段によって前記記録すべきデータが記録されたことに対応し、前記変換手段による変化後の前記論理ページ番号に、前記記録すべきデータが記録された前記物理ページ番号を対応付けることによって前記第１のテーブルを更新する更新手段と
を含む記録装置。
【請求項２】
前記第１のテーブルは、前記論理ページ番号と前記ディスク媒体の物理ページ番号との対応関係をページ単位の整数倍のブロック単位で示す
請求項１に記載の記録装置。
【請求項３】
前記保持手段は、前記ディスク媒体の前記ＡＶ用領域に属する物理ブロックアドレスが、既に前記論理ページ番号に対応付けられているか否かを示す第２のテーブルも保持する
請求項１に記載の記録装置。
【請求項４】
前記保持手段は、不揮発性メモリであって前記記録すべきデータを記憶することができ、
前記第１のテーブルには、前記論理ページ番号に対応付けられている前記不揮発性メモリの物理ページ番号も記録されている
請求項１に記載の記録装置。
【請求項５】
前記ディスク媒体には、比較的データ量の大きなＡＶデータを記録するためのＡＶデータ用領域と、比較的データ量の小さな非ＡＶデータを記録するための非ＡＶデータ用領域が設けられている
請求項１に記載の記録装置。
【請求項６】
前記選択手段は、前記記録すべきデータのデータ量に基づき、前記変換手段による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を、前記ＡＶ用領域、または前記非ＡＶ用領域から選択する
請求項５に記載の記録装置。
【請求項７】
前記選択手段は、前記記録すべきデータのデータ量が所定のデータ単位である場合、前記変換手段による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を、前記所定のデータ量毎、前記ＡＶ用領域に設けた複数のエリアを所定の順序で切り替えて選択する
請求項５に記載の記録装置。
【請求項８】
ホスト装置から供給される記録すべきデータ、および記録位置を示す論理ブロックアドレスに基づいて、前記記録すべきデータをディスク媒体に記録する記録装置の記録方法において、
前記ホスト装置から供給された前記論理ブロックアドレスを論理ページ番号に変換する変換ステップと、
前記変換ステップの処理による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を選択する選択ステップと、
前記選択ステップの処理で選択された前記ディスク媒体の前記物理ページ番号の位置に、前記ホスト装置から供給された前記記録すべきデータを記録する記録ステップと、
前記記録ステップの処理で前記記録すべきデータが記録されたことに対応し、前記変換ステップの処理による変化後の前記論理ページ番号に、前記記録すべきデータが記録された前記物理ページ番号を対応付けることによって、前記論理ページ番号に対応付けられている前記ディスク媒体の物理ページ番号を示す第１のテーブルを更新する更新ステップと
を含む記録方法。
【請求項９】
ホスト装置から供給される記録すべきデータ、および記録位置を示す論理ブロックアドレスに基づいて、前記記録すべきデータをディスク媒体に記録する記録装置の制御用のプログラムであって、
前記ホスト装置から供給された前記論理ブロックアドレスを論理ページ番号に変換する変換ステップと、
前記変換ステップの処理による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を選択する選択ステップと、
前記選択ステップの処理で選択された前記ディスク媒体の前記物理ページ番号の位置に、前記ホスト装置から供給された前記記録すべきデータを記録させる記録ステップと、
前記記録ステップの処理で前記記録すべきデータが記録されたことに対応し、前記変換ステップの処理による変化後の前記論理ページ番号に、前記記録すべきデータが記録された前記物理ページ番号を対応付けることによって、前記論理ページ番号に対応付けられている前記ディスク媒体の物理ページ番号を示す第１のテーブルを更新する更新ステップと
を含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置、記録方法、およびプログラムに関し、特に、ホスト装置から供給されるデータをハードディスクなどのディスク媒体上に均等に記録して一定の転送速度を保証する、いわゆるディスクスケジューリング記録を実現できるようにした記録装置、記録方法、およびプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータやビデオカメラなどのホスト装置からデータを出力し、出力されたデータをハードディスクなどのディスク媒体を内蔵する記録装置に記録させることを考える。
【０００３】
これまでは、ホスト装置であるＰＣ(Personal Computer)は記録装置に対し、単位時間当たりのコマンド処理数やデータ転送速度（比較的長時間における平均値）を上げることを要求し、従って、データ転送速度のばらつきや、応答速度はあまり考慮されなかった。
【０００４】
一方、コンスーマ機器が記憶装置に対して要求する性能は、平均的にはそれほど高くない。例えば、ハイビジョン録画をMPEG(Moving Picture Experts Group)２で行う場合、そのデータレートは25Mbit/sec 程度であり、100Mbit/secを超えるＨＤＤの転送速度からみてそれほど高いわけではない。
【０００５】
しかしながら、転送速度のばらつきを減らす、応答速度を早くする、すなわちリアルタイム性については強い要求がある。実際、転送速度のばらつきが大きく、応答速度が遅ければ、再生中に画像や音声が止まる、又は録画や記録中に録画ができないなどの問題が起こる。これらの問題は、コンスーマ機器として記憶装置を用いるには致命的である。
【０００６】
このような転送速度のばらつきが起こる要因は大きく分けて２つある。転送速度が遅くなる第１の要因としては、シークエラー又は読み出したデータに誤りが存在することであり、このことにより、その訂正あるいは再試行に時間がかかってしまうことが挙げられる。また、転送速度が遅くなる第２の要因としては、シーク動作や回転待ちが多く発生し無駄な時間が多い、あるいは転送速度の遅い領域を長時間に亘って使用しているなどである。
【０００７】
上述した第１の要因に関しては、データの信頼性が低くてもよいＡＶデータなどについては、エラーを無視する、またはコマンドの処理時間に上限を設定することで一応解決することができる。例えば、ATA（AT Attachment）−７のStreaming Feature Set（一般にＡＶコマンドと称される）では、個々のコマンドの処理時間を直接指定することができる。
【０００８】
しかしながら、それをどのように実行するかはストレージ側に完全にまかされていて、データが実際に正しく読み書きできたかどうかは保障されないという問題がある。ただし、このような問題の発生頻度は比較的小さい。
【０００９】
上述した第２の要因に関しては、上記１つめの要因より発生頻度が高く、問題としてはより深刻である。その解決法として、従来、ディスクスケジューリングとファイルの物理的配置の工夫との２つが提案されてきた。
【００１０】
ディスクスケジューリングは、アプリケーションから要求される複数のI/O要求をまとめてその処理時間が小さくなるようにそれらの実行する順番を変更する技術である。古くから多くの研究が行われていて、その代表的なアルゴリズムとして、SSTF (shortest -seek-time-first 最小シークの順)、SCAN、FCFS (first-come-first-served 到着順)、EDF  (earliest-deadline-first 期限の早い順)などを挙げることができる(非特許文献１参照)。
【００１１】
例えばSSTFでは、数個から百個くらいのコマンドをキューイングして、その実行時間を計算した値をテーブルとして保持し、保持しているテーブルの値と一番最近入ってきたコマンドの実行時間と比較して、一番小さいものを実行するのが通常である。なお、実行時間を計算するにあたり回転待ち時間は考慮したものも提案されている。なお、SSTFは主に記憶装置内部のコントローラに実装されてきた。
【００１２】
またSCANにおいては、SSTFと同様にコマンドをキューイングするが、コマンドの実行をディスクの内周から外周へ（あるいは外周から内周へ）一方向にむけて行い、ディスクの端に辿り着いたらその方向を反転させるものである。なおその改良としてコマンド実行後に、その先にアクセス要求がなくなっていたら反転するものを Look Scan、さらに循環的にコマンドの実行を行うもの、具体的には最外周でコマンドの実行を行ったら次に最内周でのコマンドの実行を行うものを C(Circular) Look Scanと称する。なお SCAN は主にホスト装置側で実装されてきた。
【００１３】
しかしながら、これらの方法はＡＶデータを扱うのには不向きである。なぜならば、I/O要求当たりのデータ転送量が多く、したがって単位時間あたりのI/O要求の数が少ないからである。また上記のアルゴリズムでは、比較するI/O要求が少ないと効果が薄く、かといって多数のI/O要求を得るまで待てばリアルタイム性が損なわれてしまう。
【００１４】
そこで、ＡＶデータを扱う場合には、FCFS，EDFが用いられることが多い。しかし前述の「シーク動作や回転待ちが多く発生し無駄な時間が多い」、またディスク媒体を角速度一定(CAV:Constant Angular Velocity)で用いる場合、ディスクの内周と外周ではデータの転送速度が大きく異なるために、「転送速度の遅い領域を長時間に亘って使用してしまう」ために応答は速くても十分なスループットを出すことができない可能性がある。
【００１５】
一方、ファイルの物理的配置を工夫する方法も数多くの研究・実装がある。例えば、最近のファイルシステムでは、データの局所性を利用し、関連するデータを物理的に近接した配置する努力を論理ブロックアドレス（LBA：Logical Brock Address）空間上で行っている。また、転送速度の最低値を保障するためにシーク動作が増えることを覚悟して転送速度が遅い領域と早い領域とを組み合わせて使用する方法が提案されている（特許文献１参照）。
【００１６】
しかしながら、ホスト装置側では、HDDにおいて、現在ヘッドがどこに存在しているのか、データがディスクのどこに配置されるかなどの情報を直接知ることができない。そのためヘッドを所定のトラックにシークする時間、とりわけそれ以後の回転待ち時間を厳密に知ることが困難で、その短縮には限界があった。
【００１７】
これに対して、さらにファイルの配置に制限を設けて、より回転待ち時間を最適化する技術が提案されているが（特許文献２参照）、ブロック分割にともないシーク動作が多くなること、ディスク面の使用効率が悪くなるなどの問題がある。
【００１８】
これらの問題を解決するために、ファイルシステムの中の配置情報を管理するコンポーネントを記憶装置側に移動させ、ディスクの記憶領域を外周から内周にむけて複数のエリアに分割し、所定のパターンに従って各エリアをほぼ等しい頻度で使用することにより、データの転送速度の下限を保証する技術が提案されている（特許文献３参照）。
【００１９】
【特許文献１】特開平１０−４９９９６号公報
【特許文献２】特開平９−１８５８６４号公報
【特許文献３】特開２００５−２２８４０４号公報
【非特許文献１】前川  守著「岩波講座ソフトウェア科学  オペレーティングシステム」、岩波書店、１９８８年９月６日発行
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、ホスト装置と記録装置からなる従来のシステムにおいて、提案した方法によってデータをディスクスケジューリング記録し、また読み出すためには、ホスト装置側から記録装置側に対して、単なる書き込みコマンドや読み出しコマンドとは異なる特別なコマンドを出力する必要があり、ホスト装置側の負担が大きかった。
【００２１】
本発明はこのような状況に鑑みてなされたものであり、ホスト装置側からの特別なコマンドを必要とせず、ホスト装置から出力される既存のコマンドに従い、データをディスク媒体にディスクスケジューリング記録できるようにするものである。
【課題を解決するための手段】
【００２２】
本発明の一側面である記録装置は、ホスト装置から供給される記録すべきデータ、および記録位置を示す論理ブロックアドレスに基づいて、前記記録すべきデータをディスク媒体に記録する記録装置において、前記ホスト装置から供給された前記論理ブロックアドレスを論理ページ番号に変換する変換手段と、前記論理ページ番号に対応付けられている前記ディスク媒体の物理ページ番号を示す第１のテーブルを保持する保持手段と、前記変換手段による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を選択する選択手段と、前記選択手段によって選択された前記ディスク媒体の前記物理ページ番号の位置に、前記ホスト装置から供給された前記記録すべきデータを記録する記録手段と、前記記録手段によって前記記録すべきデータが記録されたことに対応し、前記変換手段による変化後の前記論理ページ番号に、前記記録すべきデータが記録された前記物理ページ番号を対応付けることによって前記第１のテーブルを更新する更新手段とを含む。
【００２３】
前記第１のテーブルは、前記論理ページ番号と前記ディスク媒体の物理ページ番号との対応関係をページ単位の整数倍のブロック単位で示すようにすることができる。
【００２４】
前記保持手段は、前記ディスク媒体の前記ＡＶ用領域に属する物理ブロックアドレスが、既に前記論理ページ番号に対応付けられているか否かを示す第２のテーブルも保持するようにすることができる。
【００２５】
前記保持手段は、不揮発性メモリであって前記記録すべきデータを記憶することができ、前記第１のテーブルには、前記論理ページ番号に対応付けられている前記不揮発性メモリの物理ページ番号も記録されているようにすることができる。
【００２６】
前記ディスク媒体には、比較的データ量の大きなＡＶデータを記録するためのＡＶデータ用領域と、比較的データ量の小さな非ＡＶデータを記録するための非ＡＶデータ用領域が設けられているようにすることができる。
【００２７】
前記選択手段は、前記記録すべきデータのデータ量に基づき、前記変換手段による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を、前記ＡＶ用領域、または前記非ＡＶ用領域から選択するようにすることができる。
【００２８】
前記選択手段は、前記記録すべきデータのデータ量が所定のデータ単位である場合、前記変換手段による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を、前記所定のデータ量毎、前記ＡＶ用領域に設けた複数のエリアを所定の順序で切り替えて選択するようにすることができる。
【００２９】
本発明の一側面である記録方法は、ホスト装置から供給される記録すべきデータ、および記録位置を示す論理ブロックアドレスに基づいて、前記記録すべきデータをディスク媒体に記録する記録装置の記録方法において、前記ホスト装置から供給された前記論理ブロックアドレスを論理ページ番号に変換する変換ステップと、前記変換ステップの処理による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を選択する選択ステップと、前記選択ステップの処理で選択された前記ディスク媒体の前記物理ページ番号の位置に、前記ホスト装置から供給された前記記録すべきデータを記録する記録ステップと、前記記録ステップの処理で前記記録すべきデータが記録されたことに対応し、前記変換ステップの処理による変化後の前記論理ページ番号に、前記記録すべきデータが記録された前記物理ページ番号を対応付けることによって、前記論理ページ番号に対応付けられている前記ディスク媒体の物理ページ番号を示す第１のテーブルを更新する更新ステップとを含む。
【００３０】
本発明の一側面であるプログラムは、ホスト装置から供給される記録すべきデータ、および記録位置を示す論理ブロックアドレスに基づいて、前記記録すべきデータをディスク媒体に記録する記録装置の制御用のプログラムであって、前記ホスト装置から供給された前記論理ブロックアドレスを論理ページ番号に変換する変換ステップと、前記変換ステップの処理による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を選択する選択ステップと、前記選択ステップの処理で選択された前記ディスク媒体の前記物理ページ番号の位置に、前記ホスト装置から供給された前記記録すべきデータを記録させる記録ステップと、前記記録ステップの処理で前記記録すべきデータが記録されたことに対応し、前記変換ステップの処理による変化後の前記論理ページ番号に、前記記録すべきデータが記録された前記物理ページ番号を対応付けることによって、前記論理ページ番号に対応付けられている前記ディスク媒体の物理ページ番号を示す第１のテーブルを更新する更新ステップとを含む処理をコンピュータに実行させる。
【００３１】
本発明の一側面においては、ホスト装置から供給された論理ブロックアドレスが論理ページ番号に変換され、変化後の論理ページ番号に対応付けるディスク媒体の物理ページ番号が選択され、選択されたディスク媒体の物理ページ番号の位置に、ホスト装置から供給された記録すべきデータが記録される。そして、記録すべきデータが記録されたことに対応し、変化後の論理ページ番号に、記録すべきデータが記録された物理ページ番号を対応付けることによって、論理ページ番号に対応付けられているディスク媒体の物理ページ番号を示す第１のテーブルが更新される。
【発明の効果】
【００３２】
本発明の一側面によれば、ホスト装置側からの特別なコマンドを必要とせず、ホスト装置から出力される既存のコマンドに従い、データをディスク媒体にディスクスケジューリング記録することが可能となる。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３４】
本発明の一側面である記録装置（例えば、図１の記録装置２０）は、ホスト装置（例えば、図１のホスト装置１０）から供給される記録すべきデータ、および記録位置を示す論理ブロックアドレスに基づいて、前記記録すべきデータをディスク媒体（例えば、図１のディスク媒体３９）に記録する記録装置において、前記ホスト装置から供給された前記論理ブロックアドレスを論理ページ番号に変換する変換手段（例えば、図１９のステップＳ２を実行する図１のCPU２１）と、前記論理ページ番号に対応付けられている前記ディスク媒体の物理ページ番号を示す第１のテーブル（例えば、図１のテーブルＴ１）を保持する保持手段（例えば、図１の不揮発性メモリ２９）と、前記変換手段による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を選択する選択手段（例えば、図２０のステップＳ１６を実行する図１のCPU２１）と、前記選択手段によって選択された前記ディスク媒体の前記物理ページ番号の位置に、前記ホスト装置から供給された前記記録すべきデータを記録する記録手段（例えば、図２０のステップＳ１７を実行する図１のHDD制御部２５）と、前記記録手段によって前記記録すべきデータが記録されたことに対応し、前記変換手段による変化後の前記論理ページ番号に、前記記録すべきデータが記録された前記物理ページ番号を対応付けることによって前記第１のテーブルを更新する更新手段（例えば、図２０のステップＳ１９を実行する図１のCPU２１）とを含む。
【００３５】
前記保持手段は、前記ディスク媒体の前記ＡＶ用領域に属する物理ブロックアドレスが、既に前記論理ページ番号に対応付けられているか否かを示す第２のテーブル（例えば、図１のテーブルＴ２）も保持するようにすることができる。
【００３６】
本発明の一側面である記録方法およびプログラムは、前記ホスト装置から供給された前記論理ブロックアドレスを論理ページ番号に変換する変換ステップ（例えば、図１９のステップＳ２）と、前記変換ステップの処理による変化後の前記論理ページ番号に対応付ける前記ディスク媒体の物理ページ番号を選択する選択ステップ（例えば、図２０のステップＳ１６）と、前記選択ステップの処理で選択された前記ディスク媒体の前記物理ページ番号の位置に、前記ホスト装置から供給された前記記録すべきデータを記録する記録ステップ（例えば、図２０のステップＳ１７）と、前記記録ステップの処理で前記記録すべきデータが記録されたことに対応し、前記変換ステップの処理による変化後の前記論理ページ番号に、前記記録すべきデータが記録された前記物理ページ番号を対応付けることによって、前記論理ページ番号に対応付けられている前記ディスク媒体の物理ページ番号を示す第１のテーブルを更新する更新ステップ（例えば、図２０のステップＳ１９）とを含む。
【００３７】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００３８】
図１は、本発明を適用したハイブリッド記録システムの構成例を示している。
【００３９】
このハイブリッド記録システム１は、例えばパーソナルコンピュータやビデオカメラなどのデータを出力するホスト装置１０、並びに、ホスト装置１０から入力されたデータを記録する記録媒体としてNANDフラッシュメモリなどからなる不揮発性メモリ２９およびハードディスクドライブ（以下、HDDと称する）３０を備える記録装置２０から構成される。
【００４０】
ホスト装置１０は、所定の制御用プログラムを実行することによりホスト装置１０の全体を制御するCPU(Central Processing Unit)１１、制御用プログラムを保持するとともにCPU１１の処理領域として利用されるCPU用メモリ１３、およびIDE(Integrated Drive Electronics)，SCSI(Small Computer System Interface)，FC（Fibre Channel），USB(Universal Serial Bus)などからなる記録装置I/F（インタフェース）１４から構成される。CPUメモリ１３および記録装置I/F１４は、バス１２を介してCPU１１に接続されている。
【００４１】
ホスト装置１０では、記録装置２０に対してデータの記録を指示するとき、CPU１１が一般的な書き込みコマンドと、記録させるデータ（例えば、AVデータなど）と、記録させる位置を示す論理ブロックアドレス（以下、LBA:Logical Block Addressと称する）とを、記録装置I/F１４を介して記録装置２０に出力するようになされている。
【００４２】
記録装置２０は、所定の制御用プログラムを実行することにより記録装置２０の全体を制御するCPU２１、制御用プログラムを保持するとともにCPU２１の処理領域として利用されるCPU用メモリ２３、ホスト装置１０と記録すべきデータなど通信するホスト装置I/F２４、HDD３０を制御するHDD制御部２５、バッファメモリ２７乃至不揮発性メモリ２９を制御するメモリ制御部２６、不揮発性メモリ２９に対するデータ転送速度を一定に保つためのバッファメモリ２７、バッファメモリ２７と不揮発性メモリ２９の間のページ単位（後述）のデータ転送を効率化させるためのページバッファ２８、ホスト装置１０から入力されるデータが記録される不揮発性メモリ２９、およびホスト装置１０から入力されるデータが記録されるHDD３０から構成される。
【００４３】
CPU用メモリ２３乃至メモリ制御部２６は、バス２２を介してCPU２１に接続されている。
【００４４】
バッファメモリ２７は、コスト高を抑えるためDRAM(Dynamic Random Access Memory)またはSRAM(Static RAM)により構成する。ページバッファ２８は、バッファメモリ２７と不揮発性メモリ２９の間のデータ転送だけでなく、不揮発性メモリ２９内においてデータを移動させるときにも利用される。
【００４５】
不揮発性メモリ２９に対するデータの書き込み、読み出し、および消去は、メモリ制御部２６によって実行される。不揮発性メモリ２９は、例えば２キロバイトからなるページ単位でデータを読み書きし、ページ単位の整数倍であるブロック単位（例えば、１２８キロバイト）でデータの消去を行うようになされている。不揮発性メモリ２９にデータを書き込む場合、書き込む位置にそれまで記録されていたデータを消去する必要がある。
【００４６】
不揮発性メモリ２９には、ホスト装置１０から入力されるデータが記録される他、後述するテーブルＴ１，Ｔ２，ｔ２（後述）が保持されている。
【００４７】
HDD３０は、HDD制御部２５と接続してデータなどを通信するI/F３１、HDD３０の全体を制御する制御部３２、ディスク媒体３９に記録する前のデータを一時的に保持するバッファメモリ３３、記録するデータを変調して符号化信号を生成するとともにディスク媒体３９から読み出され符号化信号を復調するチャンネル部３４、ディスク媒体３９に対して符号化信号を記録し、また読み出すヘッド３５、スピンドルモータ３７およびトラッキングモータ３８を制御するサーボ制御部３６、ディスク媒体３９を回転させるスピンドルモータ３７、およびヘッド３５をディスク媒体３９上の所定の位置に移動させるトラッキングモータ３８から構成される。
【００４８】
HDD３０に対するデータの書き込みおよび読み出しは、HDD制御部２６によって実行される。HDD３０は、例えば５１２バイトからなるセクタ単位でデータを読み書きする。HDD３０にデータを書き込む場合、その書き込む位置に不要なデータが残っていても上書きすることができる。
【００４９】
HDD３０に対するデータの書き込みは、ホスト装置１０に対して転送速度の下限値を保証するため、その記憶領域を外周側から内周側にむけて複数のエリアに分割し、各エリアを所定のパターンに従ってほぼ等しい頻度で使用するようにしたディスクスケジューリング記録により行う。なお、記録位置の各エリアへの振り分けはテーブルＴ１を用いるので、ホスト装置１０が特別なコマンドを出力する必要がない。
【００５０】
エリア数は、一般的なHDDにおいて採用されている、容量を増やすために記憶領域を１０乃至２０程度の複数のゾーンに分割してゾーン毎に転送速度を変えるゾーンビッドレコーディングと称する手法におけるゾーン数の半分の５乃至１０程度とする。また、データの書き込みサイズがあまりにも小さい場合、シーク動作のオーバヘッドが目立つので、書き込みサイズは複数トラック分の容量を超えるようにする。
【００５１】
なお、不揮発性メモリ２９の記録単位であるページのサイズと、HDD３０の記録単位であるセクタのサイズはと必ずしも一致しない。しかしながら、ページのサイズ（例えば、２キロバイト）はセクタのサイズ（例えば、５１２バイト）の整数倍であるので、ホスト装置１０が指定する論理ブロックアドレス空間に、不揮発性メモリ２９の論理ページ番号と、HDD３０の論理ページ番号とを容易に対応付けることができる。
【００５２】
記録装置２０では、ホスト装置１０からデータの書き込みが指示された場合、CPU２１がホスト装置I/F２４を介して取得するホスト装置１０から通知されるLBAを論理ページ番号に変換し、この論理ページ番号を、不揮発性メモリ２９に保持されているテーブルＴ１，Ｔ２を参照して不揮発性メモリ２９またはHDD３０の物理ページ番号に変換してHDD制御部２５またはメモリ制御部２６のどちらかにデータの記録を制御させる。
【００５３】
以下、不揮発性メモリ２９の容量は１２８メガバイト、HDD３０の容量は８ギガバイト以上を想定する。ただし、不揮発性メモリ２９およびHDD３０の容量は上述した値に限定されるものではない。
【００５４】
ここで、テーブルＴ１，Ｔ２の原型となる、テーブルｔ１，ｔ２を用いるNANDフラッシュメモリのガベージコレクションについて説明する。
【００５５】
ガベージコレクションとは、不揮発性メモリ２９に採用されたNANDフラッシュメモリの性質、すなわち「ページ単位でデータを読み書きし、ページ単位の整数倍であるブロック単位でデータを消去する。そして、データの書き込みは、書き込む位置にそれまで記録されていたデータを消去する必要がある」に対処してNANDフラッシュメモリの記録容量を効率的に利用するための手法である。
【００５６】
以下の説明では、NANDフラッシュメモリの記録容量を１２８メガバイト、書き込み単位のページを２キロバイト、消去単位のブロックを１２８キロバイトと想定する。この場合、NANDフラッシュメモリは１０２４ブロック、あるいは６５５３６ページから構成されることになる。
【００５７】
NANDフラッシュメモリの物理ページ番号を表す場合、図２に示すように、１６ビットを用い、そのうちのMSB(Most Significant Bit)側の１０ビット(0x000乃至0x3FF)でブロックを表し、LSB(Least Significant Bit)側の６ビット (0x00乃至0x3F)でブロック内のオフセットを表すようにする。以下、物理ページ番号だけでなく、論理ページ番号も、例えば0x000_3Fのようにブロック番号_オフセットの表記を用いることとする。
【００５８】
NANDフラッシュメモリに対するデータの書き込みは、可能な限り均等に各ページを使用してデータを書き込めるように、また可能な限り均等に各ブロックを消去できるように追記型の書き込みを行う。この追記型書き込みには、図３Ａに示すテーブルｔ１、図３Ｂに示すテーブルｔ２、および図３Ｃに示すポインタを用いる。
【００５９】
テーブルt１は、論理ページ番号に対応付けられた物理ページ番号を示すものである。
【００６０】
テーブルｔ２には、各物理ブロックにおける各ページの状態を示すフラグ列が記録されている。このフラグ列は、各物理ブロックを構成するページ数と同じ桁数の１０進数からなり、ブロック内におけるページのオフセット量と、フラグ列における上位側からの桁数が一致している。いまの場合、フラグ列は６４桁であり、例えば、物理ページ番号0x002_01のフラグは、テーブルｔ２の物理ブロック番号0x002に対応するフラグ列の２桁目に存在する。フラグが０，１、または２の場合、それぞれ当該ページが未使用（データが書き込まれていない）、有効（必要なデータが書き込まれている）、または無効（不要なデータが書き込まれている）を意味する。
【００６１】
ポインタには、次にデータが書き込まれる物理ページ番号が記録される。
【００６２】
まず、NANDフラッシュメモリに対して新規にデータを書き込み処理について、図３および図４を参照して説明する。初めに図３Ａのテーブルｔ１が参照される。このテーブルｔ１によれば、論理ページ番号0x001_00が未割り当てであるので、ここがデータの記録位置に決定される。次に図３Ｃのポインタが参照される。ポインタは物理ページ番号0x002_01を示しているので、データは物理ページ番号0x002_01のページに書き込まれる。
【００６３】
この新規のデータの書き込みに対応し、図４に示すように、テーブルｔ１の論理ページ番号0x001_00に対応付けて物理ページ番号0x002_01が記録される。また、テーブルｔ２における物理ページ番号0x002_01に対応するフラグ、すなわち、物理ブロック番号0x002に対応するフラグ列の上位から２桁目が未使用０から有効１に更新される。さらに、ポインタが１ページ分だけインクリメントされて、物理ページ番号0x002_02に更新される。
【００６４】
次に、NANDフラッシュメモリ上のデータを書き換える処理について、図５および図６を参照して説明する。図５Ａに示されるテーブルｔ１の論理ページ番号0x001_01に書き込まれているデータを書き換える場合、まず図５Ａのポインタが参照される。ポインタは物理ページ番号0x003_02を示しているので、書き換え後のデータは物理ページ番号0x003_02のページに書き込まれる。
【００６５】
この書き換え後のデータ書き込みに対応し、図６に示すように、テーブルｔ１の論理ブロック番号の対応付けが、物理ページ番号0x002_03から物理ページ番号0x003_02に変更される、また、テーブルｔ２における物理ページ番号0x002_03に対応するフラグ、すなわち、物理ブロック番号0x002に対応するフラグ列の上位から４桁目が有効１から無効２に更新され、新たに書き込まれた物理ページ番号0x003_02に対応するフラグ、すなわち、物理ブロック番号0x003に対応するフラグ列の上位から３桁目が未使用０から有効１に更新される。さらに、ポインタが１ページ分だけインクリメントされて、物理ページ番号0x003_03に更新される。
【００６６】
このような新規データの書き込みやデータの書き換えを継続してゆくと、無効なページが次第に増加し、最終的には使用できるページがなくなってしまう。そのために有効なデータを他のブロックに移動して、１つのブロック内の全ページを無効化した後に消去を行い使用可能な領域を増やすことが行われる。この一連の処理をガベージコレクションと称する。
【００６７】
ガベージコレクションの一例について、図７および図１３を参照して説明する。なお、説明を簡略化するため、ここでは、１ブロックを４ページで構成しているものとする。したがって、テーブルｔ２のフラグ列は４桁の１０進数となる。
【００６８】
図７は、論理ページ番号0x000_1乃至0x002_1のページにデータが書き込まれている状態に対応するテーブルｔ１，ｔ２、およびポインタを示しており、図８は、図７の状態から、論理ページ番号0x000_0および0x000_1のページのデータを書き換え、さらに論理ページ番号0x001_2および0x002_3のページのデータを消去した後の状態に対応するテーブルｔ１，ｔ２、およびポインタ示している。図８Ｂに示すテーブルｔ２からわかるように、物理ブロック番号0x000と0x001のブロックに無効なページがあり、これらがガベージコレクションの対象となる。
【００６９】
以下、物理ブロック番号0x000，0x001の順にガベージコレクションを行う。
【００７０】
まず、図９Ｂに示されるテーブルｔ２に基づき、物理ブロック番号0x000を構成する４ページのうち、有効な２ページを、図９Ｃのポインタが示す物理ページ番号0x003_0とその次の物理ページ番号0x003_1の２ページにコピーする。このコピーに対応して、テーブルｔ１，ｔ２およびポインタは図１０に示されるように更新される。
【００７１】
具体的には、テーブルｔ１の論理ページ番号0x000_2および0x000_3が、物理ページ番号0x003_0および 0x003_1に更新される。また、テーブルｔ２における物理ページ番号0x000_2および0x000_3に対応するフラグ、すなわち、物理ブロック番号0x000に対応するフラグ列の上位から３および４桁目が有効１から無効２に更新される。また、テーブルｔ２における物理ページ番号0x003_0および0x003_1に対応するフラグ、すなわち、物理ブロック番号0x003に対応するフラグ列の上位から１および２桁目が未使用０から有効１に更新される。さらに、ポインタが２ページ分だけインクリメントされて、物理ページ番号0x003_02に更新される。
【００７２】
この後、物理ブロック番号0x000のブロックのデータは消去され、この消去に対応して図１１Ｂに示されるように、テーブルｔ２における物理ブロック番号0x000のフラグ列が未使用０に更新される。
【００７３】
次に、図１１Ｂに示されるテーブルｔ２に基づき、物理ブロック番号0x001を構成する４ページのうち、有効な２ページを、図１１Ｃのポインタが示す物理ページ番号0x003_2とその次の物理ページ番号0x003_3の２ページにコピーする。このコピーに対応して、テーブルｔ１，ｔ２およびポインタは図１２に示されるように更新される。
【００７４】
具体的には、テーブルｔ１の論理ページ番号0x001_0および0x001_1が、物理ページ番号0x003_2および 0x003_2に更新される。また、テーブルｔ２における物理ページ番号0x001_0および0x001_1に対応するフラグ、すなわち、物理ブロック番号0x001に対応するフラグ列の上位から１および２桁目が有効１から無効２に更新される。また、テーブルｔ２における物理ページ番号0x003_2および0x003_3に対応するフラグ、すなわち、物理ブロック番号0x003に対応するフラグ列の上位から３および４桁目が未使用０から有効１に更新される。さらに、ポインタが２ページ分だけインクリメントされて、物理ページ番号0x004_0に更新される。
【００７５】
この後、物理ブロック番号0x001のブロックのデータは消去され、この消去に対応して図１３Ｂに示されるように、テーブルｔ２における物理ブロック番号0x001のフラグ列が未使用０に更新される。
【００７６】
以上で、テーブルｔ１，ｔ２を用いるNANDフラッシュメモリのガベージコレクションの説明を終了する。
【００７７】
次に、ホスト装置１０が記録装置２０に対してデータの書き込み、読み出しを指示するときに指定するLBAと、ハイブリッド記録システム１で採用するFAT(File Allocation Tables)ファイルシステムについて説明する。
【００７８】
図１４は、ホスト装置１０が記録装置２０に対して指定するLBA空間を示している。このLBA空間においては、HDD３０の最小アクセス単位であるセクタ（例えば５１２バイト）を１単位（LBA空間におけるブロック）として扱っている。上述したように、HDD３０のセクタと不揮発性メモリ２９の記録単位であるページはサイズが必ずしも一致しないが、ページのサイズはセクタのサイズの整数倍であるので、LBA空間にHDD３０のセクタと不揮発性メモリ２９のページを容易に対応付けることができる。
【００７９】
FATファイルシステムでは、ファイルデータを管理する最小単位として、複数のセクタからなるクラスタを採用している。クラスタにはLBAの小さい方から順にクラスタ番号が割り振られる。以下の説明ではオフセット（クラスタ番号０のクラスタをLBA空間のどこに配置するか）を無視して、クラスタ番号を、LBAを単に１クラスタを構成するセクタ数（例えば１６）で割ったものとする(いまの例の場合、１クラスタは８キロバイトとなる)。
【００８０】
LBA空間に格納されているFATは、複数のクラスタに分割して記録されているファイルがどのように配置されているかを示す連結情報が書かれたテーブルである。そのためFAT内ではLBAではなくクラスタ番号が用いられる。FATファイルシステムで管理される記憶領域は、予約領域、FAT領域、およびファイルとディレクトリデータ領域の３領域から構成される。
【００８１】
例えば、ファイルとディレクトリデータ領域に格納されているディレクトリ項目Ｄａには、ファイル名（いまの場合、ｆ１）とその開始クラスタ番号（いまの場合、12340h）が記述されている。ファイルｆ１にアクセスする場合、ホスト装置１０は、ディレクトリ項目Ｄａから開始クラスタ番号12340hを読み出し、それに対応するFAT項目(FAT Entry)を参照して、ファイルｆ１が記録されている次のクラスタがクラスタ番号12341hにあることを取得する。以下順次FATを参照して次のクラスタ番号を取得し、クラスタ番号1237FhのFAT項目がEOF(End of File)であるところまで配置情報を読み出す。ホスト装置１０は読み出した配置情報に基づいてファイルにアクセスを行う。
【００８２】
記録装置２０では、ホスト装置１０から指示されたLBAを論理ページ番号に変換し、この論理ページ番号を、不揮発性メモリ２９に保持されているテーブルＴ１，Ｔ２，ｔ２を参照して不揮発性メモリ２９の物理ページ番号またはHDD３０の物理ブロックアドレスに変換してHDD制御部２５またはメモリ制御部２６のどちらかにデータの記録を制御させる。
【００８３】
次に、LBA、論理ページ番号、不揮発性メモリ２９の物理ページ番号、およびHDD３０の物理ページ番号の対応関係について、図１５および図１６を参照して説明する。
【００８４】
図１５は、LBA空間と論理ページ番号空間の対応関係を示している。LBA空間は、図１４における予約領域およびFAT領域に相当するユーザ領域UA１と、図１４におけるファイルとディレクトリデータ領域に相当するユーザ領域UA２，UA３の３領域に分割されている。論理ページ番号空間の先頭には、システム領域が設けられており、これに続いてユーザ領域UA１，UA３，UA２の順に配置されている。ただし、ユーザ領域UA１乃至UA３の配置の順序は、他の順序、例えばユーザ領域UA１，UA２，UA３などであっても構わない。
【００８５】
なお、このLBA空間と論理ページ番号空間の対応関係は、CPU２１によって実行されるファームウェアによって管理されている。以下、ユーザ領域UA１は３２メガバイト、ユーザ領域UA２は８ギガバイトを想定する。
【００８６】
図１６は、論理ページ番号空間と、不揮発性メモリ２９の物理ページ番号およびHDD３０の物理ブロックアドレスとの対応関係を示している。論理ページ番号空間におけるシステム領域、ユーザ領域UA１、およびユーザ領域UA３は、不揮発性メモリ２９の物理ページ番号に対応付けられている。さらに、ユーザ領域UA１、およびユーザ領域UA３は、バックアップ用としてHDD３０の物理ブロックアドレス0x00000000乃至0x0000FFFFにも対応付けられている。不揮発性メモリ２９の物理ページ番号の先頭部分は、記録装置２０のCPU２１だけがアクセス可能なシステム領域が設けられている。このシステム領域には、ブロックアクセスとバイト単位のランダムアクセスが可能であり、以下に詳述するテーブルＴ１，Ｔ２が保持される。
【００８７】
論理ページ番号空間において論理ページ番号0x00400_00乃至0x103FF_3Fを占めるユーザ領域UA２は、HDD３０の物理ブロックアドレス0x00010000乃至0x0100FFFFに対応付けられている。ユーザ領域UA２のうち、論理ページ番号0x00400_00乃至0x004FF_3Fは、HDD３０の物理ブロックアドレス0x00010000乃至0x0001FFFに対応付けられており、比較的データ量が小さくディスクスケジューリング記録の対象とならない非ＡＶデータの記録用に用いる非とされている。残りの論理ページ番号0x00500_00乃至0x103FF_3Fは、HDD３０の物理ブロックアドレス0x00020000乃至0x0100FFFFに対応付けられており、比較的データ量が大きくディスクスケジューリング記録の対象となるＡＶデータの記録用に用いるとされている。
【００８８】
なお、図示の説明上、HDD３０に記録領域は物理ブロックアドレスを用いて表記しているが、HDD制御部２５がHDD３０を制御する際にはLBAを用いている。
【００８９】
図１５および図１６から明らかなように、HDD３０の物理ブロックアドレスの先頭部分をユーザ領域UA１およびUA３のバックアップ用として使用しているので、ホスト装置１０がアクセスするLBA空間とHDD３０の物理ブロックアドレスの範囲が一致している。
【００９０】
以上に説明した対応関係をまとめると次の（１）乃至（４）とおりである。
【００９１】
（１）HDD３０の物理ブロックアドレス0x00000000乃至0x000FFFFは、ユーザ領域UA１に割り当てられた論理ページ番号に対応付ける。この論理ページ番号と物理ブロックアドレスの対応付けは変更されない。
【００９２】
（２）HDD３０の物理ブロックアドレス0x00010000乃至0x0001FFFFは、ユーザ領域UA２のうちの非に割り当てられた論理ページ番号0x00400_00乃至0x004FF_3Fに対応付ける。この論理ページ番号と物理ブロックアドレスの対応付けは変更されない。
【００９３】
（３）HDD３０の物理ブロックアドレス0x00020000乃至0x0100FFFFは、ユーザ領域UA２のうちのに割り当てられた論理ページ番号0x00500_00乃至0x103FF_3Fに対して動的に対応付ける。すなわち、例えば図１６に示すように、論理ページ番号0x00600_00乃至0x00600_3Fを、動的に物理ブロックアドレス0x00020000乃至0x0100FFFFの範囲に属する物理ブロックアドレス0x00030000乃至0x000300FFに対応付ける。この対応付けは、原則としてブロックあるいはスーパクラスタ単位で行われる（スーパクラスタはブロックの整数倍である）。ただし、例外的にページ単位での対応付けを行う場合もある。
【００９４】
（４）HDD３０の物理ブロックアドレス0x01010000乃至0x0000FFFFは、ユーザ領域UA３に割り当てられた論理ページ番号に対応付ける。この論理ページ番号と物理ブロックアドレスの対応付けは変更されない。
【００９５】
以上で、LBAと、論理ページ番号と、不揮発性メモリ２９の物理ページ番号またはHDD３０の物理ページ番号との対応関係の説明を終了する。
【００９６】
次に、記録装置２０において用いるテーブルＴ１，Ｔ２，ｔ２について説明する。
【００９７】
図１７は、テーブルＴ１の一例を示している。このテーブルＴ１は、論理ページ番号に対応付けられた物理ページ番号を示すものであり、上述したガベージコレクションにおいて用いたテーブルｔ１に、ブロックビットを追加して拡張したものである。
【００９８】
追加されたブロックビットは、論理ページ番号をブロック単位で物理ページ番号に変換する場合には１、論理ページ番号をページ単位で物理ページ番号に変換できる場合には０を記録するようになされている。例えば、図１７の例は、（一部分を除く）に対応するブロックビットが１とされている。ブロックビットを１とした部分については、テーブルＴ１においてページ単位の記載を省略し、テーブルＴ１のサイズを縮約することができる。
【００９９】
ただし、図１７の例では、の一部分については、非ＡＶデータの記録に流用できるように、対応するブロックビットが０とされている。ブロックビットを０に変更した部分については、テーブルＴ１においてページ単位の記載を省略できない。
【０１００】
図１８は、テーブルＴ２の一例を示している。このテーブルＴ２は、論理ページ番号に対して動的に対応付けられる、HDD３０のＡＶデータ用領域に属する各物理ブロックアドレスに、アドレス変換フラグが対応付けて記録されている。アドレス変換フラグは、当該物理ブロックアドレスが既に論理ページ番号に対応付けられているか否かを示すものであり、アドレス変換フラグが０の場合は未対応付けを意味し、アドレス変換フラグが１の場合は対応付け済みを意味する。
【０１０１】
図１８に示すテーブルＴ２の例は、図１６に示されているように、論理ページ番号0x00600_00乃至0x00600_3Fに、HDD３０の物理ブロックアドレス0x00030000乃至0x000300FFが動的に対応付けられた状態に対応している。したがって、図１８のテーブルＴ２では、物理ブロックアドレス0x00030000に対応するアドレス変換フラグが１に設定されている。
【０１０２】
テーブルｔ２については、上述したガベージコレクションの説明と同様である。
【０１０３】
次に、このテーブルＴ１、Ｔ２、およびｔ２を用いたデータ記録処理について、図１９および図２０のフローチャートを参照して説明する。ただし、最初に用いるディスクスケジューリング記録のエリア、ディスクスケジューリング記録のエリアを変更するパターン、およびＡＶデータを書き込む場合に使用するデータサイズは予め設定されているものとする。
例えば、ディスクスケジューリング記録のエリアは、ユーザ領域UA２のが、HDD３０の物理ブロックアドレス0x00020000乃至0x0100FFFFであるので、これをほぼ同容量の４つのエリア、エリアＡ１：0x00020000乃至0x003FFFFF、エリアＡ２：0x00400000乃至0x007FFFFF、エリアＡ３：0x00800000乃至0x00BFFFFF、およびエリアＡ４：0x00C00000乃至0x0100FFFFに分割して使用する。
【０１０４】
ステップＳ１において、ホスト装置１０が一般的な書き込みコマンドと、記録させるデータと、記録させる位置を示すLBAを出力すると、ホスト装置I/F２４がこれらを取得し、バス２２を介してCPU２１に通知する。
【０１０５】
ステップＳ２において、CPU２１（より具体的にはCPU２１によって実行されるファームウェア）は、ホスト装置I/F２４から通知されたLBAを論理ページ番号に変換し、変換後の論理ページ番号が不揮発性メモリ２９に対応するユーザ領域UA１またはUA３１に属するか否かを判定する。変換後の論理ページ番号がユーザ領域UA１またはUA３１に属すると判定された場合、処理はステップＳ３に進められる。
【０１０６】
ステップＳ３において、CPU２１は、上述したガベージコレクションの説明の前段と同様、テーブルＴ１およびｔ２を参照し、ウェアレベリングなどを考慮して変換後の論理ページ番号を不揮発性メモリ２９の物理ページ番号に対応付ける。ステップＳ４において、メモリ制御部２６は、CPU２１からの制御に従い、対応付けられた不揮発性メモリ２９の物理ページ番号に、ホスト装置２４から供給された記録すべきデータを記録する。
【０１０７】
ステップＳ５において、メモリ制御部２６は、不揮発性メモリ２９に対するデータの記録が成功したか否か判定し、判定結果をCPU２１に通知する。不揮発性メモリ２９に対するデータの記録が成功した場合、処理はステップＳ６に進められ、CPU２１は、テーブルＴ１の当該論理ページ番号に対応付けて、記録した物理ページ番号を記録する。また、テーブルｔ２において、当該物理ページ番号に対応するフラグを有効１に更新する。
【０１０８】
反対に、不揮発性メモリ２９に対するデータの記録が成功しなかった場合、処理はステップＳ７に進められ、CPU２１は、ホスト装置I/F２４を介してホスト装置１０にエラーの発生を通知してこのデータ記録処理を終了する。
【０１０９】
ステップＳ２において、変換後の論理ページ番号がユーザ領域UA１またはUA３１に属さない、すなわち、変換後の論理ページ番号がHDD３０に対応するユーザ領域UA２に属すると判定された場合、処理はステップＳ８に進められる。
【０１１０】
ステップＳ８において、CPU２１は、変換後の論理ページ番号がユーザ領域UA２のうちの非ＡＶ領域であるか否かを判定する。変換後の論理ページ番号が非ＡＶ領域であると判定された場合、処理はステップＳ９に進められる。ステップＳ９において、CPU２１は、変換後の論理ページ番号に固定して対応付けられているHDD３０の物理ブロックアドレスを判別する。
【０１１１】
ステップＳ１０において、HDD制御部２５は、CPU２１からの制御に従い、HDD３０を制御して、判別されたHDD３０の物理ブロックアドレスに、ホスト装置I/F２４からバス２２を介して供給された記録すべきデータを記録させる。
【０１１２】
ステップＳ１１において、HDD制御部２５は、HDD３０に対するデータの記録が成功したか否か判定し、判定結果をCPU２１に通知する。HDD３０に対するデータの記録が成功しなかった場合、処理はステップＳ１２に進められ、CPU２１は、ホスト装置I/F２４を介してホスト装置１０にエラーの発生を通知してこの記録処理を終了する。反対に、HDD３０に対するデータの記録が成功した場合、ステップＳ１２がスキップされて、このデータ記録処理は終了される。
【０１１３】
ステップＳ８において、変換後の論理ページ番号が非ＡＶ領域ではない、すなわち、ＡＶデータ領域であると判定された場合、処理はステップＳ１３に進められる。このステップＳ１３以降の処理がディスクスケジューリング記録となる。
【０１１４】
ステップＳ１３において、CPU２１は、テーブルＴ１を参照し、変換後の論理ページ番号に既にHDD３０の物理ブロック番号が割り当てられているか否かを判定する。物理ブロック番号が割り当てられていると判定された場合（すなわち、データを書き換える場合）、処理はステップＳ１４に進められる。
【０１１５】
ステップＳ１４において、HDD制御部２５は、CPU２１からの制御に従い、HDD３０を制御して、割り当てられているHDD３０の物理ブロックアドレスに、ホスト装置I/F２４からバス２２を介して供給された記録すべきデータを上書き記録させる。この後、処理はステップＳ１１以降と同様に、データの記録が成功しなければホスト装置１０にエラーが通知され、成功すれば、このデータ記録処理は終了される。
【０１１６】
ステップＳ１３において、テーブルＴ１を参照した結果、変換後の論理ページ番号にHDD３０の物理ブロック番号が割り当てられていないと判定された場合、処理は図２０のステップＳ１５に進められる。
【０１１７】
ステップＳ１５において、CPU２１は、記録すべきデータのサイズがスーパクラスタ単位であるか否かを判定し、スーパクラスタ単位であると判定した場合、処理をステップＳ１６に進める。ステップＳ１６において、CPU２１は、前回のディスクスケジューリング記録で使用したエリアの次に使用すべきエリアを所定のパターンに基づいて決定し、テーブルＴ２を参照し、決定した当該エリアにおいて空いているブロックをランダムに選択する。
【０１１８】
ステップＳ１７において、HDD制御部２５は、CPU２１からの制御に従い、HDD３０を制御して、選択されたHDD３０の物理ブロックアドレスに、ホスト装置I/F２４からバス２２を介して供給された記録すべきデータを記録させる。
【０１１９】
ステップＳ１８において、HDD制御部２５は、HDD３０に対するデータの記録が成功したか否か判定し、判定結果をCPU２１に通知する。HDD３０に対するデータの記録が成功した場合、処理はステップＳ１９に進められ、CPU２１は、テーブルＴ１の当該論理ページ番号に対応付けて、データを記録した物理ブロックアドレスに相当する物理ページ番号を記録する。また、テーブルＴ２において、当該物理ページ番号に対応するアドレス変換フラグを１に更新する。さらに、今回のディスクスケジューリング記録で使用したエリアをシステム領域に記録して、このデータ記録処理を終了する。
【０１２０】
反対に、HDD３０に対するデータの記録が成功しなかった場合、処理はステップＳ２０に進められ、CPU２１は、ホスト装置I/F２４を介してホスト装置１０にエラーの発生を通知してこのデータ記録処理を終了する。
【０１２１】
ステップＳ１５において、記録すべきデータのサイズがスーパクラスタ単位ではないと判定された場合、処理はステップＳ２１に進められる。この場合、記録すべきデータは、そのデータ単位がスーパクラスタ単位に満たないものであり、比較的サイズの小さなデータをＡＶ領域に記録することになる。
【０１２２】
ステップＳ２１において、CPU２１は、テーブルＴ１を参照し、ユーザ領域UA２のＡＶ用データ領域に属する論理ページ番号の中で、ブロックビットが０であって物理ページ番号が割り当てられていないものを検出し、ステップ２２において、検出できたか否かを判定する。検出できなかった場合、処理はステップＳ２３に進められる。反対に、検出できた場合、ステップＳ２３の処理はスキップされる。
【０１２３】
ステップＳ２３において、CPU２１は、テーブルＴ２を参照し、ユーザ領域UA２の物理ブロックアドレスの中で空いているもの（アドレス変換フラグが０のもの）を検出し、テーブルＴ１において、検出した物理ブロックアドレスに対応する論理ページ番号のブロックビットを０に更新する。
【０１２４】
ステップＳ２４において、HDD制御部２５は、CPU２１からの制御に従い、HDD３０を制御して、ステップＳ２１の処理で検出された論理ページ番号に対応する物理ブロックアドレス、またはステップＳ２３の処理で検出された物理ブロックアドレスに、ホスト装置I/F２４からバス２２を介して供給された記録すべきデータを記録させる。
【０１２５】
ステップＳ２５において、HDD制御部２５は、HDD３０に対するデータの記録が成功したか否か判定し、判定結果をCPU２１に通知する。HDD３０に対するデータの記録が成功した場合、処理はステップＳ２６に進められる。
【０１２６】
ステップＳ２６において、CPU２１は、テーブルＴ１の当該論理ページ番号に対応付けて、データを記録した物理ブロックアドレスに相当する物理ページ番号を記録する。また、テーブルＴ２において、当該物理ページ番号に対応するアドレス変換フラグを１に更新する。
【０１２７】
ステップＳ２７において、CPU２１は、記録すべきデータの全体を記録したか否かを判定する。記録すべきデータの全体を記録していない、すなわち、記録すべきデータがまだ未記録で残っていると判定された場合、処理はステップＳ２１に戻されて、それ以降の処理が繰り返される。そして、ステップＳ２７で、記録すべきデータの全体を記録したと判定された場合、このデータ記録処理は終了される。
【０１２８】
なお、ステップＳ２５において、HDD３０に対するデータの記録が成功しなかったと判定された場合、処理はステップＳ２８に進められ、CPU２１は、ホスト装置I/F２４を介してホスト装置１０にエラーの発生を通知してこのデータ記録処理を終了する。
【０１２９】
以上で、テーブルＴ１、Ｔ２、およびｔ２を用いたデータ記録処理の説明を終了する。
【０１３０】
次に、上述したデータ記録処理によって更新されるテーブルＴ１，Ｔ２の一例を示す。
【０１３１】
図２１は、上述したデータ記録処理によって論理ページ番号0x00500_00以降に１メガバイトのＡＶデータがディスクスケジューリング記録により、エリアＡ１，Ａ２，Ａ３，Ａ４，Ａ１，Ａ２，・・・の順で記録された後のテーブルＴ１を示している。図２２は、それに対応するテーブルＴ２を示している。ただし、スーパクラスタのサイズをブロックサイズと同等としている。
【０１３２】
最初にエリアＡ１の物理ブロックアドレス0x00020000以降に１２８キロバイト分のデータが書き込まれる。この書き込みに対応し、テーブルＴ１において、論理ページ番号0x00500_00に対応して物理ページ番号0x00020000が記録される。また、テーブルＴ２の物理ブロックアドレス0x00020000に対応するアドレス変換フラグが１に更新される。
【０１３３】
次にHDD３０のヘッド３５がエリアＡ２までシークされ、物理ブロックアドレス0x00400000以降に１２８キロバイト分のデータが書き込まれる。この書き込みに対応し、テーブルＴ１において、論理ページ番号0x00501_00に対応して物理ページ番号0x00040000が記録される。また、テーブルＴ２の物理ブロックアドレス0x00040000に対応するアドレス変換フラグが１に更新される。
【０１３４】
これ以降、エリアＡ３，Ａ４，Ａ１，・・・の順にデータの書き込みが行われ、それに対応してテーブルＴ１，Ｔ２が更新される。以上で、データ記録処理によって更新されるテーブルＴ１，Ｔ２の例の説明を終了する。
【０１３５】
なお、上述した説明において、ＡＶデータとして扱うサイズをスーパクラスタ単位の１種類としたが、それを複数に増やして、それぞれでスケジューリング記録をするようにしてもよい。
【０１３６】
また、上述した説明において、ユーザ領域UA２に対する書き込みに不揮発性メモリ２９は使用しないことを前提としたが、論理ブロックアドレスと論理ページ番号の対応関係を示すテーブルを別途設ければ、不揮発性メモリ２９のシステム領域を一時的な書き込み領域として使うことができる。これは、振動などの理由で時間内の書き込みができない場合は有効な方法である。またそのように書かれたデータを不揮発性メモリ２９からHDD３０に移動する機能を設ければ、不揮発性メモリ２９を有効に使うことが可能となる。
【０１３７】
以上説明したように、本発明を適用したハイブリッド記録システム１によれば、ホスト装置１０は一般的な書き込みコマンドを用いるだけで、記録装置２０においてディスクスケジューリング記録が可能となる。このとき、ホスト装置１０に課される条件は、データの書き込みサイズをＡＶデータと非ＡＶデータで変更し、それを事前に記憶装置２０と共有することのみである。これによりLBA空間上で連続しているデータであっても、ランダムに分散されているデータであっても、記録装置２０によってスケジューリング記録が行われる。このいずれの場合においても、電源断対策に必要な情報であるテーブルＴ１，Ｔ２はホスト装置１０が関わることなく、記録装置２０により定期的に記録、更新されるので、電源断修復後にデータを読み出すことが可能となる。
【０１３８】
また、非ＡＶデータとＡＶデータ領域を記憶空間上で分けたこと、および比較的データ量の小さい非ＡＶデータをページ単位で記録できるようにしたことにより、空き領域のフラグメンテーションによっておこる利用効率の低下と書き込み速度の低下を抑えることができる。
【０１３９】
さらに不揮発性メモリ２９のシステム領域をバッファとして用いるようにすれば、一時的に処理時間制限を満たせない事態を回避することができる。
【０１４０】
ところで、本明細書において、プログラムに基づいて実行されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１４１】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１４２】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１４３】
【図１】本発明を適用したハイブリッド記録システムの構成例を示すブロック図である。
【図２】不揮発性メモリの物理ページ番号を示す図である。
【図３】不揮発性メモリへの書き込みに利用するテーブルｔ１，ｔ２、およびポインタを示す図である。
【図４】不揮発性メモリのガベージコレクションを説明するための図である。
【図５】不揮発性メモリのガベージコレクションを説明するための図である。
【図６】不揮発性メモリのガベージコレクションを説明するための図である。
【図７】不揮発性メモリのガベージコレクションを説明するための図である。
【図８】不揮発性メモリのガベージコレクションを説明するための図である。
【図９】不揮発性メモリのガベージコレクションを説明するための図である。
【図１０】不揮発性メモリのガベージコレクションを説明するための図である。
【図１１】不揮発性メモリのガベージコレクションを説明するための図である。
【図１２】不揮発性メモリのガベージコレクションを説明するための図である。
【図１３】不揮発性メモリのガベージコレクションを説明するための図である。
【図１４】LBA空間を示す図である。
【図１５】LBA空間と論理ページ番号空間の対応関係を示す図である。
【図１６】論理ページ番号空間と不揮発性メモリまたはHDDの物理ページ番号空間との対応関係を示す図である。
【図１７】論理ページ番号と物理ページ番号の対応関係を示すテーブルＴ１の一例を示す図である。
【図１８】HDDのＡＶデータ用領域の各物理ブロックの割り当て状況を示すテーブルＴ２の一例を示す図である。
【図１９】テータ記録処理を説明するフローチャートである。
【図２０】テータ記録処理を説明するフローチャートである。
【図２１】論理ページ番号と物理ページ番号の対応関係を示すテーブルＴ１の一例を示す図である。
【図２２】HDDのＡＶデータ用領域の各物理ブロックの割り当て状況を示すテーブルＴ２の一例を示す図である。
【符号の説明】
【０１４４】
１  ハイブリッド記録システム，  １０  ホスト装置，  １１  CPU，  ２０  記録装置，  ２１  CPU，  ２４  ホスト装置I/F，  ２５  HDD制御部，  ２６  メモリ制御部，  ２９  不揮発性メモリ，  ３０  HDD
【図１】
2008117491.tif 000003
【図２】
2008117491.tif 000004
【図３】
2008117491.tif 000005
【図４】
2008117491.tif 000006
【図５】
2008117491.tif 000007
【図６】
2008117491.tif 000008
【図７】
2008117491.tif 000009
【図８】
2008117491.tif 000010
【図９】
2008117491.tif 000011
【図１０】
2008117491.tif 000012
【図１１】
2008117491.tif 000013
【図１２】
2008117491.tif 000014
【図１３】
2008117491.tif 000015
【図１４】
2008117491.tif 000016
【図１５】
2008117491.tif 000017
【図１６】
2008117491.tif 000018
【図１７】
2008117491.tif 000019
【図１８】
2008117491.tif 000020
【図１９】
2008117491.tif 000021
【図２０】
2008117491.tif 000022
【図２１】
2008117491.tif 000023
【図２２】
2008117491.tif 000024