(57)【要約】【課題】ＳＲＡＭに回路構成の情報を保持させるＦＰＧＡにおいて、ＳＲＡＭのソフトエラーを修復する。【解決手段】ＦＰＧＡに論理回路を定義するための属性情報が読み出され（ステップＳ２０３）、予め用意しておいた期待値と比較される（ステップＳ２０５）。これにより、ＦＰＧＡに書き込まれている属性情報にソフトエラーに起因する誤りや欠落がないかを判定することができる。ソフトエラーが検出された場合、期待値をＦＰＧＡに書き込み（ステップＳ２０６）、問題のあった属性情報を上書きすることで、問題のあったＦＰＧＡの回路構成を定義し直し、ソフトエラーの影響を修復する。【選択図】図２
2008015965.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡ(field programmable gate array)と、
前記ＦＰＧＡの内部構成を定義する属性情報を書き換え可能な制御装置と
記憶装置と
を備え、
前記制御装置は、
前記属性情報を前記ＦＰＧＡから読み出す属性情報読み出しステップと、
前記読み出した属性情報と期待値との比較を行う比較ステップと、
前記比較ステップの結果に基づいて前記期待値を使用して前記ＦＰＧＡの内部構成を定義し直す再定義ステップと
を実行する論理を備えることを特徴とする情報処理装置。
【請求項２】
前記読み出しステップおよび前記比較ステップを所定の時間間隔で行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶装置には、不揮発性半導体メモリまたはハードディスク装置が含まれ、
前記期待値は、前記不揮発性半導体メモリまたは前記ハードディスク装置に格納されていることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記再定義ステップの後、前記ＦＰＧＡの動作を確認するための診断プログラムが実行され、その結果が前記記憶装置に格納されることを特徴とする請求項１〜３のいずれかに記載の情報処理装置。
【請求項５】
前記比較ステップにおける比較結果が不一致である場合を検出し、その発生累積数をカウントするカウント手段と、
前記発生累積数が所定のＭＡＸ値を超えたか否かを判定する判定手段と、
前記判定の結果に基づき所定の報知処理を行う報知処理手段と
を備えることを特徴とする請求項１〜４のいずれかに記載の情報処理装置。
【請求項６】
ＦＰＧＡを備えた情報処理装置の動作方法であって、
前記ＦＰＧＡからその内部構成を定義する属性情報を読み出す属性情報読み出しステップと、
前記読み出した属性情報と期待値との比較を行う比較ステップと、
前記比較ステップの結果に基づいて前記期待値を使用して前記ＦＰＧＡの内部構成を定義し直す再定義ステップと
を備えることを特徴とする情報処理装置の動作方法。
【請求項７】
ＦＰＧＡを備えたコンピュータに読み取らせて実行させるプログラムであって、
前記ＦＰＧＡからその内部構成を定義する属性情報を読み出す属性情報読み出しステップと、
前記読み出した属性情報と期待値との比較を行う比較ステップと、
前記比較ステップの結果に基づいて前記期待値を使用して前記ＦＰＧＡの内部構成を定義し直す再定義ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡを含む情報処理装置に係り、ＦＰＧＡに定義された属性（回路論理）を検査することで、ＦＰＧＡに発生するソフトエラーに起因するシステムのダウンを抑制する技術に関する。
【背景技術】
【０００２】
半導体メモリの不具合には、トランジスタやキャパシタの破壊といった物理的な故障であり復旧不可能なハードエラーと、α粒子等の宇宙線の影響により偶発的に発生するソフトエラーが知られている。ソフトエラーは、主に宇宙線の電荷やその衝突によって生じる電荷によって、メモリセルに蓄えられている電荷の量が変動することで発生する。ソフトエラーは、物理的な破壊ではないので、適当なＥＣＣ(error correcting code)等のエラー訂正機能によって復旧させることができる。これらの技術については、例えば特許文献１や２に記載されている。
【０００３】
【特許文献１】特開昭５７−０４４２９８（要約書）
【特許文献２】特開昭５７−１００６９４（要約書）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、デバイスの完成後に独自の論理回路を書き込むことができるゲートアレイの一種としてＦＰＧＡ(field programmable gate array)が知られている。ＦＰＧＡは、基本論理回路の組み合わせをＳＲＡＭ(static random access memory)のメモリセルの状態によって定義することで、論理回路を書き込み（あるいは書き換え）可能とした集積回路である。なお、ＦＰＧＡには、回路情報を記憶させるデバイスとして、ＳＲＡＭを用いるもの以外にＥＥＰＲＯＭ(electrically erasable programmable read only memory )やアンチヒューズを用いたものもある。
【０００５】
上述したソフトエラーは、ＤＲＡＭ(dynamic random access memory)等において特に問題となるが、ＳＲＡＭにおいてはそれ程問題にはならないとされていた。しかしながら、画像処理用のＡＳＩＣのようにより集積度の高い回路を定義可能なＦＰＧＡにおいては、ＳＲＡＭの回路規模が大規模化するので、ソフトエラーの影響が無視できなくなる。ＦＰＧＡの場合、ＳＲＡＭに記憶された情報に基づいて基本論理回路の組み合わせを決めているので、ソフトエラーが発生すると定義されていた論理回路のシステムがダウンする可能性が増大する。
【０００６】
上述した特許文献２には、ＳＲＡＭを利用した記憶装置内に誤り訂正回路を装備し、ＳＲＡＭに発生するソフトエラーを検出し、それを修復する構成が記載されている。しかしながら、ＦＰＧＡは、多様な回路を高い集積度で作り込む必要があるので、特許文献２に記載されているような誤り訂正回路を内蔵させることは、集積度を高める上で適当ではなく、また製造コストの上昇を招く。
【０００７】
そこで本発明は、ＳＲＡＭに回路構成の情報を保持させるＦＰＧＡにおいて、ＳＲＡＭにソフトエラーが発生してもそれを修復することができ、またシステムダウンの可能性がある場合にそれを検出し、システムダウンに伴う事故の発生を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、ＦＰＧＡ(field programmable gate array)と、ＦＰＧＡの内部構成を定義する属性情報を書き換え可能な制御装置と、記憶装置とを備えている。そして、制御装置は、属性情報をＦＰＧＡから読み出す属性情報読み出しステップと、読み出した属性情報と期待値との比較を行う比較ステップと、この比較ステップの結果に基づいて期待値を使用してＦＰＧＡの内部構成を定義し直す再定義ステップとを実行する論理を備えている。
【０００９】
本発明の情報処理装置によれば、ＦＰＧＡに論理回路を定義するための属性情報が制御装置によってＦＰＧＡの内部から読み出され、予め用意しておいた期待値と比較される。これにより、ＦＰＧＡに書き込まれている属性情報にソフトエラーに起因する誤りや欠落がないかを判定することができる。また、属性情報に欠落や誤りがあった場合（つまりソフトエラーが検出された場合）に、期待値をＦＰＧＡに書き込み、問題のあった属性情報を上書きすることで、ＦＰＧＡの回路構成を定義し直し、ソフトエラーの影響を修復することができる。なお、ＦＰＧＡに論理回路を定義するための属性情報は、ＦＰＧＡのハードウェア構成を決めるための情報であり、コンフィグレーションデータとも呼ばれる。
【００１０】
この構成によれば、ＦＰＧＡの内部に誤り訂正回路等の本来の動作には直接寄与しない冗長な回路を配置する必要がない。また、属性情報と期待値との一致または不一致を判定すればよいので、定義される属性の内容に関係なく、ＦＰＧＡ内のＳＲＡＭのソフトエラーを検出することができる。
【００１１】
ＦＰＧＡは、ＳＲＡＭ以外にＥＥＰＲＯＭやアンチヒューズを利用して属性情報の定義を行なう構成を備えていても良い。制御装置としては、ＣＰＵ(central processing unit)が一般的に利用可能であるが、専用の集積回路を利用してもよい。期待値は、ＦＰＧＡに書き込まれている属性情報そのものであってもよいし、その一部であってもよい。
【００１２】
本発明は、扱うデータ量の多い画像処理装置への利用に適している。具体的には、印刷装置（プリンタ）、複写機（コピー機）、ＦＡＸ通信機、あるいはそれらの機能を複合した機能を有する複合機を本発明の適用対象として挙げることができる。また、本発明の情報処理装置の態様として、これら機器の制御を行なうボード（ＣＰＵやＦＰＧＡを載せたボード）を挙げることもできる。
【００１３】
本発明の情報処理装置において、読み出しステップおよび比較ステップを所定の時間間隔で行うことが望ましい。この態様によれば、定期的にＦＰＧＡに書き込まれている属性情報の確認が行なわれる。宇宙線は、一定の確率で地上に到達するので、こうすることでソフトエラーの検出を効率良く行なうことができる。なお、所定の時間間隔は、一定時間間隔でも良いし、複数の時間間隔を組み合わせたものでもよい。
【００１４】
本発明の情報処理装置において、記憶装置には、不揮発性半導体メモリまたはハードディスク装置が含まれ、期待値は、この不揮発性半導体メモリまたはハードディスク装置に格納されていることが望ましい。不揮発性半導体メモリ（ＥＰＲＯＭやＥＥＰＲＯＭ）は、デバイスの構造上、宇宙線による電荷保持状態の変化が生じ難いので、期待値の格納場所に適している。また、ハードディスク装置も宇宙線の影響による保持データの変質が生じ難いので、期待値の格納場所に適している。なお、ＦＰＧＡ内に不揮発性半導体メモリを配置し、そこに期待値を格納することもできる。
【００１５】
本発明の情報処理装置において、再定義ステップの後、ＦＰＧＡの動作を確認するための診断プログラムが実行され、その結果が記憶装置に格納される構成とすることが望ましい。診断プログラムは、ＦＰＧＡに定義された論理回路の動作を試験する手順を定めたプログラムである。この態様によれば、属性情報を再度書き込んでも復旧することができないトラブル（例えば、ハードウェア的な故障）を検出することができる。
【００１６】
本発明において、比較ステップにおける比較結果が不一致である場合を検出し、その発生累積数をカウントするカウント手段と、発生累積数が所定のＭＡＸ値を超えたか否かを判定する判定手段と、この判定の結果に基づき所定の報知処理を行う報知処理手段とを備えることが望ましい。
【００１７】
この態様によれば、再定義を繰り返してもＦＰＧＡに書き込まれている属性情報と期待値との不一致が頻繁に発生するような場合を検出することができる。再定義を繰り返してもＦＰＧＡに書き込まれている属性情報と期待値との不一致が頻繁に発生する場合、その原因として、素子の劣化等に起因するハードウェア的な問題の可能性が疑われる。本実施形態によれば、ＦＰＧＡから読み出した属性情報とその期待値との不一致の数をカウントし、カウント数が所定の上限値を超えたか否かを判定することで、上記のハードウェア的な問題の発生を予測することができる。これにより、突然のシステムダウンといった不都合の発生を抑制することができる。
【００１８】
本発明は、ＦＰＧＡを備えた情報処理装置の動作方法であって、ＦＰＧＡからその内部構成を定義する属性情報を読み出す属性情報読み出しステップと、読み出した属性情報と期待値との比較を行う比較ステップと、比較ステップの結果に基づいて期待値を使用してＦＰＧＡの内部構成を定義し直す再定義ステップとを備える動作方法の発明として把握することもできる。
【００１９】
また本発明は、ＦＰＧＡを備えたコンピュータに読み取らせて実行させるプログラムであって、ＦＰＧＡからその内部構成を定義する属性情報を読み出す属性情報読み出しステップと、読み出した属性情報と期待値との比較を行う比較ステップと、比較ステップの結果に基づいて期待値を使用してＦＰＧＡの内部構成を定義し直す再定義ステップとを実行させることを特徴とするプログラムの発明として把握することもできる。
【発明の効果】
【００２０】
本発明によれば、ＦＰＧＡの内部構成を定義している属性情報をＦＰＧＡから読み出し、それを期待値と比較することで、ＦＰＧＡ内のＳＲＡＭに発生したソフトエラーを検出することができる。これにより、ＳＲＡＭにソフトエラーが発生してもそれを修復することができ、またシステムダウンの可能性がある場合にそれを検出し、システムダウンに伴う事故の発生を抑制することができる。
【発明を実施するための最良の形態】
【００２１】
（１） 第１の実施形態
（実施形態の構成）
図１に本発明を利用した情報処理装置のブロック図の一例を示す。図１には、情報処理装置１００が示されている。この例において、情報処理装置１００は、複写機の制御部分を構成している。情報処理装置１００は、バス１０６により接続されたＣＰＵ１０１、主記憶装置１０２、２次記憶装置１０３、ＦＰＧＡ１０４およびその他回路１０５を備えている。
【００２２】
ＣＰＵ１０１は、情報処理装置１００で行われる動作を制御する。例えば、ＣＰＵ１０１は、後述する自己診断処理を実行する。またＣＰＵ１０１は、バス１０６を介してＦＰＧＡ１０４に直接アクセスし、ＦＰＧＡ１０４内のＳＲＡＭからのデータの読み出し、およびＦＰＧＡ１０４内のＳＲＡＭへのデータの書き込みを行なう機能を有する。主記憶装置１０２は、ＲＯＭ(read only memory)により構成され、情報処理装置１００の動作プログラム、後述する診断プログラム、さらに各種のパラメータ等を記憶している。２次記憶装置１０３は、ＤＲＡＭ、ＳＲＡＭ、ＥＥＰＲＯＭ、およびハードディスク装置を含み、動作させるプログラムを一時的に記憶させておく領域や動作に必要なデータを一時的に記憶させてくワーキングエリアとして利用される。また、２次記憶装置１０３には、動作中に得たデータ等が記憶される。
【００２３】
ＦＰＧＡ１０４は、ＳＲＡＭを備え、このＳＲＡＭの記憶セルの状態によってゲートアレイの組み合わせが決定されて所定の機能を発現する。この機能は、ＳＲＡＭに書き込まれる属性情報（回路要素の組み合わせを決める定義データ）を変更することで、外から変更することができる。
【００２４】
この例では、ＦＰＧＡ１０４は、所定のデータ形式への変換処理、配色を決める色空間変換処理、解像度を決める解像度変換処理、ノイズ除去や輪郭補正等を行うフィルタリング処理、画像出力部（印刷手段）が解釈できるデータ形式に変換するスクリーン処理等の複写機に必要な画像処理を行う画像処理用のＡＳＩＣ(application specific integrated circuit)として機能する。つまり、ＦＰＧＡ１０４には、これら画像処理を行うための論理回路が定義され、画像処理専用のハードウェアを備えた集積回路として機能する。この定義を行なうための属性情報は、主記憶装置１０２に記憶されており、情報処理装置１００の起動時に、そこから読み出され、ＦＰＧＡ１０４内のＳＲＡＭに書き込まれる。属性情報が書き込まれることで、ＦＰＧＡ１０４は、その属性情報に従ったハードウェア構成に定義され、上述した画像処理機能を備えるＡＳＩＣとなる。
【００２５】
その他回路１０５は、図示省略されている画像読み取り部や画像出力部との間で信号のやり取りを行なうためのインターフェース回路である。また、図示省略するが、情報処理装置１００は、ユーザに対して所定の情報を知らせるための表示装置とユーザが各種の設定や操作を行うための操作手段を備えている。
【００２６】
（実施形態の動作）
以下、ＦＰＧＡ１０４のソフトエラーを検出する診断処理の一例を説明する。図２は、この診断処理の手順の一例を示すフローチャートである。以下の処理は、ＣＰＵ１０１に制御されて実行される。
【００２７】
情報処理装置１００が起動されると、まず主記憶装置１０２に格納されているＦＰＧＡ１０４の属性情報が読み出され、それがＦＰＧＡ１０４内のＳＲＡＭに書き込まれる。また、診断処理が開始され（ステップＳ２０１）、最初にＦＰＧＡ１０４に書き込まれている属性情報を読み出すタイミングか否か、が判定される（ステップＳ２０２）。ここでは、ステップＳ２０２において、装置の連続稼働時間（電源がＯＮにされている時間）が装置の起動時から、あるいは前回の読み出しから所定の時間が経過したか否か、が判定される。なお、ステップＳ２０２では、予め設定された所定の時間であるか否か、等を判定してもよい。
【００２８】
読み出しタイミングであれば、ステップＳ２０３に進み、そうでなければステップＳ２０２の前段階に戻る。ステップＳ２０３では、ＦＰＧＡ１０４に書き込まれている属性情報が読み出され、さらにこの属性情報に対応する期待値が主記憶装置１０２から読み出される（ステップＳ２０４）。ここで、期待値は、属性情報と同じデータである。
【００２９】
次にステップＳ２０３で読み出した属性情報とステップＳ２０４で読み出した期待値とを比較し、両者が一致するか否か、を判定する（ステップＳ２０５）。両者が一致すれば、「エラー無し」と判定され、ステップＳ２０２以下の処理が繰り返され、両者が一致しなければ、「エラー有り」と判定され、ステップＳ２０６に進む。
【００３０】
ステップＳ２０６では、主記憶装置１０２に格納されていた期待値がＦＰＧＡ１０４に書き込まれる。すなわち、ステップＳ２０３でＦＰＧＡ１０４から読み出された属性情報に上書きされる形で、ステップＳ２０４で読み出された期待値がＦＰＧＡ１０４に書き込まれる。
【００３１】
次に主記憶装置１０２に格納されている診断プログラムを用いて、ＦＰＧＡ１０４の動作を確認する自己診断処理を行う（ステップＳ２０７）。この自己診断処理は、予め定めておいた動作をＦＰＧＡ１０４に行わせ、その結果が予め用意しておいた期待値と一致するか否か、を検証することで行われる。この自己診断処理の後、診断結果に異常があるか否か、が判定され（ステップＳ２０８）。診断結果に異常があれば、診断結果を２次記憶装置１０３の不揮発領域（ＥＥＰＲＯＭやハードディスク装置）に記憶し、その後ステップＳ２１１に進む。また、異常がなければステップＳ２０９に進み。
【００３２】
ステップＳ２１１では、図示省略した表示装置にその旨の表示を行うシステムエラーの報知が行われる。その後、情報処理装置１００をシステムダウンさせる処理が行われる（ステップＳ２１２）。また、ステップＳ２０９では、カウンタの値を＋１増加させる。このカウンタの値は、２次記憶装置１０３に記憶される。このカウンタは、システムの起動時に０であり、ステップＳ２０５の判定がＮＯと判定される毎に＋１が積算される。そして、システムのダウン（電源ＯＦＦ）の際に０にリセットされる。
【００３３】
ステップＳ２０９の後、ステップＳ２１０に進み、上記カウンタの値が予め定めておいた規定値を超えたか否か、を判定し、カウンタの値が規定値を超えていれば、システムエラーの通知（ステップＳ２１１）およびシステムダウン（ステップＳ２１２）を行う。また、カウンタの値が規定値を超えていなければ、ステップＳ２０２以下の処理を再度実行する。
【００３４】
以上が、ＦＰＧＡ１０４に発生したソフトエラーの検出に係る診断処理の概要である。上述の処理以外に複写機としての各種の動作があるが、それは通常の複写機における動作と同じであるので、説明は省略する。
【００３５】
図２に示した動作手順によれば、所定のタイミングでＦＰＧＡ１０４に書き込まれた属性情報が読み出され（ステップＳ２０２、ステップＳ２０３）、期待値との比較が行われる（ステップＳ２０５）。ＦＰＧＡ１０４に書き込まれた属性情報と期待値とが一致すれば、「エラー無し」と判定され、ステップＳ２０２に戻り、次の診断まで当該診断処理の実行は待機状態となる。
【００３６】
また、属性情報と期待値とが不一致の場合、ソフトエラーを含む何らかのエラーが発生していると判定され、期待値を利用して属性情報の書き換えが行われる。エラーがソフトエラーであれば、この書き換えによりＳＲＡＭデータの欠落や誤りは修復され、ソフトエラーに起因するＦＰＧＡの動作不良が発生しないようにすることができる。また、属性情報と期待値とが不一致で（Ｓ２０５の判定結果がＮＯ）、さらに自己診断処理の結果に問題がない場合（Ｓ２０８の判定結果がＮＯ）、カウンタの値が＋１積算される（ステップＳ２０９）。頻繁に属性情報と期待値との不一致が検出される場合、このカウンタの積算値が短時間で大きくなり、その程度がステップＳ２１０の判定により検出される。そして、属性情報と期待値とが不一致の頻度があるレベルを超えた場合、単なるソフトエラー以外に深刻なエラー要因の存在が予知されてシステムエラーの通知（ステップＳ２１１）およびシステムダウンの処理（ステップＳ２１２）が行われる。こうすることで、システムの動作中に突然動作不良が発生する不都合を防止することができる。
【００３７】
また、属性情報に異常が検出され（ステップＳ２０５の判定がＮＯ）、属性情報を書き換えた場合（ステップＳ２０６）であっても、診断プログラムによる動作試験で異常が検出された場合、属性情報の再書き込みによって修復されないエラーが発生していると判定され、システムエラーの通知（ステップＳ２１１）およびシステムダウンの処理（ステップＳ２１２）が行われる。こうすることで、ステップＳ２０５の判定で検出できない不具合に対応することができる。
【００３８】
さらに、動作試験を行う診断プログラムによる診断結果に異常があれば、診断結果が２次記憶装置１０３の不揮発領域（ＥＥＰＲＯＭやハードディスク装置）に記憶されるので、後にそれを読み出し、不具合原因の解析を行うことができる。
【００３９】
（第１の実施形態の変形）
ステップＳ２０３において、ＦＰＧＡ１０４に書き込まれている属性情報を全て読み出すのではなく、その一部を読み出し、それと対応する期待値とを比較するのでもよい。また、ＦＰＧＡ１０４に書き込まれている属性情報を複数に分割し、第１のタイミングで属性情報の第１の分割部分を読み出し、第２のタイミングで属性情報の第２の分割部分を読み出し、といった処理を巡回的に行ってもよい。
【００４０】
（２） 第２の実施形態
図３は、本発明を利用した他の情報処理装置の一例を示すブロック図である。図３には、図１に示す構成に加えて、ＦＰＧＡ１０４への属性情報の書き込みおよび読み出しを行うためのインターフェースとして、専用ＩＦ制御回路１０７が配置されている。専用ＩＦ制御回路１０７は、ＦＰＧＡ１０４とＣＰＵ１０１との間のデータ転送を行うのに必要なインターフェース機能を備えている。専用ＩＦ制御回路１０７が備えるインターフェース規格としては、集積回路の検査方式の標準規格であるＪＴＡＧや、シリアルバスに接続された電気的に書き換え可能なＲＯＭであるＳＥＥＰＲＯＭ(serial electronically erasable and programmable read only memory)のインターフェース規格を利用することができる。
【００４１】
専用ＩＦ制御回路１０７以外の構成は、図１と同じであるので、説明は省略する。また、基本的な動作手順も図２に示すものと同じである。本実施形態は、図２に示す動作において、ＦＰＧＡ１０４への属性情報の書き込みおよび読み出しが、専用ＩＦ制御回路１０７を介して行われる点が第１の実施形態の場合と異なる。
【産業上の利用可能性】
【００４２】
本発明は、ＦＰＧＡを備えた印刷装置、複写機、ＦＡＸ通信機、それらの機能を複合した機能を有する複合機、コンピュータ、あるいはこれらの機器の制御を行なうボード（ＣＰＵやＦＰＧＡを載せたボード）に利用することができる。
【図面の簡単な説明】
【００４３】
【図１】発明を利用した情報処理装置の概要を示すブロック図である。
【図２】図１に示す情報処理装置の動作の一例を示すフローチャートである。
【図３】発明を利用した他の情報処理装置の概要を示すブロック図である。
【符号の説明】
【００４４】
１００…情報処理装置
【図１】
2008015965.tif 000003
【図２】
2008015965.tif 000004
【図３】
2008015965.tif 000005