(57)【要約】      （修正有）【課題】シングルイベント効果（ＳＥＥ）軽減する処理システムを提供する。【解決手段】第１の処理装置と、第１の処理装置と信号通信している三重投票処理（ＴＶＰ）装置とを含む高データインテグリティ処理システム（ＨＤＩＰＳ）において、第１の処理装置はプロセッサと、キャッシュメモリと、コンピュータ可読媒体（ＣＲＭ）とを含む。ＣＲＭはプロセッサに、ＴＶＰ装置に送信される第１のインテグリティ結果を生成する定期的な第１のインテグリティチェックを第１の処理装置に対して実行させる。ＴＶＰ装置は、ＴＶＰ装置に、定期的な第１のインテグリティチェックと同時に、第２のインテグリティ結果を生成する第２のインテグリティチェックを実行させ、第１のインテグリティ結果を第２のインテグリティ結果と比較させ、第１のインテグリティ結果が第２のインテグリティ結果と一致しない場合に第１の処理装置の電力リセットを行わせる。【選択図】図１
2019008781.tif 000002
【特許請求の範囲】
【請求項１】
外部のシステム（１２０）と信号通信している高データインテグリティ処理システム（「ＨＤＩＰＳ」）（１００）を用いて放射線環境内で高データインテグリティ処理を行うための方法であって、
高い放射線耐性を有する第１の処理装置（１０２）に定期的な第１のインテグリティチェックを実行して第１のインテグリティ結果を生成することと、
前記定期的な第１のインテグリティチェックと同時に、三重投票処理（「ＴＶＰ」）装置（１０６）に第２のインテグリティチェックを実行して第２のインテグリティ結果を生成することと、
前記第１のインテグリティ結果を前記第２のインテグリティ結果と比較することと、
前記第１のインテグリティ結果が前記第２のインテグリティ結果と一致しない場合に前記第１の処理装置（１０２）の電力リセットを行うことと
を含む方法。
【請求項２】
前記第１の処理装置（１０２）において第１のデータを受信することと、
第１の時間値において前記第１のデータの第１の計算を実行して第１の結果を生成することと、
前記第１の計算を実行した後でキャッシュメモリ（１０４）をフラッシュすることと、
第２の時間値において前記第１のデータの第２の計算を実行して第２の結果を生成することと、
第３の時間値において前記第１の結果を前記第２の結果と比較することと、
前記第１の結果が前記第２の結果と一致しない場合に前記キャッシュメモリ（１０４）をフラッシュすることと、
前記第１の結果が前記第２の結果と一致しない場合に前記キャッシュメモリ（１０４）をフラッシュした後に前記第１の処理装置（１０２）において前記第１のデータを受信するステップを繰り返すことと、
前記第１の結果が前記第２の結果と一致する場合に前記第１の結果を前記第１の処理装置（１０２）と信号通信している外部のシステム（１２０）に送信することと
を更に含み、
前記第２の時間値は前記第１の時間値に続くものであり、前記第３の時間値は前記第２の時間値に続くものである、請求項１に記載の方法。
【請求項３】
前記第１の計算を実行することが、
第１のメモリアドレスを有するキャッシュメモリ（１０４）のフレームの第１のパーティションにおいて前記第１の計算を実行することと、
前記キャッシュメモリ（１０４）をフラッシュする前に前記第１の処理装置（１０２）と信号通信しているエラー訂正コード（「ＥＣＣ」）メモリ（１２４）に前記第１の結果を保存することと
を含み、
前記第２の計算を実行することが、
前記キャッシュメモリ（１０４）をフラッシュした後に第２のメモリアドレスを有する前記キャッシュメモリ（１０４）の前記フレームの第２のパーティションにおいて前記第２の計算を実行すること
を含む、請求項２に記載の方法。
【請求項４】
前記第１の処理装置（１０２）に前記定期的な第１のインテグリティチェックを実行することが、
前記第１のパーティションの前に前記フレームの開始に位置する前記キャッシュメモリ（１０４）の前記フレームのインテグリティパーティションを確立することと、
前記第１のデータを受信する前に前記第１の処理装置（１０２）の組込み試験（「ＢＩＴ」）を実行することと、
前記ＥＣＣメモリ（１２４）のデータチェックを行うことと
を含む、請求項３に記載の方法。
【請求項５】
前記ＥＣＣメモリ（１２４）のデータチェックを行うことが、
前記ＥＣＣメモリ（１２４）からメモリ値を読み取ることと、
前記メモリ値を前記メモリ値に対応する前記ＥＣＣメモリ（１２４）のＥＣＣ値と比較することと、
再生成されたＥＣＣ値を再生成することと、
前記ＥＣＣ値を前記再生成されたＥＣＣ値と比較することと
を含む、請求項４に記載の方法。
【請求項６】
前記第１の処理装置（１０２）に前記定期的な第１のインテグリティチェックを実行することが、前記第１の処理装置（１０２）内で第１の線形フィードバックシフトレジスタ（「ＬＦＳＲ」）を用いて第１の疑似乱数列を生成することを含み、
前記ＴＶＰ装置（１０６）に前記第２のインテグリティチェックを実行することが、前記ＴＶＰ装置（１０６）内で第２のＬＦＳＲを用いて第２の疑似乱数列を生成することを含み、
前記第１のインテグリティ結果を前記第２のインテグリティ結果と比較することが、前記第１の疑似乱数列を前記第２の疑似乱数列と比較することを含み、
前記第１のＬＦＳＲと前記第２のＬＦＳＲが両方に共通のシードを含む、請求項５に記載の方法。
【請求項７】
前記第１の結果が前記第２の結果と一致する場合に前記第１の結果を前記外部のシステム（１２０）に送信する前に前記第１の結果を以前の平均値と比較することと、
前記第１の結果が前記以前の平均値と一致しない場合に前記キャッシュメモリ（１０４）をフラッシュすることと、
前記第１の結果が前記以前の平均値と一致しない場合に前記キャッシュメモリ（１０４）をフラッシュした後に前記第１の処理装置（１０２）において前記第１のデータを受信するステップを繰り返すことと、
前記第１の結果が前記以前の平均値と一致する場合に第１の結果がエラー限界内であるかどうかを決定することと、
前記第１の結果が前記エラー限界内でない場合に前記キャッシュメモリ（１０４）をフラッシュすることと、
前記第１の結果が前記エラー限界内でない場合に前記キャッシュメモリ（１０４）をフラッシュした後に前記第１の処理装置（１０２）において前記第１のデータを受信するステップを繰り返すことと
を更に含み、
前記第１の結果を前記外部のシステム（１２０）に送信することが、前記第１の結果が前記第２の結果と一致し、前記以前の平均値と一致し、前記エラー限界内である場合に前記第１の処理装置（１０２）によって送信することを含む、請求項６に記載の方法。
【請求項８】
前記第１の処理装置は、シリコンオンインシュレータ（「ＳＯＩ」）技術を用いており、
前記ＴＶＰ装置は、三重モード冗長（「ＴＭＲ」）技術を用いたフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）であり、
前記第１の処理装置は、Ａｖｉｏｎｉｃｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄ  Ｓｏｆｔｗａｒｅ  Ｉｎｔｅｒｆａｃｅ  （「ＡＲＩＮＣ」）  ６５３オペレーティングシステム（「ＯＳ」）を用いる、請求項１に記載の方法。
【請求項９】
高データインテグリティ処理システム（「ＨＤＩＰＳ」）であって、
高い放射線耐性と、キャッシュメモリ（１０４）とを有する第１の処理装置（１０２）と、
前記第１の処理装置（１０２）と信号通信している三重投票処理（「ＴＶＰ」）装置（１０６）と
を備え、
前記第１の処理装置（１０２）は、
プロセッサ（１１０）と、
前記プロセッサによって実行可能な、符号化されたコンピュータによって実行可能な命令（１１４）を有するコンピュータ可読媒体（「ＣＲＭ」）（１１２）と
を含み、
前記ＴＶＰ装置（１０６）は、前記ＴＶＰ装置（１０６）によって実行可能な、符号化された機械命令を有するファームウェア（１１８）を含み、
請求項１から８のいずれか一項に記載の方法を実行するように構成されている、高データインテグリティ処理システム（「ＨＤＩＰＳ」）（１００）。
【請求項１０】
請求項９に記載の高データインテグリティ処理システムを備えるビークル。
【発明の詳細な説明】
【技術分野】
【０００１】
［０００１］本開示は、シングルイベント効果（「ＳＥＥ」）が生じる環境で動作する装置、特にＳＥＥの効果を軽減する装置に関する。
【０００２】
［０００２］現在、多くのデジタル電子機器の形状サイズはサブミクロンレベルにまで縮小されている。このサイズの縮小の結果、電力消費、スループット、スピード、及びメモリ密度に関する性能が改善した。しかしながら、形状サイズの縮小は、シングルイベント効果（「ＳＥＥ」）に対する脆弱性の高まりにもつながった。ＳＥＥは単一の高エネルギー粒子によって発生し、多数の形態を取りうる。宇宙空間では、ＳＥＥは、地球の磁場に捕えられたプロトン、銀河宇宙線、及び太陽粒子現象によって発生する。
【０００３】
［０００３］残念なことに、現在の装置の形状を縮小させる傾向により、航空機に関連する地上及び高度におけるＳＥＥの脅威も高まる。これは、銀河宇宙線と太陽の荷電粒子が大気と反応して、高エネルギー中性子を含む粒子の連鎖を発生させた結果である。これらの中性子は半導体材料と反応して、荷電「娘」生成物を生じさせ、これはのちにＳＥＥにつながりうる。さらに、ＳＥＥは、装置パッケージ内で自然発生するウラン及びトリウムの劣化から生じるアルファ粒子だけでなく、多くの電子機器の最終処理におけるＢＰＳＧ（ボロン燐ガラス）にしばしば用いられる硼素１０と反応する熱中性子によっても発生する場合がある。一般に、電子機器の中性子照射線量率は、電子機器の高度及び緯度によって変化し、例えば極緯度では海抜から４万３千フィートまでで７００倍以上も増加する。
【０００４】
［０００４］当業者には当然のことであるが、ＳＥＥの影響は無害な故障から「ラッチアップ」又は「バーンアウト」などの破壊的な事象に起因する破滅的不良まで及ぶ。一般に、最も一般的なＳＥＥは、メモリ保存エレメントの論理状態を反転させる、シングルイベントアップセット（「ＳＥＵ」）である。加えて、ＳＥＥには、線形装置（例えばコンパレータ又はオペアンプ）における、例えばパワーオンリセットなどの故障保護又は不足／過剰電圧保護のターンオンにつながりうる、シングルイベントトランジェント（「ＳＥＴ」）も含まれうる。しかしながら、更に懸念されるのが、リセットされるまで装置がもはや意図されるように動作せず、電力が循環する機能妨害（「ＳＥＦＩ」）を引き起こす、あるいはひどい場合には、シングルイベントラッチアップ（「ＳＥＬ」）を引き起こすＳＥＥである。ＳＥＬは動作中のＳＥＦＩに酷似している場合があるが、寄生構造を介した電子機器の電源から接地への短絡が伴う。ロックアップに加えて、ＳＥＬの症状には、電子機器の物理的損傷につながりうる電流の急増が含まれうる。他の破壊的なＳＥＥには、例えば金属酸化膜半導体電界効果トランジスタ（「ＭＯＳＦＥＴ」）などのパワーデバイスにおいて最も良く見られるシングルイベントバーンアウト及びシングルイベントゲートラプチャーが含まれる。
【０００５】
［０００５］ＳＥＥに対処する既知の方法は、特注設計で費用のかかるクロックロックステップ構成の複数のプロセッサを用いて実行される高いデータインテグリティ要件を含むハードウェアを用いることを含む。これらの方法では、特に固定化された回路（つまりハードウェア）において、並行して、形式化された投票結果を計算するロックステップ方式が用いられる。これは、例えば三重の冗長化となる。通常、このハードウェアは、高価で生産性の低い（すなわち、ＡＳＩＣが特注設計であり、特定の使用のために作製されるため、非常にわずかな量しか作られない）一または複数の特定用途向け集積回路（「ＡＳＩＣ」）として実装される。更に、これらのＡＳＩＣは通常、設計誤差のないように、意図しない特徴がないように、あるいはこれら両方ともないように設計され、それを実行するために検証、また認証されなければならず、このため、ＡＳＩＣの製造費用は更に高くなる。したがって、これらの問題を克服し、非特注ハードウェアを用いるシステム及び方法が必要である。
【発明の概要】
【０００６】
［０００６］高データインテグリティ処理システム（「ＨＤＩＰＳ」）が開示されている。ＨＤＩＰＳは、第１の処理装置と、第１の処理装置と信号通信している三重投票処理（「ＴＶＰ」）装置とを含む。第１の処理装置は高い放射線耐性を有し、プロセッサと、キャッシュメモリと、コンピュータ可読媒体（「ＣＲＭ」）とを含む。ＣＲＭは、プロセッサに、ＴＶＰ装置に送信される第１のインテグリティ結果を生成する定期的な第１のインテグリティチェックを第１の処理装置に対して実行させる、符号化されたコンピュータによって実行可能な命令を有する。ＴＶＰ装置は、ＴＶＰ装置に、定期的な第１のインテグリティチェックと同時に、第２のインテグリティ結果を生成する第２のインテグリティチェックを第１の処理装置に対して実行させ、第１のインテグリティ結果を第２のインテグリティ結果と比較させ、第１のインテグリティ結果が第２のインテグリティ結果と一致しない場合に第１の処理装置の電力リセットを行わせる、符号化された機械命令を有するファームウェアを含む。
【０００７】
［０００７］工程の実施例では、ＨＤＩＰＳは、高い放射線耐性を有する第１の処理装置に定期的な第１のインテグリティチェックを実行して第１のインテグリティ結果を生成することと、定期的な第１のインテグリティチェックと同時に、ＴＶＰ装置に第２のインテグリティチェックを実行して第２のインテグリティ結果を生成することとを含む方法を実施する。本方法は次に、第１のインテグリティ結果を第２のインテグリティ結果と比較することと、第１のインテグリティ結果が第２のインテグリティ結果と一致しない場合に第１の処理装置の電力リセットを行うこととを含む。
【０００８】
［０００８］本発明の他のデバイス、装置、システム、方法、特徴、及び利点は、下記の図面及び詳細な説明を精査することにより当業者に明らかであるか、または明らかになる。こうした付加的なシステム、方法、特徴、及び利点は全てこの明細書に含まれ、本発明の範囲内であり且つ添付の特許請求の範囲によって保護されることが意図されている。
【０００９】
［０００９］本発明は、下記の図面を参照することにより、より深く理解することができる。図面における構成要素は必ずしも正確な縮尺で描かれておらず、むしろ本発明の原理を示すことに重点が置かれている。図面において、同様の参照番号は、異なる図面を通して対応する部品を指すものである。
【図面の簡単な説明】
【００１０】
【図１】本開示に係る高データインテグリティ処理システム（「ＨＤＩＰＳ」）の実行形態の一実施例のシステムブロック図である。
【図２】本開示に係る、図１に示すＨＤＩＰＳとともに使用されるフレームの実行形態の一実施例のシステムブロック図である。
【図３】本開示に係る、図１に示すＨＤＩＰＳによって実施される方法の実行形態の一実施例のフロー図である。
【図４】本開示に係る、図３に示すインテグリティチェックプロセスを実施する方法の実行形態の一実施例のフロー図である。
【図５】本開示に係る、図４に示すデータメモリチェックプロセスを実施する方法の実行形態の一実施例のフロー図である。
【図６】本開示に係る、図３に示す二重認証プロセスを実施する方法の実行形態の一実施例のフロー図である。
【発明を実施するための形態】
【００１１】
［００１６］開示されるのは、高データインテグリティ処理システム（「ＨＤＩＰＳ］）である。ＨＤＩＰＳは、第１の処理装置と信号通信している第１の処理装置と三重投票処理（「ＴＶＰ」）装置を含む。第１の処理装置は高い放射線耐性を有し、プロセッサと、キャッシュメモリと、コンピュータ可読媒体（「ＣＲＭ」）とを含む。ＣＲＭは、プロセッサに、ＴＶＰ装置に送信される第１のインテグリティ結果を生成する定期的な第１のインテグリティチェックを第１の処理装置に対して実行させる、ＣＲＭに符号化されたコンピュータによって実行可能な命令を有する。ＴＶＰ装置は、ＴＶＰ装置に、定期的な第１のインテグリティチェックと同時に、第２のインテグリティ結果を生成する第２のインテグリティチェックを第１の処理装置に対して実行させ、第１のインテグリティ結果を第２のインテグリティ結果と比較させ、第１のインテグリティ結果が第２のインテグリティ結果と一致しない場合に第１の処理装置の電力リセットを行わせる、符号化された機械命令を有するファームウェアを含む。ＨＤＩＰＳは、前述したシングルイベント効果（「ＳＥＥ」）に関する問題に対処し、非特注ハードウェアの第１の処理装置がＴＶＰと協力して高インテグリティ（すなわち、ＳＥＥに対する高い耐性）を有する出力信号（すなわち、データ信号）を生成することを可能にする。
【００１２】
［００１７］一般に、ＨＤＩＰＳは、ビークルの装置にＳＥＥを発生させる高放射線環境を通って移動するビークルの一部となる。ビークルは、例えば宇宙船、航空機（有人及び無人の両方）、又は高い高度を移動する陸上ビークルであってよい。工程において、ＨＤＩＰＳは、例えばＳＥＥの影響が軽減されないと危険となりうる方法で（ＳＥＥ環境で）ビークルの機能を制御するナビゲーションシステム又は他のシステムの一部でありうる。
【００１３】
［００１８］工程の一実施例では、ＨＤＩＰＳは、高い放射線耐性を有する第１の処理装置に定期的な第１のインテグリティチェックを実行して第１のインテグリティ結果を生成することと、定期的な第１のインテグリティチェックと同時に、ＴＶＰ装置に第２のインテグリティチェックを実行して第２のインテグリティ結果を生成することとを含む方法を実施する。本方法は次に、第１のインテグリティ結果を第２のインテグリティ結果と比較することと、第１のインテグリティ結果が第２のインテグリティ結果と一致しない場合に第１の処理装置の電力リセットを行うこととを含む。
【００１４】
［００１９］更に具体的に、図１に、本開示に係るＨＤＩＰＳ１００の実行形態の一実施例を示すシステムブロック図を示す。ＨＤＩＰＳ１００は、高い放射線耐性と、キャッシュメモリ１０４とを有する第１の処理装置１０２と、信号経路１０８を介して第１の処理装置１０２と信号通信しているＴＶＰ装置１０６とを含む。第１の処理装置１０２は、プロセッサ１１０とＣＲＭ１１２とを含む。ＣＲＭ１１２は、プロセッサ１１０に、ＴＶＰ装置１０６に送信される第１のインテグリティ結果１１６を生成する定期的な第１のインテグリティチェックを第１の処理装置１０２に対して実行させる、符号化されたコンピュータによって実行可能な命令（例えばソフトウェア１１４等）を有する。ＴＶＰ装置１０６は、ＴＶＰ装置１０６に、定期的な第１のインテグリティチェックと同時に、第２のインテグリティ結果を生成する第２のインテグリティチェックを第１の処理装置１０２に対して実行させ、第１のインテグリティ結果を第２のインテグリティ結果と比較させ、第１のインテグリティ結果１１６が第２のインテグリティ結果と一致しない場合に第１の処理装置１０２の電力リセットを行わせる、符号化された機械命令を有するファームウェア１１８を含む。この実施例では、ＨＤＩＰＳ１００は、信号経路１２２を介して外部のシステム１２０と信号通信しうる。
【００１５】
［００２０］この実施例では、第１の処理装置１０２はＳＥＥの影響を最小限に抑えるために高い放射線耐性を有しており、ＳＥＥは単一の高エネルギー粒子によって発生し、前述したように多数の形態を取りうる。一例として、第１の処理装置１０２は、シリコンオンインシュレータ（「ＳＯＩ」）技術を用いた装置であってよい。第１の処理装置１０２は、中央処理装置（「ＣＰＵ」）であってよい。
【００１６】
［００２１］ＴＶＰ装置１０６は、ＳＥＥの影響も最小限に抑えるために、高い放射線耐性も有する。ＴＶＰ装置１０６は、ＳＯＩ技術も用いうる。更に、ＴＶＰ装置１０６は例えば、３つのシステムがプロセスを実施し、その結果を多数投票システムによって処理して単一の出力を生成するフォールトトレラントの形態のＮモジュラー冗長である三重モード冗長（「ＴＭＲ」）技術を用いたフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）であってよい。この方法では、３つのシステムのうちいずれかのシステムが失敗した場合、他の２つのシステムが失敗を訂正して隠すことができる。
【００１７】
［００２２］この実施例では、第１の処理装置１０２はまた、オプションとして第１の処理装置１０２内に、あるいは第１の処理装置１０２の外部（ＨＤＩＰＳ１００内）に位置し、第１の処理装置１０２と信号通信しているエラー訂正コード（「ＥＣＣ」）メモリ１２４も含みうる。当業者には当然のことであるが、ＥＣＣメモリ１２４は、ＥＣＣメモリ１２４内に実際に保存された一または複数のビットが間違った状態に反転していたとしても、各ワードから読み取られるデータ（すなわち固定サイズのデータ片）は常にそれに書き込まれたデータと同じであるため、シングルビットエラーに影響されないエラー検出及び訂正（「ＥＤＡＣ」）メモリである。当業者には当然のことであるが、ＥＣＣメモリ１２４は、ＴＭＲ技術又はハミングエラー訂正を用いることも可能である。
【００１８】
［００２３］ＣＲＭ１１２はまた、例えばＡｖｉｏｎｉｃｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄ  Ｓｏｆｔｗａｒｅ  Ｉｎｔｅｒｆａｃｅ  （「ＡＲＩＮＣ」）  ６５３等の時間、空間、及びパーティショニングオペレーティングシステムであるオペレーティングシステム（「ＯＳ」）１２６も含む。この実施例では、ＡＲＩＮＣ６５３により、同じハードウェア上で異なるソフトウェアレベルの複数のアプリケーションを受け入れることが可能になる。各アプリケーションソフトウェアはパーティションと呼ばれ、各アプリケーションはキャッシュメモリ１０４にそれ自体のメモリ空間と、スケジューラによって割り当てられたそれ自体の専用のタイムスロットを有する。当業者には当然のことであるが、計算において、スケジューリングは作業を完了させるリソースに作業を割り当てる方法である。作業は、例えば、プロセッサ、ネットワークリンク又は拡張カード等のハードウェアリソース上にスケジューリングされたスレッド、プロセス又はデータフローなどの仮想計算エレメントでありうる。上記のように、スケジューラとは、スケジューリング活動を実行するものである。
【００１９】
［００２４］当業者には当然のことであるが、キャッシュメモリ１０４は、データに対する今後の要求に素早く対応しうるようにそのデータを保存する種類のメモリであって、キャッシュメモリ１０４に保存されたデータは、前の計算、又はどこか他に保存されたデータの複製の結果である場合がある。この実施例では、キャッシュメモリ１０４は、プロセッサ１１０に直接組み込まれた、又はプロセッサ１１０と直接信号通信し、ＥＣＣメモリ１２４よりも高速に動作しうるランダムアクセスメモリ（「ＲＡＭ」）であってよい。キャッシュメモリ１０４は、例えば、レベル１（「Ｌ１」）キャッシュ、レベル２（「Ｌ２」）キャッシュ、及びレベル３（「Ｌ３」）キャッシュ等、プロセッサ１１０への近さ及びアクセス可能性を表すレベルを含みうる。
【００２０】
［００２５］この実施例では、プロセッサ１１０は、ある場合にはシステムバス、データバス、アドレスバス、周辺構成要素相互接続（「ＰＣＩ」）バス、Ｍｉｎｉ−ＰＣＩバス、及びいずれかの様々なローカルバス、周辺バス、及び／又は独立したバスのうちの一または複数を含みうるバスを含みうる信号経路を介して、ＣＲＭ１１２と信号通信している。ＣＲＭ１１２に保存されたコンピュータによって実行可能な命令は、例えばＯＳ１２６、クライアントモジュール（図示せず）、プロファイルモジュール（図示せず）、プロセッサ１１０によってロード可能及び実行可能なソフトウェア１１４、及び他のモジュール、プログラム、又はアプリケーションを含みうる。
【００２１】
［００２６］ＣＲＭ１１２は、コンピュータ記憶媒体及び／又は通信媒体を含みうる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を格納するための任意の方法又は技術において実装される、揮発性メモリ、不揮発性メモリ、及び／又は他の固定及び／又は予備のコンピュータ記憶媒体、取り外し可能な及び取り外しできないコンピュータ記憶媒体のうちの一または複数を含みうる。したがって、コンピュータ記憶媒体は、非限定的にＲＡＭ，スタティックランダムアクセスメモリ（「ＳＲＡＭ」）、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）、相変化メモリ（「ＰＣＭ」）、読み取り専用メモリ（「ＲＯＭ」）、消去可能・プログラム可能型読み取り専用メモリ（「ＥＰＲＯＭ」）、電気的消去・プログラム可能型読み取り専用メモリ（「ＥＥＰＲＯＭ」）、フラッシュメモリ、磁気ディスク記憶装置、磁気カード又は他の磁気記憶装置又は媒体、ソリッドステートメモリデバイス、又は他のいずれかの記憶装置用メモリ、記憶装置、及び／又はコンピュータ装置によるアクセスのために情報を記憶し維持するのに使用可能な記憶媒体を含む、装置の一部である、あるいは装置の外部にある装置及び／又はハードウェア構成要素に含まれる媒体の有形及び／又は物理的形態を含む。
【００２２】
［００２７］コンピュータ記憶媒体とは逆に、通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は例えば搬送波等の変調データ信号内の他のデータ、又は他の送信機構を具現化しうる。本書で定義されるコンピュータ記憶媒体は、通信媒体を含まない。つまり、コンピュータ記憶媒体は、例えば変調データ信号、搬送波、又は伝播信号のみからなる通信媒体を含まない。
【００２３】
［００２８］当業者には当然のことであるが、ＨＤＩＰＳ１００の、あるいはＨＤＩＰＳ１００に関連付けられた回路、構成要素、モジュール、及び／又は装置は互いに信号通信していると説明したが、信号通信は、回路、構成要素、モジュール、及び／又は装置間での任意の種類の通信及び／又は接続を指し、これにより、回路、構成要素、モジュール、及び／又は装置が別の回路、構成要素、モジュール、及び／又は装置と信号及び／又は情報を送受信することが可能になる。通信及び／又は接続は、１つの回路、構成要素、モジュール、及び／又は装置から別の回路、構成要素、モジュール、及び／又は装置へ信号及び／又は情報を送ることを可能にする回路、構成要素、モジュール、及び／又は装置間での任意の信号経路に沿ったものであってよく、これには無線又は有線信号経路が含まれる。信号経路は例えば、導線、電磁導波、ケーブル、取り付けられた及び／又は電磁的に又は機械的に結合された端子、半導体又は誘電材料又は装置、あるいは他の同様の物理的接続又は結合等の物理的なものであってよい。加えて、信号経路は、直接的な電磁接続を通さない様々なデジタル形式で、通信情報が１つの回路、構成要素、モジュール、及び／又は装置から別の回路、構成要素、モジュール、及び／又は装置へ送られる、デジタル構成要素を通る、自由空間（電磁伝搬の場合）又は情報経路等の非物理的なものであってよい。
【００２４】
［００２９］工程例において、ＨＤＩＰＳ１００は、高い放射線耐性を有する第１の処理装置１０２に定期的な第１のインテグリティチェックを実行して第１のインテグリティ結果１１６を生成することと、定期的な第１のインテグリティチェックと同時に、ＴＶＰ装置１０６に第２のインテグリティチェックを実行して第２のインテグリティ結果を生成することとを含む方法を実施する。本方法は次に、第１のインテグリティ結果１１６と第２のインテグリティ結果とを比較することと、第１のインテグリティ結果１１６が第２のインテグリティ結果と一致しない場合に電力リセット信号１２８で第１の処理装置１０２の電力リセットを行うこととを含む。この実施例では、信号経路１３０を介してＴＶＰ装置１０６から第１の処理装置１０２に電力リセット信号１２８が送信される。第１の処理装置１０２が電力リセット信号１２８を受信すると、第１の処理装置は、第１の処理装置１０２の電源を切り、キャッシュメモリ１０４内の全てのデータを消去して、第１の処理装置内の回路をリセットするコールドスタートを実施する。
【００２５】
［００３０］一般に、ＨＤＩＰＳ１００は、ＯＳ１２６に、メモリのフレームをキャッシュメモリ１０４内に作成させることによって定期的な第１のインテグリティチェックを実施し、これには確定的な時間がかかる。フレームは、キャッシュメモリ１０４内にＯＳ１２６のスケジューラによって割り振られたそれ自体のメモリ空間と、それ自体の専用の時間スロットを有する複数のパーティションに分割される（すなわち、各パーティションはそれ自体のメモリアドレスを有する）。スケジューラは次に、定期的な第１のインテグリティチェック（本願では、インテグリティチェックは第１の処理装置１０２によって、及び第１の処理装置１０２において実施されるため、「第１の」インテグリティチェックと称される）を実施するために、フレームの初期のパーティションを割り振る（すなわち、キャッシュメモリ１０４のフレームのインテグリティパーティションを確立する）。
【００２６】
［００３１］プロセッサ１１０は次に、任意のデータを受信する前に第１の処理装置１０２の組込み試験（「ＢＩＴ」）を実行する。ＢＩＴは予め定められ、第１の処理装置１０２が確定的に機能しているという高い信頼性を生み出すために、第１の処理装置１０２を十分働かせるほどに十分正確である。いずれかのエラーが検出された場合、エラーはＨＤＩＰＳ１００によって出来る限り忠実に報告される。ＢＩＴの一例として、プロセッサ１１０は、第１の処理装置１０２の複数の操作コードのサブセットを実行することができ、操作コードは、プロセッサ１１０の動作を制御するために用いられるコードである。第１の処理装置１０２は次に、ＥＣＣメモリ１２４にデータチェックプロセスを実施しうる。
【００２７】
［００３２］データチェックプロセスは、ＥＣＣメモリ１２４からメモリ値を読み取ることと、メモリ値をメモリ値に対応するＥＣＣメモリ１２４のＥＣＣ値と比較することと、再生成されたＥＣＣ値を再生成することと、ＥＣＣ値を再生成されたＥＣＣ値と比較することとを含みうる。データチェックプロセスは、オプションとして、第１のインテグリティチェックを実施する前に実施することができ、これによりＥＣＣメモリ１２４がＢＩＴを実施する前に又は第１のインテグリティの後にＳＥＥの影響を受けていないことが確認される。ＥＣＣ値を再生成されたＥＣＣ値と比較して一致していない場合、第１の処理装置１０２は、ＥＣＣメモリ１２４軽減プロセスを実施することができ、これによりＥＣＣメモリ１２４を適切に使用するための準備をすることができる。ＥＣＣメモリ１２４のデータチェックが完了すると、本方法は第１の処理装置１０２の関数を適切に取得するために、計算集約型プロセス（すなわち計算が複雑な計算）を実施することを開始しうる。
【００２８】
［００３３］この実施例では、データチェックは一般に「メモリスクラブ」としても知られている。ＥＣＣメモリ１２４をスクラビングする目的は、ＥＣＣメモリ１２４に保存されたデータのインテグリティを守るためである。これは、ＥＣＣメモリ１２４が、実行時にＨＤＩＰＳ１００がそれ自体の全ての命令及びデータを保存する場所であり、ＥＣＣメモリ１２４は通常ＳＥＥの影響を受けやすいためである。一例として、ＥＣＣメモリ１２４は、例えば、倍データレートタイプ３（「ＤＤＲ３」）ＳＤＲＡＭ等のシンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）であってよい。当業者には、ＳＥＥ環境において、ＤＤＲ３ＳＤＲＡＭの個々のセルが自発的に、またランダムに（すなわちＬｏｇｉｃ０からＬｏｇｉｃ１へ、またその逆へ）状態を変化させるであろうことは周知である。
【００２９】
［００３４］一般に、ＳＥＥが原因でＤＤＲ３  ＳＤＲＡＭのセルがビットを反転させるレートは高度によって決定される。工程において、データがＥＣＣメモリ１２４のＤＤＲ３記憶装置に書き込まれると、ＥＣＣも同じ場所に自動的に書き込まれる。本開示において、スクラビング（すなわちデータチェックプロセス）は、ＥＣＣメモリ１２４内のメモリ位置のセットを読み取ることと、ＥＣＣシンドロームを再計算することと、その結果をメモリ位置から読み取られた元のＥＣＣシンドロームと比較することとを含む。この実施例では、第１の処理装置１０２に含まれるＥＣＣシンドローム機構は、単一のエラー訂正、２つのエラー検出（「ＳＥＣＤＥＤ」）として知られる付加的なパリティを有する拡張ハミング符号を実施することができる。一般に、第１の処理装置１０２は１つのエラーを見つけ、第１の処理装置１０２は訂正されたバージョンのデータをＥＣＣメモリ１２４にライトバックする。２つのビット反転が起きた場合、ＨＤＩＰＳ１００はデータを回復させることができない場合があり、リセットが必要となる。ＥＣＣメモリ１２４はＳＥＥの影響を受けやすいため、スクラビングの間の時間が長いほど、ＳＥＥの影響により、ＥＣＣメモリ１２４内のデータがゆがめて伝えられる可能性が高まる。上記のように、ＨＤＩＰＳ１００は、２つのビット反転が発生する確率を減らすようなレートで、データチェックプロセスを実行する。このレートは、システム設計者によって予め定められる。
【００３０】
［００３５］ＢＩＴが完了し、エラーが全く検出されなければ、第１の処理装置１０２及びＴＶＰ装置１０６は第１及び第２のインテグリティチェックの両方に対して計算集約型のプロセスを用いることができ、プロセスでは、第１の処理装置１０２のリソースのかなりの部分が用いられるほど大量の計算が実行され、これによりＳＥＥの影響を受けているかどうかを知るために第１の処理装置１０２の回路の状態が包括的にテストされる。この実施例では、計算集約型のプロセスは、第１の処理装置１０２で第１の線形帰還シフトレジスタ（「ＬＦＳＲ」）を用いて第１の疑似乱数列を生成すること、そして同時に、ＴＶＰ装置１０６で第２のＬＦＳＲを用いて第２の疑似乱数列を生成することを含みうる。第１のインテグリティチェックを第２のインテグリティチェックと比較することは次に、ＴＶＰ装置１０６において第１のインテグリティ結果１１６の第１の疑似乱数列を第２疑似乱数列と比較することを含む。この実施例では、第１のＬＦＳＲと第２のＬＦＳＲは、第１の処理装置１０２とＴＶＰ装置１０６の両方におけるものと同じシードであり、シードとは、第１及び第２のＬＦＳＲの両方の初期値である。当業者には当然のことであるが、この実施例では、ＬＦＳＲがそれ自体の以前の状態の線形関数である入力ビットを有するシフトレジスタであり、シフトレジスタの工程が確定的であるため、レジスタによって生成された値のストリームは、それ自体の現在の（又は以前の）状態によって完全に決まる。更に、シフトレジスタは有限数の可能な状態を有するため、最終的には反復サイクルに入ることになるが、適切なフィードバック関数を有するＬＦＳＲは、ランダムに見え、非常に長いサイクルを有するビット列を生成し、これにより、疑似乱数列が生成される。
【００３１】
［００３６］第１の処理装置１０２が第１のインテグリティチェックを完了すると、第１の処理装置１０２は、二重認証サブプロセスを実施する準備ができる。二重認証プロセスは、次の第１のインテグリティチェックが実施される前に予め定められたＭ量の計算を実施することを含み、Ｍの数は、ＨＤＩＰＳ１００の設計によって、あるいはＨＤＩＰＳ１００をプログラミングしうるシステムレベルのユーザによって予め定められる。これらのＭの計算は、ＳＥＥ環境において他のシステム（例：外部のシステム１２０）がその値を適切に信頼することができるように、その値が高いインテグリティを有することが要求される重要で、危険性のある、あるいは重大な計算でありうる。例えば、オートパイロット、ナビゲーション、又はシステム警報システムを用いる航空機は、ＳＥＥ環境において問題が生じないように、電気システム及び電子システム及びサブシステムが正確で信頼性の高い値を算出していることを確認する必要がある。その結果、ＨＤＩＰＳ１００は、ＨＤＩＰＳ１００からの全ての出力データ１３２が信頼性の高いものとなり、ＨＤＩＰＳ１００は出力データ１３２としていかなる不良データも生成しないことが確実である方法を実施する。サブプロセスは、第１の処理装置１０２において２回計算を実施するため、「二重認証」プロセスと称される。
【００３２】
［００３７］上記のように、ＨＤＩＰＳ１００は、コンピュータによって実行可能な命令を用いて第１の処理装置１０２によって実施される定期的な第１のインテグリティチェック間に、Ｍ量の計算を実行する。この計算には、第１の処理装置１０２において第１のデータ１３４を受信することと、第１の時間値において第１のデータ１３４の第１の計算を実行して第１の結果を生成することと、第１の計算を実行した後でキャッシュメモリ１０４をフラッシュすることと、第２の時間値において第１のデータ１３４の第２の計算を実行して第２の結果を生成することと、第３の時間値において第１の結果を第２の結果と比較することと、第１の結果が第２の結果と一致しない場合にキャッシュメモリ１０４をフラッシュすることとが含まれる。
【００３３】
［００３８］この実施例では、第２の時間値は第１の時間値に続くものであり、第３の時間値は第２の時間値に続くものである。更に、第１の計算を実行することは、キャッシュメモリ１０４のフレームの第１のパーティションにおいて第１の計算を実行することと、キャッシュメモリ１０４をフラッシュする前にＥＣＣメモリ１２４内に第１の結果を保存することを含む。第１のパーティションは、キャッシュメモリ１０４内に第１のメモリアドレスを有する。更に、第２の計算を実行することは、キャッシュメモリ１０４をフラッシュした後に、キャッシュメモリ１０４のフレームの第２のパーティションにおいて第２の計算を実行することを含み、第２のパーティションはキャッシュメモリ１０４内に第２のメモリアドレスを有する。第１及び第２のメモリアドレスは、第１のパーティションからの残りの値が第２のパーティションに影響しないように、異なっている。
【００３４】
［００３９］更に具体的には、第１の計算を実行した後にキャッシュメモリ１０４をフラッシュする目的は、第２の結果を確定的に生成するために、第２の計算を実行する前に既知の構成から開始するためである。この実施例では、ＯＳ１２６は時空的に区分けされたシステムであり、ＯＳ１２６は、第１のタスクが確定的な時間の間実施され、別のタスクも確定的な時間の間実施されるように指示する。このように、これら２つの計算の間でキャッシュメモリ１０４をフラッシュすることで、第２のパーティションによって生成されたデータ（すなわち第２の結果）は第１のパーティションから残ったいかなる「古くなった」データによっても全く影響をうけなくなる。こうすれば、時空的区分けの「空間」部分により、各タスクエレメントがそれ自体の独自のメモリ空間で実行され且つこれらの空間のコンテンツが有効なパーティション間で変更されないモデルが実施される。この実施例では、フラッシュプロセスはキャッシュメモリ１０４に限定され、ＥＣＣメモリ１２４はフラッシュされないことを理解すべきである。
【００３５】
［００４０］第１の結果が第２の結果と一致する場合、コンピュータによって実行可能な命令１１４は、第１の処理装置１０２に、信号経路１２２を介して第１の結果を外部のシステム１２０へ送信させ、第１の結果が第２の結果と一致しない場合、第１の処理装置１０２に、第１のデータ１３４を受信するステップと、第１及び第２の計算を再計算するステップと、新たな第１の結果を第２の結果と比較するステップを繰り返させる。
【００３６】
［００４１］この実施例では、各パーティションはそれ自体の計算結果を、各パーティションに対して割り当てられたメモリアドレス及び範囲とともに、ＥＣＣメモリ１２４内の共通メモリエリア内に格納する。いずれの場合にも、有効なパーティションはそれ自体の計算結果を、キャッシュメモリ１０４をフラッシュして、次のパーティションに移行する前に、共通メモリエリアに保存する。第１の処理装置１０２が外部（すなわち外部のシステム１２０）にデータを出力する準備ができた時に、ＯＳ１２６によって特殊なパーティションタイプがスケジューリングされ実行される。このパーティションは、入出力（「Ｉ／Ｏ」）パーティションである。
【００３７】
［００４２］第１の結果が第２の結果と一致する場合、第１の結果を外部のシステム１２０へ送信する前に、コンピュータによって実行可能な命令１１４は、プロセッサ１１０に、第１の結果を以前の平均値と更に比較させる。第１の結果が以前の平均値と一致しない場合、コンピュータによって実行可能な命令１１４は、プロセッサ１１０に、キャッシュメモリ１０４をフラッシュさせ、第１のデータ１３４を受信するステップを繰り返させ、第１及び第２の計算を再計算させ、新たな第１及び第２の結果を比較させ、新たな第１の結果を以前の平均値と比較させる。
【００３８】
［００４３］第１の結果が以前の平均値と一致する場合、コンピュータによって実行可能な命令１１４は、プロセッサ１１０に、第１の結果をエラー限界とさらに比較させて、第１の結果がエラー限界内であるかどうかを決定させる。エラー限界は、プロセッサ１１０によって実施される所与の計算における可能な値に対応する最大及び最低を有する値のウィンドウである。
【００３９】
［００４４］一実施例として、ＨＤＩＰＳ１００は、所与の速度における航空機の旋回レートの計算を実施しうる。以前の平均値は、予め定められた時間における旋回レートを示す、その予め定められた時間にわたる平均である。第１の処理装置１０２によって生成された、計算された旋回レートが一致ウィンドウ（以前の平均値とおおよそ等しい予め定められた値の範囲）外である場合、計算された旋回レートがＨＤＩＰＳ１００によって航空機の旋回レートの許容可能な値の範囲外であるとみなされ、ＨＤＩＰＳ１００は計算された旋回レートを却下し、ＨＤＩＰＳ１００に新たな旋回レートを再計算させて以前の平均値に対してテストさせる。
【００４０】
［００４５］同様に、所与のデータパラメータは、予め定められた目的において許容可能な上限及び下限を有していてよく、計算された値がこれらの上限又は下限（すなわち、エラー限界のウィンドウ又は単純に「リミットウィンドウ」）外である場合、計算された値が幾つかの計算の後に一致し、以前の平均値と一致するにも関わらず、ＨＤＩＰＳ１００によって却下される。航空機の旋回レートを用いる別の実施例として、所与の航空機において、１５度を上回る旋回レートを有することが危険であると予め定められた場合、ＨＤＩＰＳ１００は、たとえ計算が第１の処理装置１０２を通して確認され、以前の平均値と一致するとしても、１５度の旋回レートを超えるように要求する出力データ１３２を外部のシステム１２０へ送信しようと試みる計算を却下する（例えば、過去において、航空機にとって危険であったが１５度を超える旋回レートを生じさせる操作を航空機が実施せざるを得なかった等）。このように、ＨＤＩＰＳ１００は、第１の処理装置１０２が第１のデータ１３４を受信し、両方の計算結果と一致させ、以前の平均値と一致させ、エラー限界と一致させる二重の計算を実施する場合にのみ、出力データ１３２を外部のシステム１２０へ送信する。
【００４１】
［００４６］これらの実施例すべてにおいて、ＨＤＩＰＳ１００は、第１の処理装置１０２を用いて、第１の処理装置１０２のリセットが、インテグリティチェック内の不一致を除くＢＩＴのエラー、データチェックのエラー、又は二重認証プロセスの第１及び第２の結果の不一致に応じて起こるかどうかを決定する。前述したように、ＨＤＩＰＳ１００は、ＨＤＩＰＳ１００がインテグリティチェックをしなかった場合にＴＶＰ装置１０６を用いて第１の処理装置１０２にリセットさせる。
【００４２】
［００４７］本開示に係るＨＤＩＰＳ１００とともに使用されるフレーム２００の実行形態の一例を示すシステムブロック図である図２を参照する。図示した実施例では、フレーム２００は、ＨＤＩＰＳ１０によって確定的に実施されるパーティションの定期的な繰り返しを含む。図示したフレーム２００は、フレーム２００の開始において第１のインテグリティパーティション２０２を有し、フレーム２００の終わり近くに第２のインテグリティパーティション２０４を有する。当業者には当然のことであるが、例示の目的でインテグリティパーティションを２つのみ示したが、インテグリティパーティションは、フレーム２００の設計パラメータとタイミングリミットに基づきフレーム２００内の任意の数のインテグリティパーティションであってよい。フレーム２００はまた、第１の初期のインテグリティパーティション２０２と第２の初期のインテグリティパーティション２０４との間にも複数のパーティションを含みうる。例えば、フレーム２００は、第１のインテグリティパーティション２０２の後の、第１の時点（「Ｔ１」）における第１のパーティション２０６、第２の時点（「Ｔ２」）における第２のパーティション２０８、及び第３の時点（「Ｔ３」）における第３のパーティション２１０を含みうる。同様に、フレーム２００はまた、第２のインテグリティパーティション２０４の後の、Ｔ１における第１のパーティション２１２、Ｔ２における第２のパーティション２１４、及びＴ３における第３のパーティション２１６も含みうる。
【００４３】
［００４８］前述したように、第１のインテグリティチェック２１８は、初期の時点（「Ｔ０」）で第１の初期のインテグリティパーティション２０２のタスクとして実施される。第１の計算タスク２２０は、第１の初期のインテグリティパーティション２０２の後、Ｔ１において第１のパーティション２０６のタスクとして実行される。第２の計算タスク２２２は、Ｔ１における第１の計算２２０の後、Ｔ２において第２のパーティション２０８のタスクとして実行される。第１の計算２２０からの第１の結果と第２の計算２２２からの第２の結果との比較タスク２２４は、Ｔ２における第２の計算２２２の後、Ｔ３において第３のパーティション２１０で実施される。前述したように、第１の計算２２０と第２の計算２２２との間に、ＨＤＩＰＳ１００は、第１の計算２２０を完了した後に第１のパーティション２０６をフラッシュする２２６。ＨＤＩＰＳ１００はまた、第２の計算２２２が完了した後に第２のパーティション２０８もフラッシュしうる２２８。第１及び第２の計算２２０及び２２２の値（すなわち第１と第２の結果）は、第１のパーティション２０６のキャッシュメモリ１０４のフラッシュ２２６と第２のパーティション２０８のフラッシュ２２８の前に、ＥＣＣメモリ１２４に保存されうる。ＨＤＩＰＳ１００はまた、第１のインテグリティチェック２１８を実施した後に、キャッシュメモリ１０４もフラッシュしうる２３０。
【００４４】
［００４９］同様に、インテグリティチェックは定期的なものであるため、これらのチェックは確定的な方法で予め定められた時間の後に繰り返され、第１のインテグリティチェック２３２はＴ０において第１の初期のインテグリティパーティション２０２のタスクとして実施される。第１の計算タスク２３４は、第１の初期のインテグリティパーティション２０４の後、Ｔ１において第１のパーティション２１２のタスクとして実行される。第２の計算タスク２３６は、Ｔ１における第１の計算２３４の後、Ｔ２において第２のパーティション２１４のタスクとして実行される。第１の計算２３４からの第１の結果と第２の計算２３６からの第２の結果との比較タスク２３８は、Ｔ２における第２の計算２３６の後、Ｔ３において第３のパーティション２１６で実施される。前述したように、第１の計算２３４と第２の計算２３６との間で、ＨＤＩＰＳ１００は、第１の計算２３４が完了した後に第１のパーティション２１２をフラッシュする２４０。ＨＤＩＰＳ１００はまた、第２の計算２３６が完了した後に第２のパーティション２１４もフラッシュしうる２４２。第１の計算２３４と第２の計算２３６の値（すなわち第１及び第２の結果）は、第１のパーティション２１２のキャッシュメモリ１０４のフラッシュ２４０と第２のパーティション２１４のフラッシュ２４２の前に、ＥＣＣメモリ１２４に保存されうる。ＨＤＩＰＳ１００はまた、第１のインテグリティチェック２３２を実施した後にもキャッシュメモリ１０４をフラッシュしうる２４４。これらの実施例では、キャッシュメモリ１０４はフラッシュされるが、ＥＣＣメモリ１２４はフラッシュされない。
【００４５】
［００５０］本開示に係るＨＤＩＰＳ１００によって実施される方法３００の実行形態の一例のフロー図を示す図３を参照する。この実施例では、方法３００は、前述したように、ＨＤＩＰＳ１００によって複数のパーティションを有するフレーム２００を作成する３０４ことによって開始される３０２。複数のパーティションは、Ｔ０における第１の初期のインテグリティパーティション２０２と、第１のメモリアドレスにあるＴ１における第１のパーティション２０６と、第２のメモリアドレスにあるＴ１における第２のパーティション２０８と、第３のメモリアドレスにあるＴ３における第３のパーティション２１０とを含む。ＨＤＩＰＳ１００は次に、前述したように、インテグリティチェック３０６を実施する。ＨＤＩＰＳ１００は第１のデータ１３４を受信し、前述したように、第１のデータ１３４の二重認証３０８を実施する。ＨＤＩＰＳ１００は次に、以前の平均値３１０を読み出して、その値を二重認証３０８の結果（第２の結果と一致した第１の結果）と比較して３１２、一致があるかどうかを決定する。一致がない場合、ＨＤＩＰＳ１００は次にキャッシュメモリ１０４をフラッシュし３１４、プロセスはステップ３０８へ戻って繰り返す。
【００４６】
［００５１］もし一致があれば、プロセスは次にステップ３１６へ続く。ステップ３１６において、ＨＤＩＰＳ１００は、二重認証された第１のデータ１３４に対応する計算の上限値、下限値、又はこの両方を読み出す。ＨＤＩＰＳ１００は次に、計算された第１の結果が下限値から上限値までの範囲（すなわちリミットウインドウ）内にあるかどうかを決定する３１８。第１の結果がリミットウィンドウ内にない場合、ＨＤＩＰＳ１００はキャッシュメモリ１０４をフラッシュし３１４、プロセスはステップ３０８へ戻って繰り返す。
【００４７】
［００５２］第１の結果が制限ウインドウ内にある場合、ＨＤＩＰＳ１００は第１の結果を外部のシステム１２０へ送る（すなわち送信する）３２０。ＨＤＩＰＳ１００は次に、定期的なインテグリティチェックが実施されるかどうかを決定する３２２。実施されない場合、プロセスはステップ３０８へ戻り、プロセスが繰り返される。定期的なインテグリティチェックが実施された場合、プロセスはステップ３０６へ戻り、プロセスが繰り返される。
【００４８】
［００５３］図４に、本開示に係る（図３の）インテグリティチェック３０６を実施する方法の実行形態の一例のフロー図を示す。この実施例では、ＨＤＩＰＳ１００は、インテグリティパーティション２０２としてフレーム２００の初期のパーティションを生成（すなわち作成）し４００、次にＢＩＴを実行する４０２。ＨＤＩＰＳ１００は次に、キャッシュメモリ１０４にデータメモリチェック４０４を実行し、計算集約型の計算を計算するようにＴＶＰ装置１０６に通知する４０６。第１の処理装置１０２は次に、計算集約型の計算を実行し４０８、それと同時にＴＶＰ装置１０６は計算集約型の計算を実行する４１０。前述したように、計算集約型の計算は、ＬＦＳＲを用いて第１の疑似乱数列を生成することを含みうる。第１の処理装置１０２の結果はＴＶＰ装置１０６へ送られ４１２、ＴＶＰ装置１０６は、第１の処理装置１０２とＴＶＰ装置１０６からの結果が等しいかどうかを決定する４１４。結果が等しくない場合、ＴＶＰ装置１０６は電力リセット信号１２８を生成し、この信号を第１の処理装置１０２へ送る。第１の処理装置１０２が電力リセット信号１２８を受信すると、第１の処理装置１０２はリセットされ４１６、プロセスはステップ４００に戻って、プロセスが繰り返される。
【００４９】
［００５４］図５に、本開示に係る（図４の）データメモリチェック４０４を実施する方法の実行形態の一例のフロー図を示す。この実施例では、前述したように、データチェックプロセス４０４は、値をＥＣＣメモリ１２４内に保存すること５００と、ＥＣＣメモリ１２４から保存されたメモリ値を読み取ること５０２と、メモリ値をメモリ値に対応するＥＣＣメモリ１２４のＥＣＣ値と比較すること５０４と、再生成されたＥＣＣ値を再生成すること５０６と、ＥＣＣ値を再生成されたＥＣＣ値と比較すること５０８とを含みうる。ＥＣＣ値が再生成されたＥＣＣ値と等しくない（すなわち一致しない）場合、エラーが起きており、ＨＤＩＰＳ１００は前述したように軽減プロセス５１０を実施し、プロセスはステップ４０６へ続く。ＥＣＣ値が再生成されたＥＣＣ値と一致する場合、プロセスはステップ４０６へ続く。
【００５０】
［００５５］図６に、本開示に係る（図３の）二重認証プロセス３０８を実施する方法の実行形態の一例のフロー図を示す。前述したように、二重認証プロセス３０８において、ＨＤＩＰＳ１００は第１のデータ１３４を受信する６００。第１の処理装置１０２のスケジューラは次に、第１の時点（すなわちＴ１）で第１のメモリアドレスを有する第１のパーティション２０６を作成し６０２、第２の時点（すなわちＴ２）で第２のメモリアドレスを有する第２のパーティション２０８を作成し６０４、第３の時点（すなわちＴ３）で第３のメモリアドレスを有する第３のパーティション２１０を作成する６０６。本方法は次に、第１の時間値において第１のデータ１３４の第１の計算２２０を実行して第１の結果を生成し６０８、ＥＣＣメモリ１２４内に第１の結果を保存し６１０、第１の計算２２０を実行した後にキャッシュメモリ１０４をフラッシュする６１２。本方法は次に、第２の時間値において第１のデータ１３４の第２の計算２２２を実行して第２の結果を生成し６１４、第３の時間値において第１の結果を第２の結果と比較する６１６。第１の結果が第２の結果と一致しない場合、本方法はキャッシュメモリ１０４をフラッシュし６１８、プロセスはステップ６００へ進み、ステップ６００においてＨＤＩＰＳ１００によって新たなデータが新たな第１のデータ１３４として受信され、プロセスが繰り返される。第１の結果が第２の結果と一致した場合、プロセスはステップ３１０へ進む。
【００５１】
［００５６］実行形態の他の一実施例は、高データインテグリティ処理システム（「ＨＤＩＰＳ」）を含む。ＨＤＩＰＳ（１００）は、高い放射線耐性と、キャッシュメモリ（１０４）とを有する第１の処理装置（１０２）と、第１の処理装置（１０２）と信号通信している三重投票処理（「ＴＶＰ」）装置（１０６）とを含む。第１の処理装置（１０２）は、プロセッサ（１１０）と、符号化されたコンピュータによって実行可能な命令（１１４）を有するコンピュータ可読媒体（「ＣＲＭ」）（１１２）とを含む。コンピュータによって実行可能な命令（１１４）は、プロセッサ（１１０）に、定期的な第１のインテグリティチェックを第１の処理装置（１０２）に対して実行させて第１のインテグリティ結果（１１６）を生成させる。ＴＶＰ装置（１０６）は、符号化された機械命令を有するファームウェア（１１８）を含み、機械命令は、ＴＶＰ装置（１０６）に、定期的な第１のインテグリティチェックと同時に、第２のインテグリティチェックを第１の処理装置（１０２）に対して実行させて第２のインテグリティ結果を生成させ、第１のインテグリティ結果を第２のインテグリティ結果と比較させ、第１のインテグリティ結果が第２のインテグリティ結果と一致しない場合に第１の処理装置（１０２）の電力リセットを行わせる。
【００５２】
［００５７］ＨＤＩＰＳ（１００）は、第１の処理装置（１０２）がシリコンオンインシュレータ（「ＳＯＩ」）技術を用い、またＴＶＰ装置（１０６）が三重モード冗長（「ＴＭＲ」）技術を用いるフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）である、有益なものである。
【００５３】
［００５８］第１の処理装置（１０２）が、アビオニクスアプリケーションスタンダードソフトウェアインターフェース（「ＡＲＩＮＣ」）６５３オペレーティングシステム（「ＯＳ」）（１２６）を用いることが好ましい。
【００５４】
［００５９］ＨＤＩＰＳ（１００）は、ＣＲＭ（１１２）が更に、符号化されたコンピュータによって実行可能な命令（１１４）を含み、この命令は、プロセッサ（１１０）に、第１の処理装置（１０２）において第１のデータを受信させ、第１の時間値において第１のデータの第１の計算を実行させて第１の結果を生成させ、第１の計算を実行した後にキャッシュメモリ（１０４）をフラッシュさせ、第２の時間値において第１のデータの第２の計算を実行させて第２の結果を生成させ、第３の時間値において第１の結果を第２の結果と比較させ、第１の結果が第２の結果と一致しない場合にキャッシュメモリ（１０４）をフラッシュさせ、第２の時間値は第１の時間値に続くものであり、第３の時間値は第２の時間値に続くものである、有益なものである。
【００５５】
［００６０］キャッシュメモリ（１０４）が、プロセッサに直接組み込まれている、あるいはプロセッサ（１１０）と直接信号通信しているランダムアクセスメモリ（「ＲＡＭ」）であることが好ましい。
【００５６】
［００６１］第１の計算を実行することが、第１のメモリアドレスを有するキャッシュメモリ（１０４）のフレームの第１のパーティションにおいて第１の計算を実行することと、キャッシュメモリ（１０４）をフラッシュする前に第１の処理装置（１０２）と信号通信しているエラー訂正コード（「ＥＣＣ」）メモリ（１２４）に第１の結果を保存することとを含み、第２の計算を実行することが、キャッシュメモリ（１０４）をフラッシュした後に第２のメモリアドレスを有するキャッシュメモリ（１０４）のフレームの第２のパーティションにおいて第２の計算を実行することを含むことが好ましい。
【００５７】
［００６２］第１の処理装置（１０２）に定期的な第１のインテグリティチェックを実行することが、第１のパーティションの前にフレームの開始に位置するフレームのインテグリティパーティションを確立することと、第１のデータを受信する前に第１の処理装置（１０２）の組込み試験（「ＢＩＴ」）を実行することと、ＥＣＣメモリ（１２４）のデータチェックをすることとを含むことが好ましい。
【００５８】
［００６３］ＥＣＣメモリ（１２４）のデータチェックを行うことが、ＥＣＣメモリ（１２４）からメモリ値を読み取ることと、ＥＣＣメモリ値をＥＣＣメモリ値に対応するＥＣＣメモリ（１２４）のＥＣＣ値と比較することと、再生成されたＥＣＣ値を生成することと、ＥＣＣ値を再生成されたＥＣＣ値と比較することとを含むことが好ましい。
【００５９】
［００６４］第１の処理装置（１０２）に定期的な第１のインテグリティチェックを実行することが、第１の処理装置（１０２）内で第１の線形フィードバックシフトレジスタ（「ＬＦＳＲ」）を用いて第１の疑似乱数列を生成することを含み、ＴＶＰ装置（１０６）に第２のインテグリティチェックを実行することが、ＴＶＰ装置（１０６）内で第２のＬＦＳＲを用いて第２の疑似乱数列を生成することを含み、第１のインテグリティ結果を第２のインテグリティ結果と比較することが、第１の疑似乱数列を第２の疑似乱数列と比較することを含むことが好ましい。
【００６０】
［００６５］第１のＬＦＳＲと第２のＬＦＳＲが、両方に共通のシードを含むことが好ましい。
【００６１】
［００６６］ＣＲＭ（１１２）が更に、符号化されたコンピュータによって実行可能な命令（１１４）を含み、この命令が、プロセッサ（１１０）に、第１の結果が第２の結果と一致する場合に第１の結果を第１の処理装置（１０２）と信号通信している外部のシステム（１２０）に送信させ、第１の結果が第２の結果と一致しない場合にキャッシュメモリ（１０４）をフラッシュした後に第１の処理装置（１０２）において第１のデータを受信するステップを繰り返させることが好ましい。
【００６２】
［００６７］実行形態の別の実施例は、外部のシステム（１２０）と信号通信している高データインテグリティ処理システム（「ＨＤＩＰＳ」）（１００）で放射線環境内で高データインテグリティ処理を行う方法を含み、本方法は、高い放射線耐性を有する第１の処理装置（１０２）に定期的な第１のインテグリティチェックを実行して第１のインテグリティ結果を生成することと、定期的な第１のインテグリティチェックと同時に、三重投票処理（「ＴＶＰ」）装置（１０６）に第２のインテグリティチェックを実行して第２のインテグリティ結果を生成することと、第１のインテグリティ結果を第２のインテグリティ結果と比較することと、第１のインテグリティ結果が第２のインテグリティ結果と一致しない場合に第１の処理装置（１０２）の電力リセットを行うこととを含む。
【００６３】
［００６８］本方法は更に、第１の処理装置（１０２）において第１のデータを受信することと、第１の時間値において第１のデータの第１の計算を実行して第１の結果を生成することと、第１の計算を実行した後にキャッシュメモリ（１０４）をフラッシュすることと、第２の時間値において第１のデータの第２の計算を実行して第２の結果を生成することと、第３の時間値において第１の結果を第２の結果と比較して、第１の結果が第２の結果と一致しない場合にキャッシュメモリ（１０４）をフラッシュすることと、第１の結果が第２の結果と一致しない場合にキャッシュメモリ（１０４）をフラッシュした後に第１の処理装置（１０２）において第１のデータを受信するステップを繰り返すことと、第１の結果が第２の結果と一致する場合に第１の結果を第１の処理装置（１０２）と信号通信している外部のシステム（１２０）に送信することとを含み、第２の時間値は第１の時間値に続くものであり、第３の時間値は第２の時間値に続くものであることが有益である。
【００６４】
［００６９］第１の計算を実行することが、第１のメモリアドレスを有するキャッシュメモリ（１０４）のフレームの第１のパーティションにおいて第１の計算を実行することと、キャッシュメモリ（１０４）をフラッシュする前に第１の処理装置（１０２）と信号通信しているエラー訂正コード（「ＥＣＣ」）メモリ（１２４）に第１の結果を保存することとを含み、第２の計算を実行することが、キャッシュメモリ（１０４）をフラッシュした後に第２のメモリアドレスを有するキャッシュメモリ（１０４）のフレームの第２のパーティションにおいて第２の計算を実行することを含むことが好ましい。
【００６５】
［００７０］第１の処理装置（１０２）に定期的な第１のインテグリティチェックを実行することが、第１のパーティションの前にキャッシュメモリ（１０４）のフレームの開始に位置するフレームのインテグリティパーティションを確立することと、第１のデータを受信する前に第１の処理装置（１０２）の組込み試験（「ＢＩＴ」）を実行することと、ＥＣＣメモリ（１２４）のデータチェックを行うこととを含むことが好ましい。
【００６６】
［００７１］ＥＣＣメモリ（１２４）のデータチェックを行うことが、ＥＣＣメモリ（１２４）からメモリ値を読み取ることと、メモリ値をメモリ値に対応するＥＣＣメモリ（１２４）のＥＣＣ値と比較することと、再生成されたＥＣＣ値を再生成することと、ＥＣＣ値を再生成されたＥＣＣ値と比較することとを含むことが好ましい。
【００６７】
［００７２］第１の処理装置（１０２）に定期的な第１のインテグリティチェックを実行することが、第１の処理装置（１０２）内で第１の線形フィードバックシフトレジスタ（「ＬＦＳＲ」）を用いて第１の疑似乱数列を生成することを含み、ＴＶＰ装置（１０６）に第２のインテグリティチェックを実行することが、ＴＶＰ装置（１０６）内で第２のＬＦＳＲを用いて第２の疑似乱数列を生成することを含み、第１のインテグリティ結果を第２のインテグリティ結果と比較することが、第１の疑似乱数列を第２の疑似乱数列と比較することを含み、第１のＬＦＳＲと第２のＬＦＳＲが、両方に共通のシードを含むことが好ましい。
【００６８】
［００７３］本方法が更に、第１の結果が第２の結果と一致する場合に第１の結果を外部のシステム（１２０）に送信する前に第１の結果を以前の平均値と比較することと、第１の結果が以前の平均値と一致しない場合にキャッシュメモリ（１０４）をフラッシュすることと、第１の結果が以前の平均値と一致しない場合にキャッシュメモリ（１０４）をフラッシュした後に第１の処理装置（１０２）において第１のデータを受信するステップを繰り返すことと、第１の結果が以前の平均値と一致する場合に第１の結果がエラー限界内であるかどうかを決定することと、第１の結果がエラー限界内でない場合にキャッシュメモリ（１０４）をフラッシュすることと、第１の結果がエラー限界内でない場合にキャッシュメモリ（１０４）をフラッシュした後に第１の処理装置（１０２）において第１のデータを受信するステップを繰り返すこととを含み、第１の結果を外部のシステム（１２０）に送信することが、第１の結果が第２の結果と一致し、以前の平均値と一致し、エラー限界内である場合に第１の処理装置（１０２）によって送信することを含むことが好ましい。
【００６９】
［００７４］当然ながら、本発明の範囲から逸脱しない限り、本発明の様々な態様又は詳細を変更することが可能である。本発明の様々な態様又は詳細は包括的なものではなく、主張された本発明を開示された正確な形態に限定するものではない。更に、前述の説明は単なる例示のために過ぎず、限定するものではない。修正及び変更は、上述の説明を踏まえた上で可能である、あるいは本発明を実行することによって得ることができる。特許請求の範囲、及びその均等物により、本開示の範囲が規定される。
【００７０】
［００７５］図示した異なる実行形態例でのフロー図及びブロック図は、一実施例の装置及び方法の幾つかの可能な実行形態の構造、機能、及び動作を示している。これに関し、フロー図又はブロック図の各ブロックは、１つのモジュール、セグメント、機能、操作又はステップの一部、これらの何らかの組み合わせを表わすことができる。
【００７１】
［００７６］幾つかの代替的実行形態例においては、ブロック内に記載された一又は複数の機能が、図中に記載された順序を逸脱して実施されることがある。例えば、あるケースでは、連続して示されている２つのブロックがほぼ同時に実行されてもよく、または時には含まれる機能に応じてブロックが逆順に実施されてもよい。また、フロー図またはブロック図に示されているブロックに加えて、他のブロックが追加されることもある。
【００７２】
［００７７］種々の実行形態例の説明は、例示及び説明を目的として提示されており、網羅的な説明であること、又は開示された形態の実施例に限定することを、意図しているわけではない。当業者には、多くの修正形態及び変形形態が自明であるだろう。更に、種々の実行形態例は、他の望ましい例とは異なる特徴を提供しうる。選択された１つ以上の実施例は、実施例の原理と実際的な用途を最もよく説明するため、及び、様々な実施例の開示内容と、検討される特定の用途に適した様々な修正例とを当業者が理解できるようにするために、選択及び記述されている。
【００７３】
［００７８］当然ながら、本発明の範囲から逸脱しない限り、本発明の様々な態様又は詳細を変更することが可能である。本発明の様々な態様又は詳細は包括的なものではなく、主張された本発明を開示された正確な形態に限定するものではない。更に、前述の説明は単なる例示のために過ぎず、限定するものではない。修正及び変更は、上述の説明を踏まえた上で可能である、あるいは本発明を実行することによって得ることができる。特許請求の範囲、及びその均等物により、本開示の範囲が規定される。
【００７４】
［００７９］図示した異なる実行形態例でのフロー図及びブロック図は、一実施例の装置及び方法の幾つかの可能な実行形態の構造、機能、及び動作を示している。これに関し、フロー図又はブロック図の各ブロックは、１つのモジュール、セグメント、機能、操作又はステップの一部、これらの何らかの組み合わせを表わすことができる。
【００７５】
［００８０］いくつかの代替的実行形態例においては、ブロック内に記載された一又は複数の機能が、図中に記載された順序を逸脱して実施されることがある。例えば、あるケースでは、連続して示されている２つのブロックがほぼ同時に実行されてもよく、または時には含まれる機能に応じてブロックが逆順に実施されてもよい。また、フロー図またはブロック図に示されているブロックに加えて、他のブロックが追加されることもある。
【００７６】
［００１１０］種々の実行形態例の説明は、例示及び説明を目的として提示されており、網羅的な説明であること、又は開示された形態の実施例に限定することを、意図しているわけではない。当業者には、多くの修正形態及び変形形態が自明であるだろう。更に、種々の実行形態例は、他の望ましい例とは異なる特徴を提供しうる。選択された１つ以上の実施例は、実施例の原理と実際的な用途を最もよく説明するため、及び、様々な実施例の開示内容と、検討される特定の用途に適した様々な修正例とを当業者が理解できるようにするために、選択及び記述されている。
【図１】
2019008781.tif 000003
【図２】
2019008781.tif 000004
【図３】
2019008781.tif 000005
【図４】
2019008781.tif 000006
【図５】
2019008781.tif 000007
【図６】
2019008781.tif 000008
【外国語明細書】
2019008781000001.pdf
2019008781000002.pdf
2019008781000003.pdf
2019008781000004.pdf