JP6090057B2 - 状態情報記録装置及びプログラム - Google Patents

状態情報記録装置及びプログラム Download PDF

Info

Publication number
JP6090057B2
JP6090057B2 JP2013169014A JP2013169014A JP6090057B2 JP 6090057 B2 JP6090057 B2 JP 6090057B2 JP 2013169014 A JP2013169014 A JP 2013169014A JP 2013169014 A JP2013169014 A JP 2013169014A JP 6090057 B2 JP6090057 B2 JP 6090057B2
Authority
JP
Japan
Prior art keywords
storage device
program
recording program
log recording
destroyed
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
JP2013169014A
Other languages
English (en)
Other versions
JP2015036944A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2013169014A priority Critical patent/JP6090057B2/ja
Priority to US14/287,846 priority patent/US20150052396A1/en
Publication of JP2015036944A publication Critical patent/JP2015036944A/ja
Application granted granted Critical
Publication of JP6090057B2 publication Critical patent/JP6090057B2/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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Description

本発明は、状態情報記録装置、プログラムに関する。
システムメモリと、複数のタスクに対応してシステムメモリ上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域に離散的にマッピングする仮想アドレス離散配置手段と、仮想アドレスと物理アドレスとを対応付けるとともにメモリアクセス違反が検知するメモリ管理手段と、画像処理用アプリケーションによるメモリアクセス違反が検知されたとき、メモリアクセス違反を履歴情報として不揮発性記憶部に保存する履歴情報保存手段とを備える画像処理装置は知られている(例えば、特許文献1参照)。
特開2010−134747号公報
本発明の目的は、自装置の状態に関する状態情報を不揮発性記憶装置に記録する記録プログラムが実行される際に記憶される記憶装置へ複写された記録プログラムが破壊されていても、状態情報を不揮発性記憶装置に記録できるようにすることにある。
請求項1に記載の発明は、自装置の状態に関する状態情報を不揮発性記憶装置に記録する記録プログラムを、当該記録プログラムが実行される前に記憶される第1の記憶装置から当該記録プログラムが実行される際に記憶される第2の記憶装置へ複写する複写手段と、前記自装置における不具合の発生を検出する検出手段と、前記不具合の発生の検出に応じて、前記第2の記憶装置へ複写された前記記録プログラムが破壊されているかどうかを判定する判定手段と、前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定されなかった場合には、前記第2の記憶装置で当該記録プログラムを実行し、前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定された場合には、前記第1の記憶装置に記憶された当該記録プログラムを、当該第1の記憶装置から、当該第2の記憶装置へ複写された当該記録プログラムに対して行われた破壊が行われない第3の記憶装置へ複写し、当該第3の記憶装置で実行することにより、前記状態情報を前記不揮発性記憶装置に記録する記録手段と、前記状態情報が前記不揮発性記憶装置に記録された後に、前記自装置を再起動する再起動手段とを備えたことを特徴とする状態情報記録装置である。
請求項2に記載の発明は、前記記録手段は、前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定された場合には、前記第1の記憶装置に記憶された当該記録プログラムを、当該記録プログラムが前記第3の記憶装置の制限された環境で実行可能なものとして予め定められたものであれば、当該第3の記憶装置で実行することにより、前記状態情報を前記不揮発性記憶装置に記録することを特徴とする請求項1に記載の状態情報記録装置である。
請求項3に記載の発明は、コンピュータに、自装置の状態に関する状態情報を不揮発性記憶装置に記録する記録プログラムを、当該記録プログラムが実行される前に記憶される第1の記憶装置から当該記録プログラムが実行される際に記憶される第2の記憶装置へ複写する機能と、前記自装置における不具合の発生を検出する機能と、前記不具合の発生の検出に応じて、前記第2の記憶装置へ複写された前記記録プログラムが破壊されているかどうかを判定する機能と、前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定されなかった場合には、前記第2の記憶装置で当該記録プログラムを実行し、前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定された場合には、前記第1の記憶装置に記憶された当該記録プログラムを、当該第1の記憶装置から、当該第2の記憶装置へ複写された当該記録プログラムに対して行われた破壊が行われない第3の記憶装置へ複写し、当該第3の記憶装置で実行することにより、前記状態情報を前記不揮発性記憶装置に記録する機能と、前記状態情報が前記不揮発性記憶装置に記録された後に、前記自装置を再起動する機能とを実現させるためのプログラムである。
請求項1の発明によれば、自装置の状態に関する状態情報を不揮発性記憶装置に記録する記録プログラムが実行される際に記憶される記憶装置へ複写された記録プログラムが破壊されていても、本構成を有していない場合に比較して、その破壊の影響を抑えつつ、状態情報を不揮発性記憶装置に記録することができる。
請求項2の発明によれば、記録プログラムが実行される際に記憶される記憶装置へ複写された記録プログラムに対する破壊の影響を抑えつつ状態情報を不揮発性記憶装置に記録する動作が行われないという事態を回避することができる。
請求項3の発明によれば、自装置の状態に関する状態情報を不揮発性記憶装置に記録する記録プログラムが実行される際に記憶される記憶装置へ複写された記録プログラムが破壊されていても、本構成を有していない場合に比較して、その破壊の影響を抑えつつ、状態情報を不揮発性記憶装置に記録することができる。
本発明の実施の形態が適用される画像処理装置の構成例を示した図である。 本発明の実施の形態における画像処理装置の機能構成例を示したブロック図である。 本発明の実施の形態における画像処理装置がプログラム正当性情報を構築する際の動作例を示したフローチャートである。 本発明の実施の形態における画像処理装置がDRAMのプログラム領域にロードしたログ記録プログラムを示した図である。 本発明の実施の形態における画像処理装置がDRAMのデータ領域に構築したプログラム正当性情報を示した図である。 本発明の実施の形態における画像処理装置がプログラムの正当性を判断する際の動作例を示したフローチャートである。 本発明の実施の形態における画像処理装置がログ記録プログラムの破壊時に第2の方法でログ記録プログラムを実行すると判定した場合にSRAMにロードされたデータを示した図である。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本実施の形態が適用される画像処理装置10のハードウェア構成例を示した図である。
図示するように、画像処理装置10は、装置全体を制御する制御部20を備える。制御部20は、CPU(Central Processing Unit)21、MMU(Memory Management Unit)22、例外発生部23、SRAM(Static Random Access Memory)24等がSoC(System-on-a-Chip)方式で1つのプロセッサチップに搭載されることにより実現される。また、画像処理装置10は、ROM(Read Only Memory)31と、DRAM(Dynamic Random Access Memory)32と、HDD(Hard Disk Drive)33と、画像読取部34と、画像形成部35と、操作パネル36と、通信インターフェース(以下、「通信I/F」と表記する)37とを備える。
CPU21は、ROM31等に記憶された各種プログラムをDRAM32にロードして実行することにより、後述する各機能を実現する。その際、未定義の命令を読み込んだとすると、未定義命令例外を示す信号を出力する。
MMU22は、仮想アドレスにDRAM32上の物理アドレスがページ単位で対応付けられ、ページ単位で書込みの可否と読出しの可否のアクセス情報が設定されたページテーブルを有し、CPU21から出力された仮想アドレスをページテーブルを参照して物理アドレスに変換する。その際、仮想アドレスに対応する物理アドレスがページテーブルのエントリに存在しなかったり、仮想アドレスが要求されたアクセスを禁止されたものだったりすると、メモリアクセス例外を示す信号を出力する。
例外発生部23は、CPU21が出力した未定義命令例外を示す信号、MMU22が出力したメモリアクセス例外を示す信号、割り込み要求(IRQ)等を受け、例外又は割り込みが発生したことを通知する例外発生通知をCPU21に出力する。
SRAM24は、CPU21の作業用メモリ等として用いられるメモリである。DRAM32よりも高速なので、DRAM32から読み出したデータを再度の使用に備えて記憶しておくキャッシュメモリとして用いられる。
ROM31は、CPU21が実行する各種プログラム等を記憶するメモリである。
DRAM32は、CPU21の作業用メモリ等として用いられるメモリである。このDRAM32には、画像処理装置10が起動されると、ROM31に記憶された各種プログラムがコピーされる。
HDD33は、不揮発性記憶装置の一例であり、画像読取部34が読み取った画像データや画像形成部35における画像形成にて用いる画像データ等を記憶する例えば磁気ディスク装置である。
画像読取部34は、紙等の記録媒体に記録された画像を読み取る。ここで、画像読取部34は、例えばスキャナであり、光源から原稿に照射した光に対する反射光をレンズで縮小してCCD(Charge Coupled Devices)で受光するCCD方式や、LED光源から原稿に順に照射した光に対する反射光をCIS(Contact Image Sensor)で受光するCIS方式のものを用いるとよい。
画像形成部35は、記録媒体に画像を形成する。ここで、画像形成部35は、例えばプリンタであり、感光体に付着させたトナーを記録媒体に転写して像を形成する電子写真方式や、インクを記録媒体上に吐出して像を形成するインクジェット方式のものを用いるとよい。
操作パネル36は、各種情報の表示やユーザからの操作入力の受付を行うタッチパネルである。ここで、操作パネル36は、各種情報が表示されるディスプレイと、指やスタイラスペン等の指示手段で指示された位置を検出する位置検出シートとからなる。
通信I/F37は、ネットワークを介して他の装置との間で各種情報の送受信を行う。
ところで、このような画像処理装置10では、CPU21がDRAM32にアクセスする際にMMU22がメモリアクセス例外等のシステムハングの決起となる不具合の発生を検知すると、例外発生部23から例外発生通知を受けて、CPU21が例外ハンドラを呼び出し、例外ハンドラが、画像処理装置10の状態に関する状態情報(CPU21のレジスタ、OSの情報等)のログを収集して記録するログ記録プログラムを実行する、という動作を行うことがある。そして、この動作により、状態情報は、操作パネル36に表示されたり、図示しないホストPCに通信I/F37を介して転送されホストPCで表示されたりする。
しかしながら、このような動作は、CPU21がDRAM32にアクセスする場合に限定される。即ち、CPU21以外のバスイニシエータ、例えばDMA(Direct Memory Access)コントローラ等がDRAM32にアクセスする場合、このような動作は行えないことがある。例えば、DMAが暴走してDRAM32のプログラム領域を破壊してしまうと、例外ハンドラがログ記録プログラムを実行できないことがあり得るからである。
そこで、本実施の形態では、CPU21がDRAM32にアクセスする際に、検出手段の一例としてのMMU22が不具合の発生を検知すると、ログ記録プログラムが破壊されているかどうかを判定するようにした。そして、ログ記録プログラムが破壊されていなければ、ログ記録プログラムを通常通り実行した後、画像処理装置10を再起動し、ログ記録プログラムが破壊されていれば、ログ記録プログラムを特別な方法で実行した後、又は、ログ記録プログラムを実行せずに、画像処理装置10を再起動するようにした。
ここで、ログ記録プログラムが破壊されていた場合にログ記録プログラムを実行する特別な方法としては、次の第1から第3の方法が考えられる。即ち、ベクタテーブルが破壊されていなければ、次の第1から第3の方法の何れかで状態情報のログ(不具合が発生する直前までのログ)を保存した状態で画像処理装置10を再起動する。
第1の方法は、ログ記録プログラムが破壊されていれば、ROM31上でログ記録プログラムを実行する、というものである。
第2の方法は、ログ記録プログラムが破壊されていれば、ログ記録プログラムをROM31からSRAM24へコピーして実行する、というものである。
第3の方法は、ログ記録プログラムが破壊されていれば、ログ記録プログラムをROM31からDRAM32へ再度コピーして実行する、というものである。
ここで、ログ記録プログラムは、自装置の状態に関する状態情報を不揮発性記憶装置に記録する記録プログラムの一例であり、ROM31は、記録プログラムが実行される前に記憶される第1の記憶装置の一例であり、DRAM32は、記録プログラムが実行される際に記憶される第2の記憶装置の一例であり、SRAM24は、第2の記憶装置へ複写された記録プログラムに対して行われた破壊が行われない第3の記憶装置の一例である。
次に、このような動作を行う画像処理装置10の構成について説明する。
図2は、画像処理装置10の機能構成例を示したブロック図である。
図示するように、画像処理装置10は、上述したROM31、DRAM32、及びSRAM24に加え、第1ロード部11と、プログラム正当性構築部12と、例外ハンドラ実行部13と、プログラム正当性判断部14と、メモリアクセス切替制御部15と、第2ロード部16と、再起動部17とを備えている。
第1ロード部11は、画像処理装置10が起動された際又はその後の任意のタイミングで、ROM31からDRAM32のプログラム領域へプログラムをロードする。このロードされるプログラムには、ログ記録プログラムも含まれる。第1ロード部11は、DRAM32のプログラム領域へロードされたログ記録プログラムが破壊されていると判定されると、ROM31からDRAM32のプログラム領域へログ記録プログラムを再度ロードする。本実施の形態では、記録プログラムを第1の記憶装置から第2の記憶装置へ複写する複写手段の一例として、第1ロード部11を設けている。
プログラム正当性構築部12は、DRAM32のプログラム領域に記憶されたログ記録プログラムの正当性に関する情報(以下、「プログラム正当性情報」という)を、DRAM32のデータ領域に構築する。ここで、ログ記録プログラムの正当性とは、ログ記録プログラムが正常に動作することであり、ログ記録プログラムが破壊されていないことを意味する。
従って、プログラム正当性情報には、例えば、ログ記録プログラムから計算されたチェックサム値を含めるとよい。具体的には、ROM31からDRAM32のプログラム領域へログ記録プログラムがロードされる際に、ログ記録プログラムのチェックサム値を計算し、チェックサム値をDRAM32のデータ領域に記憶するとよい。但し、チェックサム値の計算は、ROM31からDRAM32のプログラム領域へログ記録プログラムがロードされる際に必ず行わなければならないというものではなく、ROM31からDRAM32のプログラム領域へログ記録プログラムがロードされた後、画像処理装置10に不具合が発生するのに先立って行えばよい。即ち、DRAM32のデータ領域に記憶されたチェックサム値は、第2の記憶装置へ複写された記録プログラムから不具合の発生の検出に先立って予め定められた手順で算出された第1の特徴情報の一例である。
或いは、プログラム正当性情報には、例えば、ログ記録プログラムが書き込まれた時刻を示すタイムスタンプを含めてもよい。具体的には、ROM31からDRAM32のプログラム領域へログ記録プログラムがロードされる際に、ログ記録プログラムが書き込まれた時刻のタイムスタンプをDRAM32のデータ領域に記憶するとよい。
例外ハンドラ実行部13は、例外発生部23(図1参照)から例外発生通知を受けると、ベクタテーブル内のその例外発生通知に対応するベクタを参照し、そのベクタで指定されたアドレスに格納された例外ハンドラを実行する。尚、ベクタテーブルは、通常はROM31からDRAM32へコピーされて使用されるが、DRAM32のプログラム領域へロードされたログ記録プログラムが破壊されていると判定されると、ROM31からSRAM24へコピーされて使用されることもある。
プログラム正当性判断部14は、DRAM32のプログラム領域に記憶されたログ記録プログラムの正当性を、プログラム正当性構築部12がDRAM32のデータ領域に構築したプログラム正当性情報を用いて判断する。
ここで、プログラム正当性情報にチェックサム値を含めた場合、ログ記録プログラムの正当性の判断は、DRAM32のプログラム領域に記憶されたログ記録プログラムから計算されたチェックサム値と、DRAM32のデータ領域に記憶されたそのログ記録プログラムのプログラム正当性情報に含まれるチェックサム値とを比較することによって行う。DRAM32のプログラム領域に記憶されたログ記録プログラムから計算されたチェックサム値は、第2の記憶装置へ複写された記録プログラムから不具合の発生の検出に応じて予め定められた手順で算出された第2の特徴情報の一例である。本実施の形態では、第2の記憶装置へ複写された記録プログラムが破壊されているかどうかを判定する判定手段の一例として、プログラム正当性判断部14を設けている。
また、プログラム正当性情報にタイムスタンプを含めた場合、ログ記録プログラムの正当性の判断は、DRAM32のプログラム領域にログ記録プログラムが書き込まれた時刻を示すタイムスタンプと、DRAM32のデータ領域に記憶されたそのログ記録プログラムのプログラム正当性情報に含まれるタイムスタンプとを比較することによって行う。
尚、プログラム正当性情報にタイムスタンプを含めた場合、タイムスタンプが異なっているからといって必ずしもログ記録プログラムが破壊されているとは限らない。従って、この場合、プログラム正当性情報は、ログ記録プログラムが破壊されている可能性があるかどうかを調べるための情報である。即ち、本実施の形態では、第2の記憶装置へ複写された記録プログラムが破壊されている可能性があるかどうかを判定する判定手段の一例として、プログラム正当性判断部14を設けてもよい。
メモリアクセス切替制御部15は、ROM31、DRAM32、SRAM24の何れのメモリ上でプログラムを実行するかを判定し、その判定の結果に基づいて、アクセスするメモリを切り替える制御を行う。
具体的には、DRAM32のプログラム領域に記憶されたログ記録プログラムが破壊されていない場合は、アクセスするメモリをDRAM32に設定し、DRAM32上でログ記録プログラムを実行する。
DRAM32のプログラム領域に記憶されたログ記録プログラムが破壊されている場合は、上述した第1から第3の方法の何れを用いるかによって、アクセスするメモリが変わってくる。第1の方法を用いる場合は、アクセスするメモリをROM31に設定し、ROM31上でログ記録プログラムを実行する。第2の方法を用いる場合は、アクセスするメモリをSRAM24に設定し、第2ロード部16に対してROM31からSRAM24へログ記録プログラムをロードさせた後、SRAM24上でログ記録プログラムを実行する。第3の方法を用いる場合は、アクセスするメモリをDRAM32に設定し、第1ロード部11に対してROM31からDRAM32へログ記録プログラムを再度ロードさせた後、DRAM32上でログ記録プログラムを実行する。
そして、このようにログ記録プログラムが実行されると、画像処理装置10の状態に関する状態情報のログがHDD33(図1参照)に記録される。
尚、DRAM32のプログラム領域に記憶されたログ記録プログラムが破壊されている場合に第1から第3の方法の何れを用いるかは、画像処理装置10の設定として予め決めておいてもよいし、DRAM32のプログラム領域に記憶されたログ記録プログラムの種類に基づいて動的に決めてもよい。
本実施の形態では、第2の記憶装置へ複写された記録プログラムが破壊されていると判定されなかった場合には、第2の記憶装置で記録プログラムを実行し、第2の記憶装置へ複写された記録プログラムが破壊されていると判定された場合には、第1の記憶装置に記憶された記録プログラムを実行することにより、状態情報を不揮発性記憶装置に記録する記録手段の一例として、メモリアクセス切替制御部15を設けている。
第2ロード部16は、DRAM32のプログラム領域へロードされたログ記録プログラムが破壊されていると判定されると、ROM31からSRAM24へログ記録プログラムをロードする。
再起動部17は、例外発生部23(図1参照)から例外発生通知を受けた場合に、メモリアクセス切替制御部15がログ記録プログラムを実行することによって画像処理装置10の状態に関する状態情報のログがHDD33(図1参照)に記録された後、又は、画像処理装置10の状態に関する状態情報のログが記録されなくても、画像処理装置10を再起動する。本実施の形態では、自装置を再起動する再起動手段の一例として、再起動部17を設けている。
尚、これらの機能部のうち、ROM31、DRAM32、SRAM24以外は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、CPU21(図1参照)が、第1ロード部11、プログラム正当性構築部12、例外ハンドラ実行部13、プログラム正当性判断部14、メモリアクセス切替制御部15、第2ロード部16、再起動部17を実現するプログラムを例えばROM31からDRAM32に読み込んで実行することにより、これらの機能部は実現される。
次いで、本実施の形態における画像処理装置10の動作について説明する。ここでは、プログラム正当性情報にチェックサム値を含めた場合を例にとって、説明する。
図3は、画像処理装置10がプログラム正当性情報を構築する際の動作例を示したフローチャートである。尚、この動作は、第1ロード部11がROM31からDRAM32のプログラム領域へログ記録プログラムをロードする際に、プログラム正当性構築部12によって行われる。
第1ロード部11がROM31からログ記録プログラムを読み出すと、プログラム正当性構築部12は、そのログ記録プログラムのサイズを第1ロード部11から取得する(ステップ101)。第1ロード部11はROM31からログ記録プログラムを読み出す際に属性として付されたログ記録プログラムのサイズも読み出すので、プログラム正当性構築部12はこのサイズを第1ロード部11から取得するとよい。
また、このとき、プログラム正当性構築部12は、そのログ記録プログラムの本体を第1ロード部11から取得し、そのログ記録プログラムからチェックサム値を算出する(ステップ102)。
その後、第1ロード部11がDRAM32のプログラム領域にログ記録プログラムを書き込むと、プログラム正当性構築部12は、DRAM32におけるログ記録プログラムの開始アドレスを第1ロード部11から取得する(ステップ103)。第1ロード部11はDRAM32にログ記録プログラムを書き込んだ際にログ記録プログラムの開始アドレスを把握するので、プログラム正当性構築部12はこの開始アドレスを第1ロード部11から取得するとよい。
これにより、プログラム正当性構築部12は、ステップ101で取得したサイズと、ステップ102で算出したチェックサム値と、ステップ103で取得した開始アドレスとを、ログ記録プログラムのプログラム正当性情報として、DRAM32のデータ領域に書き込む(ステップ104)。
ここで、図3に示した動作によりログ記録プログラムからプログラム正当性情報を構築する様子について、具体的に説明する。
図4は、DRAM32のプログラム領域に記憶されたログ記録プログラムを例示した図である。図示するように、プログラム領域には、ログ記録プログラム「foo_A()」、「foo_B()」、「foo_C()」、・・・、「foo_N()」が記憶されている。即ち、ここでは、ログ記録プログラムを、例外ハンドラから呼び出される関数の名称で示している。
尚、図では、プログラム正当性情報の構築に必要な情報ではないが、破壊時実行情報も示している。この破壊時実行情報は、ログ記録プログラムごとに、それが破壊された際に、ROM31に記憶されたログ記録プログラムを上述した第1から第3の方法の何れで実行するか、を定義する。例えば、ログ記録プログラム「foo_A()」は簡易的な機能を有するログ記録プログラムであることを想定しているので、このログ記録プログラムに対しては、破壊時実行情報として、ROM31上で実行すべきことを定義している。ROM31は、動作上の制限がある実行環境ではあるが破壊の影響を受けず確実に動作可能だからである。また、ログ記録プログラム「foo_B()」及び「foo_C()」は次に簡易的な機能を有するログ記録プログラムであることを想定しているので、これらのログ記録プログラムに対しては、破壊時実行情報として、SRAM24上で実行すべきことを定義している。SRAM24も、ある程度動作上の制限がある実行環境ではあるが破壊の影響を受けず確実に動作可能だからである。更に、ログ記録プログラム「foo_N()」は詳細な機能を有するログ記録プログラムであることを想定しているので、このログ記録プログラムに対しては、破壊時実行情報として、DRAM32上で実行すべきことを定義している。尚、ここでは、破壊時実行情報を、ログ記録プログラムを第1から第3の方法の何れで実行するかを定義するものとしたが、ログ記録プログラムを実行するかどうかも定義するものとしてよい。また、破壊時実行情報は、DRAM32のプログラム領域に記憶されたログ記録プログラムの破壊の影響を受けない例えばROM31等に記憶されていることが望ましい。
図5は、DRAM32のデータ領域に記憶されたプログラム正当性情報を例示した図である。図示するように、データ領域には、図4に示したログ記録プログラム「foo_A()」、「foo_B()」、「foo_C()」、・・・、「foo_N()」のそれぞれのプログラム正当性情報が記憶されている。プログラム正当性情報において、開始アドレスは図3のステップ103で取得されたものであり、サイズは図3のステップ101で取得されたものであり、チェックサム値は図3のステップ102で算出されたものである。
図6は、画像処理装置10がプログラム正当性情報を用いてログ記録プログラムの正当性を判断する際の動作例を示したフローチャートである。尚、この動作は、例外ハンドラ実行部13が実行した例外ハンドラがログ記録プログラムを呼び出す際に、プログラム正当性判断部14、メモリアクセス切替制御部15及び再起動部17によって行われる。また、この動作例では、ログ記録プログラムが破壊された際に、ログ記録プログラムを実行するか及び実行する場合には第1から第3の方法の何れで実行するかを、図4に示した破壊時実行情報に基づいて決定するものとする。
例外ハンドラがログ記録プログラムを呼び出そうとすると、プログラム正当性判断部14は、DRAM32のデータ領域からそのログ記録プログラムのプログラム正当性情報を取得する(ステップ151)。例外ハンドラがログ記録プログラムを、プログラム領域における開始アドレスを引数として呼び出すものであれば、プログラム正当性判断部14は、DRAM32のデータ領域でこの開始アドレスを検索することにより、プログラム正当性情報を取得するとよい。また、例外ハンドラがログ記録プログラムを、プログラム領域におけるログ記録プログラムが記録された順番、つまり、データ領域におけるプログラム正当性情報が記録された順番を引数として呼び出すものであれば、プログラム正当性判断部14は、DRAM32のデータ領域でこの順番のプログラム正当性情報を取得するとよい。
このようにしてログ記録プログラムのプログラム正当性情報が取得されると、プログラム正当性判断部14は、プログラム正当性情報からチェックサム値を取り出す(ステップ152)。
また、このとき、プログラム正当性判断部14は、プログラム正当性情報から開始アドレス及びサイズを取り出し(ステップ153)、DRAM32のプログラム領域からこの開始アドレス及びサイズに基づいてログ記録プログラムを読み出す(ステップ154)。そして、読み出したログ記録プログラムのチェックサム値を算出する(ステップ155)。
これにより、プログラム正当性判断部14は、ステップ152で取り出したチェックサム値と、ステップ155で算出したチェックサム値とが一致するかどうかを判定する(ステップ156)。
これらのチェックサム値が一致すると判定された場合、ログ記録プログラムは破壊されていないと考えられる。従って、プログラム正当性判断部14はメモリアクセス切替制御部15にその旨を伝え、これにより、メモリアクセス切替制御部15は、アクセスするメモリをDRAM32に設定したまま、ログ記録プログラムをDRAM32上で実行する(ステップ157)。
一方、これらのチェックサム値が一致しないと判定された場合、ログ記録プログラムは破壊されていると考えられる。従って、プログラム正当性判断部14はメモリアクセス切替制御部15にその旨を伝え、これにより、メモリアクセス切替制御部15は、ログ記録プログラムに対して定義された破壊時実行情報を参照する(ステップ158)。
そして、まず、メモリアクセス切替制御部15は、破壊時実行情報に基づいて、ログ記録プログラムを実行するかどうかを判定する(ステップ159)。
その結果、ログ記録プログラムを実行すると判定した場合、メモリアクセス切替制御部15は、破壊時実行情報に基づいて、上述した第1から第3の方法の何れでログ記録プログラムを実行するかを判定する(ステップ160)。
第1の方法でログ記録プログラムを実行すると判定した場合、メモリアクセス切替制御部15は、アクセスするメモリをROM31に設定し、ログ記録プログラムをROM31上で実行する(ステップ161)。
第2の方法でログ記録プログラムを実行すると判定した場合、メモリアクセス切替制御部15は、アクセスするメモリをSRAM24に設定し、第2ロード部16にROM31からSRAM24へログ記録プログラムをロードするように指示し、ログ記録プログラムをSRAM24上で実行する(ステップ162)。尚、第2ロード部16は、例えば、ROM31からSRAM24へ初めてログ記録プログラムをロードする際に、例外ハンドラ及びそれを呼び出すためのベクタテーブルを含むプログラムの実行環境をSRAM24に構築しておくものとする。
第3の方法でログ記録プログラムを実行すると判定された場合、メモリアクセス切替制御部15は、アクセスするメモリをDRAM32に設定したままで、第2ロード部16にROM31からDRAM32へログ記録プログラムを再度ロードするように指示し、ログ記録プログラムをDRAM32上で実行する(ステップ163)。
このようにしてログ記録プログラムが実行されると、メモリアクセス切替制御部15はその旨を再起動部17に伝え、再起動部17は、画像処理装置10を再起動する(ステップ164)。
一方、ステップ159でログ記録プログラムを実行しないと判定した場合、メモリアクセス切替制御部15は、ログ記録プログラムを実行することなく、その旨を再起動部17に伝え、再起動部17は、画像処理装置10を再起動する(ステップ164)。
ここで、図6に示した動作により第2の方法でログ記録プログラムを実行すると判定された際にSRAM24にロードされるデータについて、具体的に説明する。
図7は、その際にSRAM24に記憶されるデータを例示した図である。図示するように、SRAM24には、ベクタテーブルが記憶される。ベクタテーブルは、「Reset Vector」から「IRQ Vector」までのベクタを格納するテーブルである。尚、通常、各ベクタは、ROM31のアドレス0から始まり、予め決められたアドレスに記憶されるが、SRAM24にロードされた場合も、各ベクタは、SRAM24の同じアドレスに記憶され、ROM31にベクタテーブルが記憶された場合と同じプログラム実行環境を実現している。また、SRAM24には、各ベクタに対応する例外ハンドラも記憶されている。ベクタテーブルの各ベクタには対応する例外ハンドラのアドレスが格納されており、例外発生部23からの例外発生通知に応じたベクタを参照することで、そのベクタに対応する例外ハンドラが実行される。更に、SRAM24には、制御ソフトウェアが格納されている。この制御ソフトウェアは、画像処理装置10の画像読取部34、画像形成部35等の各機能部を制御するソフトウェアである。ステップ162でROM31からロードされたログ記録プログラムもこの制御ソフトウェアに含めて記憶されている。これにより、SRAM24に記憶された例外ハンドラが実行されると、SRAM24に記憶されたログ記録プログラムが呼び出される。更にまた、SRAM24には、MMU22(図1参照)が参照するページテーブルも記憶されている。
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。
10…画像処理装置、11…第1ロード部、12…プログラム正当性構築部、13…例外ハンドラ実行部、14…プログラム正当性判断部、15…メモリアクセス切替制御部、16…第2ロード部、17…再起動部、24…SRAM、31…ROM、32…DRAM

