(58)【調査した分野】(Int.Cl.,DB名)
前記制御手段は、前記不揮発性メモリにおいて書き込み可能な前記ソフトエラー情報の個数を所定の上限値以下に制限し、前記ソフトエラー情報の個数が前記上限値に達した後には、前記不揮発性メモリにおける前記ソフトエラー情報の書き込みを停止する
請求項1又は2に記載のプログラマブルロジックデバイス。
前記不揮発性メモリにおける前記ソフトエラー情報の記憶可能領域において、前記記憶可能領域の初期状態、又は前記記憶可能領域内の全セクタにおける消去直後において、前記記憶可能領域内の全セクタ内の全てのビットは1であり、
前記制御手段は、前記ソフトエラー情報として、全てのビットが0であるバイト単位のデータを書き込む
請求項1乃至4のいずれか1項に記載のプログラマブルロジックデバイス。
前記制御手段は、前記不揮発性メモリにおける前記ソフトエラー情報を記憶可能な全セクタにおける消去を指示する信号を受信した場合に、前記不揮発性メモリにおける前記ソフトエラー情報を記憶可能な全セクタにおける消去を行う
請求項1乃至5のいずれか1項に記載のプログラマブルロジックデバイス。
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、前記デバイスと別体であるプログラマブルロジックデバイスは、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込み、
起動時及び前記ソフトエラー情報を前記記憶領域へ書き込んだ後に、
書き込まれている前記ソフトエラー情報を前記不揮発性メモリから読み出すことと、
前記不揮発性メモリから読み出した前記ソフトエラー情報の個数を出力することと
を行う
ソフトエラー記録方法。
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、前記デバイスと別体であるプログラマブルロジックデバイスに、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込み、
起動時及び前記ソフトエラー情報を前記記憶領域へ書き込んだ後に、
書き込まれている前記ソフトエラー情報を前記不揮発性メモリから読み出すことと、
前記不揮発性メモリから読み出した前記ソフトエラー情報の個数を出力することと
を行う処理を実行させるソフトエラー記録プログラム。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等な構成要素には同じ符号を付し、適宜説明を省略する。
(第1の実施形態)
本実施形態では、エラー記録用のCPLDが、FPGAに含まれるCRAMにおけるソフトエラーを記録する。
【0018】
本実施形態における構成について説明する。
【0019】
図1は、本発明の実施形態における情報処理装置の構成の一例を示すブロック図である。本実施形態の情報処理装置500は、FPGA200と、エラー記録用のCPLD100とを含む。CPLD100は、FPGA200に接続される。
【0020】
FPGA200は、ソフトエラー発生の監視対象であるCRAM210を含む。CRAM210は、複数の記憶領域を含む。FPGA200は、CRAM210におけるソフトエラー発生の有無を示す信号(以下、「ソフトエラー信号」と称す)を出力する。ソフトエラー信号は、CRAM210におけるソフトエラーが発生した記憶領域を表す情報等を含んでもよい。以下では、ソフトエラー信号は、ソフトエラーが発生したことを示す値‘1’と、ソフトエラーが発生していないことを示す値‘0’との2値を取る例について説明する。なお、FPGA200は、例えばCRCチェッカを備えており、CRAM210におけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しない。
【0021】
CPLD100は、製造後に内部論理回路を定義・変更できる集積回路である。CPLD100は、ソフトエラー検出部110と、フラッシュメモリインタフェース部120と、フラッシュメモリ130と、読み出しデータ確認部140とを含む。
【0022】
ソフトエラー検出部110と、フラッシュメモリインタフェース部120と、読み出しデータ確認部140とは、CPLD100の製造後に定義された内部論理回路を含む。CPLD100は、一般的に、書き込み可能な回路規模が小さいほど安価である。また、実装される処理がより簡略であるほど、処理の実装に必要な回路規模はより小さい。そのため、ソフトエラー検出部110、フラッシュメモリインタフェース部120、及び読み出しデータ確認部140は、処理がより簡略であるほど、より安価なCPLD100を用いて実装可能である。
【0023】
ソフトエラー検出部110は、FPGA200からソフトエラー信号を受信し、受信したソフトエラー信号に基づいて、ソフトエラーの有無を判断する。そして、ソフトエラー検出部110は、ソフトエラーが発生した場合には、フラッシュメモリインタフェース部120へソフトエラーの記録を指示する信号(以下、「ソフトエラー記録指示」と称す)を出力する。
【0024】
フラッシュメモリ130は、複数の記憶領域を含む。フラッシュメモリ130は、FPGA200においてソフトエラーが発生したことを表す情報(以下、「ソフトエラー情報」と称す)を保持することができる。フラッシュメモリ130は、一般的に、記憶容量が小さいほど安価である。そのため、フラッシュメモリ130は、ソフトエラー情報の保持に必要な記憶容量がより小さいほど、より安価に実装可能である。なお、フラッシュメモリ130は、ソフトエラー情報以外の情報を保持してもよい。また、フラッシュメモリ130は、CPLD100に外付けされてもよい。
【0025】
フラッシュメモリインタフェース部120は、ソフトエラー検出部110からソフトエラー記録指示を受信した場合には、フラッシュメモリ130に含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ、ソフトエラー情報を書き込む。ソフトエラー情報は、ソフトエラーが発生した日時を表す情報や、CRAM210におけるソフトエラーが発生した記憶領域を表す情報等を含んでもよい。
【0026】
更に、フラッシュメモリインタフェース部120は、CPLD100が起動された後と、フラッシュメモリ130にソフトエラー情報の書き込みを行った後とに、フラッシュメモリ130からソフトエラー情報を読み出す。
【0027】
読み出しデータ確認部140は、フラッシュメモリインタフェース部120によってフラッシュメモリ130から読み出されたソフトエラー情報の個数に基づいて、ソフトエラーの発生回数を示す信号(以下、「ソフトエラー発生回数」と称す)をCPLD100の外部へ出力する。
【0028】
本実施形態における動作について説明する。
【0029】
なお、以下では、フラッシュメモリ130におけるソフトエラー情報の記憶可能領域(以下、「ソフトエラー情報記憶領域」と称す)において、記憶可能領域の初期状態、又は記憶可能領域内の全セクタにおける消去直後において、記憶可能領域内の全セクタ内の全てのビットは‘1’である例について説明する。また、以下では、ソフトエラー情報は、全ビットが‘0’である2バイトのビット列で表される例について説明する。
【0030】
CPLD100が電源投入やリセット等に応じて起動されると、フラッシュメモリインタフェース部120は、フラッシュメモリ130からソフトエラー情報を読み出す。この際、フラッシュメモリインタフェース部120は、フラッシュメモリ130におけるソフトエラー情報記憶領域において、先頭アドレスから昇順に、1つのソフトエラー情報記憶領域に記録されたバイト列を読み出す。読み出されたバイト列は、1つずつ読み出しデータ確認部140へ渡される。
【0031】
読み出しデータ確認部140は、上述の読み出されたバイト列のうち、全ビット‘1’(ソフトエラー情報なし)であるバイト列が格納されている、ソフトエラー情報記憶領域における最も先頭側のアドレスを、次にソフトエラー情報を書き込むためのアドレス(以下、「次回書き込みアドレス」と称す)として保持する。即ち、次回書き込みアドレス以降のアドレスには、ソフトエラー情報が書き込まれていない。そして、次回書き込みアドレスは、ソフトエラー情報記憶領域における、ソフトエラー情報が書き込まれていない最も先頭側のアドレスを表す。
【0032】
更に、読み出しデータ確認部140は、バイト列が全ビット‘0’であるバイト列(ソフトエラー情報あり)が読み出された回数を示す信号(ソフトエラー発生回数)をCPLD100の外部へ出力する。
【0033】
ソフトエラー検出部110は、FPGA200からソフトエラー信号を受信し、受信したソフトエラー信号が‘0’である間、ソフトエラー信号の変化を待ち受ける。そして、ソフトエラー検出部110は、ソフトエラー信号が‘0’から‘1’に変化した場合に、ソフトエラーが検出されたと判断して、フラッシュメモリインタフェース部120にソフトエラー情報の書き込みを指示する信号(以下、「書き込み指示」と称す)を出力する。
【0034】
フラッシュメモリインタフェース部120は、書き込み指示を受信した場合に、保持されている次回書き込みアドレスが示す、フラッシュメモリ130中の記憶領域へ、ソフトエラー情報を書き込む。
【0035】
フラッシュメモリ130へソフトエラー情報が書き込まれた後に、フラッシュメモリインタフェース部120は、フラッシュメモリ130からソフトエラー情報を読み出す。この際、フラッシュメモリインタフェース部120は、フラッシュメモリ130におけるソフトエラー情報記憶領域において、先頭アドレスから昇順に、1つのソフトエラー情報記憶領域に記録されたバイト列を読み出す。読み出されたバイト列は、1つずつ読み出しデータ確認部140へ渡される。
【0036】
読み出しデータ確認部140は、読み出されたバイト列のうち、全ビット‘1’(ソフトエラー情報なし)であるバイト列が格納されている、ソフトエラー情報記憶領域における最も先頭側のアドレスを次回書き込みアドレスとして保持する。
【0037】
更に、読み出しデータ確認部140は、ソフトエラー発生回数をCPLD100の外部へ出力する。
【0038】
フラッシュメモリ130は不揮発性メモリであるので、CPLD100の電源が切断された場合や、CPLD100がリセットされた場合であっても、フラッシュメモリ130に記録されたソフトエラー情報は消去されない。そのため、CPLD100の電源が切断された場合や、CPLD100がリセットされた場合であっても、読み出しデータ確認部140は、CPLD100の起動時に、ソフトエラー発生回数を出力することが可能である。
【0039】
本実施形態におけるCPLD100は、フラッシュメモリ130に記録されたソフトエラー情報を消去可能であってよい。その場合には、情報処理装置500はスイッチ300を含み、CPLD100はスイッチ300に接続される。スイッチ300は、スイッチ300の操作に応じて、「フラッシュメモリ初期化信号」を切り替える。以下、フラッシュメモリ初期化信号では、例えば、値‘1’が「初期化不実行」を、値‘0’が「初期化実行」を示すものとする。
【0040】
フラッシュメモリ130に記録されたソフトエラー情報を消去する場合には、スイッチ300は、フラッシュメモリ初期化信号として値‘0’をCPLD100へ出力する。フラッシュメモリインタフェース部120は、フラッシュメモリ初期化信号として値‘0’を受信した場合には、フラッシュメモリ130に記録されたソフトエラー情報を消去する。消去により、フラッシュメモリ130のソフトエラー情報の記憶可能領域は初期化され、ソフトエラー情報の記憶可能領域における全アドレスの全ビットが‘1’になる。フラッシュメモリ初期化信号の切り替えがスイッチ300で行われる場合には、ソフトエラー情報がCPLD100の誤動作により消去されることを防止することができる。例えば、CPLD100の保守時にのみ、スイッチ300が‘0’出力側になるよう操作されて、ソフトエラー情報の消去が行われる。
【0041】
上述したフラッシュメモリ130へのソフトエラー情報の、読み出し、書き込み、消去の具体的な動作の一例について説明する。なお、以下では、フラッシュメモリ130が内蔵されたCPLD100の動作について、
図2乃至4を用いて説明する。
【0042】
本動作例では、CPLD100とフラッシュメモリ130との間のインタフェースは、アドレス信号とデータ信号とが分離されているシリアルインタフェースである。このシリアルインタフェースは、シリアルアドレス入力制御用にアドレスシフト信号及びアドレスクロック信号を有し、シリアルデータ入力制御用及びシリアルデータ出力制御用に、データシフト信号及びデータクロック信号を有する。シリアルアドレス、シリアルデータ共に、エンディアンはMSB(Most Significant Bit)ファーストである。また、アドレス長は9ビット、データ長は16ビットである。また、このシリアルインタフェースは、書き込み制御用にプログラム信号を有し、消去制御用にイレース信号を有する。なお、このシリアルインタフェースでは、書き込み中又は消去中には、ビジー信号‘1’がフラッシュメモリ130から出力される。なお、特に断らない限り、各信号は正論理であるものとして説明するが、本実施形態における信号は正論理には限定されず、負論理であってもよい。
<読み出し動作>
図2乃至4において、「CPLDクロック」はCPLD100のクロック信号であり、「制御カウンタ」はCPLDクロックにおけるタイミングを示すカウンタである。以下の説明では、動作のタイミングを、制御カウンタの値を用いて特定する。なお、
図2乃至4において、制御カウンタの一部の値は省略されている。
【0043】
図2は、本発明の第1の実施形態におけるフラッシュメモリからの読み出し動作の一例を示すタイミングチャートである。
図2において、「リセット」はCPLD100に対するリセット信号を示す。
【0044】
CPLD100からフラッシュメモリ130へ「フラッシュメモリ入力信号」が出力される。フラッシュメモリ130からCPLD100へ「フラッシュメモリ出力信号」が出力される。フラッシュメモリ入力信号は、「アドレスシフト信号」と、「アドレスクロック信号」と、「アドレス信号」と、「データシフト信号」と、「データクロック信号」と、「書き込みデータ信号」(
図3、4)と、「プログラム信号」(
図3)と、「イレース信号」(
図4)とを含む。フラッシュメモリ出力信号は、「読み出しデータ信号」と、「ビジー信号」とを含む。
●アドレスシフト信号は、アドレス信号を有効にする信号である。
●アドレスクロック信号は、アドレス信号のタイミングを規定する信号である。
●アドレス信号は、アドレスをシリアル入力する信号である。
●データシフト信号は、フラッシュメモリからのデータの読み出しを制御する信号である。
●データクロック信号は、書き込みデータ信号のタイミング、及び読み出しデータ信号のタイミングを規定する信号である。
●書き込みデータ信号は、フラッシュメモリへ書き込むべきデータをシリアル入力する信号である。
●プログラム信号は、フラッシュメモリへのデータの書き込みを制御する信号である。
●イレース信号は、フラッシュメモリの消去を制御する信号である。
●読み出しデータ信号は、フラッシュメモリから読み出されたデータをシリアル出力する信号である。
●ビジー信号は、フラッシュメモリにおいてデータを書き込み中又は消去中であることを示す信号である。
【0045】
CPLD100は、CPLD100の起動後、又はフラッシュメモリ130へのソフトエラー情報の書き込み後に、フラッシュメモリ130からソフトエラー情報を読み出す。
【0046】
制御カウンタが0のとき:
●ソフトエラー検出部110は、リセット信号の‘0’から‘1’への変化を検出する。
【0047】
制御カウンタが1〜9のとき:
●フラッシュメモリインタフェース部120は、リセット信号の‘0’から‘1’への変化を検出すると、アドレスシフト信号を‘0’から‘1’へ変化させる。
●フラッシュメモリインタフェース部120は、アドレスシフト信号が‘1’である間、アドレスクロック信号の立ち上がり毎に、アドレス信号(‘0’)を1ビットずつフラッシュメモリへ出力する。
●制御カウンタ9において、9ビットのアドレス“0_0000_0000”がフラッシュメモリにセットされる。
【0048】
制御カウンタが10のとき:
●フラッシュメモリインタフェース部120は、アドレスシフト信号を‘1’から‘0’へ変化させる。
●データシフト信号が‘0’で、且つデータクロック信号の立ち上がりの際に、制御カウンタ9においてセットされたアドレスのデータが、フラッシュメモリ130内のデータレジスタ(不図示)にセットされる。
●フラッシュメモリ130は、制御カウンタ9でセットされたアドレスを1だけ増加させる。
【0049】
制御カウンタが11〜26のとき:
●フラッシュメモリインタフェース部120は、データシフト信号を‘0’から‘1’へ変化させる。
●フラッシュメモリ130内のデータレジスタにセットされたデータは、データシフト信号が‘1’である間、データクロック信号の立ち上がり毎に1ビットずつ、読み出しデータ信号として出力される。
●制御カウンタ26において、16ビットのデータが出力される。読み出しデータ確認部140は、出力された16ビットのデータの全ビットが‘1’である場合には、ソフトエラー情報なしと判断する。読み出しデータ確認部140は、出力された16ビットのデータの全ビットが‘0’である場合には、ソフトエラー情報ありと判断して「ソフトエラーカウンタ」を1だけ増加させる。ソフトエラーカウンタは、フラッシュメモリに記憶されているソフトエラー情報の個数、即ちソフトエラー発生回数を示すカウンタである。
【0050】
制御カウンタが27のとき:
●フラッシュメモリインタフェース部120は、データシフト信号を‘1’から‘0’へ変化させる。
●制御カウンタ10においてフラッシュメモリ130によりセットされたアドレスのデータは、データシフト信号が‘0’で、且つデータクロック信号の立ち上がりの際に、フラッシュメモリ内のデータレジスタにセットされる。
【0051】
制御カウンタが28〜281のとき:
●フラッシュメモリ130内のデータレジスタにセットされたデータは、データシフト信号が‘1’である間、データクロック信号の立ち上がり毎に1ビットずつ、読み出しデータ信号として出力される。
●以降、制御カウンタが11〜27のときの動作を繰り返し、アドレス15まで順にフラッシュメモリ130からデータが読み出される。
●読み出しデータ確認部140は、フラッシュメモリ130から16ビットのデータの読み出した際に、全ビットが‘1’であるデータが読み出された、ソフトエラー情報記憶領域における最も先頭側のアドレスを、次回書き込みアドレスとして保持する。
<書き込み動作>
図3は、本発明の第1の実施形態におけるフラッシュメモリへの書き込み動作の一例を示すタイミングチャートである。
図3において、「ソフトエラー」はCPLD100に対するソフトエラー信号を示す。
【0052】
ソフトエラー検出部110は、ソフトエラー信号の‘0’から‘1’への変化を検出すると、フラッシュメモリ130へソフトエラー情報を書き込む。
【0053】
制御カウンタが0のとき:
●ソフトエラー検出部110は、ソフトエラー信号の‘0’から‘1’への変化を検出する。
【0054】
制御カウンタが1〜9のとき:
●フラッシュメモリインタフェース部120は、ソフトエラー信号の‘0’から‘1’への変化を検出すると、アドレスシフト信号を‘0’から‘1’へ変化させる。
●フラッシュメモリインタフェース部120は、アドレスシフト信号が‘1’である間、アドレスクロック信号の立ち上がり毎に、アドレス信号(
図3のa3、a2、a1、a0)を1ビットずつフラッシュメモリへ出力する。
●制御カウンタ9において、9ビットのアドレスがフラッシュメモリ130にセットされる。このアドレスは、次回書き込みアドレスである。本動作例では、有効なアドレス長は4ビットであるものとする。即ち、記録可能なソフトエラー情報の個数の上限値は16である。そこで、ビットa3乃至a0がフラッシュメモリ130にセットされる。ソフトエラー情報の個数が上限値まで書き込まれた場合には、それ以上のソフトエラー情報は書き込まれない。一般的にソフトエラーの発生頻度は低いので、記録可能なソフトエラー情報の個数が上限値以下に制限され、上限値を超えるソフトエラー情報の書き込みが停止されることは、実用上、問題ではない。
【0055】
制御カウンタが10のとき:
●フラッシュメモリインタフェース部120は、アドレスシフト信号を‘1’から‘0’へ変化させる。
●フラッシュメモリインタフェース部120は、データシフト信号を‘0’から‘1’へ変化させる。
【0056】
制御カウンタが10〜25のとき:
●データシフト信号が‘1’である間、データクロック信号の立ち上がり毎に1ビットずつ、書き込みデータがフラッシュメモリ130へ出力される。
●制御カウンタ25において、16ビットのデータ“0000_0000_0000_0000”がフラッシュメモリ130にセットされる。
【0057】
制御カウンタが26のとき:
●フラッシュメモリインタフェース部120は、データシフト信号を‘1’から‘0’へ変化させる。
●フラッシュメモリインタフェース部120は、プログラム信号を‘0’から‘1’へ変化させる。
●フラッシュメモリ130は、制御カウンタ9においてフラッシュメモリ130にセットされたアドレスに、制御カウンタ25においてセットされたデータの書き込みを開始する。同時に、フラッシュメモリ130は、ビジー信号を‘0’から‘1’へ変化させる。
【0058】
制御カウンタが27〜のとき:
●フラッシュメモリ130へのデータの書き込みが完了すると、フラッシュメモリ130は、ビジー信号を‘1’から‘0’へ変化させる。
●フラッシュメモリインタフェース部120は、ビジー信号が‘1’から‘0’へ変化したことに応じて、プログラム信号を‘1’から‘0’へ変化させる。
<消去動作>
図4は、本発明の第1の実施形態におけるフラッシュメモリに対する消去動作の一例を示すタイミングチャートである。
図4において、「フラッシュメモリ初期化」はCPLD100に対するフラッシュメモリ初期化信号を示す。
【0059】
CPLD100は、フラッシュメモリ信号初期化信号の‘0’から‘1’への変化を検出すると、フラッシュメモリ130におけるデータを消去する。
【0060】
制御カウンタが0のとき:
●CPLD100は、フラッシュメモリ信号初期化信号の‘0’から‘1’への変化を検出する。
【0061】
制御カウンタが1〜9のとき:
●CPLD100は、フラッシュ信号初期化信号の‘0’から‘1’への変化を検出すると、アドレスシフト信号を‘0’から‘1’へ変化させる。
●CPLD100は、アドレスシフト信号が‘1’である間、アドレスクロック信号の立ち上がり毎に、アドレス信号‘0’を1ビットずつフラッシュメモリへ出力する。
●制御カウンタ9において、9ビットのアドレス“0_0000_0000”がフラッシュメモリ130にセットされる。本動作例では、フラッシュメモリ130は、バイト単位の消去が不可能であるが、セクタ単位の消去が可能であり、アドレスの最上位ビットが0の時にセクタ0が選択されるものとする。本動作例では、セクタ0のみが使用されるため、アドレス“0_0000_0000”がセットされている。
【0062】
制御カウンタが10〜のとき:
●CPLD100は、イレース信号を‘0’から‘1’へ変化させる。これにより、フラッシュメモリ130における消去が開始される。
●フラッシュメモリ130における消去が開始されると、フラッシュメモリ130は、ビジー信号を‘0’から‘1’へ変化させる。
●消去が完了すると、フラッシュメモリ130は、ビジー信号を‘1’から‘0’へ変化させる。
●ビジー信号が‘1’から‘0’へ変化すると、CPLD100は、イレース信号を‘1’から‘0’へ変化させる。
【0063】
以上説明したように、本実施形態の情報処理装置500では、CPLD100は、FPGA200と別体である。即ち、環境放射線等に起因するソフトエラーの発生は局所的であるが、CPLD100とFPGA200とは離れた場所に位置する。そのため、FPGA200が内蔵するCRAM210においてソフトエラーが発生した場合であっても、CPLD100は、正常に動作する可能性が高い。すなわち、本実施形態のCPLD100は、ソフトエラーを信頼性が高い方法で記録することができる。
【0064】
更に、本実施形態の情報処理装置500では、フラッシュメモリインタフェース部120及び読み出しデータ確認部140は、フラッシュメモリ130に対して、簡略な方法でソフトエラー情報の書き込み及び読み出しを行う。例えば、フラッシュメモリインタフェース部120は、ソフトエラー情報の上書きを行う必要がない。又は、例えば、フラッシュメモリインタフェース部120は、全ビットが‘0’であるソフトエラー情報を記録すればよく、ソフトエラー情報以外のデータを記録する必要がない。又は、例えば、フラッシュメモリインタフェース部120は、次回書き込みアドレスにソフトエラー情報を書き込めばよく、ソフトエラー情報を書き込む際に、フラッシュメモリ130においてソフトエラー情報をどのアドレスに書き込めばよいかを探す必要がない。そのため、フラッシュメモリインタフェース部120を含むCPLD100の回路規模を抑制することが可能である。すなわち、本実施形態のCPLD100は、ソフトエラーを安価に記録することができる。
【0065】
従って、本実施形態の情報処理装置500には、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録することができるという効果がある。
【0066】
また、本実施形態の情報処理装置500では、フラッシュメモリ130はCPLD100を内蔵する。つまり、本実施形態の情報処理装置500には、ソフトエラーの記録機能を単一のデバイスで実現することができる。そのため、本実施形態の情報処理装置500では、情報処理装置500の小型化が可能であるという効果がある。
【0067】
なお、本実施形態の情報処理装置500では、フラッシュメモリ130は、EEPROMに置き換えられてもよい。但し、フラッシュメモリは、EEPROMに比べてより小型化が可能である。
【0068】
また、本実施形態の情報処理装置500では、フラッシュメモリ130はCPLD100に外付けされてもよい。この場合、本実施形態の情報処理装置500には、既存のフラッシュメモリ130を利用することができるという効果がある。
(第2の実施形態)
次に、本発明の第1の実施形態を基本とする、本発明の第2の実施形態について説明する。本実施形態では、フラッシュメモリは、CPLDに外付けされる。そして、FPGAにおけるソフトエラー情報、及びFPGAのコンフィグレーションデータは、フラッシュメモリに格納される。
【0069】
本実施形態における構成について説明する。
【0070】
図5は、本発明の第2の実施形態における情報処理装置の構成の一例を示すブロック図である。本実施形態の情報処理装置505は、FPGA205と、エラー記録用のCPLD105と、フラッシュメモリ135とを含む。CPLD105は、FPGA205と、フラッシュメモリ135とに接続される。
【0071】
FPGA205は、ソフトエラー発生の監視対象であるCRAM215を含む。FPGA205は、CPLD105を介してフラッシュメモリ135から、FPGA205のコンフィグレーションデータを取得する。
【0072】
CPLD105は、ソフトエラー検出部115と、フラッシュメモリインタフェース部125と、読み出しデータ確認部145とを含む。
【0073】
フラッシュメモリ135は、コンフィグレーションデータ記憶領域137と、ソフトエラー情報記憶領域138とを含む。
【0074】
FPGA205は、フラッシュメモリ135のコンフィグレーションデータ記憶領域137に格納されているコンフィグレーションデータを読み出し、FPGA205へロードする。この際、CPLD105の、フラッシュメモリインタフェース部125及び読み出しデータ確認部145は、FPGA205とフラッシュメモリ135との間の信号をそのまま通過させる。
【0075】
FPGA205のコンフィグレーションが完了すると、CPLD105は、フラッシュメモリ135のソフトエラー情報記憶領域138からソフトエラー情報を読み出す。この際、ソフトエラー情報の読み出しは、フラッシュメモリ135のソフトエラー情報記憶領域138において、先頭アドレスから昇順に行われる。フラッシュメモリ135から読み出されたソフトエラー情報は、読み出しデータ確認部145へ渡される。
【0076】
ソフトエラー情報記憶領域138に記録されたソフトエラー情報の消去は、フラッシュメモリ135におけるコンフィグレーションデータの再書き込みと同時に行われる。フラッシュメモリ135におけるコンフィグレーションデータの再書き込みは、例えば、フラッシュメモリ全体におけるデータ消去(チップイレース)の後に行われる。
【0077】
情報処理装置505のその他の構成は、本発明の第1の実施形態における情報処理装置500の構成と同じである。
【0078】
本実施形態における動作について説明する。具体的には、フラッシュメモリに対するソフトエラー情報の読み出し及び書き込みの動作例として、SPI(Serial Peripheral Interface)を有するフラッシュメモリ135が使用された場合について説明する。
【0079】
SPIは、クロック信号、チップセレクト信号、シリアル入力信号、及びシリアル出力信号を有する。チップセレクト信号は、負論理である。また、SPIでは、アドレス長は24ビット、データ長は8ビットで、アドレス、データともエンディアンはMSBファーストである。
【0080】
図6は、本発明の第2の実施形態におけるフラッシュメモリからの読み出し動作の一例を示すタイミングチャートである。
図6において、「リセット」はCPLD105に対するリセット信号を示す。なお、
図6において、制御カウンタの一部の値は省略されている。
●チップセレクト信号は、シリアル入力信号及びシリアル出力信号を有効にする信号である。
●クロック信号は、シリアル入力信号及びシリアル出力信号のタイミングを規定する信号である。
●シリアル入力信号は、フラッシュメモリへ書き込むべき、命令、アドレス、又はデータをシリアル入力する信号である。
●シリアル出力信号は、フラッシュメモリから読み出されたデータをシリアル出力する信号である。
【0081】
CPLD105は、CPLD105の起動後、又はフラッシュメモリ135へのソフトエラー情報の書き込み後に、フラッシュメモリ135からソフトエラー情報を読み出す。
【0082】
制御カウンタが0のとき:
●ソフトエラー検出部115は、リセット信号の‘0’から‘1’への変化を検出する。
【0083】
制御カウンタが1〜8のとき:
●フラッシュメモリインタフェース部125は、リセット信号の‘0’から‘1’への変化を検出すると、制御カウンタ1において、チップセレクト信号を‘1’から‘0’に変化させる。
●フラッシュメモリインタフェース部125は、読み出し(“リード”)を表す命令(OPコード)“0000_0011”をシリアル入力信号へ出力する。
【0084】
制御カウンタが9〜32のとき:
●フラッシュメモリインタフェース部125は、ソフトエラー情報記憶領域138の先頭アドレス24ビットをシリアル入力信号として出力する。
【0085】
制御カウンタが33〜160のとき:
●制御カウンタ33から、フラッシュメモリ135から読み出されたデータがシリアル出力信号に出力される。
●制御カウンタが33〜40のときにおいて、先頭アドレスのデータが読み出される。
●制御カウンタが41〜48のときにおいて、(先頭アドレス+1)のデータが読み出される。
【0086】
制御カウンタが161のとき:
●同様にデータが15アドレス分読み出されたら、フラッシュメモリインタフェース部125は、チップセレクトを‘0’から‘1’に変化させる。
●出力された15アドレスの全データにおいて全ビットが‘1’である場合には、読み出しデータ確認部145は、ソフトエラー情報なしと判断する。
●出力されたあるアドレスのデータにおいて全ビットが‘0’である場合には、読み出しデータ確認部145は、ソフトエラー情報ありと判断して、ソフトエラーカウンタを1だけ増加させる。また、読み出しデータ確認部145は、全ビット‘1’が読み出された、ソフトエラー情報記憶領域における最も先頭側のアドレスを、次回書き込みアドレスとして保持する。
【0087】
図7は、本発明の第2の実施形態におけるフラッシュメモリへの書き込み動作の一例を示すタイミングチャートである。
図7において、「ソフトエラー」はCPLD105に対するソフトエラー信号を示す。なお、
図7において、制御カウンタの一部の値は省略されている。
【0088】
ソフトエラー検出部115は、ソフトエラー信号の‘0’から‘1’への変化を検出すると、フラッシュメモリ135へソフトエラー情報を書き込む。
【0089】
制御カウンタが0のとき:
●ソフトエラー検出部115は、ソフトエラー信号の‘0’から‘1’への変化を検出する。
【0090】
制御カウンタが1〜8のとき:
●フラッシュメモリインタフェース部125は、ソフトエラー信号の‘0’から‘1’への変化を検出すると、チップセレクト信号を‘1’から‘0’へ変化させる。
●フラッシュメモリインタフェース部125は、書き込み準備(“ライトイネーブル”)を表すOPコード“0000_0110”をシリアル入力信号へ出力する。
【0091】
制御カウンタが9のとき:
●フラッシュメモリインタフェース部125は、チップセレクト信号を‘0’から‘1’へ戻す。これによりフラッシュメモリ135へのプログラム信号の出力が可能になる。
【0092】
制御カウンタが10〜17のとき:
●フラッシュメモリインタフェース部125は、チップセレクト信号を‘1’から‘0’へ変化させる。
●フラッシュメモリインタフェース部125は、書き込み開始(“プログラム”)を表すOPコード“0000_0010”をシリアル入力信号へ出力する。
【0093】
制御カウンタが18〜41のとき:
●フラッシュメモリインタフェース部125は、24ビットのアドレスをシリアル入力信号へ出力する。書き込み先のアドレスは、次回書き込み先アドレスである。
【0094】
制御カウンタが42〜49のとき:
●フラッシュメモリインタフェース部125は、全ビット‘0’である8ビットのデータをシリアル入力信号へ出力する。
【0095】
制御カウンタが50のとき:
●フラッシュメモリインタフェース部125は、チップセレクト信号を‘0’から‘1’へ変化させる。
【0096】
以上説明したように、本実施形態の情報処理装置505は、CPLD105とフラッシュメモリ135とが別体であることと、両者が汎用的なインタフェースを介してデータを交換することとを除いて、本発明の第1の実施形態の情報処理装置500と同じである。従って、本実施形態の情報処理装置500には、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録することができるという効果がある。
【0097】
また、本実施形態の情報処理装置505では、フラッシュメモリ135はCPLD105に外付けされ、フラッシュメモリ135とCPLD105とは汎用的なインタフェースを介してデータを交換する。従って、本実施形態の情報処理装置505には、汎用的なフラッシュメモリ135を利用することができるという効果がある。
(第3の実施形態)
次に、本発明の第1乃至2の実施形態の基本である、本発明の第3の実施形態について説明する。
【0098】
図8は、本発明の第3の実施形態における情報処理装置の構成の一例を示すブロック図である。本実施形態の情報処理装置506は、デバイス206と、不揮発性メモリ136と、プログラマブルロジックデバイス(PLD:Programmable Logic Device)106とを含む。
【0099】
デバイス206は、揮発性メモリ216を内蔵する。デバイス206は、揮発性メモリ216におけるソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しない。
【0100】
不揮発性メモリ136は、複数の記憶領域を含む。
【0101】
PLD106は、製造後に内部論理回路を定義・変更できる集積回路である。PLD106は、例えば、FPGA、又はCPLDである。PLD106は、デバイス206と別体である。
【0102】
PLD106は、制御部156を含む。制御部156は、PLD106の製造後に定義された内部論理回路を含む。PLD106は、一般的に、書き込み可能な回路規模が小さいほど安価である。また、実装される処理がより簡略であるほど、処理の実装に必要な回路規模はより小さい。そのため、制御部156は、処理がより簡略であるほど、より安価なPLD106を用いて実装可能である。
【0103】
制御部156は、デバイス206から、ソフトエラーの発生を示す信号を受信した場合に、ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリ136に含まれる複数の記憶領域のうち、ソフトエラー情報が書き込まれていない記憶領域のみへ書き込む。
【0104】
以上説明したように、本実施形態の情報処理装置506では、PLD106は、デバイス206と別体である。即ち、環境放射線等に起因するソフトエラーの発生は局所的であるが、PLD106とデバイス206とは離れた場所に位置する。そのため、デバイス206が内蔵する揮発性メモリ216においてソフトエラーが発生した場合であっても、PLD106は、正常に動作する可能性が高い。すなわち、本実施形態のPLD106は、ソフトエラーを信頼性が高い方法で記録することができる。
【0105】
更に、本実施形態の情報処理装置506では、制御部156は、不揮発性メモリ136に対して、簡略な方法でソフトエラー情報の書き込み及び読み出しを行う。例えば、制御部156は、ソフトエラー情報の上書きを行う必要がない。そのため、制御部156を含むPLD106の回路規模を抑制することが可能である。すなわち、本実施形態のPLD106は、ソフトエラーを安価に記録することができる。
【0106】
従って、本実施形態の情報処理装置506には、ソフトエラーを検出する機能を有するが、検出したソフトエラーを記録する機能を有しないデバイスが内蔵する揮発性メモリにおけるソフトエラーを、信頼性が高い方法で且つ安価に、記録することができるという効果がある。
【0107】
なお、本実施形態の情報処理装置506における制御部156は、複数の構成要素に分割されてもよい。例えば、制御部156は、第2の実施形態における、ソフトエラー検出部115と、フラッシュメモリインタフェース部125と、読み出しデータ確認部145とに分割されてもよい。あるいは、例えば、制御部156は、第1の実施形態における、ソフトエラー検出部110と、フラッシュメモリインタフェース部120と、読み出しデータ確認部140とに分割されてもよい。
【0108】
また、本実施形態の情報処理装置506では、第1又は第2の実施形態と同様に、ソフトエラー情報のバイト長は、不揮発性メモリ136におけるセクタ長の倍数であってもよい。そして、本実施形態の情報処理装置506における制御部156は、不揮発性メモリ136におけるソフトエラー情報の書き込みを、セクタ長を単位として行ってもよい。この場合には、ソフトエラー情報の書き込みにおいて、ソフトエラー情報(例えば全ビット‘0’のビット列)に、ソフトエラー情報がないことを示すビット列(例えば全ビット‘1’のビット列)が付加されたバイト列を書き込む必要がないという効果がある。
【0109】
また、本実施形態の情報処理装置506における制御部156は、第1又は第2の実施形態と同様に、起動時及びソフトエラー情報を不揮発性メモリ136に含まれる記憶領域へ書き込んだ後に、書き込まれているソフトエラー情報を不揮発性メモリ136から読み出すことと、不揮発性メモリ136から読み出したソフトエラー情報の個数を出力することとを更に行ってもよい。この場合には、読み出したソフトエラー情報の個数に基づいて、エラーの発生を検知することができるという効果がある。
【0110】
また、本実施形態の情報処理装置506における制御部156は、第1又は第2の実施形態と同様に、不揮発性メモリ136において書き込み可能なソフトエラー情報の個数を所定の上限値以下に制限してもよい。そして、制御部156は、ソフトエラー情報の個数が前記上限値に達した後には、不揮発性メモリ136におけるソフトエラー情報の書き込みを停止してもよい。この場合には、不揮発性メモリ136の記憶容量を制限できるという効果がある。
【0111】
また、本実施形態の情報処理装置506における制御部156は、第1又は第2の実施形態と同様に、ソフトエラー情報の個数を出力する際に、ソフトエラー情報が書き込まれていない記憶領域のうち、最も先頭側のアドレスを保持してもよい。そして、制御部156は、ソフトエラー情報を、不揮発性メモリ136にソフトエラー情報を次に書き込む際に、ソフトエラー情報を不揮発性メモリ136における、保持しているアドレスにより示される記憶領域へ書き込んでもよい。この場合には、ソフトエラー情報を不揮発性メモリ136に書き込む際に、不揮発性メモリ136においてソフトエラー情報をどのアドレスに書き込めばよいかを探す必要がないという効果がある。
【0112】
また、本実施形態の情報処理装置506では、第1又は第2の実施形態と同様に、不揮発性メモリ136におけるソフトエラー情報の記憶可能領域において、記憶可能領域の初期状態、又は記憶可能領域内の全セクタにおける消去直後において、記憶可能領域内の全セクタ内の全てのビットは1であってもよい。そして、本実施形態の情報処理装置506における制御部156は、ソフトエラー情報として、全てのビットが0であるバイト単位のデータを書き込んでもよい。この場合には、ソフトエラー情報を不揮発性メモリ136に書き込む処理が、より簡略化されるという効果がある。
【0113】
また、本実施形態の情報処理装置506における制御部156は、第1又は第2の実施形態と同様に、不揮発性メモリ136におけるソフトエラー情報を記憶可能な全セクタにおける消去を指示する信号を受信した場合に、不揮発性メモリ136におけるソフトエラー情報を記憶可能な全セクタにおける消去を行ってもよい。この場合には、不揮発性メモリ136の残容量が一旦無くなった後にも、ソフトエラー情報の記録を再開できるという効果がある。
【0114】
また、本実施形態の情報処理装置506では、第1の実施形態と同様に、不揮発性メモリ136は、PLD106に内蔵されてもよい。
【0115】
図9は、本発明の各実施形態における通信装置を実現可能なハードウェア構成の一例を示すブロック図である。
【0116】
情報処理装置907は、記憶装置902と、CPU(Central Processing Unit)903と、キーボード904と、モニタ905と、I/O(Input/Output)908とを備え、これらが内部バス906で接続されている。記憶装置902は、制御部156等のCPU903の動作プログラムを格納する。CPU903は、情報処理装置907全体を制御し、記憶装置902に格納された動作プログラムを実行し、I/O908を介して制御部156等のプログラムの実行やデータの送受信を行なう。なお、上記の情報処理装置907の内部構成は一例である。情報処理装置907は、必要に応じて、キーボード904、モニタ905を接続する装置構成であってもよい。
【0117】
上述した本発明の各実施形態における通信装置は、専用の装置によって実現してもよいが、コンピュータ(情報処理装置)によっても実現可能である。この場合、係るコンピュータは、記憶装置902に格納されたソフトウェア・プログラムをCPU903に読み出し、読み出したソフトウェア・プログラムをCPU903において実行する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、
図1に示したCPLD100の各部の機能、
図5に示したCPLD105の各部の機能、又は
図8に示したPLD106の各部の機能を実現可能な記述がなされていればよい。ただし、これらの各部には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム(コンピュータ・プログラム)は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【0118】
以上、本発明を、上述した各実施形態及びその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及びその変形例に記載した範囲に限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項により明らかである。
【0119】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスから、前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む制御手段
を備えたプログラマブルロジックデバイスであって、
前記プログラマブルロジックデバイスは前記デバイスと別体である
プログラマブルロジックデバイス。
(付記2)
前記ソフトエラー情報のバイト長は、前記不揮発性メモリにおけるセクタ長の倍数であり、
前記制御手段は、前記不揮発性メモリにおける前記ソフトエラー情報の書き込みを、前記セクタ長を単位として行う
付記1に記載のプログラマブルロジックデバイス。
(付記3)
前記制御手段は、
起動時及び前記ソフトエラー情報を前記記憶領域へ書き込んだ後に、書き込まれている前記ソフトエラー情報を前記不揮発性メモリから読み出すことと、
前記不揮発性メモリから読み出した前記ソフトエラー情報の個数を出力することと
を更に行う
付記1又は付記2に記載のプログラマブルロジックデバイス。
(付記4)
前記制御手段は、前記不揮発性メモリにおいて書き込み可能な前記ソフトエラー情報の個数を所定の上限値以下に制限し、前記ソフトエラー情報の個数が前記上限値に達した後には、前記不揮発性メモリにおける前記ソフトエラー情報の書き込みを停止する
付記1乃至3のいずれか1項に記載のプログラマブルロジックデバイス。
(付記5)
前記制御手段は、
前記ソフトエラー情報の個数を出力する際に、前記ソフトエラー情報が書き込まれていない前記記憶領域のうち、最も先頭側のアドレスを保持し、
前記ソフトエラー情報を前記不揮発性メモリに含まれる複数の前記記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域へ次に書き込む際に、前記ソフトエラー情報を前記不揮発性メモリにおける、保持している前記アドレスにより示される前記記憶領域へ書き込む
付記1乃至4のいずれか1項に記載のプログラマブルロジックデバイス。
(付記6)
前記不揮発性メモリにおける前記ソフトエラー情報の記憶可能領域において、前記記憶可能領域の初期状態、又は前記記憶可能領域内の全セクタにおける消去直後において、前記記憶可能領域内の全セクタ内の全てのビットは1であり、
前記制御手段は、前記ソフトエラー情報として、全てのビットが0であるバイト単位のデータを書き込む
付記1乃至5のいずれか1項に記載のプログラマブルロジックデバイス。
(付記7)
前記制御手段は、前記不揮発性メモリにおける前記ソフトエラー情報を記憶可能な全セクタにおける消去を指示する信号を受信した場合に、前記不揮発性メモリにおける前記ソフトエラー情報を記憶可能な全セクタにおける消去を行う
付記1乃至6のいずれか1項に記載のプログラマブルロジックデバイス。
(付記8)
前記不揮発性メモリは、前記プログラマブルロジックデバイスに外付けされる
付記1乃至7のいずれか1項に記載のプログラマブルロジックデバイス。
(付記9)
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスから、前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生の記録を指示するソフトエラー記録指示を送信するソフトエラー検出部と、
前記ソフトエラー記録指示に基づいて、前記ソフトエラーの発生を表すソフトエラー情報を、不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込むことと、
起動時及び前記ソフトエラー情報を前記記憶領域へ書き込んだ後に、書き込まれている前記ソフトエラー情報を前記不揮発性メモリから読み出すこととを行う
フラッシュメモリインタフェース部と、
前記不揮発性メモリから読み出した前記ソフトエラー情報の個数を出力する読み出しデータ確認手段
を備えたプログラマブルロジックデバイスであって、
前記プログラマブルロジックデバイスは前記デバイスと別体である
プログラマブルロジックデバイス。
(付記10)
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、
不揮発性メモリと、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む制御手段を含む
プログラマブルロジックデバイスとを備えた情報処理装置であって、
前記プログラマブルロジックデバイスは前記デバイスと別体である
情報処理装置。
(付記11)
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、前記デバイスと別体であるプログラマブルロジックデバイスは、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む
ソフトエラー記録方法。
(付記12)
内蔵する揮発性メモリにおけるソフトエラーを検出する機能を有するが、検出した前記ソフトエラーを記録する機能を有しないデバイスと、不揮発性メモリとに接続された、前記デバイスと別体であるプログラマブルロジックデバイスに、
前記デバイスから前記ソフトエラーの発生を示す信号を受信した場合に、前記ソフトエラーの発生を表すソフトエラー情報を、前記不揮発性メモリに含まれる複数の記憶領域のうち、前記ソフトエラー情報が書き込まれていない前記記憶領域のみへ書き込む処理を実行させるソフトエラー記録プログラム。