(57)【要約】【課題】ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録する。【解決手段】内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスから、ソフトエラーの発生を示す信号を受信した場合に、ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ書き込む制御手段を備えたプログラマブルロジックデバイスであって、プログラマブルロジックデバイスはデバイスと別体である。【選択図】      図８
2018022277.tif 000002
【特許請求の範囲】
【請求項１】
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスから、前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む制御手段
を備えたプログラマブルロジックデバイスであって、
前記プログラマブルロジックデバイスは前記デバイスと別体である
プログラマブルロジックデバイス。
【請求項２】
前記ソフトエラー情報のバイト長は、前記不揮発性メモリにおけるセクタ長の倍数であり、
前記制御手段は、前記不揮発性メモリにおける前記ソフトエラー情報の書き込みを、前記セクタ長を単位として行う
請求項１に記載のプログラマブルロジックデバイス。
【請求項３】
前記制御手段は、
起動時及び前記ソフトエラー情報を前記記憶領域へ書き込んだ後に、書き込まれている前記ソフトエラー情報を前記不揮発性メモリから読み出すことと、
前記不揮発性メモリから読み出した前記ソフトエラー情報の個数を出力することと
を更に行う
請求項１又は請求項２に記載のプログラマブルロジックデバイス。
【請求項４】
前記制御手段は、前記不揮発性メモリにおいて書き込み可能な前記ソフトエラー情報の個数を所定の上限値以下に制限し、前記ソフトエラー情報の個数が前記上限値に達した後には、前記不揮発性メモリにおける前記ソフトエラー情報の書き込みを停止する
請求項１乃至３のいずれか１項に記載のプログラマブルロジックデバイス。
【請求項５】
前記制御手段は、
前記ソフトエラー情報の個数を出力する際に、前記ソフトエラー情報が書き込まれていない前記記憶領域のうち、最も先頭側のアドレスを保持し、
前記ソフトエラー情報を前記不揮発性メモリに含まれる複数の前記記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域へ次に書き込む際に、前記ソフトエラー情報を前記不揮発性メモリにおける、保持している前記アドレスにより示される前記記憶領域へ書き込む
請求項１乃至４のいずれか１項に記載のプログラマブルロジックデバイス。
【請求項６】
前記不揮発性メモリにおける前記ソフトエラー情報の記憶可能領域において、前記記憶可能領域の初期状態、又は前記記憶可能領域内の全セクタにおける消去直後において、前記記憶可能領域内の全セクタ内の全てのビットは１であり、
前記制御手段は、前記ソフトエラー情報として、全てのビットが０であるバイト単位のデータを書き込む
請求項１乃至５のいずれか１項に記載のプログラマブルロジックデバイス。
【請求項７】
前記制御手段は、前記不揮発性メモリにおける前記ソフトエラー情報を記憶可能な全セクタにおける消去を指示する信号を受信した場合に、前記不揮発性メモリにおける前記ソフトエラー情報を記憶可能な全セクタにおける消去を行う
請求項１乃至６のいずれか１項に記載のプログラマブルロジックデバイス。
【請求項８】
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、
不揮発性メモリと、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む制御手段を含む
プログラマブルロジックデバイスとを備えた情報処理装置であって、
前記プログラマブルロジックデバイスは前記デバイスと別体である
情報処理装置。
【請求項９】
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、前記デバイスと別体であるプログラマブルロジックデバイスは、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む
ソフトエラー記録方法。
【請求項１０】
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、前記デバイスと別体であるプログラマブルロジックデバイスに、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む処理を実行させるソフトエラー記録プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを記録する技術に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Field Programmable Gate Array）などのプログラマブルデバイス（ＰＬＤ：Programmable Logic Device）において、実装の高密度化に伴い、ソフトエラーの影響が顕著になってきている。例えば、ＦＰＧＡにおけるソフトエラーとは、環境放射線によって生じるＣＲＡＭ（Configuration Random Access Memory）のビット状態の予期しない変化のことである。ＰＬＤには、ソフトエラーに起因して、回路動作の正常性や、保持するデータの正常性が保証されないという問題がある。
【０００３】
ソフトエラーを修復する技術の一例が、特許文献１に開示されている。特許文献１のＦＰＧＡ監視制御回路は、ＦＰＧＡに内蔵されたＣＲＣ（Cyclic Redundancy Check）チェッカと、ＦＰＧＡに外付けされたＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）と、ＦＰＧＡに内蔵された制御回路とを含む。ＣＲＣチェッカは、ＣＲＡＭの記憶データにおけるエラーを検出する。ＥＥＰＲＯＭは、ＣＲＣチェッカによりエラーが検出された際に、エラー検出情報と検出日時情報とを記録する。制御回路は、ＥＥＰＲＯＭにエラー検出情報を記録した際に、外部にエラー発生を表示する。更に、制御回路は、エラー検出情報に基づいてＦＰＧＡの再構築処理が必要か否かを判定する。そして、再構築処理が必要な場合には、制御回路は、ＦＰＧＡに外付けされたＣＰＬＤ（Complex Programmable Logic Device）に、ＣＲＡＭに記憶されているコンフィグレーションデータに基づいて再構築処理を実行させる。
【０００４】
しかしながら、ＦＰＧＡは、ソフトエラーを訂正する機能を有しないものが多い。ソフトエラー訂正機能を有しないＦＰＧＡが搭載された電子装置では、ソフトエラーに起因する電子装置の障害が発生した場合に、障害の原因がソフトエラーであると特定することが困難である。また、ソフトエラー訂正機能を有しないＦＰＧＡが搭載された電子装置では、電源の再投入などに伴いＦＰＧＡが再コンフィグレーションされると、障害の原因であったソフトエラーが消滅してしまう。そのため、電子装置をメーカへ戻入して障害を調査するような場合に、戻入後に障害が再現せず、障害の原因が特定できないことがある。
【０００５】
そこで、ソフトエラーを訂正する機能を有しないＦＰＧＡに、ソフトエラーの検出及び記録の機能を、安価に追加することが求められている。ソフトエラーを訂正する機能を有しないＦＰＧＡに、ソフトエラーの検出及び記録の機能を追加する場合には、追加される部品について、部品数が少なく、サイズが小型で、価格が安いことが望ましい。なお、ソフトエラーの検出には、各ＦＰＧＡメーカからリリースされているＩＰコア（Intellectual Property Core）を利用することができることが多い。
【０００６】
しかしながら、ソフトエラーが発生したＦＰＧＡを使用して障害情報を記録・保持する場合には、障害が内在しているＦＰＧＡが使用されるので、障害情報の記録・保持に関する信頼性が低いという問題がある。
【０００７】
ソフトエラーが発生したＦＰＧＡとは別の装置によりソフトエラーを修復する技術の一例が、特許文献２に開示されている。特許文献２の障害修復装置は、ＦＰＧＡのソフトエラーを修復する。ＦＰＧＡは、回路素子と、構成データを格納する更新可能なメモリ（ＣＲＡＭ）とを含む。ＦＰＧＡの論理動作は、構成データにより定義される。特許文献２の障害修復装置は、検出手段と、記憶手段と、特定手段と、訂正手段と、カウント手段とを含む。検出手段は、ＦＰＧＡの障害を検出して障害情報を出力する。記憶手段は、障害情報に関係する構成データの記述が、メモリが包含する複数のメモリ領域の何れに存在するかについて、メモリ領域の識別情報と対応付けた障害領域特定テーブルを記憶する。特定手段は、障害情報と、障害領域特定テーブルとに基づいて、障害が発生したメモリ領域である障害発生メモリ領域を特定する。訂正手段は、障害発生メモリ領域に格納された構成データについて、構成データのエラー検出訂正符号データを基に、期待値と一致しないエラーデータを検出して訂正する。カウント手段は、障害発生メモリ領域ごとの障害発生回数をカウントする。上記構成の結果、特許文献２の障害修復装置は、ＦＰＧＡの障害の検出と修復を、構成データを格納したメモリの障害発生箇所に絞り込んで行う。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−０５２７８１号公報
【特許文献２】特開２０１４−１６７７０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２の障害修復装置は、障害の検出及び修復を行う。そのため、特許文献２の障害修復装置では、ソフトエラーの検出及び記録のみを行う場合に比べて、より複雑な処理が必要である。すなわち、ソフトエラーの検出及び記録のみを行う場合に比べて、障害修復装置に必要な回路規模が大きい。従って、特許文献２の障害修復装置には、障害修復装置が高価であるという問題がある。
【００１０】
本発明は、上記の課題に鑑みてなされたもので、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録することを主たる目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様において、プログラマブルロジックデバイスは、内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスから、ソフトエラーの発生を示す信号を受信した場合に、ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ書き込む制御手段を備えたプログラマブルロジックデバイスであって、プログラマブルロジックデバイスはデバイスと別体である。
【００１２】
本発明の一態様において、情報処理装置は、内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリと、デバイスからソフトエラーの発生を示す信号を受信した場合に、ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ書き込む制御手段を含むプログラマブルロジックデバイスとを備えた情報処理装置であって、プログラマブルロジックデバイスはデバイスと別体である。
【００１３】
本発明の一態様において、ソフトエラー記録方法は、内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、デバイスと別体であるプログラマブルロジックデバイスは、デバイスからソフトエラーの発生を示す信号を受信した場合に、ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ書き込む。
【００１４】
本発明の一態様において、ソフトエラー記録プログラム又は、係るソフトエラー記録プログラムが格納された記録媒体は、内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、デバイスと別体であるプログラマブルロジックデバイスに、デバイスからソフトエラーの発生を示す信号を受信した場合に、ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ書き込む処理を実行させる。
【発明の効果】
【００１５】
本発明によれば、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録することができるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態における情報処理装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態におけるフラッシュメモリからの読み出し動作の一例を示すタイミングチャートである。
【図３】本発明の第１の実施形態におけるフラッシュメモリへの書き込み動作の一例を示すタイミングチャートである。
【図４】本発明の第１の実施形態におけるフラッシュメモリに対する消去動作の一例を示すタイミングチャートである。
【図５】本発明の第２の実施形態における情報処理装置の構成の一例を示すブロック図である。
【図６】本発明の第２の実施形態におけるフラッシュメモリからの読み出し動作の一例を示すタイミングチャートである。
【図７】本発明の第２の実施形態におけるフラッシュメモリへの書き込み動作の一例を示すタイミングチャートである。
【図８】本発明の第３の実施形態における情報処理装置の構成の一例を示すブロック図である。
【図９】本発明の各実施形態における情報処理装置を実現可能なハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等な構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
本実施形態では、エラー記録用のＣＰＬＤが、ＦＰＧＡに含まれるＣＲＡＭにおけるソフトエラーを記録する。
【００１８】
本実施形態における構成について説明する。
【００１９】
図１は、本発明の実施形態における情報処理装置の構成の一例を示すブロック図である。本実施形態の情報処理装置５００は、ＦＰＧＡ２００と、エラー記録用のＣＰＬＤ１００とを含む。ＣＰＬＤ１００は、ＦＰＧＡ２００に接続される。
【００２０】
ＦＰＧＡ２００は、ソフトエラー発生の監視対象であるＣＲＡＭ２１０を含む。ＣＲＡＭ２１０は、複数の記憶領域を含む。ＦＰＧＡ２００は、ＣＲＡＭ２１０におけるソフトエラー発生の有無を示す信号（以下、「ソフトエラー信号」と称す）を出力する。ソフトエラー信号は、ＣＲＡＭ２１０におけるソフトエラーが発生した記憶領域を表す情報等を含んでもよい。以下では、ソフトエラー信号は、ソフトエラーが発生したことを示す値‘１’と、ソフトエラーが発生していないことを示す値‘０’との２値を取る例について説明する。なお、ＦＰＧＡ２００は、例えばＣＲＣチェッカを備えており、ＣＲＡＭ２１０におけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しない。
【００２１】
ＣＰＬＤ１００は、製造後に内部論理回路を定義・変更できる集積回路である。ＣＰＬＤ１００は、ソフトエラー検出部１１０と、フラッシュメモリインタフェース部１２０と、フラッシュメモリ１３０と、読み出しデータ確認部１４０とを含む。
【００２２】
ソフトエラー検出部１１０と、フラッシュメモリインタフェース部１２０と、読み出しデータ確認部１４０とは、ＣＰＬＤ１００の製造後に定義された内部論理回路を含む。ＣＰＬＤ１００は、一般的に、書き込み可能な回路規模が小さいほど安価である。また、実装される処理がより簡略であるほど、処理の実装に必要な回路規模はより小さい。そのため、ソフトエラー検出部１１０、フラッシュメモリインタフェース部１２０、及び読み出しデータ確認部１４０は、処理がより簡略であるほど、より安価なＣＰＬＤ１００を用いて実装可能である。
【００２３】
ソフトエラー検出部１１０は、ＦＰＧＡ２００からソフトエラー信号を受信し、受信したソフトエラー信号に基づいて、ソフトエラーの有無を判断する。そして、ソフトエラー検出部１１０は、ソフトエラーが発生した場合には、フラッシュメモリインタフェース部１２０へソフトエラーの記録を指示する信号（以下、「ソフトエラー記録指示」と称す）を出力する。
【００２４】
フラッシュメモリ１３０は、複数の記憶領域を含む。フラッシュメモリ１３０は、ＦＰＧＡ２００においてソフトエラーが発生したことを表す情報（以下、「ソフトエラー情報」と称す）を保持することができる。フラッシュメモリ１３０は、一般的に、記憶容量が小さいほど安価である。そのため、フラッシュメモリ１３０は、ソフトエラー情報の保持に必要な記憶容量がより小さいほど、より安価に実装可能である。なお、フラッシュメモリ１３０は、ソフトエラー情報以外の情報を保持してもよい。また、フラッシュメモリ１３０は、ＣＰＬＤ１００に外付けされてもよい。
【００２５】
フラッシュメモリインタフェース部１２０は、ソフトエラー検出部１１０からソフトエラー記録指示を受信した場合には、フラッシュメモリ１３０に含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ、ソフトエラー情報を書き込む。ソフトエラー情報は、ソフトエラーが発生した日時を表す情報や、ＣＲＡＭ２１０におけるソフトエラーが発生した記憶領域を表す情報等を含んでもよい。
【００２６】
更に、フラッシュメモリインタフェース部１２０は、ＣＰＬＤ１００が起動された後と、フラッシュメモリ１３０にソフトエラー情報の書き込みを行った後とに、フラッシュメモリ１３０からソフトエラー情報を読み出す。
【００２７】
読み出しデータ確認部１４０は、フラッシュメモリインタフェース部１２０によってフラッシュメモリ１３０から読み出されたソフトエラー情報の個数に基づいて、ソフトエラーの発生回数を示す信号（以下、「ソフトエラー発生回数」と称す）をＣＰＬＤ１００の外部へ出力する。
【００２８】
本実施形態における動作について説明する。
【００２９】
なお、以下では、フラッシュメモリ１３０におけるソフトエラー情報の記憶可能領域（以下、「ソフトエラー情報記憶領域」と称す）において、記憶可能領域の初期状態、又は記憶可能領域内の全セクタにおける消去直後において、記憶可能領域内の全セクタ内の全てのビットは‘１’である例について説明する。また、以下では、ソフトエラー情報は、全ビットが‘０’である２バイトのビット列で表される例について説明する。
【００３０】
ＣＰＬＤ１００が電源投入やリセット等に応じて起動されると、フラッシュメモリインタフェース部１２０は、フラッシュメモリ１３０からソフトエラー情報を読み出す。この際、フラッシュメモリインタフェース部１２０は、フラッシュメモリ１３０におけるソフトエラー情報記憶領域において、先頭アドレスから昇順に、１つのソフトエラー情報記憶領域に記録されたバイト列を読み出す。読み出されたバイト列は、１つずつ読み出しデータ確認部１４０へ渡される。
【００３１】
読み出しデータ確認部１４０は、上述の読み出されたバイト列のうち、全ビット‘１’（ソフトエラー情報なし）であるバイト列が格納されている、ソフトエラー情報記憶領域における最も先頭側のアドレスを、次にソフトエラー情報を書き込むためのアドレス（以下、「次回書き込みアドレス」と称す）として保持する。即ち、次回書き込みアドレス以降のアドレスには、ソフトエラー情報が書き込まれていない。そして、次回書き込みアドレスは、ソフトエラー情報記憶領域における、ソフトエラー情報が書き込まれていない最も先頭側のアドレスを表す。
【００３２】
更に、読み出しデータ確認部１４０は、バイト列が全ビット‘０’であるバイト列（ソフトエラー情報あり）が読み出された回数を示す信号（ソフトエラー発生回数）をＣＰＬＤ１００の外部へ出力する。
【００３３】
ソフトエラー検出部１１０は、ＦＰＧＡ２００からソフトエラー信号を受信し、受信したソフトエラー信号が‘０’である間、ソフトエラー信号の変化を待ち受ける。そして、ソフトエラー検出部１１０は、ソフトエラー信号が‘０’から‘１’に変化した場合に、ソフトエラーが検出されたと判断して、フラッシュメモリインタフェース部１２０にソフトエラー情報の書き込みを指示する信号（以下、「書き込み指示」と称す）を出力する。
【００３４】
フラッシュメモリインタフェース部１２０は、書き込み指示を受信した場合に、保持されている次回書き込みアドレスが示す、フラッシュメモリ１３０中の記憶領域へ、ソフトエラー情報を書き込む。
【００３５】
フラッシュメモリ１３０へソフトエラー情報が書き込まれた後に、フラッシュメモリインタフェース部１２０は、フラッシュメモリ１３０からソフトエラー情報を読み出す。この際、フラッシュメモリインタフェース部１２０は、フラッシュメモリ１３０におけるソフトエラー情報記憶領域において、先頭アドレスから昇順に、１つのソフトエラー情報記憶領域に記録されたバイト列を読み出す。読み出されたバイト列は、１つずつ読み出しデータ確認部１４０へ渡される。
【００３６】
読み出しデータ確認部１４０は、読み出されたバイト列のうち、全ビット‘１’（ソフトエラー情報なし）であるバイト列が格納されている、ソフトエラー情報記憶領域における最も先頭側のアドレスを次回書き込みアドレスとして保持する。
【００３７】
更に、読み出しデータ確認部１４０は、ソフトエラー発生回数をＣＰＬＤ１００の外部へ出力する。
【００３８】
フラッシュメモリ１３０は不揮発性メモリであるので、ＣＰＬＤ１００の電源が切断された場合や、ＣＰＬＤ１００がリセットされた場合であっても、フラッシュメモリ１３０に記録されたソフトエラー情報は消去されない。そのため、ＣＰＬＤ１００の電源が切断された場合や、ＣＰＬＤ１００がリセットされた場合であっても、読み出しデータ確認部１４０は、ＣＰＬＤ１００の起動時に、ソフトエラー発生回数を出力することが可能である。
【００３９】
本実施形態におけるＣＰＬＤ１００は、フラッシュメモリ１３０に記録されたソフトエラー情報を消去可能であってよい。その場合には、情報処理装置５００はスイッチ３００を含み、ＣＰＬＤ１００はスイッチ３００に接続される。スイッチ３００は、スイッチ３００の操作に応じて、「フラッシュメモリ初期化信号」を切り替える。以下、フラッシュメモリ初期化信号では、例えば、値‘１’が「初期化不実行」を、値‘０’が「初期化実行」を示すものとする。
【００４０】
フラッシュメモリ１３０に記録されたソフトエラー情報を消去する場合には、スイッチ３００は、フラッシュメモリ初期化信号として値‘０’をＣＰＬＤ１００へ出力する。フラッシュメモリインタフェース部１２０は、フラッシュメモリ初期化信号として値‘０’を受信した場合には、フラッシュメモリ１３０に記録されたソフトエラー情報を消去する。消去により、フラッシュメモリ１３０のソフトエラー情報の記憶可能領域は初期化され、ソフトエラー情報の記憶可能領域における全アドレスの全ビットが‘１’になる。フラッシュメモリ初期化信号の切り替えがスイッチ３００で行われる場合には、ソフトエラー情報がＣＰＬＤ１００の誤動作により消去されることを防止することができる。例えば、ＣＰＬＤ１００の保守時にのみ、スイッチ３００が‘０’出力側になるよう操作されて、ソフトエラー情報の消去が行われる。
【００４１】
上述したフラッシュメモリ１３０へのソフトエラー情報の、読み出し、書き込み、消去の具体的な動作の一例について説明する。なお、以下では、フラッシュメモリ１３０が内蔵されたＣＰＬＤ１００の動作について、図２乃至４を用いて説明する。
【００４２】
本動作例では、ＣＰＬＤ１００とフラッシュメモリ１３０との間のインタフェースは、アドレス信号とデータ信号とが分離されているシリアルインタフェースである。このシリアルインタフェースは、シリアルアドレス入力制御用にアドレスシフト信号及びアドレスクロック信号を有し、シリアルデータ入力制御用及びシリアルデータ出力制御用に、データシフト信号及びデータクロック信号を有する。シリアルアドレス、シリアルデータ共に、エンディアンはＭＳＢ（Most Significant Bit）ファーストである。また、アドレス長は９ビット、データ長は１６ビットである。また、このシリアルインタフェースは、書き込み制御用にプログラム信号を有し、消去制御用にイレース信号を有する。なお、このシリアルインタフェースでは、書き込み中又は消去中には、ビジー信号‘１’がフラッシュメモリ１３０から出力される。なお、特に断らない限り、各信号は正論理であるものとして説明するが、本実施形態における信号は正論理には限定されず、負論理であってもよい。
＜読み出し動作＞
図２乃至４において、「ＣＰＬＤクロック」はＣＰＬＤ１００のクロック信号であり、「制御カウンタ」はＣＰＬＤクロックにおけるタイミングを示すカウンタである。以下の説明では、動作のタイミングを、制御カウンタの値を用いて特定する。なお、図２乃至４において、制御カウンタの一部の値は省略されている。
【００４３】
図２は、本発明の第１の実施形態におけるフラッシュメモリからの読み出し動作の一例を示すタイミングチャートである。図２において、「リセット」はＣＰＬＤ１００に対するリセット信号を示す。
【００４４】
ＣＰＬＤ１００からフラッシュメモリ１３０へ「フラッシュメモリ入力信号」が出力される。フラッシュメモリ１３０からＣＰＬＤ１００へ「フラッシュメモリ出力信号」が出力される。フラッシュメモリ入力信号は、「アドレスシフト信号」と、「アドレスクロック信号」と、「アドレス信号」と、「データシフト信号」と、「データクロック信号」と、「書き込みデータ信号」（図３、４）と、「プログラム信号」（図３）と、「イレース信号」（図４）とを含む。フラッシュメモリ出力信号は、「読み出しデータ信号」と、「ビジー信号」とを含む。
●アドレスシフト信号は、アドレス信号を有効にする信号である。
●アドレスクロック信号は、アドレス信号のタイミングを規定する信号である。
●アドレス信号は、アドレスをシリアル入力する信号である。
●データシフト信号は、フラッシュメモリからのデータの読み出しを制御する信号である。
●データクロック信号は、書き込みデータ信号のタイミング、及び読み出しデータ信号のタイミングを規定する信号である。
●書き込みデータ信号は、フラッシュメモリへ書き込むべきデータをシリアル入力する信号である。
●プログラム信号は、フラッシュメモリへのデータの書き込みを制御する信号である。
●イレース信号は、フラッシュメモリの消去を制御する信号である。
●読み出しデータ信号は、フラッシュメモリから読み出されたデータをシリアル出力する信号である。
●ビジー信号は、フラッシュメモリにおいてデータを書き込み中又は消去中であることを示す信号である。
【００４５】
ＣＰＬＤ１００は、ＣＰＬＤ１００の起動後、又はフラッシュメモリ１３０へのソフトエラー情報の書き込み後に、フラッシュメモリ１３０からソフトエラー情報を読み出す。
【００４６】
制御カウンタが０のとき：
●ソフトエラー検出部１１０は、リセット信号の‘０’から‘１’への変化を検出する。
【００４７】
制御カウンタが１〜９のとき：
●フラッシュメモリインタフェース部１２０は、リセット信号の‘０’から‘１’への変化を検出すると、アドレスシフト信号を‘０’から‘１’へ変化させる。
●フラッシュメモリインタフェース部１２０は、アドレスシフト信号が‘１’である間、アドレスクロック信号の立ち上がり毎に、アドレス信号（‘０’）を１ビットずつフラッシュメモリへ出力する。
●制御カウンタ９において、９ビットのアドレス“０＿００００＿００００”がフラッシュメモリにセットされる。
【００４８】
制御カウンタが１０のとき：
●フラッシュメモリインタフェース部１２０は、アドレスシフト信号を‘１’から‘０’へ変化させる。
●データシフト信号が‘０’で、且つデータクロック信号の立ち上がりの際に、制御カウンタ９においてセットされたアドレスのデータが、フラッシュメモリ１３０内のデータレジスタ（不図示）にセットされる。
●フラッシュメモリ１３０は、制御カウンタ９でセットされたアドレスを１だけ増加させる。
【００４９】
制御カウンタが１１〜２６のとき：
●フラッシュメモリインタフェース部１２０は、データシフト信号を‘０’から‘１’へ変化させる。
●フラッシュメモリ１３０内のデータレジスタにセットされたデータは、データシフト信号が‘１’である間、データクロック信号の立ち上がり毎に１ビットずつ、読み出しデータ信号として出力される。
●制御カウンタ２６において、１６ビットのデータが出力される。読み出しデータ確認部１４０は、出力された１６ビットのデータの全ビットが‘１’である場合には、ソフトエラー情報なしと判断する。読み出しデータ確認部１４０は、出力された１６ビットのデータの全ビットが‘０’である場合には、ソフトエラー情報ありと判断して「ソフトエラーカウンタ」を１だけ増加させる。ソフトエラーカウンタは、フラッシュメモリに記憶されているソフトエラー情報の個数、即ちソフトエラー発生回数を示すカウンタである。
【００５０】
制御カウンタが２７のとき：
●フラッシュメモリインタフェース部１２０は、データシフト信号を‘１’から‘０’へ変化させる。
●制御カウンタ１０においてフラッシュメモリ１３０によりセットされたアドレスのデータは、データシフト信号が‘０’で、且つデータクロック信号の立ち上がりの際に、フラッシュメモリ内のデータレジスタにセットされる。
【００５１】
制御カウンタが２８〜２８１のとき：
●フラッシュメモリ１３０内のデータレジスタにセットされたデータは、データシフト信号が‘１’である間、データクロック信号の立ち上がり毎に１ビットずつ、読み出しデータ信号として出力される。
●以降、制御カウンタが１１〜２７のときの動作を繰り返し、アドレス１５まで順にフラッシュメモリ１３０からデータが読み出される。
●読み出しデータ確認部１４０は、フラッシュメモリ１３０から１６ビットのデータの読み出した際に、全ビットが‘１’であるデータが読み出された、ソフトエラー情報記憶領域における最も先頭側のアドレスを、次回書き込みアドレスとして保持する。
＜書き込み動作＞
図３は、本発明の第１の実施形態におけるフラッシュメモリへの書き込み動作の一例を示すタイミングチャートである。図３において、「ソフトエラー」はＣＰＬＤ１００に対するソフトエラー信号を示す。
【００５２】
ソフトエラー検出部１１０は、ソフトエラー信号の‘０’から‘１’への変化を検出すると、フラッシュメモリ１３０へソフトエラー情報を書き込む。
【００５３】
制御カウンタが０のとき：
●ソフトエラー検出部１１０は、ソフトエラー信号の‘０’から‘１’への変化を検出する。
【００５４】
制御カウンタが１〜９のとき：
●フラッシュメモリインタフェース部１２０は、ソフトエラー信号の‘０’から‘１’への変化を検出すると、アドレスシフト信号を‘０’から‘１’へ変化させる。
●フラッシュメモリインタフェース部１２０は、アドレスシフト信号が‘１’である間、アドレスクロック信号の立ち上がり毎に、アドレス信号（図３のａ３、ａ２、ａ１、ａ０）を１ビットずつフラッシュメモリへ出力する。
●制御カウンタ９において、９ビットのアドレスがフラッシュメモリ１３０にセットされる。このアドレスは、次回書き込みアドレスである。本動作例では、有効なアドレス長は４ビットであるものとする。即ち、記録可能なソフトエラー情報の個数の上限値は１６である。そこで、ビットａ３乃至ａ０がフラッシュメモリ１３０にセットされる。ソフトエラー情報の個数が上限値まで書き込まれた場合には、それ以上のソフトエラー情報は書き込まれない。一般的にソフトエラーの発生頻度は低いので、記録可能なソフトエラー情報の個数が上限値以下に制限され、上限値を超えるソフトエラー情報の書き込みが停止されることは、実用上、問題ではない。
【００５５】
制御カウンタが１０のとき：
●フラッシュメモリインタフェース部１２０は、アドレスシフト信号を‘１’から‘０’へ変化させる。
●フラッシュメモリインタフェース部１２０は、データシフト信号を‘０’から‘１’へ変化させる。
【００５６】
制御カウンタが１０〜２５のとき：
●データシフト信号が‘１’である間、データクロック信号の立ち上がり毎に１ビットずつ、書き込みデータがフラッシュメモリ１３０へ出力される。
●制御カウンタ２５において、１６ビットのデータ“００００＿００００＿００００＿００００”がフラッシュメモリ１３０にセットされる。
【００５７】
制御カウンタが２６のとき：
●フラッシュメモリインタフェース部１２０は、データシフト信号を‘１’から‘０’へ変化させる。
●フラッシュメモリインタフェース部１２０は、プログラム信号を‘０’から‘１’へ変化させる。
●フラッシュメモリ１３０は、制御カウンタ９においてフラッシュメモリ１３０にセットされたアドレスに、制御カウンタ２５においてセットされたデータの書き込みを開始する。同時に、フラッシュメモリ１３０は、ビジー信号を‘０’から‘１’へ変化させる。
【００５８】
制御カウンタが２７〜のとき：
●フラッシュメモリ１３０へのデータの書き込みが完了すると、フラッシュメモリ１３０は、ビジー信号を‘１’から‘０’へ変化させる。
●フラッシュメモリインタフェース部１２０は、ビジー信号が‘１’から‘０’へ変化したことに応じて、プログラム信号を‘１’から‘０’へ変化させる。
＜消去動作＞
図４は、本発明の第１の実施形態におけるフラッシュメモリに対する消去動作の一例を示すタイミングチャートである。図４において、「フラッシュメモリ初期化」はＣＰＬＤ１００に対するフラッシュメモリ初期化信号を示す。
【００５９】
ＣＰＬＤ１００は、フラッシュメモリ信号初期化信号の‘０’から‘１’への変化を検出すると、フラッシュメモリ１３０におけるデータを消去する。
【００６０】
制御カウンタが０のとき：
●ＣＰＬＤ１００は、フラッシュメモリ信号初期化信号の‘０’から‘１’への変化を検出する。
【００６１】
制御カウンタが１〜９のとき：
●ＣＰＬＤ１００は、フラッシュ信号初期化信号の‘０’から‘１’への変化を検出すると、アドレスシフト信号を‘０’から‘１’へ変化させる。
●ＣＰＬＤ１００は、アドレスシフト信号が‘１’である間、アドレスクロック信号の立ち上がり毎に、アドレス信号‘０’を１ビットずつフラッシュメモリへ出力する。
●制御カウンタ９において、９ビットのアドレス“０＿００００＿００００”がフラッシュメモリ１３０にセットされる。本動作例では、フラッシュメモリ１３０は、バイト単位の消去が不可能であるが、セクタ単位の消去が可能であり、アドレスの最上位ビットが０の時にセクタ０が選択されるものとする。本動作例では、セクタ０のみが使用されるため、アドレス“０＿００００＿００００”がセットされている。
【００６２】
制御カウンタが１０〜のとき：
●ＣＰＬＤ１００は、イレース信号を‘０’から‘１’へ変化させる。これにより、フラッシュメモリ１３０における消去が開始される。
●フラッシュメモリ１３０における消去が開始されると、フラッシュメモリ１３０は、ビジー信号を‘０’から‘１’へ変化させる。
●消去が完了すると、フラッシュメモリ１３０は、ビジー信号を‘１’から‘０’へ変化させる。
●ビジー信号が‘１’から‘０’へ変化すると、ＣＰＬＤ１００は、イレース信号を‘１’から‘０’へ変化させる。
【００６３】
以上説明したように、本実施形態の情報処理装置５００では、ＣＰＬＤ１００は、ＦＰＧＡ２００と別体である。即ち、環境放射線等に起因するソフトエラーの発生は局所的であるが、ＣＰＬＤ１００とＦＰＧＡ２００とは離れた場所に位置する。そのため、ＦＰＧＡ２００が内蔵するＣＲＡＭ２１０においてソフトエラーが発生した場合であっても、ＣＰＬＤ１００は、正常に動作する可能性が高い。すなわち、本実施形態のＣＰＬＤ１００は、ソフトエラーを信頼性が高い方法で記録することができる。
【００６４】
更に、本実施形態の情報処理装置５００では、フラッシュメモリインタフェース部１２０及び読み出しデータ確認部１４０は、フラッシュメモリ１３０に対して、簡略な方法でソフトエラー情報の書き込み及び読み出しを行う。例えば、フラッシュメモリインタフェース部１２０は、ソフトエラー情報の上書きを行う必要がない。又は、例えば、フラッシュメモリインタフェース部１２０は、全ビットが‘０’であるソフトエラー情報を記録すればよく、ソフトエラー情報以外のデータを記録する必要がない。又は、例えば、フラッシュメモリインタフェース部１２０は、次回書き込みアドレスにソフトエラー情報を書き込めばよく、ソフトエラー情報を書き込む際に、フラッシュメモリ１３０においてソフトエラー情報をどのアドレスに書き込めばよいかを探す必要がない。そのため、フラッシュメモリインタフェース部１２０を含むＣＰＬＤ１００の回路規模を抑制することが可能である。すなわち、本実施形態のＣＰＬＤ１００は、ソフトエラーを安価に記録することができる。
【００６５】
従って、本実施形態の情報処理装置５００には、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録することができるという効果がある。
【００６６】
また、本実施形態の情報処理装置５００では、フラッシュメモリ１３０はＣＰＬＤ１００を内蔵する。つまり、本実施形態の情報処理装置５００には、ソフトエラーの記録機能を単一のデバイスで実現することができる。そのため、本実施形態の情報処理装置５００では、情報処理装置５００の小型化が可能であるという効果がある。
【００６７】
なお、本実施形態の情報処理装置５００では、フラッシュメモリ１３０は、ＥＥＰＲＯＭに置き換えられてもよい。但し、フラッシュメモリは、ＥＥＰＲＯＭに比べてより小型化が可能である。
【００６８】
また、本実施形態の情報処理装置５００では、フラッシュメモリ１３０はＣＰＬＤ１００に外付けされてもよい。この場合、本実施形態の情報処理装置５００には、既存のフラッシュメモリ１３０を利用することができるという効果がある。
（第２の実施形態）
次に、本発明の第１の実施形態を基本とする、本発明の第２の実施形態について説明する。本実施形態では、フラッシュメモリは、ＣＰＬＤに外付けされる。そして、ＦＰＧＡにおけるソフトエラー情報、及びＦＰＧＡのコンフィグレーションデータは、フラッシュメモリに格納される。
【００６９】
本実施形態における構成について説明する。
【００７０】
図５は、本発明の第２の実施形態における情報処理装置の構成の一例を示すブロック図である。本実施形態の情報処理装置５０５は、ＦＰＧＡ２０５と、エラー記録用のＣＰＬＤ１０５と、フラッシュメモリ１３５とを含む。ＣＰＬＤ１０５は、ＦＰＧＡ２０５と、フラッシュメモリ１３５とに接続される。
【００７１】
ＦＰＧＡ２０５は、ソフトエラー発生の監視対象であるＣＲＡＭ２１５を含む。ＦＰＧＡ２０５は、ＣＰＬＤ１０５を介してフラッシュメモリ１３５から、ＦＰＧＡ２０５のコンフィグレーションデータを取得する。
【００７２】
ＣＰＬＤ１０５は、ソフトエラー検出部１１５と、フラッシュメモリインタフェース部１２５と、読み出しデータ確認部１４５とを含む。
【００７３】
フラッシュメモリ１３５は、コンフィグレーションデータ記憶領域１３７と、ソフトエラー情報記憶領域１３８とを含む。
【００７４】
ＦＰＧＡ２０５は、フラッシュメモリ１３５のコンフィグレーションデータ記憶領域１３７に格納されているコンフィグレーションデータを読み出し、ＦＰＧＡ２０５へロードする。この際、ＣＰＬＤ１０５の、フラッシュメモリインタフェース部１２５及び読み出しデータ確認部１４５は、ＦＰＧＡ２０５とフラッシュメモリ１３５との間の信号をそのまま通過させる。
【００７５】
ＦＰＧＡ２０５のコンフィグレーションが完了すると、ＣＰＬＤ１０５は、フラッシュメモリ１３５のソフトエラー情報記憶領域１３８からソフトエラー情報を読み出す。この際、ソフトエラー情報の読み出しは、フラッシュメモリ１３５のソフトエラー情報記憶領域１３８において、先頭アドレスから昇順に行われる。フラッシュメモリ１３５から読み出されたソフトエラー情報は、読み出しデータ確認部１４５へ渡される。
【００７６】
ソフトエラー情報記憶領域１３８に記録されたソフトエラー情報の消去は、フラッシュメモリ１３５におけるコンフィグレーションデータの再書き込みと同時に行われる。フラッシュメモリ１３５におけるコンフィグレーションデータの再書き込みは、例えば、フラッシュメモリ全体におけるデータ消去（チップイレース）の後に行われる。
【００７７】
情報処理装置５０５のその他の構成は、本発明の第１の実施形態における情報処理装置５００の構成と同じである。
【００７８】
本実施形態における動作について説明する。具体的には、フラッシュメモリに対するソフトエラー情報の読み出し及び書き込みの動作例として、ＳＰＩ（Serial Peripheral Interface）を有するフラッシュメモリ１３５が使用された場合について説明する。
【００７９】
ＳＰＩは、クロック信号、チップセレクト信号、シリアル入力信号、及びシリアル出力信号を有する。チップセレクト信号は、負論理である。また、ＳＰＩでは、アドレス長は２４ビット、データ長は８ビットで、アドレス、データともエンディアンはＭＳＢファーストである。
【００８０】
図６は、本発明の第２の実施形態におけるフラッシュメモリからの読み出し動作の一例を示すタイミングチャートである。図６において、「リセット」はＣＰＬＤ１０５に対するリセット信号を示す。なお、図６において、制御カウンタの一部の値は省略されている。
●チップセレクト信号は、シリアル入力信号及びシリアル出力信号を有効にする信号である。
●クロック信号は、シリアル入力信号及びシリアル出力信号のタイミングを規定する信号である。
●シリアル入力信号は、フラッシュメモリへ書き込むべき、命令、アドレス、又はデータをシリアル入力する信号である。
●シリアル出力信号は、フラッシュメモリから読み出されたデータをシリアル出力する信号である。
【００８１】
ＣＰＬＤ１０５は、ＣＰＬＤ１０５の起動後、又はフラッシュメモリ１３５へのソフトエラー情報の書き込み後に、フラッシュメモリ１３５からソフトエラー情報を読み出す。
【００８２】
制御カウンタが０のとき：
●ソフトエラー検出部１１５は、リセット信号の‘０’から‘１’への変化を検出する。
【００８３】
制御カウンタが１〜８のとき：
●フラッシュメモリインタフェース部１２５は、リセット信号の‘０’から‘１’への変化を検出すると、制御カウンタ１において、チップセレクト信号を‘１’から‘０’に変化させる。
●フラッシュメモリインタフェース部１２５は、読み出し（“リード”）を表す命令（ＯＰコード）“００００＿００１１”をシリアル入力信号へ出力する。
【００８４】
制御カウンタが９〜３２のとき：
●フラッシュメモリインタフェース部１２５は、ソフトエラー情報記憶領域１３８の先頭アドレス２４ビットをシリアル入力信号として出力する。
【００８５】
制御カウンタが３３〜１６０のとき：
●制御カウンタ３３から、フラッシュメモリ１３５から読み出されたデータがシリアル出力信号に出力される。
●制御カウンタが３３〜４０のときにおいて、先頭アドレスのデータが読み出される。
●制御カウンタが４１〜４８のときにおいて、（先頭アドレス＋１）のデータが読み出される。
【００８６】
制御カウンタが１６１のとき：
●同様にデータが１５アドレス分読み出されたら、フラッシュメモリインタフェース部１２５は、チップセレクトを‘０’から‘１’に変化させる。
●出力された１５アドレスの全データにおいて全ビットが‘１’である場合には、読み出しデータ確認部１４５は、ソフトエラー情報なしと判断する。
●出力されたあるアドレスのデータにおいて全ビットが‘０’である場合には、読み出しデータ確認部１４５は、ソフトエラー情報ありと判断して、ソフトエラーカウンタを１だけ増加させる。また、読み出しデータ確認部１４５は、全ビット‘１’が読み出された、ソフトエラー情報記憶領域における最も先頭側のアドレスを、次回書き込みアドレスとして保持する。
【００８７】
図７は、本発明の第２の実施形態におけるフラッシュメモリへの書き込み動作の一例を示すタイミングチャートである。図７において、「ソフトエラー」はＣＰＬＤ１０５に対するソフトエラー信号を示す。なお、図７において、制御カウンタの一部の値は省略されている。
【００８８】
ソフトエラー検出部１１５は、ソフトエラー信号の‘０’から‘１’への変化を検出すると、フラッシュメモリ１３５へソフトエラー情報を書き込む。
【００８９】
制御カウンタが０のとき：
●ソフトエラー検出部１１５は、ソフトエラー信号の‘０’から‘１’への変化を検出する。
【００９０】
制御カウンタが１〜８のとき：
●フラッシュメモリインタフェース部１２５は、ソフトエラー信号の‘０’から‘１’への変化を検出すると、チップセレクト信号を‘１’から‘０’へ変化させる。
●フラッシュメモリインタフェース部１２５は、書き込み準備（“ライトイネーブル”）を表すＯＰコード“００００＿０１１０”をシリアル入力信号へ出力する。
【００９１】
制御カウンタが９のとき：
●フラッシュメモリインタフェース部１２５は、チップセレクト信号を‘０’から‘１’へ戻す。これによりフラッシュメモリ１３５へのプログラム信号の出力が可能になる。
【００９２】
制御カウンタが１０〜１７のとき：
●フラッシュメモリインタフェース部１２５は、チップセレクト信号を‘１’から‘０’へ変化させる。
●フラッシュメモリインタフェース部１２５は、書き込み開始（“プログラム”）を表すＯＰコード“００００＿００１０”をシリアル入力信号へ出力する。
【００９３】
制御カウンタが１８〜４１のとき：
●フラッシュメモリインタフェース部１２５は、２４ビットのアドレスをシリアル入力信号へ出力する。書き込み先のアドレスは、次回書き込み先アドレスである。
【００９４】
制御カウンタが４２〜４９のとき：
●フラッシュメモリインタフェース部１２５は、全ビット‘０’である８ビットのデータをシリアル入力信号へ出力する。
【００９５】
制御カウンタが５０のとき：
●フラッシュメモリインタフェース部１２５は、チップセレクト信号を‘０’から‘１’へ変化させる。
【００９６】
以上説明したように、本実施形態の情報処理装置５０５は、ＣＰＬＤ１０５とフラッシュメモリ１３５とが別体であることと、両者が汎用的なインタフェースを介してデータを交換することとを除いて、本発明の第１の実施形態の情報処理装置５００と同じである。従って、本実施形態の情報処理装置５００には、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録することができるという効果がある。
【００９７】
また、本実施形態の情報処理装置５０５では、フラッシュメモリ１３５はＣＰＬＤ１０５に外付けされ、フラッシュメモリ１３５とＣＰＬＤ１０５とは汎用的なインタフェースを介してデータを交換する。従って、本実施形態の情報処理装置５０５には、汎用的なフラッシュメモリ１３５を利用することができるという効果がある。
（第３の実施形態）
次に、本発明の第１乃至２の実施形態の基本である、本発明の第３の実施形態について説明する。
【００９８】
図８は、本発明の第３の実施形態における情報処理装置の構成の一例を示すブロック図である。本実施形態の情報処理装置５０６は、デバイス２０６と、不揮発性メモリ１３６と、プログラマブルロジックデバイス（ＰＬＤ：Programmable Logic Device）１０６とを含む。
【００９９】
デバイス２０６は、揮発性メモリ２１６を内蔵する。デバイス２０６は、揮発性メモリ２１６におけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しない。
【０１００】
不揮発性メモリ１３６は、複数の記憶領域を含む。
【０１０１】
ＰＬＤ１０６は、製造後に内部論理回路を定義・変更できる集積回路である。ＰＬＤ１０６は、例えば、ＦＰＧＡ、又はＣＰＬＤである。ＰＬＤ１０６は、デバイス２０６と別体である。
【０１０２】
ＰＬＤ１０６は、制御部１５６を含む。制御部１５６は、ＰＬＤ１０６の製造後に定義された内部論理回路を含む。ＰＬＤ１０６は、一般的に、書き込み可能な回路規模が小さいほど安価である。また、実装される処理がより簡略であるほど、処理の実装に必要な回路規模はより小さい。そのため、制御部１５６は、処理がより簡略であるほど、より安価なＰＬＤ１０６を用いて実装可能である。
【０１０３】
制御部１５６は、デバイス２０６から、ソフトエラーの発生を示す信号を受信した場合に、ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリ１３６に含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ書き込む。
【０１０４】
以上説明したように、本実施形態の情報処理装置５０６では、ＰＬＤ１０６は、デバイス２０６と別体である。即ち、環境放射線等に起因するソフトエラーの発生は局所的であるが、ＰＬＤ１０６とデバイス２０６とは離れた場所に位置する。そのため、デバイス２０６が内蔵する揮発性メモリ２１６においてソフトエラーが発生した場合であっても、ＰＬＤ１０６は、正常に動作する可能性が高い。すなわち、本実施形態のＰＬＤ１０６は、ソフトエラーを信頼性が高い方法で記録することができる。
【０１０５】
更に、本実施形態の情報処理装置５０６では、制御部１５６は、不揮発性メモリ１３６に対して、簡略な方法でソフトエラー情報の書き込み及び読み出しを行う。例えば、制御部１５６は、ソフトエラー情報の上書きを行う必要がない。そのため、制御部１５６を含むＰＬＤ１０６の回路規模を抑制することが可能である。すなわち、本実施形態のＰＬＤ１０６は、ソフトエラーを安価に記録することができる。
【０１０６】
従って、本実施形態の情報処理装置５０６には、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録することができるという効果がある。
【０１０７】
なお、本実施形態の情報処理装置５０６における制御部１５６は、複数の構成要素に分割されてもよい。例えば、制御部１５６は、第２の実施形態における、ソフトエラー検出部１１５と、フラッシュメモリインタフェース部１２５と、読み出しデータ確認部１４５とに分割されてもよい。あるいは、例えば、制御部１５６は、第１の実施形態における、ソフトエラー検出部１１０と、フラッシュメモリインタフェース部１２０と、読み出しデータ確認部１４０とに分割されてもよい。
【０１０８】
また、本実施形態の情報処理装置５０６では、第１又は第２の実施形態と同様に、ソフトエラー情報のバイト長は、不揮発性メモリ１３６におけるセクタ長の倍数であってもよい。そして、本実施形態の情報処理装置５０６における制御部１５６は、不揮発性メモリ１３６におけるソフトエラー情報の書き込みを、セクタ長を単位として行ってもよい。この場合には、ソフトエラー情報の書き込みにおいて、ソフトエラー情報（例えば全ビット‘０’のビット列）に、ソフトエラー情報がないことを示すビット列（例えば全ビット‘１’のビット列）が付加されたバイト列を書き込む必要がないという効果がある。
【０１０９】
また、本実施形態の情報処理装置５０６における制御部１５６は、第１又は第２の実施形態と同様に、起動時及びソフトエラー情報を不揮発性メモリ１３６に含まれる記憶領域へ書き込んだ後に、書き込まれているソフトエラー情報を不揮発性メモリ１３６から読み出すことと、不揮発性メモリ１３６から読み出したソフトエラー情報の個数を出力することとを更に行ってもよい。この場合には、読み出したソフトエラー情報の個数に基づいて、エラーの発生を検知することができるという効果がある。
【０１１０】
また、本実施形態の情報処理装置５０６における制御部１５６は、第１又は第２の実施形態と同様に、不揮発性メモリ１３６において書き込み可能なソフトエラー情報の個数を所定の上限値以下に制限してもよい。そして、制御部１５６は、ソフトエラー情報の個数が前記上限値に達した後には、不揮発性メモリ１３６におけるソフトエラー情報の書き込みを停止してもよい。この場合には、不揮発性メモリ１３６の記憶容量を制限できるという効果がある。
【０１１１】
また、本実施形態の情報処理装置５０６における制御部１５６は、第１又は第２の実施形態と同様に、ソフトエラー情報の個数を出力する際に、ソフトエラー情報が書き込まれていない記憶領域のうち、最も先頭側のアドレスを保持してもよい。そして、制御部１５６は、ソフトエラー情報を、不揮発性メモリ１３６にソフトエラー情報を次に書き込む際に、ソフトエラー情報を不揮発性メモリ１３６における、保持しているアドレスにより示される記憶領域へ書き込んでもよい。この場合には、ソフトエラー情報を不揮発性メモリ１３６に書き込む際に、不揮発性メモリ１３６においてソフトエラー情報をどのアドレスに書き込めばよいかを探す必要がないという効果がある。
【０１１２】
また、本実施形態の情報処理装置５０６では、第１又は第２の実施形態と同様に、不揮発性メモリ１３６におけるソフトエラー情報の記憶可能領域において、記憶可能領域の初期状態、又は記憶可能領域内の全セクタにおける消去直後において、記憶可能領域内の全セクタ内の全てのビットは１であってもよい。そして、本実施形態の情報処理装置５０６における制御部１５６は、ソフトエラー情報として、全てのビットが０であるバイト単位のデータを書き込んでもよい。この場合には、ソフトエラー情報を不揮発性メモリ１３６に書き込む処理が、より簡略化されるという効果がある。
【０１１３】
また、本実施形態の情報処理装置５０６における制御部１５６は、第１又は第２の実施形態と同様に、不揮発性メモリ１３６におけるソフトエラー情報を記憶可能な全セクタにおける消去を指示する信号を受信した場合に、不揮発性メモリ１３６におけるソフトエラー情報を記憶可能な全セクタにおける消去を行ってもよい。この場合には、不揮発性メモリ１３６の残容量が一旦無くなった後にも、ソフトエラー情報の記録を再開できるという効果がある。
【０１１４】
また、本実施形態の情報処理装置５０６では、第１の実施形態と同様に、不揮発性メモリ１３６は、ＰＬＤ１０６に内蔵されてもよい。
【０１１５】
図９は、本発明の各実施形態における通信装置を実現可能なハードウェア構成の一例を示すブロック図である。
【０１１６】
情報処理装置９０７は、記憶装置９０２と、ＣＰＵ（Central Processing Unit）９０３と、キーボード９０４と、モニタ９０５と、Ｉ／Ｏ（Input/Output）９０８とを備え、これらが内部バス９０６で接続されている。記憶装置９０２は、制御部１５６等のＣＰＵ９０３の動作プログラムを格納する。ＣＰＵ９０３は、情報処理装置９０７全体を制御し、記憶装置９０２に格納された動作プログラムを実行し、Ｉ／Ｏ９０８を介して制御部１５６等のプログラムの実行やデータの送受信を行なう。なお、上記の情報処理装置９０７の内部構成は一例である。情報処理装置９０７は、必要に応じて、キーボード９０４、モニタ９０５を接続する装置構成であってもよい。
【０１１７】
上述した本発明の各実施形態における通信装置は、専用の装置によって実現してもよいが、コンピュータ（情報処理装置）によっても実現可能である。この場合、係るコンピュータは、記憶装置９０２に格納されたソフトウェア・プログラムをＣＰＵ９０３に読み出し、読み出したソフトウェア・プログラムをＣＰＵ９０３において実行する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図１に示したＣＰＬＤ１００の各部の機能、図５に示したＣＰＬＤ１０５の各部の機能、又は図８に示したＰＬＤ１０６の各部の機能を実現可能な記述がなされていればよい。ただし、これらの各部には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム（コンピュータ・プログラム）は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【０１１８】
以上、本発明を、上述した各実施形態及びその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及びその変形例に記載した範囲に限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項により明らかである。
【０１１９】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスから、前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む制御手段
を備えたプログラマブルロジックデバイスであって、
前記プログラマブルロジックデバイスは前記デバイスと別体である
プログラマブルロジックデバイス。
（付記２）
前記ソフトエラー情報のバイト長は、前記不揮発性メモリにおけるセクタ長の倍数であり、
前記制御手段は、前記不揮発性メモリにおける前記ソフトエラー情報の書き込みを、前記セクタ長を単位として行う
付記１に記載のプログラマブルロジックデバイス。
（付記３）
前記制御手段は、
起動時及び前記ソフトエラー情報を前記記憶領域へ書き込んだ後に、書き込まれている前記ソフトエラー情報を前記不揮発性メモリから読み出すことと、
前記不揮発性メモリから読み出した前記ソフトエラー情報の個数を出力することと
を更に行う
付記１又は付記２に記載のプログラマブルロジックデバイス。
（付記４）
前記制御手段は、前記不揮発性メモリにおいて書き込み可能な前記ソフトエラー情報の個数を所定の上限値以下に制限し、前記ソフトエラー情報の個数が前記上限値に達した後には、前記不揮発性メモリにおける前記ソフトエラー情報の書き込みを停止する
付記１乃至３のいずれか１項に記載のプログラマブルロジックデバイス。
（付記５）
前記制御手段は、
前記ソフトエラー情報の個数を出力する際に、前記ソフトエラー情報が書き込まれていない前記記憶領域のうち、最も先頭側のアドレスを保持し、
前記ソフトエラー情報を前記不揮発性メモリに含まれる複数の前記記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域へ次に書き込む際に、前記ソフトエラー情報を前記不揮発性メモリにおける、保持している前記アドレスにより示される前記記憶領域へ書き込む
付記１乃至４のいずれか１項に記載のプログラマブルロジックデバイス。
（付記６）
前記不揮発性メモリにおける前記ソフトエラー情報の記憶可能領域において、前記記憶可能領域の初期状態、又は前記記憶可能領域内の全セクタにおける消去直後において、前記記憶可能領域内の全セクタ内の全てのビットは１であり、
前記制御手段は、前記ソフトエラー情報として、全てのビットが０であるバイト単位のデータを書き込む
付記１乃至５のいずれか１項に記載のプログラマブルロジックデバイス。
（付記７）
前記制御手段は、前記不揮発性メモリにおける前記ソフトエラー情報を記憶可能な全セクタにおける消去を指示する信号を受信した場合に、前記不揮発性メモリにおける前記ソフトエラー情報を記憶可能な全セクタにおける消去を行う
付記１乃至６のいずれか１項に記載のプログラマブルロジックデバイス。
（付記８）
前記不揮発性メモリは、前記プログラマブルロジックデバイスに外付けされる
付記１乃至７のいずれか１項に記載のプログラマブルロジックデバイス。
（付記９）
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスから、前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生の記録を指示するソフトエラー記録指示を送信するソフトエラー検出部と、
前記ソフトエラー記録指示に基づいて、前記ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込むことと、
起動時及び前記ソフトエラー情報を前記記憶領域へ書き込んだ後に、書き込まれている前記ソフトエラー情報を前記不揮発性メモリから読み出すこととを行う
フラッシュメモリインタフェース部と、
前記不揮発性メモリから読み出した前記ソフトエラー情報の個数を出力する読み出しデータ確認手段
を備えたプログラマブルロジックデバイスであって、
前記プログラマブルロジックデバイスは前記デバイスと別体である
プログラマブルロジックデバイス。
（付記１０）
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、
不揮発性メモリと、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む制御手段を含む
プログラマブルロジックデバイスとを備えた情報処理装置であって、
前記プログラマブルロジックデバイスは前記デバイスと別体である
情報処理装置。
（付記１１）
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、前記デバイスと別体であるプログラマブルロジックデバイスは、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む
ソフトエラー記録方法。
（付記１２）
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、前記デバイスと別体であるプログラマブルロジックデバイスに、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む処理を実行させるソフトエラー記録プログラム。
【産業上の利用可能性】
【０１２０】
本発明は、ソフトエラー検出機能を有するが、ソフトエラー記録機能を有しない、ＦＰＧＡ等のプログラマブルデバイスが使用される機器（ネットワーク機器、通信装置等）等の、ソフトエラーを記録する用途において利用できる。
【符号の説明】
【０１２１】
１００  ＣＰＬＤ
１１０  ソフトエラー検出部
１２０  フラッシュメモリインタフェース部
１３０  フラッシュメモリ
１４０  読み出しデータ確認部
２００  ＦＰＧＡ
２１０  ＣＲＡＭ
３００  スイッチ
５００  情報処理装置
１０５  ＣＰＬＤ
１１５  ソフトエラー検出部
１２５  フラッシュメモリインタフェース部
１３５  フラッシュメモリ
１３７  コンフィグレーションデータ記憶領域
１３８  ソフトエラー情報記憶領域
１４５  読み出しデータ確認部
２０５  ＦＰＧＡ
２１５  ＣＲＡＭ
５０５  情報処理装置
１０６  ＰＬＤ
１３６  不揮発性メモリ
１５６  制御部
５０６  情報処理装置
９０２  記憶装置
９０３  ＣＰＵ
９０４  キーボード
９０５  モニタ
９０６  内部バス
９０７  情報処理装置
９０８  Ｉ／Ｏ
【図１】
2018022277.tif 000003
【図２】
2018022277.tif 000004
【図３】
2018022277.tif 000005
【図４】
2018022277.tif 000006
【図５】
2018022277.tif 000007
【図６】
2018022277.tif 000008
【図７】
2018022277.tif 000009
【図８】
2018022277.tif 000010
【図９】
2018022277.tif 000011