(57)【要約】  第１および第２のデータ処理モジュールと、第１および第２のデータ検査モジュールとを備える高速データ処理システムを記載する。第１および第２のデータ処理モジュールはそれぞれ、データ入力部で受け取られたデータに対して実質的に同じ処理ステップを実行するように構成され、それぞれが出力を与える。第１および第２の検査モジュールは、前記第１および第２のデータ処理モジュールの出力どうしを比較するように、また前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示すエラー信号を出力するように構成される。第１および第２の検査モジュールは、物理的にそれぞれ離れたデバイス上に配置される。いくつかの構成では、第３の検査モジュールが設けられ、この検査モジュールは、前記第１および第２の検査モジュールそれぞれから物理的に離すことができる。
2009526299.tif 000002
【特許請求の範囲】
【請求項１】
データ入力部と、第１および第２のデータ処理モジュールと、第１および第２のデータ検査モジュールとを備えるデータ処理システムであって、
前記第１および第２のデータ処理モジュールがそれぞれ、前記データ入力部で受け取られたデータに対して実質的に同じ処理ステップを実行するように構成され、それぞれが出力し、
前記第１および第２の検査モジュールが、前記第１および第２のデータ処理モジュールの前記出力どうしを比較するように、また前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示すエラー信号を出力するように構成され、
前記第１および第２の検査モジュールが、物理的にそれぞれ離れたデバイス上に配置される、データ処理システム。
【請求項２】
前記第１の検査モジュールが第１および第２の入力部を有し、前記第２の検査モジュールが第１、第２および第３の入力部を有し、
前記第１の検査モジュールの前記第１および第２の入力部が、それぞれ前記第１および第２のデータ処理モジュールの前記出力を受け取り、
前記第１の検査モジュールが、前記第１および第２のデータ処理モジュールの前記出力にそれぞれ対応する第１および第２のデータ信号と、前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す第１のエラー信号とを出力し、
前記第２の検査モジュールの前記第１および第２の入力部が、前記第１の検査モジュールから前記第１および第２のデータ信号を受け取り、前記第２の検査モジュールの前記第３の入力部が、前記第１の検査モジュールから前記第１のエラー信号を受け取る、請求項１に記載のデータ処理システム。
【請求項３】
前記第１および第２のデータ処理モジュールが、物理的にそれぞれ離されたデバイス上に配置される、請求項１または２に記載のデータ処理システム。
【請求項４】
前記第１および第２のデータ処理モジュールの前記出力どうしを比較するように、また前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す信号を出力するように構成された第３の検査モジュールをさらに備える、請求項１〜３のいずれかに記載のデータ処理システム。
【請求項５】
前記第１の検査モジュールが第１および第２の入力部を有し、前記第２の検査モジュールが第１、第２および第３の入力部を有し、前記第３の検査モジュールが第１、第２および第３の入力部を有し、
前記第１の検査モジュールの前記第１および第２の入力部が、それぞれ前記第１および第２のデータ処理モジュールの前記出力を受け取り、
前記第１の検査モジュールが、前記第１および第２のデータ処理モジュールの前記出力にそれぞれ対応する第１および第２のデータ信号と、前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す第１のエラー信号とを出力し、
前記第２の検査モジュールの前記第１および第２の入力部が、前記第１の検査モジュールから前記第１および第２のデータ信号を受け取り、前記第２の検査モジュールの前記第３の入力部が、前記第１の検査モジュールから前記第１のエラー信号を受け取り、
前記第２の検査モジュールが、前記第１および第２のデータ処理モジュールの前記出力にそれぞれ対応する第３および第４のデータ信号と、前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す第２のエラー信号とを出力し、
前記第３の検査モジュールの前記第１および第２の入力部が、前記第２の検査モジュールから前記第３および第４のデータ信号を受け取り、前記第３の検査モジュールの前記第３の入力部が、前記第１の検査モジュールから前記第２のエラー信号を受け取る、請求項４に記載のデータ処理システム。
【請求項６】
前記第３の検査モジュールが前記第１および第２の検査モジュールそれぞれから物理的に離される、請求項４または５に記載のデータ処理システム。
【請求項７】
前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す、前記第３の検査モジュールから出力される前記信号が、入力として前記第１の検査モジュールに与えられる、請求項４〜６のいずれかに記載のデータ処理システム。
【請求項８】
前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す前記信号の少なくとも１つが、入力として前記第１および第２のデータ処理モジュールの少なくとも一方に与えられる、請求項１〜７のいずれかに記載のデータ処理システム。
【請求項９】
エラー出力フラグをさらに含み、前記エラー出力フラグが、前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行しなかったことを示す信号を前記検査モジュールのどれかが出力したときにセットされる、請求項１〜８のいずれかに記載のデータ処理システム。
【請求項１０】
前記第１および第２の処理モジュールそれぞれの機能が、１つまたは複数のメモリモジュール内に記憶されたデータによって定義される、請求項１〜９のいずれかに記載のデータ処理システム。
【請求項１１】
前記第１の処理モジュールの前記機能が第１のメモリモジュール内に記憶されたデータによって定義され、前記第２の処理モジュールの前記機能が第２のメモリモジュール内に記憶されたデータによって定義される、請求項１０に記載のデータ処理システム。
【請求項１２】
前記データ入力部で受け取られた前記データが、前記メモリモジュール内の記憶場所を参照する符号を含み、前記記憶場所が前記データ処理モジュールの機能を定義するデータの記憶場所である、請求項１０または１１に記載のデータ処理システム。
【請求項１３】
データ入力を第１および第２のデータ処理モジュールの両方に渡すステップと、
前記データ入力に対して前記第１および第２のデータ処理モジュールが実質的に同じ処理を実行するように構成するステップと、
第１および第２の検査モジュールが、前記データ入力に対して前記第１および第２のデータ処理モジュールが実質的に同じ処理を実行したかどうかを示すエラー信号を出力するように構成するステップとを含むデータ処理の方法であって、
前記第１および第２の検査モジュールが、物理的にそれぞれ離れたデバイス上に配置される方法。
【請求項１４】
前記第１および第２のデータ処理モジュール両方の出力を前記第１の検査モジュールに渡すステップと、
前記第１および第２のデータ処理モジュールの前記出力を前記第１の検査モジュールから前記第２の検査モジュールに、前記データ入力部で受け取られた前記データ入力に対して前記第１および第２のデータ処理モジュールが実質的に同じ処理を実行したかどうかを示す第１のエラー信号とともに渡すステップとをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記第１および第２のデータ処理モジュールが、物理的にそれぞれ離されたデバイス上に配置される、請求項１３または１４に記載の方法。
【請求項１６】
前記第１および第２のデータ処理モジュール両方の前記出力を第３の検査モジュールに渡すステップをさらに含み、前記第３の検査モジュールが、前記データ入力に対して前記第１および第２のデータ処理モジュールが実質的に同じ処理を実行したかどうかを示すエラー信号を出力するように構成される、請求項１３〜１５のいずれかに記載の方法。
【請求項１７】
前記第１および第２のデータ処理モジュール両方の出力を前記第１の検査モジュールに渡すステップと、
前記第１および第２のデータ処理モジュールの前記出力を前記第１の検査モジュールから前記第２の検査モジュールに、前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理を実行したかどうかを示す第１のエラー信号とともに渡すステップと
前記第１および第２のデータ処理モジュールの前記出力を前記第２の検査モジュールから前記第３の検査モジュールに、前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理を実行したかどうかを示す第２のエラー信号とともに渡すステップとをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記第３の検査モジュールが、前記第１および第２の検査モジュールそれぞれから物理的に離される、請求項１６または１７に記載の方法。
【請求項１９】
前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す、前記第３の検査モジュールから出力される前記信号を、入力として前記第１の検査モジュールに与えるステップをさらに含む、請求項１６〜１８のいずれかに記載の方法。
【請求項２０】
前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す前記信号の少なくとも１つを、入力として前記第１および第２のデータ処理モジュールの少なくとも一方に与えるステップをさらに含む、請求項１３〜１９のいずれかに記載の方法。
【請求項２１】
前記データ入力が、前記第１および第２のデータ処理モジュールがアクセスできる１つまたは複数のメモリモジュール内の記憶場所を参照する符号を含み、前記記憶場所が前記データ処理モジュールの機能を定義するデータの記憶場所である、請求項１３〜２０のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理のシステムおよび方法に関し、詳細には、高水準の精度で高速動作するデータ処理システムに関する。
【背景技術】
【０００２】
どんなデータ処理システムでも重要な２つの問題は、データ処理の速度と精度である。精度を向上させるための多くの構成が提案されてきたが、こうした構成では追加の処理ステップを必要とすることが多く、この追加処理ステップは動作速度を低下させるか、実施コストを増加させるか、あるいはその両方である。したがって、一部のデータ処理システムでは、速度、精度およびコストは競合する要件であり、データ処理システムの要件に応じてバランスを取る必要がある。
【０００３】
精度を向上させるための多くの方法で冗長性を利用する。例えば、並行して動作する機能的に同一の３つの回路を使用してある特定の動作を３回実行し、３つの回路のうちの少なくとも２つで同じ出力が得られる場合に出力を受容することができる。このような構成には単純さの魅力があるが、３つ（以上）の回路を並行して使用することは、状況によっては過度に無駄が多いとも考えられる。
【０００４】
精度を向上させるための他の構成では、誤り訂正符号を使用する。このような構成は、誤りを単純に識別するのではなくいくつかの誤りを訂正できるという利点を有するが、データに関してのオーバヘッド、およびデータ処理要件が、実施するには費用がかかることがあり、またデータ処理速度に悪影響を及ぼす可能性がある。
【０００５】
データ処理回路は多くの形態の誤りを起こしやすい。特に問題となる誤りの１つの形態は、放射線誘起エラーであり、これは「ソフトエラー」または「シングルイベントアップセット」と呼ばれることもある。放射線誘起エラーは、メモリデバイスの半導体をイオン化する放射性粒子（例えばα粒子）などの荷電粒子によって、あるいは高エネルギー宇宙線または太陽粒子から生じた粒子によって引き起こされる。収集電荷が十分に大きい場合には、特定のメモリセルの認識された状態が誤っている可能性がある。放射線誘起エラーは、性質として偶発的な傾向があり、検出するのが困難なことがある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記で概説した問題のいくつかを克服または軽減し、あるいは現在利用可能な解決策の代替策を提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明は、データ入力部と、第１および第２のデータ処理モジュールと、第１および第２のデータ検査モジュールとを備えるデータ処理システムを提供し、
前記第１および第２のデータ処理モジュールがそれぞれ、前記データ入力部で受け取られたデータに対して実質的に同じ処理ステップを実行するように構成され、
前記第１および第２の検査モジュールが、前記第１および第２のデータ処理モジュールの出力どうしを比較するように、また前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示すエラー信号を出力するように構成され、
前記第１および第２の検査モジュールが、物理的にそれぞれ離れたデバイス上に配置される。
【０００８】
本発明はまた、
データ入力を第１および第２のデータ処理モジュール両方に渡すステップと、
前記データ入力に対して前記第１および第２のデータ処理モジュールが実質的に同じ処理を実行するように構成するステップと、
前記第１および第２の検査モジュールが、前記データ入力に対して前記第１および第２のデータ処理モジュールが実質的に同じ処理を実行したかどうかを示すエラー信号を出力するように構成するステップとを含むデータ処理の方法も提供し、
前記第１および第２の検査モジュールが、物理的にそれぞれ離れたデバイス上に配置される。
【０００９】
本発明の一形態では、検査モジュールは、第１および第２の処理モジュールの出力が同じであるか（エラーが発生しなかったことを示す）異なっているか（エラーが発生したことを示す）を判定する論理回路である。本発明の一形態では、一方のデータ処理回路の出力が反転され、それによって検査モジュールは、第１および第２の処理モジュールの出力が同じであるか（エラーが発生したことを示す）異なっているか（エラーが発生しなかったことを示す）を判定する。
【００１０】
本発明ではデータ処理が繰り返され、それによって、エラーを検出するための冗長性が導入される。さらに、処理中のどんなエラー検査アルゴリズムもなしでデータ処理ステップが並行して実行されるので、データ処理速度は速くなり得る。さらに、物理的にそれぞれ離れたデバイス上にデータ検査モジュールを設けることによって、放射線誘起エラーが検出されない可能性が低減される。
【００１１】
本発明の一形態では、第１および第２の検査モジュールは、同じ回路基板上のそれぞれ離れて配置された集積回路上に設けることができる。しかし、検査モジュールは、別々の回路基板上に設けることもでき、あるいは実際には、特にこれらの検査モジュールに検査用のデータを渡すのに無線通信システムが利用されるならば、さらに離して設けることもできる。このような構成すべてにおいて、デバイスは物理的にそれぞれ離れているとみなされる。検査モジュールを物理的にそれぞれ引き離す利点は、両方のモジュール内で同じように発生する放射線誘起エラーの可能性を低減することにある。物理的に離された２つのデバイス内で同じエラーが発生する可能性は極めて低い。
【００１２】
前記第１および第２のデータ処理モジュールは、物理的にそれぞれ離れたデバイス上に配置することができる。第１および第２のデータ処理モジュールは、同じ回路基板上のそれぞれ離れて配置された集積回路上に設けることもできる。しかし、検査モジュールに関して上記で説明したように、第１および第２のデータ処理モジュールは、別々の回路基板上に、あるいは実際には、さらに離して設けることもできる。本発明の例示的一実施形態では、第１および第２のデータ処理モジュールは、それぞれ離れたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）内で実施され、これらのＦＰＧＡは、使用に際して同じ回路基板上に配置される。
【００１３】
第１のデータ処理モジュールおよび第１の検査モジュールは、物理的に同じ位置に配置し、例えば同じＦＰＧＡを使用して実施することができる。あるいは、第１のデータ処理モジュールおよび第１の検査モジュールは、別々の集積回路上で実施することもできる。これらの集積回路は近接して配置することができ、こうすることには、より簡単な、動作速度を向上させる傾向がある配線を含むいくつかの利点がある。
【００１４】
第２のデータ処理モジュールおよび第２の検査モジュールは、物理的に同じ位置に配置し、例えば同じＦＰＧＡを使用して実施することができる。あるいは、第２のデータ処理モジュールおよび第２の検査モジュールは、別々の集積回路上で実施することもできる。これらの集積回路は近接して配置することができ、こうすると、より簡単な、動作速度を向上させる傾向がある配線を含むいくつかの利点が得られる。
【００１５】
本発明の一形態では、第１のデータ処理モジュールおよび第１の検査モジュールは、第１の集積回路上で実施され、第２のデータ処理モジュールおよび第２の検査モジュールは、第２の集積回路上で実施される。
【００１６】
本発明の一形態では、前記第１および第２のデータ処理モジュールの出力は前記第１の検査モジュールに渡され、前記第１の検査モジュールは、前記エラー信号と、前記第１および第２のデータ処理モジュールの前記出力の両方を前記第２の検査モジュールに出力する。したがって、本発明のこの形態では、データ処理モジュールの出力はまず第１の検査モジュールで検査され、第１の検査モジュールの出力は第２の検査モジュールで検査される。本発明の一構成では、第１の検査モジュールは第１および第２の入力部を有し、前記第２の検査モジュールは、第１、第２および第３の入力部を有し、前記第１の検査モジュールの前記第１および第２の入力部が、それぞれ前記第１および第２のデータ処理モジュールの出力を受け取り、前記第１の検査モジュールが、前記第１および第２のデータ処理モジュールの前記出力にそれぞれ対応する第１および第２のデータ信号と、前記データ入力部で受け取られた前記データに対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す第１のエラー信号とを出力し、前記第２の検査モジュールの前記第１および第２の入力部が、前記第１の検査モジュールから前記第１および第２のデータ信号を受け取り、前記第２の検査モジュールの前記第３の入力部が、前記第１の検査モジュールから前記第１のエラー信号を受け取る。
【００１７】
本発明の一形態では、第３の検査モジュールが設けられ、この第３の検査モジュールは、前記第１および第２のデータ処理モジュールの出力どうしを比較するように、また前記データ入力に対して前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す信号を出力するように構成される。第３の検査モジュールは、第１および第２の検査モジュールの一方または両方から物理的に引き離すことができる。第３の検査モジュールは、第１および第２のデータ処理モジュールの一方または両方から物理的に引き離すことができる。本発明の例示的一形態では、第１のデータ処理モジュールおよび第１の検査モジュールは第１の集積回路上で実施され、第２のデータ処理モジュールおよび第２の検査モジュールは第２の集積回路上で実施され、第３の検査モジュールは第３の集積回路上で実施され、これらの集積回路それぞれは、上記で論じたように、同じ回路基板上に設けることができ、あるいはより遠くに引き離すこともできる。
【００１８】
本発明の一形態では、前記第１および第２のデータ処理モジュールの出力は前記第１の検査モジュールに渡され、第１の検査モジュールが、前記エラー信号と、前記第１および第２のデータ処理モジュールの前記出力との両方を前記第２の検査モジュールに出力し、第２の検査モジュールが、前記エラー信号と、前記第１および第２のデータ処理モジュールの前記出力との両方を前記第３の検査モジュールに出力する。したがって、本発明のこの形態では、データ処理モジュールの出力は、第１、第２および第３の検査モジュールで順に検査される。このような構成では、その検査モジュールが前記第１および第２のデータ処理モジュールの出力間に不一致を検出したとき、あるいは前の検査モジュールのエラー出力がセットされたときに、検査モジュールのエラー出力はセットすることができる。
【００１９】
前記データ入力部で受け取られた前記データに対して、前記第１および第２のデータ処理モジュールが実質的に同じ処理ステップを実行したかどうかを示す前記信号の少なくとも１つを、入力として前記第１および第２のデータ処理モジュールの少なくとも一方に与えることができる。本発明の一形態では、第３の検査モジュールのエラー出力は、入力として第１の検査モジュールに与えられる。第１の処理モジュールにフィードバックされるエラー信号を用いて、特定のデータ処理ステップの結果を破棄しなければならないことを知らせることができる。あるいは、第１の処理モジュールにフィードバックされる信号を用いて、特定のデータ処理ステップの結果を繰り返さなければならないことを知らせることができる。
【００２０】
本発明の一形態では、エラー出力フラグが規定され、前記エラー出力フラグは、前記第１および第２のデータ処理モジュールの出力が同じではないことを示す信号を前記検査モジュールのどれかが出力したときにセットされる。前記エラーフラグは、検査モジュールのどれかがエラーを検出したときはいつでも、エラー信号が出力部まで伝わるのを待たずにセットすることができる。エラーフラグは、例えば特定の処理ステップの結果を破棄する際に用いる入力として、あるいは特定のデータ処理ステップの繰り返しを開始する際に用いる入力として、１つまたは複数のデータ処理モジュールに与えることができる。
【００２１】
前記データ入力はシリアルデータ入力とすることができる。
【００２２】
前記第１および第２のデータ処理モジュールそれぞれの機能は、１つまたは複数のメモリモジュール内に記憶されたデータによって定義することができる。前記第１および第２の両方のデータ処理モジュールで使用される単一のメモリデバイスを設けることもできるが、前記第１のデータ処理モジュールの機能は第１のメモリモジュール内に記憶されたデータによって定義され、前記第２のデータ処理モジュールの機能は第２のメモリモジュール内に記憶されたデータによって定義されることが好ましい。というのは、こうすると、同じメモリモジュールの同じ記憶場所に複数のデータ処理モジュールがアクセスしようとすることによる潜在的な問題が回避されるからである。さらに、メモリモジュールが１つだけ設けられたとして、そのメモリが正しく機能しなければ、誤った命令に基づいて両方のデータ処理モジュールが同じように動作し、どのデータ検査モジュールによっても検出されない同一の、誤った出力を与える可能性がある。
【００２３】
本発明の一形態では、データ入力は、前記メモリモジュール内の記憶場所を参照する符号を含み、この記憶場所は前記データ処理モジュールの機能を定義するデータの記憶場所である。例えば、データ入力はデータパケットとすることができ、このパケットは、前記符号を含むヘッダ情報を含む。したがって、前記符号によって定義されるように、実行される処理ステップは別個のパケットでは異なることがある。
【００２４】
本発明は、パケットをベースとしたデータ処理の場合に申し分なく機能するが、このような使い方に限定されるものではない。当技術分野で周知のように、パケット交換が多くのデータ通信システムに使用され、これは現在、インターネットで使用される主要な交換技術である。パケット交換は、他の多くのノードが共有できるデータリンクを介してデータノード間で個々のデータのパケットをルーティングすることによって機能する。パケット交換は、データファイルをずっと小さなデータのパケットに分割することを伴い、各パケットは、ファイルの発信元および送信先、ならびにファイル内のパケットに含まれたデータの位置などの付加的な情報を含む。パケットが送信先で受信されると、もとのファイルが組み立て直される。
【００２５】
次に、本発明によるデバイスおよび方法を例示的にのみ、添付の概略図を参照して説明する。
【発明を実施するための最良の形態】
【００２６】
図１は、全体的に参照数字２で示された、本発明の実施形態による処理システムのブロック図である。
【００２７】
処理システム２は、第１のデータ処理ブロック４、第２のデータ処理ブロック６、第３のデータ処理ブロック８を含む。第１のデータ処理ブロック４は、第１のデータ処理モジュール１０および第１の検査モジュール１２を含む。第２のデータ処理ブロック６は、第２のデータ処理モジュール１４および第２の検査モジュール１６を含む。第３のデータ処理ブロック８は、第３の検査モジュール１８を含む。第１のデータ処理モジュール１０はメモリデバイス２０に結合され、第２のデータ処理モジュール１４はメモリデバイス２２につながれる。
【００２８】
処理システム２は、外部ソースからデータ入力ＩＮを受け取る。データ入力ＩＮはデータパケットであり、このパケットは、パケット内のデータに対して実行する必要のある処理に関連した情報を含む。この処理情報は、メモリデバイス２０および２２内の命令を参照する符号の形をとる。第１および第２のデータ処理モジュール１０および１４は、それぞれデータ入力ＩＮを受け取り、その処理情報を抜き出す。第１の処理モジュール１０は、この処理情報を用いて、データ入力ＩＮに対して実行する処理ステップに関連した命令をメモリデバイス２０から得る。同様に、第２の処理モジュール１４は処理情報を用いて、データ入力ＩＮに対して実行する処理ステップに関連した命令をメモリデバイス２２から得る。
【００２９】
したがって、第１および第２のデータ処理モジュール１０および１４は、それぞれメモリデバイス２０、２２をルックアップテーブルとして使用し、データ入力ＩＮから受け取った処理コードが、ルックアップテーブルに記憶されたデータを参照するために用いられる。メモリデバイス２０および２２は、例えば、適切なサイズとされた任意の高速アクセスＲＡＭを使用して実施することができるが、当業者には多くの適切なデバイスが周知であろう。次に、第１および第２のデータ処理モジュール１０および１４は、メモリモジュール２０、２２から受け取った命令に基づいて、入力データに対する処理ステップを実行する。処理モジュール１０と１４は同じ動作を実行するものであり、したがって、第１の処理モジュールの出力と第２の処理モジュールの出力とは同じになるはずである。
【００３０】
第１および第２のデータ処理モジュール１０および１４の出力は、第１の検査モジュール１２に渡される。上記のように、データ処理モジュール１０および１４では、データ入力ＩＮに対して（メモリモジュール２０および２２に定義された）同じ動作を実行するものであり、したがって、同じデータ出力が得られるはずである。本発明の一形態では、第１の検査モジュールは、第１のデータ処理モジュール１０の出力の各ビットを第２のデータ処理モジュール１２の出力の対応するビットと比較し、それによって、第１および第２の処理モジュールの対応する出力がどれか相違する場合にエラー信号を出力する。本発明の特定の一実施形態では、第２のデータ処理モジュール１４の出力は、第１の検査モジュール１２に渡される前に反転され、次に、第１の検査モジュール１２は、第１および第２のデータ処理モジュールの対応する出力がどれか同じになればエラー信号を出力する。
【００３１】
データ処理システム２内で発生する可能性があり、検査モジュールによって検出されるべき多くの種類のエラーがある。例えば、メモリデバイス２０および２２の一方がエラーを含み、その結果、対応するデータ処理モジュールが誤った動作を実行する可能性があり、あるいはデータ処理モジュール１０および１４の一方が何かの物理的な欠陥を含む可能性がある。
【００３２】
第１の検査モジュール１２には３つの出力があり、第１および第２の出力は、この検査モジュールへの単なる入力（すなわち第１の処理モジュール１２および第２の処理モジュール１４それぞれの単なる出力）であり、第３の出力は上述のエラー出力である。
【００３３】
第１の検査モジュール１２の３つの出力は、第２の検査モジュール１６の３つの入力を形成する。すなわち、第２の検査モジュール１６は、第１および第２の処理モジュール１０および１４の出力を受け取る。第２の検査モジュールは、続けて第１の検査モジュール１２と同じ検査動作を行い、不一致が検出された場合にエラー信号を出力する。さらに、第２の検査モジュール１６のエラー出力はまた、第１の検査モジュール１２からエラー信号が出力された場合にもセットされる。
【００３４】
したがって、第２の検査モジュール１６では３つの出力信号が得られるが、その第１の出力および第２の出力は、それぞれ第１の処理モジュール１０および第２の処理モジュール１４の出力であり、第３の出力はエラー信号である。これらの３つの出力は、第２検査モジュールと同じ機能を有する第３の検査モジュール１８に入力として与えられる。
【００３５】
第３の検査モジュール１８は、３つの検査モジュールのどれかによってエラーが検出されたかどうかを示すエラー信号ＥＲＲＯＲをデータ出力ＤＡＴＡとともに出力する。このデータ出力ＤＡＴＡは、処理システム２が実行するデータ機能によって変更されたデータ入力である。エラー信号ＥＲＲＯＲは、入力として第１のデータ検査モジュール１２に供給されるので、エラーが検出されたらすぐに破棄されるべき特定のパケットを処理することが可能になる。本発明の一形態では、検査モジュール１２は、エラーが検出された場合にデータ処理モジュール１０および１４にデータ処理ステップを繰り返すことを命令するように構成される。本発明の別の形態では、処理エラーが検出されたデータパケットはただ単に破棄される。
【００３６】
本発明の一形態では、検査モジュールのどれか１つがエラーを検出した場合、エラーフラグがセットされ、それが次のエラー検査モジュールに渡される。エラー検査モジュールのどれかがエラーフラグを受け取ると、エラー出力ＥＲＲＯＲが直ちにセットされ、処理中のデータは拒否される。したがって、エラー検出を速く使って、処理されているデータを拒否することができ、エラーが発生したことを判定するデータ処理ステップの完了を待つ必要がない。このようにして、データ処理システムの処理能力は、エラーが検出されたその場で拒否されるべきデータを継続して処理しないことによって、向上させることができる。
【００３７】
図２は、図１の回路の一部の機能の概略図である。図２は、機能ブロック２６ａの入力部で受け取られるデータパケット２４ａを示し、機能ブロック２６ａはデータパケット２８ａを出力している。並行して、データパケット２４ｂは、機能ブロック２６ｂの入力部で受け取られ、機能ブロック２６ｂはデータパケット２８ｂを出力している。次に、データパケット２８ｂが反転されて、データパケット２８ｂ’が得られる。
【００３８】
データパケット２４ａおよび２４ｂは、上述の処理システム２のデータ入力ＩＮであり、機能ブロック２６ａおよび２６ｂで実行する必要がある機能を識別するコードｉｄ１を含む。機能ブロック２６ａおよび２６ｂは、機能Ｚを実行し、処理システム２のそれぞれデータ処理モジュール１０および１４である。データパケット２８ａおよび２８ｂは、処理モジュール１０および１４の出力であり、データパケット２８ｂ’は、データパケット２８ｂの単なる反転バージョンである。データパケット２８ａおよび２８ｂは、変更されたコードｉｄ２を含む。
【００３９】
データパケット２８ａの各ビットは、ＸＯＲゲート３０でデータパケット２８ｂ’の対応するビットと連続して比較される。データパケット２８ａと２８ｂは同一のはずであり、したがってデータパケット２８ａの各ビットは、データパケット２８ｂ’の対応するビットと異なるはずである。したがって、データパケット２８および２８ｂ’の対応するビットをＸＯＲゲートの各入力部に与えることにより、ＸＯＲゲートの出力は常に１にならなければならない。したがって、どれかの時期にＸＯＲゲート３０の出力がゼロになればエラーが発生しており、エラーフラグがセットされる。その結果ＸＯＲゲート３０は、エラー検査回路１２をとされる。
【００４０】
図２の構成では、データ出力パケットＤＡＴＡ、反転データ出力パケットＤＡＴＡＺ、およびエラーフラグＥＲＲＯＲが得られる。
【００４１】
上述のように、放射線誘起エラーは、データ処理システムにおいて特に問題となるエラーの原因である。このようなエラーに伴う問題は、検出されないエラーを招くおそれがあることである。以下のような状況を考える。
【００４２】
レジスタ２８ａは、（図２に示すように）データワード「０１０１１１」を含まなければならないが、実際には機能ブロック２６ａ内のエラーにより、レジスタ２８ａはデータワード「０１０１１０」を含む（すなわち最後のビットが誤っている）。
【００４３】
レジスタ２８ｂはデータパケットとしてデータワード「０１０１１１」を正しく含み、レジスタ２８ｂ’はデータワード「１０１０００」を記憶する。したがって、ＸＯＲゲート３０は、レジスタ２８ａの出力（０１０１１０）とレジスタ２８ｂ’の出力（１０１０００）を比較しエラーを検出するはずである。
【００４４】
しかし、放射線誘起エラーにより、ＸＯＲゲート３０は、実際にはレジスタ２８ｂ’の出力を「１０１００１」と読み取り（最後のビットが［０］ではなく「１」と読み取られる）、機能ブロック２６ａの出力のエラーを検出しない。
【００４５】
図１の回路では、図２に示された１つのモジュールではなく、３つの検査モジュールを設ける。上述の例示的な状況では、放射線誘起エラーにより第１の検査モジュール１２がエラーを検出しなかった場合でも、検査モジュール１６および１８が依然として検査を実行することができる。３つの検査モジュールすべてが同じように放射線誘起エラーの影響を受ける可能性は極めて低い。
【００４６】
さらなる安全性を得るために、検査モジュール１２、１６および１８は物理的に離される。したがって、高レベルのα粒子（または、放射線誘起エラーを引き起こしやすい他のあらゆる粒子）が検査モジュールの１つの近くにあったとしても、３つの検査モジュールすべてが同様に影響を受ける可能性はさらに低減される。
【００４７】
本発明の一実施では、物理的に離した検査モジュール１２、１６および１８は、同じプリント回路基板上に配置した個別のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）によって実施される。しかし、検査モジュールは、例えば別々のプリント回路基板上に検査モジュールを配置することによって、さらに引き離すこともできる。実際には、遠隔通信技術を利用することによって各検査モジュールを大きな間隔で引き離すことができ、極端な例では、３つの検査モジュールは別々の国にあってもよい。
【００４８】
次に、処理システム２の機能の例示的な使い方を説明する単純な例を以下に示す。
【００４９】
上記のように、処理システム２は、処理モジュール１０および１４の機能を定義する符号（以下では状態と呼ぶ）を含むデータパケットと併せて使用するようにうまく適合されている。本例では、処理システム２は、２ビット状態を含むデータパケットを処理するのに使用される。各状態での処理モジュール１０および１４の機能は以下の通りである。
【００５０】
【表１】
2009526299.tif 000003
データ入力ＩＮはシリアルデータ入力であり、状態情報がまず与えられる。したがって、状態情報を処理モジュール１０および１４で抜き出し、それを用いて、これらのモジュールで実行する必要がある機能に関連した必要な情報を得ることができ、この情報はメモリモジュール２０および２２内に記憶される。
【００５１】
図３は、上記で定義されたアルゴリズムが、いくつかの例示的なデータ入力の場合にどのように動作するかを示す表である。表は、いくつかの１０ビットデータ入力を示し、各１０ビット入力は２ビット状態を含む。１０ビット入力の残りの８ビットは、上述のアルゴリズムに従って処理され、その生成された出力が表に示してある。
【００５２】
図３の表の第１行および第２行では、処理システム２によって入力が２ビット目ごとに反転されなければならないことを示す状態０１が受け取られる。したがって、第１行では入力１１１００１０１は１０１１００００になり、第２行では入力０１１０１１００は００１１１００１になる。
【００５３】
図３の表の第３行では、入力が３ビット目ごとに反転されなければならないことを示す状態１０が受け取られる。したがって、入力１１１１１００１は１１０１１１０１になる。
【００５４】
図３の表の第４行では、入力のそれぞれのビットが反転されなければならないことを示す状態１１が受け取られる。したがって、入力１０００１０１０は０１１１０１０１になる。
【００５５】
図３の表の第５行では、入力が不変でなければならないことを示す状態００が受け取られる。したがって、入力１１０１００１０は出力と同じである。
【００５６】
次に、図１の回路を通る、あり得るデータの流れを示す簡単な例を以下に挙げる。以下に説明する例では、第１および第２のデータ処理モジュール１０および１４の各出力を、それぞれＡおよびＢと呼ぶ。次のクロック周期で、第１の検査モジュール１２は、データ入力ＡおよびＢをＡ’およびＢ’として出力し、またエラー信号Ｅ１を出力し、信号Ａ’、Ｂ’およびＥ１は、第２の検査モジュール１６の入力を形成する。次のクロック周期で、第２の検査モジュール１６は、データ入力Ａ’およびＢ’をＡ’’およびＢ’’として出力し、またエラー信号Ｅ２を出力し、信号Ａ’’、Ｂ’’およびＥ２は、第３の検査モジュール１８の入力を形成する。次のクロック周期で、第３の検査モジュール１８は、データ入力Ａ’’およびＢ’’に由来するＤＡＴＡ出力を出力し、またＥＲＲＯＲ出力を出力する。
【００５７】
第１および第２のデータ処理モジュール１０および１４の出力をデータワード０１０１０１１１とする以下の状況を考える。この例では、第１のデータ処理モジュール１０は正しく動作するが、第２のデータ処理モジュールは、誤ってデータワード０１０００１１１を出力する。
【００５８】
この例では、図１の回路を通るデータの流れを、図４の表を参照して以下に説明する。表は、いくつかのクロック周期のそれぞれに対するデータ値Ａ、Ｂ、Ａ’、Ｂ’、Ｅ１、Ａ’’、Ｂ’’、Ｅ２、ＤＡＴＡおよびＥＲＲＯＲを一覧表示している。
【００５９】
データワードは、第１および第２のデータ処理モジュール１０および１４によって直列に出力されるが、最初に最下位ビットが出力される。したがって、最初のクロック周期ではデータビットＡおよびＢは両方が１である。他のデータビットは未知であり、Ｘとして図４に表示されている。
【００６０】
次のデータ周期で、ＡおよびＢの前の値（両方１）がＡ’およびＢ’として出力され、エラー信号０（エラーがないことを示す）がＥ１として出力される。次に入ってくるデータビット（両方１）は新しい入力ＡおよびＢである。やはり残りのデータ信号値は未知である。
【００６１】
次のデータ周期で、前の信号Ａ’、Ｂ’およびＥ１がＡ’’、Ｂ’’およびＥ２になり、前の信号ＡおよびＢがＡ’およびＢ’になり、新しいエラー信号（やはり０）がＥ１にセットされる。次のデータビット（やはり両方１）がＡおよびＢとして与えられる。
【００６２】
次のデータ周期で、ＤＡＴＡ出力はＡ’’およびＢ’’の前の値にセットされ、エラー信号は０（エラー検出なし）にセットされ、前の信号Ａ’、Ｂ’およびＥ１がＡ’’、Ｂ’’およびＥ２になり、前の信号ＡおよびＢがＡ’およびＢ’になり、新しいエラー信号（やはり０）がＥ１にセットされる。次のデータビット（今回は両方０）がＡおよびＢとして与えられる。
【００６３】
次のデータ周期で、ＤＡＴＡ出力はＡ’’およびＢ’’の前の値にセットされ、エラー信号は０（エラー検出なし）にセットされ、前の信号Ａ’、Ｂ’およびＥ１がＡ’’、Ｂ’’およびＥ２になり、前の信号ＡおよびＢがＡ’およびＢ’になり、新しいエラー信号（やはり０）がＥ１にセットされる。ＡおよびＢとして次のデータビット（それぞれ１および０）が与えられる。
【００６４】
次のデータ周期で、ＤＡＴＡ出力はＡ’’およびＢ’’の前の値にセットされ、エラー信号は０（エラー検出なし）にセットされ、前の信号Ａ’、Ｂ’およびＥ１がＡ’’、Ｂ’’およびＥ２になり、前の信号ＡおよびＢがＡ’およびＢ’になる。しかし今回は、ＡとＢの値が異なったのでエラーが検出され、エラー信号Ｅ１は１にセットされる。次のデータビット（両方０）がＡおよびＢとして与えられる。
【００６５】
次のデータ周期で、ＤＡＴＡ出力はＡ’’およびＢ’’の前の値にセットされ、エラー信号は０（エラー検出なし）にセットされ、前の信号Ａ’、Ｂ’およびＥ１がＡ’’、Ｂ’’およびＥ２になり（ここでＥ２はエラーを示している）、前の信号ＡおよびＢがＡ’およびＢ’になり、次のデータビット（両方１）がＡおよびＢとして与えられる。
【００６６】
次のデータ周期で、エラー信号Ｅ２はエラー出力ＥＲＲＯＲに伝わる。Ａ’’とＢ’’のデータ値の間に不一致があったので、データ出力は特定されていない（Ｘ）。すなわち、最初に第１の検査モジュール１２で検出されたエラーが出力まで伝わっている。
【００６７】
本発明のいくつかの形態では、エラー出力は、上述のように全回路を通って伝わる必要はなく、出力ＥＲＲＯＲに直ちに渡される割込み信号として使用できることに注意されたい。
【００６８】
本発明の処理システム２には、多くの潜在的な応用例がある。例えば、データ処理モジュール１０および１４は、特定のパターンが検出されるときはいつでも特定のデータのパターンを検出し、フラグを出力するようにプログラムすることができる。このような応用例では、入ってくるデータパケットの状態を使用して、探索されている特定のデータパターンを参照することができる。さらに、多くの暗号アルゴリズムではデータのパケットに対して比較的簡単な機能を実行するが、データ処理システム２は、そのような機能を実行するのに十分に適合するはずである。
【図面の簡単な説明】
【００６９】
【図１】本発明の一実施形態のブロック図である。
【図２】図１の回路の一部の機能の概略図である。
【図３】図１の回路の機能の一部を説明する表である。
【図４】図１の回路の機能の別の部分を説明する表である。
【図１】
2009526299.tif 000004
【図２】
2009526299.tif 000005
【図３】
2009526299.tif 000006
【図４】
2009526299.tif 000007
【国際調査報告】
2009526299.tif 000008
2009526299.tif 000009
2009526299.tif 000010