(57)【特許請求の範囲】
【請求項１】
プログラマブル論理回路の回路構成または配線構成を示す構成データが、第１のメモリから読み出されて格納される第２のメモリと、
前記第２のメモリから読み出した構成データと該構成データの誤り検出符号化データとからエラー発生を検出するエラー検知部、前記第２のメモリからのエラーが発生する前の構成データを保持する代替記憶部、前記エラー検知部からのエラー通知を切り替え指示として、前記第２のメモリからの構成データから前記代替記憶部が保持した構成データに切り替えて前記プログラマブル論理回路へ出力するマルチプレクサ部を備えたエラー検出訂正部と、
前記エラー検知部からのエラー通知により前記第１のメモリから構成データを読み出し、前記第２のメモリに書き込み再構成する再構成制御部とを備え、
前記再構成制御部は、前記エラー検知部からのエラー通知により前記第２のメモリの再構成を行うと共に、再構成を行っている間、前記マルチプレクサ部へ切り替え状態の維持を指示する通知を出力することを特徴とするプログラマブル論理回路のエラー訂正回路。
【請求項２】
前記代替記憶部は、切り替え指示がないときには、前記マルチプレクサ部からの構成データをそのまま出力し、切り替え指示により前記マルチプレクサ部からの構成データを保持するラッチであり、
前記マルチプレクサ部に入力される前記第２のメモリからの構成データを、前記エラー検知部が検出処理を開始してから、この検出処理によりエラーを検出し、エラーを前記マルチプレクサ部へ通知して、前記マルチプレクサ部が構成データを切り替えるまでの時間分遅らせる遅延部が設けられている請求項１記載のプログラマブル論理回路のエラー訂正回路。
【請求項３】
前記第２のメモリが複数設けられていると共に、それぞれの第２のメモリには、前記プログラマブル論理回路の各部ごとに対応した構成データがそれぞれ格納され、
前記複数の第２のメモリに、それぞれ対応させて前記エラー検出訂正部が設けられている請求項１または２記載のプログラマブル論理回路のエラー訂正回路。
【請求項４】
前記第２のメモリと前記エラー検知部と前記代替記憶部と前記マルチプレクサ部とは、前記プログラマブル論理回路が形成された半導体層と同層である第１の層に形成され、
前記第１のメモリと前記再構成制御部とは、同じ半導体層である第２の層に形成され、
前記第１の層と前記第２の層との間の配線は、貫通ビアにより接続されている請求項１から３のいずれかの項に記載のプログラマブル論理回路のエラー訂正回路。
【請求項５】
前記第２のメモリと前記エラー検知部と前記代替記憶部と前記マルチプレクサ部と、前記再構成制御部とは、前記プログラマブル論理回路が形成された半導体層と同層である第１の層に形成され、
前記第１のメモリは、前記第１の層とは異なる第２の層に形成され、
前記第１の層と前記第２の層との間の配線は、貫通ビアにより接続されている請求項１から３のいずれかの項に記載のプログラマブル論理回路のエラー訂正回路。
【請求項６】
前記第２のメモリには、前記第１のメモリに格納されたプログラマブル論理回路の異なる複数の構成データのうちのいずれかの構成データが書き込まれ、
前記再構成制御部は、前記エラー検知部からのエラー通知の代わりに、回路切り替え部からの切り替え通知を切り替え指示として、前記マルチプレクサ部の出力を、前記第２のメモリからの構成データから、前記代替記憶部が保持した構成データへ切り替えさせて、前記プログラマブル論理回路へ出力させると共に、前記第１のメモリから回路切り替え通知に基づいて選択された構成データを読み出し、前記第２のメモリに書き込み再構成した後、前記マルチプレクサ部の出力を、前記代替記憶部が保持した構成データから、前記第２のメモリに書き込まれた前記他方の構成データに切り替えて、前記他方の構成データを前記プログラマブル論理回路へ出力させる請求項１から５のいずれかの項に記載のプログラマブル論理回路のエラー訂正回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルに論理回路を形成することができるプログラマブル論理回路のエラー訂正回路に関するものである。
【背景技術】
【０００２】
プログラマブル論理回路は、ＰＬＤ（Programmable Logic Device）と称され、ＣＰＬＤ（Complex Programmable Logic Device）、ＦＰＧＡ（Field Programmable Gate Array）など種々のものに採用されている。
【０００３】
プログラマブル論理回路は、コンフィギュレーションメモリから読み込んだ構成データにより、論理回路を所望とする構成とすることができる。このコンフィギュレーションメモリは、例えば、ＳＲＡＭ（Static Random Access Memory）から構成されているため、α線や中性子線によるソフトエラーが発生することが知られている。ソフトエラーの影響によりデータが破壊されると、論理回路を決定する回路情報が変わるため誤動作の原因となる。
【０００４】
一般的に、プログラマブル論理回路の高信頼性化は、三重冗長化（ＴＭＲ）などによるハードウェア冗長と、誤ったデータを修復するスクラビングとを組み合わせることで図られている。このような従来の技術について、例えば、特許文献１〜３に記載されたものが知られている。
【０００５】
特許文献１には、１つのアドレスの１つのビットに対して３個以上の奇数個のメモリセルを有するメモリセルアレイ部と、多数決回路を有するデータ出力部とを備えた誤り訂正機能付半導体メモリ、および通常モードと高信頼性モードで書き込むメモリセルを切り換えるセレクタと、読み出されたメモリデータと多数決回路からの出力データとを切り換えるマルチプレクサとを備えた誤り訂正機能付半導体メモリが記載されている。
【０００６】
また、特許文献２には、ソフトエラーの影響を受けた構成メモリの情報を読み出し、エラーチェックビット（誤り訂正符号）などを用いて構成メモリデータの誤りを修復することで、ＰＬＤ内部でスクラビングを行う方法が記載されている。
【０００７】
更に、特許文献３には、運用中のＦＰＧＡと予備のＦＰＧＡとの二重化構成とし、ソフトエラーが運用中のＦＰＧＡで発生した場合は、運用中のＦＰＧＡを予備のＦＰＧＡに切替え、かつ切替え前の予備のＦＰＧＡを運用中のＦＰＧＡに切替え、予備のＦＰＧＡのソフトエラー発生箇所をリコンフィグするソフトエラー補正方法が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平６−５２６９７号公報
【特許文献２】特開２００７−２９３８５６号公報
【特許文献３】特開２００５−２３５０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に記載されているような三重冗長化は、構成メモリやデータ読み出し回路を３つ持つことからハードウェア量が多くなってしまうので、面積の増加量および配線の増加量が大きい点で問題である。
また、特許文献２に記載の方法では、複数ビットがソフトエラーの影響を受け、誤り訂正符号での修復ができない場合、一旦、回路動作を停止して回路全体を書き直す必要がある。そのため、複数ビットのソフトエラーに対応できない可能性がある。
また、特許文献３に記載のソフトエラー補正方法では、動的にソフトエラーの修復が可能であるが、回路自体を切り替える大がかりな方法により対処しており、ソフトエラー発生からエラー検知、再構成開始までのエラー隠蔽については考慮されていない。
【００１０】
構成データに異常が発生した場合には、構成データが修復されるだけでなく、この構成データに基づいて回路が構成されるプログラマブル論理回路への影響がないように、エラー隠蔽の状態で復旧できることが重要である。
【００１１】
そこで本発明は、コンフィギュレーションメモリのエラーの検出から修正、復旧までをプログラマブル論理回路に影響を与えることなくエラーを隠蔽した状態で動的に行うことが可能なプログラマブル論理回路のエラー訂正回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のプログラマブル論理回路のエラー訂正回路は、プログラマブル論理回路の回路構成または配線構成を示す構成データが、第１のメモリから読み出されて格納される第２のメモリと、前記第２のメモリから読み出した構成データと該構成データの誤り検出符号化データとからエラー発生を検出するエラー検知部、前記第２のメモリからのエラーが発生する前の構成データを保持する代替記憶部、前記エラー検知部からのエラー通知を切り替え指示として、前記第２のメモリからの構成データから前記代替記憶部が保持した構成データに切り替えて前記プログラマブル論理回路へ出力するマルチプレクサ部を備えたエラー検出訂正部と、前記エラー検知部からのエラー通知により前記第１のメモリから構成データを読み出し、前記第２のメモリに書き込み再構成する再構成制御部とを備えたことを特徴とする。
【００１３】
本発明のプログラマブル論理回路のエラー訂正回路は、第１のメモリからの構成データを格納する第２のメモリを備えている。この第２のメモリは、この構成データの他に、構成データの誤りを検出することができるエラー検出符号化データが格納されている。エラー検知部は、第２メモリからの構成データと、誤り検出符号化データとによりソフトエラーなどの読み取りエラーが発生しているか否かを検査する。エラー発生を検出した場合には、エラー検知部が、マルチプレクサ部からプログラマブル論理回路へ出力される構成データを、第２のメモリからの構成データから代替記憶部からの構成データに切り替える。代替記憶部には、第２のメモリからのエラーが発生する前の構成データが保持されているので、プログラマブル論理回路には誤りのない構成データを出力させることができる。このとき、再構成制御部が、第１のメモリから構成データを読み出し、第２のメモリに書き込み再構成するので、第２のメモリにソフトエラーが発生していても、プログラマブル論理回路に影響を与えることなく、正しい元の構成データに復元することができる。
【００１４】
前記再構成制御部は、前記エラー検知部からのエラー通知により前記第２のメモリの再構成を行うと共に、再構成を行っている間、前記マルチプレクサ部へ切り替え状態の維持を指示する通知を出力するのが望ましい。
エラーが発生するとエラー検知部がすぐマルチプレクサ部を切り替えるが、再構成制御部が第２のメモリを再構成している間、切り替え状態を維持する必要がある。そこで、マルチプレクサ部へ切り替え状態の維持を指示する通知を出力することで、再構成制御部がコンフィギュレーションメモリの再構成を行っている間、確実に代替記憶部からの構成データをプログラマブル論理回路へ出力させることができる。
【００１５】
前記代替記憶部は、切り替え指示がないときには、前記マルチプレクサ部からの構成データをそのまま出力し、切り替え指示により前記マルチプレクサ部からの構成データを保持するラッチであり、前記マルチプレクサ部に入力される前記第２のメモリからの構成データを、前記エラー検知部が検出処理を開始してから、この検出処理によりエラーを検出し、エラーを前記マルチプレクサ部へ通知して、前記マルチプレクサ部が構成データを切り替えるまでの時間分遅らせる遅延部が設けられているのが望ましい。
代替記憶部はマルチプレクサ部からの構成データを入力して更新しているので、遅延部がなければ、エラー検知部が検出処理を開始してから、この検出処理によりエラーを検出して通知してマルチプレクサ部が構成データを切り替えるまでの時間の間に、エラーが発生している状態の構成データを保持してしまうおそれがある。しかし、遅延部がマルチプレクサ部に入力される第２のメモリからの構成データを遅延させることで、代替記憶部の構成データの更新が停止するタイミングでは、エラー発生前の構成データを入力しているので、エラー発生前の構成データを保持することができ、正しい構成データをプログラマブル論理回路へ出力することができる。
【００１６】
また、前記第２のメモリが複数設けられていると共に、それぞれの第２のメモリには、前記プログラマブル論理回路の各部ごとに対応した構成データがそれぞれ格納され、前記複数の第２のメモリに、それぞれ対応させて前記エラー検知訂正部を設けることもできる。
【００１７】
前記第２のメモリと前記エラー検知部と前記代替記憶部と前記マルチプレクサ部とは、前記プログラマブル論理回路が形成された半導体層と同層である第１の層に形成され、前記第１のメモリと前記再構成制御部とは、同じ半導体層である第２の層に形成され、前記第１の層と前記第２の層との間の配線を、貫通ビアにより接続することで、３次元的に配置することができるので、チップ面積を小さくすることができる。
【００１８】
また、前記第２のメモリと前記エラー検知部と前記代替記憶部と前記マルチプレクサ部と、前記再構成制御部とは、前記プログラマブル論理回路が形成された半導体層と同層である第１の層に形成され、前記第１のメモリは、前記第１の層とは異なる第２の層に形成され、前記第１の層と前記第２の層との間の配線を、貫通ビアにより接続することもできる。このように構成した場合、高集積メモリプロセスと混載することが可能であり、かつ３次元的に配置することができるので、チップ面積を小さくすることができる。
【００１９】
更に、前記第２のメモリには、前記第１のメモリに格納されたプログラマブル論理回路の異なる複数の構成データのうちのいずれかの構成データが書き込まれ、前記再構成制御部は、前記エラー検知部からのエラー通知の代わりに、回路切り替え部からの切り替え通知を切り替え指示として、前記マルチプレクサ部の出力を、前記第２のメモリからの構成データから、前記代替記憶部が保持した構成データへ切り替えさせて、前記プログラマブル論理回路へ出力させると共に、前記第１のメモリから回路切り替え通知に基づいて選択された構成データを読み出し、前記第２のメモリに書き込み再構成した後、前記マルチプレクサ部の出力を、前記代替記憶部が保持した構成データから、前記第２のメモリに書き込まれた前記他方の構成データに切り替えて、前記他方の構成データを前記プログラマブル論理回路へ出力させることもできる。
このように構成することで、エラー訂正回路を複数の論理回路を動的に切り替える論理回路選択手段として機能させることができる。
【発明の効果】
【００２０】
本発明は、エラー発生を契機に、代替記憶部から正常な構成データを出力しつつ、再構成制御部により第２のメモリを復元することができるので、第２のメモリにソフトエラーが発生していても、プログラマブル論理回路に影響を与えることなく、正しい元の構成データに復元することができる。よって、本発明は、コンフィギュレーションメモリのエラーの検出から修正、復旧までをプログラマブル論理回路に影響を与えることなくエラーを隠蔽した状態で動的に行うことができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態１に係るプログラマブル論理回路のエラー訂正回路を用いたＰＬＤを示す構成図である。
【図２】図１に示すエラー訂正回路の動作を説明するためのフローチャートである。
【図３】図１に示す訂正回路の配置パターンを説明するための図である。
【図４】エラー訂正回路を３次元構造に配置した一例を示す図である。
【図５】エラー訂正回路を３次元構造に配置した他の例を示す図である。
【図６】本発明の実施の形態３に係るプログラマブル論理回路のエラー訂正回路を用いたＰＬＤを示す構成図である。
【発明を実施するための形態】
【００２２】
（実施の形態１）
本発明の実施の形態１に係るプログラマブル論理回路のエラー訂正回路について、図面に基づいて説明する。
図１に示すように、プログラマブル論理回路であるＰＬＤ１０に内蔵された本実施の形態に係るエラー訂正回路１１は、コンフィギュレーションメモリ１２に発生するソフトエラーを論理セル群または配線スイッチ部（以下、プログラマブル論理回路Ｐと称す。）に影響を与えることなく隠蔽し、構成データを訂正する回路である。
【００２３】
ＰＬＤ１０には、プログラマブル論理回路Ｐの回路構成または配線構成を示す構成データが格納された外付けのベースメモリＭが接続されている。ベースメモリＭは、構成データおよび誤り検出符号化データが格納され、シリアルに読み出される不揮発性メモリである。以下、この構成データと誤り検出符号化データとを合わせたデータを、以下、コンフィギュレーションデータと称す。誤り検出符号としては、ハミング符号を採用しているが、ＥＣＣ（Error Correcting/Detecting Code）、パリティ、ＣＲＣ（Cyclic Redundancy Check）なども採用することができ、任意の符号化が採用できる。
【００２４】
なお、本実施の形態では、ベースメモリＭを外付けの記憶手段としているが、ＰＬＤ１０に内蔵してもよい。また、ベースメモリＭは必ずしも不揮発性である必要がなく、揮発性メモリとしてもよい。更に、ベースメモリＭから読み出された構成データをエラーチェックするエラー検出訂正部を設けてもよい。
【００２５】
エラー訂正回路１１は、コンフィギュレーションメモリ１２と、エラー検出訂正部１３と、再構成制御部１４とを備えている。
コンフィギュレーションメモリ１２は、ベースメモリＭから読み出されたシリアルデータが、パラレルデータとして出力されるシフトレジスタにより形成された揮発性メモリである。このコンフィギュレーションメモリ１２としては、例えば、ＳＲＡＭが使用できるが、ＤＲＡＭなどの他のメモリとしても、シリアルに入力してパラレル出力が可能であれば使用することができる。本実施の形態のコンフィギュレーションメモリ１２では、構成データがｎビット幅で、誤り検出符号化データがｍビット幅である。
【００２６】
エラー検出訂正部１３は、エラー検知部１３１と、遅延部１３２と、マルチプレクサ部１３３と、代替記憶部１３４とを備えている。
エラー検知部１３１は、構成データと誤り検出符号化データからエラーの発生を検出してエラー通知を出力する機能を備えている。
遅延部１３２は、コンフィギュレーションメモリ１２からの構成データを遅延させる。この遅延部１３２は、多段接続したＭＯＳスイッチやＲＣ回路などのアナログ素子などが使用可能であり、ＮＯＴゲートやＮＡＮＤゲートを多段に接続したデジタル素子から構成した一般的な遅延素子とすることもできる。
【００２７】
マルチプレクサ部１３３は、遅延部１３２からのｎビットの構成データから、代替記憶部１３４からのｎビットの構成データに、切り替え指示により切り替える機能を備えている。
代替記憶部１３４は、マルチプレクサ部１３３の出力からのｎビットの構成データを入力して、マルチプレクサ部１３３に出力するもので、エラー通知と再構成制御部１４からの通知とにより入力中の構成データをラッチし、その状態を保持するスルーラッチである。
再構成制御部１４は、エラー通知により、ベースメモリＭに格納されたコンフィギュレーションデータを読み出し、コンフィギュレーションメモリ１２へ書き込むスクラビング機能を備えている。再構成制御部１４は、スクラビングを行っている間、スクラビングイネーブル信号を、切り替え指示として有効とする。
【００２８】
以上のように構成された本発明の実施の形態１に係るエラー訂正回路の動作および使用状態を、更に図２を参照しながら説明する。
まず、エラー検知部１３１は、ステップＳ１０にて、コンフィギュレーションメモリ１２から入力したコンフィギュレーションデータにエラーが発生しているか否かをチェックする。
ステップＳ２０にて、コンフィギュレーションメモリ１２からのコンフィギュレーションデータにソフトエラーなどによるエラーが発生していない場合には、エラー検知部１３１は、エラーが発生していないことを示す「Ｌ」レベルを出力している。従って、マルチプレクサ部１３３は遅延部１３２からの構成データを出力する。また、代替記憶部１３４はマルチプレクサ部１３３からの構成データを入力し、そのままマルチプレクサ部１３３の入力へ出力する。また、マルチプレクサ部１３３からの構成データは、プログラマブル論理回路Ｐへそのまま出力する。
【００２９】
ステップＳ２０にて、コンフィギュレーションデータにソフトエラーなどによるエラーが発生した場合には、エラー検知部１３１は、エラーが発生したことを示す「Ｈ」レベルを出力する（ステップＳ３０）。
このエラー通知はＯＲゲート１３３ａを介してマルチプレクサ部１３３へ通知される。また、ＯＲゲート１３３ａからのエラー通知は、ＮＯＴゲート１３３ｂを介して代替記憶部１３４へ通知される。
【００３０】
このエラー通知を切り替え指示として、マルチプレクサ部１３３の出力は、遅延部１３２からの構成データから、代替記憶部１３４からの構成データに切り替わる（ステップＳ４０）。また、代替記憶部１３４は、エラー通知が入力されたことで、入力していた構成データをラッチし、その状態を保持する。
【００３１】
コンフィギュレーションメモリ１２からの構成データは、遅延部１３２を介してマルチプレクサ部１３３へ入力されている。この遅延部１３２は、エラー検知部１３１が検出処理を開始してから、この検出処理によりエラーを検出し、エラーをマルチプレクサ部１３３へ通知して、マルチプレクサ部１３３が構成データを切り替えるまでの時間分遅らせるので、エラー通知により代替記憶部１３４がラッチした構成データはエラーが発生する前の構成データとなる。従って、代替記憶部１３４にはエラー発生前の正しい構成データが保持されている。
【００３２】
マルチプレクサ部１３３の切り替わりにより、代替記憶部１３４が保持したエラー発生前の構成データがプログラマブル論理回路Ｐへ出力されるので、ソフトエラーが発生しても、プログラマブル論理回路Ｐに影響を与えない。
【００３３】
再構成制御部１４は、エラー検知部１３１からのエラー通知によりＯＲゲート１３３ａを介してマルチプレクサ部１３３へ切り替えの継続を指示するスクラビングイネーブル信号を有効（「Ｈ」レベル）とする（ステップＳ５０）。また、再構成制御部１４は、ベースメモリＭからコンフィギュレーションデータを読み出し、コンフィギュレーションパスを通じてコンフィギュレーションメモリ１２へ書き込むスクラビング動作を開始する（ステップＳ６０）
【００３４】
スクラビングイネーブル信号はＮＯＴゲート１３３ｂにより代替記憶部１３４へも通知されるので、スクラビング動作を行っている間、スクラビングイネーブル信号を有効にし続けることで、代替記憶部１３４は保持した状態を維持する（ステップＳ７０）。
従って、コンフィギュレーションメモリ１２の内容が書き替え途中で、エラー状態が一時的に解除されても、書き換えが完了して完全に状態が元に戻るまで、代替記憶部１３４からの構成データをプログラマブル論理回路Ｐへ出力させることができる。従って、誤ってマルチプレクサ部１３３が切り戻ることを防止することができる。
再構成制御部１４によるスクラビング動作が完了すると、スクラビングイネーブル信号を無効（「Ｌ」レベル）とする（ステップＳ８０）。また、コンフィギュレーションメモリ１２の構成データは元のデータに復元されているので、エラー検知部１３１からエラー通知は通知されなくなる。
【００３５】
このスクラビングイネーブル信号を無効によりマルチプレクサ部１３３は、正常に書き換わったコンフィギュレーションメモリ１２からの構成データを遅延させた遅延部１３２からの構成データを、プログラマブル論理回路Ｐへ出力する。また、代替記憶部１３４はラッチを解除し、入力に応じた出力となる（ステップＳ９０）。
【００３６】
このように、コンフィギュレーションメモリ１２からの構成データにエラーが発生しても、プログラマブル論理回路Ｐへ影響を与えることなく、コンフィギュレーションメモリ１２のコンフィギュレーションデータを書き替え、元のデータに復元することができるので、エラーの検出から修正、復旧までをエラーを隠蔽した状態で動的に行うことができる。
【００３７】
このように構成された本実施の形態１に係るエラー訂正回路は、コンフィギュレーションメモリ１２としてｎビット＋ｍビットのメモリが必要であり、代替記憶部１３４としてｎビットのメモリが必要である。つまり、合計で２ｎビット＋ｍビットのメモリが必要となる。しかし、三重冗長化では、コンフィギュレーションメモリ１２に相当するメモリが３つ必要であるため３ｎとなる。通常、エラー検出符号化データの方が誤り検出の対象データよりビット幅は小さいので、ｎ＞ｍの関係となる。従って、メモリ容量を小さくすることができるので、エラー訂正回路１１は省面積化を図ることができる。
【００３８】
また、三重冗長化では２つのコンフィギュレーションメモリにエラーが発生した場合には、多数決判定が取れなくなるため、修復は勿論のこと、エラー通知等を行わないエラー隠蔽が困難になるが、エラー訂正回路１０では、エラー検出符号化データにより構成データのエラー検出が可能であれば、多数ビットのエラーでもエラーを隠蔽した状態で、プログラマブル論理回路Ｐへ影響を与えることなく修復・復旧が可能である。
【００３９】
更に、エラー検出訂正部１３は、コンフィギュレーションメモリ１２と、論理セルや配線スイッチ部であるプログラマブル論理回路Ｐとの間に挿入された形を取るため、論理セルや配線の構造に依存しない。そのため、様々な形式のＰＬＤのアーキテクチャに適用することができる。
【００４０】
なお、本実施の形態１に係るエラー訂正回路１１では、予めベースメモリＭに構成データの誤り検出符号化データが格納されているが、構成データのみを格納するようにしてもよい。その場合には、再構成制御部１４により構成データをコンフィギュレーションメモリ１２に書き込むときに、誤り検出符号化データを生成して書き込む符号化手段を備えるようにしてもよい。
【００４１】
プログラマブル論理回路Ｐである論理セルまたは配線スイッチ部を図３に示す。
図３に示すように、プログラマブル論理回路装置Ｐは、コンフィギュレーションメモリの構成データに基づいて論理回路を構成するプログラマブル論理回路が配置されるロジックブロック（Logic Block：以下、ＬＢと称す。）と、ＬＢと配線を接続する配線スイッチ部として機能するコネクションボックス（Connection Box：以下、ＣＢと称す。）と、配線のクロスポイントとなるスイッチボックス（Switch Box：以下、ＳＢと称す。）とを備えている。
【００４２】
このＬＢは、ＬＢ内のコンフィギュレーションメモリに格納される構成データを書き替えることにより論理関数の変更ができる。また、ＣＢおよびＳＢ内の構成データを書き替えることにより、接続関係の変更が可能である。
エラー訂正回路１１は、このＬＢ、ＣＢおよびＳＢに対して様々なパターンで配置することが可能である。
【００４３】
例えば、パターンＡでは、１つのＬＢと、このＬＢと斜めの位置関係にあるＳＢと、ＬＢおよびＳＢに配線が繋がる２つのＣＢとを基本的な構成である１タイルとして、この１タイルに１組のコンフィギュレーションメモリ１２とエラー検出訂正部１３とを対応させて設けている。
また、パターンＢでは、隣接するタイル同士を１つのグループとして、１組のコンフィギュレーションメモリ１２とエラー検出訂正部１３とを対応させて設けている。
また、パターンＣでは、１つのタイルに複数のコンフィギュレーションメモリ１２とエラー検出訂正部１３とを設けている。
更に、パターンＤでは、１つのＳＢに対応させて、１組のコンフィギュレーションメモリ１２とエラー検出訂正部１３とを設けている。この場合、ＳＢの代わりに、ＬＢやＣＢとすることができる。
【００４４】
コンフィギュレーションメモリ１２およびエラー検出訂正部１３は、構成データの供給先の構造に依存しないため、機能ブロックやタイル単位という枠組みに制約されずに適用することができる。
【００４５】
パターンＡやパターンＢでは、多数の機能ブロックを対象とするため、多数のコンフィギュレーションデータがエラー検出訂正部１３の対象となる。誤り検出符号化データのビット幅は、構成データのビット幅が増加しても比例して増加しないため、エラー訂正の対象となる機能ブロックを増やすことで、コンフィギュレーションメモリ１２のメモリ量の増加を抑制することができる。そのため、外部メモリからコンフィギュレーションメモリ１２へのコンフィギュレーションパス数もエラー検出訂正部１３の回路数に応じて少量とすることができる。
【００４６】
しかし、パターンＡやパターンＢの場合では、対象の機能ブロックが増える分、コンフィギュレーションメモリのメモリ数が増加するため、エラー検出訂正部１３の回路規模が大きくなる。そのため、パターンＣやパターンＤのように対象となるコンフィギュレーションメモリのメモリ数を小さくすることで、エラー検出訂正部１３の回路規模を小さく構成することができ、回路規模の削減効果を得ることができる。
【００４７】
エラー検出訂正部１３は、前述したように機能ブロックに依存しないため最適な粒度で適用することができ、これらのパターンＡ〜Ｄを適宜、組み合わせて構成することができる。
【００４８】
（実施の形態２）
次に、図１に示すエラー訂正回路１１をＰＬＤ１０に実装する際の構成について、図４および図５に基づいて説明する。なお、図１では、コンフィギュレーションメモリ１２へスクラビングする構成データが格納されたベースメモリＭが外付けであったが、実施の形態２ではＰＬＤに内蔵している。
【００４９】
図４に示すように、ＰＬＤ２０には、第１の層である上層に、プログラマブル論理回路Ｐと、コンフィギュレーションメモリ１２と、エラー検出訂正部１３とが設けられている。また、ＰＬＤ２０には、第２の層である下層に、再構成制御部１４とベースメモリＭとが設けられている。そして、その間の配線であるエラー通知をする配線と、スクラビングイネーブル信号を通知する配線と、コンフィギュレーションパスのための配線とが、貫通ビアを介して接続されている。この貫通ビアは、例えば、層間に跨る信号の接続に使用されるＴＳＶ（Through Silicon Via）と呼ばれるものが採用できる。
【００５０】
また、図５に示すように、ＰＬＤ３０には、第１の層である上層に、プログラマブル論理回路Ｐと、コンフィギュレーションメモリ１２と、エラー検出訂正部１３と、再構成制御部１４とが設けられている。また、ＰＬＤ２０には、第２の層である下層に、ベースメモリＭが設けられている。そして、その間の配線である再構成制御部１４がスクラビング動作を行うためのベースメモリＭへの配線と、コンフィギュレーションパスのための配線とが、貫通ビアを介して接続されている。
【００５１】
ベースメモリＭを、他の回路と同層に形成すると、実装面積が増大してしまい問題となる。しかし、図４や図５のように３次元構造のＬＳＩに実装して、ベースメモリＭと他の回路との層を分けることで、チップ面積を削減することができるので、面積効率を高めることが可能である。また、ビット幅に応じて多数の配線領域が必要となるコンフィギュレーションパスを、貫通ビアとすることで、配線領域を削減することができ、更に面積効率が向上させることができる。
また、図５に示すベースメモリＭを、ＤＲＡＭを用いて高集積化を図ることで、混合プロセスによる３次元化を図ることができる。このように、各層ごとに適した製造プロセスを採用することで、チップ面積の削減を図ることができる。
【００５２】
なお、ベースメモリＭはＤＲＡＭとする他に、フラッシュメモリとすることで、不揮発性のメモリとすることも可能である。また、２層とする以外に、３層以上とすることも可能である。３層とする場合には、図４に示すＰＬＤ２０の上層をプログラマブル論理回路Ｐとそれ以外の回路とに分けたり、図５に示すＰＬＤ３０の上層をプログラマブル論理回路Ｐとそれ以外の回路とに分けたりすることができる。
【００５３】
（実施の形態３）
本発明の実施の形態３に係るエラー訂正回路を図６に基づいて説明する。実施の形態３に係るＰＬＤ１０ｘのエラー訂正回路１１ｘは、回路切り替え部１５からの切り替え通知によりプログラマブル論理回路Ｐの回路構成や配線構成を動的に変更するものである。なお、図６においては、図１と同じ構成のものは同符号を付して説明を省略する。
【００５４】
ベースメモリＭｘには、プログラマブル論理回路Ｐの異なる複数の回路構成、複数の配線構成、または回路構成と配線構成の組み合わせを示す構成データが格納されている。また、例えば、コンフィギュレーションメモリ１２には、第１の回路の構成データが書き込まれているものとする。そして、ベースメモリＭｘには、第１の回路を含む複数の回路の構成データが書き込まれているものとする。
【００５５】
そのとき、再構成制御部１４ｘに回路切り替え部１５からの切り替え通知が入力され、この切り替え通知には、切り替える回路を特定するための識別情報が含まれている。例えば、４つの回路がベースメモリＭｘに格納されていれば、「１」〜「４」の番号を指定して回路の切り替えを指示することができる。２つの回路であれば、切り替え通知の有無により切り替えを指示することができる。
【００５６】
この切り替え通知が入力されると、再構成制御部１４ｘは、エラー通知と同様に、スクラビングイネーブル信号を有効とし、ベースメモリＭｘに格納された構成データのうち、切り替え通知により通知された回路を識別するための識別情報に基づいて選択された回路の構成データを、コンフィギュレーションパスを通じて、コンフィギュレーションメモリ１２へ書き込む。例えば、切り替え通知により識別情報「４」が指定された場合には、第４の回路の構成データをベースメモリＭから読み込み、コンフィギュレーションメモリ１２へ書き込む。
【００５７】
マルチプレクサ部１３３は、スクラビングイネーブル信号が有効となることで、代替記憶部１３４からの構成データをプログラマブル論理回路Ｐへ出力する。
そして、再構成制御部１４ｘは、第４の回路の構成データをコンフィギュレーションメモリ１２に書き終わるまで、スクラビングイネーブル信号を有効とするので、コンフィギュレーションメモリ１２の内容が入れ替わるまで、プログラマブル論理回路Ｐには第１の回路の構成データが出力される。
【００５８】
再構成制御部１４ｘは、第４の回路の構成データを書き終えると、スクラビングイネーブル信号を無効とすることで、遅延部１３２により遅延した時間後には、コンフィギュレーションメモリ１２からの第４の回路の構成データがマルチプレクサ部１３３から出力されるので、プログラマブル論理回路Ｐは第４の回路として動作することができる。
【００５９】
このように、エラー検知部１３１からのエラー通知の代わりに、回路切り替え部１５からの切り替え通知を切り替え指示として、再構成制御部１４ｘが、コンフィギュレーションメモリ１２の再構成を行う間、マルチプレクサ部１３３にスクラビングイネーブル信号を有効とする。この切り替え指示により、マルチプレクサ部１３３は、代替記憶部１３４の構成データを出力し、コンフィギュレーションメモリ１２の内容が書き換わった段階で切り戻しが行われるので、必要に応じて実装する回路を変更することができる。従って、面積効率を向上させることができる。また、状況に応じて最適な回路を実装することで、システム全体の処理は高速化される。
【産業上の利用可能性】
【００６０】
本発明は、ＣＰＬＤ、ＦＰＧＡなどの構成データに基づいてプログラマブルに論理回路を形成することができるＰＬＤに好適である。
【符号の説明】
【００６１】
１０，２０，３０，１０ｘ  ＰＬＤ
１１，１１ｘ  エラー訂正回路
１２  コンフィギュレーションメモリ
１３  エラー検出訂正部
１３１  エラー検知部
１３２  遅延部
１３３  マルチプレクサ部
１３３ａ  ＯＲゲート
１３３ｂ  ＮＯＴゲート
１３４  代替記憶部
１４，１４ｘ  再構成制御部
１５  回路切り替え部
Ｍ，Ｍｘ  ベースメモリ
【図１】
0005558269.tif 000002
【図２】
0005558269.tif 000003
【図３】
0005558269.tif 000004
【図４】
0005558269.tif 000005
【図５】
0005558269.tif 000006
【図６】
0005558269.tif 000007