JPH11507450A - ミラーデータを使用して破壊されたデータを検出する方法およびシステム - Google Patents

ミラーデータを使用して破壊されたデータを検出する方法およびシステム

Info

Publication number
JPH11507450A
JPH11507450A JP9501615A JP50161597A JPH11507450A JP H11507450 A JPH11507450 A JP H11507450A JP 9501615 A JP9501615 A JP 9501615A JP 50161597 A JP50161597 A JP 50161597A JP H11507450 A JPH11507450 A JP H11507450A
Authority
JP
Japan
Prior art keywords
data item
data
item
inverted
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP9501615A
Other languages
English (en)
Inventor
ゲリー,スコツト・ピー
ポウプ,デイビツド・イー
チヤン,タオ
Original Assignee
アボツト・ラボラトリーズ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アボツト・ラボラトリーズ filed Critical アボツト・ラボラトリーズ
Publication of JPH11507450A publication Critical patent/JPH11507450A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Abstract

(57)【要約】 コンピュータのメモリに記憶されたデータ内のエラーは、該データが使用される前に検出される。データが使用される前に重要なエラーが検出されなければならないプログラムを書く場合に保護データタイプが宣言される。本発明は、好ましくはパーソナルコンピュータ(10)またはデバイス用のマイクロコントローラ内で実施される。保護データ項目が初期設定されるときに、保護データ項目ならびにその対応のビット反転形がメモリに記憶される。コンストラクタ機能を使用して、ビット反転形を決定する。保護データ項目がアプリケーションプログラムが使用するために連続的にアクセスされるとき、記憶された保護データ項目またはその対応するビット反転形を反転させて、他方の記憶された保護データ項目と比較する。この比較において検出された相異は、メモリ内の保護データ項目とその対応のビット反転形のいずれか一方または両方に変化が生じていることを示す。このようなエラーを検出したとき、本発明が使用されているアプリケーションプログラムに応じて、エラーを表示し、プログラムのそれ以上の実行を停止させるなどの適切な処置がとられる。

Description

