JP3948494B2 - プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ - Google Patents

プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ Download PDF

Info

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
Application number
JP53275396A
Other languages
English (en)
Other versions
JPH11504453A (ja
Inventor
ジェイ. ニュー,ベルナード
ジェイ.ジュニア ハーモン,ウイリアム
Original Assignee
ザイリンクス,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ザイリンクス,インコーポレイテッド filed Critical ザイリンクス,インコーポレイテッド
Publication of JPH11504453A publication Critical patent/JPH11504453A/ja
Application granted granted Critical
Publication of JP3948494B2 publication Critical patent/JP3948494B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent 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/3897Concurrent 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17704Logic 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)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (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)

  1. 半導体チップにおいて、
    プログラム可能論理装置、
    制御ユニットと演算論理ユニット(ALU)とを有するマイクロプロセッサ、
    レジスタファイル、
    を有しており、前記レジスタファイルが前記マイクロプロセッサとは別の前記半導体チップの部分に設けられており且つ前記プログラム可能論理装置の少なくとも一部に隣接して設けられている1個又はそれ以上のレジスタを有しており、前記レジスタの各々はデータを格納し、前記制御ユニットが前記レジスタへデータを書込み、且つ前記レジスタによって格納されているデータは継続的に前記プログラム可能論理装置へ供給されることを特徴とする半導体チップ。
  2. 請求項1において、前記プログラム可能論理装置が複数個のコンフィギャラブル論理ブロック(CLB)を有しており、前記レジスタの各々は前記CLBの対応する一つへ結合されていることを特徴とする半導体チップ。
  3. 請求項2において、前記レジスタがプログラム可能相互接続資源により前記CLBへ結合されていることを特徴とする半導体チップ。
  4. 請求項2において、前記レジスタが専用相互接続資源により前記CLBへ結合されていることを特徴とする半導体チップ。
  5. 請求項1において、前記プログラム可能論理装置が前記制御ユニットへ信号を供給すべく結合されていることを特徴とする半導体チップ。
  6. 請求項1において、前記レジスタの各々が、更に、特定のレジスタと関連するアドレスを格納する書込デコーダを有しており、本チップが、更に、
    前記制御ユニットを前記レジスタの各々の入力ポートへ接続する第1データバス、
    前記制御ユニットを前記レジスタの各々の書込デコーダへ接続する第1アドレスバス、
    を有しており、前記制御ユニットは、前記第1データバス上へデータを配置させ、前記レジスタへ書込イネーブル信号を供給し、且つ前記レジスタと関連するアドレスを前記第1アドレスバス上に配置させることにより、データをレジスタへ書き込むことを特徴とする半導体チップ。
  7. 請求項6において、前記第1データバスは、更に、前記ALUへ接続されており、且つ前記ALUは前記第1データバスを介して前記ALUから前記レジスタへ選択的にデータを転送させるドライバ回路を有していることを特徴とする半導体チップ。
  8. 請求項1において、更に、前記レジスタを介しての前記制御ユニットから前記プログラム可能論理装置へのデータ転送を調整するハンドシェーク回路を有していることを特徴とする半導体チップ。
JP53275396A 1995-04-28 1996-04-26 プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ Expired - Lifetime JP3948494B2 (ja)

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)

* Cited by examiner, † Cited by third party
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
ATE243390T1 (de) * 1996-12-27 2003-07-15 Pact Inf Tech Gmbh 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
WO2002013000A2 (de) 2000-06-13 2002-02-14 Pact Informationstechnologie Gmbh Pipeline ct-protokolle und -kommunikation
DE10081643D2 (de) * 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
US6496971B1 (en) * 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US6665766B1 (en) 2000-08-14 2003-12-16 Xilinx, Inc. Adaptable configuration interface for a programmable logic device
JP2004512716A (ja) * 2000-10-02 2004-04-22 アルテラ・コーポレイション 専用プロセッサ装置を含むプログラマブルロジック集積回路装置
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
US7444531B2 (en) * 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag 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
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
US20070299993A1 (en) * 2001-03-05 2007-12-27 Pact Xpp Technologies Ag Method and Device for Treating and Processing Data
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
US6798239B2 (en) 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US6781407B2 (en) 2002-01-09 2004-08-24 Xilinx, Inc. FPGA and embedded circuitry initialization and processing
US7420392B2 (en) * 2001-09-28 2008-09-02 Xilinx, Inc. Programmable gate array and embedded circuitry initialization and processing
US6983405B1 (en) 2001-11-16 2006-01-03 Xilinx, Inc., Method and apparatus for testing circuitry embedded within a field programmable gate array
US6996758B1 (en) 2001-11-16 2006-02-07 Xilinx, Inc. Apparatus for testing an interconnecting logic fabric
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
EP1483682A2 (de) * 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
US6820248B1 (en) 2002-02-14 2004-11-16 Xilinx, Inc. Method and apparatus for routing interconnects to devices with dissimilar pitches
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
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)
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
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
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)
US6839874B1 (en) * 2002-02-28 2005-01-04 Xilinx, Inc. Method and apparatus for testing an embedded device
US7088767B1 (en) 2002-03-01 2006-08-08 Xilinx, Inc. Method and apparatus for operating a transceiver in different data rates
US7111220B1 (en) 2002-03-01 2006-09-19 Xilinx, Inc. Network physical layer with embedded multi-standard CRC generator
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
EP1518186A2 (de) * 2002-03-21 2005-03-30 PACT XPP Technologies AG Verfahren und vorrichtung zur datenverarbeitung
WO2004088502A2 (de) * 2003-04-04 2004-10-14 Pact Xpp Technologies Ag Verfahren und vorrichtung für die datenverarbeitung
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
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
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
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
US20090031104A1 (en) * 2005-02-07 2009-01-29 Martin Vorbach 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 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US7856546B2 (en) * 2006-07-28 2010-12-21 Drc Computer Corporation Configurable processor module accelerator using a programmable 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)

* Cited by examiner, † Cited by third party
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
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
US5737631A (en) * 1995-04-05 1998-04-07 Xilinx Inc Reprogrammable instruction set accelerator

Also Published As

Publication number Publication date
WO1996034346A1 (en) 1996-10-31
EP0823091A1 (en) 1998-02-11
JPH11504453A (ja) 1999-04-20
US6026481A (en) 2000-02-15

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
US5944813A (en) FPGA input output buffer with registered tristate enable
CA2313462C (en) Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
US6175247B1 (en) Context switchable field programmable gate array with public-private addressable sharing of intermediate data
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
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
KR20010020545A (ko) 재구성 가능한 컴퓨팅을 위한 집적 프로세서 및프로그래머블 데이터 경로 칩
US7454556B1 (en) Method to program non-JTAG attached devices or memories using a PLD and its associated JTAG interface
JPH07177008A (ja) 改良されたプログラマブル論理セルアレイアーキテクチャ
WO2000022546A2 (en) Configurable processor system unit
US7313730B1 (en) Configuration logic for embedded software
US6460131B1 (en) FPGA input output buffer with registered tristate enable
US20080074142A1 (en) Routing for Microprocessor Busses
US6029236A (en) Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM
US7624209B1 (en) Method of and circuit for enabling variable latency data transfers
US7647485B2 (en) Data processing system for debugging utilizing halts in a parallel device
US5923894A (en) Adaptable input/output pin control
JP4132516B2 (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