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