【発明の詳細な説明】 ミラーデータを使用して破壊されたデータを 検出する方法およびシステム 発明の分野 本発明は、一般に、コンピュータメモリ内に記憶されている破壊されたデータ の検出に関し、さらに詳細には、データが計算に使用される前にこのようなデー タ内のエラーを検出するために使用される方法およびシステムに関する。 発明の背景 多くの人々が、コンピュータは、数値計算を実行する際に絶対に誤りをしない と信じている。また、データを入力する際または該データを使用するプログラム を書く際に誤りがなければコンピュータが実行した計算および論理は正確なもの として使用できると考える人もいる。残念ながら、この考えは、ハードウェア内 で発生するエラーを含めて、他のエラー発生源を無視しているので間違いである 。例えば、最近、数値計算を実行するために使用される中央演算処理装置(CP U)の浮動小数点部分は、装置が実行したロジックに検出されなかった「バグ」 の存在のために結果にエラーをもたらし得ると発表された。 本発明は、コンピュータを用いて行った計算に影響を及ぼす他のエラー発生源 に関する。データは、計算に使用される前に、一般にコンピュータのメモリ内に 記憶される。一般に、データは、計算に必要になるまで、またはコンピュータ上 で実行されているプログラムの他の用途に必要になるまで、読取り専用メモリ( ROM)など不揮発性記憶装置内か、またはハードドライブまたはフロッピーデ ィスク上に保持される。データは、プログラムで必要になったとき、通常、ラン ダムアクセスメモリ(RAM)内に転送され、CPUは、データ値を他のデータ 値に追加するなどして、数値演算を実行し、一時的にRAM内に記憶されるかま たは後で不揮発性記憶装置に転送される結果をもたらす。 コンピュータがデータを使用する際、コンピュータは機械語ステップによって 制御される。これらの機械語ステップは、C++など、高水準言語で書かれたプ ログラムをコンパイルするかまたは解釈することによってつくり出されることが 多い。プログラムは、どのデータを使用するか、どのようにしてデータを使用す るか、またデータから得られた計算結果を用いて何を行うかを決定する。しかし ながら、データは、CPUによっ て使用される前に、不揮発性記憶装置内かまたはパーソナルコンピュータのRA M内で破壊されることがある。 メモリ(RAM)内に記憶されたデータ内のエラーは、いくつかの理由で発生 する。メモリは、高いレベルの放射、静電気の放電、または他の環境状態にさら されることによって悪影響を受け、その中に記憶したデータが破壊されることが ある。このような場合、メモリは、一般に、すべて、2進0または1にセットさ れる。また、メモリチップは、はっきりしない原因により故障し、チップ内に記 憶されたデータの一部または全部にエラーが発生する。また、プログラミング中 のスタックオーバフローまたはエラーのために、メモリ内に記憶されたデータが 失われたり、上書きされることがある。 アプリケーションによっては、メモリ内に記憶されたデータ1ビットや2ビッ トのエラーは、ほとんど無視できる。例えば、グラフィックイメージは、一般に 、イメージデータ内の一つまたは二つのビットが破壊されただけならば、目立っ た影響を受けることはない。しかしながら、データが、医療機器の制御など重要 な用途で使用される場合、破壊されたデータが生命を脅かしかねない結果をもた らす前にエラーを検出する必要がある。 データエラーを検出する最も簡単な手法は、各データ項目のコピーを作成し、 次いで二つのコピーを定期的に比較して、それらが記憶されているメモリ内のエ ラーにより一方のコピーが他方のコピーと異なっているかどうかを判定すること である。しかしながら、データ要素の両方のコピーが同じように破壊の影響を受 けるので、一つまたは複数のメモリチップ内に格納されたすべてのビットを2進 の0または1にセットするメモリ故障をこの方法によっては検出することができ ない。 データ内のエラーを検出するより高度の従来の技術は、いつデータを記憶し、 そして定期的に検査するかを決定する巡回冗長検査(CRC)値を使用すること を含む。CRC値は、比較的複雑な多項式を使用して決定される。後で決定され たCRC値がデータに対して前のCRC値と異なっている場合、データ内の何ら かの変化が検出される。類似の技術では、チェックサムを使用して、メモリ内に 記憶されたデータの変化を検出する。データに対して前に決定されたチェックサ ムは後のチェックサムと比較され、二つのチェックサムの値が異なっている場合 、エラーが検出される。 これらの両方の従来技術には、いくつかの共通の欠点がある。 特に、比較的効率の低いCPUを使用する場合、より重要な欠点の一つは、CR C値またはチェックサムを決定するためにプロセッサ上に付加される計算オーバ ヘッドである。他の問題は、これらの方法の一つによって検査すべきデータ項目 を割り振り、プログラムが実行したときにデータ項目が定期的にエラーの有無を 検査されるようにするために必要な追加のプログラミングの複雑さである。最後 に、いずれの従来技術でも通常定期的にしか行われないので、最後の検査が行わ れた後でデータエラーが発生し、データ項目が次に計算に使用されるときに検出 されない。 必要とされるものは、データがプログラムで使用される直前に重要なデータの みがエラーの有無について検査されるようにするため、比較的小さい計算オーバ ヘッドで、多大なプログラミング努力を必要とせずに実行することができる重要 なデータエラーを検出する技術である。このような技術は、実行するプログラマ にかかる負荷が非常に少なく、従来技術よりも効率的であり、かつ完全に信頼で きるものでなければならない。しかしながら、メモリ内に記憶されたデータ内の エラーを検出する新しい技術の全てが、CPUの欠陥またはプログラムの誤りの ために計算プロセス中に発生するエラーをも検出することができると期待するこ とはできない。 発明の概要 本発明によれば、データ項目内のエラーを検出する方法が規定される。本発明 方法は、データ項目がメモリ内に記憶されたときに、コンストラクタ機能を使用 して、データ項目に対応する反転データ項目を決定するステップを含む。反転デ ータ項目も、データ項目に関連してメモリ内に記憶される。データ項目がプログ ラム内で必要になったとき、データ項目ならびに反転データ項目をメモリから呼 び戻す。次に、プログラムによって使用される前にデータ項目を反転データ項目 と比較する。データ項目が反転データ項目に対応しない場合、本方法は、データ 項目か反転データ項目のいずれかにエラーが発生したことを示す。 一実施形態では、本方法は、さらに、データ項目を反転させて、反転データ項 目と比較するためにテスト反転データ項目をつくり出すステップを含む。他の実 施形態では、本方法は、代わりに、反転データ項目を反転させて、データ項目と 比較するためにテストデータ項目をつくり出すステップを含む。この実 施形態では、本発明方法は、(ユーザ定義の)変換機能オペレータを使用して、 反転データ項目の反転を実行する。さらに、変換機能オペレータは、他の複数の 反転データ項目が使用されている複数のタスク間でのオペレータの共用を可能に するために再入力可能(reentrant)であることが好ましい。 また、本発明方法には、データ項目がこれに関連する反転データ項目を有する ことを示すデータ項目のデータ項目タイプを宣言するステップが含まれる。さら に、コンストラクタ機能を使用して、反転データ項目を決定するステップ、デー タ項目および反転データ項目をメモリ内に記憶するステップ、データ項目および 反転データ項目をメモリから呼び戻すステップ、データ項目を反転データ項目と 比較するステップ、およびデータ項目が反転データ項目に対応しない場合、エラ ーが発生したことを示すステップが、データ項目に関連する反転データ項目を有 するタイプであると宣言された各データ項目ごとに自動的に実行される。 本発明の他の態様は、データ項目が計算に使用される前にデータ項目内のエラ ーを検出するシステムを対象とする。該システムは、データ項目を使用する計算 を実行するコンピュータを 含む。コンピュータは、データ項目内のエラーを検出するプログラムステップを 実行するCPUを含む。データ項目を記憶し、CPUを制御しかつCPUによっ て実行されるプログラムステップを決定する機械命令を記憶するメモリがコンピ ュータに含まれる。さらに、コンピュータは、メモリをCPUに結合するデータ バスを含む。機械命令は、CPUに、データ項目がメモリ内に記憶されたときに 、コンストラクタ機能を使用して、データ項目に対応する反転データ項目を決定 させる。その場合、反転データ項目は、データ項目に関連してメモリ内に記憶さ れる。さらに、機械命令は、CPUに、データ項目が次にCPUによって必要と されたときに、データ項目および反転データ項目をメモリから呼び戻させ、いず れかが使用される前にデータ項目を反転データ項目と比較させる。さらに、CP Uは、データ項目が反転データ項目に対応しない場合、データ項目または反転デ ータ項目内にエラーが発生したことを示すようになされる。 機械命令に応答してCPUによって実行される他の機能は、一般に、上記方法 に関連する上記のステップに適合する。 図面の簡単な説明 本発明の上記の態様およびそれに伴う多くの利点は、添付の図面に関して行う 以下の詳細な説明により、本発明がよりよく理解されるときにより容易に理解で きよう。 第1図は、本発明が実施されるパーソナルコンピュータシステムの斜視図であ る。 第2図は、第1図に示されるパーソナルコンピュータのプロセッサシャシ内の 内部構成要素のブロック図である。 第3図は、メモリセル内に記憶されたデータが破壊される異なるいくつかの形 を示す複数のメモリセルを示すブロック図である。 第4図は、本発明を実施する場合に実行される論理ステップの概要を示す流れ 図である。 第5図は、保護データタイプのクラスを定義する場合に実行されるステップの 詳細を示す流れ図である。 第6図は、保護データタイプをプログラムに組み込むためにプログラマによっ て実行されるステップを示す流れ図である。 第7図は、本発明が使用されるプログラムを使用するときに保護データの完全 性を検査するために実行される論理を示す流 れ図である。 好ましい実施形態の説明 本発明は、マイクロコントローラ(図示せず)か、または第1図に示されるパ ーソナルコンピュータ10などのコンピュータ上で実施される。パーソナルコン ピュータ10は、一般に、パーソナルコンピュータシステムの内部ハードウェア 構成要素が配置されたプロセッサシャシ12を含めて、従来の構成のものである 。プロセッサシャシ12上には、ディスプレイモニタ14があり、その解像度お よびカラー能力は特に本発明に関係しない。ハードドライブ16およびフロッピ ードライブ18がプロセッサシャシのフロントパネル内に取り付けられており、 アプリケーションプログラム、他のファイルおよびデータを記憶する固定の不揮 発性メモリを提供する。フロッピードライブ18は、パーソナルコンピュータ1 0がフロッピーディスク(別個に図示せず)に対するファイルおよびデータの読 取りおよび書込みを可能にする。 キーボード20がプロセッサシャシ12に接続されており、ユーザがパーソナ ルコンピュータ10上で実行しているプログラムを制御するデータおよび命令を 入力することを可能にする。 ディスプレイモニタ14上でカーソルを制御するマウス22または他のポインテ ィングデバイスを使用して、システムへのオペレータ入力を行うこともできる。 すなわち、ユーザは、カーソルを移動して、ディスプレイモニタ上に表示される メニュー項目およびグラフィックオブジェクトを選択することができる。 第2図に、プロセッサシャシ12内に含まれる従来の構成要素を示す。構成要 素のうちのいくつかは、本発明の実施に関連して使用される。パーソナルコンピ ュータ10上で動作するアプリケーション内でプログラムステップを実施する機 械命令を実行するCPU24が備えられている。CPU24は、メモリ28を含 む他の構成要素と同様に、データバス26に結合される。メモリ28は、読取り 専用メモリ(ROM)ならびにランダムアクセスメモリ(RAM)を含む。パー ソナルコンピュータ10の初期ブートアップに必要な機械命令は、ROM内に記 憶される。アプリケーションが実行されるときに機械命令をロードし、そのよう なプログラムを実行するために必要な変数および他のデータを記憶する揮発性記 憶装置が備えられている。ディスプレイインタフェース30は、データバス26 からディスプレイインタフェースに転送されるビデオデータに応答して ディスプレイモニタ14を駆動するために使用される。また、データバスには、 シリアル/マウスポート32、ハードドライブおよびフロッピードライブインタ フェース34、およびキーボードインタフェース36が結合されている。パーソ ナルコンピュータ10内での使用に関して第2図に示される各構成要素の機能は 当業者には周知であり、本発明の実施可能な開示を示すために詳細に説明する必 要はない。本発明では、パーソナルコンピュータ内で一般に使用されるもの以外 に様々なタイプのCPUが使用できることに留意されたい。例えば、本発明は他 のデバイス用のコントローラ内で実施されるが、CPU24およびメモリ28の 代わりに、これらの両方の機能構成要素を組み込んだマイクロコントローラ(図 示せず)を使用することができる。 第1図において、パーソナルコンピュータ10は、デスクトップシステムとし て示されている。しかしながら、ラップトップおよびネットワーク上のワークス テーションを含むほとんどどんなタイプのコンピュータ上でも実施することがで きる。また、医療機器などのハードウェアデバイスを制御するために使用される マイクロコントローラ内でも容易に実施することがで きる。本発明のマイクロコントローラ実施形態は図面には示されていないが、こ れらのデバイスは制御技術の分野において周知であり、したがってその実施形態 について詳細を示す必要はない。マイクロコントローラ実施形態は、パーソナル コンピュータ10上のプログラム内で実行する実施形態とまったく同じ形で機能 することが有利である。さらに、本発明は、タイプに関する制限なしに、様々な 異なるアプリケーションプログラムに含めることができることに留意されたい。 データを使用するほとんどどんなプログラムも、誤ったデータが使用される前に データ内のエラーを検出するための本発明を組み込むことから利益を得ることが できる。 上記の発明の背景において説明したように、マイクロコントローラまたはパー ソナルコンピュータ10などのコンピュータ内のメモリ内に記憶されたデータは 、様々な原因によって破壊される。第3図に、メモリ内に記憶されたデータが破 壊されるいくつかの形を示すいくつかの例を示す。この図では、42によって示 される静電気放電または放射の影響により少なくとも何らかの破壊を受ける前に 、メモリ内に初めに2進で記憶されたデータのバイトを示す複数のメモリセル4 0が示されている。 第1の破壊の例では、単一のメモリセル44内に記憶されたバイトはメモリセル 40’内で変化する。メモリセル44’内に記憶されたバイトでは、データの最 下位ビット(LSB)から2番目のビットが変化する。具体的には、初めに記憶 されたときに、メモリセル44は、2進値「11000101;」を含んでおり 、この値は、メモリセル44’内で「1100011.」に変化する。(破壊 されたビットには、生じた変化をより明確に示すために下線を引いてある)。 第3図に示されるデータ破壊の第2の例では、メモリセル40”内に含まれる データは、静電気放電または放射の影響のためにすべて0にセットされている。 あるいは、メモリセル40′′′内に示されるように、静電気放電または放射の 影響によりすべてのデータが2進1にセットされることもある。破壊の後、メモ リ内に初めに記憶されたデータの二つのコピーはどちらも同様の影響を受け、破 壊の検出が不可能になるので、メモリセル40”およびメモリセル40′′′内 に示される破壊データ状態では両方のコピーの比較が不可能であることに留意さ れたい。 反対に、本発明は、重要なデータ項目をメモリ内にその標準 形ならびにそのビット反転(ミラー)形で記憶することによってこの問題を回避 する。データ項目が反転したとき、データ項目の各2進ビットが反対の2進値に 変化する。すなわち、各2進0は2進1に変化し、各2進1は2進0に変化する 。したがって、例えば、「10010010」のビット反転値は「011011 01」になる。データ項目を後で計算に使用する前またはアプリケーションプロ グラムによって他の何らかの目的に使用する前に、データ項目をまずそのメモリ 記憶位置から得なければならない。次いで、データ項目を反転させ、その前のビ ット反転形と比較するか、または前にビット反転したデータ項目をメモリから得 、標準形を得るために反転させて、いまメモリから得たデータ項目と比較する。 したがって、比較した二つの値の差により、初めに記憶されたデータ項目内の変 化または初めに記憶された対応するビット反転形内の変化が検出される。 第4図に、開始ブロック50から始まる本発明に関連するステップの概要を流 れ図の形で示す。ブロック52で、破壊またはエラーについて検査するデータ項 目の選択を行う。多くの場合、プログラム内で使用されるほとんどのデータは、 データの反転形を記憶するために必要な追加の記憶オーバヘッドまたは データ内のエラーを検出するために必要な(わずかではあるが)計算オーバヘッ ドが正当化されるほど重要なものではない。したがって、ユーザは、プログラム 内の極めて重要なデータ項目のみを「保護データ項目」すなわち本発明を使用し てエラーについて検査するデータ項目として選択する。 ブロック54で、ユーザは、保護データタイプのクラス(またはユーザ定義の データタイプ)を定義する。このステップを実行する場合に必要な論理の詳細を 、ブロック70から始まる第5図の流れ図に示す。この流れ図に示すように、各 保護データタイプごとに、ユーザは、ブロック72に示すように、保護データ項 目用の記憶装置を定義するステップから始まる図示のステップを実行する。この ステップで、ユーザは、各保護データ項目に適したメモリ記憶装置を予め取って 置く。このステップは、適切かつ十分なメモリがデータ項目に割り当てられるよ うにするためにどのデータ項目にも必要である。ブロック74で、ユーザは、保 護データ項目のビット反転(ミラー)コピーに必要な記憶装置を定義する。この コピーはまた、保護データ項目に関連し、それがつくり出されたメモリ内に記憶 される。 本発明は、好ましくはC++言語で実施される。この言語を 使用する利点の一つは、それがコンストラクタ機能を含んでいることである。ブ ロック76で、論理は、保護データタイプのインスタンスまたは「単一使用」を 生成し、標準のデータタイプ(整数、浮動小数点など)を保護データタイプに変 換するために使用されるコンストラクタ機能を宣言することができる。C++言 語では、コンストラクタ機能は、このタスクを最小量のプロセッサオーバヘッド (サイクル)で効率的に実行する。 C++(および他の言語)に含まれる他の能力は、データタイプを変換するた めに使用される変換機能を備えていることである。変換機能は、保護データタイ プがプログラム内で使用される様々な標準のデータタイプに変換されるように保 護データタイプに対して宣言される。変換機能を定義した後、プログラマーは、 保護データ項目がアプリケーションプログラム内で使用するために必要とされる たびに変換機能を実行するためのプログラミングステップを明示して含める必要 はない。代わりに、これらのステップは、言語によって自動的に実行される。mi rror int classを定義するヘッダファイルの一例を以下に示す。 ブロック78で、ユーザは、保護データタイプを一つまたは複数の標準のデー タタイプに変換するステップの一部としてデ ータの完全性を検査するために使用される変換機能を宣言する。それぞれブロッ ク80および82で、ユーザは、次に、必要な特定のコンストラクタ機能および 変換機能を定義する。整数データを扱うコンストラクタ機能および変換機能の一 例を以下に示す。 ブロック84で、データ破壊が保護データ項目内で検出された場合に使用され る処理機能を定義するステップを実行する。このステップで、ユーザは、警告メ ッセージが表示されるか、または本発明が使用されるアプリケーションのそれ以 上の実行が中断されるようにすることができる。しかしながら、データ破壊の検 出に対する特定の応答は、本発明が使用される特定のアプリケーションプログラ ムに依存する。その後、論理はブロック86に進み、第4図に示される概要に戻 る。 第4図に戻り、ブロック56で、保護データ項目を本発明が使用されるプログ ラムまたはアプリケーションに組み込むステップを実行する。このステップの詳 細を、ブロック90から始まる第6図に示す。第6図は、以下のステップが、本 発明が組み込まれたアプリケーションプログラムを書くプログラマーに よって実行されることを示す。 ブロック92で、プログラマーは、保護データタイプヘッダファイルを、保護 データタイプのインスタンスが定義または宣言されたすべてのプログラムファイ ルに含める。このステップは、プログラム内で使用されるプログラム言語の各機 能には適切なヘッダファイルが当然に含まれるものであるので、プログラミング 技術の当業者には明らかであろう。 ブロック94で、プログラマーは、各保護データ項目ごとに、項目が保護デー タタイプであることを示す定義ステートメントを含める。最後に、ブロック96 で、プログラマーは、定義の範囲外で使用される各保護データ項目ごとに、項目 が保護データタイプであることを示す宣言ステートメントを含める。論理はブロ ック98に進み、第4図に示される概要に戻る。 第4図の次のステップはブロック58である。このステップでは、本発明が使 用されるプログラムを作成し、テストする。このステップは、関連するプログラ ミングバグが検出され、訂正されるようにする以外は、本発明にほとんど関係が ないので、ブロック58の詳細は示さない。 ブロック60は、作成され、テストされたプログラムがCP U上でこれを実行することによって動作することを示す。本発明が組み込まれた プログラムを動作させるときに本発明に関連して実行されるステップの詳細を、 ブロック100から始まる第7図に示す。ブロック102で、保護データ項目は 、コンストラクタ機能を使用して自動的に作成される。コンストラクタ機能は保 護データタイプのデータ要素を保護データ項目ならびに対応するビット反転デー タ項目を含むものとして定義するので、これらのデータ項目の作成および記憶は 、アプリケーションプログラムの実行中にコンストラクタ機能によってシームレ スに処理される。 第7図には、本発明を含む特定のアプリケーションプログラムを動作させると きに実行される他のステップは示されていない。代わりに、本発明に関連するス テップのみが示されている。例えば、決定ブロック104で、保護データ項目が プログラムによってアクセスされているかどうかを決定する。そうでなければ、 決定ブロック106で、データが保護データ項目に書き込まれているかどうかを 決定する。これらの両方の決定ブロックに対する応答が否定であれば、ブロック 102に戻る。しかし、データが保護データ項目に書き込まれている場合、ブロ ッ ク108で、データを保護データタイプに変換するために適切なコンストラクタ 機能を呼び出すステップを実行する。したがって、浮動小数点変数が保護データ 項目に割り当てられている場合、浮動小数点変数は保護データタイプに変換され る。ブロック110で、保護データ項目およびその関連するビット反転データ項 目をメモリ(RAM)内に記憶するステップを実行する。その後、論理はブロッ ク102に戻る。 決定ブロック104に戻り、保護データ項目がプログラムによってアクセスさ れている場合、ブロック112は、適切な変換機能を使用して、保護データ項目 を反転させる(比較のためにテストデータをつくり出す)ステップを示す。ブロ ック112内は、保護データ項目が記憶されていたメモリからそれを検索するス テップを含む。次に、ブロック114で、メモリからアクセスしたばかりの保護 データ項目を反転するステップから得られたテストデータを、メモリから取り出 された記憶された反転データ項目と比較する。メモリ内の保護データ項目の変化 またはその対応するビット反転データ項目の変化は、この比較から明らかになる 。あるいは、ステップ112を、記憶された反転データ項目を反転させて、テス トデータをつくり出すステ ップを実行するように書き直し、ブロック114のステップを書き直して、テス トデータを記憶された保護データ項目と比較するように書き直すこともできる。 どちらの比較の結果も同じである。 決定ブロック116で、CPUは、データの完全性に問題がないかどうか判定 する。言い換えれば、テストデータとそれとを比較した値との相違は、二つのデ ータ値の一方にエラーが発生していることを示し、決定ブロック116から結果 が否定になる。しかしながら、ほとんどの場合、比較した二つの値は等しくなり 、ブロック118に進み、保護データ項目をプログラム内で使用するために適切 な標準のデータタイプに変換するステップを実行する。その後、ブロック120 は、変換されたデータ項目がプログラム内で使用されること示す。 その後、論理は、ブロック124に進み、第4図に示されるステップが継続す ることを示す。決定ブロック116の応答が否定であれば、メモリ内に記憶され たデータ内でエラーが検出されたことを示し、論理はブロック122に進む。ブ ロック122で、破壊データに応答するように予め定義された処理機能を実行す る。これらの機能は、関連する特定のアプリケーショ ンプログラムに応じて、オペレータに警報を出すか、または他の適切な応答を行 う。その後、論理は、ブロック124に進む。第4図に戻ると、ブロック62は 、本発明を含むプログラムが終了し、論理の流れが完結することを示す。 以上、本発明について、本発明を実施する好ましい形態に関連して説明したが 、請求の範囲内で本発明に多数の変更を加えることができることを当業者なら理 解できよう。したがって、本発明の範囲はいかなる形でも上記の説明によって限 定されるものではなく、請求の範囲によって決定されるものである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チヤン,タオ アメリカ合衆国、カリフオルニア・95070、 サラトーガ、ブロツクトン・レイン・ 19627 【要約の続き】 適切な処置がとられる。

