(57)【要約】【課題】ストレージデバイスを備えるデジタル機器において、デジタル放送のＷ録画や録画再生同時処理など、複数のストリームを同時に扱う場合に、ストレージデバイスに対するストリームデータのＩ／Ｏ処理負荷が大きくなる。【解決手段】ストリームデータを含むデータを格納するためのデータ格納部１０３と、様々なデータや制御コマンドを入出力するためのホストＩ／Ｆ部１０２と、データを一時的にバッファリングするためのバッファメモリ１０４と、クロックカウンタ値を管理するためのクロック管理部１０５と、ホスト手段から与えられる再生指示（方向（順方向、逆方向）、速度（ｎ倍速）、再生時間（場所）等）等の各種コマンドを解釈したり、入力されたクロック同期信号を元にクロックカウンタ値を修正したり、ストリームデータをデータ格納部から読出し、それをクロックカウンタ値を参照しながら自律的にホスト手段に転送したりする制御部１１０を有することを特徴とする。【選択図】図１
2009118086.tif 000002
【特許請求の範囲】
【請求項１】
ホスト手段とインターフェイス手段を介して接続されるストレージ装置であって、
ストリームデータを含むデータを格納するデータ格納手段と、
前記ホスト手段と前記データ格納手段の間を転送するデータを一時的にバッファリングするためのバッファメモリと、
データ格納手段からデータを読み出すクロックを生成し、その生成したクロックをカウントするカウンタ値を管理するクロック管理手段と、
前記データ格納手段でのデータ格納を制御する制御手段とを有し、
前記制御手段は、
前記データ格納手段におけるストリームデータの格納場所を管理するストリーム配置管理手段と、
前記データ格納手段に格納されたデータの転送順序を制御して最適なデータ転送スケジュールを決定するスケジュール手段と、
前記ホスト手段から与えられるコマンドを解釈するコマンド処理手段と、
入力されたクロック同期信号を元に、前記クロック管理手段に対してクロックカウンタ値の修正を指示するクロック同期手段を有することを特徴とする、ストレージ装置。
【請求項２】
前記制御手段は、前記ホスト手段からクロック同期信号が入力されると、前記クロック管理手段に対してクロックカウンタ値の修正を指示することを特徴とする、請求項１記載のストレージ装置。
【請求項３】
前記インターフェイス手段として、
前記ホスト手段に対し映像又は音声のストリームデータを入出力するための第１のインターフェイス手段と、
前記ホスト手段に対し非ストリームデータを入出力するための第２のインターフェイス手段とを備え、
前記クロック同期手段は、前記第１のインターフェイス手段でストリームデータを入出力させる際に、クロックカウンタ値の修正を指示することを特徴とする、請求項１又は２記載のストレージ装置。
【請求項４】
前記クロック同期手段でのクロックカウンタ値の修正は、送信データ位置と送信データ量の少なくとも何れか一方と、クロックカウンタ値との対応表に基いて行うことを特徴とする、請求項１〜３のいずれか１項に記載のストレージ装置。
【請求項５】
ホスト手段とインターフェイス手段を介して接続され、ストリームデータを含むデータを格納するデータ格納手段を備えるストレージ装置でのクロック管理方法において、
前記データ格納手段に格納されたデータの転送順序を制御して最適なデータ転送スケジュールを決定するスケジュール決定処理と、
前記ホスト手段側から入力されたクロック同期信号を元に、前記データ格納手段からデータを読み出すクロックのカウンタ値の修正を指示するクロック同期処理を行うことを特徴とする、クロック管理方法。
【請求項６】
前記ホスト手段からクロック同期信号が入力されると、クロックカウンタ値の修正を指示することを特徴とする、請求項５記載のクロック管理方法。
【請求項７】
前記クロック同期手段でのクロックカウンタ値の修正は、送信データ位置と送信データ量の少なくとも何れか一方と、クロックカウンタ値との対応表に基いて行うことを特徴とする、請求項６又は７に記載のクロック管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクレコーダや音楽プレーヤなどのコンシューマ向けデジタル機器に適用して好適なストレージ装置及びクロック管理方法に関し、特に、映像や音楽等のストリームデータを記録するハードディスクやフラッシュメモリ等のストレージ装置に適用される技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータ装置（ＰＣ：Personal Computer）に接続又は内蔵される周辺機器として、ＯＳ（Operating System）やアプリケーションプログラム、ユーザ作成のテキストデータ等を格納するストレージデバイスとしてハードディスクドライブ装置（ＨＤＤ：Hard Disk Drive）が普及している。このハードディスクドライブ装置は、記憶容量の増大や低コスト化に伴って、映像や音声といったストリームデータの格納手段としても使用されるようになっている。例えば、放送信号などを受信して蓄積するＨＤＤレコーダやＳＴＢ（Set Top Box）、レコーダ一体型のビデオカメラ装置（いわゆるカムコーダ）等の様々なコンシューマ向けデジタル機器で用いられるようになってきている。
【０００３】
ここで図７を用いて、ＨＤＤの適用が急速に進行したデジタル機器であるＨＤＤレコーダ９００の構成及び動作を説明する。
ＨＤＤレコーダ９００は、アンテナなどと接続される放送波入力端子９０１を備えて、その入力端子９０１をデジタルチューナ９０２に接続し、デジタルチューナ９０２でデジタル放送信号の受信を行う。受信したデジタル放送信号は、デマルチプレクス９０３でスクランブルの解除処理を行った後、ストリームフィルタ９０４で必要なコンテンツのデータを抽出し、抽出されたデータをＡ／Ｖ（Audio/Video）デコーダ９０５に供給する。
Ａ／Ｖデコーダ９０５では、デジタル映像信号やデジタル音声信号の復調処理を行う。復調した映像信号及び音声信号は、出力端子９０８に接続された表示装置やスピーカに供給して、映像の表示処理や音声の出力処理が行われる。
また、受信してストリームフィルタ９０４で抽出されたコンテンツのデータを、後述するハードディスクドライブ装置（以下ＨＤＤと称する）９１４側に送って、ＨＤＤ９１４に蓄積させることができる。さらに、そのＨＤＤ９１４に蓄積されたコンテンツのデータを読み出して、ストリームフィルタ９０４からＡ／Ｖデコーダ９０５側に送り、蓄積されたコンテンツの再生が行える。ストリームフィルタ９０４では、これらのストリームデータの処理を行う際に、ストリームデータのフローを制御する処理が行われる。
【０００４】
これらのデジタルチューナ９０２，デマルチプレクス９０３，ストリームフィルタＡ／Ｖデコーダ９０４は、汎用バス９１０を介してホストＣＰＵ（Central Processing Unit）９１１及びメモリ９１２が接続してある。ホストＣＰＵ９１１は、ＨＤＤ９１４とのＩ／Ｏ（Input/Output）動作やメモリ９１２の使用リソース等を制御・管理するＯＳや、ビューワやＧＵＩ（Graphic User Interface）等のアプリケーションプログラムを実行するマイクロプロセッサであり、ホスト手段として機能する。メモリ９１２はＯＳやアプリケーションプログラムのワークメモリ、各種データのバッファメモリとして使用される。ホストＣＰＵ９１１などが必要なクロックは、クロック発生器９１５で生成されたクロックを使用する。
【０００５】
また、汎用バス９１０には、ＡＴＡ（Advanced Technology Attachment）インターフェイス（ＡＴＡ  Ｉ／Ｆ）９１３を介してＨＤＤ９１４が接続してある。このＨＤＤ９１４は、映像信号や音声信号などのストリームデータの蓄積や、その他のＨＤＤレコーダ９００内で必要な各種データの蓄積を行うデータ格納手段である。
【０００６】
ＨＤＤレコーダ９００において、アンテナで受信したデジタル放送コンテンツの視聴は、以下のように実現される。デジタルチューナ９０２から出力されたＴＳ（Transport Stream）のスクランブルをデマルチプレクス９０３で解除し、次にストリームフィルタ９０４で目的の番組コンテンツやサービスを選択、その後Ａ／Ｖデコーダ９０５へ転送する。そしてＡ／Ｖデコーダ９０５では、ＴＳとして受け取った映像や音声の圧縮デジタルデータを、一旦メＡ／Ｖデコーダ９０５内に確保されたデコード用のバッファメモリ９０７上に格納する。圧縮デジタルデータ内には、どのタイミングでデコードや再生を行うべきかを示す、時間情報（タイムスタンプ）が埋め込まれており、Ａ／Ｖデコーダ９０５は、タイムスタンプのタイミングに従って順次バッファメモリ９０７からデータを読み出し、各種エンコード方式、例えばＭＰＥＧ（Moving Picture Expert Group）−２やＭＰＥＧ−４、ＡＡＣ（Advanced Audio Coding）に従ったデコード処理を行い、表示装置やスピーカへの出力を行う。Ａ／Ｖデコーダ９０５でバッファメモリ９０７からデータを読み出す際には、Ａ／Ｖデコーダ９０５に用意されたクロック発生器９０６から供給されるクロックを使用する。
【０００７】
また、デジタルチューナ９０２で受信したデジタル放送コンテンツを録画するには、ホストＣＰＵ９１１が主体となって、ストリームフィルタ９０４から出力されたＴＳを汎用バス９１０を経由して一旦メモリ９１２にバッファする。その後、ストリームデータは所定の量がバッファされるとホストＣＰＵ９１１によってメモリ９１２から読出され、ＡＴＡ  Ｉ／Ｆ９１３を介してＨＤＤ９１４に蓄積する。
一方、蓄積したストリームデータを再生するには、ホストＣＰＵ３０３が主体となってＨＤＤ９１４から所望のストリームデータを順次ＡＴＡ  Ｉ／Ｆ９１３を介して読出し、メモリ９１２を経由してストリームフィルタ９０４からＡ／Ｖデコーダ９０５に転送する。そして、Ａ／Ｖデコーダ９０５は、チューナ９０２で受信したデジタル放送コンテンツの視聴と同様に、ストリームデータ内のタイムスタンプに従ってバッファメモリからデータを読み出し、デコード処理や出力処理を行う。
【０００８】
ここで、ＨＤＤレコーダ９００において、再生時に映像や音声の乱れが起きないように、Ａ／Ｖデコーダ９０５内のバッファメモリ９０７のアンダーフローやオーバフローを防ぐ仕組みが必要となる。例えば、放送局が配信している放送コンテンツをアンテナで受信して再生する場合を考える。放送局やＡ／Ｖデコーダ９０５には、一定時間間隔刻みでカウントアップされるクロックカウンタと呼ばれる内部時計が備わっており、放送局がストリームデータに埋め込むタイムスタンプを作成する時や、Ａ／Ｖデコーダ９０５がデコードや出力を行う時に、それぞれ自身のクロックカウンタ値を参照する。Ａ／Ｖデコーダ９０５の場合には、図７に示したクロック発生器９０６がクロックをカウントする。
ここで、放送局のクロックカウンタ値の刻み間隔と、Ａ／Ｖデコーダ９０５のクロックカウンタ値の刻み間隔が完全に一致しないため、放送局がストリームデータを配信するペースとＡ／Ｖデコーダ９０５がストリームデータを出力するペースのずれが蓄積し、アンダーフローやオーバフローを引き起こしてしまう。そのため、放送局は、ストリームデータと共に、クロック同期用の同期信号を定期的に送信し、Ａ／Ｖデコーダ９０５内のクロックカウンタ値を放送局のクロックカウンタ値に修正させることで、上記問題を解決している。
【０００９】
特許文献１には、タイムスタンプに依存してストリームデータの記録や再生を制御する技術についての記載がある。
【特許文献１】特開２００７−１５１１４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
一方、蓄積したストリームデータを再生する場合においても、ホストＣＰＵ９１１が参照するクロックカウンタ値の刻み間隔と、Ａ／Ｖデコーダ９０５が参照するクロックカウンタ値の刻み間隔が完全に一致しないため、ホストＣＰＵ９１１がストリームデータをＨＤＤ９１４から読み出してＡ／Ｖデコーダ９０５に送信するペースと、Ａ／Ｖデコーダ９０５がストリームデータを出力するペースのずれが蓄積し、アンダーフローやオーバフローが生じてしまう。その解決策として、ホストＣＰＵ９１１が、放送局と同様に、ストリームデータと共にクロック同期用の同期信号をＡ／Ｖデコーダ９０５に送信する処理方法か、または、ホストＣＰＵ９１１がＡ／Ｖデコーダ９０５のバッファメモリ９０７の空き状況を常に監視し、ストリームデータをＨＤＤ９１４から読み出すタイミングを調整する処理方法が用いられる。
【００１１】
ところが、前者の解決策を用いる場合、Ａ／Ｖデコーダ９０５のクロックカウンタ値は、放送局ではなく、ホストＣＰＵ９１１にクロックを供給するクロック発生器９１５のクロックカウンタ値と同期するため、ホストＣＰＵ９１１のクロック精度が悪ければ悪いほど、本来放送局が意図した再生時間と異なってしまう。例えば、６０分のコンテンツが５９分で再生されるような事態が発生する。
これを防ぐためには、放送局からのクロック同期信号を利用して、ホストＣＰＵ９１１のクロックカウンタ値を放送局のクロックカウンタ値と同期させながら、かつ、Ａ／Ｖデコーダ９０５のクロックカウンタ値をホストＣＰＵ９１１のクロックカウンタ値と同期させる必要がある。
【００１２】
また、後者の解決策を用いる場合、ホストＣＰＵ９１１のクロックカウンタ値を参照する必要は無くなるものの、Ａ／Ｖデコーダ９０５内のバッファメモリ９０７の常時監視が必要であり、また、Ａ／Ｖデコーダ９０５のクロックカウンタ値と放送局のクロックカウンタ値の同期が行われないため、正確な再生時間で再生することができない。
【００１３】
ところで、近年のＨＤＤレコーダは高機能化が進み、デジタルチューナを複数備えたり、ネットワークＩ／Ｆを備えることによって、例えば受信した全コンテンツのストリームデータをＨＤＤに常時録画したり、一方のストリームデータを視聴しながら他方のストリームデータをＨＤＤに録画したり、これらの動作を行いながら更にＨＤＤに蓄積したストリームデータをネットワーク経由で他のデジタル機器に配信するといったことが可能になりつつある。
【００１４】
このように、ＨＤＤのようなストレージデバイスやネットワークＩ／ＦへのＩ／Ｏが集中した状況においても、上記のようにＡ／Ｖデコーダ９０５内のバッファメモリのアンダーフローやオーバフローを防ぐ処理が必要なため、ホストＣＰＵへのＩ／Ｏ処理に関わる負荷は高くなる一方である。
【００１５】
これを解決する一つの方法としては、例えば、バスの帯域やバッファメモリ量を増やしたり、複数のプロセッサコアを搭載した高スペックなＣＰＵを導入したりすることが考えられるが、部品コストや消費電力、発熱量の上昇、設計・検証工数の増加を引き起こし、コンシューマ向けデジタル機器に好適な対策ではない。
【００１６】
本発明はこれらの点に鑑みてなされたものであり、ＨＤＤや半導体フラッシュメモリ等のストレージデバイスを備えるデジタル機器において、ストリームデータの録画、再生を正確なタイミングで簡単、安全、安価に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１７】
本発明は、ホスト手段とインターフェイス手段を介して接続されるストレージ装置に適用される。
その構成としては、ストリームデータを含むデータを格納するデータ格納手段と、ホスト手段とデータ格納手段の間を転送するデータを一時的にバッファリングするためのバッファメモリと、データ格納手段からデータを読み出すクロックを生成し、その生成したクロックをカウントするカウンタ値を管理するクロック管理手段と、データ格納手段でのデータ格納を制御する制御手段とを有する。
そして、制御手段は、データ格納手段におけるストリームデータの格納場所を管理するストリーム配置管理手段と、データ格納手段に格納されたデータの転送順序を制御して最適なデータ転送スケジュールを決定するスケジュール手段と、ホスト手段から与えられるコマンドを解釈するコマンド処理手段と、入力されたクロック同期信号を元に、クロック管理手段に対してクロックカウンタ値の修正を指示するクロック同期手段を有する構成としたことを特徴とする。
【発明の効果】
【００１８】
本発明を適用したストレージ装置をデジタル機器に組み込むことによって、ホスト手段に簡単なコマンドインターフェイスを提供するとともに、ホスト手段からストレージ装置に対するストリームデータのＩ／Ｏ処理の負荷を軽減することができる。
これによって、従来と同スペックのホスト手段であってもデジタル機器のセットベンダ独自の機能を追加搭載することが可能になり、またよりスペックの低い安価なホスト手段に置き換えることも可能になり、デジタル機器のコスト上昇を抑制しながら高機能化を図ることができる。
【００１９】
この場合、インターフェイスとして、映像又は音声のストリームデータを入出力するための第１のインターフェイス手段と、ホスト手段に対し非ストリームデータを入出力するための第２のインターフェイス手段とを備えた構成としたことで、ストリームデータのＩ／Ｏの帯域を確実に確保することができ、より正確なタイミングでのストリームデータのＩ／Ｏ制御が可能となる。これにより、バッファメモリ容量を小さくすることができ、コスト上昇を抑制することが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の第１の実施の形態の例を、図１〜図４を参照して説明する。
本実施の形態の例においては、コンシューマ向けデジタル機器に適用した例としてあり、その具体的な構成としては、放送信号などのストリームデータを、ＨＤＤをデータ格納手段として使用したＨＤＤレコーダに適用した例としてある。但し、本発明は、ＨＤＤレコーダに限定されるものではなく、ＨＤＤや半導体メモリなどの大容量データ格納手段（ストレージ装置）を使用した、各種デジタル機器に適用可能である。
【００２１】
図１は、ホスト手段と接続されるストレージ装置１００の構成を示した図である。ここでホスト手段とは、例えばＰＣやＨＤＤレコーダ、ＨＤＤカムコーダ、携帯電話、携帯音楽プレーヤ、監視カメラ等のデジタル機器である。
【００２２】
図１に従って構成を説明すると、ストレージ装置１００は、ホスト手段側と接続されるポート１０１を備え、ホストインターフェイス部（ホストＩ／Ｆ部）１０２が、そのポート１０１を介してホスト側と通信を行う。
ホストＩ／Ｆ部１０２にホスト手段側から得られるデータは、制御ブロック１１０に送られて、制御部１１０の制御でデータ格納部１０３に格納される。また、データ格納部１０３から制御部１１０の制御で読み出したデータは、ホストＩ／Ｆ部１０２を介してホスト手段側に送られる。
【００２３】
データ格納部１０３は、各デジタル機器が取扱う映像や音楽・写真・テキスト等のユーザデータや、デジタル機器が備えるＣＰＵやメモリの使用量、Ｉ／Ｏ動作を管理するＯＳや、ビューワ・ＧＵＩ等のアプリケーションプログラムや、更にはユーザデータに関連するメタデータを記録する機能を有する。ここでは、データ格納部１０３として、磁気ディスクであるＨＤＤを使用した例について説明したが、その他の磁気ディスク、ＤＶＤ（Digital Versatile Disc）やＢｌｕ−Ｒａｙ  Ｄｉｓｃ等の光磁気ディスク、ＳＤメモリカード等の半導体フラッシュメモリを使用してもよい（これらの名称の一部は登録商標）。
【００２４】
制御部１１０は、ストレージ装置１００の動作に関連する情報を管理し、この情報に基づいて動作を実行する機能を有し、ストリーム配置管理部１１１と、スケジューリング部１１２と、コマンド処理部１１３と、クロック同期部１１４とから構成されている。また、制御部１１０には、バッファメモリ１０４とクロック管理部１０５が接続してある。
【００２５】
ストリーム配置管理部１１１は、映像や音楽といったストリームデータに関するファイルシステムであり、データ格納部１０３の空き領域（使用領域）や、記録したストリームデータ及びメタ情報データの名前、アクセス日時等の属性情報を更新、管理し、ストリームデータやメタ情報データをデータ格納部１０３に記録するための格納先アドレスを決定したり、記録したこれらデータの格納場所を特定したりする機能を有する。なお、本実施の形態の例のストレージ装置１００において、写真やテキストデータなどの非ストリームデータに対するデータ配置管理はホスト手段が行っている。
【００２６】
スケジューリング部１１２は、ストリームデータや非ストリームデータ、メタ情報データをデータ格納部１０３へ格納したり、これらデータをデータ格納部１０３から取得したりするためのタイミングを制御したり、ストリームデータと非ストリームデータとの競合が発生した場合にはストリームデータの処理を優先したり、更にはストリームデータ同士の複数同時録画（書込み）や複数同時再生（読出し）、複数同時の録画及び再生が競合した際、複数同時録画のみの場合や複数同時再生のみの場合には例えば各録画や再生のためのストリームデータを所定の単位毎に順番に処理したり、複数同時の録画と再生の場合には再生のためのストリームデータを優先して処理したりする調停を行い、ストリームデータの最適な送信スケジュールを決定する機能を有する。
【００２７】
コマンド処理部１１３は、ホスト手段からホストＩ／Ｆ部１０２を介して与えられる制御コマンドを解析し、それに応じてスケジューリング部１１２やデータ格納部１０３等に対して各種処理を指示したり、ホスト手段への応答メッセージを生成したりする機能を有する。
【００２８】
本実施の形態の例のコマンド処理部１１３がホスト手段から受付ける主な制御コマンドの例としては、データ格納部１０３に写真やテキストデータ等の非ストリームデータを記録するためのライトコマンド、映像等のストリームデータを記録するための録画コマンド、データ格納部１０３に格納している所定の非ストリームデータを取得するためのリードコマンド、所定のストリームデータを取得するための再生コマンド、その再生コマンドにおいて、所定のストリームデータにおける任意の再生開始時刻や再生方向（早送り、巻き戻し）、再生速度（早送り／巻き戻し速度、一時停止）を含む特殊再生コマンド、そしてストリームデータの取得を中止する停止コマンドなどがある。
【００２９】
クロック同期部１１４は、ホスト手段からホストＩ／Ｆ部１０２を介して与えられるクロック同期用の信号を用い、クロック管理部１０５に対してクロックカウンタ値の修正を指示する機能を有する。
バッファメモリ１０４は、ストリームデータや非ストリームデータ、メタ情報データを一時的に格納するメモリである。
クロック管理部１０５は、ストレージ装置１００内で使用するクロックを生成させてカウントする処理を行う。このクロック管理部１０５で生成するクロックは、外部から供給されるクロックを基準とする場合と、ストレージ装置内で生成されるクロックの場合のいずれでも良いが、ストリームデータの再生時には、必要によりクロックのカウント値を修正する機能（この機能をクロック管理機能と称する）を有する。
【００３０】
ホストＩ／Ｆ部１０２は、ホスト手段に対してストリームデータや非ストリームデータ、メタ情報データを入出力するインターフェイスを提供し、ホスト手段から入力される各種データや制御コマンドを制御部１１０に転送したり、制御部１１０が出力した各種データをホスト手段に転送したりする機能を有する。
ホストＩ／Ｆ部１０２の具体的な仕様は、ＡＴＡや組込み機器向けＡＴＡのＣＥ−ＡＴＡ（Consumer Electronics ATA)、USB(Universal Serial Bus）、ＰＣＩ（Peripheral Component Interconnect）等の汎用バスを使用したものである。
【００３１】
ストレージ装置１０は、データ格納部１０３とバッファメモリ１０４を除く部分は専用ＬＳＩやＦＰＧＡ（Field Programmable Gate Array）で１チップもしくは複数チップで実現し、データ格納部１０３は、ＨＤＤ等の磁気ディスクやフラッシュメモリ等の不揮発性メモリで構成し、バッファメモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性メモリで構成する。或いは、データ格納部１０３として、メモリを使用した場合には、専用ＬＳＩやＦＰＧＡにより１チップもしくは複数チップで構成させてもよい。また、制御部１１０は汎用プロセッサで構成し、ストリーム配置管理部１１１とスケジューリング部１１２とコマンド処理部１１３とクロック同期部１１４は、そのプロセッサ上で動作するソフトウェアプログラムで実現させてもよい。
【００３２】
以下、各制御コマンドを参照しながら、ストレージ装置１００内の制御部１１０の動作及び機能を説明する。まずホスト手段側からストレージ装置１００に送られる制御コマンドについて、順に説明する。なお、以下の説明で、録画コマンドと、再生コマンド及び特殊再生コマンドが、本実施の形態で特に特徴となるコマンドである。
（１）  ライトコマンド
本制御コマンドに対する動作は、データ格納部１０３に対する写真やテキストデータ等の非ストリームデータの記録に当たる。
制御部１１０はコマンド処理部１１３での解析結果がライトコマンドであった場合、引き続きホスト手段から送信されてくるライトデータを、データ格納部１０３の指定のアドレスに対して順次格納する。ライトデータの格納が終了すると、制御部１１０はコマンド処理部１１３にその旨を通知することで、ライトコマンドに対する応答メッセージがコマンド処理部１１３にて作成され、ホストＩ／Ｆ部１０２を経由してホスト手段に転送される。
【００３３】
（２）  録画コマンド
本制御コマンドに対する動作は、データ格納部１０３に対する映像データ等のストリームデータの記録であり、例えばホスト手段が地上デジタル放送を受信した放送コンテンツや、ネットワーク経由のＩＰ（Internet Protocol）放送コンテンツの録画に当たる。
制御部１１０はコマンド処理部１１３での解析結果が録画コマンドであった場合、ストリーム配置管理部１１１が保持する情報を参照してストリームデータ及びメタ情報データを記録するための空き領域を検索し、それぞれの格納先アドレスを取得する。そして、引き続きホスト手段から送信されてくるストリームデータを、順次バッファメモリ１０４に格納していく。バッファメモリ１０４に格納されたストリームデータは、所定のサイズになると、データ格納部１０３の格納先アドレスに順次記録する。ストリームデータの格納が終了すると、制御部１１０はコマンド処理部１１３にその旨を通知することで、録画コマンドに対する応答メッセージがコマンド処理部１１３にて作成され、ホストＩ／Ｆ部１０２を経由してホスト手段に転送される。
【００３４】
（３）  リードコマンド
本制御コマンドに対する動作は、データ格納部１０３に記録した写真やテキストデータ等の読出しに当たる。
制御部１１０はコマンド処理部１１３での解析結果がリードコマンドであった場合、データ格納部１０３の指定のアドレスからデータを順次読み出して、バッファメモリ１０４に格納する。バッファメモリ１０４に格納されたリードデータは、読み出しが完了するか、所定のサイズになると、ホストＩ／Ｆ部１０２を経由してホスト手段に転送される。リードデータの読み出しが終了すると、制御部１１０はコマンド処理部１１３にその旨を通知することで、リードコマンドに対する応答メッセージがコマンド処理部１１３にて作成され、ホストＩ／Ｆ部１０２を経由してホスト手段に転送される。
【００３５】
（４）  再生／特殊再生コマンド
本制御コマンドに対する動作は、データ格納部１０３に記録したストリームデータの読み出しであり、例えばホスト手段がデータ格納部１０３に記録したストリームデータの再生や、ネットワーク経由で他の組込み機器にストリームデータを提供する配信に当たる。
制御部１１０はコマンド処理部１１３での解析結果が再生コマンドであった場合、再生コマンドと同時に提供されるコンテンツ名に基づいて、ストリーム配置管理部１１１が保持する情報を参照してそのストリームデータとメタ情報テーブルの格納先アドレスを取得する。また、スケジューリング部１１２では、指定されたコンテンツの情報を参照して、そのコンテンツの再生に最適な送信スケジュールを作成する。送信スケジュールの詳細については後段にて詳細に説明する。次に、取得したデータ格納部１０３の格納アドレスからストリームデータを読み出し、バッファメモリ１０４内のデータ残量の状態を見ながら順次格納する。スケジューリング部１１２は、クロック管理部１０５のクロックを参照し、作成した送信スケジュールで指示されたタイミングで、バッファメモリ１０４に格納されたストリームデータを順次読み出して、ホストＩ／Ｆ部１０２経由でホスト手段に送信する。ストリームデータの読み出しが終了すると、制御部１１０はコマンド処理部１１３にその旨を通知することで、再生コマンドに対する応答メッセージがコマンド処理部１１３にて作成され、ホストＩ／Ｆ部１０２を経由してホスト手段に転送される。
【００３６】
一方、制御部１１０はコマンド処理部１１３での解析結果が特殊再生コマンドであった場合、再生コマンドと同時に提供されるコンテンツ名に基づいて、ストリーム配置管理部１１１が保持する情報を参照してそのストリームデータとメタ情報テーブルの格納先アドレスを取得する。スケジューリング部１１２では、指定された再生開始時刻や再生方向、再生速度に従って、そのコンテンツの再生に最適な送信スケジュールを作成する。次に、取得したデータ格納部１０３の格納アドレスからストリームデータを読み出し、バッファメモリ１０４内のデータ残量の状態を見ながら順次格納する。スケジューリング部１１２は、クロック管理部１０５のクロックを参照し、作成した送信スケジュールで指示されたタイミングでバッファメモリ１０４に格納されたストリームデータを順次読み出して、ホストＩ／Ｆ部１０２経由でホスト手段に転送する。データの転送は、後述するＨＤＤレコーダ２００側のホストＣＰＵ２１１経由で行ってもよいし、ホストＣＰＵ２１１の処理遅延を軽減するため、ＤＭＡ転送により直接ＨＤＤレコーダ２００内のストリームフィルタ２０４に転送してもよい。ストリームデータの読み出しが終了すると、制御部１１０はコマンド処理部１１３にその旨を通知することで、特殊再生コマンドに対する応答メッセージがコマンド処理部１１３にて作成され、ホストＩ／Ｆ部１０２を経由してホスト手段に転送される。
【００３７】
次に、スケジューリング部１１２が作成するデータ送信スケジュールの例を、図２を用いて説明する。
データ送信スケジュールは、コンテンツの再生や特殊再生を行う際に、ストリームデータをホスト部に送信する最適なタイミングを表すものであり、送信クロックカウンタ、送信データのバイト位置、データサイズが格納されるエリアから構成される。
「送信クロックカウンタ」の列は、データを送信するタイミングを示すクロックカウンタ値が格納されるエリアである。
「送信データのバイト位置」の列は、送信用データの先頭バイト位置を示すエリアであり、コンテンツファイルの先頭からのバイト数が格納されている。
「データサイズ」の列は、送信するデータのデータサイズを示すバイト数が格納されるエリアである。
【００３８】
図２において、例えばデータｄ１は、クロック管理部１０５で管理しているクロックカウンタ値が「１８８４５７７８」の時に、コンテンツファイルの先頭から「０」バイト目の位置から、「１８８」バイト分を、ホスト手段に送信することを示している。データｄ２，ｄ３・・・と、それぞれのデータを送信開始するクロックカウンタ値と、送信データのバイト位置と、送信するデータ量とが示されている。図２に示すように、「送信クロックカウンタ」と「送信データのバイト位置」と「データサイズ」とを示すのが好ましいが、例えば「送信データのバイト位置」と「データサイズ」は、いずれか一方でもよい。
【００３９】
次に、本発明の第１の実施の形態に係わるストレージ装置１００を適用したデジタル機器の例の構成及び機能を説明する。
図３は、図１で示したストレージ装置１０１を適用したＨＤＤレコーダ２００の構成および機能を示す図である。
ＨＤＤレコーダ２００は、アンテナなどと接続される放送波入力端子２０１を備えて、その入力端子２０１をデジタルチューナ２０２に接続し、デジタルチューナ２０２でデジタル放送信号の受信を行う。受信したデジタル放送信号は、デマルチプレクス２０３でスクランブルの解除処理を行った後、ストリームフィルタ２０４で必要なコンテンツのデータを抽出し、抽出されたデータをＡ／Ｖ（Audio/Video）デコーダ２０５に供給する。
Ａ／Ｖデコーダ２０５では、デジタル映像信号やデジタル音声信号の復調処理を行う。復調した映像信号及び音声信号は、出力端子２０７に接続された表示装置やスピーカに供給して、映像の表示処理や音声の出力処理が行われる。
また、受信してストリームフィルタ２０４で抽出されたコンテンツのデータを、ストレージ装置１００に送って、ストレージ装置１００に蓄積させることができる。さらに、そのストレージ装置１００に蓄積されたコンテンツのデータを読み出して、ストリームフィルタ２０４からＡ／Ｖデコーダ２０５側に送り、蓄積されたコンテンツの再生が行える。ストリームフィルタ２０４では、これらのストリームデータの処理を行う際に、ストリームデータのフローを制御する処理が行われる。
【００４０】
これらのデジタルチューナ２０２，デマルチプレクス２０３，ストリームフィルタＡ／Ｖデコーダ２０４は、汎用バス２１０を介してホストＣＰＵ２１１及びメモリ２１２が接続してある。ホストＣＰＵ２１１は、ストレージ装置１００とのＩ／Ｏ動作やメモリ２１２の使用リソース等を制御・管理するＯＳや、ビューワやＧＵＩ等のアプリケーションプログラムを実行するマイクロプロセッサであり、ホスト手段として機能する。メモリ２１２はＯＳやアプリケーションプログラムのワークメモリ、各種データのバッファメモリとして使用される。ホストＣＰＵ２１１などが必要なクロックは、クロック発生器２１４で生成されたクロックを使用する。
【００４１】
また、汎用バス２１０には、ＡＴＡ  Ｉ／Ｆ２１３を介してストレージ装置１００が接続してある。このストレージ装置１００は、映像信号や音声信号などのストリームデータの蓄積や、その他のＨＤＤレコーダ２００内で必要な各種データの蓄積を行うデータ格納手段であり、ここではＨＤＤを記憶手段として使用する。
【００４２】
次に、ストレージ装置１００に蓄積されたコンテンツ再生時の、本ＨＤＤレコーダ２００におけるストレージ装置１００での処理フローの詳細を、図４のフローチャートを用いて説明する。
まず、ホスト手段から再生コマンドを受信する処理が行われる（ステップＳ１１）。再生コマンドを受信すると、データ送信スケジュールを作成する処理が行われる（ステップＳ１２）。このデータ送信スケジュールは、既に図２を参照して説明したものである。
その後、再生を停止させる要求である停止コマンドを受信したかどうかを調べる（ステップＳ１３）。ここで、もし停止コマンドを受信していれば、ここでの処理を終了する。停止コマンドを受信していない場合には、特殊再生を要求するコマンドを受信したか否か判断する（ステップＳ１４）。特殊再生コマンドを受信した場合には、データ送信スケジュールを、そのときに要求された特殊再生状況（早送り再生、スロー再生など）に応じて、再作成する（ステップＳ１５）。
【００４３】
その後、録画中などでホスト手段からストリームデータの入力が行われている最中かどうかを調べる（ステップＳ１６）。もしホスト手段からストリームデータの入力があるならステップＳ１７へ進み、無ければステップＳ１８へ進む。
ステップＳ１７では、入力されているストリームデータを解析する。そして、ステップＳ１８で、入力されているストリームデータにクロック同期信号が含まれるかどうかを調べる処理を行う。ここで、もしクロック同期信号が含まれるならステップＳ１９へ進み、クロック同期信号が含まれていないならステップＳ２０へ進む。
【００４４】
ステップＳ１９では、クロック同期信号に従って、クロック管理部１０５で管理している現在のクロックカウンタ値を修正する処理が行われる。これにより、放送局のクロックカウンタ値と同期を取ることができる。
次のステップＳ２０では、バッファメモリ１０４に空きがあるかどうか調べる処理を行う。ここで、もしバッファメモリ１０４に空きがあるならステップＳ２１へ進み、空きが無ければステップＳ２２へ進む。
【００４５】
ステップＳ２１は、データ格納部１０３から一定サイズ分のデータを読み出してバッファに格納する処理である。
次のステップＳ２２では、クロック管理部１０５のクロックカウンタ値が、データ送信スケジュールのクロックカウンタ値に一致するタイミングで、バッファメモリ１０４内のストリームデータをホスト手段に送信する処理が行われる。
【００４６】
以上説明した本実施の形態によると、ストレージ装置１００に記録したコンテンツを再生するには、ホストＣＰＵ２１１はストレージ装置１００にコンテンツ名を含む再生コマンドを発行しさえすればよく、ストレージ装置１００が自律的に指定のコンテンツを最適な送信スケジュールに従い、ＤＭＡ転送等でホストＣＰＵ２１１を介さずにストリームフィルタ２０４に転送する。これにより、ホストＣＰＵ２１１が複雑なスケジューリング処理やＩ／Ｏ処理から開放され、性能の劣った安いＣＰＵでも高品質な再生を実現することができる。
【００４７】
次に、図５及び図６を参照して、本発明の第２の実施の形態の例を説明する。この図５及び図６において、第１の実施の形態で説明した図１〜図４に対応する部分には同一符号を付し、その詳細説明を省略する。
図５に示すストレージ装置１００′は、図１に示すストレージ装置１００において、ホスト手段とのＩ／ＦであるホストＩ／Ｆ部１０２を、ストリームＩ／Ｆ部１０７と非ストリームＩ／Ｆ部１０９に置き換えたものである。
【００４８】
ストリームＩ／Ｆ部１０７は、ホスト手段に対して映像や音楽といったストリームデータを複数かつ同時に入出力するためのインターフェイスを提供する。ストリームＩ／Ｆ部１０７は、ポート１０６を介してホスト手段側とデータ転送を行う。制御部１１０が、送信スケジュールに従って出力するストリームデータをホスト手段に転送したり、ホスト手段が送出したストリームデータを制御部１１０に転送したりする。
ストリームＩ／Ｆ部１０７の具体的な仕様は、ＴＳやＰＳ（Program Stream）、タイムスタンプ付きＴＳ形式の圧縮デジタルデータを８ビットで入出力するパラレルインターフェイス、もしくは１ビットで入出力するシリアルインターフェイスである。
【００４９】
非ストリームＩ／Ｆ部１０９は、ホスト手段に対して、写真やテキストデータや各種制御コマンド等の非ストリームデータを入出力するためのインターフェイスを提供し、制御部１１０が出力する非ストリームデータをホスト手段に転送したり、ホスト手段が送出した非ストリームデータを制御部１１０に転送したりする。非ストリームＩ／Ｆ部１０９は、ポート１０８を介してホスト手段側とデータ転送を行う。
非ストリームＩ／Ｆ部１０９の具体的な仕様は、ＡＴＡやＣＥ−ＡＴＡ、ＵＳＢ、ＰＣＩ等の汎用バスを使用した仕様が適用可能である。
【００５０】
制御部１１０は、非ストリームＩ／Ｆ部１０９を介してホスト手段から各種制御コマンドを受信する。リードコマンドやライトコマンドのように非ストリームデータのみの入出力処理の場合は、非ストリームＩ／Ｆ部１０９のみを介してホスト部との入出力を行う。一方、録画コマンドや再生コマンドのように、ストリームデータの入出力を伴う処理の場合は、制御コマンドや応答メッセージ等の非ストリームデータについては非ストリームＩ／Ｆ部１０９を介し、ストリームデータについてはストリームＩ／Ｆ部１０７を介してホスト部との入出力を行う。
【００５１】
次に、本発明の第２の実施の形態に係わるストレージ装置１００′を適用したデジタル機器の例の構成及び機能を説明する。
図６は、図５で示したストレージ装置１００′を適用したＨＤＤレコーダ２００′の構成および機能を示す図である。
【００５２】
ＨＤＤレコーダ２００′は、デジタルチューナ２０２とデマルチプレクス２０３とストリームフィルタ２０４′とＡ／Ｖデコーダ２０５とを備えて、図３に示したＨＤＤレコーダ２００と同様のストリームデータの処理が行われる。Ａ／Ｖデコーダ２０５には、バッファメモリ２０６が接続してある。さらに、これらの回路と汎用バス２０５を介して、ホストＣＰＵ２１１とメモリ２１２とストレージ装置１００′とを接続した構成としてある。ストレージ装置１００′は、ＡＴＡ  Ｉ／Ｆ２１３を介して汎用バス２０５に接続してある。
【００５３】
デジタルチューナ２０２とデマルチプレクス２０３とストリームフィルタ２０４′とＡ／Ｖデコーダ２０５とホストＣＰＵ２１１とメモリ２１２とＡＴＡ  Ｉ／Ｆ２１３は、汎用バス２１０を介して相互に接続されており、必要なコマンドやデータのやり取りが行えるようになっている。
ストレージ装置１００の非ストリームＩ／Ｆ部１０９（図５参照）は、ＡＴＡ  Ｉ／Ｆ２１３と接続されており、必要なコマンドや非ストリームデータのやり取りが行われるようになっている。
ストレージ装置１００のストリームＩ／Ｆ部１０７（図５参照）は、ストリームフィルタ２０４′と直接接続されており、ホストＣＰＵを介在せずにストリームデータのやり取りが行われるようになっている。
【００５４】
なお、この第２の実施の形態で説明したストレージ装置１００′においても、第１の実施の形態で説明した図４のフローチャートで説明した処理が実行され、図２に示したデータ送信スケジュールを作成する処理が行われる。
【００５５】
このようなストレージ装置１００′を適用したＨＤＤレコーダ２００′においては、ストリームデータが非ストリームＩ／Ｆ部１０９を介さず、直接ストリームフィルタ２０４′とストレージ装置１００′間で入出力されるため、ユーザのＧＵＩ操作やデジカメ写真の閲覧など、再生・録画以外の処理負荷が大きくなった場合においても、ストリームデータと非ストリームデータが競合することなく、遅延のない安定したストリームデータの入出力が行える。これにより、より正確なクロック同期が可能になったり、より正確なタイミングでのストリームデータの送信が可能となり、ホスト手段やＡ／Ｖデコーダのバッファメモリを削減したり、性能の劣った安いＣＰＵでも高品質な再生を実現することができる。
【図面の簡単な説明】
【００５６】
【図１】本発明の第１の実施の形態の例のストレージ装置を示したブロック図である。
【図２】本発明の第１の実施の形態のデータ送信スケジュールの一例のテーブルを示した説明図である。
【図３】本発明の第１の実施の形態のストレージ装置を適用したＨＤＤレコーダを示したブロック図である。
【図４】本発明の第１の実施の形態のコンテンツ再生時におけるストレージ装置の動作例を示したフローチャートである。
【図５】本発明の第２の実施の形態の例のストレージ装置を示したブロック図である。
【図６】本発明の第１の実施の形態のストレージ装置を適用したＨＤＤレコーダを示したブロック図である。
【図７】従来のＨＤＤレコーダの構成例を示したブロック図である。
【符号の説明】
【００５７】
１００，１００′…ストレージ装置
１０２…ホストＩ／Ｆ部
１０３…データ格納部
１０４…バッファメモリ
１０５…クロック管理部
１０７…ストリームＩ／Ｆ部
１０９…非ストリームＩ／Ｆ部
１１０，１１０′…制御部
１１１…ストリーム配置管理部
１１２…スケジューリング部
１１３…コマンド処理部
１１４…クロック同期部
２００，２００′…ＨＤＤレコーダ
２０２…デジタルチューナ
２０３…デマルチプレクス
２０４…ストリームフィルタ
２０５…Ａ／Ｖデコーダ
２０６…バッファメモリ
２１０…汎用バス
２１１…ホストＣＰＵ
２１２…メモリ
２１３…ＡＴＡ  Ｉ／Ｆ
２１４…クロック発生器
９００…ＨＤＤレコーダ
９０２…デジタルチューナ
９０３…デマルチプレクス
９０４…ストリームフィルタ
９０５…Ａ／Ｖデコーダ
９０６…バッファメモリ
９０７…バッファメモリ
９１０…汎用バス
９１１…ホストＣＰＵ
９１２…メモリ
９１３…ＡＴＡ  Ｉ／Ｆ
９１４…ＨＤＤ
９１５…クロック発生器
【図１】
2009118086.tif 000003
【図２】
2009118086.tif 000004
【図３】
2009118086.tif 000005
【図４】
2009118086.tif 000006
【図５】
2009118086.tif 000007
【図６】
2009118086.tif 000008
【図７】
2009118086.tif 000009