(57)【特許請求の範囲】
【請求項１】
複数の処理要素を有する処理システムであって、前記処理要素が、制御器及び計算手段を有し、前記複数の処理要素が、相互に独立して動作するタスク・ユニットとして、クラスタ制御信号により動的に再構成可能であり、前記タスク・ユニットが、１つの処理要素又は２つ以上の処理要素のクラスタを有し、クラスタ内の前記処理要素が、共通スレッドのプログラム制御の元に命令を実行するように構成されており、
クラスタ内に構成された複数の処理要素は、命令の実行を制御するための少なくとも１つの共通制御信号を共用しており、
前記共通制御信号は、前記処理要素に接続された再構成可能なチャネル・インフラストラクチャを介して伝送される中間制御信号から得られ、
前記中間制御信号は、先行する前記処理要素の夫々の演算制御信号の組合せによって生成され、
前記再構成可能なチャネル・インフラストラクチャは、各処理要素に対する組合せ要素と、隣接する処理要素のそれぞれの対の間にあるスイッチとを有する制御チェーンを、備える、
ことを特徴とする、処理システム。
【請求項２】
請求項１に記載の処理システムであって、タスク・ユニットにおいて体系化される処理要素が、命令実行を制御する少なくとも１つの共通制御信号を共有する、処理システム。
【請求項３】
請求項２に記載の処理システムであって、前記共通制御信号が、保護された動作を制御するフラグである、処理システム。
【請求項４】
請求項３に記載の処理システムであって、前記保護された動作が、条件付き分岐である、処理システム。
【請求項５】
請求項１ないし４の何れか１項に記載の処理システムであって、前記処理要素が、データ・パス接続を介して相互に接続される、処理システム。
【請求項６】
請求項５に記載の処理システムであって、前記データ・パス接続が、隣合う接続に制限される、処理システム。
【請求項７】
請求項１ないし６の何れか１項に記載の処理システムであって、前記共通制御信号が、前記処理要素に接続された再構成可能なチャネル・インフラストラクチャを介して伝送される中間制御信号から引き出される、処理システム。
【請求項８】
請求項７に記載の処理システムであって、前記共通制御信号が、各々の処理要素に関連する組合せ要素を介して前記中間制御信号を組み合わせることによって引き出される、処理システム。
【請求項９】
請求項８に記載の処理システムであって、前記組合せ要素が、ＯＲゲートから構成される、処理システム。
【請求項１０】
請求項７に記載の処理システムであって、前記チャネル・インフラストラクチャが、プログラム可能な和項を有する、処理システム。
【請求項１１】
請求項７に記載の処理システムであって、前記チャネル・インフラストラクチャが、プログラム可能な積項を有する、処理システム。
【請求項１２】
請求項７に記載の処理システムであって、前記チャネル・インフラストラクチャが、相互に横断するチェーンを有する、処理システム。
【請求項１３】
請求項１２に記載の処理システムであって、第１方位を有するチェーンを介して伝送される前記中間制御信号が、第２方位を有するチェーンにおける前記組合せ要素に転送される、処理システム。
【請求項１４】
請求項１３に記載の処理システムであって、前記第２方位を有する前記チェーンを介して伝送される前記中間制御信号が、前記第１方位を有する前記チェーンにおける前記組合せ要素に転送される、処理システム。
【請求項１５】
請求項７又は１２に記載の処理システムであって、前記チャネル・インフラストラクチャが、前記チャネル・インフラストラクチャを介して伝送される中間制御信号を、関連する処理要素の演算制御信号と組み合わせる組合せ要素と、中間制御信号の伝送を抑制することがローカルに制御可能である、処理要素の対の間におけるプログラマブル・スイッチとを有する、処理システム。
【請求項１６】
請求項１５に記載の処理システムであって、前記組合せ要素が、ＯＲゲートから構成される、処理システム。
【請求項１７】
請求項１５に記載の処理システムであって、前記プログラマブル・スイッチが、ＡＮＤゲートを有する、処理システム。
【請求項１８】
請求項１５、１６又は１７に記載の処理システムであって、前記プログラマブル・スイッチが、メモリ・セルに記憶される信号によってプログラムされる、処理システム。
【請求項１９】
請求項１８に記載の処理システムであって、前記処理要素のうちの少なくとも１つが、前記メモリ・セルのうちの少なくとも１つへ書込みすることが可能である、処理システム。
【請求項２０】
請求項１８に記載の処理システムであって、前記スイッチをプログラムするように用いられるメモリ・セルの組が、メモリにおいてデータ・ワードとして体系化される、処理システム。
【請求項２１】
請求項２０に記載の処理システムであって、前記メモリが、複数のデータ・ワードを含み、前記プログラマブル・スイッチが、これらデータ・ワードのうちの１つを選択することによってプログラムされる、処理システム。
【請求項２２】
請求項２１に記載の処理システムであって、１つ又は複数の前記処理要素が、メモリにおける前記データ・ワードを動的に選択することによって前記プログラマブル・スイッチをプログラムすることが可能である、処理システム。
【請求項２３】
請求項１８、１９、２０、２１又は２２に記載の処理システムであって、前記メモリが、揮発性ランダム・アクセス・メモリから成る、処理システム。
【請求項２４】
請求項１ないし２３の何れか１項に記載の処理システムであって、前記処理要素が、ＶＬＩＷ処理器を有する、処理システム。
【請求項２５】
請求項２４に記載の処理システムであって、前記ＶＬＩＷ処理器が、内部相互接続ネットワークを有する、処理システム。
【請求項２６】
請求項２５に記載の処理システムであって、前記相互接続ネットワークが、２地点間接続から成る、処理システム。
【請求項２７】
請求項２５又は２６に記載の処理システムであって、前記相互接続ネットワークが、処理要素を横切るデータ・パス接続を有する、処理システム。
【請求項２８】
請求項１ないし２７の何れか１項に記載の処理システムであって、前記処理要素が、２次元格子に配置される、処理システム。
【請求項２９】
複数の処理要素を有する処理システムを動作する方法であって、前記処理要素が、制御器及び計算手段を有し、当該方法に従い、前記複数の処理要素が、相互に独立して動作するタスク・ユニットとして動的に再構成され、前記タスク・ユニットが、１つの処理要素又は２つ以上の処理要素のクラスタを有し、クラスタ内の前記処理要素が、共通スレッドのプログラム制御の元に命令を実行する方法において、
先行する前記処理要素の夫々の演算制御信号の組合せによって生成された中間制御信号を、当該処理要素の演算制御信号と組み合わせ、この組み合わせた信号を、後続の処理要素に、送出するステップと、
各処理要素において、当該処理要素の演算制御信号と前記中間制御信号とから、共通制御信号を得るステップと、
前記共通制御信号により、処理要素のクラスタを動的に制御するステップと、
を備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理要素を有する処理システムに関する。
【０００２】
本発明は、更に、斯様な処理システムを動作する方法に関する。
【背景技術】
【０００３】
超長命令語処理器（ＶＬＩＷ処理器）は、多数の演算を１つのクロック・サイクル内で実行することが可能である。一般的に、コンパイラは、プログラム命令を、前記処理器が同時に実行することが可能である基本演算へと減らす。同時に実行されるべき演算は、１つの超長命令語（ＶＬＩＷ）へ組み合わせられる。ＶＬＩＷ処理器の命令復号器は、ＶＬＩＷにおいて含まれる前記基本演算を復号化し、各々対応する処理器データ・パス（ｄａｔａ・ｐａｔｈ）要素へ発行する。代案においては、ＶＬＩＷ処理器は、何の命令復号器も有さず、ＶＬＩＷにおいて含まれる演算は各々、対応する処理器データ・パス要素へ直接発行される。その後、これらの処理器データ・パス要素は、ＶＶＬＩＷにおける演算を並列に実行する。命令レベル並列処理（ＩＬＰ）としても呼ばれる、この種の並列処理は、例えば、メディア処理において見られ得るような、大量の同一計算を含むアプリケーションに関して特に適している。例えば、サーボ制御目的に関するような、より制御志向の演算を含む他のアプリケーションは、ＶＬＩＷプログラムとしてプログラムするのに適さない。しかし、多くの場合、これらの種類のプログラムは、相互に独立して実行され得る複数のプログラム・スレッドに減らされ得る。また並列にした斯様なスレッドの実行は、スレッド・レベル並列処理（ＴＬＰ）として記される。しかし、ＶＬＩＷ処理器は、スレッド・レベル並列処理を用いてプログラムを実行するのに適さない。後者の種類の並列処理を十分に活かすには、処理器データ・パス要素の異なるサブセットが独立した制御フローを有することが必要である、すなわち、これらの処理器データ・パス要素の異なるサブセットが、これら自身のプログラムに相互に独立したシーケンスでアクセスすることが可能であること、例えば、条件付き分岐（ｃｏｎｄｉｔｉｏｎａｌ・ｂｒａｎｃｈ）を実行することが可能であることが必要である。しかし、ＶＬＩＷ処理器におけるデータ・パス要素は、ロック・ステップ・モードで動作する、すなわち、データ・パス要素は全て、命令のシーケンスを同じ順序で実行する。したがって、ＶＬＩＷ処理器は、１つのスレッドのみを実行し得る。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、アプリケーションに応じて、命令レベル並列処理、タスク・レベル並列処理又はこれらの組合せを活用するために、データ・パス要素の同じサブセットを用いることが可能である処理器を提供することである。
【課題を解決するための手段】
【０００５】
この目的のために、本発明に従う処理器は、複数の処理要素を有し、前記処理要素は、制御器及び計算手段を有し、前記複数の処理要素は、相互に独立して動作するタスク・ユニットとして動的に再構成可能であり、前記タスク・ユニットは、１つの処理要素又は２つ以上の処理要素のクラスタを有し、クラスタ内の前記処理要素は、共通スレッドのプログラム制御の元に命令を実行するように構成される。クラスタにおける処理要素は、ロック・ステップ・モードで実行すると考えられる。前記計算手段は、加算器、乗算器、例えば、ＡＮＤ、ＯＲ、ＸＯＲなどの論理演算、ルックアップ・テーブル演算又はメモリ・アクセス等を実行する手段を有し得る。
【０００６】
１９９０年発行のＰｒｏｃ． ｏｆ Ｓｕｐｅｒｃｏｍｐｕｔｉｎｇの９１０〜９１９頁における、Ｃｏｌｗｅｌｌ等による、「Ａｒｃｈｉｔｅｃｔｕｒｅ ａｎｄ Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ ｏｆ ａ ＶＬＩＷ Ｓｕｐｅｒｃｏｍｐｕｔｅｒ」は、２つの１４演算幅処理器であって、各々が、対応する制御器によって独立して制御される１４演算幅処理器として、又は、１つの制御器によって制御される１つの２８演算幅処理器として、のいずれかに構成され得る、ＶＬＩＷ処理器を記述することを特記する。しかし、前記文書は、任意の数の処理要素を有する任意の数の独立して演算するクラスタへ再構成され得る処理器アレイの原理を開示せず、また斯様な処理器アレイが、如何にして実現され得るかということも開示しない。
【０００７】
本発明に従う処理器アレイにおいて、処理要素は、全て独立して又は全てロック・ステップ・モードで動作し得る。先行技術とは異なり、本発明は、各々のクラスタ内の処理要素が、命令レベル並列処理を用いてタスクを実行し得る一方で、処理要素のクラスタに相互に独立して実行することも可能にさせる。斯様にして、当該処理器は、タスクに応じて、処理器の構成を最も適した形式に動的に適合することが可能である。処理器は、命令レベルで並列処理を活用する可能性をあまり有さないタスクにおいて、比較的多数の小さいクラスタ（例えば、１つまたは少数のみの処理要素を有する）として構成され得る。このことは、スレッド・レベルでの並列処理を十分に活用することを可能にする。処理器は、メディア処理における多くの場合であるような、タスクが、命令レベル並列処理を十分活用するのに非常に適している場合に、少数の大きいクラスタに再構成され得る。各々のクラスタのサイズは、処理速度に関する必要条件に適合され得る。このことは、いくつかのスレッドの制御フローを並列に有し、各々が、当該スレッドにおいて活用され得るＩＬＰに一致する多数の関数ユニットを有することを可能にする。処理器のクラスタへの構成は、静的又は動的のどちらでもあり得る。静的の場合において、構成は、アプリケーションの実行を通じて同一であり続ける。動的の場合において、構成は、アプリケーションの実行の間において、ランタイムで変更され得る。静的の場合は、動的の場合の特別な場合として見なされ得る。
【０００８】
米国特許第６，２６６，７６０号は、例えば、ＡＬＵ、命令記憶、関数記憶又はプログラム計数器として、特定の関数を実行するように構成され得る、複数の基本関数ユニットを有する再構成可能な処理器を記述する。斯様にして、処理器は、例えば、マイクロコントローラ、ＶＬＩＷ処理器又はＭＩＭＤ処理器のように、様々に用いられ得る。しかし、前記文書は、処理要素が１つ又は複数のクラスタに構成され得、同一のクラスタ内の処理要素が、該処理要素の自身の制御器を有するにもかかわらず共通スレッドの制御の元に動作し、相互に異なるクラスタにおける処理器が、相互に独立して、すなわち、異なるスレッドの制御に従い動作する制御器を各々有する個別の処理要素を有する処理器を開示しない。
【０００９】
米国特許第６，２９８，４３０号は、１つのユニット群である、少なくとも２つのサブ・マイクロプロセッサ（ＳＭ）及び１つのパケット・バス制御器（ＰＢＣ）を各々有する計算クラスタである、既定数の分散型構成可能単一処理器（ＤＣＳＰ）を有する、使用者構成可能な超スカラ・マルチプロセッサを記述する。ＤＣＳＰ、ＳＭ及びＰＢＣは、ローカル・ネットワーク・バスを介して接続される。ＰＢＣは、ＰＢＣをＳＭの各々と接続する通信バスを有する。ＰＢＣを各々のＳＭと接続するＰＢＣの通信バスは、１つのハードワイヤ接続及び１つのプログラム可能なスイッチ可能なコネクタの直列チェーンを有する。ＳＭ間の各々の通信バスは、少なくとも１つのハードワイヤ接続及び２つのプログラム可能なスイッチ可能なコネクタを有する。複数のＳＭは、分離したＳＭ群にプログラム可能に組み合わせられ得る。クラスタのＳＭの全ては、クラスタにおいてマスタとして役目を果たす１つのＳＭからのクロック周波数によってクロックが作成される場合、非同期モード又は同期モードのどちらかで動作し得る。既知のマルチプロセッサは、任意のサイズのクラスタの構成を可能にしない。
【００１０】
処理要素は、好ましくは、例えば、キャッシュの形をとるような、自身の命令メモリを各々有する。これは、処理要素の独立した動作を容易にする。自身のローカル命令メモリに加えて又は代わりとして、処理要素は、グローバル・メモリを共有し得る。
【００１１】
これらの及び他の態様は、図面を参照にして、更に詳細に説明される。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明による処理器システムを概略的に示す。当該処理器システムは、複数の処理要素ＰＥ１，１、・・・、ＰＥ１，ｎ；ＰＥ２，１、・・・、ＰＥ２，ｎ；ＰＥｍ，１、・・・、ＰＥｍ，ｎを有する。処理要素は、データをデータ・パス接続ＤＰＣを介して交換し得る。図１に示される好ましい実施例において、処理要素は、直角の格子状に配列され、データ・パス接続は、隣接した処理要素間のデータ交換を提供する。非隣接処理要素は、相互に隣接した処理要素のチェーンを介してデータを転送することによってデータを交換し得る。代わりとして又は加えて、処理器システムは、処理要素のサブセットに広がる１つまたは複数のグローバル・バス、又は処理要素のいずれの対の間における２地点間接続を有する。
【００１３】
図２は、処理要素の例を更に詳細に示す。各々の処理要素は、１つ又は複数の演算発行スロット（ＩＳ）を有し、各々の発行スロットは、１つ又は複数の関数ユニット（ＦＵ）を有する。図２における処理要素は、５つの発行スロットＩＳ１〜ＩＳ５並びに６つのＦＵである、２つの算術／論理ユニット（ＡＬＵ）、２つの積和演算ユニット（ＭＡＣ）、アプリケーション固有ユニット（ＡＳＵ）及びデータ・メモリに関連付けられるロード／記憶ユニット（ＬＤ／ＳＴ）を有する。発行スロットＩＳ１は、２つＦＵであるＡＬＵ及びＭＡＣを有する。共通発行スロットにおけるＦＵは、レジスタ・ファイルからの読み込みポート及び相互接続ネットワークＩＮへの書込みポートを共有する。代わりの実施例において、第２相互接続ネットワークは、レジスタ・ファイルと演算発行スロットとの間において用いられ得る。発行スロットにおける関数ユニットは、前記発行スロットに関連する少なくとも１つのレジスタ・ファイルへのアクセスを有する。図２において、各々のスロットに関連して１つのレジスタ・ファイルが存在する。代わりとしては、複数の発行スロットが、１つのレジスタ・ファイルに接続され得る。更なる別の可能性は、複数の独立したレジスタ・ファイルが、１つの発行スロット（例えば、発行スロットにおけるＦＵの各々の別々の読み込みポートに関する１つの個別のＲＦ）に接続されることである。また異なるＰＥ間のデータ・パス接続ＤＰＣも、夫々のＰＥの相互接続ネットワークＩＮへ接続される。ＦＵは、命令メモリＩＭへのアクセスを有する制御器ＣＴによって制御される。プログラム計数器ＰＣは、命令メモリＩＭにおける現在の命令アドレスを決定する。前記現在のアドレスによって指定された命令は、初めに、制御器における内部命令レジスタＩＲへロードされる。その後、制御器は、データ・パス要素（関数ユニット、レジスタ・ファイル、相互接続ネットワーク）が命令レジスタＩＲに記憶された命令によって特定される演算を実行するように制御する。上記のことを実行するために、制御器は、関数ユニットへオプコード・バス（ｏｐｃｏｄｅ・ｂｕｓ）ＯＢを介して（例えば、オプコードを関数ユニットに供給して）、レジスタ・ファイルへアドレス・バスＡＢを介して（例えば、レジスタ・ファイルにおいてレジスタを読み込み及び書込みするアドレスを供給して）、及び相互接続ネットワークＩＮへルーティング・バスＲＢを介して（例えば、ルーティング情報を相互接続マルチプレクサに供給して）通信する。制御器は、クラスタ演算制御信号Ｃを受信する入力を有する。この制御信号Ｃは、保護された命令、例えば、条件付き分岐（ｃｏｎｄｉｔｉｏｎａｌ・ｊｕｍｐ）が実行されるようにさせる。また制御器は、他の処理要素へ演算制御信号Ｆを供給する出力を有する。このことは、以下に更に詳細に説明される。
【００１４】
図３は、図１に示される処理器の一部分を形成し、図２に示されるような更に詳細なアーキテクチャを有する、４つの処理要素ＰＥ１、・・・、ＰＥ４のクラスタが、チャネルＣＨに結合される例を示す。処理要素の各々は、演算制御信号Ｆ１、・・・、Ｆ４をチャネルＣＨへ供給し得る。前記チャネルは、Ｆ１ ＯＲ Ｆ２ ＯＲ Ｆ３ ＯＲ Ｆ４に等しいクラスタ演算制御信号Ｃを戻す。ゆえに、クラスタにおける処理要素ＰＥｊのいずれも、自身の演算制御信号Ｆｊを活性化し、その後処理要素の各々は、活性化されたクラスタ演算制御信号を受信する。このことは、処理要素ＰＥ１、・・・、ＰＥ４の各々に処理器ＰＥｊと同じ手法で、これら処理要素の保護された動作を実行するようにさせる。保護された動作の特定の例は、条件付き分岐である。クラスタ演算制御信号は、処理要素ＰＥ１、・・・、ＰＥ４がロック・ステップ・モードで、また条件付き分岐の場合においても、プログラム実行を実施することを可能にする。斯様にして、命令レベル並列処理は、両方の処理要素のプログラム計数器が結合されたモードで動作するように、活用され得る。このことは、処理要素が、対応するアドレス、すなわち、コヒーレントなＶＬＩＷ命令において一緒に属するＰＥ命令を有するにもかかわらず、おそらくは命令メモリにおける異なる物理的アドレスから命令をフェッチするという結果を有する。斯様な場合、我々は、異なる物理的アドレスが同じ論理アドレスに対応すると呼ぶ。同じ手法で、クラスタ演算制御信号は、他の条件付き又は保護された動作を制御するように用いられ得る。示される好ましい実施例において、処理要素は、自身の演算制御信号Ｆを放送（送信）する出力とクラスタ演算制御信号Ｃを監視する出力とである個別の出力を有する。代わりとしては、処理要素の各々が、クラスタ演算制御信号Ｃをプルダウンし得る、プルダウン方式を適用することが可能である。この場合、１つの端末のみが必要とされる。
【００１５】
クラスタ演算制御信号Ｃは、クラスタに固有である。処理器における異なるクラスタは、異なると共に独立した制御信号Ｃを有し得る。所与のクラスタに関するクラスタ演算制御信号を評価するために、チャネルは、前記クラスタに属するＰＥの演算制御信号Ｆの論理ＯＲ演算を実行しなければならないが、前記クラスタに属さないＰＥから来る全ての演算制御信号を無視しなければならない。斯様にして、処理器は、各々のクラスタが、異なるクラスタ・チャネルに関連付けされるような、処理器における多重で異なるクラスタの形成を可能にするように、再構成可能なチャネル・インフラストラクチャを有さなければならない。
【００１６】
図４は、例として、如何にして７つの処理要素ＰＥ１、・・・、ＰＥ７を有する処理器が、ＰＬＡのようなプログラム可能な和項（ｓｕｍ−ｔｅｒｍ）を有する再構成可能なチャネル・インフラストラクチャを用いて構成され得るかを示す。示される例において、第１タスク・ユニットは、処理要素ＰＥ１及びＰＥ２のクラスタによって形成される。第２タスク・ユニットは、処理要素ＰＥ３、ＰＥ４、ＰＥ５及びＰＥ６のクラスタを有し、第３タスク・ユニットは、１つの処理要素ＰＥ７を有する。他のいかなる構成も、プログラム可能な和項を（図４において「ｘ」として示される）設定することによって容易にプログラムされ得る。
【００１７】
図４に示される処理器の実施例は、独立して動作するタスク・ユニットにプログラム可能に再構成され得るが、各々の和項が、制御アレイ全体にわたり拡げられ、制御器の全ての１つ１つに接続されるという不利な点を有する。制御器の数が大きい場合、このことは、非常に大きく遅い和項に変わる可能性がある。更には、クラスタ・チャネルの遅延（すなわち、全ての「Ｆ」を受信した後に「Ｃ」を生成するのに掛かる時間）は、クラスタ自身のサイズではなく、制御器アレイ全体のサイズに依存する。そして、図４において提案される解決法は、多くの冗長性も有する。例えば、図３におけるチャネルを実行するのに、４つの和項が必要とされること注意しなければならない。４つの和項の各々の出力は、他の３つの和項の出力と同一である。したがって、提案された解決法は、４倍大きいハードウェアを必要とし得る一方で、原理的に、１つの和項のみが、前記クラスタ・チャネルを実行するのに十分であるはずである。
【００１８】
図５は、改善された実施例を示す。例として、第１及び第２処理要素ＰＥｊ及びＰＥｊ＋１は、複数の処理要素の一部分を形成するように示される。処理要素ＰＥｊ及びＰＥｊ＋１は、制御チェーンＣＨＮを有する再構成可能なチャネル・インフラストラクチャと、処理要素の各々に関する組合せ要素ＣＥｊ及びＣＥｊ＋１とに結合される。制御チェーンＣＨＮは、処理要素ＰＥｊからこの処理要素の後に続く処理要素ＰＥｊ＋ｉ、・・・へと、処理要素ＰＥｊ＋１からこの処理要素より前の処理要素ＰＥｊ、・・・へとの２方向における中間制御信号の伝達を制御する。この目的のために、制御チェーンＣＨＮは、各々の処理要素ＰＥｊに関するＣｊ，１及びＣｊ，２と、隣接する要素ＰＥｊ及びＰＥｊ＋１の各々の対の間におけるスイッチＳＷｊ，ｊ＋１を有する。組合せ要素Ｃｊ，１は、先行する処理要素ＰＥｊ−１、ＰＥｊ−２、・・・の夫々の演算制御信号Ｆｊ−１，Ｆｊ−２，・・・の組合せによって生成される中間制御信号Ｌ１を、処理要素Ｐｊの演算制御信号Ｆｊと組み合わせを行い、この組み合された信号をスイッチＳＷｊ、ｊ＋１へ供給する。構成信号Ｅｊ，ｊ＋１の値に応じて、前記組み合わせられた信号は、後続の処理要素Ｐｊ＋１へ更に伝送される。類似して、組合せ要素Ｃｊ，２は、スイッチＳＷｊ，ｊ＋１によって制御されて通過させられた、先行する処理要素ＰＥｊ＋１、ＰＥｊ＋２、・・・の夫々の演算制御信号Ｆｊ＋１、Ｆｊ＋２、・・・の組合せによって生成される中間制御信号Ｌ２を、処理要素Ｐｊの演算制御信号Ｆｊと組合せを行い、この組み合された信号を先行するスイッチＳＷｊ−１，ｊへ供給する。組合せ要素ＣＥｊは、中間制御信号Ｌ１及びＬ２のうちの１つ又は（信号Ｆｊ自身の出力によって作成された）信号Ｆｊが活性化される場合、処理要素ＰＥｊに活性クラスタ演算制御信号を供給する。
【００１９】
図６に示される好ましい実施例において、ＣＥｊ及びＣＥｊ＋１と同様に組合せ要素Ｃｊ，１及びＣｊ，２は、ＯＲゲートとして実行され、スイッチＳＷｊ，ｊ＋１は、ＡＮＤゲートを有する。しかし、他の種類の論理ゲートも、異なる信号状態に割り当てられる値に応じて用いられ得る。例えば、演算制御信号Ｆ及びクラスタ演算制御信号Ｃの活性化状態が、１の代わりに０の値を割り当てられる場合、ＯＲゲートが、ＡＮＤゲートによって置換されるべきであり、逆もあり得る。代わりとしては、３つから成る又は１つではない信号は、これらの制御信号の状態を示すのに用いられ得、この場合、他の論理ゲートを必要とする。更なる別の実施例において、チャネルは、プルダウン又はプルアップ方式を用い得る。構成信号Ｅｊ，ｊ＋１は、好ましくは、構成メモリ要素によって供給される。該構成メモリにおいて記憶される構成値は、外部構成バス、個別の構成処理器又は処理要素自身によってさえも供給され得る。代わりとしては、構成値は、構成メモリを介する代わりに、直接スイッチへ供給され得る。好ましくは、スイッチをプログラムするのに用いられるメモリ・セルの組は、メモリにおいてデータ・ワードとして体系化される。ある実施例において、メモリは、異なる構成を各々が含有する多重データ・ワードを含み得る。そこにおいて、プログラマブル・スイッチは、これらのデータ・ワードのうちの１つを選択することによってプログラムされ得る。例えば、１つの又は複数の処理要素は、メモリにおいてデータ・ワードを動的に選択することによってプログラマブル・スイッチをプログラムし得る。
【００２０】
図５によるアーキテクチャは、図７に示されるように２次元格子に配列された処理要素を有する処理器に関して、より高次元に容易に拡張し得る。組合せ要素及びスイッチの実装は、図６の実装と類似するものであり得る。当業者にとって、明瞭化のために、クラスタ演算制御信号Ｃを生成するのに関連する回路を含む、１つの処理要素ＰＥｉ，ｊのみが示されるが、任意の数の処理要素が接続され得るということは明らかである。図７の実施例において、チャネル・インフラストラクチャは、相互横断チェーン（ＣＨＮｉ，ｈ，Ｈ、ＣＨＮｉ，ｊ，Ｖ）を有する。より具体的には、関連する回路は、水平方向において処理要素ＰＥｉ，ｊに先行する又は後に続く他の処理要素との処理要素ＰＥｉ，ｊのクラスタ化を制御する「水平」チェーンＣＨＮｉ，ｊ，Ｈを有する。この関連する回路は、更に、垂直方向において処理要素ＰＥｉ，ｊに先行する又は後に続く他の処理要素との処理要素ＰＥｉ，ｊのクラスタ化を制御する「垂直」チェーンＣＨＮｉ，ｊ，Ｖを有する。「水平」及び「垂直」という表現は、直交方向のいかなる対として解釈されるべきであることを特記する。
【００２１】
水平チェーンＣＨＮｉ，ｊ，Ｈのスイッチ要素ＳＷｉ，ｊ−１；ｉ，ｊは、当該チェーンに結合される先行する処理要素の１つによって生成された入力信号を、中間制御信号として、中間制御信号をチェーンＣＨＮｉ，ｊ，Ｈの後続の部分に伝送する組合せ要素Ｃｉ，ｊ，１へ通過させることを制御可能である。同様にして、当該チェーンＣＨＮｉ，ｊ，Ｈのスイッチ要素ＳＷｉ，ｊ；ｉ，ｊ＋１は、当該チェーンに結合される後続の処理要素の１つによって生成された入力信号を、中間制御信号として、中間制御信号をチェーンＣＨＮｉ，ｊ，Ｈの先行する部分に伝送する組合せ要素Ｃｉ，ｊ，２へ通過させることを制御可能である。類似して、中間制御信号は、水平チェーンＣＨＮｉ，ｊ，Ｈの方向に横断する（直角である）方向に垂直チェーンＣＨＮｉ，ｊ，Ｖによって伝送されることを制御可能とする。加えて、水平チェーンＣＨＮｉ，ｊ，Ｈを介して伝送される中間制御信号Ｌ１及びＬ２は、垂直チェーンＣＨＮｉ，ｊ，Ｖにおける組合せ要素Ｃｉ，ｊ，３、Ｃｉ，ｊ，４へ転送される。類似して、垂直チェーンＣＨＮｉ，ｊ，Ｖを介して伝送される中間制御信号Ｌ３及びＬ４は、水平チェーンＣＨＮｉ，ｊ，Ｈにおける組合せ要素Ｃｉ，ｊ，１、Ｃｉ，ｊ，２へ転送される。このことは、「Ｌ」型及び任意の直角クラスタの形態を可能にする。組合せ要素ＣＥｉ，ｊは、中間制御信号Ｌ１、Ｌ２、Ｌ３及びＬ４を、処理要素ＰＥｉ，ｊ自身によって供給される演算制御信号と組合せを行い、クラスタ演算制御信号Ｃを当該処理要素ＰＥｉ，ｊへ供給する。
【００２２】
組合せ要素ＣＥｉ，ｊ並びに組合せ要素Ｃｉ，ｉ，１及びＣｉ，ｊ，２の論理関数は、横断的に最適化され得ることを特記される。更に具体的には、
Ｃｉ，ｊ，１は、Ｆ ＯＲ Ｌ３ ＯＲ Ｌ４ ＯＲ Ｌ１を計算し、
Ｃｉ，ｊ，２ は、Ｆ ＯＲ Ｌ３ ＯＲ Ｌ４ ＯＲ Ｌ２を計算し、
ＣＥｉ，ｊは、Ｆ ＯＲ Ｌ１ ＯＲ Ｌ２ ＯＲ Ｌ３ ＯＲ Ｌ４計算する。
【００２３】
したがって、ハードウェア実装において、全ての３つの組合せ（ＣＥ及び２つのＣ）の論理は、横断的に最小化され得る、すなわち、ゲートは、異なる組合せにわたって再利用され得る。本質的には、組合せ要素ＣＥにおいて実行された全ての基本演算は、既にＣにおいて実行されているので、ＣＥは、（基礎である（ｆｕｎｄａｍｅｎｔａｌ）にもかかわらず）ただの概念的ブロックである。同じ理論的解釈は、垂直チャネルに関しても適用する。したがって、図７における全ての５つの組合せ（１つのＣＥ及び４つのＣ）の論理は、組合せにわたるゲート再利用を通して最小化され得る。しかし、明瞭化の目的のために、組合せ要素ＣＥｉ，ｊは、図７において個別の関数として示される。当業者は、対応する追加されたサイクルが処理要素のプログラミングに考慮される限りは、信号伝搬遅延を低減するため、論理におけるループを取り除くため、又は他のいかなる目的のために、パイプライン・レジスタが、再構成可能なチャネル・インフラストラクチャの異なる地点に挿入され得ることを理解し得る。
【００２４】
また、提案された再構成可能なチャネル・インフラストラクチャにおいてスイッチをプログラムすることによってクラスタを形成する可能性が無数であると共に、利用可能な処理要素の数と共に指数的に増大することは、当業者にとって明らかである。
【００２５】
例として、このことは、長方形に配置される４つの処理要素を有する処理システムに関して図８ａから８ｄにおいて例示される。図８ａにおいて、処理要素は、相互に独立して動作している。制御信号を選択的に伝送するスイッチが、最も近い隣接するものとの間において配置されると仮定する。ゆえに、例えばＰＥ１からＰＥ３への制御信号の対角状の伝送は、許可されないが、制御信号は、ＰＥ２又はＰＥ４を介して伝送され得る。しかし、このことは、厳密な必要条件ではない。基本的には、チャネル・インフラストラクチャは、処理要素のいかなる対の間においても拡張することが可能であるが、チャネル・インフラストラクチャは、配置上の目的に関して、好ましくは、隣接する処理要素の対の間における制御可能な接続から構成される。
【００２６】
図８ｂは、３つのタスク・ユニットとして処理システムを構成する場合における、４つの可能な手法を示す。２つの処理要素間における線は、これらの処理要素が、１つのクラスタに繋ぎ合わされることを示す。
【００２７】
図８ｃは、６つのタスク・ユニットとして処理システムを構成する、６つの可能な手法を示す。
【００２８】
図８ｄは、全ての処理要素が、１つのタスク・ユニットにクラスタ化される、処理システムの構成を示す。
【００２９】
本発明の保護の範囲は、本文書において記述される実施例に制限されないことを特記する。論理関数が、複数の手法で実装され得ることは、当業者にとって明らかである。例えば、活性化された高信号において論理ＯＲ関数を実行する代わりに、論理ＡＮＤ関数が、活性化された低信号へ適用され得る。代わりとしては、これらの関数は、プルダウン方式又はルックアップ・テーブルによって実装され得る。本発明の保護の範囲は、請求項における参照符号によっても制限されない。「有する（ｃｏｍｐｒｉｓｉｎｇ）」という語は、請求項において言及される以外の要素を除外しない。要素の前にある「１つの（ａ（ｎ））」という語は、複数個のこれらの要素を除外しない。本発明の部分を形成する手段は、専用ハードウェア又はプログラムされた汎用目的処理器の両方のいずれかの形を取り実装され得る。本発明は、各々の新たな特徴又は特徴の組合せに属する。
【図面の簡単な説明】
【００３０】
【図１】図１は、本発明による処理器システムを概略的に示す。
【図２】図２は、更に詳細に処理要素の例を示す。
【図３】図３は、チャネルＣＨに結合された４つの処理要素のクラスタの例を示す。
【図４】図４は、処理システムの第１実施例における再構成可能なチャネル・インフラストラクチャを示す。
【図５】図５は、処理システムの第２実施例における再構成可能なチャネル・インフラストラクチャを示す。
【図６】図６は、図５の処理システムの更に詳細な実装を示す。
【図７】図７は、処理システムの第３実施例における再構成可能なチャネル・インフラストラクチャを示す。
【図８Ａ】図８Ａは、本発明による処理システムのいくつかの構成を示す。
【図８Ｂ】図８Ｂは、本発明による処理システムのいくつかの構成を示す。
【図８Ｃ】図８Ｃは、本発明による処理システムのいくつかの構成を示す。
【図８Ｄ】図８Ｄは、本発明による処理システムのいくつかの構成を示す。
【図１】
0004570962.tif 000002
【図２】
0004570962.tif 000003
【図３】
0004570962.tif 000004
【図４】
0004570962.tif 000005
【図５】
0004570962.tif 000006
【図６】
0004570962.tif 000007
【図７】
0004570962.tif 000008
【図８Ａ】
0004570962.tif 000009
【図８Ｂ】
0004570962.tif 000010
【図８Ｃ】
0004570962.tif 000011
【図８Ｄ】
0004570962.tif 000012