(57)【要約】【課題】  データ処理システムに関してメモリエラーの発生時にエラー種別に応じて適切な処置を施す技術を提供する。【解決手段】  処理部（１１ａ）は、エラー検出部（１１ｄ）のメモリエラーの検出に伴って、今回の処理対象データに関するデータ処理を中断して例外処理を実行し、メモリエラーがメモリ部（２０）の第１領域で発生したと判定した場合、次回の処理対象データからデータ処理を再開する。処理部は、メモリエラーがメモリ部の第２領域で発生したと判定した場合、システム停止用処理またはシステム再起動用処理のいずれかを実行する。メモリ部の第１領域は、処理対象データの格納領域と、処理部のデータ処理の実行時に生成されるデータの格納領域とを含む。メモリ部の第２領域は、処理部により実行されるプログラムの格納領域と、処理部の例外処理の実行時に生成されるデータの格納領域とを含む。【選択図】    図２
2009223506.tif 000002
【特許請求の範囲】
【請求項１】
処理対象データを第１装置から取得してデータ処理を順次実行し、処理結果データを第２装置に順次供給するデータ処理システムであって、
処理対象データ毎にデータ処理を実行して処理結果データを生成する処理部と、
前記処理部により使用されるデータおよび前記処理部により生成されるデータを格納するメモリ部と、
前記メモリ部におけるメモリエラーの発生を検出するエラー検出部とを備え、
前記処理部は、前記エラー検出部のメモリエラーの検出に伴って、今回の処理対象データに関するデータ処理を中断して例外処理を実行し、前記メモリエラーが前記メモリ部の第１領域で発生したと判定した場合、次回の処理対象データからデータ処理を再開することを特徴とするデータ処理システム。
【請求項２】
請求項１に記載のデータ処理システムにおいて、
前記処理部は、メモリエラーが前記メモリ部の第２領域で発生したと判定した場合、システム停止用処理またはシステム再起動用処理のいずれかを実行することを特徴とするデータ処理システム。
【請求項３】
請求項２に記載のデータ処理システムにおいて、
前記メモリ部の第１領域は、前記処理対象データを格納するための領域と、前記処理部のデータ処理の実行時に生成されるデータを格納するための領域とを含み、
前記メモリ部の第２領域は、前記処理部により実行されるプログラムを格納するための領域と、前記処理部の例外処理の実行時に生成されるデータを格納するための領域とを含むことを特徴とするデータ処理システム。
【請求項４】
請求項１〜３のいずれか１項に記載のデータ処理システムにおいて、
前記処理部は、前記メモリエラーが前記メモリ部の前記第１領域で発生したと判定した場合、今回の処理結果データを出力することなく、前回の処理結果データの使用を前記第２装置に指示することを特徴とするデータ処理システム。
【請求項５】
請求項１〜４のいずれか１項に記載のデータ処理システムにおいて、
前記処理部は、前記メモリエラーが前記メモリ部の第１領域で発生したと判定した回数が所定回数に到達した場合、システム停止用処理またはシステム再起動用処理のいずれかを実行することを特徴とするデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関し、特に、自動車や監視カメラ等に組み込まれる画像認識システムのように、高信頼性、高可用性および低コスト性が要求されるデータ処理システムに関する。
【背景技術】
【０００２】
サーバシステム等のように、高信頼性が要求されるデータ処理システム（プロセッサシステム）においては、通常、メモリ系における障害の発生に起因してシステムが誤動作することを回避するために、ＥＣＣ（Error Correcting Code）やパリティ等を用いてメモリエラーを検出する機構が設けられている。
【０００３】
データ処理システムに関しては、ＥＣＣメモリエラーが発生した場合に、制御権をＯＳ（Operating System）からＢＩＯＳ（Basic Input/Output System）に切り替え、回復可能な１ビットのメモリエラーであれば、メモリエラーのログ処理を実行させた後に制御権をＯＳに戻し、アプリケーションによるデータ処理を続行させ、回復不可能な２ビット以上のメモリエラーであれば、メモリエラーのログ処理を実行させた後に制御権をＯＳに戻し、アプリケーションによるデータ処理を中止させ、システムエラーの警告メッセージを発行させた後にシステム動作を停止させることによって、システムの高信頼性を実現する技術が知られている（例えば、特許文献１を参照）。
【０００４】
クラスタ構成のコンピュータシステムに関しては、現用系コンピュータで障害が発生した場合に、現用系コンピュータを停止させ、現用系コンピュータで実行されていたアプリケーションを予備系コンピュータに引き継がせることによって、システムの高可用性を実現する技術が知られている（例えば、特許文献２を参照）。
【０００５】
また、符号化（エンコード）した動画像データを伝送して復号化（デコード）する動画像処理システムに関しては、フレーム間処理に使うフレームを複数にするデータ構造を持たせ、符号誤りが検出されたブロックの情報を使わずに別のフレームの情報を使うことによって、画質の劣化を抑える技術が知られている（例えば、特許文献３を参照）。
【特許文献１】特開２００２−７３４２７号公報
【特許文献２】特開２００６−１１９９２号公報
【特許文献３】特開平５−１３７１３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
自動車や監視カメラ等で使用されるデータ処理システム（プロセッサシステム）については、安全性の観点から高信頼性の要求が非常に強い。このため、メモリ系にＥＣＣ機能やパリティ機能を設けて、ノイズ等に起因する一時的なメモリエラーおよび物理的な故障等に起因する恒久的なメモリエラーを検出可能にすることによって、高信頼性を確保することが要求される。
【０００７】
一方、例えば、自動車に搭載される安全運転支援用の画像認識システムや監視カメラに内蔵される画像認識システムにおいては、処理すべき画像データが定期的かつ連続的にイメージセンサ（カメラ等）から順次供給されるため、画像データが格納されるメモリ領域や画像認識処理の実行中に一時的に使用されるメモリ領域で放射線やノイズ等による一時的なメモリエラー（ソフトエラー）が発生したとしても、画像認識処理を一時中断し、次の画像データから画像認識処理を再開すれば、画像認識処理を正常に継続できる場合が多い。従って、一時的なメモリエラーが発生した場合にシステムを停止させるあるいはシステムを再起動させることは、過剰な処置であり、システムの可用性を阻害することになる。また、現用系プロセッサで故障が発生した場合に現用系プロセッサで実行されていた処理を予備系プロセッサに引き継がせるようなシステム構成を採用することは、システムのコストや設置面積の増大に繋がる。
【０００８】
但し、自動車や監視カメラ等で使用されるデータ処理システムでは、安全性の観点から、障害を抱えたままシステムが動作することを避ける必要があるため、システムにとって致命的なメモリエラーや物理的な故障等による恒久的なメモリエラーが発生した場合には、システムの停止や再起動等の必要な処置を取らなければならない。従って、この種のデータ処理システムにおいては、可用性の観点からシステムの停止や再起動等の過剰な処置を回避する必要がある一方で、致命的なメモリエラーや恒久的なメモリエラーを高い確率で検出して高信頼性を確保する必要がある。
【０００９】
本発明の目的は、データ処理システムに関してメモリエラーの発生時にエラー種別に応じて適切な処置を施す技術を提供することにある。
【課題を解決するための手段】
【００１０】
データ処理システムは、処理対象データを第１装置から取得してデータ処理を順次実行し、処理結果データを第２装置に順次供給するデータ処理システムであって、処理対象データ毎にデータ処理を実行して処理結果データを生成する処理部と、処理部により使用されるデータおよび処理部により生成されるデータを格納するメモリ部と、メモリ部におけるメモリエラーの発生を検出するエラー検出部とを備える。
【００１１】
処理部は、エラー検出部のメモリエラーの検出に伴って、今回の処理対象データに関するデータ処理を中断して例外処理を実行し、メモリエラーがメモリ部の第１領域で発生したと判定した場合、次回の処理対象データからデータ処理を再開する。処理部は、メモリエラーがメモリ部の第２領域で発生したと判定した場合、システム停止用処理またはシステム再起動用処理のいずれかを実行する。メモリ部の第１領域は、処理対象データを格納するための領域と、処理部のデータ処理の実行時に生成されるデータを格納するための領域とを含む。メモリ部の第２領域は、処理部により実行されるプログラムを格納するための領域と、処理部の例外処理の実行時に生成されるデータを格納するための領域とを含む。
【００１２】
また、処理部は、メモリエラーがメモリ部の第１領域で発生したと判定した場合、今回の処理結果データを出力することなく、前回の処理結果データの使用を第２装置に指示する。更に、処理部は、メモリエラーがメモリ部の第１領域で発生したと判定した回数が所定回数に到達した場合、システム停止用処理またはシステム再起動用処理のいずれかを実行する。
【発明の効果】
【００１３】
処理対象データを第１装置から取得してデータ処理を順次実行し、処理結果データを第２装置に順次供給するデータ処理システムに関して、メモリエラーの発生時にエラー種別に応じて適切な処置を施すことが可能になる。
【発明を実施するための最良の形態】
【００１４】
以下、実施形態について図面を用いて説明する。
【００１５】
図１は、本発明の一実施形態を示している。画像認識システム１は、自動車に搭載される画像認識システムや画像認識機能付き監視カメラに内蔵される画像認識システムに相当する。画像認識システム１は、画像データをビデオカメラ２から取得して画像認識処理を順次実行し、画像認識処理により得られる制御データを制御対象機器３に順次供給するものであり、プロセッサ１０、メインメモリ２０およびブートＲＯＭ（Read Only Memory）３０を備えている。
【００１６】
ここで、制御データとは、例えば、画像認識システム１が自動車のプリクラッシュセーフティシステム向けの画像認識システムである場合には、自車両と前方車両との関係を示すデータ（距離データ、方位データや相対接近速度データ等）であり、画像認識システム１が自動車のレーンキープアシストシステム向け画像認識システムである場合には、自車両と道路中央を示す白線や道路端を示す白線との関係を示すデータ（距離データや接近率データ等）であり、画像認識システム１がナイトビジョンシステム向け画像認識システムである場合には、認識した人物に関するデータ（位置データ等）である。
【００１７】
プロセッサ１０は、プロセッサコア１１、命令キャッシュ１２、データキャッシュ１３、ＤＭＡＣ（Direct Memory Access Controller）１４、メモリコントローラ１５および入出力インタフェース（入出力ＩＦ）１６，１７を備えている。プロセッサコア１１は、メインメモリ２０に格納されたプログラムに従って画像認識処理を実行するＣＰＵ（Central Processing Unit）に加えて、メインメモリ２０に書き込まれるデータにＥＣＣを付加し、メインメモリ２０から読み出されるＥＣＣ付きデータを用いてメインメモリ２０におけるメモリエラーの発生を検出する機構を備えている。命令キャッシュ１２は、メインメモリ２０内のプログラムのコピーを格納するためのキャッシュメモリである。データキャッシュ１３は、メインメモリ２０内のデータのコピーを格納するためのキャッシュメモリである。ＤＭＡＣ１４は、複数のチャネルを有しており、ビデオカメラ２からメインメモリ２０への画像データの転送やメインメモリ２０から制御対象機器３への制御データの転送に使用される。メモリコントローラ１５は、プロセッサ１０とメインメモリ２０やブートＲＯＭ３０との間のデータ転送を制御する。入出力インタフェース１６は、プロセッサ１０とビデオカメラ２との間のデータ転送を制御する。入出力インタフェース１７は、プロセッサ１０と制御対象機器３との間のデータ転送を制御する。
【００１８】
メインメモリ２０は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）により具現されており、プロセッサコア１１により実行されるプログラム、ビデオカメラ２から供給される画像データやプロセッサコア１１の画像認識処理により生成されるデータ（制御データを含む）等を格納するためのメモリである。ブートＲＯＭ３０は、プロセッサコア１１により実行されるプログラムが予め格納されたメモリである。ブートＲＯＭ３０内のプログラムは、プロセッサ１０の起動時にメインメモリ２０に転送される。
【００１９】
なお、本実施形態では、画像認識処理の全てがプロセッサ１０により実行される例について説明するが、画像認識処理の一部がハードワイヤードロジックにより実行されるようにしてもよい。また、本実施形態では、プロセッサ１０に外部接続されたメインメモリ２０が画像認識処理で使用される例について説明するが、プロセッサに内蔵されたメモリが画像認識処理で使用されるようにしてもよい。更に、本実施形態では、メインメモリ２０におけるメモリエラーの発生を検出する機構がＥＣＣを利用して実現される例について説明するが、メインメモリ２０におけるメモリエラーの発生を検出する機構がＥＣＣ以外の技術（例えば、パリティ）を利用して実現されるようにしてもよい。
【００２０】
図２は、画像認識システムの詳細を示している。なお、図２におけるＣＰＵ１１ａ、セレクタ１１ｂ、ＥＣＣ生成回路１１ｃおよびＥＣＣエラー検出訂正回路１１ｄは、図１におけるプロセッサコア１１に含まれる回路である。
【００２１】
画像認識システム１においては、ＤＭＡＣ１４（チャネル０）は、所定のフレームレート（例えば、３０ｆｐｓ）に従ってビデオカメラ２からメインメモリ２０への画像データ（フレーム）の転送を実施する。この際、ＤＭＡＣ１４からセレクタ１１ｂを介してＥＣＣ生成回路１１ｃに画像データが供給され、ＥＣＣ生成回路１１ｃにより画像データにＥＣＣが付加された後、ＥＣＣ付き画像データがメモリコントローラ１５を介してメインメモリ２０に書き込まれる。ＣＰＵ１１ａは、メモリコントローラ１５を介してメインメモリ２０から画像データを読み出して画像認識処理を実行する。なお、画像認識システム１では、メインメモリ２０内に画像データを格納するための画像バッファ領域が２つ設けられており、メインメモリ２０における一方の画像バッファ領域に格納された画像データを用いて画像認識処理が実行され、これに並行して、ビデオカメラ２からメインメモリ２０における他方の画像バッファ領域への画像データの転送が実施される（ダブルバッファ方式）。
【００２２】
ＣＰＵ１１ａの画像認識処理の実行時には、メインメモリ２０における一部の領域がワーク領域として使用され、ワーク領域に対するデータ書き込みおよびデータ読み出しを繰り返しながら各種処理が実行される。ＣＰＵ１１ａのメインメモリ２０に対するデータ書き込みの際には、ＣＰＵ１１ａからセレクタ１１ｂを介してＥＣＣ生成回路１１ｃにデータが供給され、ＥＣＣ生成回路１１ｃによりデータにＥＣＣが付加された後、ＥＣＣ付きデータがメモリコントローラ１５を介してメインメモリ２０に書き込まれる。ＣＰＵ１１ａのメインメモリ２０に対するデータ読み出しの際には、メインメモリ２０からメモリコントローラ１５を介してＥＣＣエラー検出訂正回路１１ｄにデータが供給され、ＥＣＣエラー検出訂正回路１１ｄによりメインメモリ２０におけるメモリエラー（ビット反転等）の有無が検査される。
【００２３】
ＥＣＣエラー検出訂正回路１１ｄは、メモリエラーが検出されなかった場合には、エラー訂正を施すことなくデータ（ＥＣＣなし）を出力する。また、ＥＣＣエラー検出訂正回路１１ｄは、１ビットのメモリエラー（訂正可能なメモリエラー）が検出された場合には、エラー訂正を施してデータ（ＥＣＣなし）を出力する。ＥＣＣエラー検出訂正回路１１ｄは、２ビット以上のメモリエラー（訂正不可能なメモリエラー）が検出された場合には、アクセス先アドレスをエラーアドレスレジスタ（ＥＡＲ）１１ｅに格納するとともに、ＣＰＵ１１ａに対してメモリエラー検出信号１１ｆを出力する。
【００２４】
ＣＰＵ１１ａは、画像認識処理の実行中にメモリエラー検出信号１１ｆを受信した場合、画像認識処理を中断して例外処理を実行する。例外処理の詳細については後述するが、ＣＰＵ１１ａは、例外処理において、ＥＣＣエラー検出訂正回路１１ｄのエラーアドレスレジスタ１１ｅに格納されているアドレスを読み出してプロセッサ１０のアドレス空間マップと比較し、比較結果からシステムの機能回復の可能／不可能を判断してメモリエラーに対する処置を決定する。なお、ＣＰＵ１１ａは、画像認識処理の実行中にメモリエラー検出信号１１ｆを受信しなかった場合、処理対象の画像データに関する画像認識処理が完了した時点で、ＤＭＡＣ１４（チャネル１）にメインメモリ２０から制御対象機器３への制御データの転送を実施させる。
【００２５】
図３は、プロセッサのアドレス空間マップを示している。図４は、メインメモリ領域の詳細を示している。プロセッサ１０においては、例えば、メインメモリ領域（メインメモリ２０を示す領域）として「０ｘ００００＿００００」から「０ｘ０ＦＦＦ＿ＦＦＦＦ」までのアドレスが割り当てられ、Ｉ／Ｏ領域（プロセッサ１０の内部レジスタを示す領域や外部データ入出力に用いるための領域）として「０ｘ１４００＿００００」から「０ｘ１７ＦＦ＿ＦＦＦＦ」までのアドレスが割り当てられ、ブートＲＯＭ領域（ブートＲＯＭ３０を示す領域）として「０ｘ１Ｅ００＿００００」から「０ｘ１ＦＦＦ＿ＦＦＦＦ」までのアドレスが割り当てられている。
【００２６】
メインメモリ領域ＭＭは、ＣＰＵ１１ａにより実行されるプログラムを格納するためのプログラム領域ＰＲＯＧと、ＣＰＵ１１ａの例外処理の実行時に生成されるデータを格納するための例外処理用データ領域ＥＸＤＴと、ビデオカメラ２から供給される画像データおよびＣＰＵ１１ａの画像認識処理の実行時に生成されるデータ（制御データを含む）を格納するための通常処理用データ領域ＮＭＤＴとに分けられている。なお、通常処理用データ領域ＮＭＤＴは、画像データを格納するための画像バッファ領域ＢＵＦ０，ＢＵＦ１と、ＣＰＵ１１ａの画像認識処理の実行時に生成されるデータを格納するためのワーク領域ＷＯＲＫとに分けられている。
【００２７】
プロセッサ１０においては、例えば、プログラム領域として「０ｘ００００＿００００」から「０ｘ０１ＦＦ＿ＦＦＦＦ」までのアドレスが割り当てられ、例外処理用データ領域として「０ｘ０２００＿００００」から「０ｘ０３ＦＦ＿ＦＦＦＦ」までのアドレスが割り当てられ、通常処理用データ領域として「０ｘ０４００＿００００」から「０ｘ０ＦＦＦ＿ＦＦＦＦ」までのアドレスが割り当てられている。
【００２８】
従って、ＣＰＵ１１ａは、メモリエラー検出信号１１ｆを受信した際に、ＥＣＣエラー検出訂正回路１１ｄのエラーアドレスレジスタ１１ｅに格納されているアドレスを読み出してプロセッサ１０のアドレス空間マップと比較することで、メインメモリ２０におけるメモリエラーが発生した領域を特定することが可能である。または、あらかじめ、通常処理用データ領域ＮＭＤＴの領域範囲をＥＣＣエラー検出訂正回路１１ｄの内部レジスタに設定し、ＥＣＣエラー検出訂正回路１１ｄ内でエラーアドレスレジスタ１１ｅの値と比較することによって、どの領域でのメモリエラーであるかを判定した後に、判定結果をＣＰＵ１１ａに送信するような構成にしてもよい。
【００２９】
図５は、画像認識システムの動作（メモリエラー検出なし）を示している。画像認識システム１においては、所定のフレームレート（例えば、３０ｆｐｓ）に従ってＤＭＡＣ１４により各フレーム（画像データ）がメインメモリ２０に順次格納される。メインメモリ２０には画像バッファ領域ＢＵＦ０，ＢＵＦ１が設けられており、所定のフレームレートにより規定される時間間隔Ｔ０〜Ｔ７（例えば、３３．３ｍｓ）毎にフレームＦ０〜Ｆ７が画像バッファ領域ＢＵＦ０，ＢＵＦ１に交互に格納される。即ち、メインメモリ２０の画像バッファ領域ＢＵＦ０，ＢＵＦ１は、２フレーム毎にデータが上書きされることになる。また、所定のフレームレートに従ってＣＰＵ１１ａにより画像認識処理が実行される。即ち、時間間隔Ｔ１〜Ｔ７の各々でフレームＦ０〜Ｆ６に関する画像認識処理Ｐ０〜Ｐ６がそれぞれ実行される。従って、例えば、時間間隔Ｔ２においては、フレームＦ２を画像バッファ領域ＢＵＦ０に格納する処理と、時間間隔Ｔ１で画像バッファ領域ＢＵＦ１に格納されたフレームＦ１に関する画像認識処理Ｐ１とが並行して実行される。
【００３０】
図６は、画像認識システムの動作（メモリエラー検出あり）を示している。例えば、時間間隔Ｔ３において、ＣＰＵ１１ａは、時間間隔Ｔ２でメインメモリ２０の画像バッファ領域ＢＵＦ０に格納されたフレームＦ２を読み出し、メインメモリ２０のワーク領域ＷＯＲＫを使用しながらフレームＦ２に関する画像認識処理Ｐ２を実行する。ＣＰＵ１１ａの画像認識処理Ｐ２の実行中に、ＣＰＵ１１ａのメインメモリ２０に対するデータ読み出しが実施されると、メインメモリ２０からメモリコントローラ１５を介してＥＣＣエラー検出訂正回路１１ｄにデータが供給され、ＥＣＣエラー検出訂正回路１１ｄによりメインメモリ２０におけるメモリエラーの有無が検査される。このとき、例えば、ＥＣＣエラー検出訂正回路１１ｄにより２ビット以上のメモリエラーが検出されると、ＥＣＣエラー検出訂正回路１１ｄは、アクセス先アドレスをエラーアドレスレジスタ１１ｅに格納するとともに、ＣＰＵ１１ａに対してメモリエラー検出信号１１ｆを出力する。このため、ＣＰＵ１１ａは、フレームＦ２に関する画像認識処理Ｐ２を中断して例外処理Ｐ２ａを実行する。
【００３１】
ＣＰＵ１１ａは、例外処理Ｐ２ａにおいて、ＥＣＣエラー検出訂正回路１１ｄのエラーアドレスレジスタ１１ｅに格納されているアドレスを読み出してプロセッサ１０のアドレス空間マップと比較することで、システムの機能回復が可能であるか否かを判断する。ＣＰＵ１１ａは、システムの機能回復が可能であると判断した場合には、システム機能回復用処理（フレームＦ３から画像認識処理を再開するための処理）を実行する。このとき、ＤＭＡＣ１４によるビデオカメラ２からメインメモリ２０の画像バッファ領域ＢＵＦ１へのフレームＦ３の転送は継続して実施される。そして、時間間隔Ｔ４において、ＣＰＵ１１ａは、時間間隔Ｔ３でメインメモリ２０の画像バッファ領域ＢＵＦ１に格納されたフレームＦ３に関する画像認識処理Ｐ３を再開する。画像認識処理の再開に要する時間は、フレームレートに依存し、例えば、フレームレートが３０ｆｐｓである場合には３３．３ｍｓであり、フレームレートが１０ｆｐｓである場合には１００ｍｓである。
【００３２】
図７は、ＣＰＵの動作フローを示している。ＣＰＵ１１ａは、画像認識処理の実行中にメモリエラー検出信号１１ｆを受信した場合、以下のように動作する。
【００３３】
ステップＳ１において、ＣＰＵ１１ａは、今回の画像データに関する画像認識処理を停止して例外処理を開始する。この後、ＣＰＵ１１ａの動作はステップＳ２に移行する。
【００３４】
ステップＳ２において、ＣＰＵ１１ａは、ＥＣＣエラー検出訂正回路１１ｄのエラーアドレスレジスタ１１ｅに格納されているアドレスを読み出してプロセッサ１０のアドレス空間マップと比較し、メモリエラーが通常処理用データ領域で発生したか否かを判定する。メモリエラーが通常処理用データ領域で発生したと判定された場合、ＣＰＵ１１ａの動作はステップＳ３に移行する。一方、メモリエラーが通常処理用データ領域以外（即ち、プログラム領域または例外処理用データ領域）で発生したと判定された場合、システムの機能回復が不可能であると判断され、ＣＰＵ１１ａの動作はステップＳ１０に移行する。メモリエラーがプログラム領域で発生したと判定された場合には、メインメモリ２０に格納されているプログラム自体に異常があってシステムの誤動作やハングアップ等が生じる恐れがあり、メモリエラーが例外処理用データ領域で発生したと判定された場合には、例外処理が正常に実行されない恐れがあるため、システムにとって致命的なメモリエラーが発生したものとして、システムの機能回復が不可能であると判断される。
【００３５】
ステップＳ３において、ＣＰＵ１１ａは、メモリエラー回数（メモリエラーが通常処理用データ領域で発生したと判定した回数）をインクリメントする。この後、ＣＰＵ１１ａの動作はステップＳ４に移行する。
【００３６】
ステップＳ４において、ＣＰＵ１１ａは、メモリエラー回数が閾値より小さいか否かを判定する。メモリエラー回数が閾値より小さいと判定された場合、システムの機能回復が可能であると判断され、ＣＰＵ１１ａの動作はステップＳ５に移行する。一方、メモリエラー回数が閾値以上であると判定された場合、システムの機能回復が不可能であると判断され、ＣＰＵ１１ａの動作はステップＳ１０に移行する。メモリエラー回数が閾値以上であると判定された場合には、ノイズ等に起因する一時的なメモリエラーではなく、物理的な故障等に起因する恒久的なメモリエラーが発生したものとして、システムの機能回復が不可能であると判断される。
【００３７】
ステップＳ５において、ＣＰＵ１１ａは、画像認識処理を初期状態から再度実行するために、画像認識処理で使用される各種パラメータの初期化等を実施する。この後、ＣＰＵ１１ａの動作はステップＳ６に移行する。
【００３８】
ステップＳ６において、ＣＰＵ１１ａは、画像認識処理で使用される画像バッファ領域を切り替える。この後、ＣＰＵ１１ａの動作はステップＳ７に移行する。
【００３９】
ステップＳ７において、ＣＰＵ１１ａは、例えば、入出力インタフェース１７から制御対象機器３に供給される信号を利用して、制御対象機器３に前回の制御データの使用を指示する。この後、ＣＰＵ１１ａの動作はステップＳ８に移行する。
【００４０】
ステップＳ８において、ＣＰＵ１１ａは、ＤＭＡＣ１４によるビデオカメラ２からメインメモリ２０の画像バッファ領域への次回の画像データの転送が完了するまで待機する。ビデオカメラ２からメインメモリ２０の画像バッファ領域への次回の画像データの転送が完了すると、ＣＰＵ１１ａの動作はステップＳ９に移行する。
【００４１】
ステップＳ９において、ＣＰＵ１１ａは、例外処理を終了して画像認識処理を再開する。
【００４２】
ステップＳ１０において、ＣＰＵ１１ａは、ＤＭＡＣ１４によるビデオカメラ２からメインメモリ２０への次回の画像データの転送を停止させる。この後、ＣＰＵ１１ａの動作はステップＳ１１に移行する。
【００４３】
ステップＳ１１において、ＣＰＵ１１ａは、システム停止用処理またはリブート処理（システム再起動用処理）のいずれかを実行する。
【００４４】
以上のような本発明の一実施形態では、放射線やノイズ等に起因する一時的なメモリエラー（ソフトエラー）に関しては、次回の画像データから画像認識処理を再開させることで、システムを継続的に動作させることができ、システムの誤動作を引き起こすような致命的なメモリエラーや物理的な故障等に起因する恒久的なメモリエラーに関しては、システムの停止や再起動等の必要な処置を施すことで、高信頼性を確保することができる。これにより、システム動作の継続性の確保とシステムの誤動作の回避とを両立させることが可能になる。また、現用系プロセッサで故障が発生した場合に現用系プロセッサで実行されていた処理を予備系プロセッサに引き継がせるようなシステム構成を採用した場合に比べて、システムのコストや設置面積の増大を招くことなく、短い遅延時間で処理を継続させることができる。
【００４５】
メインメモリのプログラム領域でのメモリエラーが検出された場合に、システムの機能回復が不可能であると判断されることで、メインメモリ内のプログラムの異常に起因してシステムが誤動作することを回避できる。また、メインメモリの例外処理用データ領域でのメモリエラーが検出された場合に、システムの機能回復が不可能であると判断されることで、システムが誤動作する可能性を更に減らすことができる。更に、メインメモリの通常処理用データ領域でのメモリエラーが複数回検出された場合に、システムの機能回復が不可能であると判断されることで、物理的な故障等を抱えた状態でシステムが動作し続けることを回避できる。
【００４６】
以上、本発明について詳細に説明してきたが、前述の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態を示す図である。
【図２】画像認識システムの詳細を示す図である。
【図３】プロセッサのアドレス空間マップを示す図である。
【図４】メインメモリ領域の詳細を示す図である。
【図５】画像認識システムの動作（メモリエラー検出なし）を示す図である。
【図６】画像認識システムの動作（メモリエラー検出あり）を示す図である。
【図７】ＣＰＵの動作フローを示す図である。
【符号の説明】
【００４８】
１‥画像認識システム；２‥ビデオカメラ；３‥制御対象機器；１０‥プロセッサ；１１‥プロセッサコア；１１ａ‥ＣＰＵ；１１ｂ‥セレクタ；１１ｃ‥ＥＣＣ生成回路；１１ｄ‥ＥＣＣエラー検出訂正回路；１１ｅ‥エラーアドレスレジスタ；１１ｆ‥メモリエラー検出信号；１２‥命令キャッシュ；１３‥データキャッシュ；１４‥ＤＭＡＣ；１５‥メモリコントローラ；１６，１７‥入出力インタフェース；２０‥メインメモリ；３０‥ブートＲＯＭ
【図１】
2009223506.tif 000003
【図２】
2009223506.tif 000004
【図３】
2009223506.tif 000005
【図４】
2009223506.tif 000006
【図５】
2009223506.tif 000007
【図６】
2009223506.tif 000008
【図７】
2009223506.tif 000009