(57)【特許請求の範囲】
【請求項１】
集積回路デバイスのアクセスポートを介して通信を実行することが望まれる複数のモジュールを具備する集積回路デバイスの内部バスアーキテクチャシステムにおいて、
各々が前記モジュールのうち２つのモジュールを互いに接続して、前記２つのモジュールの互いに接続された閉ループを形成する複数のバスセグメントと、
各々が前記モジュールのうち対応する１つと関連し、前記閉ループに沿った、前記アクセスポートから前記モジュールの中の宛先モジュールに至る通信トランザクションの単方向転送に少なくとも寄与し且つ前記バスセグメントの数に対応する複数のバスコントローラと、
前記複数のバスセグメントとは別に前記複数のモジュールを接続して処理パイプラインを構成する複数の配線セグメントとを具備し、
前記複数のバスセグメントは、前記処理パイプラインとは別のデバッグ用ループを構成し、
前記複数のモジュールは、
ページ記述言語を入力する映像入力インターフェースと、
受信したページ記述言語から命令を読み取り実行する命令実行部と、
ページ記述言語で記述された図形オブジェクトから取り出されるエッジを読み取り、エッジと走査線の交点を判定するエッジ処理モジュールと、
エッジ間に存在する画素列に対して有効状態で、レンダリングすべき画像に寄与するオブジェクトを判定するレベルアクティベーションモジュールと、
有効画素列を受信しオブジェクトごとの画素の色を判定する画素生成モジュールと、
有効オブジェクトの画素値を優先順位に従って合成し画素値を求めレンダリングする画素合成モジュールと、
レンダリングされた画素を受信し、走査線ごとの画素値を形成する映像出力インターフェースと
を含むことを特徴とするアーキテクチャシステム。
【請求項２】
前記アクセスポートは、前記宛先モジュールのアドレスを解釈し且つ前記アーキテクチャの一部を形成するアドレスバスを介して前記宛先モジュールを選択するデコーダを具備する請求項１記載のアーキテクチャシステム。
【請求項３】
前記アドレスバスは複数のアドレス線から構成され、各アドレス線は前記モジュールの各モジュールに接続している請求項２記載のアーキテクチャシステム。
【請求項４】
前記アドレスバスは複数のアドレス線から構成され、各アドレス線は前記モジュールのうち対応する１つに接続している請求項２記載のアーキテクチャシステム。
【請求項５】
前記通信トランザクションは、それぞれ、前記モジュールのうち１つと関連する宛先アドレスから成り、前記バスコントローラは、それぞれ、前記宛先アドレスが対応する前記モジュールと関連しているか否かを判定するデコーダ装置から構成されている請求項１記載のアーキテクチャシステム。
【請求項６】
前記デコーダ装置が前記宛先アドレスは前記対応するモジュールと関連していないと判定したときに、前記通信トランザクションを前記ループ内の前記モジュールのうち次のモジュールへ転送させる転送手段を更に具備する請求項５記載のアーキテクチャシステム。
【請求項７】
前記バスコントローラは、それぞれ、前記通信トランザクションと関連するデータを前記対応するモジュールの中の前記宛先アドレスに書き込む書き込み手段を具備し、前記書き込み手段は、前記宛先アドレスが前記モジュールと関連していると判定されたときに動作する請求項５記載のアーキテクチャシステム。
【請求項８】
前記バスコントローラは、それぞれ、前記対応するモジュールの中の前記宛先アドレスからデータを読み取り、前記データを前記通信トランザクションに取り込み、且つ前記通信トランザクションを前記ループ内の前記モジュールのうち次のモジュールへ転送させる読み取り手段を更に具備し、前記読み取り手段は、前記宛先アドレスが前記対応するモジュールと関連していると判定されたときに動作する請求項５記載のアーキテクチャシステム。
【請求項９】
前記宛先アドレスは前記対応するモジュールの中のレジスタから成り、前記レジスタは前記モジュールの内部で読み取り、書き込みが可能である請求項８記載のアーキテクチャシステム。
【請求項１０】
前記バスセグメントは、それぞれ、少なくとも１つのデータ線と、少なくとも１つのアドレス線と、前記単方向転送を制御する少なくとも２つの制御信号線とから構成されている請求項１記載のアーキテクチャシステム。
【請求項１１】
請求項１記載の内部バスアーキテクチャを具備するコンピュータグラフィックス用コプロセッサ集積回路デバイス。
【請求項１２】
請求項１から１０のいずれか１項に記載のバスアーキテクチャを内蔵する集積回路デバイス。
【請求項１３】
集積回路デバイスの外部ポートと、前記デバイスの中に形成された複数のモジュールの１つとの間で通信を実行する方法において、
(a)  前記外部ポートで、前記モジュールの１つと関連する宛先アドレスを含む通信トランザクションを形成する工程と、
(b)  前記モジュールの各々で、前記モジュールと関連するアドレスとの対応性があるか否かに関して前記宛先アドレスを検査し、前記トランザクションを前記モジュールの間を順次通過させる工程と、
(c)  対応性がないと判定された場合、前記トランザクションを前記モジュールのうち次のモジュールへ送り出す工程と、
(d)  対応性があると判定された場合、前記宛先アドレスで前記トランザクションと関連する動作を実行する工程と、
(e)  前記モジュールを接続する処理パイプラインの前記バスセグメントとは別のデバッグループのセグメントを用いて前記モジュールのデバッグを行う工程と
を有し、
前記複数のモジュールは、
ページ記述言語を入力する映像入力インターフェースと、
受信したページ記述言語から命令を読み取り実行する命令実行部と、
ページ記述言語で記述された図形オブジェクトから取り出されるエッジを読み取り、エッジと走査線の交点を判定するエッジ処理モジュールと、
エッジ間に存在する画素列に対して有効状態で、レンダリングすべき画像に寄与するオブジェクトを判定するレベルアクティベーションモジュールと、
有効画素列を受信しオブジェクトごとの画素の色を判定する画素生成モジュールと、
有効オブジェクトの画素値を優先順位に従って合成し画素値を求めレンダリングする画素合成モジュールと、
レンダリングされた画素を受信し、走査線ごとの画素値を形成する映像出力インターフェースと
を含むことを特徴とする方法。
【請求項１４】
前記動作は、前記トランザクションの一部を形成するデータを前記宛先アドレスに書き込むことから成る請求項１３記載の方法。
【請求項１５】
前記動作は、前記宛先アドレスからデータを読み取って前記トランザクションの一部を形成し且つ前記トランザクションを前記モジュールのうち残るモジュールを通過させて、前記外部ポートに到達させることから成る請求項１３記載の方法。
【請求項１６】
単一の前記トランザクションを前記モジュールの間で順次通過させるように構成されている請求項１５記載の方法。
【請求項１７】
前記トランザクションの順次通過は、前記モジュールごとに、所定時間内に起こる請求項１５記載の方法。
【請求項１８】
前記外部ポートは、前記モジュールのうちどのモジュールから特定のトランザクション応答が発出したかを判定するために、前記トランザクションの通過時間を監視する請求項１７記載の方法。
【請求項１９】
前記所定時間は１クロックサイクルであり、前記外部ポートは前記クロックサイクルをカウントする請求項１８記載の方法。
【請求項２０】
１つの前記モジュールからの情報を求める要求を含むトランザクションは、前記要求に対する応答と共に戻されるべき識別アドレスを含む請求項１５記載の方法。
【請求項２１】
アクセスポートを介して通信を実行することが望まれる複数のモジュールを具備する集積回路デバイスとして構成されたグラフィクスプロセッサであって、
各々が前記モジュールのうち２つのモジュールを互いに接続して、前記２つのモジュールの互いに接続された閉ループを形成する複数のバスセグメントと、
各々が前記モジュールのうち対応する１つと関連し、前記閉ループに沿った、前記アクセスポートから前記モジュールの中の宛先モジュールに至る通信トランザクションの単方向転送に少なくとも寄与し且つ前記バスセグメントの数に対応する複数のバスコントローラと、
前記複数のバスセグメントとは別に前記複数のモジュールを接続して処理パイプラインを構成する複数の配線セグメントとを具備し、
前記複数のモジュールは、
ページ記述言語を入力する映像入力インターフェースと、
受信したページ記述言語から命令を読み取り実行する命令実行部と、
ページ記述言語で記述された図形オブジェクトから取り出されるエッジを読み取り、エッジと走査線の交点を判定するエッジ処理モジュールと、
エッジ間に存在する画素列に対して有効状態で、レンダリングすべき画像に寄与するオブジェクトを判定するレベルアクティベーションモジュールと、
有効画素列を受信しオブジェクトごとの画素の色を判定する画素生成モジュール、
有効オブジェクトの画素値を優先順位に従って合成し画素値を求めレンダリングする画素合成モジュールと、
レンダリングされた画素を受信し、走査線ごとの画素値を形成する映像出力インターフェースと
を含むことを特徴とするグラフィクスプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の分野】
本発明はバスアーキテクチャに関し、特に、ハードウェア、特に集積回路に適用して実現した場合に最小限のスペースしか費やさない順次構成に関する。
【０００２】
【背景】
この数年間、電子システム内の個々の装置及び／又はモジュールの間で情報を通信することが要求される様々な状況を処理するために、多様なバスアーキテクチャが開発されてきた。あるバスアーキテクチャをどの程度まで利用できるかは、バスにより実現すべきデータ転送速度、データ転送を実行すべき特定の環境、データを転送しなければならない距離などを含むいくつかの要因によって決まる。
【０００３】
パーソナルコンピュータなどの計算システムにおいては、通常、バスはマイクロプロセッサ型装置により制御される複数の並列する両方向構成により形成される。状況によっては、複数の装置又はモジュールに１つの直列バスを結合する場合もあるが、これは、個々のモジュールがモジュール間の相互接続の稼働率を感知し、データ送信を利用できるようになった時点で通信リンクの制御を獲得するという動作に依存している。このような構成では、ある回線における「話者」は1人であるが、「聴取者」は多数であるので、１つのモジュールから送信されたデータが所望の宛先モジュールにより確実に受信されるように保証するためには、衝突防止構成を実現することが必要である。上述の構成はプリント回路と、集積回路の双方に適用可能であるが、回路の設計に際しては、どのような特定の実現形態をとるかによって、それぞれ、様々な利点と欠点とをもたらす。
【０００４】
集積デバイスが通信を行うことを望むいくつかのモジュールを含み、集積デバイスと関連する１つの外部インタフェースポートを介して通信をチャネリングするような統合型システムにこれを適用する場合には、問題が生じる。そのような構成を図１に示す。図１に示すように、単一の集積デバイス１０がその周辺又はその付近に配置された通信モジュール１２を含み、これに外部通信リンク１４が接続している。デバイス１０の内部には複数のモジュール１６A〜１６Eがあり、通信リンク１４からのデータをそれらのモジュールとの間で転送することが望まれている。この転送を容易にするため、通信モジュール１２は、対応するモジュール１６A〜１６Eに至る複数の通信リンク１８A〜１８Eを含む。これらの通信リンク１８A〜１８Eは、所期のモジュール１６A〜１６Eへの通信信号の多重化を行う。通信リンク１８A〜１８Eは、通常、並列バス構成を有する。図１の構成に類似する構成をプリント回路又はより大規模な回路に適用した場合、プリント回路カード又はシステムの周囲の様々な通信リンクを実現する際の詳細に関しては、電子回路の設計に当たり、ほとんど問題は起こらない。しかし、図示するように、図１の構成を１つの電子チップデバイスに統合した場合には、個々のモジュール１６の数が増すと、それに対応してリンク１８の数も増やさなければならないため、問題が生じる。集積デバイスの周囲にモジュール１６が展開している場合、モジュール１６と通信インタフェースモジュール１２との間に様々な集積接続及び配線接続を成立させるように集積回路を設計することは、アーキテクチャの上で困難になる。また、集積回路のモジュール１２の付近には、通信リンクを都合よく且つ／又は経済的に配置するだけの十分なスペースがない。
【０００５】
この問題を解決するための構成の１つを図２に示す。図２に示す通信装置の構成２０では、それぞれがバス２２に至る対応する配線２６A〜２６Fを有する複数のモジュール２４A〜２６Fを互いに接続するリングバスが設けられている。必要に応じて、モジュール２４A〜２４Fの１つを外部構成との通信を行えるように構成することができ、従って、この構成２０はプリント回路と、集積構成の双方に適用可能である。このような構成においては、リングバス２２への結合を可能にするために、３状態論理を実現することが要求される。図２の構成の場合、全てがそれぞれ異なる負荷を表している複数のモジュールにリングバス２２を接続しなければならず、その結果、デバイス内部で送信の問題が生じ、先に述べたようなコンフリクトを解決することが困難になると考えられるため、この構成を特に集積デバイスに適用するのは問題である。
【０００６】
本発明の目的は、上記の問題の１つ又は２つ以上を実質的に克服するか、または少なくとも改善し且つ／又は従来の構成に代わるバスアーキテクチャ構成を提供することである。
【０００７】
【発明の概要】
本発明の１つの面によれば、 集積回路デバイスのアクセスポートを介して通信を実行することが望まれる複数のモジュールを具備する集積回路デバイスの内部バスアーキテクチャであって、
各々が前記モジュールのうち２つのモジュールを互いに接続して、前記２つのモジュールの互いに接続された閉ループを形成する複数のバスセグメントと、
各々が前記モジュールのうち対応する１つと関連し、前記閉ループに沿った、前記アクセスポートから前記モジュールの中の宛先モジュールに至る通信トランザクションの単方向転送に少なくとも寄与し且つ前記バスセグメントの数に対応する複数のバスコントローラと、
前記複数のバスセグメントとは別に前記複数のモジュールを接続して処理パイプラインを構成する複数の配線セグメントとを具備し、
前記複数のバスセグメントは、前記処理パイプラインとは別のデバッグ用ループを構成し、
前記複数のモジュールは、
ページ記述言語を入力する映像入力インターフェースと、
受信したページ記述言語から命令を読み取り実行する命令実行部と、
ページ記述言語で記述された図形オブジェクトから取り出されるエッジを読み取り、エッジと走査線の交点を判定するエッジ処理モジュールと、
エッジ間に存在する画素列に対して有効状態で、レンダリングすべき画像に寄与するオブジェクトを判定するレベルアクティベーションモジュールと、
有効画素列を受信しオブジェクトごとの画素の色を判定する画素生成モジュールと、
有効オブジェクトの画素値を優先順位に従って合成し画素値を求めレンダリングする画素合成モジュールと、
レンダリングされた画素を受信し、走査線ごとの画素値を形成する映像出力インターフェースとを含む、前記バスセグメントの数に対応する複数のバスコントローラとを具備するアーキテクチャが開示される。
【０００８】
本発明のその他の面も開示される。
【０００９】
【詳細な説明】
図３は、本発明の一実施例によるバスアーキテクチャシステムを示す。このバスアーキテクチャシステムは、電子システム（図示せず）とインタフェースできるように構成された通信ポート３４を有する集積回路デバイス３０の中に形成されている。ポート３４は、デバイス３０の複数のモジュール３６A〜３６Eと、それらのモジュール３６A〜３６Eの連続する２つのモジュールの間に配置された複数の単方向配線３８A〜３８Fとを含むシーケンシャルバス構成の一部を形成する通信モジュールに接続している。
【００１０】
図３には示されていないが、デバイス３０がその内外に、様々なモジュール３６A〜３６Eに接続する複数の別の配線を含んでいても良いことは当業者には理解されるであろう。
【００１１】
図３の構成では、通信モジュール３２が受信する通信信号は、データ成分とアドレス成分の双方を含み、アドレス成分は、データを適用すべき及び／又はデータを使用すべき、モジュール３６A〜３６Eの中の所期の１つのモジュールのアドレス又はその内部のアドレスである。このように、モジュール３２は通信トランザクションをシーケンシャルバスに沿って転送させ、その間、各モジュール３６はそのトランザクションにより搬送されてきた所期のアドレスを検査して、データがその特定のモジュール３６を宛先とするものであるか否かを判定する。そのモジュールが宛先でなければ、宛先モジュールが通信トランザクションを受信するまで、通信トランザクションを次のモジュールへ転送する。更に、モジュール３６A〜３６Eのいずれか１つはデータパッケージをバスを介して同様にして送信することができ、そのデータパッケージは他のいずれかのモジュール３６A〜３６Eにより使用されるか、又はバス配線３４を介してデバイス３０の外部へ通信される。
【００１２】
ここで説明する本発明の特定の実施例は、コンピュータグラフィックス用コプロセッサとして開発された特定用途向け大規模集積回路（ASIC）の個々のモジュールに配分される構成レジスタ及び制御レジスタの設定及び検査を実行する必要性から生まれたものである。この点に関して、好ましい実施例のシーケンシャルバスの目的は、ASICを実際に動作させる前にASICの構成を行い、また、デバッギングを目的としてASICの動作の検査を実行することである。従って、好ましい実施例のシーケンシャルバスが動作する速度は重大ではなく、そのため、チップスペースの節約を行う代わりに、通信速度の点で劣る実現形態が得られることになる。図３からわかるように、シーケンシャルバスは、それぞれのモジュール３６A〜３６Eを互いに接続して、閉ループ（すなわち、リング）を形成するデイジーチェーンを形成している。このデイジーチェーンは要求と応答（すなわち、アドレス、データ書き込み、データ読み取り、状態及び受理確認）の双方を搬送するために使用される。
【００１３】
好ましい実施例において、順次デイジーチェーンバスを巡る通信を管理するのは、各モジュール３６及びコントローラ３２の内部に形成された、図４に示すようなバスコントローラ６０である。バスコントローラ６０は、順次デイジーチェーンバスの入力バス要素４０と出力バス要素４２とを互いに接続する。好ましい実施例のバスコントローラ６０は、それぞれ対応するモジュール３２、３６の中で、両方向配線４６を介して複数のレジスタ４４と接続する。レジスタ４４はモジュール３２、３６内の複数のサブモジュール４８A〜４８Dに従来のローカルバス構成５０を介して結合されている。ローカルバス構成５０は、例えば、並列バス又はIEEE４８８規格に従ったI2Cバスであっても良い。バスコントローラ６０が通信モジュール３２内部に形成されている場合、バス４６は通信ポート３４として形成されても良い。
【００１４】
バスコントローラ６０は、バス配線４０を介して通信パッケージを受信すると共に、トランザクションが要求であるか又は応答であるかのトランザクション型を検査するように構成されている。トランザクションが特定のモジュール３６に属さない応答又は要求である場合、そのトランザクションは出力バス４２を介して次のモジュール３６へそのまま送り出される。そうでない場合には、要求トランザクションは適合するモジュール３６を介して処理される。モジュール３６はアドレスを読み取りデータ（読み取り動作の場合）と置き換え、制御信号を要求から応答に変更する。この点に関して、各モジュール３６が、
(i)  入力のトランザクションをラッチし、そのために、モジュール３６ごとにパイプライン１つ分の遅延が導入されること、及び
(ii)  トランザクションを１クロックサイクルの中で処理すること、は好都合である。
【００１５】
このように動作することにより、順次デイジーチェーンバスで発生する待ち時間はモジュール３６ごとに１クロックサイクルに短縮される。モジュール３６ごとの待ち時間が等しくなるように保証することによって、順次デイジーチェーンバス全体の待ち時間を特定の設計限界の範囲内に抑えるように構成することができるので、データに対する要求又はデータの通信を求める要求は、いずれも、デバイス３０が配置されるシステムの動作条件と一致する既知の時間周期の中で確実に起こるようになる。
【００１６】
好ましい実施例では、通信モジュール３２は、デバイス３０内部のモジュールの中で順次デイジーチェーンバス内でバスサイクルを開始するように構成された唯一のモジュールである。
【００１７】
次に図５を参照すると、バスコントローラ６０の構成が概略的に示されている。図５からわかるように、入力したアドレス信号、データ信号及び制御信号は入力信号線４０を介してレジスタ６２に受信される。入力信号線４０における値はレジスタ６２に格納され、バスコントローラ６０内部にそれらの信号を分配するバス６４上で利用可能とされる。
【００１８】
バス６４のアドレス信号成分及び制御信号成分はアドレスデコーダ６６に供給され、アドレスデコーダ６６は、処理すべきトランザクションがそのバスコントローラ６０を含む特定のモジュール３６を宛先とするトランザクションであるか否かを検出する。否である場合には、アドレスデコーダ６６は制御信号線７０を介してマルチプレクサ６８を動作させ、マルチプレクサ６８はバス６４の信号を出力バス４２に結合して、次のモジュール３６へ通信させる。
【００１９】
デコーダ６６によりデコードされたアドレスがバスコントローラ６０を含む特定のモジュール３６を宛先とするトランザクションに対応している場合には、デコーダ６６は、そのトランザクションが特定のモジュール３６に対する書き込みであるのか、又はそのモジュール３６からの読み取りであるのかを判定する。通常、それらのアクションは図５にも示されているレジスタ４４に対して作用する。デコードされたトランザクションが適切なレジスタからの読み取りであれば、レジスタ４４に接続するマルチプレクサ７４がアドレス選択信号線７６を介して動作されて、適切なレジスタ出力を選択し、信号線７８を介してマルチプレクサ６８へ出力する。信号線７０を介してマルチプレクサ６８へ出力された信号は、出力バス４２を介して出力されるべき値として、信号線７８の値を選択する。トランザクションがレジスタ４４への書き込みである場合には、アドレスデコーダ６６は一連の制御信号線７２を動作させ、それらの制御信号線は内部バス６４からのデータをレジスタ４４に結合する。そこで、内部バス配線５０を介してレジスタ４４の値をモジュール３６内部の別の構成要素により読み取れば良い。
【００２０】
好ましい実施例では、バス配線４０及び４２は以下の表１に示すような信号定義を有する３８ビットバス構成により規定されている。
【００２１】
【表１】
0004761487.tif 000002
【００２２】
確認制御信号と有効制御信号との組み合わせは、アドレス／データ信号が特定のモジュール３６に対する要求又は応答であるか否かを決定する。以下の表２は、要求と応答の双方の状況におけるそれらのビットの値を示す。
【００２３】
【表２】
0004761487.tif 000003
【００２４】
次の表３は、レジスタアドレスバス要素の特定のブレークダウンを示す。
【００２５】
【表３】
0004761487.tif 000004
【００２６】
好ましい実施例では、要求トランザクションは常に通信モジュール３２により開始される。通信モジュール３２は、アドレッシングされるべき特定のモジュール３６に関わる十分なパラメータ（書き込みプロセス中のアドレス及び書き込みデータなど）を格納している。トランザクションは１クロックサイクルに１モジュールの速度で各モジュール３６に伝播されて行く。図６は、バス回線４０及び４２で利用可能である様々なバス信号シーケンスを示す。図６からわかるように、特定のモジュール３６に属するアドレスが検出されると、要求reg＿ack＿out信号がイネーブルされ、イネーブルされたこの種の信号が別のモジュール３６により受信されるたびに、そのトランザクションは妨害されることなく、次へ送り出される。
【００２７】
図６に示すように、第１のトランザクションはreg＿ad＿in信号線に見られるアドレスにおける要求（adreq）を含み、これに有効reg＿valid＿in信号が伴っている。これはレジスタ４４の１つに対する読み取りとして解釈され、バスコントローラ６０はreg＿ad＿out信号線における応答（resp）並びに有効reg＿ack＿out信号及び有効reg＿valid＿out信号によって応答する。
【００２８】
その出力は次のモジュール３６により考慮されることになり、そこで１サイクルの遅延を伴って妨害されずに送り出される。好ましい実現形態においては、バスの立ち上がり時間td＿rは２ナノ秒以下である。
【００２９】
上述の構成の場合、デイジーチェーンバスからのデータを戻すための別の構成がいくつか考えられる。最も単純な第１の方法は、バスを一度に1回の要求／応答に制限する方法である。問い合わせについてはコスト高にはなるが、このような方法は、元来、応答を絶対確実に識別できる。第２の方法はパイプライン化された一連の要求の中でクロックサイクルをカウントするというものである。各バスコントローラ６０は定義された１サイクルの遅延を伴って動作するため、要求と応答との間の遅延から必要な応答を判定することができる。これにより、あらゆるモジュールを迅速に試験できる。これに代わる第３の方法は、要求を行ったモジュールに対して応答データと共にアドレス又は他の識別子を戻すという方法である。
【００３０】
大規模集積回路などでバスアーキテクチャを実現する場合、上述の構成はきわめて有益である。好ましい実施例において、３８ビットバスがLSIグラフィックス用コプロセッサ内の個々のモジュールの間に無作為にアクセス可能な通信リンクを構成し、しかも、外部からの接続が行われるデバイスの周辺のどの特定の場所においても導線のボトルネックが起こらないということは重要である。これにより、集積回路の設計時に、個々のモジュールをチップの表面全体に配分して、外部装置との通信を最適の状態で確保しつつ、互いに最適の関係でモジュールを配置することができる。
【００３１】
上記の構成の変形を行っても良い。すなわち、図５に示すデコード動作の少なくとも一部をノード通信モジュールにより実行しても差し支えない。
【００３２】
図７は、データ線４０,４２及びモジュール８６（システムのうちごく一部しか図示されていない）により形成されるデイジーチェーンループのノードを形成するノードモジュール８２を有するそのような構成８０を示す。この構成では、モジュールアドレスの一部がノードモジュール８２によりデコードされ、各モジュール８６に接続する１つのアドレスバス８４を介して分配される。各モジュール８６は、機能の上で図５のデコーダ６６に対応する別のデコーダを含む。
【００３３】
図８においては、構成９０は、アドレスデコード動作を完全に実行するように動作するノードモジュール９２を有する。データ線４０,４２から成るデイジーチェーンループのモジュール９６には、デコード済みバス９４から取り出される一意のアドレス信号が供給される。このような構成は、集積回路アーキテクチャの周囲に長い距離をおいて小数のモジュール９６が分散している場合に適用されると最適である。
【００３４】
図９は、映像入力インタフェース１０２、命令実行器１０４、エッジ処理モジュール１０６、レベルアクティべーションモジュール１０８、画素生成モジュール１１０、画素合成モジュール１１２及び映像出力インタフェース１１４などの複数の内部モジュールから形成されるグラフィックオブジェクト用コプロセッサ１００を示す。モジュール１０２〜１１４は、グラフィックオブジェクト用コプロセッサ１００にオブジェクト記述入力１１８を処理させて、画素出力１２０を形成させる複数のプロセスから成るパイプライン１１６を形成する。パイプライン１１６は、図示されているように様々なモジュール１０２〜１１４をパイプライン状に互いに接続するパイプライン配線１１６a〜１１６fを含む。画素ベースオブジェクト成分などの取り出し又は変換を容易にするため、外部メモリバス１２４に結合するメモリインタフェースモジュール１２２や、JPEGデコーダ１２６などの別のモジュールも設けられている。
【００３５】
パイプラインセグメント１１６a〜１１６fは様々なモジュール１０２〜１１４の間でレンダリングデータ及びメッセージを搬送し、これはグラフィックオブジェクト画像を高速レンダリングするために重要であるが、様々なモジュール１０２〜１２６を多くの集積システムアーキテクチャに共通する構成で互いに接続するために、コプロセッサ１００内部には別のバス１２８も設けられている。
【００３６】
映像入力インタフェース１０２は、図形オブジェクトを含めて、レンダリングすべき画像のページ記述言語（PDL）表現を受信するために、コプロセッサ１００をオブジェクト記述入力１１８に結合し、そのようなデータをパイプライン１１６により操作できる形態又は順序に適宜編成するように動作する。好ましい構成におけるオブジェクト記述入力は、当該技術では知られているように、PCIバスを介して供給される。また、映像入力インタフェース１０２はパイプライン１１６では早い段階で使用されるべきでない指令データ、制御データ、命令データ及びオブジェクトデータと、直ちに使用されるべきデータとを分類し、他のデータをバス１２４を介してメモリインタフェース１２２に結合するローカルメモリに一時的に格納させる。
【００３７】
命令実行器１０４は受信したPDLから命令を読み取って、処理し、それらの命令を、パイプライン１１６の他のモジュールにより解釈され且つ使用されるべく転送されるメッセージとしてフォーマッティングする。命令の機能と、その命令がパイプライン１１６に沿って処理（レンダリング）されるべきデータに付随することが必要であるか否かに応じて、バス１２８を介して送り出される命令もあれば、パイプラインセグメント１１６b〜１１６fを介して送り出される命令もあると考えられる。
【００３８】
エッジ処理モジュール１０６はPDLで記述された図形オブジェクトから取り出されるエッジレコードを読み取り、ラスタ化表示全体にわたり、画素位置の順に、エッジごとに現在走査線との交差点を判定する。エッジレコードを走査線ごとの表示の順序に分類できるようにするため、これはいくつかの有効エッジリストを使用して実行されるのが好ましい。エッジ処理モジュール１０６はパイプライン配線１１６cに沿ってレベルアクティべーションモジュール１０８へ出力を供給する。レベルアクティべーションモジュール１０８は命令実行器１０４から、優先順位レベルに関連するメッセージと、現在走査線上の図形オブジェクトに関連する充填データとを受信する。それらのメッセージに含まれる情報は、図形オブジェクトの特性を表すレベルアクティべーションテーブルとして形成されるのが好ましい。エッジ処理モジュール１０６から受信されるエッジ交差データはそのテーブルに作用して、隣接するエッジの間に存在する画素列に対して有効状態であり且つレンダリングすべき画像に寄与するオブジェクトを判定させる。このようなプロセスは、不透明度の異なるオブジェクト並びにクリッピングオブジェクトを考慮に入れるのが好ましい。
【００３９】
画素生成モジュール１１０は有効画素列を受信し、オブジェクトごとに画素の色を判定するか、又は有効エッジの間の画素位置ごとに使用すべき一連の色を判定する。この色には、不透明色、混合色又は対応する図形オブジェクトによりウィンドゥイングされる画素ベース画像が含まれるであろう。後者の場合、実際の画素データはバス１２８を介してメモリインタフェース１２２を通して取り出されても良い。画像が圧縮形態である場合、バス１２８へ取り出された圧縮データを画素生成モジュール１１０に供給する前に、JPEGデコーダ１２６により伸張することになる。その後、寄与オブジェクトごとの画素データは画素合成モジュール１１２へ送られ、そこで、現在画素位置における全ての有効オブジェクトに関わる画素値、又は現在走査線上の一連の画素位置における全ての有効オブジェクトの画素値を優先順位に従って互いに合成し、その位置又は一連の位置における画素値を求め、レンダリングする。映像出力インタフェース１１４は配線１１６fを介してレンダリングされた画素を受信し、バッファリングインタフェースの役割を実行して、画素出力１２０がそのようにしてレンダリングされた表示画像の走査線ごとに適切な画素値のラスタデータシーケンスとして確実に形成されるようにする。
【００４０】
上記のように画素ベースの画像成分を取り出すために使用される他に、メモリインタフェース１２２は、パイプライン１１６に沿った様々な処理段階においてグラフィックス用コプロセッサ１００の外部にあるメモリを利用させる。例えば、１つのパイプラインモジュールが、合成機能などの複雑で長い時間を要する処理に関わっている場合、先行する他のモジュールの動作が滞ってしまうことがある。そのような状況では、滞っていたプロセスが利用できるようになるときまでデータメッセージなどを外部メモリに一時格納しておいても良い。更に、好ましい実現形態においては、画素合成モジュール１１２はスタックマシンを使用して、式ツリーに基づく合成式を実行し、評価する。そのような式の大きさ（すなわち、寄与する有効オブジェクトの数）又はオブジェクトの複雑さ（例えば、画素画像）に応じて、外部メモリを使用してスタックを構築し、それを評価しても良い。
【００４１】
コプロセッサ１００内には、外部制御インタフェースモジュール１３０も設けられている。このモジュール１３０は、コプロセッサ１００の動作のデバッギングを行う外部デバッグバス１３２に結合している。デバッグバス１３２は、様々なモジュール１０２〜１２６のそれぞれを図３から図５に示す機能性に対応する方式で外部制御インタフェースに結合するセグメント１３６a〜１３６jを有するデバッグループバス１３４に外部制御インタフェース１３０を介して結合している。従って、デバッグループバス１３４は、デバッグバス１３２を介するアクセスによって、モジュール１０２〜１２６のいずれかの動作のデバッギングを実行する。
【００４２】
図９の構成でわかるように、デバッグループ１３４とそのセグメント１３６a〜１３６jは処理パイプライン１１６及びそれに対応する配線セグメント１１６a〜１１６fから隔離されており、また、主バス１２８からも隔離されている。そのため、モジュール１０２〜１２６のいずれかの動作のデバッギングは、画素出力１２０を提供するオブジェクト記述入力１２８のレンダリング処理を妨げることなく実行される。
【００４３】
デバッグループバス１３４は映像入力インタフェース１０２内部のレジスタ及びメモリをアクセスする。このバス１３４は、テストパターンを書き込み、それらを再度読み取ることにより、メモリを試験するために使用される。レンダリング処理動作中、バス１３４を使用して映像入力インタフェース１０２における活動を監視することができる。そのような監視には、アドレスポインタ、ジョブサイズカウンタ及びデータアンパッキングカウンタの観測が含まれる。バス１３４では、入力１１８と関連するPCI構成設定を有するPCI構成レジスタも観測できるので、入力１１８の状態を監視できるであろう。更に、バス１３４は映像入力インタフェース１０２からの割り込みをイネーブルし、検査し、クリアすると共に、コプロセッサ１００のソフトウェアリセットを生成するためのメカニズムも形成している。
【００４４】
命令実行器１０４の内部にあり、デバッグループバス１３４を介してアクセス可能である状態レジスタは、メモリインタフェース１２２及びバス１２２に接続するローカルメモリから取り出すべき現在命令のアドレス及びデコードすべき現在命令を示す。バス１３４を使用して、命令実行器１０４内部の構成レジスタに書き込みを実行することにより、レンダリングジョブを送信し、打ち切ることも可能である。
【００４５】
エッジ処理モジュール内部の状態レジスタはデバッグループバス１３４を介してアクセス可能であり、メモリインタフェース１２２を介してローカルメモリから現時点で取り出すべきエッジのアドレスを示す。
【００４６】
レベルアクティべーションモジュール１０８内部の状態レジスタは、レベルアクティべーションモジュール１０８により処理すべき現在x座標及び現在動作を示す。レベルアクティべーションモジュール１０８からの有効オブジェクトデータをバッファリングするために設けられた出力充填キャッシュも、レベルアクティべーションモジュール１０８に含まれる構成レジスタを使用してオフできる。先に説明したレベルアクティべーションテーブルなどの、レベルアクティべーションモジュール１０８内部の全てのメモリは、読み取り動作及び書き込み動作を使用して、デバッグループバス１３４を介して問い合わせのためにも利用可能である。レベルアクティべーションモジュール１０８が不適当な優先順位レベルを検出するか、又は走査線の終端でも有効状態であることを検出すると、それらはデバッグループバス１３４を使用してアクセス可能である状態レジスタでも示される。
【００４７】
画素生成モジュール１１０内部の状態レジスタは、現在キャッシュ制御信号と合成バス出力とを含み、デバッグループバス１３４を使用する検査のために利用可能である。画素生成モジュール１１０内部の充填テーブルも、読み取り及び書き込みの動作のために、デバッグループバス１３４において利用可能である。
【００４８】
画素合成モジュール１１２内部の、デバッグループバス１３４を介してアクセス可能である状態レジスタは、使用すべき特定の合成モード（RGBO又はCMYK）、属性モード並びに現在合成色及び対応するパイプライン制御信号を識別するレジスタを含む。合成スタックを評価するために使用される、非事前乗算部検索テーブル(un-premultiply division look-up table)もデバッグループバス１３４において読み取り可能である。合成スタックのオーバフロー又はアンダフローの場合、そのことは専用の状態レジスタで指示される。
【００４９】
映像出力インタフェース１１４のレジスタは、出力データフォーマット及び転送プロトコルの構成を行う。画素出力１２０を供給する出力ピンがデバッグループバス１３４に出力データを示すべく設定されるように、コプロセッサ１００を構成しても良い。
【００５０】
映像出力インタフェース１１４の状態レジスタは、現在x座標、走査線の長さ、メモリダンプバッファ（使用している場合）の場所と大きさなどの所望の情報を指示するために使用される。尚、メモリダンプバッファは、レンダリングされた画像を直ちに表示するのではなく、格納しておくべき場合に使用される。不当な命令が検出されたならば、これも同様にデバッグループバス１３４を使用してアクセス可能である映像出力インタフェース１１４の内部のレジスタで指示することができる。
【００５１】
JPEGデコーダ１２６の状態レジスタは、デコーダが伸張タスクを有効的に実行しているか否かを示し、実行していれば、処理すべきカラーチャネルの数、動作の種類、変換の種類、タスクのリストの状態及びそのようなモジュールで使用される入力データFIFOレジスタの状態などの現在タスクのパラメータに対しアクセスを実行する。また、データの監視を可能にするために、現在タスクアドレス、現在データ取り出しアドレス、現在データ書き込みアドレス及びデータ出力などの低レベルデバッグ支援情報がJPEGデコーダ１２６内部に配列された様々なパイプライン化サブモジュールから提供される。JPEGデコーダ１２６内部に形成された全てのメモリも、読み取り及び書き込みの動作のために、デバッグループバス１３４で利用可能である。
【００５２】
メモリインタフェース１２２は、デバッギングのために有用であると共に、製造試験にも使用される状態レジスタを含む。デバッギングのために有用であるレジスタは、バーストメモリ転送のための関連するburst＿size、read＿address＿valid及びread＿address＿takenと共に、アクセスすべき特定の読み取りアドレスを格納している。後の２つのレジスタは、読み取り要求のパターンと、停止パターンを表すことができる要求／許可信号の可視性とを示すのに有用である。同様に、書き込み要求状態も利用可能である。モジュール１０２〜１２６のうち現在モジュール及び先行モジュールがメモリインタフェース１２２を介してローカルメモリへのアクセスを許可されたことに関する詳細は、モジュールの互いに対する要求パターンについての情報を更に提供する共通状態レジスタにおいても利用可能である。
【００５３】
RAMbusコアなどのメモリインタフェース１２２の専用構成要素の製造試験のために要求されるいくつかの信号も状態レジスタとして利用可能である。デバッグループバス１３４は、それらのレジスタをごくわずかなコストで出力として見えるようにすることができる。
【００５４】
外部制御インタフェース１３０は、マスタモードとスレーブモードの双方で動作することができる。コプロセッサ１００のこの部分は複雑であるので、クロックドメイン境界の交差点 (a clock domain boundary crossing) に隣接するバスをデバッグモードで見ることができ、これによりデバッギングが簡単な作業になっている。更に、外部制御インタフェース１３０からコプロセッサ１００に到達する制御信号も同時に見えるので、このような構成をとらないと発見することが不可能であるような故障を引き起こすおそれのあるプロトコル違反をデバッグループバス１３４を使用して観測することができる。
【００５５】
デバッグモードでは、デバッグループバス１３４のマスタである外部制御インタフェース１３０は1回のクロックサイクルごとに全ての読み取りトランザクションを繰り返すため、絶え間なく監視を行うことができる。この繰り返し動作は、デバッグモードがオフされるか、又は異なるトランザクションが現れるまで続く。後者の場合、そのトランザクションが繰り返されるトランザクションになる。
【００５６】
状態構成及び制御構成の更新を目的として構成された実施例に関連して本発明を説明したが、データへのアクセスが要求される用途であれば、多様な構成に本発明の適用を広げることができる。本発明のいくつかの実施例のみを説明したが、本発明の範囲から逸脱せずにそれらの実施例について変形を実施することは可能である。
【図面の簡単な説明】
【図１】  従来の構成を示す図。
【図２】  従来の別の構成を示す図。
【図３】  第１の実施例によるシーケンシャルバス構成を示す概略ブロック線図。
【図４】  図３のモジュール３６の１つの内部における様々な接続を示す概略ブロック線図。
【図５】  図４に示すバスコントローラを示す概略ブロック線図。
【図６】  好ましい実施例のバスアーキテクチャにおける信号の順序を示すタイミング図。
【図７】  別の実施例を示す図。
【図８】  更に別の実施例を示す図。
【図９】  シーケンシャルバス構成を有する図形オブジェクトコプロセッサを示す概略ブロック線図。
【図１】
0004761487.tif 000005
【図２】
0004761487.tif 000006
【図３】
0004761487.tif 000007
【図４】
0004761487.tif 000008
【図５】
0004761487.tif 000009
【図６】
0004761487.tif 000010
【図７】
0004761487.tif 000011
【図８】
0004761487.tif 000012
【図９】
0004761487.tif 000013