(57)【要約】【課題】見掛け上のデータアクセス時間を短縮し、データアクセスに必要なシステム負荷を軽減することができるようにしたディスク装置及びデータの先読み方法を提供することにある。【解決手段】データ読み出し命令を拡張して、コントローラ１００がデータを読み出すだけでなく、ＨＤＤ１０１内のキャッシュメモリ１０６へのデータの複製もコントローラが指示できるようにする。あわせて、キャッシュメモリ１０６におけるデータの有効期間の設定、最低限コントローラからのアクセスが発生しない時間の通知、用いるインターフェイスの指定を行えるようにすることで、ＨＤＤ１０１内のデータの移動を直接制御可能にする。【選択図】図１
2009157414.tif 000002
【特許請求の範囲】
【請求項１】
先読み指示付き読み出しコマンドの受信を行う第１インターフェイス部と、前記先読み指示付き読み出しコマンドを解釈するコマンド制御部と、キャッシュメモリと、データを格納する記憶媒体を含む記憶装置であって、
前記先読み指示付き読み出しコマンドには読み出し開始箇所を指示する次回読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する次回読出ブロックフィールドを有し、
前記先読み指示付き読み出しコマンドの受信時に、前記コマンド制御部は前記次回読出開始ブロック番号フィールドで指定されたデータ格納位置から前記次回読出ブロックフィールドで指定されたデータ量分のデータを前記記憶媒体から前記キャッシュメモリに保存することを特徴とする記憶装置。
【請求項２】
請求項１に記載の記憶装置において、前記先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、
前記コマンド制御部は前記物理的先読み無効フラグに応じて、以降前記記憶媒体へのアクセスに際し、先読みを行うか否かを決定することを特徴とする記憶装置。
【請求項３】
請求項１または２に記載の記憶装置において、前記先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する読出ブロック数フィールドを有し、
前記コマンド制御部は、前記読出開始ブロック番号フィールドで指定されたデータ格納位置から前記読出ブロック数フィールドで指定されたデータ量分のデータを前記第１インターフェイス部より出力することを特徴とする記憶装置。
【請求項４】
請求項３記載の記憶装置において、前記読出開始ブロック番号フィールドまたは前記読出ブロック数フィールドに有意でない値を格納することで、前記コマンド制御部は前記第１インターフェイス部からの出力を行わないことを特徴とする記憶装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の記憶装置において、更に前記先読み指示付き読み出しコマンドは読み出し開始までの最短の時刻を定める次回読出開始時刻フィールドを含み、
前記コマンド制御部は、前記次回読出開始時刻フィールド参照し、前記次回読出開始時刻フィールドで指定された時間の経過を待って、前記先読み指示付き読み出しコマンドの前記次回読出開始ブロック番号フィールドに関するデータの前記キャッシュメモリへの保存を行うことを特徴とする記憶装置。
【請求項６】
請求項１ないし４のいずれか１項に記載の記憶装置において、更に前記先読み指示付き読み出しコマンドは読み出しを行う最大の時刻を定める次回読出終了時刻フィールドを含み、
前記コマンド制御部は、前記次回読出終了時刻フィールド参照し、前記次回読出終了時刻フィールドで指定された時間以降は、前記先読み指示付き読み出しコマンドの前記次回読出開始ブロック番号フィールドに関するデータの前記キャッシュメモリへの保存を行わないことを特徴とする記憶装置。
【請求項７】
請求項１または２に記載の記憶装置において、
該記憶装置は更に第２インターフェイス部を含み、
前記先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド、読み出すデータブロック数を指示する読出ブロック数フィールド、及び外部にデータ出力する際に用いるインターフェイス部を指定するインターフェイス選択フィールドを有し、
前記コマンド制御部は、前記読出開始ブロック番号フィールドで指定されたデータ格納位置から前記読出ブロック数フィールドで指定されたデータ量分のデータを前記インターフェイス選択フィールドにて指定されたインターフェイスより出力することを特徴とする記憶装置。
【請求項８】
請求項２に記載の記憶装置において、前記物理的先読み無効フラグが有効な際、前記コマンド制御部は前記キャッシュメモリへの保存を停止することを特徴とする記憶装置。
【請求項９】
コントローラと記憶装置を含む情報端末装置であって、
前記コントローラはＣＰＵと、接続インターフェイス部と、を有し、
前記記憶装置は前記コントローラと接続する第１インターフェイス部を格納する記憶媒体を含み、
前記コントローラの接続インターフェイス部と前記記憶装置の第１インターフェイス部とが接続され、
前記ＣＰＵは、読み出し開始箇所を指示する次回読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する次回読出ブロックフィールドを有する先読み指示付き読み出しコマンドを前記記憶装置の第１インターフェイス部に出力することを特徴とする情報端末装置。
【請求項１０】
請求項９に記載の情報端末装置において、前記記憶装置は更にコマンド制御部と、キャッシュメモリとを有し、
前記先読み指示付き読み出しコマンドを第１インターフェイス部より受信すると、前記コマンド制御部は前記次回読出開始ブロック番号フィールドで指定されたデータ格納位置から前記次回読出ブロックフィールドで指定されたデータ量分のデータを前記記憶媒体から前記キャッシュメモリに保存することを特徴とする情報端末装置。
【請求項１１】
請求項１０に記載の情報端末装置において、前記先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、
前記ＣＰＵが前記コマンド制御部に対し、前記キャッシュメモリへの保存を停止することを特徴とする情報端末装置。
【請求項１２】
請求項９に記載の情報端末装置において、
前記記憶装置は更にコマンド制御部と、記憶媒体とを有し、
前記先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する読出ブロック数フィールドを有し、
前記コマンド制御部は、前記先読み指示フィールドで指定されたデータ格納位置から前記読出ブロック数フィールドで指定されたデータ量分のデータを前記第１インターフェイス部よりコントローラに出力することを特徴とする情報端末装置。
【請求項１３】
請求項９に記載の情報端末装置において、
前記コントローラはデコード部を更に有し、
前記記憶装置は第２インターフェイス部を更に有し、前記デコード部と前記第２インターフェイス部が接続され、
前記先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド、読み出すデータブロック数を指示する読出ブロック数フィールド、及び外部にデータ出力するインターフェイス部を指定するインターフェイス選択フィールドを有し、
前記ＣＰＵは、前記読出開始ブロック番号フィールドで指定されたデータ格納位置から前記読出ブロック数フィールドで指定されたデータ量分のデータを前記インターフェイス選択フィールドにて指定されたインターフェイスより出力することを特徴とする情報端末装置。
【請求項１４】
読み出しコマンドの受信を行う第１インターフェイス部と、前記読み出しコマンドを解釈するコマンド制御部と、キャッシュメモリと、データを格納する記憶媒体を含む記憶装置であって、
前記読み出しコマンドには物理的先読み無効フラグを有し、
前記コマンド制御部は前記物理的先読み無効フラグの値に応じて、以降前記記憶媒体へのアクセスに際し、先読みを行うか否かを決定し、いち早く節電することを特徴とする記憶装置。
【請求項１５】
第１の読出位置、第２の読出位置及び第２の読出位置からデータを読み出す時間情報と、を含むコマンドを解釈するコマンド制御部と、キャッシュメモリと、第１インターフェイス部と、データを格納するディスク装置を備えるディスク装置におけるデータの先読み方法であって、
前記第１インターフェイス部から前記コマンド制御部が前記コマンドを受信するコマンド受信ステップと、
前記コマンド制御部が前記第１の読出位置のデータを前記ディスク装置から読み出し前記第１インターフェイス部から出力するデータ出力ステップと、
前記データ出力ステップの終了後、前記コマンド制御部が前記第２の読出位置のデータを前記ディスク装置から順次読み出し、前記キャッシュメモリに格納するキャッシュメモリ格納ステップと、
前記第２の読出位置からのデータの読み出しを、前記時間情報に基づいて前記コマンド制御部が遅延させるキャッシュメモリ格納遅延ステップと、を含むことを特徴とするデータ先読み方法。
【請求項１６】
請求項１５に記載のデータの先読み方法において、前記キャッシュメモリ格納遅延ステップでは前記ディスク装置が備えるデータ読出ヘッドの位置も参照して前記コマンド制御部がデータの読み出しを遅延させることを特徴とするデータ先読み方法。
【請求項１７】
請求項１５に記載のデータの先読み方法において、前記コマンドは更に読出開始時刻フィールドを有し、前記コマンド制御部は前記読出開始時刻フィールドを参照して前記第１インターフェイス部から前記キャッシュメモリのデータを出力するキャッシュメモリ内データ送信ステップを有することを特徴とするデータ先読み方法。
【請求項１８】
第１の読出位置、第２の読出位置、第２の読出位置からデータを読み出す時間情報及びインターフェイス選択フィールドと、を含むコマンドを解釈するコマンド制御部と、キャッシュメモリと、第１インターフェイス部と、第２のインターフェイス部と、データを格納するディスク装置を備えるディスク装置におけるデータの先読み方法であって、
前記第１インターフェイス部から前記コマンド制御部が前記コマンドを受信するコマンド受信ステップと、
前記コマンド制御部が前記第１の読出位置のデータを前記ディスク装置から読み出し前記インターフェイス選択フィールドによって指定されたインターフェイス部から出力するデータ出力ステップと、
前記データ出力ステップの終了後、前記コマンド制御部が前記第２の読出位置のデータを前記ディスク装置から順次読み出し、前記キャッシュメモリに格納するキャッシュメモリ格納ステップと、
前記第２の読出位置からのデータの読み出しを、前記時間情報に基づいて前記コマンド制御部が遅延させるキャッシュメモリ格納遅延ステップと、を含むことを特徴とするデータ先読み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク装置及びデータの先読み方法に係り、特に、映像データ、音声データの取り扱いに適したディスク装置及びデータの先読み方法に関する。
【背景技術】
【０００２】
デジタル放送の普及に伴い、家庭でも気軽に大容量の映像データを取り扱えるようになりつつある。そうした大容量データを記録する記録装置として、容量単価の安いＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や光ディスク等の円盤型記録媒体を使用するディスク装置が広く用いられている。
【０００３】
ＨＤＤや光ディスク等の円盤型記録媒体を用いるディスク装置は、データを記録するデータブロックが配置された円盤と、データブロックを読み書きするヘッドとを用いて読み書きを行っている。このようなディスク装置は、データ読み出し／書き込み時に、円盤を回転させて、読み出し／書き込みを行うデータブロック上へヘッドを移動し、読み出し／書き込みを行うように構成されている。
【０００４】
そのため、ディスク装置は、ＨＤＤや光ディスクに対して読み出し処理を指示してから、実際に読み出しが開始されるまでに、一般に、シーク時間と呼ばれる円盤の回転やヘッドの移動といった物理的な動作の完了を待つ時間が必要となる。
【０００５】
特開平１１−１１０１３９号公報（特許文献１）には、データ利用の局所性を利用してデータの先読みを行うことが記載されている。
【特許文献１】特開平１１−１１０１３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、前述した従来技術は、読み出す対象のデータが物理的に連続的に並んでおり、かつ、読み出す必要のあるデータが連続的にアクセスされる場合でないと、余分なデータを読み込んでしまい効率的なデータの読み込みを行うことができないという問題点を有している。また、映像データの再生処理においては、いつ、どの映像データが必要とされるのか事前に定まっているにもかかわらず、これまでＨＤＤや光ディスク等ではそうした情報を活用していなかった。
【０００７】
更に、ＨＤＤや光ディスク等の円盤型記録媒体を用いるプレイヤは、データの読み出し要求を出してから実際にデータの読み出しが開始されるまでに比較的長いシーク時間が必要であるという問題点をも有している。さらに、そのシーク時間の長さは、ＨＤＤや光ディスクのドライブのみが管理するヘッドの位置に依存し、ＨＤＤのコントローラは、データの読み出しが完了するまでの時間を予め知ることができないために、常に余裕をもってデータを要求する必要があった。
【０００８】
すなわち、従来のＨＤＤや光ディスク等の広く使われている大容量記録媒体を用いるディスク装置において、以下の点が問題になっていた。一つは、映像データの再生等の一度データの読み出しを開始した後には、以後のデータの読み出しが時間から容易に予測可能なデータにおいても、シーク時間が必要となる点である。もう一つは、そのシーク時間のためにデータアクセスに必要とされる時間が予測できない場合がある点である。
【０００９】
本発明の目的は、見掛け上のデータアクセス時間を短縮し、データアクセスに必要なシステム負荷を軽減することができるようにしたディスク装置及びデータの先読み方法を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１２】
本発明の代表的な実施の形態に関わる記憶装置は先読み指示付き読み出しコマンドの受信を行う第１インターフェイス部と、先読み指示付き読み出しコマンドを解釈するコマンド制御部と、キャッシュメモリと、データを格納する記憶媒体を含み、先読み指示付き読み出しコマンドには読み出し開始箇所を指示する次回読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する次回読出ブロックフィールドを有し、先読み指示付き読み出しコマンドの受信時に、コマンド制御部は次回読出開始ブロック番号フィールドで指定されたデータ格納位置から次回読出ブロックフィールドで指定されたデータ量分のデータを記憶媒体からキャッシュメモリに保存することを特徴とする。
【００１３】
この記憶装置において、先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、コマンド制御部は物理的先読み無効フラグに応じて、以降記憶媒体へのアクセスに際し、先読みを行うか否かを決定することを特徴としても良い。
【００１４】
この記憶装置において、先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する読出ブロック数フィールドを有し、コマンド制御部は、先読み指示フィールドで指定されたデータ格納位置から読出ブロック数フィールドで指定されたデータ量分のデータを前記第１インターフェイス部より出力することを特徴としても良い。
【００１５】
また、この記憶装置において、読出開始ブロック番号フィールドまたは読出ブロック数フィールドに有意でない値を格納することで、コマンド制御部は第１インターフェイス部からの出力を行わないことを特徴としても良い。
【００１６】
この記憶装置において、更に先読み指示付き読み出しコマンドは読出開始までの最短の時刻を定める次回読出開始時刻フィールドを含み、コマンド制御部は、この次回読出開始時刻フィールド参照し、次回読出開始時刻フィールドで指定された時間の経過を待って、前記先読み指示付き読み出しコマンドの前記次回読出開始ブロック番号フィールドに関するデータの前記キャッシュメモリへの保存を行うことを特徴としても良い。
【００１７】
また、この記憶装置において、先読み指示付き読み出しコマンドは読み出しを行う最大の時刻を定める次回読出終了時刻フィールドを含み、コマンド制御部は、前記次回読出終了時刻フィールド参照し、前記次回読出終了時刻フィールドで指定された時刻以降は、前記先読み指示付き読み出しコマンドの前記次回読出開始ブロック番号フィールドに関するデータの前記キャッシュメモリへの保存を行わないことを特徴としても良い。
【００１８】
この記憶装置において、記憶装置は更に第２インターフェイス部を、先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド、読み出すデータブロック数を指示する読出ブロック数フィールド、及び外部にデータ出力する用いるインターフェイス部を指定するインターフェイス選択フィールドをそれぞれ有し、コマンド制御部は、読出開始ブロック番号フィールドで指定されたデータ格納位置から読出ブロック数フィールドで指定されたデータ量分のデータをインターフェイス選択フィールドにて指定されたインターフェイスより出力することを特徴としても良い。
【００１９】
この記憶装置において、先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、物理的先読み無効フラグが有効な際、コマンド制御部はキャッシュメモリへの保存を停止することを特徴としても良い。
【００２０】
本発明の代表的な実施の形態に関わる情報端末装置は、コントローラと記憶装置を含み、コントローラはＣＰＵと、接続インターフェイス部とを有し、記憶装置はコントローラと接続する第１インターフェイス部を格納する記憶媒体を含み、コントローラの接続インターフェイス部と記憶装置の第１インターフェイス部とが接続され、ＣＰＵは、読み出し開始箇所を指示する次回読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する次回読出ブロックフィールドを有する先読み指示付き読み出しコマンドを記憶装置の第１インターフェイス部に出力することを特徴とする。
【００２１】
この情報端末装置において、記憶装置は更にコマンド制御部と、キャッシュメモリと、記憶媒体とを有し、先読み指示付き読み出しコマンドを第１インターフェイス部より受信すると、コマンド制御部は次回読出開始ブロック番号フィールドで指定されたデータ格納位置から次回読出ブロックフィールドで指定されたデータ量分のデータを前記記憶媒体から前記キャッシュメモリに保存することを特徴としても良い。
【００２２】
この情報端末装置において、先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、ＣＰＵが前記コマンド制御部に対し、キャッシュメモリへの保存を停止することを特徴としても良い。
【００２３】
この情報端末装置において、記憶装置は更にコマンド制御部と記憶媒体とを、先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する読出ブロック数フィールドをそれぞれ有し、コマンド制御部は、先読み指示フィールドで指定されたデータ格納位置から読出ブロック数フィールドで指定されたデータ量分のデータを前記第１インターフェイス部よりコントローラに出力することを特徴としても良い。
【００２４】
この情報端末装置において、コントローラはデコード部を、記憶装置は第２インターフェイス部を更に有し、デコード部と第２インターフェイス部が接続され、先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド、読み出すデータブロック数を指示する読出ブロック数フィールド、及び外部にデータ出力する用いるインターフェイス部を指定するインターフェイス選択フィールドをそれぞれ有し、このＣＰＵは、読出開始ブロック番号フィールドで指定されたデータ格納位置から読出ブロック数フィールドで指定されたデータ量分のデータをインターフェイス選択フィールドにて指定されたインターフェイスより出力することを特徴としても良い。
【００２５】
本発明の代表的な実施の形態に関わる別の記憶装置は、読み出しコマンドの受信を行う第１インターフェイス部と、読み出しコマンドを解釈するコマンド制御部と、キャッシュメモリと、データを格納する記憶媒体を含み、読み出しコマンドには物理的先読み無効フラグを有し、コマンド制御部は前記物理的先読み無効フラグの値に応じて、前記記憶媒体へのアクセスに際し、先読みを行うか否かを決定し、いち早く節電することを特徴とする。
【００２６】
本発明の代表的な実施の形態に関わるデータの先読み方法は第１の読出位置、第２の読出位置及び第２の読出位置からデータを読み出す時間情報と、を含むコマンドを解釈するコマンド制御部と、キャッシュメモリと、第１インターフェイス部と、データを格納するディスク装置を備えるディスク装置におけるものであって、第１インターフェイス部からコマンド制御部がコマンドを受信するコマンド受信ステップと、コマンド制御部が第１の読出位置のデータをディスク装置から読み出し前記第１インターフェイス部から出力するデータ出力ステップと、データ出力ステップの終了後、コマンド制御部が第２の読出位置のデータをディスク装置から順次読み出し、キャッシュメモリに格納するキャッシュメモリ格納ステップと、第２の読出位置からのデータの読み出しを時間情報に基づいてコマンド制御部が遅延させるキャッシュメモリ格納遅延ステップと、を含むことを特徴とする。
【００２７】
このデータの先読み方法において、キャッシュメモリ格納遅延ステップではディスク装置が備えるデータ読出ヘッドの位置も参照して、コマンド制御部がデータの読み出しを遅延させることを特徴としても良い。
【００２８】
このデータの先読み方法において、コマンドは更に読出開始時刻フィールドを有し、コマンド制御部は読出開始時刻フィールドを参照して第１インターフェイスをキャッシュメモリのデータを出力するキャッシュメモリ内データ送信ステップを有することを特徴としても良い。
【００２９】
本発明の代表的な実施の形態に関わるデータの先読み方法は、第１の読出位置、第２の読出位置、第２の読出位置からデータを読み出す時間情報及びインターフェイス選択フィールドと、を含むコマンドを解釈するコマンド制御部と、キャッシュメモリと、第１インターフェイス部と、第２のインターフェイス部と、データを格納するディスク装置を備えるディスク装置に関わるものであって、第１インターフェイス部からコマンド制御部がコマンドを受信するコマンド受信ステップと、コマンド制御部が第１の読出位置のデータをディスク装置から読み出し前記インターフェイス選択フィールドによって指定されたインターフェイス部から出力するデータ出力ステップと、データ出力ステップの終了後、コマンド制御部が第２の読出位置のデータをディスク装置から順次読み出し、キャッシュメモリに格納するキャッシュメモリ格納ステップと、第２の読出位置からのデータの読み出しを、時間情報に基づいてコマンド制御部が遅延させるキャッシュメモリ格納遅延ステップと、を含むことを特徴とする。
【発明の効果】
【００３０】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【００３１】
本発明の代表的な実施の形態によれば、ＨＤＤや光ディスク等のデータアクセスに比較的時間を要する記録媒体を用いるディスク装置において、シーク時間等によりデータアクセスに長い時間がかかることを配慮した処理を軽減し、あるいは、不要とすることができる。
【００３２】
また、本発明の代表的な実施の形態によれば、本発明による先読み処理により、データアクセス時間が短縮されるため、データアクセスに必要なシステム負荷とＨＤＤや光ディスク等の記録媒体のレスポンスタイムを改善することができる。さらに、本発明によれば、データを自律的に転送・送出した場合に、データの転送・送出に必要なシステム負荷を軽減することができる。
【発明を実施するための最良の形態】
【００３３】
（前提となる技術）
以下図を交えて本発明の前提となる技術を説明する。
【００３４】
図８はＨＤＤ内の映像データ等の再生時に先読みを行う従来技術によるＨＤＤ映像プレイヤの構成を示すブロック図、図９は図８に示すＨＤＤ映像プレイヤでの先読み処理の方法を説明する図である。
【００３５】
このＨＤＤ映像プレイヤ１０３は大きく分けると、コントローラ１００とＨＤＤ１０１より構成される。コントローラ１００は、データメモリ１０８、デコード部１０９、ＣＰＵ１１５、ＡＴＡ１１９、映像出力Ｉ／Ｆ１２３、プログラムメモリ１２５、バス１２６を含んで構成されている。
【００３６】
ＨＤＤ１０１（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）は映像データ等を保存するための物理ドライブ（記録媒体）である。このＨＤＤ１０１はコマンド制御部１０２、キャッシュメモリ１０６、ディスク部１１１、ＡＴＡ  Ｉ／Ｆ１１８、制御メモリ１２０、サーボ／チャンネル制御部１２８を備えて構成される。これらは相互に接続され、必要なデータや各種コマンドの授受が可能である。
【００３７】
コマンド制御部１０２は、ＡＴＡコマンドをＡＴＡ  Ｉ／Ｆ１１８を通じて受け取り、サーボ／チャネル制御部１２８を通じてディスク部１１１上のデータ領域１１２を読み書きし、その結果をＡＴＡ  Ｉ／Ｆ１１８を通じて送出する。
【００３８】
キャッシュメモリ１０６は、読み込み動作の遅いディスク部１１１のデータを一時的に保存し、再度のアクセスが要求された際、ここからデータ等を提供するための高速アクセス可能なメモリのことである。
【００３９】
ディスク部１１１はＨＤＤ１０１の主記憶媒体である。このディスク部１１１にはデータが実際に格納されているデータ領域１１２が存在し、コントローラ１００から要求される映像データ等が記録される。
【００４０】
ＡＴＡ  Ｉ／Ｆ１１８はＨＤＤ１０１の外部から渡されたＡＴＡコマンドを受け取り、コマンド制御部１０２に渡す機能と、ＡＴＡコマンドの処理結果をＡＴＡ１１９と連携してＨＤＤ１０１外部に送出する機能とを備えている。本図のＨＤＤ映像プレイヤではＡＴＡ  Ｉ／Ｆ１１８はＡＴＡ１１９とのインターフェイスとして機能する。
【００４１】
映像出力Ｉ／Ｆ１２３はテレビ（ＴＶ）１１０などの接続された外部機器に映像を出力可能な形式で送信するインターフェイスである。
【００４２】
制御メモリ１２０はコマンド制御部１０２の作業用メモリである。ここにはキャッシュ管理テーブル１２７などが格納されている。コマンド制御部１０２は、キャッシュ管理テーブル１２７及び制御メモリ１２０の他の領域を用いて、キャッシュメモリ１０６を管理する。
【００４３】
サーボ／チャンネル制御部１２８は、コマンド制御部１０２からの求めに応じて、ディスク部１１１上のデータ領域１１２を読み書きし、その結果をＡＴＡ  Ｉ／Ｆ１１８を通じて送出する。
【００４４】
コントローラ１００上のデータメモリ１０８はＨＤＤ１０１から読み出したコンテンツデータ１１７を一時的に格納するために使用する記憶領域である。
【００４５】
デコード部１０９は、データメモリ１０８上のコンテンツデータ１１７を読み込んで、符号化された映像データを映像信号に変換するモジュールである。変換後の映像信号は映像出力Ｉ／Ｆ１２３を経由して接続されたテレビ１１０に出力され、表示される。
【００４６】
ＣＰＵ１１５は、ＨＤＤ１０１、データメモリ１０８、デコード部１０９、ＡＴＡ１１９、プログラムメモリ１２５、バス１２６の初期化・制御・管理を担当し、プログラムメモリ１２５の中に格納されたプレイヤプログラム１０４を実行し、ＨＤＤ映像プレイヤ１０３全体の処理を統括するマイクロプロセッサである。
【００４７】
ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）１１９は、コントローラ１００とＨＤＤ１０１を物理的に接続するためのインターフェイスである。ＡＴＡ１１９中にはＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｅｒ）１２４が含まれる。ＤＭＡＣ１２４は受信した映像等のデータを直接データメモリ１０８上に格納する。
【００４８】
プログラムメモリ１２５はプレイヤプログラム１０４、ファイルシステム１０５を格納し、ＣＰＵ１１５が各プログラムを実行するために必要な記憶領域を提供する。ＣＰＵ１１５はプレイヤプログラム１０４、ファイルシステム１０５を読み出し、必要な処理を実行する。
【００４９】
バス１２６はデータメモリ１０８、デコード部１０９、ＣＰＵ１１５、ＡＴＡ１１９、プログラムメモリ１２５を相互に接続する共用バスである。バス１２６を通じて相互に接続され、必要なコマンドや各種データの授受を行うことができるようにされている。
【００５０】
次に図８に示すＨＤＤ映像プレイヤ１０３における映像再生動作について説明する。なお、映像データは、ディスク部１１１のデータ領域１１２に格納されているものとする。
【００５１】
まず、ＣＰＵ１１５は、プレイヤプログラム１０４に従って、ファイルシステム１０５とＡＴＡ１１９とを通じ、ＨＤＤ１０１のＡＴＡ  Ｉ／Ｆ１１８に対し、映像データに対するＲＥＡＤ要求８１３を発行する。ＨＤＤ１０１のコマンド制御部１０２は、ＡＴＡ  Ｉ／Ｆ１１８を通じてＲＥＡＤ要求８１３を受け取り、その内容を解釈する。
【００５２】
コマンド制御部１０２は、制御メモリ１２０内のキャッシュ管理テーブル１２７を読み、要求されたデータがキャッシュメモリ１０６上に格納されているか否かを確認する。もし、要求されたデータがキャッシュメモリ１０６上に格納されていれば、そこからデータを読み出し、要求されたデータがキャッシュメモリ１０６上に格納されていなければ、サーボ／チャネル制御部１２８に指示して、シーク処理を行わせ、ＲＥＡＤ要求８１３に応じたデータの読み込み処理を行う。
【００５３】
ＡＴＡ１１９は、ＨＤＤ１０１から読み込んだ映像データを、ＤＭＡＣ１２４を用いて、次々とコンテンツデータ１１７としてデータメモリ１０８上に格納する。ＣＰＵ１１５の指示に従って、デコード部１０９はコンテンツデータ１１７を読み込み、符号化された映像データを映像信号に変換し、映像出力Ｉ／Ｆ１２３を通じて接続されたテレビ１１０に出力し、再生を行う。以後、前記の処理が連続的に行われることにより再生が継続される。
【００５４】
以下、図９を参照して、従来技術による先読み処理の方法を説明する。この図に示す例は、縦軸の下方に向けて時間が流れているものとして、ＲＥＡＤ要求８１３に伴う処理の流れを示している。
【００５５】
いま、ＣＰＵ１１５がＡＴＡ１１９を通じてＨＤＤ１０１に対してＲＥＡＤ要求８１３を発行したものとする。また、このＲＥＡＤ要求８１３の要求位置が０ｘ３０１０００からサイズ０ｘ０３ブロックであるとする。
【００５６】
ＨＤＤ１０１は、ＲＥＡＤ要求８１３を受け取ると、要求されたブロックの読み込み処理を開始し、まず、ＨＤＤ１０１のヘッドを要求位置０ｘ３０１０００へ移動するために必要となるシーク処理を行う（ステップ２０１）。
【００５７】
シーク処理２０１を終了すると、ＨＤＤ１０１は、０ｘ３０１０００の読み込み処理（ステップ２０２）、０ｘ３０１００１の読み込み処理（ステップ２０３）、０ｘ３０１００２の読み込み処理（ステップ２０４）を順に行うことにより、位置０ｘ３０１０００から０ｘ０３ブロッック分の読み込み処理を行う。ＨＤＤ１０１は、この読み込み処理を終了すると、順次、読み込んだデータを、ＡＴＡ１１９を通じて転送する。
【００５８】
そして、図８に示すＨＤＤ映像プレイヤ１０３のＨＤＤ１０１は、先読み処理のため０ｘ３０１００２の読み込み処理の後、さらに続けて、物理的に続いて保存されている０ｘ３０１００３以降の読み込み処理を実行し（ステップ２０５ないし２０７）、読み込んだデータをキャッシュメモリ１０６に格納する。これにより、続けてＲＥＡＤ要求８１４が発行された際、再度シーク処理を行うことなく、キャッシュメモリ１０６からデータを転送することができる（ステップ２１５ないし２１７）。
【００５９】
この従来技術によるＨＤＤ映像プレイヤ１０３は、前述したような先読み処理を実行することにより、データが連続的に配置され、それらのデータに対して連続的にアクセスされる場合に効率的なデータの読み出し処理を実現することができる。
【００６０】
（第１の実施の形態）
上記、前提技術に対し、本発明の第1の実施の形態によるディスク装置を用いたＨＤＤ映像プレイヤについて図を交えて説明する。
【００６１】
図１は本発明の第１の実施の形態によるディスク装置を用いたＨＤＤ映像プレイヤ１０３の構成を示すブロック図である。図８により説明した従来技術と基本的に同一のハードウェア構成を有している。しかし、ＨＤＤ１０１のコマンド制御部１０２内にクロック部１０７と、時間指定先読み制御部１２９とが設けられ、また、ＨＤＤ１０１の制御メモリ１２０内に先読み管理テーブル１２１が設けられている点、及び、ＡＴＡ１１９からＨＤＤ１０１への要求として、ＲＥＡＤＡＨＥＡＤ命令（先読み指示付き読み出しコマンド）が利用される点で、図８により説明した従来技術と相違している。
【００６２】
図１に示すＨＤＤ映像プレイヤ１０３において、クロック部１０７は、ＨＤＤ１０１のコマンド制御部１０２の中に配置されて、映像データの再生時間を刻む時計である。クロック部１０７は、例えば、映像の再生に用いるための精度として、映像データの処理でよく使われる２７ＭＨｚの精度を備えた４８ｂｉｔのカウンタとして実装することができ、ＨＤＤ１０１の動作に関係なく常に時間を刻み続ける。
【００６３】
制御メモリ１２０中の先読み管理テーブル１２１は、ＨＤＤ１０１において本発明におけるＲＥＡＤＡＨＥＡＤ命令の発行によって行なわれる先読み処理を管理するテーブルである。
【００６４】
ここでＲＥＡＤＡＨＥＡＤ命令はＣＰＵ１１５がＨＤＤ１０１へ、読出処理を指示すると同時に、読出処理後に行なう先読み処理の方法を指示する命令信号である。
【００６５】
コマンド制御部１０２内の時間指定先読み制御部１２９は、ＲＥＡＤＡＨＥＡＤ命令を解釈し、制御メモリ１２０上の先読み管理テーブル１２１を用いながら、本発明の実施形態に基づく時間情報に基づく先読み処理を実行する機能を実現する制御部である。
【００６６】
図２は、ＲＥＡＤＡＨＥＡＤ命令のデータ構造を説明する概念図である。ＲＥＡＤＡＨＥＡＤ命令は、本発明を適用したＨＤＤ１０１に対し、読出処理を指示すると同時に、読出処理後に行なう先読み処理の方法を行うように指示するためのＡＴＡ拡張命令である。ＨＤＤ１０１は、本命令によってコンテンツデータをディスク部１１１から読み出すように指示される。
【００６７】
ＲＥＡＤＡＨＥＡＤ命令は、ＡＴＡコマンドＩＤ１００２、読出開始ブロック番号１００３、読出ブロック数１００４、物理的先読み無効フラグ１００５、次回読出開始ブロック番号フィールド有無フラグ１００６、次回読出ブロック数フィールド有無フラグ１００７、次回読出開始時刻フィールド有無フラグ１００８、次回読出終了時刻フィールド有無フラグ１００９、次回物理的先読み無効フラグフィールド有無フラグ１０１０、次回読出開始ブロック番号１０１１、次回読出ブロック数１０１２、次回読出開始時刻１０１３、次回読出終了時刻１０１４、次回物理的先読み無効フラグ１０１５の各属性より構成されている。
【００６８】
ＡＴＡコマンドＩＤ１００２は、ＡＴＡコマンドの発行時に利用される識別子である。この図ではＡＴＡコマンドＩＤとして「ＲＥＡＤＡＨＥＡＤ」に対応した値を用いることを示している。
【００６９】
読出開始ブロック番号１００３は、この１回のＲＥＡＤＡＨＥＡＤ命令によって読み込まれるデータが記録されているＨＤＤ１０１内のディスク部１１１中のデータブロックの番号を示す。この例では読出開始ブロック番号は０ｘ０００１００である。
【００７０】
読出ブロック数１００４は、このＲＥＡＤＡＨＥＡＤ命令によって読み込むデータのデータブロック数である。この図の例では読出ブロック数は０ｘ１０である。
【００７１】
物理的先読み無効フラグ１００５は、ＨＤＤ１０１に対し、今回の読出を指示されたブロックに続いて格納されているデータの先読みを行わないように指示するかどうかを示すフラグである。このフラグが１であれば、先読みを行わないよう指示し、０であれば、先読みを行うよう指示することを表す。
【００７２】
次回読出開始ブロック番号フィールド有無フラグ１００６は、次に続く、次回読出開始ブロック番号１０１１フィールドに値が格納されていることを示すフラグである。１であれば、次回読出開始ブロック番号１０１１に格納された値は先読み指示として利用される。０であれば次回読出開始ブロック番号１０１１に格納された値は無視される。
【００７３】
次回読出ブロック数フィールド有無フラグ１００７は、続く次回読出ブロック数１０１２フィールドに値が格納されていることを示すフラグである。1であれば、次回読出ブロック数１０１２に格納された値は先読み指示として利用される。０であれば次回読出ブロック数１０１２に格納された値は無視される。
【００７４】
次回読出開始時刻フィールド有無フラグ１００８は、続く次回読出開始時刻１０１２フィールドに値が格納されていることを示すフラグである。１であれば、次回読出開始時刻１０１３フィールドに格納された値は先読み指示として利用される。０であれば次回読出開始時刻１０１３フィールドに格納された値は無視される。
【００７５】
次回読出終了時刻フィールド有無フラグ１００９は、続く次回読出終了時刻１０１４フィールドに値が格納されていることを示すフラグである。１であれば、次回読出終了時刻１０１４フィールドに格納された値は先読み指示として利用される。０であれば次回読出終了時刻１０１４フィールドに格納された値は無視される。
【００７６】
次回物理的先読み無効フラグフィールド有無フラグ１０１０は、続く次回物理的先読み無効フラグ１０１５フィールドに値が格納されていることを示すフラグである。１であれば、次回物理的先読み無効フラグ１０１５フィールドに格納された値は先読み指示として利用される。０であれば次回物理的先読み無効フラグ１０１５フィールドに格納された値は無視される。
【００７７】
次回読出開始ブロック番号１０１１、次回読出ブロック数１０１２、次回読出開始時刻１０１３、次回読出終了時刻１０１４、次回物理的先読み無効フラグ１０１５は、既述の対応するフィールドで１が指定された場合、読出開始ブロック番号１００３フィールドおよび読出ブロック数１００４フィールドに指定された読出に続いて必要とされるデータについての値を格納している。
【００７８】
次回読出開始ブロック番号１０１１は、そのデータが記録されているＨＤＤ１０１内のディスク部１１１の中のデータブロックの番号を示す。この図の例では次回読出開始ブロック番号は０ｘ０００５００である。
【００７９】
次回読出ブロック数１０１２は、そのデータが記録されているＨＤＤ１０１内のディスク部１１１の中のデータブロックのブロック数を示す。この図では次回読出ブロック数は０ｘ６０である。
【００８０】
次回読出開始時刻１０１３は、そのデータが読出されるまでの時間の最短の場合の値を示す。この値は、クロック部１０７の刻む値と同様、例えば、映像の再生に用いるための精度として、２７ＭＨｚの精度を備えた４８ｂｉｔのカウンタとして実装することができる。
【００８１】
次回読出終了時刻１０１４は、そのデータが読み出されるまでの時間の最長の場合の値を格納する。次回読出開始ブロック番号１０１１と次回読出ブロック数１０１２に基づいて先読みされたデータを、次回読出終了時刻１０１４に示された時間が経過するまでは破棄しないように指示する。
【００８２】
次回物理的先読み無効フラグ１０１５は、次回読出開始ブロック番号１０１１と次回読出ブロック数１０１２で指定されたブロック範囲の先読みを完了した後、格納されているデータの先読みを行わないように、ＨＤＤ１０１に対し指示するかどうかを示すフラグである。このフラグが１であれば、先読みを行わないよう指示し、０であれば、先読みを行うよう指示することを表す。
【００８３】
なお、上述のＲＥＡＤＡＨＥＡＤ命令では読み出しを必須の構成要素としているかのように見える。しかし、読出開始ブロック番号１００３をＮＵＬＬにする、読出ブロック数１００４を０にする、など有意でない値をこれらのフィールドに格納することで、ＨＤＤ外部への出力を伴うことなく、先読みを指示することも可能である。
【００８４】
図３は制御メモリ１２０中の先読み管理テーブル１２１の構造を示す概念図である。先読み管理テーブル１２１はナンバー１１０１、開始ブロック１１０２、サイズ１１０３、物理的先読み無効フラグ１１０４、読出開始時刻１１０５、読出終了時刻１１０６、読出開始デッドライン１１０７の各属性より構成される。
【００８５】
ナンバー１１０１は検索のために行（タプル）を指標する番号である。ここに示した先読み管理テーブルは４行の領域を備え、同時に４つまでのＲＥＡＤＡＨＥＡＤ命令による先読み指示を格納できる。なお、この行数は制御メモリ１２０の容量に応じて増減することは設計事項である。
【００８６】
開始ブロック１１０２とサイズ１１０３には、先読みするよう指示されたデータが記録されているＨＤＤ１０１内のディスク部１１１の中のデータブロックの、それぞれブロック番号とブロック数を示す。この図の例ではナンバー１の行は、ブロック番号０ｘ０００５００から０ｘ６０個のブロックを先読みするよう指示している。それぞれ、ＲＥＡＤＡＨＥＡＤ命令中の次回読出開始ブロック番号１０１１と次回読出ブロック数１０１２によって与えられる値を格納したものである。
【００８７】
物理的先読み無効フラグ１１０４、読出開始時刻１１０５、読出終了時刻１１０６も同様に、ＲＥＡＤＡＨＥＡＤ命令に指定された値を格納する領域である。そのため、中に格納される値の意味はそれぞれ既に述べた次回物理的先読み無効フラグ１０１５、次回読出開始時刻１０１３、次回読出終了時刻１０１４と同様である。
【００８８】
読出開始デッドライン１１０７には先読み処理を次回読出開始時刻１０１３より前に完了するために読込処理を開始しなければならない時刻が格納される。この時刻までには読込処理を開始するために必要なシーク処理を完了していなければならない。
【００８９】
図４はＲＥＡＤＡＨＥＡＤ命令の実行時の処理動作を説明するフローチャートである。次に、これについて説明する。
【００９０】
ここで説明するフローは、ＨＤＤ１０１のコマンド制御部１０２がＲＥＡＤＡＨＥＡＤ命令を受け取った際に実行される。すなわち、ここでの処理は、例えば次の場合に実行される処理である。ＨＤＤ映像プレイヤ１０３において、ＨＤＤ１０１内のディスク部１１１に格納された映像データが、必ずしも物理的に連続したデータブロックに配置されていない場合を考える。その映像データの再生を行なう際には、ＣＰＵ１１５は、プレイヤプログラム１０４に従い、ＡＴＡ１１９を通じてＨＤＤ１０１内のディスク部１１１から映像データの読み出しを指示する。その際、読み出しを指示したデータに続くデータが、次はどのデータブロックに保存されおり、その再生のためにいつ読み出す必要があるのかを、読み出しの指示と同時に指示するＲＥＡＤＡＨＥＡＤ命令をＨＤＤ１０１に送った際に実行される処理である。
【００９１】
この図のステップＳ３０１からステップＳ３０４までは他のＲＥＡＤＡＨＥＡＤ命令や読出命令が指示されても中断せずに行う。ステップＳ３０５以降は他のＲＥＡＤＡＨＥＡＤ命令や読出命令が指示されれば、そこでフローチャートの実行を中止し、指示された命令を実行する。
【００９２】
ＲＥＡＤＡＨＥＡＤ命令の実行が開始されると、コマンド制御部１０２は読み出し開始ブロック番号１００３と読出ブロック数１００４に指定された読出指示を実行する（ステップＳ３０１）。
【００９３】
次に、ＲＥＡＤＡＨＥＡＤ命令中の次回読出開始ブロック番号フィールド有無フラグ１００６が１かどうか（有効か否か）を調べ、次回読出開始ブロック番号１０１１の有効・無効を確認する（ステップＳ３０２）。
【００９４】
もし有効であれば（ステップＳ３０２：Ｙｅｓ）、次回読出ブロック数１０１２と次回読出開始時刻１０１３とから、読出を開始しなければならない読出開始デッドライン１１０７の時刻を計算し、先読み管理テーブル１２１に各情報を登録する処理を行う（ステップＳ３０３）。
【００９５】
読出開始デッドラインは例えば次のように求めることができる。
【００９６】
(読出開始デッドライン)  ＝  (次回読出開始時刻１０１３) −
(次回読出ブロック数１０１２から計算できる読出処理に必要な時間)…式（１）
ここで次回読出ブロック数１０１２から計算できる読出処理に必要な時間は、次回読出ブロック数１０１２をＨＤＤ１０１の読出速度で割って導出できる。この際、読出開始デッドラインが現在時刻より前になる場合には先読みを行うことはできないと判断できる。その場合ＨＤＤ１０１はステップＳ３０１で読み出したデータを返すと共に、次回読出開始時刻１０１３までに先読みを完了することができない旨、ＡＴＡ１１９経由でＣＰＵ１１５に通知する（ステップＳ３０４）。
【００９７】
次にコマンド制御部１０２は、先読み管理テーブル１２１の各行を確認し、次回読出開始時刻１０１３までに先読み処理を完了させるために読出処理を開始しなければならないものがあるか否かを確認する（ステップＳ３０５）。すなわち、各行の開始ブロック１１０２とサーボ／チャネル制御部１２８の制御するデータ読み取りヘッドの位置情報からデータ読み取りヘッドの移動距離と、移動のために必要な時間と、ディスクが必要な位置に回転するために必要な時間とから、読出処理を開始するまでに必要なシーク時間を計算する。
【００９８】
そして次の計算で読出開始までの猶予時間を計算する。
【００９９】
(猶予時間)  ＝  （読出開始デッドライン１１０７）
ー（クロック部１０７が刻む現在時刻）−（求めたシーク時間）
−（若干のマージン時間）                              …式（２）
これにより、猶予時間が一定の時間より短いか否かで読出開始デッドライン１１０７が近いかを判定することができる。
【０１００】
ステップＳ３０５の判定の結果、先読み管理テーブル１２１中に近い行があれば（ステップＳ３０５：Ｙｅｓ）、先に求めた猶予時間の短いものから順に、猶予時間が一定の時間より短いものは全て先読み処理を実行する（ステップＳ３０６）。逆にステップＳ３０５の判定の結果近いエントリが無ければ（ステップＳ３０５：Ｎｏ）、ＲＥＡＤＡＨＥＡＤ命令の物理的先読み無効フラグ１００５を確認する。もし物理的先読み無効フラグ１００５が０であれば（ステップＳ３０７：Ｙｅｓ）、読出開始ブロック番号１００３から始まり、読出ブロック数１００４に記載のデータ量分続くデータブロックを先読み処理し（ステップＳ３０８）、アイドル状態に戻る。
【０１０１】
なお、ステップＳ３０４において、ここでは簡略化のため、複数の先読み処理の実行時刻が近い場合に必要になる計算の説明を省いている。例えば、二つの先読み処理が近い読出開始時刻１１０５を持つ場合、共に読み出しに時間のかかるサイズ１１０３である場合、一方の先読み処理を読出開始時刻１１０５に近い時刻で行なっていると、その処理のために、他方の先読み処理を実行できなくなり、結果、先読み処理が読出開始時刻１１０５までに完了しない場合が発生しうる。そのため、ステップＳ３０４においては、各先読み処理の実行が他の先読み処理を阻害しないよう、他の先読み処理の実行時間の分だけ早めの読出開始デッドライン１１０７を計算し、代入しておくこともできる。
【０１０２】
また、本実施の形態ではステップＳ３０４において、次回読出開始時刻１０１３までに先読み処理を完了できるかどうか通知しているが、ステップＳ３０１の処理に必要となる時間をディスク部１１１上におかれた現在のデータヘッドの位置から予測することによって、ステップＳ３０１の実行より前にステップＳ３０２ないしＳ３０４を行うこともできる。その場合、ＣＰＵ１１５はより早く先読み処理の状況を把握することができる。
【０１０３】
前述したＲＥＡＤＡＨＥＡＤ命令の処理によって、先読み管理テーブル１２１にエントリが書込まれると（行が追加されると）、ＨＤＤ１０１は、アイドル時に次に説明する手順で先読み処理を開始する。なお、以下に説明する処理については、図示を省略している。
（１）まず、先読み管理テーブル１２１中の各エントリについて、読出開始デッドライン１１０７の近いエントリ、すなわち式（２）で猶予時間を計算した結果が一定の時間より短いものがないか確認する。あわせて、キャッシュ管理テーブル１２７を確認し、キャッシュメモリ１０６に使用されていない領域がないか確認する。読出開始デッドライン１１０７の近いエントリがなく、キャッシュメモリ１０６に使用されていない領域もなければ、読出開始デッドライン１１０７の近いエントリがでてくるまで通常のＨＤＤ１０１と同様に動作する。もし読出開始デッドライン１１０７の近いエントリがあるか、キャッシュメモリ１０６に使用されていない領域があれば、（２）へ進む。
（２）先読み管理テーブル１２１の中で、読出開始デッドライン１１０７の最も近いエントリを先読み処理する。すなわち、開始ブロック１１０２とサイズ１１０３で示されるディスク部１１１中のデータブロックからデータを読み出し、キャッシュメモリ１０６上の領域に保存する。これにより、ＣＰＵ１１５がプレイヤプログラム１０４に従って映像データの再生を継続するためＡＴＡ１１９を通じてＨＤＤ１０１に続くデータの読み込みを要求すると、既にキャッシュメモリ１０６上に対応するデータが読み込まれているため、ＡＴＡ１１９は、シーク処理を待つことなく、即座にデータを受けとることができる。
（３）（２）で先読みしたエントリの物理的先読み無効フラグ１１０４が０であり、かつ先読み管理テーブル１２１中の各エントリについて、読出開始デッドライン１１０７の近いエントリがもうない場合、（２）の先読みに物理的に続けて格納されているデータブロックをそのまま読み出し、キャッシュメモリ１０６に格納する。
【０１０４】
前述した処理において、前述の各ステップの処理の途中であっても、ＨＤＤ１０１は、ＡＴＡ  Ｉ／Ｆ１１８を通じたＡＴＡコマンドによる通常の読み書き要求を受け付けて、その要求による処理を行う。
【０１０５】
図５はＡＴＡコマンドによる通常の読み書き要求を受け取った際の処理動作を説明するフローチャートである。以下、これについて説明する。なお、ここでの通常の読み書き要求とは、例えば、テキストデータ等に対する読み書き要求のように、どのデータのどこにどのようにアクセスするのかがユーザの行動に依存し、予測が困難なランダムアクセスが行なわれるデータへの読み書きである。
【０１０６】
ここで説明する処理は、ＨＤＤ１０１がＡＴＡ  Ｉ／Ｆ１１８を通じて、ＲＥＡＤＡＨＥＡＤ命令による読み書きとは異なる通常の読み書き手段によって、読み書き要求を受信した場合に実行される。
【０１０７】
この処理が開始されると、まず、先読み管理テーブル１２１中の各エントリについて、読出開始デッドライン１１０７の近いエントリ、すなわち式（２）で猶予時間を計算した結果が一定の時間より短いものがないか確認する（ステップＳ５０１）。もしあれば（ステップＳ５０１：Ｙｅｓ）、先読み管理テーブル１２１のエントリの中で、読出開始デッドライン１１０７の最も近いエントリから先読み処理を行う（ステップＳ５０２）。すなわち、読出開始デッドライン１１０７の最も近いエントリの開始ブロック１１０２とサイズ１１０３で示されるディスク部１１１中のデータブロックからデータを読み出し、キャッシュメモリ１０６上の領域に保存する。これにより、ＣＰＵ１１５がプレイヤプログラム１０４に従って、映像データの再生を継続する。このため、ＡＴＡ１１９を通じてＨＤＤ１０１に続くデータの読み込みを要求すると、既にキャッシュメモリ１０６上に対応するデータが読み込まれており、ＡＴＡ１１９は、シーク処理を待つことなく、即座にデータを受けとることができる。先読み処理が完了すると、先読み管理テーブル１２１からそのエントリは消去する。
【０１０８】
その後、先読み管理テーブル１２１中の各エントリについて、読出開始デッドライン１１０７の近いエントリが無くなったら、従来技術のＨＤＤと同様の、通常の読み書き要求の処理を実行する。読み込み処理でなく、書き込み処理であれば、このステップで終了してよい（ステップＳ５０３）。
【０１０９】
従来技術のＨＤＤの読み込み処理であれば、ここで続けて物理的に連続して配置されたデータブロックの先読み処理を行う。しかし、本発明におけるＨＤＤ１０１では、ステップＳ５０１と同様に先読み管理テーブル１２１中の各エントリについて、読出開始デッドライン１１０７の近いエントリがないか確認する（ステップＳ５０４）。あれば（ステップＳ５０４：Ｙｅｓ）、やはり先読み管理テーブル１２１のエントリの中で、読出開始デッドライン１１０７の最も近いエントリから先読み処理を行い（ステップＳ５０５）、処理を終了する。一方、先読み管理テーブル１２１中の各エントリについて、読出開始デッドライン１１０７の近いエントリがなければ、従来技術のＨＤＤと同様に、物理的に連続して配置されたデータブロックの先読み処理を行う（ステップＳ５０６）。
【０１１０】
以上の様に明示的な先読みを可能とするＲＥＡＤＡＨＥＡＤ命令を用意し、ＣＰＵ１１５がその発行を行うことで、キャッシュメモリへの先読みを積極的に制御させる。これにより、操作者の体感として高速なＨＤＤへのデータアクセスを可能とする。
【０１１１】
以上、本発明の一実施形態について説明した。しかし、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【０１１２】
例えば、図４及び図５のフローチャートに示した読出書込処理は、次に示す優先度で実行している場合について示した。大なり記号で示した左辺あるいは上段の項目ほど、高い優先度であることを示す。
【０１１３】
(ＲＥＡＤＡＨＥＡＤ命令による読出命令)   
＞  （猶予時間の短いＲＥＡＤＡＨＥＡＤ命令による先読み命令）
＞  （通常の読み書き命令）
＞  （物理的先読み処理）
＞  （空きキャッシュメモリがある場合の、ＲＥＡＤＡＨＥＡＤ命令による先読み命令）
＞  何もしない
＞  （空きキャッシュメモリがない場合の、ＲＥＡＤＡＨＥＡＤ命令による先読み命令）
…式（３）
しかし、この優先度に限るものではなく、これらは適用製品・適用サービスに応じて都度拡張変形してもよい。
【０１１４】
また、前述した本発明の実施形態においては、映像データを格納するＨＤＤに対する適用例を示したが、映像データでなくても、連続的に記録され連続的にアクセスされることの多いデータや、一度の読み書きされるデータのサイズの大きなデータであれば本発明を適用することが可能である。
【０１１５】
また、本発明は、ＨＤＤの代わりにフラッシュメモリや可搬型ＨＤＤ、光ディスク等の記録媒体であっても、より高速なキャッシュメモリと組み合わせて利用することにより効果を得ることができる。
【０１１６】
また、前述した本発明の実施形態は、図４に示して説明したＲＥＡＤＡＨＥＡＤ命令の処理によって、先読み管理テーブル１２１にエントリが書込まれた後の処理の１つとして、先読み処理を行い、読み込んだデータを単に、キャッシュメモリ１０６上の領域に保存することとしているが、ＣＰＵ１１５の指示に基づいて、ＡＴＡ１１９が内蔵するＤＭＡＣ１２４を利用し、直接データメモリ１０８へデータを転送してもよい。また、その場合、データメモリ１０８の状態に合わせ、自律的に転送を継続することや、転送速度を調整することができる。
【０１１７】
また、前述した本発明の実施形態は、ＲＥＡＤＡＨＥＡＤ命令を契機として先読み処理を行っているが、本発明は、通常の読み込み命令や書き込み命令を契機として先読み処理を開始するようにすることもできる。その場合は、先読み処理を指示ことのみを実行するＡＴＡ拡張コマンドによって、先読み処理を開始するようにすることもできる。
【０１１８】
また、前述した本発明の実施形態は、図４に示して説明したＲＥＡＤＡＨＥＡＤ命令の処理によって、先読み管理テーブル１２１にエントリが書込まれた後の処理の１つとして、ＣＰＵ１１５がプレイヤプログラム１０４に従って、映像データの再生を継続するために、ＡＴＡ１１９を通じてＨＤＤ１０１に続くデータの読み込みが要求されると、既にキャッシュメモリ１０６上に対応するデータを返すとしている。しかし、本発明は、ＣＰＵ１１５が実行するデータの読み込み処理が行われる時刻が、予定した時刻より早いか、あるいは遅いかを測定し、ＣＰＵ１１５及びデコード部１０９が再生するために利用しているクロック部と、ＨＤＤ１０１が備えるクロック部１０７との時間を同期するよう拡張することもできる。これにより、先読み時の時間のずれを修正し、より正確に先読みデータを保持し続けることができるようになる。
【０１１９】
また、前述した本発明の実施形態は、ＨＤＤ１０１がアイドル時に先読み処理を開始する際、なるべく先に先読み処理を遅延させるようにしているが、本発明は、なるべく早く先読み処理を行うことにより、読出開始デッドライン１１０７が迫ってきた際、他の読み書き命令を受けつける余裕を確保するように制御することもできる。
【０１２０】
また、前述した本発明の実施の形態において、ＨＤＤ１０１が受け付けるＲＥＡＤＡＨＥＡＤ命令は種々の情報を受け付け、先読み処理ステップＳ３０６、Ｓ５０５を行うように実装した。しかし、図２に示したＲＥＡＤＡＨＥＡＤ命令は、ＡＴＡコマンドＩＤ１００２、読出開始ブロック番号１００３、読出ブロック数１００４、物理的先読み無効フラグ１００５を備え、次回読出開始ブロック番号フィールド有無フラグ１００６から次回物理的先読み無効フラグ１０１５の各種情報を省略すること、及び、図４に示したＲＥＡＤＡＨＥＡＤ命令実行処理のうちステップＳ３０１、Ｓ３０７、Ｓ３０８のみを実行しステップＳ３０２からＳ３０６までを省略すること、で簡単に実装をすることも可能である。この場合、物理的先読み無効フラグ１００５の値によって物理的先読み処理ステップＳ３０８、Ｓ５０６を抑制され明らかに不必要な先読み処理が抑制でき、節電状態などＨＤＤが次に移るべき状態にいち早く遷移することができる。
【０１２１】
更には、上記例ではＡＴＡ拡張コマンドの仕様を利用して、ＲＥＡＤＡＨＥＡＤ命令を実装した。しかし、ＡＴＡコマンドの仕様とは別の系統のコマンドとして実装しても問題は無い。すなわちＨＤＤ外部から先読みの制御・可否等を制御できれば、その手段は問うものではない。
【０１２２】
（第２の実施の形態）
次に第２の実施形態について、図６と図７を用いて説明する。
【０１２３】
図６は本発明の第２の実施の形態におけるディスク装置を用いたＨＤＤ映像プレイヤの構成を示すブロック図である。図６に示す本発明の第２の実施形態は、専用Ｉ／Ｆ付きＨＤＤを用いたＨＤＤ映像プレイヤの例である。
【０１２４】
図６に示す本発明の第２の実施形態は、ＨＤＤ１０１内にデータバス６０２を介してデコード部１０９と接続されたＡＶ  Ｉ／Ｆ６０１を設けた点、ＨＤＤ１０１内のコマンド制御部１０２における第１の実施形態での時間指定先読み制御部１２９に加えてデータバス転送制御部１３０がある点、及び、ＡＴＡ１１９からＨＤＤ１０１への要求として、ＴＲＡＮＳＡＨＥＡＤ命令が利用される点で、第１の実施形態とその構成が相違している。なお、図６中では時間指定先読み制御部１２９は省略している。
【０１２５】
ＡＶ  Ｉ／Ｆ６０１は、ＨＤＤ１０１の内部で、コマンド制御部１０２及びキャッシュメモリ１０６と接続され、ＨＤＤ１０１の外部ではデータバス６０２を通じてデコード部１０９と直接接続されるインターフェイス部である。
【０１２６】
データバス６０２は、ＡＶ  Ｉ／Ｆ６０１とコントローラ１００上のデコード部１０９を結び、ＨＤＤ１０１内に記録された映像データを伝送する、映像や音声のストリームデータ専用に設けられたインターフェイスである。
【０１２７】
図７は本発明の第２の実施形態において用いられるＴＲＡＮＳＡＨＥＡＤ命令のデータ構造を示す概念図である。ＴＲＡＮＳＡＨＥＡＤ命令は、ＲＥＡＤＡＨＥＡＤ命令とほぼ同様の構造をしているが、転送先ＡＶ  Ｉ／Ｆ２０１６、Ｉ／Ｆパラメータ２０１７が加えられている点が異なる。従って項番２００２から２０１５までは図２の１００２から１０１５と同じであるので、説明は省略する。
【０１２８】
転送先ＡＶ  Ｉ／Ｆ２０１６は、本発明の第２の実施形態において、ＡＶ  Ｉ／Ｆ６０１が複数存在する場合に、ＴＲＡＮＳＡＨＥＡＤ命令中の読出開始ブロック番号７０３、読出ブロック数７０４によって読み出しを指定されたデータが送られるＡＶ  Ｉ／Ｆ６０１の番号を格納する。
【０１２９】
Ｉ／Ｆパラメータ２０１７は、ＴＲＡＮＳＡＨＥＡＤ命令によって読出されるデータの転送時のパラメータ情報である。
【０１３０】
本発明の第２の実施形態は、ＨＤＤ１０１に格納されたデータの内、デコード部１０９が処理する映像データを、ＡＴＡ１１９やバス１２６を経ることなく、ＡＶ  Ｉ／Ｆ６０１とデータバス６０２を介して、直接デコード部１０９へ送出するようにしたものである。
【０１３１】
そして、本発明の第２の実施形態は、第１の実施形態の場合と同様にアイドル時にデータの読み出しを行うが、アイドル時に先読み、あるいは、ＤＭＡ転送を行う代わりに、コマンド制御部１０２のデータバス転送制御部１３０がＡＶ  Ｉ／Ｆ６０１に指示して、キャッシュメモリ１０６上のコンテンツデータ１１６を、データバス６０２を通じて直接デコード部１０９へ送信する。デコード部１０９は、受信したコンテンツデータ１１６を映像信号に変換し、映像出力Ｉ／Ｆ１２３を通じてＴＶ１１０へ映像を出力する。
【０１３２】
本発明の第２の実施の形態においては、第１の実施形態で必要であったデータメモリ１０８をなくすことができる効果を有する。
【０１３３】
前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるＣＰＵに実行させることができ、また、それらのプログラムは、ＦＤ、ＣＤＲＯＭ、ＤＶＤ等の記録媒体に格納して提供することができ、また、ネットワークを介してデジタル情報により提供することができる。
【０１３４】
なお、第１の実施の形態同様、ＴＲＡＮＳＡＨＥＡＤ命令もＡＴＡコマンドの仕様とは別の系統のコマンドとして実装しても問題は無い。
【０１３５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更が可能であることは言うまでもない。
【産業上の利用可能性】
【０１３６】
記述の通り、本発明の説明では映像データを格納するＨＤＤに対する適用例を示したが、映像データでなくても、連続的に記録され連続的にアクセスされることの多いデータや、一度の読み書きされるデータのサイズの大きなデータであれば本発明を適用することが可能である。また、実施例としてＨＤＤ映像プレイヤ１０３としているが必ずしもこれに限定されることは無く、取り扱うデータに応じて異なる種類の情報端末装置に適用しても良い。
【図面の簡単な説明】
【０１３７】
【図１】第１の実施の形態によるディスク装置を用いたＨＤＤ映像プレイヤの構成を示すブロック図である。
【図２】ＲＥＡＤＡＨＥＡＤ命令のデータ構造を説明する概念図である。
【図３】制御メモリ中の先読み管理テーブルの構造を示す概念図である。
【図４】ＲＥＡＤＡＨＥＡＤ命令の実行時の処理動作を説明するフローチャートである。
【図５】ＡＴＡコマンドによる通常の読み書き要求を受け取った際の処理動作を説明するフローチャートである。
【図６】第２の実施の形態におけるディスク装置を用いたＨＤＤ映像プレイヤの構成を示すブロック図である。
【図７】ＴＲＡＮＳＡＨＥＡＤ命令のデータ構造を説明する概念図である。
【図８】従来のディスク装置を用いたＨＤＤ映像プレイヤの構成を示すブロック図である。
【図９】従来のディスク装置を用いたＨＤＤ映像プレイヤのＣＰＵとＨＤＤとのデータのやり取りを表すシーケンスチャートである。
【符号の説明】
【０１３８】
１００…コントローラ、１０１…ＨＤＤ、
１０２…コマンド制御部、１０３…ＨＤＤ映像プレイヤ、
１０４…プレイヤプログラム、１０５…ファイルシステム、
１０６…キャッシュメモリ、１０７…クロック部、１０８…データメモリ、
１０９…デコード部、１１０…テレビ（ＴＶ）、１１１…ディスク部、
１１２…データ領域、１１５…ＣＰＵ、１１６、１１７…コンテンツデータ、
１１８…ＡＴＡ  Ｉ／Ｆ、１１９…ＡＴＡ、１２０…制御メモリ、
１２３…映像出力Ｉ／Ｆ、１２４…ＤＭＡＣ、１２５…プログラムメモリ、
１２６…バス、１２７…キャッシュ管理テーブル、１２９…時間指定先読制御部、
１３０…データバス転送制御部。
【図１】
2009157414.tif 000003
【図２】
2009157414.tif 000004
【図３】
2009157414.tif 000005
【図４】
2009157414.tif 000006
【図５】
2009157414.tif 000007
【図６】
2009157414.tif 000008
【図７】
2009157414.tif 000009
【図８】
2009157414.tif 000010
【図９】
2009157414.tif 000011