(57)【要約】【課題】  ＦＰＧＡのコンフィギュレーションＲＡＭ（ＣＲＡＭ）エラーからの高速復旧。【解決手段】  ハードウエア処理による、ＦＰＧＡの制御レジスタへの初期設定データ書き込み及び、エラー発生直前の制御レジスタ設定値の復元を行う。  所定の機能を定義する機能情報を一時的に保持する機能情報一時保持部と、所定の機能を実現する機能部を制御する制御レジスタと、制御レジスタを制御する制御レジスタ制御部とを有するＦＰＧＡと、制御レジスタに設定する運用情報を保持する記憶部とを備え、制御レジスタ制御部は、機能情報一時保持部での障害を検知すると、記憶部が保持する運用情報を取得し、取得した運用情報を制御レジスタに設定する装置。【選択図】  図１
2015216507.tif 000002
【特許請求の範囲】
【請求項１】
所定の機能を定義する情報である機能情報を一時的に保持する機能情報一時保持部と、前記機能情報に基づく機能を実現する機能部を制御する制御レジスタと、前記制御レジスタを制御する制御レジスタ制御部とを有するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）と、
前記制御レジスタに設定する運用に関する情報である運用情報を保持する記憶部と、
を備え、
前記制御レジスタ制御部は、
前記機能情報一時保持部での障害を検知すると、前記記憶部が保持する前記運用情報を取得し、取得した前記運用情報を前記制御レジスタに設定する
ことを特徴とする装置。
【請求項２】
請求項１に記載の装置であって、
前記ＦＰＧＡは、前記機能情報一時保持部を制御する機能情報制御部をさらに備え、
前記機能情報制御部は、
前記機能情報一時保持部での障害を検知すると、障害が発生したことを通知する障害発生信号を前記制御レジスタ制御部へ送信し、
前記制御レジスタ制御部は、
前記障害発生信号を受信すると、前記機能情報一時保持部での障害を検知する
ことを特徴とする装置。
【請求項３】
請求項２に記載の装置であって、
前記機能情報一時保持部が保持する前記機能情報を予め保持する機能情報保持部をさらに備え、
前記機能情報制御部は、
前記機能情報一時保持部での障害を検知すると、前記制御レジスタ制御部へ前記障害発生信号を送信し、前記機能情報保持部から前記機能情報を取得し、取得した前記機能情報を前記機能情報一時保持部に設定して障害を回復し、障害から回復したことを通知する障害回復信号を前記制御レジスタ制御部へ送信し、
前記制御レジスタ制御部は、
前記障害回復信号を受信すると、前記記憶部が保持する前記運用情報の取得を実行する
ことを特徴とする装置。
【請求項４】
所定の機能を実現する機能部を制御する制御レジスタと、前記制御レジスタを制御する制御レジスタ制御部とを有するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）と、
前記制御レジスタに設定する運用に関する情報である運用情報を保持する記憶部と、
前記ＦＰＧＡを制御する制御部と、
を備え、
前記制御レジスタ制御部は、
前記制御レジスタでの障害を検知すると、障害が発生したことを通知するＦＰＧＡ障害発生信号を前記制御部へ送信し、前記記憶部から前記運用情報を取得し、取得した前記運用情報を前記制御レジスタに設定して障害を回復し、障害から回復したことを通知するＦＰＧＡ障害回復信号を前記制御部へ送信し、
前記制御部は、
前記ＦＰＧＡ障害発生信号を受信すると、前記ＦＰＧＡに対する制御を中断し、前記ＦＰＧＡ障害回復信号を受信すると、前記ＦＰＧＡに対する制御を再開する
ことを特徴とする装置。
【請求項５】
所定の機能を実現する機能部を、運用に関する情報である運用情報に基づいて制御する制御レジスタと、前記制御レジスタを制御する制御レジスタ制御部とを有するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）と、
前記運用情報を保持する記憶部と、
前記ＦＰＧＡを制御する制御部と、
を備え、
前記制御レジスタ制御部は、
前記記憶部での障害を検知すると、障害が発生したことを通知するＦＰＧＡ障害発生信号を前記制御部へ送信し、前記制御レジスタから前記運用情報を取得し、取得した前記運用情報を前記記憶部に設定して障害を回復し、障害から回復したことを通知するＦＰＧＡ障害回復信号を前記制御部へ送信し、
前記制御部は、
前記ＦＰＧＡ障害発生信号を受信すると、前記ＦＰＧＡに対する制御を中断し、前記ＦＰＧＡ障害回復信号を受信すると、前記ＦＰＧＡに対する制御を再開する
ことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を搭載する装置に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２０１２−１９９７５５号公報（特許文献１）がある。この公A報はマイクロコンピュータ周辺装置に関するのもで、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）がマイクロコンピュータから受信した初期設定コマンドに基づく設定信号をレジスタを介して機能回路部に出力し、初期設定を行う。
【０００３】
ここで、レジスタにおける設定信号のデータをＭＴＪ（Ｍａｇｎｅｔｉｃ  Ｔｕｎｎｅｌ  Ｊｕｎｃｔｉｏｎ：磁気トンネル接合）素子等の不揮発性記憶素子を用いた保持回路で記憶しておく。電源再投入時には、保持回路に記憶された設定信号のデータで初期設定を行うことで高速起動を図ることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１９９７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現在、様々な電子機器に搭載されているＦＰＧＡは、コンフィギュレーションＲＡＭ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（以下、「ＣＲＡＭ」と呼ぶ。）と呼ばれる領域にユーザロジック情報を保持することで、自由にロジックを構築できる。このユーザロジック情報は、ＦＰＧＡの外部に接続される不揮発性メモリに格納される。ＦＰＧＡは、ＦＰＧＡの起動時にこの不揮発性メモリから、ユーザロジック情報を読み出し、一般的にＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成されるＣＲＡＭエリアに保持することで、ロジックが構築される仕組みを持つ。このＳＲＡＭで構成されるＣＲＡＭエリアは、ＦＰＧＡの大規模/微細化及び、供給電源の低電圧化が進んだことにより、低エネルギーの放射線であってもソフトエラーがより高い頻度で発生し、その影響が無視できなくなってきた。
【０００６】
このＣＲＡＭエリアにソフトエラーが発生すると、ユーザロジックが意図しないものに変化することにより誤動作が継続することになる。ＦＰＧＡメーカ各社はＣＲＡＭへのＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ：誤り検出訂正）の適用、マルチビットのエラーについては、ＣＲＡＭエリアデータのハード自律復旧（部分的な再コンフィギュレーション）を実行する、ソフトエラーからのハード自律回復回路の実装を進めている。ハード自律復旧回路の例としては、ＣＲＡＭエリアに保持されるデータの正常性を監視し、異常と判定された場合に、ＦＰＧＡの外部不揮発メモリに格納されているユーザロジックデータから正常データを読み出し、該当エリアにこの正常データを書き込む動作を行うものである。ここで、ハード自律復旧を実施した後のロジックに含まれるフリップフロップ回路やユーザロジック内のメモリは、ＣＲＡＭエリアのソフトエラーにより意図しない状態になる可能性を考慮し、ハード自律復旧で該当回路をリセットする必要がある。そのため、これらフロップ回路やメモリは初期状態に戻ってしまう。
【０００７】
またロジック部への設定を受け持つレジスタ部もフロップ回路やメモリで構成されるため、同様に初期状態に戻ってしまう。したがって、レジスタの初期設定及び、エラー直前の装置運用状態に即した設定状態への復旧を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）インタフェースを介し、ソフトウエア処理により行う必要がある。
【０００８】
特許文献１には、ＬＳＩ内部に不揮発性メモリを配置することによりレジスタへの初期設定の高速化を図ることが記載されている。これは、ＬＳＩ内部の不揮発性メモリに、初期設定情報や運用情報を保持し、装置の再起動やリセット後にソフトウエア処理を介さずに、ハードウエア処理により不揮発性メモリの初期設定情報又は運用情報を読み出し、回路の設定や制御を行うレジスタ部に設定をおこなうことで復旧の高速化を狙ったものである。
【０００９】
一方、内部ロジックを書き換え可能なＦＰＧＡでは、ＬＳＩの様に用途に応じたデバイス自体のカスタマイズにより、ＭＴＪ素子などの不揮発性メモリを配置することは困難でありソフトウエア処理によるレジスタ部への初期設定情報や運用情報の設定処理が必要となる。ソフトウエア処理による設定処理は、ソフトウエアが外部ストレージなどのＭＴＪ素子等に比べて低速なデータ保持デバイスから初期設定情報や運用情報を読み出し、さらに、ＦＰＧＡのレジスタに読み出したデータを書き込む処理が必要となるため、ハードウエア処理による復旧時間に比べて、復旧時間が増大する課題がある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、所定の機能を定義する情報である機能情報を一時的に保持する機能情報一時保持部と、機能情報に基づく機能を実現する機能部を制御する制御レジスタと、制御レジスタを制御する制御レジスタ制御部とを有するＦＰＧＡと、制御レジスタに設定する運用に関する情報である運用情報を保持する記憶部と、を備え制御レジスタ制御部は、機能情報一時保持部での障害を検知すると、記憶部が保持する運用情報を取得し、取得した運用情報を制御レジスタに設定することを特徴とする装置を有する。
【００１１】
また、別の側面において、本発明は、所定の機能を実現する機能部を制御する制御レジスタと、制御レジスタを制御する制御レジスタ制御部とを有するＦＰＧＡと、制御レジスタに設定する運用に関する情報である運用情報を保持する記憶部と、ＦＰＧＡを制御する制御部と、
を備え、制御レジスタ制御部は、制御レジスタでの障害を検知すると、障害が発生したことを通知するＦＰＧＡ障害発生信号を制御部へ送信し、記憶部から運用情報を取得し、取得した運用情報を制御レジスタに設定して障害を回復し、障害から回復したことを通知するＦＰＧＡ障害回復信号を前記制御部へ送信し、制御部は、ＦＰＧＡ障害発生信号を受信すると、ＦＰＧＡに対する制御を中断し、ＦＰＧＡ障害回復信号を受信すると、ＦＰＧＡに対する制御を再開することを特徴とする装置を有する。
【００１２】
さらに、別の側面において、本発明は、所定の機能を実現する機能部を、運用に関する情報である運用情報に基づいて制御する制御レジスタと、制御レジスタを制御する制御レジスタ制御部とを有するＦＰＧＡと、運用情報を保持する記憶部と、ＦＰＧＡを制御する制御部と、を備え、制御レジスタ制御部は、記憶部での障害を検知すると、障害が発生したことを通知するＦＰＧＡ障害発生信号を制御部へ送信し、制御レジスタから運用情報を取得し、取得した運用情報を記憶部に設定して障害を回復し、障害から回復したことを通知するＦＰＧＡ障害回復信号を制御部へ送信し、制御部は、ＦＰＧＡ障害発生信号を受信すると、ＦＰＧＡに対する制御を中断し、ＦＰＧＡ障害回復信号を受信すると、ＦＰＧＡに対する制御を再開することを特徴とする装置を有する。
【発明の効果】
【００１３】
本発明によれば、ソフトエラーによるＣＲＡＭエラーからの復旧が高速化でき、さらに高いソフトエラー耐力を持つシステムを構築できる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１４】
【図１】ＦＰＧＡを搭載するパケット通信装置の構成例のブロック図である。
【図２】初期設定データ設定動作のシーケンス図の例である。
【図３】ＦＰＧＡによるメモリ保持データ更新動作のフローチャート図の例である。
【図４】ＣＲＡＭエラー復旧における制御レジスタ設定動作のシーケンス図の例である。
【図５】制御レジスタ及びメモリにエラーが発生した場合のＦＰＧＡにおける回復処理の動作のフローチャート図の例である。
【図６】制御レジスタとメモリの同一アドレスにエラーが発生した場合におけるシーケンス図の例である。
【図７】制御レジスタにエラーが発生した場合におけるシーケンス図の例である。
【図８】メモリにエラーが発生した場合におけるシーケンス図の例である。
【発明を実施するための形態】
【００１５】
（実施例１）
図１は、本実施例１におけるパケット通信装置の例を示したブロック図である。
光信号を受信し、光信号の処理を行う光インタフェース部１３８と、パケット処理を行うインタフェースパッケージ１４０と、パケットのスイッチングを行うパケットスイッチパッケージ１３９で構成されるブロック図である。パケット通信装置は、ＦＰＧＡを搭載する装置（ＦＰＧＡ搭載装置）であり、ＦＰＧＡとＣＰＵで構成される装置であれば、通信装置以外の装置に対しても適用が可能である。
【００１６】
インタフェースパッケージ１４０は、パケット処理を行うよう構成されたＦＰＧＡ１００と、パケット通信装置の制御を司る制御部１０１と、記憶部であり、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成されるメモリ１０３と、ＣＰＵバスセレクタ１１９と、ＦＰＧＡ１００の機能を定義するユーザロジック情報（機能情報）を予め保持する機能情報保持部であるユーザロジック情報外部保持部１１５より構成される。ＦＰＧＡ１００は複数存在してもよい。ユーザロジック情報外部保持部１１５は、ＦＰＧＡ１００の外部に配備され、不揮発性メモリで構成され、一般的には機器の製造時にユーザロジック情報の記録がなされる。また、制御部１０１は、ＦＰＧＡ１００を監視し、さまざまな制御を行うため、監視制御部１０１とも呼ぶ。
【００１７】
また、図１に示すＦＰＧＡ１００は、電源を投入しＦＰＧＡ１００が起動した後に、ユーザロジック情報外部保持部１１５に保持されているユーザロジック（ユーザ論理）を定義する情報であるユーザロジック情報（機能情報）を読み出して一時的に保持するＣＲＡＭであるユーザロジック情報一時保持部（機能情報一時保持部）１１４と、ＣＲＡＭ（ユーザロジック情報一時保持部）１１４へのユーザロジック情報の書き込みとＣＲＡＭ１１４に発生するエラーの監視をし、訂正をするなど、ＣＲＡＭを制御するＣＲＡＭ制御部（機能情報制御部）１１３を具備するＦＰＧＡ種を適用した場合の例を示しているが、同様の機構を持つＦＰＧＡ種を適用してもよい。
【００１８】
以下では、ＣＲＡＭ１１４に発生するエラーを「ＣＲＡＭエラー」と呼ぶ。また、ＣＲＡＭ１１４をＣＲＡＭエリア１１４と呼ぶこともある。なお、ＣＲＡＭ１１４に発生するエラーとは、中性子線等の放射線に起因するソフトエラーやデバイス故障に起因するハードエラーを想定するが、本実施例では、一時的なエラーでリセット等により復旧可能なソフトエラーがＣＲＡＭ１１４に発生した場合を意味する。
【００１９】
本実施例１は、制御レジスタの初期設定及び、ＣＲＡＭエラー復旧後の初期状態に戻った制御レジスタをエラー発生直前の設定状態に戻す処理を、ＣＰＵを用いたソフトウエア処理に依存せずハードウエア処理によりソフトウエア処理よりも高速に行う例である。
【００２０】
監視制御部１０１は、ＣＰＵ（プロセッサ）１１６とＣＰＵ１１６を動作させ、ＦＰＧＡ１００の初期化に必要な初期設定に関するデータ（初期設定情報）を格納するソフトウエア部１０４及び、各種ペリフェラルにより構成される。ＣＰＵ１１６は、各種ペリフェラル等に対する監視及び制御をプログラマブルに実施可能な汎用ポート１１７を有し、ソフトウエア部１０４として、メモリ（図示せず）に格納されたプログラムを実行することによって、各機能が実現される。また、各種ペリフェラルについては記載を省略する。
【００２１】
次に、ＦＰＧＡ１００について説明する。ユーザロジック部１０２は、ＦＰＧＡ１００を使用するユーザが定義したロジックを示し、ＣＲＡＭ１１４に保持されているユーザロジック情報に従い、ユーザが定義するロジックが形成される。ユーザロジック部１０２の例としては、パケット処理部１０５と、パケット処理部１０５を制御信号群１３５により制御する制御レジスタ１０６と、制御レジスタ１０６の運用設定を行い、制御レジスタ１０６を制御して、ＦＰＧＡ１００を適用する装置においてユーザが定義する所望の機能を実現する制御レジスタ制御部１１２で構成される。
制御レジスタ制御部１１２は、制御レジスタ１０６を制御し、制御レジスタ１０６に発生したエラーを訂正し、エラーから復旧（障害から回復）する処理を行うので、エラー訂正・復旧処理ブロック群１１２とも呼ぶ。
【００２２】
ここで、パケット処理部１０５は、ユーザが定義したロジックによって、その機能が変わる。つまり、パケット処理部１０５は、ユーザが定義した所定の機能を実現する機能部として動作する。そのため、パケット処理部１０５は、例えばＦＰＧＡをデータの暗号化装置に適用した場合は、ユーザが暗号化処理機能として定義することで、暗号化処理部として動作する。
また、制御レジスタ１０６の運用設定とは、装置の電源投入後に実行される制御レジスタ１０６の初期設定（制御レジスタ１０６の初期化、制御レジスタ１０６に初期設定に関するデータを書き込む）後に、装置の運用形態に合った設定となるように制御レジスタ１０６の設定を変更することを指す。この制御レジスタ１０６に設定する（書き込む）運用に関するデータ（運用情報）は、後述するメモリ１０３に格納される。
【００２３】
また、エラー訂正・復旧処理ブロック群（制御レジスタ制御部）１１２は、ＦＰＧＡ１００の外部に配備される、制御レジスタ１０６の設定データと同一データを保持するメモリ１０３とのインタフェース機能及び、メモリ１０３及び制御レジスタ１０６に対する読み出しと書き込みのアクセス（制御）をコントロールする機能を有するメモリコントローラ部１０８と、制御レジスタ１０６へのＣＰＵ１１６からのアクセスとメモリコントローラ部１０８からのアクセスとを切り替えるセレクタ部１０７と、メモリ１０３と制御レジスタ１０６への読み出しと書き込み契機を判定し、複数の読み出し書き込み条件に応じた処理を実施する設定制御部１１１と、メモリ１０３と制御レジスタ１０６に対するアクセス条件を判定し、設定制御部１１１に対し通知を行う制御レジスタエラーチェック部１１０、メモリ１０３のエラーチェックを行うメモリエラーチェック部１１８、制御レジスタ１０６に対するＣＰＵ１１６からの書き込みアクセス及び、書き込み先のアドレスと書き込みするデータを監視（モニタ）するバスモニタ部１０９から構成される。ここで、セレクタ部１０７は、ＦＰＧＡ１００の起動直後は、ＣＰＵバス１２０側に接続され、制御レジスタ１０６へのＣＰＵ１１６からのアクセスを確保している。
【００２４】
ＣＰＵ１１６がペリフェラルにアクセスするためのＣＰＵバス１２０には、アドレス、データ、アクセス制御信号（一般的にはチップセレクト、リード・ライト信号など）が含まれており、バスモニタ部１０９はこのアクセス制御信号を監視（モニタ）することで、書き込みアクセス時の書き込みアドレスとデータを判別することができる。
【００２５】
本実施例１は、電源投入後の起動処理でＦＰＧＡ１００のＣＲＡＭエリア１１４にエラーが発生した場合のエラー訂正からの復旧動作を示すものである。本実施例１の場合、１）電源投入後の起動時に制御レジスタ１０６へ初期設定データを設定する動作である初期設定データ設定動作、２）起動後の制御レジスタ１０６更新時にメモリ１０３が保持する制御レジスタ１０６設定データと同一のデータが格納されるアドレスのデータをＦＰＧＡ１００が更新する動作であるメモリ保持データ更新動作、３）ＣＲＡＭエラー発生時にＣＲＡＭ制御部１１３によるＣＲＡＭエラーの検出及びエラー訂正と、訂正後のメモリ１０３が保持する運用に関するデータ（運用情報）から制御レジスタ１０６を設定する動作である制御レジスタ設定動作を行う。以下、それぞれの動作について説明する。
【００２６】
１）電源投入後の起動時に制御レジスタ１０６へ初期設定データを設定する動作である初期設定データ設定動作のフローを図１及び、図２を用いて説明する。
図２は、初期設定データ設定動作のシーケンス図である。
【００２７】
パケット通信装置が電源投入され起動すると（２００）、ＦＰＧＡ１００は、自律的にユーザロジックを形成する為、コンフィギュレーションを行う（２０１）。このコンフィギュレーションにあたっては、ユーザロジック情報外部保持部１１５からユーザロジック情報をＦＰＧＡ１００のＣＲＡＭ制御部１１３により読み出し、ＣＲＡＭ１１４に対し読み出したユーザロジック情報を書き込み保持する。ここで、コンフィギュレーションとは、ＦＰＧＡの論理を形成する動作のことをいう。
【００２８】
コンフィギュレーション開始より、ＣＲＡＭ制御部１１３は、コンフィギュレーション完了通知信号１３３をＣＰＵ１１６に対して送信し（２０９）、コンフィギュレーション中であることを通知する。ＣＰＵ１１６は、コンフィギュレーション完了通知信号１３３によりＦＰＧＡ１００がコンフィギュレーション中であると判定し、ＣＰＵ１１６は、汎用ポート１１７等を介して、ＦＰＧＡ１００に対して、ＦＰＧＡリセット信号１３２を送信して、ＦＰＧＡ１００のリセットを有効化する（２０２）。これにより、ＦＰＧＡ１００内部のＦＦ（フリップ・フロップ回路）及びメモリが初期状態にリセットされる。
【００２９】
ＦＰＧＡ１００のＣＲＡＭ制御部１１３は、コンフィギュレーションが完了すると、ＣＰＵ１１６に対して、コンフィギュレーションが完了したことを通知するコンフィギュレーション完了通知信号１３３を送信する（２０３）。
【００３０】
ＣＰＵ１１６は、コンフィギュレーション完了通知信号１３３を監視し、コンフィギュレーション完了通知信号１３３を受信するとコンフィギュレーション完了と判定し、次の処理２０４に移る。ＣＰＵ１１６から、メモリ１０３に対しアクセスできる状態を確立する（ＣＰＵ１１６からメモリ１０３へのアクセスルートを確立する）為、ＣＰＵ１１６は、汎用ポート１１７からＣＰＵバス選択制御信号１２１を送信し、ＣＰＵバスセレクタ部１１９を制御することで、ＣＰＵバスセレクタ部１１９によりメモリ１０３とのバス接続を有効とする。メモリ１０３は、通常初期化処理が必要となるため、ＣＰＵバス１２０を介しメモリ１０３の初期化実施後、ＣＰＵ１１６は、ＦＰＧＡ１００の制御レジスタ１０６に必要な初期設定データをソフトウエア部１０４から読み出して、すべてメモリ１０３に書き込む（設定する）（２０４）。
【００３１】
ＣＰＵ１１６が、メモリ１０３に書き込むＦＰＧＡ１００の制御レジスタ１０６に必要な初期設定データのアドレス順序に関しては、制御レジスタ１０６と相対的に一致させておく必要がある。こうすることで、メモリ１０３と制御レジスタ１０６に格納されている同一データのアドレス解決が容易になる。
【００３２】
メモリ１０３への初期設定データ書き込み完了後、ＣＰＵ１１６は、ＣＰＵバス選択制御信号１２１を送信し、ＣＰＵバスセレクタ部１１９を制御して、ＣＰＵ１１６からメモリ１０３へのアクセスルートを切り離し、ＦＰＧＡリセット信号１３２を送信して、ＦＰＧＡ１００のリセットを解除する（２０５）。
【００３３】
ＦＰＧＡリセット信号１３２を受信して、ＦＰＧＡ１００のリセットの解除を検出した設定制御部１１１は、制御レジスタアクセス中通知信号１３１を送信して、制御レジスタ１０６とメモリ１０３へのアクセス開始を通知するとともに、制御レジスタアクセス切り替え信号１２５を送信してセレクタ部１０７を制御し、メモリコントローラ１０８からの制御レジスタ１０６へのアクセスルートを確立させた後、メモリ１０３から初期設定データを順次読み出し、読み出した初期設定データを制御レジスタ１０６のメモリ１０３に対応するアドレスへ順次書き込む（２０６）。
【００３４】
制御レジスタ１０６に対する書き込み完了後、設定制御部１１１は、制御レジスタアクセス切り替え信号１２５を送信してセレクタ部１０７を制御することで、ＣＰＵ１１６から制御レジスタ１０６へのアクセスルートを確立させた後、制御レジスタアクセス中通知信号１３１を送信して、設定制御部１１１から制御レジスタ１０６へのアクセスが完了したことをＣＰＵ１１６に対し通知する（２０７）。これにより、ＣＰＵ１１６はＦＰＧＡ１００の制御レジスタ１０６へのアクセスが可能となる。
以上の処理により、装置の起動が完了する（２０８）。
【００３５】
次に、２）起動後の制御レジスタ１０６更新時にメモリ１０３が保持するデータをＦＰＧＡ１００が更新する動作であるメモリ保持データ更新動作を図３で説明する。
図３は、ＦＰＧＡ１００によるメモリ保持データ更新動作のフローチャート図である。
ＦＰＧＡ１００のバスモニタ部１０９が、ＣＰＵバス１２０によるＣＰＵ１１６からの制御レジスタ１０６に対する書き込み制御の監視を行う。バスモニタ部１０９において、ＣＰＵ１１６から制御レジスタ１０６への書き込みアクセスが有ると判定された場合（３００のＹｅｓ）、ＦＰＧＡ１００は、ＣＰＵ１１６からのアクセスを受けて、制御レジスタ１０６に対しデータの書き込みを実施する（３０１）。処理３０１によりＣＰＵ１１６から制御レジスタ１０６に対して書き込み処理が開始された状態となる。この状態で処理３０２を実施する。
ここで、書き込みアクセスの有無判定は、公知の方法を用いる。
書き込みアクセスが無いと判定された場合（３００のＮｏ）、他の処理をせずに終了する。
【００３６】
バスモニタ部１０９は、書き込みアクセスに含まれる、制御レジスタ１０６に対する書き込み先のアドレスの値（書き込みアドレス値）及びその書き込みデータを取得し、書き込みアクセス情報通知信号１３６を送信して設定制御部１１１に通知する（３０２）。
通知を受けた設定制御部１１１は、書き込みアドレス値及び書き込みデータを一時的に保持する（３０３）。
【００３７】
設定制御部１１１は、メモリコントローラ部１０８に対してメモリ・レジスタアクセス要求・アクセス情報信号１２４を送信して、書き込みアドレス値及び書き込みデータを通知する（３０４）。
メモリコントローラ部１０８は通知を受けた書き込みアドレス値と書き込みデータの情報をもとに、書き込みアドレス値に対応するメモリ１０３のアドレスに対して書き込みデータ（制御レジスタ設定データ）の書き込みを行う（３０５）。
以上の処理を実施することで、メモリ１０３に保持されるデータは、常に制御レジスタ１０６と同一の状態となる。
【００３８】
次に３）ＣＲＡＭエラー発生時にＣＲＡＭ制御部１１３によるＣＲＡＭエラーの検出及びエラー訂正と、エラー訂正後にメモリ１０３が保持するデータから制御レジスタ１０６を設定する動作である制御レジスタ設定動作を図４により説明する。
図４は、ＣＲＡＭエラー復旧における制御レジスタ設定動作のシーケンス図である。
【００３９】
ＣＲＡＭ制御部１１３は、ＣＲＡＭ１１４のデータを順次読み出し、パリティチェック等の手法によりデータの正常性をチェック（エラースキャン）している。エラースキャンによりＣＲＡＭエラーを検出すると、エラー発生箇所の特定（ＣＲＡＭを順次エラースキャンすることでエラーを検出した部位の特定が可能）と障害発生信号であるＣＲＡＭエラー発生通知信号１２８を送信して設定制御部１１１に対して通知する。設定制御部１１１は、ＣＲＡＭ制御部１１３から通知されるＣＲＡＭエラー発生通知信号１２８を監視して、ＣＲＡＭエラー発生通知信号１２８の受信有無によって、ＣＲＡＭエラーの発生有無を判定する（４００）。つまり、設定制御部１１１は、ＣＲＡＭエラー発生通知信号１２８を受信してＣＲＡＭの障害であるＣＲＡＭエラーを検知する。
【００４０】
設定制御部１１１は、ＣＲＡＭエラー発生通知信号１２８を受信してＣＲＡＭエラー有りと判定した場合、ＣＰＵ１１６に対してＣＲＡＭエラーが発生している旨及び、エラー回復処理中である旨を、ＦＰＧＡエラー訂正中通知信号１３０を送信して通知する（４０１）。
【００４１】
ＦＰＧＡエラー訂正中通知信号１３０を受信したＣＰＵ１１６は、制御レジスタ１０６に対するアクセスを中断する（４０２）。
次に、ＣＲＡＭ制御部１１３は、エラースキャンによってＣＲＡＭエラー発生箇所を特定し、該当箇所の正常なユーザロジック情報である正常データをユーザロジック保持部１１５から読み出し、その正常データをＣＲＡＭに設定する、つまり、ＣＲＡＭエラー発生箇所に対し上書きすることでエラー訂正を実施する。エラー訂正箇所のエラーが正常に戻ったことを確認後、ＣＲＡＭエラー訂正中通知信号１２９を送信して、設定制御部１１１に対してＣＲＡＭエラーの訂正が完了したこと、つまり、ＣＲＡＭでの障害から回復したことを通知する。設定制御部１１１は、ＣＲＡＭ制御部１１３から通知されるＣＲＡＭエラー訂正中通知信号１２９を監視して、ＣＲＡＭエラー訂正中通知信号１２９の受信有無によって、ＣＲＡＭエラーの訂正が完了したか否か（ＣＲＡＭエラー訂正完了（ＣＲＡＭエラー回復完了）か否か）を判定する。
【００４２】
設定制御部１１１は、ＣＲＡＭエラー訂正完了と判定した場合は、制御レジスタアクセス切り替え信号１２５を送信してセレクタ部１０７を制御し、メモリコントローラ部１０８から制御レジスタ１０６へのアクセスルートを確立させる（４０３）。確立後、メモリコントローラ部１０８は、メモリ１０３に保持されている制御レジスタ設定データを順次読み出し、読み出した制御レジスタ設定データを制御レジスタ１０６に順次書き込む（４０４）。ここで、制御レジスタ設定データとは、ＣＲＡＭエラーが発生する前に、制御レジスタに設定されていたデータである。
【００４３】
メモリ１０３に保持されている制御レジスタ設定データを全て制御レジスタ１０６に書き込む処理が完了した後、メモリコントローラ１０８は設定制御部１１１に対し書き込み完了通知１３７により、書き込みが完了したことを通知する。設定制御部１１１は、制御レジスタアクセス切り替え信号１２５を送信してセレクタ部１０７を制御して、ＣＰＵ１０３から制御レジスタ１０６へのアクセスルートを確立させた後、ＣＰＵ１１６に対してＣＲＡＭエラー回復処理が完了したことをＦＰＧＡエラー訂正中通知信号１３０を送信して通知する（４０５）。
【００４４】
ＦＰＧＡエラー訂正中通知信号１３０を受信して、ＣＲＡＭエラー回復処理完了通知を受けたＣＰＵ１１６は、処理４０２により中断していたＦＰＧＡ１００の制御レジスタ１０６へのアクセスを再開する（４０６）。
【００４５】
以上に示したように、実施例１においては、ＣＲＡＭエラーが発生した場合に、ハードウエア処理によりＣＲＡＭエラーの訂正後の制御レジスタへの設定処理が可能となり、初期状態に戻った制御レジスタに対して、制御レジスタ設定データを書き込むことで、エラー発生直前の設定状態に戻す処理をソフトウエア処理を介することなく、ハードウエア処理により実施可能となる。そのため、ソフトエラーによるＣＲＡＭエラーからの復旧をソフトウエア処理を介さずハードウエア処理により行うことで高速化できる。
【００４６】
（実施例２）
実施例１においては、ＦＰＧＡ１００のユーザロジック情報を格納しているＣＲＡＭ１１４へのソフトエラー発生後の訂正処理及び、初期状態となった制御レジスタの復旧処理を高速に実施する例を示した。しかし、図１に示す構成例においてソフトエラーが発生した場合に、装置が誤動作する可能性のある場所としては、ＣＲＡＭ１１４以外にもユーザロジックに定義される、制御レジスタ１０６や、ＦＰＧＡ１００の外部に配備されるメモリ１０３もそれに当たる。
【００４７】
実施例２においては、制御レジスタ１０６及びメモリ１０３にエラー（障害）が発生した場合の回復処理について図５を用いて説明する。図５は、制御レジスタ１０６及びメモリ１０３の同一データが書き込まれているアドレスにエラーが発生した場合のＦＰＧＡ１００における回復処理の動作フローチャート図である。
【００４８】
設定制御部１１１は、制御レジスタエラーチェック部１１０及び、メモリエラーチェック部１１８によるエラーチェック結果を常時監視して、制御レジスタ１０６とメモリ１０３にエラーが発生したか否かを確認している。
メモリエラーチェック部１１８では、メモリエラー監視のため、エラー回復処理等、設定制御部１１１からメモリ１０３へのアクセス制御が行われていない場合は、常にメモリ１０３の全アドレスを巡回し、例えば一般的なエラー監視手法であるパリティチェックによりエラー監視を実施する。エラー発生を検知すると、その旨の通知を設定制御部１１１に送信する。
制御レジスタエラーチェック部１１０では、レジスタエラー監視のため、エラー回復処理等、設定制御部１１１から制御レジスタ１０６へのアクセス制御が行われていない場合は、常に制御レジスタ１０６の全アドレスを巡回し、例えば一般的なエラー監視手法であるパリティチェックによりエラー監視を実施する。エラー発生を検知すると、その旨の通知を設定制御部１１１に送信する。
【００４９】
設定制御部１１１は、制御レジスタエラーチェック部１１０からの制御レジスタ１０６にエラーが発生した旨の通知の受信有無によって、制御レジスタ１０６にエラーが発生したか否かを判定する（５００）。制御レジスタ１０６にエラーが発生したと判定した場合（５００のＹｅｓ）、設定制御部１１１は、メモリエラーチェック部１１８からのメモリ１０３にエラーが発生した旨の通知の受信有無によって、メモリ１０３にエラーが発生したか否かを判定する（５２０）。メモリ１０３にエラーが発生したと判定した場合（５２０のＹｅｓ）、設定制御部１１１は、エラーが発生したアドレスが、制御レジスタ１０６とメモリ１０３の同一データが格納されているアドレスであるか否かを判定し、同一データが格納されているアドレスである場合、つまり、制御レジスタ１０６とメモリ１０３の対応するアドレスに同時にエラーが発生した場合は、ＣＰＵ１１６に対して制御レジスタ１０６のエラーを復旧するよう要求するエラー復旧要求１３４をＣＰＵ１１６に対して通知し、ＣＰＵ１１６によって、制御レジスタ１０６のエラーが回復する（５２１）。
【００５０】
設定制御部１１１は、エラー回復が完了したか否かを判定し（５４０）、完了していない場合（５４０のＮｏ）、本フローを繰り返す。完了した場合（５４０のＹｅｓ）、本フローを終了する。
【００５１】
メモリ１０３にエラーが発生していないと判定した場合（５２０のＮｏ）、設定制御部１１１は、ＦＰＧＡ１００内部でエラー訂正処理中であることをＦＰＧＡエラー訂正中通知信号１３０によりＣＰＵ１１６に通知し、制御レジスタエラーチェック部１１０のエラーチェック結果を制御レジスタエラー情報通知信号１２６を介して受信することでエラーが発生した制御レジスタ１０６のアドレス（エラー発生制御レジスタアドレス）を特定し、メモリコントローラ部１０８に対しメモリ・レジスタアクセス要求・アクセス情報信号１２４を送信することで、メモリコントローラ部１０８がエラー発生制御レジスタアドレスに対応したメモリ１０３のアドレスに格納されたデータを読み出し、読み出したデータを正常なデータとして、エラー発生制御レジスタアドレスに対して書き込むことにより制御レジスタ１０６のエラーを回復する（５２２）。その後、処理５４０へ進む。
【００５２】
制御レジスタ１０６にエラーが発生していないと判定した場合（５００のＮｏ）、設定制御部１１１は、メモリエラーチェック部１１８からのメモリ１０３にエラーが発生した旨の通知の受信有無によって、メモリ１０３にエラーが発生したか否かを判定する（５３０）。メモリ１０３にエラーが発生したと判定した場合（５３０のＹｅｓ）、設定制御部１１１は、ＦＰＧＡ１００内部でエラー訂正処理中であることをＣＰＵ１１６に通知し、メモリエラーチェック部１１８のエラーチェック結果を制御メモリエラー情報通知信号１２７を介して受信することでエラーが発生したメモリ１０３のアドレス（エラー発生メモリアドレス）を特定し、メモリコントローラ部１０８に対しメモリ・レジスタアクセス要求・アクセス情報信号１２４を送信することで、メモリコントローラ部１０８がエラー発生メモリアドレスに対応した制御レジスタ１０６のアドレスに格納されたデータを読み出し、読み出したデータを正常なデータとして、エラー発生メモリアドレスに対して書き込むことでメモリ１０３のエラーを回復する（５３１）。その後、処理５４０へ進む。
【００５３】
なお、メモリ１０３のエラー判定の後に制御レジスタ１０６のエラー判定を行ってもよい。また、制御レジスタ１０６とメモリ１０３のエラーが同時に発生しても、対応するアドレスのエラー（同一データのエラー）でない場合は、処理５２２の実施後、処理５３１を実施する、または、処理５３１の実施後、処理５２２を実施することで、制御レジスタ１０６と、メモリ１０３双方のエラーを回復してもよい。
【００５４】
次に、図６〜図８を用いて、図５のＦＰＧＡ１００における回復処理を実行するシーケンスについて説明する。
図６は、制御レジスタ１０６とメモリ１０３の同一アドレスにエラーが発生した場合におけるシーケンス図である。図５の処理５２１に対応し、各動作を詳細に説明する。
【００５５】
設定制御部１１１は、レジスタエラー復旧要求信号１３４を送信して、ＣＰＵ１１６に対して制御レジスタ１０６のエラーを復旧するよう要求するエラー復旧要求を通知する（５１３）。ＣＰＵ１１６は、レジスタエラー復旧要求信号１３４を受信すると、ＣＰＵバス１２０を介し、制御レジスタ１０６のエラー発生箇所を特定し、特定したエラー発生箇所のアドレスに対して正常なデータを書き込む。つまり、制御レジスタ１０６のエラー発生箇所を検索し、エラー発生箇所に対してソフトウエア部１０４が保持している正常なデータを書き込む（５１４）。エラー発生箇所の検索は、例えば、制御レジスタエラーチェック部１１０がエラーを検出した場合、ユーザロジックのステータスを表示するレジスタ（ステータス表示レジスタ）等に、エラー発生アドレスを表示し、ステータス表示レジスタをＣＰＵ１１６が読み出す等の手法が可能であるが、これに限られない。
【００５６】
ＣＰＵ１１６によって、正常データが制御レジストリ１０６のエラーが発生したアドレスに書き込まれることにより、制御レジスタ１０６のエラーが回復する。
設定制御部１１１は、制御レジスタエラーチェック部１１０より制御レジスタエラー情報通知信号１２６を受信することで制御レジスタ１０６のエラーが回復したことを検出する（５１５）。その後、設定制御部１１１は、エラー回復が完了したか否かを判定し（５４０）、メモリ１０３のエラー回復が完了していないため、処理５３１を実行してメモリ１０３のエラーも回復する。
【００５７】
図７は、制御レジスタ１０６にエラーが発生した場合におけるシーケンス図である。図５の処理５２２に対応し、各動作を詳細に説明する。
設定制御部１１１は、ＦＰＧＡエラー訂正中通知信号１３０を送信してＦＰＧＡ１００内部でエラー訂正処理中であることをＣＰＵ１１６に通知する（５０１）。つまり、設定制御部１１１は、ＣＰＵ１１６に対して、制御レジスタ１０６に対するアクセスを停止するよう通知するＦＰＧＡエラー訂正中通知信号１３０を送信する。ＦＰＧＡエラー訂正中通知信号１３０は、ＦＰＧＡ１００内部でエラー（障害）が発生している旨を通知することにもなるので、ＦＰＧＡ障害発生信号１３０とも呼ぶ。
【００５８】
通知を受けたＣＰＵ１１６は、制御レジスタ１０６に対するアクセスを中断する（５０２）。
次に、設定制御部１１１は、制御レジスタアクセス切り替え信号１２５を送信してセレクタ部１０７を制御して、メモリコントローラ部１０８から制御レジスタ１０６へのアクセスルートを確立する。確立後、設定制御部１１１は、制御レジスタエラー情報通知信号１２６を受信して、制御レジスタエラーチェック部１１０からエラーが発生した制御レジスタ１０６のアドレス（エラー発生制御レジスタアドレス）を取得する（５０３）。
【００５９】
設定制御部１１１は、エラー発生制御レジスタアドレスを取得した後、制御レジスタ１０６のエラー発生制御レジスタアドレスに対応したメモリ１０３のアドレスに格納されたデータを読み出すメモリデータ読み出し要求を、メモリ・レジスタアクセス要求・アクセス情報信号１２４を送信してメモリコントローラ部１０８に通知する。メモリコントローラ部１０８は、メモリ・レジスタアクセス要求・アクセス情報信号１２４を受信すると、メモリ１０３のエラー発生制御レジスタアドレスに対応するアドレスに格納されたデータを読み出し、読み出したデータをエラー発生制御レジスタアドレスに対して書き込みを行う（５０４）。
【００６０】
メモリ１０３から読み出した正常なデータをエラーが発生した制御レジスタ１０６のアドレスに書き込むことで、エラーを回復することができる。制御レジスタ１０６に対するデータ書き込み完了後は、ＣＰＵ１１６からのアクセスに備え、設定制御部１１１が、制御レジスタアクセス切り替え信号１２５を送信して、セレクタ部１０７を制御することで、ＣＰＵ１１６から制御レジスタ１０６へのアクセスルートを確立させる。その後、設定制御部１１１は、ＣＰＵ１１６に対して、ＦＰＧＡエラー訂正中通知信号１３０を送信してエラー訂正処理が完了したことを通知する（５０５）。これにより、ＣＰＵ１１６は、制御レジスタ１０６へのアクセスを再開する（５０６）。つまり、設定制御部１１１は、ＣＰＵ１１６に対して、制御レジスタ１０６に対するアクセスを再開するよう通知するＦＰＧＡエラー訂正中通知信号１３０を送信する。ＦＰＧＡエラー訂正中通知信号１３０は、ＦＰＧＡ１００内部で発生したエラー（障害）が回復した旨を通知することにもなるので、ＦＰＧＡ障害回復信号１３０とも呼ぶ。
【００６１】
なお、ＦＰＧＡ１００内部でのエラーの発生を通知する信号であるＦＰＧＡエラー訂正中通知信号１３０と同じ信号を、ＦＰＧＡ１００内部でのエラー訂正処理が完了したことを通知する信号に用いているが、別の信号を用いてもよい。
【００６２】
図８は、メモリ１０３にエラーが発生した場合におけるシーケンス図である。図５の処理５３１に対応し、各動作を詳細に説明する。
設定制御部１１１は、ＦＰＧＡエラー訂正中通知信号１３０を送信してＦＰＧＡ１００内部でエラー訂正処理中であることをＣＰＵ１１６に通知する（５０７）。
【００６３】
通知を受けたＣＰＵ１１６は、制御レジスタ１０６に対するアクセスを中断する（５０８）。
次に、設定制御部１１１は、制御レジスタアクセス切り替え信号１２５を送信してセレクタ部１０７を制御することで、メモリコントローラ部１０８から制御レジスタ１０６へのアクセスルートを確立する。確立後、メモリエラー情報通知信号１２７を受信してメモリエラーチェック部１１８からエラーが発生したメモリ１０３のアドレス（エラー発生メモリアドレス）を取得する（５０９）。
【００６４】
設定制御部１１１は、エラー発生メモリアドレスを取得した後、メモリ１０３のエラー発生メモリアドレスに対応した制御レジスタ１０６のアドレスに格納されたデータを読み出す制御レジスタデータ読み出し要求を、メモリ・レジスタアクセス要求・アクセス情報信号１２４を送信してメモリコントローラ部１０８に通知する。メモリコントローラ部１０８は、メモリ・レジスタアクセス要求・アクセス情報信号１２４を受信すると、制御レジスタ１０６のエラー発生メモリアドレスに対応するアドレスに格納されたデータを読み出し、読み出したデータをメモリ１０３のエラー発生メモリアドレスに対して書き込みを行う（５１０）。制御レジスタ１０６から読み出した正常なデータをエラーが発生したメモリ１０３のアドレスに書き込むことで、エラーを回復することができる。メモリ１０３に対するデータ書き込み完了後は、ＣＰＵ１１６からのアクセスに備え、設定制御部１１１が、制御レジスタアクセス切り替え信号１２５を送信して、セレクタ部１０７を制御することで、ＣＰＵ１１６から制御レジスタ１０６へのアクセスルートを確立させる。その後、設定制御部１１１は、ＣＰＵ１１６に対して、ＦＰＧＡエラー訂正中通知信号１３０を送信してエラー訂正処理が完了したことを通知する（５１１）。この通知を受け、ＣＰＵ１１６は、制御レジスタ１０６へのアクセスを再開する（５１２）。
【００６５】
以上に示したように、実施例２においては、制御レジスタ１０６とメモリ１０３にエラーが発生した場合に、ハードウエア処理によりエラーの訂正が可能となる。そのため、ソフトエラーによるエラーからの復旧をソフトウエア処理を介さずハードウエア処理により行うことで高速化できる。
【００６６】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
【００６７】
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えばＦＰＧＡのような集積回路で設計する等によりハードウエアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウエアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（ＳｏｌｉｄＳｔａｔｅＤｒｉｖｅ）等の記録装置、または、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００６８】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００６９】
１００  ＦＰＧＡ
１０１  監視制御部
１０２  ユーザロジック部
１０３  メモリ
１０４  ソフトウエア部
１０５  機能部
１０６  制御レジスタ部
１０８  メモリコントローラ部
１０９  バスモニタ部
１１０  制御レジスタエラーチェック部
１１１  設定制御部
１１２  エラー訂正・復旧処理ブロック群
１１３  ＣＲＡＭ制御部 
１１４  ユーザロジック情報一時保持部（ＣＲＡＭ）
１１５  ユーザロジック情報外部保持部
１１８  メモリエラーチェック部
【図１】
2015216507.tif 000003
【図２】
2015216507.tif 000004
【図３】
2015216507.tif 000005
【図４】
2015216507.tif 000006
【図５】
2015216507.tif 000007
【図６】
2015216507.tif 000008
【図７】
2015216507.tif 000009
【図８】
2015216507.tif 000010