(57)【特許請求の範囲】
【請求項１】
ストリームデータを記憶装置に記録可能な情報処理装置において、
前記記憶装置に記録されたデータをファイルとして管理する第１のプロセッサと、
第２のプロセッサと、
前記第１のプロセッサと前記第２のプロセッサとの間の各種データ転送に使用される第１のバスと、
外部から供給されるストリームデータを受信する受信装置と、
前記受信装置によって受信されたストリームデータを転送する第２のバスとを具備し、
前記第２のプロセッサは、前記第１のプロセッサから前記第１のバスを介して入力されるアクセス要求に応じて、前記第２のバスを介して前記受信装置から入力されるストリームデータおよび前記第１のバスを介して前記第１のプロセッサから入力されるファイル管理情報を、前記記憶装置に接続された第３のバスを介して前記記憶装置に記憶することを特徴とする情報処理装置。
【請求項２】
前記ストリームデータは放送コンテンツデータであり、
前記受信装置は、放送コンテンツデータを受信するチューナユニットを含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第２のプロセッサは、
前記第１のプロセッサがアクセス可能なメモリアドレス空間内に割り当てられ、前記第２のバスを介して前記受信装置から入力される前記ストリームデータを一時的に格納するバッファメモリを含み、
前記第１のプロセッサは、
前記バッファメモリに格納されたデータを前記記憶装置に書き込むことを前記第２のプロセッサに指示するアクセス要求を、前記第１のバスを介して前記第２のプロセッサに通知する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記第２のプロセッサは、
前記第１のプロセッサがアクセス可能なメモリアドレス空間内に割り当てられ、前記第２のバスを介して前記受信装置から入力される前記ストリームデータを一時的に格納するバッファメモリと、
前記ストリームデータが格納された前記バッファメモリ上の格納位置を示すメモリアドレスと前記格納されたストリームデータのデータサイズを示すポインタ情報を、前記第１のバスを介して前記第１のプロセッサに通知する手段とを含み、
前記第１のプロセッサは、
前記第２のプロセッサから通知される前記ポインタ情報に基づいて、前記バッファメモリに格納されたストリームデータを前記記憶装置に書き込むことを前記第２のプロセッサに指示するアクセス要求を生成する手段と、
前記生成されたアクセス要求を前記第１のバスを介して前記第２のプロセッサに通知する手段とを含むことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記受信装置によって受信されたストリームデータは、圧縮符号化されたビデオデータを含み、
前記第２のプロセッサは、
外部のビデオモニタにビデオデータを出力するためのビデオ出力インタフェースと、
前記第１のバスを介して前記第１のプロセッサから通知されるデコード要求に応じて、前記記憶装置に記憶されたストリームデータをデコードする手段と、
前記第１のバスを介して前記第１のプロセッサから通知される再生要求に応じて、前記デコードされたストリームデータを前記ビデオ出力インタフェースから出力する手段とを含むことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記情報処理装置はネットワークを介して端末に接続されており、
前記第１のバスに接続され、前記ネットワーク上の端末との間の通信を実行する第３のプロセッサをさらに具備し、前記第３のプロセッサは、前記記憶装置に格納されたストリームデータを前記ネットワークを介して端末に送信する場合、前記第２のプロセッサに前記記憶装置から前記ストリームデータを読み出すことを指示するディスクアクセス要求を、前記第１のバスを介して前記第２のプロセッサに発行する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項７】
表示用データを前記第２のプロセッサに転送する第４のバスをさらに具備し、
前記第２のプロセッサは、
外部のビデオモニタにビデオデータを出力するためのビデオ出力インタフェースと、
前記第４のバスを介して前記第１のプロセッサから入力される表示用データを受信するインタフェースと、
前記第１のバスを介して前記第１のプロセッサから通知される再生要求に応じて、前記第４のバスを介して前記第１のプロセッサから入力される表示用データを前記ビデオデータに変換する処理を実行する手段とを含むことを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記受信装置と前記第２のプロセッサとの間を接続する制御バスをさらに具備し、
前記受信装置は、ストリームデータから構成される放送コンテンツデータを受信するチューナユニットであり、
前記第２のプロセッサは、
前記第１のプロセッサから前記第１のバスを介して入力されるチャネル選択要求に応じて、どのチャネルの放送番組データを受信すべきであるかを示す制御情報を、前記制御バスを介して前記受信装置に送信する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項９】
ストリームデータをディスク記憶装置に記録可能な情報処理装置であって、
前記記憶装置に記録されたデータをファイルとして管理する第１のプロセッサと、
第２のプロセッサと、
前記第１のプロセッサと前記第２のプロセッサとの間の各種データ転送に使用されるバスと、
外部から供給されるストリームデータを受信する受信装置とを具備し、
前記第２のプロセッサは、前記第１のプロセッサから入力されるディスクアクセス要求に基づいて、前記バスを介して入力されるデータおよびファイル管理情報を前記ディスク記憶装置に書き込む処理および前記ディスク記憶装置に記憶されているファイルを構成するデータを前記バス上に読み出す処理を実行すると共に、前記ディスク記憶装置に接続された第１のインタフェースと、前記受信装置に接続された第２のインタフェースとを含み、前記第１のプロセッサからのディスクアクセス要求が前記ストリームデータを前記ディスク記憶装置に書き込むことを指示する場合、前記受信装置から前記第２のインタフェースに入力されるストリームデータおよび前記バスを介して前記第１のプロセッサから入力されるファイル管理情報を、前記第１のインタフェースを介して前記ディスク記憶装置に書き込むことを特徴とする情報処理装置。
【請求項１０】
前記ストリームデータは放送コンテンツデータであり、
前記受信装置は、放送コンテンツデータを受信するチューナユニットを含むことを特徴とする請求項９記載の情報処理装置。
【請求項１１】
前記第２のプロセッサは、
前記第１のプロセッサがアクセス可能なメモリアドレス空間内に割り当てられ、前記第２のインタフェースに入力される前記ストリームデータを一時的に格納するバッファメモリを含み、
前記第１のプロセッサは、
前記バッファメモリに格納されたデータを前記ディスク装置に書き込むことを前記第２のプロセッサに指示するディスクアクセス要求を、前記バスを介して前記第２のプロセッサに通知する手段を含むことを特徴とする請求項９記載の情報処理装置。
【請求項１２】
前記第２のプロセッサは、
前記第１のプロセッサがアクセス可能なメモリアドレス空間内に割り当てられ、前記第２のインタフェースに入力される前記ストリームデータを一時的に格納するバッファメモリと、
前記ストリームデータが格納された前記バッファメモリ上の格納位置を示すメモリアドレスと前記格納されたストリームデータのデータサイズを示すポインタ情報を、前記バスを介して前記第１のプロセッサに通知する手段とを含み、
前記第１のプロセッサは、
前記第１のプロセッサから通知される前記ポインタ情報に基づいて、前記バッファメモリに格納されたストリームデータを前記ディスク装置に書き込むことを前記第２のプロセッサに指示するディスクアクセス要求を生成する手段と、
前記生成されたディスクアクセス要求を前記バスを介して前記第２のプロセッサに通知する手段とを含むことを特徴とする請求項９記載の情報処理装置。
【請求項１３】
前記受信装置によって受信されたストリームデータは、圧縮符号化されたビデオデータを含み、
前記第２のプロセッサは、
外部のビデオモニタにビデオデータを出力するための第３のインタフェースと、
前記バスを介して前記第１のプロセッサから通知されるデコード要求に応じて、前記受信装置によって受信されたストリームデータをデコードする手段と、
前記バスを介して前記第１のプロセッサから通知される再生要求に応じて、前記デコードされたストリームデータを前記第３のインタフェースから出力する手段とを含むことを特徴とする請求項９記載の情報処理装置。
【請求項１４】
前記情報処理装置はネットワークを介して端末に接続されており、
前記バスに接続され、前記ネットワーク上の端末との間の通信を実行する第３のプロセッサをさらに具備し、前記第３のプロセッサは、前記ディスク記憶装置に格納されたストリームデータを前記ネットワークを介して端末に送信する場合、前記第２のプロセッサに前記ディスク記憶装置から前記ストリームデータを読み出すことを指示するディスクアクセス要求を、前記バスを介して前記第２のプロセッサに発行する手段を含むことを特徴とする請求項９記載の情報処理装置。
【請求項１５】
前記第２のプロセッサは、
外部のビデオモニタにビデオデータを出力するための第３のインタフェースと、
前記第１のプロセッサから出力される表示用データを受信する第４のインタフェースと、
前記バスを介して前記第１のプロセッサから通知される再生要求に応じて、前記第１のプロセッサから前記第４のインタフェースに入力される表示用データを前記ビデオデータに変換する処理を実行する手段とを含むことを特徴とする請求項９記載の情報処理装置。
【請求項１６】
前記受信装置と前記第２のプロセッサとの間を接続する制御バスをさらに具備し、
前記受信装置は、ストリームデータから構成される放送コンテンツデータを受信するチューナユニットであり、
前記第２のプロセッサは、
前記第１のプロセッサからのチャネル選択要求に応じて、どのチャネルの放送番組データを受信すべきであるかを示す制御情報を、前記制御バスを介して前記受信装置に送信する手段を含むことを特徴とする請求項９記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理装置に関し、特に放送番組データなどのストリームデータをディスク記憶装置に記録可能な情報処理装置に関する。
【０００２】
【従来の技術】
近年、マルチメディア機能を持つ、パーソナルコンピュータ、ゲーム機などのような情報処理装置が開発されている。これら情報処理装置は、ビデオ、オーディオなどの様々なコンテンツデータを処理することができる。
【０００３】
最近では、パーソナルコンピュータ、ゲーム機、ＴＶ、オーディオ機器、などの家庭内の各種電子機器同士を融合させるためのホームネットワークシステムの開発が進められている。
【０００４】
ホームネットワークシステムにおいては、様々なコンテンツデータがホームサーバに蓄積される。ホームサーバに蓄積されたコンテンツデータは、ネットワーク等を介してホームサーバに接続された各機器で利用することが出来る。
【０００５】
例えば、特開２００１−３５８９６６号公報には、選局装置で受信されたＴＶ放送番組の送信サービスとインターネット閲覧サービスを行うシステムが開示されている。
【０００６】
【発明が解決しようとする課題】
このように、ホームサーバにおいては、例えば、放送コンテンツ、ストリーミング技術を用いたインターネットコンテンツ、のような様々なストリームデータを扱うことが要求される。しかし、ストリームデータはそのデータサイズが膨大であるため、ある特定のストリームデータの転送のためにホームサーバ内のバスが専有されてしまう危険がある。
【０００７】
ここで、ＴＶチューナによって受信された放送コンテンツのストリームデータをディスク記憶装置などの記憶装置に記録する場合を想定する。この場合、ＴＶチューナからＣＰＵへのストリームデータの転送と、ＣＰＵから記憶装置に向けたストリームデータの転送とが必要となる。このため、同じストリームデータがバス上に２回流れる。これは、バストラフィックの増大を引き起こし、ホームサーバの性能を著しく低下させる。
【０００８】
本発明は上述の事情を考慮してなされたものであり、バストラフィックの増大を招くことなく、ストリームデータを効率よく処理することが可能な情報処理装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上述の課題を解決するため、本発明は、ストリームデータを記憶装置に記録可能な情報処理装置において、前記記憶装置に記録されたデータをファイルとして管理する第１のプロセッサと、第２のプロセッサと、前記第１のプロセッサと前記第２のプロセッサとの間の各種データ転送に使用される第１のバスと、外部から供給されるストリームデータを受信する受信装置と、前記受信装置によって受信されたストリームデータを転送する第２のバスとを具備し、前記第２のプロセッサは、前記第１のプロセッサから前記第１のバスを介して入力されるアクセス要求に応じて、前記第２のバスを介して前記受信装置から入力されるストリームデータおよび前記第１のバスを介して前記第１のプロセッサから入力されるファイル管理情報を、前記記憶装置に接続された第３のバスを介して前記記憶装置に記憶することを特徴とする。
【００１０】
この情報処理装置においては、第１および第２のプロセッサ間の通信等の各種データの授受に使用される第１のバスに加え、受信装置によって受信されたストリームデータを第１のバスを介さずに受信装置から第２のプロセッサに入力するための第２のバスが設けられている。この第２のバスを介してストリームデータを第２のプロセッサに入力し、且つ第１のプロセッサからのファイル制御情報を第１のバスを介して第２のプロセッサに入力することにより、第１のプロセッサの制御の下に、ストリームデータを第１のバスを介さずに記憶装置にファイルとして記録することが可能となる。
【００１１】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
図１には、本発明の一実施形態に係る情報処理装置を用いたホームネットワークシステムの構成が示されている。情報処理装置はホームサーバ１１として機能する。ホームサーバ１１は、ホームネットワークシステムを構築するために用いられるサーバであり、家庭内の各種電子機器、すなわち、各パーソナルコンピュータ（ＰＣ）３、カメラなどの各種ＩＥＥＥ１３９４デバイス５、およびＴＶ受像機６、などに接続されている。
【００１２】
ホームサーバ１１と各パーソナルコンピュータ（ＰＣ）３は有線または無線のＬＡＮ２を介して接続されており、またホームサーバ１１と各種ＩＥＥＥ１３９４デバイス５はＩＥＥＥ１３９４バス４を介して接続されている。
【００１３】
ホームサーバ１１は、各パーソナルコンピュータ（ＰＣ）３に対して、例えばＴＶ番組のような放送コンテンツの視聴、およびインターネット閲覧等に関するサービスを提供する。
【００１４】
すなわち、ホームサーバ１１は、各パーソナルコンピュータ３をインターネット１に接続し、インターネット１上のＷＥＢサイトとパーソナルコンピュータ３との間のデータの送受信を行う。さらに、ホームサーバ１１は、ＴＶ放送受信アンテナ７に接続されており、例えばＢＳ、ＣＳ等の衛星放送によって提供されるＴＶ番組などの放送コンテンツデータを受信することが出来る。ホームサーバ１１によって受信された放送コンテンツデータはＴＶ受像機６で再生できる他、ＬＡＮ２を介して各パーソナルコンピュータ３に送信することが出来る。
【００１５】
図２には、ホームサーバ１１のシステム構成が示されている。ホームサーバ１１には、ＣＰＵ１１１、ノースブリッジ１１２、メモリ１１３、ＴＶチューナ１１４、ストリームプロセッサ１１５、ディスク記憶装置１１７、ネットワークプロセッサ１１８、およびＩＥＥＥ１３９４プロセッサ１１９等が設けられている。
【００１６】
ＣＰＵ１１１はこのホームサーバ１１の動作を制御するプロセッサであり、ディスク記憶装置１１７からメモリ１１３にロードされるオペレーティングシステムおよび各種アプリケーションプログラムを実行する。オペレーティングシステムはファイルシステムを有しており、ディスク記憶装置１１７に記録される各種コンテンツデータそれぞれをファイルとして管理する。ディスク記憶装置１１７に対するデータの書き込みおよび読み出しの制御は、ＣＰＵ１１１によって実行される。ＣＰＵ１１１はノースブリッジ１１２を介してＰＣＩバス１００に接続されている。このＰＣＩバス１００は、それに接続されたデバイス間の各種データ転送に使用されるバスである。
【００１７】
ＴＶチューナ１１４は、ＢＳ、ＣＳ等の衛星放送によって提供される、ＴＶ番組などの放送コンテンツデータを受信する受信装置である。衛星放送によって提供される放送コンテンツデータは、ＭＰＥＧ２トランスポートストリーム（ＴＳ）と称される圧縮符号化されたストリームデータから構成されている。ＴＶチューナ１１４は、ストリームデータ（ＴＳ）を転送するための専用バス（ＴＳバス）１０１を介して、ストリームプロセッサ１１５に接続されている。
【００１８】
ＴＶチューナ１１４によって受信されたストリームデータ（ＴＳ）は、ＴＳバス１０１を介してストリームプロセッサ１１５に転送される。また、ＴＶチューナ１１４は、Ｉ２Ｃバス１０２を介してストリームプロセッサ１１５に接続されている。Ｉ２Ｃバス１０２は、ストリームプロセッサ１１５からＴＶチューナ１１４を制御するための制御バスとして使用される。例えば、どのチャネルのＴＶ番組を受信すべきであるかを示す制御情報などが、Ｉ２Ｃバス１０２を介してストリームプロセッサ１１５からＴＶチューナ１１４に送られる。
【００１９】
ストリームプロセッサ１１５は、ストリームデータに関する処理を実行するために設けられたプロセッサである。ストリームプロセッサ１１５は、ＭＰＵ４０１を内蔵している。ＭＰＵ４０１は、ディスク記憶装置１１７を制御するためのドライバプログラム、およびストリームデータを処理するためのドライバプログラムなどを実行する。
【００２０】
ストリームプロセッサ１１５は、ＣＰＵ１１１との間でプロセッサ間通信を実行しながら動作する。ストリームプロセッサ１１５は、ＰＣＩバス１００を介してＣＰＵ１１１から通知されるディスクアクセス要求に基づき、ＰＣＩバス１００バスを介して入力されるデータおよびそのデータをファイルとして管理するためのファイル管理情報をディスク記憶装置１１７に書き込む処理、およびディスク記憶装置１１７からＰＣＩバス１００上にファイルを構成するデータを読み出す処理を実行する。
【００２１】
ファイル管理情報は、ファイルを構成する各データのディスクアドレス、アクセス権情報、等を含む。例えば、ＵＮＩＸ（Ｒ）のファイルシステムにおいては、ファイル管理情報はｉノードに相当する。ｉノードは、それに対応する個々のファイル／ディレクトリを管理するためのデータ構造である。１つのファイルに対して１つのｉノードが存在する。ＣＰＵ１１１は、ｉノードリストを用いて、ディスク記憶装置１１７に記憶されている各ファイルを管理する。ｉノードリストは、ディスク記憶装置１１７に記憶されている全てのファイルそれぞれに対応するｉノードの集合である。ディスク記憶装置１１７に記憶されている各ｉノードは、それに対応するｉノード番号によって参照される。ｉノード番号は個々のファイルを一意に識別するためのファイル識別子である。ｉノード番号は、対応するファイルのｉノードを、そのファイル名等から索引するためのインデックスとして使用される。通常、ファイル名とｉノード番号は一対一で対応付けられている。
【００２２】
ディスク記憶装置１１７との間のデータの入出力は、通常は、ＰＣＩバス１００経由で行われるが、放送コンテンツデータをディスク記憶装置１１７に書き込む場合には、ディスク記憶装置１１７に書き込むべきデータは、ＴＳバス１０１を介してＴＶチューナ１１４からストリームプロセッサ１１５に転送される。ＰＣＩバス１００は使用されない。ＰＣＩバス１００を介してＣＰＵ１１１からストリームプロセッサ１１５に転送されるのは、放送コンテンツデータをファイルとして管理するためのファイル管理情報のみである。
【００２３】
ストリームプロセッサ１１５には、メモリ１１６が接続されている。このメモリ１１６は、ストリームプロセッサ１１５によって実行される各プログラムのワークエリアとして使用される他、ＴＶチューナ１１４から転送されるストリームデータを一時的に保持するバッファメモリとして使用される。
【００２４】
メモリ１１６は、ＣＰＵ１１１がアクセス可能なメモリアドレス空間の一部に割り当てられている。つまり、メモリ１１６はストリームプロセッサ１１５とＣＰＵ１１１とによって共有されており、ストリームプロセッサ１１５とＣＰＵ１１１との間のプロセッサ間通信はメモリ１１６を通じて行われる。もちろん、ＰＣＩバス１００あるいは専用のプロセッサ間バスを介して、メッセージを授受することによって、ストリームプロセッサ１１５とＣＰＵ１１１との間のプロセッサ間通信を実行することも出来る。
【００２５】
さらに、ストリームプロセッサ１１５は、ＣＰＵ１１１からの指示に従い、ディスク記憶装置１１７に記録された放送コンテンツのストリームデータをデコードおよび再生する機能を有している。ストリームプロセッサ１１５は、まず、放送コンテンツのストリームデータに含まれるビデオデータをデコードする。そして、ストリームプロセッサ１１５は、デコードされたビデオデータをＴＶ出力用のビデオ信号に変換した後に、ビデオ出力端子３００からＴＶ受像機６に供給する。放送コンテンツのストリームデータに含まれるオーディオデータについても同様にしてデコードおよび再生処理され、オーディオデータに対応する音信号がオーディオ出力端子３０１を通じてＴＶ受像機６または他のオーディオ機器に供給される。
【００２６】
ストリームプロセッサ１１５がデコード及び再生可能なストリームデータは、ＭＰＥＧ２トランスポートストリーム（ＴＳ）である。
【００２７】
ディスク記憶装置１１７はハードディスクドライブから構成されており、ＩＤＥバスを介してストリームプロセッサ１１５に接続されている。ディスク記憶装置１１７は、様々なコンテンツデータ（放送コンテンツ、インターネットコンテンツ、その他）の記録に使用される。ディスク記憶装置１１７に記録されているどのコンテンツデータもＣＰＵ１１１によってファイルとして管理されているので、ＣＰＵ１１１は、ディスクアクセス要求をストリームプロセッサ１１５に発行することによって、任意のコンテンツのファイルをディスク記憶装置１１７から読み出すことが出来る。
【００２８】
上述したように、ＴＶ番組などの放送コンテンツデータの再生処理はストリームプロセッサ１１５によって実行されるが、例えばストリーミング技術を利用したインターネットコンテンツのようなストリームデータの再生処理は、ＣＰＵ１１１によって実行される。具体的には、ＣＰＵ１１１によって実行されるＷＥＢブラウザまたはそれにプラグインされたプログラムが、インネットコンテンツの再生処理を実行する。
【００２９】
このように、ホームサーバ１１においては、互いにデータ形式が異なる２種類のストリームデータ（放送コンテンツとインターネットコンテンツ）が扱われる。どちらのタイプのストリームデータも、ＴＶ受像機６で視聴することが出来る。
【００３０】
ここで、インターネットコンテンツのストリームデータをＴＶ受像機６で視聴する場合を想定する。インターネットコンテンツのストリームデータは、ＣＰＵ１１１によってデコードされた後に、ノースブリッジ１１２に内蔵されているグラフィクスコントローラ２０１に送られる。グラフィクスコントローラ２０１は、デコードされたストリームデータを表示用のビデオ信号（例えばＲＧＢ信号）に変換し、それをビデオバス１０３を介してストリームプロセッサ１１５に送信する。ストリームプロセッサ１１５は、ビデオバス１０３を介して入力されたビデオ信号をＴＶ出力用のビデオ信号に変換して、ビデオ出力端子３００から出力する。
【００３１】
また、ディスク記憶装置１１７はネットワークドライブとしても利用することが出来る。この場合、ディスク記憶装置１１７に記録されている各コンテンツデータを、ＬＡＮ２上の各パーソナルコンピュータ３から参照することが出来る。
【００３２】
ネットワークプロセッサ１１８は、ホームサーバ１１をＬＡＮ２およびインターネット１にそれぞれ接続するための通信制御専用のプロセッサであり、ルータおよびアクセスポイントとして機能する。ネットワークプロセッサ１１８は、ＰＣＩバス１００に接続されている。
【００３３】
ネットワークプロセッサ１１８は、インターネット１に接続するためのＷＡＮコネクタ３０２と、ＬＡＮ２に接続するためのＬＡＮコネクタ３０３を有している。ネットワークプロセッサ１１８もＭＰＵを内蔵しており、必要に応じてＣＰＵ１１１およびストリームプロセッサ１１５それぞれとの間のプロセッサ間通信を行うことが出来る。
【００３４】
ネットワークプロセッサ１１８は、ストリームプロセッサ１１５との間のプロセッサ間通信によって、ディスク記憶装置１１７にファイルとして格納されている各コンテンツデータをストリームプロセッサ１１５から取得することが出来る。すなわち、ディスク記憶装置１１７に格納されたコンテンツデータをＬＡＮ２上のパーソナルコンピュータ３に送信する場合、ネットワークプロセッサ１１８は、ＰＣＩバス１００を介してストリームプロセッサ１１５にディスクアクセス要求を発行する。これにより、ネットワークプロセッサ１１８は、パーソナルコンピュータ３から要求された放送コンテンツ等のストリームデータを、ディスク記憶装置１１７から読み出して、要求元のパーソナルコンピュータ３に送信することが出来る。
【００３５】
ＩＥＥＥ１３９４プロセッサ１１９は、ホームサーバ１１と各Ｉ３９４デバイス５との間の通信を制御するためのプロセッサであり、ＰＣＩバス１００に接続されている。ＩＥＥＥ１３９４プロセッサ１１９もＭＰＵを内蔵しており、必要に応じてＣＰＵ１１１およびストリームプロセッサ１１５それぞれとの間のプロセッサ間通信を行うことが出来る。
【００３６】
ＩＥＥＥ１３９４プロセッサ１１９は、ストリームプロセッサ１１５との間のプロセッサ間通信によって、ディスク記憶装置１１７に格納されたコンテンツデータをストリームプロセッサ１１５から取得することが出来る。すなわち、ディスク記憶装置１１７に格納されたコンテンツデータを１３９４バス４上のＩＥＥＥ１３９４デバイス５に送信する場合、ＩＥＥＥ１３９４プロセッサ１１９は、ＰＣＩバス１００を介してストリームプロセッサ１１５にディスクアクセス要求を発行する。これにより、ＩＥＥＥ１３９４プロセッサ１１９は、ＩＥＥＥ１３９４デバイス５から要求された放送コンテンツ等のストリームデータを、ディスク記憶装置１１７から読み出して、要求元のＩＥＥＥ１３９４デバイス５に送信することが出来る。
【００３７】
図３には、ストリームプロセッサ１１５の内部構成が示されている。
【００３８】
ストリームプロセッサ１１５の内部バス４００には、上述のＭＰＵ４０１に加え、図示のように、メモリコントローラ４０２、ＩＤＥコントローラ４０３、ＭＰＥＧ２デコーダ４０４、グラフィクスコントローラ４０５、オーディオコントローラ４０７、ストリーム受信インタフェース４０８、Ｉ２Ｃインタフェース４０９、およびＰＣＩバスインタフェース４１０が接続されている。
【００３９】
メモリコントローラ４０２およびＩＤＥコントローラ４０３は、それぞれ上述のメモリ１１６およびディスク記憶装置１１７を制御する。ＭＰＥＧ２デコーダ４０４は、ＭＰＥＧ２トランスポートストリームをデコードする。このデコード処理においては、まず、ＭＰＥＧ２トランスポートストリームからビデオデータとオーディオデータが分離され、次いで、ビデオデータのデコード処理とオーディオデータのデコード処理とが実行される。
【００４０】
グラフィクスコントローラ４０５は、ＭＰＥＧ２デコーダ４０４によってデコードされたビデオデータを、ＴＶ出力用のビデオ信号（例えば、デジタルビデオ、アナログビデオ、ＤＶＩ等）に変換する。ＮＴＳＣ方式のＴＶ受像機を使用する場合には、グラフィクスコントローラ４０５によって得られたビデオ信号は、ＮＴＳＣエンコーダ４１１によってＮＴＳＣ信号に変換される。
【００４１】
また、グラフィクスコントローラ４０５には、ＲＧＢインタフェース４０６が接続されている。ＲＧＢインタフェース４０６は、ビデオバス１０３を介して入力されるビデオデータ（ＲＧＢ）を受信するインタフェースである。ＲＧＢインタフェース４０６によって受信されたビデオデータ（ＲＧＢ）はグラフィクスコントローラ４０５に送られ、そこでＴＶ出力用のビデオ信号（例えば、デジタルビデオ、アナログビデオ、ＤＶＩ等）に変換される。
【００４２】
オーディオコントローラ４０７は、ＭＰＥＧ２デコーダ４０４によってデコードされたオーディオデータを音データに変換する音源デバイスである。オーディオコントローラ４０７によって得られた音データはＤ／Ａコンバータ（ＤＡＣ）４１２によってデジタル信号からアナログ信号に変換された後に、オーディオ出力端子３０１から出力される。
【００４３】
ストリーム受信インタフェース４０８は、ＴＳバスを介してＴＶチューナ１１４から入力されるストリームデータを受信するインタフェースである。ストリーム受信インタフェース４０８によって受信されたストリームデータは、メモリコントローラ４０２によってメモリ１１６に書き込まれる。Ｉ２Ｃインタフェース４０９は、Ｉ２Ｃバス１０２を介してチャネル選択用の制御情報をＴＶチューナ１１４に送信する。ＰＣＩバスインタフェース４１０はＰＣＩバス４１０と内部バス４００とを繋ぐインタフェースである。
【００４４】
次に、図４乃至図６を参照して、ホームサーバ１１内におけるコンテンツデータの流れについて説明する。
【００４５】
図４には、放送コンテンツデータを受信してからディスク記憶装置１１７に記録するまでのデータの流れが示されている。
【００４６】
ＴＶチューナ１１４によって受信された放送コンテンツのストリームデータは、ＴＳバス１０１を介してストリームプロセッサ１１５に転送される。このストリームデータは、ストリームプロセッサ１１５に接続されたメモリ１１６にバッファリングされる。そして、バッファリングされたストリームデータは、ＣＰＵ１１１から通知されるディスクアクセス要求に基づき、ディスク記憶装置１１７にファイルとして書き込まれる。このディスクアクセス要求には、ライトデータの所在を示すメモリアドレス、ライトデータのデータサイズ、および書き込み先のディスクアドレス（セクタ番号）、等が含まれている。ストリームデータをファイルとして管理するためのファイル管理情報は、ＰＣＩバス１００を介してＣＰＵ１１１からストリームプロセッサ１１５に送られる。このファイル管理情報は、ディスク記憶装置１１７のｉノードリスト領域に書き込まれる。
【００４７】
図５には、ディスク記憶装置１１７とＣＰＵ１１１との間のデータの流れが示されている。
【００４８】
上述のように、ディスク記憶装置１１７に記録されたコンテンツは全てＣＰＵ１１１によってファイルとして管理されている。よって、ＣＰＵ１１１は、コンテンツの種類に関係なく、全てのデータをディスク記憶装置１１７との間で授受する事が出来る。具体的には、ＣＰＵ１１１は、ディスク記憶装置１１７から読み取ったｉノードリストから、各ファイル毎にそれを構成するデータの格納位置を示すディスクアドレスを認識し、そのディスクアドレスからのデータの読み出しを指示するディスクアクセス要求をＰＣＩバス１００を介してストリームプロセッサ１１５に通知する。
【００４９】
ストリームプロセッサ１１５によってディスク記憶装置１１７から読み出されたデータは、ＰＣＩバス１００を介してメモリ１１３またはＣＰＵ１１１に転送される。また、ディスク記憶装置１１７に書き込むべきデータは、メモリ１１３またはＣＰＵ１１１からＰＣＩバス１００を介してストリームプロセッサ１１５に送られる。
【００５０】
図６には、ディスク記憶装置１１７に記憶された放送コンテンツデータをＬＡＮ２上のパーソナルコンピュータ３に送信する場合のデータの流れが示されている。
【００５１】
ネットワークプロセッサ１１８はストリームプロセッサ１１５と同様にＣＰＵ１１１とは独立したプロセッサであるので、ストリームプロセッサ１１５は、ネットワークプロセッサ１１８に対して、データの読み出しを指示するディスクアクセス要求を発行することができる。読み出し対象のファイルを構成するデータのディスクアドレスは、ｉノードリストから認識することが出来る。ｉノードリストは、ストリームプロセッサ１１５自身がディスク記憶装置１１７から直接取得することも出来るが、ＣＰＵ１１１を介して取得しても良い。
【００５２】
ネットワークプロセッサ１１８からのディスクアクセス要求は、ＰＣＩバス１００を介してストリームプロセッサ１１５に送られる。ストリームプロセッサ１１５によってディスク記憶装置１１７から読み出された放送コンテンツのストリームデータは、ＰＣＩバス１００を介してネットワークプロセッサ１１８に送られる。ネットワークプロセッサ１１８は、ストリームデータをパケット化して、ＬＡＮ２上のパーソナルコンピュータ３に送信する。
【００５３】
このように、ディスク記憶装置１１７から読み出されたストリームデータは、ＣＰＵ１１１またはメモリ１１３を経由することなく、ネットワークプロセッサ１１８に送られる。放送コンテンツのストリームデータのみならず、ディスク記憶装置１１７に記録された全てのコンテンツデータを、同様の手順で、ストリームプロセッサ１１５からネットワークプロセッサ１１８に転送することが出来る。
【００５４】
次に、図７を参照して、放送コンテンツデータをディスク記憶装置１１７に記録する場合においてＣＰＵ１１１とストリームプロセッサ１１５との間で実行されるプロセッサ間通信について説明する。
【００５５】
アプリケーションプログラム５０１、ストリーム制御ドライバ５０２、ファイルシステム５０３、およびディスクドライバ５０４は、ＣＰＵ１１１によって実行されるソフトウェアである。また、通信インタフェース６０１、ストリーム制御スレッド６０２、およびストレージ制御スレッド６０３は、ストリームプロセッサ１１５によって実行されるソフトウェアである。
【００５６】
アプリケーションプログラム５０１は、放送コンテンツの録画を制御するプログラムである。アプリケーションプログラム５０１は、受信すべきチャネル番号を示すチャネル指示をストリーム制御ドライバ５０２を通じてストリームプロセッサ１１５に通知する処理、およびファイルシステム５０３に対してストリームデータの保存を依頼する処理等を実行する。
【００５７】
ＣＰＵ１１１によって実行されるストリーム制御ドライバ５０２およびディスクドライバ５０４は、ストリームプロセッサ１１５によって実行される通信インタフェース６０１と通信する。
【００５８】
ストリーム制御ドライバ５０２からのチャネル指示は、通信インタフェース６０１を介してストリーム制御スレッド６０２に送られる。ストリーム制御スレッド６０２は、ストリーム受信インタフェース４０８、Ｉ２Ｃインタフェース４０９、およびメモリコントローラ４０２を制御することによって、ＴＶチューナ１１４からストリームデータを受信する処理、および受信したストリームデータをバッファメモリ７０１に格納する処理を実行する。チャネル指示は、Ｉ２Ｃインタフェース４０９およびＩ２Ｃバス１０２を介して、ＴＶチューナ１１４に送信される。
【００５９】
バッファメモリ７０１は、メモリ１１６上に確保された記憶領域である。バッファメモリ７０１は、図８に示すように、複数のバッファエリア（＃１〜＃ｎ）を含む。これら複数のバッファエリア（＃１〜＃ｎ）は論理的にリング状に接続されており、ストリームデータを格納先すべきバッファエリアは、＃１，＃２，…＃ｎ，＃１，…のように順番に切り替えられる。
【００６０】
ストリーム制御スレッド６０２は、現在格納先として使用されているバッファエリア＃１の空きサイズが一定値以下になると、格納先のバッファエリアをバッファエリア＃２に切り替える。そして、ストリーム制御スレッド６０２は、バッファエリア＃１のメモリアドレス（Ｐ１）とそのバッファエリア＃１に記憶されているストリームデータのデータサイズとを含むポインタ情報を、通信インタフェース６０１を介して、ＣＰＵ１１１に通知する。
【００６１】
ポインタ情報は、ストリーム制御ドライバ５０２を介してアプリケーションプログラム５０１に送られる。アプリケーションプログラム５０１は、ポインタ情報によって、ディスク記憶装置１１７に書き込むべきライトデータの所在およびそのデータサイズを認識することが出来る。ポインタ情報は、アプリケーションプログラム５０１からファイルシステム５０３に通知される。
【００６２】
ファイルシステム５０３は、ディスクドライバ５０４と共同して、バッファメモリ７０１上の該当するデータをディスク記憶装置１１７に書き込むことを指示するディスクアクセス要求を、ポインタ情報に基づいて生成する。このディスクアクセス要求には、ライトデータのメモリアドレスおよびそのデータサイズに加え、書き込み先のセクタ番号を示すディスクアドレスが含まれる。生成されたディスクアクセス要求は、ストリームプロセッサ１１５に通知される。
【００６３】
ストリームプロセッサ１１５においては、ディスクアクセス要求は、通信インタフェース６０１を介してストレージ制御スレッド６０３に送られる。ストレージ制御スレッド６０３は、ＩＤＥコントローラ４０３を制御することによって、ディスク記憶装置１１７に対するデータの書き込み処理、およびディスク記憶装置１１７からのデータの読み出し処理を実行するプログラムである。
【００６４】
ストレージ制御スレッド６０３は、上述のディスクアクセス要求を受けた場合、そのディスクアクセス要求に含まれるメモリアドレスおよびデータサイズによって指定されるメモリ１１６上の書き込みデータを、当該ディスクアクセス要求に含まれるディスクアドレスで指定されるセクタに書き込む処理を実行する。この書き込み処理では、バッファメモリ７０１に保持されているデータがディスク記憶装置１１７に書き込まれる。
【００６５】
さらに、ストレージ制御スレッド６０３は、ファイルシステム５０３からＰＣＩバス１００を通じて通知されるファイル管理情報を、ディスク記憶装置１１７のｉノードリスト領域に書き込む処理を実行する。これにより、ストリームデータをファイルとして管理することができる。
【００６６】
図９には、ＣＰＵ１１１によって実行されるソフトウェアスタックとストリームプロセッサ１１５によって実行されるソフトウェアスタックとの関係が示されている。
【００６７】
ストリームプロセッサ１１５においては、上述のストリーム制御スレッド６０２、およびストレージ制御スレッド６０３に加え、デコードスレッド６０４、およびグラフィクススレッド６０５も実行される。デコードスレッド６０４は、ＭＰＥＧ２デコーダ４０４を用いて、ＭＰＥＧ２トランスポートストリームをデコードする処理を実行するプログラムである。このデコード処理は、ＣＰＵ１１１によって実行されるデコード制御ドライバ６０６から通知されるデコード指示に基づいて実行される。グラフィクススレッド６０５は、グラフィクスコントローラ４０５を用いて、デコードされたビデオデータからＴＶ表示用のビデオ信号を生成するためのビデオ再生処理を実行するプログラムである。このビデオ再生処理は、ＣＰＵ１１１によって実行されるグラフィクスドライバ６０６から通知される再生指示に基づいて実行される。
【００６８】
ストリームプロセッサ１１５によって実行される４つのスレッド、すなわち、ストリーム制御スレッド６０２、ストレージ制御スレッド６０３、デコードスレッド６０４、およびグラフィクススレッド６０５はそれぞれ独立して動作する。メモリ１１６上には、ストリーム制御スレッド６０２、ストレージ制御スレッド６０３、デコードスレッド６０４、およびグラフィクススレッド６０５それぞれに対応するバッファメモリが割り当てられている。これらストリーム制御スレッド６０２、ストレージ制御スレッド６０３、デコードスレッド６０４、およびグラフィクススレッド６０５は、対応するバッファメモリを介して、ストリーム制御ドライバ５０２、ファイルシステム５０３、デコード制御ドライバ６０６、およびグラフィクスドライバ６０７と通信する。
【００６９】
次に、図１０のフローチャートを参照して、放送コンテンツデータをディスク記憶装置１１７に記録する処理の手順について説明する。
【００７０】
まず、ＣＰＵ１０１は、受信すべき放送コンテンツデータのチャネル番号を示すチャネル指示を、ＰＣＩバス１００を介してストリームプロセッサ１１５に通知する（ステップＳ１０１）。ストリームプロセッサ１１５は、ＣＰＵ１０１から受けたチャネル指示に基づき、どのチャネルの放送コンテンツデータを受信すべきであるかを示す制御情報を、Ｉ２Ｃバス１０２を介してＴＶチューナ１１４に送信し、これによってＴＶチューナ１１４が受信すべきチャネルを選択する（ステップＳ１１１）。ＴＶチューナ１１４は選択されたチャネルの放送コンテンツデータを受信し、その受信した放送コンテンツデータを構成するストリームデータをＴＳバス１０１を介してストリームプロセッサ１１５に送信する。
【００７１】
ストリームプロセッサ１１５は、ＴＶチューナ１１４から送信されるストリームデータをストリーム受信インタフェース４０８を用いて受信し、その受信したストリームデータを、メモリ１１６上に確保された複数のバッファメモリに順次書き込む（ステップＳ１１２，Ｓ１１３）。現在書き込み先として選択されているバッファメモリがストリームデータで満たされるたびに、ストリームプロセッサ１１５は、書き込み先のバッファメモリを、現在書き込み先として選択されているバッファメモリから次のバッファメモリに切り替えると共に、上述のポインタ情報をＰＣＩバス１００を介してＣＰＵ１１１に通知する（ステップＳ１１４）。
【００７２】
ＣＰＵ１１１は、ストリームプロセッサ１１５からポインタ情報を取得すると（ステップＳ１０２）、その取得したポインタ情報に基づいて、バッファメモリに蓄積されたデータをディスク記憶装置１１７に書き込むことを指示するディスクアクセス要求を生成し、そのディスクアクセス要求をＰＣＩバス１００を介してストリームプロセッサ１１５に通知する（ステップＳ１０３）。
【００７３】
ストリームプロセッサ１１５は、ＣＰＵ１１１からのディスクアクセス要求に基づき、バッファメモリ上のデータをディスク記憶装置１１７に書き込む処理を実行する（ステップＳ１１５）。このステップＳ１１５においては、ＰＣＩバス１００を通じてＣＰＵ１１１からストリームプロセッサ１１５に通知されるファイル管理情報をディスク記憶装置１１７に書き込む処理も実行される。
【００７４】
次に、図１１のフローチャートを参照して、ディスク記憶装置１１７に記録されている放送コンテンツデータをデコードおよび再生する処理について説明する。
【００７５】
ＣＰＵ１１１は、ｉノードリストに基づいて、再生対象の放送コンテンツデータをディスク記憶装置からバッファメモリに読み出すことを指示するディスクアクセス要求を生成し、それをＰＣＩバス１００を介してストリームプロセッサ１１５に通知する（ステップＳ２０１）。ストリームプロセッサ１１５は、ＣＰＵ１１１からのディスクアクセス要求に基づき、ディスク記憶装置１１７からデコードおよび再生対象の放送コンテンツデータを構成するストリームデータを読み出し、それをバッファメモリに書き込む（ステップＳ２１３）。
【００７６】
この後、ＣＰＵ１１１は、ＰＣＩバス１００を介して、デコード指示および再生指示をそれぞれストリームプロセッサ１１５に通知する（ステップＳ２０２，Ｓ２０３）。
【００７７】
ストリームプロセッサ１１５は、ＣＰＵ１１１からのデコード指示に基づき、バッファメモリ上のストリームデータをデコードし（ステップＳ２１３）、そしてＣＰＵ１１１からの再生指示に基づき、デコードされたストリームデータをＴＶ受像機６から再生出力するためのビデオ信号に変換する処理（グラフィクス処理）を実行する（ステップＳ２１４）。
【００７８】
なお、ストリームプロセッサ１１５は、ディスク記憶装置１１７に記憶された放送コンテンツデータをデコードおよび再生するだけではなく、ＴＶチューナ１１４によって受信された放送コンテンツデータをリアルタイムにデコードおよび再生することも可能である。
【００７９】
以上のように、本実施形態のホームサーバ１１においては、ディスク記憶装置１１７に記録されたデータをファイルとして管理するＣＰＵ１１１に加え、ディスク記憶装置１１７に接続された第１のインタフェースとＴＶチューナ１１４に接続された第２のインタフェースとを有するストリームプロセッサ１１５が設けられている。ストリームプロセッサ１１５は、ＣＰＵ１１１からのディスクアクセス要求に応じて、ディスク記憶装置１１７へのデータの書き込みおよびディスク記憶装置１１７からのデータの読み出しを実行する。このストリームプロセッサ１１５を用いることにより、ＣＰＵ１１１の制御の下に、ＴＶチューナ１１４によって受信されたストリームデータをＰＣＩバス１００を介さずにディスク記憶装置１１７にファイルとして記録することが可能となる。
【００８０】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００８１】
【発明の効果】
以上説明したように、本発明によれば、バストラフィックの増大を招くことなく、ストリームデータを効率よく処理することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るホームネットワークシステムの構成を示すブロック図。
【図２】図１のホームネットワークシステムで使用されるホームサーバの構成を示すブロック図。
【図３】図２のホームサーバに設けられたストリームプロセッサの構成を示すブロック図。
【図４】図２のホームサーバにおいて放送コンテンツデータを受信してからディスク記憶装置に記録するまでのデータの流れを示す図。
【図５】図２のホームサーバにおけるディスク記憶装置とＣＰＵとの間のデータの流れを示す図。
【図６】図２のホームサーバにおいてディスク記憶装置に記憶されている放送コンテンツデータをＬＡＮ上のパーソナルコンピュータに送信する場合のデータの流れを示す図。
【図７】図２のホームサーバ内に設けられたＣＰＵとストリームプロセッサとの間で実行されるプロセッサ間通信を説明するための図。
【図８】図２のホームサーバ内に設けられたストリームプロセッサのバッファメモリを説明するための図。
【図９】図２のホームサーバ内に設けられた、ＣＰＵによって実行されるソフトウェアスタックとストリームプロセッサ１によって実行されるソフトウェアスタックとの関係を示す図。
【図１０】図２のホームサーバによって実行されるストリームデータの記録処理の手順を示すフローチャート。
【図１１】図２のホームサーバによって実行されるストリームデータのデコードおよび再生処理の手順を示すフローチャート。
【符号の説明】
１１…ホームサーバ
１００…ＰＣＩバス
１０１…ＴＳバス
１１１…ＣＰＵ
１１５…ストリームプロセッサ
１１７…ディスク記憶装置
１１８…ネットワークプロセッサ
１１９…ＩＥＥＥ１３９４プロセッサ
１１３，１１６…メモリ
４０１…ＭＰＵ
４０３…ＩＤＥコントローラ
【図１】
0003655266.tif 000002
【図２】
0003655266.tif 000003
【図３】
0003655266.tif 000004
【図４】
0003655266.tif 000005
【図５】
0003655266.tif 000006
【図６】
0003655266.tif 000007
【図７】
0003655266.tif 000008
【図８】
0003655266.tif 000009
【図９】
0003655266.tif 000010
【図１０】
0003655266.tif 000011
【図１１】
0003655266.tif 000012