(57)【要約】再配置可能なチップ（２０）は、シフトレジスタ、算術論理およびマルチプレクサを含む再配置可能な機能ユニットを有することを教示する。データ経路は他のデータ経路ユニットに相互に接続される。相互接続はワード長データの転送により提供される。シフタは、ワード長データが算術論理演算ユニットで使用するために調節される。再配置可能な機能ユニットは再配置可能な機能ユニット命令によって制御される。再配置可能なユニット命令は再配置可能な機能ユニット命令メモリに格納され、それはチップ上のステート・マシンによってアドレスされる。
2004531149.tif 000002
【特許請求の範囲】
【請求項１】
再配置可能なチップにおいて、
異なる機能を実行するために適合し、マルチプレクサ、少なくとも１つのシフタ・ユニットおよび少なくとも１つの算術論理演算ユニットを含む複数の再配置可能な機能ユニットであって、前記再配置可能な機能ユニットは前記マルチプレクサ、前記シフタ・ユニットおよび前記算術論理演算ユニットの配置を制御する再配置可能な機能ユニット命令によって形成される、複数の再配置可能な機能ユニットと、
前記再配置可能な機能ユニットのいくつかを選択的に互いに接続するのに適合した相互接続要素と、
から構成されることを特徴とする再配置可能なチップ。
【請求項２】
前記再配置可能な機能ユニット命令は、マルチプレクサ・フィールド、シフタ・ユニット・フィールドおよび算術論理演算ユニット・フィールドを含む複数のフィールドに分割されることを特徴とする請求項１記載の再配置可能なチップ。
【請求項３】
前記再配置可能な機能ユニットは、データ経路ユニットを含むことを特徴とする請求項１記載の再配置可能なチップ。
【請求項４】
前記相互接続要素は、ワード長データを転送するために適合していることを特徴とする請求項１記載の再配置可能なチップ。
【請求項５】
前記ワード長データは、３２ビットまたはそれより長いことを特徴とする請求項４記載の再配置可能なチップ。
【請求項６】
前記再配置可能な機能ユニットのための複数の命令を格納する命令メモリをさらに含むことを特徴とする請求項１記載の再配置可能なチップ。
【請求項７】
前記シフタ・ユニットは、複数のモードで構成されることを特徴とする請求項１記載の再配置可能なチップ。
【請求項８】
前記再配置可能な機能ユニット命令は、前記シフタ・ユニットのモードを制御するシフタ・ユニット・フィールドを含むことを特徴とする請求項７記載の再配置可能なチップ。
【請求項９】
前記マルチプレクサの少なくとも１つは、遅延ユニット入力、および遅延ユニットをバイパスするすべての入力に関連し、可変遅延システムを実行することを特徴とする請求項１記載の再配置可能なチップ。
【請求項１０】
前記再配置可能な機能ユニットは、前記再配置可能な機能ユニット内に値を一時的に格納するためのレジスタを含むことを特徴とする請求項１記載の再配置可能なチップ。
【請求項１１】
再配置可能なチップにおいて、
複数の再配置可能な機能ユニットであって、前記再配置可能な機能ユニットはマルチプレクサ、少なくとも１つのシフタ・ユニットおよび少なくとも１つの算術論理演算ユニットを含み、前記シフタ・ユニットは前記算術論理演算ユニットが前記再配置可能な機能ユニットのワード長入力データ内の異なるビット上で動作する、複数の再配置可能な機能ユニットと、
前記再配置可能な機能ユニットのいくつかを選択的に互いに接続するのに適合し、ワード長データを転送するために適合した相互接続要素と、
から構成されることを特徴とする再配置可能なチップ。
【請求項１２】
前記ワード長データは、３２ビットまたはそれより長いことを特徴とする請求項１１記載の再配置可能なチップ。
【請求項１３】
前記ワード長データは、３２ビット長であることを特徴とする請求項１２記載の再配置可能なチップ。
【請求項１４】
前記再配置可能な機能ユニットは、再配置可能な機能ユニット命令によって形成され、前記命令はマルチプレクサ、シフタ・ユニットおよび算術論理演算ユニットの配置を制御することを特徴とする請求項１１記載の再配置可能なチップ。
【請求項１５】
前記再配置可能なチップは、前記再配置可能な機能ユニットのための複数の命令を格納する命令メモリをさらに含むことを特徴とする請求項１１記載の再配置可能なチップ。
【請求項１６】
前記シフタ・ユニットは、複数の異なるモードで構成されることを特徴とする請求項１１記載の再配置可能なチップ。
【請求項１７】
前記マルチプレクサのいくつかは、遅延ユニット入力、および遅延ユニットをバイパスする入力に関連することを特徴とする請求項１１記載の再配置可能なチップ。
【請求項１８】
再配置可能なチップにおいて、
複数の再配置可能な機能ユニットであって、前記再配置可能な機能ユニットはマルチプレクサ、少なくとも１つのシフタ・ユニットおよび少なくとも１つの算術論理演算ユニットを含み、前記再配置可能な機能ユニットは再配置可能な機能ユニット命令によって構成され、前記命令は前記マルチプレクサ、前記シフタ・ユニットおよび前記算術論理演算ユニットの配置を制御する、複数の再配置可能な機能ユニットと、
前記再配置可能な機能ユニットのために複数の命令を格納する命令メモリと、
から構成されることを特徴とする再配置可能なチップ。
【請求項１９】
前記命令メモリは、個々の再配置可能な機能ユニットに関連することを特徴とする請求項１８記載の再配置可能なチップ。
【請求項２０】
前記命令メモリは、前記命令メモリのためのアドレスを生成するステート・マシンに関連することを特徴とする請求項１８記載の再配置可能なチップ。
【請求項２１】
前記再配置可能な機能ユニット命令は、前記マルチプレクサ、シフタ・ユニット制御フィールドおよび算術論理演算ユニット制御フィールドを形成するためのフィールドを含むことを特徴とする請求項１８記載の再配置可能なチップ。
【請求項２２】
前記再配置可能な機能ユニットのいくつかを選択的に互いに接続するために適合した相互接続要素をさらに含むことを特徴とする請求項１８記載の再配置可能なチップ。
【請求項２３】
前記相互接続ユニットは、ワード長データを転送するために適合したことを特徴とする請求項２２記載の再配置可能なチップ。
【請求項２４】
前記シフタ・ユニットは、複数のモードで構成されることを特徴とする請求項１８記載の再配置可能なチップ。
【請求項２５】
前記シフタ・ユニットは、シフタ・ユニット・フィールド、再配置可能なユニット命令によって制御されることを特徴とする請求項２４記載の再配置可能なチップ。
【請求項２６】
前記マルチプレクサの少なくとも１つは、遅延ユニット入力、および遅延ユニットをバイパスするすべての入力に関連し、可変遅延が実行できることを特徴とする請求項１８記載の再配置可能なチップ。
【請求項２７】
再配置可能なチップにおいて、
複数の再配置可能な機能ユニットであって、前記再配置可能な機能ユニットはマルチプレクサ、少なくとも１つのシフタ・ユニットおよび少なくとも１つの算術論理演算ユニットを含み、前記シフタ・ユニットは複数のモードで構成される、複数の再配置可能な機能ユニットと、
前記再配置可能な機能ユニットのいくつかを選択的に互いに接続するために適合した相互接続要素と、
から構成されることを特徴とする再配置可能なチップ。
【請求項２８】
前記シフタ・モードは、論理および演算の左右シフト以外のモードを含むことを特徴とする請求項２７記載の再配置可能なチップ。
【請求項２９】
少なくとも１つのモードは、入力ワードのブロックを再整理することを特徴とする請求項２７記載の再配置可能なチップ。
【請求項３０】
前記モードの１つは、定数の生成を含むことを特徴とする請求項２７記載の再配置可能なチップ。
【請求項３１】
前記モードの１つは、あるビットのセットを別のビットのセットへの複製を含むことを特徴とする請求項２７記載の再配置可能なチップ。
【請求項３２】
前記モードの１つは、ビットからなるグループのいくつかを他のビットからなるグループと交換することを特徴とする請求項２７記載の再配置可能なチップ。
【請求項３３】
前記再配置可能な機能ユニットは、再配置可能な機能ユニット命令によって形成され、前記再配置可能な機能ユニット命令は、算術論理演算ユニット、シフタ・ユニットおよびマルチプレクサを配置することを特徴とする請求項２７記載の再配置可能なチップ。
【請求項３４】
前記再配置可能な機能ユニット命令は、前記シフタ・ユニットのモードを制御する前記シフタ・ユニットを制御するためのフィールドを含むことを特徴とする請求項３３記載の再配置可能なチップ。
【請求項３５】
前記相互接続要素は、ワード長データを転送するために適合していることを特徴とする請求項２７記載の再配置可能なチップ。
【請求項３６】
前記再配置可能な機能ユニットのための命令を格納する命令メモリをさらに含むことを特徴とする請求項２７記載の再配置可能なチップ。
【請求項３７】
前記マルチプレクサの少なくとも１つは、遅延入力ユニット、および可変遅延を実行するための遅延ユニットをバイパスする入力に関連することを特徴とする請求項２７記載の再配置可能なチップ。
【請求項３８】
再配置可能なチップにおいて、
複数の再配置可能な機能ユニットであって、前記再配置可能な機能ユニットはマルチプレクサ、少なくとも１つのシフタ・ユニットおよび少なくとも１つの算術論理演算ユニットを含み、前記マルチプレクサの少なくとも１つは遅延ユニット入力、および遅延ユニットをバイパスする入力に適合した複数の再配置可能な機能ユニットと、
前記再配置可能な機能ユニットのいくつかを選択的にともに接続するために適合する、相互接続要素をと、
から構成されることを特徴とする再配置可能なチップ。
【請求項３９】
前記再配置可能な機能ユニットは、再配置可能な機能ユニット命令によって再配置され、前記命令はマルチプレクサ、シフト・ユニットおよび算術論理演算ユニットの配置を制御することを特徴とする請求項３８記載の再配置可能なチップ。
【請求項４０】
前記再配置可能な機能ユニット命令は、マルチプレクサ、シフタ・ユニットおよび算術論理演算ユニットの配置を制御するための複数の異なるフィールドを含むことを特徴とする請求項３９記載の再配置可能なチップ。
【請求項４１】
前記再配置可能な機能ユニットのための命令のフィールドは、要約のモードを示すことを特徴とする請求項３９記載の再配置可能なチップ。
【請求項４２】
前記相互接続要素は、ワード長データを転送するために適合していることを特徴とする請求項３８記載の再配置可能なチップ。
【請求項４３】
前記再配置可能な機能ユニットのための複数の命令を格納する命令メモリをさらに含むことを特徴とする請求項３８記載の再配置可能なチップ。
【請求項４４】
前記再配置可能な機能ユニットは、複数の異なるモードで構成されるシフタ・ユニットを含むことを特徴とする請求項３８記載の再配置可能なチップ。
【発明の詳細な説明】
【関連出願／優先権】
【０００１】
[０００１]  本出願は、２００１年５月２日に提出された仮出願No.60/288,298の優先権を主張する。
【技術分野】
【０００２】
［０００２]  本発明は、再配置可能な論理チップに関し、特に再配置可能な計算のために使用される再配置可能な論理チップに関する。
【背景技術】
【０００３】
［０００３]  フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）は、異なる構成を実現することのできるプログラム可能なチップである。典型的には、設計ツールを用いて設計が行われるが、特定のデザインのために構成される。設計は、ＦＰＧＡは構成を変更するためにチップの動作時間と比較して比較的長い時間が要求されるために単一の構成を用いる。
【０００４】
［０００４]  近年、再配置可能なチップ上へのアルゴリズム部分を速く切り替えることを目指した再配置可能なチップが作成された。これらの再配置可能なチップは、アルゴリズムの実行部分に資源を提供するために、チップの再配置可能な要素を使用することを目指している。
【０００５】
［０００５]   再配置可能なチップ内での使用のためのデータ動作要素または再配置可能な機能ユニットを有し、再配置可能なチップ上でより有効なアルゴリズムを実行するために改善された設計を実現することが所望される。
【発明の開示】
【０００６】
［０００６]  本発明は、異なる機能を実行するために適合した複数の再配置可能な機能ユニット（データ経路（パス）ユニットのような）を含む再配置可能なチップに関連する。再配置可能な機能ユニットは、好ましくはマルチプレクサ、少なくとも１つのシフト・ユニットおよび少なくとも１つの算術論理演算ユニット（ＡＬＵ）を含む。再配置可能な機能ユニットは、再配置可能な機能ユニット命令によって形成される。その命令は、マルチプレクサおよびシフト・ユニットの配置およびＡＬＵを制御する。再配置可能なチップは、さらに再配置可能な機能ユニットを互いに接続するために適合した相互接続を含む。この方法により、データは再配置可能な機能ユニット間を通過する。
【０００７】
［０００７]  再配置可能な機能ユニット命令は、好ましくはマルチプレクサ、シフタ・ユニットおよび算術論理演算ユニットのための複数のフィールドを含む。これらのフィールドは、所要の方法で再配置可能な機能ユニット中にこれらの要素を形成する。
【０００８】
［０００８]  好適な実施例では、個々の再配置可能な機能ユニットに関連する命令メモリがある。その命令メモリは、再配置可能な機能ユニットのために複数の命令を格納する。好適な実施例において、ステート・マシンは、命令メモリにアドレス指定し、次の命令が再配置可能な機能ユニットにロードされるように促す。ある好適な実施例では、再配置可能な機能ユニットは、機能がいつ終了し、また次の機能がいつ再配置可能な機能ユニットにロードされるか示すフィードバックをステート・マシンに提供する。
【０００９】
［０００９]  ある実施例において、シフタ・ユニットは複数の異なるモードで構成される。これらのモードは、好ましくは再配置可能な機能ユニット命令のフィールドによって選択可能である。
【００１０】
［００１０]  ある実施例において、相互接続要素は、ワード長データを転送するために、再配置可能な機能ユニットのいくつかを選択的に接続するために適合している。転送されたデータは、好ましくは３２ビットまたはそれ以上の固定データ長を有する。固定長データの転送によって、相互接続システムはデータ転送における柔軟性を失うが単純化され得る。再配置可能な機能ユニット中のシフト・ユニットによって、算術論理演算ユニットは相互接続要素の固定された構造を補う再配置可能な機能ユニットのワード長入力データ中の異なるビット上で動作することが可能になる。したがって、必要とされるデータがワード内のある場所にある場合、シフタは算術論理演算ユニットによる操作のために適した位置にそのビット位置を移動させることができる。
【００１１】
［００１１]  本発明の別の実施例は、遅延ユニット入力および遅延ユニットをバイパスする入力を備えたマルチプレクサの使用を含む。このように、再配置可能な機能ユニットは、システムの柔軟性を増加させる可変遅延を実行することができる。
【発明を実施するための最良の形態】
【００１２】
［００３７]  図１は再配置可能なチップ２０を図示する。再配置可能なチップ２０は中央処理装置（ＣＰＵ）２２、好ましくは縮小命令セット（ＲＩＳＣ）ＣＰＵを含む。外部記憶装置（図示せず）からのデータはメモリ制御器２４を使用して転送される。ロードランナ・バスと呼ばれるバス２６は、メモリ制御器から再配置可能な組織２８までデータを転送するために使用される。再配置可能な組織２８は複数のスライスに分割される。各スライスは複数のタイルへ分けられる。タイルは、それぞれデータ経路ユニット（再配置可能な機能ユニット）、制御ユニットおよびローカル・システムのメモリ・ユニットを含む。ローカル・システムのメモリ・ユニットは、以下に記述されるように、データ経路ユニットと相互に作用する。好適な実施例では、タイルはそれぞれさらに複数のマルチプレクサ・ユニットを具備する。
【００１３】
［００３８]  図２は、本発明の一実施例である再配置可能な機能ユニットの概略図である。再配置可能な機能ユニットは入力マルチプレクサ３０，３２を含む。以下に記述されるように、入力マルチプレクサによって、データ経路ユニットは、データ・バスと同様に近くのデータ経路ユニットも含んで、複数の異なる場所からの入力を受取ることを可能にする。入力マルチプレクサからの選択された出力は、レジスタ３６，３８へ送られる。さらに、マルチプレクサ３２の出力はシフタ・ユニット３４へ進む。以下に記述されるように、シフタ・ユニット３４によって、異なるビットの選択がＡＬＵ４０によって開始されることを可能にする。データ経路ユニット間の相互接続は、相互接続システムを単純化するために、固定ワード長接続を使用するので、データ経路ユニットでのシフタ・ユニットの使用は、ワード内部でパックされたビットへのアクセスを可能にする。
【００１４】
［００３９]  以下に記述されるように、シフタ・ユニット３４は、好ましくは複数のモードを有しており、論理的および算術的な左および右へのシフト動作以上の処理を実行する。これらの異なるモードによって、システムはより効率的な方法で動作することが可能になる。以下に記述された算術論理演算ユニット４０は、好ましくはデータ経路ユニットが機能を実行する命令フィールドを使用する。ＡＬＵ４０の出力は、好ましくは出力レジスタ４２に進む。その出力は、実際にはオプショナルなビット・シフタ４４に送られ、シフトされた値を生成する。
【００１５】
［００４０]  ある実施例では、ライン４６上のバイパスするＡＬＵフィードバック出力もまた使用される。これにより、どの出力がデータ経路ユニットから送られるかを出力レジスタ４２が制御している間、データ経路ユニットの部分は動作することが可能になる。これは、出力レジスタ４２がローカル・システムのメモリ・ユニットにアドレスするために使用されるとき有用である。
【００１６】
［００４１]  ビット・シフタ４４は、Peter Lam、代理人Docket No. 032001-060による特許出願「線形のフィードバック・シフト・レジスタ機能を行なう再配置可能なチップ中の再配置可能な機能ユニットへの修正(Modification to Reconfigurable Functional Unit in a Reconfigurable Chip to Perform Linear Feedback Shift Register Function)」に記述されるように、線形フィードバック・シフト・レジスタを実行するために使用される。
【００１７】
［００４２]  マルチプレクサ、シフタ・ユニット３４およびＡＬＵ４０は好ましくはデータ経路ユニットのための命令によって制御されることに注意すること。この命令は、好ましくはマルチプレクサのためのマルチプレクサ命令フィールド、シフタ３４のためのシフタ・ユニット・フィールドおよびＡＬＵ４０のためのＡＬＵ命令フィールドを含む複数の異なるフィールドに分割される。ある実施例において、デコーダは少なくとも命令の一部のために使用される。
【００１８】
［００４３]  図３は、本発明の一実施例の詳細なダイヤグラムである。入力マルチプレクサ５０，５２は、入力データとして近くのユニットから受取る。一実施例において、データ経路ユニットおよびマルチプレクサ・ユニットを含む１６個のユニットからのデータ・ワードが、入力として使用される。グローバルな垂直および水平の相互接続が使用される。ある実施例において、線形フィードバック・シフト・レジスタのフィードバックのための接続、論理ゼロの一定の入力およびローカル・システムのメモリ・ユニットのための入力である。別の入力は、ＡＬＵ５４へ直接に提供される前のデータ経路ユニットからのキャリー入力である。マルチプレクサ５０は、複数の異なる動作モードを含むシフタ５６に接続される。マルチプレクサ５０の出力がシフタ・ユニット５６をバイパスするか使用することができるように、シフタ５６は別のマルチプレクサ５８に接続される。シフタ・ユニット５６は、さらにいくつかのモードのために入力マルチプレクサ５２からのＡ入力を使用することができる。マルチプレクサ５８の出力およびマルチプレクサ５２の出力は、レジスタ６０，６２へそれぞれ送られる。レジスタ６０，６２へはチップ外からロードしてもよい。このロジック６４，６６は、レジスタ値がシステムに対するマスク・レジスタとしての役割を果たすことができる。マルチプレクサ６８，７０は、ＡＬＵ５４への入力を選択する。ＡＬＵへの出力は複数の異なる可能な経路へ送られる。マルチプレクサ７２からのデータ経路の出力は、出力レジスタ７４からの値、またはマルチプレクサ７６からの値（それはＡＬＵ値またはライン７８上にあるローカル・システムにおけるメモリの再データ）である。ＡＬＵからのフラグ値はマルチプレクサ８０，８２に送られ、所要のフラグ値を選択する。このフラグ値はレジスタ８８，９０に格納され、レジスタ８８または９０はマルチプレクサ９２，９４に送られ、または、マルチプレクサ８０または８２からの選択された値が使用される。ＣＯＮＦ（コンフィギュレーション）値は命令中のフィールドであり、どのフラグを選択するべきか示す。
【００１９】
［００４４]  ある実施例において、レジスタ６０，６２，７４は、図１８の中で示される複数のマスタ・スレーブ・ラッチを使用することにより実行でき、バックグラウンド・コンフィギュレーション・データをレジスタへ転送することを許容する。ある実施例においては、これらのレジスタの動作は、再配置可能な機能ユニット命令のフィールドによって制御される。
【００２０】
［００４５]  図４はマルチプレクサ・ユニットのダイヤグラムである。マルチプレクサ・ユニットは、図３中に示される再配置可能な機能ユニットに多少類似する傾向がある。しかしながら、マルチプレクサ・ユニットは、ＡＬＵではなく専用マルチプレクサを具備する。
【００２１】
［００４６]  図５に示されるように、タイル中の７つのデータ経路ユニットまたは再配置可能な機能ユニットごとに対する一実施例において、２つのマルチプレクサ・ユニットが存在する。
【００２２】
［００４７]  図６は、データ経路ユニットの入力への隣接したデータ経路ユニットおよびマルチプレクサの接続を図示する。図５を参照して、データ経路ユニット１００は、入力として、上の前８個のデータ経路ユニット（およびマルチプレクサ）からの出力および下の次のデータ経路ユニット（およびマルチプレクサ）の７つを受取ることができる。データ経路ユニット１００の出力もそれ自体にフィードバックされる。これらのユニットのいずれかの出力も、システムの入力マルチプレクサを使用してＡまたはＢの入力を選択することができる。
【００２３】
［００４８]  図６は、１つのタイル再配置可能な機能ユニット（データ経路ユニット）から水平・垂直の接続ラインへの接続を図示するダイヤグラムである。マルチプレクサの使用により、データ経路ユニットの出力および入力は、垂直のルーティング・ラインおよび水平のルーティング・ラインの両方に相互接続することができる。
【００２４】
［００４９]  図７は、垂直に相互に接続されたラインを使用して、１つのタイル中のデータ経路ユニットを別のタイル中のデータ経路ユニットへ相互に接続させる例を図示する。本発明のシステムは、相互接続のために、好ましくはワードを基本とする相互接続を使用することに注意すること。ある実施例において、相互接続ラインは、３２ビットの広いデータ接続を許容する。一旦相互接続システムからデータ経路ユニットへ受取られれば、データ経路ユニット中のシフタ・ユニットは、データの整列を考慮に入れる。システムが３２ビットのワードでデータを送信するので、相互接続システムの複雑さは多少相互接続の柔軟性を犠牲にして、減少され単純化される。
【００２５】
［００５０]  図８は、データ経路ユニットとローカル・システム・メモリの関係を図示する。好ましい環境では、交替データ経路ユニットはローカル・システム・メモリの書込みおよび読取りを実行するために使用される。例えば、データ経路ユニット１０２は、ローカル・システム・メモリ１０４へ読取りアドレスを提供し、ローカル・システム・メモリ１０４からの読取りデータを受取る。データ経路ユニット１０６は、ローカル・システム・メモリ１０４に書込みアドレスおよび書込みデータを提供する。経路（パス）ゲート１０６，１０８，１１０，１１２のような経路ゲートを使用することによって、ローカル・システム・メモリ１１４およびデータ経路ユニット１１６，１１８がローカル・システム・メモリ１０４に接続できるように、データ経路ユニット１０２，１０６は他のローカル・システム・メモリに接続することができることに注意すること。別の実施例では、データ経路ユニットはローカル・システム・メモリに読み書きの双方をすることができる。データ経路ユニットの用途の１つは、ローカル・システム・メモリにアドレスを提供し、水平・垂直の相互接続バス上に置かれるローカル・システム・メモリからのデータを得ることである。図８に示される接続は、ローカル・システム・メモリ内外にあるデータを読み書きする直接の接続である。好ましい環境では、ローカル・システム・メモリは、メモリ制御システムを使用して全体的に読み書きされる。この汎用的なメモリ制御システムは、システムの配置、およびデータ経路ユニットによって管理されるデータを得るために使用される。上述されるように、好適な実施例では、データ経路ユニットが他のある機能を行っている間、データ経路ユニットはアドレスおよびデータがローカル・システム・メモリに提供されることを可能にする構造を含むことに注意すること。
【００２６】
［００５１]  図９は、再配置可能な機能ユニット１３０のための制御構造ユニット１３２の詳細である。この実施例では、制御構造ユニット１３２は、再配置可能な機能ユニット１３０のための制御または命令ラインを生成する。この実施例では、制御構造ユニット１３２は、好ましくはステート・マシン・ユニット１３４および機能ブロック・コンフィギュレーション・メモリ・ユニット１３６から構成される。ステート・マシン１３４は命令メモリ１３６へアドレスを生成する。ステート・マシン１３４の１つの実行は再配置可能なプログラム可能な積和ユニット１３６を使用する。
【００２７】
［００５２]  図１０Ａは、ステート・マシン・コンフィギュレーション・ユニット１３６、コンフィギュレーション・ステート・メモリ１３８’およびデータ経路ユニット１３０’を具備するシステムを図示する。コンフィギュレーション・ステート・メモリ１３８’からのコンフィギュレーションがデータ経路ユニット１３０’のための命令であると考えることができることに注意すること。その命令は、好ましくはＡＬＵ・コンフィギュレーション・フィールド、シフト・レジスタ・コンフィギュレーション・フィールドおよびマルチプレクサ・コンフィギュレーション・フィールドのようなフィールドを含む。ある実施例において、データ経路ユニット１３０’からのフラグのいくつかは、データ経路ユニットが１セットのデータ上で動作し終えた後、データ経路ユニットのためのコンフィギュレーションを切り替えるためにステート・マシン１３６’に送られる。コンフィギュレーション・ステート・マシン１３８’も、外部メモリからまたはプロセッサからの外部コンフィギュレーションからロードされてもよい。
【００２８】
［００５３]  図１０Ｂは、少なくとも命令の一部を解読するためにデコーダを使用するデータ経路ユニットを図示するダイヤグラムである。
【００２９】
［００５４]  図１１は、異なるコンフィギュレーション・ステート・メモリのためのステート・マシンを含む制御システムを示す。データ経路ユニットのフラグは上述した制御システムに送られる。
【００３０】
［００５５]  図１２は、算術論理演算ユニットの１つの例を図示するダイヤグラムである。この算術論理演算ユニットは、算術演算ユニット１４２、並列論理演算ユニット１４０およびフラグ・ユニット１４４を含む。さらに、キャリー選択ユニット１４６が示される。命令からのＡＬＵ命令フィールドはＡＬＵの動作を選択するために送られる。算術演算装置１４２はキャリー入力を使用する。好適な実施例では、このキャリー値は、前のデータ経路ユニットまたは制御信号からのキャリー、または命令の一部であるキャリーのいずれかである。
【００３１】
［００５６]  図１３Ａ，図１３Ｂは、本発明の再配置可能な機能ユニットにおいてＡＬＵの一実施例で使用される動作コードのいくつかのリストを図示する。これらの動作コードの詳細は、ここに参考として添付された付録に記述される。
【００３２】
［００５７]  図１４は、本発明のフラグ・システムにおけるダイヤグラムである。フラグ・ユニットは、データ経路ユニットの内部にあり、次のデータ経路ユニットと同様に制御ユニットへ進むフラグの生成のために使用される。フラグの選択は再配置可能な機能命令のフィールド制御に使用され、本発明によって提案される。フラグのうちのいくつかの記述が以下に与えられる。
【００３３】
［００５８]  ＲＯＸＲはすべてのサイクルで駆動される。それはｃｏｎｆ＝＝１によって選択される。
その動作は次のとおりである：
2004531149.tif 000003
省略形：
CO -（加算／減算動作の）キャリー出力
OV -（加算／減算動作の）オーバフロー
EQ - 等しい(A==B)
GT - より大きい
LT - より小さい
SN - 符号(結果の符合ビット)
前のフラグ
Cin - 前の行におけるキャリー
Ctrl - 制御からのキャリー
Max - 0x7fff[ffff] (16/32ビットの対し)
Min - 0x8000[0000] (16/32ビットの対し)
【００３４】
［００５９]  図１５は、本発明の一実施例に従うシフタ・ユニットにおけるいくつかのモード動作を図示する。シフタ・ユニットは複数の異なるモードを有するので、本発明のシステムにおける柔軟性が増加する。
【００３５】
［００６０]  図１６および図１７は、マルチプレクサの複数行を使用するシフタ・ユニットの１つの実行を図示する。付加的なロジックは特別の出力を生成するのに役に立つ。図１７は、シフトレジスタのいくつかの実行動作を図示する。
【００３６】
［００６１]  データ経路ユニットで使用されるこのシフタは、右／左シフト動作以上のことを行なう。シフタは、ｍｕｘ選択信号によって制御されるアレイ状のマルチプレクサを含む。４ｘ６マルチプレクサ・アレイ・シフタの一実施例では、８個の信号の４グループに分割される３２ビットのオペランドは、４つのマルチプレクサの第１行に結合される。最後の行以外では、前の行におけるマルチプレクサの出力は、次のマルチプレクサの行入力に結合される。アレイ中のマルチプレクサはそれぞれ独立して制御される。制御信号は、その信号がアレイ中でどのように経由し、それにより動作タイプがオペランド上でどのように達成されるかを決定する。ある実施例において、動作の例は次のものを含む。３２ビットの論理的な右／左シフト、３２ビットの演算右／左シフト、低位１６ビットの３２ビット符号拡張、定数生成、低位１６ビットの高位１６ビットへの複製、高位１６ビットの低位１６ビットへの複製、低位および高位１６ビットの交換（スワップ）、１６ビット算術右シフト、およびバイト交換。
【００３７】
［００６２]  図１８は、本発明の一実施例であるシステムにおいて使用される複数のマスター・ラッチのシステムを図示する。この実施例では、２つのマスター・ラッチが使用される。マスター・ラッチの１つはシステムのバックグラウンド部に使用される。別のマスター・ラッチは、データ経路ユニットにおけるパイプラインまたはプロセッサからデータを受取る。ラッチ１５０への入力はマルチプレクサ１５２を通って提供される。ラッチ１５４はバックグラウンド部の配置（コンフィギュレーション）からデータを受取るためにコンフィギュレーション・バスに接続される。マルチプレクサ１５６はスレーブ・ラッチ１５８への入力を選択するために使用される。本システムへバックグラウンド配置メモリを使用することにより、本発明におけるシステムの迅速な動作が実現される。
【００３８】
［００６３]  図１８のメモリ要素は、多機能の格納要素を提供するマルチプレクサによって単一のスレーブ・ラッチを共有する複数のマスター・ラッチを有する。スレーブ・ラッチの共有により、さらに顕著なスペースの節約が実現される（およそ２５％）。これは、多数のメモリ要素を利用するシステムにおいて特に明白である。格納要素の設計は、配置ビットが格納要素に希にしかロードされないという事実に基づく。したがって、配置ビット・ストリームの信号に結合された各マスター・ラッチのためにスレーブ・ラッチをそれぞれ有する代わりに、本発明に従えば、配置ビット・ストリームの信号に結合されたマスター・ラッチは別のマスター・ラッチとそのスレーブ・ラッチを共有する。従って、２つまたはそれ以上のマスター・ラッチが単一のスレーブ・ラッチを共有する。マルチプレクサは、マスター・ラッチと単一のスレーブ・ラッチとの間で結合され、マスター・ラッチがどのスレーブ・ラッチに結合されるかを選択する。
【００３９】
［００６４]  ある実施例においては、１つのマスター・ラッチの入力に格納要素の機能性を頻繁に要求する信号が結合され、別のマスター・ラッチの入力へは、頻繁ではない方式で格納要素の機能性を要求する信号が結合される。第１マスター・ラッチは、データ経路信号へ、第２マスター・ラッチは配置ビット信号に結合される。データ経路信号がスレーブ・ラッチに渡されるとき、データ経路パイプラインをステージへ分割する。配置ビット・ストリーム信号がスレーブ・ラッチに渡されるとき、格納要素は配置ビットを格納するために機能する。別の実施例では、あるマスター・ラッチはデータ経路信号に結合され、あるマスター・ラッチ以外は配置ビット信号に結合され、そしてマスター・ラッチ出力のすべては、マルチプレクサに結合され、マスター・ラッチから共有されるスレーブ・ラッチまで信号の１つを選択し渡すために使用される。
【００４０】
［００６５]  図１８において：
・マスター・ラッチは「ＲＥＳＥＴ」または「ＩＮＩＴ」でリセットされる。
・スレーブ・ラッチは「ＲＥＳＥＴ」でのみリセットされる。
・mux Aは配置（コンフィギュレーション）が起動している場合は常に、コンフィギュレーション経路を選択する。（さらに選択されている特別のスライスによって適格性が与えられる）。
・mux Bはarcが書込みを行っているとき、arcバスを選択する。（さらに対応するarcアドレスのデコードすることにより適格性が与えられる。arcマップに関しては、ＡＲＣ追加仕様書を参照すること。）
・マスター・ラッチは、クロックが低の間、透明（トランスペアレント）である。
・スレーブ・ラッチは、クロックが高の間、透明である。
・ｌａｔｐｉｐｅ  ０がイネーブルとなるか、そのレジスタへのarc書込みが生じているとき、マスター・ラッチ０は透明である。
・コンフィギュレーション・ローディングがアクティブとなり、その対応するコンフィギュレーション・アドレスがデコードされるとき、マスター・ラッチ１は透明である。
・スレーブ・ラッチは、
１．コンフィギュレーションがこのスライスにアクティブであるか、または、
２．arcがこのレジスタへ書込むか、または、
３．制御からのｌａｔｐｉｐｅ信号が高であるとき、透明である。
・このセットアップは、コンフィギュレーションおよびarc書込みが同時に起こらないという仮定の下にある。それが起こる場合、コンフィギュレーションはより高いプライオリティを有する。
【００４１】
［００６６]  本発明の別の実施例は、本発明の可変遅延ユニットに関するものである。可変遅延ユニットは、レジスタへ送られる第１ユニットおよびレジスタをバイパスする第２入力を受取るマルチプレクサからなる。このようにして、可変遅延は実行される。図３の再配置可能な機能ユニットの中で、マルチプレクサ６８へ接続されたレジスタ６０、マルチプレクサ７０から接続されるレジスタ６２、マルチプレクサ９２に接続されるレジスタ８８、マルチプレクサ９４に接続されるレジスタ９０、およびマルチプレクサ７２に接続されるレジスタ７４は、そのような可変遅延を実行することができる。マルチプレクサは、遅延またはバイパス信号を選択することができる、すなわち、遅延信号はフリップフロップのような遅延素子を経由する。
【００４２】
［００６７]  フレキシブルな適応性を有する遅延素子は、入力信号に結合した入力およびマルチプレクサの第１入力に結合された出力を具備する格納装置（例えばフリップフロップ、ラッチ）を含む。マルチプレクサの別の入力は入力信号に結合される。その結果、マルチプレクサの第１入力は入力信号に結合され、マルチプレクサの第２入力は、格納装置から提供される量だけ遅れた入力信号へ結合される。その後、選択信号は、遅延信号または非遅延信号のいずれかを選択するために使用される。
【００４３】
［００６８]  図１９は、後方部前方部配置の別の実施例を示す。
【００４４】
［００６９]  本発明は、先の特許出願である、1999年５月７日に出願された発明者Hsinshih Wangによるシリアル番号09/307,072（代理人ドケット番号032001-014）の「行動性データ伝送および受信のための高性能データ経路ユニット（A HIGH PERFORMANCE DATA PATH UNIT FOR BEHAVIOAL DATA TRANSMISSION AND RECEPTION）」、1999年９月23日に出願された発明者Shaila Hanrahan，Christopher E．Phillipsによるシリアル番号09/401,194（代理人ドケット番号032001-016）の「データ経路フローを可能にするための制御組織（CONTROL FABRIC FOR ENABLING DATA PATH FLOW）」、同様に1999年９月23日に出願された発明者Shaila Hanrahan，Christopher E. Phillipsによるシリアル番号09/401,312代理人ドケット番号032001-035）の「再配置可能なチップ上の機能ブロックのための配置ステート・メモリ（CONFIGURATION
STATE MEMORY FOR FUNCTIONAL BLOCKS ON A RECONFIGURABLE CHIP）」を参考として含める。
【００４５】
［００７０]  バーモント実施例
【００４６】
［００７１]  図２０は、再配置可能な機能ユニットまたはデータ経路ユニットの最後の実施例を図示する。この実施例では、付加的なレジスタおよびマルチプレクサがシフタの前のＢ入力経路加えられる。さらに、入力マルチプレクサがわずかに修正される。入力マルチプレクサは図２１に関して示される。
【００４７】
［００７２]  図２２は、図１９の新しい実施例のためのシフタ・モード表を図示する。
【００４８】
［００７３]  図２３は、図２２の新しいモードの実行を図示する。
【００４９】
［００７４]  図２４は、本発明のシステムで使用するためのターボ・ルックアップ表を図示する。ターボ・ルックアップ表は、対数のフォーマットで格納されたデータ加算に役立つ。これは多くの通信システムに役立つ。１つの先行実施例では、対数フォーマットで格納されたデータの乗算を行なうために、データは、データの指数関数的な展開を行なうことにより通常のフォーマットに変換されなければならない。指数関数的に拡張したデータがともに加えられ、次に、結合した情報は対数フォーマットに変換される。好適な実施例では、ターボ・ルックアップ表は、補正係数の加算の推定を求める中で使用される。この推定は、ＡとＢの最大値の値をＡプラスＢの加算の値の第１推定として使用する。ＡマイナスＢである差の絶対値はターボ・ルックアップ表への入力として使用され、ＡまたはＢの最大値に加えるための補正係数を提供する。この補正係数をＡまたはＢの最大値へ加えることにより、比較的正確な推定が生成される。ターボ・ルックアップ表はＡと同数の入力ビットを有する必要がないことに注意すること。好適な実施例では、ほんの数ビットの精度が使用される。ＡマイナスＢの大きさが比較的大きい場合、合計値はＡまたはＢの最大値と大きく異ならない。例えば、１，０００，０００と０．１の加算はおよそ１，０００，０００である。１，０００，０００を１，０００，０００に加算することは、その最大値を２倍に匹敵する。
【００５０】
［００７５]  付録ＩＩおよびＩＩＩは、さらに再配置可能な機能ユニットのバーモント実施例を図示する。
【００５１】
［００７６]  本発明は、その精神または文言から外れずに、他の特定の形式で実行することができることが、技術における通常の知識を有する者によって評価されるであろう。したがって、ここに示された実施例は、実例であって限定的なものでないことがすべての点で了解される。発明の範囲は、前述の記述ではなく添付された請求項によって示され、また、それの均等の意味および範囲内に入る変更はすべて、ここに包含されるように意図される。
付録１
1.9 オペコードの詳細
2004531149.tif 000004
2004531149.tif 000005
2004531149.tif 000006
2004531149.tif 000007
2004531149.tif 000008
2004531149.tif 000009
2004531149.tif 000010
2004531149.tif 000011
【００５２】
【表１】
2004531149.tif 000012
【００５３】
【表２】
2004531149.tif 000013
【００５４】
【表３】
2004531149.tif 000014
【００５５】
【表４】
2004531149.tif 000015
【００５６】
【表５】
2004531149.tif 000016
【００５７】
【表６】
2004531149.tif 000017
【００５８】
【表７】
2004531149.tif 000018
【００５９】
【表８】
2004531149.tif 000019
【００６０】
【表９】
2004531149.tif 000020
【００６１】
【表１０】
2004531149.tif 000021
【００６２】
【表１１】
2004531149.tif 000022
【００６３】
【表１２】
2004531149.tif 000023
【００６４】
【表１３】
2004531149.tif 000024
【００６５】
【表１４】
2004531149.tif 000025
【００６６】
【表１５】
2004531149.tif 000026
【図面の簡単な説明】
【００６７】
【図１】[００１２]   図１は、本発明の一実施例である再配置可能なチップの全体図である。
【図２】[００１３]   図２は、本発明の一実施例である再配置可能な機能ユニットの概略図である。
【図３】[００１４]   図３は、本発明の一実施例である再配置可能な機能ユニットのダイヤグラムである。
【図４】[００１５]   図４は、本発明の実施例と共に使用することができる乗算器ユニットのダイヤグラムである。
【図５】[００１６]   図５は、データ経路ユニット間の相互接続を図示し、図１中で示される再配置可能な機能ユニットにおける１つのスライスのダイヤグラムである。
【図６】[００１７]   図６は、データ経路ユニットと水平・垂直バス・ラインとの関係を図示するダイヤグラムである。
【図７】[００１８]   図７は、１つのタイル中のデータ経路ユニットから別のタイル中のデータ経路ユニットへの相互接続を図示するダイヤグラムである。
【図８】[００１９]   図８は、本発明の一実施例であるデータ経路ユニットとローカル・システム・メモリとの相互接続を図示するダイヤグラムである。
【図９】[００２０]   図９は、機能ブロック・データ・ユニットのための配置情報の命令を導出するステート・マシンおよび機能ブロック配置メモリを図示するダイヤグラムである。
【図１０Ａ】[００２１]   図１０Ａは、本発明のステート・マシンの相互接続、配置ステート・メモリおよびデータ経路ユニットを図示するダイヤグラムであり、データ経路ユニットのための命令と命令フィールドを示す。
【図１０Ｂ】[００２２]   図１０Ｂは、少なくとも命令の一部のために、デコーダを使用するデータ経路ユニットを図示するダイヤグラムである。
【図１１】[００２３]   図１１は、本発明の一実施例として、データ経路ユニットでのコントロール・システム配置メモリを図示するダイヤグラムである。
【図１２】[００２４]   図１２は、本発明の一実施例に使用される相互接続論理ユニットのダイヤグラムである。
【図１３Ａ】[００２５]   図１３Ａは、ＡＬＵ用の命令の部分を図示するチャートである。
【図１３Ｂ】図１３Ｂは、ＡＬＵ用の命令の部分を図示するチャートである。
【図１４】[００２６]   図１４は、本発明の一実施例であるシステムのためのフラグを図示するダイヤグラムである。
【図１５】[００２７]   図１５は、シフタのためのシフト・モードを図示するダイヤグラムである。
【図１６】[００２８]   図１６は、シフタの一実施例である命令のダイヤグラムである。
【図１７】[００２９]   図１７は、図１６のシフタの動作を図示するダイヤグラムである。
【図１８】[００３０]   図１８は、本発明の一実施例である複数のマスター・ラッチを使用する論理システムのダイヤグラムである。
【図１９】[００３１]   図１９は、本発明の一実施例であるバックグラウンド面およびフォアグラウンド面のラッチを図示するダイヤグラムである。
【図２０】[００３２]   図２０は、本発明の一実施例において、データ経路のための再配置可能な機能ユニットの一実施例であるダイヤグラムである。
【図２１】[００３３]   図２１は、図２０のシステムのための入力マルチプレクサのダイヤグラムである。
【図２２】[００３４]   図２２は、本発明の一実施例であるシフタのためのシフト・モードのダイヤグラムである。
【図２３】[００３５]   図２３は、本発明の一実施例であるシフタのためのいくつかのシフト・モードを図示するダイヤグラムである。
【図２４】[００３６]   図２４は、本発明の一実施例であるターボ・ルックアップ・テーブルの実行を図示するダイヤグラムである。
【図１】
2004531149.tif 000027
【図２】
2004531149.tif 000028
【図３】
2004531149.tif 000029
【図４】
2004531149.tif 000030
【図５】
2004531149.tif 000031
【図６】
2004531149.tif 000032
【図７】
2004531149.tif 000033
【図８】
2004531149.tif 000034
【図９】
2004531149.tif 000035
【図１０Ａ】
2004531149.tif 000036
【図１０Ｂ】
2004531149.tif 000037
【図１１】
2004531149.tif 000038
【図１２】
2004531149.tif 000039
【図１３Ａ】
2004531149.tif 000040
【図１３Ｂ】
2004531149.tif 000041
【図１４】
2004531149.tif 000042
【図１５】
2004531149.tif 000043
【図１６】
2004531149.tif 000044
【図１７】
2004531149.tif 000045
【図１８】
2004531149.tif 000046
【図１９】
2004531149.tif 000047
【図２０】
2004531149.tif 000048
【図２１】
2004531149.tif 000049
【図２２】
2004531149.tif 000050
【図２３】
2004531149.tif 000051
【図２４】
2004531149.tif 000052
【国際公開パンフレット】
2004531149.tif 000053
2004531149.tif 000054
2004531149.tif 000055
2004531149.tif 000056
2004531149.tif 000057
2004531149.tif 000058
2004531149.tif 000059
2004531149.tif 000060
2004531149.tif 000061
2004531149.tif 000062
2004531149.tif 000063
2004531149.tif 000064
2004531149.tif 000065
2004531149.tif 000066
2004531149.tif 000067
2004531149.tif 000068
2004531149.tif 000069
2004531149.tif 000070
2004531149.tif 000071
2004531149.tif 000072
2004531149.tif 000073
2004531149.tif 000074
2004531149.tif 000075
2004531149.tif 000076
2004531149.tif 000077
2004531149.tif 000078
2004531149.tif 000079
2004531149.tif 000080
2004531149.tif 000081
2004531149.tif 000082
2004531149.tif 000083
2004531149.tif 000084
2004531149.tif 000085
2004531149.tif 000086
2004531149.tif 000087
2004531149.tif 000088
2004531149.tif 000089
2004531149.tif 000090
2004531149.tif 000091
2004531149.tif 000092
2004531149.tif 000093
2004531149.tif 000094
2004531149.tif 000095
2004531149.tif 000096
2004531149.tif 000097
2004531149.tif 000098
2004531149.tif 000099
2004531149.tif 000100
2004531149.tif 000101
2004531149.tif 000102
2004531149.tif 000103
2004531149.tif 000104
2004531149.tif 000105
2004531149.tif 000106
2004531149.tif 000107
2004531149.tif 000108
2004531149.tif 000109
2004531149.tif 000110
2004531149.tif 000111
2004531149.tif 000112
2004531149.tif 000113
2004531149.tif 000114
2004531149.tif 000115
2004531149.tif 000116
2004531149.tif 000117
2004531149.tif 000118
2004531149.tif 000119
2004531149.tif 000120
2004531149.tif 000121
2004531149.tif 000122
2004531149.tif 000123
2004531149.tif 000124
2004531149.tif 000125
2004531149.tif 000126
【国際調査報告】
2004531149.tif 000127
2004531149.tif 000128
2004531149.tif 000129