(57)【特許請求の範囲】
【請求項１】
各々が少なくともデータの入力又はデータの出力を可能にする複数のデータポート手段と、
データを記憶するメモリ手段と、
前記複数のデータポートと前記メモリ手段との間のデータ経路選択手段であって、
複数のデータプロセッサと、
前記複数のデータプロセッサ及び前記メモリ手段に結合され、前記メモリ手段へ及びメモリ手段からのデータの選択的な経路選択を可能にする第１バス手段と、
前記複数のデータポート手段及び前記複数のデータプロセッサに結合され、前記データポートへ及び前記データポートからのデータの選択的な経路選択を可能にする第２バス手段とを含むデータ経路選択手段とを具え、
前記複数のデータプロセッサは、前記第１バス手段と前記第２バス手段とを相互接続し、データを処理するように作用する、データ処理システムにおいて、
前記第１バス手段は、複数の並列の独立に動作されるバスラインを含み、前記個々のバスラインの各々は、前記データプロセッサのうちの１個と前記メモリ手段との間のデータの経路選択を可能にし、前記第２バス手段は、複数の並列の独立に動作されるバスラインを含み、前記個々のバスラインの各々は、前記データポート手段のうちの１個と前記データプロセッサのうちの１個との間のデータの経路選択を可能にすることを特徴とするデータ処理システム。
【請求項２】
請求の範囲１に記載のデータ処理システムにおいて、前記複数のデータプロセッサが第１プロセッサおよび第２プロセッサを具え、前記第１および第２プロセッサが、互いに実際的に異なるレートにおいて各々データを処理するように動作することを特徴とするデータ処理システム。
【請求項３】
請求の範囲１に記載のデータ処理システムにおいて、前記データ経路選択手段が、
−  前記データプロセッサの各々１つと前記メモリ手段との間の各々の第１バッファ手段か、
−  前記データプロセッサの各々１つと前記複数のデータポート手段との間の各々の第２バッファ手段かの少なくとも一方を具えることを特徴とするデータ処理システム。
【請求項４】
請求の範囲１に記載のデータ処理システムにおいて、前記データ経路選択手段が、
−  前記データプロセッサの各々１つと前記メモリ手段との間の各々の第１マルチプレクサ手段か、
−  前記データプロセッサの各々１つと前記複数のデータポート手段との間の各々の第２マルチプレクサ手段かの少なくとも一方を具えることを特徴とするデータ処理システム。
【請求項５】
請求の範囲１に記載のデータ処理システムにおいて、前記データプロセッサの特定の１つが、コンピュータデータ／グラフィックプロセッサを含むことを特徴とするデータ処理システム。
【請求項６】
請求の範囲１または５に記載のデータ処理システムにおいて、前記データ経路選択手段が、前記データプロセッサ間のデータ通信を可能にするように作用するプロセッサ間バス手段を具えることを特徴とするデータ処理システム。
【請求項７】
請求の範囲１まはた５に記載のデータ処理システムにおいて、前記データ経路選択手段が、
−  前記データプロセッサの各々１つと前記第１バス手段との間の各々の第１バッファ手段と、
−  前記データプロセッサの各々１つと前記第２バス手段との間の各々の第２バッファ手段とを具えることを特徴とするデータ処理システム。
【発明の詳細な説明】
発明の分野
本発明は、各々が少なくともデータの入力またはデータの出力を可能にする複数のデータポート手段（またはI/Oチャネル）と、データ記憶用メモリ手段と、前記複数のデータポート手段およびメモリ手段間のデータ経路選択手段とを具えるデータ処理システムに関するものである。前記データ経路選択手段は、前記メモリ手段へのデータおよび前記メモリ手段からのデータの選択的な経路選択を可能にする第１バス手段を含む。
背景技術
高速データ処理の障害の１つは、メモリとCPUとの間のような、別個のデータ処理ユニット間のインタフェースである。このインタフェースは、プログラム命令およびデータの絶え間ない流れを運ぶ責任があるため、全体の処理システムにおいて必須の経路である。並列処理は、一方では速度を上昇させるが、他方ではデータの適切な分配に関して特定のデータ処理タスクに依存する時間管理の問題を引き起こす恐れがある。
上述したような並列アーキテクチャを支持するシステムは、米国特許明細書第5,103,311号から既知である。この参考文献は、モジュール式および階層式アーキテクチャにおいて実時間を基礎としてビデオ標本を処理するプロセッサシステムを開示している。このシステムは、少なくとも１つのプロセッサユニットを有し、このユニットは、複数の処理素子を有する少なくとも１つのモジュールを有する。前記素子は、並列に動作し、前記素子への入力信号と前記素子からの出力信号とを適切に経路選択するためにクロスバスイッチに接続される。好適には前記クロスバスイッチの各々の切り換えポイントにレジスタを設け、同じ処理素子に対する同時のアクセス要求によって生じるかもしれない衝突を解決する。このシステムにおけるすべてのレベルにおける標本化周波数とクロック周波数との間には、一定の関係が存在する。
上述した形式の他のシステムは、米国特許明細書第4,521,874号から既知であり、相互接続ノードにおいて追加のメモリ素子を有する相互接続クロスバマトリックスに関係する。前記メモリ素子の配置は、並列プロセッサ構造の動作およびプログラミングを容易にする。素子ごとの記憶プロトコルは、機能的に隣接するメモリ位置において記憶されたデータ項目の、個々のデータ項目が読み出しによってメモリから消去された後の統合、すなわち、再圧縮を基礎とする。このデータ再圧縮は、追加の回路網を必要とする。また、前記データ再圧縮は、前の読み出し命令の実行と次の書き込み命令の実行との間に追加の時間を必要とすることから、動作速度に上限を課する。したがって、このシステムは、実時間を基礎としたビデオ信号処理には適さない。
本発明の目的
既知のシステムの上述した例は、変更を行う、または処理タスクを能率的に割り当てるには柔軟性がなさ過ぎるアーキテクチャを有するか、実時間を基礎としてデータを扱えないアーキテクチャを有する。
本発明の目的は、特に、実時間を基礎として並列に行うべき多数のデータ処理または信号処理タスクのために、利用できるメモリ容量および処理パワーを動的で高い柔軟性のある方法において展開することができるデータ処理アーキテクチャを提供することである。他の目的は、容易に改良または変更できるこのようなアーキテクチャを提供することである。
本発明の要約
したがって本発明は、上述したデータ処理システムにおいて、前記データ経路選択手段が、前記複数のデータポート手段に結合され前記データポート手段へのデータの経路選択および前記データポート手段からのデータの経路選択を可能にする第２バス手段と、前記第１バス手段および第２バス手段を相互接続しデータを処理する他の複数のデータプロセッサとを具えることを特徴とするデータ処理システムを提供する。
本発明におけるシステムは、前記複数のデータポート手段とメモリ手段とを、前記プロセッサと第１および第２バス手段とを介して結合する。”プロセッサ”という言葉は、データ処理パワー、すなわちいくらかの知能を備え、したがって単なるデータ記憶機能を越える装置を意味する。前記第１および第２バス手段を、前記プロセッサを介して相互接続する。前記データポート手段に接続された装置の形式に応じて、前記プロセッサは、種々の動作を実行することができる。例えば、前記複数のデータポートを、コンピュータまたはデータ／グラフィックスプロセッサ、モニタ、TVチューナおよびVCRに接続するとする。この時、前記多数のデータプロセッサは、例えば、前記TVチューナおよびVCRによって供給されるデータに対する復号化および補間動作と、前記モニタに供給されるデータに対する走査に関係する動作および動き補償と、コンピュータデータに関するグラフィックス処理とを実行しなければならない。
本発明は、メモリ容量および並列処理パワーの双方を、前記第１および第２バスを相互接続するプロセッサを有することによって、最大限の程度に、多くの種々の状況の下で使用することができるという考えを基礎としている。このアーキテクチャは、各々のプロセッサが、前記メモリ手段全体に加え、各々のデータポート手段を制御可能に取り扱えるようにする。実行すべき処理タスクに加え、前記プロセッサからの、または前記プロセッサへの並列データストリームを、前記結合されたプロセッサにおける処理能力を完全に使用する動作の間、前記プロセッサ間で移動することができる。この並列アーキテクチャのモジュール的性質は、前記システムの簡単な拡張または変更を容易にし、例えば、広範囲の処理状況に対するユーザの要求における注文生産を可能にする。また、I/Oチャネルまたはメモリユニットの追加や、I/Oチャネルに供給されるデータのフォーマットの変更は、１つまたはそれ以上のデータ処理の再プログラミングを単に必要とするだけである。
前記プロセッサは、各々異なったチップを含んでもよい。このようにして、モジュール式アーキテクチャを、行おうとするタスクに必要なプロセッサチップを差し込むことによって確立する。例えば、前記複数のプロセッサのうちで、低速のものと、中速のものと、高速のものとが存在するようにして、ハードウェアのコストを最適化することができる。代わりに、２つまたはそれ以上のプロセッサを、１つのチップにおいて結合してもよい。この集積された変形例は、最初のアーキテクチャより、小さい空間および少ない物理的部品しか使用しないという利点がある。前記プロセッサを、前記第１および第２バス手段で構成されるネットワークと共に１つのチップにおいてすべて集積し、したがって、交点において処理パワーを供給されるある種のクロスバスイッチの形態における一般に利用可能なビルディングブロックを形成してもよい。前記プロセッサと、第１および第２バス手段と、メモリ手段の一部または全体とを、一緒に集積してもよい。
前記プロセッサを、いくつかの方法において動作または協働させることができる。前記プロセッサの特定の１つまたは特定の複数を予定し、前記I/Oチャネル（データポート手段）のいくつかに対して同じタスクを実行させることができる。代わりに、前記プロセッサの特定の１つを予定し、前記I/Oチャネルのいくつかに対して異なったタスクを実行させることができる。
本発明によれば、データを並列に処理する方法が提供される。前記方法は、複数の同時に生じる入力データのストリームを受けることと、複数のメモリ位置に前記入力データを選択的に分配することと、前記同時に生じるストリームの入力データにおける並列な動作を前記ストリームの受け取り後で前記入力データのメモリ位置への選択的な分配前に選択的に実行することとを具える。この機能的な分離によって、処理パワーおよびメモリ容量の柔軟性のある割り当てが可能になる。前記において提案したダブルバス構造は、前記方法を実現するのに極めて好適である。
本発明は、例えば、フルモーションビデオやコンピュータ発生グラフィックおよび音声を混合するハードウェアの処理の機能的な統合を達成する注文生産されるモジュール式のマルチメディアシステムに特に関係するが、これらに限定されない。
図面の説明
本発明を、添付した図の参照とともに、さらに詳細に例として説明する。これらの図面の図１ないし８は、本発明によるシステムの実施例のブロック図を示す。前記図面を通じて、同じ参照符は、同様のまたは対応する特徴を示す。
詳細な実施例
第１実施例
図１は、多数の処理タスクを並列に実行する本発明によるシステムの第１の例100のブロック図である。システム100は、各々が少なくともデータの入力またはデータの出力を可能にする複数のデータポート手段またはI/Oチャネル102、104、106、108および110を具える。例えば、データポート102を高速チャネルとし、データポート104を中速チャネルとし、データポート106−110を低速チャネルとする。システム100は、本例においては表示メモリとして働くDRAMとして示す複数のメモリ112、114、116、118、120、122、124および126も含む。システム100のデータポート手段102−110とメモリ112−126との間にデータ経路選択手段128をさらに設ける。データ経路選択手段は、メモリ112−126へのデータおよびメモリ112−126からのデータの選択的な経路選択を可能にする第１双方向バス手段130と、データポート手段102−110に結合されデータポート手段102−110へのデータおよびデータポート手段102−110からのデータの選択的な経路選択を可能にする第２双方向バス手段132と、第１バス手段130および第２バス手段132を相互接続し入力するデータおよび出力するデータを処理する他の複数のデータプロセッサ134、136および138とを含む。プロセッサ134−138に、処理制御のために物理的に個別のプログラムおよびデータメモリ140、142およぴ144を各々設けてもよい。代わりに、プロセッサ134−138を、プロセッサ134−138の各々に対する制御タスクを機能的に行う１つのプログラムおよびデータメモリを通じて制御してもよい。
データ経路選択手段128は、データプロセッサ134、136および138の各々と第１バス手段130のバスラインの各々との間に第1I/Oバッファまたはデータキャッシュの複数の組146、148および150を含む。前記第1I/Oバッファは、アクセス制御および３端子出力部を有し、したがって、データを、メモリ112−126の任意に選択されたものにおいて記憶する前か、プロセッサ134−138の関連したものにおいて処理する前に、予め分類、集合または分配することを可能にする。同様に、データ経路選択手段128は、データポート102、104、106、108および120の各々と第２バス手段132のバスラインの各々との間に他の第2I/Oバッファまたはデータキャッシュの複数の組152、154、156、158および160を含む。前記第2I/Oバッファは、アクセス制御および３端子出力部を有する。第2I/Oバッファの組152−160は、データを、プロセッサ134−138の任意に選択されたものか、データポート102−110の任意に選択されたものへ経路選択する前に、分類、集合または分配することを可能にする。
図示した例において、データポート手段102−110を複数の装置に以下のように結合する。データポート手段102を、プログラムおよびデータメモリ164を有するコンピュータデータ／グラフィックスプロセッサ162に結合する。データポート手段104を、表示モニタ166に結合する。データポート手段106および108を、第1TVチューナ168および第2TVチューナ170に各々結合する。データポート110を、VCR172に結合する。
第１および第２バス手段130および132間のプロセッサ134−138の位置によって、プロセッサ134−138の各々は、バス手段130および132を経て、メモリ122−126に加えデータポート手段102−110の各々に制御的に働くことができる。したがって、処理パワーの能率的な共有が達成される。例えば、プロセッサ134−138の各々を、位置168−170によって供給されるデータにおけるフィルタ処理、復号化および補間動作と、装置166に供給されるデータにおけるプログレッシブ走査動き補償動作、等とに寄与するように予定することができる。プロポセッサ134−138の各々を、モニタ166に表示すべき復号映像を構成し、メモリ112−126の１つまたはそれ以上から供給されるデータにおける映像変換動作またはフィルタ処理動作に寄与するように予定してもよい。
前記アーキテクチャのモジュール的性質は、システム100におけるデータ経路選択を、広範に種々の並列データ処理タスクに対して極めて柔軟で好適なものにする。例えば、処理パワーの共有に加えて、プロセッサ134−138は、例えば対話的動作の実行の間、バス手段130およぴ132を介してこれらの間でデータを交換することができる。さらに、前記アーキテクチャは、いくつかの処理ステップを同じデータにおいて実行することができる。データを、これらのデータがプロセッサ134−138の他のものに供給される前のオフライン計算のために、中間結果としてメモリ112−126またはプログラム／データメモリ140−144に記憶することができる。また、前記モジュール式アーキテクチャは、システム100の簡単な拡張または変更に貢献する。例えば、I/Oチャネルの追加、またはI/Oチャネルに供給されるデータのフォーマットの変更は、データプロセッサ134−138の１つまたはそれ以上の再プログラミングを必要とするだけである。
データポート手段102−110およびメモリ112−126からのデータストリームと、これらへのデータストリームのすべてを等しく高速に処理する必要はないため、プロセッサ134−138は、一様な速度において処理する必要はなく、すなわちこれらを同一のものとする必要はない。例えば、プロセッサ134を中速信号プロセッサとしてもよく、プロセッサ136を高速信号プロセッサとしてもよく、プロセッサ138を低速信号プロセッサとしてもよい。このようなアーキテクチャは、高速プロセッサは低速プロセッサより高価なためお金を節約し、パワー消費を節約する。プロセッサ134−138間での処理タスクの割り当てを、好適には、例えば効率または費用に関して最適化する。代わりに、プロセッサ134−138を、例えば、前記システムがすべてのデータポート102−110に高速度におけるデータの供給または要求を同時に要求する計画に対して準備するために、すべて高速信号プロセッサとしてもよい。
第２実施例
図２は、本発明によるシステムの第２の例200のブロック図である。システム200は、コンピュータデータ／グラフィックプロセッサ162およひそのメモリ164を配置し直した点で、主にシステム100と異なる。プロセッサ162によって供給されるデータを二度処理する必要はないかもしれないため、プロセッサ162を、上述した処理パワーの共有における役割を演じるようにするために、プロセッサ134−138と機能的に同じレベルにおいて位置させることができる。プロセッサ162を、プロセッサ134−138に関して上述したのと同様に、第1I/Oバッファの他の組202を介して第１バス手段130に結合する。プロセッサ162を使用して、チューナ168および170によって伝送される１つまたはそれ以上のビデオ信号から、データ、例えばテレテキストデータを抽出することができる。プロセッサ162は、これらの抽出されたデータの処理や、グラフィックス表示の発生や、結合されたメモリ112−126によって形成される表示メモリへの前記グラフィックス表示の書き込みも行うことができる。
第３実施例
図３は、本発明によるシステムの第３の例300のブロック図である。システム300は、システム200の第2I/Oバッファ152−160に関する前記システムの配置を変更した点で、主にシステム200と異なる。第2I/Oバッファ152−160は、前記システムが、装置168−172によってデータポート104−110にランダムなアクセスパターンにおいて供給されるデータを予め分類できるようにする。プロセッサ134−160を通過するデータを、宛先、すなわちメモリ112−126の選択されたものに従って予め分類する必要がないため、ランダムアクセスを基礎とする供給されたデータを分類する必要はもはやない。したがって、アクセス制御可能な第2I/Oバッファ152−160の組を、個々のキャッシュ302,304、306および308と、マルチプレクサ310、312、314および316とに置き換える。分類は、プロセッサ134−138および162と表示メモリのメモリ112−126との間のトラフィックに対しては必須であることに注意されたい。システム300のアーキテクチャは、分離したI/Oバッファの数を、合計のバッファ容量に影響を及ぼすことなく減少させる。
第４実施例
図４は、本発明によるシステムの第４の例400のブロック図である。システム400と図３のシステム300との主な違いは、プロセッサ134−138と第１バス手段130とを相互接続するアクセス制御可能な第1I/Oバッファ146、148、150および202がないことである。アクセス制御可能I/Oバッファ146−150および202を、マルチプレクサ402、404、406および408と個々のキャッシュ410、412、414、416、418、420、422および424とに置き換える。ここで、メモリ番号における分類を、プロセッサ134−138および162によって行う必要がある。加えて、プロセッサ134−138および162によるバス手段130および132の共有は、前記プロセッサを含む各々のデータ移動が共通に所有されるバス手段130および132を使用するため、正確なプロセッサ同期化を必要とする。
任意に、システム400に、マルチプレクサ310−316および402−408間に接続された追加のバスライン426および428を設け、例えば、プロセッサ134−138および162間のフィードバックを可能にすることができる。
第５実施例
同様に、本明細書において参照される他のシステム、例えば、システム100、200および300に、このようなフィードバック経路を必要な変更を加えて設けてもよい。図５は、本発明によるシステムの第５の例500のブロック図である。システム300とシステム500との主な違いは、プロセッサ134−138および162間の同時のプロセッサ間通信を、第１および第２バス手段130および132によるデータトラフィックを妨害することなく可能にするプロセッサ間バス502および504の追加である。
第６実施例
図６は、本発明によるシステムの第６の例600のブロック図である。システム400のアーキテクチャとシステム600のアーキテクチャとの主な違いは、プロセッサ134、136および162が、ここでは１つのデータ入力／出力チャネルを共有することができる双方向ポートまたは入力／出力ポートを有することである。ここでシステム400のバス構造を合併し、分離した第１および第2I/Oバッファの数を減少させることができる。ここで、第１バス手段1301、1302、1303、1304および1305と、第２バス手段1321、1322および1323と、プロセッサ間バス手段602とを含むすべてのバス手段を、共通の共有されるマルチプレクサ604、606および608を介してプロセッサ134、136および162に接続する。
第７実施例
図７は、本発明によるシステムの第７の例700のブロック図である。システム700に関して、ここでは第2I/Oバッファ152、154、156および160を、第２バス手段132を通過してプロセッサ134−138および162の方へ移動する。これは、ここでは第１および第２バス手段132が同様の配置を得て、したがってアーキテクチャ上の複雑性が減少するという利点を有する。システム700に、システム500と同様に、プロセッサ間バス手段502および504（ここでは図示せず）を設けてもよい。
第８実施例
図８は、本発明によるシステムの第８の実施例800のブロック図である。プロセッサ134−138および162が１つのバスライン（１、２またはそれ以上のビット幅）を経てデータを読み出しおよび書き込みするのに十分速く、プロセッサ134−138および162が双方向ポートを有する場合、システム700における第１および第２バス手段130および132の対称性を利用することができる。２つの単一方向ポートを１つの双方向ポートに結合することができることに注意されたい。この場合において、第１および第２バス手段130および132を、システム800における１つのバス構造に合併することができる。
すべてのデータは、バッファ（データキャッシュ）802、804および808を経て通信され、プロセッサ134、136および162間の通信はプロセッサ間バス手段602を経て、プロセッサ134、136および162とI/O手段166、168および170との間の通信は第２バス手段1321−1323を経て、プロセッサ134、136および162とメモリ112、114、116、118および120との間の通信は第１バス手段1301−1305を経て成される。このバッファ決定通信は、プロセッサ134、136および162がハイレベルにおいてのみ同期する必要があり、したがって同期オーバヘッドが減少し、プロセッサ作業効率が向上するという利点を有する。
さらに、システム800におけるプロセッサ134、136および162用ソフトウェアの設計を簡単にすることができる。プロセッサ間同期のレベルの粒状性を、バッファ802−806の容量に応じて変更することができる。全体的プロセッサ（図示せず）または局所バス調停器（図示せず）は、バス手段1301−1305、1321−1323および602のバンド幅のどの部分をどの通信手続きに割り当てるべきかを決定することができる。このコントローラを、１つまたはそれ以上の図示したプロセッサ上か、別個のプロセッサ上かで動作するプログラムによって実現することができることは明らかである。
本発明を十分に理解するために、以下の項目を本発明による一般的なシステムに関するものとして考えることができる。
メモリ112−126の特定の１つまたは各々を、いくつかのメモリバンクで構成してもよい。他方では、前記メモリ手段を、第１バス手段130が１つのバスラインを有効に有するように、１つのメモリバンクで構成してもよい。
さらに、より深い階層式アーキテクチャを考えることができる。例えば、バス手段の第３層（および他の層）を、いくつかのレベル間で処理パワーを階層的に分配するために、第１または第２バス手段130または132に、プロセッサの他の層を通じて接続することができる。
上述した例は、第１バス手段130に結合されたメモリ112−126を示す。メモリ112−126のいくつかまたはすべてを、図１−８の参照とともに論考したタスク以外の個々のタスクのために、他のプロセッサ（知能装置）のような、あるいはレジスタを設けた、他のデータ処理装置に置き換えてもよい。
【図１】
0003643121.tif 000002
【図２】
0003643121.tif 000003
【図３】
0003643121.tif 000004
【図４】
0003643121.tif 000005
【図５】
0003643121.tif 000006
【図６】
0003643121.tif 000007
【図７】
0003643121.tif 000008
【図８】
0003643121.tif 000009