(57)【要約】【課題】動作継続中にも適宜に機能追加や不具合修正等の作業（データ書き換え）が可能な論理装置を提供する。【解決手段】実現すべき機能に応じた論理回路構成データに基づいて内部に論理回路部４が生成・維持される論理装置１であって、前記の論理回路部４を生成・維持するための論理回路構成データを保持するメモリ３と、上記論理回路部４の動作継続中に、１つ以上の新たな論理回路部４を生成・維持するための論理回路構成データをメモリ３の未使用領域に追記するためのアドレス制御部２とをそなえるように構成する。【選択図】        図１
2004274141.tif 000002
【特許請求の範囲】
【請求項１】
実現すべき機能に応じた論理回路構成データに基づいて内部に論理回路部が生成・維持される論理装置であって、
該論理回路部を生成・維持するための該論理回路構成データを保持するメモリと、
該論理回路部の動作継続中に、１つ以上の新たな論理回路部を生成・維持するための論理回路構成データを該メモリの未使用領域に追記するためのアドレス制御部とをそなえたことを特徴とする、動作継続中にデータ書き換え可能な論理装置。
【請求項２】
該アドレス制御部が、
上記新たな論理回路部として、不具合の存在する論理回路部と同じ機能を実現する予備用論理回路部を生成・維持するための論理回路構成データと、上記不具合の存在する論理回路部と該予備用論理回路部とを切り換える切換用論理回路部を生成・維持するための論理回路構成データとをそれぞれ該メモリの該未使用領域に追記するように構成されたことを特徴とする、請求項１記載の動作継続中にデータ書き換え可能な論理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動作継続中に書き換え可能な論理装置に関し、例えば、システム停止が認められない交換装置等において、運用を継続したまま機能追加、不具合修正等を行なう必要がある場合に用いて好適な、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の論理装置に関する。
【０００２】
【従来の技術】
ＦＰＧＡとは、ユーザの手元で機能を定義することのできるＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であって、十分な集積度を有するもので、多数の論理素子（ＡＮＤやＯＲゲート等）を有する複数の論理回路部から成り、プログラミングにより論理素子及び論理回路部を適宜に組み合わせることで各種機能を実現できるようになっている。
【０００３】
図１４は従来の論理装置としてのＦＰＧＡの構成を示すブロック図で、この図１４に示すＦＰＧＡ１００は、電源投入後に行なわれる「コンフィギュレーション」と呼ばれる操作によって、所定機能を実現する論理回路部（回路生成部）１０３をＦＰＧＡ１００内で生成・維持するための回路生成・維持データ（論理回路構成データ）を外部（マイクロプロセッサ等）から取り込み、ＲＡＭ等のメモリ１０２に保持するようになっている。
【０００４】
そして、このようにメモリ１０２に、実現すべき機能に応じた回路生成・維持データが必要なだけ保持されることにより、当該データに基づいて上記所定機能を実現する論理回路部１０３がそれぞれＦＰＧＡ１００内で生成・維持されることになる。なお、メモリ１０２には、上記回路生成・維持データとは別に、各論理回路部１０３間の配線（接続）に関するデータ（接続ネットデータ）を保持する領域も用意されており、ここにデータが書き込まれることにより当該データに基づいて未配線領域にて論理回路部１０３間の接続も自動で行なわれる。
【０００５】
また、メモリ１０２に回路生成・維持データを書き込む際、従来は、アドレスの概念が無く、アドレスカウンタ１０１により単純にメモリ１０２の先頭アドレスから順番にデータが書き込まれてゆくようになっており、空き（未使用）となるメモリアドレス（未使用領域）には、論理回路部が未使用であることを表すデータが書き込まれる。
【０００６】
さらに、従来の他のＦＰＧＡとして、下記特許文献１により提案されている技術がある。この技術は、ＦＰＧＡに、ランダムアクセスメモリ又は積算項（Ｐターム）ロジックを実行するためのもののいずれかとして選択的に動作し得るメモリ回路（下記特許文献１の図１及び図２に示すＲＡＭモジュール１０）を設けることで、多数の入力を有するロジック機能をより容易に実行できるようにしたものである。なお、この技術において、上記ＲＡＭモジュール１０の１つが図１４により上述したＦＰＧＡ１００の論理回路部１０３の１つに相当する。
【０００７】
【特許文献１】
特開平１１−２４３３３４号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上述した従来のいずれのＦＰＧＡも、論理回路部１０３を決定（生成・維持）するために存在するメモリ１０２に対して、任意のアドレスを指定して回路生成・維持データを書き込むことができない。そのため、機能追加や不具合修正等を行なうためには、必ずいったん電源断とし電源再投入することで、全ての回路生成・維持データをリセットして書き込み直さなければならなかった。なお、電源断を行なわずに、コンフィギュレーション操作を再度実行することも可能であるが、ＦＰＧＡ自体はリセットされる（電源断と同等）ことになる。
【０００９】
したがって、ＦＰＧＡの機能追加や不具合修正等の作業を行なうためには、必ず機能部分のシステムダウンが発生し、システム運用継続中にこれらの作業を行なうことは不可能であった。
本発明は、このような課題に鑑み創案されたもので、動作継続中にも適宜に機能追加や不具合修正等の作業（データ書き換え）が可能な論理装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記の目的を達成するために、本発明の動作継続中にデータ書き換え可能な論理装置（請求項１）は、実現すべき機能に応じた論理回路構成データに基づいて内部に論理回路部が生成・維持される論理装置であって、該論理回路部を生成・維持するための該論理回路構成データを保持するメモリと、該論理回路部の動作継続中に、１つ以上の新たな論理回路部を生成・維持するための論理回路構成データを該メモリの未使用領域に追記するためのアドレス制御部とをそなえたことを特徴としている。
【００１１】
ここで、該アドレス制御部は、上記新たな論理回路部として、不具合の存在する論理回路部と同じ機能を実現する予備用論理回路部を生成・維持するための論理回路構成データと、上記不具合の存在する論理回路部と該予備用論理回路部とを切り換える切換用論理回路部を生成・維持するための論理回路構成データとをそれぞれ該メモリの該未使用領域に追記するように構成されていてもよい（請求項２）。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
（Ａ）一実施形態の説明
図１は本発明の一実施形態としてのＦＰＧＡ（論理装置）の構成を示すブロック図で、この図１に示すＦＰＧＡ１は、例えば、交換装置に適用することができ、アドレスデコーダ２，メモリ（回路決定ＲＡＭ）３，複数の回路生成部（論理回路部）４，複数の接続ネット５等をそなえて構成されている。
【００１３】
ここで、メモリ３は、所定機能（上記交換装置に必要な機能）を実現する論理回路部４を決定（生成・維持）するための回路決定データ（論理回路構成データ；以下、単に回路データともいう）を保持するためのもので、本実施形態においても、このメモリ３に、実現すべき機能に応じた回路データが必要な論理回路部４の数だけ保持されることにより、当該回路データに基づいて論理回路部４がそれぞれ生成・維持されるようになっている。
【００１４】
即ち、各論理回路部４はそれぞれＡＮＤ（論理積），ＯＲ（論理和），セレクタ等の多数の論理素子から成る同じ構成をデフォルトで有しており、上記回路データに基づいてこれらの論理素子が、適宜に、活性化／非活性化されたり、組み合わされ（接続され）たりすることによって、上記回路データに応じた必要な機能が実現されるようになっているのである。
【００１５】
なお、論理回路部４間の配線（接続）については、配線データ（接続ネットデータ）がメモリ３の所定領域（後述するゲート生成領域）に書き込まれて、当該配線データに従って未配線領域にて接続ネット５が生成・維持されることで、自動で行なわれるようになっている。
また、図２に示すように、空き（未使用）となるメモリアドレス（未使用領域）３１が生じる場合には、当該未使用領域３１に対応して未使用（回路データ及び接続ネットデータなし）を表すデータ（未使用データ）がメモリ３のゲート生成領域３２（図３〜図６により後述）に書き込まれ、当該データに基づいて未使用の論理回路部６（以下、未使用回路部６ともいう）及び未使用の接続ネット７が必要数だけ生成・維持されるようになっている。
【００１６】
そして、アドレスデコーダ（アドレス制御部）２は、外部（図示しないマイクロプロセッサ等）からメモリ３の任意のメモリアドレス（以下、単に「アドレス」又は「アドレス領域」ともいう）を指定するデータ（アドレスデータ）を受けて、当該アドレスデータの示すメモリ３のアドレス領域に、同じく外部（マイクロプロセッサ等）から供給される回路データを書き込むためのものである。
【００１７】
つまり、本ＦＰＧＡ１は、このアドレスデコーダ２により、メモリ３の任意のアドレス領域を指定して当該アドレス領域に回路データを書き込むことができるのである。したがって、１つ以上の新たな論理回路部を生成・維持するための論理回路構成データをメモリ３の任意の未使用領域３１に追記することができ、これにより、既存の論理回路部５の動作継続中に、メモリ３１の未使用領域３１に対応する未使用回路部６を用いて新たな機能追加が可能となる。
【００１８】
以下、本実施形態のＦＰＧＡ１の動作について、図３〜図６を参照しながら詳述する。
まず、図３に示すように、アドレスデコーダ２により、メモリ３のゲート生成領域３２へ、未使用データ（未使用領域Ａ，Ｂ，Ｃのｏｆｆを表すデータ）が書き込まれる。ここで、未使用領域Ａ，Ｂ，Ｃは、それぞれ、未使用領域３１を構成する領域で、上記未使用データの書き込みにより、それぞれに対応して未使用回路６が生成されている。なお、他のメモリ領域３０には回路データが保持されており、当該回路データに基づいて必要な論理回路部４が既に生成・維持され動作中である。
【００１９】
かかる状態において、図４に示すように、アドレスデコーダ２により、メモリ３の未使用領域Ａを指定して、新たに追加する論理回路部を生成・維持するための回路データをメモリ３に書き込むと、当該データに基づいて未使用領域Ａに対応する未使用回路部６を用いて新たな論理回路部６Ａが生成・維持される。
次に、さらに新たな論理回路部を追加する場合には、例えば図５に示すように、アドレスデコーダ２により、メモリ３の未使用領域Ｃを指定して、新たに追加する論理回路部を生成・維持するための回路データをメモリ３に書き込む。これにより、当該データに基づいて未使用領域Ｃに対応する未使用回路部６を用いて新たな論理回路部６Ｃが生成・維持される。
【００２０】
そして、図６に示すように、アドレスデコーダ２により、メモリ３のゲート生成領域３１を指定して、未使用領域Ａ及びＣについての配線を実行（未使用領域Ｂについてはｏｆｆ）するデータを書き込むと、当該データに応じて未使用の接続ネット（未配線領域）７を使用して未使用領域Ａ及びＣ、即ち、追加された論理回路部６Ａ及び６Ｃについての接続ネット７ＡＣが生成・維持されて配線が実行される。
【００２１】
なお、未使用領域Ｂについて回路生成及び配線動作を行なう場合も、上記と同様にして行なわれる。
以上のように、本実施形態によれば、ＦＰＧＡ１内の論理回路構成を生成・維持するための回路データを保持するメモリ３に対し、アドレスデコーダ２により、メモリ３の未使用領域３１を指定して追加すべき新たな論理回路部を生成・維持する回路データを追記できるようにすることで、既存の動作継続中の論理回路部４には影響を与えずに、未使用回路部７を使用して追加の論理回路部の生成が可能となる。
【００２２】
したがって、システムダウンが認められない交換装置等において運用を継続したままサービスアップグレード等に伴う必要な機能追加を適宜に行なうことが可能となる。
（Ｂ）変形例の説明
さて、上述のごとく本実施形態のＦＰＧＡ１は未使用回路部７を用いた機能追加が可能であるから、一部の論理回路部６に不具合が生じた場合にも、システムダウンを生じさせることなく、当該不具合を解消・救済することが可能となる。
【００２３】
即ち、例えば図７に示すように、論理回路部４ＷＡ及び４ＷＢに何らかの不具合が生じたとすると、これら不具合の生じた論理回路部（以下、不具合回路部ともいう）４ＷＡ及び４ＷＢとそれぞれ同じ機能を実現する論理回路部（修正回路部；予備用論理回路部）４ＰＡ及び４ＰＢを、上述した実施形態と同様の手法により、未使用回路部６を使用して追加生成・維持するとともに、不具合回路部４ＷＡ及び４ＷＢの組を、追加した修正回路部４ＰＡ及び４ＰＢの組に切り換える（置き換える）ための論理回路部（切り換え回路部）４Ｃを、同じく未使用回路部６を使用して追加生成・維持するのである。
【００２４】
これにより、ＦＰＧＡ１内の一部の論理回路部４に不具合がある場合であっても、不具合のない動作継続中の他の論理回路部４は動作させたまま、不具合回路部４ＷＡ及び４ＷＢのみを未使用回路部６を用いて追加生成した修正回路部４ＰＡ及び４ＰＢに置き換えることが可能となる。
ただし、修正回路部４ＰＡ及び４ＰＢを起動する場合、不具合回路部４ＷＡ及び４ＷＢの動作と修正回路部４ＰＡ及び４ＰＢの動作が一致しているタイミングで切り換える必要がある。しかし、不具合回路部４ＷＡ及び４ＷＢの動作は、その不具合の為、修正回路部４ＰＡ及び４ＰＢの動作と一致していないタイミングも存在する。
【００２５】
そこで、本例では、図８〜図１３に示すようにして修正回路部４ＰＡ及び４ＰＢの起動（置き換え）を行なう。なお、図８〜図１３においては、ＦＰＧＡ１内で生成・維持すべき回路部のためのデータが格納されるメモリ３のアドレス（領域）を、紙面左上に位置する回路部から下へ向かって順に、アドレス“１Ａ”，“１Ｂ”，“１Ｃ”，“１Ｄ”，“２Ａ”，“２Ｂ”，“２Ｃ”，“２Ｄ”，“３Ａ”，“３Ｂ”，“３Ｃ”，“３Ｄ”と表記している。また、図１０〜図１３においては、説明の便宜上、修正回路部４ＰＢに着目し修正回路部４ＰＡの図示はいずれも省略している。
【００２６】
まず、図８に示すように、不具合回路部４ＷＢがその最終出力段に２入力（“１”，“２”）のセレクタ４１及び当該セレクタ４１の切り換えを制御する制御ゲート４２としての機能を有していたとする。なお、制御（ＡＮＤ）ゲート４２は、この図８中に点線で示すようにセレクタ４１の切り換えを制御（入力“１”を出力に接続）している。また、制御ゲート４２の一方の入力は接地されている。
【００２７】
かかる状態で、図９に示すように、不具合回路部４ＷＢにおける制御ゲート４２の他方の入力に対し非活性化したラッチ（ＦＦ：Ｆｌｉｐ−Ｆｌｏｐ）４３を挿入する。即ち、アドレスデコーダ２によりアドレス“２Ｂ”を指定して、非活性化したラッチ４３を追加するデータを現状のデータに上書き（追記）することで、上記ラッチ４３の挿入を行なう。
【００２８】
その後、アドレスデコーダ２によりメモリ３のアドレス“１Ａ”（未使用領域）を指定して、切り換えポイント情報を生成するためのデータを書き込むことで、図１０に示すように、当該アドレス“１Ａ”に対応する未使用回路部６を用いて切り換えポイント情報を生成するための論理回路部（切り換えポイント情報生成回路部）４Ｃ′が生成・維持される。
【００２９】
次に、アドレスデコーダ２によりメモリ３のアドレス“２Ａ”（未使用領域）を指定して、切り換え回路部４Ｃを生成・維持するための回路データを書き込むことで、不具合回路部４ＷＢと修正回路部４ＰＢとを切り換えるための切り換え回路部４Ｃを、当該メモリ３のアドレス“２Ａ”に対応する未使用回路部６を用いて生成・維持する。
【００３０】
その後、アドレスデコーダ２によりメモリのゲート生成領域３２（図３〜図６参照）を指定して、アドレス“１Ａ”とアドレス“２Ａ”との接続（配線）、即ち、切り換えポイント情報生成回路部４Ｃ′と切り換え回路部４Ｃとの接続を行なうためのデータを書き込むことで、未配線領域を使用して切り換えポイント情報生成回路部４Ｃ′と切り換え回路部４Ｃとの配線が行なわれる。
【００３１】
なお、図１０に示すように、切り換え回路部４Ｃも、他の論理回路部と同様、セレクタ４１及び制御（ＡＮＤ）ゲート４２を含んでおり、上記配線により、セレクタ４１を通じて切り換え回路部４Ｃに上記切り換えポイント情報が入力されて、当該切り換え回路部４Ｃが、切り換えポイント（切り換え制御対象；不具合回路部４ＷＢにおけるセレクタ４１，制御ゲート４２及び非活性ラッチ４３）を特定できるようになる。
【００３２】
次に、アドレスデコーダ２により、例えば、メモリ３のアドレス“２Ｃ”（未使用領域）を指定して、不具合回路部４ＷＢと同じ機能を実現する修正回路部４ＰＢを生成・維持するための回路データを書き込むことで、修正回路部４ＰＢを、当該メモリ３のアドレス“２Ｃ”に対応する未使用回路部６を用いて生成・維持する。
【００３３】
その後、アドレスデコーダ２により、メモリ３のゲート生成領域３２を指定して、アドレス“１Ｂ”とアドレス“２Ｃ”との接続（配線）、即ち、不具合回路部４ＷＢの前段回路部４と修正回路部４ＰＢとの接続を行なうためのデータを書き込むことで、図１１に示すように、未配線領域を使用して前段回路部４と修正回路部４ＰＢとの配線を行なう。
【００３４】
さらに、アドレスデコーダ２により、メモリ３のゲート生成領域３２を指定して、アドレス“２Ｃ”とアドレス“２Ｂ”との接続（配線）、即ち、修正回路部４ＰＢと不具合回路部４ＷＢとの接続を行なうためのデータを書き込むことで、図１１に示すように、未配線領域を使用して修正回路部４ＰＢと不具合回路部４ＷＢとの配線を行なう。具体的に、修正回路部４ＰＢは、不具合回路部４ＷＢの入力を入力とし、その出力が不具合回路部４ＷＢのセレクタ４１の他方の入力“２”に接続されるよう配線される。
【００３５】
次いで、アドレスデコーダ２により、再度、メモリ３のゲート生成領域３２を指定して、アドレス“２Ａ”とアドレス“２Ｂ”との接続（配線）、即ち、切り換え回路部４Ｃと不具合回路部４ＷＢとの接続（配線）を行なうためのデータを書き込むことで、図１１に示すように、未配線領域を使用して切り換え回路部４Ｃと不具合回路部４ＷＢとの配線を行なう。
【００３６】
この際、切り換え回路部４Ｃの出力は、不具合回路部４ＷＢの動作タイミングと修正回路部４ＰＢの動作タイミングとが一致するポイントを引き込むよう、不具合回路部４ＷＢにおけるラッチ４３の入力に接続される。そして、アドレスデコーダ２により、アドレス“２Ｂ”を指定して、不具合回路部４ＷＢにおける制御ゲート４２を開放し（接地されていた一方の入力をＨレベルとし）、さらに、ラッチ４２を活性化するためのデータを現状データに上書きすることで、図１１及び図１２に示すように、当該制御ゲート４２を開放し、さらに、ラッチ４３を活性化する。
【００３７】
これにより、以降、不具合回路部４ＷＢの動作タイミングと修正回路部４ＰＢの動作タイミングとが一致した時点で、図１３に示すように、制御ゲート４２の出力がＨレベルとなり、不具合回路部４ＷＢのセレクタ４１が修正回路部４ＰＢの出力（入力“２”）をその出力とするよう切り換えられて、不具合回路部４ＷＢから修正回路部４ＰＢへの切り換えが行なわれる。
【００３８】
なお、以上の動作を次表１にまとめて示す。ただし、次表１において、「書き込み順序」＝１，２，３，５で示される各回路部の生成順序は適宜変更してもよい。
【００３９】
【表１】
2004274141.tif 000003
【００４０】
以上のようにして、本変形例では、ＦＰＧＡ１内において、他の動作中の論理回路部の動作を停止することなく、且つ、追加又は修正回路を生成する過程において不要な信号や想定外の信号送出を防止しながら、ＦＰＧＡ１の不具合部分を解消・救済することが可能となる。したがって、システムダウンが認められない交換装置等において、運用を継続したまま不具合部分の救済を行なうことが可能となる。
【００４１】
なお、本発明は、上述した実施形態及びその変形例に限定されず、本発明の趣旨を逸脱しない範囲で種々変形して実施できることはいうまでもない。
【００４２】
【発明の効果】
以上詳述したように、本発明によれば、論理装置内の論理回路構成を生成・維持するためのデータを保持するメモリに対し、アドレス制御部により、メモリの未使用領域を指定して追加すべき新たな論理回路部を生成・維持するためのデータを追記できるようにしたので、既存の動作継続中の論理回路部には影響を与えずに、未使用の論理回路部を使用して追加の論理回路部の生成が可能となる。したがって、システムダウンが認められない交換装置等において、運用を継続したままサービスアップグレード等に伴う必要な機能追加、不具合部分の修正（救済）等を適宜に行なうことが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態としてのＦＰＧＡ（論理装置）の構成を示すブロック図である。
【図２】図１に示す構成において未使用回路部を用いて新たな論理回路部が生成・維持される様子を示すブロック図である。
【図３】図１に示すＦＰＧＡの動作（回路部追加）を説明するための図である。
【図４】図１に示すＦＰＧＡの動作（回路部追加）を説明するための図である。
【図５】図１に示すＦＰＧＡの動作（回路部追加）を説明するための図である。
【図６】図１に示すＦＰＧＡの動作（回路部追加）を説明するための図である。
【図７】本実施形態の変形例としてのＦＰＧＡを示すブロック図である。
【図８】図７に示すＦＰＧＡの動作（不具合修正）を説明するための図である。
【図９】図７に示すＦＰＧＡの動作（不具合修正）を説明するための図である。
【図１０】図７に示すＦＰＧＡの動作（不具合修正）を説明するための図である。
【図１１】図７に示すＦＰＧＡの動作（不具合修正）を説明するための図である。
【図１２】図７に示すＦＰＧＡの動作（不具合修正）を説明するための図である。
【図１３】図７に示すＦＰＧＡの動作（不具合修正）を説明するための図である。
【図１４】従来の論理装置としてのＦＰＧＡの構成を示すブロック図である。
【符号の説明】
１  ＦＰＧＡ（論理装置）
２  アドレスデコーダ（アドレス制御部）
３  メモリ（回路決定ＲＡＭ）
３０  メモリ領域
３１  メモリアドレス（未使用領域）
３２  ゲート生成領域
４  論理回路部（回路生成部）
４ＷＡ，４ＷＢ  論理回路部（不具合回路部）
４ＰＡ，４ＰＢ  論理回路部（修正回路部；予備用論理回路部）
４Ｃ  切り換え回路部（切換用論理回路部）
４Ｃ′  切り換えポイント情報生成回路部
４１  セレクタ
４２  制御（ＡＮＤ）ゲート
４３  ラッチ（ＦＦ）
５  接続ネット
６，６Ａ，６Ｃ  論理回路部（未使用回路部）
７，７ＡＣ  接続ネット（未配線領域）
【図１】
2004274141.tif 000004
【図２】
2004274141.tif 000005
【図３】
2004274141.tif 000006
【図４】
2004274141.tif 000007
【図５】
2004274141.tif 000008
【図６】
2004274141.tif 000009
【図７】
2004274141.tif 000010
【図８】
2004274141.tif 000011
【図９】
2004274141.tif 000012
【図１０】
2004274141.tif 000013
【図１１】
2004274141.tif 000014
【図１２】
2004274141.tif 000015
【図１３】
2004274141.tif 000016
【図１４】
2004274141.tif 000017