(57)【特許請求の範囲】
【請求項１】
キャッシュメモリを内蔵するＣＰＵを持つデータ処理装置において，
プログラムの実行結果を格納する結果格納領域に各回の実行結果を保存する手段と，
同じプログラムを複数回実行させ，前記結果格納領域にある複数の実行結果を比較し，実行結果が等しい場合には次のプログラム処理のために，実行結果が等しくない場合には再度同じプログラムを実行するために，実行するプログラムアドレスを制御するシーケンス制御手段と，
同じプログラムを繰り返して実行する前にキャッシュメモリをリセットする手段とを備える
ことを特徴とするシングルイベントアップセット対策データ処理装置。
【請求項２】
キャッシュメモリを内蔵するＣＰＵを持つデータ処理装置におけるキャッシュメモリのシングルイベントアップセット対策処理方法であって，
目的とする処理を行うプログラムのアドレスをセットし，プログラムを実行する過程と，
プログラムの実行結果を第１の結果格納領域に保存する過程と，
同じプログラムを繰り返して実行する前にキャッシュメモリをリセットする過程と，
前記プログラムのアドレスを再セットし，プログラムを実行する過程と，
プログラムの実行結果を第２の結果格納領域に保存する過程と，
前記第１および第２の結果格納領域にある複数の実行結果を比較し，実行結果が等しい場合には次のプログラム処理に移行し，実行結果が等しくない場合には再度同じプログラムの実行処理またはエラー処理へ移行する過程とを有する
ことを特徴とするシングルイベントアップセット対策処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，放射線等によりデータ保持回路にシングルイベントアップセット（ＳＥＵ：Ｓｉｎｇｌｅ  Ｅｖｅｎｔ  Ｕｐｓｅｔ）が発生する分野で使用される計算機の技術に係わり，特に衛星に搭載するデータ処理装置や原子炉内で使用するデータ処理装置に好適なシングルイベントアップセット対策データ処理装置およびシングルイベントアップセット対策処理方法に関する。
【０００２】
【従来の技術】
まず，シングルイベントアップセット（ＳＥＵ：Ｓｉｎｇｌｅ  Ｅｖｅｎｔ  Ｕｐｓｅｔ）について説明する。宇宙環境に存在する重粒子等の放射線がＣＭＯＳ等のＬＳＩに進入すると，データ保持回路（メモリ，レジスタ等）におけるデータの反転，例えば２値論理において，「１→０」や「０→１」というような情報反転現象を引き起こすことが知られている。この反転現象は再書き込みによりデータが回復することから，一過性のソフトエラー現象と考えられ，シングルイベントアップセット（ＳＥＵ）といわれる。
【０００３】
図４は，シングルイベントアップセット（ＳＥＵ）の例を示す図である。
ＣＰＵ１に内蔵のキャッシュメモリ（ｃａｃｈｅ  ｍｅｍｏｒｙ）１１に重粒子が入射されると，放射線のエネルギーがチャージされ，チャージが一定の量になることにより情報の反転が生じる。図４中，ｓｅ１は，重粒子によるＳＥＵエラーを示す。ｓｅ１は，キャッシュメモリ１１のみで，メインメモリ（ＭＥＭ：ｍａｉｎ  ｍｅｍｏｒｙ）２には反映されないが，キャッシュメモリ１１がストアスルー方式の場合には，ｓｅ１を使って計算された演算結果であるｓｅ２は，メインメモリ２に反映されてしまう。
【０００４】
従来は，衛星搭載のデータ処理装置に対して，それほど高速性が要求されなかったため，宇宙用ＣＰＵ（低性能）を使用し，必要に応じてハードウェア回路を付加することにより，宇宙搭載機器を開発することが行われていた。そして，シングルイベントアップセットが発生しやすいキャッシュメモリを内蔵したＣＰＵは使用されていなかった。
【０００５】
しかし，近年の衛星，特に科学衛星においては，ミッションの高機能化，高性能化要求の増加に伴い，高性能のＣＰＵで対処せざるを得ない状況になってきている。現在のところ，宇宙用に開発された数十ＭＩＰＳ以上の高性能な宇宙用ＣＰＵは，世の中に存在しない。また，一般的に宇宙用デバイスを開発するには膨大な開発費が必要とされるが，高性能宇宙用ＣＰＵを開発する場合にも同様に膨大な開発費用が必要である。しかし，高性能宇宙用ＣＰＵを開発したとしても，需要が少なく，製造ラインを保持していくためにも莫大な費用がかかるという問題がある。
【０００６】
このような従来の技術的な背景を考慮すると，民生用の高性能ＣＰＵを備えたデータ処理装置を衛星に搭載することが必要となる。
【０００７】
【発明が解決しようとする課題】
一般の民生用高性能ＣＰＵは，コンピュータシステムにおいてＣＰＵとメインメモリとの性能差を吸収するためにキャッシュメモリを内蔵している。一方，従来の衛星搭載のデータ処理装置は高速性が要求されなかったために，キャッシュを内蔵したＣＰＵは使用されていなかった。衛星に搭載するデータ処理装置において，高性能化のためにキャッシュメモリ内蔵のＣＰＵを用いる場合，キャッシュメモリおよびメインメモリに対してＳＥＵ対策を考える必要がある。
【０００８】
ここで，メインメモリは，通常ＥＤＡＣ（Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ  Ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ：１ビットエラー訂正・２ビットエラー検出機構）を装備しており，これによりＳＥＵ対策が実現されている。このＥＤＡＣにより，メインメモリでＳＥＵが発生した場合には，１ビットエラーは訂正され，また，２ビットエラーは検出されるので問題が生ずることはない。これによって，メインメモリはクリティカルとならないことが期待されている。
【０００９】
一方，ＣＰＵに内蔵されるキャッシュメモリは，物量等の関係もあり，通常ではＥＤＡＣ等のエラー訂正・検出機構が装備されていない。そのため，宇宙放射線環境で使用する場合には，ＳＥＵが発生しても表面化しないで演算処理が進むことがある。これにより，誤った結果を生む等のきわめてクリティカルな事態が起こる。
【００１０】
本発明の目的は，ＣＰＵ内のキャッシュメモリで発生するＳＥＵに対処可能なデータ処理装置およびＳＥＵ対策方法を実現することである。本発明により，宇宙放射線環境において民生用高性能ＣＰＵの使用が可能となる。
【００１１】
【課題を解決するための手段】
図１は，本発明のデータ処理装置の構成例を示す。
データ処理装置１は，キャッシュメモリ１１を内蔵するＣＰＵ１０を備えるとともに，ＣＰＵ１０による命令実行機能としてシーケンス制御手段１２，結果保存手段１３，キャッシュリセット手段１５を持つ。また，メインメモリ（図示省略）に複数の処理結果が格納される結果格納領域１４を持つ。
【００１２】
結果保存手段１３は，メインメモリの結果格納領域１４に，ＣＰＵ１０で計算されたプログラムの各回の実行結果を保存する手段である。シーケンス制御手段１２は，結果格納領域１４にある複数の実行結果の比較を行い，実行結果が等しい場合には次のプログラム処理のために，実行結果が等しくない場合には再度同じプログラムを実行するために，実行するプログラムアドレスを制御する手段である。キャッシュリセット手段１５は，同じプログラムを繰り返して実行する前にキャッシュメモリ１１をリセットする手段である。
【００１３】
本発明の基本的な考え方は，プログラムの２回計算方式である。すなわち，基本的には同一プログラムを２回実行し，その実行結果が等しい場合には，次のプログラムの実行へ進む方式を採用する。１回目の計算開始時および２回目の計算開始時におけるキャッシュメモリ１１を，実行しようとするプログラムに対して初期状態にしてから処理を進める。そのために２回目以降の各計算開始時にはキャッシュメモリ１１をリセットする。
【００１４】
キャッシュメモリの特徴として，実行しようとしているプログラム等がキャッシュメモリ内に存在すれば，そのプログラム等を使用して実行する。すなわち，キャッシュメモリの利用によって，そのプログラム等を新たにメインメモリからロードしないため，効率化が図られる。しかし，このようなキャッシュメモリの特徴を利用した場合，宇宙放射線環境でプログラムの２回計算を行う方式では，１回目の計算時にキャッシュメモリで発生したＳＥＵが，２回目の計算時にも残ってしまい，２回目の計算結果に影響を及ぼしてしまうおそれがある。そこで，２回目以降の計算開始時にキャッシュメモリをリセット（パージ）することにより，このような前回の計算で発生したＳＥＵの影響を回避することができる。
【００１５】
また，プログラムの処理時間は，キャッシュメモリにおいてＳＥＵが発生する頻度に比べて十分短い。このため，プログラムを２回計算した場合に，２回ともＳＥＵが発生する確率は非常に小さい。
【００１６】
したがって，このようにプログラムを２回計算して，その実行結果を比較し，計算結果が異なっているかどうかを調べることにより，キャッシュでＳＥＵが発生した場合にはそれを検知できる。また，計算結果が等しい場合にのみ次の処理に進むため，ＳＥＵ発生による誤動作を回避できる。
【００１７】
【発明の実施の形態】
以下，本発明の実施の形態を説明する。
図２は，本発明の実施の形態における処理およびキャッシュメモリの変遷を説明する図である。
【００１８】
本発明を実現するためには，逐次的にプログラムＡ，Ｂ，Ｃ，…と処理していくような従来のプログラム処理において，以下のような処理を行う。
まず，ＣＰＵ１０はプログラムの１回目の計算を行う。このとき，シーケンス制御手段１２は，ＣＰＵ１０が実行しようとしているプログラムＡのアドレス「ｅｐ−ｉ］をセットする。ＣＰＵ１０によるプログラムＡの命令フェッチに伴い，メインメモリ２からプログラムＡがキャッシュメモリ１１にロードされ（▲１▼），ＣＰＵ１０で実行される。計算結果（ａｎｓ−Ａ）は，結果保存手段１３によりメインメモリ２の結果格納領域１４に格納しておく。
【００１９】
ここで，キャッシュメモリ１１にＳＥＵが発生したとする（▲２▼）。
次に，プログラムＡについて２回目の計算を行うが，その前に，キャッシュリセット手段１５によりキャッシュメモリ１１を一度リセットし，初期状態にする（▲３▼）。２回目の計算を開始すると，１回目の計算と同様に実行するプログラムＡがキャッシュメモリ１１上には存在しないので，再びメインメモリ２からキャッシュメモリ１１にロードされ（▲４▼），２回目の計算が行われ，計算結果（ａｎｓ−Ｂ）が結果格納領域１４に格納される。
【００２０】
シーケンス制御手段１２は，結果格納領域１４に保存された１回目の計算結果（ａｎｓ−Ａ）と２回目の計算結果（ａｎｓ−Ｂ）とを比較する（▲５▼）。計算結果が等しければ，次の処理（プログラムＢ）へ進むため，プログラムＢのアドレス「ｅｐ−ｉ＋１」をセットする。もし，計算結果（ａｎｓ−Ａ，ａｎｓ−Ｂ）が等しくなければ，キャッシュメモリ１１をリセットし初期状態にして，プログラムＡのアドレス「ｅｐ−ｉ］を再セットする。２回目と同様にして３回目の計算を行い，３回目の計算結果が１回目（ａｎｓ−Ａ）あるいは２回目（ａｎｓ−Ｂ）の計算結果と等しければ，次の処理（プログラムＢ）に進むため，プログラムＢのアドレス「ｅｐ−ｉ＋１」をセットする。計算結果が等しくない場合には同様の方法の処理を数回繰り返し，予め定めた回数を繰り返しても計算結果が等しくない場合には，ＣＰＵエラーとして処理する。
【００２１】
このように，２回目の計算の実行開始時にキャッシュメモリ１１をリセットして初期状態へ戻すので，キャッシュメモリ１１にＳＥＵが発生したとしても，２回目の計算は，ＳＥＵの影響を受けることがない。
【００２２】
本発明におけるシーケンス制御手段１２，結果保存手段１３，キャッシュリセット手段１５を実現するためのプログラムは，例えばアプリケーションプログラムと組み合わせることが可能なライブラリプログラムとして提供することができる。また，これらの手段をオペレーティング・システムの機能として提供することも可能である。
【００２３】
図３は，本発明の実施の形態における処理のフローチャートである。
まず，処理するプログラムのアドレスをセットして（Ｓ１），プログラムを実行し（Ｓ２），実行結果を所定の結果格納領域１４に格納する（Ｓ３）。実行は１回目かどうかを判断して（Ｓ４），１回目であればキャッシュメモリ１１をリセットし（Ｓ７），今実行したプログラムのアドレスを再セットして（Ｓ８），ステップＳ２へ戻り，処理を進める。
【００２４】
ステップＳ４の判定で実行が１回目でなければ，結果格納領域１４に格納されている新しい実行結果を前の実行結果と比較する（Ｓ５）。結果が同じであれば，ＳＥＵは発生していないので，次のプログラム実行へ移る。結果が同じでなければ，さらに実行がｎ回目（ｎは所定のリトライ回数）かどうかを判断し（Ｓ６），ｎ回実行していなければ，キャッシュメモリ１１をリセットし（Ｓ７），アドレスを再セットして（Ｓ８），ステップＳ２へ戻り処理を進める。所定のリトライ回数であるｎ回実行しても，実行結果が同じでなければ，ＳＥＵ以外のエラーと考えられるので，エラー処理へ進む（Ｓ９）。
【００２５】
本発明を用いたシステムの性能評価のため，ある試験システムで評価用ソフトウェアを実行させて，キャッシュメモリを使用した（ｃａｃｈｅ  ｅｎａｂｌｅ）  ときと，キャッシュメモリを使用しなかった（ｃａｃｈｅ  ｄｉｓａｂｌｅ）ときの実行時間の比較を行った。
【００２６】
メモリとしてＳＲＡＭを用いた場合，実行時間比は，キャッシュメモリを使用したときのプログラムの実行時間＝１に対して，キャッシュメモリを使用しなかったときは実行時間＝５であった。また，メモリとしてＤＲＡＭを用いた場合のキャッシュメモリを使用したときと使用しなかったときの実行時間比は，１対７であった。
【００２７】
すなわち，ｃａｃｈｅ  ｄｉｓａｂｌｅ  状態での実行時間は，ｃａｃｈｅ  ｅｎａｂｌｅ状態での実行時間に比べて，メモリがＳＲＡＭおよびＤＲＡＭの場合において，それぞれ５倍および７倍要する。このことは，同じプログラムを２回以上実行したとしても，キャッシュメモリを使用したほうがキャッシュメモリを使用しない場合よりも，高速実行が可能であることを示す。したがって，本発明を用いてシングルイベントアップセット対策を行うことにより，キャッシュメモリを内蔵する民生用高性能ＣＰＵを用いることが可能になり，それによる性能向上を図ることができる。
【００２８】
なお，衛星搭載機器の場合，通常メモリとしては，ＳＲＡＭを使用する。これは一般的にＳＲＡＭのほうがＤＲＡＭよりも耐放射線性に優れているからである。
【００２９】
【発明の効果】
以上説明したように，本発明によれば，高性能ＣＰＵの内蔵キャッシュのＳＥＵを回避でき，宇宙放射線環境においてはクリティカルな民生用の高性能ＣＰＵを，宇宙放射線環境で利用できることにより，衛星ミッションの高性能・高機能要求に対応でき，高価な宇宙用ＣＰＵの開発・維持に伴う費用負担を回避できる。
【図面の簡単な説明】
【図１】本発明のデータ処理装置の構成例を示す図である。
【図２】本発明の実施の形態における処理およびキャッシュメモリの変遷を示す図である。
【図３】本発明の実施の形態における処理のフローチャートである。
【図４】シングルイベントアップセット（ＳＥＵ）の例を示す図である。
【符号の説明】
１  データ処理装置
２  メインメモリ（ＭＥＭ）
１０  ＣＰＵ
１１  キャッシュメモリ
１２  シーケンス制御手段
１３  結果保存手段
１４  結果格納領域
１５  キャッシュリセット手段
【図１】
0003553793.tif 000002
【図２】
0003553793.tif 000003
【図３】
0003553793.tif 000004
【図４】
0003553793.tif 000005