JP2009157414A - 記憶装置、情報端末装置及びデータ先読み方法 - Google Patents
記憶装置、情報端末装置及びデータ先読み方法 Download PDFInfo
- Publication number
- JP2009157414A JP2009157414A JP2007331347A JP2007331347A JP2009157414A JP 2009157414 A JP2009157414 A JP 2009157414A JP 2007331347 A JP2007331347 A JP 2007331347A JP 2007331347 A JP2007331347 A JP 2007331347A JP 2009157414 A JP2009157414 A JP 2009157414A
- Authority
- JP
- Japan
- Prior art keywords
- data
- read
- command
- control unit
- block number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】見掛け上のデータアクセス時間を短縮し、データアクセスに必要なシステム負荷を軽減することができるようにしたディスク装置及びデータの先読み方法を提供することにある。
【解決手段】データ読み出し命令を拡張して、コントローラ100がデータを読み出すだけでなく、HDD101内のキャッシュメモリ106へのデータの複製もコントローラが指示できるようにする。あわせて、キャッシュメモリ106におけるデータの有効期間の設定、最低限コントローラからのアクセスが発生しない時間の通知、用いるインターフェイスの指定を行えるようにすることで、HDD101内のデータの移動を直接制御可能にする。
【選択図】図1
【解決手段】データ読み出し命令を拡張して、コントローラ100がデータを読み出すだけでなく、HDD101内のキャッシュメモリ106へのデータの複製もコントローラが指示できるようにする。あわせて、キャッシュメモリ106におけるデータの有効期間の設定、最低限コントローラからのアクセスが発生しない時間の通知、用いるインターフェイスの指定を行えるようにすることで、HDD101内のデータの移動を直接制御可能にする。
【選択図】図1
Description
本発明は、ディスク装置及びデータの先読み方法に係り、特に、映像データ、音声データの取り扱いに適したディスク装置及びデータの先読み方法に関する。
デジタル放送の普及に伴い、家庭でも気軽に大容量の映像データを取り扱えるようになりつつある。そうした大容量データを記録する記録装置として、容量単価の安いHDD(Hard Disk Drive)や光ディスク等の円盤型記録媒体を使用するディスク装置が広く用いられている。
HDDや光ディスク等の円盤型記録媒体を用いるディスク装置は、データを記録するデータブロックが配置された円盤と、データブロックを読み書きするヘッドとを用いて読み書きを行っている。このようなディスク装置は、データ読み出し/書き込み時に、円盤を回転させて、読み出し/書き込みを行うデータブロック上へヘッドを移動し、読み出し/書き込みを行うように構成されている。
そのため、ディスク装置は、HDDや光ディスクに対して読み出し処理を指示してから、実際に読み出しが開始されるまでに、一般に、シーク時間と呼ばれる円盤の回転やヘッドの移動といった物理的な動作の完了を待つ時間が必要となる。
特開平11−110139号公報(特許文献1)には、データ利用の局所性を利用してデータの先読みを行うことが記載されている。
特開平11−110139号公報
しかし、前述した従来技術は、読み出す対象のデータが物理的に連続的に並んでおり、かつ、読み出す必要のあるデータが連続的にアクセスされる場合でないと、余分なデータを読み込んでしまい効率的なデータの読み込みを行うことができないという問題点を有している。また、映像データの再生処理においては、いつ、どの映像データが必要とされるのか事前に定まっているにもかかわらず、これまでHDDや光ディスク等ではそうした情報を活用していなかった。
更に、HDDや光ディスク等の円盤型記録媒体を用いるプレイヤは、データの読み出し要求を出してから実際にデータの読み出しが開始されるまでに比較的長いシーク時間が必要であるという問題点をも有している。さらに、そのシーク時間の長さは、HDDや光ディスクのドライブのみが管理するヘッドの位置に依存し、HDDのコントローラは、データの読み出しが完了するまでの時間を予め知ることができないために、常に余裕をもってデータを要求する必要があった。
すなわち、従来のHDDや光ディスク等の広く使われている大容量記録媒体を用いるディスク装置において、以下の点が問題になっていた。一つは、映像データの再生等の一度データの読み出しを開始した後には、以後のデータの読み出しが時間から容易に予測可能なデータにおいても、シーク時間が必要となる点である。もう一つは、そのシーク時間のためにデータアクセスに必要とされる時間が予測できない場合がある点である。
本発明の目的は、見掛け上のデータアクセス時間を短縮し、データアクセスに必要なシステム負荷を軽減することができるようにしたディスク装置及びデータの先読み方法を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
本発明の代表的な実施の形態に関わる記憶装置は先読み指示付き読み出しコマンドの受信を行う第1インターフェイス部と、先読み指示付き読み出しコマンドを解釈するコマンド制御部と、キャッシュメモリと、データを格納する記憶媒体を含み、先読み指示付き読み出しコマンドには読み出し開始箇所を指示する次回読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する次回読出ブロックフィールドを有し、先読み指示付き読み出しコマンドの受信時に、コマンド制御部は次回読出開始ブロック番号フィールドで指定されたデータ格納位置から次回読出ブロックフィールドで指定されたデータ量分のデータを記憶媒体からキャッシュメモリに保存することを特徴とする。
この記憶装置において、先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、コマンド制御部は物理的先読み無効フラグに応じて、以降記憶媒体へのアクセスに際し、先読みを行うか否かを決定することを特徴としても良い。
この記憶装置において、先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する読出ブロック数フィールドを有し、コマンド制御部は、先読み指示フィールドで指定されたデータ格納位置から読出ブロック数フィールドで指定されたデータ量分のデータを前記第1インターフェイス部より出力することを特徴としても良い。
また、この記憶装置において、読出開始ブロック番号フィールドまたは読出ブロック数フィールドに有意でない値を格納することで、コマンド制御部は第1インターフェイス部からの出力を行わないことを特徴としても良い。
この記憶装置において、更に先読み指示付き読み出しコマンドは読出開始までの最短の時刻を定める次回読出開始時刻フィールドを含み、コマンド制御部は、この次回読出開始時刻フィールド参照し、次回読出開始時刻フィールドで指定された時間の経過を待って、前記先読み指示付き読み出しコマンドの前記次回読出開始ブロック番号フィールドに関するデータの前記キャッシュメモリへの保存を行うことを特徴としても良い。
また、この記憶装置において、先読み指示付き読み出しコマンドは読み出しを行う最大の時刻を定める次回読出終了時刻フィールドを含み、コマンド制御部は、前記次回読出終了時刻フィールド参照し、前記次回読出終了時刻フィールドで指定された時刻以降は、前記先読み指示付き読み出しコマンドの前記次回読出開始ブロック番号フィールドに関するデータの前記キャッシュメモリへの保存を行わないことを特徴としても良い。
この記憶装置において、記憶装置は更に第2インターフェイス部を、先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド、読み出すデータブロック数を指示する読出ブロック数フィールド、及び外部にデータ出力する用いるインターフェイス部を指定するインターフェイス選択フィールドをそれぞれ有し、コマンド制御部は、読出開始ブロック番号フィールドで指定されたデータ格納位置から読出ブロック数フィールドで指定されたデータ量分のデータをインターフェイス選択フィールドにて指定されたインターフェイスより出力することを特徴としても良い。
この記憶装置において、先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、物理的先読み無効フラグが有効な際、コマンド制御部はキャッシュメモリへの保存を停止することを特徴としても良い。
本発明の代表的な実施の形態に関わる情報端末装置は、コントローラと記憶装置を含み、コントローラはCPUと、接続インターフェイス部とを有し、記憶装置はコントローラと接続する第1インターフェイス部を格納する記憶媒体を含み、コントローラの接続インターフェイス部と記憶装置の第1インターフェイス部とが接続され、CPUは、読み出し開始箇所を指示する次回読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する次回読出ブロックフィールドを有する先読み指示付き読み出しコマンドを記憶装置の第1インターフェイス部に出力することを特徴とする。
この情報端末装置において、記憶装置は更にコマンド制御部と、キャッシュメモリと、記憶媒体とを有し、先読み指示付き読み出しコマンドを第1インターフェイス部より受信すると、コマンド制御部は次回読出開始ブロック番号フィールドで指定されたデータ格納位置から次回読出ブロックフィールドで指定されたデータ量分のデータを前記記憶媒体から前記キャッシュメモリに保存することを特徴としても良い。
この情報端末装置において、先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、CPUが前記コマンド制御部に対し、キャッシュメモリへの保存を停止することを特徴としても良い。
この情報端末装置において、記憶装置は更にコマンド制御部と記憶媒体とを、先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する読出ブロック数フィールドをそれぞれ有し、コマンド制御部は、先読み指示フィールドで指定されたデータ格納位置から読出ブロック数フィールドで指定されたデータ量分のデータを前記第1インターフェイス部よりコントローラに出力することを特徴としても良い。
この情報端末装置において、コントローラはデコード部を、記憶装置は第2インターフェイス部を更に有し、デコード部と第2インターフェイス部が接続され、先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド、読み出すデータブロック数を指示する読出ブロック数フィールド、及び外部にデータ出力する用いるインターフェイス部を指定するインターフェイス選択フィールドをそれぞれ有し、このCPUは、読出開始ブロック番号フィールドで指定されたデータ格納位置から読出ブロック数フィールドで指定されたデータ量分のデータをインターフェイス選択フィールドにて指定されたインターフェイスより出力することを特徴としても良い。
本発明の代表的な実施の形態に関わる別の記憶装置は、読み出しコマンドの受信を行う第1インターフェイス部と、読み出しコマンドを解釈するコマンド制御部と、キャッシュメモリと、データを格納する記憶媒体を含み、読み出しコマンドには物理的先読み無効フラグを有し、コマンド制御部は前記物理的先読み無効フラグの値に応じて、前記記憶媒体へのアクセスに際し、先読みを行うか否かを決定し、いち早く節電することを特徴とする。
本発明の代表的な実施の形態に関わるデータの先読み方法は第1の読出位置、第2の読出位置及び第2の読出位置からデータを読み出す時間情報と、を含むコマンドを解釈するコマンド制御部と、キャッシュメモリと、第1インターフェイス部と、データを格納するディスク装置を備えるディスク装置におけるものであって、第1インターフェイス部からコマンド制御部がコマンドを受信するコマンド受信ステップと、コマンド制御部が第1の読出位置のデータをディスク装置から読み出し前記第1インターフェイス部から出力するデータ出力ステップと、データ出力ステップの終了後、コマンド制御部が第2の読出位置のデータをディスク装置から順次読み出し、キャッシュメモリに格納するキャッシュメモリ格納ステップと、第2の読出位置からのデータの読み出しを時間情報に基づいてコマンド制御部が遅延させるキャッシュメモリ格納遅延ステップと、を含むことを特徴とする。
このデータの先読み方法において、キャッシュメモリ格納遅延ステップではディスク装置が備えるデータ読出ヘッドの位置も参照して、コマンド制御部がデータの読み出しを遅延させることを特徴としても良い。
このデータの先読み方法において、コマンドは更に読出開始時刻フィールドを有し、コマンド制御部は読出開始時刻フィールドを参照して第1インターフェイスをキャッシュメモリのデータを出力するキャッシュメモリ内データ送信ステップを有することを特徴としても良い。
本発明の代表的な実施の形態に関わるデータの先読み方法は、第1の読出位置、第2の読出位置、第2の読出位置からデータを読み出す時間情報及びインターフェイス選択フィールドと、を含むコマンドを解釈するコマンド制御部と、キャッシュメモリと、第1インターフェイス部と、第2のインターフェイス部と、データを格納するディスク装置を備えるディスク装置に関わるものであって、第1インターフェイス部からコマンド制御部がコマンドを受信するコマンド受信ステップと、コマンド制御部が第1の読出位置のデータをディスク装置から読み出し前記インターフェイス選択フィールドによって指定されたインターフェイス部から出力するデータ出力ステップと、データ出力ステップの終了後、コマンド制御部が第2の読出位置のデータをディスク装置から順次読み出し、キャッシュメモリに格納するキャッシュメモリ格納ステップと、第2の読出位置からのデータの読み出しを、時間情報に基づいてコマンド制御部が遅延させるキャッシュメモリ格納遅延ステップと、を含むことを特徴とする。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
本発明の代表的な実施の形態によれば、HDDや光ディスク等のデータアクセスに比較的時間を要する記録媒体を用いるディスク装置において、シーク時間等によりデータアクセスに長い時間がかかることを配慮した処理を軽減し、あるいは、不要とすることができる。
また、本発明の代表的な実施の形態によれば、本発明による先読み処理により、データアクセス時間が短縮されるため、データアクセスに必要なシステム負荷とHDDや光ディスク等の記録媒体のレスポンスタイムを改善することができる。さらに、本発明によれば、データを自律的に転送・送出した場合に、データの転送・送出に必要なシステム負荷を軽減することができる。
(前提となる技術)
以下図を交えて本発明の前提となる技術を説明する。
以下図を交えて本発明の前提となる技術を説明する。
図8はHDD内の映像データ等の再生時に先読みを行う従来技術によるHDD映像プレイヤの構成を示すブロック図、図9は図8に示すHDD映像プレイヤでの先読み処理の方法を説明する図である。
このHDD映像プレイヤ103は大きく分けると、コントローラ100とHDD101より構成される。コントローラ100は、データメモリ108、デコード部109、CPU115、ATA119、映像出力I/F123、プログラムメモリ125、バス126を含んで構成されている。
HDD101(Hard Disk Drive)は映像データ等を保存するための物理ドライブ(記録媒体)である。このHDD101はコマンド制御部102、キャッシュメモリ106、ディスク部111、ATA I/F118、制御メモリ120、サーボ/チャンネル制御部128を備えて構成される。これらは相互に接続され、必要なデータや各種コマンドの授受が可能である。
コマンド制御部102は、ATAコマンドをATA I/F118を通じて受け取り、サーボ/チャネル制御部128を通じてディスク部111上のデータ領域112を読み書きし、その結果をATA I/F118を通じて送出する。
キャッシュメモリ106は、読み込み動作の遅いディスク部111のデータを一時的に保存し、再度のアクセスが要求された際、ここからデータ等を提供するための高速アクセス可能なメモリのことである。
ディスク部111はHDD101の主記憶媒体である。このディスク部111にはデータが実際に格納されているデータ領域112が存在し、コントローラ100から要求される映像データ等が記録される。
ATA I/F118はHDD101の外部から渡されたATAコマンドを受け取り、コマンド制御部102に渡す機能と、ATAコマンドの処理結果をATA119と連携してHDD101外部に送出する機能とを備えている。本図のHDD映像プレイヤではATA I/F118はATA119とのインターフェイスとして機能する。
映像出力I/F123はテレビ(TV)110などの接続された外部機器に映像を出力可能な形式で送信するインターフェイスである。
制御メモリ120はコマンド制御部102の作業用メモリである。ここにはキャッシュ管理テーブル127などが格納されている。コマンド制御部102は、キャッシュ管理テーブル127及び制御メモリ120の他の領域を用いて、キャッシュメモリ106を管理する。
サーボ/チャンネル制御部128は、コマンド制御部102からの求めに応じて、ディスク部111上のデータ領域112を読み書きし、その結果をATA I/F118を通じて送出する。
コントローラ100上のデータメモリ108はHDD101から読み出したコンテンツデータ117を一時的に格納するために使用する記憶領域である。
デコード部109は、データメモリ108上のコンテンツデータ117を読み込んで、符号化された映像データを映像信号に変換するモジュールである。変換後の映像信号は映像出力I/F123を経由して接続されたテレビ110に出力され、表示される。
CPU115は、HDD101、データメモリ108、デコード部109、ATA119、プログラムメモリ125、バス126の初期化・制御・管理を担当し、プログラムメモリ125の中に格納されたプレイヤプログラム104を実行し、HDD映像プレイヤ103全体の処理を統括するマイクロプロセッサである。
ATA(AT Attachment)119は、コントローラ100とHDD101を物理的に接続するためのインターフェイスである。ATA119中にはDMAC(Direct Memory Access Controler)124が含まれる。DMAC124は受信した映像等のデータを直接データメモリ108上に格納する。
プログラムメモリ125はプレイヤプログラム104、ファイルシステム105を格納し、CPU115が各プログラムを実行するために必要な記憶領域を提供する。CPU115はプレイヤプログラム104、ファイルシステム105を読み出し、必要な処理を実行する。
バス126はデータメモリ108、デコード部109、CPU115、ATA119、プログラムメモリ125を相互に接続する共用バスである。バス126を通じて相互に接続され、必要なコマンドや各種データの授受を行うことができるようにされている。
次に図8に示すHDD映像プレイヤ103における映像再生動作について説明する。なお、映像データは、ディスク部111のデータ領域112に格納されているものとする。
まず、CPU115は、プレイヤプログラム104に従って、ファイルシステム105とATA119とを通じ、HDD101のATA I/F118に対し、映像データに対するREAD要求813を発行する。HDD101のコマンド制御部102は、ATA I/F118を通じてREAD要求813を受け取り、その内容を解釈する。
コマンド制御部102は、制御メモリ120内のキャッシュ管理テーブル127を読み、要求されたデータがキャッシュメモリ106上に格納されているか否かを確認する。もし、要求されたデータがキャッシュメモリ106上に格納されていれば、そこからデータを読み出し、要求されたデータがキャッシュメモリ106上に格納されていなければ、サーボ/チャネル制御部128に指示して、シーク処理を行わせ、READ要求813に応じたデータの読み込み処理を行う。
ATA119は、HDD101から読み込んだ映像データを、DMAC124を用いて、次々とコンテンツデータ117としてデータメモリ108上に格納する。CPU115の指示に従って、デコード部109はコンテンツデータ117を読み込み、符号化された映像データを映像信号に変換し、映像出力I/F123を通じて接続されたテレビ110に出力し、再生を行う。以後、前記の処理が連続的に行われることにより再生が継続される。
以下、図9を参照して、従来技術による先読み処理の方法を説明する。この図に示す例は、縦軸の下方に向けて時間が流れているものとして、READ要求813に伴う処理の流れを示している。
いま、CPU115がATA119を通じてHDD101に対してREAD要求813を発行したものとする。また、このREAD要求813の要求位置が0x301000からサイズ0x03ブロックであるとする。
HDD101は、READ要求813を受け取ると、要求されたブロックの読み込み処理を開始し、まず、HDD101のヘッドを要求位置0x301000へ移動するために必要となるシーク処理を行う(ステップ201)。
シーク処理201を終了すると、HDD101は、0x301000の読み込み処理(ステップ202)、0x301001の読み込み処理(ステップ203)、0x301002の読み込み処理(ステップ204)を順に行うことにより、位置0x301000から0x03ブロッック分の読み込み処理を行う。HDD101は、この読み込み処理を終了すると、順次、読み込んだデータを、ATA119を通じて転送する。
そして、図8に示すHDD映像プレイヤ103のHDD101は、先読み処理のため0x301002の読み込み処理の後、さらに続けて、物理的に続いて保存されている0x301003以降の読み込み処理を実行し(ステップ205ないし207)、読み込んだデータをキャッシュメモリ106に格納する。これにより、続けてREAD要求814が発行された際、再度シーク処理を行うことなく、キャッシュメモリ106からデータを転送することができる(ステップ215ないし217)。
この従来技術によるHDD映像プレイヤ103は、前述したような先読み処理を実行することにより、データが連続的に配置され、それらのデータに対して連続的にアクセスされる場合に効率的なデータの読み出し処理を実現することができる。
(第1の実施の形態)
上記、前提技術に対し、本発明の第1の実施の形態によるディスク装置を用いたHDD映像プレイヤについて図を交えて説明する。
上記、前提技術に対し、本発明の第1の実施の形態によるディスク装置を用いたHDD映像プレイヤについて図を交えて説明する。
図1は本発明の第1の実施の形態によるディスク装置を用いたHDD映像プレイヤ103の構成を示すブロック図である。図8により説明した従来技術と基本的に同一のハードウェア構成を有している。しかし、HDD101のコマンド制御部102内にクロック部107と、時間指定先読み制御部129とが設けられ、また、HDD101の制御メモリ120内に先読み管理テーブル121が設けられている点、及び、ATA119からHDD101への要求として、READAHEAD命令(先読み指示付き読み出しコマンド)が利用される点で、図8により説明した従来技術と相違している。
図1に示すHDD映像プレイヤ103において、クロック部107は、HDD101のコマンド制御部102の中に配置されて、映像データの再生時間を刻む時計である。クロック部107は、例えば、映像の再生に用いるための精度として、映像データの処理でよく使われる27MHzの精度を備えた48bitのカウンタとして実装することができ、HDD101の動作に関係なく常に時間を刻み続ける。
制御メモリ120中の先読み管理テーブル121は、HDD101において本発明におけるREADAHEAD命令の発行によって行なわれる先読み処理を管理するテーブルである。
ここでREADAHEAD命令はCPU115がHDD101へ、読出処理を指示すると同時に、読出処理後に行なう先読み処理の方法を指示する命令信号である。
コマンド制御部102内の時間指定先読み制御部129は、READAHEAD命令を解釈し、制御メモリ120上の先読み管理テーブル121を用いながら、本発明の実施形態に基づく時間情報に基づく先読み処理を実行する機能を実現する制御部である。
図2は、READAHEAD命令のデータ構造を説明する概念図である。READAHEAD命令は、本発明を適用したHDD101に対し、読出処理を指示すると同時に、読出処理後に行なう先読み処理の方法を行うように指示するためのATA拡張命令である。HDD101は、本命令によってコンテンツデータをディスク部111から読み出すように指示される。
READAHEAD命令は、ATAコマンドID1002、読出開始ブロック番号1003、読出ブロック数1004、物理的先読み無効フラグ1005、次回読出開始ブロック番号フィールド有無フラグ1006、次回読出ブロック数フィールド有無フラグ1007、次回読出開始時刻フィールド有無フラグ1008、次回読出終了時刻フィールド有無フラグ1009、次回物理的先読み無効フラグフィールド有無フラグ1010、次回読出開始ブロック番号1011、次回読出ブロック数1012、次回読出開始時刻1013、次回読出終了時刻1014、次回物理的先読み無効フラグ1015の各属性より構成されている。
ATAコマンドID1002は、ATAコマンドの発行時に利用される識別子である。この図ではATAコマンドIDとして「READAHEAD」に対応した値を用いることを示している。
読出開始ブロック番号1003は、この1回のREADAHEAD命令によって読み込まれるデータが記録されているHDD101内のディスク部111中のデータブロックの番号を示す。この例では読出開始ブロック番号は0x000100である。
読出ブロック数1004は、このREADAHEAD命令によって読み込むデータのデータブロック数である。この図の例では読出ブロック数は0x10である。
物理的先読み無効フラグ1005は、HDD101に対し、今回の読出を指示されたブロックに続いて格納されているデータの先読みを行わないように指示するかどうかを示すフラグである。このフラグが1であれば、先読みを行わないよう指示し、0であれば、先読みを行うよう指示することを表す。
次回読出開始ブロック番号フィールド有無フラグ1006は、次に続く、次回読出開始ブロック番号1011フィールドに値が格納されていることを示すフラグである。1であれば、次回読出開始ブロック番号1011に格納された値は先読み指示として利用される。0であれば次回読出開始ブロック番号1011に格納された値は無視される。
次回読出ブロック数フィールド有無フラグ1007は、続く次回読出ブロック数1012フィールドに値が格納されていることを示すフラグである。1であれば、次回読出ブロック数1012に格納された値は先読み指示として利用される。0であれば次回読出ブロック数1012に格納された値は無視される。
次回読出開始時刻フィールド有無フラグ1008は、続く次回読出開始時刻1012フィールドに値が格納されていることを示すフラグである。1であれば、次回読出開始時刻1013フィールドに格納された値は先読み指示として利用される。0であれば次回読出開始時刻1013フィールドに格納された値は無視される。
次回読出終了時刻フィールド有無フラグ1009は、続く次回読出終了時刻1014フィールドに値が格納されていることを示すフラグである。1であれば、次回読出終了時刻1014フィールドに格納された値は先読み指示として利用される。0であれば次回読出終了時刻1014フィールドに格納された値は無視される。
次回物理的先読み無効フラグフィールド有無フラグ1010は、続く次回物理的先読み無効フラグ1015フィールドに値が格納されていることを示すフラグである。1であれば、次回物理的先読み無効フラグ1015フィールドに格納された値は先読み指示として利用される。0であれば次回物理的先読み無効フラグ1015フィールドに格納された値は無視される。
次回読出開始ブロック番号1011、次回読出ブロック数1012、次回読出開始時刻1013、次回読出終了時刻1014、次回物理的先読み無効フラグ1015は、既述の対応するフィールドで1が指定された場合、読出開始ブロック番号1003フィールドおよび読出ブロック数1004フィールドに指定された読出に続いて必要とされるデータについての値を格納している。
次回読出開始ブロック番号1011は、そのデータが記録されているHDD101内のディスク部111の中のデータブロックの番号を示す。この図の例では次回読出開始ブロック番号は0x000500である。
次回読出ブロック数1012は、そのデータが記録されているHDD101内のディスク部111の中のデータブロックのブロック数を示す。この図では次回読出ブロック数は0x60である。
次回読出開始時刻1013は、そのデータが読出されるまでの時間の最短の場合の値を示す。この値は、クロック部107の刻む値と同様、例えば、映像の再生に用いるための精度として、27MHzの精度を備えた48bitのカウンタとして実装することができる。
次回読出終了時刻1014は、そのデータが読み出されるまでの時間の最長の場合の値を格納する。次回読出開始ブロック番号1011と次回読出ブロック数1012に基づいて先読みされたデータを、次回読出終了時刻1014に示された時間が経過するまでは破棄しないように指示する。
次回物理的先読み無効フラグ1015は、次回読出開始ブロック番号1011と次回読出ブロック数1012で指定されたブロック範囲の先読みを完了した後、格納されているデータの先読みを行わないように、HDD101に対し指示するかどうかを示すフラグである。このフラグが1であれば、先読みを行わないよう指示し、0であれば、先読みを行うよう指示することを表す。
なお、上述のREADAHEAD命令では読み出しを必須の構成要素としているかのように見える。しかし、読出開始ブロック番号1003をNULLにする、読出ブロック数1004を0にする、など有意でない値をこれらのフィールドに格納することで、HDD外部への出力を伴うことなく、先読みを指示することも可能である。
図3は制御メモリ120中の先読み管理テーブル121の構造を示す概念図である。先読み管理テーブル121はナンバー1101、開始ブロック1102、サイズ1103、物理的先読み無効フラグ1104、読出開始時刻1105、読出終了時刻1106、読出開始デッドライン1107の各属性より構成される。
ナンバー1101は検索のために行(タプル)を指標する番号である。ここに示した先読み管理テーブルは4行の領域を備え、同時に4つまでのREADAHEAD命令による先読み指示を格納できる。なお、この行数は制御メモリ120の容量に応じて増減することは設計事項である。
開始ブロック1102とサイズ1103には、先読みするよう指示されたデータが記録されているHDD101内のディスク部111の中のデータブロックの、それぞれブロック番号とブロック数を示す。この図の例ではナンバー1の行は、ブロック番号0x000500から0x60個のブロックを先読みするよう指示している。それぞれ、READAHEAD命令中の次回読出開始ブロック番号1011と次回読出ブロック数1012によって与えられる値を格納したものである。
物理的先読み無効フラグ1104、読出開始時刻1105、読出終了時刻1106も同様に、READAHEAD命令に指定された値を格納する領域である。そのため、中に格納される値の意味はそれぞれ既に述べた次回物理的先読み無効フラグ1015、次回読出開始時刻1013、次回読出終了時刻1014と同様である。
読出開始デッドライン1107には先読み処理を次回読出開始時刻1013より前に完了するために読込処理を開始しなければならない時刻が格納される。この時刻までには読込処理を開始するために必要なシーク処理を完了していなければならない。
図4はREADAHEAD命令の実行時の処理動作を説明するフローチャートである。次に、これについて説明する。
ここで説明するフローは、HDD101のコマンド制御部102がREADAHEAD命令を受け取った際に実行される。すなわち、ここでの処理は、例えば次の場合に実行される処理である。HDD映像プレイヤ103において、HDD101内のディスク部111に格納された映像データが、必ずしも物理的に連続したデータブロックに配置されていない場合を考える。その映像データの再生を行なう際には、CPU115は、プレイヤプログラム104に従い、ATA119を通じてHDD101内のディスク部111から映像データの読み出しを指示する。その際、読み出しを指示したデータに続くデータが、次はどのデータブロックに保存されおり、その再生のためにいつ読み出す必要があるのかを、読み出しの指示と同時に指示するREADAHEAD命令をHDD101に送った際に実行される処理である。
この図のステップS301からステップS304までは他のREADAHEAD命令や読出命令が指示されても中断せずに行う。ステップS305以降は他のREADAHEAD命令や読出命令が指示されれば、そこでフローチャートの実行を中止し、指示された命令を実行する。
READAHEAD命令の実行が開始されると、コマンド制御部102は読み出し開始ブロック番号1003と読出ブロック数1004に指定された読出指示を実行する(ステップS301)。
次に、READAHEAD命令中の次回読出開始ブロック番号フィールド有無フラグ1006が1かどうか(有効か否か)を調べ、次回読出開始ブロック番号1011の有効・無効を確認する(ステップS302)。
もし有効であれば(ステップS302:Yes)、次回読出ブロック数1012と次回読出開始時刻1013とから、読出を開始しなければならない読出開始デッドライン1107の時刻を計算し、先読み管理テーブル121に各情報を登録する処理を行う(ステップS303)。
読出開始デッドラインは例えば次のように求めることができる。
(読出開始デッドライン) = (次回読出開始時刻1013) −
(次回読出ブロック数1012から計算できる読出処理に必要な時間)…式(1)
ここで次回読出ブロック数1012から計算できる読出処理に必要な時間は、次回読出ブロック数1012をHDD101の読出速度で割って導出できる。この際、読出開始デッドラインが現在時刻より前になる場合には先読みを行うことはできないと判断できる。その場合HDD101はステップS301で読み出したデータを返すと共に、次回読出開始時刻1013までに先読みを完了することができない旨、ATA119経由でCPU115に通知する(ステップS304)。
(次回読出ブロック数1012から計算できる読出処理に必要な時間)…式(1)
ここで次回読出ブロック数1012から計算できる読出処理に必要な時間は、次回読出ブロック数1012をHDD101の読出速度で割って導出できる。この際、読出開始デッドラインが現在時刻より前になる場合には先読みを行うことはできないと判断できる。その場合HDD101はステップS301で読み出したデータを返すと共に、次回読出開始時刻1013までに先読みを完了することができない旨、ATA119経由でCPU115に通知する(ステップS304)。
次にコマンド制御部102は、先読み管理テーブル121の各行を確認し、次回読出開始時刻1013までに先読み処理を完了させるために読出処理を開始しなければならないものがあるか否かを確認する(ステップS305)。すなわち、各行の開始ブロック1102とサーボ/チャネル制御部128の制御するデータ読み取りヘッドの位置情報からデータ読み取りヘッドの移動距離と、移動のために必要な時間と、ディスクが必要な位置に回転するために必要な時間とから、読出処理を開始するまでに必要なシーク時間を計算する。
そして次の計算で読出開始までの猶予時間を計算する。
(猶予時間) = (読出開始デッドライン1107)
ー(クロック部107が刻む現在時刻)−(求めたシーク時間)
−(若干のマージン時間) …式(2)
これにより、猶予時間が一定の時間より短いか否かで読出開始デッドライン1107が近いかを判定することができる。
ー(クロック部107が刻む現在時刻)−(求めたシーク時間)
−(若干のマージン時間) …式(2)
これにより、猶予時間が一定の時間より短いか否かで読出開始デッドライン1107が近いかを判定することができる。
ステップS305の判定の結果、先読み管理テーブル121中に近い行があれば(ステップS305:Yes)、先に求めた猶予時間の短いものから順に、猶予時間が一定の時間より短いものは全て先読み処理を実行する(ステップS306)。逆にステップS305の判定の結果近いエントリが無ければ(ステップS305:No)、READAHEAD命令の物理的先読み無効フラグ1005を確認する。もし物理的先読み無効フラグ1005が0であれば(ステップS307:Yes)、読出開始ブロック番号1003から始まり、読出ブロック数1004に記載のデータ量分続くデータブロックを先読み処理し(ステップS308)、アイドル状態に戻る。
なお、ステップS304において、ここでは簡略化のため、複数の先読み処理の実行時刻が近い場合に必要になる計算の説明を省いている。例えば、二つの先読み処理が近い読出開始時刻1105を持つ場合、共に読み出しに時間のかかるサイズ1103である場合、一方の先読み処理を読出開始時刻1105に近い時刻で行なっていると、その処理のために、他方の先読み処理を実行できなくなり、結果、先読み処理が読出開始時刻1105までに完了しない場合が発生しうる。そのため、ステップS304においては、各先読み処理の実行が他の先読み処理を阻害しないよう、他の先読み処理の実行時間の分だけ早めの読出開始デッドライン1107を計算し、代入しておくこともできる。
また、本実施の形態ではステップS304において、次回読出開始時刻1013までに先読み処理を完了できるかどうか通知しているが、ステップS301の処理に必要となる時間をディスク部111上におかれた現在のデータヘッドの位置から予測することによって、ステップS301の実行より前にステップS302ないしS304を行うこともできる。その場合、CPU115はより早く先読み処理の状況を把握することができる。
前述したREADAHEAD命令の処理によって、先読み管理テーブル121にエントリが書込まれると(行が追加されると)、HDD101は、アイドル時に次に説明する手順で先読み処理を開始する。なお、以下に説明する処理については、図示を省略している。
(1)まず、先読み管理テーブル121中の各エントリについて、読出開始デッドライン1107の近いエントリ、すなわち式(2)で猶予時間を計算した結果が一定の時間より短いものがないか確認する。あわせて、キャッシュ管理テーブル127を確認し、キャッシュメモリ106に使用されていない領域がないか確認する。読出開始デッドライン1107の近いエントリがなく、キャッシュメモリ106に使用されていない領域もなければ、読出開始デッドライン1107の近いエントリがでてくるまで通常のHDD101と同様に動作する。もし読出開始デッドライン1107の近いエントリがあるか、キャッシュメモリ106に使用されていない領域があれば、(2)へ進む。
(2)先読み管理テーブル121の中で、読出開始デッドライン1107の最も近いエントリを先読み処理する。すなわち、開始ブロック1102とサイズ1103で示されるディスク部111中のデータブロックからデータを読み出し、キャッシュメモリ106上の領域に保存する。これにより、CPU115がプレイヤプログラム104に従って映像データの再生を継続するためATA119を通じてHDD101に続くデータの読み込みを要求すると、既にキャッシュメモリ106上に対応するデータが読み込まれているため、ATA119は、シーク処理を待つことなく、即座にデータを受けとることができる。
(3)(2)で先読みしたエントリの物理的先読み無効フラグ1104が0であり、かつ先読み管理テーブル121中の各エントリについて、読出開始デッドライン1107の近いエントリがもうない場合、(2)の先読みに物理的に続けて格納されているデータブロックをそのまま読み出し、キャッシュメモリ106に格納する。
(1)まず、先読み管理テーブル121中の各エントリについて、読出開始デッドライン1107の近いエントリ、すなわち式(2)で猶予時間を計算した結果が一定の時間より短いものがないか確認する。あわせて、キャッシュ管理テーブル127を確認し、キャッシュメモリ106に使用されていない領域がないか確認する。読出開始デッドライン1107の近いエントリがなく、キャッシュメモリ106に使用されていない領域もなければ、読出開始デッドライン1107の近いエントリがでてくるまで通常のHDD101と同様に動作する。もし読出開始デッドライン1107の近いエントリがあるか、キャッシュメモリ106に使用されていない領域があれば、(2)へ進む。
(2)先読み管理テーブル121の中で、読出開始デッドライン1107の最も近いエントリを先読み処理する。すなわち、開始ブロック1102とサイズ1103で示されるディスク部111中のデータブロックからデータを読み出し、キャッシュメモリ106上の領域に保存する。これにより、CPU115がプレイヤプログラム104に従って映像データの再生を継続するためATA119を通じてHDD101に続くデータの読み込みを要求すると、既にキャッシュメモリ106上に対応するデータが読み込まれているため、ATA119は、シーク処理を待つことなく、即座にデータを受けとることができる。
(3)(2)で先読みしたエントリの物理的先読み無効フラグ1104が0であり、かつ先読み管理テーブル121中の各エントリについて、読出開始デッドライン1107の近いエントリがもうない場合、(2)の先読みに物理的に続けて格納されているデータブロックをそのまま読み出し、キャッシュメモリ106に格納する。
前述した処理において、前述の各ステップの処理の途中であっても、HDD101は、ATA I/F118を通じたATAコマンドによる通常の読み書き要求を受け付けて、その要求による処理を行う。
図5はATAコマンドによる通常の読み書き要求を受け取った際の処理動作を説明するフローチャートである。以下、これについて説明する。なお、ここでの通常の読み書き要求とは、例えば、テキストデータ等に対する読み書き要求のように、どのデータのどこにどのようにアクセスするのかがユーザの行動に依存し、予測が困難なランダムアクセスが行なわれるデータへの読み書きである。
ここで説明する処理は、HDD101がATA I/F118を通じて、READAHEAD命令による読み書きとは異なる通常の読み書き手段によって、読み書き要求を受信した場合に実行される。
この処理が開始されると、まず、先読み管理テーブル121中の各エントリについて、読出開始デッドライン1107の近いエントリ、すなわち式(2)で猶予時間を計算した結果が一定の時間より短いものがないか確認する(ステップS501)。もしあれば(ステップS501:Yes)、先読み管理テーブル121のエントリの中で、読出開始デッドライン1107の最も近いエントリから先読み処理を行う(ステップS502)。すなわち、読出開始デッドライン1107の最も近いエントリの開始ブロック1102とサイズ1103で示されるディスク部111中のデータブロックからデータを読み出し、キャッシュメモリ106上の領域に保存する。これにより、CPU115がプレイヤプログラム104に従って、映像データの再生を継続する。このため、ATA119を通じてHDD101に続くデータの読み込みを要求すると、既にキャッシュメモリ106上に対応するデータが読み込まれており、ATA119は、シーク処理を待つことなく、即座にデータを受けとることができる。先読み処理が完了すると、先読み管理テーブル121からそのエントリは消去する。
その後、先読み管理テーブル121中の各エントリについて、読出開始デッドライン1107の近いエントリが無くなったら、従来技術のHDDと同様の、通常の読み書き要求の処理を実行する。読み込み処理でなく、書き込み処理であれば、このステップで終了してよい(ステップS503)。
従来技術のHDDの読み込み処理であれば、ここで続けて物理的に連続して配置されたデータブロックの先読み処理を行う。しかし、本発明におけるHDD101では、ステップS501と同様に先読み管理テーブル121中の各エントリについて、読出開始デッドライン1107の近いエントリがないか確認する(ステップS504)。あれば(ステップS504:Yes)、やはり先読み管理テーブル121のエントリの中で、読出開始デッドライン1107の最も近いエントリから先読み処理を行い(ステップS505)、処理を終了する。一方、先読み管理テーブル121中の各エントリについて、読出開始デッドライン1107の近いエントリがなければ、従来技術のHDDと同様に、物理的に連続して配置されたデータブロックの先読み処理を行う(ステップS506)。
以上の様に明示的な先読みを可能とするREADAHEAD命令を用意し、CPU115がその発行を行うことで、キャッシュメモリへの先読みを積極的に制御させる。これにより、操作者の体感として高速なHDDへのデータアクセスを可能とする。
以上、本発明の一実施形態について説明した。しかし、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
例えば、図4及び図5のフローチャートに示した読出書込処理は、次に示す優先度で実行している場合について示した。大なり記号で示した左辺あるいは上段の項目ほど、高い優先度であることを示す。
(READAHEAD命令による読出命令)
> (猶予時間の短いREADAHEAD命令による先読み命令)
> (通常の読み書き命令)
> (物理的先読み処理)
> (空きキャッシュメモリがある場合の、READAHEAD命令による先読み命令)
> 何もしない
> (空きキャッシュメモリがない場合の、READAHEAD命令による先読み命令)
…式(3)
しかし、この優先度に限るものではなく、これらは適用製品・適用サービスに応じて都度拡張変形してもよい。
> (猶予時間の短いREADAHEAD命令による先読み命令)
> (通常の読み書き命令)
> (物理的先読み処理)
> (空きキャッシュメモリがある場合の、READAHEAD命令による先読み命令)
> 何もしない
> (空きキャッシュメモリがない場合の、READAHEAD命令による先読み命令)
…式(3)
しかし、この優先度に限るものではなく、これらは適用製品・適用サービスに応じて都度拡張変形してもよい。
また、前述した本発明の実施形態においては、映像データを格納するHDDに対する適用例を示したが、映像データでなくても、連続的に記録され連続的にアクセスされることの多いデータや、一度の読み書きされるデータのサイズの大きなデータであれば本発明を適用することが可能である。
また、本発明は、HDDの代わりにフラッシュメモリや可搬型HDD、光ディスク等の記録媒体であっても、より高速なキャッシュメモリと組み合わせて利用することにより効果を得ることができる。
また、前述した本発明の実施形態は、図4に示して説明したREADAHEAD命令の処理によって、先読み管理テーブル121にエントリが書込まれた後の処理の1つとして、先読み処理を行い、読み込んだデータを単に、キャッシュメモリ106上の領域に保存することとしているが、CPU115の指示に基づいて、ATA119が内蔵するDMAC124を利用し、直接データメモリ108へデータを転送してもよい。また、その場合、データメモリ108の状態に合わせ、自律的に転送を継続することや、転送速度を調整することができる。
また、前述した本発明の実施形態は、READAHEAD命令を契機として先読み処理を行っているが、本発明は、通常の読み込み命令や書き込み命令を契機として先読み処理を開始するようにすることもできる。その場合は、先読み処理を指示ことのみを実行するATA拡張コマンドによって、先読み処理を開始するようにすることもできる。
また、前述した本発明の実施形態は、図4に示して説明したREADAHEAD命令の処理によって、先読み管理テーブル121にエントリが書込まれた後の処理の1つとして、CPU115がプレイヤプログラム104に従って、映像データの再生を継続するために、ATA119を通じてHDD101に続くデータの読み込みが要求されると、既にキャッシュメモリ106上に対応するデータを返すとしている。しかし、本発明は、CPU115が実行するデータの読み込み処理が行われる時刻が、予定した時刻より早いか、あるいは遅いかを測定し、CPU115及びデコード部109が再生するために利用しているクロック部と、HDD101が備えるクロック部107との時間を同期するよう拡張することもできる。これにより、先読み時の時間のずれを修正し、より正確に先読みデータを保持し続けることができるようになる。
また、前述した本発明の実施形態は、HDD101がアイドル時に先読み処理を開始する際、なるべく先に先読み処理を遅延させるようにしているが、本発明は、なるべく早く先読み処理を行うことにより、読出開始デッドライン1107が迫ってきた際、他の読み書き命令を受けつける余裕を確保するように制御することもできる。
また、前述した本発明の実施の形態において、HDD101が受け付けるREADAHEAD命令は種々の情報を受け付け、先読み処理ステップS306、S505を行うように実装した。しかし、図2に示したREADAHEAD命令は、ATAコマンドID1002、読出開始ブロック番号1003、読出ブロック数1004、物理的先読み無効フラグ1005を備え、次回読出開始ブロック番号フィールド有無フラグ1006から次回物理的先読み無効フラグ1015の各種情報を省略すること、及び、図4に示したREADAHEAD命令実行処理のうちステップS301、S307、S308のみを実行しステップS302からS306までを省略すること、で簡単に実装をすることも可能である。この場合、物理的先読み無効フラグ1005の値によって物理的先読み処理ステップS308、S506を抑制され明らかに不必要な先読み処理が抑制でき、節電状態などHDDが次に移るべき状態にいち早く遷移することができる。
更には、上記例ではATA拡張コマンドの仕様を利用して、READAHEAD命令を実装した。しかし、ATAコマンドの仕様とは別の系統のコマンドとして実装しても問題は無い。すなわちHDD外部から先読みの制御・可否等を制御できれば、その手段は問うものではない。
(第2の実施の形態)
次に第2の実施形態について、図6と図7を用いて説明する。
次に第2の実施形態について、図6と図7を用いて説明する。
図6は本発明の第2の実施の形態におけるディスク装置を用いたHDD映像プレイヤの構成を示すブロック図である。図6に示す本発明の第2の実施形態は、専用I/F付きHDDを用いたHDD映像プレイヤの例である。
図6に示す本発明の第2の実施形態は、HDD101内にデータバス602を介してデコード部109と接続されたAV I/F601を設けた点、HDD101内のコマンド制御部102における第1の実施形態での時間指定先読み制御部129に加えてデータバス転送制御部130がある点、及び、ATA119からHDD101への要求として、TRANSAHEAD命令が利用される点で、第1の実施形態とその構成が相違している。なお、図6中では時間指定先読み制御部129は省略している。
AV I/F601は、HDD101の内部で、コマンド制御部102及びキャッシュメモリ106と接続され、HDD101の外部ではデータバス602を通じてデコード部109と直接接続されるインターフェイス部である。
データバス602は、AV I/F601とコントローラ100上のデコード部109を結び、HDD101内に記録された映像データを伝送する、映像や音声のストリームデータ専用に設けられたインターフェイスである。
図7は本発明の第2の実施形態において用いられるTRANSAHEAD命令のデータ構造を示す概念図である。TRANSAHEAD命令は、READAHEAD命令とほぼ同様の構造をしているが、転送先AV I/F2016、I/Fパラメータ2017が加えられている点が異なる。従って項番2002から2015までは図2の1002から1015と同じであるので、説明は省略する。
転送先AV I/F2016は、本発明の第2の実施形態において、AV I/F601が複数存在する場合に、TRANSAHEAD命令中の読出開始ブロック番号703、読出ブロック数704によって読み出しを指定されたデータが送られるAV I/F601の番号を格納する。
I/Fパラメータ2017は、TRANSAHEAD命令によって読出されるデータの転送時のパラメータ情報である。
本発明の第2の実施形態は、HDD101に格納されたデータの内、デコード部109が処理する映像データを、ATA119やバス126を経ることなく、AV I/F601とデータバス602を介して、直接デコード部109へ送出するようにしたものである。
そして、本発明の第2の実施形態は、第1の実施形態の場合と同様にアイドル時にデータの読み出しを行うが、アイドル時に先読み、あるいは、DMA転送を行う代わりに、コマンド制御部102のデータバス転送制御部130がAV I/F601に指示して、キャッシュメモリ106上のコンテンツデータ116を、データバス602を通じて直接デコード部109へ送信する。デコード部109は、受信したコンテンツデータ116を映像信号に変換し、映像出力I/F123を通じてTV110へ映像を出力する。
本発明の第2の実施の形態においては、第1の実施形態で必要であったデータメモリ108をなくすことができる効果を有する。
前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してデジタル情報により提供することができる。
なお、第1の実施の形態同様、TRANSAHEAD命令もATAコマンドの仕様とは別の系統のコマンドとして実装しても問題は無い。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更が可能であることは言うまでもない。
記述の通り、本発明の説明では映像データを格納するHDDに対する適用例を示したが、映像データでなくても、連続的に記録され連続的にアクセスされることの多いデータや、一度の読み書きされるデータのサイズの大きなデータであれば本発明を適用することが可能である。また、実施例としてHDD映像プレイヤ103としているが必ずしもこれに限定されることは無く、取り扱うデータに応じて異なる種類の情報端末装置に適用しても良い。
100…コントローラ、101…HDD、
102…コマンド制御部、103…HDD映像プレイヤ、
104…プレイヤプログラム、105…ファイルシステム、
106…キャッシュメモリ、107…クロック部、108…データメモリ、
109…デコード部、110…テレビ(TV)、111…ディスク部、
112…データ領域、115…CPU、116、117…コンテンツデータ、
118…ATA I/F、119…ATA、120…制御メモリ、
123…映像出力I/F、124…DMAC、125…プログラムメモリ、
126…バス、127…キャッシュ管理テーブル、129…時間指定先読制御部、
130…データバス転送制御部。
102…コマンド制御部、103…HDD映像プレイヤ、
104…プレイヤプログラム、105…ファイルシステム、
106…キャッシュメモリ、107…クロック部、108…データメモリ、
109…デコード部、110…テレビ(TV)、111…ディスク部、
112…データ領域、115…CPU、116、117…コンテンツデータ、
118…ATA I/F、119…ATA、120…制御メモリ、
123…映像出力I/F、124…DMAC、125…プログラムメモリ、
126…バス、127…キャッシュ管理テーブル、129…時間指定先読制御部、
130…データバス転送制御部。
Claims (18)
- 先読み指示付き読み出しコマンドの受信を行う第1インターフェイス部と、前記先読み指示付き読み出しコマンドを解釈するコマンド制御部と、キャッシュメモリと、データを格納する記憶媒体を含む記憶装置であって、
前記先読み指示付き読み出しコマンドには読み出し開始箇所を指示する次回読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する次回読出ブロックフィールドを有し、
前記先読み指示付き読み出しコマンドの受信時に、前記コマンド制御部は前記次回読出開始ブロック番号フィールドで指定されたデータ格納位置から前記次回読出ブロックフィールドで指定されたデータ量分のデータを前記記憶媒体から前記キャッシュメモリに保存することを特徴とする記憶装置。 - 請求項1に記載の記憶装置において、前記先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、
前記コマンド制御部は前記物理的先読み無効フラグに応じて、以降前記記憶媒体へのアクセスに際し、先読みを行うか否かを決定することを特徴とする記憶装置。 - 請求項1または2に記載の記憶装置において、前記先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する読出ブロック数フィールドを有し、
前記コマンド制御部は、前記読出開始ブロック番号フィールドで指定されたデータ格納位置から前記読出ブロック数フィールドで指定されたデータ量分のデータを前記第1インターフェイス部より出力することを特徴とする記憶装置。 - 請求項3記載の記憶装置において、前記読出開始ブロック番号フィールドまたは前記読出ブロック数フィールドに有意でない値を格納することで、前記コマンド制御部は前記第1インターフェイス部からの出力を行わないことを特徴とする記憶装置。
- 請求項1ないし4のいずれか1項に記載の記憶装置において、更に前記先読み指示付き読み出しコマンドは読み出し開始までの最短の時刻を定める次回読出開始時刻フィールドを含み、
前記コマンド制御部は、前記次回読出開始時刻フィールド参照し、前記次回読出開始時刻フィールドで指定された時間の経過を待って、前記先読み指示付き読み出しコマンドの前記次回読出開始ブロック番号フィールドに関するデータの前記キャッシュメモリへの保存を行うことを特徴とする記憶装置。 - 請求項1ないし4のいずれか1項に記載の記憶装置において、更に前記先読み指示付き読み出しコマンドは読み出しを行う最大の時刻を定める次回読出終了時刻フィールドを含み、
前記コマンド制御部は、前記次回読出終了時刻フィールド参照し、前記次回読出終了時刻フィールドで指定された時間以降は、前記先読み指示付き読み出しコマンドの前記次回読出開始ブロック番号フィールドに関するデータの前記キャッシュメモリへの保存を行わないことを特徴とする記憶装置。 - 請求項1または2に記載の記憶装置において、
該記憶装置は更に第2インターフェイス部を含み、
前記先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド、読み出すデータブロック数を指示する読出ブロック数フィールド、及び外部にデータ出力する際に用いるインターフェイス部を指定するインターフェイス選択フィールドを有し、
前記コマンド制御部は、前記読出開始ブロック番号フィールドで指定されたデータ格納位置から前記読出ブロック数フィールドで指定されたデータ量分のデータを前記インターフェイス選択フィールドにて指定されたインターフェイスより出力することを特徴とする記憶装置。 - 請求項2に記載の記憶装置において、前記物理的先読み無効フラグが有効な際、前記コマンド制御部は前記キャッシュメモリへの保存を停止することを特徴とする記憶装置。
- コントローラと記憶装置を含む情報端末装置であって、
前記コントローラはCPUと、接続インターフェイス部と、を有し、
前記記憶装置は前記コントローラと接続する第1インターフェイス部を格納する記憶媒体を含み、
前記コントローラの接続インターフェイス部と前記記憶装置の第1インターフェイス部とが接続され、
前記CPUは、読み出し開始箇所を指示する次回読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する次回読出ブロックフィールドを有する先読み指示付き読み出しコマンドを前記記憶装置の第1インターフェイス部に出力することを特徴とする情報端末装置。 - 請求項9に記載の情報端末装置において、前記記憶装置は更にコマンド制御部と、キャッシュメモリとを有し、
前記先読み指示付き読み出しコマンドを第1インターフェイス部より受信すると、前記コマンド制御部は前記次回読出開始ブロック番号フィールドで指定されたデータ格納位置から前記次回読出ブロックフィールドで指定されたデータ量分のデータを前記記憶媒体から前記キャッシュメモリに保存することを特徴とする情報端末装置。 - 請求項10に記載の情報端末装置において、前記先読み指示付き読み出しコマンドは更に物理的先読み無効フラグを有し、
前記CPUが前記コマンド制御部に対し、前記キャッシュメモリへの保存を停止することを特徴とする情報端末装置。 - 請求項9に記載の情報端末装置において、
前記記憶装置は更にコマンド制御部と、記憶媒体とを有し、
前記先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド及び読み出すデータブロック数を指示する読出ブロック数フィールドを有し、
前記コマンド制御部は、前記先読み指示フィールドで指定されたデータ格納位置から前記読出ブロック数フィールドで指定されたデータ量分のデータを前記第1インターフェイス部よりコントローラに出力することを特徴とする情報端末装置。 - 請求項9に記載の情報端末装置において、
前記コントローラはデコード部を更に有し、
前記記憶装置は第2インターフェイス部を更に有し、前記デコード部と前記第2インターフェイス部が接続され、
前記先読み指示付き読み出しコマンドは更に読み出し開始箇所を指示する読出開始ブロック番号フィールド、読み出すデータブロック数を指示する読出ブロック数フィールド、及び外部にデータ出力するインターフェイス部を指定するインターフェイス選択フィールドを有し、
前記CPUは、前記読出開始ブロック番号フィールドで指定されたデータ格納位置から前記読出ブロック数フィールドで指定されたデータ量分のデータを前記インターフェイス選択フィールドにて指定されたインターフェイスより出力することを特徴とする情報端末装置。 - 読み出しコマンドの受信を行う第1インターフェイス部と、前記読み出しコマンドを解釈するコマンド制御部と、キャッシュメモリと、データを格納する記憶媒体を含む記憶装置であって、
前記読み出しコマンドには物理的先読み無効フラグを有し、
前記コマンド制御部は前記物理的先読み無効フラグの値に応じて、以降前記記憶媒体へのアクセスに際し、先読みを行うか否かを決定し、いち早く節電することを特徴とする記憶装置。 - 第1の読出位置、第2の読出位置及び第2の読出位置からデータを読み出す時間情報と、を含むコマンドを解釈するコマンド制御部と、キャッシュメモリと、第1インターフェイス部と、データを格納するディスク装置を備えるディスク装置におけるデータの先読み方法であって、
前記第1インターフェイス部から前記コマンド制御部が前記コマンドを受信するコマンド受信ステップと、
前記コマンド制御部が前記第1の読出位置のデータを前記ディスク装置から読み出し前記第1インターフェイス部から出力するデータ出力ステップと、
前記データ出力ステップの終了後、前記コマンド制御部が前記第2の読出位置のデータを前記ディスク装置から順次読み出し、前記キャッシュメモリに格納するキャッシュメモリ格納ステップと、
前記第2の読出位置からのデータの読み出しを、前記時間情報に基づいて前記コマンド制御部が遅延させるキャッシュメモリ格納遅延ステップと、を含むことを特徴とするデータ先読み方法。 - 請求項15に記載のデータの先読み方法において、前記キャッシュメモリ格納遅延ステップでは前記ディスク装置が備えるデータ読出ヘッドの位置も参照して前記コマンド制御部がデータの読み出しを遅延させることを特徴とするデータ先読み方法。
- 請求項15に記載のデータの先読み方法において、前記コマンドは更に読出開始時刻フィールドを有し、前記コマンド制御部は前記読出開始時刻フィールドを参照して前記第1インターフェイス部から前記キャッシュメモリのデータを出力するキャッシュメモリ内データ送信ステップを有することを特徴とするデータ先読み方法。
- 第1の読出位置、第2の読出位置、第2の読出位置からデータを読み出す時間情報及びインターフェイス選択フィールドと、を含むコマンドを解釈するコマンド制御部と、キャッシュメモリと、第1インターフェイス部と、第2のインターフェイス部と、データを格納するディスク装置を備えるディスク装置におけるデータの先読み方法であって、
前記第1インターフェイス部から前記コマンド制御部が前記コマンドを受信するコマンド受信ステップと、
前記コマンド制御部が前記第1の読出位置のデータを前記ディスク装置から読み出し前記インターフェイス選択フィールドによって指定されたインターフェイス部から出力するデータ出力ステップと、
前記データ出力ステップの終了後、前記コマンド制御部が前記第2の読出位置のデータを前記ディスク装置から順次読み出し、前記キャッシュメモリに格納するキャッシュメモリ格納ステップと、
前記第2の読出位置からのデータの読み出しを、前記時間情報に基づいて前記コマンド制御部が遅延させるキャッシュメモリ格納遅延ステップと、を含むことを特徴とするデータ先読み方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007331347A JP2009157414A (ja) | 2007-12-25 | 2007-12-25 | 記憶装置、情報端末装置及びデータ先読み方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007331347A JP2009157414A (ja) | 2007-12-25 | 2007-12-25 | 記憶装置、情報端末装置及びデータ先読み方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009157414A true JP2009157414A (ja) | 2009-07-16 |
Family
ID=40961416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007331347A Pending JP2009157414A (ja) | 2007-12-25 | 2007-12-25 | 記憶装置、情報端末装置及びデータ先読み方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009157414A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014030387A1 (ja) * | 2012-08-22 | 2014-02-27 | 三菱電機株式会社 | キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 |
JPWO2014147840A1 (ja) * | 2013-03-22 | 2017-02-16 | 富士通株式会社 | アクセス制御プログラム、ディスク装置及びアクセス制御方法 |
-
2007
- 2007-12-25 JP JP2007331347A patent/JP2009157414A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014030387A1 (ja) * | 2012-08-22 | 2014-02-27 | 三菱電機株式会社 | キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 |
JPWO2014147840A1 (ja) * | 2013-03-22 | 2017-02-16 | 富士通株式会社 | アクセス制御プログラム、ディスク装置及びアクセス制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007241927A (ja) | データ記憶装置及び方法 | |
JP2009110609A (ja) | ストリームデータ転送制御機構 | |
JP2001222380A (ja) | 外部記憶装置とそれを備えた情報処理システム | |
JP2018531471A6 (ja) | 分散キャッシュライブマイグレーション | |
US20100198998A1 (en) | I/o controller and descriptor transfer method | |
US7000077B2 (en) | Device/host coordinated prefetching storage system | |
JP5020774B2 (ja) | 先読みを用いたストレージ消費電力削減方法及びその方法を用いた計算機システム | |
JP3087429B2 (ja) | 記憶装置システム | |
EP1782175B1 (en) | Time budgeting for non-data transfer operations in drive units | |
JP2013030145A (ja) | メモリカードコントローラ、メモリカードアダプタおよびメモリカードドライブ | |
JPH11242563A (ja) | ディスク媒体アクセスインタフェース装置およびそのアクセス方法およびディスクドライブ装置 | |
JP2007501473A (ja) | メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置 | |
JP2009157414A (ja) | 記憶装置、情報端末装置及びデータ先読み方法 | |
JP2010218485A (ja) | ストレージ装置、データ書き込み方法、及びデータ書き込みプログラム | |
JP2009087487A (ja) | ディスク装置及びデータの先読み方法 | |
JP2001084110A (ja) | 磁気ディスク装置、及び磁気ディスク装置のディスクアクセス方法、並びに磁気ディスク装置用ディスクアクセス制御プログラムを記録した記録媒体 | |
JP2012221156A (ja) | 再生装置および再生方法 | |
JP2007011661A (ja) | ディスク装置及びディスク装置のキャッシュメモリ制御方法 | |
KR100272684B1 (ko) | 디스크 드라이브 장치 및 그 제어 방법 | |
US20060072398A1 (en) | Data transmission control method | |
CN106776404A (zh) | SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法 | |
US7016983B2 (en) | System and method for controlling a communication bus | |
JP2002170322A (ja) | 記録再生ディスク制御装置、記録再生ディスク制御方法および記録再生ディスク装置 | |
JP2003256145A (ja) | データ転送システムおよびデータ転送方法 | |
WO1994022134A1 (en) | Buffer control for data transfer within hard disk during idle periods |