(57)【要約】本発明は、規則的なグリッドで構成される複数の同一又は少なくともほぼ同じ処理要素（１２０）から構成されるプロセッサを有する集積回路（１００）を開示する。各々の処理要素（１２０）はプロセッサの所望の機能を実行し得る。処理要素（１２０）は構成可能な相互接続ネットワーク（１４０）によって相互接続され、処理要素（１２０）を通じて命令フローにおける例外を処理し得るプログラムシーケンス発行デバイス（１６０）によって制御される。従って集積回路（１００）は容易に再設計されることが可能であり、それ故にこのようなアーキテクチャに対する設計労力及び市場投入期間が低減される。
2005528792.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令の少なくとも一つのサブセットをほぼ並列に実行するための複数の処理要素と、
前記複数の処理要素に対してプログラムカウンタドリブン命令フローを発行することによって前記複数の処理要素を構成するための発行手段と、
前記複数の処理要素からの各々の処理要素を前記複数の処理要素からの他の処理要素の少なくとも一つのサブセットに接続するための構成可能な相互接続手段と
を有する集積回路において、
前記複数の処理要素からの前記処理要素が互いにほぼ同様になり、前記複数の処理要素からの各々の処理要素は前記複数の命令からの各々の命令を実行することが可能であり、
前記複数の処理要素は、処理要素と、第一の方向における前記複数の処理要素からの隣接処理要素との間の距離が、前記処理要素と、前記第一の方向と異なる第二の方向における前記複数の処理要素からの隣接処理要素との間の距離とほぼ同じである規則的なグリッドでレイアウトされる
ことを特徴とする集積回路。  
【請求項２】
前記集積回路が超長命令語プロセッサアーキテクチャを有すると共に、前記複数の命令の前記サブセットが超長命令語を有する請求項１に記載の集積回路。
【請求項３】
前記構成可能な相互接続手段が、各々の処理要素を、前記グリッドにおいて各々の最も近い隣接処理要素に接続する請求項１に記載の集積回路。
【請求項４】
前記構成可能な相互接続手段が、前記複数の処理要素からの一つの処理要素をバイパスするためのバイパス手段を有する請求項１又は３に記載の集積回路。
【請求項５】
前記複数の処理要素からの一つの処理要素が、データ記憶ユニット、機能ユニット、及び前記機能ユニットを前記データ記憶ユニットに結合する内部相互通信ネットワークを有する請求項１又は３に記載の集積回路。
【請求項６】
前記処理要素は、少なくとも一つの更なるユニット、すなわち前記機能ユニットを有し、前記更なるユニット及び前記データ記憶ユニットは超長命令語プロセッサデータパスとして構成される請求項５に記載の集積回路。
【請求項７】
前記発行手段が前記処理要素に渡って分散される請求項６に記載の集積回路。
【請求項８】
ディジタルデータストリームを受信するための入力部を有すると共に、前記ディジタルデータストリームからもたらされる、人間が認知可能なデータ結果を送信するための出力部を有するデータ処理デバイスにおいて、前記入力部が請求項１乃至７の何れか一項に記載の集積回路を介して前記出力部に結合され、前記集積回路は前記ディジタルデータストリームから前記データ結果を抽出するためにもたらされることを特徴とするデータ処理デバイス。
【請求項９】
複数の命令の少なくとも一つのサブセットをほぼ並列に実行するための複数の処理要素と、
前記複数の処理要素に対してプログラムカウンタドリブン命令フローを発行することによって前記複数の処理要素を構成するための発行手段と、
前記複数の処理要素からの各々の処理要素を前記複数の処理要素からの他の処理要素の少なくとも一つのサブセットに接続するための構成可能な相互接続手段と
を有する集積回路を設計するための方法において、
前記複数の処理要素からの前記処理要素が互いにほぼ同様になり、前記複数の処理要素からの各々の処理要素は前記複数の命令からの各々の命令を実行することが可能になるように設計するステップと、
処理要素と、第一の方向における前記複数の処理要素からの隣接処理要素との間の距離が、前記処理要素と、第二の方向における前記複数の処理要素からの隣接処理要素との間の距離とほぼ同じである規則的なグリッドで前記複数の処理要素をレイアウトするステップと、
前記複数の処理要素からの各々の処理要素を前記複数の処理要素からの他の処理要素の少なくとも一つのサブセットに接続するステップと
を有することを特徴とする方法。
【請求項１０】
前記複数の処理要素からの各々の処理要素を前記複数の処理要素からの他の処理要素の少なくとも一つのサブセットに接続する前記ステップが、各々の処理要素を、前記グリッドにおいて各々の最も近い隣接処理要素に接続するステップを含む請求項９に記載の方法。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の命令（インストラクション（ｉｎｓｔｒｕｃｔｉｏｎ））の少なくとも一つのサブセットをほぼ並列に実行するための複数の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）と、複数の処理要素に対してプログラムカウンタドリブン命令フロー（ｐｒｏｇｒａｍ−ｃｏｕｎｔｅｒ−ｄｒｉｖｅｎ  ｉｎｓｔｒｕｃｔｉｏｎ  ｆｌｏｗ）を発行する（出す）ことによって複数の処理要素を構成するための発行手段（ｉｓｓｕｉｎｇ  ｍｅａｎｓ）と、複数の処理要素からの各々の処理要素を前記複数の処理要素からの他の処理要素の少なくとも一つのサブセットに接続するための構成可能な相互接続手段（ｃｏｎｆｉｇｕｒａｂｌｅ  ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ  ｍｅａｎｓ）とを有する集積回路に関する。
【背景技術】
【０００２】
進行する半導体ディメンションのダウンスケーリング（縮小化（ｄｏｗｎｓｃａｌｉｎｇ））により、半導体デバイス、例えば集積回路の使用可能な（空き）領域に組み込まれているビルディングブロック（ｂｕｉｌｄｉｎｇ  ｂｌｏｃｋ）数の増大がもたらされてきたと共になおももたらされている。従ってこのようなデバイスの用途はより広がり、このようなデバイスに対する動作性能の要求がそれに応じて増大している。このことは特に、専用タスク、例えばリアルタイムディジタルオーディオのビデオ信号処理を行うように設計されていると共にいわゆる特定用途命令セットプロセッサ（ＡＳＩＰ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｐｒｏｃｅｓｓｏｒ））を含んでおり、冒頭の段落において規定されているようなアーキテクチャを含んでいてもよいような回路の場合が該当する。
【０００３】
技術的なダウンスケーリングと結合されるＡＳＩＰに対する、絶えず増大する動作性能要求は通常、次世代ＡＳＩＰの場合、前世代処理要素の動作性能が新たなＡＳＩＰに対する要求を満たすのにもはや十分でないため、より多くの処理要素が設計に組み込まれるだけでなく、ＩＣアーキテクチャは始めから再設計されることを示唆する。
【０００４】
しかしながらこの傾向は、将来の集積回路技術に対してますます克服するのが困難なハードルとなる問題に関連している。当該集積回路における処理要素の増加、及び将来の世代のＩＣにおける当該処理要素の前述の限定された再利用性（ｒｅｕｓａｂｉｌｉｔｙ）は、当該ＩＣの設計者の設計労力の進行する増大を示唆する。更に当該処理要素の間の必要な相互接続がますます複雑になるため、ＩＣ設計に含まれるべき処理要素の増大する数は設計複雑化（ｄｅｓｉｇｎ  ｃｏｍｐｌｉｃａｔｉｏｎ）を招く。このことは既に困難なルーティング（配線引き回し（ｒｏｕｔｉｎｇ））の問題をもたらし始めており、二つの処理要素の間の相互接続ラインはあまりに長くなるので、ライン上の伝送遅延（ｔｒａｎｓｍｉｓｓｉｏｎ  ｄｅｌａｙ）が問題になるか、又は前記遅延が動作性能要求は満たされることを回避さえする。ＩＣに対する所要の市場投入期間（ｔｉｍｅ−ｔｏ−ｍａｒｋｅｔ）はますます短くなるため、このことは非常に深刻な問題となり、明らかなことにこのことは前述の増大する設計複雑化と衝突する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、比較的小さな設計労力でアップグレードされ得る冒頭の段落に記載の種類の集積回路を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は独立請求項によって規定される。有利な実施例は従属請求項において規定される。
【０００７】
本発明によれば、処理アーキテクチャのための所要のリソースが、各々の処理要素において結合されると共に、規則的な（規則正しい）グリッド（ｒｅｇｕｌａｒ  ｇｒｉｄ）、例えば２次元繰り返しレイアウト（ｔｗｏ−ｄｉｍｅｎｓｉｏｎａｌ  ｒｅｐｅｔｉｔｉｖｅ  ｌａｙｏｕｔ）で使用可能なシリコンの番地（ｓｉｌｉｃｏｎ  ｒｅａｌ  ｅｓｔａｔｅ）に渡って分散（分布）させられる。従来技術のＡＳＩＣと異なり、全て又は少なくともほとんどの処理要素は、あるクロックサイクルの間使用され得ないビルディングブロックを有するため、それは明らかなことにある領域のオーバヘッド（ｏｖｅｒｈｅａｄ）を生成するが、進行する半導体ディメンションダウンスケーリングによりますます多くの機能が集積回路に組み込まれ得るため、このことが欠点とならないことは強調される。更に重要なことに、ほとんど同質の処理要素と規則的なグリッドとの組み合わせにより、処理アーキテクチャの高速且つ安価な再設計が可能になる。従来技術の集積回路と異なり、二つのアプリケーションドメイン（ａｐｐｌｉｃａｔｉｏｎ  ｄｏｍａｉｎ）に対する二つのアーキテクチャは通常両方とも始めから再設計されなければならないが、本発明の集積回路は、処理要素の間に相互接続構造体を再規定することによって、又は一つのプロセッサ要素のみを再設計することによって一つの設計を単純に再利用することが可能であり、その結果第二（２番目）のＩＣの市場投入期間は大幅に短縮される。更に、第一（最初）のリソグラフィックマスクセット（ｌｉｔｈｏｇｒａｐｈｉｃ  ｍａｓｋ  ｓｅｔ）は、相互接続部を規定するマスク、例えばＶＩＡマスクを除いて完全に再利用され得るため、第二のＩＣはより少ない費用でも製造されるであろう。更に第一の設計に組み込まれるリソースの数がＩＣの動作性能要求をもはや十分に満たさないとき、ＩＣは、処理要素の更なる行又は列をグリッドに追加することによって単純に拡張（ｅｘｔｅｎｄ）され得る。このことはより少ない設計労力しか含んでいない。
【０００８】
集積回路が超長命令語（ＶＬＩＷ（ｖｅｒｙ  ｌｏｎｇ  ｉｎｓｔｒｕｃｔｉｏｎ  ｗｏｒｄ））プロセッサアーキテクチャを有すると共に、複数の命令のサブセットが超長命令語を有する場合、特に有利となる。ますます多くの処理要素がＶＬＩＷプロセッサに組み込まれており、これにより様々な処理要素の間に深刻なルーティングの問題がもたらされる。本発明の教示によるＶＬＩＷプロセッサを実現することによって、全ての処理要素が所要のリソースに常に近付いているため当該ルーティング問題は回避されるプロセッサアーキテクチャがもたらされる。
【０００９】
構成可能な相互接続手段が各々の処理要素を、グリッドにおいて各々の最も近い隣接処理要素（ｎｅｉｇｈｂｏｒｉｎｇ  ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）に接続する場合、更に有利となる。従ってこれにより、完全なコネクティビティ（接続性（ｃｏｎｎｅｃｔｉｖｉｔｙ））を備える規則的なグリッドがもたらされる。これにより集積回路の使用において増大された柔軟性（フレキシビリティ（ｆｌｅｘｉｂｉｌｉｔｙ））がもたらされる。例えば処理要素のグリッドは、データフローマシン（ｄａｔａ  ｆｌｏｗ  ｍａｃｈｉｎｅ）として使用されることが可能であり、ここでデータがグリッドの一方の側からグリッドの他方の側にリップル（ｒｉｐｐｌｅ）される場合、各々の処理要素は、発行手段によって構成されると共にいくつかのクロックサイクルの間、その構成で保持される。このことは、グリッドのディメンションがループ本体（ｌｏｏｐ  ｂｏｄｙ）のディメンションにチューニングされ得るため、ループ実行（ｌｏｏｐ  ｅｘｅｃｕｔｉｏｎ）に対して特に有利となる。これにより、ループ全体又はループのほとんどのデータ自律（ｄａｔａ−ａｕｔｏｎｏｍｏｕｓ）部分はグリッド上にマッピングされ得る。従って、データを伴う処理要素及び／又は発行手段と命令メモリとの低速の通信が非常に低減されるため、ループ実行の動作性能は大幅に向上させられるであろう。明らかなことに、たとえ完全なコネクティビティを備えるグリッド、例えば各々の処理要素が全ての自身の最も近い隣接部に接続されるグリッドと比較して低減された柔軟性を備えていても、このようなデータフローアプリケーションは、完全な（フルの（ｆｕｌｌ））コネクティビティを欠いているグリッド上でも実行され得る。
【００１０】
他方で処理要素は、サイクル毎に命令レベルの並列処理（ｉｎｓｔｒｕｃｔｉｏｎ−ｌｅｖｅｌ  ｐａｒａｌｌｅｌｉｓｍ）を利用する従来ＶＬＩＷの態様でも動作させられ得る。それ故に、動作中、ＩＣの構成がデータフローモードから従来ＶＬＩＷモードにスイッチされ得るため、ＩＣは再構成可能なデバイスとして理解され得る。
【００１１】
この点で、フィールドプログラマブルゲートアレイ（ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ））のような知られている再構成可能なデバイスと本発明による規則的な構造のＩＣ（ｒｅｇｕｌａｒｌｙ  ｓｔｒｕｃｔｕｒｅｄ  ＩＣ）との間に重大且つ基本的な差が存在することは強調される。知られている再構成可能なデバイスは通常、デバイスの構成中にアクセスされなければならない多数の再構成可能なポイントのために非常に低速であるばかりでなく、知られている再構成可能なデバイスは、分岐命令（ｂｒａｎｃｈ  ｉｎｓｔｒｕｃｔｉｏｎ）のような条件式（ｃｏｎｄｉｔｉｏｎａｌ  ｅｘｐｒｅｓｓｉｏｎ）又はジャンプ命令の実行に後続するプロセッサアーキテクチャの構成状況（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｃｏｎｔｅｘｔ）、すなわち超長命令語のスイッチングのように例外処理（ｅｘｃｅｐｔｉｏｎ  ｈａｎｄｌｉｎｇ）をし得ない。それ故に高性能ＩＣを設計する当業者は、当該アーキテクチャが必要な動作性能をもたらすわけでもなく、所要の機能をもたらすわけでもないため、ＦＰＧＡに関連するドメインには注目しないであろう。
【００１２】
構成可能な相互接続手段が、複数の処理要素から一つの処理要素をバイパスするためのバイパス手段（ｂｙｐａｓｓｉｎｇ  ｍｅａｎｓ）を有する場合他の利点となる。二つの通信処理要素の間の処理要素がバイパスされる場合、隣接していない処理要素は互いに直接接続され得るため、処理要素内、又は処理要素の周辺におけるバイパス手段、例えばマルチプレクサ（ｍｕｌｔｉｐｌｅｘｅｒ）又は他のスイッチング要素の使用により、ＩＣの動作性能は更に改善される。更に一つよりも多くの接続パス（ｃｏｎｎｅｃｔｉｏｎ  ｐａｔｈ）が二つの異なる処理要素の間で使用可能となり、マルチプレクサのような構成可能なルーティング手段はどの接続パスが使用されるべきであるかを選択するために使用可能となる。更により長い距離の接続パスがもたらされ、最も近い隣接部ではない処理要素が接続され得る。ここでも構成可能なルーティング手段が、適切な接続パスを選択するために使用され得る。
【００１３】
複数の処理要素からの一つの処理要素が、データ記憶ユニット、機能ユニット、及び機能ユニットをデータ記憶ユニットに結合する内部相互通信ネットワーク（ｉｎｔｅｒｎａｌ  ｉｎｔｅｒｃｏｍｍｕｎｉｃａｔｉｏｎ  ｎｅｔｗｏｒｋ）を有する場合更なる他の利点となる。各々の処理要素に機能ユニット及びデータ記憶要素、例えば小さなメモリ又は分散レジスタファイル（ｄｉｓｔｒｉｂｕｔｅｄ  ｒｅｇｉｓｔｅｒ  ｆｉｌｅ）をもたらすことによって、機能ユニットと中央メモリ及び／又はレジスタファイルとの間の低速通信は回避され得るか、又は少なくとも低減されることが可能であり、ＩＣ動作性能は向上させられる。データ記憶要素が構成可能な相互接続手段にも結合される場合、当該データ記憶要素はそのとき他の処理要素における機能ユニットに対するデータ供給部（ｄａｔａ  ｓｕｐｐｌｉｅｒ）としての役割も果たし得るため、このことはなおさらである。
【００１４】
本発明の実施例において処理要素は、少なくとも一つの更なるユニット、すなわち機能ユニットを有し、更なるユニット及びデータ記憶ユニットは超長命令語（ＶＬＩＷ）プロセッサデータパスとして構成される。これにより、設計の柔軟性を向上させる階層ＶＬＩＷアーキテクチャが具現化される。更なるユニットは機能ユニットか、又はデータ記憶ユニットの何れかとなり得る。
【００１５】
有利なことに、発行手段は本実施例において処理要素に渡って分散させられる。例えば各々のＶＬＩＷ処理要素は、ＶＬＩＷ処理要素の、例えば機能ユニットとデータ記憶要素との間のルーティング及び機能ユニットの機能のような、データ及び制御パスを構成する制御語（ｃｏｎｔｒｏｌ  ｗｏｒｄ）を保持する自身のオペレーションレジスタ（ｏｐｅｒａｔｉｏｎ  ｒｅｇｉｓｔｅｒ）を備えている。それ故にここでも動作性能の点で有利となる非局在化発行アーキテクチャ（ｄｅｌｏｃａｌｉｚｅｄ  ｉｓｓｕｉｎｇ  ａｒｃｈｉｔｅｃｔｕｒｅ）がもたらされる。
【００１６】
本発明の更なる態様によれば、請求項８に記載の電子デバイスがもたらされる。本発明によるＩＣを電子デバイスに組み込むことにより、より低い費用だけでなく増大された機能的柔軟性を備える電子デバイスがもたらされる。これにより、このようなデバイスの市場性がかなり改善される。
【００１７】
本発明のなおも更なる態様によれば、請求項９に記載の集積回路を設計するための方法がもたらされる。当該方法の適用は、例えばコンピュータ援用設計（ＣＡＤ（ｃｏｍｐｕｔｅｒ  ａｉｄｅｄ  ｄｅｓｉｇｎ））ツールによって、請求項１に記載の全ての有利な特徴を有する集積回路設計をもたらすであろう。
【００１８】
複数の処理要素からの各々の処理要素を複数の処理要素からの他の処理要素の少なくとも一つのサブセットに接続するステップが、各々の処理要素をグリッドで各々の最も近い隣接処理要素に接続するステップを含む場合有利となる。処理要素を全ての自身の最も近い隣接部に接続することによって、完全な相互接続部を有するグリッドによるＩＣ設計はもたらされることが可能であり、請求項３に記載のＩＣの有利な特徴を有するＩＣ設計がもたらされる。
【００１９】
本発明は、添付図面を参照して限定することのない例によって、より詳細に記載される。
【発明を実施するための最良の形態】
【００２０】
図１において、集積回路１００が、規則的なグリッドで構成される複数の処理要素１２０を有するプロセッサを有している。互いに全てほぼ同様（類似）、例えばほぼ同じ機能を有する処理要素１２０が、再構成可能な相互接続ネットワーク１４０、例えばアドレス可能なデータ通信バス（ａｄｄｒｅｓｓａｂｌｅ  ｄａｔａ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｂｕｓ）又は配線による（ハードワイヤ）マルチプレクサネットワーク（ｈａｒｄｗｉｒｅｄ  ｍｕｌｔｉｐｌｅｘｅｒ  ｎｅｔｗｏｒｋ）によって相互接続されている。相互接続ネットワーク１４０は、全ての処理要素１２０が自身の最も近い隣接部に接続されるか、又は不完全なネットワークを実現し得るという意味において完成され得る。後者の場合、破線によって図１において示されているように、処理要素１２０の間のいくつかの相互接続部は存在しなくなる。更に複数の接続パスが二つの処理要素の間にもたらされてもよく、又は最も近い隣接部ではない処理要素を接続する、より長い距離のラインがもたらされてもよい。ただの明瞭化のためにこれらの代案は図１に示されていない。
【００２１】
処理要素１２０は、処理要素１２０を囲う破線ボックスによって表されているように発行デバイス１６０に結合される。発行デバイス１６０は、グローバル通信（ｇｌｏｂａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）、例えば命令を中央メモリ１８０から複数の処理要素１２０にもたらす役割を担っている。更に発行デバイスは、処理要素１２０のグリッドにおいて、例外及び他の構成状況スイッチ、すなわちＶＬＩＷ変化（ＶＬＩＷ  ｃｈａｎｇｅ）を処理する役割を担っている。要するに発行デバイス１６０は、処理要素１２０に対するプログラムシーケンス及び処理要素１２０の制御に対して責任を負っている。
【００２２】
例えば発行デバイス１６０は、自身のプログラムカウンタの値に基づいて中央メモリ１８０からＶＬＩＷ命令のような命令の束（ｉｎｓｔｒｕｃｔｉｏｎ  ｂｕｎｄｌｅ）をフェッチし、前記束を分割すると共に別個の命令を適切な処理要素１２０にもたらすであろう。次のステップにおいて発行デバイスのプログラムカウンタは定期的に変更（例えばインクリメントによって増加又は減少）され、次の命令の束がフェッチされるであろう。しかしながら処理要素１２０のうちの一つが、例えばジャンプ命令が行われるか、若しくは分岐条件が満たされるような例外の検出を信号送出する場合、又は割込み（中断（ｉｎｔｅｒｒｕｐｔ））が信号送出されている等の場合、発行デバイス１６０は、例外による自身のプログラムカウンタをリセットし、必要ならばプログラムカウンタのリセット値に基づいて新たな命令を処理要素１２０に発行する前に処理要素１２０から冗長データをフラッシュ（ｆｌｕｓｈ）するであろう。これが、命令レベル並列処理を実現する処理アーキテクチャを制御する、よく知られている方法であることは当業者によって認識されるであろう。
【００２３】
しかしながら、規則的なグリッドにおける処理要素１２０の構成（ｏｒｇａｎｉｚａｔｉｏｎ）を備えるプロセッサの全ての処理要素１２０への集積回路１００の所望のプロセッサ機能のマッピングを、処理要素１２０の間の少なくとも部分的な相互接続部と結合することにより、従来の命令レベル並列処理プロセッサアーキテクチャに渡って重要な利点がもたらされる。本発明による集積回路１００において、何れかの処理要素１２０と、隣接処理要素との間の直接データ通信は全グリッドを通じて同じレイテンシを有する。それ故に当然のことながら、タイミング制約（ｔｉｍｉｎｇ  ｃｏｎｓｔｒａｉｎｔ）が何れかの処理要素１２０と、接続された隣接処理要素との間で満足される場合、これは処理要素１２０の全ての（接続された）最も近い隣接部に対して保持される。このことは、プロセッサアーキテクチャの設計がより単純化されることを示唆するばかりでなく、通常命令レベル並列処理と関連していないデータフロードリブン処理モードももたらす。
【００２４】
データフローモードにおいて、１セットの命令が集積回路１００の処理要素１２０にマッピングされ、相互接続ネットワーク１４０が、処理要素１２０を自身の適切な隣接部に接続するように構成される。この場合、例えば複数のクロックサイクルの期間の間に、当該構成が停止され（ｆｒｏｚｅｎ）、データは従来のデータフロー態様でグリッドを通じてリップルされ得る。グリッドが、完全なループ本体をマッピングするのに十分に大きい場合、このことは特に有用となり、それからループ実行が非常に効果的な態様且つ並列態様で実現され得ることを意味する。更にループがあまりに大きいので全体的にグリッドにマッピングされ得ない場合、データフロー概念（ｃｏｎｃｅｐｔ）は、ループをより小さなループに分割（ｂｒｅａｋ  ｕｐ）することによってなお使用されることが可能であり、全体的にグリッドにマッピングされ得るデータ依存性が許容される。代わりにループ本体はあまりに小さいので、グリッドにおけるほとんどの処理要素をビジー（使用中（ｂｕｓｙ））状態に保持することができない場合、ソフトウエアパイプライン（ｓｏｆｔｗａｒｅ  ｐｉｐｅｌｉｎｉｎｇ）が適用され得る。このことは、中間結果（ｉｎｔｅｒｍｅｄｉａｔｅ  ｒｅｓｕｌｔ）がローカル記憶ユニット（ｌｏｃａｌ  ｓｔｏｒａｇｅ  ｕｎｉｔ）に記憶され得ると共に必要なときに隣接処理要素に転送され得るため、処理要素１２０がランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）又は分散レジスタファイルの一部のようなデータ記憶ユニットを有する場合、特に効果的となり得る。これにより高速分散通信が可能になる。このことは通常、集積回路１００のプロセッサアーキテクチャにおいて、あっても非常に少ない通信競合（ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｃｏｎｆｌｉｃｔ）しか発生しないことを意味する。グリッドがデータフローモードで保持される期間は、単純なクロックサイクルカウンタによってモニタされ得る。同期又は非同期データフローモードでモニタするデータ又は制御出力のような他の制御方式も実現可能であるが、当該カウンタは発行デバイス１６０に結合されると共に発行デバイス１６０に組み込まれ得る。なお更に柔軟性を増大させるために、相互通信ネットワーク１４０は、例えば処理要素１２０を通じて、若しくは処理要素１２０の周辺で直接ルーティングをもたらすマルチプレクサによって、又は配線によるバイパス部によってグリッドにおいて個々の処理要素１２０をバイパスさせるためのハードウエアを含み得る。
【００２５】
この場合後続する図が、図１及びその詳細な記載を参照して直して記載されるであろう。対応する参照番号は、他に明らかに記載されていない限り同じものを意味するであろう。図２において、処理要素１２０の実施例が示されている。処理要素１２０は、例えばメモリ又は分散レジスタファイルの一部のようなデータ記憶ユニット１２２と、算術論理ユニット（ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ））、アドレス演算ユニット（ＡＣＵ（ａｄｄｒｅｓｓ  ｃｏｍｐｕｔａｔｉｏｎ  ｕｎｉｔ））、乗算器（マルチプライヤ（ｍｕｌｔｉｐｌｉｅｒ））、及び乗算累積演算ユニット（ＭＡＣ（ｍｕｌｔｉｐｌｙ−ａｃｃｕｍｕｌａｔｅ  ｕｎｉｔ））等になり得る機能ユニット１２４とを有している。データ記憶ユニット１２２は、外部相互通信ネットワーク１４０ａに直接結合されるか、又は制御ユニット１４２を通じて外部相互通信ネットワーク１４０ａに結合される内部相互通信ネットワーク１４０ｂを通じて制御ユニット１４２に結合される。制御ユニット１４２は、例えば発行デバイス１６０に応答するマルチプレクサのネットワーク又は分散バスコントローラ（ｄｉｓｔｒｉｂｕｔｅｄ  ｂｕｓ  ｃｏｎｔｒｏｌｌｅｒ）になり得る。相互通信ネットワーク１４０を共に形成する内部通信ネットワーク１４０ｂと外部通信ネットワーク１４０ａとの両方は、ポイントトゥポイントハードワイヤネットワーク（ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ  ｈａｒｄ−ｗｉｒｅｄ  ｎｅｔｗｏｒｋ）、データ通信バス、又はそれらの結合（組み合わせ）として実現され得る。
【００２６】
図２及びその詳細な記載を参照して記載されている図３において、処理要素１２０の他の実施例がもたらされる。マルチプレクサ２２０ａ−ｂ、２２０ｃ−ｄ、及び２２０ｅ−ｆは機能ユニット２２４、更なるユニット２２６、及びデータ記憶ユニット２２８にバッファ、例えばレジスタファイル２２２ａ−ｆを通じてそれぞれ結合される。更なるユニット２２６は更なる機能ユニット又は更なるデータ記憶ユニットであってもよい。このことは限定的でない例のみによるものであって、他の構成、例えばいくつかのユニットはバッファを共有する構成が、本発明の範囲から逸脱することなく想到され得る。図３の実施例において、機能ユニット２２４は、バッファ２２２ａ及び２２２ｂにそれぞれ結合される自身のデータ入力部を備える２入力ＡＬＵとなり得る。更なるユニット２２６は、バッファ２２２ｃ及び２２２ｄにそれぞれ結合される自身のデータ入力部を備える２入力ＭＡＣとなり得ると共に、データ記憶ユニット２２８は、バッファ２２２ｅに結合されるアドレス入力部とバッファ２２２ｆに結合されるデータ入力部とを備えるランダムアクセスメモリになり得る。しかしながら当然なことに多くの他の構成が可能である。
【００２７】
マルチプレクサ２２０ａ−ｆの入力部は外部相互接続ネットワーク１４０ａ及び内部相互接続ネットワーク１４０ｂに結合される。外部相互接続ネットワーク１４０ａは、データ入力部側でデータ入力ポート１５２ａ−ｃを通じて、及びデータ出力部側で出力装置２６０を通じて処理要素１２０に結合される。データ入力ポートの数は、処理要素１２０が接続される隣接部の数によって規定される。出力装置２５０はマルチプレクサ２５２、オプションのバッファ２５４、及び処理要素１２０を自身の隣接処理要素に結合させるための出力ポート２５６を有する。これにより、関連したデータだけしか、出力ポート２５６を通じて、接続された隣接処理要素に送信（ブロードキャスト（ｂｒｏａｄｃａｓｔ））されないことが保証される。出力装置２５０が処理要素１２０のためのバイパスとしての役割も果たし得ること、すなわち入力ポート１５２ａ−ｃを通じて受信されるデータ入力が、マルチプレクサ２５２の適切な構成を通じて他の処理要素に直接転送され得ることは注目される。図３において、内部相互接続ネットワーク１４０ｂは完全に接続される。例えばユニット２２４、２２６、及び２２８の各々の出力部はマルチプレクサ２２０ａ−ｆとマルチプレクサ２５２とに結合される。このことは限定されない例のみによるものであり、部分的に接続された相互接続ネットワーク１４０ｂが本発明の範囲を逸脱することなく代わりに使用され得ることは強調される。
【００２８】
発行デバイス１６０は処理要素１２０に渡って分散され得る。図３においてローカル発行デバイス（ｌｏｃａｌ  ｉｓｓｕｉｎｇ  ｄｅｖｉｃｅ）２６０は、マルチプレクサ２２０ａ−ｆの構成を制御し、機能ユニットにオペレーションコード（ｏｐｃｏｄｅ）を発行し、データ記憶ユニットにアドレスを発行し、随意的にマルチプレクサ２５２の構成を制御することによって処理要素１２０のデータパスを制御する役割を担っている。ローカル発行デバイス２６０は自身のローカルオペレーションレジスタ（ｌｏｃａｌ  ｏｐｅｒａｔｉｏｎ  ｒｅｇｉｓｔｅｒ）を有し得るので、グローバルＶＬＩＷ命令が、全てのローカルオペレーションレジスタをリンク（ｌｉｎｋ）させることによって簡単に形成され得る。随意的にプロセッサ命令メモリ自体は複数のメモリブロックに分割されることが可能であり、各々のメモリブロックは処理要素１２０に対してローカル（局所的）となり、各々のメモリブロックは、自身の対応する処理要素に関連する超長命令語の部分を含んでいる。更なる実施例において、自身のローカル命令メモリブロック及びローカルオペレーションレジスタを有する各々のローカル発行デバイス２６０は、自身のローカルプログラムシーケンス部（ｌｏｃａｌｐｒｏｇｒａｍ  ｓｅｑｕｅｎｃｉｎｇ）及び制御論理部と自身のプログラムカウンタ（ＰＣ（ｐｒｏｇｒａｍ  ｃｏｕｎｔｅｒ））とに関連付けられ得る。このことは、各々の処理要素１２０がＶＬＩＷプロセッサ自体として動作し得ることを意味する。
【００２９】
この点で、本発明による集積回路１００の多大な柔軟性により、自身のアーキテクチャにおける非常に大規模な並列処理の組み込み（ｉｎｔｅｇｒａｔｉｏｎ）が可能になることは強調される。これにより集積回路１００は、現在不可能ではないにしても、知られているアーキテクチャで達成するのに困難となる、非常に要求の厳しい演算、例えば広帯域ディジタル信号処理の動作性能に適したものとなる。それ故に本発明による集積回路１００の、このような要求の厳しい演算を必要とする電子デバイス、例えば次世代モバイル通信デバイスへの組み込みは、当該次世代技術の実現を可能にするばかりでなく、集積回路１００の限定された設計費用のために当該技術を手頃なものにするであろう。
【００３０】
図４において、フローチャート４００は本発明による処理アーキテクチャを備える集積回路を設計するための重要なステップを示している。
【００３１】
第一のステップ４２０において、複数の処理要素からの処理要素が、互いにほぼ同様になるように設計され、複数の処理要素からの各々の処理要素は、複数の命令からの各々の命令を実行し得るように設計される。明らかなことにこのことは、グリッドにおける全ての他の処理要素はこの単一の処理要素１２０とほとんど同様になるべきであるため、単一の処理要素１２０に対してのみなされればよい。この手法は、命令レベル並列処理を用いるこのような大規模集積回路に対する設計労力を大幅に低減する。
【００３２】
第二のステップ４４０において、複数の処理要素は、複数の処理要素からの処理要素と、第一の方向で複数の処理要素からの最も近い隣接処理要素との間の距離が、処理要素と、第二の方向で複数の処理要素からの最も近い隣接処理要素との間の距離とほぼ同じである規則的なグリッドでレイアウトされる。規則的なグリッドでの処理要素の構成により、前述の集積回路１００の再構成可能な動作（ｂｅｈａｖｉｅｒ）、例えばデータフローモードと命令レベル並列処理モードとの間でスイッチする機能が可能になるばかりでなく、別の相互通信構造体が必要とされるとき、他の用途に対して論理レイアウトを再利用する可能性ももたらされる。
【００３３】
このことは、複数の機能ユニットからの各々の処理要素１２０が、複数の機能ユニットからの他の処理要素の少なくとも一つのサブセットに接続される第三のステップ４６０で実現される。随意的に各々の処理要素１２０は、各々の処理要素１２０が各々の最も近い隣接部に接続されるという意味において完全に接続された２次元グリッドをもたらすグリッドにおいて各々の最も近い隣接処理要素に接続され得る。処理要素１２０のグリッドに対する異なる相互接続ネットワーク１４０の規定により、同じ全論理レイアウトに基づいて他の用途に対する処理要素１２０のグリッドの再利用が可能になる。この場合、相互接続部だけしか再規定（ｒｅｄｅｆｉｎｅ）されなくてもよい。このことは、小さな設計労力しか必要とされず、一つ又はほんの数枚の相互接続部マスク（例えばＶＩＡマスク、又は上部メタル層マスク（ｕｐｐｅｒ  ｍｅｔａｌ  ｌａｙｅｒ  ｍａｓｋ））しか再開発（展開）（ｒｅｄｅｖｅｌｏｐ）されなくてもよいことを意味する。両方の当該利点により、後続するＩＣ設計の展開においてかなりの費用低減が達成される。
【００３４】
本発明の保護範囲は上述の実施例に限定されるものではなく、当業者が特許請求の範囲からはずれることなく多くの代わりの実施例を設計することができることは注意されるべきである。請求項において、括弧の間に置かれる参照番号は、いずれも当該請求項の保護範囲を限定するものではない。単語“有する”は、請求項に記述される構成要素以外に構成要素又はステップの存在を排除するものではない。構成要素に先行する冠詞“a”又は“aｎ”は、複数の構成要素を排除するものではない。本発明は、いくつかの独特な構成要素を有するハードウエアによって、及び適切にプログラミングされたコンピュータによって実現可能である。いくつかの手段を列挙する装置の請求項において、いくつかのこれらの手段は、ハードウエアの一つ及び同じ構成要素によって具現化されることが可能である。ある手段が相互に異なる従属請求項において再び引用されるという事実は、これらの手段の組み合わせが効果的に使われ得ないことを示すものではないということに過ぎない。    
【図面の簡単な説明】
【００３５】
【図１】本発明による集積回路を示す。
【図２】本発明による処理要素の実施例を示す。
【図３】本発明による処理要素の他の実施例を示す。
【図４】本発明による方法のフローチャートを示す。
【図１】
2005528792.tif 000003
【図２】
2005528792.tif 000004
【図３】
2005528792.tif 000005
【図４】
2005528792.tif 000006
【国際調査報告】
2005528792.tif 000007
2005528792.tif 000008