JP3948494B2 - プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ - Google Patents
プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ Download PDFInfo
- Publication number
- JP3948494B2 JP3948494B2 JP53275396A JP53275396A JP3948494B2 JP 3948494 B2 JP3948494 B2 JP 3948494B2 JP 53275396 A JP53275396 A JP 53275396A JP 53275396 A JP53275396 A JP 53275396A JP 3948494 B2 JP3948494 B2 JP 3948494B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- data
- microprocessor
- semiconductor chip
- programmable logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 239000004065 semiconductor Substances 0.000 claims 10
- 239000000872 buffer Substances 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17704—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Logic Circuits (AREA)
Description
発明の分野
本発明はマイクロプロセサに関するものであって、特に、プログラム可能論理装置によってアクセス可能なレジスタを具備するマイクロプロセサに関するものである。
関連技術の説明
マイクロプロセサは当該技術において公知である。図1は演算論理ユニット(ALU)ブロック101と制御ユニット103とを有するマイクロプロセサを具備するコンピュータ100の従来の形態を示している。ALUブロック101は、入力/出力(I/O)装置102及びメモリ104によって供給されるデータを処理する。I/O装置102は出カバス109a及び入力バス109bを介してユーザ又は周辺装置(いずれも図1には示していない)と通信を行う。1つのコンピュータにおいては、I/O装置102はキーボード又はフィールドプログラマブルゲートアレイ(FPGA)(図3を参照して更に詳細に説明する)と通信を行う。メモリ104は、典型的に、コンピュータプログラムを書込むための例えば電気的にプログラム可能なリードオンリメモリ(EPROM)セル等の非揮発性メモリセルを有すると共に、ALUブロック101によって発生されるデータに対する格納を与える例えばランダムアクセスメモリ(RAM)セル等の揮発性メモリセルを有している。コンピュータプログラムにおいて供給される命令に依存する制御ユニット103は、ALUブロック101、メモリ104、I/O装置102の動作を、夫々、バス111A/111B、105A/105B、108A/108Bを介して制御を行う。
図2を参照すると、ALUブロック101は、典型的に、ALU112と、レジスタファイル114と、マルチプレクサ121と、ラッチ113A,113B,113Cとを有している。バス111A上の制御器103(不図示)からのアドレスがレジスタファイル114の入力ポート115Aへ供給され、その際にクロック信号において出力信号YAを選択する。同様に、バス111B上の制御器103からの別のアドレスもレジスタファイル114の入力ポート115Bへ供給され、その際に同一のクロック信号において第二出力信号YBを選択する。このように、出力信号YA及びYBが、夫々、出力線118A及び118B上においてレジスタファイル114の出力ポートにおいて同時的に与えられる。ラッチ113A及び113Bは、夫々、出力線118A及び118BとALU112との間に結合されている。従って、継続的にそれらの入力信号をサンプルし且つそれらのイネーブル状態においてレジスタファイル114へ供給されるクロック信号とは独立的にそれらの入力信号に応答してそれらの出力信号を変化させるラッチ113A及び113Bは、出力信号YA及びYBをALU112へ転送する。マルチプレクサ121は、ALU112から出力信号、ライン106Aを介してメモリ104からの出力信号、又はライン107Bを介してI/O装置102からの出力信号のいずれかをラッチ113Cへ転送すべくプログラムされている。ラッチ113Cは出力信号を夫々バス107A及び106Bを介してI/O装置102及びメモリ104へ供給する。注意すべきことであるが、ラッチ113Cは、更に、典型的に、バッファしたフィードバック信号をライン119上のバッファ120を介してレジスタファイル114のデータ入力ポートDINへ供給する。
従来の縮小命令セットコンピュータ(RISC)プロセサにおいては、1つの操作は3つの機械操作サイクル(以後、期間と呼ぶ)を必要とする。これらの期間は、読取期間、ALU稼動期間、及び書込期間である。例えば、読取期間の期間中、制御ユニット103(図1)はメモリ104から1つの命令を検索し且つその命令のアドレス部分をバス111A又はバス111Bを介してレジスタファイル114(図2)へ転送して、出力線118A/118B上にオペランドを検索させる。ALU稼動期間の期間中、その命令によって指定された操作がALU112によって実行される。最後に、書込期間の期間中に、その結果がフィードバック線119及びデータ入力ポートDINを介してレジスタファイル114内に格納される。注意すべきことであるが、データ書込アドレスは該命令の一部として含まれており、且つ、典型的に、必要とされるまで保存される。
これらの読取期間、ALU稼動期間、及び書込期間はオーバーラップしている。例えば、1個のレジスタは、1つの期間の半分において書込操作を実行し且つその期間の他の半分において読取操作を実行することが可能である。従って、論理的帰結として、期間は特定のクロックサイクルに対応するものではない。アドレスは必要に応じて制御ユニット103からバス111A又は111B上に供給される。
レジスタファイル114に対する1つの典型的な命令は、第一レジスタ内の値を第二レジスタ内の値へ加算し(いずれのレジスタも図示していない)、次いでその加算結果をレジスタファイル114の第二レジスタ内へ入れることである。このように、ALUブロック101はアキュムレータとして動作する。一方、ラッチ113C内の値は、出力バス107Aを介して、例えばFPGA等のI/O装置102へ書込まれる。従って、1つの命令はデータを移動させることが必要とされ、一方別の命令はその結果を検索することが必要とされ、その際にマイクロプロセサ及びI/O装置インターフェースにおいてかなりの遅延を導入する。
従って、マイクロプロセサとI/O装置との間のインターフェースにおいて命令及び関連する遅延を最小とする構成に対する必要性が発生している。
発明の要約
本発明によれば、プログラム可能論理装置及びマイクロプロセサが同一のチップ上に形成されている。1実施例においては、プログラム可能論理装置はコンフィギャラブル即ち形態特定可能な論理ブロック(CLD)を具備するフィールドプログラマブルゲートアレイ(FPGA)である。マイクロプロセサの少なくとも1つの関連するレジスタが該FPGA内に分散されている。該分散レジスタは、アーキテクチュアの観点からはマイクロプロセサの一部に留まるものであるが、FPGA内の少なくとも1つのCLBによってアクセスすることが可能である。更に、各分散レジスタはFPGA内の特定のコンフィギャラブル論理ブロックと関連しているので、該コンフィギャラブル論理ブロック内の論理機能は該分散レジスタを介してマイクロプロセサにとって効果的に使用可能である。従って、該分散レジスタはFPGA内の論理とマイクロプロセサとの間のブリッジとして動作する。
1実施例においては、分散レジスタは複数個のDフリップフロップを有している。各フリップフロップはその入力信号をサンプルし且つマイクロプロセサによって供給される制御用のクロック信号の上昇端においてその出力信号を変化させる。フリップフロップの出力端子は第一複数個のトライステートバッファへ結合している。分散レジスタと関連している第一デコーダが、第一アドレスバス上に供給された信号が該分散レジスタを識別するアドレスと一致するか否かを検知する。特に、第一デコーダが該分散レジスタのアドレスと一致する第一アドレスバス上の信号を検知すると、第一デコーダは該第一複数個のトライステート出力バッファをイネーブル即ち動作可能状態とさせ、その際に該複数個のDフリップフロップの格納されているレジスタ値を第一データバス上に供給する。第一アドレスバス及び第一データバスは、該マイクロプロセサ及びFPGAへ結合しているバス構成体の一部を形成している。1実施例においては、該バス構成体は該FPGAの相互接続マトリクスとは別個に形成される。
本発明によれば、該第一データバスは、マイクロプロセサへ出力信号を供給することに加えて、更に、入力バスとして作用する。特に、所定の信号が第一アドレスバス上に供給されると、該第一デコーダは該第一複数個のトライステートバッファをディスエーブル即ち動作不能状態とさせ、且つ第二デコーダが該フリップフロップのクロックイネーブル端子を活性化させ、その際に第一データバス上のデータをこれらのフリップフロップ内に書込むことを可能とさせる。
更に、本発明によれば、該フリップフロップの出力端子は、更に、該FPGA内の少なくとも1つのコンフィギャラブル論理ブロックへ結合している。このように、本発明の1つの利点は、分散レジスタの出力信号が任意の所定のコンフィギャラブル論理ブロックに対して常に直接的に使用可能であるということである。この実施例においては、これらの出力線はFPGAの相互接続マトリクスの一部として形成されている。
従って、第一データバス及び該フリップフロップの出力線は、該分散レジスタがコンフィギャラブル論理ブロックに対して完全にアクセス可能であることを確保している。このように、FPGAはマイクロプロセサへのローカル即ち局所的な接続が効果的に設けられている。このローカル接続は、高速のマイクロプロセサ/FPGAインターフェースを確保している。何故ならば、マイクロプロセサからの命令は同時的にコンフィギャラブル論理ブロックへも供給されるからである。同様に、コンフィギャラブル論理ブロック内に設けられる論理機能は、1クロックサイクル内において(即ち、第一及び第二デコーダによって決定される)マイクロプロセサへ供給される。
本発明の別の実施例においては、フリップフロップの出力端子が第二複数個のトライステートバッファへ結合されている。第三デコーダが、分散レジスタのアドレスと一致する第二アドレスバス上の信号を検知すると、該第三デコーダは該第二複数個のトライステートバッファをイネーブルさせ、その際に該複数個のフリップフロップの格納されているレジスタ値を第二データバス上に供給する。該第二アドレスバス及び第二データバスも上述したバス構成体の一部を形成している。本発明の更にその他の実施例においては、上述したバス構成体がFPGA相互接続マトリクスの一部を形成する。
【図面の簡単な説明】
図1はマイクロプロセサを具備するコンピュータの従来の形態を示している。
図2は関連するレジスタファイルを具備する従来のALUブロックを示している。
図3は複数個のコンフィギャラブル(形態特定可能な)論理ブロックを具備するフィールドプログラマブルゲートアレイ(FPGA)を示している。
図4は例示的なコンフィギャラブル論理ブロックを示している。
図5はマイクロプロセサと複数個の分散レジスタとを有する本発明に基づくFPGAチップを示している。
図6は本発明に基づくレジスタブロックを示している。
図7は本発明の分散レジスタにおいて使用されているフリップフロップの1実施例を示している。
図8は分散レジスタへの接続用のコンフィギャラブル論理ブロックにおける種々の位置を示している。
図9は本発明の分散レジスタとALUブロックとの相互接続を示している。
図10は分散レジスタへ接続するための別のコンフィギャラブル論理ブロックにおける種々の位置を示している。
図面の詳細な説明
本発明によれば、マイクロプロセサとフィールドプログラマブルゲートアレイ(FPGA)とが同一のチップ上に形成されている。マイクロプロセサの所定のレジスタがFPGA内において分散されており、その際に従来のインターフェースと比較してマイクロプロセサ/FPGAインターフェースの動作速度を著しく増加させている。
FPGAは当該技術において公知である。図3はコンフィギャラブル即ち形態特定可能な論理ブロック301−1乃至301−9を具備する簡単化したFPGA300を例示している。各コンフィギャラブル論理ブロック(CLB)301は供給される入力信号CLB301に依存して複数個の論理機能のうちのいずれか1つを実行することが可能である(図4を参照して更に詳細に説明する)。複数個の制御信号(不図示)が相互接続マトリクス302をプログラムし、その際にCLB301−1乃至301−9を互いに且つI/Oパッド303に対しての相互接続を決定する。各I/Oパッド303は、相互接続マトリクス302を介して、外部パッケージピン(不図示)とCLB301の内部論理との間のインターフェースを与えている。1つの相互接続マトリクス302及びその動作の詳細な説明は1993年8月31日付で再発行された米国再発行特許第34,363号に与えられており、その全体を引用によって本明細書に取込む。
例示的なコンフィギャラブル論理ブロック301を図4に示してある。この実施例においては、コンフィギャラブル論理ブロック301は、ブール関数を実現するための32×1ルックアップテーブルと、2個のフリップフロップ402,403と、内部制御セクション(マルチプレクサ404−412、及びORゲート413を含む)とを有する組合わせ機能ブロック401を包含している。5つの論理変数入力信号A,B,C,D,E及びフィードバック信号QX,QY(夫々、フリップフロップ402,403から)が、該ルックアップテーブル内のどのアドレスが選択されるかを決定する。上述した内部制御セクションは、組合わせ機能ブロック401の出力信号、即ち信号F及びG、ラインDATA IN上のデータ信号、又はフリップフロップ402及び403からの出力信号がコンフィギャラブル論理ブロック301の出力信号X及びYとして供給されるか否かを決定する。特に、マルチプレクサ411及び412は、レジスタ402及び403からの同期信号を供給するか又は組合わせ機能ブロック401からの非同期信号を供給するかの間の選択を行う。マルチプレクサ404及び410は、フリップフロップ402及び403へ夫々供給された入力信号が、フィードバック線、DATA IN線、又は組合わせ機能ブロック401のF又はG出力端子(マルチプレクサ405及び406によって決定される)から派生されたものであるか否かを決定する。マルチプレクサ404及び410は図7を参照して更に詳細に説明する。コンフィギャラブル論理ブロック301及びその動作の詳細な説明はカリフォルニア95124、サンノゼ、2100ロジックドライブに居所を有するザイリンクス,インコーポレイテッドによって1994年に出版された「ザ・プログラマブル・ロジック・データ・ブック(The Programmable Logic Data Book)」(この全てを引用によって本明細書に取込む)の2−109乃至2−117頁に記載されている。
注意すべきことであるが、本発明をFPGA300及びコンフィギャラブル論理ブロック(CLB)301を参照して詳細に説明するが、本発明はその他のチップアーキテクチュア及びCLBコンフィギュレーション(形態)において実現することが可能である。例えば、本発明は上掲の「ザ・プログラマブル・ロジック・データ・ブック」の2−9乃至2−18頁及び2−187乃至2−199頁に夫々記載されており且つ例示されているザイリンクスXC4000(商標)ファミリィの装置(図10参照)及びXC2000(商標)ファミリィの装置のチップアーキテクチュア及びCLBコンフィギュレーション(形態)に対しても適用可能である。
図5は本発明に基づくFPGAチップ500の1実施例を示している。この実施例においては、FPGAチップ500はマイクロプロセサユニット506(それは、前述したように、制御ユニット及びALUブロック(いずれも簡単化のために示していない))、及びCLB504の中に分散されている複数個のレジスタブロック501A及び501Bを有している。従って、従来技術(図2)において示されているように、レジスタファイル114の全てをALU112の隣りに物理的に位置させる代わりに、レジスタファイルは複数個のレジスタブロックに分割されており、それらのレジスタブロックはチップ500全体にわたり分散されている。
レジスタブロック501A及び501Bをマイクロプロセサユニット506へ接続させるバス構成体502は、アドレスバスとデータバスとを有している(図6を参照して詳細に説明する)。本発明のこの実施例においては、バス構成体502のアドレスバス及びデータバスの両方がFPGA相互接続マトリクスとは別個に形成されており、一方、別の実施例においては、バス構成体502のアドレスバス及びデータバスの両方がFPGA相互接続マトリクスの一部を形成している。チップ500は、更に、チップ500の周辺部に位置されている複数個のI/Oブロック503を有している。I/Oブロック503は上掲した「ザ・プログラマブル・ロジック・データ・ブック」の2−107乃至2−108頁に詳細に記載されている。
図6は複数個のDフリップフロップ6011乃至601N(尚、Nは整数)を有する分散型レジスタブロック501の1実施例を示している。各フリップフロップ601は正エッジトリガ型Dフリップフロップであり、それは、D入力端子においてその入力信号をサンプル即ち採取し且つクロックパルス(CP)端子上に供給される制御用クロック信号の上昇端においてQ出力端子上のその出力信号を変化させる。この制御用クロック信号はライン610上のマイクロプロセサ506(図5)によって供給される。
分散型レジスタブロック501と関連するWRITE(書込)動作は、読取/書込(R/W)ライン621(図6)を介してマイクロプロセサ506から供給される信号によってトリガされる。例えば、本発明の1実施例においては、R/Wライン621上に供給される低信号は書込操作を表わす。このデコーダ605へ供給される低信号はそのデコーダがトライステートバッファ6021乃至602Nをディスエーブルさせることのプロンプトを与え、その際にレジスタ値がデータバス618Bへ転送されることを防止する。書込状態においてインバータ621Aによって供給される高信号を検知することに加えて、デコーダ606は、更に、レジスタブロック501のアドレスと一致するアドレスバス611B上の信号を検知する場合には、デコーダ606はフリップフロップ6011乃至601Nのクロックイネーブル(CE)端子に対してイネーブル信号を供給する。
図7は、マルチプレクサ702とスタンダードのBフリップフロップ701とを有するフリップフロップ6011のような例示的なフリップフロップ601の1実施例を示している。フリップフロップ6011がイネーブル信号を受取ると、マルチプレクサ702はデータライン618B1上に供給された信号をDフリップフロップ701のD入力端子へ転送する。この信号は、後に、ライン610上に供給される次のクロック信号においてフリップフロップ701のQ出力端子へ転送される。
対照的に、R/Wライン621(図6)上の高信号(読取動作であることを表わす)はインバータ621Aによって反転され且つデコーダ606へ供給される。この低信号は、デコーダ606に対して、フリップフロップ601のクロックイネーブル(CE)端子へディスエーブル信号を供給すべくプロンプトを与える。フリップフロップ601がライン705を介してデコーダ606からディスエーブル信号を受取ると(図7)、マルチプレクサ702は信号がライン618B1からDフリップフロップ701のD入力端子へロードされることを防止する。その代わりに、このディスエーブルされた形態においては、ライン610上の各クロック信号において、マルチプレクサ702がDフリップフロップ701のQ出力端子上の出力信号をフィードバックループ706を介してそのD入力端子へ転送する。従って、フリップフロップ701のQ出力端子上の信号は、ライン608B1上に供給される信号に拘らずに一定に留まる。再度図6を参照すると、デコーダ605が、分散型レジスタブロック501のアドレスと一致するアドレスバス611B上の信号を検知し且つライン621上の高信号を検知すると(READ即ち読取状態であることを表わす)、デコーダ605はトライステート出力バッファ6021乃至602Nをイネーブルさせ、その際にフリップフロップ6011乃至601NのQ出力端子上の格納されているレジスタ値をデータバス618B上に供給する(図8を参照して詳細に説明するマルチプレクサ6221乃至622Nが適宜プログラムされているものと仮定する)。従って、本発明においては、データバス618Bは、マイクロプロセサ506(図5)から分散型レジスタブロック501へ入力信号を供給することに加えて、更に、出力バスとして作用する。注意すべきことであるが、1実施例においては、初期的リセット期間中に、フリップフロップ6011乃至609Nがライン7091乃至709Nを介してそれらのリセット端子R上に供給される信号によってリセットされる。データバス618Bはマイクロプロセサ506へ結合されているバス構成体502(図5)の一部を形成する。アドレスバス611A及び611Bは、又、チップ500のバス構成体502の一部を形成している。
デコーダ604が分散型レジスタブロック501のアドレスと一致するアドレスバス611A上の信号を検知すると、デコーダ604はトライステート出力バッファ6031乃至603Nをイネーブルさせ、その際にフリップフロップ6011乃至601NのQ出力端子上の格納されているレジスタ値をデータバス618A上に供給する(未だにマルチプレクサ6221乃至622Nを無視する)。注意すべきことであるが、デコーダ604は、R/Wライン621上の信号に拘らずに、READ即ち読取状態において動作する。データバス618Aはマイクロプロセサ506へ結合しているバス構成体502(図5)の一部を形成する。
図9は、ALUブロック901の分散型レジスタブロック501(図6)に対する例示的な相互接続を示している。特に、制御器103(図1)からのバス111A及び111Bは夫々バス611A及び611Bへ信号を転送する。従って、バス111A及び111Bはバス構成体502(図5)の一部を形成する。バス611A及び611BはALUブロック901のみならず分散型レジスタブロック501へ信号を転送する。データバス618Aのラインのうちの1本、図9においてはライン618A1は、レジスタファイル114から出力線118Aへ結合している。同様に、データバス618Bのラインのうちの1本、図9においてはライン618B1はレジスタファイル114から出力線118Bへ結合している。データバス618B(図6を参照して詳細に説明する)の双方向特性のために、ライン618B1は、更に、ALUブロック901のフィードバックライン119へ結合している。この実施例においては、トライステートバッファ920A乃至920Cは、夫々、ライン118B,618B1,118Aへの信号の転送を選択的に可能とさせる。制御ユニット103(図1)はトライステートバッファ920A乃至920Cの動作を制御する。
再度図6を参照すると、フリップフロップ6011乃至601Nの夫々の出力線6091乃至609NはFPGAチップ500(図5)上の少なくとも1個のCLB504へ結合している。この実施例においては、出力線6091乃至609Nは相互接続マトリクス302(図3)の一部を形成しており、一方1本の出力線609が1個のCLB504(図8を参照して詳細に説明する)へ与えられている。従って、本発明の1つの利点は、分散型レジスタブロック501の出力信号は常時所定のCLB504(図5)に対して与えられており且つその後に汎用相互接続体を介して任意のCLBへ与えられるということである。従って、データバス618Bのライン及び出力線609は、分散型レジスタブロック501が局所的にCLB504に対してアクセス可能であることを確保している。このように、FPGAアレイは、マイクロプロセサ506への高速接続が効果的に与えられている。この高速接続は、高速のマイクロプロセサ/FPGAインターフェースを確保している。何故ならば、マイクロプロセサ506からの信号はCLB504に対して同時的に与えられるからである。同様に、CLB504において与えられる論理機能は1クロックサイクル内において(即ち、デコーダ604,605,606によって決定される)マイクロプロセサ506へ供給される。
本発明の1実施例においては、FPGA及びマイクロプロセサは非同期的であり、即ち異なるクロックを使用する。従って、マイクロプロセサクロックを使用してマイクロプロセサによってレジスタブロック501へ供給されるデータが、実際に、レジスタブロック501によって受取られたことを表わす「ハンドシェーク」に対する必要性が発生する。フリップフロップ612は、フリップフロップ601によって受取られるのと同一のクロックイネーブル信号及びクロックパルス信号を受取る。然しながら、フリップフロップ601と異なり、フリップフロップ612はそのD入力端子上において一定の論理1を受取り且つFPGA論理及びマイクロプロセサに対して信号FLAGを供給する。従って、フリップフロップ612のQ出力端子上に供給される論理1は、マイクロプロセサによって供給されるデータがレジスタブロック501によって受取られたことを表わす。このハンドシェークを完了するため及び次のデータ転送の準備をするために、FPGA論理はフリップフロップ612に対して信号RESETを供給し、Q出力端子上に格納されている信号の値を0へリセットさせる。
図8は分散型レジスタ501(図6)に対して接続を与えることの可能なコンフィギャラブル論理ブロック301における位置を例示している。特に、陰線区域800はデータバス618B又は出力線6091乃至609Nのいずれかへ結合させることの可能な論理要素を表わしている。例えば、1つのコンフィギュレーション即ち形態においては、フリップフロップ402及び403のQ出力端子のうちの少なくとも1つがマルチプレクサ622(図6)を介してデータバス618Bへ結合されている。別のコンフィギュレーション即ち形態においては、マルチプレクサ404,405,406,410,411又は412の出力端子又は組合わせ機能ブロック401のF及びG出力端子のうちの少なくとも1つがマルチプレクサ622(図6)を介してデータバス618Bへ結合している。更に別の形態においては、出力線609が組合わせ機能ブロック401の入力端子か又はマルチプレクサ404,405,406,410,411又は412(これらのマルチプレクサは2入力から3入力マルチプレクサへ形態を変化させる)のうちの1つの入力端子のいずれかへ結合されている。図10は別のコンフィギュレーション論理ブロック(ザイリンクス社XC4000(商標)ファミリィの装置に関連している)の簡単化したブロック線図を示しており、その場合に、陰線区域1000はデータバス618Bか又は出力線6091乃至609N(図6)のいずれかへ結合させることの可能な論理要素を表わしている。
注意すべきことであるが、1実施例においては、本発明におけるレジスタの1ビットがCLBと関連しており(その際に、CLBにおける1つのソース即ち供給源のみがレジスタへ接続するために選択されることを暗示している)、一方、その他の実施例においては、2ビットがCLBと関連している(その場合には、CLBにおける2つのソース即ち供給源がレジスタへ接続するために選択されることを暗示している)。
本発明は次のような利点を提供する。
1.マイクロプロセサは従来のマイクロプロセサよりも高速である。何故ならば、本発明に基づくマイクロプロセサは、単一の期間において、FPGA論理で実現されている特別化された複雑な命令を実行するからである。従って、プログラムはより少ない数の命令を有することとなり且つより少ない期間で実行される。
2.分散型レジスタの全てがマイクロプロセサ及びFPGAに対して同時的に使用可能であるので、操作を並列的に行なうことが可能である。
3.本マイクロプロセサはFPGAにおける論理をエミュレーションする能力を有している。従って、論理を実現するCLBを有する代わりに、ソフトウエアプログラムがFPGAからある入力信号を取り、それらをマイクロプロセサにおいて結合し、次いでその結果をFPGAへ戻すことが可能である。このように、本マイクロプロセサは、幾つかの関数発生器を置換することが可能であり、その際にFPGAチップ上のかなりの空間を節約する。
4.分散型レジスタは、マイクロプロセサと周辺装置との間においてより高速の通信(FPGA論理を介して)を与える。注意すべきことであるが、1実施例においては、周辺装置はFPGAにおいて実現される。
本発明の上述した実施例は単に例示的なものであって制限的なものではない。その他の実施例は本明細書及びそれと関連する図面を参照することにより当業者にとって自明なものである。本発明は添付の請求の範囲に記載されるものである。
Claims (8)
- 半導体チップにおいて、
プログラム可能論理装置、
制御ユニットと演算論理ユニット(ALU)とを有するマイクロプロセッサ、
レジスタファイル、
を有しており、前記レジスタファイルが前記マイクロプロセッサとは別の前記半導体チップの部分に設けられており且つ前記プログラム可能論理装置の少なくとも一部に隣接して設けられている1個又はそれ以上のレジスタを有しており、前記レジスタの各々はデータを格納し、前記制御ユニットが前記レジスタへデータを書込み、且つ前記レジスタによって格納されているデータは継続的に前記プログラム可能論理装置へ供給されることを特徴とする半導体チップ。 - 請求項1において、前記プログラム可能論理装置が複数個のコンフィギャラブル論理ブロック(CLB)を有しており、前記レジスタの各々は前記CLBの対応する一つへ結合されていることを特徴とする半導体チップ。
- 請求項2において、前記レジスタがプログラム可能相互接続資源により前記CLBへ結合されていることを特徴とする半導体チップ。
- 請求項2において、前記レジスタが専用相互接続資源により前記CLBへ結合されていることを特徴とする半導体チップ。
- 請求項1において、前記プログラム可能論理装置が前記制御ユニットへ信号を供給すべく結合されていることを特徴とする半導体チップ。
- 請求項1において、前記レジスタの各々が、更に、特定のレジスタと関連するアドレスを格納する書込デコーダを有しており、本チップが、更に、
前記制御ユニットを前記レジスタの各々の入力ポートへ接続する第1データバス、
前記制御ユニットを前記レジスタの各々の書込デコーダへ接続する第1アドレスバス、
を有しており、前記制御ユニットは、前記第1データバス上へデータを配置させ、前記レジスタへ書込イネーブル信号を供給し、且つ前記レジスタと関連するアドレスを前記第1アドレスバス上に配置させることにより、データをレジスタへ書き込むことを特徴とする半導体チップ。 - 請求項6において、前記第1データバスは、更に、前記ALUへ接続されており、且つ前記ALUは前記第1データバスを介して前記ALUから前記レジスタへ選択的にデータを転送させるドライバ回路を有していることを特徴とする半導体チップ。
- 請求項1において、更に、前記レジスタを介しての前記制御ユニットから前記プログラム可能論理装置へのデータ転送を調整するハンドシェーク回路を有していることを特徴とする半導体チップ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43096895A | 1995-04-28 | 1995-04-28 | |
US08/430,968 | 1995-04-28 | ||
PCT/US1996/005847 WO1996034346A1 (en) | 1995-04-28 | 1996-04-26 | Microprocessor with distributed registers accessible by programmable logic device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11504453A JPH11504453A (ja) | 1999-04-20 |
JP3948494B2 true JP3948494B2 (ja) | 2007-07-25 |
Family
ID=23709870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53275396A Expired - Lifetime JP3948494B2 (ja) | 1995-04-28 | 1996-04-26 | プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US6026481A (ja) |
EP (1) | EP0823091A1 (ja) |
JP (1) | JP3948494B2 (ja) |
WO (1) | WO1996034346A1 (ja) |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266725B2 (en) * | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) * | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
EP1329816B1 (de) * | 1996-12-27 | 2011-06-22 | Richter, Thomas | Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.) |
DE19654846A1 (de) * | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US9092595B2 (en) * | 1997-10-08 | 2015-07-28 | Pact Xpp Technologies Ag | Multiprocessor having associated RAM units |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
AU5805300A (en) | 1999-06-10 | 2001-01-02 | Pact Informationstechnologie Gmbh | Sequence partitioning in cell structures |
US6496971B1 (en) * | 2000-02-07 | 2002-12-17 | Xilinx, Inc. | Supporting multiple FPGA configuration modes using dedicated on-chip processor |
EP1342158B1 (de) | 2000-06-13 | 2010-08-04 | Richter, Thomas | Pipeline ct-protokolle und -kommunikation |
US6665766B1 (en) | 2000-08-14 | 2003-12-16 | Xilinx, Inc. | Adaptable configuration interface for a programmable logic device |
EP1417590A2 (en) * | 2000-10-02 | 2004-05-12 | Altera Corporation (a Delaware Corporation) | Programmable logic integrated circuit devices including dedicated processor components |
US8058899B2 (en) * | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
NZ508052A (en) * | 2000-11-09 | 2003-06-30 | Derek Ward | Programmable controller |
US20070299993A1 (en) * | 2001-03-05 | 2007-12-27 | Pact Xpp Technologies Ag | Method and Device for Treating and Processing Data |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US20090210653A1 (en) * | 2001-03-05 | 2009-08-20 | Pact Xpp Technologies Ag | Method and device for treating and processing data |
WO2005045692A2 (en) * | 2003-08-28 | 2005-05-19 | Pact Xpp Technologies Ag | Data processing device and method |
US20090300262A1 (en) * | 2001-03-05 | 2009-12-03 | Martin Vorbach | Methods and devices for treating and/or processing data |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9037807B2 (en) * | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US6605962B2 (en) * | 2001-05-06 | 2003-08-12 | Altera Corporation | PLD architecture for flexible placement of IP function blocks |
US7076595B1 (en) * | 2001-05-18 | 2006-07-11 | Xilinx, Inc. | Programmable logic device including programmable interface core and central processing unit |
EP1402382B1 (de) * | 2001-06-20 | 2010-08-18 | Richter, Thomas | Verfahren zur bearbeitung von daten |
US7996827B2 (en) * | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) * | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US7420392B2 (en) * | 2001-09-28 | 2008-09-02 | Xilinx, Inc. | Programmable gate array and embedded circuitry initialization and processing |
US6781407B2 (en) | 2002-01-09 | 2004-08-24 | Xilinx, Inc. | FPGA and embedded circuitry initialization and processing |
US6798239B2 (en) | 2001-09-28 | 2004-09-28 | Xilinx, Inc. | Programmable gate array having interconnecting logic to support embedded fixed logic circuitry |
US6996758B1 (en) | 2001-11-16 | 2006-02-07 | Xilinx, Inc. | Apparatus for testing an interconnecting logic fabric |
US6983405B1 (en) | 2001-11-16 | 2006-01-03 | Xilinx, Inc., | Method and apparatus for testing circuitry embedded within a field programmable gate array |
US6886092B1 (en) | 2001-11-19 | 2005-04-26 | Xilinx, Inc. | Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion |
US7577822B2 (en) * | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
AU2003214046A1 (en) * | 2002-01-18 | 2003-09-09 | Pact Xpp Technologies Ag | Method and device for partitioning large computer programs |
US8281108B2 (en) * | 2002-01-19 | 2012-10-02 | Martin Vorbach | Reconfigurable general purpose processor having time restricted configurations |
US6820248B1 (en) | 2002-02-14 | 2004-11-16 | Xilinx, Inc. | Method and apparatus for routing interconnects to devices with dissimilar pitches |
ATE402446T1 (de) | 2002-02-18 | 2008-08-15 | Pact Xpp Technologies Ag | Bussysteme und rekonfigurationsverfahren |
US6976160B1 (en) | 2002-02-22 | 2005-12-13 | Xilinx, Inc. | Method and system for controlling default values of flip-flops in PGA/ASIC-based designs |
US6754882B1 (en) | 2002-02-22 | 2004-06-22 | Xilinx, Inc. | Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC) |
US6693452B1 (en) | 2002-02-25 | 2004-02-17 | Xilinx, Inc. | Floor planning for programmable gate array having embedded fixed logic circuitry |
US7007121B1 (en) | 2002-02-27 | 2006-02-28 | Xilinx, Inc. | Method and apparatus for synchronized buses |
US6934922B1 (en) | 2002-02-27 | 2005-08-23 | Xilinx, Inc. | Timing performance analysis |
US6839874B1 (en) * | 2002-02-28 | 2005-01-04 | Xilinx, Inc. | Method and apparatus for testing an embedded device |
US7111217B1 (en) | 2002-02-28 | 2006-09-19 | Xilinx, Inc. | Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC) |
US7111220B1 (en) | 2002-03-01 | 2006-09-19 | Xilinx, Inc. | Network physical layer with embedded multi-standard CRC generator |
US7088767B1 (en) | 2002-03-01 | 2006-08-08 | Xilinx, Inc. | Method and apparatus for operating a transceiver in different data rates |
US7187709B1 (en) | 2002-03-01 | 2007-03-06 | Xilinx, Inc. | High speed configurable transceiver architecture |
US6961919B1 (en) | 2002-03-04 | 2005-11-01 | Xilinx, Inc. | Method of designing integrated circuit having both configurable and fixed logic circuitry |
US8914590B2 (en) * | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US20060075211A1 (en) * | 2002-03-21 | 2006-04-06 | Martin Vorbach | Method and device for data processing |
US20070011433A1 (en) * | 2003-04-04 | 2007-01-11 | Martin Vorbach | Method and device for data processing |
US6973405B1 (en) | 2002-05-22 | 2005-12-06 | Xilinx, Inc. | Programmable interactive verification agent |
US6772405B1 (en) | 2002-06-13 | 2004-08-03 | Xilinx, Inc. | Insertable block tile for interconnecting to a device embedded in an integrated circuit |
US7085973B1 (en) | 2002-07-09 | 2006-08-01 | Xilinx, Inc. | Testing address lines of a memory controller |
US7657861B2 (en) * | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
WO2004021176A2 (de) * | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
US7099426B1 (en) | 2002-09-03 | 2006-08-29 | Xilinx, Inc. | Flexible channel bonding and clock correction operations on a multi-block data path |
AU2003289844A1 (en) * | 2002-09-06 | 2004-05-13 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US7092865B1 (en) | 2002-09-10 | 2006-08-15 | Xilinx, Inc. | Method and apparatus for timing modeling |
EP1443418A1 (en) * | 2003-01-31 | 2004-08-04 | STMicroelectronics S.r.l. | Architecture for reconfigurable digital signal processor |
US7007264B1 (en) * | 2003-05-02 | 2006-02-28 | Xilinx, Inc. | System and method for dynamic reconfigurable computing using automated translation |
US7421014B2 (en) * | 2003-09-11 | 2008-09-02 | Xilinx, Inc. | Channel bonding of a plurality of multi-gigabit transceivers |
KR100520585B1 (ko) * | 2003-10-28 | 2005-10-10 | 주식회사 하이닉스반도체 | 불휘발성 강유전체 메모리 셀 및 이를 이용한 메모리 장치 |
US7112991B1 (en) * | 2003-12-24 | 2006-09-26 | Altera Corporation | Extended custom instructions |
DE102005005073B4 (de) * | 2004-02-13 | 2009-05-07 | Siemens Ag | Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen |
ATE412932T1 (de) * | 2004-09-03 | 2008-11-15 | Derek Ward | Verbesserungen an numerischen steuerungen und verwandten elektronischen geräten |
EP1849095B1 (en) * | 2005-02-07 | 2013-01-02 | Richter, Thomas | Low latency massive parallel data processing device |
US7420390B1 (en) * | 2006-01-09 | 2008-09-02 | Altera Corporation | Method and apparatus for implementing additional registers in field programmable gate arrays to reduce design size |
JP2009524134A (ja) | 2006-01-18 | 2009-06-25 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | ハードウェア定義方法 |
WO2008014493A2 (en) * | 2006-07-28 | 2008-01-31 | Drc Computer Corporation | Configurable processor module accelerator using a progrmmable logic device |
US9098302B2 (en) * | 2012-06-28 | 2015-08-04 | Intel Corporation | System and apparatus to improve boot speed in serial peripheral interface system using a baseboard management controller |
US9553590B1 (en) | 2012-10-29 | 2017-01-24 | Altera Corporation | Configuring programmable integrated circuit device resources as processing elements |
US9703697B2 (en) | 2012-12-27 | 2017-07-11 | Intel Corporation | Sharing serial peripheral interface flash memory in a multi-node server system on chip platform environment |
US9712186B1 (en) | 2014-04-18 | 2017-07-18 | Altera Corporation | Serial memory interface circuitry for programmable integrated circuits |
US10452392B1 (en) | 2015-01-20 | 2019-10-22 | Altera Corporation | Configuring programmable integrated circuit device resources as processors |
US10110233B2 (en) | 2016-06-23 | 2018-10-23 | Altera Corporation | Methods for specifying processor architectures for programmable integrated circuits |
US10482209B1 (en) | 2018-08-06 | 2019-11-19 | HLS Logix LLC | Field programmable operation block array |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US34363A (en) * | 1862-02-11 | Improvement in machinery for cleaning cotton | ||
US4706216A (en) * | 1985-02-27 | 1987-11-10 | Xilinx, Inc. | Configurable logic element |
US5142625A (en) * | 1985-06-12 | 1992-08-25 | Minolta Camera Kabushiki Kaisha | One-chip microcomputer including a programmable logic array for interrupt control |
US4878174A (en) * | 1987-11-03 | 1989-10-31 | Lsi Logic Corporation | Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions |
US5550782A (en) * | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
GB9223226D0 (en) * | 1992-11-05 | 1992-12-16 | Algotronix Ltd | Improved configurable cellular array (cal ii) |
US5361373A (en) * | 1992-12-11 | 1994-11-01 | Gilson Kent L | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US5500943A (en) * | 1993-11-02 | 1996-03-19 | Motorola, Inc. | Data processor with rename buffer and FIFO buffer for in-order instruction completion |
US5574942A (en) * | 1994-02-28 | 1996-11-12 | Intel Corporation | Hybrid execution unit for complex microprocessor |
US5574930A (en) * | 1994-08-12 | 1996-11-12 | University Of Hawaii | Computer system and method using functional memory |
US5742180A (en) * | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
US5892961A (en) * | 1995-02-17 | 1999-04-06 | Xilinx, Inc. | Field programmable gate array having programming instructions in the configuration bitstream |
US5737631A (en) * | 1995-04-05 | 1998-04-07 | Xilinx Inc | Reprogrammable instruction set accelerator |
US5748979A (en) * | 1995-04-05 | 1998-05-05 | Xilinx Inc | Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table |
-
1996
- 1996-04-26 EP EP96913201A patent/EP0823091A1/en not_active Withdrawn
- 1996-04-26 JP JP53275396A patent/JP3948494B2/ja not_active Expired - Lifetime
- 1996-04-26 WO PCT/US1996/005847 patent/WO1996034346A1/en not_active Application Discontinuation
-
1997
- 1997-11-04 US US08/964,262 patent/US6026481A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0823091A1 (en) | 1998-02-11 |
US6026481A (en) | 2000-02-15 |
JPH11504453A (ja) | 1999-04-20 |
WO1996034346A1 (en) | 1996-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3948494B2 (ja) | プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ | |
US5809281A (en) | Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM | |
US5600597A (en) | Register protection structure for FPGA | |
CA2313462C (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
US5652904A (en) | Non-reconfigurable microprocessor-emulated FPGA | |
US6362650B1 (en) | Method and apparatus for incorporating a multiplier into an FPGA | |
US6314550B1 (en) | Cascaded programming with multiple-purpose pins | |
US6066961A (en) | Individually accessible macrocell | |
US6278289B1 (en) | Content-addressable memory implemented using programmable logic | |
US6282627B1 (en) | Integrated processor and programmable data path chip for reconfigurable computing | |
US5315178A (en) | IC which can be used as a programmable logic cell array or as a register file | |
US6467009B1 (en) | Configurable processor system unit | |
US6803785B1 (en) | I/O circuitry shared between processor and programmable logic portions of an integrated circuit | |
JP3904493B2 (ja) | 半導体装置 | |
US5386155A (en) | Apparatus and method for selecting polarity and output type in a programmable logic device | |
WO1990002376A1 (en) | Circuitry for producing emulation mode in single chip microcomputer | |
KR20010020545A (ko) | 재구성 가능한 컴퓨팅을 위한 집적 프로세서 및프로그래머블 데이터 경로 칩 | |
US7454556B1 (en) | Method to program non-JTAG attached devices or memories using a PLD and its associated JTAG interface | |
US6460131B1 (en) | FPGA input output buffer with registered tristate enable | |
US6029236A (en) | Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM | |
US7358762B1 (en) | Parallel interface for configuring programmable devices | |
US7647485B2 (en) | Data processing system for debugging utilizing halts in a parallel device | |
US6327632B1 (en) | Adaptable I/O pins manifesting I/O characteristics responsive to bit values stored in selected addressable storage locations, each pin coupled to three corresponding addressable storage locations | |
JP4132516B2 (ja) | フィールド・プログラマブル・ゲートアレイ | |
JP3904072B2 (ja) | プログラマブル論理回路及びコンピュータシステム並びに回路の初期化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050830 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061024 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070124 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070410 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100427 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110427 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120427 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120427 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130427 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130427 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140427 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |