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