Claims (3)

  1. 自装置の状態に関する状態情報を不揮発性記憶装置に記録する記録プログラムを、当該記録プログラムが実行される前に記憶される第1の記憶装置から当該記録プログラムが実行される際に記憶される第2の記憶装置へ複写する複写手段と、
    前記自装置における不具合の発生を検出する検出手段と、
    前記不具合の発生の検出に応じて、前記第2の記憶装置へ複写された前記記録プログラムが破壊されているかどうかを判定する判定手段と、
    前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定されなかった場合には、前記第2の記憶装置で当該記録プログラムを実行し、前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定された場合には、前記第1の記憶装置に記憶された当該記録プログラムを、当該第1の記憶装置から、当該第2の記憶装置へ複写された当該記録プログラムに対して行われた破壊が行われない第3の記憶装置へ複写し、当該第3の記憶装置で実行することにより、前記状態情報を前記不揮発性記憶装置に記録する記録手段と、
    前記状態情報が前記不揮発性記憶装置に記録された後に、前記自装置を再起動する再起動手段と
    を備えたことを特徴とする状態情報記録装置。
  2. 前記記録手段は、前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定された場合には、前記第1の記憶装置に記憶された当該記録プログラムを、当該記録プログラムが前記第3の記憶装置の制限された環境で実行可能なものとして予め定められたものであれば、当該第3の記憶装置で実行することにより、前記状態情報を前記不揮発性記憶装置に記録することを特徴とする請求項1に記載の状態情報記録装置。
  3. コンピュータに、
    自装置の状態に関する状態情報を不揮発性記憶装置に記録する記録プログラムを、当該記録プログラムが実行される前に記憶される第1の記憶装置から当該記録プログラムが実行される際に記憶される第2の記憶装置へ複写する機能と、
    前記自装置における不具合の発生を検出する機能と、
    前記不具合の発生の検出に応じて、前記第2の記憶装置へ複写された前記記録プログラムが破壊されているかどうかを判定する機能と、
    前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定されなかった場合には、前記第2の記憶装置で当該記録プログラムを実行し、前記第2の記憶装置へ複写された前記記録プログラムが破壊されていると判定された場合には、前記第1の記憶装置に記憶された当該記録プログラムを、当該第1の記憶装置から、当該第2の記憶装置へ複写された当該記録プログラムに対して行われた破壊が行われない第3の記憶装置へ複写し、当該第3の記憶装置で実行することにより、前記状態情報を前記不揮発性記憶装置に記録する機能と、
    前記状態情報が前記不揮発性記憶装置に記録された後に、前記自装置を再起動する機能と
    を実現させるためのプログラム。