Claims (1)

  1. 【特許請求の範囲】 1.(a)データ項目が最初にメモリ内に記憶されたときに、該データ項目に対 応する反転データ項目を決定すべくコンストラクタ機能を使用し、該反転データ は対応のデータ項目とともに、メモリに記憶されるステップと、 (b)データ項目がプログラム内で必要になったとき、該データ項目ならびに 反転データ項目をメモリから呼び戻すステップと、 (c)いずれかがプログラムによって使用される前にデータ項目を反転データ 項目と比較するステップと、 (d)データ項目が反転データ項目に対応しない場合、データ項目か反転デー タ項目のいずれかにエラーが発生したことを示すステップを含むデータ項目内の エラーを検出する方法。 2.コンピュータプログラムによって使用される複数の可能なデータ項目の中か ら、エラーが検査される保護データ項目としてデータ項目を識別するステップを さらに含む請求の範囲第1項に記載の方法。 3.反転データ項目との比較のためのテスト反転データ項目を つくり出すために、データ項目を反転させるステップをさらに含む請求の範囲第 1項に記載の方法。 4.データ項目の比較のためのテストデータ項目をつくり出すために、反転デー タ項目を反転させるステップをさらに含む請求の範囲第1項に記載の方法。 5.反転データ項目を反転させるステップが、変換機能オペレータを使用して反 転を実行するステップを含む請求の範囲第4項に記載の方法。 6.変換機能オペレータが、他の複数の反転データ項目が使用されている複数の タスク間での該オペレータの共用を可能にするための再入力である請求の範囲第 5項に記載の方法。 7.データ項目がこれに関連する反転データ項目を有することを示すデータ項目 のデータ項目タイプを宣言するステップをさらに含む請求の範囲第1項に記載の 方法。 8.ステップ(a)およびステップ(d)が、データ項目に関連する反転データ 項目を有するタイプであると宣言された各データ項目ごとに自動的に実行される 請求の範囲第7項に記載の方法。 9.(a)データ項目を保護タイプと宣言するステップと、 (b)データ項目が初期設定されたときに該データ項目に対応する反転データ 項目を生成する機能であって、反転データ項目を生成すべくデータ項目に適用さ れるコンストラクタ機能を定義するステップと、 (c)データ項目および反転データ項目をメモリ内に記憶するステップと、 (d)データ項目を使用する前に、それをメモリから呼び戻し、データ項目と 反転データ項目とがまだ互いに対応するかどうかを決定するステップと、 (e)データ項目と反転データ項目が互いに対応しない場合、データ項目か反 転データ項目のいずれか一方にエラーが発生したことを示すステップを含むデー タ項目内のエラーを検出する方法。 10.データ項目と反転データ項目がまだ互いに対応するかどうかを決定するス テップが、データ項目を反転させてテスト反転データ項目を生成し、該テスト反 転データ項目と以前にメモリ内に記憶された反転データ項目と比較するステップ を含む請求の範囲第9項に記載の方法。 11.データ項目と反転データ項目がまだ互いに対応するかど うかを決定するステップが、反転データ項目を反転させてテストデータ項目を生 成し、該テストデータ項目と以前にメモリに記憶されたデータ項目と比較するス テップを含む請求の範囲第9項に記載の方法。 12.反転データ項目を反転させるステップが、変換機能オペレータを使用して 反転を実行するステップを含む請求の範囲第11項に記載の方法。 13.変換機能オペレータが、他の複数の反転データ項目が含まれている複数の タスク間での前記オペレータの共用を可能にするための再入力である請求の範囲 第12項に記載の方法。 14.ステップ(c)からステップ(e)が、保護タイプと宣言された各データ 項目ごとに自動的に実行される請求の範囲第9項に記載の方法。 15.(a)データ項目が計算に使用される前に該データ項目内のエラーを検出 するためのシステムであって、 データ項目を使用する演算を実行するコンピュータを含み、該コンピュータが 、 (i)データ項目内のエラーを検出するためのプログラムステップを実行す る中央演算処理装置と、 (ii)データ項目と該中央演算処理装置を制御し且つ該中央演算処理装置 によって実行されるプログラムステップを決定する機械命令を記憶するメモリと 、 (iii)該メモリを該中央演算処理装置に結合するデータバスとを含み、 (b)前記機械命令が、前記中央演算処理装置に対し、 (i)データ項目が該メモリ内に記憶されたときに、該データ項目に対応す る反転データ項目を決定させ、該反転データ項目も該データ項目に関連してメモ リ内に記憶させ、 (ii)データ項目が次に該中央演算処理装置によって必要とされたときに 、前記データ項目および反転データ項目を前記メモリから呼び戻させ、 (iii)いずれかが前記中央演算処理装置によって使用される前に前記デ ータ項目を前記反転データ項目と比較させ、 (iv)前記データ項目が前記反転データ項目に対応しない場合、該データ 項目か反転データ項目のいずれかにエラーが発生したことを示させる、 データ項目内のエラーを検出するシステム。 16.中央演算処理装置によって実行されるプログラムステッ プが、データ項目が初期設定され、メモリ内に記憶されたときに、コンストラク タ機能を使用して、反転データ項目を決定する請求の範囲第15項に記載のシス テム。 17.中央演算処理装置によって実行されるプログラムステップが、反転データ 項目を反転させて、データ項目と比較するためにテストデータ項目をつくり出す 請求の範囲第15項に記載のシステム。 18.中央演算処理装置によって実行されるプログラムステップが、変換機能オ ペレータを使用して反転データ項目を反転する請求の範囲第17項に記載のシス テム。 19.変換機能オペレータが、中央演算処理装置によって実行され、他の複数の 反転データ項目を含む複数のタスク間での前記オペレータの共用を可能にするた めの再入力である請求の範囲第18項に記載のシステム。 20.プログラムステップを定義する際にデータ項目に対して宣言された特定の データタイプが、データ項目が関連の反転データ項目を有することを示す請求の 範囲第15項に記載のシステム。
