(57)【特許請求の範囲】
【請求項１】
サイクルタイム毎に所定の予約帯域を割り当てることによってストリームデータを帯域保証した状態で転送することが可能な帯域保証サイクルが転送モードとして定義された内部バスと、
前記内部バスに接続され、前記帯域保証サイクルを用いてストリームデータの送信／受信を行うことが可能な複数のノードと、
前記帯域保証サイクルで転送されるストリームデータを受信している受信側ノードから前記内部バス上に所定の信号を出力することによって、前記帯域保証サイクルによって前記ストリームデータを送信している送信側ノードに、前記ストリームデータの送信を停止させる手段とを具備し、前記ストリームデータの送信が停止された前記送信ノードは、次のサイクルタイムを待って、前記帯域保証サイクルによるストリームデータの送信を再開することを特徴とするデータ処理装置。
【請求項２】
前記内部バスには、現在実行中のバスサイクルの終結を示すための信号線が含まれており、
前記帯域保証サイクルで転送されるストリームデータを受信している受信側ノードは、前記信号線をアクティブにすることによって、前記送信ノードによるストリームデータの送信を停止させることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記受信側ノードは、前記内部バスから受信したストリームデータを一時的に蓄積するための受信バッファと、前記受信バッファの蓄積データ量が所定値を越えたか否かを検出する手段とを具備し、前記受信バッファの蓄積データ量が所定値を越えたとき、前記内部バス上に前記所定の信号を出力するように構成されていることを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記帯域保証サイクルは、同一チャネル番号が割り当てられた送信側ノードと受信側ノードとの間でピアツーピア形式で直接的に実行されることを特徴とする請求項１記載のデータ処理装置。
【請求項５】
サイクルタイム毎に所定の予約帯域を割り当てることによってストリームデータを帯域保証した状態で転送することが可能な帯域保証サイクルと、バスマスタからのバスアクセス要求に応じて、前記予約帯域以外の期間中に転送サイクルを非同期で実行する非同期転送サイクルとが、転送モードとして定義された内部バスと、
前記内部バスに接続され、前記帯域保証サイクルまたは非同期転送サイクルを用いてデータの送信／受信を行うことが可能な複数のノードと、
前記帯域保証サイクルを用いてストリームデータを送信している送信側ノードからのバスアクセス要求に応じて、前記非同期転送サイクルのためのバス使用権を前記送信側ノードに割り当てる手段とを具備し、
前記帯域保証サイクルは、同一チャネル番号が割り当てられた送信側ノードと受信側ノードとの間でピアツーピア形式で直接的にデータ転送を行うストリームアクセスモードによって実行され、
前記送信側ノードは、前記非同期転送サイクルのためのバス使用権が与えられた場合には、前記帯域保証サイクルで使用しているチャネル番号と同一のチャネル番号によって受信側ノードを指定することによって、前記予約帯域以外の期間中に前記ストリームアクセスモードを用いて前記ストリームデータを送信することを特徴とするデータ処理装置。
【請求項６】
サイクルタイム毎に所定の予約帯域を割り当てることによってストリームデータを帯域保証した状態で転送することが可能な帯域保証サイクルと、バスマスタからのバスアクセス要求に応じて、前記予約帯域以外の期間中に転送サイクルを非同期で実行する非同期転送サイクルとが、転送モードとして定義された内部バスと、
前記内部バスに接続され、前記帯域保証サイクルまたは非同期転送サイクルを用いてデータの送信／受信を行うことが可能な複数のノードと、
前記帯域保証サイクルを用いてストリームデータを送信している送信側ノードから受信側ノードへの前記ストリームデータの送信を、前記予約帯域以外の期間中にも実行できるように、前記帯域保証サイクルを用いてストリームデータを送信している送信側ノードからのバスアクセス要求に応じて、前記非同期転送サイクルのためのバス使用権を前記送信側ノードに割り当てる手段とを具備し、
前記送信側ノードは、前記帯域保証サイクルによって送信すべきストリームデータを一時的に蓄積するための送信バッファと、前記送信バッファの蓄積データ量が所定値を越えたか否かを検出する手段とを具備し、前記送信バッファの蓄積データ量が所定値を越えたとき、前記バスアクセス要求を発行するように構成されていることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理装置およびそのバス制御方法に関し、特にオーディオ／ビデオデータ、他のデータ、およびプログラム等の各種データを扱うデータ処理装置およびそのバス制御方法に関する。
【０００２】
【従来の技術】
近年、コンピュータ技術の発達に伴い、マルチメディア対応のパーソナルコンピュータ、セットトップボックス、デジタルＴＶ、ゲーム機などの各種デジタル情報機器が開発されている。この種のデジタル情報機器においては、放送メディア、通信メディア、ストレージメディアなどの様々なメディアを扱う能力が要求されている。
【０００３】
このため、パーソナルコンピュータにおいては、通常のプログラム処理のための機能に加え、リアルタイム性が必要とされるＡＶ（オーディオ／ビデオ）ストリームデータを扱うための機能が要求されている。一方、セットトップボックス、デジタルＴＶ、ゲーム機などのコンシューマＡＶ機器においては、ソフトウェア制御を利用したインタラクティブなタイトル再生などに対応するために、コンピュータデータ、つまりＡ／Ｖストリームデータ以外の他のデータやプログラムを扱うための機能が要求されている。
【０００４】
【発明が解決しようとする課題】
しかし、従来のコンピュータの内部バスでは、ＡＶストリームとコンピュータデータが同じものとして扱われていたため、高度なリアルタイム性を要求されるＡＶストリームを流すのには適さなかった。例えば、ＡＶデータとコンピュータデータが同時にバスを流れているとき、コンピュータデータのトラフィックが突然大きくなった場合（例えばプリントアウト時、ファイルアクセス時等）には、ＡＶデータは大きな伝送遅延を招くことになる。内部バス上ではＡＶデータとコンピュータデータとが区別されていないため、リアルタイム処理が必要なＡＶデータを優先的に流すような処理を行うことが出来ないからである。
【０００５】
さらに、従来のコンピュータ機器のアーキテクチャでは、データ転送のレーテンシの保証が困難なため、内部バスに接続されるＡＶデバイス等にはレーテンシ保証のため巨大なバッファを設けることが必要とされた。また、ＤＶＤタイトルのような可変ビットレートのストリームを扱う場合には、最大転送レート時でも受信デバイス側のバッファがオーバーフローしないように大きなバッファを搭載することが必要とされていた。これは、コスト増大を引き起こす大きな要因となっている。
【０００６】
また、ＡＶデータの転送のみを優先して行うと、早急に処理を行うことがイベントが発生しても、そのイベントに対する処理が遅滞してしまう危険もある。
【０００７】
一方、従来のＡＶ機器では、ＡＶストリームの処理順に複数のデバイスを縦続接続することによって、ＡＶストリームを扱うデバイス同士を物理的にピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）接続していた。よって、ＡＶストリームは、基本的に、ＣＰＵに入ることはなかった。しかし、最近では、ＡＶストリームとインタラクティブ命令が融合されたメディア（パイパーメディア）の出現により、ＣＰＵでストリームを処理することが要求され始めている。よって、今までのようにデバイス間を物理的にＰｅｅｒ  ｔｏ  Ｐｅｅｒ接続することが困難となりつつあり、バス接続への模索が始まりつつある。
【０００８】
本発明はこのような事情に鑑みてなされたものであり、内部バス上でストリームデータの転送を効率よく行えるようにし、ＡＶストリームとコンピュータデータの融合に好適なデータ処理装置およびそのバス制御方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上述の課題を解決するため、本発明のデータ処理装置は、サイクルタイム毎に所定の予約帯域を割り当てることによってストリームデータを帯域保証した状態で転送することが可能な帯域保証サイクルが転送モードとして定義された内部バスと、前記内部バスに接続され、前記帯域保証サイクルを用いてストリームデータの送信／受信を行うことが可能な複数のノードと、前記帯域保証サイクルで転送されるストリームデータを受信している受信側ノードから前記内部バス上に所定の信号を出力することによって、前記帯域保証サイクルによって前記ストリームデータを送信している送信側ノードに、前記ストリームデータの送信を停止させる手段とを具備し、前記ストリームデータの送信が停止された前記送信ノードは、次のサイクルタイムを待って、前記帯域保証サイクルによるストリームデータの送信を再開することを特徴とする。
【００１０】
このデータ処理装置においては、帯域保証サイクルが転送モードとして定義された内部バスを使用することにより、コンピュータデータのトラフィックに関係なく、高度なリアルタイム性が要求されるストリームデータの帯域を保証することができる。また、通常は帯域保証サイクルの実行中はそのデータ転送を途中で停止することは出来ないのが普通であるが、本発明では、帯域保証サイクル中であっても、受信側ノードからの制御によって送信側ノードからのストリームデータの送信を停止させることができる。このように受信側ノードからの制御でストリームデータの送信を停止させる仕組みを設けることにより、ストリーム処理の遅滞や、可変レートストリームの受信などによって受信側ノードのバッファがオーバーフローするような危険が生じた場合でも、バッファのオーバーフローを未然に防止することができる。よって、必要最小限のバッファのみで内部バスを介したリアルタイム転送を効率よく行うことができる。また、バス接続方式であるので、論理的なデータの流れによってノード間の接続関係を柔軟に制御することができる。
【００１１】
また、同一チャネル番号が割り当てられたノード間で前記帯域保証サイクルによるデータ転送がピアツーピア形式で実行されるように、前記内部バスに接続された複数のノードそれぞれにチャネル番号を割り当てることにより、内部バス上で論理的なピアツーピア接続を実現することができる。これにより、内部バス上でピアツーピアによるデータ転送が可能となるので、ノード間を物理的にピアツーピア接続することなく、内部バス上で効率の良いデータ転送を行うことが可能となる。
【００１２】
また、本発明のデータ処理装置は、サイクルタイム毎に所定の予約帯域を割り当てることによってストリームデータを帯域保証した状態で転送することが可能な帯域保証サイクルと、バスマスタからのバスアクセス要求に応じて、前記予約帯域以外の期間中に転送サイクルを非同期で実行する非同期転送サイクルとが、転送モードとして定義された内部バスと、前記内部バスに接続され、前記帯域保証サイクルまたは非同期転送サイクルを用いてデータの送信／受信を行うことが可能な複数のノードと、前記帯域保証サイクルを用いてストリームデータを送信している送信側ノードからのバスアクセス要求に応じて、前記非同期転送サイクルのためのバス使用権を前記送信側ノードに割り当てる手段とを具備し、前記帯域保証サイクルは、同一チャネル番号が割り当てられた送信側ノードと受信側ノードとの間でピアツーピア形式で直接的にデータ転送を行うストリームアクセスモードによって実行され、前記送信側ノードは、前記非同期転送サイクルのためのバス使用権が与えられた場合には、前記帯域保証サイクルで使用しているチャネル番号と同一のチャネル番号によって受信側ノードを指定することによって、前記予約帯域以外の期間中に前記ストリームアクセスモードを用いて前記ストリームデータを送信することを特徴とする。
【００１３】
この構成によれば、帯域保証サイクルのみならず、必要に応じて、非同期転送サイクルをストリームデータの送信に使用することができる。したがって、たとえ受信放送番組の切り換えなどによってチューナから送信すべきストリームデータが低帯域幅のデータから高帯域幅のデータに切り換えられたような場合でも、帯域保証サイクルに非同期転送サイクルを加えることにより、必要な帯域を広げることが可能となる。よって、送信側ノードのバッファのオーバーフローなどの問題を未然に防止することができる。
【００１６】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００１７】
図１には、本発明の一実施形態に係るデータ処理装置のシステム構成が示されている。このデータ処理装置はマルチメディア対応のコンピュータであり、放送メディア、通信メディア、ストレージメディアなどの様々なメディアを扱うことができる。また、このデータ処理装置は、プログラム処理機能とＡＶ（オーディオ／ビデオ）ストリームデータを扱うための機能とを高い次元で両立するために、イベントドリブン型の非同期データ転送（Ａｓｙｎｃｈｒｏｎｏｕｓ転送）を行う通常の内部バス（Ａｓｙｎｃ  Ｂｕｓ）１００に加え、マルチメディアバス（Ｍｕｌｔｉｍｅｄｉａ  Ｂｕｓ）２００を有している。マルチメディアバス２００は帯域保証サイクルとイベントドリブン型の非同期転送サイクルの２つの転送モードが定義された内部バスであり、このマルチメディアバス２００を使用することにより、コンピュータデータとＡＶストリームデータの双方を効率よく転送することができる。帯域保証サイクルの詳細は図２以降で説明するが、基本的には、サイクルタイム毎にデータ転送に使用するための所定の時間を予約帯域として割り当てることにより、ストリームデータを帯域保証した状態で転送する転送モードを意味している。
【００１８】
（システム構成）
以下、具体的なシステム構成について説明する。
このシステムには、図示のように、ＣＰＵ１１、システムメモリ１２、３Ｄグラフィクスアクセラレータ１３、およびＣＰＵインターフェイス１４が設けられている。ＣＰＵ１１、システムメモリ１２、および３Ｄグラフィクスアクセラレータ１３はＣＰＵインターフェイス１４によって相互接続されており、プログラム実行処理や３Ｄグラフィクス演算処理などはこれらユニットによって実行される。ＣＰＵインターフェイス１４はホストバスブリッジであり、ＣＰＵバスとＡｓｙｎｃ  Ｂｕｓ１００を双方向で接続する。Ａｓｙｎｃ  Ｂｕｓ１００には、Ｉ／Ｏコントローラ２２が接続されている。Ｉ／Ｏコントローラ２２はデジタルビデオ信号を外部ＡＶ機器などに出力するためのインターフェイスを初め、各種周辺装置との通信のためのインターフェイス（ＳＩＯインターフェイス、Ｉ２Ｃバスインターフェイス、ＩＲ（赤外線）インターフェイス、ＵＳＢインターフェイス、ＩＤＥインターフェイス、ＭＩＤＩインターフェイス）を有している。ＤＶＤドライブやＨＤＤなどのストレージデバイスはＩＤＥインターフェイスを介してＩ／Ｏコントローラ２２に接続される。
【００１９】
また、マルチメディアバス２００には、図示のように、マルチメディアバスマネージャ１５、メディアプロセッサ１６、ＣＡＳモジュール１８，ＰＣＭＣＩＡインターフェイス１９、ＩＥＥＥ１３９４インターフェイス２１などが接続されている。これらマルチメディアバスマネージャ１５、メディアプロセッサ１６、ＣＡＳモジュール１８、ＰＣＭＣＩＡインターフェイス１９、およびＩＥＥＥ１３９４インターフェイス２１は、それぞれマルチメディアバス２００を介してデータ転送を行うノードであり、前述の帯域保証サイクルおよび非同期転送サイクルを利用することができる。
【００２０】
マルチメディアバスマネージャ１５はマルチメディアバス２００の管理ノードであり、マルチメディアバス２００上で帯域保証サイクルおよび非同期転送サイクルを行うための制御を行う。具体的には、帯域保証サイクルで使用する予約バンドの管理、サイクルタイムの管理、バス調停などがマルチメディアバスマネージャ１５によって実行される。また、マルチメディアバスマネージャ１５には、マルチメディアバス２００とＣＰＵインターフェイス１４を双方向で接続するための機能も設けられており、マルチメディアバス２００上のノードから転送されるＡＶストリームをＣＰＵ１１に送ったり、ＤＶＤドライブからシステムメモリ１２上に読み出されたＡＶストリームをマルチメディアバス２００上のノードに送信する事ができる。
【００２１】
メディアプロセッサ１６は、ＭＰＥＧ２デコード、ストリーム暗号化、ＮＴＳＣエンコード、２Ｄグラフィクス演算などの機能を有しており、ＡＶストリームの再生表示などの制御はこのメディアプロセッサ１６によって実行される。ＣＡＳモジュール１８はＣＡＴＶ／サテライトチューナ２０を接続するための専用インターフェイスである。また、ＣＡＴＶ／サテライトチューナ２０は、ＰＣＭＣＩＡインターフェイス１９を介して接続することもできる。
【００２２】
ここで、マルチメディアバス２００の基本的な利用形態について説明する。
【００２３】
まず、ＣＡＴＶ／サテライトチューナ２０で受信した映像データをモニタに表示しながら、ストレージデバイスおよび外部の１３９４機器に送信する場合を説明する。
【００２４】
映像データはＭＰＥＧ２トランスポートストリームから構成されており、このＭＰＥＧ２トランスポートストリームは、ＣＡＳモジュール１８またはＰＣＭＣＩＡインターフェイス１９からメディアプロセッサ１６に送信される。この場合、送信側ノードとなるＣＡＳモジュール１８またはＰＣＭＣＩＡインターフェイス１９と、受信側ノードとなるメディアプロセッサ１６には、同一のチャネル番号（例えばチャネル番号１）が割り当てられる。そして、前述の帯域保証サイクルにより、送信側ノードから受信側ノードにピアツーピア形式でＭＰＥＧ２トランスポートストリームが送信される。メディアプロセッサ１６では、ＭＰＥＧ２トランスポートストリームのデコードおよび表示再生処理と、ＭＰＥＧ２トランスポートストリームを不正コピーから保護するための暗号化処理とが並行して実行される。暗号化されたストリームデータは、順次、メディアプロセッサ１６からマルチメディアバスマネージャ１５および１３９４インターフェイス２１に送信される。この場合、送信側ノードとなるメディアプロセッサ１６と、受信側ノードとなるマルチメディアバスマネージャ１５および１３９４インターフェイス２１には、同一のチャネル番号（例えばチャネル番号２）が割り当てられる。これにより、メディアプロセッサ１６からマルチメディアバスマネージャ１５へのデータ転送、およびメディアプロセッサ１６から１３９４インターフェイス２１へのデータ転送が、それぞれピアツーピア形式で行われる。また、このチャネル番号２のストリーム転送は、チャネル番号１のストリーム転送と時分割で並行して行われる。
【００２５】
暗号化されたストリームはマルチメディアバスマネージャ１５、ＣＰＵインターフェイス１４を介してシステムメモリ１２に一旦ロードされた後、Ｉ／Ｏコントローラ２２を介してストレージデバイスに記録される。また、これと同時に、１３９４インターフェイス２１から外部の１３９４機器に暗号化ストリームが送信される。
【００２６】
（マルチメディアバス）
次に、マルチメディアバス２００の具体的な転送制御方法について説明する。
【００２７】
１）サイクルタイム
図２に示されているように、マルチメディアバス２００上へのアクセスは、時間を一定の間隔単位で分割して行う。この一定の間隔をサイクルタイム（Ｃｙｃｌｅ  Ｔｉｍｅ）と呼ぶ。
【００２８】
２）転送モード
マルチメディアバス２００には、前述の２つの転送モードを実現するために、２つのバンドが存在する。一つは予約バンド、もう一つはＡｓｙｎｃｈｒｏｎｏｕｓバンド（以下、Ａｓｙｎｃバンドと称する）である。予約バンドは、帯域保証転送のためにサイクルタイム中に予約されたバンドである。この予約バンドを用いた転送サイクルが前述の帯域保証サイクル（以下、予約バンドサイクル）であり、Ａｓｙｎｃバンドを用いた転送サイクルが前述の非同期転送サイクル（以下、Ａｓｙｎｃサイクル）である。
【００２９】
ただし、予約バンドとＡｓｙｎｃバンドが明確に時間で分かれているのではなく、予約された帯域を処理しているバンドが予約バンド、予約バンド以外の期間中に、アクセス要求に従って随時実行される転送サイクルがＡｓｙｎｃバンドとなる。
【００３０】
３）チャネル
マルチメディアバス２００ではすべてのアクセスはチャネルによって管理されており、複数チャネルの転送を時分割で行うことができる。図２には、チャネル１の予約バンド幅として２タイムスロットの時間が予約されている場合の例が示されている。２タイムスロットは必ずしも時間的に連続している必要はなく、１サイクルタイム内に割り当てられればよい。
【００３１】
４）アクセスの種類
アクセスの種類は、以下の３種類である。
ａ）ストリームアクセス
ストリームアクセスでは、各チャネルに対し、送信側ノードと受信側ノードが指定され、チャネル以外のアドレスは使用されない。また、通常のＰＣＩバストランザクションのような受信側からのウェイトコントロールも行われない。このストリームアクセスの様子を図３に示す。図３では、ノードＡがチャネル番号１の送信側ノード、ノードＤがチャネル番号１の受信側ノードである。この場合、共にチャネル番号１が割り当てられたノードＡとノードＤとがマルチメディアバス２００上で論理的にピアツーピア接続された形式となり、ノードＡとノードＤと間のデータ転送がそれらノード間で直接的に実行される。また、一つの送信側ノードに対して、その送信側ノードと同一チャネル番号の受信側ノードを複数設定することもできる。図３においては、ノードＢをチャネル番号２の送信側ノード、ノードＣおよびノードＥをチャネル番号２の受信側ノードとした場合が示されている。この場合、ノードＢからのストリームデータは、ノードＣおよびノードＥにマルチキャストされる。本実施形態では、予約バンドサイクルでは、常に、ストリームアクセスが用いられる。また、ストリームアクセスは、Ａｓｙｎｃサイクルでも利用することができる。
【００３２】
ｂ）シングルアクセス
Ａｓｙｎｃサイクルでのみ利用されるアクセスであり、アドレスおよびコマンド転送フェーズとそれに後続する１回のデータ転送フェーズから構成される。
【００３３】
ｃ）バーストアクセス
Ａｓｙｎｃサイクルでのみ利用されるアクセスであり、アドレスおよびコマンド転送フェーズとそれに後続する複数のデータ転送フェーズから構成される。
【００３４】
（チャネルコントロールレジスタ）
図４には、マルチメディアバス２００上の各ノードに設けられるチャネルコントロールレジスタの内容が示されている。
【００３５】
チャネルコントロールレジスタはコンフィグ空間に定義されており、複数チャネル分の制御情報を持つことができる。各チャネルの制御情報は、チャネルコントロール情報（Ｃｈ  Ｃｎｔ）、チャネル番号情報（Ｃｈ  Ｎｏ）、必要帯域情報（Ｎｅｃｅｓｓｉｔｙ）を１組として構成される。必要帯域情報はストリーム転送に必要な帯域を示すものであり、この情報は該ノードのドライバ（ソフトウェア）によって送受信すべきストリーム毎に設定される。チャネル番号情報は、管理ノードによって設定されたチャネル番号を示す。チャネルコントロール情報には、該当するチャネルの有効／無効を示すチャネルアベイラブル情報（Ｃｈ．Ａｖａ）、該当するチャネルが入力チャネル（受信側ノード）であるか出力チャネル（送信側ノード）であるかを示すＩ／Ｏ情報（Ｉｎ／Ｏｕｔ）などが含まれている。
【００３６】
どのノードが、どのチャネルに対して出力／入力するかは、管理ノードがアクセス開始前にＣｏｎｆｉｇレジスタを使って通知する。
【００３７】
（予約バンドサイクルの制御）
本実施形態では、予約バンドサイクルの転送制御方法として以下の３つの方法が用意されている。
【００３８】
１）予約バンドサイクルのフロー制御：  受信側ノードからの制御により、ストリームアクセスを停止させる
２）Ａｓｙｎｃサイクルを用いたストリームアクセス制御：  送信側ノードからの要求により、Ａｓｙｎｃサイクルでストリームアクセスを行う
３）Ａｓｙｎｃサイクルの挿入制御：  予約バンドサイクル処理中でもＡｓｙｎｃサイクルを受付け、Ａｓｙｎｃサイクルを予約バンドサイクル中に挿入する
以下、個々の制御方法について具体的に説明する。
【００３９】
（予約バンドサイクルのフロー制御）
まず、図５を参照して、予約バンドサイクルのフロー制御の原理について説明する。図５（Ａ）は、３タイムスロット分の予約バンドを用いてストリームアクセスを行う場合のタイミングチャートである。予約バンドサイクル処理中に受信側ノードからマルチメディアバス２００上にディスコネクト信号（Ｄｉｓｃｏｎｎｅｃｔ）が出力されると、図５（Ｂ）に示されているように、そのディスコネクト信号に応答して送信側ノードは現在のストリームアクセスを停止し、ストリームデータの送信を中断する。そして、次のサイクルタイムが来ると、送信側ノードは、後続するストリームデータを送信するためのストリームアクセスを開始する。
【００４０】
このように受信側ノードからの制御でストリームアクセスを停止させる仕組みを設けることにより、ストリーム処理の遅滞や、可変レートストリームの受信などによって受信側ノードのバッファがオーバーフローするような危険が生じた場合でも、バッファのオーバーフローを未然に防止することができる。よって、必要最小限のバッファのみで必要なリアルタイム転送を効率よく行うことができる。
【００４１】
図６には、フロー制御のための具体的なタイミングが示されている。
【００４２】
ここでは、まず、マルチメディアバス２００に含まれる信号線の意味について説明する。マルチメディアバス２００には、クロック信号ＣＬＫ線、３ビット幅のチャネル番号／バイトイネーブル信号（ｃｈ＿Ｎｕｍ／ＢＥ￣）線、３２ビット幅のデータ（Ｄａｔａ）線、ディスクコネクト信号（Ｄｉｓｃｏｎｎｅｃｔ￣）線、バスリクエスト信号（Ａｃｃｅｓｓ  ＲＥＱ￣）線、バスグラント信号（Ａｃｃｅｓｓ  ＧＮＴ￣）線、レディー信号（Ｒｅａｄｙ￣）線が含まれている。
【００４３】
チャネル番号／バイトイネーブル信号（ｃｈ＿Ｎｕｍ／ＢＥ￣）は、アクセス開始時においてはこれからアクセスを開始すべきチャネル番号を示し、アクセス時にはデータ（Ｄａｔａ）線上のデータの有効バイトレーンを示す。チャネル番号は、予約バンドサイクルでは管理ノードによって出力され、またＡｓｙｎｃサイクルではバス使用権を獲得したバスマスタノードによって出力される。
【００４４】
ディスクコネクト信号（Ｄｉｓｃｏｎｎｅｃｔ￣）は現在のストリームアクセスからノードを切り離すための切り離し信号であり、転送サイクルの終結を示す。ストリームアクセス中に送信ノードからのストリームデータ送信を停止させる場合には、このディスクコネクト信号（Ｄｉｓｃｏｎｎｅｃｔ￣）は受信ノードから出力される。また、通常はストリームアクセスの終結を示すために、管理ノードからディスクコネクト信号（Ｄｉｓｃｏｎｎｅｃｔ￣）が出力される。
【００４５】
アクセスリクエスト信号（Ａｃｃｅｓｓ  ＲＥＱ￣）およびアクセスグラント信号（Ａｃｃｅｓｓ  ＧＮＴ￣）は、Ａｓｙｎｃサイクルのためのバス使用権の調停を行うために使用される。バス調停を行う管理ノードと各ノードとの間には、一対のアクセスリクエスト信号（Ａｃｃｅｓｓ  ＲＥＱ￣）およびアクセスグラント信号（Ａｃｃｅｓｓ  ＧＮＴ￣）が設けられている。アクセス要求はＡｃｃｅｓｓＲＥＱ信号を使って行われる。バスをアクセスしたいノードはＡｃｃｅｓｓＲＥＱをアサートする。アクセス要求の調停は管理ノードで行われる。アクセス許可はＡｃｃｅｓｓＧＮＴによって通知される。ＡｃｃｅｓｓＧＮＴは遅くともＤｉｓｃｏｎｎｅｃｔがアサートされるのと同時にアサートされる。よって、アクセスを要求しているノードはＤｉｓｃｏｎｎｅｃｔと、ＡｃｃｅｓｓＧＮＴをＣＬＫでラッチし、Ｄｉｓｃｏｎｎｅｃｔがアサートされているとき、ＡｃｃｅｓｓＧＮＴがアサートされたノードがバスの使用権を得る（マスターノード）。
【００４６】
ストリームアクセスにおいては、各ノードは、自身のチャネル番号がチャネル番号／バイトイネーブル信号（ｃｈ＿Ｎｕｍ／ＢＥ￣）によって指定されたときにクロックＣＬＫに合わせてデータを入出力できる。チャネル番号はＤｉｓｃｏｎｎｅｃｔ信号（アクセスサイクルの終了を示す）がアサートされたクロックから３番目のクロックの立ち上がりエッジから出力され、４目のクロックの立ち上がりエッジでラッチされる。予約バンドサイクルでは、管理ノードがマスタとなるため、ストリームアクセスを要求するＡｃｃｅｓｓＲＥＱはアサートが禁止される。また、ストリームアクセスモードではＲｅａｄｙ￣信号によるＷａｉｔコントロールは行われない。
【００４７】
予約バンドサイクルのストリームアクセス中において、受信ノードは受信バッファの容量が少なくなると、Ｄｉｓｃｏｎｎｅｃｔ信号をアサートする。Ｄｉｓｃｏｎｎｅｃｔ信号のアサートにより、送信ノードはストリーム送信を停止する。これにより、実行中のストリームアクセスは終了する。この後、前述したようにＤｉｓｃｏｎｎｅｃｔ信号（アクセスサイクルの終了を示す）がアサートされたクロックから３番目のクロックの立ち上がりエッジで、次にアクセスを実行すべきチャネル番号が管理ノードから出力される。
【００４８】
Ｄｉｓｃｏｎｎｅｃｔ信号を用いたフロー制御を実現するためのハードウェア構成の一例を図７に示す。
【００４９】
図７（Ａ）に示されているように、各ノードの受信部には、ＦＩＦＯバッファ１１１、受信回路１１２、オーバーフロー検出回路１１３が設けられている。ＦＩＦＯバッファ１１１は、マルチメディアバス２００を介して授受するデータを一時的に蓄積する緩衝用の入出力バッファであり、受信時には、マルチメディアバス２００および受信回路１１２を介して入力されたストリームデータがＦＩＦＯバッファ１１１に順に書き込まれる。ＦＩＦＯバッファ１１１に蓄積されたストリームデータは内部処理回路に読み出されて処理される。オーバーフロー検出回路１１３は、ＦＩＦＯバッファ１１１の蓄積データ量が所定のしきい値を越えたか否かを検出するためのものであり、ＦＩＦＯバッファ１１１の蓄積データ量が所定のしきい値を越えた場合には、ＦＩＦＯバッファ１１１のオーバーフローを防止するために、Ｄｉｓｃｏｎｎｅｃｔ信号を発生する。
【００５０】
図７（Ｂ）は、各ノードの送信部の構成である。送信時には、外部から入力したストリームデータがＦＩＦＯバッファ１１１に入力される。そしてそのストリームデータがＦＩＦＯバッファ１１１から読み出され、送信回路１１４を介してマルチメディアバス２００上に出力される。ストリームデータを送信している期間中、送信停止回路１１５はＤｉｓｃｏｎｎｅｃｔ信号を監視する。ストリームデータ送信中にＤｉｓｃｏｎｎｅｃｔ信号がアサートされると、送信停止回路１１５は送信回路１１４を制御してストリームデータの送信を停止させる。
【００５１】
図８は、各ノードに設けられたチャネル検出部の構成である。
【００５２】
チャネル検出回路１１６は、Ｄｉｓｃｏｎｎｅｃｔ信号がアサートされてから３番目のクロックでマルチメディアバス２００上に出力されるチャネル番号をラッチし、チャネルコントロールレジスタに設定された自身のチャネル番号と比較する。自身のチャネル番号が指定された場合には、チャネル検出回路１１６は、ストリームアクセスによるデータ入出力を開始するために送信回路または受信回路を制御する。
【００５３】
次に、図９を参照して、フロー制御の具体例な適用例を説明する。
【００５４】
ここでは、ＤＶＤ−ＲＯＭドライブ３０から可変ビットレートのＤＶＤタイトルを読み出して、メディアプロセッサ１６に再生させる場合を想定する。可変ビットレートのＤＶＤタイトルはＤＶＤメディアにファイルとして記録されているので、まず、ＣＰＵ１１の制御の下、ＤＶＤタイトルのファイルがＤＶＤ−ＲＯＭドライブ３０からシステムメモリ１２上に読み出される。そして、マルチメディアバスマネージャ１５を送信ノードとし、メディアプロセッサ１６を受信ノードとするストリームアクセスが予約バンドサイクルによって実行される。メディアプロセッサ１６の受信バッファの蓄積データ量が所定値を越えると、メディアプロセッサ１６からＤｉｓｃｏｎｎｅｃｔ信号が出力される。これより、マルチメディアバスマネージャ１５による現在のストリームアクセスは停止される。これにより、最大転送レート時においても受信バッファのオーバーフローを招くことが無くなるので、必要最小限の受信バッファでストリーム転送を行うことができる。
【００５５】
（Ａｓｙｎｃサイクルを用いたストリームアクセス制御）
次に、図１０を参照して、Ａｓｙｎｃサイクルを用いたストリームアクセス制御の原理について説明する。
【００５６】
図１０（Ａ）は、２タイムスロット分の予約バンドを用いてストリームアクセスを行う場合のタイミングチャートである。Ａｓｙｎｃサイクルを用いたストリームアクセス制御を用いると、Ａｓｙｎｃサイクルでストリームアクセスを行うことができる。このため、図１０（Ｂ）に示されているように、予約バンド以外の期間にストリームアクセスを行うことができる。Ａｓｙｎｃサイクルの実行はは、送信ノードからのバスリクエストが受け付けられた場合に許可される。
【００５７】
図１１には、Ａｓｙｎｃサイクルを用いたストリームアクセスのための具体的なタイミングが示されている。
【００５８】
予約バンドサイクル処理を実行している送信ノードは、その送信バッファの蓄積データ量が所定値を越えると、ＡｓｙｎｃサイクルのバスリクエストＡｃｃｅｓｓ  ＲＥＱを発生する。管理ノードからＧＮＴが与えられると、送信ノードは、管理ノードによってＤｉｓｃｏｎｎｅｃｔ信号（アクセスサイクルの終了を示す）がアサートされたクロックから３番目のクロックの立ち上がりエッジで、現在の予約バンドサイクルのチャネル番号と同じチャネル番号を指定することにより、Ａｓｙｎｃサイクルでストリームアクセスを行う。これにより、予約バンド以外の期間にストリームアクセスを実行することができる。
【００５９】
Ａｓｙｎｃサイクルを用いたストリームアクセス制御を実現するためのハードウェア構成の一例を図１２に示す。
【００６０】
送信時には、外部から入力したストリームデータがＦＩＦＯバッファ１１１に入力される。そしてそのストリームデータがＦＩＦＯバッファ１１１から読み出され、送信回路１１４を介してマルチメディアバス２００上に出力される。オーバーフロー検出回路２０１は、ＦＩＦＯバッファ１１１の蓄積データ量が所定値を越えると、Ａｓｙｎｃ・リクエスト制御回路２０２を制御して、バスリクエストＡｃｃｅｓｓ  ＲＥＱを発生させる。Ａｓｙｎｃ・リクエスト制御回路２０２は、管理ノードからのＧＮＴによってバス使用権を獲得すると、チャネル番号出力回路２０３を制御し、Ｄｉｓｃｏｎｎｅｃｔ信号によって現在のアクセスサイクルが終結されてから３番目のクロックの立ち上がりエッジで、現在の予約バンドサイクルのチャネル番号と同じチャネル番号を出力させる。
【００６１】
次に、図１３を参照して、Ａｓｙｎｃサイクルによるストリームアクセスの具体的な適用例を説明する。
【００６２】
予約バンドサイクルでストリームデータ送信を行っている送信ノードが処理すべきストリームのトラフィックが変わり、必要な帯域が変わったとき（たとえば、チューナの番組切り換えによって送信すべきストリームが標準映像のＳＤデータから高精細映像のＨＤデータに切り換えられたとき）は、送信ノードおよび受信ノードそれぞれの帯域の割り当ては変更される。この場合、該当するノードのドライバあるいはノード自体がＮｅｃｅｓｓｉｔｙを書き替えるが、サイクルタイムの変わり目で予約バンド幅を動的に変更することは実際上困難である。
【００６３】
このため、送信すべきストリームがＳＤデータからＨＤデータに切り換えられたときは、図１３（Ａ）の状態から図１３（Ｂ）の状態に移行し、予約バンド幅が拡大されるまでの間は、予約バンドサイクルとＡｓｙｎｃサイクルの双方を用いてストリームアクセスを行う。予約バンド幅が拡大されたた後は、再び図１３（Ａ）の状態に戻り、予約バンドサイクルのみでストリームアクセスを行う。これにより、必要な帯域が急に変化しても、送信側ノードのバッファのオーバーフローなどの問題を未然に防ぐことができる。
【００６４】
（Ａｓｙｎｃサイクルの挿入制御）
次に、図１４を参照して、Ａｓｙｎｃサイクル挿入制御の原理を説明する。  Ａｓｙｎｃサイクルのアクセスリクエストは随時（予約バンドサイクル処理中中でも）受け付けられる。予約バンドサイクル処理中にＡｓｙｎｃサイクルのアクセスリクエストが発生しなかった場合には、図１４（Ａ）に示すように、予約バンドサイクルは通常通り実行される。予約バンドサイクル処理中にＡｓｙｎｃサイクルのアクセスリクエストが受け付けられると、図１４（Ｂ）に示されているように、予約バンドサイクルによるストリームアクセスは中断され、Ａｓｙｎｃアクセスを実行する。中断されたストリームアクセスは、Ａｓｙｎｃアクセス終了後再開される。予約バンドとして予約されたストリームアクセスの帯域は同一タイムサイクル内に必ず実行される。
【００６５】
図１５は、複数のチャネルのストリームアクセスが時分割で並行処理されている場合におけるＡｓｙｎｃサイクルの挿入制御の様子を示されている。ここでは、チャネル番号３の予約バンドサイクル中にＡｓｙｎｃサイクルが挿入されている。
【００６６】
図１６には、Ａｓｙｎｃサイクル挿入のための具体的なタイミングが示されている。
【００６７】
各ノードは、ＣＰＵ１１に処理させたいイベントやマルチメディアバス２００上の他のノードに通知したいイベントが発生すると、アクセスリクエストＡｃｃｅｓｓ  ＲＥＱを発生する。アクセスリクエストの調停は管理ノードによって行われ、アクセス許可はＧＮＴによって通知される。管理ノードは、予約バンドサイクル処理中にＡｓｙｎｃサイクルを受け付ける場合には、ＧＮＴを通知した後、Ｄｉｓｃｏｎｎｅｃｔ信号を発生する。アクセスを要求していたノードは、Ｄｉｓｃｏｎｎｅｃｔ信号を発生時のＧＮＴ信号の状態によってアクセス要求が許可されたか否かを判断する。アクセス許可された場合には、アクセスを要求していたノードは、バスマスタとなり、Ａｓｙｎｃサイクルを実行する。Ａｓｙｎｃサイクルでは、バスマスタは、ブロードキャストを示すチャネル番号（０）を出力した後、ターゲットノードのノードＩＤ、アドレス、コマンドなどを出力し、データのリード／ライト転送を行う。チャネル番号（０）はシングルアクセス／バーストアクセスのみで使用されるチャネル番号である。
【００６８】
Ａｓｙｎｃサイクルが終了すると、バスマスタは、Ｄｉｓｃｏｎｎｅｃｔ信号を発生する。管理ノードは、中断した予約バンドサイクルを再開するために、中断した予約バンドサイクルのチャネル番号をマルチメディアバス２００上に出力する。これにより、中断された予約バンドサイクルが再開される。もちろん、ＲｅｄｙによってＡｓｙｎｃサイクルの終了を検知した時に、管理ノードがＤｉｓｃｏｎｎｅｃｔ信号を発生するようにしても良い。
【００６９】
次に、図１７のフローチャートを参照して、管理ノードによって実行されるＡｓｙｎｃ受付可否判断処理の手順について説明する。
【００７０】
前述したように、マルチメディアバス２００では、予約バンドサイクルは必ず実行される。予約バンドの実際の幅はすべてクロック数で管理される。Ａｓｙｎｃを受け付けるかどうかを決定するアルゴリズムは以下の通りである。
【００７１】
まず、管理ノードは、１サイクルタイム内の総クロック数（ＴＣ）を取得する（ステップＳ１１）。例えば、サイクルタイムが１２５ｕｓでクロックが５０ＭＨｚの場合は、ＴＣ＝６２５０となる。次に、管理ノードは、１サイクルタイム内における予約バンドの総バンド幅（クロック数で表現される：ＩＣ）を取得する（ステップＳ１２）。次いで、管理ノードは、アクセスリクエストを受けた時点までに実行したＡｓｙｎｃサイクルの合計クロック数（ＴＡ）を取得する（ステップＳ１３）。そして、管理ノードは、現在のサイクルタイムの残りクロック数（ＴＣ−ＩＣ−ＴＡ）がＡｓｙｎｃサイクル（シングルアクセス）に要する最大クロック数（ＭＡ）以上であるか否かを判断し（ステップＳ１４）、最大器ロック数（ＭＡ）以上であればＧＮＴを返し、Ａｓｙｎｃサイクルの実行を許可する（ステップＳ１５）。一方、残りクロック数が最大クロック数（ＭＡ）よりも少なければ、ＧＮＴは返さず、Ａｓｙｎｃサイクルの実行を禁止する（ステップＳ１６）。このような制御により、予約バンドによる帯域保証を維持しつつ、Ａｓｙｎｃサイクルのリクエストに対する応答性を向上させることができる。
【００７２】
以上のように、本実施形態のシステムにおいては、コンピュータの内部バスとして帯域保証サイクルとイベントドリブン型の非同期転送サイクルの２つの転送モードが定義されたマルチメディアバス２００を使用することにより、ＡＶストリームとコンピュータデータの融合に好適なシステムを実現することができる。また、本実施形態のシステムは、コンピュータのみならず、セットトップボックス、デジタルＴＶ、ゲーム機などの各種デジタル情報機器のプラットフォームとして使用することができる。
【００７３】
【発明の効果】
以上説明したように、本発明によれば、内部バス上でリアルタイム転送を効率よく行うことができる新たなバス制御方式を用いることにより、ＡＶストリームとコンピュータデータの融合に好適なシステムを実現することができる。特に、１）予約バンドサイクルにおけるデータ送信を受信ノードからの制御で停止させるフロー制御、２）Ａｓｙｎｃサイクルでストリームアクセスを実行する制御、３）予約バンドサイクル中でもＡｓｙｎｃサイクルを受け付ける制御、を用いることにより、帯域保証した状態で、より柔軟なデータ転送が行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るデータ処理装置のシステム構成を示すブロック図。
【図２】同実施形態のマルチメディアバス制御で用いられるサイクルタイムを説明するための図。
【図３】同実施形態のマルチメディアバス制御で用いられるストリームアクセスを説明するための図。
【図４】同実施形態のシステムで使用されるチャネルコントロールレジスタの内容を示す図。
【図５】同実施形態で用いられる予約バンドサイクルフロー制御の原理を説明するための図。
【図６】図５のフロー制御のための具体的なタイミングを示す図。
【図７】図５のフロー制御を実現するためのハードウェア構成の一例を示す図。
【図８】同実施形態の各ノードに用意されたチャネル検出部の構成を示す図。
【図９】図５のフロー制御の適用例を説明するための図。
【図１０】同実施形態で用いられるＡｓｙｎｃストリームアクセス制御の原理を説明するための図。
【図１１】図１０のＡｓｙｎｃストリームアクセス制御のための具体的なタイミングを示す図。
【図１２】図１０のＡｓｙｎｃストリームアクセス制御を実現するためのハードウェア構成の一例を示す図。
【図１３】図１０のＡｓｙｎｃストリームアクセス制御の適用例を説明するための図。
【図１４】同実施形態で用いられるＡｓｙｎｃサイクル挿入制御の原理を説明するための図。
【図１５】同実施形態のマルチメディアバス上で複数チャネルのストリームアクセスが時分割で並行処理されている場合におけるＡｓｙｎｃサイクル挿入制御の様子を示す図。
【図１６】図１４のＡｓｙｎｃサイクル挿入制御のための具体的なタイミングを示す図。
【図１７】同実施形態の管理ノードによって実行されるＡｓｙｎｃ受付可否判断処理の手順を示すフローチャート。
【符号の説明】
１１…ＣＰＵ
１２…システムメモリ
１５…マルチメディアバスマネージャ（管理ノード）
１６…メディアプロセッサ
２０…ケーブル／サテライトチューナ
２１…ＩＥＥＥ１３９４インターフェイス
１００…Ａｓｙｎｃバス
２００…マルチメディアバス
【図１】
0003784994.tif 000002
【図２】
0003784994.tif 000003
【図３】
0003784994.tif 000004
【図４】
0003784994.tif 000005
【図５】
0003784994.tif 000006
【図６】
0003784994.tif 000007
【図７】
0003784994.tif 000008
【図８】
0003784994.tif 000009
【図９】
0003784994.tif 000010
【図１０】
0003784994.tif 000011
【図１１】
0003784994.tif 000012
【図１２】
0003784994.tif 000013
【図１３】
0003784994.tif 000014
【図１４】
0003784994.tif 000015
【図１５】
0003784994.tif 000016
【図１６】
0003784994.tif 000017
【図１７】
0003784994.tif 000018