説明

ディスク装置及びデータの先読み方法

【課題】HDDや光ディスク等の大容量記録媒体を用いるディスク装置において、見掛け上のデータアクセス時間を短縮し、データアクセスに必要なシステム負荷を軽減する。
【解決手段】HDDや光ディスク等の円盤型記録媒体に映像データを格納するディスク装置であって、格納データの一部または格納データの全体における各部分に対し、再生時間情報を割り当てて管理する時間テーブル管理手段121と、再生時間を刻む再生クロック手段107と、前記再生時間情報と、再生クロック手段が刻む再生時間とに基づいて、対応する格納データを、逐次の指示を受けることなく読み出す先読み処理手段129とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディスク装置及びデータの先読み方法に係り、特に、映像データ、音声データの取り扱いに適したディスク装置及びデータの先読み方法に関する。
【背景技術】
【0002】
デジタル放送の普及に伴い、家庭でも気軽に大容量の映像データを取り扱えるようになりつつある。そうした大容量データを記録する記録装置として、容量単価の安いHDD(Hard Disk Drive)や光ディスク等の円盤型記録媒体を使用するディスク装置が広く用いられている。
【0003】
HDDや光ディスク等の円盤型記録媒体を用いるディスク装置は、データを記録するデータブロックが配置された円盤と、データブロックを読み書きするヘッドとを用いて読み書きを行っている。このようなディスク装置は、データ読み出し/書き込み時に、円盤を回転させて、読み出し/書き込みを行うデータブロック上へヘッドを移動し、読み出し/書き込みを行うように構成されている。
【0004】
そのため、ディスク装置は、HDDや光ディスクに対して読み出し処理を指示してから、実際に読み出しが開始されるまでに、一般に、シーク時間と呼ばれる円盤の回転やヘッドの移動といった物理的な動作の完了を待つ時間が必要となる。
【0005】
前述のような待ち時間を短縮することができるようにした従来技術として、特許文献1等に記載された技術が知られている。この従来技術は、データ利用の局所性を利用してデータの先読みを行うというものである。
【0006】
図10はHDD内の映像データの再生時に先読みを行う従来技術によるHDD映像プレイヤの構成を示すブロック図、図11は図10に示すHDD映像プレイヤでの先読み処理の方法を説明する図であり、以下、これらの図を参照して従来技術について説明する。
【0007】
従来技術によるHDD映像プレイヤ103は、図10に示すように、コンテンツデータ117を格納するデータメモリ108と、プレイヤプログラム104、ファイルシステム105を有するプログラムメモリ125と、CPU(Central Processing Unit)115と、DMAC(Direct Memory Access Controller)124を有するATA(AT Attachment)119と、映像出力I/F(Interface)123が接続されたデコード部109とがバス126により接続され、さらに、ATA119にHDD101が接続されて構成される。そして、映像出力I/F(Interface)123にはTV(Televisoin)110が接続されている。
【0008】
また、HDD101は、コマンド制御部102と、コンテンツデータを格納するキャッシュメモリ106と、ディスク部111と、ATAI/F(AT Attachment Interface)118と、キャッシュ管理テーブル127を有する制御メモリ120と、サーボ/チャネル制御部128とを備えて構成されている。そして、コマンド制御部102、キャッシュメモリ106、ATAI/F118、制御メモリ120、サーボ/チャネル制御部128は相互に接続され、必要なコマンドや各種データの授受を行うことができるようにされている。
【0009】
前述において、ATAI/F118は、HDD101の外部から渡されたATAコマンドを受け取り、コマンド制御部102に渡す機能と、ATAコマンドの処理結果をATA119と連携して送り出す機能とを備えている。コマンド制御部102は、READ要求1013等のATAコマンドをATAI/F118を通じて受け取り、サーボ/チャネル制御部128を通じてディスク部111上のデータ領域112を読み書きし、その結果をATAI/F118を通じて送出する。また、コマンド制御部102は、制御メモリ120と該制御メモリ120に格納されているキャッシュ管理テーブル127とを用いて、キャッシュメモリ106を管理する。
【0010】
HDD映像プレイヤ103を構成するCPU115、プログラムメモリ125、データメモリ108、ATA119、デコード部109は、バス126を通じて相互に接続され、必要なコマンドや各種データの授受を行うことができるようにされている。
【0011】
CPU115は、HDD101、データメモリ108、デコード部109、ATA119、プログラムメモリ125、バス126の初期化・制御・管理を担当し、プログラムメモリ125の中に格納されたプレイヤプログラム104を実行し、HDD映像プレイヤ103全体の処理を統括するマイクロプロセッサである。プログラムメモリ125は、プレイヤプログラム104、ファイルシステム105を格納し、CPU115が各プログラムを実行するために必要な記憶領域を提供する。データメモリ108は、HDD101から読み出したコンテンツデータ117を一時的に格納するために使用する記憶領域である。デコード部109は、コンテンツデータ117を読み込んで、符号化された映像データを映像信号に変換する。
【0012】
次に、図10に示すHDD映像プレイヤ103における映像再生の動作について説明する。なお、映像データは、ディスク部111上のデータ領域112に格納されている。
【0013】
まず、CPU115は、プレイヤプログラム104に従って、ファイルシステム105とATA119とを通じ、HDD101に対し、映像データに対するREAD要求1013を発行する。HDD101は、ATAI/F118を通じてREAD要求1013を受け取る。コマンド制御部102は、ATAI/F118を通じてREAD要求1013を受け取り、その内容を解釈する。コマンド制御部102は、制御メモリ120内のキャッシュ管理テーブル127を読み、要求されたデータがキャッシュメモリ106上に格納されているか否かを確認し、もし、要求されたデータがキャッシュメモリ106上に格納されていれば、そこからデータを読み出し、要求されたデータがキャッシュメモリ106上に格納されていなければ、サーボ/チャネル制御部128に指示して、シーク処理を行わせ、READ要求1013に応じたデータの読み込み処理を行う。ATA119は、HDD101から読み込んだ映像データをDMAC124を用いて、次々とコンテンツデータ117としてデータメモリ108上に格納する。デコード部109は、CPU115の指示に従って、コンテンツデータ117を読み込み、符号化された映像データを映像信号に変換し、映像出力I/F123を通じて接続されたTV110に出力し、再生を行う。以後、前記の処理が連続的に行われることにより再生が継続される。
【0014】
図11は図10に示すHDD映像プレイヤ103におけるデータの先読み処理の方法を説明する図であり、次に、図11を参照して、従来技術による先読み処理の方法を説明する。図11に示す例は、縦軸の下方に向けて時間が流れているものとして、READ要求に伴う処理の流れを示している。
【0015】
図11において、いま、CPU115がATA119を通じてHDD101に対してREAD要求1013を発行したものとする。また、このREAD要求1013の要求位置が0x301000からサイズ0x03ブロックであるとする。
【0016】
HDD101は、READ要求1013を受け取ると、要求されたブロックの読み込み処理を開始し、まず、HDD101のヘッドを要求位置0x301000へ移動するために必要となるシーク処理を行う。シーク処理1108を終了すると、HDD101は、0x301000の読み込み処理1105、0x301001の読み込み処理1106、0x301002の読み込み処理1107を順に行うことにより、位置0x301000から0x03ブロッック分の読み込み処理を行う。HDD101は、この読み込み処理を終了すると、順次、読み込んだデータを、ATA119を通じて転送する。
【0017】
そして、図10に示すHDD映像プレイヤ103のHDD101は、先読み処理のため0x301002の読み込み処理1107の後、さらに続けて、物理的に続いて保存されている0x301003以降の読み込み処理1109〜1111を実行し、読み込んだデータをキャッシュメモリ106に格納する。これにより、続けてREAD要求1101が発行された際は、再度シーク処理を行うことなく、キャッシュメモリ106からデータを転送することができる。
【0018】
図10に示す従来技術によるHDD映像プレイヤ103は、前述したような先読み処理を実行することにより、データが連続的に配置され、それらのデータに対して連続的にアクセスされる場合に効率的なデータの読み出し処理を実現することができる。
【特許文献1】特開平11−110139号公報
【発明の開示】
【発明が解決しようとする課題】
【0019】
しかし、前述した従来技術は、読み出す対象のデータが物理的に連続的に並んでおり、かつ、読み出す必要のあるデータが連続的にアクセスされる場合でないと、余分なデータを読み込んでしまい効率的なデータの読み込みを行うことができないという問題点を有している。また、一方で、映像データの再生処理においては、いつ、どの映像データが必要とされるのか比較的容易に予測可能であるにもかかわらず、これまでHDDや光ディスク等ではそうした予測が行われていなかった。
【0020】
また、HDDや光ディスク等の円盤型記録媒体を用いるプレイヤは、データの読み出し要求を出してから実際にデータの読み出しが開始されるまでに比較的長いシーク時間が必要であるという問題点をも有している。さらに、そのシーク時間の長さは、HDDや光ディスクのドライブのみが管理するヘッドの位置に依存し、CPU115は、データの読み出しが完了するまでの時間を予め知ることができないために、常に余裕をもってデータを要求する必要があった。
【0021】
すなわち、従来技術の問題点は、HDDや光ディスク等の広く使われている大容量記録媒体を用いるディスク装置において、映像データの再生等の1度データの読み出しを開始した後には、以後のデータの読み出しが時間から容易に予測可能なデータにおいても、シーク時間が必要となる点と、そのシーク時間のためにデータアクセスに必要とされる時間が予測できない場合がある点とである。
【0022】
従って、本発明の目的は、前述したような従来技術の問題点を解決し、見掛け上のデータアクセス時間を短縮し、データアクセスに必要なシステム負荷を軽減することができるようにしたディスク装置及びデータの先読み方法を提供することにある。
【課題を解決するための手段】
【0023】
本発明によれば前記目的は、データを格納する記憶媒体を備えるディスク装置であって、格納データの一部または格納データの全体における各部分に対し、再生時間情報を割り当てて管理する時間テーブル管理手段と、再生時間を刻む再生クロック手段と、前記再生時間情報と、再生クロック手段が刻む再生時間とに基づいて、対応する格納データを、逐次の指示を受けることなく読み出す先読み処理手段とを有することにより達成される。
【0024】
詳細に言えば、本発明は、HDDや光ディスク等のデータアクセスに比較的時間を要する記録媒体のデータを格納するデータブロックに対し、データそのものに加え、タイムスタンプ(時刻情報)を付与・管理する機能と、再生時間を刻むタイマ機能を加え、データ読み出し時に、このタイマとタイムスタンプに基づいて対応するデータブロックを先読みし、アクセスされる前にデータをキャッシュメモリ上に準備、あるいは、自律的に転送・送出することにより、シーク時間に配慮した処理を軽減あるいは不要とすることを特徴とする。
【0025】
そして、本発明は、前述の先読み処理を、シーク時間が予測できない大きな要因となっているヘッドの位置とデータの物理配置情報とを管理するHDDや光ディスク等ドライブ側で行うことにより、データアクセスに必要とされる時間を予測した上で、効率的に先読みを行うことができる。
【発明の効果】
【0026】
本発明によれば、HDDや光ディスク等のデータアクセスに比較的時間を要する記録媒体を用いるディスク装置において、シーク時間等によりデータアクセスに長い時間がかかることを配慮した処理を軽減し、あるいは、不要とすることができる。
【0027】
また、本発明によれば、本発明による先読み処理により、データアクセス時間が短縮されるため、データアクセスに必要なシステム負荷とHDDや光ディスク等の記録媒体のレスポンスタイムを改善することができる。さらに、本発明によれば、データを自律的に転送・送出した場合に、データの転送・送出に必要なシステム負荷を軽減することができる。
【発明を実施するための最良の形態】
【0028】
以下、本発明によるディスク装置及びデータの先読み方法の実施形態を図面により詳細に説明する。
【0029】
図1は本発明の第1の実施形態によるディスク装置を用いたHDD映像プレイヤの構成を示すブロック図である。
【0030】
図1に示す本発明の実施形態によるHDD映像プレイヤは、図10により説明した従来技術と基本的に同一のハードウェア構成を有しており、HDD101のコマンド制御部102内にクロック部107と、AV先読み制御部129とが設けられ、また、HDD101の制御メモリ120内にAVデータ管理テーブル121、再生管理テーブル122が設けられている点、及び、ATA119からHDD101への要求として、AVREAD要求113、AVWRITE要求114が利用される点で、図10により説明した従来技術と相違している。
【0031】
図1に示すHDD映像プレイヤにおいて、クロック部107は、HDD101のコマンド制御部102の中に配置されて、映像データの再生時間を刻む時計である。クロック部107は、例えば、映像の再生に用いるための精度として、27MHzの精度を備えた48bit のカウンタとして実装することができ、HDD101の動作に関係なく常に時間を刻み続ける。
【0032】
AVデータ管理テーブル121は、通常HDD101内のディスク部111に格納され、HDD101への電源投入時に制御メモリ120に読み込まれ、更新時には、HDD101上のAVデータ管理テーブル121と共に更新される管理情報である。そして、このAVデータ管理テーブル121には、HDD101に格納されている映像データの各データブロック部分に対応する時間情報等の情報がブロック範囲毎に格納される。
【0033】
再生管理テーブル122は、HDD101において本発明における時間情報に基づいた先読み処理を管理するテーブルである。
【0034】
AVREAD要求113は、HDD101へ、格納された映像データを時間情報に基づいて先読み処理を行いながら読み出し処理を行うように指示する命令信号である。
【0035】
AVWRITE要求114は、HDD101へ、時間情報を付与しながら映像データを格納することを指示する命令信号である。
【0036】
AV先読み制御部129は、AVREAD要求113とAVWRITE要求114とを解釈し、制御メモリ120上のAVデータ管理テーブル121と再生管理テーブル122とを用いながら、本発明の実施形態に基づく時間情報に基づく先読み処理を実行する機能を実現する制御部である。
【0037】
図2はAVデータ管理テーブル121の構造を示す図である。AVデータ管理テーブル121には、HDD101に格納されている映像データの各データブロック部分に対応する時間情報等の情報がブロック範囲毎に格納されている。図2には、一部のブロック範囲しか示していないが、AVデータ管理テーブル121には、HDD101のディスク部111内に格納される映像データの各データブロック部分に関する情報が格納される。そして、AVデータ管理テーブル121は、「開始ブロック」201、「終了ブロック」202、「ファイルID」203、「タイムスタンプ」204、「フレーム種別」205の各情報により構成されている。なお、「開始ブロック」201、「終了ブロック」202の値は、16進数で表現するものとする。
【0038】
前述において、「開始ブロック」201は、各データブロック範囲の先頭ブロックの番号であり、HDD101中のデータブロックを一意に示す値が格納される。同様に、「終了ブロック」202は、ブロック範囲の最終ブロックの番号が格納される。図示例における行206は、「開始ブロック」が「0x000101」であり、「終了ブロック」が「0x000103」であるデータブロック範囲に関する記述であり、行207は、「開始ブロック」が「0x000106」で、「終了ブロック」が「0x000109」であるデータブロック範囲に関する記述である。以下同様に、行208は、「開始ブロック」が「0x000116」であるものに関する記述であり、行209は、「開始ブロック」が「0x000121」であるものに関する記述であり、行210は「開始ブロック」が「0x000148」であるものに関する記述であり、行211は「開始ブロック」が「0x000170」であるものに関する記述であり、行212は「開始ブロック」が「0x000189」であるものに関する記述である。
【0039】
「ファイルID」203には、そのデータブロック範囲が属する映像データを、HDD101内で一意に識別できる識別子が格納される。一連の映像データであれば同一の値となる。例えば、「開始ブロック」201の値が「0x000101」、「0x000106」、「0x000116」、「0x000121」、「0x000148」である各データブロック範囲の「ファイルID」203の値は「1152」であり、これらは一連の同一映像データの各部分であることを示している。また、「開始ブロック」が「0x000170」、「0x000189」であるデータブロッック範囲の「ファイルID」203の値は「10」であり、これらは「ファイルID」203の値が「1152」となっているデータブロック範囲とは異なる映像データが格納されていることを示している。
【0040】
「タイムスタンプ」204には、各データ範囲が必要となる時間を示す時間情報が格納される。例えば、「開始ブロック」201の値が「0x000101」であるものの「タイムスタンプ」204の値は「00:00:00.00」 であり、再生先頭であることを示す。「開始ブロック」201の値が「0x000106」であるものの「タイムスタンプ」204の値は「00:00:00.50」であり、先頭からの再生開始後0.50 秒後に必要となるデータブロックであることを示す。以後、同様に、「開始ブロック」201の値が「0x000116」であるものの「タイムスタンプ」204の値は「00:00:01.00」 であり、再生先頭より1秒後、「開始ブロック」201の値が「0x000121」であるものの「タイムスタンプ」204の値は「00:00:01.50」 であり、再生先頭より1.5 秒後、「開始ブロック」201の値がが「0x000148」であるものの「タイムスタンプ」204の値は「00:00:02.00」 であり、再生先頭より2.0 秒後、「開始ブロック」201の値が「0x000170」であるものの「タイムスタンプ」204の値は「01:59:30.00」 であり、再生先頭より1時間59分30秒後、「開始ブロック」201の値が「0x000189」であるものの「タイムスタンプ」204の値は「01:59:31.00」 であり、再生先頭より1時間59分31秒後に必要となるデータであることを示す。
【0041】
「フレーム種別」205には、データブロック範囲に格納されている映像データの種別情報が格納される。例えば、「開始ブロック」201の値が「0x000101」であるものの「フレーム種別」は「I」であり、そのデータブロック範囲には映像データ中のIピクチャ情報が格納されていることを示す。同様に「開始ブロック201の値」が「0x000106」であるものの「フレーム種別」は「P」であり、映像データ中のPピクチャ情報が、「開始ブロック」201の値が「0x000121」、「0x000148」であるものの「フレーム種別」は「B」であり、映像データ中のBピクチャ情報が、「開始ブロック」201の値が「0x000170」であるものの「フレーム種別」は「A」であり、映像データ中の音声情報が、「開始ブロック」201の値が「0x000189」であるものの「フレーム種別」は「I」であり、映像データ中のIピクチャ情報が、それぞれ格納されていることを示す。
【0042】
前述において、映像データの種別情報であるI、P、Bのそれぞれは、よく知られているように、Iピクチャはフレーム内符号化画像、Pピクチャはフレーム間順方向予測符号化画像、Bピクチャは双方向予測符号化画像である。
【0043】
図3は再生管理テーブル122の構成を示す図である。再生管理テーブル122は、HDD101において本発明の時間情報に基づいた先読み処理を管理するテーブルである。ここに示す再生管理テーブル122は、1系統の先読み処理を行うために必要な情報の例を示している。そして、再生管理テーブル122は、「ファイルID」302、「必要キャッシュサイズ(KB)」303、「スタート時刻」304、「有効フラグ」305、「再生速度」306、「再生モード」307、「次回リード開始デッドラインタイム」308、「次回リードのディスク上の位置」309、「ポインタ」310の各情報を有して構成されている。
【0044】
「ファイルID」302は、現在行っている先読み処理の対象となる映像データのファイルIDを格納している。列301は、「ファイルID」が「1152」であるものに関する記述である。
【0045】
「必要キャッシュサイズ(KB)」303には、データを読み込むために必要なキャッシュメモリのサイズを格納する。例えば、ここでは「ファイルID」が「1152」であるものの「必要キャッシュサイズ(KB)」は「4096」であり、次にデータを読み込むためには4MBのキャッシュメモリが必要であることを意味している。利用方法については、図7、ステップ709の処理以降で説明する。
【0046】
「スタート時刻」304には、対象となる映像データの先頭の再生が開始された時刻が格納される。例えば、「ファイルID」が「1152」の「スタート時刻」は「04:38:28.30」 であり、4時38分28秒30に再生が開始されたことを示す。ここで示す時刻は絶対時刻ではなく、クロック部107が刻む時刻である。
【0047】
「有効フラグ」305には、当該再生管理テーブル122の記述の有効、無効の区別が記載される。例えば、「ファイルID」が「1152」であるものの「有効フラグ」は「有効」である。「有効フラグ」305は、初期化時等の再生管理テーブル122がクリアされる際には「無効」に設定される。
【0048】
「再生速度」306には、本発明において行われる先読み処理が基準とする再生時間の速さが記載される。例えば、「ファイルID」が「1152」であるものの「再生速度」は「1.0」であり、早送りや巻戻し再生を行う際等、読み込む速度が変わる場合、その速度が指定される。
【0049】
「再生モード」307には、特殊再生に必要な情報が記載される。例えば、「ファイルID」が「1152」であるものの「再生モード」は「なし」であり、通常再生向けに先読み処理を行うように指定している。特殊再生では、映像データのうちIピクチャだけを読み込む等の特殊な読み込み方法を行い、その際、この項目に「Iピクチャのみ再生」等の情報が書き込まれる。
【0050】
「次回リード開始デッドラインタイム」308には、先読み処理において、最も遅い場合のデータ読み込み開始時刻を記載する。例えば、「ファイルID」が「1152」であるものの「次回リード開始デッドラインタイム」は「05:01:02.30」 である。この値は、先読み処理のシーケンスの中で算出され、先読み処理毎に毎回更新される。
【0051】
「次回リードのディスク上の位置」309には、次の先読み処理において読み込むデータが配置されているHDD101上のデータブロックの位置が記載される。例えば、「ファイルID」が「1152」であるものの「次回リードのディスク上の位置」は「0x002100」である。
【0052】
「ポインタ」310は、AVデータ管理テーブル121を早く検索するために、現在再生中の位置を保存するための領域である。この「ポインタ」310は、一時記憶のために用いられ、先読み処理が進むにつれて値は更新される。
【0053】
図4はAVWRITE要求114の内容を説明する図である。AVWRITE要求114は、本発明を摘要したHDD101に対し、映像データとタイムスタンプとを関連付けて保存するように指示するためのATA拡張命令である。HDD101には、AVWRITE要求114と共にコンテンツデータ117が与えられ、コンテンツデータをディスク部111に格納するように指示される。AVWRITE要求114は、「ATAコマンドID」402、「書込開始ブロック番号」403、「書込ブロック数」404、「タイムスタンプ」405、「ファイルID」406、「フレーム種別」407の各情報を有して構成されている。
【0054】
「ATAコマンドID」402は、ATAコマンドの発行時に利用される識別子であり、列401では「ATAコマンドID」として「AVWRITE」に対応した値を用いることを示している。
【0055】
「書込開始ブロック番号」403は、この1回のAVWRITE命令によって書込まれる映像データを記録するHDD101内のディスク部111の中のデータブロックの番号を示す。例えば、列401では「書込開始ブロック番号」は「0x000100」である。
【0056】
「書込ブロック数」404は、このAVWRITE命令によって書込む映像データのデータブロック数である。例えば、列401では「書込ブロック数」は「0x10」である。
【0057】
「タイムスタンプ」405は、このデータブロック範囲を利用する時間情報を示す。例えば、列401の「タイムスタンプ」の値は「01:20:19.012」であり、映像データの再生を先頭から開始した後、1時間20分19秒012後に、当該データブロックが必要とされることを示す。
【0058】
「ファイルID」406には、このAVWRITE命令によって書込まれる映像データの識別子が記載される。例えば、列401の「ファイルID」は「1152」である。この値は、HDD101内で一意であり、一連の同一映像データであれば、同一の値が指定される。
【0059】
「フレーム種別」407には、このAVWRITE命令によって書込まれる映像データの種別が記載される。例えば、列401の「フレーム種別」には、映像データ中のIピクチャ情報であることを示す「I」が指定されている。
【0060】
図5はAVWRITE命令の処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する例は、本発明のHDD101において、映像データをタイムスタンプと結びつけて格納する際の処理動作の例である。この処理動作は、HDD101がAVWRITE要求114を受け取った際、AVWRITE要求114と共に与えられたコンテンツデータをデータ領域112に格納し終えた後、あるいは、格納中に、コマンド制御部102が実行する処理である。
【0061】
(1)AVWRITE処理が開始されると、まず、AVWRITE要求114の中の書込開始ブロック番号403と書込ブロック数404とにより示されるブロック範囲が、AVデータ管理テーブル121の中のいずれかの項目の開始ブロック201と終了ブロック202とで示されるブロック範囲と重なる範囲があるか否かを調べ、AVデータ管理テーブル121上にAVWRITE要求と重なる範囲が合った項目が見つかれば、AVデータ管理テーブル121から該当情報を削除する(ステップ501、502)。
【0062】
(2)ステップ501の調べで、AVデータ管理テーブル121上にAVWRITE要求と重なる範囲があった項目が見つからなかった場合、あるいは、ステップ502の処理の後、AVデータ管理テーブル121の中の同一ファイルID203、同一タイムスタンプ204を持つ行の中に、今回のAVWRITE要求のブロック範囲と隣接する項目があるか否かを調べ、もし、あった場合、見つかった行のブロック範囲に今回のAVWRITE要求のブロック範囲を追加して、ここでの処理を終了する(ステップ503、504)。
【0063】
(3)ステップ503の調べで、AVデータ管理テーブル121の中の同一ファイルID203、同一タイムスタンプ204の行の中に、今回のAVWRITE要求のブロック範囲と隣接する項目がなかった場合、AVデータ管理テーブル121に新規行を追加し、今回のAVWRITE要求114中の各項目を格納して、ここでの処理を終了する。このとき、開始ブロック201には書込開始ブロック番号403をそのまま格納し、終了ブロック202には書込開始ブロック番号403と書込ブロック数404との和を格納する。ファイルID203、タイムスタンプ204、フレーム種別205には、それぞれ、ファイルID406、タイムスタンプ405、フレーム種別407をそのまま格納する(ステップ505)。
【0064】
前述した処理により、HDD101に映像データをタイムスタンプと結びつけて格納することができる。ところで、更新されたAVデータ管理テーブル121は、HDD映像プレイヤ103の電源が切断され、HDD101の電源が切断されると失われるため、AVデータ管理テーブル121が更新された際には、データ領域112への書き込みに対して障害とならない頻度で、ディスク部111上にコピーしておく。
【0065】
図6はAVREAD要求113の内容を説明する図である。AVREAD要求113は、本発明を摘要したHDD101に対し、読み込み処理の実行を指示すると共に、以後、時間情報に基づいて順次、映像データの先読み処理を行うように指示するための、ATA拡張命令である。AVREAD要求113は、「ATAコマンドID」602、「読込開始ブロック番号」603、「読込ブロック数」604、「再生速度」605、「再生モード」606の各情報を有して構成されている。
【0066】
「ATAコマンドID」602は、ATAコマンドの発行時に利用される識別子であり、ATAコマンドID402とは異なり、列601では「ATAコマンドID」が「AVREAD」に対応した値を用いることを示している。
【0067】
「読み込み開始ブロック番号」603には、このAVREAD要求113によって読み込みが指示される映像データのデータブロックの開始ブロックの番号が入る。例えば、列601では「読み込み開始ブロック番号」は「0x000100」である。
【0068】
「読み込みブロック数」604には、読み込みが指示される映像データのデータブロックのブロック数が与えられる。例えば、列601では「読み込みブロック数」は「0x10」である。
【0069】
「再生速度」605には、AVREAD要求113以後に行われる読み込み処理が基準とする時間の速さが記載される。例えば、列601では「再生速度」は「1.00」である。早送りや巻戻し再生を行う際等、読み込む速度が変わる場合、その速度が指定される。
【0070】
「再生モード」606には、特殊再生に必要な情報が記載される。例えば、列601では「再生モード」は「通常」であり、通常再生向けに以後先読み処理を行うよう指示している。特殊再生では、映像データのうちIピクチャだけを読み込む等の特殊な読み込み方法を行うが、説明している実施形態における通常再生の応用に過ぎないので、ここでは説明を省略する。
【0071】
図7はAVREADの処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明するフローは、HDD101がAVREAD要求113を受け取った際に実行される。すなわち、ここでの処理は、HDD映像プレイヤ103において、CPU115が、プレイヤプログラム104に従って映像データの再生を開始する際、ATA119を通じて以後映像データの再生を行う旨通知するAVREAD要求113をHDD101に送った際に実行される処理である。
【0072】
(1)AVREAD処理が開始されると、まず、受け取ったAVREAD要求113より前に既に別の映像データの再生処理を行っているか否かの確認を行う。この確認の処理は、再生管理テーブル122の有効フラグ305を確認し、有効なエントリがあるか否かにより調べることにより行う。もし、再生管理テーブル122に有効エントリがあれば、再生管理テーブル122をクリアして、先に行われていた本発明による先読み処理を中断する(ステップ701、702)。
【0073】
(2)ステップ701の確認で、再生管理テーブル122の有効フラグ305に有効エントリなかった場合、あるいは、ステップ702の処理の後、再生管理テーブル122にAVREAD要求113の情報を登録し、本発明による先読み処理を開始させる。このため、まず、AVREAD要求113中の読み込み開始ブロック番号603と読み込みブロック数604とを元に、AVデータ管理テーブル121を検索し、対応する行を探す。一致する行が見つからなければそのままステップ704へ進み、一致する行が見つかった場合、その行のファイルID203、タイムスタンプ204、その行が格納されている制御メモリ120のアドレスを取り出す。ファイルID203とアドレスとを、再生管理テーブル122の中のファイルID302とポインタ310とに格納する。再生速度306と再生モード307とには、AVREAD要求113の中の再生速度605と再生モード606とを格納する。その後、再生管理テーブル122の有効フラグ305を有効にする。必要キャッシュサイズ(KB)303、次回リード開始デッドラインタイム308、次回リードのディスク上の位置309はそのままでよい(ステップ703)。
【0074】
(3)次に、キャッシュメモリ106の中にAVREAD要求113で要求されたデータがあるか否かを調べ、キャッシュメモリ106に要求されたデータがあった場合、キャッシュメモリ106の中のデータを返す処理を行う(ステップ704、705)。
【0075】
(4)ステップ704の調べで、キャッシュメモリ106の中にAVREAD要求113で要求されたデータがなかった場合、通常のアクセスと同様にシーク処理を行い、ディスクから読み込んだデータを返す処理を行う(ステップ706、707)。
【0076】
(5)ステップ705あるいはステップ707でデータを返した後、AVデータ管理テーブル121を参照し次回のリード情報を検索する。そして、次回のリード処理のデータリード開始時刻のデッドラインを算出し、読み込みブロックの位置と共に再生管理テーブル122に書込む。その際、読み込む必要のあるデータのブロック数に対応して、読み込む必要のあるデータのサイズを計算し、必要キャッシュサイズ(KB)303に書込む処理を行った後、ここでの処理を終了する(ステップ708、709)。
【0077】
前述したAVREAD要求113の処理によって、再生管理テーブル122に有効フラグ305が有効となったエントリが書込まれると、HDD101は、アイドル時に次に説明する手順で先読み処理を開始する。なお、以下に説明する処理については、図示を省略している。
【0078】
(1)まず、再生管理テーブル122の必要キャッシュサイズ(KB)303を確認し、キャッシュメモリ106上に必要な領域を確保する。次に、ポインタ310に格納されたAVデータ管理テーブル121の中のデータのアドレスの指す先を参照し、開始ブロック201に対するシーク処理を行う。
【0079】
(2)シーク処理の完了後、終了ブロック202までデータの先読み処理を行い、読み込んだデータは先に確保したキャッシュメモリ106上の領域に保存する。これにより、CPU115がプレイヤプログラム104に従って、映像データの再生を継続するために、ATA119を通じてHDD101に続くデータの読み込みを要求すると、既にキャッシュメモリ106上に対応するデータが読み込まれているため、ATA109は、シーク処理を待つことなく、即座にデータを受けとることができる。
【0080】
前述した処理において、前述の各ステップの処理の途中であっても、HDD101は、ATAI/F118を通じたATAコマンドによる通常の読み書き要求を受け付けて、その要求による処理を行う。
【0081】
図8はATAコマンドによる通常の読み書き要求を受け取った際の処理動作を説明するフローチャートであり、次に、これについて説明する。なお、ここでの通常の読み書き要求とは、例えば、テキストデータ等に対する読み書き要求である。ここで説明する処理は、HDD101がATAI/F118を通じて、AVREAD要求113やAVWRITE要求114等の映像データの読み書きとは異なる通常の読み書き手段によって、読み書き要求を受信した場合に実行される。
【0082】
(1)この処理が開始されると、まず、再生管理テーブル122に有効フラグ305が有効となったエントリがあるか否かを調べる。この処理により、HDD101は、本発明による先読み処理を行っている最中か否かを判断する。この判断の結果、先読み処理中でなかった場合、通常の読み書き処理を実行して、ここでの処理を終了する(ステップ801、808)。
【0083】
(2)ステップ801の調べで、再生管理テーブル122に有効フラグ305が有効となったエントリがあった場合、先読み処理中であるため、通常の読み書き処理に必要なシーク時間と読み書き処理時間とを計算する。必要なシーク時間は、現在、コマンド制御部102がサーボ/チャネル制御部128を通じて管理しているデータの物理配置情報から受け取った読み書き要求を実行するためのヘッダの位置を求めて、現在の読み取りヘッダの位置との間の距離を計算し、シーク処理に必要な時間を算出することができ、さらに、次回リードのディスク上の位置309に示されたデータの読み取り位置との距離から、読み書き要求の実行後に必要なシーク処理に必要な時間も算出し、これらの和を求めることにより算出する。さらに、読み書き要求に含まれるデータブロックの数と、データブロックの位置から読み書き処理時間も合わせて算出する(ステップ802)。
【0084】
(3)次に、ステップ802の処理で求めた((シーク時間)+(読み書き処理時間))と((次回リード開始デッドラインタイム308)−(クロック部107から得られる現在時刻))とを比較して、受け取った読み書き要求を実行しても、次回リード開始デッドラインタイム308を守れるか否かを判定する。この判定の結果、もし、デッドラインを守れる範囲であれば、通常の読み書き処理を実行して、ここでの処理を終了する(ステップ803、804)。
【0085】
(4)ステップ803の判定で、受け取った読み書き要求を実行すると、次回リード開始デッドラインタイム308を守れなかった場合、受け取った読み書き要求の内、一部の実行に限定すれば、次回リード開始デッドラインタイム308を守れるか否かを調べる。この調べの処理は、例えば、単純に、1回のシーク処理だけで、受け取った読み書き処理を実行できる場合に、受け取った読み書き要求の実行に利用できる時間を、
(受け取った読み書き要求の実行に利用できる時間)
=((次回リード開始デッドラインタイム308)−(クロック部107から得 られる現在時刻)−(シーク時間)−(若干のマージン時間))
…………(1)
として求め、この式(1)を用いて求めた時間が正の値であれば、一部の実行に限定すれば、次回リード開始デッドラインタイムを守ることができると判断する処理である(ステップ805)。
【0086】
(5)ステップ805の調べで、一部の実行に限定すれば、次回リード開始デッドラインタイムを守ることができると判断された場合、式(1)で得られた時間で実行可能なサイズの読み書きを実行し、実行結果をキャッシュメモリ106に格納し、続きは、先読み処理の後で行うこととして、ここでの処理を終了する(ステップ806)。
【0087】
(6)ステップ805の調べで、一部の実行に限定しても、次回リード開始デッドラインタイムを守ることができないと判断された場合、映像データの先読み処理後に、再度通常の読み書き処理を実行することとして、ここでの処理を終了する(ステップ807)。
【0088】
前述した処理で説明したように、本発明は、データの読み書きを行うヘッドの位置と、データの読み書きに必要となる時間の、HDDや光ディスク等のドライブでなければ知り得ない情報を元にして先読み処理を行っている。データの読み書きに必要となる時間は、データを記録する論理的なブロックの位置と物理的な配置との関係に依存する。連続するデータが連続して配置されていない場合には、データの読み書きに必要となる時間は長くなる。これらの判断を行うことができるのはコマンド制御部102及びサーボ/チャネル制御部128のみである。
【0089】
以上、本発明の第1の実施形態について説明したが、本発明は、前述した実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【0090】
また、前述した本発明の実施形態においては、映像データを格納するHDDに対する適用例を示したが、映像データでなくても、時間情報と結びついた連続的なデータであれば本発明を適用することが可能である。また、本発明は、HDDの代わりにフラッシュメモリや可搬型HDD、光ディスク等の記録媒体であっても、より高速なキャッシュメモリと組み合わせて利用することにより効果を得ることができる。
【0091】
また、前述した本発明の実施形態において、再生管理テーブル122は、時間情報に基づいて行う先読み処理を、同時に1本しか管理しておらず、図8等に示して説明した処理においても、1本分しか考慮していないが、本発明は、同様の方法を使用して複数本同時に管理し、子画面等に別の映像を表示する場合等に並行して先読み処理を行うようにすることができる。このような並行した先読み処理は、子画面等に別の映像を表示する場合やネットワーク配信のため等に利用することができる。
【0092】
また、前述した本発明の実施形態は、図7に示して説明したAVREAD要求113の処理によって、再生管理テーブル122に有効フラグ305が有効となったエントリが書込まれた後の処理の1つとして、先読み処理を行い、読み込んだデータを単に、キャッシュメモリ106上の領域に保存することとしているが、CPU115の指示に基づいて、ATA119が内蔵するDMAC124を利用し、直接データメモリ108へデータを転送してもよい。また、その場合、データメモリ108の状態に合わせ、自律的に転送を継続することや、転送速度を調整することができる。
【0093】
また、前述した本発明の実施形態は、AVREAD要求113を契機として時間情報に基づいた先読み処理を行っているが、本発明は、通常の読み込み命令や書き込み命令を契機として先読み処理を開始するようにすることもできる。また、本発明は、AVREAD要求113のようにデータの読み込みを指示する命令を兼ねたATA拡張コマンドでなくても、先読み処理を指示ことのみを実行するATA拡張コマンドによって、先読み処理を開始するようにすることもできる。
【0094】
また、前述した本発明の実施形態は、図7に示して説明したAVREAD要求113の処理によって、再生管理テーブル122に有効フラグ305が有効となったエントリが書込まれた後の処理の1つとして、CPU115がプレイヤプログラム104に従って、映像データの再生を継続するために、ATA119を通じてHDD101に続くデータの読み込みが要求されると、既にキャッシュメモリ106上に対応するデータを返すとしているが、本発明は、CPU115が実行するデータの読み込み処理が行われる時刻が、予定した時刻より早いか、あるいは遅いかを測定し、CPU115及びデコード部109が再生するために利用しているクロック部と、HDD101が備えるクロック部107との時間を同期するよう拡張することもできる。これにより、長時間の映像データを乱さずに再生し続けることができるようになる。
【0095】
また、前述した本発明の実施形態は、HDD101がアイドル時に先読み処理を開始しているが、本発明は、次回リード開始デッドラインタイム308を活用し、なるべく先読み処理を遅延させるようにすることにより、キャッシュメモリ106をなるべく広く空けることができるように制御することもできる。
【0096】
図9は本発明の第2の実施形態によるディスク装置を用いたHDD映像プレイヤの構成を示すブロック図である。図9に示す本発明の第2の実施形態は、専用I/F付きHDDを用いたHDD映像プレイヤの例である。
【0097】
図9に示す本発明の第2の実施形態は、HDD101内にAVバス902を介してデコード部109と接続されたAVI/F901を設けた点、及び、HDD101内のコマンド制御部102における第1の実施形態でのAV先読み制御部129に代わってAV転送制御部130とした点で、第1の実施形態とその構成が相違している。AVI/F901は、HDD101の内部で、コマンド制御部102及びキャッシュメモリ106と接続され、HDD101の外部ではAVバス902を通じてデコード部109と接続されるインタフェース部である。AVバス902は、AVI/F901とデコード部109を結び、HDD101内に記録された映像データを伝送する映像や音声のストリームデータを専用に伝送するインタフェースである。
【0098】
本発明の第2の実施形態は、HDD101に格納されたデータの内、デコード部109が処理する映像データを、ATA119やバス126を経ることなく、AVI/F901とAVバス902を介して、直接デコード部109へ送出するようにしたものである。
【0099】
そして、本発明の第2の実施形態は、第1の実施形態の場合と同様にアイドル時にデータの読み出しを行うが、アイドル時に先読み、あるいは、DMA転送を行う代わりに、コマンド制御部102のAV転送制御部130がAVI/F901に指示して、キャッシュメモリ106上のコンテンツデータ116を、AVバス902を通じて直接デコード部109へ送信する。デコード部109は、受信したコンテンツデータ116を映像信号に変換し、映像出力I/F123を通じてTV110へ映像を出力する。
【0100】
本発明の第2の実施形態は、前述により、第1の実施形態で必要であったデータメモリ108をなくすことができる。
【0101】
前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
【図面の簡単な説明】
【0102】
【図1】本発明の第1の実施形態によるディスク装置を用いたHDD映像プレイヤの構成を示すブロック図である。
【図2】AVデータ管理テーブルの構造を示す図である。
【図3】再生管理テーブルの構成を示す図である。
【図4】AVWRITE要求の内容を説明する図である。
【図5】AVWRITE命令の処理動作を説明するフローチャートである。
【図6】AVREAD要求の内容を説明する図である。
【図7】AVREADの処理動作を説明するフローチャートである。
【図8】ATAコマンドによる通常の読み書き要求を受け取った際の処理動作を説明するフローチャートである。
【図9】本発明の第2の実施形態によるディスク装置を用いたHDD映像プレイヤの構成を示すブロック図である。
【図10】HDD内の映像データの再生時に先読みを行う従来技術によるHDD映像プレイヤの構成を示すブロック図である。
【図11】図10に示すHDD映像プレイヤでの先読み処理の方法を説明する図である。
【符号の説明】
【0103】
101 HDD
102 コマンド制御部
103 HDD映像プレイヤ
104 プレイヤプログラム
105 ファイルシステム
106 キャッシュメモリ
107 クロック部
108 データメモリ
109 デコード部
110 TV
111 ディスク部
112 データ領域
113 AVREAD要求
114 AVWRITE要求
115 CPU
116、117 コンテンツデータ
118 ATAI/F
119 ATA
120 制御メモリ
121 AVデータ管理テーブル
122 再生管理テーブル
123 映像出力I/F
124 DMAC
125 プログラムメモリ
126 バス
127 キャッシュ管理テーブル
128 サーボ/チャネル制御部
129 AV先読み制御部
130 AV転送制御部
901 AVI/F
902 AVバス

