(57)【要約】平行なデータ処理をするためのストリップ構造を有するプロセッサ装置において、高い時間消費と結びつくことのない、個々のストリップからのローカルのデータを結合することを可能にするため、方法側で、異なった処理ユニット（２）の入力、中間及び／又は出力データを、少なくとも部分的に組み合わせのクロック制御されない操作を介して結合することが提案される。この方法で、異なったストリップからのローカルのデータの必要な結合は、プロセッサ装置での平行なデータ処理を本質的に遅延させない。従って、特に、結合の総結果を個々のクロックサイクル内で提供することが可能である。更に、本発明は、この方法に対応する、少なくとも部分的に組み合わせのクロック制御されない結合装置を有するプロセッサ装置に関する。
2005518048.tif 000002
【特許請求の範囲】
【請求項１】
データが、データメモリ内に、複数の要素を有するデータグループへと分割されて１つの同じアドレスの下に記憶され、このアドレスから読み出され、そして処理ユニットに供給され、その際、１つのデータグループのそれぞれの要素に、１つの処理ユニットが割り当てられ、１つのデータグループの全ての要素が、同時かつ並行にデータメモリから読み出され、入力データとして１つ又は複数の処理ユニットへと分割され、この処理ユニット内でクロック制御されて平行に処理される、プロセッサ装置内の平行なデータバスからのデータを結合するための方法において、
異なった処理ユニット（２）の入力、中間及び／又は出力データ（Ｄｉ）が、少なくとも部分的に組み合わせのクロック制御されない少なくとも１つの操作を介して結合されることを特徴とする方法。
【請求項２】
操作によって、全ての処理ユニット（２）のデータ（Ｄｉ）が結合されることを特徴とする請求項１に記載の方法。
【請求項３】
データが、論理的及び／又は算術的な操作を介して結合されることを特徴とする請求項１又は２に記載の方法。
【請求項４】
操作を実行する際に、操作の少なくとも１つの部分ステップ（Ｓ１；Ｓ２）内で冗長な数字表現が使用され、特に桁上げがデータの全ての桁で同時に構成され、それぞれ次の部分ステップ（Ｓ２；Ｓ３）のために使用されることを特徴とする請求項１〜３のいずれか１つに記載の方法。
【請求項５】
操作の結果として、データ要素又はデータグループが発生させられることを特徴とする請求項１〜４のいずれか１つに記載の方法。
【請求項６】
操作の結果が、少なくとも１つの処理ユニット（２）又はこの処理ユニットに割り当てられたレジスタ（Ｒｉ，ＲＲｉ）にフィードバックされることを特徴とする請求項１〜５のいずれか１つに記載の方法。
【請求項７】
データの結合のために、複数の組み合わせのクロック制御されない操作の１つが選択されることを特徴とする請求項１〜６のいずれか１つに記載の方法。
【請求項８】
グループメモリ内に、複数の要素を有する少なくとも１つのデータグループが１つのアドレスの下に記憶されており、それぞれのデータ要素に、同じ構造の別のストリップと隣接している１つのストリップ内に配設されている少なくとも１つのプロセスユニット（ＭＡＣ）と少なくとも１つのメモリユニットから成る処理ユニットが割り当てられている、グループメモリとして形成されたデータメモリと、通信ユニットを介して互いに接続されている平行な処理ユニットとによる平行なクロック制御されたデータ処理をするためのプロセッサ装置において、
少なくとも部分的に組み合わせのクロック制御されない結合装置（４，５，８）が設けられており、この結合装置が、異なったストリップ（０）からのデータを、特に異なった処理ユニット（２）の入力、中間及び／又は出力データ（Ｄｉ）を互いに結合することを特徴とするプロセッサ装置。
【請求項９】
結合装置（５）が、加算回路、減算回路及び／又は最小値／最大値を構成するための回路を有し、この回路内で、桁上げが所定の段階（Ｓ１，Ｓ２）でデータのある桁で先行する桁に依存せずに確認可能であることを特徴とする請求項８に記載のプロセッサ装置。
【請求項１０】
最小値／最大値を構成するための回路が、複数の計算段階を備え、これらの計算段階で、２つのストリップのデータのそれぞれ１回の減算が実行可能であり、その際、後続の計算段階に、１つのストリップを示すインデックスとそれぞれの極値が導入可能であることを特徴とする請求項９に記載のプロセッサ装置。
【請求項１１】
このような複数の結合装置が設けられており、これらの結合装置の内の１つが、プログラム制御されて選択可能であることを特徴とする請求項８〜１０のいずれか１つに記載のプロセッサ装置。
【請求項１２】
結合装置（５）の出力が、処理ユニットのレジスタか、データグループに割り当てられているレジスタに割り当てられていることを特徴とする請求項８〜１１のいずれか１つに記載のプロセッサ装置。
【請求項１３】
結合装置（４，５，８）の少なくとも１つの入力レジスタに、１つの制御装置（６）が割り当てられており、この制御装置によって、レジスタデータが結合装置（４，５，８）から分離可能であることを特徴とする請求項８〜１２のいずれか１つに記載のプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、請求項１の上位概念による平行なデータバス（Datenpfaden）からのデータを結合するための方法並びに請求項８の上位概念による対応するプロセッサ装置に関する。
【背景技術】
【０００２】
平行なデータ処理をするためのプロセッサは、相当前から公知である。そのアーキテクチャにとって特徴的であるのは、複数の処理ユニットを設けることであり、これらの処理ユニットによって、データの平行な処理を提供することができる。このようなアーキテクチャもしくは対応する方法は、例えば特許文献１に記載されている。この場合、データは、データメモリ内で複数の要素を有するデータグループへと分割され、１つの同じアドレスの下に記憶される。データグループのそれぞれの要素に、１つの処理ユニットが割り当てられており、その際、全ての要素は、同時かつ並行にデータメモリから読み出され、入力データとして１つ又は複数の処理ユニットへと分割され、これらの処理ユニット内でクロック制御されて平行に処理される。平行な処理ユニットは、通信ユニットを介して互いに接続されている。１つの処理ユニットは、少なくとも１つのプロセスユニットとメモリユニットとを有し、通常は同じ構造の少なくとも１つの別のストリップと隣接している１つのストリップに配設されている。
【０００３】
このようなＳＩＭＤ（Single Instruction Multiple Data）ベクトルプロセッサ内で、それぞれのデータ要素は、説明した平行なデータバス（ストリップ）内で処理される。処理すべきプログラムに依存して、部分結果は、データ要素又はデータグループとしてグループメモリに書き込むことができる。しかしながら、事情によっては、平行なデータバスからのデータをまとめることが必要となり得る。例えば、ベクトルプロセッサ上でアルゴリズムを実行する場合は、ローカルで計算された、複数のストリップ又は更には全てのストリップからのデータを互いにグローバルの中間結果に結合する必要があり得る。このため、これまで、ストリップの部分結果は、所望の中間結果に達するために、複数のクロックサイクルを介する１つのプログラムによって保証されていた。このグローバルの中間結果がアルゴリズムの後続の計算のために必要とされる場合、最終結果の計算が遅延させられる。
【特許文献１】独国特許第１９８  ３５  ２１６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、本発明の課題は、前記のプロセッサ装置において、高い時間消費が結びつくことのない、個々のストリップからのローカルのデータを結合することを可能にする機能性を提供することにある。
【課題を解決するための手段】
【０００５】
方法側では、この課題は、異なった処理ユニットの入力、中間及び／又は出力データが、少なくとも部分的に組み合わせのクロック制御されない少なくとも１つの操作を介して結合されることによって解決される。
【０００６】
驚くほど簡単な方法で、組み合わせのクロック制御されない操作を設けることによって、異なった処理ユニットに割り当てられているデータは、迅速に結合することができ、従って、必要な結合によって、プロセッサ装置内での平行なデータ処理は、本質的に遅延されない。特に、これにより、結合の総結果を個々のクロックサイクル内で提供することが可能である。特に、プロセッサ装置上で経過する特殊なアルゴリズムの加速された処理を提供するために、結合操作によって、全ての処理ユニットからのデータが結合される場合が有効である。
【０００７】
本発明の基本的な思想は、論理操作にも算術操作にも転用可能であり、従って、原理的に、異なった処理ユニットもしくは平行なデータバスからのデータの考えられる全ての結合が、本発明により実行することができる。
【０００８】
本発明の有利な形成にあっては、操作を実施する際に、少なくとも部分ステップ内で冗長な数字表現を使用することができる。特に加算又は減算のような算術操作の場合、桁上げがデータの全ての桁で同時に構成され、次の部分ステップのために使用することができ、従って、操作の部分ステップ内で、後続の桁のための処理を遅延させる桁上げの処理は、何ら生じない。従って、部分ステップ内で、桁上げベクトルは、ほぼ和ベクトルと同じように迅速に普及させることを得ることができる。和及び桁上げベクトルが組み合わされる最後の部分ステップにおいてのみ、結果の遅延が、「波及」効果によって生じる。
【０００９】
任意のアルゴリズムの全ての可能な要求を正しく評価するために、ローカルのデータの結合の結果として、個々のデータ要素又は更にはデータグループも発生させられ、従って、本発明によれば、異なったストリップからの任意のデータ源が互いに結合され、結果は、プロセッサ装置の任意のデータ受信装置に導くことができる。
【００１０】
有利な実施形にあっては、操作の結果を処理ユニットにフィードバックすることができ、これにより、特に帰納的なアルゴリズムを、本発明によってより迅速に実行することができる。
【００１１】
有効なことに、複数の備えられた、組み合わせのクロック制御されない操作からのデータの結合のために、個々の操作を選択することができる。これにより、複数のアルゴリズムもしくは複雑なアルゴリズムは、プロセッサ装置内のローカルのデータの異なった複数の結合によって置換することができる。
【００１２】
装置側で、この課題は、プロセッサ装置が少なくとも部分的に組み合わせのクロック制御されない結合装置を備え、この結合装置が、異なったストリップからのデータを、特に異なった処理ユニットの入力、中間及び／又は出力データを互いに結合することによって解決される。
【００１３】
この本発明による装置は、アルゴリズムが一定の場合に必要な、異なったストリップからのローカルのデータの結合が、従来技術に対してより迅速に実行することができ、従って、さもなければ生じる平行なデータ処理における遅延が回避される。
【００１４】
本発明の有利な実施形にあっては、結合装置が、加算回路、減算回路及び／又は最小値／最大値を構成するための回路を有することができ、この回路内で、データのある桁での論理装置における操作の部分ステップを実行するための所定の段階での桁上げが、先行する桁の結果に依存せずに確認可能である。結合装置は、ほとんど全ての部分ステップ内でそれぞれ生じる桁上げが、後続の桁の計算のためには考慮されないように構成することができる。和ベクトル及び桁上げベクトルが結合されている結合回路の部分においてのみ、公知の遅延が生じる。
【００１５】
複数のストリップにわたる最小値／最大値を構成するための結合回路の場合、それぞれの計算段階の間でそれぞれの極値以外に極値のストリップを示すインデックスも転送される場合が有利である。
【００１６】
他のストリップからのデータと、１つのデータバス、即ちストリップ内の異なったデータを結合するためのプロセッサ装置が、このような複数の結合装置を備え、これらの結合装置が、プログラム制御されて選択可能であることが有効である。この方法で、例えば、同じデータを種々に論理的又は算術的に結合することも可能である。
【００１７】
結合装置の出力は、更にまた実施形に応じて、プロセッサ装置の任意のレジスタと、例えば処理ユニットのレジスタと、又は更にはデータグループが登録可能であるグローバルのレジスタとも接続することができる。
【００１８】
切替え装置の不必要なエネルギー消費を回避するために、結合装置の少なくとも１つの入力レジスタに、１つの制御装置が割り当てられており、この制御装置によって、入力レジスタ及びこれによりそのデータが結合装置から分離可能であるように設けることができる。従って、結合装置が、少なくとも部分的に組み合わせでクロック制御されないで作業するので、所定の時点では必要でないか、もしくは未だ全ての入力データが存在しないにもかかわらず、結合装置の入力データの変化が自動的に装置をキックオフすることを回避することができる。
【発明を実施するための最良の形態】
【００１９】
本発明を、以下で、添付図に関連した幾つかの実施形の説明によって解説する。
【００２０】
図１は、本発明により形成された模範的なプロセッサ装置を概略図に示す。このプロセッサ装置は、グループメモリ１を有し、このグループメモリ内に、データグループが１つのアドレスの下に記憶可能であり、その際、個々のデータグループは、複数のデータ要素を備える。ストリップ構造内には、それぞれ１つの入力レジスタＲ０．．．ＲＮ及び出力レジスタＲＲ０．．．ＲＲＮを有する処理ユニット２が配設されている。レジスタは、特殊な実施形に応じて、レジスタセットとしても形成することができ、従って、複数の入力もしくは出力レジスタを有することができる。出力レジスタＲＲ０〜ＲＲＮの後に配設されたグローバルの結合装置５は、入力段階で組み合わせのクロック制御されない加算回路として形成されている。処理ユニット２とグループメモリ１との間には、更にグローバルの通信ユニット３が配設されており、この通信ユニットを介して、グループメモリからのデータが、それぞれの処理ユニット２に供給することができる。更に、データグループ又はデータグループの少なくとも１つの要素は、通信ユニットを迂回して直接割り当てられた処理ユニットと接続可能である。データグループは、同時かつ平行にデータメモリから読み出され、複数の処理ユニットへと分割され、そしてこれらの処理ユニット２内で平行に処理される。これらの処理ユニットは、それぞれ少なくとも１つのプロセスユニットと算術ロジックユニットとを有し、しかしながら、これらのユニットは、図には図示されてない。何故なら、これらのユニットは、本発明を理解するために重要ではないからである。
【００２１】
レジスタが、レジスタセットとして形成されている場合、それぞれ処理ユニットと割り当てられた入力レジスタセットもしくは出力レジスタセットとの間に、更に少なくとも１つの入力結合ロジックもしくは少なくとも１つの出力結合ロジックを配設することができ、これらの結合ロジックと、１つのデータバス内の１つのレジスタセットのレジスタが接続可能である。グループメモリ１からの１つのデータグループのそれぞれの要素に、説明したように、直接割り当てられた処理ユニットに供給できるか、通信ユニットによって、他の処理ユニットへと分配できるかのいずれかである。入力レジスタＲ０．．．ＲＮを介して、データは、それぞれの処理ユニット２内に達し、その際、処理の結果は、それぞれの出力レジスタＲＲ０．．．ＲＲＮ内に書き込まれる。これらの結果データは、更にまた直接グループメモリ１内に書き込むことができるか、通信ユニット３によって分配することができる。
【００２２】
隣接する処理ユニット２の間に、ローカルの結合装置４が配設されており、この結合装置によって、隣接する両方の処理ユニット２からのデータは、組み合わせのクロック制御されない結合装置と結合され、その際、結果は、両方の処理ユニットの一方に逆に書き込まれる。両方のデータ要素は、ローカルの結合装置４内で組み合わせのクロック制御されないネットワークを介してＸＯＲ（排他的論理和）結合され、これにより、結果を確認するためのいかなる付加的なクロックサイクルも必要なく、結果が更に処理される処理ユニットは、いかなる内部遅延も受けない。
【００２３】
上で説明したように、全ての出力レジスタＲＲ０．．．ＲＲＮは、グローバルの結合装置５と接続されており、この結合装置内で、全て（Ｎ＋１）の処理ユニット２の個々の出力データが加算される。結合装置５の加算回路は、図３において４ストリップのプロセッサ装置のために図示されており、その際、図の簡単さのために、４ビットのデータワードが結合装置内で加算される。第１の段階Ｓ１で、４つの全加算器ＶＡによって、レジスタＲＲ０，ＲＲ１及びＲＲ２からの３つのデータワードＤ０〜Ｄ２の個々のビットが加算され、その際、結果は、それぞれ第２の段階Ｓ２の割り当てられた全加算器に与えられ、桁上げＣは、第２の段階Ｓ２内の次の桁の全加算器で行なわれる。図面では、データワードの桁は、Ｄｉｊで指示されており、その際、ｉは、データワード（即ちストリップ）を、またｊは、データワードの桁を確定する。入力値として、第２の段階の４つの全加算器ＶＡに、第４のストリップのレジスタＲＲ３からの第４のデータワードＤ３のそれぞれのビットも加えられる。結合装置の第１及び第２の段階で、桁上げＣは、後続の桁の全加算器で桁上げされないので、全ての計算は、両方の段階Ｓ１及びＳ２内で同時かつ直ちに全加算器の入力部へのデータの登録と共に実行することができる。半加算器ＨＡ及び後に接続された連続する３つの全加算器ＶＡを有する最後の段階で初めて、後続の桁の全加算器でのより低い桁の桁上げＣが転送され、従って、図３に図示された結合装置は、最後の部分段階内の３つの桁上げ転送で間に合い、この部分段階は、容易に個々のクロックサイクル内で実行される。結果として、６ビットのデータワードＧが生じ、このデータワードは、結合装置の最後の段階で、桁上げ及び和ベクトルの結合によって生じる。結果ワードのより高い桁は、データグループを構成するためにゼロでもって満たされ（図３では図示されてない）、制御装置７を介して、グローバルの通信ユニット３へと導かれ、この通信ユニットから、計算されたデータグループは、グループメモリ内に記憶されるか、処理装置へと分配されるかのいずれかである。
【００２４】
両方の第１の段階Ｓ１，Ｓ２は、組み合わせでクロック制御されないで実行されるので、グローバルの結合装置５のそれぞれの入力は、ラッチの形の制御可能なゲート６を備え、このゲートによって、出力レジスタＲＲ１．．．ＲＲＮ内の変化は、グローバルの結合装置５内に導入することができる。これにより、１つの処理ユニットの１つの出力レジスタ内の変化が、グローバルの結合装置５がデータを結合し、これが常にエネルギー消費に結びついているということに自動的に通じることが回避される。この方法で、データの結合は、結合装置内で結合されるデータが必要とされるか、もしくはその後で全ての入力データが存在するような時点でキックオフすることができる。
【００２５】
組み合わせの結合装置の他の実施形によれば、この結合装置は、付加的なＸＯＲ結合部を設けることによって減算回路として形成されているか、又はスライド装置又はインバータを有することができる。
【００２６】
本発明の図示されてない別の実施形にあっては、複数のストリップを介して最大値を構成するための結合装置が形成されている。この装置は、複数の計算段階を備え、これらの計算段階では、それぞれ２つのストリップのデータが互いに減算される。結果が負である場合は減数が、結果が正である場合は被減数が、次の計算段階に転送される。同時に、インデックスがこの計算段階に引き渡され、このインデックスは、ストリップを示し、このストリップに、これまで考慮されたストリップの極値が存在する。従って、８つのストリップを介して最大値を構成する場合、３ビットのインデックスと、７つの計算段階が必要である。これらの計算段階は、カスケード状に、しかしながらまた少なくとも部分的に平行に処理するように形成することができる。
【００２７】
図２は、概略図に本発明による別のプロセッサ装置を示し、このプロセッサ装置の場合、グローバルの結合装置８が、入力レジスタＲ０．．．ＲＮと接続されている。結合装置８は、分離され独立した２つのロジック装置を有し、これらのロジック装置の内の１つは、制御ライン１１によって選択することができる。第１のロジック装置は、データグループを発生させ、このデータグループは、グローバルのデータフィードバック１０を介してグローバルの通信ユニット３にフィードバックされる。これに対して、第２のロジック装置では、データ要素が発生させられ、このデータ要素は、ローカルのデータフィードバック９を介して第２のストリップの処理ユニット２の入力レジスタＲ１へとフィードバックされる。
【図面の簡単な説明】
【００２８】
【図１】第１の本発明によるプロセッサアーキテクチャの概略図を示す。
【図２】第２の本発明によるプロセッサアーキテクチャの概略図を示す。
【図３】異なった平行なデータバスからのデータを結合するための結合装置の模範的な構成を示す。
【符号の説明】
【００２９】
０        ストリップ
１        グループメモリ
２        処理ユニット
３        グローバルの通信ユニット
４        ローカルの結合装置
５        グローバルの結合装置
６        制御装置／ラッチ
７        制御装置
８        グローバルの結合装置
９        ローカルのデータフィードバック
１０      グローバルのデータフィードバック
１１      グローバルの結合装置のための制御ライン
Ｓ１      加算回路の第１の段階
Ｓ２      加算回路の第２の段階
Ｓ３      加算回路の第３の段階
Ｒｉ      入力レジスタ（ｉ＝０．．．Ｎ）
ＲＲｉ    出力レジスタ（ｉ＝０．．．Ｎ）
Ｄｉ      データワード（ｉ＝０．．．３）
ＶＡ      全加算器
ＨＡ      半加算器
Ｃ        全加算器の桁上げ
Ｇｊ      和の第ｊの桁（ｊ＝０．．．５）
【図１】
2005518048.tif 000003
【図２】
2005518048.tif 000004
【図３】
2005518048.tif 000005
【国際調査報告】
2005518048.tif 000006
2005518048.tif 000007
2005518048.tif 000008
2005518048.tif 000009
2005518048.tif 000010
2005518048.tif 000011