(57)【要約】【課題】  ある制御装置が異常状態となったり、他の制御装置とは非同期で休止状態や省電力状態などの非正常稼働状態に遷移したりしても、それらの状態を適切に監視することができるマルチプロセッサシステムを提供する。【解決手段】  複数個のプロセッサ１〜３をループ状に直列に接続され、共有メモリ４は各プロセッサ１〜３が自身の状態を示す状態情報を書き込むのに使用する状態書込領域１５〜１７を備える。各プロセッサ１〜３は、両隣のプロセッサ１〜３に対し通知を発行する通知手段２１〜２３とタイマ１１〜１３を備える。各プロセッサ１〜３は、通知を一方向にリレーし、非正常稼働状態となるプロセッサ１〜３は、リレーの方向を反転させる。通知を待っている側と反対側からの通知を受けた場合、自身以外の何れかのプロセッサ１〜３が非正常稼働状態であると認識する。待っている通知を受ける以前に自身のタイマが満了した場合には、該通知を発行するはずだったプロセッサ１〜３が異常状態であると認識する。【選択図】    図７
2006155193.tif 000002
【特許請求の範囲】
【請求項１】
複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備えるマルチプロセッサシステムにおいて、
前記複数個のプロセッサは、ループ状に直列に接続され、
前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備え、
各プロセッサは、全プロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、
各プロセッサは、
前記通知を受けた際には、自身のタイマを停止させる第１の処理と、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の処理と、前記状態書込領域を参照する第３の処理と、を行い、
前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の処理を行う一方で、
前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の処理を行い、
各プロセッサは、
自身が正常稼働状態から非正常稼働状態へと遷移する際には、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の処理と、両隣のプロセッサのうち自身が前回通知を発行した方とは反対側のプロセッサに対して自身の通知手段による通知を発行する第７の処理と、を行い、
更に、各プロセッサは、
両隣のプロセッサのうち、自身が前回通知を発行した方のプロセッサからの通知を受けた場合には、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の処理を行う一方で、
両隣のプロセッサのうち、自身が前回通知を発行した方とは反対側のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了した場合には、該プロセッサが異常状態である旨を認識する第９の処理を行うことを特徴とするマルチプロセッサシステム。
【請求項２】
複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備えるマルチプロセッサシステムにおいて、
前記複数個のプロセッサは、ループ状に直列に接続され、
前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備え、
各プロセッサは、全プロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、
各プロセッサは、
前記通知を受けた際には、自身のタイマを停止させる第１の処理と、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の処理と、前記状態書込領域を参照する第３の処理と、を行い、
前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の処理を行う一方で、
前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の処理を行い、
更に、各プロセッサは、
両隣のプロセッサのうち何れか一方のプロセッサからの通知を待つように予め設定され、
自身が正常稼働状態から非正常稼働状態へと遷移する際には、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の処理と、両隣のプロセッサのうち自身が通知を待っている方のプロセッサに対して自身の通知手段による通知を発行する第７の処理と、を行い、
両隣のプロセッサのうち、自身が通知を待っている方のプロセッサとは反対側のプロセッサからの通知を受けた場合には、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の処理を行う一方で、
両隣のプロセッサのうち、自身が通知を待っている方のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了した場合には、該プロセッサが異常状態である旨を認識する第９の処理を行うことを特徴とするマルチプロセッサシステム。
【請求項３】
前記非正常稼働状態は、省電力状態又は休止状態であることを特徴とする請求項１又は２に記載のマルチプロセッサシステム。
【請求項４】
各プロセッサは、隣のプロセッサが異常状態である旨を認識した場合には、両隣のプロセッサのうち、該異常と認識したプロセッサとは反対側のプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始することを特徴とする請求項１乃至３の何れか一項に記載のマルチプロセッサシステム。
【請求項５】
各プロセッサは、前記第３の処理の結果に基づき、両隣のプロセッサの何れもが正常稼働状態でないと判定した場合には、前記第２の処理以降の動作を行うことを特徴とする請求項１乃至４の何れか一項に記載のマルチプロセッサシステム。
【請求項６】
前記共有メモリは、前記ループにおいての各プロセッサの並び順を示す情報を格納する並び情報格納領域を備え、
各プロセッサは、前記並び情報格納領域を参照することにより、両隣のプロセッサを認識することを特徴とする請求項１乃至５の何れか一項に記載のマルチプロセッサシステム。
【請求項７】
当該マルチプロセッサシステムの初期化動作には、各プロセッサが、前記並び情報格納領域を参照することにより、両隣のプロセッサを認識する処理が含まれていることを特徴とする請求項６に記載のマルチプロセッサシステム。
【請求項８】
前記初期化動作には、各プロセッサが、前記状態書込領域に自身の状態を書き込む動作と、前記並び情報格納領域に自身の並び順を示す情報を格納する動作と、が含まれていることを特徴とする請求項７に記載のマルチプロセッサシステム。
【請求項９】
前記状態書込領域は、各プロセッサが自身の識別情報を自身の状態情報と対応付けて書き込むのに使用する領域を備えていることを特徴とする請求項１乃至８の何れか一項に記載のマルチプロセッサシステム。
【請求項１０】
各プロセッサは、自身が前記非正常稼働状態である場合に、自身が前回通知を発行した方とは反対側のプロセッサからの通知を受けると、前記非正常稼働状態から前記正常稼働状態に遷移することを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項１１】
各プロセッサは、隣のプロセッサを前記非正常稼働状態から前記正常稼働状態に遷移させるために、該隣のプロセッサに対して自身の通知手段による通知を発行することが可能であることを特徴とする請求項１０に記載のマルチプロセッサシステム。
【請求項１２】
各プロセッサは、自身が前記非正常稼働状態である場合に、自身が通知を待っている側のプロセッサからの通知を受けると、前記非正常稼働状態から前記正常稼働状態に遷移することを特徴とする請求項２に記載のマルチプロセッサシステム。
【請求項１３】
各プロセッサは、自身からの通知を待っている隣のプロセッサを前記非正常稼働状態から前記正常稼働状態に遷移させるために、該隣のプロセッサに対して自身の通知手段による通知を発行することが可能であることを特徴とする請求項１２に記載のマルチプロセッサシステム。
【請求項１４】
請求項１乃至１３に記載のマルチプロセッサシステムを備えることを特徴とする電子機器。
【請求項１５】
当該電子機器は、携帯情報端末装置であることを特徴とする請求項１４に記載の電子機器。
【請求項１６】
当該電子機器は、携帯電話機であることを特徴とする請求項１５に記載の電子機器。
【請求項１７】
当該電子機器は、パーソナルコンピュータであることを特徴とする請求項１４に記載の電子機器。
【請求項１８】
ループ状に直列に接続された複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備えるマルチプロセッサシステムにおいて、前記複数個のプロセッサを監視する方法であって、
前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備え、
各プロセッサは、全プロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、
当該監視方法は、
前記通知を受けたプロセッサが自身のタイマを停止させる第１の工程と、
前記第１の工程を行うプロセッサが、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の工程と、
前記第２の工程を行うプロセッサが、前記状態書込領域を参照する第３の工程と、
前記第３の工程を行うプロセッサが、該第３の工程の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の工程を行う一方で、
前記第３の工程を行うプロセッサが、該第３の工程の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の工程を行い、
更に、当該監視方法は、
正常稼働状態から非正常稼働状態へと遷移するプロセッサが、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の工程と、
前記第６の工程を行うプロセッサが、両隣のプロセッサのうち自身が前回通知を発行した方とは反対側のプロセッサに対して自身の通知手段による通知を発行する第７の工程と、
両隣のプロセッサのうち、自身が前回通知を発行した方のプロセッサからの通知を受けたプロセッサが、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の工程と、
両隣のプロセッサのうち、自身が前回通知を発行した方とは反対側のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了したプロセッサが、自身が前回通知を発行した方とは反対側のプロセッサが異常状態である旨を認識する第９の工程と、
を備えることを特徴とするマルチプロセッサシステムにおける監視方法。
【請求項１９】
ループ状に直列に接続された複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備えるマルチプロセッサシステムにおいて、前記複数個のプロセッサを監視する方法であって、
前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備え、
各プロセッサは、全プロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、
当該監視方法は、
前記通知を受けたプロセッサが自身のタイマを停止させる第１の工程と、
前記第１の工程を行うプロセッサが、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の工程と、
前記第２の工程を行うプロセッサが、前記状態書込領域を参照する第３の工程と、
前記第３の工程を行うプロセッサが、該第３の工程の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の工程を行う一方で、
前記第３の工程を行うプロセッサが、該第３の工程の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の工程を行い、
更に、当該監視方法は、
各プロセッサに対して、両隣のプロセッサのうち何れか一方のプロセッサからの通知を待つように設定する第６の工程と、
正常稼働状態から非正常稼働状態へと遷移するプロセッサが、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第７の工程と、
前記第７の工程を行うプロセッサが、両隣のプロセッサのうち自身が通知を待っている方のプロセッサに対して自身の通知手段による通知を発行する第８の工程と、
両隣のプロセッサのうち、自身が通知を待っている方のプロセッサとは反対側のプロセッサからの通知を受けたプロセッサが、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第９の工程と、
両隣のプロセッサのうち、自身が通知を待っている方のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了したプロセッサが、自身が通知を待っている方のプロセッサが異常状態である旨を認識する第１０の工程と、
を備えることを特徴とするマルチプロセッサシステムにおける監視方法。
【請求項２０】
ループ状に直列に接続された複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備え、前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備えるマルチプロセッサシステムにおけるプロセッサであって、
前記マルチプロセッサシステムを構成する全てのプロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、
前記通知を受けた際には、自身のタイマを停止させる第１の処理と、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の処理と、前記状態書込領域を参照する第３の処理と、を行い、
前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の処理を行う一方で、
前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の処理を行い、
自身が正常稼働状態から非正常稼働状態へと遷移する際には、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の処理と、両隣のプロセッサのうち自身が前回通知を発行した方とは反対側のプロセッサに対して自身の通知手段による通知を発行する第７の処理と、を行い、
更に、
両隣のプロセッサのうち、自身が前回通知を発行した方のプロセッサからの通知を受けた場合には、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の処理を行う一方で、
両隣のプロセッサのうち、自身が前回通知を発行した方とは反対側のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了した場合には、該プロセッサが異常状態である旨を認識する第９の処理を行うことを特徴とするプロセッサ。
【請求項２１】
ループ状に直列に接続された複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備え、前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備えるマルチプロセッサシステムにおけるプロセッサであって、
前記マルチプロセッサシステムを構成する全てのプロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、
前記通知を受けた際には、自身のタイマを停止させる第１の処理と、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の処理と、前記状態書込領域を参照する第３の処理と、を行い、
前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の処理を行う一方で、
前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の処理を行い、
更に、
両隣のプロセッサのうち何れか一方のプロセッサからの通知を待つように予め設定され、
自身が正常稼働状態から非正常稼働状態へと遷移する際には、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の処理と、両隣のプロセッサのうち自身が通知を待っている方のプロセッサに対して自身の通知手段による通知を発行する第７の処理と、を行い、
両隣のプロセッサのうち、自身が通知を待っている方のプロセッサとは反対側のプロセッサからの通知を受けた場合には、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の処理を行う一方で、
両隣のプロセッサのうち、自身が通知を待っている方のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了した場合には、該プロセッサが異常状態である旨を認識する第９の処理を行うことを特徴とするプロセッサ。
【請求項２２】
コンピュータが実行可能なプログラムにおいて、
請求項２０又は２１に記載のプロセッサによる前記第１乃至第９の処理を実行することを特徴とするプログラム。
【請求項２３】
コンピュータ読み取り可能な記録媒体において、請求項２２に記載のプログラムを格納したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサ（制御装置）を備えるマルチシステム、マルチプロセッサシステムにおける複数の制御装置（マルチプロセッサ）の監視方法、及び、マルチプロセッサシステムに備えられるプロセッサ、そのプロセッサに備えられるプログラム、及び、そのプログラムを格納した記録媒体に関する。
【背景技術】
【０００２】
従来、複数の制御装置を監視する方法としては、例えば、複数の制御装置と、これら複数の制御装置の状態監視を行うマスター制御装置とを備え、該マスター制御装置に対し各制御装置の状態を通知する方法がある。
【０００３】
また、特許文献１では、複数のプロセッサにより共有メモリが一定周期で更新される場合には、これら複数のプロセッサが正常状態であると判定する技術が開示されている。
【特許文献１】特開平１０−２２８４５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、各制御装置の状態監視を行うマスター制御装置に対し状態を通知する場合、マスター制御装置が障害になった場合には監視ができなくなってしまうという問題がある。
【０００５】
また、特許文献１の技術では、あるプロセッサが他のプロセッサに関連なく（非同期で）休止（ｓｌｅｅｐ）状態や省電力状態に勝手に遷移した場合、共有メモリが更新されない状態になり、システムが異常でないにもかかわらず、異常扱いになってしまう。
【０００６】
本発明は、上記のような問題点を解決するためになされたもので、ある制御装置に障害が発生したり（異常状態となったり）、ある制御装置が他の制御装置とは非同期で休止状態や省電力状態に遷移したりしても、それらの状態を適切に監視（認識）することができるマルチプロセッサシステム、そのマルチプロセッサシステムにおける複数の制御装置（マルチプロセッサ）の監視方法、そのマルチプロセッサシステムにおけるプロセッサ、そのプロセッサに備えられるプログラム、及び、そのプログラムを格納した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明のマルチプロセッサシステムは、複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備えるマルチプロセッサシステムにおいて、前記複数個のプロセッサは、ループ状に直列に接続され、前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備え、各プロセッサは、全プロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、各プロセッサは、前記通知を受けた際には、自身のタイマを停止させる第１の処理と、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の処理と、前記状態書込領域を参照する第３の処理と、を行い、前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の処理を行う一方で、前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の処理を行い、各プロセッサは、自身が正常稼働状態から非正常稼働状態へと遷移する際には、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の処理と、両隣のプロセッサのうち自身が前回通知を発行した方とは反対側のプロセッサに対して自身の通知手段による通知を発行する第７の処理と、を行い、更に、各プロセッサは、両隣のプロセッサのうち、自身が前回通知を発行した方のプロセッサからの通知を受けた場合には、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の処理を行う一方で、両隣のプロセッサのうち、自身が前回通知を発行した方とは反対側のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了した場合には、該プロセッサが異常状態である旨を認識する第９の処理を行うことを特徴としている。
【０００８】
また、本発明のマルチプロセッサシステムは、複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備えるマルチプロセッサシステムにおいて、前記複数個のプロセッサは、ループ状に直列に接続され、前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備え、各プロセッサは、全プロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、各プロセッサは、前記通知を受けた際には、自身のタイマを停止させる第１の処理と、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の処理と、前記状態書込領域を参照する第３の処理と、を行い、前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の処理を行う一方で、前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の処理を行い、更に、各プロセッサは、両隣のプロセッサのうち何れか一方のプロセッサからの通知を待つように予め設定され、自身が正常稼働状態から非正常稼働状態へと遷移する際には、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の処理と、両隣のプロセッサのうち自身が通知を待っている方のプロセッサに対して自身の通知手段による通知を発行する第７の処理と、を行い、両隣のプロセッサのうち、自身が通知を待っている方のプロセッサとは反対側のプロセッサからの通知を受けた場合には、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の処理を行う一方で、両隣のプロセッサのうち、自身が通知を待っている方のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了した場合には、該プロセッサが異常状態である旨を認識する第９の処理を行うことを特徴としている。
【０００９】
本発明のマルチプロセッサシステムにおいては、前記非正常稼働状態は、省電力状態であることを好ましい一例としている。
【００１０】
本発明のマルチプロセッサシステムにおいては、各プロセッサは、隣のプロセッサが異常状態である旨を認識した場合には、両隣のプロセッサのうち、該異常と認識したプロセッサとは反対側のプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始することが好ましい。
【００１１】
本発明のマルチプロセッサシステムにおいては、各プロセッサは、前記第３の処理の結果に基づき、両隣のプロセッサの何れもが正常稼働状態でないと判定した場合には、前記第２の処理以降の動作を行うことが好ましい。
【００１２】
本発明のマルチプロセッサシステムにおいては、前記共有メモリは、前記ループにおいての各プロセッサの並び順を示す情報を格納する並び情報格納領域を備え、各プロセッサは、前記並び情報格納領域を参照することにより、両隣のプロセッサを認識することが好ましい。
【００１３】
本発明のマルチプロセッサシステムにおいては、当該マルチプロセッサシステムの初期化動作には、各プロセッサが、前記並び情報格納領域を参照することにより、両隣のプロセッサを認識する処理が含まれていることが好ましい。
【００１４】
本発明のマルチプロセッサシステムにおいては、前記初期化動作には、各プロセッサが、前記状態書込領域に自身の状態を書き込む動作と、前記並び情報格納領域に自身の並び順を示す情報を格納する動作と、が含まれていることが好ましい。
【００１５】
本発明のマルチプロセッサシステムにおいては、前記状態書込領域は、各プロセッサが自身の識別情報を自身の状態情報と対応付けて書き込むのに使用する領域を備えていることが好ましい。
【００１６】
本発明のマルチプロセッサシステムにおいては、各プロセッサは、自身が前記非正常稼働状態である場合に、自身が前回通知を発行した方とは反対側のプロセッサからの通知を受けると、前記非正常稼働状態から前記正常稼働状態に遷移することが好ましい。
【００１７】
この場合、各プロセッサは、隣のプロセッサを前記非正常稼働状態から前記正常稼働状態に遷移させるために、該隣のプロセッサに対して自身の通知手段による通知を発行することが可能であることが好ましい。
【００１８】
本発明のマルチプロセッサシステムにおいては、各プロセッサは、自身が前記非正常稼働状態である場合に、自身が通知を待っている側のプロセッサからの通知を受けると、前記非正常稼働状態から前記正常稼働状態に遷移することが好ましい。
【００１９】
この場合、各プロセッサは、自身からの通知を待っている隣のプロセッサを前記非正常稼働状態から前記正常稼働状態に遷移させるために、該隣のプロセッサに対して自身の通知手段による通知を発行することが可能であることが好ましい。
【００２０】
本発明の電子機器は、マルチプロセッサシステムを備えることを特徴としている。
【００２１】
本発明の電子機器は、例えば、携帯電話機或いはその他の携帯情報端末装置であることを好ましい一例としている。
【００２２】
或いは、本発明の電子機器は、パーソナルコンピュータであることも好ましい一例としている。この場合、携帯型のパーソナルコンピュータであることも好ましく、或いは、デスクトップ型のパーソナルコンピュータであることも好ましい。
【００２３】
また、本発明のマルチプロセッサシステムにおける監視方法は、ループ状に直列に接続された複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備えるマルチプロセッサシステムにおいて、前記複数個のプロセッサを監視する方法であって、前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備え、各プロセッサは、全プロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、当該監視方法は、前記通知を受けたプロセッサが自身のタイマを停止させる第１の工程と、前記第１の工程を行うプロセッサが、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の工程と、前記第２の工程を行うプロセッサが、前記状態書込領域を参照する第３の工程と、前記第３の工程を行うプロセッサが、該第３の工程の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の工程を行う一方で、前記第３の工程を行うプロセッサが、該第３の工程の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の工程を行い、更に、当該監視方法は、正常稼働状態から非正常稼働状態へと遷移するプロセッサが、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の工程と、前記第６の工程を行うプロセッサが、両隣のプロセッサのうち自身が前回通知を発行した方とは反対側のプロセッサに対して自身の通知手段による通知を発行する第７の工程と、両隣のプロセッサのうち、自身が前回通知を発行した方のプロセッサからの通知を受けたプロセッサが、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の工程と、両隣のプロセッサのうち、自身が前回通知を発行した方とは反対側のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了したプロセッサが、自身が前回通知を発行した方とは反対側のプロセッサが異常状態である旨を認識する第９の工程と、を備えることを備えることを特徴としている。
【００２４】
また、本発明のマルチプロセッサシステムにおける監視方法は、ループ状に直列に接続された複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備えるマルチプロセッサシステムにおいて、前記複数個のプロセッサを監視する方法であって、前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備え、各プロセッサは、全プロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、当該監視方法は、前記通知を受けたプロセッサが自身のタイマを停止させる第１の工程と、前記第１の工程を行うプロセッサが、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の工程と、前記第２の工程を行うプロセッサが、前記状態書込領域を参照する第３の工程と、前記第３の工程を行うプロセッサが、該第３の工程の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の工程を行う一方で、前記第３の工程を行うプロセッサが、該第３の工程の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の工程を行い、更に、当該監視方法は、各プロセッサに対して、両隣のプロセッサのうち何れか一方のプロセッサからの通知を待つように設定する第６の工程と、正常稼働状態から非正常稼働状態へと遷移するプロセッサが、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第７の工程と、前記第７の工程を行うプロセッサが、両隣のプロセッサのうち自身が通知を待っている方のプロセッサに対して自身の通知手段による通知を発行する第８の工程と、両隣のプロセッサのうち、自身が通知を待っている方のプロセッサとは反対側のプロセッサからの通知を受けたプロセッサが、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第９の工程と、両隣のプロセッサのうち、自身が通知を待っている方のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了したプロセッサが、自身が通知を待っている方のプロセッサが異常状態である旨を認識する第１０の工程と、を備えることを備えることを特徴としている。
【００２５】
本発明のプロセッサは、ループ状に直列に接続された複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備え、前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備えるマルチプロセッサシステムにおけるプロセッサであって、前記マルチプロセッサシステムを構成する全てのプロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、前記通知を受けた際には、自身のタイマを停止させる第１の処理と、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の処理と、前記状態書込領域を参照する第３の処理と、を行い、前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の処理を行う一方で、前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の処理を行い、自身が正常稼働状態から非正常稼働状態へと遷移する際には、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の処理と、両隣のプロセッサのうち自身が前回通知を発行した方とは反対側のプロセッサに対して自身の通知手段による通知を発行する第７の処理と、を行い、更に、両隣のプロセッサのうち、自身が前回通知を発行した方のプロセッサからの通知を受けた場合には、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の処理を行う一方で、両隣のプロセッサのうち、自身が前回通知を発行した方とは反対側のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了した場合には、該プロセッサが異常状態である旨を認識する第９の処理を行うことを特徴としている。
【００２６】
本発明のプロセッサは、ループ状に直列に接続された複数個のプロセッサと、前記複数個のプロセッサに共通に使用される共有メモリと、を備え、前記共有メモリは、各プロセッサが自身の状態を示す状態情報を書き込むのに使用する状態書込領域を備えるマルチプロセッサシステムにおけるプロセッサであって、前記マルチプロセッサシステムを構成する全てのプロセッサにより構成されるループにおける両隣のプロセッサに対し通知を発行する通知手段と、タイマと、を備え、前記通知を受けた際には、自身のタイマを停止させる第１の処理と、前記状態書込領域に対して自身の状態が正常稼働状態である旨を書き込む第２の処理と、前記状態書込領域を参照する第３の処理と、を行い、前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサが正常稼働状態であると判定した場合には、該プロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第４の処理を行う一方で、前記第３の処理の結果に基づき、受けた通知を発行したのとは反対側のプロセッサは正常稼働状態でなく、且つ、受けた通知を発行したプロセッサは正常稼働状態であると判定した場合には、該受けた通知を発行したプロセッサに対して自身の通知手段による通知を発行するとともに自身のタイマによる計時動作を開始する第５の処理を行い、更に、両隣のプロセッサのうち何れか一方のプロセッサからの通知を待つように予め設定され、自身が正常稼働状態から非正常稼働状態へと遷移する際には、前記状態書込領域に対して自身の状態が非正常稼働状態である旨を書き込む第６の処理と、両隣のプロセッサのうち自身が通知を待っている方のプロセッサに対して自身の通知手段による通知を発行する第７の処理と、を行い、両隣のプロセッサのうち、自身が通知を待っている方のプロセッサとは反対側のプロセッサからの通知を受けた場合には、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識する第８の処理を行う一方で、両隣のプロセッサのうち、自身が通知を待っている方のプロセッサからの通知を受ける以前に自身のタイマによる計時動作が満了した場合には、該プロセッサが異常状態である旨を認識する第９の処理を行うことを特徴としている。
【００２７】
本発明のプログラムは、コンピュータが実行可能なプログラムにおいて、本発明のプロセッサによる前記第１乃至第９の処理を実行することを特徴としている。
【００２８】
本発明の記録媒体は、コンピュータ読み取り可能な記録媒体において、本発明のプログラムを格納したことを特徴としている。
【発明の効果】
【００２９】
本発明によれば、あるプロセッサ（制御装置）が障害の発生により異常状態となったり、あるプロセッサが他のプロセッサとは非同期で休止状態や省電力状態などの非正常稼働状態に遷移したりしても、それらの状態を、他のプロセッサが適切に監視（認識）することができる。
【００３０】
以下、本発明の効果について、状況別に詳細に説明する。
【００３１】
（１）全てのプロセッサが正常稼働状態である場合
この場合、各プロセッサは、順次、第４の処理を行うことにより、受けた通知を発行したのとは反対側のプロセッサに対して通知を発行することとなる（一方向にのみ通知のリレーが行われる）。つまり、各プロセッサは、常に、両隣のうち片側のプロセッサからの通知を受けることとなり、該通知を受ける度に、第１〜第４の処理を行う。
【００３２】
また、各プロセッサでは、タイマによる計時動作が満了せず、且つ、両隣のうち反対側のプロセッサからは通知を受けないため、隣のプロセッサが正常である（異常ではない）ことを認識できるとともに、自身以外のプロセッサが省電力状態や休止状態などの非正常稼働状態ではないことを認識できる。
【００３３】
（２）ある１つのプロセッサが非正常稼働状態となり、残りのプロセッサは全て正常稼働状態である場合
この場合、非正常稼働状態に遷移するプロセッサは、第７の処理により、それまでとは反対側のプロセッサに対して通知を発行する。
【００３４】
よって、この通知を受けたプロセッサは、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識することができる（第８の処理）。
【００３５】
更に、この通知を受けたプロセッサは、第１〜第３の処理を経て、第４の処理ではなく第５の処理を行う。これにより、通知のリレーの方向が反転する。
【００３６】
以後は、その反転したままの方向で、順次、通知のリレーがなされるので、非正常稼働状態へと遷移したプロセッサ以外の各プロセッサは、自身以外の何れかのプロセッサが非正常稼働状態である旨を認識できる。
【００３７】
更に、このような反転した状態での通知のリレーが、非正常稼働状態へと遷移したプロセッサの手前のプロセッサまで達すると、該プロセッサは、第３の処理の結果に基づき、第４の処理ではなく第５の処理を行うこととなるので、再び、通知のリレーの方向が反転する。
【００３８】
更に、この通知のリレーが、非正常稼働状態へと遷移したプロセッサの手前のプロセッサまで達すると、該プロセッサは、第３の処理の結果に基づき、第４の処理ではなく第５の処理を行うこととなるので、再び、通知のリレーの方向が反転する。
【００３９】
こうして、非正常稼働状態へと遷移したプロセッサ以外の各プロセッサにより、通知のリレーが、繰り返し向きを変えながら、反復的に行われる。
【００４０】
また、このように通知のリレーを行う間、各プロセッサでは、タイマによる計時動作が満了しないので、それぞれ、隣のプロセッサが正常である（異常ではない）ことを認識できる。
【００４１】
ここで、非正常稼働状態の両隣のプロセッサだけは、第３の処理にて共有メモリの状態書込領域を参照することにより、非正常稼働状態のプロセッサが非正常稼働状態である旨を認識することができる。
【００４２】
なお、例えば、通知のリレーの方向が変わった際などにおける第３の処理では、自身以外の全てのプロセッサの状態を認識するようにしても良く、この場合、非正常稼働状態のプロセッサの隣のプロセッサでなくとも、非正常稼働状態のプロセッサがどのプロセッサであるのかを特定することができる。
【００４３】
（３）複数のプロセッサが非正常稼働状態となり、残りのプロセッサは全て正常稼働状態である場合
この場合は、ループにおいて通知のリレーがなされる範囲が、非正常稼働状態の各プロセッサによって分断された状態となる点の他は、上記（２）の場合と同様である。
【００４４】
（４）プロセッサが異常状態となった場合
この場合、異常状態のプロセッサからは通知が発行されなくなるので、該プロセッサからの通知を待っているプロセッサでは、該通知を受ける以前にタイマによる計時動作が満了してしまう。よって、通知を待っているプロセッサでは、本来（正常であれば）通知を発行すべきプロセッサが異常状態となった旨を認識することができる（第９の処理）。
【発明を実施するための最良の形態】
【００４５】
以下、図面を参照して、本発明に係る実施形態について説明する。
【００４６】
〔第１の実施形態〕
図１は第１の実施形態に係るマルチプロセッサシステム１００を示すブロック図である。
【００４７】
図１に示すように、本実施形態に係るマルチプロセッサシステム１００は、例えば、第１乃至第３の３つの制御装置（プロセッサ）１、２、３と、これら第１乃至第３の制御装置１〜３により共通に使用される共有記憶領域（共有メモリ）４と、を備えている。
【００４８】
各制御装置１〜３及び共有記憶領域４は、共通のバス１４を介して相互に接続されている。
【００４９】
図２は共有記憶領域４の記憶内容を示す図である。
【００５０】
図２に示すように、共有記憶領域４は、各制御装置１〜３が自身の状態を示す状態情報を書き込むのに使用する状態書込領域４１と、各制御装置１〜３の並びを定義する制御装置並びテーブル（並び情報格納領域）１８と、を備えている。
【００５１】
このうち、状態書込領域４１は、第１の制御装置１が自身の状態を書き込むのに使用する第１制御装置状態記憶領域１５と、第２の制御装置２が自身の状態を書き込むのに使用する第２制御装置状態記憶領域１６と、第３の制御装置３が自身の状態を書き込むのに使用する第３制御装置状態記憶領域１７と、を備えている。
【００５２】
図３は各制御装置状態記憶領域１５〜１７の記憶内容を示す図である。
【００５３】
図３に示すように、各制御装置状態記憶領域１５〜１７は、対応する制御装置１〜３のシリアル番号（識別情報）を記憶する制御装置シリアル番号記憶領域１９と、対応する制御装置１〜３の状態（正常稼働状態であるか省電力状態であるか）を示す稼働状態／省電力状態識別フラグを記憶する稼働状態／省電力状態識別フラグ記憶領域２０と、を備えている。
【００５４】
図４は制御装置並びテーブル１８の記憶内容を示す図である。
【００５５】
図４に示すように、制御装置並びテーブル１８には、各制御装置１〜３の並びが記憶される。なお、図４に示す例では、第１の制御装置１の隣に第２の制御装置２と第３の制御装置３とが存在し、第２の制御装置２の隣に第３の制御装置３と第１の制御装置１とが存在し、第３の制御装置３の隣に第１の制御装置１と第２の制御装置２とが存在することを意味する。
【００５６】
また、図１に示すように、各制御装置１〜３は、隣の制御装置１〜３に対して割り込み信号などの通知５〜１０を発行する通知手段２１〜２３を備えている。
【００５７】
つまり、各制御装置１〜３は、通知５〜１０の伝達経路により、ループ状に直列に接続され、各制御装置１〜３によりループが構成されている。
【００５８】
更に、図１に示すように、各制御装置１〜３は、隣の制御装置１〜３に通知を発行してから通知が戻ってくるまでの間、計時動作を行うタイマ１１、１２、１３を備えている。
【００５９】
タイマ１１は、制御装置１の通知手段２１が隣の制御装置２，３のうちの何れか一方に通知５，８を発行したタイミングで計時を開始し、隣の制御装置２、３のうちの何れか一方からの通知１０、７を受けたタイミングで計時を終了する。同様に、タイマ１２は、制御装置２の通知手段２２が隣の制御装置１，３への通知１０，６を発行したタイミングで計時を開始する一方、隣の制御装置１，３からの通知５，９を受けたタイミングで計時を終了し、タイマ１３は、制御装置３の通知手段２３が隣の制御装置１，２への通知７、９を発行したタイミングで計時を開始する一方、隣の制御装置１，２からの通知８，６を受けたタイミングで計時を終了する。
【００６０】
各制御装置１〜３は、自身のタイマ１１〜１３が所定時間の計時動作を満了する迄の間に、自身が通知を行った側の制御装置とは反対側の隣の制御装置からの通知を受けない場合は、該制御装置を異常と判断する。
【００６１】
次に、動作を説明する。
【００６２】
図５及び図６は、図１のマルチプロセッサシステム１００における初期化処理を示すフローチャートである。
【００６３】
先ず、図５を参照して、この初期化処理の前半部分について説明する。
【００６４】
例えばマルチプロセッサシステム１００に対する電源投入などのトリガが発生すると、図５に示すように、先ず、第１の制御装置１が内部初期化を行う（ステップＳ１）。
【００６５】
次に、第１の制御装置１は、共有記憶領域４内の第１制御装置状態記憶領域１５の制御装置シリアル番号記憶領域１９（図３）には第１の制御装置１のシリアル番号を書き込む一方で（ステップＳ２）、第１制御装置状態記憶領域１５の稼働状態／省電力状態識別フラグ記憶領域２０（図３）には第１の制御装置１が正常稼動状態である旨を示す情報を書き込む（ステップＳ３）。
【００６６】
更に、第１の制御装置１は、制御装置並びテーブル１８（図４）内の第１の制御装置１に対応する記憶領域に、第１の制御装置１のシリアル番号を書き込み、更に、該第１の制御装置１の通知手段２１から、第２の制御装置２に対して通知５を発行するとともに、タイマ１１による計時を開始する（ステップＳ４）。
【００６７】
第２の制御装置２は、第１の制御装置１からの通知５を受けると、第１の制御装置１がステップＳ１〜Ｓ４にて行ったのと同様の処理を行う。
【００６８】
すなわち、第２の制御装置２は、内部初期化（ステップＳ５）を行った後、共有記憶領域４内の第２制御装置状態記憶領域１６の制御装置シリアル番号記憶領域１９には第２の制御装置２のシリアル番号を書き込む一方で（ステップＳ６）、第２制御装置状態記憶領域１６の稼働状態／省電力状態識別フラグ記憶領域２０には第２の制御装置２が正常稼動状態である旨を示す情報を書き込み（ステップＳ７）、制御装置並びテーブル１８内の第２の制御装置２に対応する記憶領域に第２の制御装置２のシリアル番号を書き込み、更に、両隣の制御装置のうち、今回受けた通知（通知５）を発行したのとは反対側の制御装置、すなわち、第３の制御装置３に対して、通知手段２２から通知６を発行するとともに、タイマ１２による計時を開始する（ステップＳ８）。
【００６９】
第３の制御装置３は、第２の制御装置２からの通知６を受けると、第２の制御装置２がステップＳ５〜Ｓ８にて行ったのと同様の処理を行う。
【００７０】
すなわち、第３の制御装置３は、内部初期化（ステップＳ９）を行った後、共有記憶領域４内の第３制御装置状態記憶領域１７の制御装置シリアル番号記憶領域１９には第３の制御装置３のシリアル番号を書き込む一方で（ステップＳ１０）、第３制御装置状態記憶領域１７の稼働状態／省電力状態識別フラグ記憶領域２０には第３の制御装置３が正常稼動状態である旨を示す情報を書き込み（ステップＳ１１）、制御装置並びテーブル１８内の第３の制御装置３に対応する記憶領域に第３の制御装置３のシリアル番号を書き込み、更に、両隣の制御装置のうち、今回受けた通知（通知６）を発行したのとは反対側の制御装置、すなわち第１の制御装置１に対して、通知手段２３から通知７を発行するとともに、タイマ１３による計時を開始する（ステップＳ１２）。
【００７１】
この時点をタイミングＡとする。
【００７２】
次に、図６を参照して、初期化処理の後半部分について説明する。
【００７３】
第３の制御装置３からの通知７を受けた第１の制御装置１は、タイマ１１を停止させるとともに、制御装置並びテーブル１８を読み込む（ステップＳ１３）。
【００７４】
ここで、タイマ１１〜１３が計時する所定時間は、初期化処理（図５の処理）に要する時間の長さよりも十分に長い時間に設定されている。このため、各制御装置１〜３が正常であれば、先のステップＳ４でタイマ１１による計時を開始してから、ステップＳ１３でタイマ１１を停止させるまでの間に、タイマ１１が所定時間の計時動作を満了することはない。
【００７５】
次に、第１の制御装置１は、先のステップＳ１３で制御装置並びテーブル１８を読み込んだ結果に基づいて、両隣の制御装置２，３のうち、今回の通知（通知７）を発行したのとは反対側の制御装置である第２の制御装置２の状態領域（第２制御装置状態領域１６）の内容を確認する（ステップＳ１４）。
【００７６】
初期化によって第２の制御装置２が正常稼動状態で起動されている場合には、第１の制御装置１は、ステップＳ１４での確認の結果として、第２の制御装置２が正常稼働状態である旨を認識する。第２の制御装置２が正常稼働状態である旨を認識すると、第１の制御装置１の通知手段２１は、両隣の制御装置２，３のうち、先のステップＳ１３にて受けた通知（通知７）を発行したのとは反対側の制御装置である第２の制御装置２に対し通知５を発行するとともに、タイマ１１による計時を開始する（ステップＳ１５）。
【００７７】
第２の制御装置２は、第１の制御装置１からの通知５を受けると、タイマ１２を停止させるとともに、制御装置並びテーブル１８を読み込む（ステップＳ１６）。
【００７８】
次に、第２の制御装置２は、先のステップＳ１６で制御装置並びテーブル１８を読み込んだ結果に基づいて、両隣の制御装置１，３のうち、今回の通知（通知５）を発行したのとは反対側の制御装置である第３の制御装置３の状態領域（第３制御装置状態領域１７）の内容を確認する（ステップＳ１７）。
【００７９】
初期化によって第３の制御装置３が正常稼動状態で起動されている場合には、第２の制御装置２は、ステップＳ１７での確認の結果として、第３の制御装置３が正常稼働状態である旨を認識する。第３の制御装置３が正常稼働状態である旨を認識すると、第２の制御装置２の通知手段２２は、両隣の制御装置１，３のうち、先のステップＳ１６にて受けた通知（通知５）を発行したのとは反対側の制御装置である第３の制御装置２に対し通知６を発行するとともに、タイマ１２による計時を開始する（ステップＳ１８）。
【００８０】
第３の制御装置３は、第２の制御装置２からの通知６を受けると、タイマ１３を停止させるとともに、制御装置並びテーブル１８を読み込む（ステップＳ１９）。
【００８１】
次に、第３の制御装置３は、先のステップＳ１９で制御装置並びテーブル１８を読み込んだ結果に基づいて、両隣の制御装置１，２のうち、今回の通知（通知６）を発行したのとは反対側の制御装置である第１の制御装置１の状態領域（第１制御装置状態領域１５）の内容を確認する（ステップＳ２０）。
【００８２】
初期化によって第１の制御装置１が正常稼動状態で起動されている場合には、第３の制御装置３は、ステップＳ２０での確認の結果として、第１の制御装置１が正常稼働状態である旨を認識する。第１の制御装置１が正常稼働状態である旨を認識すると、第３の制御装置３の通知手段２３は、両隣の制御装置１，２のうち、先のステップＳ１９にて受けた通知（通知６）を発行したのとは反対側の制御装置である第１の制御装置１に対し通知７を発行するとともに、タイマ１３による計時を開始する（ステップＳ２１）。
【００８３】
これにて、マルチプロセッサシステム１００全体の初期化が完了する。
【００８４】
この段階で、第１の制御装置１は、両隣の制御装置２，３のうち、先のステップＳ１５にて自身が通知５を発行した方とは反対側の制御装置である第３の制御装置３からの通知７を待つ状態となっている（第３の制御装置３からの通知を待つ状態に設定されている）。同様に、第２の制御装置２は、両隣の制御装置３、１のうち、先のステップＳ１８にて自身が通知６を発行した方とは反対側の制御装置である第１の制御装置１からの通知５を待つ状態となっている（第１の制御装置１からの通知を待つ状態に設定されている）。同様に、第３の制御装置３は、両隣の制御装置１，２のうち、先のステップＳ２１にて自身が通知７を発行した方とは反対側の制御装置である第２の制御装置２からの通知６を待つ状態となっている（第２の制御装置２からの通知を待つ状態に設定されている）。
【００８５】
次に、図１１を参照して、各制御装置１〜３における基本的な監視動作について説明する。
【００８６】
図１１は、各制御装置１〜３が所定周期毎に繰り返し行う動作を簡略化して示すフローチャートである。
【００８７】
図１１に示すように、各制御装置１〜３では、両隣の何れかの制御装置からの通知５〜１０を受けた場合には（ステップＳ１０１のＹｅｓ）、自身のタイマ１１〜１３を停止する（ステップＳ１０２）とともに、自身の状態領域１５〜１７を更新し（正常稼働状態である旨を書き込み：ステップＳ１０３）、両隣の制御装置の状態を確認する（ステップＳ１０４）。
【００８８】
そして、各制御装置１〜３は、ステップＳ１０４での確認の結果、両隣の制御装置のうち、今回受けた通知を発行したのとは反対側の制御装置が正常稼働状態である旨を認識した場合には（ステップＳ１０５のＹｅｓ）、該制御装置（今回受けた通知を発行したのとは反対側の制御装置）に対して、自身の通知手段２１〜２３による通知５〜１０を発行するとともに、自身のタイマ１１〜１３による計時を開始し（ステップＳ１０６）、図１１の処理を終了する。
【００８９】
また、両隣の制御装置のうち、今回受けた通知を発行したのとは反対側の制御装置が正常稼働状態でない旨を認識した場合には（ステップＳ１０５のＮｏ）、ステップＳ１０４での確認の結果、今回受けた通知を発行した側の制御装置が正常稼働状態である旨を認識した場合には（ステップＳ１０７のＹｅｓ）、該制御装置（今回受けた通知を発行した側の制御装置）に対して、自身の通知手段２１〜２３による通知５〜１０を発行するとともに、自身のタイマ１１〜１３による計時を開始し（ステップＳ１０８）、図１１の処理を終了する。
【００９０】
また、両側の制御装置の何れもが正常稼働状態でない旨を認識した場合（ステップＳ１０７のＮｏ）、ステップＳ１０３以降の処理を行う。
【００９１】
また、両隣の何れの制御装置からも通知５〜１０を受けない場合には（ステップＳ１０１のＮｏ）、自身のタイマ１１〜１３が所定時間の計時を満了したか否かを判定し、満了していないと判定した場合には（ステップＳ１０９のＮｏ）、図１１の処理を終了する。
【００９２】
また、自身のタイマ１１〜１３が満了したと判定した場合には（ステップＳ１０９のＹｅｓ）、通知待ち側の制御装置に異常が発生した旨を認識し（ステップＳ１１０）、図１１の処理を終了する。
【００９３】
次に、図７を参照して、各制御装置１〜３が正常稼働状態である場合の動作を説明する。
【００９４】
図７は、各制御装置１〜３が正常稼働状態である場合の、図１のマルチプロセッサシステム１００における監視動作を示すフローチャートである。
【００９５】
なお、図７の動作は、初期化処理に続いて行われる。
【００９６】
第１の制御装置１は、通知待ち側の制御装置である第３の制御装置３より発行された通知７を受けると、タイマ１１を停止させる（ステップＳ３１）とともに、共有記憶領域４内の第１制御装置状態領域１５の記憶内容を更新する。すなわち、第１の制御装置１は、第１制御装置状態領域１５に正常稼動状態である旨を示す情報を書き込む（ステップＳ３２）。
【００９７】
更に、第１の制御装置１は、両隣の制御装置２，３の状態領域、すなわち第２及び第３制御装置状態領域１６、１７を読み込み、その読み込み結果に基づいて、第２及び第３の制御装置２，３の状態を確認する（ステップＳ３３）。
【００９８】
ステップＳ３３での確認の結果、第１の制御装置１は、両隣の制御装置２，３のうち、今回の通知（通知７）を発行したのとは反対側の制御装置である第２の制御装置２が正常稼働状態であると認識するので（図１１のステップＳ１０５のＹｅｓに相当）、該第２の制御装置２に対して通知５を発行するとともに、タイマ１１による計時を開始する（ステップＳ３５：図１１のステップＳ１０６に相当）。
【００９９】
次に、第２の制御装置２は、通知待ち側の制御装置である第１の制御装置１から先のステップＳ３５にて発行された通知５を受けると、タイマ１２を停止させる（ステップＳ３６）とともに、共有記憶領域４内の第２制御装置状態領域１６の記憶内容を更新する。すなわち、第２の制御装置２は、第２制御装置状態領域１６に正常稼動状態である旨を示す情報を書き込む（ステップＳ３７）。
【０１００】
更に、第２の制御装置２は、両隣の制御装置１，３の状態領域、すなわち第１及び第３制御装置状態領域１５、１７を読み込み、その読み込み結果に基づいて、第１及び第３の制御装置１，３の状態を確認する（ステップＳ３８）。
【０１０１】
ステップＳ３８での確認の結果、第２の制御装置２は、両隣の制御装置１，３のうち、今回の通知（通知５）を発行したのとは反対側の制御装置である第３の制御装置３が正常稼働状態であると認識するので（図１１のステップＳ１０５のＹｅｓに相当）、該第３の制御装置３に対して通知６を発行するとともに、タイマ１２による計時を開始する（ステップＳ４０：図１１のステップＳ１０６に相当）。
【０１０２】
次に、第３の制御装置３は、通知待ち側の制御装置である第２の制御装置２から先のステップＳ４０にて発行された通知６を受けると、タイマ１３を停止させる（ステップＳ４１）とともに、共有記憶領域４内の第３制御装置状態領域１７の記憶内容を更新する。すなわち、第３の制御装置３は、第３制御装置状態領域１７に正常稼動状態である旨を示す情報を書き込む（ステップＳ４２）。
【０１０３】
更に、第３の制御装置３は、両隣の制御装置１，２の状態領域、すなわち第１及び第２制御装置状態領域１５、１６を読み込み、その読み込み結果に基づいて、第１及び第２の制御装置１，２の状態を確認する（ステップＳ４３）。
【０１０４】
ステップＳ４３での確認の結果、第３の制御装置３は、両隣の制御装置１，２のうち、今回の通知（通知６）を発行したのとは反対側の制御装置である第１の制御装置１が正常稼働状態であると認識するので（図１１のステップＳ１０５のＹｅｓに相当）、該第１の制御装置１に対して通知７を発行するとともに、タイマ１３による計時を開始する（ステップＳ４５）。
【０１０５】
以後、各制御装置１〜３が正常稼働状態である限りは、ステップＳ３１〜Ｓ４５の処理が繰り返される。
【０１０６】
ここで、タイマ１１〜１３が計時する所定時間は、図７に示す一連の監視動作（ステップＳ３１〜Ｓ４５）の１サイクルに要する時間の長さよりも十分に長い時間に設定されている。このため、各制御装置１〜３が正常稼働状態であれば、図７のステップＳ３５にてタイマ１１による計時を開始してから次のサイクルでの図７のステップＳ３１にてタイマ１１を停止させるまでの間にタイマ１１が所定時間の計時動作を満了することはなく、同様に、図７のステップＳ４０にてタイマ１２による計時を開始してから次のサイクルでの図７のステップＳ３６にてタイマ１２を停止させるまでの間にタイマ１２が所定時間の計時動作を満了することはなく、図７のステップＳ４５にてタイマ１３による計時を開始してから次のサイクルでの図７のステップＳ３１にてタイマ１３を停止させるまでの間にタイマ１３が所定時間の計時動作を満了することはなく、各制御装置１〜３は、隣の制御装置の異常を認識することがない（図１１のステップＳ１０９のＮｏに相当）。
【０１０７】
また、各制御装置１〜３が正常稼働状態である限りは、図７に示す一連の監視動作（ステップＳ３１〜Ｓ４５）により、各制御装置１〜３は、常に、通知待ち側の制御装置からのみ通知５〜７を受けることとなる（通知待ち側とは反対側の制御装置からの通知８〜１０は受けない）。よって、各制御装置１〜３は、他の何れかの制御装置が省電力状態（非正常稼働状態）となったと認識することもない。
【０１０８】
よって、各制御装置１〜３により、他の制御装置が正常稼働状態である旨の監視を実行できているといえる。
【０１０９】
なお、各制御装置が担うその他の処理（監視動作以外の処理：例えば、演算処理、表示制御処理、音声制御処理など）についての説明は省略するが、該その他の処理は、図７及び図１１に示す処理、並びに、図８乃至図１０に示す処理（後述）とは別に、各制御装置の協働により或いは各制御装置が独立で、行うようになっている。
【０１１０】
図８は、第１の制御装置１が正常稼働状態から省電力状態へ遷移する場合の監視動作を示すフローチャートである。
【０１１１】
第１の制御装置１が省電力状態への遷移を開始する（ステップＳ５１）に際しては、該第１の制御装置１が自身の状態領域を更新する。すなわち、第１の制御装置１は、第１制御装置状態領域１５に省電力状態である旨を示す情報を書き込む（ステップＳ５２）。
【０１１２】
更に、第１の制御装置１の通知手段２１は、両隣の制御装置２，３のうち、自身にとってそれまで通知待ち側となっていた第３の制御装置３に対して、通知８を発行する（ステップＳ５３）。
【０１１３】
その後、第１の制御装置１は省電力状態へ遷移する（ステップＳ５４）。
【０１１４】
一方、第３の制御装置３は、ステップＳ５３の後、第１の制御装置１からの通知８を受けると、タイマ１３を停止させ（ステップＳ５５）、該第３の制御装置３の状態領域を更新する。すなわち、第３の制御装置３は、第３制御装置状態領域１７に正常稼働状態である旨の情報を書き込む（ステップＳ５６）。
【０１１５】
更に、第３の制御装置３は、両隣の制御装置１，２の状態領域、すなわち第１及び第２制御装置状態領域１５、１６を読み込み、その読み込み結果に基づいて、第１及び第２の制御装置１，２の状態を確認する（ステップＳ５７）。
【０１１６】
ステップＳ５７での確認の結果、第３の制御装置３は、両隣の制御装置１，２のうち、今回の通知（通知８）を発行したのとは反対側の制御装置である第２の制御装置２が正常稼働状態であると認識するので（図１１のステップＳ１０５のＹｅｓに相当）、該第２の制御装置２に対して通知９を発行するとともに、タイマ１３による計時を開始する（ステップＳ５９：図１１のステップＳ１０６に相当）。
【０１１７】
なお、仮に、第１の制御装置１に加えて第２の制御装置２も省電力状態となっている場合には、第３の制御装置３は、自身の両隣の制御装置１，２が何れも正常稼働状態でないと判定し（図１１のステップＳ１０７のＮｏに相当）、以後は、両隣の何れかの制御装置が省電力状態から正常稼働状態に復帰するまで、ステップＳ５６以降の処理（図１１のステップＳ１０４以降の処理に相当）を繰り返す。
【０１１８】
ここで、第３の制御装置３は、ステップＳ５３の後のステップＳ５５では、自身にとってそれまで通知待ち側となっていた第２の制御装置２からではなく、第１の制御装置１からの通知８を受けたことから、自身以外の何れかの制御装置（第１の制御装置１又は第２の制御装置２）が正常稼働状態でない（非正常稼働状態である）ことを認識する。
【０１１９】
更に、第３の制御装置３は、ステップ５７での確認の結果により、第１の制御装置１が省電力状態（非正常稼働状態）である旨を認識することができる。
【０１２０】
次に、第２の制御装置２は、第３の制御装置３からの通知９を受けると、タイマ１２を停止させ（ステップＳ６１）、該第２の制御装置２の状態領域を更新する。すなわち、第２の制御装置２は、第２制御装置状態領域１６に正常稼働状態である旨の情報を書き込む（ステップＳ６２）。
【０１２１】
更に、第２の制御装置２は、両隣の制御装置１，３の状態領域、すなわち第１及び第３制御装置状態領域１５、１７を読み込み、その読み込み結果に基づいて、第１及び第３の制御装置１，３の状態を確認する（ステップＳ６３）。
【０１２２】
ステップＳ５７での確認の結果、第２の制御装置２は、両隣の制御装置１，３のうち、今回の通知（通知９）を発行したのとは反対側の制御装置である第１の制御装置１が正常稼働状態でないと（省電力状態である）認識し（図１１のステップＳ１０５のＮｏに相当）、更に、今回の通知（通知９）を発行した方の第３の制御装置３は正常稼働状態であると認識する（図１１のステップＳ１０７のＹｅｓに相当）。
【０１２３】
よって、第２の制御装置２は、第１の制御装置１ではなく、第３の制御装置３に対して、通知６を発行するとともに、タイマ１２による計時を開始する（ステップＳ６５：図１１のステップＳ１０８に相当）。
【０１２４】
なお、仮に、第１の制御装置１に加えて第３の制御装置３も省電力状態となっている場合には、第２の制御装置２は、自身の両隣の制御装置１，３が何れも正常稼働状態でないと判定し（図１１のステップＳ１０７のＮｏに相当）、以後は、両隣の何れかの制御装置が省電力状態から正常稼働状態に復帰するまで、ステップＳ６２以降の処理（図１１のステップＳ１０４以降の処理に相当）を繰り返す。
【０１２５】
ここで、第２の制御装置２も、ステップＳ６１では、自身にとってそれまで通知待ち側となっていた第１の制御装置１からではなく、第３の制御装置３からの通知９を受けたことから、自身以外の何れかの制御装置（第１の制御装置１又は第３の制御装置３）が正常稼働状態でない（非正常稼働状態である）ことを認識する。
【０１２６】
更に、第２の制御装置２は、ステップ６３での確認の結果により、第１の制御装置１が省電力状態（非正常稼働状態）である旨を認識することができる。
【０１２７】
以後は、第１の制御装置１が省電力状態である一方で第２及び第３の制御装置２，３が正常稼働状態である限りは、ステップＳ５５〜Ｓ６５の処理が繰り返される。
【０１２８】
ここで、タイマ１１〜１３が計時する所定時間は、図８に示すステップＳ５５〜Ｓ６５の処理に要する時間の長さよりも十分に長い時間に設定されている。このため、第２及び第３の制御装置２，３が正常稼働状態であれば、図８のステップＳ５９にてタイマ１３による計時を開始してから次のサイクルでの図８のステップＳ５５にてタイマ１３を停止させるまでの間にタイマ１３が所定時間の計時動作を満了することはなく、同様に、図８のステップＳ６５にてタイマ１２による計時を開始してから次のサイクルでの図８のステップＳ６１にてタイマ１２を停止させるまでの間にタイマ１２が所定時間の計時動作を満了することはなく、各制御装置１〜３は、隣の制御装置の異常を認識することがない（図１１のステップＳ１０９のＮｏに相当）。
【０１２９】
図９は、第１の制御装置１が省電力状態から抜けて正常稼動状態へ遷移するときの動作を示すフローチャートである。
【０１３０】
第１の制御装置１は、通知待ち側の制御装置である第３の制御装置３からの通知７を受けた場合に、省電力状態から正常稼動状態へ遷移する。
【０１３１】
すなわち、第１の制御装置１を省電力状態から正常稼動状態へ遷移させるには、第３の制御装置３から通知７を発行させる（ステップＳ６６）。
【０１３２】
この通知７を受けた第１の制御装置１は、正常稼動状態へ遷移し、以後は、図７のステップＳ３１（タイミングＢ）以降の処理が行われる。
【０１３３】
図１０は、第１の制御装置１が暴走した場合（第１の制御装置１に異常が発生した場合）の監視動作を示すフローチャートである。
【０１３４】
例えば図７の監視動作を行ううちに、第１の制御装置１が異常状態となると（ステップＳ６７）、第１の制御装置１の通知手段２１からの通知５が第２の制御装置２に対して発行されなくなるので、やがて、第２の制御装置２のタイマ１２による計時動作が満了する（ステップＳ６８）。
【０１３５】
タイマ１２による計時動作が満了すると、第２の制御装置２は、第１の制御装置１が異常状態であると認識する。
【０１３６】
更に、第２の制御装置２は、通知待ち側とは反対側の制御装置である第３の制御装置３に対して通知６を発行するとともに、タイマ１２による計時を開始する（図８のステップＳ６９）。
【０１３７】
以後は、図８のステップＳ５５〜Ｓ６５以降の処理が繰り返される。
【０１３８】
なお、各制御装置１〜３は、他の制御装置の異常を認識したり、他の制御装置が正常稼働状態でなくなったこと（非正常稼働状態となったこと）を認識した場合には、例えば、アラームを発して、その旨を報知したり、或いは、異常又は非正常稼働状態となった制御装置からの信号入力を待つ処理を中止することができ、待っても来ない信号を待ち続ける不具合を回避できる。
【０１３９】
以上のような実施形態によれば、ある制御装置（制御装置１〜３の何れか）が障害の発生により異常状態となり動作不能状態となったり、ある制御装置が他の制御装置とは非同期で省電力状態に遷移したりしても、それらの状態を、他の制御装置が適切に監視（認識）することができる。
【０１４０】
またシステム１００の全体動作が、複数の制御装置１〜３間の協働によりなされる場合でも、各制御装置１〜３毎の独立によりなされる場合でも、監視方法に差異はなく、システム機能として自由度や拡張性を持つことができる効果を有する。
【０１４１】
更に監視処理が単純ルーチン化され、各制御装置１〜３の処理負担を軽減させることができる。
【０１４２】
また、例えば、各制御装置状態領域１５〜１７と並びテーブル１８を定期的にシステム１００の不揮発記憶領域にバックアップすることによって、システム１００全体の状態履歴情報を残すことができる。
【０１４３】
以下、本実施形態による効果について、状況別に詳細に説明する。
【０１４４】
（１）全ての制御装置１〜３が正常稼働状態である場合、各制御装置１〜３は、順次、図１１のステップＳ１０６の処理を行うことにより、受けた通知を発行したのとは反対側の制御装置１〜３に対して通知を発行することとなる（一方向にのみ通知のリレーが行われる）。つまり、各制御装置１〜３は、常に、両隣のうち片側の制御装置１〜３からの通知を受けることとなり、該通知を受ける度に、図１１のステップＳ１０２〜Ｓ１０６の処理を行う。
【０１４５】
また、各制御装置１〜３では、タイマ１１〜１３による計時動作が満了せず、且つ、両隣のうち反対側のプロセッサからは通知を受けないため、隣のプロセッサが正常である（異常ではない）ことを認識できるとともに、自身以外のプロセッサが省電力状態や休止状態などの非正常稼働状態ではないことを認識できる。
【０１４６】
（２）ある１つの制御装置（例えば、第１の制御装置１）が非正常稼働状態となり、残りの制御装置（例えば、第２及び第３の制御装置２，３）は全て正常稼働状態である場合は、非正常稼働状態に遷移する第１の制御装置１は、図８のステップＳ５３の処理により、それまでとは反対側の制御装置（例えば、第３の制御装置３）に対して通知を発行する。
【０１４７】
よって、この通知を受けた制御装置（例えば、第３の制御装置３）は、自身以外の何れかの制御装置が非正常稼働状態である旨を認識することができる。
【０１４８】
更に、この通知を受けた（例えば、第３の制御装置３）は、図１１のステップＳ１０１〜Ｓ１０５、Ｓ１０７の処理を経て、ステップＳ１０６ではなくステップＳ１０８の処理を行う。これにより、通知のリレーの方向が反転する。
【０１４９】
以後は、その反転したままの方向で、順次、通知のリレーがなされるので、非正常稼働状態へと遷移した制御装置（例えば、第１の制御装置１）以外の各制御装置（例えば、第２及び第３の制御装置２，３）は、自身以外の何れかの制御装置が非正常稼働状態である旨を認識できる。
【０１５０】
更に、このような反転した状態での通知のリレーが、非正常稼働状態へと遷移した制御装置（例えば、第１の制御装置１）の手前の制御装置（例えば、第２の制御装置２）まで達すると、該制御装置は、図１１のステップＳ１０４の処理の結果に基づき、ステップＳ１０６の処理ではなくステップＳ１０８の処理を行うこととなるので、再び、通知のリレーの方向が反転する。
【０１５１】
更に、この通知のリレーが、非正常稼働状態へと遷移した制御装置（例えば、第１の制御装置１）の手前の制御装置（例えば、第３の制御装置３）まで達すると、該制御装置は、図１１のステップＳ１０４の処理の結果に基づき、ステップＳ１０６の処理ではなくステップＳ１０８の処理を行うこととなるので、再び、通知のリレーの方向が反転する。
【０１５２】
こうして、非正常稼働状態へと遷移した制御装置（例えば、第１の制御装置１）以外の各制御装置（例えば、第２及び第３の制御装置２，３）により、通知のリレーが、繰り返し向きを変えながら、反復的に行われる。
【０１５３】
また、このように通知のリレーを行う間、各制御装置（例えば、第２及び第３の制御装置２，３）では、タイマ１２，１３による計時動作が満了しないので、それぞれ、隣の制御装置が正常である（異常ではない）ことを認識できる。
【０１５４】
更に、非正常稼働状態の制御装置（例えば、第１の制御装置１）の両隣の制御装置（例えば、第２及び第３の制御装置２，３）は、図１１のステップＳ１０４の処理により、非正常稼働状態の制御装置（例えば、第１の制御装置１）が非正常稼働状態である旨を認識することができる。
【０１５５】
なお、例えば、制御装置の数が４つ以上の場合には、例えば、通知のリレーの方向が変わった際などにおける図１１のステップＳ１０４の処理にて、自身以外の全ての制御装置の状態を認識するようにしても良く、この場合、非正常稼働状態の制御装置の隣の制御装置でなくとも、非正常稼働状態の制御装置がどの制御装置であるのかを特定することができる。
【０１５６】
（３）複数の制御装置が非正常稼働状態となり、残りの制御装置は全て正常稼働状態である場合
この場合は、ループにおいて通知のリレーがなされる範囲が、非正常稼働状態の各各制御装置によって分断された状態となる点の他は、上記（２）の場合と同様である。
【０１５７】
なお、本実施形態の場合、制御装置が３つだけであるため、２つの制御装置（例えば、第２及び第３の制御装置２，３）が非正常稼働状態となり、残る１つの制御装置（例えば、第１の制御装置１）のみが正常稼働状態である場合には、該１つの制御装置のみが、図１１のステップＳ１０２以降の処理を繰り返す。
【０１５８】
（４）何れかの制御装置（例えば、第１の制御装置１）が異常状態となった場合
この場合、異常状態の制御装置（例えば、第１の制御装置１）からは通知が発行されなくなるので、該制御装置からの通知を待っている制御装置（例えば、第２の制御装置２）では、該通知を受ける以前にタイマ（例えば、タイマ１２）による計時動作が満了してしまう。よって、通知を待っている制御装置では、本来（正常であれば）通知を発行すべき制御装置が異常状態となった旨を認識することができる。
【０１５９】
なお、図１１のステップＳ１０４の処理にて、自身以外の全ての制御装置の状態を認識する場合、異常状態の制御装置からの通知を待っている制御装置でなくとも、異常状態の制御装置が発生した旨、並びに、異常状態の制御装置がどの制御装置であるのかを認識することができる。
【０１６０】
〔第２の実施形態〕
第２の実施形態では、ループを構成する制御装置を増減することが可能な例について説明する。
【０１６１】
図１２は、ループを構成する制御装置を増減させる場合の動作を説明するためのマルチプロセッサシステム１００を示すブロック図である。
【０１６２】
例えば、第３の制御装置３の隣（第２の制御装置２とは反対側の隣）に、新たな制御装置ｎを追加する場合、第３の制御装置３を休止させ、該第３の制御装置３を一旦監視対象から外した後、新たに制御装置ｎを追加し、その後、第３の制御装置３を復旧させる（正常稼働状態とさせる）。
【０１６３】
なお、共有記憶領域４の各制御装置状態領域及び並びテーブル１８には、新たに追加される制御装置用の記憶領域が確保されており、追加された制御装置が初期化を行うことにより、その両隣の制御装置は該追加された制御装置を隣の制御装置であると認識する。
【０１６４】
ここで、新たな制御装置を追加する処理は、例えば、マルチプロセッサシステム１００全体の電源（ループを構成する全制御装置の電源）を遮断してから行うようにしても良いが、例えば、追加される制御装置からの割り込み信号で、初期化が開始されるようにすることにより、電源を遮断することなく、制御装置の追加を行うことができる。
【０１６５】
他方、制御装置ｎをループから外す場合、制御装置ｎを停止させ、該制御装置ｎを一旦監視対象から外した後、該制御装置ｎをループから外す。
【０１６６】
第２の実施形態によれば、マルチプロセッサシステム１００の規模の最適化を図ることができる。
【０１６７】
〔第３の実施形態〕
第３の実施形態では、第１乃至第３制御装置状態記憶領域１５〜１７が、図１３に示すように、制御装置シリアル番号記憶領域１９と、稼働状態／省電力状態識別フラグ記憶領域２０に加えて、カウント情報記憶領域３１を備えている例について説明する。
【０１６８】
第３の実施形態の場合、各制御装置１〜３は、図１１のステップＳ１０３の処理（自身の状態領域更新）を行う度に、自身の状態記憶領域１５〜１７のカウント情報記憶領域３１の値を「１」ずつインクリメントする。
【０１６９】
これにより、各制御装置１〜３は、図１１のステップＳ１０４（両隣の状態確認）にて両隣の制御装置の状態記憶領域１５〜１７のカウント情報記憶領域３１の値を確認することによって、カウント情報記憶領域３１の値が前回確認時と変化していない制御装置を異常状態であると認識することができる。
【０１７０】
よって、各制御装置１〜３は、隣の制御装置が異常状態となった場合に、該異常状態となった制御装置の稼働状態／省電力状態識別フラグ記憶領域２０の記憶内容が、正常稼働状態である旨を示していたとしても、該異常状態となった制御装置が異常状態であると認識することができる。
【０１７１】
また、この場合にも、図１１のステップＳ１０４にて、両隣の制御装置に限らず、自身以外の全ての制御装置の状態を確認するようにすることも好ましく、このようにすることにより、異常状態となった制御装置の隣の制御装置でなくとも、異常状態の制御装置が発生した旨、並びに、異常状態の制御装置がどの制御装置であるのかを認識することができる。
【０１７２】
なお、カウント情報記憶領域３１の値には、上限を設けても良く、例えば、上限値となった後、更にカウント動作がなされる場合には、再び値が「０」に戻るようにしても良い。
【０１７３】
上記の各実施形態で説明したマルチプロセッサシステム１００は、例えば、携帯電話機或いはその他の携帯情報端末装置や、パーソナルコンピュータなど、複数の制御装置（例えば、ＣＰＵ）を備える装置が備えるものとすることができる。
【０１７４】
また、上記の第１の実施形態では、制御装置が３つの例を説明したが、制御装置が２つ或いは４つ以上であっても、各制御装置の動作は同様である。
【図面の簡単な説明】
【０１７５】
【図１】第１の実施形態に係るシステムを示すブロック図である。
【図２】共有記憶領域の記憶内容を示す図である。
【図３】各制御装置状態記憶領域の記憶内容を示す図である。
【図４】制御装置並びテーブルの記憶内容を示す図である。
【図５】図１のシステムにおける初期化処理の前半部分を示すフローチャートである。
【図６】図１のシステムにおける初期化処理の後半部分を示すフローチャートである。
【図７】図１のシステムにおける監視動作（各制御装置が正常稼働状態の場合）を示すフローチャートである。
【図８】図１のシステムにおける１つの制御装置が正常稼働状態から省電力状態へ遷移する場合の監視動作を示すフローチャートである。
【図９】図１のシステムにおいて、省電力状態だった制御装置が正常稼動状態へ遷移するときの動作を示すフローチャートである。
【図１０】図１のシステムにおける１つの制御装置に異常が発生した場合の監視動作を示すフローチャートである。
【図１１】各制御装置が行う基本的な処理を示すフローチャートである。
【図１２】第２の実施形態に係るシステムを示すブロック図である。
【図１３】第３の実施形態の場合の制御装置状態記憶領域の記憶内容を示す図である。
【符号の説明】
【０１７６】
１      第１の制御装置（プロセッサ）
２      第２の制御装置（プロセッサ）
３      第３の制御装置（プロセッサ）
４      共有記憶領域（共有メモリ）
１１    タイマ
１２    タイマ
１３    タイマ
１５    第１制御装置状態領域（状態書込領域）
１６    第２制御装置状態領域（状態書込領域）
１７    第３制御装置状態領域（状態書込領域）
２１    通知手段
２２    通知手段
２３    通知手段
１００  マルチプロセッサシステム
ｎ      制御装置（プロセッサ）
【図１】
2006155193.tif 000003
【図２】
2006155193.tif 000004
【図３】
2006155193.tif 000005
【図４】
2006155193.tif 000006
【図５】
2006155193.tif 000007
【図６】
2006155193.tif 000008
【図７】
2006155193.tif 000009
【図８】
2006155193.tif 000010
【図９】
2006155193.tif 000011
【図１０】
2006155193.tif 000012
【図１１】
2006155193.tif 000013
【図１２】
2006155193.tif 000014
【図１３】
2006155193.tif 000015