(57)【要約】【課題】処理装置が実行するプログラムに異常が生じた場合でも予備のプログラムに切り替えて実行可能であり、処理装置の複数化においてもシステムの小型化が可能な処理システム及び処理装置が実行するプログラムの実行方法を提供する。【解決手段】本発明に係る処理システムは、複数個の処理装置と、複数の不揮発性記憶デバイスと、前記複数の不揮発性記憶デバイスの切り替えを行う切替回路部とを有し、前記複数の不揮発性記憶デバイスは前記複数個の処理装置で共有して使用され、前記複数個の処理装置の各々のプログラムが前記複数の不揮発性記憶デバイスのそれぞれに格納されており、前記複数個の処理装置の各々は、前記複数の不揮発性記憶デバイスの１つを選択し、該選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定し、異常があると判定した場合に前記切替回路部により前記複数の不揮発性記憶デバイスの切り替えを行って他の不揮発性記憶デバイスを選択することを特徴とする。【選択図】図１
2011008552.tif 000002
【特許請求の範囲】
【請求項１】
複数個の処理装置と、
複数の不揮発性記憶デバイスと、
前記複数の不揮発性記憶デバイスの切り替えを行う切替回路部とを有し、
前記複数の不揮発性記憶デバイスは前記複数個の処理装置で共有して使用され、
前記複数個の処理装置の各々のプログラムが前記複数の不揮発性記憶デバイスのそれぞれに格納されており、
前記複数個の処理装置の各々は、前記複数の不揮発性記憶デバイスの１つを選択し、該選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定し、異常があると判定した場合に前記切替回路部により前記複数の不揮発性記憶デバイスの切り替えを行って他の不揮発性記憶デバイスを選択することを特徴とする処理システム。
【請求項２】
請求項１に記載の処理システムにおいて、
前記複数のプログラムの各々は自身のチェックサム値を予め記憶しており、
前記複数個の処理装置の各々は読み込んだ前記プログラムのチェックサム値と予め記憶された前記自身のチェックサム値とを前記プログラムの実行前に比較することによって前記選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定することを特徴とする処理システム。
【請求項３】
請求項１又は請求項２に記載の処理システムにおいて、
前記複数個の処理装置の各々と前記切替回路部との間は完了信号線が接続されており、
前記複数個の処理装置の各々は前記選択された不揮発性記憶デバイスに格納されたプログラムが正常に実行された際に前記完了信号線を介して前記切替回路部に完了信号を通知することを特徴とする処理システム。
【請求項４】
請求項３に記載の処理システムにおいて、
前記複数個の処理装置の各々は、所定時間内に前記完了信号を通知できなかった場合に前記切替回路部を介して前記複数の不揮発性記憶デバイスの切り替えを行い他の不揮発性記憶デバイスを選択することを特徴とする処理システム。
【請求項５】
請求項３又は請求項４に記載の処理システムにおいて、
前記切替回路部と外部回路との間は異常信号線が接続されており、
前記切替回路部は前記完了信号が通知されなかった場合に前記異常信号線を介して前記外部回路に対し異常信号を通知することを特徴とする処理システム。
【請求項６】
処理装置が実行するプログラムの実行方法であって、
複数個の処理装置と、複数の不揮発性記憶デバイスと、前記複数の不揮発性記憶デバイスの切り替えを行う切替回路部とを有し、
前記複数の不揮発性記憶デバイスは前記複数個の処理装置で共有して使用され、
前記複数個の処理装置の各々のプログラムが前記複数の不揮発性記憶デバイスのそれぞれに格納されており、
前記複数個の処理装置の各々が前記複数の不揮発性記憶デバイスの１つを選択し、該選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定する工程と、
前記選択された不揮発性記憶デバイスに格納されたプログラムに異常があると判定した場合に前記複数個の処理装置の各々が前記切替回路部により前記複数の不揮発性記憶デバイスの切り替えを行い他の不揮発性記憶デバイスを選択する工程とを有することを特徴とする処理装置が実行するプログラムの実行方法。
【請求項７】
請求項６に記載の処理装置が実行するプログラムの実行方法において、
前記複数のプログラムの各々は自身のチェックサム値を予め記憶しており、
前記選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定する工程は、前記プログラムの実行前に前記複数個の処理装置の各々が読み込んだ前記プログラムのチェックサム値と前記プログラムに予め記憶された前記自身のチェックサム値とを比較する工程であることを特徴とする処理装置が実行するプログラムの実行方法。
【請求項８】
請求項６又は請求項７に記載の処理装置が実行するプログラムの実行方法において、
前記複数個の処理装置の各々と前記切替回路部との間は完了信号線が接続されており、
前記選択された不揮発性記憶デバイスに格納されたプログラムが正常に実行された際に、前記複数個の処理装置の各々が前記完了信号線を介して前記切替回路部に完了信号を通知する工程を更に有することを特徴とする処理装置が実行するプログラムの実行方法。
【請求項９】
請求項８に記載の処理装置が実行するプログラムの実行方法において、
所定時間以内に前記完了信号を通知できなかった場合に、前記複数個の処理装置の各々が前記切替回路部により前記複数の不揮発性記憶デバイスの切り替えを行い他の不揮発性記憶デバイスを選択する工程を有することを特徴とする処理装置が実行するプログラムの実行方法。
【請求項１０】
請求項８又は請求項９に記載の処理装置が実行するプログラムの実行方法において、
前記切替回路部と外部回路との間は異常信号線が接続されており、
前記完了信号が通知されなかった場合に前記切替回路部が前記異常信号線を介して前記外部回路に対し異常信号を通知する工程を更に有することを特徴とする処理装置が実行するプログラムの実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個の処理装置を有する処理システム及び処理装置が実行するプログラムの実行方法に関し、特に複数個の処理装置を有する処理システムにおいて起動時等に実行するプログラムに異常が生じた場合でも予備のプログラムに切り替えて実行可能とする処理システム及び処理装置が実行するプログラムの実行方法に関する。
【背景技術】
【０００２】
従来から、中央演算処理装置（CPU）や微小演算処理装置（MPU）などの処理装置が組み込まれた処理システムにおいては、それら処理装置を制御するためのプログラムはROM（Read Only Memory）に格納されていることが多かった。そして電源投入時には該ROMからプログラムが起動（実行）されることにより、処理装置の動作が制御されていた。また、ROMに格納されたプログラムは、処理装置のブートアドレスとして記憶領域内の所定の箇所に固定されており、通常、一旦格納されたプログラムの記憶領域が変更されることはなかった。
【０００３】
このため、ROMに格納されたプログラムが破損した場合やプログラムの書き換えにエラーが生じた場合には、処理装置（ひいては処理システム全体）が正しく動作しなくなるトラブルが生じる。従来、そのような場合には、ROMを一旦取り外してROM自体を新しいものに交換するか、別装置を用いてプログラムを書き戻す必要があり手間が掛かっていた。また、ROMを取り外す際に、そのROM自体及びその周辺回路を破損してしまう危険性があるという問題があった。
【０００４】
上記のような手間や問題を解決するために、特許文献１（特開平10−21085号公報）では、ソフトウェアにより書き換えが可能な少なくとも２面の不揮発性記憶デバイスと、この少なくとも２面の不揮発性記憶デバイスの切り替えを行う不揮発性記憶デバイスセレクタと、複数のタスクを動作させることが可能なマルチタスクオペレーティングシステムと、このマルチタスクオペレーティングシステム上で１つのタスクとして動作し前記不揮発性記憶デバイスに書き込まれたブート処理プログラムを書き換えるブート処理プログラム書き換えプログラムと、前記少なくとも２面の不揮発性記憶デバイスにおけるブート処理プログラムの書換状態を保持するラッチ付きレジスタとを備え、運用中にブート処理プログラムを書き換え可能としたコンピュータシステムが提案されている。特許文献１によれば、ブート用の不揮発性記憶デバイスを２面持ち、片面ずつ書き込んでいくことができ、もし片面の不揮発性記憶デバイスの書換中に電源断等により不揮発性記憶デバイスの書き換えに失敗しても、もう片面には常に正常に動作するブート処理プログラムが書き込まれているため、ブート処理プログラムを安全に書き換えることができるとされている。
【０００５】
また、特許文献２（特開2000−293376号公報）では、中央処理装置と、この中央処理装置が実行する第１のブートプログラム、そのチェックサム及びそのタイムスタンプを記憶する第１のプログラム記憶手段と、前記中央処理装置が実行する第２のブートプログラム、そのチェックサム及びそのタイムスタンプを記憶する第２のプログラム記憶手段と、前記第１又は第２のブートプログラムのうち最もタイムスタンプが新しいブートプログラムのチェックサムが正常である場合に前記中央処理装置が実行するブートプログラムを切り替える切替手段とを有するブートプログラムの切替回路が提案されている。特許文献２によれば、プログラムデータに、破損又は書き損じがあっても起動が不可能になることを防止することができると共に、容易に正常な最新のブートプログラムを切り替えることができるとされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２１０８５号公報
【特許文献２】特開２０００−２９３３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年、処理システムが処理すべきデータ量は増加の一途をたどっており、それに対応すべく処理システムにおいても処理装置の複数化が進展している。また、処理システムに対する信頼性向上の要求から、冗長性の確保は必須の対応となりつつある。これらに対し、特許文献１に記載のコンピュータシステムや特許文献２に記載のブートプログラムの切替回路は、単一の処理装置の場合しか開示されておらず、単純に処理装置の複数化に適用した場合、処理装置の数に比例して記憶デバイスの数も増加してしまいシステム全体が肥大化するという問題が生じる。
【０００８】
すなわち、処理システムにおいて冗長性の確保を維持しつつ処理装置の複数化への対応と処理システムの小型化への対応を進めていくためには、これまで以上の対策が必要である。
【０００９】
従って、本発明の目的は、処理装置が実行するプログラムに異常が生じた場合でも予備のプログラムに切り替えて実行可能であり、処理装置の複数化においても小型化が可能な処理システム及び処理装置が実行するプログラムの実行方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を達成するため、複数個の処理装置と、複数の不揮発性記憶デバイスと、前記複数の不揮発性記憶デバイスの切り替えを行う切替回路部とを有し、前記複数の不揮発性記憶デバイスは前記複数個の処理装置で共有して使用され、前記複数個の処理装置の各々のプログラムが前記複数の不揮発性記憶デバイスのそれぞれに格納されており、前記複数個の処理装置の各々は、前記複数の不揮発性記憶デバイスの１つを選択し、該選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定し、異常があると判定した場合に前記切替回路部により前記複数の不揮発性記憶デバイスの切り替えを行って他の不揮発性記憶デバイスを選択することを特徴とする処理システムを提供する。
【００１１】
また、本発明は、上記目的を達成するため、上記の本発明に係る処理システムにおいて、以下のような改良や変更を加えることができる。
（１）前記複数のプログラムの各々は自身のチェックサム値を予め記憶しており、前記複数個の処理装置の各々は読み込んだ前記プログラムのチェックサム値と予め記憶された前記自身のチェックサム値とを前記プログラムの実行前に比較することによって前記選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定する。
（２）前記複数個の処理装置の各々と前記切替回路部との間は完了信号線が接続されており、前記複数個の処理装置の各々は前記選択された不揮発性記憶デバイスに格納されたプログラムが正常に実行された際に前記完了信号線を介して前記切替回路部に完了信号を通知する。
（３）前記複数個の処理装置の各々は、所定時間内に前記完了信号を通知できなかった場合に前記切替回路部を介して前記複数の不揮発性記憶デバイスの切り替えを行い他の不揮発性記憶デバイスを選択する。
（４）前記切替回路部と外部回路との間は異常信号線が接続されており、前記切替回路部は前記完了信号が通知されなかった場合に前記異常信号線を介して前記外部回路に対し異常信号を通知する。
【００１２】
また、本発明は、上記目的を達成するため、複数個の処理装置と、複数の不揮発性記憶デバイスと、前記複数の不揮発性記憶デバイスの切り替えを行う切替回路部とを有し、前記複数の不揮発性記憶デバイスは前記複数個の処理装置で共有して使用され、前記複数個の処理装置の各々のプログラムが前記複数の不揮発性記憶デバイスのそれぞれに格納されており、前記複数個の処理装置の各々が前記複数の不揮発性記憶デバイスの１つを選択し、該選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定する工程と、前記選択された不揮発性記憶デバイスに格納されたプログラムに異常があると判定した場合に前記複数個の処理装置の各々が前記切替回路部により前記複数の不揮発性記憶デバイスの切り替えを行い他の不揮発性記憶デバイスを選択する工程とを有することを特徴とする処理装置が実行するプログラムの実行方法を提供する。
【００１３】
また、本発明は、上記目的を達成するため、上記の本発明に係る処理装置が実行するプログラムの実行方法において、以下のような改良や変更を加えることができる。
（１）前記複数のプログラムの各々は自身のチェックサム値を予め記憶しており、前記選択された不揮発性記憶デバイスに格納されたプログラムの異常の有無を判定する工程は、前記プログラムの実行前に前記複数個の処理装置の各々が読み込んだ前記プログラムのチェックサム値と前記プログラムに予め記憶された前記自身のチェックサム値とを比較する工程である。
（２）前記複数個の処理装置の各々と前記切替回路部との間は完了信号線が接続されており、前記選択された不揮発性記憶デバイスに格納されたプログラムが正常に実行された際に、前記複数個の処理装置の各々が前記完了信号線を介して前記切替回路部に完了信号を通知する工程を更に有する。
（３）所定時間以内に前記完了信号を通知できなかった場合に、前記複数個の処理装置の各々が前記切替回路部を介して前記複数の不揮発性記憶デバイスの切り替えを行い他の不揮発性記憶デバイスを選択する工程を有する。
（４）前記切替回路部と外部回路との間は異常信号線が接続されており、前記完了信号が通知されなかった場合に前記切替回路部が前記異常信号線を介して前記外部回路に対し異常信号を通知する工程を更に有することを特徴とする処理装置が実行する。
【発明の効果】
【００１４】
本発明によれば、処理装置が実行するプログラムに異常が生じた場合でも予備のプログラムに切り替えて実行可能であり、処理装置の複数化においても小型化が可能な処理システム及び処理装置が実行するプログラムの実行方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る処理システムにおける回路例のブロック図である。
【図２】本発明の第１の実施形態に係る処理システムにおける不揮発性記憶デバイスの記憶領域の１例を示した模式図である。
【図３】本発明に係る処理システムの動作順の１例を示したフローチャートである。
【図４】本発明の第２の実施形態に係る処理システムにおける回路例のブロック図である。
【図５】本発明の第２の実施形態に係る処理システムにおける不揮発性記憶デバイスの記憶領域の１例を示した模式図である。
【発明を実施するための形態】
【００１６】
以下、図を参照しながら本発明に係る実施の形態を説明する。ただし、本発明はここで取り上げた実施の形態に限定されることはなく、適宜組み合わせてもよい。
【００１７】
〔本発明の第１の実施形態〕
図１は、本発明の第１の実施形態に係る処理システムにおける回路例のブロック図である。なお、図１においては複数個の処理装置として処理装置が２個、複数の不揮発性記憶デバイスとして２つの不揮発性記憶デバイスの場合を示す。本発明はこれらに限定されること無く、処理装置が３個以上であっても良いし、不揮発性記憶デバイスが３つ以上であっても良い。
【００１８】
本実施形態に係る処理システム100において、切替回路部13は、第１の処理装置（例えば、中央処理装置）11のアクセスセレクタ16とアドレスバス21を介して接続されており、第２の処理装置（例えば、副処理装置）12のアクセスセレクタ17とアドレスバス22を介して接続されている。アクセスセレクタ16，17は、それぞれアドレスバス21，22の切り替えを行う。また、切替回路部13は、不揮発性記憶デバイス14（第１の不揮発性記憶デバイス14aと第２の不揮発性記憶デバイス14bとを有する）と接続されており、切替回路部13の内部の記憶デバイスセレクタ15によって第１の不揮発性記憶デバイス14aと第２の不揮発性記憶デバイス14bを切り替えることができる。
【００１９】
切替回路部13と第１の処理装置11との間は完了信号線24を介して接続されており、切替回路部13と第２の処理装置12との間は完了信号線25を介して接続されており、切替回路部13と外部回路（図示せず）との間は異常信号線26を介して接続されている。第１の処理装置11及び第２の処理装置12の各々は、プログラムが正常に実行完了した際に、それぞれ完了信号線24，25を介して完了信号を切替回路部13に通知する。また、切替回路部13は、内部タイマ（図示せず）を有しており、所定の時間内に完了信号を受信しなかった場合に記憶デバイスセレクタ15によって第１の不揮発性記憶デバイス14aと第２の不揮発性記憶デバイス14bを切り替える。さらに、不揮発性記憶デバイスの面を切り替えた後の所定時間内に完了信号を受信しなかった場合、切替回路部13は異常信号線26を介して異常信号を外部回路に通知する。
【００２０】
第１の処理装置11と第２の処理装置12とは制御バス23を介して接続されており、アクセスセレクタ16，17を相互に監視・制御することができる。例えば、第２の処理装置12が不揮発性記憶デバイス14に格納されているプログラムを実行している間は、第１の処理装置11がその実行を妨げないようになっている。
【００２１】
本発明において、独立した複数のプログラムは複数の不揮発性記憶デバイス14の各々（図１では第１の不揮発性記憶デバイス14aと第２の不揮発性記憶デバイス14b）のそれぞれに格納されており、複数のプログラムの各々は自身のチェックサム値を予め記憶している。第１の処理装置11と第２の処理装置12の各々は、読み込んだプログラムのチェックサム値と予め記憶された該プログラムのチェックサム値とを該プログラムの実行前に比較することによって選択されたプログラムの異常の有無（健全性）を判定する。なお、１つのプログラムについて書き換え作業を実施した場合、他のプログラムのチェックサム値には影響を与えない構成になっている。
【００２２】
図２は、本発明の第１の実施形態に係る処理システムにおける不揮発性記憶デバイスの記憶領域の１例を示した模式図である。図２に示すように、本実施形態に係る処理システム100において、第１の不揮発性記憶デバイス14aには、第１の処理装置11が使用する第１の処理装置用（例えば、中央処理装置用）の第１のプログラム141aと第２の処理装置12が使用する第２の処理装置用（例えば、副処理装置用）の第１のプログラム142aとが格納されている。第２の不揮発性記憶デバイス14bには、第１の処理装置用の第２のプログラム141bと第２の処理装置用の第２のプログラム142bとが格納されている。第１の不揮発性記憶デバイス14aに格納された第１の処理装置用の第１のプログラム141a及び第２の処理装置用の第１のプログラム142aは、第２の不揮発性記憶デバイス14bに格納された第１の処理装置用の第２のプログラム141b及び第２の処理装置用の第２のプログラム142bと、それぞれ同一の内容である。
【００２３】
図３は、本発明に係る処理システムの動作順の１例を示したフローチャートである。以下、図３のフローチャートに沿って説明する。なお、図３のフローチャートにおいては、第１の処理装置（例えば、中央処理装置）11が正常に起動した後に、第１の処理装置11が第２の処理装置（例えば、副処理装置）12を制御し、第２の処理装置12がプログラムを選択し実行する場合を例示している。言い換えると、第１の処理装置11が下記の工程(ｊ)まで完了した後に、第２の処理装置12が下記の工程(ｃ)から実行する。
【００２４】
（a）電源投入
本発明に係る処理システム100が実装された機器本体の電源を投入し、本発明に係る処理システム100全体に電力が供給される。
【００２５】
（b）記憶デバイスセレクタを第１の不揮発性記憶デバイスに切替
切替回路部13の内部の記憶デバイスセレクタ15を切り替えて第１の不揮発性記憶デバイス14aに接続する。
【００２６】
（c）リセット/リセット解除
回路上に搭載されたデバイスに対してリセット動作及びリセット解除動作を実行する。
【００２７】
（d）セレクタ切替レジスタを参照して複数の不揮発性記憶デバイスから１つを選定
切替回路部13は、その内部にセレクタ切替レジスタ（図示せず）を有しており、上記のリセット解除動作後にセレクタ切替レジスタを参照して記憶デバイスセレクタ15を切り替えて複数の不揮発性記憶デバイス14から１つを選定する。言い換えると、第１の処理装置11又は第２の処理装置12が実行するプログラム（第１の処理装置用の第１のプログラム141a、第１の処理装置用の第２のプログラム141b、第２の処理装置用の第１のプログラム142a、第２の処理装置用の第２のプログラム142b）を設定する。なお、初期状態においては、セレクタ切替レジスタは第１の不揮発性記憶デバイス14aに格納されたプログラムを選択するようになっている。
【００２８】
（e）第１の不揮発性記憶デバイスに格納されたプログラムの読込
記憶デバイスセレクタ15により第１の不揮発性記憶デバイス14aが選択されている場合、第１の処理装置11又は第２の処理装置12は、第１の不揮発性記憶デバイス14aに格納されたプログラムを読み込む。
【００２９】
（f）第２の不揮発性記憶デバイスに格納されたプログラムの読込
記憶デバイスセレクタ15により第２の不揮発性記憶デバイス14bが選択されている場合、第１の処理装置11又は第２の処理装置12は、第２の不揮発性記憶デバイス14bに格納されたプログラムを読み込む。
【００３０】
（g）処理装置は正常にプログラムを実行完了したか？
不揮発性記憶デバイス14に格納されたプログラムの各々は自身のチェックサム値を予め記憶しており、第１の処理装置11又は第２の処理装置12は、読み込んだプログラムのチェックサム値を算出し、算出したチェックサム値とプログラムに予め記憶された自身のチェックサム値とをプログラムの実行前に比較することによって、選択されたプログラムの異常の有無を判定する。第１の処理装置11又は第２の処理装置12は、選択されたプログラムが正常に実行完了した際に、それぞれ完了信号線24，25を介して完了信号を切替回路部13に通知する。また、切替回路部13は、内部タイマに設定された所定時間内に上記完了信号を受信したか否かをもって、選択されたプログラムが正常に実行完了したか否かを判定する。所定時間内に上記完了信号を受信しない場合、選択されたプログラムは実行失敗であったと判断する。
【００３１】
（h）記憶デバイスセレクタの選択結果をセレクタ切替レジスタに記憶・保持
切替回路部13は、上記完了信号を受けて、その時の記憶デバイスセレクタ15の選択結果（第１の不揮発性記憶デバイス14a又は第２の不揮発性記憶デバイス14b）をセレクタ切替レジスタに記憶・保持する。また、セレクタ切替レジスタが記憶した内容をソフトウェア等により検出して、第１の処理装置11又は第２の処理装置12がどの不揮発性記憶デバイス14からプログラムを読み込み・実行したのかをユーザに通知するようにしてもよい。
【００３２】
（i）記憶デバイスセレクタの接続を初期状態に戻す
切替回路部13は、上記セレクタ切替レジスタへの記憶・保持の後に、記憶デバイスセレクタ15の接続を初期状態（例えば、第１の不揮発性記憶デバイス14a）に戻す。
【００３３】
（j）正常実行完了
第１の処理装置11又は第２の処理装置12が選択されたプログラムを正常に実行したことで一連の動作が完了する。なお、前述したように、図３では第１の処理装置11が本工程(ｊ)まで完了した後に、第１の処理装置が第２の処理装置12を制御して、第２の処理装置12が工程(ｃ)からの動作を実行する。
【００３４】
（k）第１の不揮発性記憶デバイスが選択されているのか？
切替回路部13は、記憶デバイスセレクタ15を参照して第１の不揮発性記憶デバイス14aが選択されているのか否かを判定する。
【００３５】
（l）記憶デバイスセレクタにより第２の不揮発性記憶デバイスに接続
記憶デバイスセレクタ15により第１の不揮発性記憶デバイス14aが選択されている場合、切替回路部13は、記憶デバイスセレクタ15により不揮発性記憶デバイス14を切り替えて第２の不揮発性記憶デバイス14bに接続する。また、その選択結果（第２の不揮発性記憶デバイス14b）をセレクタ切替レジスタに記憶・保持する。
【００３６】
（m）記憶デバイスセレクタにより第１の不揮発性記憶デバイスに接続
記憶デバイスセレクタ15により第２の不揮発性記憶デバイス14bが選択されている場合、切替回路部13は、記憶デバイスセレクタ15により不揮発性記憶デバイス14を切り替えて第１の不揮発性記憶デバイス14aに接続する。また、その選択結果（第１の不揮発性記憶デバイス14a）をセレクタ切替レジスタに記憶・保持する。
【００３７】
（n）不揮発性記憶デバイスに関する異常信号を通知
切替回路部13は、異常信号線26を介して異常信号を外部回路に通知する。これは、切替回路部13が初期状態において第１の不揮発性記憶デバイス14aを選択していたことから、この段階で第１の不揮発性記憶デバイス14a及び第２の不揮発性記憶デバイス14bの双方に格納されたプログラムの実行に失敗していることを意味するためである。なお、本工程(n)は、不揮発性記憶デバイス14に関する異常信号を通知する必要がなければ省略してもよい。
【００３８】
以上説明したように、本発明においては、複数の不揮発性記憶デバイスを複数個の処理装置が共有し、該複数の不揮発性記憶デバイスを複数個の処理装置ごとに切り替えながら使用することにより、処理システムにおける冗長性の確保を維持しつつ処理装置の複数化への対応と処理システムの小型化への対応とが可能となっている。例えば、第１の処理装置11が第１の不揮発性記憶デバイス14aに格納されている第１の処理装置用の第１のプログラム141aを実行し、第１の不揮発性記憶デバイス14aに格納されている第２の処理装置用の第１のプログラム142aに障害がある場合に、第２の処理装置12は第２の不揮発性記憶デバイス14bに格納されている第２の処理装置用の第２のプログラム142bを選択して実行することができる。また、不揮発性記憶デバイスの障害時に異常信号を外部回路に出力することで、処理システムの保守性や信頼性を向上させている。
【００３９】
〔本発明の第２の実施形態〕
図４は、本発明の第２の実施形態に係る処理システムにおける回路例のブロック図である。なお、図４において処理装置が４個、複数の不揮発性記憶デバイスとして２つの不揮発性記憶デバイスの場合を示す。本発明はこれらに限定されること無く、処理装置が５個以上であっても良いし、不揮発性記憶デバイスが３つ以上であっても良い。
【００４０】
本実施形態に係る処理システム400において、切替回路部43は、第１の処理装置（例えば、中央処理装置）41のアクセスセレクタ46とアドレスバス51を介して接続されており、第２の処理装置（例えば、副処理装置）42のアクセスセレクタ47とアドレスバス52を介して接続されている。アクセスセレクタ46，47は、それぞれアドレスバス51，52の切り替えを行う。また、切替回路部43は、不揮発性記憶デバイス44（第１の不揮発性記憶デバイス44aと第２の不揮発性記憶デバイス44bとを有する）と接続されており、切替回路部43の内部の記憶デバイスセレクタ45によって第１の不揮発性記憶デバイス44aと第２の不揮発性記憶デバイス44bを切り替えることができる。
【００４１】
切替回路部43と第１の処理装置41との間は完了信号線54を介して接続されており、切替回路部43と第２の処理装置42との間は完了信号線55を介して接続されており、切替回路部43と外部回路（図示せず）との間は異常信号線56を介して接続されている。第１の処理装置41及び第２の処理装置42の各々は、プログラムが正常に実行完了した際に、それぞれ完了信号線54，55を介して完了信号を切替回路部43に通知する。また、切替回路部43は、内部タイマ（図示せず）を有しており、所定の時間内に完了信号を受信しなかった場合に記憶デバイスセレクタ45によって第１の不揮発性記憶デバイス44aと第２の不揮発性記憶デバイス44bを切り替える。さらに、不揮発性記憶デバイスを切り替えた後の所定時間内に完了信号を受信しなかった場合、切替回路部43は異常信号線56を介して異常信号を外部回路に通知する。
【００４２】
第１の処理装置41と第２の処理装置42とは制御バス53を介して接続されており、アクセスセレクタ46，47を相互に監視・制御することができる。例えば、第２の処理装置42により第３の処理装置49又は第４の処理装置50が不揮発性記憶デバイス44に格納されているプログラムを実行している間は、第１の処理装置41がその実行を妨げないようになっている。
【００４３】
また、第２の処理装置42には、アドレスバス57を介して第３の処理装置49が接続され、アドレスバス58を介して第４の処理装置50が接続されている。第２の処理装置42は、第３の処理装置49又は第４の処理装置50との接続を切り替える処理装置セレクタ48をその内部に有している。本実施形態では、第２の処理装置42は第３の処理装置49及び第４の処理装置50のプログラムの実行を制御する機能を果たす。第２の処理装置42自体は自身のプログラムを予め有しており、不揮発性記憶デバイス44からのプログラムの読み出しは行わない。なお、第３の処理装置49や第４の処理装置50としては、例えば、FPGA（Field Programmable Gate Array）と呼ばれる任意の論理回路にプログラミング可能なデバイスが挙げられる。これらのデバイスの数は、図４に示した２個に限定されるものではなく、３個以上接続されてもよい。第２の処理装置４２は、不揮発性記憶デバイス44から第３の処理装置49用のプログラム又は第４の処理装置50用のプログラムを読み出し、第３の処理装置49又は第４の処理装置50に当該プログラムを書き込む動作を行う。これにより、第３の処理装置49又は第４の処理装置50がプログラムを実行して起動する。第１の処理装置41は、制御バス53を介して第２の処理装置42の処理装置セレクタ48を制御する（切り替える）ことができる。
【００４４】
前述した第１の実施形態と同様に、独立した複数のプログラムは複数の不揮発性記憶デバイス44の各々（図４では第１の不揮発性記憶デバイス44aと第２の不揮発性記憶デバイス44b）のそれぞれに格納されており、複数のプログラムの各々は自身のチェックサム値を予め記憶している。第１の処理装置41又は第２の処理装置42は、読み込んだプログラムのチェックサム値と予め記憶された該プログラムのチェックサム値とを該プログラムの実行前に比較することによって選択されたプログラムの異常の有無（健全性）を判定する。なお、１つのプログラムについて書き換え作業を実施した場合、他のプログラムのチェックサム値には影響を与えない構成になっている。
【００４５】
図５は、本発明の第２の実施形態に係る処理システムにおける不揮発性記憶デバイスの記憶領域の１例を示した模式図である。図５に示すように、本実施形態に係る処理システム400において、第１の不揮発性記憶デバイス44aには、第１の処理装置（例えば、中央処理装置）41が使用する第１の処理装置用の第１のプログラム441aと、第１の処理装置41が使用する第１の処理装置用の第２のプログラム442aと、第２の処理装置（例えば、副処理装置）42に接続された第３の処理装置（例えば、第１のFPGA）49が使用する第３の処理装置用の第１のプログラム443aと、第２の処理装置42に接続された第４の処理装置（例えば、第２のFPGA）50が使用する第４の処理装置用の第１のプログラム444aとが格納されている。また、第２の不揮発性記憶デバイス44bには、第１の処理装置用の第３のプログラム441bと、第１の処理装置用の第４のプログラム442bと、第３の処理装置用の第２のプログラム443bと、第４の処理装置用の第２のプログラム444aとが格納されている。第１の不揮発性記憶デバイス44aに格納された第１の処理装置用の第1のプログラム441a、第１の処理装置用の第２のプログラム442a、第３の処理装置用の第１のプログラム443a及び第４の処理装置用の第１のプログラム444aは、第２の不揮発性記憶デバイス44bに格納された第１の処理装置用の第３のプログラム441b、第１の処理装置用の第４のプログラム442b、第３の処理装置用の第２のプログラム443b及び第４の処理装置用の第２のプログラム444bと、それぞれ同一の内容である。
【００４６】
以下、第１の実施形態と同様に、図３のフローチャートに沿って第２の実施形態に係る処理システムの動作順を説明する。なお、第２の実施形態において、第１の処理装置（例えば、中央処理装置）41が正常に起動した後に、第１の処理装置41が第２の処理装置（例えば、副処理装置）42を制御し、第２の処理装置42により第３の処理装置49がプログラムを実行して起動し、第３の処理装置49が正常に起動した後に、第２の処理装置42により第４の処理装置50がプログラムを実行する場合を例示している。言い換えると、第１の処理装置41が下記の工程（j）まで完了した後に、第３の処理装置49が下記の工程（c）から実行し、第３の処理装置49が下記の工程（j）まで完了した後に、第４の処理装置50が下記の工程（c）から実行する。
【００４７】
（a）電源投入
本発明に係る処理システム400が実装された機器本体の電源を投入し、本発明に係る処理システム400全体に電力が供給される。
【００４８】
（b）記憶デバイスセレクタを第１の不揮発性記憶デバイスに切替
切替回路部43の内部の記憶デバイスセレクタ45を切り替えて第１の不揮発性記憶デバイス44aに接続する。
【００４９】
（c）リセット/リセット解除
回路上に搭載されたデバイスに対してリセット動作及びリセット解除動作を実行する。
【００５０】
（d）セレクタ切替レジスタを参照して複数の不揮発性記憶デバイスから１つを選定
切替回路部43は、その内部にセレクタ切替レジスタ（図示せず）を有しており、上記のリセット解除動作後にセレクタ切替レジスタを参照して記憶デバイスセレクタ45を切り替えて複数の不揮発性記憶デバイス44から１つを選定する。言い換えると、第１の処理装置41が実行するプログラム（第１の処理装置用の第１のプログラム441a、第１の処理装置用の第２のプログラム442a、第１の処理装置用の第３のプログラム441b、第１の処理装置用の第４のプログラム442b）を設定する。なお、初期状態においては、セレクタ切替レジスタは第１の不揮発性記憶デバイス44aに格納されたプログラムを選択するようになっている。
【００５１】
また、第１の処理装置41が正常に起動した後に第３の処理装置49又は第４の処理装置50を起動する場合においては、第１の処理装置41は制御バス53を介して第２の処理装置42を制御し、第２の処理装置42は処理装置セレクタ48を制御して、第３の処理装置（例えば、第１のFPGA）49又は第４の処理装置（例えば、第２のFPGA）50が実行するプログラム（第３の処理装置用の第１のプログラム443a、第３の処理装置用の第２のプログラム443b、第４の処理装置用の第１のプログラム444a、第４の処理装置用の第２のプログラム444b）を設定する。第１の処理装置41が直接第２の処理装置42の処理装置セレクタ48を制御しても良い。
【００５２】
（e）第１の不揮発性記憶デバイスに格納されたプログラムの読込
記憶デバイスセレクタ45により第１の不揮発性記憶デバイス44aが選択されている場合、第１の処理装置41は、第１の不揮発性記憶デバイス44aに格納されたプログラムを読み込む。また、第３の処理装置49又は第４の処理装置50の起動においては、第２の処理装置42が第１の不揮発性記憶デバイス44aに格納されたプログラムを読み込み、第３の処理装置49又は第４の処理装置50に書き込む。
【００５３】
（f）第２の不揮発性記憶デバイスに格納されたプログラムの読込
記憶デバイスセレクタ45により第２の不揮発性記憶デバイス44bが選択されている場合、第１の処理装置41は、第２の不揮発性記憶デバイス44bに格納されたプログラムを読み込む。また、第３の処理装置49又は第４の処理装置50の起動においては、第２の処理装置42が第２の不揮発性記憶デバイス44bに格納されたプログラムを読み込み、第３の処理装置49又は第４の処理装置50に書き込む。
【００５４】
（g）処理装置は正常にプログラムを実行完了したか？
不揮発性記憶デバイス44に格納されたプログラムの各々は自身のチェックサム値を予め記憶しており、第１の処理装置41、第３の処理装置49又は第４の処理装置50は、読み込んだプログラムのチェックサム値を算出し、算出したチェックサム値とプログラムに予め記憶された自身のチェックサム値とをプログラムの実行前に比較することによって、選択されたプログラムの異常の有無を判定する。第１の処理装置41は、選択されたプログラムが正常に実行完了した際に、完了信号線54を介して完了信号を切替回路部43に通知する。第２の処理装置42は、第３の処理装置49及び第４の処理装置50ごとに、選択されたプログラムが正常に実行完了した際に、完了信号線55を介して完了信号を切替回路部43に通知する。また、切替回路部43は、内部タイマに設定された所定時間内に上記完了信号を受信したか否かをもって、選択されたプログラムが正常に実行完了したか否かを判定する。所定時間内に上記完了信号を受信しない場合、選択されたプログラムは実行失敗であったと判断する。
【００５５】
（h）記憶デバイスセレクタの選択結果をセレクタ切替レジスタに記憶・保持
切替回路部43は、上記完了信号を受けて、その時の記憶デバイスセレクタ45の選択結果（第１の不揮発性記憶デバイス44a又は第２の不揮発性記憶デバイス44b）をセレクタ切替レジスタに記憶・保持する。また、セレクタ切替レジスタが記憶した内容をソフトウェア等により検出して、第１の処理装置41、第３の処理装置49又は第４の処理装置50がどの不揮発性記憶デバイス44からプログラムを読み込み・実行したのかをユーザに通知するようにしてもよい。
【００５６】
（i）記憶デバイスセレクタの接続を初期状態に戻す
切替回路部43は、上記セレクタ切替レジスタへの記憶・保持の後に、記憶デバイスセレクタ45の接続を初期状態（例えば、第１の不揮発性記憶デバイス44a）に戻す。
【００５７】
（j）正常実行完了
第１の処理装置41、第３の処理装置49又は第４の処理装置50が選択されたプログラムを正常に実行したことで一連の動作が完了する。なお、前述したように、図３では第１の処理装置41が本工程(ｊ)まで完了した後に、第２の処理装置42により第３の処理装置49、第４の処理装置50が順次工程(ｃ)から実行される。
【００５８】
（k）第１の不揮発性記憶デバイスが選択されているのか？
切替回路部43は、記憶デバイスセレクタ45を参照して第１の不揮発性記憶デバイス44aが選択されているのか否かを判定する。
【００５９】
（l）記憶デバイスセレクタにより第２の不揮発性記憶デバイスに接続
記憶デバイスセレクタ45により第１の不揮発性記憶デバイス44aが選択されている場合、切替回路部43は、記憶デバイスセレクタ45により不揮発性記憶デバイス44を切り替えて第２の不揮発性記憶デバイス44bに接続する。また、その選択結果（第２の不揮発性記憶デバイス44b）をセレクタ切替レジスタに記憶・保持する。
【００６０】
（m）記憶デバイスセレクタにより第１の不揮発性記憶デバイスに接続
記憶デバイスセレクタ45により第２の不揮発性記憶デバイス44bが選択されている場合、切替回路部43は、記憶デバイスセレクタ45により不揮発性記憶デバイス44を切り替えて第１の不揮発性記憶デバイス44aに接続する。また、その選択結果（第１の不揮発性記憶デバイス44a）をセレクタ切替レジスタに記憶・保持する。
【００６１】
（n）不揮発性記憶デバイスに関する異常信号を通知
切替回路部43は、異常信号線56を介して異常信号を外部回路に通知する。これは、切替回路部43が初期状態において第１の不揮発性記憶デバイス44aを選択していたことから、この段階で第１の不揮発性記憶デバイス44a及び第２の不揮発性記憶デバイス44bの双方に格納されたプログラムの実行に失敗していることを意味するためである。なお、本工程(ｎ)は、不揮発性記憶デバイス44に関する異常信号を通知する必要がなければ省略してもよい。
【００６２】
以上説明したように、本実施形態においては、第１の処理装置41、第３の処理装置49及び第４の処理装置50の合計３個の処理装置が少なくとも２つの不揮発性記憶デバイスを共有している。そして、処理装置ごとに複数の不揮発性記憶デバイスを切り替えながら使用することにより、処理システムにおける冗長性の確保を維持しつつ処理装置の複数化への対応と処理システムの小型化への対応とが可能となっている。
【００６３】
なお、本発明においては、第１の処理装置11，41が不揮発性記憶デバイス14，44のいずれの面に格納されたプログラムを正常に実行しても、工程(ｉ)で記憶デバイスセレクタ15，45の接続を初期状態に戻している。これは、起動した第１の処理装置11，41のブートプログラムから見た不揮発性記憶デバイス14，44のアドレスが、常に同じになるようにするためである。これにより、組み込み機器等でしばしば採用されているブートプログラムとオペレーティングシステムとを分割した構成において、ブートプログラムの冗長性を確保し、不揮発性記憶デバイス14，44の面ごとに異なるオペレーティングシステムを格納して、ブートプログラムの実行完了後にユーザの選択でオペレーティングシステムを変更することが可能となる効果もある。
【符号の説明】
【００６４】
100，400…処理システム、
11，41…第１の処理装置、12，42…第２の処理装置、13，43…切替回路部、
14，44…不揮発性記憶デバイス、
14a，44a…第１の不揮発性記憶デバイス、
14b，44b…第２の不揮発性記憶デバイス、
141a…第１の処理装置用の第１のプログラム、
142a…第２の処理装置用の第１のプログラム、
141b…第１の処理装置用の第２のプログラム、
142b…第２の処理装置用の第２のプログラム、
441a…第１の処理装置用の第１のプログラム、
442a…第１の処理装置用の第２のプログラム、
443a…第３の処理装置用の第１のプログラム、
444a…第４の処理装置用の第１のプログラム、
441b…第１の処理装置用の第３のプログラム、
442b…第１の処理装置用の第４のプログラム、
443b…第３の処理装置用の第２のプログラム、
444b…第４の処理装置用の第２のプログラム、
15，45…記憶デバイスセレクタ、16，17，46，47…アクセスセレクタ、
21，22，51，52，57，58…アドレスバス、
23，53…制御バス、24，25，54，55…完了信号線、26，56…異常信号線、
48…処理装置セレクタ、
49…第３の処理装置、50…第４の処理装置。
【図１】
2011008552.tif 000003
【図２】
2011008552.tif 000004
【図３】
2011008552.tif 000005
【図４】
2011008552.tif 000006
【図５】
2011008552.tif 000007