(57)【要約】【課題】本発明は、プログラマブル論理装置が外部装置との接続状態をアクティブに保持したまま、部分的な再構成を行うことができるように構成している。【解決手段】バッファ論理ブロック７３は、デマルチプレクサー７２から入力されたデータを論理処理し、ＰＣＩＩ／Ｆ６がＦＰＧＡ１による論理処理結果を待機するアイドル状態となるようなＰＣＩ規格に従った出力データをマルチプレクサー７１に出力する。【選択図】　　　　　図３
2004023417.tif 000002
【特許請求の範囲】
【請求項１】
回路構成情報を含む回路情報に基づいて再構成が可能な論理ブロックを複数備えたプログラマブル論理装置において、
接続規格が定められた外部装置と接続する接続手段と、
前記回路情報を取得し、この取得した回路情報に基づいて前記論理ブロックを再構成する再構成手段と、
前記接続手段により接続された外部装置と、前記再構成手段により再構成される論理ブロックとの間で、データの入出力を調整する調整手段と、
を備えることを特徴とするプログラマブル論理装置。
【請求項２】
前記調整手段は、前記再構成手段により前記論理ブロックが再構成される間、前記接続手段により接続された外部装置から入力データを入力されると、この入力データに対する前記論理ブロックによる論理処理結果を当該外部装置に一時待機させる出力データを生成し、当該外部装置に出力することを特徴とする請求項１に記載のプログラマブル論理装置。
【請求項３】
前記出力データは、前記外部装置の接続規格に従った出力データであることを特徴とする請求項２に記載のプログラマブル論理装置。
【請求項４】
前記調整手段は、前記再構成手段により前記論理ブロックが再構成されていない間、前記接続手段により接続された外部装置から入力された入力データを当該論理ブロックに出力し、当該論理ブロックから入力された入力データを当該外部装置に出力することを特徴とする請求項１〜３の何れか一項に記載のプログラマブル論理装置。
【請求項５】
回路の再構成が不可能な論理ブロックを備え、
前記調整手段は、前記回路の再構成が不可能な論理ブロックに備えられることを特徴とする請求項１〜４の何れか一項に記載のプログラマブル論理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム書き換えが可能なプログラマブル論理装置に関する。
【０００２】
【従来の技術】
近年、ＩＣ（集積回路）設計技術、及び製造技術の急速な発達により、回路設計をプログラム可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ　Ｌｏｇｉｃ　Ｄｅｖｉｃｅ：プログラマブル論理回路）が開発されている。このようなプログラマブル論理回路では、論理回路の構成情報を含む回路情報を読み込ませることにより、内部の論理回路間の配線を自由に構成できるとともに一度作成した回路を必要に応じて何度でも再構成することが可能である。
【０００３】
また、ＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ）と呼ばれるプログラマブル論理装置は、論理ブロック間及び配線間を接続するスイッチマトリクスを制御するビットストリームを外部から書き込むことによって、所望の論理回路を再構成することができるデバイスであり、内部回路構成の情報や論理ブロック間のスイッチマトリクス制御データを含む回路情報を記憶するメモリがデバイス内に設けられて、この回路情報により様々な動作特性を持たせることが可能である。
【０００４】
【発明が解決しようとする課題】
従来、情報処理システム等に搭載された上記ＦＰＧＡにおいてプログラムを書き換える際には、図４に示すように一部の論理ブロックのみを書き換える場合でも、ＦＰＧＡ全体の書き換えが必要であり、書き換える必要が無い論理ブロック部分にも影響を及ぼす場合があった。また再構成の後には、電源を再投入してＦＰＧＡを初期化する必要があり、システムの動作を一旦停止しなければならなかった。
【０００５】
そのような問題を解消するために、図５に示すように書き換えを行う一部の論理ブロックのみを再構成する技術が開発されたが、一部の書き換えであっても、ＦＰＧＡのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）をハイインピーダンス状態又はプルアップにしてＦＰＧＡのデータ入出力を停止するため、再構成後にこのＩ／Ｏを初期化してシステムの不正な動作を防ぐ必要があった。そのため、やはり電源再投入の必要が生じるとともに再構成時にはＦＰＧＡに接続される外部装置に影響を与えないためにシステム制御しなければならず、ＦＰＧＡがオープンシステムに接続されている場合、複雑な制御が必要となり不都合が生じることとなっていた。
【０００６】
また、金融システムや交通システム、警備システム、航空管制システム等、常に稼働していなければならない各種情報処理システムにおいては、一旦電源を落として再投入することによりシステム稼働を一時停止することはシステムの運営に非常に大きな支障をきたすこととなる。
【０００７】
本発明は、上記問題を鑑みてプログラマブル論理装置が外部装置との接続状態をアクティブに保持したまま、部分的な再構成を行うことができるように構成している。
【０００８】
【課題を解決するための手段】
請求項１に記載の発明は、
回路構成情報を含む回路情報に基づいて再構成が可能な論理ブロックを複数備えたプログラマブル論理装置において、
接続規格が定められた外部装置と接続する接続手段と、
前記回路情報を取得し、この取得した回路情報に基づいて前記論理ブロックを再構成する再構成手段と、
前記接続手段により接続された外部装置と、前記再構成手段により再構成される論理ブロックとの間で、データの入出力を調整する調整手段と、
を備えることを特徴としている。
【０００９】
請求項２に記載の発明は、請求項１に記載のプログラマブル論理装置において、
前記調整手段は、前記再構成手段により前記論理ブロックが再構成される間、前記接続手段により接続された外部装置から入力データを入力されると、この入力データに対する前記論理ブロックによる論理処理結果を当該外部装置に一時待機させる出力データを生成し、当該外部装置に出力することを特徴としている。
【００１０】
この請求項１、２記載の発明によれば、外部装置と再構成する論理ブロックとの間でデータの入出力を調整し、論理ブロックが再構成している間は、外部装置からの入力データに対する論理処理結果を外部装置に待機させる出力データを生成して外部装置に出力するので、外部装置との接続状態をアクティブに保持したまま、再構成対象の論理ブロックのみを再構成することができる。
【００１１】
請求項３に記載の発明は、請求項２に記載のプログラマブル論理装置において、
前記出力データは、前記外部装置の接続規格に従った出力データであることを特徴としている。
【００１２】
この請求項３記載の発明によれば、外部装置の接続規格に従った出力データであるので、外部装置側で不正な動作が発生することを防止することができる。
【００１３】
請求項４に記載の発明は、請求項１〜３の何れか一項に記載のプログラマブル論理装置において、
前記調整手段は、前記再構成手段により前記論理ブロックが再構成されていない間、前記接続手段により接続された外部装置から入力された入力データを当該論理ブロックに出力し、当該論理ブロックから入力された入力データを当該外部装置に出力することを特徴としている。
【００１４】
この請求項４記載の発明によれば、再構成が行われていない間は、外部装置からの入力データを論理ブロックに出力し、論理ブロックからの入力データを外部装置に出力するので、外部装置からの入力データを論理ブロックにより論理処理し、その論理処理結果を外部装置に出力することができる。
【００１５】
請求項５に記載の発明は、請求項１〜４の何れか一項に記載のプログラマブル論理装置において、
回路の再構成が不可能な論理ブロックを備え、
前記調整手段は、前記回路の再構成が不可能な論理ブロックに備えられることを特徴としている。
【００１６】
この請求項５記載の発明によれば、回路の再構成が不可能な論理ブロックに調整手段が備えられるので、再構成可能な論理ブロックが再構成中であっても、調整手段は再構成を受けることなく、安定な調整動作を実行することができる。
【００１７】
【発明の実施の形態】
以下、図を参照して本発明の実施の形態を詳細に説明する。
まず、構成を説明する。
図１は、本発明に係るＦＰＧＡ１を含む情報処理システム１００の構成を示す図である。
図１において、情報処理システム１００は、ＣＰＵ２０、ＲＡＭ３０、ＨＤＤ４０、ＦＰＧＡ１から構成され、各部はＰＣＩバス５０により接続されている。また、ＦＰＧＡ１はＰＣＩＩ／Ｆ６を介してＰＣＩバス５０に接続されている。すなわち、ＣＰＵ２０、ＲＡＭ３０、ＨＤＤ４０、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス５０は、請求項で記載したプログラマブル論理装置であるＦＰＧＡ１が接続する外部装置である。
【００１８】
なお、図１に示した情報処理システム１００は、情報処理を行うコンピュータシステムであり、本発明に係るＦＰＧＡ１をシステムに搭載した一例を示すものである。従って、例えばさらに記憶装置や表示装置等を備える等、情報処理システム１００を構成する各構成装置は適宜変更可能である。
【００１９】
ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）２０は、情報処理システム１００の各構成装置の動作を制御する情報処理システム１００のメインコントローラであり、ＨＤＤ４０に格納される各種制御プログラムを読み出して各種処理を実行する。
【００２０】
ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）３０は、書き換え可能な半導体メモリから構成され、ＣＰＵ１０によって実行される各種プログラムやこれら各種プログラムによって処理されたデータ等を一時的に記憶するワークエリアを形成する。
【００２１】
ＨＤＤ（Ｈａｒｄ　Ｄｉｓｋ　Ｄｒｉｖｅ）４０は、プログラムやデータ等が予め記憶されている記録媒体（図示せず）から構成され、この記録媒体には、システムプログラム、各種制御プログラム及び各種制御プログラムで処理されたデータ等を記憶する。また、ＨＤＤ４０は、ＦＰＧＡ１の回路情報を複数記憶している。
【００２２】
次に、本発明に係るＦＰＧＡ１について詳細に説明する。
図２は、本実施の形態におけるＦＰＧＡ１の構成を示す模式図である。
図２において、ＦＰＧＡ１は、論理ブロック２１〜２４、内部Ｉ／Ｏ２ａ、Ｉ／Ｏブロック３１〜３８、コンフィグレーションブロック４から構成され、その外周にユーザＩ／Ｆ５、外部装置のインターフェイスであるＰＣＩＩ／Ｆ６が接続されている。
【００２３】
ＦＰＧＡ１は、論理ゲートを組み合わせた論理ブロック２１〜２４の集合体であり、マトリクス状に配置された論理ブロック２１〜２４間に図示しない配線が格子状に敷設されており、スイッチマトリクス８によりその配線接続が制御される。すなわち、ＦＰＧＡ１は、請求項に記載したプログラマブル論理装置である。なお、ＦＰＧＡ１は、多数の論理ブロックの集合体であるが、図１では説明の簡略化のため、４つの論理ブロック２１〜２４のみを図示した。
【００２４】
また、論理ブロック２１〜２３は、Ｉ／Ｏブロック３１〜３５を介してユーザＩ／Ｆ５に接続され、再構成が可能に設定されているが、論理ブロック２４は、Ｉ／Ｏブロック３６〜３８を介して外部インターフェイスであるＰＣＩＩ／Ｆ６と接続されてＰＣＩ規格に従ったデータの入出力を行うため、回路の再構成が不可能に設定されている。つまり、図２の斜線部で示す論理ブロック２４及びＩ／Ｏブロック３６〜３８において再構成は行われない。
【００２５】
Ｉ／Ｏブロック３１〜３８は、それぞれ複数の入力端子及び出力端子から構成され、Ｉ／Ｏブロック３１〜３５はユーザＩ／Ｆ５と接続されて、ユーザＩ／Ｆ５を介して接続される外部装置とデータの入出力を行い、Ｉ／Ｏブロック３６〜３８はＰＣＩＩＦ６と接続されて、ＰＣＩＩ／Ｆ６を介して接続される外部装置とデータの入出力を行う。Ｉ／Ｏブロック３６〜３８は、再構成が行われないため論理ブロック２１〜２３及びＩ／Ｏブロック３１〜３５が再構成中でもＰＣＩＩ／Ｆ６とデータの入出力を行う。すなわち、Ｉ／Ｏブロック３６〜３８は、請求項に記載した接続手段としての機能を有する。
【００２６】
コンフィグレーションブロック４は、ＳＲＡＭ（Ｓｔａｔｉｃ　ＲＡＭ）又はＤＲＡＭ（Ｄｙｎａｍｉｃ　ＲＡＭ）等の書き換え可能な記憶素子を内蔵し、この記憶素子にＦＰＧＡ１の回路情報を格納して、格納した回路情報に基づいてＦＰＧＡ１における回路の再構成制御を行う。すなわち、コンフィグレーションブロック４は、請求項に記載した再構成手段としての機能を有する。なお、回路情報は、論理ブロック２の回路構成データ、各論理ブロック２１〜２３間の配線接続を制御する配線接続データ及びＩ／Ｏブロック３１〜３５の端子構成データを含むこととする。
【００２７】
また、コンフィグレーションブロック４に格納する回路情報は、回路構成を行う際に、ユーザが所望する回路情報がＰＣＩＩ／Ｆ６を介して接続されるＨＤＤ４０からコンフィグレーションブロック４に出力される。コンフィグレーションブロック４はＨＤＤ４０から取得した回路情報を内蔵する記憶素子に格納する。
【００２８】
ユーザＩ／Ｆ５は、ユーザが設定するアーキテクチャ（図示せず）のインターフェイスであり、ＰＣＩＩ／Ｆ６は、ＰＣＩ規格に従ったＰＣＩバス５０のインターフェイスである。なお、本実施の形態では、ＰＣＩ規格に従ったインターフェイスとして説明するが、情報処理システム１００に採用されている接続バスの規格に従ったインターフェイスであればその規格はＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）やＳＣＳＩ（Ｓｍａｌｌ　Ｃｏｍｐｕｔｅｒ　Ｓｙｓｔｅｍ　Ｉｎｔｅｒｆａｃｅ）を適用してもよく、特に限定しない。
【００２９】
論理ブロック２４は、バッファブロック７及び他の論理ブロック２１〜２３とデータの入出力を行う内部Ｉ／Ｏ２ａをその内部に有している。
【００３０】
図２を参照してバッファブロック７について詳細に説明する。
バッファブロック７は、図２に示すように、Ｉ／Ｏブロック３６〜３８と、再構成可能な論理ブロック２１〜２３に接続される内部Ｉ／Ｏ２ａとの間で、データ入出力の調整を行う緩衝回路である。すなわち、バッファブロック７は、請求項に記載した調整手段としての機能を有する。バッファブロック７は、マルチプレクサー７１、デマルチプレクサー７２、バッファ論理ブロック７３から構成される。
【００３１】
マルチプレクサー７１は、コンフィグレーションブロック４から入力された制御信号に基づいて、内部Ｉ／Ｏ２ａ又はバッファ論理回路７３から入力された入力データを論理ブロック２４に出力し、デマルチプレクサー７２は、コンフィグレーションブロック４から入力された制御信号に基づいて、論理ブロック２４から入力されたデータを内部Ｉ／Ｏ２ａ又はバッファ論理回路７３のどちらか一方の出力先を選択して出力する。
【００３２】
バッファ論理ブロック７３は、デマルチプレクサー７２から入力された入力データを論理処理し、ＰＣＩＩ／Ｆ６側の外部装置がＦＰＧＡ１による論理処理結果を待機するアイドル状態となるようなＰＣＩ規格に従った出力データをマルチプレクサー７１に出力する。具体的には例えば、入力データにＦＰＧＡ１による論理処理が行われなかったことを示すエラーコードを付加して出力データとして出力する等して再度入力データを入力させるようにする。つまり、ＦＰＧＡ１が再構成している間、ＰＣＩＩ／Ｆ６側の外部装置からの入力データを再構成中の論理ブロック２１〜２３へ出力せずにバッファ論理ブロック７３がＰＣＩＩ／Ｆ６側の外部装置からの入力データに対応することにより、ＰＣＩＩ／Ｆ６側の外部装置との接続状態をアクティブに保持する。
【００３３】
次に、本実施の形態の動作を説明する。
以下に、上述したＦＰＧＡ１による再構成処理を図２を参照して説明する。
説明の前提として、現在、ＦＰＧＡ１は再構成中ではなく、論理ブロック２１〜２４により論理処理を行っており、図２において、ＰＣＩＩ／Ｆ６から入力された入力データは、論理ブロック２４により論理処理されてデマルチプレクサー７２に出力され、デマルチプレクサー７２は入力データの出力先として内部Ｉ／Ｏ２ａを選択して出力している。また、論理ブロック２１〜２３から内部Ｉ／Ｏ２ａに入力されたデータは、マルチプレクサー７１を介して論理ブロック２４に出力されて論理処理された後、Ｉ／Ｏブロック３６〜３８を介してＰＣＩＩ／Ｆ６にＦＰＧＡ１による論理処理結果として出力される。
【００３４】
再構成処理において、まず、コンフィグレーションブロック４に再構成指示とともに回路情報が入力されると、コンフィグレーションブロック４は、入力された回路情報を内蔵する記憶素子に格納し、回路の再構成を開始する制御信号をバッファブロック７のマルチプレクサー７１、デマルチプレクサー７２に入力する。図２において、回路の再構成を開始する制御信号を入力されたデマルチプレクサー７２は、入力データの出力先を内部Ｉ／Ｏ２ａからバッファ論理ブロック７３に切り換えて出力する。
【００３５】
バッファ論理ブロック７３は、デマルチプレクサー７２から入力された入力データを論理処理して、ＰＣＩＩ／Ｆ６側にＦＰＧＡ１による論理処理結果を一時待機させる出力データを生成し、マルチプレクサー７１に出力する。マルチプレクサー７１は、バッファ論理ブロック７３から入力されたデータを論理ブロック２４及びＩ／Ｏブロック３６〜３８を介してＰＣＩＩ／Ｆ６に出力する。
【００３６】
一方、コンフィグレーションブロック４は、各部に再構成を開始する制御信号を出力後、内蔵する記憶素子に格納した回路情報に基づいて、再構成対象の論理ブロック２１〜２３及びＩ／Ｏブロック３１〜３５の再構成を制御する。そして、再構成を終了すると、再構成が終了したことを示す制御信号をマルチプレクサー７１、デマルチプレクサー７２に出力する。図２において、再構成終了の制御信号を入力されたデマルチプレクサー７２は、論理ブロック２４からの入力データの出力先をバッファ論理ブロック７３から内部Ｉ／Ｏ２ａに切り換えて出力し、内部Ｉ／Ｏ２ａは入力されたデータを論理ブロック２１〜２３に出力してＦＰＧＡ１による論理処理を開始する。また、内部Ｉ／Ｏ２ａは、論理ブロック２１〜２３により論理処理されて入力された入力データをマルチプレクサー７１に出力し、マルチプレクサー７１に出力された出力データは論理ブロック２４により論理処理されて内部ブロック３６〜３８を介してＰＣＩＩ／Ｆ６に出力される。
【００３７】
以上のように、書き換えが可能な論理ブロック２１〜２３及びＩ／Ｏブロック３１〜３５を再構成中は、ＰＣＩＩ／Ｆ６からの入力データをバッファ論理ブロック７３に出力し、バッファ論理ブロック７３はＰＣＩＩ／Ｆ６に対して不正な動作を発生させないような出力データを生成してＰＣＩＩ／Ｆ６に出力し、ＦＰＧＡ１による論理処理結果の出力を一時待機させるので、ＰＣＩＩ／Ｆ６との接続をアクティブに保持したまま、再構成対象の論理ブロックのみを再構成することができる。すなわち、情報処理システム１００が動作中であってもシステムを構成する各装置に影響を及ぼすことなくＦＰＧＡ１の再構成が必要な機能の論理ブロックのみを再構成することができる。
【００３８】
また、再構成のために情報処理システム１００の電源を再投入する必要がないため、常に稼働しなければならない金融システムや交通システムなどの各種情報処理システムに対して本発明に係るＦＰＧＡ１を導入することは非常に有効性が高い。
【００３９】
なお、本実施の形態における記述は、本発明に係る好適な情報処理システム１００及びＦＰＧＡ１の一例であり、これに限定されるものではない。
例えば、本実施の形態では、情報処理システム１００のＨＤＤ４０にＦＰＧＡ１の回路情報を複数記憶させておくこととしたが、これに限らず、例えばＦＰＧＡ１にユーザＩ／Ｆ５を介してメモリを接続し、このメモリに上記回路情報を記憶させておくこととしてもよいし、情報処理システム１００にネットワークインターフェイスカード等を備えて回路情報を複数備えたサーバとネットワーク通信を行い、ネットワークを介してユーザが所望する回路情報を取得することとしてもよい。
【００４０】
その他、本実施の形態における情報処理システム及びＦＰＧＡ１を構成する各装置又は構成部分の細部構成及び細部動作に関しても本発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【００４１】
【発明の効果】
請求項１、２記載の発明によれば、外部装置と再構成する論理ブロックとの間でデータの入出力を調整し、論理ブロックが再構成している間は、外部装置からの入力データに対する論理処理結果を外部装置に待機させる出力データを生成して外部装置に出力するので、外部装置との接続状態をアクティブに保持したまま、再構成対象の論理ブロックのみを再構成することができる。
【００４２】
請求項３記載の発明によれば、外部装置の接続規格に従った出力データであるので、外部装置側で不正な動作が発生することを防止することができる。
【００４３】
請求項４記載の発明によれば、再構成が行われていない間は、外部装置からの入力データを論理ブロックに出力し、論理ブロックからの入力データを外部装置に出力するので、外部装置からの入力データを論理ブロックにより論理処理し、その論理処理結果を外部装置に出力することができる。
【００４４】
請求項５記載の発明によれば、回路の再構成が不可能な論理ブロックに調整手段が備えられるので、再構成可能な論理ブロックが再構成中であっても、調整手段は再構成を受けることなく、安定な調整動作を実行することができる。
【図面の簡単な説明】
【図１】本発明に係るＦＰＧＡ１を含む情報処理システム１００の構成を示す図である。
【図２】本発明を適用した実施の形態のＦＰＧＡ１の内部構成を示す図である。
【図３】図２のバッファブロック７の内部構成を示す図である。
【図４】従来のＦＰＧＡにおける再構成方法を説明する図である。
【図５】従来のＦＰＧＡにおける再構成方法を説明する図である。
【符号の説明】
１　　ＦＰＧＡ
２１〜２４　　論理ブロック
２ａ　　内部Ｉ／Ｏ
３　　Ｉ／Ｏブロック
４　　コンフィグレーションブロック
５　　ユーザＩ／Ｆ
６　　ＰＣＩＩ／Ｆ
７　　バッファブロック
７１　　マルチプレクサー
７２　　デマルチプレクサー
７３　　バッファ論理ブロック
８　　スイッチマトリクス
２０　　ＣＰＵ
３０　　ＲＡＭ
４０　　ＨＤＤ
５０　　ＰＣＩバス
１００　　情報処理システム
【図１】
2004023417.tif 000003
【図２】
2004023417.tif 000004
【図３】
2004023417.tif 000005
【図４】
2004023417.tif 000006
【図５】
2004023417.tif 000007