JP2013169014A 2013-08-15 2013-08-15 状態情報記録装置及びプログラム Expired - Fee Related JP6090057B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013169014A JP6090057B2 (ja) 2013-08-15 2013-08-15 状態情報記録装置及びプログラム
US14/287,846 US20150052396A1 (en) 2013-08-15 2014-05-27 State information recording apparatus, non-transitory computer readable medium, and state information recording method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013169014A JP6090057B2 (ja) 2013-08-15 2013-08-15 状態情報記録装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2015036944A JP2015036944A (ja) 2015-02-23
JP6090057B2 true JP6090057B2 (ja) 2017-03-08

Family

ID=52467720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013169014A Expired - Fee Related JP6090057B2 (ja) 2013-08-15 2013-08-15 状態情報記録装置及びプログラム

Country Status (2)

Country Link
US (1) US20150052396A1 (ja)
JP (1) JP6090057B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844179A (zh) * 2017-02-07 2017-06-13 上海与德信息技术有限公司 日志存储方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59231798A (ja) * 1983-06-14 1984-12-26 Mitsubishi Electric Corp デ−タ処理装置
JPS6364139A (ja) * 1986-09-04 1988-03-22 Nec Corp メモリダンプ制御方式
JPH03216742A (ja) * 1990-01-20 1991-09-24 Fujitsu Ltd メモリダンプシステム
JPH05120088A (ja) * 1991-10-30 1993-05-18 Hokkaido Nippon Denki Software Kk メモリダンプ採取装置
US7636921B2 (en) * 2004-09-01 2009-12-22 Ati Technologies Inc. Software and methods for previewing parameter changes for a graphics display driver
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
JP2009015757A (ja) * 2007-07-09 2009-01-22 Fujitsu Ltd 信号処理装置における異常状態処理方式
US8566669B2 (en) * 2010-07-07 2013-10-22 Ocz Technology Group Inc. Memory system and method for generating and transferring parity information
US20120017116A1 (en) * 2010-07-16 2012-01-19 Kabushiki Kaisha Toshiba Memory control device, memory device, and memory control method
US8732527B2 (en) * 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
US20130074065A1 (en) * 2011-09-21 2013-03-21 Ibm Corporation Maintaining Consistency of Storage in a Mirrored Virtual Environment
US8719493B2 (en) * 2012-03-21 2014-05-06 Dell Products L.P. Memory controller-independent memory sparing

Also Published As

Publication number Publication date
JP2015036944A (ja) 2015-02-23
US20150052396A1 (en) 2015-02-19

Similar Documents

Publication Publication Date Title
JP5021190B2 (ja) 高速再起動を伴うメモリダンプ生成
CN100426238C (zh) Vex-虚拟扩展框架
JP6399916B2 (ja) 情報処理装置およびその制御方法
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
JP2010061230A (ja) 情報処理装置及び情報処理方法
JP2012190267A (ja) 移行プログラム、情報処理装置、及び移行方法
JP5578811B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2009134565A (ja) 仮想計算機システム及び仮想計算機システムの制御方法
JP6090057B2 (ja) 状態情報記録装置及びプログラム
JP6677021B2 (ja) 情報処理装置、情報処理方法、プログラム
US10983818B2 (en) Method and system for preventing execution of a dirty virtual machine on an undesirable host server in a virtualization cluster environment
JP5452336B2 (ja) 周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラム
JP5557612B2 (ja) 計算機及び転送プログラム
JP2015215684A (ja) 情報処理装置及び情報処理プログラム
JP7139926B2 (ja) 電子デバイス、異常検知方法およびプログラム
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
JP2011138401A (ja) プロセッサシステム、プロセッサシステムの制御方法、及び制御回路
JP2009181373A (ja) ネットワーク受信履歴の保存・再生方法及び情報処理装置
TW201502846A (zh) 安全事件偵測技術
JP7107188B2 (ja) 情報処理装置、画像形成装置およびプログラム
JPWO2014118940A1 (ja) 計算機装置及び計算機装置の制御方法
JP6007532B2 (ja) 仮想化システム、仮想化サーバ、マイグレーション方法、マイグレーションプログラム
TW201317781A (zh) 虛擬機器記憶體的分享方法與電腦系統
JP5262652B2 (ja) 画像処理装置
JP2009010756A (ja) 画像処理装置、自己診断方法、自己診断プログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160817

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: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170123

R150 Certificate of patent or registration of utility model

Ref document number: 6090057

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees