(57)【要約】      （修正有）【課題】高密度回路のレイアウト、処理装置間の効率の良い相互接続、および処理装置を相互接続可能にする自由度のある方法を提供すること。【解決手段】回路エリア１２のいくつかは、少なくとも１つのそれぞれの入力信号経路（ａｎ，ａｗ、ｂｅ，ｂｓ，ｈｃｉ，ｖｃｉ）におけるデータの操作を実行し、少なくとも１つの出力信号経路（ｆｎ，ｆｅ，ｆｓ，ｆｗ，ｖｃｏ，ｈｃｏ）によってデータを送出するためのそれぞれの処理装置を備える。その他の回路エリアはそれぞれのスイッチングセクション１４を備え、処理装置およびスイッチングセクションが、各行および各列内において交互に配列されている。スイッチセクションの大部分はそれぞれ、同じ列および同じ行におけるスイッチングセクションに隣接した処理装置の信号経路の一部の間にプログラマブル接続１６，１８，２０を備える集積回路を提供する。【選択図】図２
2007329936.tif 000002
【特許請求の範囲】
【請求項１】
行および列をなす回路エリアのほぼ方形のアレイとして構成されたフィールドプログラマブル回路領域を備え、
前記回路エリア（１２）のいくつかは、少なくとも１つの各入力信号経路（ａｎ，ａｗ、ｂｅ，ｂｓ，ｈｃｉ，ｖｃｉ）におけるデータに対して処理を行ない、少なくとも１つの各出力信号経路（ｆｎ，ｆｅ，ｆｓ，ｆｗ，ｖｃｏ，ｈｃｏ）にデータを供給するための各処理手段をそれぞれ備え、
他の回路エリアは各スイッチングセクション（１４）をそれぞれ備え、
前記処理手段および前記スイッチングセクションは、各行および各列内において交互に配列され、
前記スイッチセクションの大部分は、同じ列および同じ行の該スイッチングセクションに隣接した処理手段の前記信号経路の少なくとも一部の間にプログラマブル接続（１６，１８，２０）をそれぞれ有することを特徴とする集積回路。
【請求項２】
前記スイッチングセクションの全てが、プログラマブル接続可能に構成されることを特徴とする請求の範囲第１項記載の集積回路。
【請求項３】
前記処理手段の少なくとも１つと、該処理手段に隣接した処理手段が、第１の入力（ａ）、第２の入力（ｂ）および出力（ｆ）をそれぞれ備えることを特徴とする請求の範囲第１項または第２項記載の集積回路。
【請求項４】
前記スイッチングセクションによって提供される第１の接続形態（１８）が、ほぼ同一線上または互いに平行な信号経路間におけるものであることを特徴とする請求の範囲第１項〜第３項のいずれか一項に記載の集積回路。
【請求項５】
前記一処理手段の出力は、
同じ行の一方向で次の処理手段の第１の入力に、第１の接続形態（交点（４，６）における１８）によって接続可能であり、
同じ列の一方向で次の処理手段の第１の入力に、第１の接続形態（交点（６，３）における１８）によって接続可能であり、
同じ行の反対の方向で次の処理手段の第２の入力に、このような第１の接続形態（交点（４，１）における１８）によって接続可能であり、
同じ列の反対の方向で次の処理装置の第２の入力に、このような第１の接続形態（交点（１，３）における１８）によって接続可能である、ことを特徴とする請求の範囲第４項記載の集積回路。
【請求項６】
前記スイッチングセクションによって提供される第２の接続形態（１６）が、互いにほぼ直交する信号経路間におけるものであることを特徴とする請求の範囲第１項〜第５項のいずれか一項に記載の集積回路。
【請求項７】
前記一処理手段の出力（ｆ）は、
前記一行方向および前記一列方向で対角線状に隣接する処理手段の第１の入力に、同じ列内における第２の接続形態（交点（６，６）における１６）によって接続可能であり、
前記反対の行方向および前記一列方向で対角線状に隣接する処理手段の第１の入力に、同じ行内における第２の接続形態（交点（６，１）における１６）によって接続可能であり、
前記反対の行方向および前記反対の列方向で対角線状に隣接する処理手段の第２の入力に、同じ列内における第２の接続形態（交点（１，１）における１６）によって接続可能であり、
前記一行方向および前記反対の列方向で対角線状に隣接する処理手段の第２の入力に、同じ行内における第２の接続形態（交点（１，６）における１６）によって接続可能である、ことを特徴とする請求の範囲第６項記載の集積回路。
【請求項８】
前記入力および出力信号経路のほぼ全てが、行および列に対してほぼ平行な方向に向けて配置されていることを特徴とする請求の範囲第１項〜第７項のいずれか一項に記載の集積回路。
【請求項９】
複数のスイッチングセクション間の信号経路（ｈ１，ｈ２ｎ，ｈ２ｓ，ｈ４ｎ，ｈ４ｓ，ｈ８，ｈ１６，ｖ１，ｖ２ｅ，ｖ２ｗ，ｖ４ｅ，ｖ４ｗ，ｖ８，ｖ１６）を備え、該スイッチングセクション間の各信号経路は、同じ行のスイッチングセクションの各第１のスイッチングセクションから各第２のスイッチングセクションに、主としてその行にほぼ平行な方向にまたは主としてその列にほぼ平行な方向に延び、前記スイッチングセクション間の各信号経路は、前記第１のスイッチングセクションによってその第１のスイッチングセクションで他の信号経路とプログラマブル接続可能であり、前記第２のスイッチングセクションによってその第２のスイッチングセクションで他の信号経路とプログラマブル接続が可能であることを特徴とする請求の範囲第１項〜第８項のいずれか一項に記載の集積回路。
【請求項１０】
前記スイッチングセクション間の信号経路（ｈ１，ｖ１）の一形態において、各行または列で、前記第１のスイッチングセクションと前記第２のスイッチングセクションとの間にはスイッチングセクションが存在しないことを特徴とする請求の範囲第９項記載の集積回路。
【請求項１１】
前記スイッチングセクション間の信号経路（ｈ２ｎ，ｈ２ｓ，ｈ４ｎ，ｈ４ｓ，ｈ８，ｈ１６，ｖ２ｅ，ｖ２ｗ，ｖ４ｅ，ｖ４ｗ，ｖ８，ｖ１６）の他の形態において、各行または列で、前記第１のスイッチングセクションと前記第２のスイッチングセクションとの間には、他のスイッチングセクションのいくつかが設けられていることを特徴とする請求の範囲第９項または第１０項記載の集積回路。
【請求項１２】
前記スイッチングセクション間の信号経路（ｈ４ｎ，ｈ４ｓ，ｈ８，ｈ１６，ｖ４ｅ，ｖ４ｗ，ｖ８，ｖ１６）の別の形態において、各信号経路が、各行または列に対してほぼ平行な方向に延びるスパイン部分（ｈ４ｎ，ｈ４ｓ，ｈ８，ｈ１６，ｖ４ｅ，ｖ４ｗ，ｖ８，ｖ１６）と、各行または列に対してほぼ直交する方向にそれぞれ延び、前記スパイン部分と前記第１のスイッチングセクションおよび前記第２のスイッチングセクションとをそれぞれ相互接続する第１の端部および第２の端部（ｖｔｎｅ，ｈｔｎｅ，ｈｔｓｅ，ｖｔｓｅ，ｖｔｓｗ，ｈｔｓｗ，ｈｔｎｗ，ｖｔｎｗ）と、を備えることを特徴とする請求の範囲第９項〜第１１項のいずれか一項に記載の集積回路。
【請求項１３】
前記スイッチングセクション間の信号経路のさらに別の形態の少なくともいくつかにおいて、前記第１のスイッチングセクションおよび前記第２のスイッチングセクションのそれぞれは、各行または列に他のスイッチングセクションのいくつかを備えることを特徴とする請求の範囲第１２項記載の集積回路。
【請求項１４】
前記他のスイッチングセクションのいくつかは、それぞれ２の累乗から１減算した数であることを特徴とする請求の範囲第１１項または第１３項記載の集積回路。
【請求項１５】
前記スイッチングセクション間の信号経路のさらに別の形態の少なくともいくつかが、各行または列に対してほぼ直交する方向に延び、前記スパイン部分と他のスイッチングセクションのそれぞれとを相互接続する少なくとも１つのタップ部分（ｖｔｎｅ，ｈｔｎｅ，ｈｔｓｅ，ｖｔｓｅ，ｖｔｓｗ，ｈｔｓｗ，ｈｔｎｗ，ｖｔｎｗ）を備えることを特徴とする請求の範囲第１３項または第１４項記載の集積回路。
【請求項１６】
前記スイッチングセクションの少なくともいくつかは、該スイッチングセクションで、前記信号経路の少なくともいくつかにスイッチング可能にそれぞれ接続することができる入力および出力を備える各レジスタおよび／またはバッファ（２８）をそれぞれ有することを特徴とする請求の範囲第１項〜第１５項のいずれか一項に記載の集積回路。
【請求項１７】
前記処理手段の少なくとも１つが演算論理手段であることを特徴とする請求の範囲第１項〜第１６項のいずれか一項に記載の集積回路。
【請求項１８】
前記処理手段の少なくとも１つが複数ビット入力および／または複数ビット出力を備え、前記信号経路の少なくともいくつかがそれぞれの複数ビットバスによって提供されることを特徴とする請求の範囲第１項〜第１７項のいずれか一項に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号経路によって選択的に互いに接続可能な処理装置のアレイであるフィールドプログラマブルプロセッサアレイに係り、特に、集積回路として提供されたフィールドプログラマブルプロセッサアレイに関する。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
本発明（または、少なくともその好適な実施の態様）の目的は、高密度回路のレイアウト、処理装置間の効率の良い相互接続、および処理装置を相互接続可能にする自由度のある方法を提供することである。
【課題を解決するための手段】
【０００３】
本発明によって、回路エリアの行および列をなすほぼ方形のアレイとして構成されたフィールドプログラマブル回路領域を備えた集積回路が得られるが、ある回路エリアは、少なくとも１つの各入力信号経路でデータの操作を実行して、少なくとも１つの各出力信号経路でデータを送出するための処理手段である処理装置（例えば、演算論理装置）を提供し、その他の回路エリアは、スイッチングセクションを提供し、処理装置およびスイッチングセクションが各行および各列内において交互に配列されており、スイッチセクションの大部分（好適には、全て）は、同じ列および同じ行のスイッチングセクションに隣接した処理装置における信号経路の少なくとも一部の間でプログラマブル接続する。このように回路を構成することによって、特に、１つ以上の処理装置が複数ビット入力および／または複数ビット出力を備え、信号経路の少なくともいくつかが各複数ビットバスによって提供される場合、効率の良い局所(local)相互接続によって、高密度なレイアウトを得ることができる。スイッチングセクションによって提供される第１の接続形態は、互いにほぼ同一線上または平行にすることが可能な信号経路間で接続され、経路を選択的に縦続に接続することによってより長い接続を可能にする。この場合と、処理装置の少なくとも１つおよびそれに隣接する処理装置が、それぞれ第１の入力、第２の入力および出力を備えている場合とにおいては、前記１つの処理装置の出力が、同じ行の一方向で次の処理装置の第１の入力に接続可能な第１の接続形態、同じ列の一方向で次の処理装置の第１の入力に接続可能な第１の接続形態、同じ行の反対の方向で次の処理装置の第２の入力に接続可能な第１の接続形態、および同じ列の反対の方向で次の処理装置の第２の入力に接続可能な第１の接続形態が望ましい。このようにして、第１の処理装置の出力を、同じ行または列における４つの隣接する処理装置（「第２の処理装置」）の内、任意の１つに選択的に送ることが可能になり、処理を実行して第１の処理装置に戻すかまたは第２の処理装置に隣接する他の３つの隣接処理装置の内、任意の１つに送ることが可能になる。
【０００４】
スイッチングセクションによって提供される第２の接続形態は、互いにほぼ直交可能なこのような信号経路間におけるものである。したがって、この信号経路の方向を変えることにより、自由度のある経路を指定することができる。この場合と、処理装置の少なくとも１つおよびそれに隣接する処理装置がそれぞれ、第１の入力、第２の入力および出力を備えている場合とにおいては、前記１つの処理装置の出力は、前記一行方向および前記一列方向において対角線状で隣接する処理装置の第１の入力に対する同じ列内での第２の接続形態、前記反対の行方向および前記一列方向における対角線状で隣接する処理装置の第１の入力に対する同じ行内での第２の接続形態、前記反対の行方向および前記反対の列方向における対角線状で隣接する処理装置の第２の入力に対する同じ列内での第２の接続形態、および前記一行方向および前記反対の列方向における対角線状で隣接する処理装置の第２の入力に対する同じ行内での第２の接続形態によって接続可能であることが望ましい。したがって、第１の処理装置からの出力は、対角線状で隣接する２つの処理装置の第１の入力および対角線状で隣接する他の２つの処理装置の第２の入力に対して、選択的に経路を指定することができる。
【０００５】
入力および出力信号経路のほぼ全てが、行または列に対してほぼ平行な方向で配置されることによって、高密度のレイアウトを実現可能にすることが望ましい。
【０００６】
集積回路は、さらに、複数のスイッチングセクション間の信号経路を有し、各スイッチングセクション間の信号経路が同じ行内におけるスイッチングセクションの１番目のセクションから２番目のセクションへ、主にその行にほぼ平行な方向にまたは主にその列にほぼ平行な方向に延び、各スイッチングセクション間の各信号経路は第１のスイッチングセクションによってその第１のスイッチングセクションで他の信号経路とプログラマブル接続され、また第２のスイッチングセクションによって、その第２のスイッチングセクションで他の信号経路とプログラマブル接続され得ることが望ましい。したがって、中距離および長距離接続を選択的に提供することが可能である。
【０００７】
スイッチングセクション間の信号経路の一形態では、第１のスイッチングセクションと第２のスイッチングセクションとの間の各行または列にスイッチングセクションはない。
【０００８】
スイッチングセクション間の信号経路の他の形態では、各行または列で、それぞれの第１および第２のスイッチングセクションが、第１のスイッチングセクションと第２のスイッチングセクションとの間にいくつか（好適には、２の累乗から１減算した数）の他のスイッチングセクションを有する。したがって、長距離接続の場合、必要とされる可能性のある中間スイッチ数が減少し、それによって生じるであろう伝搬の遅れが短縮される。
【０００９】
スイッチングセクション間の信号経路の別の形態では、各信号経路は、各行または列に対してほぼ平行な方向に延びるスパイン部分(spine portion)と、各行または列に対してほぼ直交する方向に延び、スパイン部分と第１および第２のスイッチングセクションとを相互接続する第１および第２の端部とを備える。スパイン部分は、スイッチと直接は接続しないので、スパイン部分の導体の物理的位置の選択には自由度があり、この自由度によって、より密度の高いレイアウトを実現することができる。前述した別の形態の少なくともいくつかのスイッチングセクション間の信号経路では、各行または列において、第１および第２のスイッチングセクションは第１のスイッチングセクションと第２のスイッチングセクションとの間にいくつか（好適には、２の累乗から１減算した数）の他のスイッチングセクションを有する。したがって、長距離接続の場合、必要とされる可能性のある中間スイッチ数が減少し、それによって生じるであろう伝搬の遅れが短縮される。好適には、前述の別の態様の少なくともいくつかのスイッチングセクション間の信号経路は、各行または列にほぼ直交する方向にそれぞれ延び、スパイン部分と他のスイッチングセクションとを相互接続する少なくとも１つのタップ部分を備えている。したがって、さらに自由度が高くなる。
【００１０】
少なくともいくつかのスイッチングセクションは、各スイッチングセクションで、信号経路の少なくともいくつかにスイッチングして接続できる入力および出力を有したレジスタおよび／またはバッファを備える。このため、そのための処理装置の１つを利用することなく、信号のタイミングの取り直しまたはバッファリングが可能になる。タイムクリティカル(time critical)信号のタイミングの取り直しおよびバッファリングによって、より速いクロック速度で構成を実行することが可能になり、動作速度が速くなる。
【発明を実施するための最良の形態】
【００１１】
次に以下の図面を用いて、例として、本発明を実施するための最良の態様について説明する。
【００１２】
以下の説明において、「水平」、「垂直」、「北」、「南」、「東」、および「西」という用語を、相対的な方向の理解を助けるために用いているが、その用法に、本発明の実施の態様において絶対方向(absolute orientation)の制限を意味する意図はない。
【００１３】
集積回路内に、本発明の実施の態様を提供するプロセッサアレイが設けられている。ある階層(level)では、プロセッサアレイは、その１つが、図１において太線によって区切られて示された「タイル」１０の方形（好適には、正方形）のアレイによって形成される。例えば、１６×１６、３２×３２または６４×６４のアレイのように、任意の適正な数のタイルを用いることが可能である。各タイル１０は方形（好適には、正方形）であり、４つの回路エリアに分割される。これらのタイルは、（接続を対称にするため）論理的には正方形が望ましいが、物理的には正方形であることはそれほど重要ではない（これには、タイミングに対称性をもたらすという多少の利点があるかもしれないが、一般には、それほど重要ではない）。タイル１０において対角線状で向かい合った２つの回路エリア１２は、２つの演算論理装置（「ＡＬＵ」）の場所を提供する。タイル１０において対角線状で向かい合った他の２つの回路エリアは、１対のスイッチングセクション１４の場所を提供する。
【００１４】
図１および図２を参照すると、各ＡＬＵは、ＡＬＵ内に直接接続された第１の一対の４ビット入力ａ、ＡＬＵ内に直接接続された第２の一対の４ビット入力ｂ、およびＡＬＵ内に直接接続された４つの４ビット出力ｆを備えている。また、各ＡＬＵは、独立した一対の１ビット桁上げ入力ｈｃｉ，ｖｃｉおよびＡＬＵ内に直接接続された１対の１ビット桁上げ出力ｃｏを備えている。ＡＬＵは、入力信号ａ，ｂ，ｈｃｉ，ｖｃｉに対して加算、減算、ＡＮＤ、ＮＡＮＤ、ＯＲ、ＮＯＲ、ＸＯＲ、ＮＸＯＲおよび多重化といった標準的操作を実行して、出力信号ｆ，ｃｏを送出することが可能であり、さらに、操作結果を記録することも可能である。ＡＬＵに対する命令は、後述の「Ｈツリー」構造を介してその値を設定することが可能な各４ビットメモリセルから供給すること、または後述のバスシステムで供給することが可能である。
【００１５】
図１および図２に示す階層において、各スイッチングセクション１４は、それを水平方向に横切って延びる８つのバスおよびそれを垂直方向に横切って延びる８つのバスを備えているため、６４個の交点を有した８×８の方形のアレイが形成されるが、図２には、これらに直交座標で番号が付けられている。Ｘ＝４の桁上げバスｖｃおよびＹ＝３の桁上げバスｈｃが１ビット幅であり、その他のバスは全て４ビット幅である。多くの交点には、その交点において２つのバスを選択的に接続することができる４連結(gang)プログラマブルスイッチ１６が設けられている。交点のいくつかには、バスに対して直角に接続せずに、その交点で端部と端部とが接する２つのバスを選択的に接続することが可能な４連結プログラマブルスイッチ１８が設けられている。交点（４，３）には、その交点において直角に交差する桁上げバスｖｃ，ｈｃを選択的に接続することが可能なプログラマブルスイッチ２０（例として、図６Ｃを示す）が設けられている。
【００１６】
次に、スイッチングセクション１４の水平バスについて述べる。
【００１７】
Ｙ＝０のバスｈ２ｓは、プログラマブルスイッチ１６によってＸ＝０，１，２，５，６の垂直バスに接続可能である。バスｈ２ｓは、長さがタイル２個分あり、交点（４，０）のプログラマブルスイッチ１８によって他の全てのスイッチングセクション１４の端部どうしで接続が可能である。
【００１８】
Ｙ＝１のＡＬＵの入力ｂから西に延びるバスは、スイッチ１６によってＸ＝０，１，２，３の垂直バスに接続可能である。また、ＡＬＵの出力ｆから東に延びるバスｆｗは、スイッチ１６によってＸ＝５，６，７の垂直バスに接続可能である。バスｂｅ，ｆｗの端部は、交点（４，１）でプログラマブルスイッチ１８によって接続可能である。
【００１９】
Ｙ＝２のバスｈｒｅｇｓは、プログラマブルスイッチ１６によってＸ＝１，２，３，５，６，７の垂直バスに接続可能である。
【００２０】
Ｙ＝３のバスｈｃｏは、ＡＬＵの桁上げ出力ｃｏから交点（４，３）のプログラマブルスイッチ２０に対して西まで延びており、前記プログラマブルスイッチ２０によって、バスｈｃｏは、（ａ）ＡＬＵの桁上げ入力ｈｃｉまで東に延びる桁上げバスｈｃｉ、または（ｂ）ＡＬＵの桁上げ入力ｖｃｉまで南に延びる桁上げバスｖｃｉに接続可能である。
【００２１】
Ｙ＝４のバスｈｒｅｇｎは、プログラマブルスイッチ１６によってＸ＝０，１，２，３，５，６の垂直バスに接続可能である。
【００２２】
Ｙ＝５のバスｈ１はＸ＝０，１，２，３，５，６，７の垂直バスに接続可能である。バスｈ１は長さがタイル１個分あり、交点（４，５）で、プログラマブルスイッチ１８によって、各スイッチングセクション１４の端部どうしで接続可能である。
【００２３】
Ｙ＝６のＡＬＵの出力ｆから西に延びるバスｆｅは、スイッチ１６によってＸ＝０，１，２，３の垂直バスに接続可能である。また、ＡＬＵの入力ａから東に延びるバスａｗは、スイッチ１６によって、Ｘ＝５，６，７の垂直バスに接続可能である。バスｆｅおよびａｗの端部は、交点（４，６）でプログラマブルスイッチ１８によって接続可能である。
【００２４】
Ｙ＝７のバスｈ２ｎは、プログラマブルスイッチ１６によってＸ＝１，２，３，６，７の垂直バスに接続可能である。バスｈ２ｎは長さがタイル２個分あり、交点（４，０）でバスｈ２ｓに接続するプログラマブルスイッチ１８に対して互い違いに配置されたプログラマブルスイッチ１８によって、交点（４，７）で他の全てのスイッチングセクション１４および端部間の接続が可能である。
【００２５】
次に、スイッチングセクション１４の垂直バスについて説明する。
【００２６】
Ｘ＝０のバスｖ２ｗは、プログラマブルスイッチ１６によってＹ＝０，１，４，５，６の水平バスに接続可能である。バスｖ２ｗは長さがタイル２個分あり、交点（０，３）で、プログラマブルスイッチ１８によって、他の全てのスイッチングセクション１４の端部どうしで接続可能である。
【００２７】
Ｘ＝１のＡＬＵの出力ｆから南に延びるバスｆｎは、プログラマブルスイッチ１６によってＹ＝０，１，２の水平バスに接続可能である。また、ＡＬＵの入力ｂから北に延びるバスｂｓは、スイッチ１６によってＹ＝４，５，６，７の水平バスと接続可能である。バスｆｎ，ｂｓの端部は、交点（１，３）でプログラマブルスイッチ１８によって接続可能である。
【００２８】
Ｘ＝２のバスｖ１は、Ｙ＝０，１，２，４，５，６，７の水平バスに接続可能である。バスｖ１は長さがタイル１個分あり、交点（２，３）で、プログラマブルスイッチ１８によって、各スイッチングセクション１４の端部どうしで接続可能である。
【００２９】
Ｘ＝３のバスｖｒｅｇｗは、プログラマブルスイッチ１６によってＹ＝１，２，４，５，６，７の水平バスに接続可能である。
【００３０】
Ｘ＝４のバスｖｃｏが、ＡＬＵの桁上げ出力ｃｏから交点（４，３）のプログラマブルスイッチ２０に対して北まで延びており、前記プログラマブルスイッチ２０によって、バスｖｃｏは、（ａ）ＡＬＵの桁上げ入力ｈｃｉまで東に延びる桁上げバスｈｃｉ、または（ｂ）ＡＬＵの桁上げ入力ｖｃｉまで南に延びる桁上げバスｖｃｉに接続可能である。
【００３１】
Ｘ＝５のバスｖｒｅｇｅは、プログラマブルスイッチ１６によってＹ＝０，１，２，４，５，６の水平バスに接続可能である。
【００３２】
Ｘ＝６のＡＬＵの入力ａから南へ延びるバスａｎは、スイッチ１６によってＹ＝０，１，２の水平バスに接続可能である。また、ＡＬＵの出力ｆから北へ延びるバスｆｓは、プログラマブルスイッチ１６によってＹ＝４，５，６，７の水平バスに接続可能である。バスａｎ，ｆｓの端部は、交点（６，３）でプログラマブルスイッチ１８によって接続可能である。
【００３３】
Ｘ＝７のバスｖ２ｅは、プログラマブルスイッチ１６によってＹ＝１，２，５，６，７の水平バスに接続可能である。バスｖ２ｅは長さがタイル２個分であり、交点（０，３）で、バスｖ２ｗを接続するプログラマブルスイッチ１８に対して互い違いに配置されたプログラマブルスイッチ１８によって、交点（７，３）で他の全てのスイッチングセクション１４および端部間の接続が可能になる。
【００３４】
図２に示すように、バスｂｓ，ｖｃｏ，ｆｓはそれぞれ、スイッチングセクション１４の北へ、ＡＬＵの入力ｂ、出力ｃｏおよび出力ｆに接続される。また、バスｆｅ，ｈｃｏ，ｂｅはそれぞれ、スイッチングセクション１４の西へ、ＡＬＵの出力ｆ、出力ｃｏおよび入力ｂに接続される。さらに、バスａｗ，ｈｃｉ，ｆｗはそれぞれ、スイッチングセクション１４の東へ、ＡＬＵの入力ａ、入力ｃｉおよび出力ｆに接続される。さらに、バスｆｎ，ｖｃｉ，ａｎはそれぞれ、スイッチングセクションの南へ、ＡＬＵの出力ｆ、入力ｃｉおよび入力ａに接続される。
【００３５】
これらの接続に加えて、バスｖｒｅｇｗ，ｖｒｅｇｅは、各プログラマブルスイッチ１８を介して、それぞれ、スイッチングセクション１４の北へ、ＡＬＵの領域１２の４ビット接続点ｖｔｓｗ，ｖｔｓｅ（図２に「×」で示す）に接続される。また、バスｈｒｅｇｓ，ｈｒｅｇｎは、各プログラマブルスイッチ１８を介して、それぞれ、スイッチングセクション１４の西へ、ＡＬＵの領域１２の４ビット接続点ｈｔｓｅ，ｈｔｎｅ（図２に「×」で示す）に接続される。さらに、バスｈｒｅｇｓ，ｈｒｅｇｎは、各プログラマブルスイッチ１８を介して、それぞれ、スイッチングセクション１４の東へ、ＡＬＵの領域１２の４ビット接続点ｈｔｓｗ，ｈｔｎｗに接続される。さらに、バスｖｒｅｇｗ，ｖｒｅｇｅは、各プログラマブルスイッチ１８を介して、それぞれ、スイッチングセクション１４の南へ、ＡＬＵの領域１２の４ビット接続点ｖｔｎｗ，ｖｔｎｅに接続される。これらの接続点ｖｔｎｗ，ｖｔｎｅ，ｈｔｎｅ，ｈｔｓｅ，ｖｔｓｅ，ｖｔｓｗ，ｈｔｓｗ，ｈｔｎｗについては、図３〜図５を参照して、さらに詳細に後述する。
【００３６】
また、図２に示すように、バスｈｒｅｇｎ，ｖｒｅｇｅ，ｈｒｅｇｓ，ｖｒｅｇｗは、図９を参照してさらに詳細に後述するが、４ビット接続点２２（図２に小さい正方形で示す）を備えている。
【００３７】
図３は、コーナーに丸みが付いた正方形によって示される演算論理装置の領域間における、ある階層の相互接続を示している。１グループが４つの４ビットバスｖ８，ｖ４ｗ，ｖ４ｅ，ｖ１６は、ＡＬＵ領域１２の各列を垂直に縦断して延びている。各グループの最も左のバスｖ８は、長さがほぼタイル８個分のセグメントに分かれている。各グループの最も左から２番目のバスｖ４ｗは、長さがほぼタイル４個分のセグメントに分かれている。各グループの最も右から２番目のバスｖ４ｅは、長さがほぼタイル４個分であるが、最も左から２番目のバスｖ４ｗからタイル２個分だけオフセットしたセグメントに分かれている。各グループの最も右側のバスｖ１６は、長さがほぼタイル１６個分のセグメントに分かれている。図４の上部に位置するアレイの上部端および下部端では、セグメントの長さが、上記で規定した長さよりわずかに長くまたは短くなる可能性がある。
【００３８】
図３および図５を参照すると、一グループをなす４つのバスｖ８，ｖ４ｗ，ｖ４ｅ，ｖ１６の各グループは、それぞれのＡＬＵ領域１２と交差すると、接続点ｈｔｎｗ，ｈｔｓｗ，ｈｔｓｅ，ｈｔｎｅにおいて、４ビットタップ接続が提供される。バスセグメントの端部は、ＡＬＵ領域と交差するバスセグメントに接続するよりも、このような４ビットタップ接続を優先する。
【００３９】
同様に、図４および図５に示すように、一グループにおいて４つの４ビットバスｈ８，ｈ４ｎ，ｈ４ｓ，ｈ１６がＡＬＵ領域１２の各行を水平に横切って延びている。各グループの最も上のバスｈ８は、長さがほぼタイル８個分のセグメントに分かれている。各グループの最も上から２番目のバスｈ４ｎは、長さがほぼタイル４個分のセグメントに分かれている。
【００４０】
各グループにおける最も下から２番目のバスｈ４ｓは、長さがほぼタイル４個分であるが、最も上から２番目のバスｈ４ｎからタイル２個分だけオフセットしたセグメントに分かれている。各グループの最も下のバスｈ１６は、長さがほぼタイル１６個分のセグメントに分かれている。図４の左に位置するアレイの左側端および右側端では、セグメントの長さが、上記で規定した長さよりわずかに長くまたは短くなる可能性がある。各グループをなすバスｈ８，ｈ４ｎ，ｈ４ｓ，ｈ１６が各ＡＬＵ領域１２と交差すると、接続点ｖｔｎｗ，ｖｔｓｗ，ｖｔｓｅ，ｖｔｎｅにおいて、さらに４ビットタップ接続が提供される。バスセグメントの端部は、ＡＬＵと交差するバスセグメントに対する接続よりもこのような４ビットタップ接続を優先する。
【００４１】
図５に示すように、接続点ｈｔｎｗ，ｈｔｓｗ，ｈｔｎｅ，ｈｔｓｅは、プログラマブルスイッチを介して、ＡＬＵ領域の西および東で、スイッチングセクションのバスｈｒｅｇｎ，ｈｒｅｇｓに接続される。また、接続点ｖｔｎｗ，ｖｔｎｅ，ｖｔｓｗ，ｖｔｓｅは、プログラマブルスイッチを介して、ＡＬＵ領域の北および南で、スイッチングセクションのバスｖｒｅｇｗ，ｖｒｅｇｅに接続される。
【００４２】
次に、図６Ａを参照して、直角に交差する４ビットバス対の間におけるプログラマブル接続１６について説明する。水平バスの導体は、ｘ０，ｘ１，ｘ２，ｘ３で表示され、垂直バスの導体は、ｙ０，ｙ１，ｙ２，ｙ３で表示されている。
【００４３】
同じ位のビット(same bit significace)の各導体対の間に、各トランジスタ１６０，１６１，１６２，１６３が設けられている。トランジスタ１６０，１６１，１６２，１６３のゲートは、ＮＯＲゲート１６ｇの出力に共通に接続されており、ＮＯＲゲート１６ｇは、その２つの入力として、スイッチグループによる共有が可能な、単一ビットメモリセルからの反転されたイネーブル信号（図中ではオーバー・バー（￣）を付したＥＮＡＢＬＥで示す）と、単一メモリビットセル２４の反転された内容を受信する。したがって、イネーブル信号が“Ｈ”レベルで、メモリセル２４の内容が“Ｈ”レベルの場合のみ、導体ｘ０，ｘ１，ｘ２，ｘ３が、各トランジスタ１６０，１６１，１６２，１６３によって、それぞれ導体ｙ０，ｙ１，ｙ２，ｙ３に接続される。
【００４４】
次に、図６Ｂを参照して、互いに、一直線上で端部どうしが接する、４ビットバス対の間のプログラマブル接続１８について説明する。一方のバスの導体は、ｘ１０，ｘ１１，ｘ１２，ｘ１３で表示され、もう一方のバスの導体は、ｘ２０，ｘ２１，ｘ２２，ｘ２３で表示されている。同じ位のビットの各導体対の間に、各トランジスタ１８０，１８１，１８２，１８３が設けられている。トランジスタ１８０，１８１，１８２，１８３のゲートはＮＯＲゲート１８ｇの出力に共通に接続されており、ＮＯＲゲート１８ｇは、その２つの入力として、スイッチグループによる共有が可能な、単一ビットメモリセルからの反転されたイネーブル信号と、単一メモリビットセル２４の反転された内容とを受信する。したがって、イネーブル信号が“Ｈ”レベルで、メモリセル２４の内容が“Ｈ”レベルの場合のみ、導体ｘ１０，ｘ１１，ｘ１２，ｘ１３が、各トランジスタ１８０，１８１，１８２，１８３によって、各導体ｙ２０，ｙ２１，ｙ２２，ｙ２３に接続される。
【００４５】
次に、図６Ｃを参照して、桁上げ導体ｈｃｏ，ｖｃｏ，ｈｃｉ，ｖｃｉ間のプログラマブル接続２０について説明する。水平桁上げ出力導体ｈｃｏは、各トランジスタ２０ｈｈ，２０ｈｖを介して、水平桁上げ入力導体ｈｃｉおよび垂直桁上げ入力導体ｖｃｉに接続されている。さらに、垂直桁上げ出力導体ｖｃｏは、トランジスタ２０ｖｖ，２０ｖｈを介して、垂直桁上げ入力導体ｖｃｉおよび水平桁上げ入力導体ｈｃｉに接続されている。トランジスタ２０ｈｈ，２０ｖｖのゲートは、インバータ２０ｉの出力とトランジスタ２０ｈｖ，２０ｖｈのゲートに共通の接続が施されており、インバータ２０ｉに対する入力はＮＯＲゲート２０ｇの出力に接続されている。ＮＯＲゲート２０ｇは、その２つの入力として、スイッチグループによる共有が可能な、単一ビットメモリセルからの反転されたイネーブル信号と、単一メモリビットセル２４の反転された内容とを受信する。したがって、イネーブル信号が“Ｈ”レベルの場合、導体ｈｃｏ，ｖｃｏはメモリセル２４の内容に応じて、導体ｈｃｉ，ｖｃｉまたは導体ｖｃｉ，ｈｃｉに接続される。
【００４６】
ＮＯＲゲート１６ｇ，１８ｇ，２０ｇを有する図６Ａ〜図６Ｃを参照して、前述のスイッチング可能な接続１６，１８，２０のそれぞれを説明する。図７に示すように、ＮＯＲゲート１６ｇは、４つのトランジスタ１６ｇ１，１６ｇ２，１６ｇ３，１６ｇ４によって形成され、そのうち、トランジスタ１６ｇ１，１６ｇ３の２つは、反転されたイネーブル信号に応答し、１６ｇ２，１６ｇ４の２つはメモリセル２４の反転された内容に応答する。本発明の好適な実施の態様の場合、スイッチング可能な接続１６，１８，２０のグループは、該グループの一部だけを使用禁止にする必要がなく、共通して使用禁止にすることが可能である。このようなグループは、１つのスイッチングセクション１４におけるスイッチング可能な接続の全体、特定のタイルの２つのスイッチングセクション１４におけるスイッチング可能な接続の全体、またはアレイのより広い領域におけるスイッチング可能な接続の全体から構成することが可能である。この場合、トランジスタ１６ｇ１は、図８に示すように、グループをなすスイッチング可能な接続１６，１８，２０の全てに対して共通にすることが可能である。これによって、ゲートに必要なトランジスタの数を２５％減らすことが可能になるが、図８に示すように、ゲートをリンクする導体をそれ以上必要とする。
【００４７】
当業者には明らかなように、図７および図８に示す構造は、修正を加えて、最適化することが可能である。例えば、図７および図８の構成は、記憶値およびその記憶値の補数の両方を戻すように設計されたメモリセル２４を十分に利用したものではない。このようなメモリセル２４から得られる補数を利用することによって、図８に示す事例のように、イネーブル信号と反転されたイネーブル信号の両方を、グループをなすスイッチング可能な接続の全てに伝送する必要をなくすことが可能になる。
【００４８】
図１および図２を参照して、上述のように、各スイッチングセクション１４ごとに、バスｈｒｅｇｎ，ｈｒｅｇｓ，ｖｒｅｇｗ，ｖｒｅｇｅは、それぞれの４ビット接続２２によって、レジスタまたはバッファ回路に接続されている。次に、図９を参照して、この回路についてより詳細に述べる。４つの各接続２２は、マルチプレクサ２６のそれぞれの入力に接続されている。マルチプレクサ２６は、レジスタまたはバッファ２８に供給される出力として、入力の１つを選択する。レジスタまたはバッファ２８の出力は、それぞれ、バスｈｒｅｇｓ，ｖｒｅｇｗ，ｈｒｅｇｎ，ｖｒｅｇｅに対応する接続２２に戻る接続がなされている４つのトライステート(tri-state)バッファ３０ｓ，３０ｗ，３０ｎ，３０ｅに供給される。バッファ２８が利用される場合、バスｈｒｅｇｓ，ｖｒｅｇｗ，ｈｒｅｇｎ，ｖｒｅｇｅの選択された１つの４ビット信号が増幅されて、バスｈｒｅｇｓ，ｖｒｅｇｗ，ｈｒｅｇｎ，ｖｒｅｇｅの別の選択された１つに供給される。レジスタ２８が利用される場合、バスｈｒｅｇｓ，ｖｒｅｇｗ，ｈｒｅｇｎ，ｖｒｅｇｅの選択された１つの４ビット信号が増幅されて、次のアクティブクロックエッジ(active clock edge)の後、バスｈｒｅｇｓ，ｖｒｅｇｗ，ｈｒｅｇｎ，ｖｒｅｇｅの任意の選択された１つに供給される。
【００４９】
上述の構成によって、アレイを巡るまたはアレイを横切る信号経路の自由度が高くなる。メモリセル２４を利用してスイッチ１６，１８，２０の適正な設定と、マルチプレクサ２６およびレジスタまたはバッファ２８の適正な設定とによって、主として、バスｖ１６，ｈ１６，ｖ８，ｈ８，ｖ４ｅ，ｖ４ｗ，ｈ４ｎ，ｈ４ｓを利用して、アレイの端から特定のＡＬＵへ、ＡＬＵ間、および特定のＡＬＵからアレイの端へと、かなりの距離にわたって信号を送ることが可能になる。
【００５０】
これらのバスは、スイッチングセクション１４によって一列または直角に結合し、伝搬の遅れを短縮するためにレジスタまたはバッファ２８によって増幅するおよびレジスタ２８によってパイプライン段(pipeline stage)を導入することが可能である。また、これらのバスは、その全長に沿って部分的にタップを設置することが可能であり、この結果、特定の処理操作を実行するＡＬＵとの配置は、バスの長さでは完全には表されなくなり、信号を２つ以上のＡＬＵに分配することが可能になる。さらに、図１および図２を参照して、図示されたバスより長さの短いバスを利用すれば、スイッチングセクション１４とＡＬＵとの間の経路指定を行うことが可能になり、例えば、バスが水平または垂直に延びていても、同じ行または列内の１つのＡＬＵから隣接するＡＬＵまたは対角線状に隣接するＡＬＵへと、主としてより短い距離の送信が可能になる。さらに、レジスタまたはバッファ２８を利用して、信号を増幅する、またはプログラマブル遅延を信号に加えることが可能である。
【００５１】
上述の構成の場合、メモリセル２４は、スイッチングセクション１４およびＡＬＵ領域１２と同じ範囲にわたって、アレイ全域に分布している。各メモリセル２４は、それが制御するマルチプレクサ、レジスタ、またはバッファをスイッチおよびスイッチグループに隣接して配置されている。これによって高回路密度の実現が可能になる。
【００５２】
次に、メモリセル２４のデータの書き込みまたはメモリセル２４からのデータの読み取りを行う方法、プログラマブルスイッチ１６，１８，２０のイネーブル信号がメモリセルに書き込まれる方法、命令およびおそらくは定数がＡＬＵに分配される方法、およびクロック信号のような他の制御信号がアレイ全域にわたって伝送される方法を説明する。これらの機能の全てについて、図１０に示す「Ｈツリー」構造（それ自体は既知である）を用いることが可能である。図１０および図１１を参照すると、例示された図における６４の任意の位置にイネーブル信号を分配するため、イネーブル信号３０ａおよびそのための６ビットアドレス３２ａがデコーダ３４ａに供給される。デコーダ３４ａは、そこからの４つの分岐(branch)のどれがそのアドレスに通じているかを決定し、そのブランチにおける別のデコーダ３４ｂに、４ビットアドレス３２ｂと共に、４つのブランチ全てにおけるデコーダ３４ｂにイネーブル信号３０ｂを供給する。イネーブル信号３０ｂを受信すると、デコーダ３４ｂは、そこからの４つのブランチのどれが要求されるアドレスに通じているかを決定し、４つのブランチ全てにおけるデコーダ３４ｃに４ビットアドレス３２ｃと共に、そのブランチにおける別のデコーダ３４ｃにイネーブル信号３０ｃを供給する。デコーダ３４ｃがイネーブル信号３０ｃを受信すると、必要とされるアドレスにイネーブル信号３４ｄを供給し、そこで、イネーブル信号３４ｄを単一ビットメモリセルに記憶することができる。Ｈツリー構造の利点は、全ての宛先までの信号経路の長さがほぼ等しいという点であり、これは、クロック信号の場合に特に有利である。
【００５３】
上述の構成の大きい利点は、例えば、１つのスイッチングセクション１４若しくは一タイル内の２つのスイッチングセクションにおいて、またはサブアレイをなすタイル内のスイッチングセクションにおいて、グループをなすメモリセル２４の内容が関連スイッチに影響を及さないように、これらのメモリセルのグループを、反転されたイネーブル信号によって一括して使用禁止にすることができるという点にある。したがって、該メモリセル２４は、アレイの配線の構成に利用するのではなく、アプリケーションによって「ユーザ」メモリとして利用することができる。
【００５４】
ただ単に例示だけのために、本発明の実施の態様の説明を行ってきたが、本発明との調和を保って、多くの修正および改良を行うことが可能である。例えば、上記の実施の態様では、ＡＬＵを処理装置として用いているが、ルックアップテーブル、プログラマブル論理アレイ、および／またはそれ自体の命令を取り出すことが可能な自己完結型(self-contained)ＣＰＵという他の処理装置を追加または代替利用することも可能である。
【００５５】
さらに、アレイ全体がＡＬＵおよびスイッチングセクションで満たされているかのように実施の態様の説明を行ってきたが、アレイは他の態様のセクションを有することも可能である。例えば、サブアレイは、上述のように、ＡＬＵおよびスイッチングセクションのタイルの４×４配列から構成することが可能であり、アレイは、このような４×４アレイをなすようにサブアレイおよびメモリを構成することもでき、４×４アレイをなすようにサブアレイおよび縮小命令セットコンピュータ(RISC)ＣＰＵを構成することも可能である。
【００５６】
上述の実施の態様の場合、各ＡＬＵ領域は正方形であり、各スイッチングセクションは正方形でＡＬＵ領域と同じサイズであるが、留意すべきはレジスタバスｖｒｅｇｗ，ｖｒｅｇｅ，ｈｒｅｇｎ，ｈｒｅｇｓにおける制御可能なスイッチ１８がＡＬＵ領域の正方形の輪郭内に侵入している点である。ＡＬＵ領域はスイッチングセクションと同じサイズである必要はなく、それより小さくてもよい。
【００５７】
したがって、例えば１つのスイッチングセクション１４から、バスｈ２ｓとバスｈ２ｎとの間またはバスｖ２ｅとバスｖ２ｗとの間に延びる対角線状の隣接するスイッチングセクション１４まで、水平または垂直方向に１つ以上のバスを直接通すことが可能である。
【００５８】
上述の実施の態様の場合、各ＡＬＵは２つの独立した桁上げ入力ｖｃｉ，ｈｃｉと接続対をなす桁上げ出力ｃｏとを備えている。必要があれば、ＡＬＵは２種類の桁上げ、すなわちマルチビット加算操作に特に利用可能な隣接するＡＬＵ間における高速の桁上げと、自由度のある経路指定が可能であり特にデジタル直列演算に利用可能な低速の桁上げとを扱うように構成することができる。高速の桁上げは図面に関連して上述のものと同様に構成することが可能であり、低速の桁上げは桁上げ導体(carry conductor)と４ビットバスの特定ビットとの間のスイッチングセクション１４におけるプログラマブルスイッチを用いることが可能である。
【００５９】
上述の実施の態様の場合、特定のビット幅、スイッチングセクションのサイズおよびアレイのサイズについて説明してきたが、留意すべきはこれらの値の全ては、適切に変更可能であるという点である。また、プログラマブルスイッチ１６，１８，２０について、各スイッチングセクション１４の特定の位置に配置されるものとして説明してきたが、必要および所望に応じて別の位置に配置されることも可能である。
【００６０】
上述の実施の態様の場合、アレイは２次元であるが、本発明においては、例えば上述のアレイにスタック(stack)を設け、隣接する層のスイッチングセクションが互い違いに配置されるようにすることによって、３次元アレイにも適用可能である。スタックはちょうど２つの層を備えることができるが、好適には少なくとも３つの層を備え、層の数は２の累乗が望ましい。
【００６１】
上述の実施の態様の場合、メモリセル２４を、ゲート１６ｇ，１８ｇ，２０ｇによって、それらが制御するスイッチから分離することができるので、メモリセルを他の目的に利用することができる。すなわち、「ユーザプレーン(user plane)」にあてることが可能になる。しかし、イネーブル信号メモリセルはユーザプレーンに転送することができない。代替の実施の態様の場合、特定のスイッチングセクション１４のスイッチは、スイッチングセクション１４の境界におけるバスのそれ以外のスイッチによって、アレイの残りの部分から接続を切ることが可能であり、前記それ以外のスイッチはユーザプレーンに転送できないそれ以外のメモリセルによって制御される。
【００６２】
他の多くの修正および改良を行うことも可能である。
【図面の簡単な説明】
【００６３】
【図１】図１は、６つのスイッチングセクションおよび６つの演算論理装置の位置を説明するためのプロセッサアレイの一部を示す図である。
【図２】図２は、スイッチングセクションの１つおよび演算論理装置の位置の１つを示す図１に示される構成の一部を拡大した図である。
【図３】図３は、演算論理装置の位置、およびそれらを縦断して延びる「垂直」バスを示す、図１に示されるプロセッサアレイの一部を縮小した図である。
【図４】図４は、図３と同様に、演算論理装置の領域を横断して延びる「水平」バスを示す図である。
【図５】図５は、演算論理装置の１つの領域における図２、図３、および図４のバス間の相互接続を示す図である。
【図６Ａ】図６Ａは、互いに交差する１対の４ビットバスを接続するスイッチングセクションの一態様のプログラマブルスイッチの回路構成を詳細に示す図である。
【図６Ｂ】図６Ｂは、互いに端部間で接する１対の４ビットバスを接続するスイッチングセクションにおける他の態様のプログラマブルスイッチの回路構成を詳細に示す図である。
【図６Ｃ】図６Ｃは、桁上げビット(carry bit)バスを接続するスイッチングセクションにおける他の態様のプログラマブルスイッチの回路構成を詳細に示す図である。
【図７】図７は、図５および第６図のプログラマブルスイッチにおいて利用可能な一連のＮＯＲゲートの回路構成を示す図である。
【図８】図８は、図７の回路構成に対する修正を示す図である。
【図９】図９は、各スイッチングセクションにおける利用可能なバッファおよびレジスタを示す図である。
【図１０】図１０は、スイッチングセクションにおけるプログラマブルスイッチにイネーブル信号を分配可能な方法を示す概略図である。
【図１１】図１１は、図１０に示す構成の回路構成をより詳細に示す図である。
【図１】
2007329936.tif 000003
【図２】
2007329936.tif 000004
【図３】
2007329936.tif 000005
【図４】
2007329936.tif 000006
【図５】
2007329936.tif 000007
【図６Ａ】
2007329936.tif 000008
【図６Ｂ】
2007329936.tif 000009
【図６Ｃ】
2007329936.tif 000010
【図７】
2007329936.tif 000011
【図８】
2007329936.tif 000012
【図９】
2007329936.tif 000013
【図１０】
2007329936.tif 000014
【図１１】
2007329936.tif 000015
【外国語明細書】
2007329936000001.pdf
2007329936000002.pdf
2007329936000003.pdf
2007329936000004.pdf