(57)【要約】【課題】回路性能の低下、消費電力の増加、製造工程の増加、製造コストの増加などをもたらす、複数の回路情報を格納するコンフィギュレーションメモリを用いることなく、マルチコンテキスト技術と同等技術を実現する。【解決手段】プログラマブル論理回路装置に、コンフィギュレーションメモリとは別の回路情報記憶手段１０２と、この記憶手段１０２に記憶された回路情報を用いて、指定された回路の回路情報を生成する回路情報編集手段１０３とを設ける。記憶手段１０２には、複数個の回路情報を圧縮した状態で格納する。プログラマブル論理回路部１０４に再構成する回路の回路情報の指定情報が入力されたときに、編集手段１０３で、記憶手段１０２から必要な回路情報を読み出し、圧縮を解凍して、指定情報で指定された回路情報を生成し、生成した回路情報をコンフィギュレーションメモリ１０６に転送して、回路を再構成する。【選択図】        図１
2005323399.tif 000002
【特許請求の範囲】
【請求項１】
回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、
前記プログラマブル論理回路部に複数個の回路を順次に構成するための複数個の回路情報を記憶するものであって、前記コンフィギュレーションメモリとは別の回路情報記憶手段と、
前記回路情報記憶手段に、前記複数個の回路情報を書き込むための回路情報書き込み手段と、
指定情報により指定される前記プログラマブル論理回路部に生成しようとする一つの回路の回路情報を、前記回路情報記憶手段に記憶された複数個の回路情報のうちの、一つまたは複数個の回路情報を用いて生成する回路情報編集手段と、
前記回路情報編集手段で生成された前記一つの回路の回路情報を前記コンフィギュレーションメモリに書き込むようにする制御手段と、
を備えることを特徴とするプログラマブル論理回路装置。
【請求項２】
前記回路情報記憶手段および前記回路情報編集手段は、前記プログラマブル論理回路部とは別個に設けることを特徴とする請求項１に記載のプログラマブル論理回路装置。
【請求項３】
前記回路情報記憶手段および前記回路情報編集手段は、そのための回路情報を前記コンフィギュレーションメモリの一部に読み込むことにより、前記プログラマブル論理回路部の回路素子の一部に生成することを特徴とする請求項１に記載のプログラマブル論理回路装置。
【請求項４】
前記回路情報記憶手段に記憶される回路情報は圧縮されており、前記回路情報編集手段により、前記圧縮が解凍されて、前記指定情報で指定された回路情報が生成されることを特徴とする請求項１〜請求項３のいずれかに記載のプログラマブル論理回路装置。
【請求項５】
請求項１〜請求項３のいずれかに記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部または全部を他の回路情報で構成する場合に、当該他の回路情報を前記回路情報記憶手段から読み出すための参照情報を備えるものであり、
前記回路情報編集手段は、前記指定情報により指定される一つの回路の回路情報を、前記回路情報記憶手段から前記指定情報された回路情報を入手するとともに、その回路情報に前記参照情報が含まれている場合には、その参照情報に基づいて、前記他の回路情報を入手して生成する
ことを特徴とするプログラマブル論理回路装置。
【請求項６】
請求項１〜請求項３のいずれかに記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部を自己の回路情報の他の一部で構成する場合には、前記自己の回路情報の他の一部を参照するための参照情報を備えるものであり、
前記回路情報編集手段は、前記指定情報により指定される回路の回路情報を、前記指定された回路情報を前記回路情報記憶手段から入手し、前記参照情報が含まれている場合には、その参照情報をも用いて生成する
ことを特徴とするプログラマブル論理回路装置。
【請求項７】
請求項１〜請求項３のいずれかに記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶される複数個の回路情報のそれぞれは、回路データ部と、その付加情報部を含むものであり、
前記付加情報部は、前記回路データ部の編集を前記回路情報編集手段へ指示する記述を含むものであり、
前記回路データ部は、前記プログラマブル論理回路部に回路を構成するためのデータ部分であって、その一部または全部を、他の回路情報の回路データ部で構成する場合には、その一部または全部の回路データ部は、前記回路情報記憶手段に対して前記他の回路情報を参照するための参照情報を記述したものであり、
前記回路情報編集手段は、前記指定情報により指定される回路情報を、前記指定された回路情報と前記参照情報で参照される他の回路情報の回路データ部を、前記回路情報記憶手段から入手して生成する
ことを特徴とするプログラマブル論理回路装置。
【請求項８】
請求項１〜請求項３のいずれかに記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶される複数個の回路情報のそれぞれは、回路データ部と、その付加情報部を含むものであり、
前記付加情報部は、前記回路データ部の編集を前記回路情報編集手段へ指示する記述を含むものであり、
前記回路データ部は、前記プログラマブル論理回路部に回路を構成するためのデータ部分であって、その一部を自己の回路情報の他の回路データ部で構成する場合には、前記他の回路データ部を参照するための参照情報を用いて記述したものであり、
前記回路情報編集手段は、指定情報により指定される回路情報を、指定された回路情報を回路情報記憶手段から入手し、前記参照情報が含まれている場合には、その参照情報をも用いて生成する
ことを特徴とするプログラマブル論理回路装置。
【請求項９】
請求項７または請求項８に記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶されている回路情報の前記回路データ部は、前記コンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの１〜複数個で記述され、
前記１〜複数個のフレームの一部のフレームまたは全部のフレームが他の回路情報のフレームで構成される場合には、前記参照情報が、当該回路情報において前記他の回路情報のフレームの参照を行なうべきフレームの回路データとして記述されている
ことを特徴とするプログラマブル論理回路装置。
【請求項１０】
請求項７または請求項８に記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶されている回路情報の前記回路データ部は、前記コンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの１〜複数個で記述され、
前記１〜複数個のフレームの一部のフレームが、自己の回路情報の他のフレームで構成される場合には、前記参照情報が、当該回路情報において自己の回路情報のフレームの参照を行なうべきフレームの回路データとして記述されている
ことを特徴とするプログラマブル論理回路装置。
【請求項１１】
請求項９または請求項１０に記載のプログラマブル論理回路装置において、
前記参照情報が、参照する前記他の回路情報のフレームまたは参照する自己の回路情報のフレームが記憶されている前記回路情報記憶手段のメモリアドレスである
ことを特徴とするプログラマブル論理回路装置。
【請求項１２】
請求項１１に記載のプログラマブル論理回路装置において、
前記回路情報編集手段は、前記指定情報により指定された回路の回路情報の回路データとして前記参照情報が記載されたフレームに、前記参照情報で示される前記回路情報記憶手段のメモリアドレスに記憶されたフレームを挿入する
ことを特徴とするプログラマブル論理回路装置。
【請求項１３】
請求項９または請求項１０に記載のプログラマブル論理回路装置において、
前記参照情報が、参照する前記他の回路情報のフレームまたは参照する自己の回路情報のフレームが記憶されている前記回路情報記憶手段のメモリアドレスと、参照回数である
ことを特徴とするプログラマブル論理回路装置。
【請求項１４】
請求項１３に記載のプログラマブル論理回路装置において、
前記回路情報編集手段は、前記指定情報により指定された回路の回路情報の回路データとして前記参照情報が記載されたフレームに、前記参照情報で示される前記回路情報記憶手段のメモリアドレスに記憶されたフレームを、前記参照情報で示される参照回数分挿入する
ことを特徴とするプログラマブル論理回路装置。
【請求項１５】
請求項９に記載のプログラマブル論理回路装置において、
前記回路情報編集手段は、生成しようとする回路の回路情報のフレームに前記参照情報が記述されている場合において、その参照情報が記述されているフレーム位置のデータが、その直前に前記プログラマブル論理回路部に生成されている回路の回路情報の同一位置のフレームのデータと同一であると判別したときには、そのフレームのデータの、前記制御手段を介したコンフィギュレーションメモリへの転送を行なわない
ことを特徴とするプログラマブル論理回路装置。
【請求項１６】
アプリケーションプログラムによる処理の少なくとも一部分を、プログラマブル論理回路装置で処理する情報処理システムであって、
前記プログラマブル論理回路装置に、請求項１〜請求項１５のいずれかに記載のプログラマブル論理回路装置を用いることを特徴とする情報処理システム。
【請求項１７】
回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部を備えるプログラマブル論理回路装置内に、前記プログラマブル論理回路部に複数個の回路を順次に構成するための複数個の回路情報を記憶するものであって前記コンフィギュレーションメモリとは別の回路情報記憶手段と、前記回路情報記憶手段に記憶された回路情報を用いて、指定された回路の回路情報を生成する回路情報編集手段とを設けておき、
前記回路情報記憶手段には、前記複数個の回路の回路情報を圧縮した状態で格納するようにし、
前記プログラマブル論理回路部に再構成する回路の回路情報の指定情報が入力されたときに、前記回路情報編集手段で、前記回路情報記憶手段から必要な回路情報を読み出し、前記圧縮を解凍して、前記指定情報で指定された回路情報を生成し、その生成した回路情報を前記コンフィギュレーションメモリに転送して、回路を再構成する
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項１８】
前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部または全部を他の回路情報で構成する場合に、当該他の回路情報を前記回路情報記憶手段から読み出すための参照情報を記述することにより、圧縮されるものであり、
前記回路情報編集手段は、前記回路情報記憶手段から、前記指定された回路情報を読み出したときに、その回路情報に前記参照情報が含まれている場合には、前記参照情報を元にして、必要な回路情報を前記回路情報記憶手段から取得するようにする
ことを特徴とする請求項１７に記載のプログラマブル論理回路装置への回路の再構成方法。
【請求項１９】
前記回路情報記憶手段に記憶される回路情報は、その回路情報の一部を自己の回路情報の他の一部で構成する場合には、前記自己の回路情報の他の一部を参照するための参照情報を記述することにより、圧縮されるものであり、
前記回路情報編集手段は、前記回路情報記憶手段から、前記指定された回路情報を読み出したときに、その回路情報に前記参照情報が含まれている場合には、前記参照情報を元にして、必要な回路情報を前記読み出した回路情報を用いて生成する
ことを特徴とする請求項１７に記載のプログラマブル論理回路装置への回路の再構成方法。
【請求項２０】
請求項１８または請求項１９に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路情報記憶手段に記憶される複数個の回路情報のそれぞれは、回路データ部と、その付加情報部を含むものであり、
前記付加情報部は、前記回路データ部の編集を前記回路情報編集手段へ指示する記述を含み、
前記回路データ部は、前記参照情報が用いられて圧縮される
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項２１】
請求項１８または請求項１９に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路データ部は、前記コンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの１〜複数個で記述され、
前記１〜複数個のフレームの一部のフレームまたは全部のフレームが他の回路情報のフレームで構成される場合には、前記参照情報が、当該回路情報において前記他の回路情報のフレームの参照を行なうべきフレームの回路データとして記述されている
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項２２】
請求項１８または請求項１９に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路データ部は、前記コンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの１〜複数個で記述され、
前記１〜複数個のフレームの一部のフレームが、自己の回路情報の他のフレームで構成される場合には、前記参照情報が、当該回路情報において自己の回路情報のフレームの参照を行なうべきフレームの回路データとして記述されている
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項２３】
請求項２１または請求項２２に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記参照情報が、参照する前記他の回路情報のフレームまたは参照する自己の回路情報のフレームが記憶されている前記回路情報記憶手段のメモリアドレスである
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項２４】
請求項２３に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路情報編集手段は、前記指定情報により指定された回路の回路情報の回路データとして前記参照情報が記載されたフレームに、前記参照情報で示される前記回路情報記憶手段のメモリアドレスに記憶されたフレームを挿入する
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項２５】
請求項２１または請求項２２に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記参照情報が、参照する前記他の回路情報のフレームまたは参照する自己の回路情報のフレームが記憶されている前記回路情報記憶手段のメモリアドレスと、参照回数である
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項２６】
請求項２５に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路情報編集手段は、前記指定情報により指定された回路の回路情報の回路データとして前記参照情報が記載されたフレームに、前記参照情報で示される前記回路情報記憶手段のメモリアドレスに記憶されたフレームを、前記参照情報で示される参照回数分挿入する
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項２７】
請求項２１に記載のプログラマブル論理回路装置への回路の再構成方法において、
前記回路情報編集手段は、生成しようとする回路の回路情報のフレームに前記参照情報が記述されている場合において、その参照情報が記述されているフレーム位置のデータが、その直前に前記プログラマブル論理回路部に生成されている回路の回路情報の同一位置のフレームのデータと同一であると判別したときには、そのフレームのデータの、前記制御手段を介したコンフィギュレーションメモリへの転送を行なわない
ことを特徴とするプログラマブル論理回路装置への回路の再構成方法。
【請求項２８】
プログラマブル論理回路装置に複数個の回路を順次に構成するための複数個の回路情報の管理方法であって、
前記回路情報のそれぞれを、前記プログラマブル論理回路装置のコンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの１〜複数個で記述し、
前記回路情報の一部または全部が、他の回路情報または自己の回路情報の他の一部で構成される場合には、参照情報を、当該回路情報において他の回路情報または自己の回路情報のフレームの参照を行なうべきフレームの回路データとして記述する
を特徴とする回路情報管理方法。
【請求項２９】
プログラマブル論理回路装置に回路を構成する回路情報の回路データ部を、前記プログラマブル論理回路装置のコンフィギュレーションメモリに格納されるデータを一定量ごとに区切ったものに相当するフレームの集合で記述し、
前記回路情報の一部または全部が、他の回路情報または自己の回路情報の他の一部で構成される場合には、参照情報を、当該回路情報において他の回路情報または自己の回路情報のフレームの参照を行なうべきフレームの回路データとして記述することにより、回路情報のデータ量を圧縮する
ことを特徴とする回路情報の圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばアプリケーションプログラムによる処理の一部分を分担するために、複数個の回路が順次に再構成されるように用いられる場合に好適なプログラマブル論理回路装置に関する。特に、プログラマブル論理回路装置の再構成時間を短縮する方法に関する。
【背景技術】
【０００２】
デジタル回路装置の分野において、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）やプログラマブルロジックデバイス（ＰＬＤ）などのプログラマブル論理回路装置が、特定用途向け集積回路（ＡＳＩＣ）を作成する前の試作デバイスとして、または、数週間から数ヶ月という長い作製期間を要するＡＳＩＣの代替デバイスとして使われてきた。また、最近では、回路装置作成後に仕様を変更したり、回路を修正することを可能にするために、プログラマブル論理回路装置が使われている。
【０００３】
一般的なプログラマブル論理回路装置の構造を図２２に示す。プログラマブル論理回路装置１は、回路情報を外部から読み込む回路情報入力制御部２と、読み込まれた回路情報に従って回路機能を実現するプログラマブル論理回路部３とから構成される。
【０００４】
さらに、プログラマブル論理回路部３の詳細な構造は、図２３に示すように、回路素子４と、回路素子４に接続するコンフィギュレーションメモリ５とから構成される。回路素子４は、入出力部、論理回路セル、配線部からなるが、この回路素子４の接続形態により、プログラマブル論理回路装置は、ＦＰＧＡ型とＣＰＬＤ型とに分けられる。
【０００５】
ＦＰＧＡ型のプログラマブル論理回路部３Ａは、図２４（Ａ）に示すように、２次元格子状に配列された論理回路セル６Ａが、配線部７Ａにより相互に接続される。また、全体として矩形の配線部７Ａの四辺に接続された入出力部８Ａを介して外部と信号の入出力を行う。
【０００６】
また、ＣＰＬＤ型のプログラマブル論理回路部３Ｂは、図２４（Ｂ）に示すように、入出力部８Ｂと論理回路セル６Ｂが、ツリー構造状に配線部７Ｂに接続される。
【０００７】
いずれの構造においても、プログラマブル論理回路装置１に読み込まれた回路情報は、回路情報入力制御部２によってコンフィギュレーションメモリ５に書き込まれる。コンフィギュレーションメモリ５に書き込まれた回路情報に従って、回路素子の機能と結線状態が決められる。この操作をプログラマブル論理回路装置の再構成またはコンフィギュレーションと呼ぶ。
【０００８】
［リコンフィギュラブルコンピューティング技術の説明］
ところで、最近では、アプリケーションの処理に合わせた専用の処理回路を用いたハードウエア処理により、汎用プロセッサを用いたソフトウエア処理よりも高速な処理を実現するというリコンフィギュラブルコンピューティングの分野で、プログラマブル論理回路装置が活用され始めている。
【０００９】
リコンフィギュラブルコンピューティングでは、アプリケーション処理で必要となる複数の処理回路の回路情報を外部記憶装置へ事前に格納しておき、必要に応じて、その外部記憶装置から読み出した回路情報を、プログラマブル論理回路装置内のコンフィギュレーションメモリに書き込むことで、必要とする回路をプログラマブル論理回路装置上に実現する。
【００１０】
この技術は、必要な回路情報をプログラマブル論理回路装置の外部に退避しておくという観点から、キャッシュロジック技術と呼ばれたり、回路情報を書き替えたりすることにより、実際のプログラマブル論理回路部の回路規模よりも大きな規模の回路を実現できるという観点から、バーチャルロジック技術と呼ばれている。以下の説明では、簡単のため、これらの技術を総称して、キャッシュロジック技術と呼ぶことにする。
【００１１】
キャッシュロジック技術は、同じプログラマブル論理回路装置上に、必要に応じて異なる回路を構成するという時分割駆動技術である。その結果、回路規模の小さなプログラマブル論理回路装置を用いて、その回路規模以上の回路を実現でき、回路装置の小型化と低コスト化が可能となる。
【００１２】
しかしながら、プログラマブル論理回路装置のコンフィギュレーションメモリに書き込む回路情報の規模によっては、外部記憶装置からプログラマブル論理回路装置のコンフィギュレーションメモリに回路情報を書き込む時間が長くなり、専用のハードウエア処理回路を用いて高速処理を実現しても、回路再構成時間を含めた全体の処理時間が、ソフトウエア処理時間よりも長くなるという問題がある。
【００１３】
この問題のひとつの解決方法が、マルチコンテキスト技術と呼ばれるデバイス技術である。すなわち、マルチコンテキスト技術においては、プログラマブル論理回路装置内に複数の回路情報を格納することができるように、複数個のコンフィギュレーションメモリを設け、必要に応じてコンフィギュレーションメモリを切り替えることにより、プログラマブル論理回路装置に回路を再構成することで、回路の再構成時間を大幅に短縮する。
【００１４】
［マルチコンテキスト技術によるプログラマブル論理回路装置の説明］
マルチコンテキスト技術によるプログラマブル論理回路装置の構造を、図２５に示す。マルチコンテキスト技術によるプログラマブル論理回路装置１０は、複数の回路情報を外部から読み込む回路情報入力制御部１１と、複数の回路情報から必要な回路情報を選択する回路情報選択制御部１２と、選択された回路情報に従って回路機能を実現するプログラマブル論理回路部１３から構成される。
【００１５】
このマルチコンテキスト技術によるプログラマブル論理回路部１３の詳細な構造は図２６に示すようなものとなり、プログラマブル論理回路部１３は、前述の場合と同様に、入出力部、論理回路セル、配線部からなる回路素子１４と、この回路素子１４に接続するコンフィギュレーションメモリ１５とから構成されるが、このマルチコンテキスト技術によるプログラマブル論理回路部１３の場合のコンフィギュレーションメモリ１５は、複数個のメモリプレーンで構成される。
【００１６】
そして、このマルチコンテキスト技術によるプログラマブル論理回路部１３の場合には、ＦＰＧＡ型とＣＰＬＤ型（図２４参照）とのいずれの構造においても、プログラマブル論理回路装置１０に外部から読み込まれた複数の回路情報は、回路情報入力制御部１１によってコンフィギュレーションメモリ１５の各メモリプレーンに一つの回路情報が書き込まれる状態で書き込まれる。
【００１７】
そして、コンフィギュレーションメモリ１５の複数個のメモリプレーンに書き込まれた複数の回路情報のうち、回路情報選択制御部１２からの選択信号により選択されたメモリプレーンの回路情報に従って、回路素子１４の機能と結線状態が決められて、プログラマブル論理回路装置１０に回路が再構成される。
【００１８】
ところで、プログラマブル論理回路装置で用いられる回路情報の形式には、シリアル形式とパラレル形式とがあり、これら２つの回路情報形式によって、コンフィギュレーション動作が異なる。そこで、以下に、図２２のプログラマブル論理回路装置１と、図２５のマルチコンテキスト技術を用いたプログラマブル論理回路装置１０とにおける各回路情報形式の場合のコンフィギュレーション動作を、説明する。
【００１９】
［回路情報の構造；（Ｉ）シリアル形式の回路情報］
従来のプログラマブル論理回路装置で用いられているシリアル形式の回路情報の構造を図２７に示す。図２７（Ａ）に示すように、回路情報は、ヘッダ部ＨＤｓ、データ部ＤＴｓ、フッタ部ＦＴｓから構成される。プログラマブル論理回路装置内では、シリアル形式の回路情報は、シリアルデータとして扱われるが、適当な単位（たとえば、８ビット）で区切ることにより、パラレル伝送やパラレルメモリアクセスを行うことができる。
【００２０】
ヘッダ部ＨＤｓは、回路情報の始まりを示すプリアンブルコードと、回路情報のデータ量を表すレングスカウントと、ヘッダ部ＨＤｓの終わりを示す区切りコードとからなる。
【００２１】
データ部ＤＴｓは、複数のフレームからなる。ここで、フレームとは、コンフィギュレーションメモリに格納されるデータを、ある量（通常１００から１０００ビット程度）で区切ったデータの一塊である。このフレームの大きさは、プログラマブル論理回路部への回路の再構成の容易さを考慮して決定され、例えば、図２４（Ａ）のＦＰＧＡ型の場合の縦方向の一列分の論理回路分の回路情報とされる。
【００２２】
各フレームは、図２７（Ｂ）に示すように、フレームの始まりを表すスタートフィールドビットデータＳＴＢと、コンフィギュレーションメモリに格納されるコンフィギュレーションデータＣＦＧＤと、フレームの終わりを表すストップフィールドビットデータＥＮＢとからなる。
【００２３】
フッタ部ＦＴｓは、一つの回路情報の終わりを表すポストアンブルコードからなる。
【００２４】
［シリアル形式の回路情報による従来のプログラマブル論理回路装置１のコンフィギュレーション］
図２８は、図２２に示した従来のプログラマブル論理回路装置１へのシリアル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図２８に示したブロック図を用いて、回路情報のコンフィギュレーションメモリへの格納を説明する。
【００２５】
図２２で示した回路情報入力制御部２は、図２８のコンフィギュレーションコントローラ２ａ、レングスカウントレジスタ２ｂ、セレクタ２ｃ、複数個のシフトレジスタ２ｄで構成される。
【００２６】
また、図２２で示したプログラマブル論理回路部３は、前述したように回路素子４とコンフィギュレーションメモリ５とで構成されるが、図２８においては、例えば、図２４（Ａ）のようなＦＰＧＡ型であれば、例えば縦一列の複数個の論理回路セルを単位として、複数列分のコンフィギュレーションメモリ５ｓと、回路素子４ｓとの組に分けられる。
【００２７】
そして、各シフトレジスタ２ｄの各段のレジスタは、各列のコンフィギュレーションメモリ５ｓの各メモリセルに結線される。したがって、各シフトレジスタ２ｄは、例えば、図２４（Ａ）のようなＦＰＧＡ型であれば、縦一列の論理回路セル数への回路情報分の段数を備えるもので構成されている。そして、一つのシフトレジスタが縦一列の複数個の論理回路セルに対して割り当てられて、シフトレジスタ２ｄは、横方向の論理回路セル数分だけ設けられる。
【００２８】
なお、論理回路セル数が多い場合には、数列〜数十列程度の複数列分について一つのシフトレジスタ２ｄが設けられて、その複数列に共通に一つのシフトレジスタ２ｄが使用されるように構成される場合もある。
【００２９】
前述の回路情報の１フレームの大きさは、例えば、このシフトレジスタ２ｄの一つ分のデータ量とされている。
【００３０】
この図２８の構成において、外部記憶装置９から回路情報が読み込まれると、コンフィギュレーションコントローラ２ａが、その回路情報のヘッダ部のプリアンブルコードを検知してコンフィギュレーション処理を開始する。
【００３１】
プリアンブルコードに続くレングスカウントはレングスカウントレジスタ２ｂに格納される。レングスカウントレジスタ２ｂの値は、後述するシフトレジスタ２ｄのデータシフトごとに１を減じられ、レングスカウントレジスタ２ｂの値が０になるまでシフトレジスタ２ｄが動作する。このことによって、全てのデータがシフトレジスタ２ｄに送り出される。
【００３２】
区切りコードに続くデータ部は、セレクタ２ｃに送られる。初期状態では、セレクタ２ｃは、コンフィギュレーションデータを第１列目のシフトレジスタ２ｄに送り出す。シフトレジスタ２ｄは、セレクタ２ｃから送り出されたデータを順次シフトする。データがシフトレジスタ２ｄの最後までシフトされると、セレクタ２ｃは、次の列のシフトレジスタ２ｄに、データの送り出しを切り替える。
【００３３】
以上の動作を繰り返して、先に述べたレングスカウンタ２ｂの値が０になるまで、シフトレジスタ２ｄが動作することにより、全てのデータがシフトレジスタ２ｄに格納される。
【００３４】
シフトレジスタ２ｄがコンフィギュレーションデータで満たされると、そのデータは同時並列的にコンフィギュレーションメモリ５ｓのすべてに転送され、プログラマブル論理回路部３の再構成が行われる。すなわち、例えば、図２９に示すように、コンフィギュレーションメモリ５ｓの各メモリセルのラッチ５Ｌが、シフトレジスタ２ｄの各レジスタに接続されており、ラッチ５ＬへラッチクロックＬＣＬＫを送ることにより、シフトレジスタ２ｄからコンフィギュレーションメモリ５ｓへ同時並列的にデータが転送される。
【００３５】
そして、次に、データ部に続くフッタ部のポストアンブルコードをコンフィギュレーションコントローラ２ａが検知すると、コンフィギュレーション処理が終了する。
【００３６】
［シリアル形式の回路情報による従来のマルチコンテキスト技術によるプログラマブル論理回路装置１０のコンフィギュレーション］
図３１は、図２５に示したマルチコンテキスト技術によるプログラマブル論理回路装置１０へのシリアル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図３１に示したブロック図を用いて、従来のマルチコンテキスト技術による場合の回路情報のコンフィギュレーションメモリへの格納を説明する。
【００３７】
図２５で示した回路情報入力制御部１１は、図３１のコンフィギュレーションコントローラ１１ａ、レングスカウントレジスタ１１ｂ、セレクタ１１ｃ、複数個のシフトレジスタ１１ｄで構成される。
【００３８】
また、図２５で示したプログラマブル論理回路部は、前述の従来例と同様に、例えば図２４（Ａ）のようなＦＰＧＡ型であれば、例えば縦一列の複数個の論理回路セルを単位として、複数列分のコンフィギュレーションメモリ１５ｓと、回路素子１４ｓとの組に分けられるが、この例の場合には、各列のコンフィギュレーションメモリ１５ｓのそれぞれは、図３１で破線で示すように、複数メモリプレーン分を備える。
【００３９】
そして、各シフトレジスタ１１ｄの各段のレジスタは、各列のコンフィギュレーションメモリ１５ｓの各プレーンの各メモリセルに結線される。また、図２５で示した回路情報選択制御部１２によるコンフィギュレーションメモリプレーンの選択は、次に図３０を用いて示す各列のコンフィギュレーションメモリ１５ｓのメモリプレーンのワード線Ｗ１，Ｗ２，…，ＷＮの選択に対応する。
【００４０】
図３０は、シフトレジスタ１１ｄとコンフィギュレーションメモリ１５ｓとの接続を示すものである。シフトレジスタ１１ｄの各レジスタは、スイッチＳＷ１，ＳＷ２，…，ＳＷＮを介して、各コンフィギュレーションメモリプレーンのメモリセル１５ｓ１，１５ｓ２，…，１５ｓＮが接続される。ワード線Ｗ１，Ｗ２，…，ＷＮを選択制御することで、スイッチＳＷ１，ＳＷ２，…，ＳＷＮを開閉制御することができる。そして、このスイッチＳＷ１，ＳＷ２，…，ＳＷＮの開閉により、いずれのコンフィギュレーションメモリプレーンの回路情報により、回路素子１４をコンフィギュレーションするかを選択制御することができる。
【００４１】
この場合にも、各シフトレジスタ１１ｄは、例えば、図２４（Ａ）のようなＦＰＧＡ型であれば、縦一列の論理セル数への回路情報分の段数を備えるもので構成されている。そして、一つのシフトレジスタが縦一列の複数個の論理回路セルに対して割り当てられて、シフトレジスタ１１ｄは、横方向の論理セル数分だけ設けられる。
【００４２】
そして、論理セル数が多い場合には、数列〜数十列程度の複数列分について一つのシフトレジスタ１１ｄが設けられて、その複数列に共通に一つのシフトレジスタ１１ｄが使用されるように構成される場合もある。
【００４３】
前述の回路情報の１フレームの大きさは、例えば、このシフトレジスタ１１ｄの一つ分のデータ量とされている。
【００４４】
この図３１の構成においては、外部記憶装置９には、例えばアプリケーションプログラムで必要となる複数の処理回路の回路情報、すなわち、複数個のコンフィギュレーションメモリプレーンに記憶させる複数個の回路情報が格納されている。そして、この外部記憶装置９から最初の回路情報が読み込まれると、コンフィギュレーションコントローラ１１ａが、その回路情報のヘッダ部のプリアンブルコードを検知してコンフィギュレーション処理を開始する。
【００４５】
プリアンブルコードに続くレングスカウントは、レングスカウントレジスタ１１ｂに格納される。レングスカウントレジスタ１１ｂの値は、次に説明するシフトレジスタのデータシフトごとに１を減じられ、レングスカウントレジスタ１１ｂの値が０になるまで、シフトレジスタ１１ｄが動作する。このことによって、全てのデータがシフトレジスタ１１ｄに送り出される。
【００４６】
区切りコードに続くデータは、セレクタ１１ｃに送られる。初期状態では、セレクタ１１ｃは、データを第１列目のシフトレジスタ１１ｄに送り出す。データを受け取ったシフトレジスタ１１ｄは、セレクタ１１ｃから送り出されたデータを順次シフトする。データが、そのシフトレジスタ１１ｄの最後までシフトされると、セレクタ１１ｃは、次の列のシフトレジスタ１１ｄにデータの送り出しを切り替える。以上の動作を繰り返し、先に述べたレングスカウンタの値が０になるまで、シフトレジスタ１１ｄが動作することにより、最初の回路情報のコンフィギュレーションデータがシフトレジスタ１１ｄに格納される。
【００４７】
シフトレジスタ１１ｄがデータで満たされると、図２９に示したワード線Ｗ１が選択され、シフトレジスタ１１ｄから、第１のコンフィギュレーションメモリプレーンのメモリセル１５ｓ１へ最初の回路情報が同時並列的に転送される。
【００４８】
そして、データ部ＤＴｓに続くフッタ部ＦＴｓのポストアンブルコードをコンフィギュレーションコントローラ１１ａが検知すると、最初の回路情報のコンフィギュレーション処理が終了する。
【００４９】
引き続き第２の回路情報が読み込まれ、最初の回路情報の読み込みと同じ手順でシフトレジスタ１１ｄがデータで満たされ、図２９に示したワード線Ｗ２が選択され、シフトレジスタ１１ｄから第２のコンフィギュレーションメモリプレーンのメモリセル２へ第２の回路情報が同時並列的に転送される。
【００５０】
以降、順次、同じ手順を繰り返して、Ｎ個の回路情報のそれぞれが、コンフィギュレーションメモリ１５のそれぞれ独立のメモリプレーンに格納される。
【００５１】
再構成を行うときには、選択された回路情報に対応するワード線が選択され、次にラッチ１５ＬへラッチクロックＬＣＬＫを送ることにより、選択されたメモリプレーンのメモリセルから、同時並列的にコンフィギュレーションデータが転送されて再構成が行われる。
【００５２】
［回路情報の構造；（II）パラレル形式の回路情報］
従来のプログラマブル論理回路装置で用いられているパラレル形式の回路情報の構造を図３２に示す。図示のように、回路情報は、ヘッダ部ＨＤｐ、データ部ＤＴｐ、フッタ部ＦＴｐから構成される。プログラマブル論理回路装置内では、あるビット幅、例えば３２ビットのパラレル形式の回路情報は、適当な単位、例えば、１ビット、６４ビットなどで区切ることにより、プログラマブル論理回路装置外で、シリアル転送、異なるバス幅のパラレル伝送やパラレルメモリアクセスを行うことができる。
【００５３】
ヘッダ部ＨＤｐは、回路情報の始まりを示すプリアンブルコードと、回路情報の入力クロック速度などのコンフィギュレーションパラメータを設定するオプションコードと、設定されたオプションを実行してデータの読み込みを開始するスイッチコマンドとからなる。
【００５４】
データ部ＤＴｐは、シリアル形式の場合と同様に、複数のフレームからなる。各フレームの内容は、コンフィギュレーションデータＣＦＧＤを書き込むコンフィギュレーションメモリ内のフレーム位置を表すフレームアドレスＦＡＤＲと、コンフィギュレーションデータＣＦＧＤの書き込みを指示するデータインコマンドＤＩＮと、コンフィギュレーションデータＣＦＧＤから読み込むワード数を指示するワードカウントＷＣＮＴと、コンフィギュレーションデータＣＦＧＤとからなる。フッタ部ＦＴｐは、回路情報の終わりを指示するポストアンブルコードからなる。
【００５５】
前述したシリアル形式の回路情報は、全てがデータとして扱われ、レングスカウントで指示されたクロック数だけシフトレジスタを動作することにより、回路情報が受動的にコンフィギュレーションメモリ全体に読み込まれる。一方、このパラレル形式の回路情報は、データとコマンドとして扱われ、フレームアドレスＦＡＤＲで指示されるコンフィギュレーションメモリ部分に、データインコマンドＤＩＮの起動により、コンフィギュレーションデータＣＦＧＤが部分的に書き込まれる点が特徴である。
【００５６】
［パラレル形式の回路情報による従来のプログラマブル論理回路装置１のコンフィギュレーション］
図３３は、図２２に示した従来のプログラマブル論理回路装置１へのパラレル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図３３と図３４に示した従来のプログラマブル論理回路装置のコンフィギュレーションメモリの一部分のブロック図を用いて、回路情報のコンフィギュレーションメモリへの格納を説明する。
【００５７】
図２２で示した回路情報入力制御部２は、図３３のコンフィギュレーションコントローラ２ｅ、アドレス生成器２ｆ、セレクタ２ｇで構成される。また、図２２で示したプログラマブル論理回路部３は、図３３においては、例えば、図２４（Ａ）のようなＦＰＧＡ型であれば、例えば縦一列の複数個の論理回路セルを単位として、複数列分のコンフィギュレーションメモリ５ｓと、回路素子４ｓとの組に分けられる。
【００５８】
前記回路情報のフレームは、シリアル形式の場合と同様に、一列分の複数個の論理回路セルへのコンフィギュレーションデータを含むものとして構成される。
【００５９】
そして、図３４に示すように、各列のコンフィギュレーションメモリ５ｓのビット線が、セレクタ２ｇに結線される。また、コンフィギュレーションメモリ５ｓのワード線は、アドレス生成器２ｆに結線される。
【００６０】
この図３３の構成において、外部記憶装置９から回路情報が読み込まれると、コンフィギュレーションコントローラ２ｅが、その回路情報のヘッダ部ＨＤｐのプリアンブルコードを検知してコンフィギュレーション処理を開始する。
【００６１】
そして、プリアンブルコードに続くオプションコードで、コンフィギュレーションのためのパラメータが設定される。次のスイッチコマンドにより、設定されたオプションが実行され、データの読み込みが開始される。
【００６２】
まず、フレームのフレームアドレスＦＡＤＲがアドレス生成器２ｆに読み込まれ、データを書き込むコンフィギュレーションメモリ５ｓに対応するビット線とワード線とが選択される。次に、データインコマンドＤＩＮが起動され、コンフィギュレーションデータＣＦＧＤから、ワードカウントＷＣＮＴが示す数だけのデータが読み出され、その読み出されたデータがセレクタ２ｇを介してコンフィギュレーションメモリ５ｓに書き込まれる。この手順を全てのフレームに対して繰り返す。
【００６３】
そして、データ部ＤＴｐに続くフッタ部ＦＴｐのポストアンブルコードをコンフィギュレーションコントローラ２ｅが検知すると、コンフィギュレーション処理が終了する。
【００６４】
［パラレル形式の回路情報による従来のマルチコンテキスト技術によるプログラマブル論理回路装置１０のコンフィギュレーション］
図３６は、図２５に示したマルチコンテキスト技術によるプログラマブル論理回路装置１０へのパラレル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図３６と図３５に示した従来のマルチコンテキスト技術によるプログラマブル論理回路装置のコンフィギュレーションメモリの一部分のブロック図を用いて、回路情報のコンフィギュレーションメモリへの格納を説明する。
【００６５】
図２５で示した回路情報入力制御部１１は、図３６のコンフィギュレーションコントローラ１１ｅ、アドレス生成器１１ｆ、セレクタ１１ｇで構成される。また、図２５で示したプログラマブル論理回路部１３は、図３６のコンフィギュレーションメモリ１５ｓ、回路素子１４ｓで構成される。
【００６６】
前述した図３１の場合と同様に、コンフィギュレーションメモリ１５ｓと回路素子１４ｓの組は複数の列に分けられる。そして、各列のコンフィギュレーションメモリ１５ｓは、図３６で破線で示すように、複数メモリプレーン分を備える。
【００６７】
前記回路情報のフレームは、この例においても、シリアル形式の場合と同様に、１プレーン分のメモリセルアレイの一列分へのコンフィギュレーションデータを含むものとして構成される。
【００６８】
そして、図３５に示すように、各列のコンフィギュレーションメモリ１５ｓ（複数個のメモリプレーン（メモリセルアレイ）からなる）のビット線が、セレクタ１１ｇに結線される。この場合、複数個のメモリプレーンのメモリセルアレイのビット線は、共通にセレクタ１１ｇに結線される。また、コンフィギュレーションメモリ１５ｓのワード線は、複数個のメモリプレーンのメモリセルアレイについて共通とされ、アドレス生成器１１ｆに結線される。
【００６９】
そして、図２５で示した回路情報選択制御部１２は、図３５に示すコンフィギュレーションメモリ１５ｓのコンテキスト選択に対応する。
【００７０】
この図３６の構成においては、外部記憶装置９から最初の回路情報が読み込まれると、コンフィギュレーションコントローラ１１ｅが、回路情報のヘッダ部ＨＤｐのプリアンブルコードを検知してコンフィギュレーション処理を開始する。
【００７１】
プリアンブルコードに続くオプションコードでコンフィギュレーションのパラメータが設定される。次に、スイッチコマンドにより、設定されたオプションが実行され、データの読み込みが開始される。
【００７２】
そして、フレームのフレームアドレスＦＡＤＲがアドレス生成器１１ｆに読み込まれ、データを書き込むコンフィギュレーションメモリ１５ｓに対応するビット線とワード線とが選択される。このとき、図３５に示すように、ひとつの列に対して複数のメモリセルアレイが配置されているので、たとえば、最初の回路情報に対しては、第１のメモリセルアレイ１５ｓ１のビット線がセレクタ１１ｇによって選択される。
【００７３】
次に、データインコマンドＤＩＮが起動され、コンフィギュレーションデータＣＦＧＤからワードカウントＷＣＮＴが示す数だけのデータが読み出されて、セレクタ１１ｇを介してコンフィギュレーションメモリ１５ｓに書き込まれる。この手順を全てのフレームに対して繰り返す。
【００７４】
データ部ＤＴｐに続くフッタ部ＦＴｐのポストアンブルコードを、コンフィギュレーションコントローラ１１ｅが検知すると、最初の回路情報のコンフィギュレーション処理が終了する。
【００７５】
引き続き、第２の回路情報が読み込まれ、最初の回路情報の読み込みと同じ手順で、セレクタ１１ｇで選択された第２のメモリセルアレイ１５ｓ２に回路情報が格納される。以下、順次に、同じ手順を繰り返して、Ｎ個の回路情報がコンフィギュレーションメモリ１５に格納される。
【００７６】
再構成を行うときには、選択された回路情報に対応するコンテキスト選択線が選択され、回路素子１４ｓのコンフィギュレーションが行われる。
【００７７】
［従来のマルチコンテキスト技術による再構成回路による処理動作］
次に、以上説明したような従来のマルチコンテキスト技術によるプログラマブル論理回路装置を用いて、複数の回路を用いる一つの処理を行なう場合の、当該プログラマブル論理回路装置への回路情報の再構成動作手順を、図３７の説明図および図３８のフローチャートを参照しながら、さらに説明する。
【００７８】
前述したように、通常、回路情報はフレームと呼ばれる単位で構成されるが、図３７に示す例は、一つの回路情報が５フレームで構成されるとともに、一つの処理が、回路情報１、回路情報２、回路情報３の３個の回路情報により行われる場合である。
【００７９】
すなわち、回路情報入力制御部１１を介して、前記３個の回路情報（回路情報１、回路情報２、回路情報３）がコンフィギュレーションメモリ１５に格納される。例えばアプリケーションプログラムによって発生する選択信号に従って回路情報選択制御部１２により、コンフィギュレーションメモリ１５に格納された３個の回路情報から、一つの回路情報が選択され、その回路情報に従ってプログラマブル論理回路装置１０が再構成される。
【００８０】
この再構成手順を図３８のフローチャートと、図３９のタイミングチャートを参照して説明する。図３９のタイミングチャートでは、回路情報１、回路情報２、回路情報３の順にプログラマブル論理回路装置が再構成されて、処理が終了するとしている。
【００８１】
まず、最初に、回路情報入力制御部１１は、外部記憶装置（図示せず）などに格納された回路情報を、一つずつ読み込んでコンフィギュレーションメモリ１５に格納する（ステップＳ１０１）。このとき、回路情報を読み込むたびに、コンフィギュレーションメモリ１５の残り容量を確認し（ステップＳ１０２、Ｓ１０３）、全ての回路情報を読み込む前に、コンフィギュレーションメモリ１５が一杯になったときは、エラーを検知して動作を終了する（ステップＳ１０４）。
【００８２】
回路情報入力制御部１１が、３個の回路情報のすべてをコンフィギュレーションメモリ１５に格納すると、回路情報選択制御部１２が選択信号を監視する（ステップＳ１０５）。回路情報選択制御部１２が、例えばアプリケーションプログラムに従って選択信号が切り替えられたことを検知すると、３個の回路情報のうちのどれが選択されたかを判別し（ステップＳ１０６）、切り替えられた選択信号に応じた回路情報がコンフィギュレーションメモリ１５から読み出され、その回路情報に従ってプログラマブル論理回路部（図示せず）が再構成される（ステップＳ１０７またはステップＳ１０８またはステップＳ１０９）。
【００８３】
その後、プログラマブル論理回路装置１０による処理が継続する限り、回路情報選択制御部１２による選択信号の監視が続けられ、選択信号が切り替えられるごとに回路情報が切り換えられる。そして、プログラマブル論理回路装置１０による処理が終了すると、選択信号の如何にかかわらず、上述の再構成の手順は終了する。
【００８４】
プログラマブル論理回路装置１０による処理が終了した場合、プログラマブル論理回路装置１０への電源供給が遮断されたりしない限り、一般的には、プログラマブル論理回路装置は、最後に選択された回路情報で再構成された状態が保持される。
【００８５】
以上の処理を、図３９のタイミングチャートについて、さらに説明する。すなわち、処理が実行状態になると、まず、３個の回路情報１、２、３のコンフィギュレーションメモリ１５への読み込みが行われる。読み込みが終了して、回路情報の選択指示が行われると、その選択指示された回路情報が記憶されているコンフィギュレーションメモリプレーンが切り替え選択されて、その回路情報が読み出され、その読み出された回路情報によりプログラマブル論理回路部が再構成される。
【００８６】
図３９で、実行終了後も回路情報３が構成されて続けているのは、前述したように、処理が終了した場合、電源供給が遮断されたりしない限り、一般的には、プログラマブル論理回路装置は、最後に選択された回路情報で再構成された状態が保持されるからである。
【００８７】
［マルチコンテキスト技術の具体的な従来例］
以上説明したようなマルチコンテキスト技術の一つとして、特許文献１（特開平２−１３００２３号公報）に開示される「マルチファンクション・プログラマブル・ロジック・デバイス」の例がある。これを従来例１として、図４０を参照しながら説明する。
【００８８】
図４０は、マルチファンクション・プログラマブル・ロジック・デバイスの構成図を示したものである。このデバイスは、プログラマブル論理アレイ２１、ＳＲＡＭで構成されたスイッチ設定用ＰＲＯＭ２２、および選択回路２３で構成される。
【００８９】
スイッチ設定用ＰＲＯＭ２２は、プログラマブル論理アレイ２１に構成される回路に対応したＮビットの回路情報をＭ組記憶することができる。プログラマブル論理アレイ２１の回路構成は、スイッチ設定用ＰＲＯＭ２２に記憶されたＭ組の回路情報のうち、選択回路２３で選択された一組の回路情報によって決定される。すなわち、選択回路２３によって選択する回路情報を切り替えることにより、プログラマブル論理アレイ２１の回路構成を再構成することができる。
【００９０】
マルチコンテキスト技術の別の例として、非特許文献１（ＦＣＣＭ’９７（ＦＰＧＡｓ  ｆｏｒ  Ｃｕｓｔｏｍ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｓ  １９９７）で発表された“Ａ  Ｔｉｍｅ−Ｍｕｌｔｉｐｌｅｘｅｄ  ＦＰＧＡ”）の例がある。これを従来例２として、図４１を参照しながら説明する。
【００９１】
図４１は、発表された時分割駆動ＦＰＧＡの構成を示すものである。この時分割駆動ＦＰＧＡは、米国ザイリンクス（Ｘｉｌｉｎｘ）社のＸＣ４０００Ｅを改良したものであり、回路素子２４の論理セルと内部配線とを決定する、ＳＲＡＭで構成されたコンフィギュレーションメモリ２５を８組備えている。コンフィギュレーションメモリ２５のそれぞれには、異なる回路構成に対応する回路情報が格納されており、これらのコンフィギュレーションメモリ２５を切り替えることにより、時分割でＦＰＧＡの回路構成を再構成することができる。
【００９２】
上述の従来例１と従来例２とで示したように、マルチコンテキスト技術は、事前に複数の回路情報をコンフィギュレーションメモリに格納してあるので、回路の再構成時間を短縮することを可能にする。
【００９３】
しかしながら、回路情報を格納するために、複数プレーンまたは複数個のコンフィギュレーションメモリがプログラマブル論理回路装置の内部に必要なため、プログラマブル論理回路部の回路規模が大きくなる。回路規模が大きくなると、回路素子の負荷容量が大きくなることにより、回路性能が低下したり、消費電力が大きくなるという問題を引き起こす。また、回路規模が大きくなると、プログラマブル論理回路装置の製造コストが高くなるという問題も引き起こす。
【００９４】
通常、プログラマブル論理回路装置は、ＣＭＯＳプロセスで製造されるので、同じＣＭＯＳプロセスで作製できるＳＲＡＭが、コンフィギュレーションメモリとして用いられる。従来例１と従来例２とでは、ＳＲＡＭがコンフィギュレーションメモリとして用いられている。ＳＲＡＭは、１ビットを記憶するために６個のトランジスタを必要とするので、プログラマブル論理回路装置内に記憶できる回路情報の数を増やすと、プログラマブル論理回路部の回路規模が大幅に大きくなる。
【００９５】
このように回路規模が大きくなるという問題は、非特許文献２（ＦＰＤ’９５（Ｔｈｉｒｄ  Ｃａｎａｄｉａｎ  Ｗｏｒｋｓｈｏｐ  ｏｆ  Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｄｅｖｉｃｅｓ  １９９５）で発表された“Ａ  Ｆｉｒｓｔ  Ｇｅｎｅｒａｔｉｏｎ  ＤＰＧＡ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ”）に開示されているように、１ビット当たり３個のトランジスタで構成されるＤＲＡＭをコンフィギュレーションメモリとして用いることにより、幾分緩和される。これを従来例３として、図４２を参照しながら説明する。
【００９６】
図４２は、発表されたＤＰＧＡの論理セル構造を示すものである。論理セルは、４組の構成を格納できる４×３２ビットのＤＲＡＭ３１、４つの８入力マルチプレクサ３２〜３５、４入力ルックアップテーブル３６、フリップフロップ３７、出力を切り替えるセレクタ３８で構成される。
【００９７】
３２ビットのＤＲＡＭ３１の出力のうち、１２ビットが４つの８入力マルチプレクサ３２〜３５の状態を、１６ビットが４入力ルックアップテーブル３６の状態を、１ビットがセレクタ３８の状態を決定し、残り３ビットは保留とされている。４組のＤＲＡＭ３１には、それぞれ異なる回路情報が格納されており、メモリ出力を切り替えることにより、異なる回路を構成することができる。
【００９８】
上述のように、ＤＲＡＭ３１は、１ビット当たり３個のトランジスタで構成されるので、この従来例３によれば、マルチコンテキスト技術における回路規模が大きくなるという問題は軽減できる。
【００９９】
さらに、最近の半導体デバイス作製技術の進展により、ひとつのデバイス上にＣＭＯＳ回路と、１ビット当たり１個のトランジスタで構成されるＤＲＡＭを作製することが可能になった。この半導体作製技術は、ＤＲＡＭ混載プロセスと呼ばれている。１ビットを記憶するために、ＣＭＯＳで構成されるＳＲＡＭが６個のトランジスタを必要とし、ＣＭＯＳで構成されるＤＲＡＭが３個のトランジスタを必要とするのに対して、ＤＲＡＭ混載プロセスによるＤＲＡＭは１個のトランジスタで済むものである。
【０１００】
したがって、回路情報を格納するために余分なコンフィギュレーションメモリ領域が必要になるという上述したマルチコンテキスト技術の欠点は、コンフィギュレーションメモリにＤＲＡＭ混載プロセスによる１トランジスタＤＲＡＭを用いることによって、さらに改善することができる。
【０１０１】
この例として、非特許文献３（Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＶＬＳＩ  Ｃｉｒｃｕｉｔ  １９９７で発表された“Ａｎ  Ｅｍｂｅｄｄｅｄ  ＤＲＡＭ−ＦＰＧＡ  Ｃｈｉｐ  ｗｉｔｈ  Ｉｎｓｔａｎｔａｎｅｏｕｓ  Ｌｏｇｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ”）に示される例がある。これを従来例４として図４３を参照しながら説明する。
【０１０２】
図４３は、発表されたＤＲＡＭ−ＦＰＧＡの論理エレメントと、ＤＲＡＭエレメントの構造を示すもので、２５６×２５６セルで構成されるＤＲＡＭエレメント４１を、４つの論理エレメント４２〜４５が囲む構成となっている。一つの論理エレメントは６４ビットの回路情報で再構成される。左右にセンスアンプを介して１２８ビットずつ引き出されたビット線の６４ビット分ずつが論理エレメント４２〜４５のそれぞれに接続される。
【０１０３】
上記の左右のビット線に出力される回路情報は、上下にワードドライバを介して１２８ビットずつ引き出されたワード線を選択することにより、切り替えられる。すなわち、ＤＲＡＭ−ＦＰＧＡは、メモリ回路としてＤＲＡＭエレメント４１を用いることにより、２５６組の回路構成を格納することを可能にした。
【０１０４】
上述の従来例４に示したように、ＤＲＡＭ混載プロセスを用いて、メモリ回路を１トランジスタＤＲＡＭで作製することにより、回路情報を格納するために余分なコンフィギュレーションメモリ回路領域が必要となるというマルチコンテキスト技術の欠点を大幅に緩和することが可能となる。
【０１０５】
しかしながら、ＤＲＡＭ回路部で用いるトランジスタのゲート酸化膜は、ＣＭＯＳ回路部で用いるトランジスタのゲート酸化膜より厚い酸化膜が必要なので、別々に作製しなければならない。このため、製造工程が増加し、プログラマブル論理回路装置の製造コストが高くなったり、製造歩留まりが低下するという新たな問題を引き起こす。また、製造工程を増やさないために、製造工程を共通化して厚い酸化膜を用いると、ＣＭＯＳ回路部の性能が悪くなるという別の問題を引き起こす。
【０１０６】
上記の先行技術文献は、次の通りである。
【特許文献１】特開平２−１３００２３号公報
【非特許文献１】ＦＣＣＭ’９７（ＦＰＧＡｓ  ｆｏｒ  Ｃｕｓｔｏｍ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｓ  １９９７）で発表された“Ａ  Ｔｉｍｅ−Ｍｕｌｔｉｐｌｅｘｅｄ  ＦＰＧＡ”
【非特許文献２】ＦＰＤ’９５（Ｔｈｉｒｄ  Ｃａｎａｄｉａｎ  Ｗｏｒｋｓｈｏｐ  ｏｆ  Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｄｅｖｉｃｅｓ  １９９５）で発表された“Ａ  Ｆｉｒｓｔ  Ｇｅｎｅｒａｔｉｏｎ  ＤＰＧＡ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ”
【非特許文献３】Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＶＬＳＩ  Ｃｉｒｃｕｉｔ  １９９７で発表された“Ａｎ  Ｅｍｂｅｄｄｅｄ  ＤＲＡＭ−ＦＰＧＡ  Ｃｈｉｐ  ｗｉｔｈ  Ｉｎｓｔａｎｔａｎｅｏｕｓ  Ｌｏｇｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ”
【発明の開示】
【発明が解決しようとする課題】
【０１０７】
以上説明したように、キャッシュロジック技術を用いて、アプリケーションプログラムによる処理の一部分を、プログラマブル論理回路装置で構成した回路で処理するリコンフィギュラブルコンピューティング技術を用いた情報処理システムでは、回路を再構成する時間が長くなり、本来はソフトウエア処理に比べて処理速度の速いプログラマブル論理回路装置によるハードウエア処理が、回路再構成時間を含めた総処理時間で比べると、ソフトウエア処理よりも時間を要することがあるという問題がある。
【０１０８】
この問題を解決する一つの手段であるマルチコンテキスト技術は、回路の再構成時間を短縮することを可能にするが、複数の回路情報を格納するための余分なコンフィギュレーションメモリ領域が必要なため、プログラマブル論理回路部の回路規模が大きくなるという欠点がある。
【０１０９】
そして、回路規模が大きくなると、回路素子の負荷容量が大きくなることにより、回路性能が低下したり、消費電力が大きくなるという問題を引き起こす。また、回路規模が大きくなると、プログラマブル論理回路装置の製造コストが高くなるという問題も引き起こす。
【０１１０】
また、コンフィギュレーションメモリ領域を減らすために、そのメモリ回路として、ＣＭＯＳプロセスで作成されるＳＲＡＭ回路の代わりに、ＤＡＲＭ混載プロセスで作製した１トランジスタＤＲＡＭ回路を用いることなどが行われているが、上述したように、製造工程が増加し、プログラマブル論理回路装置の製造コストが高くなったり、製造歩留まりが低下するという新たな問題を引き起こす。また、製造工程を増やさないために、製造工程を共通化してＤＲＡＭ部の厚い酸化膜をＣＭＯＳ回路部に用いると、ＣＭＯＳ回路部の性能が低下するなどという別の問題を引き起こす。
【０１１１】
この発明は、以上の点にかんがみ、回路性能の低下、消費電力の増加、製造工程の増加、製造コストの増加などをもたらす複数の回路情報を格納するコンフィギュレーションメモリを用いることなく、高速に回路を再構成できるプログラマブル論理回路装置を提供することを目的とする。
【課題を解決するための手段】
【０１１２】
上記の課題を解決するために、請求項１の発明によるプログラマブル論理回路装置においては、
回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、
前記プログラマブル論理回路部に複数個の回路を順次に構成するための複数個の回路情報を記憶するものであって、前記コンフィギュレーションメモリとは別の回路情報記憶手段と、
前記回路情報記憶手段に、前記複数個の回路情報を書き込むための回路情報書き込み手段と、
指定情報により指定される前記プログラマブル論理回路部に生成しようとする一つの回路の回路情報を、前記回路情報記憶手段に記憶された複数個の回路情報のうちの、一つまたは複数個の回路情報を用いて生成する回路情報編集手段と、
前記回路情報編集手段で生成された前記一つの回路の回路情報を前記コンフィギュレーションメモリに書き込むようにする制御手段と、
を備えることを特徴とする。
【０１１３】
そして、請求項２の発明は、請求項１に記載のプログラマブル論理回路装置において、
前記回路情報記憶手段および前記回路情報編集手段は、前記プログラマブル論理回路部とは別個に設けることを特徴とする。
【０１１４】
また、請求項３の発明は、請求項１に記載のプログラマブル論理回路装置において、
前記回路情報記憶手段および前記回路情報編集手段は、そのための回路情報を前記コンフィギュレーションメモリの一部に読み込むことにより、前記プログラマブル論理回路部の回路素子の一部に生成することを特徴とする。
【０１１５】
また、請求項４の発明は、請求項１〜３のいずれかに記載のプログラマブル論理回路装置において、
前記回路情報記憶手段に記憶される回路情報は圧縮されており、前記回路情報編集手段により、前記圧縮が解凍されて、前記指定情報で指定された回路情報が生成されることを特徴とする。
【０１１６】
上述の構成の請求項１の発明においては、複数の回路情報は、マルチコンテキスト技術のようにコンフィギュレーションメモリに格納するのではなく、回路情報記憶手段に一旦格納される。そして、再構成すべき回路情報が回路情報記憶手段から読み出され、回路情報編集手段でコンフィギュレーションメモリに書き込む形式の回路情報に編集されて、コンフィギュレーションメモリに転送される。
【０１１７】
このため、この請求項１の発明によれば、コンフィギュレーションメモリ領域は、従来の一般的なプログラマブル論理回路装置のように１つの回路情報を格納できるメモリ領域を備えれば良いので、マルチコンテキスト技術の場合のプログラマブル論理回路部の回路規模が大きくなるという欠点を回避することができる。
【０１１８】
その代わりに、回路情報記憶手段が必要になるが、請求項１の発明においては、この回路情報記憶手段の回路情報は、回路情報編集手段で編集された後に、コンフィギュレーションメモリに転送される構成であるので、回路情報記憶手段に記憶する回路情報は、コンフィギュレーションメモリに直接的に格納する形式のものにする必要がなく、少ないデータ量とすることが可能である。
【０１１９】
例えば、請求項４の発明のように、回路情報を圧縮しておき、その圧縮を回路情報編集手段で解凍するようにすることにより、回路情報記憶手段のメモリ容量を、より小さくすることができるものである。
【０１２０】
回路情報記憶手段および回路情報編集手段は、請求項２の発明のように、プログラマブル論理回路部の外部において構成することもできるし、請求項３の発明のように、プログラマブル論理回路部内に、そのための回路情報を読み込むことにより、構成することもできる。
【０１２１】
特に、請求項３の場合には、従来からあるプログラマブル論理回路装置を用いて、この発明によるプログラマブル論理回路装置を実現することができるという効果がある。
【発明の効果】
【０１２２】
この発明によれば、従来のマルチコンテキスト技術のように複数の回路情報を記憶するための、余分なコンフィギュレーションメモリを必要としないプログラマブル論理回路部によるマルチコンテキスト技術と同等の技術を実現することができ、これを用いてプログラマブル論理回路装置の再構成時間を短縮し、回路再構成時間を含めた総処理時間で比べても、ソフトウエア処理に比べて処理時間の短いハードウエア処理を実現できる。その結果、キャッシュロジック技術によるリコンフュギュラブルコンピューティングを用いた、高速で小型化された情報処理システムを実現することができるようになる。
【０１２３】
また、従来のマルチコンテキスト技術のようにプログラマブル論理回路部に余分なコンフィギュレーションメモリを必要としないので、余分なコンフィギュレーションメモリを配置することで生じる配線負荷容量の増大に起因する、回路性能の低下、消費電力の増加をもたらすことなく、マルチコンテキスト技術によるものと同等のプログラマブル論理回路装置を実現することができる。
【０１２４】
また、この発明においては、回路情報記憶部には圧縮された回路情報を格納するようにしたので、同じ回路情報を従来のマルチコンテキスト技術よりも少ないメモリ容量でプログラマブル論理回路装置内に格納することができ、その結果、製造工程の増加、回路性能の低下などをもたらすＤＲＡＭ技術を用いることなく、従来のマルチコンテキスト技術によるプロプログラマブル論理回路装置より小さな回路規模でマルチコンテキスト技術と同等技術を実現することができる。
【０１２５】
また、この発明によるプログラマブル論理回路装置は、従来の通常のプログラマブル論理回路装置と同じ構造のプログラマブル論理回路部を用いることができるので、従来のプログラマブル論理回路装置の設計を用いて容易に実現することができる。
【０１２６】
また、この発明によるプログラマブル論理回路装置の回路情報記憶部と回路情報編集部を、回路情報を読み込むことで従来のプログラマブル論理回路装置に構成することにより、新たに回路装置を作製することなく、従来のプログラマブル論理回路装置を用いて、この発明のプログラマブル論理回路装置を実現することができるというメリットもある。
【発明を実施するための最良の形態】
【０１２７】
以下に、この発明によるプログラマブル論理回路装置の幾つかの実施の形態を、前述した従来のマルチコンテキスト技術によるプログラマブル論理回路装置と比較しながら、図を参照しながら説明する。
【０１２８】
以下に説明する実施の形態は、それぞれ前述したリコンフィギュラブルコンピューティング技術を用いた情報処理システムにおいて、そのアプリケーションプログラムによる処理の一部分、あるいは全部を実行するための複数の回路を、プログラマブル論理回路装置で構成する場合の例である。
【０１２９】
すなわち、アプリケーションプログラムで必要となる複数の処理回路の回路情報を、予め外部記憶装置に格納しておき、必要に応じて、その外部記憶装置から読み出した前記複数の回路情報を、プログラマブル論理回路装置に読み込んで、必要とする回路を、プログラマブル論理回路装置に順次に再構成して、必要な処理を実行するものである。
【０１３０】
［第１の実施の形態］
［この発明によるプログラマブル論理回路装置の第１の構造］
第１の実施の形態のプログラマブル論理回路装置は、この発明によるプログラマブル論理回路装置の第１の構造を備える。図１は、この第１の構造を備える、この発明によるプログラマブル論理回路装置１００の構成を示すもので、複数の回路情報を、例えば外部記憶装置（図示せず）から読み込む回路情報入力制御部１０１と、読み込んだ複数の回路情報を一時的に記憶する回路情報記憶部１０２と、複数の回路情報から必要な回路情報を選択して編集する回路情報編集部１０３と、回路情報入力制御部１０１を介して読み込まれる編集された回路情報に従って回路機能を実現するプログラマブル論理回路部１０４とから構成される。
【０１３１】
この第１の構造のプログラマブル論理回路装置１００では、回路情報入力制御部１０１は、回路情報記憶部１０２に、複数個の回路情報を書き込むための回路情報書き込み手段の機能も有する。また、回路情報入力制御部１０１は、回路情報編集手段で生成された一つの回路の回路情報を、プログラマブル論理回路部１０４のコンフィギュレーションメモリに書き込むようにする制御手段の役割もする。
【０１３２】
すなわち、この第１の構造のプログラマブル論理回路装置１００は、図２２に示した従来のプログラマブル論理回路装置１の回路情報入力制御部２およびプログラマブル論理回路３と同様の回路情報入力制御部１０１およびプログラマブル論理回路部１０４に加えて、回路情報記憶部１０２と、回路情報編集部１０３を、その内部に備えるものである。
【０１３３】
そして、プログラマブル論理回路部１０４の詳細な構造は、図２２に示した従来のプログラマブル論理回路装置のプログラマブル論理回路部と同じであって、図２３および図２４に示したものとなる。すなわち、プログラマブル論理回路部１０４は、図２６に示した従来のマルチコンテキスト技術によるプログラマブル論理回路部１５のように、コンフィギュレーションメモリが、複数個のメモリプレーンを備えるものではない。
【０１３４】
つまり、プログラマブル論理回路部１０４は、図２４（Ａ），（Ｂ）に示したような、入出力部、論理回路セル、配線部からなる回路素子１０５と、この回路素子１０５に接続され、一つの回路情報分を格納するようにするコンフィギュレーションメモリ１０６とから構成される。
【０１３５】
このようにプログラマブル論理回路部１０４に内蔵のコンフィギュレーションメモリが複数個のコンフィギュレーションメモリあるいは複数個のメモリプレーンを持たないことから、この実施の形態のプログラマブル論理回路装置１００は、図２５に示した従来のマルチコンテキスト技術によるプログラマブル論理回路装置１０のような回路情報選択制御部１２は具備しない。
【０１３６】
そして、この実施の形態の場合のプログラマブル論理回路装置１００も、従来のプログラマブル論理回路装置１と同じように、プログラマブル論理回路部１０４の回路素子１０５の接続形態により、図２４（Ａ）に示すようなＦＰＧＡ型と、図２４（Ｂ）に示すようなＣＰＬＤ型とに分けられる。
【０１３７】
いずれの構造においても、この第１の実施の形態のプログラマブル論理回路装置１００においては、これに複数の回路情報が読み込まれると、その複数の回路情報は、回路情報記憶部１０２に格納され、回路情報編集部１０３で編集された後に、回路情報入力制御部１０１によってコンフィギュレーションメモリ１０６に書き込まれる。そして、コンフィギュレーションメモリ１０６に書き込まれた回路情報に従って、回路素子１０５の機能と結線状態が決められる。
【０１３８】
［第１の実施の形態におけるコンフィギュレーション］
次に、この第１の実施の形態におけるコンフィギュレーションの方法を、従来のマルチコンテキスト技術によるプログラマブル論理回路装置の場合と比較しながら説明する。なお、この第１の実施の形態では、シリアル形式の回路情報によりコンフィギュレーションを行なう場合である。
【０１３９】
図２は、この第１の実施の形態の場合の回路情報およびその編集動作を説明するための図である。この図２を参照しながら、第１の実施の形態のプログラマブル論理回路装置１００の動作を説明する。この図２の例は、前述の従来のマルチコンテキスト技術によるプログラマブル論理回路装置１０のコンフィギュレーションにおいて説明した図３７に示したものと同じ３つの回路情報１、２、３による３個の回路を再構成する手順の例である。
【０１４０】
図３７に示した従来例の３つの回路情報１、２、３のフレーム構成を図２（Ａ）に示す。この図２（Ａ）に示すように、回路情報１、２、３は、一つの回路情報が５フレームで構成されているが、さらに詳しく回路情報のフレーム構造をみると、次のような構成となっている。
【０１４１】
回路情報報１は、フレーム（１−Ａ）とフレーム（１−Ｂ）との２種類のフレームから構成されており、フレーム（１−Ａ）の１個と、フレーム（１−Ｂ）の４個の合計５フレームで構成されている。
【０１４２】
回路情報２は、４種類のフレーム（１−Ａ、２−Ａ、２−Ｂ、２−Ｃ）から構成されているが、そのうちのフレーム（１−Ａ）は、回路情報１を構成するフレーム（１−Ａ）と同じである。そして、回路情報２は、フレーム（１−Ａ）が２個で、他のフレームが、それぞれ１個ずつの合計５フレームで構成される。
【０１４３】
回路情報３は、３種類のフレーム（２−Ａ、２−Ｂ、３−Ａ）で構成されるが、そのうちのフレーム（２−Ａ）と、フレーム（２−Ｂ）は回路情報２を構成するフレームと同じである。そして、回路情報３は、フレーム（２−Ａ）の３個と、フレーム（２−Ｂ）およびフレーム（３−Ａ）の１個ずつの合計５フレームで構成される。
【０１４４】
この第１の実施の形態では、図３７に示したものと同じ回路を再構成する３個の回路情報１、２、３が、フレームの繰り返しや、他の回路情報のフレームの参照を考慮して、従来より小さいフレーム数で構成されるように圧縮される。
【０１４５】
すなわち、回路情報１は、図２（Ｂ）に示すように、フレーム（１−Ａ）と、フレーム（１−Ｂ）の２フレームで構成される。このとき、この回路情報１のフレーム（１−Ｂ）には、当該フレームを３回繰り返すという参照情報が付加されている。このように繰り返しの参照情報を含むフレームを、この明細書ではリピートフレームと呼ぶことにする。
【０１４６】
回路情報２は、図２（Ｂ）に示すように、フレーム（２−Ａ）、フレーム（１−Ａ）、フレーム（２−Ｂ）、フレーム（２−Ｃ）の４フレームで構成される。このとき、この回路情報２のフレーム（１−Ａ）には、当該フレームデータは回路情報１のフレーム（１−Ａ）と同じであるという参照情報が付加されている。このように他の回路情報のフレームの参照情報を含むフレームを、この明細書ではリファレンスフレームと呼ぶことにする。
【０１４７】
回路情報３は、図２（Ｂ）に示すように、フレーム（２−Ａ）、フレーム（２−Ｂ）、フレーム（３−Ａ）の３フレームで構成される。そして、このとき、この回路情報３のフレーム（２−Ａ）とフレーム（２−Ｂ）は、それぞれのフレームデータは回路情報２のフレーム（２−Ａ）、（２−Ｂ）と同じであるという参照情報が付加されたリファレンスフレームの構成となっている。また、この回路情報３のフレーム（２−Ａ）は、当該フレームを３回繰り返すという参照情報が付加されたリピートフレームの構成となっている。
【０１４８】
［この発明によるシリアル形式の回路情報の具体例］
この発明によるシリアル形式の回路情報の構造例を図３に示す。図２７に示した従来のシリアル形式の回路情報と同じように、この例のシリアル形式の回路情報も、図３（Ａ）に示すように、ヘッダ部ＨＤｓ、データ部ＤＴｓ、フッタ部ＦＴｓから構成される。前述もしたように、プログラマブル論理回路装置１００内では、シリアル形式の回路情報は、シリアルデータとして扱われるが、適当な単位（たとえば、８ビット）で区切ることにより、パラレル伝送やパラレルメモリアクセスを行うことができる。
【０１４９】
図３（Ａ）に示すように、ヘッダ部ＨＤｓは、回路情報の始まりを示すプリアンブルコードと、回路情報のデータ量を表すレングスカウントと、ヘッダ部の終わりを示す区切りコードとからなり、また、フッタＦＴｓは、回路情報の終わりを表すポストアンブルコードからなるのは、前述の図２７の従来の場合と同様である。
【０１５０】
レングスカウントは、従来のプログラマブル論理回路装置１の場合と同様に、シフトレジスタへの転送のための情報として使用されるとともに、この実施の形態の場合には、回路情報編集部１０３での編集を指示する情報としても使用される。
【０１５１】
この実施の形態の場合には、データ部ＤＴｓは、複数のフレームからなるが、その各フレームが、３種類のフレームのいずれかにより構成される点が前述の図２７の従来の場合と異なる。このデータ部を構成するフレームの種類は、従来例と同じ構造のノーマルフレームと、前述のリピートフレームと、前述のリファレンスフレームの３種類である。
【０１５２】
すなわち、ノーマルフレームは、図３（Ｂ）に示すように、従来の回路情報で用いられるフレームと全く同様に、フレームの始まりを表すスタートフィールドビットデータＳＴＢと、コンフィギュレーションメモリに格納されるコンフィギュレーションデータＣＦＧＤと、フレームの終わりを表すストップフィールドビットデータＥＮＢとからなる。
【０１５３】
リピートフレームは、図３（Ｃ）に示すように、リピートフレームの始まりを表すスタートフィールドリピートデータＳＴｒｐと、コンフィギュレーションメモリに格納されるコンフィギュレーションデータＣＦＧＤと、同じフレームデータの繰り返し数を示すリファレンスカウントＲＣＮＴと、フレームの終わりを表すストップフィールドビットデータＥＮＢとからなる。スタートフィールドリピートデータＳＴｒｐには、リピートフレームであることを示す識別情報が含まれる。後で説明する手順によって、このリピートフレームからリファレンスカウントＲＣＮＴで示される数のノーマルフレームが生成される。
【０１５４】
リファレンスフレームは、図３（Ｄ）に示すように、フレームの始まりを表すスタートフィールドリファレンスデータＳＴｒｅｆと、回路情報記憶部１０２内の参照先の別のフレームのアドレスを示すリファレンスアドレスＲＡＤＲと、参照の繰り返し数を示すリファレンスカウントＲＣＮＴと、参照先の別のフレーム内でデータを読み出す相対アドレスを示すリファレンスオフセットＲＯＦＳと、フレームの終わりを表すストップフィールドビットデータＥＮＢとからなる。スタートフィールドリファレンスデータＳＴｒｅｆには、リファレンスフレームであることを示す識別情報が含まれる。
【０１５５】
後で説明する手順によって、このリファレンスフレームから、リファレンスアドレスＲＡＤＲとオフセットアドレスＲＯＦＳとから計算された、回路情報記憶部１０２に格納されたコンフィギュレーションデータを持ったノーマルフレームが、リファレンスカウントＲＣＮＴで示された数だけ生成される。
【０１５６】
ノーマルフレームに加えて、リピートフレームとリファレンスフレームの２種類のフレームを持つことが、この実施の形態で用いるシリアル形式の回路情報の特徴である。これら３種類のフレームは、上述のように、それぞれ異なるスタートフィールドのコードを持つことにより、回路情報編集部１０３において認識される。
【０１５７】
このように、同じ回路を再構成する回路情報であっても、回路情報のデータサイズ（回路情報を構成するフレーム数）が小さいことが、この発明の一つの特徴である。このデータサイズの小さい回路情報を、圧縮された回路情報と呼ぶことにする。
【０１５８】
前述の図３７に示した例では、一つの回路情報が５フレーム（ノーマルフレーム）で構成され、回路情報入力制御部２を介して３回路情報（回路情報１、回路情報２、回路情報３）がコンフィギュレーションメモリ１５に格納される。よって、図２５に示した従来のマルチコンテキスト技術によるプログラマブル論理回路装置１０のコンフィギュレーションメモリ１５は、この例の場合には、少なくとも１５フレームを記憶できる容量を備えなければならない。
【０１５９】
すなわち、一般的に、マルチコンテキスト技術によるプログラマブル論理回路装置のコンフィギュレーションメモリは、図２２に示したような通常の従来のプログラマブル論理回路装置のコンフィギュレーションメモリに対して、「格納される回路情報数」倍の記憶容量を必要とする。
【０１６０】
これに対して、この第１の実施の形態では、例えば外部記憶装置から読み込まれた複数個の回路情報は、一旦、回路情報記憶部１０２に記憶される。そして、回路情報編集部１０３が、回路情報の選択信号に従って回路情報記憶部１０２から、圧縮された回路情報を取り出し、取り出した回路情報を、一つの回路情報を記憶する容量の従来と同様のコンフィギュレーションメモリ１０６に格納される回路情報に編集する。
【０１６１】
次に、回路情報入力制御部１０１が、その編集後の回路情報をコンフィギュレーションメモリ１０６に格納し、その回路情報に従って回路素子１０５に選択された回路が再構成される。
【０１６２】
プログラマブル論理回路部１０４のコンフィギュレーションメモリ１０６の容量が、プログラマブル論理回路装置１００に格納される回路情報数にかかわらず、従来のプログラマブル論理回路装置と同じ容量であることが、この発明の別の特徴である。ノーマルフレームの形式の回路情報が５フレームからなる前述の例の場合には、コンフィギュレーションメモリ１０６は、１回路情報分である５フレームを記憶できる容量を備えていればよい。
【０１６３】
したがって、従来のマルチコンテキスト技術によるプログラマブル論理回路装置のコンフィギュレーションメモリの回路規模が大きいことに起因して、回路素子の負荷容量が大きくなることで、回路性能が低下したり消費電力が大きくなるという問題が、この第１の実施の形態により解決される。
【０１６４】
また、この第１の実施の形態では、回路情報は、前述のようにして図２（Ｂ）に示したように圧縮されるので、回路情報記憶部１０２は、ノーマルフレームの構造で必要とする容量よりも少ない容量で、必要とする複数個の回路情報を記憶することができる。因みに、上述の例の場合には、ノーマルフレームの形式で記憶する場合には、回路情報記憶部１０２では、１５フレーム分の容量を必要とするものが、図２（Ｃ）に示すように、９フレーム分を記憶する容量で済むものである。
【０１６５】
［シリアル形式の回路情報による第１の実施の形態のプログラマブル論理回路装置１００のコンフィギュレーション］
図４は、図１に示した、第１の実施の形態のプログラマブル論理回路装置へのシリアル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図４に示したブロック図を用いて、この場合の回路情報のコンフィギュレーションメモリへの格納を説明する。
【０１６６】
図１で示した回路情報入力制御部１０１は、図４においては、コンフィギュレーションコントローラ１０１ａ、レングスカウントレジスタ１０１ｂ、セレクタ１０１ｃ、複数個のシフトレジスタ１０１ｄで構成される。
【０１６７】
また、図１で示したプログラマブル論理回路部１０４の回路素子１０５とコンフィギュレーションメモリ１０６は、図４においては、例えば、図２４（Ａ）のようなＦＰＧＡ型であれば、例えば縦一列の複数個の論理回路セル分を単位として、複数列分に分けられる。
【０１６８】
すなわち、縦一列の複数個の論理回路セル分の回路情報を格納できる容量のコンフィギュレーションメモリ１０６ｓと、それに接続される回路素子１０５ｓとからなる組として、複数列分で構成される。この場合、１ノーマルフレームの回路情報は、縦一列の複数個の論理回路セル分の回路情報の大きさとされる。
【０１６９】
そして、各シフトレジスタ１０１ｄの各段のレジスタは、各列のコンフィギュレーションメモリ１０６ｓの各メモリセルに結線される。したがって、各シフトレジスタ１０１ｄは、例えば、図２４（Ａ）のようなＦＰＧＡ型であれば、縦一列の論理回路セル数への回路情報分の段数を備えるもので構成されている。そして、一つのシフトレジスタが縦一列の複数個の論理回路セルに対して割り当てられて、シフトレジスタ１０１ｄは、横方向の論理回路セル数分だけ設けられる。
【０１７０】
なお、論理回路セル数が多い場合には、数列〜数十列程度の複数列分について一つのシフトレジスタ１０１ｄが設けられて、その複数列に共通に一つのシフトレジスタ１０１ｄが使用されるように構成される場合もある。なお、回路情報のノーマルフレームの大きさは、シフトレジスタ１０１ｄの一つ分のデータ量となる。
【０１７１】
また、図１で示した回路情報記憶部１０２は、コンフィギュレーションキャッシュメモリ１０２Ｍに対応し、回路情報編集部１０３の機能は、コンフィギュレーションコントローラ１０１ａに組み込まれている。
【０１７２】
この図４の構成において、外部記憶装置９から回路情報が読み込まれると、コンフィギュレーションコントローラ１０１ａを介してコンフィギュレーションキャッシュメモリ１０２Ｍに格納される。
【０１７３】
コンフィギュレーションコントローラ１０１ａが、コンテキスト選択の指示を受けると、指示に対応する回路情報が、コンフィギュレーションキャッシュメモリ１０２Ｍからコンフィギュレーションコントローラ１０１ａに読み込まれる。コンフィギュレーションコントローラ１０１ａは、読み込んだ回路情報のヘッダ部ＨＤｓのプリアンブルコードを検知して回路情報編集処理を開始する。
【０１７４】
プリアンブルコードに続くレングスカウントは、レングスカウントレジスタ１０１ｂに格納される。レングスカウントレジスタ１０１ｂの値は、次に説明するシフトレジスタ１０１ｄのデータシフトごとに１を減じられ、レングスカウントレジスタ１０１ｂの値が０になるまでシフトレジスタ１０１ｄが動作する。このことによって、全てのデータがシフトレジスタ１０１ｄに送り出される。
【０１７５】
区切りコードに続くデータ部ＤＴｓは、後述する手順により、リピートフレームやリファレンスフレームの状態として圧縮されたフレームから、圧縮が解かれた状態のノーマルフレームに変換されて、セレクタ１０１ｃに送られる。
【０１７６】
初期状態では、セレクタ１０１ｃは、データを第１列目のシフトレジスタ１０１ｄに送り出す。シフトレジスタ１０１ｄは、セレクタ１０１ｃから送り出されたデータを順次シフトする。データがシフトレジスタ１０１ｄの最後までシフトされると、セレクタ１０１ｃは次の列のシフトレジスタ１０１ｄにデータの送り出しを切り替える。先に述べたレングスカウンタの値が０になるまで、シフトレジスタ１０１ｄが動作することにより、全てのデータがシフトレジスタ１０１ｄに格納される。
【０１７７】
シフトレジスタ１０１ｄがデータで満たされると、そのデータは同時並列的にコンフィギュレーションメモリ１０６ｓに転送され、プログラマブル論理回路部１０４の再構成が行われる。この場合、例えば、前述の図２９に示したように、コンフィギュレーションメモリ１０６ｓの各メモリセルのラッチが、シフトレジスタの各レジスタに接続されており、ラッチへラッチクロックＬＣＬＫを送ることによりシフトレジスタからコンフィギュレーションメモリへ同時並列的にデータが転送される。
【０１７８】
データ部ＤＴｓに続くフッタ部ＦＴｓのポストアンブルコードをコンフィギュレーションコントローラ１０１ａが検知するとコンフィギュレーション処理が終了する。
【０１７９】
以上説明した再構成手順を、前述の例と同様に、アプリケーションプログラムにより指示される処理が、回路情報１、回路情報２、回路情報３の３個の回路情報により行われる場合として、図５、図７、図８のフローチャートと、図６のタイミングチャートを参照して説明する。なお、図６のタイミングチャートでは、回路情報１、回路情報２、回路情報３の順にプログラマブル論理回路装置が再構成されて、処理が終了するとした。
【０１８０】
まず、最初に、回路情報入力制御部１０１は、外部記憶装置（図１では図示せず）などに格納された回路情報を、一つずつ読み込んで回路情報記憶部１０２に格納する（ステップＳ２０１）。このとき、回路情報を読み込むたびに、回路情報記憶部１０２（コンフィギュレーションキャッシュメモリ１０２Ｍ）の残り容量を確認し（ステップＳ２０２、２０３）、全ての回路情報を読み込む前に回路情報記憶部１０２が一杯になったときは、エラーを検知して動作を終了する（ステップＳ２０４）。
【０１８１】
回路情報入力制御部１０１が、すべての回路情報を回路情報記憶部１０２に格納すると、回路情報編集部１０３（コンフィギュレーションコントローラ１０１ａの一部）が選択信号を監視する（ステップＳ２０５）。回路情報編集部１０３は、例えば使用者の選択操作などにより選択信号が切り替えられたことを検知すると、３個の回路情報のうちのどれが選択されたかを判別し（ステップＳ２０６）、切り替えられた選択信号に応じた回路情報を回路情報記憶部１０２から読み出す（ステップＳ２０７またはステップＳ２０８またはステップＳ２０９）。
【０１８２】
次に、読み出した回路情報から、フレームの繰り返し（リピートフレーム）や他の回路情報のフレームの参照（リファレンスフレーム）の有無を調べ、リピートフレームやリファレンスフレームを、読み出した回路情報が含むと判別したときには、それらのリピートフレームやリファレンスフレームを、後述の図７、図８のフローチャートに示すようにして解消することにより、回路情報の圧縮状態を解き、その圧縮状態を解いた後の回路情報をコンフィギュレーションメモリ１０６に転送する（ステップＳ２１０）。
【０１８３】
回路情報編集部１０３は、例えば、図２（Ｄ）に示すように、回路情報１のように、フレーム（１−Ｂ）が４回繰り返す場合は、フレーム（１−Ｂ）の後に同じフレームデータを３回付加する。また、回路情報２のように、回路情報１のフレーム（１−Ａ）が、その第２フレームに参照されている場合は、回路情報編集部１０３が回路情報記憶部１０２から回路情報１のフレーム（１−Ａ）のデータを取り出して、回路情報２の第２フレームに挿入する。さらに、回路情報３のように、回路情報２のフレーム（２−Ａ）とフレーム（２−Ｂ）が、その第１、第２、第３フレームと第４フレームに参照されている場合は、回路情報編集部１０３が回路情報記憶部１０２から、回路情報２のフレーム（２−Ａ）とフレーム（２−Ｂ）のデータを取り出して、回路情報３の第１、第２フレーム、第３フレームと、第４フレームとに挿入する。
【０１８４】
以上のようにして、圧縮状態を解かれて、ノーマルフレームからなる回路情報とされたフレームデータが、全てコンフィギュレーションメモリ１０６に転送されて、格納されると、プログラマブル論理回路部１０４への指定された回路の再構成が完了する。なお、読み出した回路情報が、リピートフレームやリファレンスフレームを含まない場合には、そのまま回路情報は順次に、コンフィギュレーションメモリ１０６に転送され、指定された回路の再構成が完了する。
【０１８５】
その後、プログラマブル論理回路装置１００による処理が継続する限り、回路情報編集部１０３による選択信号の監視が続けられる（ステップＳ２１１およびステップＳ２０５以降の処理）。プログラマブル論理回路装置１００による処理が終了すると（ステップＳ２１１）、選択信号の如何にかかわらず再構成の手順は終了する。
【０１８６】
プログラマブル論理回路装置１００による処理が終了した場合、プログラマブル論理回路装置１００への電源供給が遮断されたりしない限り、一般的には、最後に選択された回路情報で再構成された状態が保持される。
【０１８７】
以上の処理を、図６のタイミングチャートについて、さらに説明する。すなわち、処理が実行状態になると、まず、３個の回路情報１、２、３の回路情報記憶部１０２への読み込みが行われる。読み込みが終了して、回路情報の選択指示が行われると、その選択指示された回路情報が、回路情報記憶部１０２から回路情報編集部１０３に転送され、必要な編集が行われる。そして、その編集後の回路情報が、コンフィギュレーションメモリ１０６に格納されて、その回路情報によりプログラマブル論理回路部１０４が再構成される。
【０１８８】
図６で、実行終了後も回路情報３が構成されて続けているのは、前述したように、処理が終了した場合、電源供給が遮断されたりしない限り、一般的には、プログラマブル論理回路装置は、最後に選択された回路情報で再構成された状態が保持されるからである。
【０１８９】
なお、コンフィギュレーションメモリ１０６ｓと回路素子１０５ｓとの組のすべてにシフトレジスタ１０１ｄが存在する場合であれば、編集後の回路情報は、それらのシフトレジスタ１０１ｄに書き込まれることにより、コンフィギュレーションメモリ１０６に格納される。
【０１９０】
しかし、シフトレジスタ１０１ｄが、複数列（複数組）のコンフィギュレーションメモリ１０６ｓと回路素子１０５ｓに対して共通となる場合には、回路情報編集部１０３は、その編集結果を保持するメモリ部を備える必要がある。
【０１９１】
［回路情報編集部１０３におけるリピートフレームおよびリファレンスフレームの解消処理］
図７および図８を参照しながら、図５のステップＳ２１０のリピートフレームやリファレンスフレームの解消処理を含む編集処理およびコンフィギュレーションメモリ１０６への転送処理について説明する。
【０１９２】
まず、回路情報編集部１０３が、最初のフレームを読み込み（ステップＳ３０１）、そのフレームの種類をフレームのスタートフィールド（ステップＳ３０２）で判別する。すなわち、スタートフィールドが、スタートフィールドビットデータＳＴＢであるときには、ノーマルフレームであると判別し、また、スタートフィールドリピートデータＳＴｒｐであるときには、リピートフレームであると判別し、さらに、スタートリファレンスデータＳＴｒｅｆであるときには、リファレンスフレームであると判別する。
【０１９３】
ステップＳ３０２でのフレームの種類の判別の結果、読み込まれたフレームがノーマルフレームのときは、フレームのデータをそのまま送り出す（ステップＳ３０３）。
【０１９４】
ステップＳ３０２でのフレームの種類の判別の結果、読み込まれたフレームがリピートフレームのときは、リファレンスカウントＲＣＮＴを読み込む（ステップＳ３０４）。つぎに、出力はノーマルフレームのデータとして送出するので、スタートフィールドビットデータＳＴＢ、コンフィギュレーションデータＣＦＧＤ、ストップフィールドビットデータＥＮＢを送り出して（ステップＳ３０５、Ｓ３０６、Ｓ３０７）、リファレンスカウントＲＣＮＴから１を減じる（ステップＳ３０８）。
【０１９５】
そして、リファレンスカウントＲＣＮＴの値が０になったか否か判別し（ステップＳ３０９）、０でなければ、ステップＳ３０５からステップＳ３０８の手順を繰り返す。そして、リファレンスカウントＲＣＮＴが０になったら、全ての処理が終了したか否か判別し（ステップＳ３１０）、終了していなければ、ステップＳ３０１に戻って、上述のステップを繰り返す。全ての処理を終了すれば、この処理ルーチンを終了する。
【０１９６】
以上のように、ステップＳ３０５からステップＳ３０８の手順が、リファレンスカウントＲＣＮＴが０になるまで繰り返されることにより、圧縮されたリピートフレームからリファレンスカウントＲＣＮＴで指示された数のノーマルフレームが生成される。
【０１９７】
ステップＳ３０２でのフレームの種類の判別の結果、読み込まれたフレームがリファレンスフレームのときは、リファレンスカウントＲＣＮＴ、リファレンスアドレスＲＡＤＲ、リファレンスオフセットＲＯＦＳを読み込む（図８のステップＳ３１１、Ｓ３１２，Ｓ３１３）。
【０１９８】
次に、回路情報記憶部１０２内の参照先のフレームの位置を示すリファレンスアドレスＲＡＤＲに、参照先のフレーム内での参照するコンフィギュレーションデータＣＦＧＤの相対位置を表すリファレンスオフセットＲＯＦＳを加えて、参照するコンフィギュレーションデータの、回路情報記憶部１０２の絶対アドレスを計算する（ステップＳ３１４）。
【０１９９】
次に、その絶対アドレスに位置するコンフィギュレーションデータを、回路情報記憶部１０２から読み出して回路情報編集部１０３内に一時的に格納する（ステップＳ３１５）。
【０２００】
次に、リピートフレームの場合と同じように、出力はノーマルフレームのデータとして送出するので、スタートフィールドビットデータＳＴＢ、コンフィギュレーションデータＣＦＧＤ、ストップフィールドビットデータＥＮＢを順次に送り出して（ステップＳ３１６、Ｓ３１７、Ｓ３１８）、リファレンスカウントＲＣＮＴから１を減じる（ステップＳ３１９）。そして、リファレンスカウントＲＣＮＴが０になるまで、ステップＳ３１６〜ステップＳ３１９の手順を繰り返す（ステップＳ３２０）。
【０２０１】
そして、リファレンスカウントＲＣＮＴが０になったら、全ての処理が終了したか否か判別し（ステップＳ３１０）、終了していなければ、ステップＳ３０１に戻って、上述のステップを繰り返す。全ての処理を終了すれば、この処理ルーチンを終了する。
【０２０２】
以上のように、ステップＳ３１６からステップＳ３１９の手順が、リファレンスカウントＲＣＮＴが０になるまで繰り返されることにより、圧縮されたリファレンスフレームから、参照されたコンフィギュレーションデータを持ったノーマルフレームがリファレンスカウントＲＣＮＴで指示された数だけ生成される。
【０２０３】
以上の手順を全てのフレームに対して行うことにより、リピートフレームやリファレンスフレームにより圧縮された回路情報から、圧縮が解かれた回路情報（ノーマルフレームのみからなる回路情報）が生成される。
【０２０４】
そして、以上のようにして圧縮が解かれた回路情報は、回路情報編集部１０３から回路情報入力制御部１０１に送られることにより、従来のプログラマブル論理回路装置のコンフィギュレーションと同じ手順で、プログラマブル論理回路部１０４にコンフィギュレーションされる。
【０２０５】
［第２の実施の形態］
次に、この発明によるプログラマブル論理回路装置の第２の実施の形態を、第１の実施の形態と比較しながら説明する。
【０２０６】
この第２の実施の形態のプログラマブル論理回路装置としては、前述の図１に示した第１の構造のプログラマブル論理回路装置１００を用いる。また、回路情報は、図３に示したものと同一のシリアル形式の回路情報を用いる。この第２の実施の形態で、第１の実施の形態と異なるのは、コンフィギュレーションの方法である。
【０２０７】
図９は、この第２の実施の形態の場合の回路情報およびその編集動作を説明するための図である。この図９の例も、図２の第１の実施の形態の場合と同様に、前述の従来のマルチコンテキスト技術によるプログラマブル論理回路装置のコンフィギュレーションにおいて説明した図３７に示したものと同じ３つの回路情報１、２、３による３個の回路を再構成する手順の例である。
【０２０８】
この図９においても、回路情報のフレーム構造は、図２に示したものと同じである。すなわち、図９（Ａ）〜図９（Ｃ）は、図２（Ａ）〜図２（Ｃ）と全く同一である。
【０２０９】
この第２の実施の形態においても、図６に示したタイミングチャートと同じように、回路情報１、回路情報２、回路情報３、の順番で再構成されるとする。
【０２１０】
この第２の実施の形態においては、回路情報２によって再構成した後に、回路情報３によって再構成するとき、回路情報３の第１フレームと第４フレームのフレームデータは、回路情報２の第１フレームと第４フレームのフレームデータとそれぞれ同じであることが、回路情報編集部１０３によって検知される。
【０２１１】
異なる回路情報において、同じ位置のフレームのデータが同じであるということは、回路情報が異なっても、プログラマブル論理回路部１０４において、そのフレームに対応した回路素子の機能と結線状態は同じであるということを意味する。すなわち、回路情報２に従って再構成された後に、回路情報３に従って再構成する場合は、第１フレームと第４フレームに対応する回路情報は、改めてコンフィギュレーションメモリ１０６に格納する必要は無いことが分かる。
【０２１２】
そこで、この第２の実施の形態では、回路情報編集部１０３は、編集により生成した回路情報が、その前に生成された回路の回路情報と、同じフレーム位置に同じフレームのデータを含む場合は、そのフレームのデータを回路情報入力制御部１０１に転送しない。
【０２１３】
この第２の実施の形態における回路情報編集部１０３での編集処理およびコンフィギュレーションメモリ１０６への転送処理を、図１０および図１１のフローチャートと、前述の図６のタイミングチャートを参照して説明する。図６のタイミングチャートでは、回路情報１、回路情報２、回路情報３の順にプログラマブル論理回路装置が再構成されて、処理が終了するとしている。
【０２１４】
図１０および図１１のフローチャートのほとんどは、第１の実施の形態における対応する図７および図８のフローチャートと同一であるので、その同一部分には、図７および図８のフローチャートと同じステップ番号を付すことにする。
【０２１５】
図１０および図１１と、第１の実施の形態の図７および図８との違いは、次の通りである。すなわち、ステップＳ３０２でのフレームの種類の判別の結果、読み込まれたフレームが、リファレンスフレームであると判別されたときには、図１１に示すように、そのフレームが、その直前に再構成された回路の回路情報の同じ位置のフレームと同一であるか否か判別され（ステップＳ３３０）、同一でなければ、前述と同様にして、ステップＳ３１１以降の手順を実行する。
【０２１６】
一方、ステップＳ３３０での判別の結果、そのフレームが、その直前に再構成
された回路の回路情報の同じ位置のフレームと同一であると判別されたときには、そのフレームの回路情報のコンフィギュレーションメモリ１０６への転送は、スキップされ（ステップＳ３３１）、リファレンスカウントＲＣＮＴから１を減じる（ステップＳ３３２）。
【０２１７】
そして、リファレンスカウントＲＣＮＴの値が０になったか否か判別し（ステップＳ３３３）、０でなければ、ステップＳ３３０に戻り、上述の動作を繰り返す。そして、ステップＳ３３３でリファレンスカウントＲＣＮＴが０になったと判別されたときには、全ての処理が終了したか否か判別し（ステップＳ３１０）、終了していなければ、ステップＳ３０１に戻って、上述のステップを繰り返す。全ての処理を終了すれば、この処理ルーチンを終了する。
【０２１８】
その他のステップの手順は、図７および図８で説明したものと全く同一である。すなわち、図１１において、アンダーラインを付したステップが、この第２の実施の形態において、図７および図８のフローチャートに付加されている。
【０２１９】
図９（Ｄ）に示すように、この場合の例においては、回路情報２のフレーム（２−Ａ）が、回路情報３の第１、第２、第３フレームに参照されており、また、回路情報２のフレーム（２−Ｂ）が、回路情報３の第４フレームに参照されている。そして、それらの参照されているフレームのうち、第１フレームと第４フレームのフレームデータが、回路情報２と、回路情報３とで同一である。このため、この第２の実施の形態の場合には、回路情報３では、図９（Ｄ）でブランクで示すように、第１フレームと第４フレームのフレームデータは、コンフィギュレーションメモリ１０６には転送されない。
【０２２０】
しかし、コンフィギュレーションメモリ１０６の対応するフレームの部分には、既に、回路情報２の各フレームデータが転送されて格納されていることから、回路情報３で必要とするフレームデータが格納されている。
【０２２１】
以上のようにして、この第２の実施の形態においては、既にコンフィギュレーションメモリ１０６に存在している回路情報を有効利用することにより、不必要なフレームデータの転送を回避することができるので、回路情報のコンフィギュレーションを、より高速化することができるものである。
【０２２２】
［第３の実施の形態］
［この発明によるプログラマブル論理回路装置の第２の構造］
この第３の実施の形態のプログラマブル論理回路装置は、この発明によるプログラマブル論理回路装置の第２の構造を備える。図１２は、この第２の構造を備える、この発明によるプログラマブル論理回路装置２００の構成を示すもので、回路情報を外部から読み込む回路情報入力制御部２０１と、読み込まれた回路情報に従って回路機能を実現するプログラマブル論理回路部２０２とから構成される。
【０２２３】
プログラマブル論理回路部２０２には、回路が再構成される回路素子２０２１と、この回路素子２０２１に回路を再構成するための回路情報を格納するコンフィギュレーションメモリ２０２２が設けられるのは、前述の実施の形態と同様であるが、さらに、この第２の構造においては、プログラマブル論理回路部２０２には、処理に必要となる複数の回路情報を一時的に記憶する回路情報記憶部２０２３と、これらの複数の回路情報から必要な回路情報を選択して編集する回路情報編集部２０２４とが再構成されて設けられる。
【０２２４】
すなわち、前述した第１の構造は、従来の通常の構成のプログラマブル論理回路装置の構成要素である回路情報入力制御部とプログラマブル論理回路部の他に、回路情報記憶部と、回路情報編集部を新たに設ける構成であって、従来の通常の構成のプログラマブル論理回路装置を、そのまま用いることができない構成であるが、この発明によるプログラマブル論理回路装置の実施の形態の第２の構造は、従来の通常の構成のプログラマブル論理回路装置のプログラマブル論理回路部２０２内に、回路情報記憶部２０２３と回路情報編集部２０２４とを再構成した構造とすることにより、従来の通常の構成のプログラマブル論理回路装置をそのまま使用できるようにした場合である。
【０２２５】
この第２の構造においても、第１の構造と同じように、プログラマブル論理回路装置２００に読み込まれた複数の回路情報は、プログラマブル論理回路部２０２の回路情報記憶部２０２３に格納され、回路情報編集部２０２４で編集された後に、回路情報入力制御部２０１によってコンフィギュレーションメモリ２０２２に書き込まれる。コンフィギュレーションメモリ２０２２に書き込まれた回路情報に従って、回路素子２０２１の機能と結線状態が決められる。
【０２２６】
第２の構造の、第１の構造との第一の違いは、まず最初に、プログラマブル論理回路装置２００として一つの回路情報を読み込んで、そのプログラマブル論理回路部２０２に、回路情報記憶部２０２３と回路情報編集部２０２４の機能を備える回路部分を再構成することにある。このときの回路情報は、回路情報入力制御部２０１を介してコンフィギュレーションメモリ２０２２に格納される。
【０２２７】
また、第２の構造の、第１の構造との第２の違いは、例えば外部記憶装置から複数の回路情報を読み込んで回路情報記憶部２０２３に記憶するときに、回路情報入力制御部２０１を介さず、プログラマブル論理回路部２０２の入出力部を介して回路情報記憶部２０２３に複数の回路情報を読み込むことにある。したがって、この第２の構造においては、プログラマブル論理回路部２０２の入出力部が、回路情報記憶部２０２３への回路情報の書き込み手段を構成する。
【０２２８】
また、第２の構造の、第１の構造との第３の違いは、回路情報編集部２０２４で編集された回路情報が、プログラマブル論理回路部２０２の入出力部を介してプログラマブル論理回路装置２００の外部に出力され、改めて回路情報入力制御部２０１に入力されることである。回路情報入力制御部２０１が、コンフィギュレーションメモリ２０２２に回路情報を転送してコンフィギュレーションを実行するのは、従来と同様である。
【０２２９】
上記の第２と第３の違いは、従来のプログラマブル論理回路装置は複数の回路情報を読み込むことができないこと、プログラマブル論理回路部に構成された回路は入出力部を介してデータを入出力しなければならないこと、により生じる。
【０２３０】
［第３の実施の形態におけるコンフィギュレーション］
この第３の実施の形態においては、プログラマブル論理回路装置２００が上述した第２の構造を備える他は、シリアル形式で回路情報が構成されるとともに、回路情報が前述の図３に示すような３種のフレーム構成を取り得ることにより、前述と同様にして圧縮される点は、前述の第１および第２の実施の形態の場合と同様である。
【０２３１】
以下では、第３の実施の形態のプログラマブル論理回路装置２００の構成要素のうち、回路情報入力制御部２０１、回路情報記憶部２０２３、回路情報編集部２０２４、コンフィギュレーションメモリ２０２２に着目して、図１３を参照しながら、この第３の実施の形態のプログラマブル論理回路装置２００の動作を説明する。
【０２３２】
図１３に示した例では、プログラマブル論理回路装置２００のコンフィギュレーションメモリ２０２２は、５フレーム分の回路情報が格納可能である。そして、このプログラマブル論理回路装置２００においては、最初の１フレーム（第１フレーム）で回路情報記憶部２０２３と回路情報編集部２０２４を、プログラマブル論理回路部２０２内に再構成し、残りの４フレーム（第２フレームから第５フレーム）で、３種類の処理回路を再構成する。
【０２３３】
実際的には、図１３に示すように、最初の回路情報として、回路情報記憶部２０２３と回路情報編集部２０２４とを再構成するための第１フレームのみの回路情報０を用意する。そして、この回路情報０により、プログラマブル論理回路部２０２に回路情報記憶部２０２３と回路情報編集部２０２４とを再構成する。処理に必要な回路情報１、２、３は、図１３に示すように、この第１フレームの部分は、再構成しないように、第１フレーム部分はブランクとした４フレームで構成される。
【０２３４】
図１３の例においては、最終的には、前述の実施の形態と同様にして、３つの回路情報１、２、３は、前述のような回路情報の圧縮により、より小さいフレーム数で構成される。
【０２３５】
すなわち、回路情報１は、フレーム（１−Ａ）と、フレーム（１−Ｂ）の２フレームで構成される。フレーム（１−Ｂ）は、リピートフレームの構成であり、この例の場合には、同フレームを３回繰り返すという参照情報が付加されている。
【０２３６】
回路情報２は、フレーム（２−Ａ）、フレーム（１−Ａ）、フレーム（２−Ｂ）の３フレームで構成される。回路情報２のフレーム（１−Ａ）は、リファレンスフレームであり、そのフレームデータには回路情報１のフレーム（１−Ａ）と同じであるという参照情報が付加されているとともに、同フレームを２回繰り返すという参照情報が付加されている。
【０２３７】
回路情報３は、フレーム（２−Ａ）、フレーム（２−Ｂ）の２フレームで構成される。回路情報３のフレーム（２−Ａ）とフレーム（２−Ｂ）には、それぞれ、フレームデータは回路情報２のフレーム（２−Ａ）とフレーム（２−Ｂ）と同じであるという参照情報が付加され、また、フレーム（２−Ａ）には、同フレームを３回繰り返すという参照情報が付加されている。
【０２３８】
以上のように、この第３の実施の形態の回路情報も、第１の実施の形態と同じようにして圧縮されている。したがって、回路情報記憶部２０２３に格納されるフレーム数は、圧縮がない場合には、１２フレーム分が必要であるのに対して、７フレームというように、少ないフレーム数で良くなる。
【０２３９】
そして、この第３の実施の形態においても、回路情報記憶部２０２３および回路情報編集部２０２４の働きは、上述の実施の形態と同様であり、外部から読み込まれた複数の回路情報、この例では回路情報１、２、３は、回路情報記憶部２０２３に一時記憶される。そして、回路情報編集部２０２４は、使用者の選択指示に応じた選択信号に従って、回路情報記憶部２０２３から圧縮された回路情報を取り出し、取り出した回路情報を従来のプログラマブル論理回路装置のコンフィギュレーションメモリに格納される回路情報と同様の回路情報に編集する。次に、回路情報入力制御部２０１が、回路情報編集部２０２４からの回路情報をコンフィギュレーションメモリ２０２２に格納し、その回路情報に従ってプログラマブル論理回路装置２００が再構成される。
【０２４０】
この再構成手順を図１５のフローチャートと図１６のタイミングチャートを参照して説明する。図１６のタイミングチャートでは、回路情報１、回路情報２、回路情報３の順にプログラマブル論理回路装置２００に処理に必要な回路が再構成されて、処理が終了するとした。
【０２４１】
図１５のフローチャートは、前述した第１の実施の形態および第２の実施の形態の図５のフローチャートと比較すると、最初に、ステップＳ４００が挿入されている点が異なるのみで、その後のステップは、全く同一である。そこで、図１５のフローチャートにおいても、図５のフローチャートと同一ステップには、同一ステップ番号を付している。
【０２４２】
まず、最初に、回路情報入力制御部２０１は、プログラマブル論理回路部２０２に、回路情報記憶部２０２３と回路情報編集部２０２４とを再構成する回路情報０を読み込む。図１３に示すように、回路情報０は、その第１フレーム０に、回路情報記憶部２０２３と回路情報編集部２０２４とを再構成する回路情報を有している。そして、その第２フレームから第５フレームは、後に処理回路を再構成するために、空きフレームとなっている。この手順は、従来のプログラマブル論理回路装置で実現される手順と同じである。
【０２４３】
その後は、前述したステップＳ２０１〜ステップＳ２１１の手順が実行されて、回路情報１、２、３は、順次、圧縮が解凍されながら、コンフィギュレーションメモリ２０２２に格納され、プログラマブル論理回路装置２００に、処理に必要な回路が順次に再構成される。
【０２４４】
すなわち、外部記憶装置（図示せず）などに格納されている複数個の回路情報１、２、３を、プログラマブル論理回路部２０２の入出力部を介して、一つずつ読み込んで回路情報記憶部２０２３に格納する（ステップＳ２０１）。前述の実施の形態の場合と異なり、この第２の実施の形態の場合には、回路情報入力制御部を介して読み込むのではなく、プログラマブル論理回路部２０２の入出力部を介して読み込む。
【０２４５】
このとき、一つの回路情報を読み込むたびに、回路情報記憶部２０２３の残り容量を確認し、全ての回路情報を読み込む前に回路情報記憶部２０２３が一杯になったときは、エラーを検知して動作を終了する（ステップＳ２０２、Ｓ２０３，２０４）。
【０２４６】
読み込まれる回路情報１、２、３の第１フレームは、図１３に示すように、既に、コンフィギュレーションメモリ２０２２に格納されて、プログラマブル論理回路部２０２に再構成されている回路情報記憶部２０２３と回路情報編集部２０２４の部分と干渉しないように、つまり、プログラマブル論理回路部２０２において、これら回路情報記憶部２０２３と回路情報編集部２０２４の回路構成が壊されないように、空きフレームとなっている。
【０２４７】
すべての回路情報が回路情報記憶部２０２３に格納されると（ステップＳ２０２）、回路情報編集部２０２４が選択信号を監視する（ステップＳ２０５、ステップＳ２０６）。回路情報編集部２０２４が、選択信号が切り替えられたことを検知すると、切り替えられた回路情報に従って、回路情報記憶部２０２３から、必要な回路情報を取り出す（ステップＳ２０７〜ステップＳ２０９）。
【０２４８】
次に、取り出した回路情報から、フレームの繰り返し（リピートフレーム）や他の回路情報のフレームの参照（リファレンスフレーム）を調べ出し、それらのリピートフレームやリファレンスフレームを解消することにより、回路情報の圧縮状態を解く（ステップＳ２１０）。
【０２４９】
ステップＳ２１０の回路情報編集処理においては、図１４に示すように、回路情報１のように、フレーム（１−Ｂ）が３回繰り返す場合は、フレーム（１−Ｂ）の後に同じフレームデータを２回付加する。
【０２５０】
回路情報２のように、回路情報１のフレーム（１−Ａ）が、その第３フレームに参照されている場合は、回路情報編集部２０２４が回路情報記憶部２０２３から回路情報１のフレーム（１−Ａ）のデータを取り出して、回路情報２の第３フレームに挿入する。
【０２５１】
さらに、回路情報３のように、回路情報２のフレーム（２−Ａ）とフレーム（２−Ｂ）が、その第２、第３、第４フレームと、第５フレームに参照されている場合は、回路情報編集部２０２４が回路情報記憶部２０２３から回路情報２のフレーム（２−Ａ）とフレーム（２−Ｂ）のデータを取り出して、回路情報３の第２、第３、第４フレームと第５フレームに挿入する。
【０２５２】
圧縮状態を解かれた回路情報は、回路情報入力制御部２０１に送られ、従来のプログラマブル論理回路装置と同じように、コンフィギュレーションメモリ２０２２に格納され、再構成が完了する（ステップＳ２１１）。
【０２５３】
その後、プログラマブル論理回路装置による処理が継続する限り、回路情報編集部による選択信号の監視が続けられる。プログラマブル論理回路装置による処理が終了すると、選択信号の如何にかかわらず再構成の手順は終了する。
【０２５４】
図１６は、以上の回路情報の読み込みおよび回路情報の再構成動作のタイミングチャートである。回路情報１、２、３の読み込みに先立ち、回路情報記憶部２０２３および回路情報編集部２０２４をプログラマブル論理回路部２０２に予め再構成するため、回路情報０を読み込むようにする点が、第１および第２の実施の形態の場合の図６のタイミングチャートと異なっている。
【０２５５】
［第４の実施の形態］
この第４の実施の形態は、第３の実施の形態において、前述した第２の実施の形態と同様に、直前に既にプログラマブル論理回路部２０２に再構成してある回路を有効利用するようにした場合である。
【０２５６】
すなわち、この第４の実施の形態においては、回路情報編集部２０２４で、回路情報記憶部２０２３から読み出した回路情報の編集を行なって、回路情報入力制御部２０１を通じてコンフィギュレーションメモリ２０２２に回路情報を転送する際に、その直前にプログラマブル論理回路部２０２に再構成されて生成された回路の回路情報と、同じフレーム位置に同じフレームのデータを含む場合は、そのフレームのデータは、回路情報入力制御部２０１を通じてコンフィギュレーションメモリ２０２２に転送しない。
【０２５７】
例えば、前述と同様の３つの回路情報１、２、３により、３つの回路を順次にプログラマブル論理回路装置２００に再構成して生成する場合を例にとると、図１７に示すように、回路情報２によってプログラマブル論理回路部２０２を再構成した後に、回路情報３によってプログラマブル論理回路部２０２を再構成するとき、回路情報３の第２フレームと第５フレームのフレームデータは、回路情報２の、同じ位置のフレームのデータとそれぞれ同じであることが、回路情報編集部２０２４によって検知される。
【０２５８】
そして、前述もしたように、回路情報において同じ位置のフレームのデータが同じであるということは、そのフレームに対応した回路素子の機能と結線状態は同じであるということを意味するので、回路情報３に従って再構成する場合は、第２フレームと第５フレームに対応する回路情報を改めてコンフィギュレーションメモリに格納する必要はなく、図１０および図１１に示した場合と全く同様にして、そのフレームのデータ部分は、スキップして、そのフレームデータを回路情報入力制御部２０１に転送しない。
【０２５９】
［第５の実施の形態］
以上説明した第１〜第４の実施の形態は、全て、回路情報は、シリアル形式の場合としたが、この発明は、パラレル形式の回路情報の場合にも、もちろん適用できる。この第５の実施の形態は、パラレル形式の回路情報の場合である。
【０２６０】
この第５の実施の形態では、パラレル形式の回路情報の具体的な構造を示して、回路情報編集部１０３（第１および第２の実施の形態の場合）や回路情報編集部２０２４（第３および第４の実施の形態の場合）で行われる回路情報のリピートフレームやリファレンスフレームの解消について説明する。
【０２６１】
［この発明によるパラレル形式の回路情報］
この第５の実施の形態に用いるパラレル形式の回路情報の構造を図１８に示す。図３２に示した従来のパラレル形式の回路情報と同じように、この場合のパラレル形式の回路情報も、図１８（Ａ）に示すように、ヘッダ部ＨＤｐ、データ部ＤＴｐ、フッタ部ＦＴｐから構成される。
【０２６２】
プログラマブル論理回路装置１００または２００内では、あるビット幅（例えば３２ビット）のパラレル形式の回路情報は、適当な単位（例えば、１ビット、６４ビット）で区切ることにより、プログラマブル論理回路装置１００または２００外で、シリアル転送、異なるバス幅のパラレル伝送やパラレルメモリアクセスを行うことができる。
【０２６３】
ヘッダ部ＨＤｐは、回路情報の始まりを示すプリアンブルコードと、回路情報の入力クロック速度などのコンフィギュレーションパラメータを設定するオプションコードと、設定されたオプションを実行してデータの読み込みを開始するスイッチコマンドとからなる。このスイッチコマンドは、この発明の各実施の形態の回路情報編集部への編集指示情報ともなっている。
【０２６４】
データ部ＤＴｐは、シリアル形式と同様に３種類の複数のフレームからなる。フッタ部ＦＴｐは、回路情報の終わりを表すポストアンブルコードからなる。
【０２６５】
データ部ＤＴｐを構成するフレームは、このパラレル形式においても、ノーマルフレーム、リピートフレーム、リファレンスフレームの３種類である。
【０２６６】
ノーマルフレームは、図１８（Ｂ）に示すように、従来のパラレル形式の回路情報で用いられるフレームと同じ構造であり、データを書きこむコンフィギュレーションメモリ内のフレーム位置を表すフレームアドレスＦＡＤＲ、データの書きこみを指示するデータインコマンドＤＩＮ、コンフィギュレーションデータＣＦＧＤから読み込むワード数を指示するワードカウントＷＣＮＴ、コンフィギュレーションデータＣＦＧＤからなる。
【０２６７】
リピートフレームは、図１８（Ｃ）に示すように、データを書きこむコンフィギュレーションメモリ内のフレーム位置を表すフレームアドレスＦＡＤＲ、データの繰り返しを指示するリピートコマンドＲＥＰＴ、コンフィギュレーションデータＣＦＧＤから読み込むワード数を指示するワードカウントＷＣＮＴ、繰り返し数を指示するリファレンスカウントＲＣＮＴ、コンフィギュレーションデータＣＦＧＤからなる。のちに説明する手順で、圧縮されたリピートフレームからリファレンスカウントＲＣＮＴで示された数のノーマルフレームが生成される。
【０２６８】
リファレンスレームは、図１８（Ｄ）に示すように、データを書きこむコンフィギュレーションメモリ内のフレーム位置を表すフレームアドレスＦＡＤＲ、データの参照を指示するリファレンスコマンドＲＥＦＣ、コンフィギュレーションデータＣＦＧＤから読み込むワード数を指示するワードカウントＷＣＮＴ、繰り返し数を指示するリファレンスカウントＲＣＮＴ、参照先のフレーム内でデータを読み出す相対アドレスを示すリファレンスオフセットＲＯＦＳ、回路情報記憶部１０２または２０２３内の参照先のフレームのアドレスを示すリファレンスアドレスＲＡＤＲからなる。のちに説明する手順で、圧縮されたリファレンスフレームから、リファレンスアドレスＲＡＤＲとオフセットアドレスＲＯＦＳから計算された回路情報記憶部１０２または２０２３に格納されたコンフィギュレーションデータを持ったノーマルフレームが、リファレンスカウントＲＣＮＴで示された数だけ生成される。
【０２６９】
ノーマルフレームに加えて、リピートフレームとリファレンスフレームの２種類のフレームを持つことが、この例のパラレル形式の回路情報の特徴である。これら３種類のフレームは、それぞれ異なるコマンド（データインコマンドＤＩＮ、リピートコマンドＲＥＰＴ、リファレンスコマンドＲＥＦＣ）を持つことにより、それが回路情報編集部１０３または２０２４に認識され、区別される。
【０２７０】
［パラレル形式の回路情報による第１の構造のプログラマブル論理回路装置１００のコンフィギュレーション］
図１９は、図１に示した、第１の構造のプログラマブル論理回路装置へのパラレル形式の回路情報によるコンフィギュレーション動作を説明するための機能ブロック図である。この図１９に示したブロック図を用いて、この場合の回路情報のコンフィギュレーションメモリへの格納を説明する。
【０２７１】
図１で示した回路情報入力制御部１０１は、図１９においては、コンフィギュレーションコントローラ１０１ｅ、アドレス生成器１０１ｆ、セレクタ１０１ｇで構成される。
【０２７２】
また、図１で示したプログラマブル論理回路部１０４の回路素子１０５とコンフィギュレーションメモリ１０６は、図１９においては、例えば、図２４（Ａ）のようなＦＰＧＡ型であれば、例えば縦一列の複数個の論理回路セル分を単位として、複数列分に分けられる。
【０２７３】
すなわち、縦一列の複数個の論理回路部分の回路情報を格納できる容量のコンフィギュレーションメモリ１０６ｓと、それに接続される回路素子１０５ｓとからなる組として、複数列分で構成される。この場合、１ノーマルフレームの回路情報は、縦一列の複数個の論理回路部分の回路情報の大きさとされる。
【０２７４】
そして、図３４に示したものと同様にして、各列のコンフィギュレーションメモリ１０６ｓのビット線がセレクタ１０１ｇに結線される。また、コンフィギュレーションメモリ１０６ｓのワード線は、アドレス生成器１０１ｆに結線される。
【０２７５】
また、図１で示した回路情報記憶部１０２は、図１９ではコンフィギュレーションキャッシュメモリ１０２Ｍに対応し、回路情報編集部１０３の機能は、コンフィギュレーションコントローラ１０１ｅに組み込まれている。
【０２７６】
この図１９の構成において、外部記憶装置９から回路情報が読み込まれると、コンフィギュレーションコントローラ１０１ｅを介してコンフィギュレーションキャッシュメモリ１０２Ｍに格納される。
【０２７７】
コンフィギュレーションコントローラ１０１ｅが、コンテキスト選択の指示を受けると、指示に対応する回路情報が、コンフィギュレーションキャッシュメモリ１０２Ｍからコンフィギュレーションコントローラ１０１ｅに読み込まれる。そして、コンフィギュレーションコントローラ１０１ｅが、回路情報のヘッダ部ＨＤｐのプリアンブルコードを検知して回路情報編集処理を開始する。
【０２７８】
まず、プリアンブルコードに続くオプションコードでコンフィギュレーションのパラメータが設定される。そして、次のスイッチコマンドにより、設定されたオプションが実行され、データＤＴｐの読み込みが開始される。
【０２７９】
データ部ＤＴｐのフレームデータは、後述する手順により、リピートフレームやリファレンスフレームにより圧縮されたフレームから、圧縮が解かれたノーマルフレームに変換される。そして、各フレームのフレームアドレスＦＡＤＲがアドレス生成器１０２ｆに読み込まれ、データを書き込むコンフィギュレーションメモリ１０６ｓに対応するビット線とワード線が選択される。次に、データインコマンドＤＩＮが起動され、コンフィギュレーションデータＣＦＧＤからワードカウントＷＣＮＴに示される数だけのデータが読み出されて、セレクタ１０１ｇを介してコンフィギュレーションメモリ１０６ｓに書き込まれる。この手順を全てのフレームに対して繰り返す。
【０２８０】
データ部ＤＴｐに続くフッタ部ＦＴｐのポストアンブルコードをコンフィギュレーションコントローラ１０１ｅが検知すると、コンフィギュレーション処理が終了する。以上の処理は、図５のフローチャートに示した手順と全く同様であるが、ステップＳ２１０での回路情報編集部１０３での、圧縮解凍処理が、図２０および図２１に示すようになる点が、前述のシリアル形式の回路情報の場合（図７、図８）とは異なる。
【０２８１】
［回路情報編集部での処理］
図２０および図２１を参照しながら、このパラレル形式の回路情報の場合の実施の形態におけるリピートフレームやリファレンスフレームの解消処理を説明する。
【０２８２】
まず、回路情報編集部１０３が、最初のフレームを読み込み、その種類を各フレームのフレームアドレスＦＡＤＲに続くコマンドで判別する。そして、読み込まれたフレームがノーマルフレームであると判別されたときは、そのフレームのデータをそのまま送り出す（ステップＳ５０３）。
【０２８３】
また、読み込まれたフレームがリピートフレームであると判別されたときは、リファレンスカウントＲＣＮＴを読み込む。つぎに、フレームアドレスＦＡＤＲ、データインコマンドＤＩＮ、ワードカウントＷＣＮＴ、コンフィギュレーションデータＣＦＧＤを、順次送り出して（ステップＳ５０４〜Ｓ５０８）、リファレンスカウントＲＣＮＴから１を減じる（ステップＳ５０９）。この手順をリファレンスカウントが０になるまで繰り返す（ステップＳ５１０）ことにより、圧縮されたリピートフレームから、リファレンスカウントＲＣＮＴで指示された数のノーマルフレームを生成する。
【０２８４】
また、読み込まれたフレームがリファレンスフレームであると判別されたときは、リファレンスカウントＲＣＮＴ、リファレンスアドレスＲＡＤＲ、リファレンスオフセットＲＯＦＳを読み込む（図２１のステップＳ５１１〜Ｓ５１３）。次に、回路情報記憶部１０２内の参照先のフレームの位置を示すリファレンスアドレスＲＡＤＲに、参照先のフレーム内での参照するコンフィギュレーションデータＣＦＧＤの相対位置を表すリファレンスオフセットＲＯＦＳを加えて、参照するコンフィギュレーションデータＣＦＧＤの絶対アドレスを計算する（ステップＳ５１４）。
【０２８５】
次に、その絶対アドレスに位置するコンフィギュレーションデータＣＦＧＤを読み出して回路情報編集部１０３内に一時的に格納する（ステップＳ５１５）。次に、前述したリピートフレームの場合と同じように、リファレンスカウントＲＣＮＴが０になるまで、フレームアドレスＦＡＤＲ、データインコマンドＤＩＮ、ワードカウントＷＣＮＴ、コンフィギュレーションデータＣＦＧＤを送り出して（ステップＳ５１６〜Ｓ５２１）、圧縮されたリファレンスフレームから、参照されたコンフィギュレーションデータＣＦＧＤを持ったノーマルフレームをリファレンスカウントＲＣＮＴで指示された数だけ生成する。
【０２８６】
この手順を全てのフレームに対して行うことにより（ステップＳ５２２）、リピートフレームやリファレンスフレームにより圧縮された回路情報から、圧縮が解かれたノーマルフレームのみからなる回路情報が生成される。
【０２８７】
この圧縮が解かれた回路情報を、回路情報入力制御部１０１に送ることにより、従来のプログラマブル論理回路装置のコンフィギュレーションと同じ手順でコンフィギュレーションされる。
【０２８８】
なお、以上説明した第５の実施の形態は、第１の構造のプログラマブル論理回路装置１００のコンフィギュレーションに、パラレル形式の回路情報を用いた場合であるが、第２の構造のプログラマブル論理回路装置２００の場合にも、同様に適用できるとともに、第２の実施の形態や第４の実施の形態の場合のように、プログラマブル論理回路部に既に生成されている回路を有効利用する場合にも、前述と同様にして、適用できるものである。
【０２８９】
なお、上述の回路情報の圧縮方法は一例であって、回路情報の圧縮方法としては、どのようなものであっても良い。そして、回路情報編集部１０３は、その回路情報の圧縮方法に対応する編集処理を行なう機能を備えるように構成されるものである。
【図面の簡単な説明】
【０２９０】
【図１】この発明によるプログラマブル論理回路装置の実施の形態の第１の構造を説明するブロック図である。
【図２】この発明によるプログラマブル論理回路装置の第１の実施の形態を説明する図である。
【図３】この発明の実施の形態で用いるシリアル形式の回路情報の例を説明する図である。
【図４】シリアル形式の回路情報を用いてコンフィギュレーションを行なう実施の形態のプログラマブル論理回路装置を説明するブロック図である。
【図５】第１の実施の形態のプログラマブル論理回路装置の動作を説明するためのフローチャートである。
【図６】第１および第２の実施の形態のプログラマブル論理回路装置の動作を説明するためのタイミングチャートである。
【図７】第１および第３の実施の形態のプログラマブル論理回路装置におけるシリアル形式の回路情報の編集を説明するためのフローチャートの一部である。
【図８】第１および第３の実施の形態のプログラマブル論理回路装置におけるシリアル形式の回路情報の編集を説明するためのフローチャートの残部である。
【図９】この発明によるプログラマブル論理回路装置の第２の実施の形態を説明する図である。
【図１０】第２および第４の実施の形態のプログラマブル論理回路装置におけるシリアル形式の回路情報の編集を説明するためのフローチャートの一部である。
【図１１】第２および第４の実施の形態のプログラマブル論理回路装置におけるシリアル形式の回路情報の編集を説明するためのフローチャートの残部である。
【図１２】この発明によるプログラマブル論理回路装置の実施の形態の第２の構造を説明するブロック図である。
【図１３】この発明によるプログラマブル論理回路装置の第３の実施の形態を説明するための図である。
【図１４】この発明によるプログラマブル論理回路装置の第３の実施の形態における編集動作を説明するための図である。
【図１５】第３の実施の形態のプログラマブル論理回路装置の動作を説明するためのフローチャートである。
【図１６】第３と第４の実施の形態のプログラマブル論理回路装置の動作を説明するためのタイミングチャートである。
【図１７】この発明による第４の実施の形態のプログラマブル論理回路装置における編集動作を説明するための図である。
【図１８】この発明の実施の形態で用いるパラレル形式の回路情報の例を説明する図である。
【図１９】パラレル形式の回路情報を用いてコンフィギュレーションを行なう実施の形態のプログラマブル論理回路装置を説明するブロック図である。
【図２０】この発明の実施の形態において、パラレル形式の回路情報を用いる場合の編集動作を説明するためのフローチャートの一部である。
【図２１】この発明の実施の形態において、パラレル形式の回路情報を用いる場合の編集動作を説明するためのフローチャートの残部である。
【図２２】従来のプログラマブル論理回路装置の構造を説明するブロック図である。
【図２３】従来のプログラマブル論理回路装置のプログラマブル論理回路部の構造を説明するブロック図である。
【図２４】ＦＰＧＡ型およびＣＰＬＤ型のプログラマブル論理回路部の具体的構造例を示す図である。
【図２５】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の構造を説明するブロック図である。
【図２６】従来のマルチコンテキスト技術によるプログラマブル論理回路装置のプログラマブル論理回路部の構造を説明するブロック図である。
【図２７】従来のシリアル形式の回路情報を説明する図である。
【図２８】シリアル形式の回路情報を用いる従来のプログラマブル論理回路装置を説明するブロック図である。
【図２９】シリアル形式の回路情報を用いるプログラマブル論理回路装置のプログラマブル論理回路部の一部を説明するブロック図である。
【図３０】シリアル形式の回路情報を用いるマルチコンテキスト技術によるプログラマブル論理回路装置のプログラマブル論理回路部の一部の構成を説明するブロック図である。
【図３１】シリアル形式の回路情報を用いるマルチコンテキスト技術によるプログラマブル論理回路装置を説明するブロック図である。
【図３２】従来のパラレル形式の回路情報を説明する図である。
【図３３】パラレル形式の回路情報を用いる従来のプログラマブル論理回路装置を説明するブロック図である。
【図３４】パラレル形式の回路情報を用いる従来のプログラマブル論理回路装置のプログラマブル論理回路部の一部の構成を説明する図である。
【図３５】パラレル形式の回路情報を用いるマルチコンテキスト技術によるプログラマブル論理回路装置のプログラマブル論理回路部の一部の構成を説明する図である。
【図３６】パラレル形式の回路情報を用いるマルチコンテキスト技術によるプログラマブル論理回路装置を説明するブロック図である。
【図３７】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の動作を説明するための図である。
【図３８】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の動作を説明するフローチャートである。
【図３９】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の動作を説明するタイミングチャートである。
【図４０】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の例１を説明するブロック図である。
【図４１】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の例２を説明するブロック図である。
【図４２】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の例３を説明するブロック図である。
【図４３】従来のマルチコンテキスト技術によるプログラマブル論理回路装置の例４を説明するブロック図である。
【符号の説明】
【０２９１】
１００  第１の構造のプログラマブル論理回路装置
１０１  回路情報入力制御部
１０２  回路情報記憶部
１０３  回路情報編集部
１０４  プログラマブル論理回路部
１０５  回路素子
１０６  コンフィギュレーションメモリ
２００  第２の構造のプログラマブル論理回路装置
２０１  回路情報入力制御部
２０２  プログラマブル論理回路部
２０２１  回路素子
２０２２  コンフィギュレーションメモリ
２０２３  回路情報記憶部
２０２４  回路情報編集部
【図１】
2005323399.tif 000003
【図２】
2005323399.tif 000004
【図３】
2005323399.tif 000005
【図４】
2005323399.tif 000006
【図５】
2005323399.tif 000007
【図６】
2005323399.tif 000008
【図７】
2005323399.tif 000009
【図８】
2005323399.tif 000010
【図９】
2005323399.tif 000011
【図１０】
2005323399.tif 000012
【図１１】
2005323399.tif 000013
【図１２】
2005323399.tif 000014
【図１３】
2005323399.tif 000015
【図１４】
2005323399.tif 000016
【図１５】
2005323399.tif 000017
【図１６】
2005323399.tif 000018
【図１７】
2005323399.tif 000019
【図１８】
2005323399.tif 000020
【図１９】
2005323399.tif 000021
【図２０】
2005323399.tif 000022
【図２１】
2005323399.tif 000023
【図２２】
2005323399.tif 000024
【図２３】
2005323399.tif 000025
【図２４】
2005323399.tif 000026
【図２５】
2005323399.tif 000027
【図２６】
2005323399.tif 000028
【図２７】
2005323399.tif 000029
【図２８】
2005323399.tif 000030
【図２９】
2005323399.tif 000031
【図３０】
2005323399.tif 000032
【図３１】
2005323399.tif 000033
【図３２】
2005323399.tif 000034
【図３３】
2005323399.tif 000035
【図３４】
2005323399.tif 000036
【図３５】
2005323399.tif 000037
【図３６】
2005323399.tif 000038
【図３７】
2005323399.tif 000039
【図３８】
2005323399.tif 000040
【図３９】
2005323399.tif 000041
【図４０】
2005323399.tif 000042
【図４１】
2005323399.tif 000043
【図４２】
2005323399.tif 000044
【図４３】
2005323399.tif 000045