JP9501615A 1995-06-07 1996-06-05 ミラーデータを使用して破壊されたデータを検出する方法およびシステム Withdrawn JPH11507450A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US484,704 1995-06-07
US08/484,704 US5699509A (en) 1995-06-07 1995-06-07 Method and system for using inverted data to detect corrupt data
PCT/US1996/009257 WO1996041261A1 (en) 1995-06-07 1996-06-05 Method and system for using mirrored data to detect corrupt data

Publications (1)

Publication Number Publication Date
JPH11507450A true JPH11507450A (ja) 1999-06-29

Family

ID=23925246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9501615A Withdrawn JPH11507450A (ja) 1995-06-07 1996-06-05 ミラーデータを使用して破壊されたデータを検出する方法およびシステム

Country Status (12)

Country Link
US (1) US5699509A (ja)
EP (1) EP0835489B1 (ja)
JP (1) JPH11507450A (ja)
AT (1) ATE197510T1 (ja)
AU (1) AU707825B2 (ja)
CA (1) CA2216636A1 (ja)
DE (1) DE69610920T2 (ja)
DK (1) DK0835489T3 (ja)
ES (1) ES2153583T3 (ja)
GR (1) GR3035256T3 (ja)
PT (1) PT835489E (ja)
WO (1) WO1996041261A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5813002A (en) * 1996-07-31 1998-09-22 International Business Machines Corporation Method and system for linearly detecting data deviations in a large database
US6947903B1 (en) * 1999-08-06 2005-09-20 Elcommerce.Com.Inc. Method and system for monitoring a supply-chain
JP2001338497A (ja) * 2000-05-24 2001-12-07 Fujitsu Ltd メモリ試験方法
US6751757B2 (en) * 2000-12-07 2004-06-15 3Ware Disk drive data protection using clusters containing error detection sectors
DE10113319A1 (de) * 2001-03-20 2002-09-26 Conti Temic Microelectronic Verfahren zum Betrieb eines von einem Prozessor gesteuerten Systems
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US7028156B1 (en) 2003-07-01 2006-04-11 Veritas Operating Corporation Use of read data tracking and caching to recover from data corruption
US7028139B1 (en) 2003-07-03 2006-04-11 Veritas Operating Corporation Application-assisted recovery from data corruption in parity RAID storage using successive re-reads
US8065161B2 (en) 2003-11-13 2011-11-22 Hospira, Inc. System for maintaining drug information and communicating with medication delivery devices
US9123077B2 (en) 2003-10-07 2015-09-01 Hospira, Inc. Medication management system
EP1533695B1 (en) * 2003-11-19 2013-08-07 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Updating data in a mobile terminal
DE102004021088A1 (de) * 2004-04-29 2005-11-17 Giesecke & Devrient Gmbh Verfahren zum Schützen von Daten eines Datenträgers gegen DFA-Angriffe
EP1712996A1 (en) * 2005-04-15 2006-10-18 STMicroelectronics S.r.l. Method and system for configuring registers in microcontrollers, related microcontroller and computer program product
US7404057B2 (en) * 2005-06-24 2008-07-22 Dell Products L.P. System and method for enhancing read performance of a memory storage system including fully buffered dual in-line memory modules
EP2092470A2 (en) 2006-10-16 2009-08-26 Hospira, Inc. System and method for comparing and utilizing activity information and configuration information from mulitple device management systems
WO2008059480A1 (en) * 2006-11-16 2008-05-22 Sandisk Il Ltd. Systems and methiods for protection of data integrity of updatable data against unauthorized modification
US20080120481A1 (en) * 2006-11-16 2008-05-22 Sandisk Il Ltd. Methods For Protection Of Data Integrity Of Updatable Data Against Unauthorized Modification
JP2009294869A (ja) * 2008-06-04 2009-12-17 Toshiba Corp メモリシステム
DE102008035095A1 (de) * 2008-07-28 2010-02-11 Vincotech (Germany) Gmbh Verfahren und Vorrichtung um Änderungen an Daten zu erkennen
US8271106B2 (en) 2009-04-17 2012-09-18 Hospira, Inc. System and method for configuring a rule set for medical event management and responses
JP5680920B2 (ja) * 2009-09-24 2015-03-04 株式会社テララコード研究所 Rfidタグ、及びデータ管理システム
ES2959510T3 (es) 2011-10-21 2024-02-26 Icu Medical Inc Sistema de actualización de dispositivos médicos
WO2014138446A1 (en) 2013-03-06 2014-09-12 Hospira,Inc. Medical device communication method
EP3039596A4 (en) 2013-08-30 2017-04-12 Hospira, Inc. System and method of monitoring and managing a remote infusion regimen
US9662436B2 (en) 2013-09-20 2017-05-30 Icu Medical, Inc. Fail-safe drug infusion therapy system
US10311972B2 (en) 2013-11-11 2019-06-04 Icu Medical, Inc. Medical device system performance index
TR201908852T4 (tr) 2013-11-19 2019-07-22 Icu Medical Inc İnfüzyon pompası otomasyon sistemi ve yöntemi.
WO2015168427A1 (en) 2014-04-30 2015-11-05 Hospira, Inc. Patient care system with conditional alarm forwarding
US9724470B2 (en) 2014-06-16 2017-08-08 Icu Medical, Inc. System for monitoring and delivering medication to a patient and method of using the same to minimize the risks associated with automated therapy
US9539383B2 (en) 2014-09-15 2017-01-10 Hospira, Inc. System and method that matches delayed infusion auto-programs with manually entered infusion programs and analyzes differences therein
CA2988094A1 (en) 2015-05-26 2016-12-01 Icu Medical, Inc. Infusion pump system and method with multiple drug library editor source capability
US9866574B1 (en) * 2015-06-01 2018-01-09 Amazon Technologies, Inc. Protected data type handling awareness
CA3030786A1 (en) 2016-07-14 2018-01-18 Icu Medical, Inc. Multi-communication path selection and security system for a medical device
US11152109B2 (en) 2018-07-17 2021-10-19 Icu Medical, Inc. Detecting missing messages from clinical environment
AU2019306492A1 (en) 2018-07-17 2021-02-11 Icu Medical, Inc. Systems and methods for facilitating clinical messaging in a network environment
NZ771914A (en) 2018-07-17 2023-04-28 Icu Medical Inc Updating infusion pump drug libraries and operational software in a networked environment
US10861592B2 (en) 2018-07-17 2020-12-08 Icu Medical, Inc. Reducing infusion pump network congestion by staggering updates
US10692595B2 (en) 2018-07-26 2020-06-23 Icu Medical, Inc. Drug library dynamic version management
AU2019309766B2 (en) 2018-07-26 2024-06-13 Icu Medical, Inc. Drug library management system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3312873A1 (de) * 1983-04-11 1984-10-25 Deutsche Fernsprecher Gesellschaft Mbh Marburg, 3550 Marburg Verfahren zur datensicherung in speichern
GB2158622A (en) * 1983-12-21 1985-11-13 Goran Anders Henrik Hemdal Computer controlled systems
DE3404782A1 (de) * 1984-02-10 1985-08-14 Nixdorf Computer Ag, 4790 Paderborn Verfahren und schaltungsanordnung zum pruefen eines programms in datenverarbeitungsanlagen
JPS6152758A (ja) * 1984-08-22 1986-03-15 Hioki Denki Kk メモリのエラ−検出装置
US4782487A (en) * 1987-05-15 1988-11-01 Digital Equipment Corporation Memory test method and apparatus
JP3066753B2 (ja) * 1987-12-24 2000-07-17 富士通株式会社 記憶制御装置
US5361351A (en) * 1990-09-21 1994-11-01 Hewlett-Packard Company System and method for supporting run-time data type identification of objects within a computer program
US5488727A (en) * 1991-09-30 1996-01-30 International Business Machines Corporation Methods to support multimethod function overloading with compile-time type checking
US5513315A (en) * 1992-12-22 1996-04-30 Microsoft Corporation System and method for automatic testing of computer software
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
DE59308113D1 (de) * 1993-03-11 1998-03-12 Francotyp Postalia Gmbh Verfahren zum Speichern sicherheitsrelevanter Daten

Also Published As

Publication number Publication date
ATE197510T1 (de) 2000-11-11
PT835489E (pt) 2001-04-30
DE69610920T2 (de) 2001-03-15
WO1996041261A1 (en) 1996-12-19
GR3035256T3 (en) 2001-04-30
EP0835489B1 (en) 2000-11-08
ES2153583T3 (es) 2001-03-01
AU6156696A (en) 1996-12-30
CA2216636A1 (en) 1996-12-19
AU707825B2 (en) 1999-07-22
EP0835489A1 (en) 1998-04-15
DE69610920D1 (de) 2000-12-14
DK0835489T3 (da) 2001-02-05
US5699509A (en) 1997-12-16

Similar Documents

Publication Publication Date Title
JPH11507450A (ja) ミラーデータを使用して破壊されたデータを検出する方法およびシステム
US5611043A (en) Debugger system and method for controlling child processes
US6216226B1 (en) Method and system for dynamically selecting a boot process within a data processing system
US7000229B2 (en) Method and system for live operating environment upgrades
EP2035926B1 (en) Method and apparatus for handling exceptions during binding to native code
KR101249693B1 (ko) 서브루틴 복귀 메카니즘 선택
US5684944A (en) Atomic update of EDC protected data
JPH06242957A (ja) プログラム実行制御装置
US20100017581A1 (en) Low overhead atomic memory operations
US20040019774A1 (en) Processor device and information processing device, compiling device, and compiling method using said processor device
US7231634B2 (en) Method for determining scope and cause of memory corruption
US5894549A (en) System and method for fault detection in microcontroller program memory
US20020023224A1 (en) Computer software installation
JP2003345624A (ja) デバッグ装置及びデバッグ方法
JP4180115B2 (ja) 処理システムおよびプログラム作成方法および処理ユニット
US20030217355A1 (en) System and method of implementing a virtual data modification breakpoint register
CN111061591A (zh) 基于存储器完整性检查控制器实现数据完整性检查的系统和方法
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP7074291B2 (ja) 情報処理装置、情報処理方法及びプログラム
JPS60179847A (ja) 実配列および仮配列間の整合性チエツク方式
KR950005523B1 (ko) 프로그램어블 로직 콘트롤러의 스텝 런 처리방법
JPH02151936A (ja) 変更ビツトの誤り処理方法
JPS6031650A (ja) 計算機
JPH04205144A (ja) マイクロプロセッサ
JPS6132701B2 (ja)

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050208

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20060213