JP3743487B2 - プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法 - Google Patents
プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法Info
- Publication number
- JP3743487B2 JP3743487B2 JP19996499A JP19996499A JP3743487B2 JP 3743487 B2 JP3743487 B2 JP 3743487B2 JP 19996499 A JP19996499 A JP 19996499A JP 19996499 A JP19996499 A JP 19996499A JP 3743487 B2 JP3743487 B2 JP 3743487B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- information
- circuit information
- programmable logic
- frame
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/17748—Structural details of configuration resources
-
- 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/17748—Structural details of configuration resources
- H03K19/17758—Structural details of configuration resources for speeding up configuration or reconfiguration
-
- 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/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Microcomputers (AREA)
Description
【発明の属する技術分野】
この発明は、例えばアプリケーションプログラムによる処理の一部分を分担するために、複数個の回路が順次に再構成されるように用いられる場合に好適なプログラマブル論理回路装置に関する。特に、プログラマブル論理回路装置の再構成時間を短縮する方法に関する。
【0002】
【従来の技術】
デジタル回路装置の分野において、フィールドプログラマブルゲートアレイ(FPGA)やプログラマブルロジックデバイス(PLD)などのプログラマブル論理回路装置が、特定用途向け集積回路(ASIC)を作成する前の試作デバイスとして、または、数週間から数ヶ月という長い作製期間を要するASICの代替デバイスとして使われてきた。また、最近では、回路装置作成後に仕様を変更したり、回路を修正することを可能にするために、プログラマブル論理回路装置が使われている。
【0003】
一般的なプログラマブル論理回路装置の構造を図22に示す。プログラマブル論理回路装置1は、回路情報を外部から読み込む回路情報入力制御部2と、読み込まれた回路情報に従って回路機能を実現するプログラマブル論理回路部3とから構成される。
【0004】
さらに、プログラマブル論理回路部3の詳細な構造は、図23に示すように、回路素子4と、回路素子4に接続するコンフィギュレーションメモリ5とから構成される。回路素子4は、入出力部、論理回路セル、配線部からなるが、この回路素子4の接続形態により、プログラマブル論理回路装置は、FPGA型とCPLD型とに分けられる。
【0005】
FPGA型のプログラマブル論理回路部3Aは、図24(A)に示すように、2次元格子状に配列された論理回路セル6Aが、配線部7Aにより相互に接続される。また、全体として矩形の配線部7Aの四辺に接続された入出力部8Aを介して外部と信号の入出力を行う。
【0006】
また、CPLD型のプログラマブル論理回路部3Bは、図24(B)に示すように、入出力部8Bと論理回路セル6Bが、ツリー構造状に配線部7Bに接続される。
【0007】
いずれの構造においても、プログラマブル論理回路装置1に読み込まれた回路情報は、回路情報入力制御部2によってコンフィギュレーションメモリ5に書き込まれる。コンフィギュレーションメモリ5に書き込まれた回路情報に従って、回路素子の機能と結線状態が決められる。この操作をプログラマブル論理回路装置の再構成またはコンフィギュレーションと呼ぶ。
【0008】
[リコンフィギュラブルコンピューティング技術の説明]
ところで、最近では、アプリケーションの処理に合わせた専用の処理回路を用いたハードウエア処理により、汎用プロセッサを用いたソフトウエア処理よりも高速な処理を実現するというリコンフィギュラブルコンピューティングの分野で、プログラマブル論理回路装置が活用され始めている。
【0009】
リコンフィギュラブルコンピューティングでは、アプリケーション処理で必要となる複数の処理回路の回路情報を外部記憶装置へ事前に格納しておき、必要に応じて、その外部記憶装置から読み出した回路情報を、プログラマブル論理回路装置内のコンフィギュレーションメモリに書き込むことで、必要とする回路をプログラマブル論理回路装置上に実現する。
【0010】
この技術は、必要な回路情報をプログラマブル論理回路装置の外部に退避しておくという観点から、キャッシュロジック技術と呼ばれたり、回路情報を書き替えることにより、実際のプログラマブル論理回路部の回路規模よりも大きな規模の回路を実現できるという観点から、バーチャルロジック技術と呼ばれている。以下の説明では、簡単のため、これらの技術を総称して、キャッシュロジック技術と呼ぶことにする。
【0011】
キャッシュロジック技術は、同じプログラマブル論理回路装置上に、必要に応じて異なる回路を構成するという時分割駆動技術である。その結果、回路規模の小さなプログラマブル論理回路装置を用いて、その回路規模以上の回路を実現でき、回路装置の小型化と低コスト化が可能となる。
【0012】
しかしながら、プログラマブル論理回路装置のコンフィギュレーションメモリに書き込む回路情報の規模によっては、外部記憶装置からプログラマブル論理回路装置のコンフィギュレーションメモリに回路情報を書き込む時間が長くなり、専用のハードウエア処理回路を用いて高速処理を実現しても、回路再構成時間を含めた全体の処理時間が、ソフトウエア処理時間よりも長くなるという問題がある。
【0013】
この問題のひとつの解決方法が、マルチコンテキスト技術と呼ばれるデバイス技術である。すなわち、マルチコンテキスト技術においては、プログラマブル論理回路装置内に複数の回路情報を格納することができるように、複数個のコンフィギュレーションメモリを設け、必要に応じてコンフィギュレーションメモリを切り替えることにより、プログラマブル論理回路装置に回路を再構成することで、回路の再構成時間を大幅に短縮する。
【0014】
[マルチコンテキスト技術によるプログラマブル論理回路装置の説明]
マルチコンテキスト技術によるプログラマブル論理回路装置の構造を、図25に示す。マルチコンテキスト技術によるプログラマブル論理回路装置10は、複数の回路情報を外部から読み込む回路情報入力制御部11と、複数の回路情報から必要な回路情報を選択する回路情報選択制御部12と、選択された回路情報に従って回路機能を実現するプログラマブル論理回路部13から構成される。
【0015】
このマルチコンテキスト技術によるプログラマブル論理回路部13の詳細な構造は図26に示すようなものとなり、プログラマブル論理回路部13は、前述の場合と同様に、入出力部、論理回路セル、配線部からなる回路素子14と、この回路素子14に接続するコンフィギュレーションメモリ15とから構成されるが、このマルチコンテキスト技術によるプログラマブル論理回路部13の場合のコンフィギュレーションメモリ15は、複数個のメモリプレーンで構成される。
【0016】
そして、このマルチコンテキスト技術によるプログラマブル論理回路部13の場合には、FPGA型とCPLD型(図24参照)とのいずれの構造においても、プログラマブル論理回路装置10に外部から読み込まれた複数の回路情報は、回路情報入力制御部11によってコンフィギュレーションメモリ15の各メモリプレーンに一つの回路情報が書き込まれる状態で書き込まれる。
【0017】
そして、コンフィギュレーションメモリ15の複数個のメモリプレーンに書き込まれた複数の回路情報のうち、回路情報選択制御部12からの選択信号により選択されたメモリプレーンの回路情報に従って、回路素子14の機能と結線状態が決められて、プログラマブル論理回路装置10に回路が再構成される。
【0018】
ところで、プログラマブル論理回路装置で用いられる回路情報の形式には、シリアル形式とパラレル形式とがあり、これら2つの回路情報形式によって、コンフィギュレーション動作が異なる。そこで、以下に、図22のプログラマブル論理回路装置1と、図25のマルチコンテキスト技術を用いたプログラマブル論理回路装置10とにおける各回路情報形式の場合のコンフィギュレーション動作を、説明する。
【0019】
[回路情報の構造;(I)シリアル形式の回路情報]
従来のプログラマブル論理回路装置で用いられているシリアル形式の回路情報の構造を図27に示す。図27(A)に示すように、回路情報は、ヘッダ部HDs、データ部DTs、フッタ部FTsから構成される。プログラマブル論理回路装置内では、シリアル形式の回路情報は、シリアルデータとして扱われるが、適当な単位(たとえば、8ビット)で区切ることにより、パラレル伝送やパラレルメモリアクセスを行うことができる。
【0020】
ヘッダ部HDsは、回路情報の始まりを示すプリアンブルコードと、回路情報のデータ量を表すレングスカウントと、ヘッダ部HDsの終わりを示す区切りコードとからなる。
【0021】
データ部DTsは、複数のフレームからなる。ここで、フレームとは、コンフィギュレーションメモリに格納されるデータを、ある量(通常100から1000ビット程度)で区切ったデータの一塊である。このフレームの大きさは、プログラマブル論理回路部への回路の再構成の容易さを考慮して決定され、例えば、図24(A)のFPGA型の場合の縦方向の一列分の論理回路分の回路情報とされる。
【0022】
各フレームは、図27(B)に示すように、フレームの始まりを表すスタートフィールドビットデータSTBと、コンフィギュレーションメモリに格納されるコンフィギュレーションデータCFGDと、フレームの終わりを表すストップフィールドビットデータENBとからなる。
【0023】
フッタ部FTsは、一つの回路情報の終わりを表すポストアンブルコードからなる。
【0024】
[シリアル形式の回路情報による従来のプログラマブル論理回路装置1のコンフィギュレーション]
図28は、図22に示した従来のプログラマブル論理回路装置1へのシリアル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図28に示したブロック図を用いて、回路情報のコンフィギュレーションメモリへの格納を説明する。
【0025】
図22で示した回路情報入力制御部2は、図28のコンフィギュレーションコントローラ2a、レングスカウントレジスタ2b、セレクタ2c、複数個のシフトレジスタ2dで構成される。
【0026】
また、図22で示したプログラマブル論理回路部3は、前述したように回路素子4とコンフィギュレーションメモリ5とで構成されるが、図28においては、例えば、図24(A)のようなFPGA型であれば、例えば縦一列の複数個の論理回路セルを単位として、複数列分のコンフィギュレーションメモリ5sと、回路素子4sとの組に分けられる。
【0027】
そして、各シフトレジスタ2dの各段のレジスタは、各列のコンフィギュレーションメモリ5sの各メモリセルに結線される。したがって、各シフトレジスタ2dは、例えば、図24(A)のようなFPGA型であれば、縦一列の論理回路セル数への回路情報分の段数を備えるもので構成されている。そして、一つのシフトレジスタが縦一列の複数個の論理回路セルに対して割り当てられて、シフトレジスタ2dは、横方向の論理回路セル数分だけ設けられる。
【0028】
なお、論理回路セル数が多い場合には、数列〜数十列程度の複数列分について一つのシフトレジスタ2dが設けられて、その複数列に共通に一つのシフトレジスタ2dが使用されるように構成される場合もある。
【0029】
前述の回路情報の1フレームの大きさは、例えば、このシフトレジスタ2dの一つ分のデータ量とされている。
【0030】
この図28の構成において、外部記憶装置9から回路情報が読み込まれると、コンフィギュレーションコントローラ2aが、その回路情報のヘッダ部のプリアンブルコードを検知してコンフィギュレーション処理を開始する。
【0031】
プリアンブルコードに続くレングスカウントはレングスカウントレジスタ2bに格納される。レングスカウントレジスタ2bの値は、後述するシフトレジスタ2dのデータシフトごとに1を減じられ、レングスカウントレジスタ2bの値が0になるまでシフトレジスタ2dが動作する。このことによって、全てのデータがシフトレジスタ2dに送り出される。
【0032】
区切りコードに続くデータ部は、セレクタ2cに送られる。初期状態では、セレクタ2cは、コンフィギュレーションデータを第1列目のシフトレジスタ2dに送り出す。シフトレジスタ2dは、セレクタ2cから送り出されたデータを順次シフトする。データがシフトレジスタ2dの最後までシフトされると、セレクタ2cは、次の列のシフトレジスタ2dに、データの送り出しを切り替える。
【0033】
以上の動作を繰り返して、先に述べたレングスカウンタ2bの値が0になるまで、シフトレジスタ2dが動作することにより、全てのデータがシフトレジスタ2dに格納される。
【0034】
シフトレジスタ2dがコンフィギュレーションデータで満たされると、そのデータは同時並列的にコンフィギュレーションメモリ5sのすべてに転送され、プログラマブル論理回路部3の再構成が行われる。すなわち、例えば、図29に示すように、コンフィギュレーションメモリ5sの各メモリセルのラッチ5Lが、シフトレジスタ2dの各レジスタに接続されており、ラッチ5LへラッチクロックLCLKを送ることにより、シフトレジスタ2dからコンフィギュレーションメモリ5sへ同時並列的にデータが転送される。
【0035】
そして、次に、データ部に続くフッタ部のポストアンブルコードをコンフィギュレーションコントローラ2aが検知すると、コンフィギュレーション処理が終了する。
【0036】
[シリアル形式の回路情報による従来のマルチコンテキスト技術によるプログラマブル論理回路装置10のコンフィギュレーション]
図31は、図25に示したマルチコンテキスト技術によるプログラマブル論理回路装置10へのシリアル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図31に示したブロック図を用いて、従来のマルチコンテキスト技術による場合の回路情報のコンフィギュレーションメモリへの格納を説明する。
【0037】
図25で示した回路情報入力制御部11は、図31のコンフィギュレーションコントローラ11a、レングスカウントレジスタ11b、セレクタ11c、複数個のシフトレジスタ11dで構成される。
【0038】
また、図25で示したプログラマブル論理回路部は、前述の従来例と同様に、例えば図24(A)のようなFPGA型であれば、例えば縦一列の複数個の論理回路セルを単位として、複数列分のコンフィギュレーションメモリ15sと、回路素子14sとの組に分けられるが、この例の場合には、各列のコンフィギュレーションメモリ15sのそれぞれは、図31で破線で示すように、複数メモリプレーン分を備える。
【0039】
そして、各シフトレジスタ11dの各段のレジスタは、各列のコンフィギュレーションメモリ15sの各プレーンの各メモリセルに結線される。また、図25で示した回路情報選択制御部12によるコンフィギュレーションメモリプレーンの選択は、次に図30を用いて示す各列のコンフィギュレーションメモリ15sのメモリプレーンのワード線W1,W2,…,WNの選択に対応する。
【0040】
図30は、シフトレジスタ11dとコンフィギュレーションメモリ15sとの接続を示すものである。シフトレジスタ11dの各レジスタは、スイッチSW1,SW2,…,SWNを介して、各コンフィギュレーションメモリプレーンのメモリセル15s1,15s2,…,15sNが接続される。ワード線W1,W2,…,WNを選択制御することで、スイッチSW1,SW2,…,SWNを開閉制御することができる。そして、このスイッチSW1,SW2,…,SWNの開閉により、いずれのコンフィギュレーションメモリプレーンの回路情報により、回路素子14をコンフィギュレーションするかを選択制御することができる。
【0041】
この場合にも、各シフトレジスタ11dは、例えば、図24(A)のようなFPGA型であれば、縦一列の論理セル数への回路情報分の段数を備えるもので構成されている。そして、一つのシフトレジスタが縦一列の複数個の論理回路セルに対して割り当てられて、シフトレジスタ11dは、横方向の論理セル数分だけ設けられる。
【0042】
そして、論理セル数が多い場合には、数列〜数十列程度の複数列分について一つのシフトレジスタ11dが設けられて、その複数列に共通に一つのシフトレジスタ11dが使用されるように構成される場合もある。
【0043】
前述の回路情報の1フレームの大きさは、例えば、このシフトレジスタ11dの一つ分のデータ量とされている。
【0044】
この図31の構成においては、外部記憶装置9には、例えばアプリケーションプログラムで必要となる複数の処理回路の回路情報、すなわち、複数個のコンフィギュレーションメモリプレーンに記憶させる複数個の回路情報が格納されている。そして、この外部記憶装置9から最初の回路情報が読み込まれると、コンフィギュレーションコントローラ11aが、その回路情報のヘッダ部のプリアンブルコードを検知してコンフィギュレーション処理を開始する。
【0045】
プリアンブルコードに続くレングスカウントは、レングスカウントレジスタ11bに格納される。レングスカウントレジスタ11bの値は、次に説明するシフトレジスタのデータシフトごとに1を減じられ、レングスカウントレジスタ11bの値が0になるまで、シフトレジスタ11dが動作する。このことによって、全てのデータがシフトレジスタ11dに送り出される。
【0046】
区切りコードに続くデータは、セレクタ11cに送られる。初期状態では、セレクタ11cは、データを第1列目のシフトレジスタ11dに送り出す。データを受け取ったシフトレジスタ11dは、セレクタ11cから送り出されたデータを順次シフトする。データが、そのシフトレジスタ11dの最後までシフトされると、セレクタ11cは、次の列のシフトレジスタ11dにデータの送り出しを切り替える。以上の動作を繰り返し、先に述べたレングスカウンタの値が0になるまで、シフトレジスタ11dが動作することにより、最初の回路情報のコンフィギュレーションデータがシフトレジスタ11dに格納される。
【0047】
シフトレジスタ11dがデータで満たされると、図29に示したワード線W1が選択され、シフトレジスタ11dから、第1のコンフィギュレーションメモリプレーンのメモリセル15s1へ最初の回路情報が同時並列的に転送される。
【0048】
そして、データ部DTsに続くフッタ部FTsのポストアンブルコードをコンフィギュレーションコントローラ11aが検知すると、最初の回路情報のコンフィギュレーション処理が終了する。
【0049】
引き続き第2の回路情報が読み込まれ、最初の回路情報の読み込みと同じ手順でシフトレジスタ11dがデータで満たされ、図29に示したワード線W2が選択され、シフトレジスタ11dから第2のコンフィギュレーションメモリプレーンのメモリセル2へ第2の回路情報が同時並列的に転送される。
【0050】
以降、順次、同じ手順を繰り返して、N個の回路情報のそれぞれが、コンフィギュレーションメモリ15のそれぞれ独立のメモリプレーンに格納される。
【0051】
再構成を行うときには、選択された回路情報に対応するワード線が選択され、次にラッチ15LへラッチクロックLCLKを送ることにより、選択されたメモリプレーンのメモリセルから、同時並列的にコンフィギュレーションデータが転送されて再構成が行われる。
【0052】
[回路情報の構造;(II)パラレル形式の回路情報]
従来のプログラマブル論理回路装置で用いられているパラレル形式の回路情報の構造を図32に示す。図示のように、回路情報は、ヘッダ部HDp、データ部DTp、フッタ部FTpから構成される。プログラマブル論理回路装置内では、あるビット幅、例えば32ビットのパラレル形式の回路情報は、適当な単位、例えば、1ビット、64ビットなどで区切ることにより、プログラマブル論理回路装置外で、シリアル転送、異なるバス幅のパラレル伝送やパラレルメモリアクセスを行うことができる。
【0053】
ヘッダ部HDpは、回路情報の始まりを示すプリアンブルコードと、回路情報の入力クロック速度などのコンフィギュレーションパラメータを設定するオプションコードと、設定されたオプションを実行してデータの読み込みを開始するスイッチコマンドとからなる。
【0054】
データ部DTpは、シリアル形式の場合と同様に、複数のフレームからなる。各フレームの内容は、コンフィギュレーションデータCFGDを書き込むコンフィギュレーションメモリ内のフレーム位置を表すフレームアドレスFADRと、コンフィギュレーションデータCFGDの書き込みを指示するデータインコマンドDINと、コンフィギュレーションデータCFGDから読み込むワード数を指示するワードカウントWCNTと、コンフィギュレーションデータCFGDとからなる。フッタ部FTpは、回路情報の終わりを指示するポストアンブルコードからなる。
【0055】
前述したシリアル形式の回路情報は、全てがデータとして扱われ、レングスカウントで指示されたクロック数だけシフトレジスタを動作することにより、回路情報が受動的にコンフィギュレーションメモリ全体に読み込まれる。一方、このパラレル形式の回路情報は、データとコマンドとして扱われ、フレームアドレスFADRで指示されるコンフィギュレーションメモリ部分に、データインコマンドDINの起動により、コンフィギュレーションデータCFGDが部分的に書き込まれる点が特徴である。
【0056】
[パラレル形式の回路情報による従来のプログラマブル論理回路装置1のコンフィギュレーション]
図33は、図22に示した従来のプログラマブル論理回路装置1へのパラレル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図33と図34に示した従来のプログラマブル論理回路装置のコンフィギュレーションメモリの一部分のブロック図を用いて、回路情報のコンフィギュレーションメモリへの格納を説明する。
【0057】
図22で示した回路情報入力制御部2は、図33のコンフィギュレーションコントローラ2e、アドレス生成器2f、セレクタ2gで構成される。また、図22で示したプログラマブル論理回路部3は、図33においては、例えば、図24(A)のようなFPGA型であれば、例えば縦一列の複数個の論理回路セルを単位として、複数列分のコンフィギュレーションメモリ5sと、回路素子4sとの組に分けられる。
【0058】
前記回路情報のフレームは、シリアル形式の場合と同様に、一列分の複数個の論理回路セルへのコンフィギュレーションデータを含むものとして構成される。
【0059】
そして、図34に示すように、各列のコンフィギュレーションメモリ5sのビット線が、セレクタ2gに結線される。また、コンフィギュレーションメモリ5sのワード線は、アドレス生成器2fに結線される。
【0060】
この図33の構成において、外部記憶装置9から回路情報が読み込まれると、コンフィギュレーションコントローラ2eが、その回路情報のヘッダ部HDpのプリアンブルコードを検知してコンフィギュレーション処理を開始する。
【0061】
そして、プリアンブルコードに続くオプションコードで、コンフィギュレーションのためのパラメータが設定される。次のスイッチコマンドにより、設定されたオプションが実行され、データの読み込みが開始される。
【0062】
まず、フレームのフレームアドレスFADRがアドレス生成器2fに読み込まれ、データを書き込むコンフィギュレーションメモリ5sに対応するビット線とワード線とが選択される。次に、データインコマンドDINが起動され、コンフィギュレーションデータCFGDから、ワードカウントWCNTが示す数だけのデータが読み出され、その読み出されたデータがセレクタ2gを介してコンフィギュレーションメモリ5sに書き込まれる。この手順を全てのフレームに対して繰り返す。
【0063】
そして、データ部DTpに続くフッタ部FTpのポストアンブルコードをコンフィギュレーションコントローラ2eが検知すると、コンフィギュレーション処理が終了する。
【0064】
[パラレル形式の回路情報による従来のマルチコンテキスト技術によるプログラマブル論理回路装置10のコンフィギュレーション]
図36は、図25に示したマルチコンテキスト技術によるプログラマブル論理回路装置10へのパラレル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図36と図35に示した従来のマルチコンテキスト技術によるプログラマブル論理回路装置のコンフィギュレーションメモリの一部分のブロック図を用いて、回路情報のコンフィギュレーションメモリへの格納を説明する。
【0065】
図25で示した回路情報入力制御部11は、図36のコンフィギュレーションコントローラ11e、アドレス生成器11f、セレクタ11gで構成される。また、図25で示したプログラマブル論理回路部13は、図36のコンフィギュレーションメモリ15s、回路素子14sで構成される。
【0066】
前述した図31の場合と同様に、コンフィギュレーションメモリ15sと回路素子14sの組は複数の列に分けられる。そして、各列のコンフィギュレーションメモリ15sは、図36で破線で示すように、複数メモリプレーン分を備える。
【0067】
前記回路情報のフレームは、この例においても、シリアル形式の場合と同様に、1プレーン分のメモリセルアレイの一列分へのコンフィギュレーションデータを含むものとして構成される。
【0068】
そして、図35に示すように、各列のコンフィギュレーションメモリ15s(複数個のメモリプレーン(メモリセルアレイ)からなる)のビット線が、セレクタ11gに結線される。この場合、複数個のメモリプレーンのメモリセルアレイのビット線は、共通にセレクタ11gに結線される。また、コンフィギュレーションメモリ15sのワード線は、複数個のメモリプレーンのメモリセルアレイについて共通とされ、アドレス生成器11fに結線される。
【0069】
そして、図25で示した回路情報選択制御部12は、図35に示すコンフィギュレーションメモリ15sのコンテキスト選択に対応する。
【0070】
この図36の構成においては、外部記憶装置9から最初の回路情報が読み込まれると、コンフィギュレーションコントローラ11eが、回路情報のヘッダ部HDpのプリアンブルコードを検知してコンフィギュレーション処理を開始する。
【0071】
プリアンブルコードに続くオプションコードでコンフィギュレーションのパラメータが設定される。次に、スイッチコマンドにより、設定されたオプションが実行され、データの読み込みが開始される。
【0072】
そして、フレームのフレームアドレスFADRがアドレス生成器11fに読み込まれ、データを書き込むコンフィギュレーションメモリ15sに対応するビット線とワード線とが選択される。このとき、図35に示すように、ひとつの列に対して複数のメモリセルアレイが配置されているので、たとえば、最初の回路情報に対しては、第1のメモリセルアレイ15s1のビット線がセレクタ11gによって選択される。
【0073】
次に、データインコマンドDINが起動され、コンフィギュレーションデータCFGDからワードカウントWCNTが示す数だけのデータが読み出されて、セレクタ11gを介してコンフィギュレーションメモリ15sに書き込まれる。この手順を全てのフレームに対して繰り返す。
【0074】
データ部DTpに続くフッタ部FTpのポストアンブルコードを、コンフィギュレーションコントローラ11eが検知すると、最初の回路情報のコンフィギュレーション処理が終了する。
【0075】
引き続き、第2の回路情報が読み込まれ、最初の回路情報の読み込みと同じ手順で、セレクタ11gで選択された第2のメモリセルアレイ15s2に回路情報が格納される。以下、順次に、同じ手順を繰り返して、N個の回路情報がコンフィギュレーションメモリ15に格納される。
【0076】
再構成を行うときには、選択された回路情報に対応するコンテキスト選択線が選択され、回路素子14sのコンフィギュレーションが行われる。
【0077】
[従来のマルチコンテキスト技術による再構成回路による処理動作]
次に、以上説明したような従来のマルチコンテキスト技術によるプログラマブル論理回路装置を用いて、複数の回路を用いる一つの処理を行なう場合の、当該プログラマブル論理回路装置への回路情報の再構成動作手順を、図37の説明図および図38のフローチャートを参照しながら、さらに説明する。
【0078】
前述したように、通常、回路情報はフレームと呼ばれる単位で構成されるが、図37に示す例は、一つの回路情報が5フレームで構成されるとともに、一つの処理が、回路情報1、回路情報2、回路情報3の3個の回路情報により行われる場合である。
【0079】
すなわち、回路情報入力制御部11を介して、前記3個の回路情報(回路情報1、回路情報2、回路情報3)がコンフィギュレーションメモリ15に格納される。例えばアプリケーションプログラムによって発生する選択信号に従って回路情報選択制御部12により、コンフィギュレーションメモリ15に格納された3個の回路情報から、一つの回路情報が選択され、その回路情報に従ってプログラマブル論理回路装置10が再構成される。
【0080】
この再構成手順を図38のフローチャートと、図39のタイミングチャートを参照して説明する。図39のタイミングチャートでは、回路情報1、回路情報2、回路情報3の順にプログラマブル論理回路装置が再構成されて、処理が終了するとしている。
【0081】
まず、最初に、回路情報入力制御部11は、外部記憶装置(図示せず)などに格納された回路情報を、一つずつ読み込んでコンフィギュレーションメモリ15に格納する(ステップS101)。このとき、回路情報を読み込むたびに、コンフィギュレーションメモリ15の残り容量を確認し(ステップS102、S103)、全ての回路情報を読み込む前に、コンフィギュレーションメモリ15が一杯になったときは、エラーを検知して動作を終了する(ステップS104)。
【0082】
回路情報入力制御部11が、3個の回路情報のすべてをコンフィギュレーションメモリ15に格納すると、回路情報選択制御部12が選択信号を監視する(ステップS105)。回路情報選択制御部12が、例えばアプリケーションプログラムに従って選択信号が切り替えられたことを検知すると、3個の回路情報のうちのどれが選択されたかを判別し(ステップS106)、切り替えられた選択信号に応じた回路情報がコンフィギュレーションメモリ15から読み出され、その回路情報に従ってプログラマブル論理回路部(図示せず)が再構成される(ステップS107またはステップS108またはステップS109)。
【0083】
その後、プログラマブル論理回路装置10による処理が継続する限り、回路情報選択制御部12による選択信号の監視が続けられ、選択信号が切り替えられるごとに回路情報が切り換えられる。そして、プログラマブル論理回路装置10による処理が終了すると、選択信号の如何にかかわらず、上述の再構成の手順は終了する。
【0084】
プログラマブル論理回路装置10による処理が終了した場合、プログラマブル論理回路装置10への電源供給が遮断されたりしない限り、一般的には、プログラマブル論理回路装置は、最後に選択された回路情報で再構成された状態が保持される。
【0085】
以上の処理を、図39のタイミングチャートについて、さらに説明する。すなわち、処理が実行状態になると、まず、3個の回路情報1、2、3のコンフィギュレーションメモリ15への読み込みが行われる。読み込みが終了して、回路情報の選択指示が行われると、その選択指示された回路情報が記憶されているコンフィギュレーションメモリプレーンが切り替え選択されて、その回路情報が読み出され、その読み出された回路情報によりプログラマブル論理回路部が再構成される。
【0086】
図39で、実行終了後も回路情報3が構成されて続けているのは、前述したように、処理が終了した場合、電源供給が遮断されたりしない限り、一般的には、プログラマブル論理回路装置は、最後に選択された回路情報で再構成された状態が保持されるからである。
【0087】
[マルチコンテキスト技術の具体的な従来例]
以上説明したようなマルチコンテキスト技術の一つとして、特開平2−130023号公報に開示される「マルチファンクション・プログラマブル・ロジック・デバイス」の例がある。これを従来例1として、図40を参照しながら説明する。
【0088】
図40は、マルチファンクション・プログラマブル・ロジック・デバイスの構成図を示したものである。このデバイスは、プログラマブル論理アレイ21、SRAMで構成されたスイッチ設定用PROM22、および選択回路23で構成される。
【0089】
スイッチ設定用PROM22は、プログラマブル論理アレイ21に構成される回路に対応したNビットの回路情報をM組記憶することができる。プログラマブル論理アレイ21の回路構成は、スイッチ設定用PROM22に記憶されたM組の回路情報のうち、選択回路23で選択された一組の回路情報によって決定される。すなわち、選択回路23によって選択する回路情報を切り替えることにより、プログラマブル論理アレイ21の回路構成を再構成することができる。
【0090】
マルチコンテキスト技術の別の例として、FCCM’97(FPGAs for Custom Computing Machines 1997)で発表された“A Time−Multiplexed FPGA”の例がある。これを従来例2として、図41を参照しながら説明する。
【0091】
図41は、発表された時分割駆動FPGAの構成を示すものである。この時分割駆動FPGAは、米国ザイリンクス(Xilinx)社のXC4000Eを改良したものであり、回路素子24の論理セルと内部配線とを決定する、SRAMで構成されたコンフィギュレーションメモリ25を8組備えている。コンフィギュレーションメモリ25のそれぞれには、異なる回路構成に対応する回路情報が格納されており、これらのコンフィギュレーションメモリ25を切り替えることにより、時分割でFPGAの回路構成を再構成することができる。
【0092】
上述の従来例1と従来例2とで示したように、マルチコンテキスト技術は、事前に複数の回路情報をコンフィギュレーションメモリに格納してあるので、回路の再構成時間を短縮することを可能にする。
【0093】
しかしながら、回路情報を格納するために、複数プレーンまたは複数個のコンフィギュレーションメモリがプログラマブル論理回路装置の内部に必要なため、プログラマブル論理回路部の回路規模が大きくなる。回路規模が大きくなると、回路素子の負荷容量が大きくなることにより、回路性能が低下したり、消費電力が大きくなるという問題を引き起こす。また、回路規模が大きくなると、プログラマブル論理回路装置の製造コストが高くなるという問題も引き起こす。
【0094】
通常、プログラマブル論理回路装置は、CMOSプロセスで製造されるので、同じCMOSプロセスで作製できるSRAMが、コンフィギュレーションメモリとして用いられる。従来例1と従来例2とでは、SRAMがコンフィギュレーションメモリとして用いられている。SRAMは、1ビットを記憶するために6個のトランジスタを必要とするので、プログラマブル論理回路装置内に記憶できる回路情報の数を増やすと、プログラマブル論理回路部の回路規模が大幅に大きくなる。
【0095】
このように回路規模が大きくなるという問題は、FPD’95(Third Canadian Workshop of Field Programmable Devices 1995)で発表された“A First Generation DPGA Implementation”のように、1ビット当たり3個のトランジスタで構成されるDRAMをコンフィギュレーションメモリとして用いることにより、幾分緩和される。これを従来例3として、図42を参照しながら説明する。
【0096】
図42は、発表されたDPGAの論理セル構造を示すものである。論理セルは、4組の構成を格納できる4×32ビットのDRAM31、4つの8入力マルチプレクサ32〜35、4入力ルックアップテーブル36、フリップフロップ37、出力を切り替えるセレクタ38で構成される。
【0097】
32ビットのDRAM31の出力のうち、12ビットが4つの8入力マルチプレクサ32〜35の状態を、16ビットが4入力ルックアップテーブル36の状態を、1ビットがセレクタ38の状態を決定し、残り3ビットは保留とされている。4組のDRAM31には、それぞれ異なる回路情報が格納されており、メモリ出力を切り替えることにより、異なる回路を構成することができる。
【0098】
上述のように、DRAM31は、1ビット当たり3個のトランジスタで構成されるので、この従来例3によれば、マルチコンテキスト技術における回路規模が大きくなるという問題は軽減できる。
【0099】
さらに、最近の半導体デバイス作製技術の進展により、ひとつのデバイス上にCMOS回路と、1ビット当たり1個のトランジスタで構成されるDRAMを作製することが可能になった。この半導体作製技術は、DRAM混載プロセスと呼ばれている。1ビットを記憶するために、CMOSで構成されるSRAMが6個のトランジスタを必要とし、CMOSで構成されるDRAMが3個のトランジスタを必要とするのに対して、DRAM混載プロセスによるDRAMは1個のトランジスタで済むものである。
【0100】
したがって、回路情報を格納するために余分なコンフィギュレーションメモリ領域が必要になるという上述したマルチコンテキスト技術の欠点は、コンフィギュレーションメモリにDRAM混載プロセスによる1トランジスタDRAMを用いることによって、さらに改善することができる。
【0101】
この例として、Symposium on VLSI Circuit 1997で発表された“An Embedded DRAM−FPGA Chip with Instantaneous Logic Reconfiguration”の例がある。これを従来例4として図43を参照しながら説明する。
【0102】
図43は、発表されたDRAM−FPGAの論理エレメントと、DRAMエレメントの構造を示すもので、256×256セルで構成されるDRAMエレメント41を、4つの論理エレメント42〜45が囲む構成となっている。一つの論理エレメントは64ビットの回路情報で再構成される。左右にセンスアンプを介して128ビットずつ引き出されたビット線の64ビット分ずつが論理エレメント42〜45のそれぞれに接続される。
【0103】
上記の左右のビット線に出力される回路情報は、上下にワードドライバを介して128ビットずつ引き出されたワード線を選択することにより、切り替えられる。すなわち、DRAM−FPGAは、メモリ回路としてDRAMエレメント41を用いることにより、256組の回路構成を格納することを可能にした。
【0104】
上述の従来例4に示したように、DRAM混載プロセスを用いて、メモリ回路を1トランジスタDRAMで作製することにより、回路情報を格納するために余分なコンフィギュレーションメモリ回路領域が必要となるというマルチコンテキスト技術の欠点を大幅に緩和することが可能となる。
【0105】
しかしながら、DRAM回路部で用いるトランジスタのゲート酸化膜は、CMOS回路部で用いるトランジスタのゲート酸化膜より厚い酸化膜が必要なので、別々に作製しなければならない。このため、製造工程が増加し、プログラマブル論理回路装置の製造コストが高くなったり、製造歩留まりが低下するという新たな問題を引き起こす。また、製造工程を増やさないために、製造工程を共通化して厚い酸化膜を用いると、CMOS回路部の性能が悪くなるという別の問題を引き起こす。
【0106】
【発明が解決しようとする課題】
以上説明したように、キャッシュロジック技術を用いて、アプリケーションプログラムによる処理の一部分を、プログラマブル論理回路装置で構成した回路で処理するリコンフィギュラブルコンピューティング技術を用いた情報処理システムでは、回路を再構成する時間が長くなり、本来はソフトウエア処理に比べて処理速度の速いプログラマブル論理回路装置によるハードウエア処理が、回路再構成時間を含めた総処理時間で比べると、ソフトウエア処理よりも時間を要することがあるという問題がある。
【0107】
この問題を解決する一つの手段であるマルチコンテキスト技術は、回路の再構成時間を短縮することを可能にするが、複数の回路情報を格納するための余分なコンフィギュレーションメモリ領域が必要なため、プログラマブル論理回路部の回路規模が大きくなるという欠点がある。
【0108】
そして、回路規模が大きくなると、回路素子の負荷容量が大きくなることにより、回路性能が低下したり、消費電力が大きくなるという問題を引き起こす。また、回路規模が大きくなると、プログラマブル論理回路装置の製造コストが高くなるという問題も引き起こす。
【0109】
また、コンフィギュレーションメモリ領域を減らすために、そのメモリ回路として、CMOSプロセスで作成されるSRAM回路の代わりに、DARM混載プロセスで作製した1トランジスタDRAM回路を用いることなどが行われているが、上述したように、製造工程が増加し、プログラマブル論理回路装置の製造コストが高くなったり、製造歩留まりが低下するという新たな問題を引き起こす。また、製造工程を増やさないために、製造工程を共通化してDRAM部の厚い酸化膜をCMOS回路部に用いると、CMOS回路部の性能が低下するなどという別の問題を引き起こす。
【0110】
この発明は、以上の点にかんがみ、回路性能の低下、消費電力の増加、製造工程の増加、製造コストの増加などをもたらす複数の回路情報を格納するコンフィギュレーションメモリを用いることなく、高速に回路を再構成できるプログラマブル論理回路装置を提供することを目的とする。
【0111】
【課題を解決するための手段】
上記の課題を解決するために、請求項1の発明によるプログラマブル論理回路装置においては、
回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、
前記プログラマブル論理回路部に複数個の回路を順次に構成するための複数個の回路情報を記憶するものであって、前記コンフィギュレーションメモリとは別の回路情報記憶手段と、
前記回路情報記憶手段に、前記複数個の回路情報を書き込むための回路情報書き込み手段と、
指定情報により指定される前記プログラマブル論理回路部に生成しようとする一つの回路の回路情報を、前記回路情報記憶手段に記憶された複数個の回路情報のうちの、一つまたは複数個の回路情報を用いて生成する回路情報編集手段と、
前記回路情報編集手段で生成された前記一つの回路の回路情報を前記コンフィギュレーションメモリに書き込むようにする制御手段と、
を備え、
前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部または全部を他の回路情報で構成する場合に、当該他の回路情報を前記回路情報記憶手段から読み出すための参照情報を備えるものであり、
前記回路情報編集手段は、前記指定情報により指定される一つの回路の回路情報を、前記回路情報記憶手段から前記指定情報により指定された回路情報を入手するとともに、その回路情報に前記参照情報が含まれている場合には、その参照情報に基づいて、前記他の回路情報を入手して生成する
ことを特徴とする。
【0112】
そして、請求項2の発明は、請求項1に記載のプログラマブル論理回路装置において、
前記回路情報記憶手段および前記回路情報編集手段は、前記プログラマブル論理回路部とは別個に設けることを特徴とする。
【0113】
また、請求項3の発明は、請求項1に記載のプログラマブル論理回路装置において、
前記回路情報記憶手段および前記回路情報編集手段は、そのための回路情報を前記コンフィギュレーションメモリの一部に読み込むことにより、前記プログラマブル論理回路部の回路素子の一部に生成することを特徴とする。
【0114】
また、請求項4の発明は、請求項1〜3のいずれかに記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶される回路情報は圧縮されており、前記回路情報編集手段により、前記圧縮が解凍されて、前記指定情報で指定された回路情報が生成されることを特徴とする。
【0115】
【作用】
上述の構成の請求項1の発明においては、複数の回路情報は、マルチコンテキスト技術のようにコンフィギュレーションメモリに格納するのではなく、回路情報記憶手段に一旦格納される。そして、再構成すべき回路情報が回路情報記憶手段から読み出され、回路情報編集手段でコンフィギュレーションメモリに書き込む形式の回路情報に編集されて、コンフィギュレーションメモリに転送される。
【0116】
このため、この請求項1の発明によれば、コンフィギュレーションメモリ領域は、従来の一般的なプログラマブル論理回路装置のように1つの回路情報を格納できるメモリ領域を備えれば良いので、マルチコンテキスト技術の場合のプログラマブル論理回路部の回路規模が大きくなるという欠点を回避することができる。
【0117】
その代わりに、回路情報記憶手段が必要になるが、請求項1の発明においては、この回路情報記憶手段の回路情報は、回路情報編集手段で編集された後に、コンフィギュレーションメモリに転送される構成であるので、回路情報記憶手段に記憶する回路情報は、コンフィギュレーションメモリに直接的に格納する形式のものにする必要がなく、少ないデータ量とすることが可能である。
【0118】
例えば、請求項4の発明のように、回路情報を圧縮しておき、その圧縮を回路情報編集手段で解凍するようにすることにより、回路情報記憶手段のメモリ容量を、より小さくすることができるものである。
【0119】
回路情報記憶手段および回路情報編集手段は、請求項2の発明のように、プログラマブル論理回路部の外部において構成することもできるし、請求項3の発明のように、プログラマブル論理回路部内に、そのための回路情報を読み込むことにより、構成することもできる。
【0120】
特に、請求項3の場合には、従来からあるプログラマブル論理回路装置を用いて、この発明によるプログラマブル論理回路装置を実現することができるという効果がある。
【0121】
【発明の実施の形態】
以下に、この発明によるプログラマブル論理回路装置の幾つかの実施の形態を、前述した従来のマルチコンテキスト技術によるプログラマブル論理回路装置と比較しながら、図を参照しながら説明する。
【0122】
以下に説明する実施の形態は、それぞれ前述したリコンフィギュラブルコンピューティング技術を用いた情報処理システムにおいて、そのアプリケーションプログラムによる処理の一部分、あるいは全部を実行するための複数の回路を、プログラマブル論理回路装置で構成する場合の例である。
【0123】
すなわち、アプリケーションプログラムで必要となる複数の処理回路の回路情報を、予め外部記憶装置に格納しておき、必要に応じて、その外部記憶装置から読み出した前記複数の回路情報を、プログラマブル論理回路装置に読み込んで、必要とする回路を、プログラマブル論理回路装置に順次に再構成して、必要な処理を実行するものである。
【0124】
[第1の実施の形態]
[この発明によるプログラマブル論理回路装置の第1の構造]
第1の実施の形態のプログラマブル論理回路装置は、この発明によるプログラマブル論理回路装置の第1の構造を備える。図1は、この第1の構造を備える、この発明によるプログラマブル論理回路装置100の構成を示すもので、複数の回路情報を、例えば外部記憶装置(図示せず)から読み込む回路情報入力制御部101と、読み込んだ複数の回路情報を一時的に記憶する回路情報記憶部102と、複数の回路情報から必要な回路情報を選択して編集する回路情報編集部103と、回路情報入力制御部101を介して読み込まれる編集された回路情報に従って回路機能を実現するプログラマブル論理回路部104とから構成される。
【0125】
この第1の構造のプログラマブル論理回路装置100では、回路情報入力制御部101は、回路情報記憶部102に、複数個の回路情報を書き込むための回路情報書き込み手段の機能も有する。また、回路情報入力制御部101は、回路情報編集手段で生成された一つの回路の回路情報を、プログラマブル論理回路部104のコンフィギュレーションメモリに書き込むようにする制御手段の役割もする。
【0126】
すなわち、この第1の構造のプログラマブル論理回路装置100は、図22に示した従来のプログラマブル論理回路装置1の回路情報入力制御部2およびプログラマブル論理回路3と同様の回路情報入力制御部101およびプログラマブル論理回路部104に加えて、回路情報記憶部102と、回路情報編集部103を、その内部に備えるものである。
【0127】
そして、プログラマブル論理回路部104の詳細な構造は、図22に示した従来のプログラマブル論理回路装置のプログラマブル論理回路部と同じであって、図23および図24に示したものとなる。すなわち、プログラマブル論理回路部104は、図26に示した従来のマルチコンテキスト技術によるプログラマブル論理回路部15のように、コンフィギュレーションメモリが、複数個のメモリプレーンを備えるものではない。
【0128】
つまり、プログラマブル論理回路部104は、図24(A),(B)に示したような、入出力部、論理回路セル、配線部からなる回路素子105と、この回路素子105に接続され、一つの回路情報分を格納するようにするコンフィギュレーションメモリ106とから構成される。
【0129】
このようにプログラマブル論理回路部104に内蔵のコンフィギュレーションメモリが複数個のコンフィギュレーションメモリあるいは複数個のメモリプレーンを持たないことから、この実施の形態のプログラマブル論理回路装置100は、図25に示した従来のマルチコンテキスト技術によるプログラマブル論理回路装置10のような回路情報選択制御部12は具備しない。
【0130】
そして、この実施の形態の場合のプログラマブル論理回路装置100も、従来のプログラマブル論理回路装置1と同じように、プログラマブル論理回路部104の回路素子105の接続形態により、図24(A)に示すようなFPGA型と、図24(B)に示すようなCPLD型とに分けられる。
【0131】
いずれの構造においても、この第1の実施の形態のプログラマブル論理回路装置100においては、これに複数の回路情報が読み込まれると、その複数の回路情報は、回路情報記憶部102に格納され、回路情報編集部103で編集された後に、回路情報入力制御部101によってコンフィギュレーションメモリ106に書き込まれる。そして、コンフィギュレーションメモリ106に書き込まれた回路情報に従って、回路素子105の機能と結線状態が決められる。
【0132】
[第1の実施の形態におけるコンフィギュレーション]
次に、この第1の実施の形態におけるコンフィギュレーションの方法を、従来のマルチコンテキスト技術によるプログラマブル論理回路装置の場合と比較しながら説明する。なお、この第1の実施の形態では、シリアル形式の回路情報によりコンフィギュレーションを行なう場合である。
【0133】
図2は、この第1の実施の形態の場合の回路情報およびその編集動作を説明するための図である。この図2を参照しながら、第1の実施の形態のプログラマブル論理回路装置100の動作を説明する。この図2の例は、前述の従来のマルチコンテキスト技術によるプログラマブル論理回路装置10のコンフィギュレーションにおいて説明した図37に示したものと同じ3つの回路情報1、2、3による3個の回路を再構成する手順の例である。
【0134】
図37に示した従来例の3つの回路情報1、2、3のフレーム構成を図2(A)に示す。この図2(A)に示すように、回路情報1、2、3は、一つの回路情報が5フレームで構成されているが、さらに詳しく回路情報のフレーム構造をみると、次のような構成となっている。
【0135】
回路情報報1は、フレーム(1−A)とフレーム(1−B)との2種類のフレームから構成されており、フレーム(1−A)の1個と、フレーム(1−B)の4個の合計5フレームで構成されている。
【0136】
回路情報2は、4種類のフレーム(1−A、2−A、2−B、2−C)から構成されているが、そのうちのフレーム(1−A)は、回路情報1を構成するフレーム(1−A)と同じである。そして、回路情報2は、フレーム(1−A)が2個で、他のフレームが、それぞれ1個ずつの合計5フレームで構成される。
【0137】
回路情報3は、3種類のフレーム(2−A、2−B、3−A)で構成されるが、そのうちのフレーム(2−A)と、フレーム(2−B)は回路情報2を構成するフレームと同じである。そして、回路情報3は、フレーム(2−A)の3個と、フレーム(2−B)およびフレーム(3−A)の1個ずつの合計5フレームで構成される。
【0138】
この第1の実施の形態では、図37に示したものと同じ回路を再構成する3個の回路情報1、2、3が、フレームの繰り返しや、他の回路情報のフレームの参照を考慮して、従来より小さいフレーム数で構成されるように圧縮される。
【0139】
すなわち、回路情報1は、図2(B)に示すように、フレーム(1−A)と、フレーム(1−B)の2フレームで構成される。このとき、この回路情報1のフレーム(1−B)には、当該フレームを3回繰り返すという参照情報が付加されている。このように繰り返しの参照情報を含むフレームを、この明細書ではリピートフレームと呼ぶことにする。
【0140】
回路情報2は、図2(B)に示すように、フレーム(2−A)、フレーム(1−A)、フレーム(2−B)、フレーム(2−C)の4フレームで構成される。このとき、この回路情報2のフレーム(1−A)には、当該フレームデータは回路情報1のフレーム(1−A)と同じであるという参照情報が付加されている。このように他の回路情報のフレームの参照情報を含むフレームを、この明細書ではリファレンスフレームと呼ぶことにする。
【0141】
回路情報3は、図2(B)に示すように、フレーム(2−A)、フレーム(2−B)、フレーム(3−A)の3フレームで構成される。そして、このとき、この回路情報3のフレーム(2−A)とフレーム(2−B)は、それぞれのフレームデータは回路情報2のフレーム(2−A)、(2−B)と同じであるという参照情報が付加されたリファレンスフレームの構成となっている。また、この回路情報3のフレーム(2−A)は、当該フレームを3回繰り返すという参照情報が付加されたリピートフレームの構成となっている。
【0142】
[この発明によるシリアル形式の回路情報の具体例]
この発明によるシリアル形式の回路情報の構造例を図3に示す。図27に示した従来のシリアル形式の回路情報と同じように、この例のシリアル形式の回路情報も、図3(A)に示すように、ヘッダ部HDs、データ部DTs、フッタ部FTsから構成される。前述もしたように、プログラマブル論理回路装置100内では、シリアル形式の回路情報は、シリアルデータとして扱われるが、適当な単位(たとえば、8ビット)で区切ることにより、パラレル伝送やパラレルメモリアクセスを行うことができる。
【0143】
図3(A)に示すように、ヘッダ部HDsは、回路情報の始まりを示すプリアンブルコードと、回路情報のデータ量を表すレングスカウントと、ヘッダ部の終わりを示す区切りコードとからなり、また、フッタFTsは、回路情報の終わりを表すポストアンブルコードからなるのは、前述の図27の従来の場合と同様である。
【0144】
レングスカウントは、従来のプログラマブル論理回路装置1の場合と同様に、シフトレジスタへの転送のための情報として使用されるとともに、この実施の形態の場合には、回路情報編集部103での編集を指示する情報としても使用される。
【0145】
この実施の形態の場合には、データ部DTsは、複数のフレームからなるが、その各フレームが、3種類のフレームのいずれかにより構成される点が前述の図27の従来の場合と異なる。このデータ部を構成するフレームの種類は、従来例と同じ構造のノーマルフレームと、前述のリピートフレームと、前述のリファレンスフレームの3種類である。
【0146】
すなわち、ノーマルフレームは、図3(B)に示すように、従来の回路情報で用いられるフレームと全く同様に、フレームの始まりを表すスタートフィールドビットデータSTBと、コンフィギュレーションメモリに格納されるコンフィギュレーションデータCFGDと、フレームの終わりを表すストップフィールドビットデータENBとからなる。
【0147】
リピートフレームは、図3(C)に示すように、リピートフレームの始まりを表すスタートフィールドリピートデータSTrpと、コンフィギュレーションメモリに格納されるコンフィギュレーションデータCFGDと、同じフレームデータの繰り返し数を示すリファレンスカウントRCNTと、フレームの終わりを表すストップフィールドビットデータENBとからなる。スタートフィールドリピートデータSTrpには、リピートフレームであることを示す識別情報が含まれる。後で説明する手順によって、このリピートフレームからリファレンスカウントRCNTで示される数のノーマルフレームが生成される。
【0148】
リファレンスフレームは、図3(D)に示すように、フレームの始まりを表すスタートフィールドリファレンスデータSTrefと、回路情報記憶部102内の参照先の別のフレームのアドレスを示すリファレンスアドレスRADRと、参照の繰り返し数を示すリファレンスカウントRCNTと、参照先の別のフレーム内でデータを読み出す相対アドレスを示すリファレンスオフセットROFSと、フレームの終わりを表すストップフィールドビットデータENBとからなる。スタートフィールドリファレンスデータSTrefには、リファレンスフレームであることを示す識別情報が含まれる。
【0149】
後で説明する手順によって、このリファレンスフレームから、リファレンスアドレスRADRとオフセットアドレスROFSとから計算された、回路情報記憶部102に格納されたコンフィギュレーションデータを持ったノーマルフレームが、リファレンスカウントRCNTで示された数だけ生成される。
【0150】
ノーマルフレームに加えて、リピートフレームとリファレンスフレームの2種類のフレームを持つことが、この実施の形態で用いるシリアル形式の回路情報の特徴である。これら3種類のフレームは、上述のように、それぞれ異なるスタートフィールドのコードを持つことにより、回路情報編集部103において認識される。
【0151】
このように、同じ回路を再構成する回路情報であっても、回路情報のデータサイズ(回路情報を構成するフレーム数)が小さいことが、この発明の一つの特徴である。このデータサイズの小さい回路情報を、圧縮された回路情報と呼ぶことにする。
【0152】
前述の図37に示した例では、一つの回路情報が5フレーム(ノーマルフレーム)で構成され、回路情報入力制御部2を介して3回路情報(回路情報1、回路情報2、回路情報3)がコンフィギュレーションメモリ15に格納される。よって、図25に示した従来のマルチコンテキスト技術によるプログラマブル論理回路装置10のコンフィギュレーションメモリ15は、この例の場合には、少なくとも15フレームを記憶できる容量を備えなければならない。
【0153】
すなわち、一般的に、マルチコンテキスト技術によるプログラマブル論理回路装置のコンフィギュレーションメモリは、図22に示したような通常の従来のプログラマブル論理回路装置のコンフィギュレーションメモリに対して、「格納される回路情報数」倍の記憶容量を必要とする。
【0154】
これに対して、この第1の実施の形態では、例えば外部記憶装置から読み込まれた複数個の回路情報は、一旦、回路情報記憶部102に記憶される。そして、回路情報編集部103が、回路情報の選択信号に従って回路情報記憶部102から、圧縮された回路情報を取り出し、取り出した回路情報を、一つの回路情報を記憶する容量の従来と同様のコンフィギュレーションメモリ106に格納される回路情報に編集する。
【0155】
次に、回路情報入力制御部101が、その編集後の回路情報をコンフィギュレーションメモリ106に格納し、その回路情報に従って回路素子105に選択された回路が再構成される。
【0156】
プログラマブル論理回路部104のコンフィギュレーションメモリ106の容量が、プログラマブル論理回路装置100に格納される回路情報数にかかわらず、従来のプログラマブル論理回路装置と同じ容量であることが、この発明の別の特徴である。ノーマルフレームの形式の回路情報が5フレームからなる前述の例の場合には、コンフィギュレーションメモリ106は、1回路情報分である5フレームを記憶できる容量を備えていればよい。
【0157】
したがって、従来のマルチコンテキスト技術によるプログラマブル論理回路装置のコンフィギュレーションメモリの回路規模が大きいことに起因して、回路素子の負荷容量が大きくなることで、回路性能が低下したり消費電力が大きくなるという問題が、この第1の実施の形態により解決される。
【0158】
また、この第1の実施の形態では、回路情報は、前述のようにして図2(B)に示したように圧縮されるので、回路情報記憶部102は、ノーマルフレームの構造で必要とする容量よりも少ない容量で、必要とする複数個の回路情報を記憶することができる。因みに、上述の例の場合には、ノーマルフレームの形式で記憶する場合には、回路情報記憶部102では、15フレーム分の容量を必要とするものが、図2(C)に示すように、9フレーム分を記憶する容量で済むものである。
【0159】
[シリアル形式の回路情報による第1の実施の形態のプログラマブル論理回路装置100のコンフィギュレーション]
図4は、図1に示した、第1の実施の形態のプログラマブル論理回路装置へのシリアル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図4に示したブロック図を用いて、この場合の回路情報のコンフィギュレーションメモリへの格納を説明する。
【0160】
図1で示した回路情報入力制御部101は、図4においては、コンフィギュレーションコントローラ101a、レングスカウントレジスタ101b、セレクタ101c、複数個のシフトレジスタ101dで構成される。
【0161】
また、図1で示したプログラマブル論理回路部104の回路素子105とコンフィギュレーションメモリ106は、図4においては、例えば、図24(A)のようなFPGA型であれば、例えば縦一列の複数個の論理回路セル分を単位として、複数列分に分けられる。
【0162】
すなわち、縦一列の複数個の論理回路セル分の回路情報を格納できる容量のコンフィギュレーションメモリ106sと、それに接続される回路素子105sとからなる組として、複数列分で構成される。この場合、1ノーマルフレームの回路情報は、縦一列の複数個の論理回路セル分の回路情報の大きさとされる。
【0163】
そして、各シフトレジスタ101dの各段のレジスタは、各列のコンフィギュレーションメモリ106sの各メモリセルに結線される。したがって、各シフトレジスタ101dは、例えば、図24(A)のようなFPGA型であれば、縦一列の論理回路セル数への回路情報分の段数を備えるもので構成されている。そして、一つのシフトレジスタが縦一列の複数個の論理回路セルに対して割り当てられて、シフトレジスタ101dは、横方向の論理回路セル数分だけ設けられる。
【0164】
なお、論理回路セル数が多い場合には、数列〜数十列程度の複数列分について一つのシフトレジスタ101dが設けられて、その複数列に共通に一つのシフトレジスタ101dが使用されるように構成される場合もある。なお、回路情報のノーマルフレームの大きさは、シフトレジスタ101dの一つ分のデータ量となる。
【0165】
また、図1で示した回路情報記憶部102は、コンフィギュレーションキャッシュメモリ102Mに対応し、回路情報編集部103の機能は、コンフィギュレーションコントローラ101aに組み込まれている。
【0166】
この図4の構成において、外部記憶装置9から回路情報が読み込まれると、コンフィギュレーションコントローラ101aを介してコンフィギュレーションキャッシュメモリ102Mに格納される。
【0167】
コンフィギュレーションコントローラ101aが、コンテキスト選択の指示を受けると、指示に対応する回路情報が、コンフィギュレーションキャッシュメモリ102Mからコンフィギュレーションコントローラ101aに読み込まれる。コンフィギュレーションコントローラ101aは、読み込んだ回路情報のヘッダ部HDsのプリアンブルコードを検知して回路情報編集処理を開始する。
【0168】
プリアンブルコードに続くレングスカウントは、レングスカウントレジスタ101bに格納される。レングスカウントレジスタ101bの値は、次に説明するシフトレジスタ101dのデータシフトごとに1を減じられ、レングスカウントレジスタ101bの値が0になるまでシフトレジスタ101dが動作する。このことによって、全てのデータがシフトレジスタ101dに送り出される。
【0169】
区切りコードに続くデータ部DTsは、後述する手順により、リピートフレームやリファレンスフレームの状態として圧縮されたフレームから、圧縮が解かれた状態のノーマルフレームに変換されて、セレクタ101cに送られる。
【0170】
初期状態では、セレクタ101cは、データを第1列目のシフトレジスタ101dに送り出す。シフトレジスタ101dは、セレクタ101cから送り出されたデータを順次シフトする。データがシフトレジスタ101dの最後までシフトされると、セレクタ101cは次の列のシフトレジスタ101dにデータの送り出しを切り替える。先に述べたレングスカウンタの値が0になるまで、シフトレジスタ101dが動作することにより、全てのデータがシフトレジスタ101dに格納される。
【0171】
シフトレジスタ101dがデータで満たされると、そのデータは同時並列的にコンフィギュレーションメモリ106sに転送され、プログラマブル論理回路部104の再構成が行われる。この場合、例えば、前述の図29に示したように、コンフィギュレーションメモリ106sの各メモリセルのラッチが、シフトレジスタの各レジスタに接続されており、ラッチへラッチクロックLCLKを送ることによりシフトレジスタからコンフィギュレーションメモリへ同時並列的にデータが転送される。
【0172】
データ部DTsに続くフッタ部FTsのポストアンブルコードをコンフィギュレーションコントローラ101aが検知するとコンフィギュレーション処理が終了する。
【0173】
以上説明した再構成手順を、前述の例と同様に、アプリケーションプログラムにより指示される処理が、回路情報1、回路情報2、回路情報3の3個の回路情報により行われる場合として、図5、図7、図8のフローチャートと、図6のタイミングチャートを参照して説明する。なお、図6のタイミングチャートでは、回路情報1、回路情報2、回路情報3の順にプログラマブル論理回路装置が再構成されて、処理が終了するとした。
【0174】
まず、最初に、回路情報入力制御部101は、外部記憶装置(図1では図示せず)などに格納された回路情報を、一つずつ読み込んで回路情報記憶部102に格納する(ステップS201)。このとき、回路情報を読み込むたびに、回路情報記憶部102(コンフィギュレーションキャッシュメモリ102M)の残り容量を確認し(ステップS202、203)、全ての回路情報を読み込む前に回路情報記憶部102が一杯になったときは、エラーを検知して動作を終了する(ステップS204)。
【0175】
回路情報入力制御部101が、すべての回路情報を回路情報記憶部102に格納すると、回路情報編集部103(コンフィギュレーションコントローラ101aの一部)が選択信号を監視する(ステップS205)。回路情報編集部103は、例えば使用者の選択操作などにより選択信号が切り替えられたことを検知すると、3個の回路情報のうちのどれが選択されたかを判別し(ステップS206)、切り替えられた選択信号に応じた回路情報を回路情報記憶部102から読み出す(ステップS207またはステップS208またはステップS209)。
【0176】
次に、読み出した回路情報から、フレームの繰り返し(リピートフレーム)や他の回路情報のフレームの参照(リファレンスフレーム)の有無を調べ、リピートフレームやリファレンスフレームを、読み出した回路情報が含むと判別したときには、それらのリピートフレームやリファレンスフレームを、後述の図7、図8のフローチャートに示すようにして解消することにより、回路情報の圧縮状態を解き、その圧縮状態を解いた後の回路情報をコンフィギュレーションメモリ106に転送する(ステップS210)。
【0177】
回路情報編集部103は、例えば、図2(D)に示すように、回路情報1のように、フレーム(1−B)が4回繰り返す場合は、フレーム(1−B)の後に同じフレームデータを3回付加する。また、回路情報2のように、回路情報1のフレーム(1−A)が、その第2フレームに参照されている場合は、回路情報編集部103が回路情報記憶部102から回路情報1のフレーム(1−A)のデータを取り出して、回路情報2の第2フレームに挿入する。さらに、回路情報3のように、回路情報2のフレーム(2−A)とフレーム(2−B)が、その第1、第2、第3フレームと第4フレームに参照されている場合は、回路情報編集部103が回路情報記憶部102から、回路情報2のフレーム(2−A)とフレーム(2−B)のデータを取り出して、回路情報3の第1、第2フレーム、第3フレームと、第4フレームとに挿入する。
【0178】
以上のようにして、圧縮状態を解かれて、ノーマルフレームからなる回路情報とされたフレームデータが、全てコンフィギュレーションメモリ106に転送されて、格納されると、プログラマブル論理回路部104への指定された回路の再構成が完了する。なお、読み出した回路情報が、リピートフレームやリファレンスフレームを含まない場合には、そのまま回路情報は順次に、コンフィギュレーションメモリ106に転送され、指定された回路の再構成が完了する。
【0179】
その後、プログラマブル論理回路装置100による処理が継続する限り、回路情報編集部103による選択信号の監視が続けられる(ステップS211およびステップS205以降の処理)。プログラマブル論理回路装置100による処理が終了すると(ステップS211)、選択信号の如何にかかわらず再構成の手順は終了する。
【0180】
プログラマブル論理回路装置100による処理が終了した場合、プログラマブル論理回路装置100への電源供給が遮断されたりしない限り、一般的には、最後に選択された回路情報で再構成された状態が保持される。
【0181】
以上の処理を、図6のタイミングチャートについて、さらに説明する。すなわち、処理が実行状態になると、まず、3個の回路情報1、2、3の回路情報記憶部102への読み込みが行われる。読み込みが終了して、回路情報の選択指示が行われると、その選択指示された回路情報が、回路情報記憶部102から回路情報編集部103に転送され、必要な編集が行われる。そして、その編集後の回路情報が、コンフィギュレーションメモリ106に格納されて、その回路情報によりプログラマブル論理回路部104が再構成される。
【0182】
図6で、実行終了後も回路情報3が構成されて続けているのは、前述したように、処理が終了した場合、電源供給が遮断されたりしない限り、一般的には、プログラマブル論理回路装置は、最後に選択された回路情報で再構成された状態が保持されるからである。
【0183】
なお、コンフィギュレーションメモリ106sと回路素子105sとの組のすべてにシフトレジスタ101dが存在する場合であれば、編集後の回路情報は、それらのシフトレジスタ101dに書き込まれることにより、コンフィギュレーションメモリ106に格納される。
【0184】
しかし、シフトレジスタ101dが、複数列(複数組)のコンフィギュレーションメモリ106sと回路素子105sに対して共通となる場合には、回路情報編集部103は、その編集結果を保持するメモリ部を備える必要がある。
【0185】
[回路情報編集部103におけるリピートフレームおよびリファレンスフレームの解消処理]
図7および図8を参照しながら、図5のステップS210のリピートフレームやリファレンスフレームの解消処理を含む編集処理およびコンフィギュレーションメモリ106への転送処理について説明する。
【0186】
まず、回路情報編集部103が、最初のフレームを読み込み(ステップS301)、そのフレームの種類をフレームのスタートフィールド(ステップS302)で判別する。すなわち、スタートフィールドが、スタートフィールドビットデータSTBであるときには、ノーマルフレームであると判別し、また、スタートフィールドリピートデータSTrpであるときには、リピートフレームであると判別し、さらに、スタートリファレンスデータSTrefであるときには、リファレンスフレームであると判別する。
【0187】
ステップS302でのフレームの種類の判別の結果、読み込まれたフレームがノーマルフレームのときは、フレームのデータをそのまま送り出す(ステップS303)。
【0188】
ステップS302でのフレームの種類の判別の結果、読み込まれたフレームがリピートフレームのときは、リファレンスカウントRCNTを読み込む(ステップS304)。つぎに、出力はノーマルフレームのデータとして送出するので、スタートフィールドビットデータSTB、コンフィギュレーションデータCFGD、ストップフィールドビットデータENBを送り出して(ステップS305、S306、S307)、リファレンスカウントRCNTから1を減じる(ステップS308)。
【0189】
そして、リファレンスカウントRCNTの値が0になったか否か判別し(ステップS309)、0でなければ、ステップS305からステップS308の手順を繰り返す。そして、リファレンスカウントRCNTが0になったら、全ての処理が終了したか否か判別し(ステップS310)、終了していなければ、ステップS301に戻って、上述のステップを繰り返す。全ての処理を終了すれば、この処理ルーチンを終了する。
【0190】
以上のように、ステップS305からステップS308の手順が、リファレンスカウントRCNTが0になるまで繰り返されることにより、圧縮されたリピートフレームからリファレンスカウントRCNTで指示された数のノーマルフレームが生成される。
【0191】
ステップS302でのフレームの種類の判別の結果、読み込まれたフレームがリファレンスフレームのときは、リファレンスカウントRCNT、リファレンスアドレスRADR、リファレンスオフセットROFSを読み込む(図8のステップS311、S312,S313)。
【0192】
次に、回路情報記憶部102内の参照先のフレームの位置を示すリファレンスアドレスRADRに、参照先のフレーム内での参照するコンフィギュレーションデータCFGDの相対位置を表すリファレンスオフセットROFSを加えて、参照するコンフィギュレーションデータの、回路情報記憶部102の絶対アドレスを計算する(ステップS314)。
【0193】
次に、その絶対アドレスに位置するコンフィギュレーションデータを、回路情報記憶部102から読み出して回路情報編集部103内に一時的に格納する(ステップS315)。
【0194】
次に、リピートフレームの場合と同じように、出力はノーマルフレームのデータとして送出するので、スタートフィールドビットデータSTB、コンフィギュレーションデータCFGD、ストップフィールドビットデータENBを順次に送り出して(ステップS316、S317、S318)、リファレンスカウントRCNTから1を減じる(ステップS319)。そして、リファレンスカウントRCNTが0になるまで、ステップS316〜ステップS319の手順を繰り返す(ステップS320)。
【0195】
そして、リファレンスカウントRCNTが0になったら、全ての処理が終了したか否か判別し(ステップS310)、終了していなければ、ステップS301に戻って、上述のステップを繰り返す。全ての処理を終了すれば、この処理ルーチンを終了する。
【0196】
以上のように、ステップS316からステップS319の手順が、リファレンスカウントRCNTが0になるまで繰り返されることにより、圧縮されたリファレンスフレームから、参照されたコンフィギュレーションデータを持ったノーマルフレームがリファレンスカウントRCNTで指示された数だけ生成される。
【0197】
以上の手順を全てのフレームに対して行うことにより、リピートフレームやリファレンスフレームにより圧縮された回路情報から、圧縮が解かれた回路情報(ノーマルフレームのみからなる回路情報)が生成される。
【0198】
そして、以上のようにして圧縮が解かれた回路情報は、回路情報編集部103から回路情報入力制御部101に送られることにより、従来のプログラマブル論理回路装置のコンフィギュレーションと同じ手順で、プログラマブル論理回路部104にコンフィギュレーションされる。
【0199】
[第2の実施の形態]
次に、この発明によるプログラマブル論理回路装置の第2の実施の形態を、第1の実施の形態と比較しながら説明する。
【0200】
この第2の実施の形態のプログラマブル論理回路装置としては、前述の図1に示した第1の構造のプログラマブル論理回路装置100を用いる。また、回路情報は、図3に示したものと同一のシリアル形式の回路情報を用いる。この第2の実施の形態で、第1の実施の形態と異なるのは、コンフィギュレーションの方法である。
【0201】
図9は、この第2の実施の形態の場合の回路情報およびその編集動作を説明するための図である。この図9の例も、図2の第1の実施の形態の場合と同様に、前述の従来のマルチコンテキスト技術によるプログラマブル論理回路装置のコンフィギュレーションにおいて説明した図37に示したものと同じ3つの回路情報1、2、3による3個の回路を再構成する手順の例である。
【0202】
この図9においても、回路情報のフレーム構造は、図2に示したものと同じである。すなわち、図9(A)〜図9(C)は、図2(A)〜図2(C)と全く同一である。
【0203】
この第2の実施の形態においても、図6に示したタイミングチャートと同じように、回路情報1、回路情報2、回路情報3、の順番で再構成されるとする。
【0204】
この第2の実施の形態においては、回路情報2によって再構成した後に、回路情報3によって再構成するとき、回路情報3の第1フレームと第4フレームのフレームデータは、回路情報2の第1フレームと第4フレームのフレームデータとそれぞれ同じであることが、回路情報編集部103によって検知される。
【0205】
異なる回路情報において、同じ位置のフレームのデータが同じであるということは、回路情報が異なっても、プログラマブル論理回路部104において、そのフレームに対応した回路素子の機能と結線状態は同じであるということを意味する。すなわち、回路情報2に従って再構成された後に、回路情報3に従って再構成する場合は、第1フレームと第4フレームに対応する回路情報は、改めてコンフィギュレーションメモリ106に格納する必要は無いことが分かる。
【0206】
そこで、この第2の実施の形態では、回路情報編集部103は、編集により生成した回路情報が、その前に生成された回路の回路情報と、同じフレーム位置に同じフレームのデータを含む場合は、そのフレームのデータを回路情報入力制御部101に転送しない。
【0207】
この第2の実施の形態における回路情報編集部103での編集処理およびコンフィギュレーションメモリ106への転送処理を、図10および図11のフローチャートと、前述の図6のタイミングチャートを参照して説明する。図6のタイミングチャートでは、回路情報1、回路情報2、回路情報3の順にプログラマブル論理回路装置が再構成されて、処理が終了するとしている。
【0208】
図10および図11のフローチャートのほとんどは、第1の実施の形態における対応する図7および図8のフローチャートと同一であるので、その同一部分には、図7および図8のフローチャートと同じステップ番号を付すことにする。
【0209】
図10および図11と、第1の実施の形態の図7および図8との違いは、次の通りである。すなわち、ステップS302でのフレームの種類の判別の結果、読み込まれたフレームが、リファレンスフレームであると判別されたときには、図11に示すように、そのフレームが、その直前に再構成された回路の回路情報の同じ位置のフレームと同一であるか否か判別され(ステップS330)、同一でなければ、前述と同様にして、ステップS311以降の手順を実行する。
【0210】
一方、ステップS330での判別の結果、そのフレームが、その直前に再構成された回路の回路情報の同じ位置のフレームと同一であると判別されたときには、そのフレームの回路情報のコンフィギュレーションメモリ106への転送は、スキップされ(ステップS331)、リファレンスカウントRCNTから1を減じる(ステップS332)。
【0211】
そして、リファレンスカウントRCNTの値が0になったか否か判別し(ステップS333)、0でなければ、ステップS330に戻り、上述の動作を繰り返す。そして、ステップS333でリファレンスカウントRCNTが0になったと判別されたときには、全ての処理が終了したか否か判別し(ステップS310)、終了していなければ、ステップS301に戻って、上述のステップを繰り返す。全ての処理を終了すれば、この処理ルーチンを終了する。
【0212】
その他のステップの手順は、図7および図8で説明したものと全く同一である。すなわち、図11において、アンダーラインを付したステップが、この第2の実施の形態において、図7および図8のフローチャートに付加されている。
【0213】
図9(D)に示すように、この場合の例においては、回路情報2のフレーム(2−A)が、回路情報3の第1、第2、第3フレームに参照されており、また、回路情報2のフレーム(2−B)が、回路情報3の第4フレームに参照されている。そして、それらの参照されているフレームのうち、第1フレームと第4フレームのフレームデータが、回路情報2と、回路情報3とで同一である。このため、この第2の実施の形態の場合には、回路情報3では、図9(D)でブランクで示すように、第1フレームと第4フレームのフレームデータは、コンフィギュレーションメモリ106には転送されない。
【0214】
しかし、コンフィギュレーションメモリ106の対応するフレームの部分には、既に、回路情報2の各フレームデータが転送されて格納されていることから、回路情報3で必要とするフレームデータが格納されている。
【0215】
以上のようにして、この第2の実施の形態においては、既にコンフィギュレーションメモリ106に存在している回路情報を有効利用することにより、不必要なフレームデータの転送を回避することができるので、回路情報のコンフィギュレーションを、より高速化することができるものである。
【0216】
[第3の実施の形態]
[この発明によるプログラマブル論理回路装置の第2の構造]
この第3の実施の形態のプログラマブル論理回路装置は、この発明によるプログラマブル論理回路装置の第2の構造を備える。図12は、この第2の構造を備える、この発明によるプログラマブル論理回路装置200の構成を示すもので、回路情報を外部から読み込む回路情報入力制御部201と、読み込まれた回路情報に従って回路機能を実現するプログラマブル論理回路部202とから構成される。
【0217】
プログラマブル論理回路部202には、回路が再構成される回路素子2021と、この回路素子2021に回路を再構成するための回路情報を格納するコンフィギュレーションメモリ2022が設けられるのは、前述の実施の形態と同様であるが、さらに、この第2の構造においては、プログラマブル論理回路部202には、処理に必要となる複数の回路情報を一時的に記憶する回路情報記憶部2023と、これらの複数の回路情報から必要な回路情報を選択して編集する回路情報編集部2024とが再構成されて設けられる。
【0218】
すなわち、前述した第1の構造は、従来の通常の構成のプログラマブル論理回路装置の構成要素である回路情報入力制御部とプログラマブル論理回路部の他に、回路情報記憶部と、回路情報編集部を新たに設ける構成であって、従来の通常の構成のプログラマブル論理回路装置を、そのまま用いることができない構成であるが、この発明によるプログラマブル論理回路装置の実施の形態の第2の構造は、従来の通常の構成のプログラマブル論理回路装置のプログラマブル論理回路部202内に、回路情報記憶部2023と回路情報編集部2024とを再構成した構造とすることにより、従来の通常の構成のプログラマブル論理回路装置をそのまま使用できるようにした場合である。
【0219】
この第2の構造においても、第1の構造と同じように、プログラマブル論理回路装置200に読み込まれた複数の回路情報は、プログラマブル論理回路部202の回路情報記憶部2023に格納され、回路情報編集部2024で編集された後に、回路情報入力制御部201によってコンフィギュレーションメモリ2022に書き込まれる。コンフィギュレーションメモリ2022に書き込まれた回路情報に従って、回路素子2021の機能と結線状態が決められる。
【0220】
第2の構造の、第1の構造との第一の違いは、まず最初に、プログラマブル論理回路装置200として一つの回路情報を読み込んで、そのプログラマブル論理回路部202に、回路情報記憶部2023と回路情報編集部2024の機能を備える回路部分を再構成することにある。このときの回路情報は、回路情報入力制御部201を介してコンフィギュレーションメモリ2022に格納される。
【0221】
また、第2の構造の、第1の構造との第2の違いは、例えば外部記憶装置から複数の回路情報を読み込んで回路情報記憶部2023に記憶するときに、回路情報入力制御部201を介さず、プログラマブル論理回路部202の入出力部を介して回路情報記憶部2023に複数の回路情報を読み込むことにある。したがって、この第2の構造においては、プログラマブル論理回路部202の入出力部が、回路情報記憶部2023への回路情報の書き込み手段を構成する。
【0222】
また、第2の構造の、第1の構造との第3の違いは、回路情報編集部2024で編集された回路情報が、プログラマブル論理回路部202の入出力部を介してプログラマブル論理回路装置200の外部に出力され、改めて回路情報入力制御部201に入力されることである。回路情報入力制御部201が、コンフィギュレーションメモリ2022に回路情報を転送してコンフィギュレーションを実行するのは、従来と同様である。
【0223】
上記の第2と第3の違いは、従来のプログラマブル論理回路装置は複数の回路情報を読み込むことができないこと、プログラマブル論理回路部に構成された回路は入出力部を介してデータを入出力しなければならないこと、により生じる。
【0224】
[第3の実施の形態におけるコンフィギュレーション]
この第3の実施の形態においては、プログラマブル論理回路装置200が上述した第2の構造を備える他は、シリアル形式で回路情報が構成されるとともに、回路情報が前述の図3に示すような3種のフレーム構成を取り得ることにより、前述と同様にして圧縮される点は、前述の第1および第2の実施の形態の場合と同様である。
【0225】
以下では、第3の実施の形態のプログラマブル論理回路装置200の構成要素のうち、回路情報入力制御部201、回路情報記憶部2023、回路情報編集部2024、コンフィギュレーションメモリ2022に着目して、図13を参照しながら、この第3の実施の形態のプログラマブル論理回路装置200の動作を説明する。
【0226】
図13に示した例では、プログラマブル論理回路装置200のコンフィギュレーションメモリ2022は、5フレーム分の回路情報が格納可能である。そして、このプログラマブル論理回路装置200においては、最初の1フレーム(第1フレーム)で回路情報記憶部2023と回路情報編集部2024を、プログラマブル論理回路部202内に再構成し、残りの4フレーム(第2フレームから第5フレーム)で、3種類の処理回路を再構成する。
【0227】
実際的には、図13に示すように、最初の回路情報として、回路情報記憶部2023と回路情報編集部2024とを再構成するための第1フレームのみの回路情報0を用意する。そして、この回路情報0により、プログラマブル論理回路部202に回路情報記憶部2023と回路情報編集部2024とを再構成する。処理に必要な回路情報1、2、3は、図13に示すように、この第1フレームの部分は、再構成しないように、第1フレーム部分はブランクとした4フレームで構成される。
【0228】
図13の例においては、最終的には、前述の実施の形態と同様にして、3つの回路情報1、2、3は、前述のような回路情報の圧縮により、より小さいフレーム数で構成される。
【0229】
すなわち、回路情報1は、フレーム(1−A)と、フレーム(1−B)の2フレームで構成される。フレーム(1−B)は、リピートフレームの構成であり、この例の場合には、同フレームを3回繰り返すという参照情報が付加されている。
【0230】
回路情報2は、フレーム(2−A)、フレーム(1−A)、フレーム(2−B)の3フレームで構成される。回路情報2のフレーム(1−A)は、リファレンスフレームであり、そのフレームデータには回路情報1のフレーム(1−A)と同じであるという参照情報が付加されているとともに、同フレームを2回繰り返すという参照情報が付加されている。
【0231】
回路情報3は、フレーム(2−A)、フレーム(2−B)の2フレームで構成される。回路情報3のフレーム(2−A)とフレーム(2−B)には、それぞれ、フレームデータは回路情報2のフレーム(2−A)とフレーム(2−B)と同じであるという参照情報が付加され、また、フレーム(2−A)には、同フレームを3回繰り返すという参照情報が付加されている。
【0232】
以上のように、この第3の実施の形態の回路情報も、第1の実施の形態と同じようにして圧縮されている。したがって、回路情報記憶部2023に格納されるフレーム数は、圧縮がない場合には、12フレーム分が必要であるのに対して、7フレームというように、少ないフレーム数で良くなる。
【0233】
そして、この第3の実施の形態においても、回路情報記憶部2023および回路情報編集部2024の働きは、上述の実施の形態と同様であり、外部から読み込まれた複数の回路情報、この例では回路情報1、2、3は、回路情報記憶部2023に一時記憶される。そして、回路情報編集部2024は、使用者の選択指示に応じた選択信号に従って、回路情報記憶部2023から圧縮された回路情報を取り出し、取り出した回路情報を従来のプログラマブル論理回路装置のコンフィギュレーションメモリに格納される回路情報と同様の回路情報に編集する。次に、回路情報入力制御部201が、回路情報編集部2024からの回路情報をコンフィギュレーションメモリ2022に格納し、その回路情報に従ってプログラマブル論理回路装置200が再構成される。
【0234】
この再構成手順を図15のフローチャートと図16のタイミングチャートを参照して説明する。図16のタイミングチャートでは、回路情報1、回路情報2、回路情報3の順にプログラマブル論理回路装置200に処理に必要な回路が再構成されて、処理が終了するとした。
【0235】
図15のフローチャートは、前述した第1の実施の形態および第2の実施の形態の図5のフローチャートと比較すると、最初に、ステップS400が挿入されている点が異なるのみで、その後のステップは、全く同一である。そこで、図15のフローチャートにおいても、図5のフローチャートと同一ステップには、同一ステップ番号を付している。
【0236】
まず、最初に、回路情報入力制御部201は、プログラマブル論理回路部202に、回路情報記憶部2023と回路情報編集部2024とを再構成する回路情報0を読み込む。図13に示すように、回路情報0は、その第1フレーム0に、回路情報記憶部2023と回路情報編集部2024とを再構成する回路情報を有している。そして、その第2フレームから第5フレームは、後に処理回路を再構成するために、空きフレームとなっている。この手順は、従来のプログラマブル論理回路装置で実現される手順と同じである。
【0237】
その後は、前述したステップS201〜ステップS211の手順が実行されて、回路情報1、2、3は、順次、圧縮が解凍されながら、コンフィギュレーションメモリ2022に格納され、プログラマブル論理回路装置200に、処理に必要な回路が順次に再構成される。
【0238】
すなわち、外部記憶装置(図示せず)などに格納されている複数個の回路情報1、2、3を、プログラマブル論理回路部202の入出力部を介して、一つずつ読み込んで回路情報記憶部2023に格納する(ステップS201)。前述の実施の形態の場合と異なり、この第2の実施の形態の場合には、回路情報入力制御部を介して読み込むのではなく、プログラマブル論理回路部202の入出力部を介して読み込む。
【0239】
このとき、一つの回路情報を読み込むたびに、回路情報記憶部2023の残り容量を確認し、全ての回路情報を読み込む前に回路情報記憶部2023が一杯になったときは、エラーを検知して動作を終了する(ステップS202、S203,204)。
【0240】
読み込まれる回路情報1、2、3の第1フレームは、図13に示すように、既に、コンフィギュレーションメモリ2022に格納されて、プログラマブル論理回路部202に再構成されている回路情報記憶部2023と回路情報編集部2024の部分と干渉しないように、つまり、プログラマブル論理回路部202において、これら回路情報記憶部2023と回路情報編集部2024の回路構成が壊されないように、空きフレームとなっている。
【0241】
すべての回路情報が回路情報記憶部2023に格納されると(ステップS202)、回路情報編集部2024が選択信号を監視する(ステップS205、ステップS206)。回路情報編集部2024が、選択信号が切り替えられたことを検知すると、切り替えられた回路情報に従って、回路情報記憶部2023から、必要な回路情報を取り出す(ステップS207〜ステップS209)。
【0242】
次に、取り出した回路情報から、フレームの繰り返し(リピートフレーム)や他の回路情報のフレームの参照(リファレンスフレーム)を調べ出し、それらのリピートフレームやリファレンスフレームを解消することにより、回路情報の圧縮状態を解く(ステップS210)。
【0243】
ステップS210の回路情報編集処理においては、図14に示すように、回路情報1のように、フレーム(1−B)が3回繰り返す場合は、フレーム(1−B)の後に同じフレームデータを2回付加する。
【0244】
回路情報2のように、回路情報1のフレーム(1−A)が、その第3フレームに参照されている場合は、回路情報編集部2024が回路情報記憶部2023から回路情報1のフレーム(1−A)のデータを取り出して、回路情報2の第3フレームに挿入する。
【0245】
さらに、回路情報3のように、回路情報2のフレーム(2−A)とフレーム(2−B)が、その第2、第3、第4フレームと、第5フレームに参照されている場合は、回路情報編集部2024が回路情報記憶部2023から回路情報2のフレーム(2−A)とフレーム(2−B)のデータを取り出して、回路情報3の第2、第3、第4フレームと第5フレームに挿入する。
【0246】
圧縮状態を解かれた回路情報は、回路情報入力制御部201に送られ、従来のプログラマブル論理回路装置と同じように、コンフィギュレーションメモリ2022に格納され、再構成が完了する(ステップS211)。
【0247】
その後、プログラマブル論理回路装置による処理が継続する限り、回路情報編集部による選択信号の監視が続けられる。プログラマブル論理回路装置による処理が終了すると、選択信号の如何にかかわらず再構成の手順は終了する。
【0248】
図16は、以上の回路情報の読み込みおよび回路情報の再構成動作のタイミングチャートである。回路情報1、2、3の読み込みに先立ち、回路情報記憶部2023および回路情報編集部2024をプログラマブル論理回路部202に予め再構成するため、回路情報0を読み込むようにする点が、第1および第2の実施の形態の場合の図6のタイミングチャートと異なっている。
【0249】
[第4の実施の形態]
この第4の実施の形態は、第3の実施の形態において、前述した第2の実施の形態と同様に、直前に既にプログラマブル論理回路部202に再構成してある回路を有効利用するようにした場合である。
【0250】
すなわち、この第4の実施の形態においては、回路情報編集部2024で、回路情報記憶部2023から読み出した回路情報の編集を行なって、回路情報入力制御部201を通じてコンフィギュレーションメモリ2022に回路情報を転送する際に、その直前にプログラマブル論理回路部202に再構成されて生成された回路の回路情報と、同じフレーム位置に同じフレームのデータを含む場合は、そのフレームのデータは、回路情報入力制御部201を通じてコンフィギュレーションメモリ2022に転送しない。
【0251】
例えば、前述と同様の3つの回路情報1、2、3により、3つの回路を順次にプログラマブル論理回路装置200に再構成して生成する場合を例にとると、図17に示すように、回路情報2によってプログラマブル論理回路部202を再構成した後に、回路情報3によってプログラマブル論理回路部202を再構成するとき、回路情報3の第2フレームと第5フレームのフレームデータは、回路情報2の、同じ位置のフレームのデータとそれぞれ同じであることが、回路情報編集部2024によって検知される。
【0252】
そして、前述もしたように、回路情報において同じ位置のフレームのデータが同じであるということは、そのフレームに対応した回路素子の機能と結線状態は同じであるということを意味するので、回路情報3に従って再構成する場合は、第2フレームと第5フレームに対応する回路情報を改めてコンフィギュレーションメモリに格納する必要はなく、図10および図11に示した場合と全く同様にして、そのフレームのデータ部分は、スキップして、そのフレームデータを回路情報入力制御部201に転送しない。
【0253】
[第5の実施の形態]
以上説明した第1〜第4の実施の形態は、全て、回路情報は、シリアル形式の場合としたが、この発明は、パラレル形式の回路情報の場合にも、もちろん適用できる。この第5の実施の形態は、パラレル形式の回路情報の場合である。
【0254】
この第5の実施の形態では、パラレル形式の回路情報の具体的な構造を示して、回路情報編集部103(第1および第2の実施の形態の場合)や回路情報編集部2024(第3および第4の実施の形態の場合)で行われる回路情報のリピートフレームやリファレンスフレームの解消について説明する。
【0255】
[この発明によるパラレル形式の回路情報]
この第5の実施の形態に用いるパラレル形式の回路情報の構造を図18に示す。図32に示した従来のパラレル形式の回路情報と同じように、この場合のパラレル形式の回路情報も、図18(A)に示すように、ヘッダ部HDp、データ部DTp、フッタ部FTpから構成される。
【0256】
プログラマブル論理回路装置100または200内では、あるビット幅(例えば32ビット)のパラレル形式の回路情報は、適当な単位(例えば、1ビット、64ビット)で区切ることにより、プログラマブル論理回路装置100または200外で、シリアル転送、異なるバス幅のパラレル伝送やパラレルメモリアクセスを行うことができる。
【0257】
ヘッダ部HDpは、回路情報の始まりを示すプリアンブルコードと、回路情報の入力クロック速度などのコンフィギュレーションパラメータを設定するオプションコードと、設定されたオプションを実行してデータの読み込みを開始するスイッチコマンドとからなる。このスイッチコマンドは、この発明の各実施の形態の回路情報編集部への編集指示情報ともなっている。
【0258】
データ部DTpは、シリアル形式と同様に3種類の複数のフレームからなる。フッタ部FTpは、回路情報の終わりを表すポストアンブルコードからなる。
【0259】
データ部DTpを構成するフレームは、このパラレル形式においても、ノーマルフレーム、リピートフレーム、リファレンスフレームの3種類である。
【0260】
ノーマルフレームは、図18(B)に示すように、従来のパラレル形式の回路情報で用いられるフレームと同じ構造であり、データを書きこむコンフィギュレーションメモリ内のフレーム位置を表すフレームアドレスFADR、データの書きこみを指示するデータインコマンドDIN、コンフィギュレーションデータCFGDから読み込むワード数を指示するワードカウントWCNT、コンフィギュレーションデータCFGDからなる。
【0261】
リピートフレームは、図18(C)に示すように、データを書きこむコンフィギュレーションメモリ内のフレーム位置を表すフレームアドレスFADR、データの繰り返しを指示するリピートコマンドREPT、コンフィギュレーションデータCFGDから読み込むワード数を指示するワードカウントWCNT、繰り返し数を指示するリファレンスカウントRCNT、コンフィギュレーションデータCFGDからなる。のちに説明する手順で、圧縮されたリピートフレームからリファレンスカウントRCNTで示された数のノーマルフレームが生成される。
【0262】
リファレンスレームは、図18(D)に示すように、データを書きこむコンフィギュレーションメモリ内のフレーム位置を表すフレームアドレスFADR、データの参照を指示するリファレンスコマンドREFC、コンフィギュレーションデータCFGDから読み込むワード数を指示するワードカウントWCNT、繰り返し数を指示するリファレンスカウントRCNT、参照先のフレーム内でデータを読み出す相対アドレスを示すリファレンスオフセットROFS、回路情報記憶部102または2023内の参照先のフレームのアドレスを示すリファレンスアドレスRADRからなる。のちに説明する手順で、圧縮されたリファレンスフレームから、リファレンスアドレスRADRとオフセットアドレスROFSから計算された回路情報記憶部102または2023に格納されたコンフィギュレーションデータを持ったノーマルフレームが、リファレンスカウントRCNTで示された数だけ生成される。
【0263】
ノーマルフレームに加えて、リピートフレームとリファレンスフレームの2種類のフレームを持つことが、この例のパラレル形式の回路情報の特徴である。これら3種類のフレームは、それぞれ異なるコマンド(データインコマンドDIN、リピートコマンドREPT、リファレンスコマンドREFC)を持つことにより、それが回路情報編集部103または2024に認識され、区別される。
【0264】
[パラレル形式の回路情報による第1の構造のプログラマブル論理回路装置100のコンフィギュレーション]
図19は、図1に示した、第1の構造のプログラマブル論理回路装置へのパラレル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図19に示したブロック図を用いて、この場合の回路情報のコンフィギュレーションメモリへの格納を説明する。
【0265】
図1で示した回路情報入力制御部101は、図19においては、コンフィギュレーションコントローラ101e、アドレス生成器101f、セレクタ101gで構成される。
【0266】
また、図1で示したプログラマブル論理回路部104の回路素子105とコンフィギュレーションメモリ106は、図19においては、例えば、図24(A)のようなFPGA型であれば、例えば縦一列の複数個の論理回路セル分を単位として、複数列分に分けられる。
【0267】
すなわち、縦一列の複数個の論理回路部分の回路情報を格納できる容量のコンフィギュレーションメモリ106sと、それに接続される回路素子105sとからなる組として、複数列分で構成される。この場合、1ノーマルフレームの回路情報は、縦一列の複数個の論理回路部分の回路情報の大きさとされる。
【0268】
そして、図34に示したものと同様にして、各列のコンフィギュレーションメモリ106sのビット線がセレクタ101gに結線される。また、コンフィギュレーションメモリ106sのワード線は、アドレス生成器101fに結線される。
【0269】
また、図1で示した回路情報記憶部102は、図19ではコンフィギュレーションキャッシュメモリ102Mに対応し、回路情報編集部103の機能は、コンフィギュレーションコントローラ101eに組み込まれている。
【0270】
この図19の構成において、外部記憶装置9から回路情報が読み込まれると、コンフィギュレーションコントローラ101eを介してコンフィギュレーションキャッシュメモリ102Mに格納される。
【0271】
コンフィギュレーションコントローラ101eが、コンテキスト選択の指示を受けると、指示に対応する回路情報が、コンフィギュレーションキャッシュメモリ102Mからコンフィギュレーションコントローラ101eに読み込まれる。そして、コンフィギュレーションコントローラ101eが、回路情報のヘッダ部HDpのプリアンブルコードを検知して回路情報編集処理を開始する。
【0272】
まず、プリアンブルコードに続くオプションコードでコンフィギュレーションのパラメータが設定される。そして、次のスイッチコマンドにより、設定されたオプションが実行され、データDTpの読み込みが開始される。
【0273】
データ部DTpのフレームデータは、後述する手順により、リピートフレームやリファレンスフレームにより圧縮されたフレームから、圧縮が解かれたノーマルフレームに変換される。そして、各フレームのフレームアドレスFADRがアドレス生成器102fに読み込まれ、データを書き込むコンフィギュレーションメモリ106sに対応するビット線とワード線が選択される。次に、データインコマンドDINが起動され、コンフィギュレーションデータCFGDからワードカウントWCNTに示される数だけのデータが読み出されて、セレクタ101gを介してコンフィギュレーションメモリ106sに書き込まれる。この手順を全てのフレームに対して繰り返す。
【0274】
データ部DTpに続くフッタ部FTpのポストアンブルコードをコンフィギュレーションコントローラ101eが検知すると、コンフィギュレーション処理が終了する。以上の処理は、図5のフローチャートに示した手順と全く同様であるが、ステップS210での回路情報編集部103での、圧縮解凍処理が、図20および図21に示すようになる点が、前述のシリアル形式の回路情報の場合(図7、図8)とは異なる。
【0275】
[回路情報編集部での処理]
図20および図21を参照しながら、このパラレル形式の回路情報の場合の実施の形態におけるリピートフレームやリファレンスフレームの解消処理を説明する。
【0276】
まず、回路情報編集部103が、最初のフレームを読み込み、その種類を各フレームのフレームアドレスFADRに続くコマンドで判別する。そして、読み込まれたフレームがノーマルフレームであると判別されたときは、そのフレームのデータをそのまま送り出す(ステップS503)。
【0277】
また、読み込まれたフレームがリピートフレームであると判別されたときは、リファレンスカウントRCNTを読み込む。つぎに、フレームアドレスFADR、データインコマンドDIN、ワードカウントWCNT、コンフィギュレーションデータCFGDを、順次送り出して(ステップS504〜S508)、リファレンスカウントRCNTから1を減じる(ステップS509)。この手順をリファレンスカウントが0になるまで繰り返す(ステップS510)ことにより、圧縮されたリピートフレームから、リファレンスカウントRCNTで指示された数のノーマルフレームを生成する。
【0278】
また、読み込まれたフレームがリファレンスフレームであると判別されたときは、リファレンスカウントRCNT、リファレンスアドレスRADR、リファレンスオフセットROFSを読み込む(図21のステップS511〜S513)。次に、回路情報記憶部102内の参照先のフレームの位置を示すリファレンスアドレスRADRに、参照先のフレーム内での参照するコンフィギュレーションデータCFGDの相対位置を表すリファレンスオフセットROFSを加えて、参照するコンフィギュレーションデータCFGDの絶対アドレスを計算する(ステップS514)。
【0279】
次に、その絶対アドレスに位置するコンフィギュレーションデータCFGDを読み出して回路情報編集部103内に一時的に格納する(ステップS515)。次に、前述したリピートフレームの場合と同じように、リファレンスカウントRCNTが0になるまで、フレームアドレスFADR、データインコマンドDIN、ワードカウントWCNT、コンフィギュレーションデータCFGDを送り出して(ステップS516〜S521)、圧縮されたリファレンスフレームから、参照されたコンフィギュレーションデータCFGDを持ったノーマルフレームをリファレンスカウントRCNTで指示された数だけ生成する。
【0280】
この手順を全てのフレームに対して行うことにより(ステップS522)、リピートフレームやリファレンスフレームにより圧縮された回路情報から、圧縮が解かれたノーマルフレームのみからなる回路情報が生成される。
【0281】
この圧縮が解かれた回路情報を、回路情報入力制御部101に送ることにより、従来のプログラマブル論理回路装置のコンフィギュレーションと同じ手順でコンフィギュレーションされる。
【0282】
なお、以上説明した第5の実施の形態は、第1の構造のプログラマブル論理回路装置100のコンフィギュレーションに、パラレル形式の回路情報を用いた場合であるが、第2の構造のプログラマブル論理回路装置200の場合にも、同様に適用できるとともに、第2の実施の形態や第4の実施の形態の場合のように、プログラマブル論理回路部に既に生成されている回路を有効利用する場合にも、前述と同様にして、適用できるものである。
【0283】
なお、上述の回路情報の圧縮方法は一例であって、回路情報の圧縮方法としては、どのようなものであっても良い。そして、回路情報編集部103は、その回路情報の圧縮方法に対応する編集処理を行なう機能を備えるように構成されるものである。
【0284】
【発明の効果】
以上説明したように、この発明によれば、従来のマルチコンテキスト技術のように複数の回路情報を記憶するための余分なコンフィギュレーションメモリを必要としないプログラマブル論理回路部によるマルチコンテキスト技術と同等の技術を実現することができ、これを用いてプログラマブル論理回路装置の再構成時間を短縮し、回路再構成時間を含めた総処理時間で比べても、ソフトウエア処理に比べて処理時間の短いハードウエア処理を実現できる。その結果、キャッシュロジック技術によるリコンフュギュラブルコンピューティングを用いた、高速で小型化された情報処理システムを実現することができるようになる。
【0285】
また、従来のマルチコンテキスト技術のようにプログラマブル論理回路部に余分なコンフィギュレーションメモリを必要としないので、余分なコンフィギュレーションメモリを配置することで生じる配線負荷容量の増大に起因する、回路性能の低下、消費電力の増加をもたらすことなく、マルチコンテキスト技術によるものと同等のプログラマブル論理回路装置を実現することができる。
【0286】
また、この発明においては、回路情報記憶部には圧縮された回路情報を格納するようにしたので、同じ回路情報を従来のマルチコンテキスト技術よりも少ないメモリ容量でプログラマブル論理回路装置内に格納することができ、その結果、製造工程の増加、回路性能の低下などをもたらすDRAM技術を用いることなく、従来のマルチコンテキスト技術によるプロプログラマブル論理回路装置より小さな回路規模でマルチコンテキスト技術と同等技術を実現することができる。
【0287】
また、この発明によるプログラマブル論理回路装置は、従来の通常のプログラマブル論理回路装置と同じ構造のプログラマブル論理回路部を用いることができるので、従来のプログラマブル論理回路装置の設計を用いて容易に実現することができる。
【0288】
また、この発明によるプログラマブル論理回路装置の回路情報記憶部と回路情報編集部を、回路情報を読み込むことで従来のプログラマブル論理回路装置に構成することにより、新たに回路装置を作製することなく、従来のプログラマブル論理回路装置を用いて、この発明のプログラマブル論理回路装置を実現することができるというメリットもある。
【図面の簡単な説明】
【図1】この発明によるプログラマブル論理回路装置の実施の形態の第1の構造を説明するブロック図である。
【図2】この発明によるプログラマブル論理回路装置の第1の実施の形態を説明する図である。
【図3】この発明の実施の形態で用いるシリアル形式の回路情報の例を説明する図である。
【図4】シリアル形式の回路情報を用いてコンフィギュレーションを行なう実施の形態のプログラマブル論理回路装置を説明するブロック図である。
【図5】第1の実施の形態のプログラマブル論理回路装置の動作を説明するためのフローチャートである。
【図6】第1および第2の実施の形態のプログラマブル論理回路装置の動作を説明するためのタイミングチャートである。
【図7】第1および第3の実施の形態のプログラマブル論理回路装置におけるシリアル形式の回路情報の編集を説明するためのフローチャートの一部である。
【図8】第1および第3の実施の形態のプログラマブル論理回路装置におけるシリアル形式の回路情報の編集を説明するためのフローチャートの残部である。
【図9】この発明によるプログラマブル論理回路装置の第2の実施の形態を説明する図である。
【図10】第2および第4の実施の形態のプログラマブル論理回路装置におけるシリアル形式の回路情報の編集を説明するためのフローチャートの一部である。
【図11】第2および第4の実施の形態のプログラマブル論理回路装置におけるシリアル形式の回路情報の編集を説明するためのフローチャートの残部である。
【図12】この発明によるプログラマブル論理回路装置の実施の形態の第2の構造を説明するブロック図である。
【図13】この発明によるプログラマブル論理回路装置の第3の実施の形態を説明するための図である。
【図14】この発明によるプログラマブル論理回路装置の第3の実施の形態における編集動作を説明するための図である。
【図15】第3の実施の形態のプログラマブル論理回路装置の動作を説明するためのフローチャートである。
【図16】第3と第4の実施の形態のプログラマブル論理回路装置の動作を説明するためのタイミングチャートである。
【図17】この発明による第4の実施の形態のプログラマブル論理回路装置における編集動作を説明するための図である。
【図18】この発明の実施の形態で用いるパラレル形式の回路情報の例を説明する図である。
【図19】パラレル形式の回路情報を用いてコンフィギュレーションを行なう実施の形態のプログラマブル論理回路装置を説明するブロック図である。
【図20】この発明の実施の形態において、パラレル形式の回路情報を用いる場合の編集動作を説明するためのフローチャートの一部である。
【図21】この発明の実施の形態において、パラレル形式の回路情報を用いる場合の編集動作を説明するためのフローチャートの残部である。
【図22】従来のプログラマブル論理回路装置の構造を説明するブロック図である。
【図23】従来のプログラマブル論理回路装置のプログラマブル論理回路部の構造を説明するブロック図である。
【図24】FPGA型およびCPLD型のプログラマブル論理回路部の具体的構造例を示す図である。
【図25】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の構造を説明するブロック図である。
【図26】従来のマルチコンテキスト技術によるプログラマブル論理回路装置のプログラマブル論理回路部の構造を説明するブロック図である。
【図27】従来のシリアル形式の回路情報を説明する図である。
【図28】シリアル形式の回路情報を用いる従来のプログラマブル論理回路装置を説明するブロック図である。
【図29】シリアル形式の回路情報を用いるプログラマブル論理回路装置のプログラマブル論理回路部の一部を説明するブロック図である。
【図30】シリアル形式の回路情報を用いるマルチコンテキスト技術によるプログラマブル論理回路装置のプログラマブル論理回路部の一部の構成を説明するブロック図である。
【図31】シリアル形式の回路情報を用いるマルチコンテキスト技術によるプログラマブル論理回路装置を説明するブロック図である。
【図32】従来のパラレル形式の回路情報を説明する図である。
【図33】パラレル形式の回路情報を用いる従来のプログラマブル論理回路装置を説明するブロック図である。
【図34】パラレル形式の回路情報を用いる従来のプログラマブル論理回路装置のプログラマブル論理回路部の一部の構成を説明する図である。
【図35】パラレル形式の回路情報を用いるマルチコンテキスト技術によるプログラマブル論理回路装置のプログラマブル論理回路部の一部の構成を説明する図である。
【図36】パラレル形式の回路情報を用いるマルチコンテキスト技術によるプログラマブル論理回路装置を説明するブロック図である。
【図37】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の動作を説明するための図である。
【図38】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の動作を説明するフローチャートである。
【図39】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の動作を説明するタイミングチャートである。
【図40】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の例1を説明するブロック図である。
【図41】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の例2を説明するブロック図である。
【図42】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の例3を説明するブロック図である。
【図43】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の例4を説明するブロック図である。
【符号の説明】
100 第1の構造のプログラマブル論理回路装置
101 回路情報入力制御部
102 回路情報記憶部
103 回路情報編集部
104 プログラマブル論理回路部
105 回路素子
106 コンフィギュレーションメモリ
200 第2の構造のプログラマブル論理回路装置
201 回路情報入力制御部
202 プログラマブル論理回路部
2021 回路素子
2022 コンフィギュレーションメモリ
2023 回路情報記憶部
2024 回路情報編集部
Claims (27)
- 回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、
前記プログラマブル論理回路部に複数個の回路を順次に構成するための複数個の回路情報を記憶するものであって、前記コンフィギュレーションメモリとは別の回路情報記憶手段と、
前記回路情報記憶手段に、前記複数個の回路情報を書き込むための回路情報書き込み手段と、
指定情報により指定される前記プログラマブル論理回路部に生成しようとする一つの回路の回路情報を、前記回路情報記憶手段に記憶された複数個の回路情報のうちの、一つまたは複数個の回路情報を用いて生成する回路情報編集手段と、
前記回路情報編集手段で生成された前記一つの回路の回路情報を前記コンフィギュレーションメモリに書き込むようにする制御手段と、
を備え、
前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部または全部を他の回路情報で構成する場合に、当該他の回路情報を前記回路情報記憶手段から読み出すための参照情報を備えるものであり、
前記回路情報編集手段は、前記指定情報により指定される一つの回路の回路情報を、前記回路情報記憶手段から前記指定情報により指定された回路情報を入手するとともに、その回路情報に前記参照情報が含まれている場合には、その参照情報に基づいて、前記他の回路情報を入手して生成する
ことを特徴とするプログラマブル論理回路装置。 - 前記回路情報記憶手段および前記回路情報編集手段は、前記プログラマブル論理回路部とは別個に設けることを特徴とする請求項1に記載のプログラマブル論理回路装置。
- 前記回路情報記憶手段および前記回路情報編集手段は、そのための回路情報を前記コンフィギュレーションメモリの一部に読み込むことにより、前記プログラマブル論理回路部の回路素子の一部に生成することを特徴とする請求項1に記載のプログラマブル論理回路装置。
- 前記回路情報記憶手段に記憶される回路情報は圧縮されており、前記回路情報編集手段により、前記圧縮が解凍されて、前記指定情報で指定された回路情報が生成されることを特徴とする請求項1〜請求項3のいずれかに記載のプログラマブル論理回路装置。
- 請求項1〜請求項3のいずれかに記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部を自己の回路情報の他の一部で構成する場合には、前記自己の回路情報の他の一部を参照するための参照情報を備えるものであり、
前記回路情報編集手段は、前記指定情報により指定される回路の回路情報を、前記指定された回路情報を前記回路情報記憶手段から入手し、前記参照情報が含まれている場合には、その参照情報をも用いて生成する
ことを特徴とするプログラマブル論理回路装置。 - 回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、
前記プログラマブル論理回路部に複数個の回路を順次に構成するための複数個の回路情 報を記憶するものであって、前記コンフィギュレーションメモリとは別の回路情報記憶手段と、
前記回路情報記憶手段に、前記複数個の回路情報を書き込むための回路情報書き込み手段と、
指定情報により指定される前記プログラマブル論理回路部に生成しようとする一つの回路の回路情報を、前記回路情報記憶手段に記憶された複数個の回路情報のうちの、一つまたは複数個の回路情報を用いて生成する回路情報編集手段と、
前記回路情報編集手段で生成された前記一つの回路の回路情報を前記コンフィギュレーションメモリに書き込むようにする制御手段と、
を備え、
前記回路情報記憶手段に記憶される複数個の回路情報のそれぞれは、回路データ部と、その付加情報部を含むものであり、
前記付加情報部は、前記回路データ部の編集を前記回路情報編集手段へ指示する記述を含むものであり、
前記回路データ部は、前記プログラマブル論理回路部に回路を構成するためのデータ部分であって、その一部または全部を、他の回路情報の回路データ部で構成する場合には、その一部または全部の回路データ部は、前記回路情報記憶手段に対して前記他の回路情報を参照するための参照情報を記述したものであり、
前記回路情報編集手段は、前記指定情報により指定される回路情報を、前記指定された回路情報と前記参照情報で参照される他の回路情報の回路データ部を、前記回路情報記憶手段から入手して生成する
ことを特徴とするプログラマブル論理回路装置。 - 請求項1〜請求項3のいずれかに記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶される複数個の回路情報のそれぞれは、回路データ部と、その付加情報部を含むものであり、
前記付加情報部は、前記回路データ部の編集を前記回路情報編集手段へ指示する記述を含むものであり、
前記回路データ部は、前記プログラマブル論理回路部に回路を構成するためのデータ部分であって、その一部を自己の回路情報の他の回路データ部で構成する場合には、前記他の回路データ部を参照するための参照情報を用いて記述したものであり、
前記回路情報編集手段は、指定情報により指定される回路情報を、指定された回路情報を回路情報記憶手段から入手し、前記参照情報が含まれている場合には、その参照情報をも用いて生成する
ことを特徴とするプログラマブル論理回路装置。 - 請求項6または請求項7に記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶されている回路情報の前記回路データ部は、前記コンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの1〜複数個で記述され、
前記1〜複数個のフレームの一部のフレームまたは全部のフレームが他の回路情報のフレームで構成される場合には、前記参照情報が、当該回路情報において前記他の回路情報のフレームの参照を行なうべきフレームの回路データとして記述されている
ことを特徴とするプログラマブル論理回路装置。 - 請求項6または請求項7に記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶されている回路情報の前記回路データ部は、前記コンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの1〜複数個で記述され、
前記1〜複数個のフレームの一部のフレームが、自己の回路情報の他のフレームで構成される場合には、前記参照情報が、当該回路情報において自己の回路情報のフレームの参照を行なうべきフレームの回路データとして記述されている
ことを特徴とするプログラマブル論理回路装置。 - 請求項8または請求項9に記載のプログラマブル論理回路装置において、
前記参照情報が、参照する前記他の回路情報のフレームまたは参照する自己の回路情報のフレームが記憶されている前記回路情報記憶手段のメモリアドレスである
ことを特徴とするプログラマブル論理回路装置。 - 請求項10に記載のプログラマブル論理回路装置において、
前記回路情報編集手段は、前記指定情報により指定された回路の回路情報の回路データとして前記参照情報が記載されたフレームに、前記参照情報で示される前記回路情報記憶手段のメモリアドレスに記憶されたフレームを挿入する
ことを特徴とするプログラマブル論理回路装置。 - 請求項8または請求項9に記載のプログラマブル論理回路装置において、
前記参照情報が、参照する前記他の回路情報のフレームまたは参照する自己の回路情報のフレームが記憶されている前記回路情報記憶手段のメモリアドレスと、参照回数である
ことを特徴とするプログラマブル論理回路装置。 - 請求項12に記載のプログラマブル論理回路装置において、
前記回路情報編集手段は、前記指定情報により指定された回路の回路情報の回路データとして前記参照情報が記載されたフレームに、前記参照情報で示される前記回路情報記憶手段のメモリアドレスに記憶されたフレームを、前記参照情報で示される参照回数分挿入する
ことを特徴とするプログラマブル論理回路装置。 - 請求項8に記載のプログラマブル論理回路装置において、
前記回路情報編集手段は、生成しようとする回路の回路情報のフレームに前記参照情報が記述されている場合において、その参照情報が記述されているフレーム位置のデータが、その直前に前記プログラマブル論理回路部に生成されている回路の回路情報の同一位置のフレームのデータと同一であると判別したときには、そのフレームのデータの、前記制御手段を介したコンフィギュレーションメモリへの転送を行なわない
ことを特徴とするプログラマブル論理回路装置。 - アプリケーションプログラムによる処理の少なくとも一部分を、プログラマブル論理回路装置で処理する情報処理システムであって、
前記プログラマブル論理回路装置に、請求項1〜請求項14のいずれかに記載のプログラマブル論理回路装置を用いることを特徴とする情報処理システム。 - 回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部を備えるプログラマブル論理回路装置内に、前記プログラマブル論理回路部に複数個の回路を順次に構成するための複数個の回路情報を記憶するものであって前記コンフィギュレーションメモリとは別の回路情報記憶手段と、前記回路情報記憶手段に記憶された回路情報を用いて、指定された回路の回路情報を生成する回路情報編集手段とを設けておき、
前記回路情報記憶手段には、前記複数個の回路の回路情報を圧縮した状態で格納するようにし、
前記プログラマブル論理回路部に再構成する回路の回路情報の指定情報が入力されたときに、前記回路情報編集手段で、前記回路情報記憶手段から必要な回路情報を読み出し、前記圧縮を解凍して、前記指定情報で指定された回路情報を生成し、その生成した回路情報を前記コンフィギュレーションメモリに転送して、回路を再構成する方法であって、
前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部または全部を他の回路情報で構成する場合に、当該他の回路情報を前記回路情報記憶手段から読み出すための参照情報を記述することにより、圧縮されるものであり、
前記回路情報編集手段は、前記回路情報記憶手段から、前記指定された回路情報を読み出したときに、その回路情報に前記参照情報が含まれている場合には、前記参照情報を元にして、必要な回路情報を前記回路情報記憶手段から取得するようにする
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部を自己の回路情報の他の一部で構成する場合には、前記自己の回路情報の他の一部を参照するための参照情報を記述することにより、圧縮されるものであり、
前記回路情報編集手段は、前記回路情報記憶手段から、前記指定された回路情報を読み出したときに、その回路情報に前記参照情報が含まれている場合には、前記参照情報を元にして、必要な回路情報を前記読み出した回路情報を用いて生成する
ことを特徴とする請求項16に記載のプログラマブル論理回路装置への回路の再構成方法。 - 請求項16または請求項17に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路情報記憶手段に記憶される複数個の回路情報のそれぞれは、回路データ部と、その付加情報部を含むものであり、
前記付加情報部は、前記回路データ部の編集を前記回路情報編集手段へ指示する記述を含み、
前記回路データ部は、前記参照情報が用いられて圧縮される
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 請求項16または請求項17に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路データ部は、前記コンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの1〜複数個で記述され、
前記1〜複数個のフレームの一部のフレームまたは全部のフレームが他の回路情報のフレームで構成される場合には、前記参照情報が、当該回路情報において前記他の回路情報のフレームの参照を行なうべきフレームの回路データとして記述されている
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 請求項16または請求項17に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路データ部は、前記コンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの1〜複数個で記述され、
前記1〜複数個のフレームの一部のフレームが、自己の回路情報の他のフレームで構成される場合には、前記参照情報が、当該回路情報において自己の回路情報のフレームの参照を行なうべきフレームの回路データとして記述されている
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 請求項19または請求項20に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記参照情報が、参照する前記他の回路情報のフレームまたは参照する自己の回路情報のフレームが記憶されている前記回路情報記憶手段のメモリアドレスである
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 請求項21に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路情報編集手段は、前記指定情報により指定された回路の回路情報の回路データとして前記参照情報が記載されたフレームに、前記参照情報で示される前記回路情報記憶手段のメモリアドレスに記憶されたフレームを挿入する
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 請求項19または請求項20に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記参照情報が、参照する前記他の回路情報のフレームまたは参照する自己の回路情報のフレームが記憶されている前記回路情報記憶手段のメモリアドレスと、参照回数である
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 請求項23に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路情報編集手段は、前記指定情報により指定された回路の回路情報の回路データとして前記参照情報が記載されたフレームに、前記参照情報で示される前記回路情報記憶手段のメモリアドレスに記憶されたフレームを、前記参照情報で示される参照回数分挿入する
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 請求項19に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路情報編集手段は、生成しようとする回路の回路情報のフレームに前記参照情報が記述されている場合において、その参照情報が記述されているフレーム位置のデータが、その直前に前記プログラマブル論理回路部に生成されている回路の回路情報の同一位置のフレームのデータと同一であると判別したときには、そのフレームのデータの、前記制御手段を介したコンフィギュレーションメモリへの転送を行なわない
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。 - 請求項1に記載のプログラマブル論理回路装置に複数個の回路を順次に構成するための複数個の回路情報の管理方法であって、
前記回路情報のそれぞれを、前記プログラマブル論理回路装置のコンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの1〜複数個で記述し、
前記回路情報の一部または全部が、他の回路情報または自己の回路情報の他の一部で構成される場合には、参照情報を、当該回路情報において他の回路情報または自己の回路情報のフレームの参照を行なうべきフレームの回路データとして記述する
を特徴とする回路情報管理方法。 - 請求項1に記載のプログラマブル論理回路装置に回路を構成する回路情報の回路データ部を、前記プログラマブル論理回路装置のコンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの集合で記述し、
前記回路情報の一部または全部が、他の回路情報または自己の回路情報の他の一部で構成される場合には、参照情報を、当該回路情報において他の回路情報または自己の回路情報のフレームの参照を行なうべきフレームの回路データとして記述することにより、回路情報のデータ量を圧縮する
ことを特徴とする回路情報の圧縮方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19996499A JP3743487B2 (ja) | 1999-07-14 | 1999-07-14 | プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法 |
US09/585,447 US6304101B1 (en) | 1999-07-14 | 2000-06-02 | Programmable logic device, information processing system, method of reconfiguring programmable logic device and method compressing circuit information for programmable logic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19996499A JP3743487B2 (ja) | 1999-07-14 | 1999-07-14 | プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005201056A Division JP2005323399A (ja) | 2005-07-11 | 2005-07-11 | プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法。 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001028536A JP2001028536A (ja) | 2001-01-30 |
JP3743487B2 true JP3743487B2 (ja) | 2006-02-08 |
Family
ID=16416541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19996499A Expired - Fee Related JP3743487B2 (ja) | 1999-07-14 | 1999-07-14 | プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6304101B1 (ja) |
JP (1) | JP3743487B2 (ja) |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493862B1 (en) * | 2000-07-25 | 2002-12-10 | Xilinx Inc. | Method for compressing an FPGA bitsream |
US6748456B1 (en) * | 2000-09-29 | 2004-06-08 | Cypress Semiconductor Corp. | PLD configuration port architecture and logic |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8176296B2 (en) * | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US6825689B1 (en) | 2000-10-26 | 2004-11-30 | Cypress Semiconductor Corporation | Configurable input/output interface for a microcontroller |
US6603330B1 (en) | 2000-10-26 | 2003-08-05 | Cypress Semiconductor Corporation | Configuring digital functions in a digital configurable macro architecture |
US6507214B1 (en) * | 2000-10-26 | 2003-01-14 | Cypress Semiconductor Corporation | Digital configurable macro architecture |
JP4125475B2 (ja) * | 2000-12-12 | 2008-07-30 | 株式会社東芝 | Rtl生成システム、rtl生成方法、rtl生成プログラム及び半導体装置の製造方法 |
US6567970B1 (en) * | 2000-12-27 | 2003-05-20 | Cypress Semiconductor Corp. | PLD configuration architecture |
US7111224B1 (en) * | 2001-02-28 | 2006-09-19 | Xilinx, Inc. | FPGA configuration memory with built-in error correction mechanism |
US7840777B2 (en) * | 2001-05-04 | 2010-11-23 | Ascenium Corporation | Method and apparatus for directing a computational array to execute a plurality of successive computational array instructions at runtime |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US7526422B1 (en) | 2001-11-13 | 2009-04-28 | Cypress Semiconductor Corporation | System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US8069405B1 (en) * | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US6971004B1 (en) * | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US7024654B2 (en) | 2002-06-11 | 2006-04-04 | Anadigm, Inc. | System and method for configuring analog elements in a configurable hardware device |
US6661724B1 (en) | 2002-06-13 | 2003-12-09 | Cypress Semiconductor Corporation | Method and system for programming a memory device |
US6810514B1 (en) * | 2002-07-03 | 2004-10-26 | Xilinx, Inc. | Controller arrangement for partial reconfiguration of a programmable logic device |
US20040122643A1 (en) * | 2002-08-29 | 2004-06-24 | Anderson Howard C. | Apparatus and method for simulating switched-capacitor circuits |
US6978435B2 (en) * | 2002-08-29 | 2005-12-20 | Anadigm, Inc. | Apparatus for programming a programmable device, and method |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US6907595B2 (en) * | 2002-12-13 | 2005-06-14 | Xilinx, Inc. | Partial reconfiguration of a programmable logic device using an on-chip processor |
US6920627B2 (en) * | 2002-12-13 | 2005-07-19 | Xilinx, Inc. | Reconfiguration of a programmable logic device using internal control |
US7216277B1 (en) * | 2003-11-18 | 2007-05-08 | Xilinx, Inc. | Self-repairing redundancy for memory blocks in programmable logic devices |
US20060171200A1 (en) * | 2004-02-06 | 2006-08-03 | Unity Semiconductor Corporation | Memory using mixed valence conductive oxides |
JP3836109B2 (ja) * | 2004-02-19 | 2006-10-18 | 東京エレクトロン株式会社 | プログラマブル論理回路制御装置、プログラマブル論理回路制御方法及びプログラム |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US7233532B2 (en) * | 2004-04-30 | 2007-06-19 | Xilinx, Inc. | Reconfiguration port for dynamic reconfiguration-system monitor interface |
US7126372B2 (en) * | 2004-04-30 | 2006-10-24 | Xilinx, Inc. | Reconfiguration port for dynamic reconfiguration—sub-frame access for reconfiguration |
US7218137B2 (en) * | 2004-04-30 | 2007-05-15 | Xilinx, Inc. | Reconfiguration port for dynamic reconfiguration |
JP4095576B2 (ja) * | 2004-05-17 | 2008-06-04 | 株式会社東芝 | プログラマブル論理回路を用いる汎用論理回路装置 |
US8082531B2 (en) | 2004-08-13 | 2011-12-20 | Cypress Semiconductor Corporation | Method and an apparatus to design a processing system using a graphical user interface |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US7353474B1 (en) * | 2006-04-18 | 2008-04-01 | Xilinx, Inc. | System and method for accessing signals of a user design in a programmable logic device |
JP4787711B2 (ja) * | 2006-10-02 | 2011-10-05 | 日本電気株式会社 | データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並びにデータ処理システム |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US7902865B1 (en) * | 2007-11-15 | 2011-03-08 | Lattice Semiconductor Corporation | Compression and decompression of configuration data using repeated data frames |
JP5157514B2 (ja) * | 2008-02-21 | 2013-03-06 | 日本電気株式会社 | 構成情報生成装置、構成情報生成制御方法、及びプログラム |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
US8176212B1 (en) * | 2009-08-18 | 2012-05-08 | Quickflex, Inc. | Method and system for hierarchical and joinable behavior containers for reconfigurable computing |
DE102010035102A1 (de) * | 2010-08-23 | 2012-04-19 | Bürkert Werke GmbH | Steuergerät für fluidische Systeme |
JP2012191455A (ja) * | 2011-03-10 | 2012-10-04 | Toshiba Corp | 半導体集積回路 |
JP6228381B2 (ja) * | 2012-04-30 | 2017-11-08 | 株式会社半導体エネルギー研究所 | 半導体装置 |
KR102070199B1 (ko) * | 2012-05-11 | 2020-01-28 | 삼성전자주식회사 | 재구성가능 프로세서 및 재구성가능 프로세서의 코드 압축해제 방법 |
KR102059218B1 (ko) * | 2012-05-25 | 2019-12-24 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 프로그래머블 로직 디바이스 및 반도체 장치 |
US9389841B2 (en) | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
JP6368155B2 (ja) * | 2013-06-18 | 2018-08-01 | 株式会社半導体エネルギー研究所 | プログラマブルロジックデバイス |
JP2015026998A (ja) * | 2013-07-26 | 2015-02-05 | 株式会社東芝 | マルチコンテキストコンフィグレーションメモリ |
JP5771315B2 (ja) * | 2014-06-23 | 2015-08-26 | 株式会社東芝 | 半導体集積回路 |
US9954533B2 (en) * | 2014-12-16 | 2018-04-24 | Samsung Electronics Co., Ltd. | DRAM-based reconfigurable logic |
JP6430858B2 (ja) * | 2015-02-27 | 2018-11-28 | 理想科学工業株式会社 | 基板接続システム及びインクジェット記録装置 |
US9740809B2 (en) * | 2015-08-27 | 2017-08-22 | Altera Corporation | Efficient integrated circuits configuration data management |
JP6610774B2 (ja) * | 2016-04-07 | 2019-11-27 | 日本電気株式会社 | 半導体装置、コンフィグレーション方法およびプログラム |
FR3063855B1 (fr) * | 2017-03-08 | 2019-04-12 | Areva Np | Circuit logique programmable de commande d'une installation electrique, en particulier une installation nucleaire, dispositif et procede de commande associes |
US10908817B2 (en) * | 2017-12-08 | 2021-02-02 | Sandisk Technologies Llc | Signal reduction in a microcontroller architecture for non-volatile memory |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02130023A (ja) | 1988-11-10 | 1990-05-18 | Fujitsu Ltd | マルチファンクション・プログラマブル・ロジック・デバイス |
US5694056A (en) * | 1996-04-01 | 1997-12-02 | Xilinx, Inc. | Fast pipeline frame full detector |
US6049222A (en) * | 1997-12-30 | 2000-04-11 | Xilinx, Inc | Configuring an FPGA using embedded memory |
-
1999
- 1999-07-14 JP JP19996499A patent/JP3743487B2/ja not_active Expired - Fee Related
-
2000
- 2000-06-02 US US09/585,447 patent/US6304101B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001028536A (ja) | 2001-01-30 |
US6304101B1 (en) | 2001-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3743487B2 (ja) | プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法 | |
JP3444216B2 (ja) | プログラマブルデバイス | |
US5426379A (en) | Field programmable gate array with built-in bitstream data expansion | |
JP4833303B2 (ja) | 動作合成ツールにおける配列変換 | |
US6173434B1 (en) | Dynamically-configurable digital processor using method for relocating logic array modules | |
JP3480784B2 (ja) | 改善されたメモリ割り当てを行うプログラマブル・ゲート・アレイ | |
EP2894572B1 (en) | Method and device for programming a FPGA | |
JP6250548B2 (ja) | 再構成可能な半導体装置の論理構成方法 | |
JP6564186B2 (ja) | 再構成可能な半導体装置 | |
JP2005323399A (ja) | プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法。 | |
US10971237B2 (en) | Semiconductor device | |
JP3351452B2 (ja) | プログラマブルゲートアレイ | |
JP4213044B2 (ja) | Lutベースのリコンフィギュラブル・ロジック・アーキテクチャのためのコンフィギュレーション・メモリの実装 | |
WO1997045870A1 (en) | A microcontroller having an n-bit data bus width with less than n i/o pins and a method therefor | |
JPH1117524A (ja) | プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法 | |
USRE43081E1 (en) | Method and device for configuration of PLDS | |
US7606969B2 (en) | Programmable logic devices | |
JP2870493B2 (ja) | メモリアドレス管理装置 | |
JP3665962B2 (ja) | プログラマブル論理セルアレイ回路及びその初期化方法 | |
JPH09213092A (ja) | 半導体集積回路装置 | |
JP3515997B2 (ja) | プログラマブル半導体デバイス | |
WO2000036747A1 (en) | Methods for configuring fpga's having variable grain components for providing time-shared access to interconnect resources | |
JP3962022B2 (ja) | 再構成可能入力ガロア拡大体線形変換器装置 | |
JP3473678B2 (ja) | プログラマブル論理回路装置の再構成方法およびプログラマブル論理回路装置 | |
JP3786329B2 (ja) | 符号化復号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050810 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051005 |
|
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: 20051026 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051108 |
|
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: 20091125 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101125 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111125 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111125 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121125 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121125 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131125 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |