JP5579257B2 - 主記憶装置における情報を復元するための装置及び方法 - Google Patents

主記憶装置における情報を復元するための装置及び方法 Download PDF

Info

Publication number
JP5579257B2
JP5579257B2 JP2012508368A JP2012508368A JP5579257B2 JP 5579257 B2 JP5579257 B2 JP 5579257B2 JP 2012508368 A JP2012508368 A JP 2012508368A JP 2012508368 A JP2012508368 A JP 2012508368A JP 5579257 B2 JP5579257 B2 JP 5579257B2
Authority
JP
Japan
Prior art keywords
information
storage device
restoration
ram
stored
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.)
Expired - Fee Related
Application number
JP2012508368A
Other languages
English (en)
Other versions
JPWO2011122677A1 (ja
Inventor
功 辰野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
L E Tech CO Ltd
Original Assignee
L E Tech CO Ltd
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 L E Tech CO Ltd filed Critical L E Tech CO Ltd
Priority to JP2012508368A priority Critical patent/JP5579257B2/ja
Publication of JPWO2011122677A1 publication Critical patent/JPWO2011122677A1/ja
Application granted granted Critical
Publication of JP5579257B2 publication Critical patent/JP5579257B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、主記憶装置における情報の復元に関する。より詳細には、主記憶装置以外の記憶装置に保存されている情報に基づいて主記憶装置の情報を復元する技術に関する。
マイクロコンピュータは、電気的な外部ノイズ、静電気、振動、及び、熱などから常に影響を受ける。さらに、その外部ノイズなどに起因して、いわゆる中央処理装置の暴走などによるマイクロコンピュータの誤動作が発生する。そして、そのマイクロコンピュータの誤動作によって欠陥のある情報が主記憶装置に保存された場合や、外部ノイズによって主記憶装置の情報が変更され、破壊を受けた場合、主記憶装置に保存されている情報は、その後の処理において正常に用いることができない欠陥のある情報となる。
従来技術において、マイクロコンピュータ上に定義されていない命令コードが用いられたことの検出、定義されていないメモリアドレス空間へのアクセスの検出、ウオッチドッグタイマによるプロセス監視、中央処理装置の周期的なリセットなどの技術を用いて、マイクロコンピュータの誤動作の検出、又は、マイクロコンピュータの誤動作の回避を実行することができた。しかしながら、マイクロコンピュータに誤動作が発生した後、主記憶装置に保存されている欠陥のある情報を正常な状態な情報に復元する技術は存在していない。したがって、従来技術において、主記憶装置に保存されている欠陥のある情報を正常な状態の情報に変更するための手段は、中央処理装置、主記憶装置、入出力インタフェースなどのマイクロコンピュータの装置全体をリセットし、実行中であったプログラムなどを最初から再実行することによって実現されていた。したがって、そのような従来技術を用いた場合、主記憶装置などに保存されていた重要な情報(例えば、人命や金銭などに関する情報)は消失する可能性がある。さらに、その手段を用いた場合、装置全体がリセットされることから、その手段の開始から終了までの時間は、電源投入時の初期化とほぼ同程度であり、非常に長い時間が必要となる。
また、従来技術において、複数の中央処理装置を備えたマイクロコンピュータが互いに中央処理装置の誤動作を監視するシステムが存在する。また、各中央処理装置が専用の主記憶装置を備えるシステムが存在する。しかしながら、このようなシステムは同じ装置を複数用意しなければならないことから、非常にコストがかかるものとなる。さらに、そのシステムにおける誤動作の監視は、各中央処理装置のレジスタについての情報を互いに比較し、さらに、各主記憶装置に記憶されている情報を互いに比較することによって実現される。したがって、このシステムでは、マイクロコンピュータの本来の処理ではない誤動作を監視する処理を実行するために相当な処理時間が必要となる。
特願2009−238742号 特開平6−71024号 特開平9−319602号
本発明は、マイクロコンピュータの誤動作が発生する前に主記憶装置に保存されていた情報を予め退避し、マイクロコンピュータに誤動作が生じた後、その退避した情報に基づいて復元する。その退避及び復元は、書き換え可能な記憶装置を用いて実現されることから、それらの処理は非常に短時間で実行することができる。これにより、マイクロコンピュータが誤動作することによって事故又は損害が発生するおそれがある分野であるメカトロニクス、ロボット、遊技機を含むゲーム機器、エンジンのコントロール、車両ブレーキのコントロール、エレベーターのコントロールなどにおいて、本発明を採用することによって事故又は損害の発生を大幅に削減することができる。特に、産業用の溶接ロボット等では、大きな溶接電流が用いられ、また、自動車の電気動力部分には、大電流及び高電圧が用いられ、さらに、遊技機が配置される環境では静電気が発生しやすい。そして、これらの大電流、高電圧、及び、静電気などは、マイクロコンピュータの誤動作の原因となる電気的なノイズを発生させる。したがって、マイクロコンピュータにおいて、静電気を含む電気的なノイズの影響に対する対策を行うことは重要である。
また、本発明は、レジスタの情報を退避した時点で、あるプログラムの処理が実行中であった場合、レジスタの情報を復元することによって、そのレジスタの情報を退避した時点からプログラムの処理を再開することができる。これにより、主記憶装置の情報の復元だけではなく、マイクロコンピュータの動作自体を、情報を退避したその時点に遡って復元することができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、一又は二以上のレジスタを具備する中央処理装置と、書き換え可能な第1の記憶装置と、書き換え可能な第2の記憶装置と、第1の記憶装置に保存されている記憶装置情報と一又は二以上のレジスタに保存されているレジスタ情報とからなる情報である復元情報を取得し、復元情報を第2の記憶装置に保存させる記憶装置管理手段とを備えることができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、復元情報の取得、及び、第2の記憶装置に対する復元情報の保存を繰り返し行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、繰り返しを周期的に行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、繰り返しのために割り込み処理を周期的に実行し、記憶装置管理手段によって、各割り込み処理毎に復元情報を取得し、復元情報を第2の記憶装置に保存することができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、繰り返しをランダムな間隔で行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、繰り返しを所定の条件を満たしたときに行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、第1の記憶装置と第2の記憶装置との間に配置したキャッシュメモリであって、第1の記憶装置に保存されている情報が変更されたとき、記憶装置管理手段によって変更された情報を保存するキャッシュメモリをさらに備えることができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、第2の記憶装置に保存されている復元情報内の記憶装置情報を用いて、第1の記憶装置の情報を復元するとともに、復元情報内のレジスタ情報を用いて、対応する一又は二以上のレジスタの情報を記憶装置管理手段によって復元することができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、装置が誤動作したときに、第1の記憶装置の情報の復元、及び、一又は二以上のレジスタの情報の復元を記憶装置管理手段によって行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、記憶装置コントローラをさらに備え、記憶装置コントローラが主記憶装置を第1の記憶装置から第2の記憶装置に切替えることによって主記憶装置の情報の復元を行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、復元情報を取得するとき、復元情報が復元時に利用可能である場合は有効を示す情報、そして、利用不可である場合は無効を示す情報である復元可否情報を有効として復元情報に記憶装置管理手段によって付加し、そして、第1の記憶装置の情報の復元、及び、一又は二以上のレジスタの情報の復元が行われるとき、復元可否情報が有効を示している場合のみ、第2の記憶装置に保存されている復元情報内の記憶装置情報を用いて、第1の記憶装置を記憶装置管理手段によって復元するとともに、復元情報内のレジスタ情報を用いて、対応する一又は二以上のレジスタを復元し、さらに、第2の記憶装置に保存されている復元情報内の復元可否情報が無効を示すよう記憶装置管理手段によって変更し、新たに復元情報が取得されない限り復元可否情報は変更されないようにすることができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、書き換え可能な第3の記憶装置をさらに備え、記憶装置管理手段によって、新たな復元情報を取得し、第2の記憶装置に保存されている復元情報を第3の記憶装置に保存し、そして、新たな復元情報を第2の記憶装置に保存し、さらに、記憶装置管理手段によって、第1の記憶装置の情報の復元、及び、一又は二以上のレジスタの情報の復元を復元情報又は新たな復元情報に基づいて行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、復元情報及び新たな復元情報に含まれている復元可否情報が有効を示している復元情報又は新たな復元情報に基づいて、記憶装置管理手段が、第1の記憶装置の情報の復元、及び、一又は二以上のレジスタの情報の復元を行い、さらに、復元で用いられた復元情報又は新たな復元情報内の復元可否情報が無効を示すよう変更し、新たに復元情報が取得されない限り復元可否情報は変更されないようにすることができる。
本発明による主記憶装置における情報を復元するための主記憶装置における情報を復元可能なマイクロコンピュータは、書き換え可能な第1の記憶装置と、書き換え可能な第2の記憶装置と、第1の記憶装置に保存されている記憶装置情報を第2の記憶装置に保存させる記憶装置管理手段とを備えることができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、第2の記憶装置に対する記憶装置情報の保存を繰り返し行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、繰り返しを周期的に行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、繰り返しをランダムな間隔で行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、繰り返しを所定の条件を満たしたときに行うことができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、第2の記憶装置に保存されている記憶装置情報を用いて、第1の記憶装置の情報を記憶装置管理手段によって復元することができる。
本発明による主記憶装置における情報を復元可能なマイクロコンピュータは、一又は二以上のレジスタを具備する中央処理装置をさらに備え、記憶装置情報に含まれている所定の時点における一又は二以上のレジスタの情報であるレジスタ情報を用いて、対応する一又は二以上のレジスタの情報を記憶装置管理手段によって復元することができる。
本発明の実施例による装置100の概略を示したブロック図である。 CPU115と第1のRAM120、第2のRAM125、及び、第3のRAM130との関係を示したブロック図である。 本発明の第1の実施例による記憶装置管理部の動作を示したフロー図である。 本発明の第2の実施例による記憶装置管理部の動作を示したフロー図である。 復元情報の取得及び保存を周期的に実行する実施例の処理フローを示す。 図5の処理フローで示されているステップ505乃至540における各処理と記憶装置に保存されている情報との関係を示したタイムチャートである。 図5の処理フローで示されているステップ550乃至560における各処理と記憶装置に保存されている情報との関係を示したタイムチャートである。 3つのRAMを備えた装置100において、復元情報の取得及び保存を周期的に実行する実施例の動作を示した処理フロー図である。 図8のフローで示されているステップ805乃至845における各処理と記憶装置に保存されている情報との関係を示したタイムチャートである。 装置100の図8の処理フローで示されている実施例についての使用例を示したタイムチャートである。 本実施例を実現するためのCPUとRAMとの関係を示したブロック図である。 図11の記憶装置コントローラ1105による実施例の動作を示した処理フロー図である。 メインメモリである第1のRAM120とメインメモリ以外の第2のRAM125との間にキャッシュメモリを用いた実施例を示すブロック図である。
図1は、本発明の実施例による装置100の概略を示したブロック図である。装置100は、補助回路105、ROM(読み出し専用メモリ)110、CPU(中央処理装置)115、第1のRAM(ランダムアクセスメモリ)120、第2のRAM125、第3のRAM130、CPUバス135、入出力インタフェース140、及び、DMAコントローラ(ダイレクトメモリアクセスコントローラ)150を備える。
CPU115は補助回路105を有し、さらに、一又は二以上のレジスタ145を内蔵する。レジスタ145としては、アキュムレータ、アドレスレジスタ、インデックスレジスタ、スタックポインタ、ページレジスタ、セグメントレジスタ、プログラムカウンタ、ステータスレジスタ、コントロールレジスタ、及び、他の専用レジスタや汎用レジスタを用いることができる。補助回路105は、CPU115が用いるクロックパルスの発生用の回路、CPU115への電源供給を制御することによってCPU115をリセットする回路、定期的に実行される割り込み処理などのためのタイマー用回路などを含む。
ROM110にはプログラムなどが格納される。第1、第2、及び第3のRAM120、125、及び130は、MMU(メモリ管理ユニット)155を内蔵していてもよい。第1の書き換え可能な記憶装置120は、メインメモリ(主記憶装置、メインRAMともいう)として機能し、CPU115のレジスタ145に保存されている情報を保存することもできる。入出力インタフェース140は他の外部装置への入出力を行う。
図1は例示の目的で示しており、装置100は少なくともCPU115、メインメモリ120、及び、それらを接続するためのバスを備えるコンピュータとすることができる。装置100にはマイクロコンピュータなどが含まれる。さらに、マイクロコンピュータにはワンチップ式のマイクロコンピュータが含まれる。
複数のRAMは一つの記憶装置内に実装することができる。また、複数のRAMは物理的に複数の記憶装置として実装することもできる。さらに、電源は外部ノイズの影響を他の要素より受けやすいため、各RAMそれぞれは専用の電源を有していてもよい。
メインメモリ120の情報を復元するために必要な情報は、ある処理が実行されている間、動的に変化する情報である。装置100において、その動的に変化する情報は、一又は二以上のレジスタ145に保存されているレジスタ情報、及び、メインメモリ120に保存されている記憶装置情報である。特に、レジスタ情報は、CPU115が次に実行する命令や、次に実行する命令がどこにあるのかを示すアドレス、ある情報の主記憶上のアドレスなどを含むことから、何かしらの動作が行われるたびに変化する。
マイクロコンピュータにおいて、レジスタ情報は、メインメモリ120に送られ、ここに保存される。通常、レジスタ情報及び記憶装置情報は外部の補助記憶装置など(例えば、ハードディスク、シリコンディスク、ソリッドステートドライブなど)には保存されない。したがって、メインメモリ120に記憶されている所定の時点の情報を退避し、その所定の時点が経過した後、その退避した情報をメインメモリ120に再度記憶することによって、メインメモリ120に保存されている情報はその所定の時点の内容に復元される。
さらに、退避した情報のレジスタ情報を、対応するレジスタ145に保存することによって、実行中の処理も復元することができる。例えば、アプリケーションプログラムの実行中に、外部のノイズなどの影響によってメインメモリ120に保存されている情報が変更され回復が不可能となった場合であっても、ある時点のメインメモリ120及びレジスタ145の情報に基づいて、メインメモリ120及びレジスタ145の情報を復元することができる。これにより、アプリケーションプログラムは途中から再開される。そして、これら処理のオーバーヘッドは、第1のRAM120の情報を復元するために、他のRAM125又は130に保存されている情報を取得して、その情報を第1のRAM120に保存するためのわずかな時間だけである。
図2はCPU115と第1のRAM120、第2のRAM125、及び、第3のRAM130との関係をブロック図で示す。
CPU115は、CPU用バス135を介してメインメモリである第1のRAM120と接続されており、CPU用バス135、読み出し専用バス225、及び、読み出し用データバス215を介して第2のRAM125に接続されており、さらに、CPU用バス135、読み出し専用バス225、及び、読み出し用データバス220を介して第3のRAM130に接続されている。そして、CPU用バス135は、書き込み及び読み出しのために用いられる。したがって、CPU115は、データの書き込みを第2のRAM125及び第3のRAM130に行うことはできないが、第1のRAM120に行うことができる。
第1のRAM120は、CPU用バス135を介してCPU115と接続されており、書き込み用データバス205を介して及び読み出し用データバス215を介して、並びに、CPU用バス135、読み出し専用バス225、及び、読み出し用データバス215を介して第2のRAM125に接続されており、さらに、読み出し用データバス220を介して第3のRAM130に接続されている。したがって、第1のRAM120に保存されているデータを書き込むための情報は、第3のRAM130には送られないが、第2のRAM125には送られる。
第2のRAM125は、書き込み用データバス205を介して及び読み出し用データバス215を介して第1のRAM120と接続されており、書き込み用データバス210を介して第3のRAM130に接続されており、さらに、読み出し用データバス215、読み出し専用バス225、及び、CPU用バス135を介してCPU115に接続されている。したがって、第2のRAM125に保存されているデータを書き込むための情報は、第1のRAM120には送られないが、第3のRAM130に送られる。そして、第2のRAM125に保存されているデータを読み出すための情報は、第3のRAM130には送られないが、第1のRAM120及びCPU115に送られる。
第3のRAM130は、書き込み用データバス210を介して第2のRAM125と接続されており、読み出し用データバス220を介して第1のRAM120と接続されており、さらに、読み出し用データバス220、読み出し専用バス225、及び、CPU用バス135を介してCPU115に接続されている。したがって、第3のRAM130に保存されているデータを書き込むための情報は、どの装置にも送られない。そして、第3のRAM130に保存されているデータを読み出すための情報は、第2のRAM125には送られないが、第1のRAM120及びCPU115に送られる。
これら記憶装置間の管理は、記憶装置管理部によって実現される。記憶装置管理部は、CPU115、各種データバス、ダイレクトメモリアクセス(DMA)コントローラ、メモリ管理ユニット(MMU)など、又は、それら一以上のものの組み合わせからなる。本発明において、各RAMに保存されている情報の管理は、DMAコントローラやメモリ管理ユニットなどを用いることによって、CPU115を用いることなく実現することができる。また、CPU115は、読み出し専用のバスを介して、第2のRAM125及び第3のRAM130と接続されている。よって、CPU115は、情報をそれらのRAMに直接書き込むことはできない。これにより、CPU115などが誤動作した場合(例えば、CPU115の暴走など)でも、CPU115は、第2のRAM125及び第3のRAM130に保存されている情報を書き換えることはない。
図3は本発明の第1の実施例による記憶装置管理部の動作を示したフロー図である。本発明の第1の実施例において、記憶装置管理部は、メインメモリである第1のRAM120の所定の時点において保存されている情報(復元情報)を取得する(ステップ301)。記憶装置管理部は、復元情報を第2のRAM125に保存する(ステップ305)。記憶装置管理部は、その所定の時点を経過した後、第2のRAM125に保存されている所定の時点の復元情報に基づいて、第1のRAM120の情報を復元することができる(ステップ310)。
さらに、記憶装置管理部は、第1のRAM120の情報を復元するとき、第2のRAM125に保存されている所定の時点の復元情報に基づいて、レジスタ145の情報を復元することができる。通常、レジスタ145の情報はメインメモリ120に含まれていることから、第2のRAM125に保存されている復元情報にはレジスタ情報が含まれている。なお、CPU115及びメインメモリ120の実現方法に依存して、レジスタ情報がメインメモリ120に保存されていない場合がある。その場合、記憶装置管理部は、メインメモリである第1のRAM120から復元情報を取得するとき、レジスタ145に保存されているレジスタ情報も取得し、復元情報にレジスタ情報を付加する。これにより、レジスタ情報は復元情報に含まれる。以下では、レジスタ情報が変更される度に、そのレジスタ情報は、メインメモリ120に保存されるものとする。なお、復元情報は、第1のRAM120の所定の時点において保存されている全ての情報とすることができる。また、復元情報は、第1のRAM120の所定の時点において保存されている一部の情報であってもよい。
レジスタ情報の復元は、記憶装置管理部が第2のRAM125に保存されている復元情報からレジスタ145に情報を直接保存することによって実行されてもよい。または、第1のRAM120が復元された後、CPU115が、その第1のRAM120からレジスタ情報を取得し、その取得した情報をレジスタ145に保存することによってレジスタ情報を復元することもできる。
ここで、RAM120、125、及び、130には、復元するための記憶装置情報及びレジスタ情報や、現在処理を行うための記憶装置情報及びレジスタ情報などの複数種類の情報が保存されている。したがって、RAMそれぞれにおいて、各情報が所定の領域に保存されることを予め定めておくことによって、記憶装置管理部は、所定の領域の情報がどのような情報であるかを判別することができる。さらに、その領域は、全てのRAMにおいて同じ領域とすることができる。
図4は本発明の第2の実施例による記憶装置管理部の動作を示したフロー図である。本実施例において、装置100は、第3のRAM130を備えている。ここで、第2のRAM125は、所定の時点の第1の復元情報を既に保存しているものとする。
最初に、記憶装置管理部は、所定の時点を経過した後、第2のRAM125に保存されている第1の復元情報を取得し(ステップ401)、取得した情報を第3のRAM130に保存することができる(ステップ405)。さらに、記憶装置管理部は、第1のRAM120のその時点において保存されている情報(第2の復元情報)を取得し(ステップ410)、取得した情報を第2のRAM125に上書きして保存する(ステップ415)。
したがって、ステップ420及び425において、記憶装置管理部は、第2のRAM125に保存されている1世代前の情報である第2の復元情報に基づいて、第1のRAM120及び/又はレジスタ145の情報を復元することができる。さらに、記憶装置管理部は、第3のRAM130に保存されている2世代前の情報である第1の復元情報に基づいて、第1のRAM120及び/又はレジスタ145の情報を復元することもできる。
復元情報を取得し、その復元情報をメインメモリ以外のRAMに保存する処理は、記憶装置管理部によって時間の進行にしたがい繰り返し実行することができる。その繰り返しは、一定の周期毎、ランダムな間隔毎、所定の条件を満たしたときに、又は、それらの一又は二以上を組み合わせて行われてもよい。一定の周期の例としては、2m秒などの極めて短い周期で実行することもできる。また、この一定の周期は、装置100を用いて実行されるアプリケーションプログラムに依存させて変化させてもよい。ランダムな間隔の例としては、ランダムな数を取得し、その数を時間間隔として用いることができる。さらに、所定の条件を満たしたときの例としては、所定のプログラムが実行された場合(例えば、スーパーバイザーコール等の処理が実行された場合(これにより、制御されるプログラムはアプリケーションプログラムからOSプログラムに変化する))や、装置100が所定のエラー処理をおこなった場合、割込み処理が発生した場合、さらには、所定の情報がメインメモリ120に保存された場合などである。
本発明の第3の実施例を図5、図6、及び、図7を参照して説明する。図5は、復元情報の取得及び保存を周期的に実行する実施例の処理フローを示す。本実施例において、レジスタ145の情報は、明示的な処理を実行することによってRAMに保存される。図6は、図5の処理フローで示されているステップ505乃至540における各処理と記憶装置に保存されている情報との関係を示したタイムチャートであり、図7は、図5の処理フローで示されているステップ550乃至560における各処理と記憶装置に保存されている情報との関係を示したタイムチャートである。
図6及び図7において、横軸の矢印は時間の経過を示しており、アプリケーションプログラムの実行状態650及び750、並びに、割り込み処理の実行状態655及び755の行における網掛け部分は、それぞれの処理が実行中である状態を示す。そして、レジスタに保存されている情報660及び760、第1のRAMに保存されている情報670及び770、並びに、第2のRAMに保存されている情報675及び775の行において、R0、R1・・・、M0、M1・・・、及び、MM0、MM1・・・などは、保存されている情報を示す。また、R0、R1・・・、M0、M1・・・、及び、MM0、MM1・・・などにおいて、記号が同じである場合、保存されている情報が同じであることを表す。なお、図6及び図7において、レジスタ情報及び記憶装置情報は同時に変化しているが、当業者であれば明らかなように、それらが同時に変化しないように実現することもできる。図6及び図7は例示の目的で示しており、時間的縮尺は必ずしも正しくない。したがって、割り込み処理の実行時間は、アプリケーションプログラムの実行時間に対して非常に小さい割合にすることもできる。
最初に、装置100自体の電源が投入され、装置100全体の初期化が行われる(ステップ501)。図6のt1に示す通り、R0、M0、及び、MM0は、それぞれ、レジスタ145、メインメモリ120、及び、第2のRAM125の情報が初期化された情報であることを示す。なお、初期化によって、第2のRAM125に保存されている情報は、メインメモリ120に保存されている情報と同期化されてもよい(この場合、第2のRAM125の情報はMM0ではなくM0となり、情報M0は、復元情報として用いられる)。その後、初期化が完了した後、図6のt3における状態601が示す通り、アプリケーションプログラムの実行が開始される(ステップ502)。アプリケーションプログラムの進行にしたがって、レジスタ情報はR0からR1へ、そして、R1からR2へ変化する。さらに、記憶装置情報もM0からM1へ、そして、M1からM2へ変化する。
図6のt5乃至t10において、割り込み処理のステップ505乃至540の一連のステップが実行される。図6のt5において、補助回路105は、CPU115へ割り込み信号を送信する(ステップ505)。割り込み信号は、補助回路105内のタイマーによって一定の周期ごと(例えば、図6中の690及び695)に生成され、CPU115に送信される。ここで、割り込み信号は、ソフトウエアからは制御することができない信号であるNMI信号(Non-Maskable Interrupt信号)とすることがきる。そして、CPU115は、割り込み信号を受信すると、割り込み処理を開始する(ステップ510)。図6のt5における状態601及び605に示す通り、アプリケーションプログラムは中断しており、割り込み処理が開始される。
割り込み処理を開始すると、最初に、装置100において誤動作が発生していないか確認する(ステップ520)。誤動作が発生していない場合、処理フローはステップ525へ進む。誤動作が発生している場合、処理フローはステップ550へ進む。誤動作が発生しているか否かを決定する条件は後述する。
装置100において誤動作が発生していないと判断された場合(ステップ520)、CPU115は、アプリケーションプログラムを実行するために必要なレジスタ145に保存されている情報であるレジスタ情報をメインメモリ120に退避する(ステップ525)。割り込み処理が終了した後にアプリケーションプログラムを再開させるため、図6のt5の時点で示す通り、メインメモリ120には、退避したレジスタ情報R2を含む記憶装置情報M3が保存されている。この動作は、通常の割り込み処理の動作である。ここで、割り込み処理は、アプリケーションプログラムで用いられるメインメモリ120の情報を変更しない。したがって、記憶装置情報M3は、割り込み処理を開始する直前の記憶装置情報M2及びレジスタ情報R2を含むことができる。
その後、図6のt10において、記憶装置管理部は、メインメモリである第1のRAM120において保存されている情報(復元情報)を取得し(ステップ530)、その復元情報を第2のRAM125に保存する(ステップ535)。図6のt10において、記憶装置管理部は、第1のRAM120において保存されている情報M4から復元情報を取得する。ここで、復元情報は、割り込み処理が実行される直前の記憶装置情報M2及びレジスタ情報R2である。したがって、図6のt10の前後において、第2のRAM125に保存されている情報はMM0からMM1(R2とM2とからなる情報)に変更される。さらに、他の実施例において、復元情報MM1の複製を第2のRAM125の他の領域に保存することによって、装置100の冗長化性能を向上させることもできる。
続いて、CPU115は、割り込み処理を終了する(ステップ540)。具体的には、ステップ525において退避していたレジスタ情報(図6のt10における記憶装置情報M4に含まれるレジスタ情報R2)を第1のRAM120から取り出し、そのレジスタ情報を用いて、対応するレジスタの情報を復元する。この動作は、割り込み処理から復帰させるための通常の動作である。割り込み処理の終了後、レジスタ145を割り込み処理前のレジスタ情報に戻すことができ、図6のt10乃至t15における状態601及び610に示すように、アプリケーションプログラムが再開される。なお、図6の時間t10の直前において、第1のRAM120は割り込み処理を開始する直前の記憶装置情報M2を含んでいることから、メインメモリに保存されている情報を変更することなく、レジスタ145におけるレジスタ情報を復元するのみでアプリケーションプログラムは再開される。しかし、割り込み処理を終了するときに、CPU115の命令に基づいて、記憶装置情報M2以外の不要な情報を第1のRAM120から削除することもできる。
その後、処理フローは、ステップ502に戻る。以降、同様に、ステップ502乃至540の一連のステップが繰り返される。したがって、第2のRAM125に保存されている情報は、その一連のステップが実行される度に、メインメモリ100に保存されている情報及びレジスタ145に保存されている情報で上書きされる。これにより、割り込み処理を実行する間隔である所定の周期が2m秒である場合、装置100は、最大で約2m秒前のメインメモリ100に保存されていた情報を常に有することができる。
一方、図7のt10において誤動作が発生したものとする。その後、図7のt15において、装置100に誤動作が発生していると判断され(ステップ520)、図7のt10における状態720のアプリケーションプログラムの処理は正しく実行されていない可能性がある。したがって、レジスタ情報R10及びR11、並びに、メインメモリの情報M10及びM11は欠陥のある情報を含んでいる可能性がある(つまり、それら情報が正しくない可能性がある)。
その後、マイクロコンピュータの動作を回復させるため、図7のt20において、補助回路105は、CPU115のみをリセットする(ステップ550)。リセットの例として、補助回路105がCPU115へリセット信号を送信することによって行われる。これにより、レジスタ情報が初期化される。図7においてt20直後のレジスタ情報R0は、初期化されていることを示す。
また、アプリケーションプログラムの実行プロセス及び割込み処理には関係なく、CPU115などの誤動作検出部は、装置100における誤動作の発生を検出する(ステップ503)。誤動作検出部が装置100の誤動作の発生を検出した場合、処理フローはステップ550へ進む。これにより、装置100において、定義されていない命令が実行される、存在しないメモリ空間にアクセスされたなどの誤動作が解消される。
図7のt20において、記憶装置管理部は、第2のRAM125に保存されている復元情報を取得し(ステップ555)、取得した復元情報に基づいて、第1のRAM120及び対応するレジスタ145の情報を復元する(ステップ560)。これにより、第2のRAM125に保存されている復元情報MM2におけるレジスタ情報R6及び記憶装置情報M6を用いて、レジスタ145及びメインメモリ120の情報が復元される。したがって、図7のt25において、レジスタ145はR0からR6に変更され、メインメモリ120の記憶装置情報はM12からM6に変更される。そして、図7のt25乃至t30における状態710及び720に示す通り、アプリケーションプログラムが再開される。
他の実施例として、本発明は、CPU115のリセット(ステップ550)を処理フローに加えないようにすることができる。また、ステップ510、525、及び、540において示した割り込み処理を開始及び終了するための処理は一例であって、他の方法によって実現することもできる。さらに、CPU115のリセットは、ウオッチドッグタイマによる処理や、所定のエラー発生後に実行される任意のエラー回復処理などによって実行されてもよい。
図6の690及び695を示した通り、ステップ505における補助回路105による割り込み信号の送信は、所定の周期で繰り返し行われる。よって、割り込み信号の受信を受けてから実行されるステップ510乃至540の一連のステップは、所定の周期内で完了しなければならない。なぜならば、一連のステップの実行が所定の周期内で完了しない場合、その所定の周期内(例えば、1回目の周期690)で実行される一連のステップと次の所定の周期内(例えば、2回目の周期695)で実行される一連のステップとが同時に実行されるため、処理順序の整合性が保てなくなる可能性があるからである。つまり、所定の周期が2m秒である場合、一連のステップは2m秒より少ない時間で完了する必要がある。
また、一連のステップが所定の周期の時間内で完了しない場合、装置100は正常に動作していないことから、装置100が誤動作を行っていると判定することができる。したがって、処理フローにおいて、その判定についてのステップを割り込み処理の終了前に追加することができる。さらに、装置100が誤動作を行っていると判定された後の処理フローにおいて、CPU115のリセット、並びに、メインメモリ120及びレジスタの情報を復元するステップを追加することができる。
なお、本実施例において、割り込み処理の繰り返しの実行間隔は、所定の周期としたが、ステップ510乃至540の一連のステップが完了する時間内であればランダムな時間間隔とすることもできる。
他の実施例として、ステップ510乃至540において、CPU115のみを周期的にリセットするステップを追加することができる。また、必要に応じて、CPU115のみをランダムにリセットするステップを追加することもできる。これらにより、装置100への電源投入後に、CPU115がリセットされることから、CPU115に起因する誤動作を削減することができる。
また、CPU115のみをリセットするステップは、如何なる処理フロー中の部分にも追加することができる。ただし、CPU115をのみリセットするステップは、リセットの前にレジスタ情報を退避し、リセット後にその退避したレジスタ情報を対応するレジスタ145に復元することによって実現される。このステップは、CPU115のみをリセットし、レジスタ情報を復元するだけの処理であるから非常に短時間の内にCPU115を初期化することができる。好ましい実施例としては、そのステップは、割り込み処理を終了するステップ(540)又は復元情報を取得するステップ(ステップ530)の前又は後ろに追加することができる。
さらに他の実施例において、第1のRAM120の情報を復元した後(ステップ560の後)、装置100が誤動作から復帰しない場合、装置100全体をリセットすることができる。これにより、装置100の誤動作の原因が、CPU115の誤動作ではなく、さらに、メインメモリ120及びレジスタ145の情報に起因していない場合であっても、装置100を誤動作から復帰させることができる。
誤動作が発生しているか否かの判定は、例として、以下のようにして行うことができる。
・所定スタックポインタの範囲を予め定めておき、判定する際にスタックポインタがその範囲内にないことを検出する。
・アクセスされたメモリ空間が存在しないことを検出する。
・定義されていない命令が検出される。
・CPU115に組み込まれている異常検出機能によって異常が検出される(例えば、割り算の計算が行われるときに分母がゼロである場合など)。
その他、従来から知られている様々な技術を用いることができる。
本発明の第4の実施例を図8及び図9を参照して説明する。本実施例において、装置100はRAMを3つ備えている。図8は、3つのRAMを備えた装置100において、復元情報の取得及び保存を周期的に実行する実施例の動作についての処理フローを示す。本実施例において、レジスタ145の情報は、明示的な処理を実行することによってRAMに保存される。図9は、図8のフローで示されているステップ805乃至845における各処理と記憶装置に保存されている情報との関係を示したタイムチャートである。
図9において、横軸の矢印は時間の経過を示しており、アプリケーションプログラムの実行状態950及び割り込み処理の実行状態955の行における網掛け部分は、それぞれの処理が実行中である状態を示す。そして、レジスタに保存されている情報960、第1のRAMに保存されている情報965、第2のRAMに保存されている情報970、及び、第3のRAMに保存されている情報975において、R0、R1・・・、M0、M1・・・、MM0、MM1・・・、及び、MMM0、MMM1・・・などは保存されている情報を示す。また、R0、R1・・・、M0、M1・・・、MM0、MM1・・・、及び、MMM0、MMM1・・・などにおいて、記号が同じである場合、保存されている情報が同じであることを表す。なお、図9において、レジスタ情報及び記憶装置情報は同時に変化しているが、当業者であれば明らかなように、それらが同時に変化しないように実現することもできる。図9は例示の目的で示しており、時間的縮尺は必ずしも正しくない。したがって、割り込み処理の実行時間は、アプリケーションプログラムの実行時間に対して非常に小さい割合にすることもできる。
最初に、装置100自体の電源が投入され装置100全体の初期化が行われる(ステップ801)。図9のt1に示す通り、初期化が実行される。R0、M0、MM0、及び、MMM0は、それぞれ、レジスタ145、メインメモリ120、第2のRAM125、及び、第3のRAM130の情報が初期化された情報であることを示す。そして、初期化が完了した後、図9のt3における状態901が示す通り、アプリケーションプログラムの実行が開始される(ステップ802)。アプリケーションプログラムの進行にしたがって、レジスタ情報はR0からR1へ、そして、R1からR2へ変化する。さらに、記憶装置情報もM0からM1へ、そして、M1からM2へ変化する。
図9のt5乃至t10において、割り込み処理のステップ805乃至845の一連のステップが実行される。図9のt5において、補助回路105は、CPU115へ割り込み信号を送信する(ステップ805)。割り込み信号は、補助回路105内のタイマーによって一定の周期ごとに(例えば、図9中の980、985、及び、995)生成され、CPU115に送信される。CPU115は、割り込み信号を受信すると、割り込み処理を開始する(ステップ810)。図9のt5における状態901及び905に示す通り、アプリケーションプログラムは中断しており、割り込み処理が開始される。
割り込み処理が開始した後、最初に、装置100において誤動作が発生していないか確認する(ステップ815)。誤動作が発生していない場合、処理フローはステップ820へ進む。誤動作が発生している場合、処理フローはステップ850へ進む。
装置100において誤動作が発生していないと判断された場合(ステップ815)、CPU115は、アプリケーションプログラムを実行するために必要なレジスタ145に保存されている情報であるレジスタ情報をメインメモリ120に退避する(ステップ820)。割り込み処理が終了した後にアプリケーションプログラムを再開させるため、図9のt5に示す通り、メインメモリ120には、退避したレジスタ情報R2を含む記憶装置情報M3が保存されている。この動作は、通常の割り込み処理の動作である。ここで、割り込み処理は、アプリケーションプログラムで用いられるメインメモリ120の情報を変更しない。したがって、記憶装置情報M3は、割り込み処理を開始する直前の記憶装置情報M2及びレジスタ情報R2を含んでいる。
そして、記憶装置管理部は、第2のRAM125に保存されている情報を第3のRAM130に保存する(ステップ825)。これにより、図9のt7において、第3のRAM130に保存されている情報がMMM0からMM0に変更される。
その後、記憶装置管理部は、メインメモリである第1のRAM120において保存されている情報(復元情報)を取得し(ステップ830)、取得した復元情報がメインメモリ120の情報を復元するために用いることができることを示すために、記憶装置管理部は、その復元情報が有効であることを示す情報を復元情報に付加する(ステップ835)。具体的には、復元情報に1ビット以上の情報を付加し、メインメモリ120の情報を復元するために用いることができる否かを示す有効フラグとして、その情報を用いることができる。復元情報が有効であることを設定するステップは本ステップのみで行われる。したがって、第2のRAM125における初期化された情報を示すMM0及び第3のRAM130における初期化された情報を示すMMM0は、本ステップによって保存された情報ではないため、MM0及びMMM0の有効フラグはオフとなっている。したがって、情報MM0及びMMM0は、無効な復元情報である。
さらに、記憶装置管理部は、取得した復元情報を第2のRAM125に保存する(ステップ840)。したがって、図9のt10において、第2のRAM125に保存された復元情報はMM0からMM1に変更される。ここで、復元情報は、図9のt10直後の第2のRAM125に保存されている情報MM1であり、復元情報MM1は、割り込み処理が実行される直前である図9のt5におけるレジスタ情報R2及び記憶装置情報M2である。
続いて、CPU115は、割り込み処理を終了する(ステップ840)。その後、処理フローは、ステップ805に戻る。
ステップ805に戻った後に再度実行されるステップ825乃至840を説明する。装置100において誤動作が発生していないと判断された後(ステップ815)、記憶装置管理部は、第2のRAM125に保存されている情報を第3のRAM130に保存する(ステップ825)。図9のt20において、第3のRAM130に保存されている情報がMM0からMM1に変更される。
その後、記憶装置管理部は、メインメモリである第1のRAM120において保存されている情報(復元情報)を取得し、(ステップ830)、その復元情報に有効であることを示す情報を付加し(ステップ835)、第2のRAM125に保存する(ステップ840)。したがって、図9のt25において、第2のRAM125に保存されている情報はMM1からMM2に変更される。
その後、割り込み処理が終了し(ステップ845)、処理フローはステップ805に戻る。以降、同様に、ステップ805乃至840の一連のステップが繰り返される。
一方、装置100において誤動作が発生していると判断された場合(ステップ815)、補助回路105は、CPU115のみをリセットする(ステップ850)。その後、記憶装置管理部は、第2のRAM125に保存されている復元情報を取得する(ステップ855)。さらに、記憶装置管理部は、第2のRAM125から取得した復元情報がメインメモリ120の情報を復元するために用いることができるか判定する(ステップ860)。
ステップ860において、第2のRAM125から取得した復元情報の有効フラグがオンであると判定された場合、記憶装置管理部は、取得したその復元情報に基づいて、第1のRAM120及び対応するレジスタ145の情報を復元し、第2のRAM125に保存されている復元情報の有効フラグをオフにする(ステップ865)。そして、処理フローは、ステップ805に進む。
ステップ860において、第2のRAM125から取得した復元情報の有効フラグがオフであると判定された場合、記憶装置管理部は、第3のRAM130に保存されている復元情報を取得する(ステップ875)。そして、記憶装置管理部は、第3のRAM130から取得した復元情報がメインメモリ120の情報を復元するために用いることができるか判定する(ステップ880)。
ステップ880において、第3のRAM130から取得した復元情報の有効フラグがオンであると判定された場合、取得したその復元情報に基づいて、第1のRAM120及び対応するレジスタ145の情報を復元し、第3のRAM130に保存されている復元情報の有効フラグをオフにする(ステップ885)。
ステップ880において、第3のRAM130から取得した有効フラグがオフの場合、処理フローは、ステップ801に進み、装置100全体が初期化される(ステップ801)。
図10は、装置100の第4の実施例についての使用例を示すタイムチャートである。最初に、t1において、第2のRAM125に保存されている情報は、メインメモリの復元に用いることが可能な(有効フラグがオンである)情報MM2であり、第3のRAM130に保存されている情報は、有効フラグがオンであるMM1である。
t5乃至t10において、図8のステップ805乃至845が実行される。これにより、第2のRAM125に保存されている情報は、情報MM2から有効フラグがオンであるMM3に変更され、第3のRAM130に保存されている情報は、情報MM1から有効フラグがオンであるMM2に変更される。さらに、t15からt20において、図8のステップ805乃至845が再度実行される。これにより、第2のRAM125に保存されている情報は、有効フラグがオンであるMM4になり、第3のRAM130に保存されている情報は、有効フラグがオンであるMM3となる。
ここで、t25において、装置100が誤動作したとする。その後、t30において、割り込み処理が開始され、(図8のステップ810)、誤動作が検出される(図8のステップ815)。すると、t35において、CPU100のみがリセットされ(ステップ850)、レジスタ情報が初期化される(レジスタ情報がR0となる)。
t40において、第2のRAM125に保存されている情報MM4は、有効フラグがオンであるので、情報MM4を用いて、メインメモリ120の情報が復元され、第2のRAM125に保存されている情報MM4の有効フラグはオフとなる(図8のステップ855乃至865)。したがって、レジスタ情報はR0からR6に変更され、記憶装置情報はM12からM6に変更される。これにより、t40において、アプリケーションプログラムの動作はt15の直前の状態1050に復元される。
ここで、t45において、装置100が、ふたたび誤動作したとする。この場合の誤動作の原因は、CPU115に起因するものではなく、メインメモリ120に保存されている情報(例えば、レジスタ情報R6及び主記憶情報M6、又は、レジスタ情報R9及び主記憶情報M9)に起因する可能性が高い。
その後、t50において、割り込み処理が開始され(図8のステップ810)、誤動作が検出される(図8のステップ815)。すると、t55において、CPU100のみがリセットされ(ステップ850)、レジスタ情報が初期化される(レジスタ情報がR0となる)。
t60において、第2のRAM125に保存されている情報MM4は、有効フラグがオフであるから、情報MM4を用いたメインメモリ120の情報の復元は実行されない(図8のステップ855及び860)。ここで、第3のRAM130に保存されている情報MM3は、有効フラグがオンであるので、情報MM3を用いて、メインメモリ120の情報が復元され、第3のRAM130に保存されている情報MM3の有効フラグはオフとなる(図8のステップ875乃至885)。したがって、レジスタ情報はR0からR2に変更され、記憶装置情報はM12からM2に変更される。これにより、t60において、アプリケーションプログラムの動作はt5の直前の状態である1040に復元される。
この例から分かるように、装置100がメインメモリ120以外に2つのRAMを備えることによって、装置100に誤動作が発生した場合、2世代前の復元情報を用いて、メインメモリ120の情報を復元することができる。これにより、装置100の信頼性がさらに向上する。
さらに、t65において、装置100が、さらに誤動作した場合、処理フローは図8のステップ815から850へ進む。ここで、第2のRAM125に保存されている情報MM4、及び、第3のRAM130に保存されている情報MM3はともに有効フラグがオフであるから、メインメモリ120は、第2又は第3のRAM125又は130に保存されている復元情報を用いて復元されることはない(図8の処理フローは、ステップ860及びステップ880においてともに「No」の矢印へ進む)。したがって、装置100全体が初期化される(図8のステップ801)。装置100全体が初期化された場合、アプリケーションプログラムは初めから再実行される。
また、アプリケーションプログラムの実行プロセス及び割込み処理には関係なく、CPU115などの誤動作検出部は、装置100における誤動作の発生を検出する(ステップ803)。誤動作検出部が装置100の誤動作の発生を検出した場合、処理フローはステップ850へ進む。これにより、装置100において、定義されていない命令が実行される、存在しないメモリ空間にアクセスされたなどの誤動作が解消される。
図11は、本実施例を実現するためのCPUとRAMとの関係をブロック図で示す。記憶装置コントローラ1105は、CPU用データバス135を介して中央処置装置115と接続され、さらに、記憶装置用バス1110を介して第1のRAM120及び第2の書き換え可能な記憶装置125と接続されている。
図12は、図11の記憶装置コントローラ1105を用いた実施例の動作を示した処理フローである。さらに、図12は、図5に示した実施例を一部変更した実施例である。図5のステップ550乃至560において、メインメモリ120は、第2のRAM125に保存されている復元情報を第1のRAM120に保存することによって復元される。本実施例は、復元についてのステップであるこれらのステップ555及び560を変更することによって実現される。
図12において、ステップ1201乃至1230、1240、及び、1250は、図5のステップ501乃至530、540、及び、550とそれぞれ同じである。したがって、本実施例特有の処理であるステップ1235、1255、及び、それらに関連するステップについてのみ説明する。
記憶装置管理部は、メインメモリに保存されている情報(復元情報)を取得する(ステップ1230)。記憶装置管理部は、その復元情報をメインメモリ以外のRAMに保存する(ステップ1235)。
その後、マイクロコンピュータに誤動作が発生することによって、処理フローはステップ1150へ進む。CPU115がリセットされる(ステップ1150)。そして、記憶装置コントローラ1105は、メインメモリ以外の記憶装置をメインメモリに切替える(ステップ1255)。本フローにおいて、メインメモリが第1のRAM120であるとすると、本ステップにおいて、メインメモリは第1のRAM120から第2のRAM125に切替えられる。さらに、記憶装置管理部は、メインメモリに保存されている第2のRAM125に保存されている復元情報に基づいて、対応するレジスタ145の情報を復元する(ステップ1260)。
また、アプリケーションプログラムの実行プロセス及び割込み処理には関係なく、CPU115などの誤動作検出部は、装置100における誤動作の発生を検出する(ステップ1203)。誤動作検出部が装置100の誤動作の発生を検出した場合、処理フローはステップ1250へ進む。これにより、装置100において、定義されていない命令が実行される、存在しないメモリ空間にアクセスされたなどの誤動作が解消される。
本実施例においても、CPU115のみを周期的にリセットするステップを追加することができる。また、装置100は、3つ以上のRAMを備えることができ、その場合、上述の有効フラグを用いることもできる。
本実施例は、メインメモリの復元をデータの移動では無く、記憶装置コントローラ1105がメインメモリを切替えることによって実現する。したがって、復元情報が非常に大量である場合、本実施事例を用いることによって、データ転送にかかる処理時間の削減が行える。すなわち、本実施例による復元のための処理時間は、データの移動を実行している他の実施例の処理時間より短くなる。
図13は、メインメモリである第1のRAM120とメインメモリ以外の第2のRAM125との間にキャッシュメモリを用いた実施例を示すブロック図である。図13において、キャッシュメモリ1305は、書き込み用データバス1350を介してCPU用データバス135に接続され、さらに、書き込み用データバス1355を介して第2のRAM125に接続されている。
CPU115がメインメモリである第1のRAM120に保存されている情報を変更した場合、記憶装置管理部は、ライトバック方式やライトスルー方式などの技術を用いて、キャッシュメモリ1305に保存されている情報を同様に変更する。その後、第2のRAM125に復元情報を保存するとき、メインメモリ120に保存されている情報を用いることなく、キャッシュメモリ1305において変更された情報のみを第2のRAM125に保存する。
キャッシュメモリ1301は、アドレス部1315、データ部1310、タグ部1320からなる。キャッシュメモリ1301は、メインメモリ120に保存されている情報を全て保存することができる。また、キャッシュメモリ1301は、メインメモリ120において変更があった情報のみを保存することもできる。
メインメモリ120に書き込みが行われると、記憶装置管理部は、その書き込みが行われたアドレスをアドレス部1315に保存し、そして、その書き込まれた内容であるデータをデータ部1310に保存する。さらに、記憶装置管理部は、メインメモリ120に保存されている情報のアドレスを管理するための情報であるタグを変更し、該当するアドレスが変更されたことを示す情報をタグに付加する。
同じアドレスの情報に変更があった場合、データ部は変更された情報を上書きする。したがって、データ部は、変更された情報の変更履歴は持たず、最新の情報のみを有する。
キャッシュメモリ1305がメインメモリ120の情報全てを保存している場合、タグは、対応するアドレスの情報に変更があったことを示す情報を有する。また、キャッシュメモリ1305がメインメモリ120において変更があった情報のみを保存している場合、あるアドレスのタグが存在するとき、そのアドレスは変更が有ったことを示す。
復元情報として用いられるキャッシュメモリ1305に保存されている情報はメインメモリ120において変更があった情報又は変更があったことを示す情報を含んでいるため、第2のRAM125に保存すべき記憶装置情報は、キャッシュメモリ1305を用いることによって、メインメモリ120において変更があった情報のみに限定することができる。したがって、メインメモリ120から第2のRAM125に転送するデータ容量が削減され、データの転送時間が大幅に削減される。
キャッシュメモリ1305に保存されている情報は、所定の期間におけるメインメモリ120と第2のRAM125とに保存されている情報の差分を示す情報を含んでいることから、所定の期間の開始時点において、第1及び第2のRAM120及び125とキャッシュメモリ1305とに保存されている情報は同期化されている必要がある。つまり、装置100が初期化された後や、メインメモリ120が復元された後などに、記憶装置管理部は、メインメモリ120に保存されている情報を用いて、第2のRAM125に保存されている情報を更新する必要があり、さらに、タグ部1320の情報をクリアする、又は、キャッシュメモリ1305の全ての情報をクリアする必要がある。
上記の実施例において、2つ又は3つのRAMを有する装置100について説明した。しかしながら、装置100は、さらに多くのRAMを備えることができる(逆に、3つのRAMを2つに置き換えることもできる)。これにより、より多くの世代を管理することができる。また、RAMを冗長化させて装置100の信頼性を向上させることもできる。
上記の実施例において示したRAMは、特許請求の範囲に記載した「書き換え可能な記憶装置」の一例である。書き換え可能な記憶装置は、不揮発性メモリなどの記憶装置であって、書き換えが行える記憶装置全てを含む。特に、書き換え可能な記憶装置は、主記憶装置として用いることが可能な記憶装置である。
上記の実施例において示したCPUは、特許請求の範囲に記載した「中央処理装置」の一例である。中央処理装置は、所定の装置の機能を制御するための回路又は装置であるCPU、MPU、プロセッサ、マイクロプロセッサなどを含む。

Claims (10)

  1. 主記憶装置における情報を復元可能な装置であって、
    一又は二以上のレジスタを具備する処理装置と、
    書き換え可能な第1の記憶装置と、
    書き換え可能な第2の記憶装置と、
    前記第1の記憶装置に保存されている情報である記憶装置情報と前記一又は二以上のレジスタに保存されている情報であるレジスタ情報とからなる情報である復元情報を取得し、当該復元情報を前記第2の記憶装置に保存させる記憶装置管理手段と、
    前記処理装置をリセットする回路と、
    を備え、
    前記処理装置は、前記一又は二以上のレジスタに保存されている情報であるレジスタ情報を前記第1の記憶装置に退避した後、前記回路は、前記処理装置をリセットし、前記処理装置は、前記第1の記憶装置に退避されている前記レジスタ情報を前記一又は二以上のレジスタに復元し、
    前記復元情報の取得、当該復元情報の前記第2の記憶装置への保存、前記レジスタ情報の前記第1の記憶装置への退避、前記処理装置のリセット、及び、前記レジスタ情報の前記第1の記憶装置から前記一又は二以上のレジスタへの復元は、周期的に繰り返し行われることを特徴とする装置。
  2. 主記憶装置における情報を復元可能な装置において、
    前記第1の記憶装置又は前記処理装置と前記第2の記憶装置との間に配置したキャッシュメモリであって、当該第1の記憶装置に保存されている情報が変更されたとき、当該変更された情報のみを保存するキャッシュメモリをさらに備え、
    前記復元情報は、前記キャッシュメモリに保存されている情報に基づいて取得されることを特徴とする請求項1に記載の装置。
  3. 主記憶装置における情報を復元可能な装置において、
    前記記憶装置管理手段は、前記第2の記憶装置に保存されている前記復元情報内の前記記憶装置情報を用いて、前記第1の記憶装置の情報を復元するとともに、当該復元情報内の前記レジスタ情報を用いて、対応する前記一又は二以上のレジスタの情報を復元することを特徴とする請求項1又は2に記載の装置。
  4. 主記憶装置における情報を復元可能な装置において、
    前記記憶装置管理手段は、当該装置が誤動作したときに、前記第1の記憶装置の情報の復元、及び、前記一又は二以上のレジスタの情報の復元を行うことを特徴とする請求項に記載の装置。
  5. 主記憶装置における情報を復元可能な装置において、
    装置が誤動作したときに、処理装置がリセットされることを特徴とする請求項に記載の装置。
  6. 主記憶装置における情報を復元可能な装置において、
    記憶装置コントローラをさらに備え、
    前記記憶装置情報の復元は、記憶装置コントローラが主記憶装置を前記第1の記憶装置から前記第2の記憶装置に切替えることによって行われることを特徴とする請求項乃至のいずれか一つに記載の装置。
  7. 主記憶装置における情報を復元可能な装置において、
    前記記憶装置管理手段は、前記復元情報を取得するとき、当該復元情報が復元時に利用可能である場合は有効を示す情報、そして、利用不可である場合は無効を示す情報である復元可否情報を有効として当該復元情報に付加し、そして、前記第1の記憶装置の情報の復元、及び、前記一又は二以上のレジスタの情報の復元が行われるとき、当該復元可否情報が有効を示している場合のみ、前記第2の記憶装置に保存されている前記復元情報内の前記記憶装置情報を用いて、前記第1の記憶装置の情報を復元するとともに、当該復元情報内の前記レジスタ情報を用いて、対応する前記一又は二以上のレジスタの情報を復元し、さらに、前記記憶装置管理手段は、前記第2の記憶装置に保存されている前記復元情報内の前記復元可否情報が無効を示すよう変更し、当該復元可否情報は、新たに復元情報が取得されない限り変更されないことを特徴とする請求項1乃至のいずれか一つに記載の装置。
  8. 主記憶装置における情報を復元可能な装置において、
    書き換え可能な第3の記憶装置をさらに備え、
    前記記憶装置管理手段は、前記第2の記憶装置に保存されている前記復元情報を前記第3の記憶装置に保存するとともに、新たな復元情報を取得し、当該新たな復元情報を前記第2の記憶装置に保存し、
    さらに、前記記憶装置管理手段は、前記第1の記憶装置の情報の復元、及び、前記一又は二以上のレジスタの情報の復元を前記復元情報又は前記新たな復元情報に基づいて行うことを特徴とする請求項1乃至のいずれか一つに記載の装置。
  9. 主記憶装置における情報を復元可能な装置において、
    前記復元情報及び新たな復元情報は、前記復元可否情報をともに含み、前記記憶装置管理手段は、前記復元可否情報が有効を示している前記復元情報又は前記新たな復元情報に基づいて、前記第1の記憶装置の情報の復元、及び、前記一又は二以上のレジスタの情報の復元を行い、さらに、前記記憶装置管理手段は、当該復元で用いられた前記復元情報又は前記新たな復元情報内の前記復元可否情報が無効を示すよう変更し、当該復元可否情報は、新たに復元情報が取得されない限り変更されないことを特徴とすることを特徴とする請求項に記載の装置。
  10. 前記処理装置は、中央処理装置である、請求項1乃至のいずれか一つに記載の装置。
JP2012508368A 2010-03-30 2011-03-30 主記憶装置における情報を復元するための装置及び方法 Expired - Fee Related JP5579257B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012508368A JP5579257B2 (ja) 2010-03-30 2011-03-30 主記憶装置における情報を復元するための装置及び方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010078112 2010-03-30
JP2010078112 2010-03-30
PCT/JP2011/058121 WO2011122677A1 (ja) 2010-03-30 2011-03-30 主記憶装置における情報を復元するための装置及び方法
JP2012508368A JP5579257B2 (ja) 2010-03-30 2011-03-30 主記憶装置における情報を復元するための装置及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014076965A Division JP2014123409A (ja) 2010-03-30 2014-04-03 主記憶装置における情報を復元するための装置及び方法

Publications (2)

Publication Number Publication Date
JPWO2011122677A1 JPWO2011122677A1 (ja) 2013-07-08
JP5579257B2 true JP5579257B2 (ja) 2014-08-27

Family

ID=44712370

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012508368A Expired - Fee Related JP5579257B2 (ja) 2010-03-30 2011-03-30 主記憶装置における情報を復元するための装置及び方法
JP2014076965A Ceased JP2014123409A (ja) 2010-03-30 2014-04-03 主記憶装置における情報を復元するための装置及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014076965A Ceased JP2014123409A (ja) 2010-03-30 2014-04-03 主記憶装置における情報を復元するための装置及び方法

Country Status (5)

Country Link
US (1) US20130055017A1 (ja)
EP (1) EP2555115A4 (ja)
JP (2) JP5579257B2 (ja)
CN (1) CN102934090A (ja)
WO (1) WO2011122677A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120085810A (ko) 2009-10-15 2012-08-01 가부시키가이샤 엘이테크 마이크로 컴퓨터 및 그 동작 방법
JP6221110B2 (ja) * 2013-05-01 2017-11-01 株式会社エルイーテック 処理装置におけるエラーを判定及び解決する装置及び方法
JP2016181055A (ja) * 2015-03-23 2016-10-13 株式会社東芝 情報処理装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139087A (ja) * 1992-10-29 1994-05-20 Toshiba Corp チェックポイントリスタート方式
JPH06250860A (ja) * 1993-02-23 1994-09-09 Hitachi Ltd データ処理装置
JPH07219796A (ja) * 1994-02-04 1995-08-18 Kofu Nippon Denki Kk 情報処理装置
JPH07219809A (ja) * 1993-09-15 1995-08-18 Advanced Risc Mach Ltd データ処理装置およびデータ処理方法
JPH09297715A (ja) * 1996-04-30 1997-11-18 Nec Corp データ退避読み出し方法
JPH10133958A (ja) * 1996-10-31 1998-05-22 Nec Corp 通信装置制御回路
JPH10240620A (ja) * 1996-12-26 1998-09-11 Toshiba Corp コンピュータシステムおよび同システムにおけるチェックポイントイメージ保存方法
JP2001084178A (ja) * 1999-09-10 2001-03-30 Toshiba Corp データ記憶素子および電子計算機
JP2001188687A (ja) * 2000-01-05 2001-07-10 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JP2004086451A (ja) * 2002-08-26 2004-03-18 Matsushita Electric Ind Co Ltd 半導体集積回路

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2513060B2 (ja) * 1990-03-15 1996-07-03 日本電気株式会社 故障回復型計算機
US6134655A (en) * 1992-05-13 2000-10-17 Comverge Technologies, Inc. Method and apparatus for initializing a microprocessor to insure fault-free operation
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
ATE153149T1 (de) * 1993-01-21 1997-05-15 Apple Computer Vorrichtung und verfahren zur datensicherung von speichereinheiten in einem rechnernetzwerk
JPH06102099B2 (ja) 1993-08-06 1994-12-14 株式会社大一商会 パチンコ機の制御装置
JP2760747B2 (ja) * 1994-04-07 1998-06-04 株式会社東芝 入出力命令発行方式
JPH09319602A (ja) 1996-05-31 1997-12-12 Toshiba Corp コンピュータシステム及びリセット制御方法
JP2000187518A (ja) * 1998-12-21 2000-07-04 Nec Software Kobe Ltd コンピュータシステム
US7610462B2 (en) * 2004-09-16 2009-10-27 Wms Gaming Inc. Gaming machine with secure fault-tolerant memory
JP2006172065A (ja) * 2004-12-15 2006-06-29 Hitachi Ltd チェックポイント採取方法、システム及びプログラム
TW200625083A (en) * 2005-01-14 2006-07-16 Farstone Tech Inc Backup/recovery system and method thereof
US7328315B2 (en) * 2005-02-03 2008-02-05 International Business Machines Corporation System and method for managing mirrored memory transactions and error recovery
US7457928B2 (en) * 2005-10-28 2008-11-25 International Business Machines Corporation Mirroring system memory in non-volatile random access memory (NVRAM) for fast power on/off cycling
JP4691170B2 (ja) 2008-03-04 2011-06-01 株式会社ジョブ X線照射装置
US8381032B2 (en) * 2008-08-06 2013-02-19 O'shantel Software L.L.C. System-directed checkpointing implementation using a hypervisor layer

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139087A (ja) * 1992-10-29 1994-05-20 Toshiba Corp チェックポイントリスタート方式
JPH06250860A (ja) * 1993-02-23 1994-09-09 Hitachi Ltd データ処理装置
JPH07219809A (ja) * 1993-09-15 1995-08-18 Advanced Risc Mach Ltd データ処理装置およびデータ処理方法
JPH07219796A (ja) * 1994-02-04 1995-08-18 Kofu Nippon Denki Kk 情報処理装置
JPH09297715A (ja) * 1996-04-30 1997-11-18 Nec Corp データ退避読み出し方法
JPH10133958A (ja) * 1996-10-31 1998-05-22 Nec Corp 通信装置制御回路
JPH10240620A (ja) * 1996-12-26 1998-09-11 Toshiba Corp コンピュータシステムおよび同システムにおけるチェックポイントイメージ保存方法
JP2001084178A (ja) * 1999-09-10 2001-03-30 Toshiba Corp データ記憶素子および電子計算機
JP2001188687A (ja) * 2000-01-05 2001-07-10 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JP2004086451A (ja) * 2002-08-26 2004-03-18 Matsushita Electric Ind Co Ltd 半導体集積回路

Also Published As

Publication number Publication date
JPWO2011122677A1 (ja) 2013-07-08
CN102934090A (zh) 2013-02-13
EP2555115A4 (en) 2013-12-04
EP2555115A1 (en) 2013-02-06
US20130055017A1 (en) 2013-02-28
JP2014123409A (ja) 2014-07-03
WO2011122677A1 (ja) 2011-10-06

Similar Documents

Publication Publication Date Title
US8677189B2 (en) Recovering from stack corruption faults in embedded software systems
US9678682B2 (en) Backup storage of vital debug information
JP5705258B2 (ja) マイクロコンピュータ及びその動作方法
JP5183542B2 (ja) 計算機システム及び設定管理方法
CN110058791B (zh) 存储系统以及相应的方法和计算机可读介质
JP2014120179A (ja) 停電障害状況におけるイベントトレース情報の復旧
US20120233499A1 (en) Device for Improving the Fault Tolerance of a Processor
JP5579257B2 (ja) 主記憶装置における情報を復元するための装置及び方法
US9176756B2 (en) Computer system
JP5818257B2 (ja) 計算機システム、電源切断処理装置、電源切断処理方法およびプログラム
CN110865906B (zh) 一种电机初始位置角度存储方法、装置、车辆及存储介质
CN115576734B (zh) 一种多核异构日志存储方法和系统
JP4812699B2 (ja) 電源制御装置
JP6907976B2 (ja) コントローラ及びデータ保存方法
JP2007328438A (ja) 情報処理装置、そのデータバックアップ及び復旧方法
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
WO2014112039A1 (ja) 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
JP2009169515A (ja) コンピュータシステム及びシステム回復装置
JP4543505B2 (ja) マイクロコンピュータの制御方法及び異常監視装置
CN108415788B (zh) 用于对无响应处理电路作出响应的数据处理设备和方法
JP5645262B2 (ja) 情報処理装置
JP4788516B2 (ja) 動的置き換えシステム、動的置き換え方法およびプログラム
JP5161600B2 (ja) 情報処理装置およびデータ復旧方法
JP6519266B2 (ja) 情報処理装置、デバイス、および復旧方法、並びにコンピュータ・プログラム
JP2015216507A (ja) Fpgaを搭載する装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130605

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140403

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140708

R150 Certificate of patent or registration of utility model

Ref document number: 5579257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees