(57)【要約】【課題】  アプリケーションプログラムを保持するメモリと、プロセッサで実行するプログラムを格納するメモリとを備え、実行するプログラムにエラーが生じたときに、プログラムごと取り替えてプログラムを実行する手法を備えた情報処理装置を提供する。【解決手段】  情報処理装置は、所定のプログラムを実行する機能を備えたプロセッサと、前記プロセッサで実行するためのアプリケーションプログラムを保存しておくプログラム保持用メモリと、前記プロセッサで実行するアプリケーションプログラムを前記プログラム保持用メモリから読み出してコピーするプログラム実行用メモリと、前記プロセッサが前記プログラム実行用メモリから所定のプログラムコードを読み出した時に、そのプログラムコードのエラーをチェックするコードエラーチェック機能手段と、を備えたことである。【選択図】  図１
2005234855.tif 000002
【特許請求の範囲】
【請求項１】
所定のプログラムを実行する機能を備えたプロセッサと、
前記プロセッサで実行するためのアプリケーションプログラムを保存しておくプログラム保持用メモリと、
前記プロセッサで実行するアプリケーションプログラムを前記プログラム保持用メモリから読み出してコピーするプログラム実行用メモリと、
前記プロセッサが前記プログラム実行用メモリから所定のプログラムコードを読み出した時に、そのプログラムコードのエラーをチェックするコードエラーチェック機能手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記コードエラーチェック機能手段は、前記プロセッサが前記プログラム実行用メモリからプログラムコードを読み出した時にエラーを検出した場合、前記プログラム保持用メモリから正しいプログラムコードを読み出してプログラムの実行を継続させると共に、エラーのあったプログラムを前記プログラム保持用メモリから読み出して前記プログラム実行用メモリに書き直す機能を備えたことを特徴とする請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、詳しくはアプリケーションプログラムをメモリ上において実行するような装置で、メモリのデータ化けによるアプリケーションプログラムの破壊を修復する機能を備えた情報処理装置に関する。
【背景技術】
【０００２】
従来技術における第１の例の情報処理装置として、図３に示すように、プロセッサ１１１とメモリ（ＲＡＭ）１１２のみで構成され、メモリ１１２内のアプリケーションプログラムをプロセッサ１１１が読み込んで実行するが、エラーチェック機能はない。
【０００３】
第２の例の情報処理装置は、図４に示すように、プロセッサ１１１とメモリ１１２の構成に加えて、アクセス単位ごとのエラーチェック機能を付加したもので、エラーチェック回路１１３とエラーチェックコード用メモリ１１４が追加される。
【０００４】
第３の例の情報処理装置は、図５に示すように、組み込みシステムなど、ＨＤＤなどの外部記憶を持たないシステムにおいて、外部電源ＯＦＦ状態でのプログラムの保存と高速動作を両立させるために、プログラム保持用にバッテリバックアップしやすい低速低消費電力のＳＲＡＭまたはフラッシュメモリやＲＯＭなどと、高速動作用に高速メモリ（ＲＡＭ）の２種のメモリを用意した例で、アクセス単位ごとのエラーチェック機能を高速メモリに付加してある。
【特許文献１】特開平２００２−７３４２７号公報（第３頁〜４頁  第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来技術で説明した第１の例の情報処理装置では、プロセッサはメモリ（ＲＡＭ）に格納されているアプリケーションプログラムのプログラムコードを読み出し実行する。このとき、ソフトエラー等でビット化けを起こし、正しくないプログラムコードがあっても検出できず、プロセッサは誤った動作をする可能性がある。
第２の例の情報処理装置では、エラーを検出できるようにはなるが、回路量が増大し、エラーチェックの分、プログラムの実行速度が落ちる、という問題がある。一般的なエラー検出方法としてはパリティチェックや１ビット訂正・２ビット検出のＥＣＣによるチェックが上げられるが、パリティでは１ビットエラーを奇数の個数のエラーしか検出できないし、検出しても修復できないのでプログラム実行は継続できない。ＥＣＣでも修正できるのは１ビットエラーの場合のみなので、２ビット以上のエラーがあった場合は、パリティと同様、プログラム実行の継続はできない。又、ＥＣＣの場合は回路量や実行速度への影響がパリティよりもかなり大きくなる。
【０００６】
又、上記第１及び第２の例の情報処理装置では、どちらも組み込みシステムなどで外部記憶を持たない場合は、電源ＯＦＦ時にプログラムを保持するため、メモリをバッテリバックアップするかフラッシュメモリやＲＯＭなどの不揮発性メモリを使用しなければならない。メモリをバッテリバックアップする場合は、バックアップ時の消費電流の少ない低消費電力のＳＲＡＭを使用するが、低消費電力のＳＲＡＭは低速なので動作速度が遅くなる、という問題があり、フラッシュメモリはプログラムの書き換えに時間がかかるし、動作速度も遅いという問題がある。又、ＲＯＭはプログラムの書き換えができない。
【０００７】
第３の例の情報処理装置では、上記の問題に対応するため、電源投入時に保持用メモリから動作用の高速メモリ（ＲＡＭ）にプログラムをコピーし、動作中は動作用のメモリからプログラムを読み込んで実行することにより動作の高速化を図る構成である。
エラーチェックに関しては、第２の例の情報処理装置と同様に、動作用メモリにアクセス単位でのエラーチェック機能がついており、保持用のメモリの内容に関しては、動作中には使用されないので、まとめてエラーチェックができるチェックサムなどエラーチェックを実施すれば十分である。
エラー検出時、プログラム実行の継続ができなくなるのは第２の例の情報処理装置と同様である。
【０００８】
従って、第３の例の情報処理装置のように、高速動作とプログラム保持のために、動作時にはアプリケーションプログラムが２面あるような組み込みシステムにおいて、動作用メモリ（ＲＡＭ）ＩＣ内部でのエラーのうち、ビット化けるものの、故障ではなく、書き直せば正常に戻るような、ソフトエラーが発生した場合に、最小限の速度の低下と追加回路の増大でエラーを修復してプログラム実行を継続できるようにすることに解決しなければならない課題を有する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本願発明の情報処理装置は、次に示す構成にしたことである。
（１）情報処理装置は、所定のプログラムを実行する機能を備えたプロセッサと、前記プロセッサで実行するためのアプリケーションプログラムを保存しておくプログラム保持用メモリと、前記プロセッサで実行するアプリケーションプログラムを前記プログラム保持用メモリから読み出してコピーするプログラム実行用メモリと、前記プロセッサが前記プログラム実行用メモリから所定のプログラムコードを読み出した時に、そのプログラムコードのエラーをチェックするコードエラーチェック機能手段と、を備えたことである。
（２）前記コードエラーチェック機能手段は、前記プロセッサが前記プログラム実行用メモリからプログラムコードを読み出した時にエラーを検出した場合、前記プログラム保持用メモリから正しいプログラムコードを読み出してプログラムの実行を継続させると共に、エラーのあったプログラムを前記プログラム保持用メモリから読み出して前記プログラム実行用メモリに書き直す機能を備えたことを特徴とする（１）に記載の情報処理装置。
【発明の効果】
【００１０】
本発明の情報処理装置は、パリティチェックなどの簡便なエラーチェックが使用できるので、通常動作時にエラーチェックによる動作速度の低下が少なくてすむ。
又、ＥＣＣなどによるエラーチェックでは、エラー訂正できるビット数に限界があるが、本発明ではビット訂正ではなく、正しいプログラムコードを書き直すので、修復するビット数に制限がない。
更に、ソフトエラーなど、書き直せば正しく機能するようなエラーが発生しても、正しいプログラムコードでプログラム実行を継続できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の情報処理装置の実施形態について、図面を用いて詳細に説明する。
【実施例１】
【００１２】
本発明の情報処理装置は、図１に示すように、所定のプログラムを実行するプロセッサ１１と、プロセッサ１１で実行するアプリケーションプログラムをバックアップしておく低速メモリまたはＲＯＭからなるプログラム保持用メモリ１２と、プロセッサ１１で実行するアプリケーションプログラムを格納する高速メモリからなるプログラム実行用メモリ（ＲＡＭ）１３と、プログラム保持用メモリ１２からプログラム実行用メモリ１３にアプリケーションプログラムをコピーする際、及びプロセッサ１１がプログラム実行用メモリ１３からプログラムを呼び出す際にプログラムのエラーをチェックするエラーチェック回路１４と、エラーチェック回路１４で検出したエラーチェックコードを格納する高速メモリのチェックコード用メモリ（ＲＡＭ）１５とから大略構成されている。
【００１３】
このような構成において、先ず、電源が入っていない時は、アプリケーションプログラムはプログラム保持用メモリ１２のみに格納されている。このプログラム保持用メモリ１２は、バッテリバックアップされているＲＡＭ、フラッシュメモリ、ＲＯＭなどの不揮発なメモリであれば何でもよい。
電源投入時、プロセッサ１１はチェックサムなどによりプログラム保持用メモリ１２の内容が正しいことを確認した後、プログラム保持用メモリ１２からプログラム実行用メモリ１３にアプリケーションプログラムをコピーする。
プログラム実行用メモリ１３は、高速動作可能なＲＡＭで形成されている。
このプログラム実行用メモリ１３に書き込む際には、エラーチェック回路１４で生成したチェックコードを同時にチェックコード用メモリ１５に書き込む。このエラーチェックコード用メモリ１５は、プログラム実行用メモリ１３と同じだけ高速動作が可能なＲＡＭである必要がある。
プログラム実行用メモリ１３にアプリケーションプログラムが格納されたら、プロセッサ１１はプログラム実行用メモリ１３からアプリケーションプログラムのプログラムコードを読み出し、実行する。
このとき、プログラム実行用メモリ１３からプログラムコードを読み出すと同時に、チェックコード用メモリ１５から対応するエラーチェックコードを読み出して、エラーチェック回路１４でエラーチェックを行い、プログラムコードが正しいことを確認する。
【００１４】
プログラムコードの読み出し時に、エラーチェック回路１４でエラーが検出された場合、エラーチェック回路１４はプログラム保持用メモリ１２から正しいプログラムコードを読み出し、プロセッサ１１に正しいプログラムコードを渡すと共に、エラーチェックコードを生成しなおして、正しいプログラムコードをプログラム実行用メモリ１３に、チェックコードをチェックコード用メモリ１５に書き直す。
このようにして、プログラムコードを読み出したときに、エラーであると診断されると、そのエラーが検出されたプログラムをプログラム保持用メモリ１２から読み出してプロセッサに渡すことでプログラムの実行を止めることなく継続できる。又、エラーが検出されたプログラムをプログラム実行用メモリ１３に書き直すことで、書き直せば正しく機能するようなエラーが発生しても、正しいプログラムコードでプログラム実行を継続できる。
【００１５】
同じアドレスで何回もエラーが検出される場合は、エラーチェック回路１４はメモリの故障と判断してプロセッサ１１にエラーを通知する。
プログラム保持用メモリ１２の内容は、必要に応じて動作中であっても別途プロセッサ１１が、サムチェックなどで内容が正しいことを確認しておく。
【実施例２】
【００１６】
次に、第２の実施例の情報処理装置について、図２を参照して説明する。
第２の実施例の情報処理装置は、エラーチエック回路はエラーコード生成とエラーチェックのみの機能としたもので、所定のプログラムを実行するプロセッサ１１と、プロセッサ１１で実行するアプリケーションプログラムをバックアップしておく低速メモリまたはＲＯＭからなるプログラム保持用メモリ１２と、プロセッサ１１で実行するアプリケーションプログラムを格納する高速メモリからなるプログラム実行用メモリ（ＲＡＭ）１３と、プロセッサ１１がプログラム実行用メモリ１３からプログラムを呼び出す際にプログラムのエラーをチェックするエラーチェック回路１４Ａと、エラーチェック回路１４Ａで検出したエラーチェックコードを格納する高速メモリのチェックコード用メモリ（ＲＡＭ）１５とから大略構成されている。
【００１７】
このような構成において、先ず、電源が入っていない時は、アプリケーションプログラムはプログラム保持用メモリ１２のみに格納されている。このプログラム保持用メモリ１２は、バッテリバックアップされているＲＡＭ、フラッシュメモリ、ＲＯＭなどの不揮発なメモリであれば何でもよい。
電源投入時、プロセッサ１１はチェックサムなどによりプログラム保持用メモリ１２の内容が正しいことを確認した後、プログラム保持用メモリ１２からプログラム実行用メモリ１３にアプリケーションプログラムをコピーする。
プログラム実行用メモリ１３は、高速動作可能なＲＡＭで形成されている。
このプログラム実行用メモリ１３に書き込む際には、エラーチェック回路１４で生成したチェックコードを同時にチェックコード用メモリ１５に書き込む。このエラーチェックコード用メモリ１５は、プログラム実行用メモリ１３と同じだけ高速動作が可能なＲＡＭである必要がある。
プログラム実行用メモリ１３にアプリケーションプログラムが格納されたら、プロセッサ１１はプログラム実行用メモリ１３からアプリケーションプログラムのプログラムコードを読み出し、実行する。
このとき、プログラム実行用メモリ１３からプログラムコードを読み出すと同時に、チェックコード用メモリ１５から対応するエラーチェックコードを読み出して、エラーチェック回路１４でエラーチェックを行い、プログラムコードが正しいことを確認する。
【００１８】
プログラムコードの読み出し時に、エラーチェック回路１４Ａでエラーが検出された場合、プロセッサ１１はプログラム保持用メモリ１２から正しいプログラムコードを読み出すと共に、エラーチェックコードを生成しなおして、正しいプログラムコードをプログラム実行用メモリ１３に、チェックコードをチェックコード用メモリ１５に書き直す。
このようにして、プログラムコードを読み出したときに、エラーであると診断されると、プロセッサ１１はそのエラーが検出されたプログラムをプログラム保持用メモリから読み出してプログラム実行用メモリに書き直すことで、書き直せば正しく機能するようなエラーが発生しても、正しいプログラムコードでプログラム実行を継続できる。
【産業上の利用可能性】
【００１９】
電源オフ時にはアプリケーションプログラムをプログラム保持用メモリに格納しておき、電源がオンされると、プログラム保持用メモリに格納されているアプリケーションプログラムをプログラム実行用メモリにコピーするようにし、このプログラム実行用メモリに蓄積されているプログラムを実行する。そして、実行したときに、エラーが生じたときには、そのプログラムをプログラム保持用メモリから読み出して継続させると共にそのプログラムをプログラム実行用メモリに書き直すことで、ソフトエラー等が発生しても、自動的に修復可能な情報処理装置を提供する。
【図面の簡単な説明】
【００２０】
【図１】本願発明の第１の実施例の情報処理装置のブロック図である
【図２】本願発明の第２の実施例の情報処理装置のブロック図である。
【図３】従来技術における第１の例の情報処理装置のブロック図である。
【図４】従来技術における第２の例の情報処理装置のブロック図である。
【図５】従来技術における第３の例の情報処理装置のブロック図である。
【符号の説明】
【００２１】
１１      プロセッサ
１２      プログラム保持用メモリ
１３      プログラム実行用メモリ
１４      エラーチェック回路
１４Ａ    エラーチェック回路
１５      チェックコード用メモリ。
【図１】
2005234855.tif 000003
【図２】
2005234855.tif 000004
【図３】
2005234855.tif 000005
【図４】
2005234855.tif 000006
【図５】
2005234855.tif 000007