【特許請求の範囲】
【請求項1】
データを格納する記憶媒体を備えるディスク装置であって、
格納データの一部または格納データの全体における各部分に対し、再生時間情報を割り当てて管理する時間テーブル管理手段と、
再生時間を刻む再生クロック手段と、
前記再生時間情報と、再生クロック手段が刻む再生時間とに基づいて、対応する格納データを、逐次の指示を受けることなく読み出す先読み処理手段と
を有することを特徴とするディスク装置。
【請求項2】
データを格納する記憶媒体を備えるディスク装置であって、
格納データの一部または格納データの全体における各部分に対し、再生時間情報を割り当てて管理する時間テーブル管理手段と、
再生時間を刻む再生クロック手段と、
前記再生時間情報と、再生クロック手段が刻む再生時間とに基づいて、対応する格納データを、指定の記憶領域へ転送する転送処理手段と
を有することを特徴とするディスク装置。
【請求項3】
データを格納する記憶媒体を備えるディスク装置であって、
格納データの一部または格納データの全体における各部分に対し、再生時間情報を割り当てて管理する時間テーブル管理手段と、
再生時間を刻む再生クロック手段と、
格納データを読み書きするための第1の入出力インタフェース手段と、
映像や音声のストリームデータを入出力するための第2のインタフェース手段と、
前記再生時間情報と、再生クロック手段が刻む再生時間とに基づいて、対応する格納データを第2のインタフェース手段より送出するデータ送出処理手段と
を有することを特徴とするディスク装置。
【請求項4】
データを格納する記憶媒体を備えるディスク装置におけるデータの先読み方法であって、
前記記憶媒体に格納したデータの各部分に対して再生時間情報を割当てて管理し、
当該データ部分が読み出されたことを契機として再生時間を刻み始め、
前記再生時間に対応する格納データを、順次、記憶媒体より読み出すことを特徴とするデータ先読み方法。
【請求項5】
データを格納する記憶媒体を備えるディスク装置におけるデータの先読み方法であって、
前記記憶媒体に格納したデータの各部分に対して再生時間情報を割当てて管理し、
当該データ部分が読み出されたことを契機として再生時間を刻み始め、
前記再生時間に対応する格納データを順次、記憶媒体より読み出して、キャッシュメモリ上に格納し、
以降のアクセスによるデータの読み出しをキャッシュメモリから行うことを特徴とするデータ先読み方法。
【請求項6】
データを格納する記憶媒体を備えるディスク装置におけるデータの先読み方法であって、
前記記憶媒体に格納したデータの各部分に対して再生時間情報を割当てて管理し、
当該データ部分が読み出されたことを契機として再生時間を刻み始め、
前記再生時間に対応する格納データを順次、記憶媒体より読み出して、指定されたメモリ領域へ転送していくことを特徴とするデータ先読み方法。
【請求項7】
データを格納する記憶媒体を備えるディスク装置におけるデータの先読み方法であって、
前記記憶媒体に格納したデータの各部分に対して再生時間情報を割当てて管理し、
当該データ部分が読み出されたことを契機として再生時間を刻み始め、
前記再生時間に対応する格納データを順次、記憶媒体より読み出し、
映像、音声のストリームデータを専用に入出力するためインタフェースから送信することを特徴とするデータ先読み方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2009−87487(P2009−87487A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−257569(P2007−257569)
【出願日】平成19年10月1日(2007.10.1)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】