(57)【特許請求の範囲】
【請求項１】
共有メモリを複数のプロセッサにより共有するマルチプロセッサシステムにおいて、
各前記プロセッサによる前記共有メモリに対するアクセスを管理する競合判定部であって、各前記プロセッサからの前記共有メモリに対するアクセス要求を受け付け、アクセス競合の発生時には、当該アクセスを許可する前記プロセッサを選択し決定する競合判定部を備え、
各前記プロセッサは、
他の前記プロセッサと通信し、前記共有メモリに対するアクセスに関する情報を交換し前記共有メモリへのアクセスを制御するアクセス制御手段と、
他の前記プロセッサとの間で交換された情報に基づいて、前記共有メモリに対する予め設定されたアクセスを実行するアクセス手段を備え、
各前記プロセッサの前記アクセス制御手段は、
前記共有メモリに記録されたデータの更新処理が終了した場合に、他のプロセッサに対して、当該更新されたデータを読み込ませるための要求であるデータ再読込要求を通知し、
前記共有メモリに記録されたデータの更新処理が失敗した場合に、他のプロセッサに対して、当該更新に失敗したデータの更新処理を引き継がせるための要求であるデータ代理更新要求を通知し、
前記共有メモリへのアクセス要求に対して前記競合判定部によるアクセスの許可が得られない場合に、他のプロセッサへ前記競合判定部に対する処理の終了の要求であるリセット要求を通知し、
前記データ再読込要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ再読込要求において指定される当該更新されたデータの読み込みを要求し、
前記データ代理更新要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ代理更新要求において指定される当該更新に失敗したデータの更新を要求し、
前記競合判定部に対するリセット要求を他の前記プロセッサから受けた場合に、前記競合判定部に対して前記リセットを要求し、
各前記プロセッサのそれぞれが連携して、前記共有メモリをアクセスすることを特徴とするマルチプロセッサシステム。
【請求項２】
前記競合判定部は、
前記プロセッサから前記リセット要求を受け付けた場合に、各前記プロセッサ及び前記競合判定部をリセットすることを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
各前記プロセッサは、
前記競合判定部からの応答に異常を検出した場合に、前記リセット要求を発信することを特徴とする請求項１又は請求項２に記載のマルチプロセッサシステム。
【請求項４】
通信ネットワークを介して外部のサーバから取得するデータの、前記共有メモリへの記録処理を、各前記プロセッサが連携して実行することを特徴とする請求項１から請求項３のいずれか一つに記載のマルチプロセッサシステム。
【請求項５】
前記共有メモリを、フラッシュメモリとすることを特徴とする請求項１から請求項４のいずれか一つに記載のマルチプロセッサシステム。
【請求項６】
組み込み型とすることを特徴とする請求項１から請求項５のいずれか一つに記載のマルチプロセッサシステム。
【請求項７】
共有メモリを複数のプロセッサにより共有するマルチプロセッサシステムの共有メモリ制御方法において、
各前記プロセッサによる前記共有メモリに対するアクセスを管理する競合判定部を備え、
各前記プロセッサは、
他の前記プロセッサと通信し、前記共有メモリに対するアクセスに関する情報を交換し前記共有メモリへのアクセスを制御するアクセス制御手段と、
他の前記プロセッサとの間で交換された情報に基づいて、前記共有メモリに対する予め設定されたアクセスを実行するアクセス手段を備え、
前記競合管理部が、各前記プロセッサからの前記共有メモリに対するアクセス要求を受け付け、アクセス競合の発生時には、当該アクセスを許可する前記プロセッサを選択し決定するステップを有し、
各前記プロセッサの前記アクセス制御手段が、
前記共有メモリに記録されたデータの更新処理が終了した場合に、他のプロセッサに対して、当該更新されたデータを読み込ませるための要求であるデータ再読込要求を通知するステップと、
前記共有メモリに記録されたデータの更新処理が失敗した場合に、他のプロセッサに対して、当該更新に失敗したデータの更新処理を引き継がせるための要求であるデータ代理更新要求を通知するステップと、
前記共有メモリへのアクセス要求に対して前記競合判定部によるアクセスの許可が得られない場合に、他のプロセッサへ前記競合判定部に対する処理の終了の要求であるリセット要求を通知するステップと、
前記データ再読込要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ再読込要求において指定される当該更新されたデータの読み込みを要求するステップと、
前記データ代理更新要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ代理更新要求において指定される当該更新に失敗したデータの更新を要求するステップと、
前記競合判定部に対するリセット要求を他の前記プロセッサから受けた場合に、前記競合判定部に対して前記リセットを要求するステップを有し、
各前記プロセッサのそれぞれが連携して、前記共有メモリをアクセスすることを特徴とする共有メモリ制御方法。
【請求項８】
前記競合判定部は、
前記プロセッサから前記リセット要求を受け付けた場合に、各前記プロセッサ及び前記競合判定部をリセットするステップを備えることを特徴とする請求項７に記載の共有メモリ制御方法。
【請求項９】
各前記プロセッサは、
前記競合判定部からの応答に異常を検出した場合に、自動的に前記リセット要求を発信するステップを備えることを特徴とする請求項７又は請求項８に記載の共有メモリ制御方法。
【請求項１０】
通信ネットワークを介して外部のサーバから取得するデータの、前記共有メモリへの記録処理を、各前記プロセッサが連携して実行することを特徴とする請求項７から請求項９のいずれか一つに記載の共有メモリ制御方法。
【請求項１１】
共有メモリを複数のプロセッサにより共有するマルチプロセッサシステムの、コンピュータを制御することにより、各前記プロセッサの共有メモリに対するアクセスを制御する共有メモリ制御プログラムにおいて、
各前記プロセッサによる前記共有メモリに対するアクセスを管理する競合判定部であって、各前記プロセッサからの前記共有メモリに対するアクセス要求を受け付け、アクセス競合の発生時には、当該アクセスを許可する前記プロセッサを選択し決定する競合判定部を備え、
各前記プロセッサに、
他の前記プロセッサと通信し、前記共有メモリに対するアクセスに関する情報を交換し前記共有メモリへのアクセスを制御するアクセス制御処理と、
他の前記プロセッサとの間で交換された情報に基づいて、前記共有メモリに対する予め設定されたアクセスを実行するアクセス処理を実行させると共に、
各前記プロセッサの前記アクセス制御処理において、
前記共有メモリに記録されたデータの更新処理が終了した場合に、他のプロセッサに対して、当該更新されたデータを読み込ませるための要求であるデータ再読込要求を通知する処理と、
前記共有メモリに記録されたデータの更新処理が失敗した場合に、他のプロセッサに対して、当該更新に失敗したデータの更新処理を引き継がせるための要求であるデータ代理更新要求を通知する処理と、
前記共有メモリへのアクセス要求に対して、
前記競合判定部によるアクセスの許可が得られない場合に、他のプロセッサへ前記競合判定部に対する処理の終了の要求であるリセット要求を通知する処理と、
前記データ再読込要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ再読込要求において指定される当該更新されたデータの読み込みを要求する処理と、
前記データ代理更新要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ代理更新要求において指定される当該更新に失敗したデータの更新を要求する処理と、
前記競合判定部に対するリセット要求を他の前記プロセッサから受けた場合に、前記競合判定部に対して前記リセットを要求する処理とを実行させることを特徴とする共有メモリ制御プログラム。
【請求項１２】
各前記プロセッサに、
前記競合判定部からの応答に異常を検出した場合に、自動的に前記リセット要求を発信する処理を実行させることを特徴とする請求項１１に記載の共有メモリ制御プログラム。
【請求項１３】
通信ネットワークを介して外部のサーバから取得するデータの、前記共有メモリへの記録処理を、各前記プロセッサに連携させて実行させることを特徴とする請求項１１又は請求項１２に記載の共有メモリ制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチプロセッサシステムに関し、特に、複数の各プロセッサによる共有メモリの効率の良いアクセスを制御するマルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラムに関する。
【０００２】
【従来の技術】
マルチプロセッサシステムの、各プロセッサによる共有メモリへのアクセスを制御す従来の技術には、例えば、特開平０４−２９１０８５号公報に開示されたメモリアクセス方式がある。
【０００３】
この特開平０４−２９１０８５号公報に開示された従来技術では、マルチプロセッサシステムをシステムバスを介して構成しているＣＰＵ上、あるいは当該システムバスに接続された別ポート上に、共有メモリとしての２ポートメモリ、及びその２ポートメモリへのアクセス権を設定するアクセスフラグエリアを設け、このアクセスフラグエリアにセットされたアクセスフラグを有するＣＰＵのみに、前記２ポートメモリへのアクセスを認める方式が提案されている。
【０００４】
また他にも、例えば、特開平０３−０５４６６０号公報に開示されたマルチプロセッサシステムにおける共有メモリ管理方式がある。
【０００５】
この特開平０３−０５４６６０号公報に開示された従来技術では、ＣＰＵが共有メモリにアクセスする必要があると、メモリリクエスト信号を“ＯＮ”状態にする。そして、優先順位制御回路が、複数のプロセッサからアクセス要求に基づいて排他制御を行ない、いずれか１つのプロセッサに対しメモリ獲得応答を返送する。このメモリ獲得応答を返したプロセッサに対応するバスゲート回路にメモリバスを接続状態にする旨の指示を出すと、そのバスゲート回路が、プロセッサとメモリとを接続状態にする。これにより、マルチプロセッサシステム全体の性能を低下させることなく、共有メモリへのアクセス要求の排他制御を行なう方式が提案されている。
【０００６】
【発明が解決しようとする課題】
しかし、上述された従来のシステムでは、以下に述べるような問題点があった。
【０００７】
第１に、従来のマルチプロセッサシステムでは、共有メモリに記録されたデータの更新処理において更新失敗のリカバリ（Recovery）処理や、最新データの有無の確認等を、各プロセッサ間において相互に通知し連携して処理することができなかった。
【０００８】
マルチプロセッサシステムの共有メモリには、例えば、書き換え可能で不揮発性なメモリであるフラッシュメモリ（Flash Memory）等が用いられており、またこうしたメモリは高価であるため、各プロセッサにおいて扱うデータを効率良く一元的に管理できることが求められている。
【０００９】
このため、例えば、外部ホストからのダウンロードされる大容量の（例えば、音声／静止画／動画等の）サービスデータを、各プロセッサが連携して効率良く共有メモリに格納し更新することのできるマルチプロセッサシステムが求められていた。
【００１０】
第２に、従来のマルチプロセッサシステムでは、各プロセッサ毎に、電源ＯＦＦ／ＯＮやリセットを個別に行なうことができなかった。
【００１１】
本発明の第１の目的は、上記従来技術の欠点を解決し、共有メモリに記録されたデータの更新処理において、更新失敗のリカバリ処理や最新データの有無の確認等を、各プロセッサ間において相互に通知し連携して処理するマルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラムを提供することである。
【００１２】
本発明の第２の目的は、上記従来技術の欠点を解決し、各プロセッサ毎に、電源ＯＦＦ／ＯＮやリセットを個別に行なうことのできるマルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラムを提供することである。
【００１３】
【課題を解決するための手段】
上記目的を達成するため本発明のマルチプロセッサシステムは、共有メモリを複数のプロセッサにより共有するマルチプロセッサシステムにおいて、各前記プロセッサによる前記共有メモリに対するアクセスを管理する競合判定部であって、各前記プロセッサからの前記共有メモリに対するアクセス要求を受け付け、アクセス競合の発生時には、当該アクセスを許可する前記プロセッサを選択し決定する競合判定部を備え、各前記プロセッサは、他の前記プロセッサと通信し、前記共有メモリに対するアクセスに関する情報を交換し前記共有メモリへのアクセスを制御するアクセス制御手段と、他の前記プロセッサとの間で交換された情報に基づいて、前記共有メモリに対する予め設定されたアクセスを実行するアクセス手段を備え、各前記プロセッサの前記アクセス制御手段は、前記共有メモリに記録されたデータの更新処理が終了した場合に、他のプロセッサに対して、当該更新されたデータを読み込ませるための要求であるデータ再読込要求を通知し、前記共有メモリに記録されたデータの更新処理が失敗した場合に、他のプロセッサに対して、当該更新に失敗したデータの更新処理を引き継がせるための要求であるデータ代理更新要求を通知し、前記共有メモリへのアクセス要求に対して前記競合判定部によるアクセスの許可が得られない場合に、他のプロセッサへ前記競合判定部に対する処理の終了の要求であるリセット要求を通知し、前記データ再読込要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ再読込要求において指定される当該更新されたデータの読み込みを要求し、前記データ代理更新要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ代理更新要求において指定される当該更新に失敗したデータの更新を要求し、前記競合判定部に対するリセット要求を他の前記プロセッサから受けた場合に、前記競合判定部に対して前記リセットを要求し、各前記プロセッサのそれぞれが連携して、前記共有メモリをアクセスすることを特徴とする。
【００１４】
請求項２の本発明のマルチプロセッサシステムは、前記競合判定部は、前記プロセッサから前記リセット要求を受け付けた場合に、各前記プロセッサ及び前記競合判定部をリセットすることを特徴とする。
【００１５】
請求項３の本発明のマルチプロセッサシステムは、各前記プロセッサは、前記競合判定部からの応答に異常を検出した場合に、前記リセット要求を発信することを特徴とする。
【００１６】
請求項４の本発明のマルチプロセッサシステムは、通信ネットワークを介して外部のサーバから取得するデータの、前記共有メモリへの記録処理を、各前記プロセッサが連携して実行することを特徴とする。
【００１７】
請求項５の本発明のマルチプロセッサシステムは、前記共有メモリを、フラッシュメモリとすることを特徴とする。
【００１８】
請求項６の本発明のマルチプロセッサシステムは、組み込み型とすることを特徴とする。
【００１９】
請求項７の本発明の共有メモリ制御方法は、共有メモリを複数のプロセッサにより共有するマルチプロセッサシステムの共有メモリ制御方法において、各前記プロセッサによる前記共有メモリに対するアクセスを管理する競合判定部を備え、各前記プロセッサは、他の前記プロセッサと通信し、前記共有メモリに対するアクセスに関する情報を交換し前記共有メモリへのアクセスを制御するアクセス制御手段と、他の前記プロセッサとの間で交換された情報に基づいて、前記共有メモリに対する予め設定されたアクセスを実行するアクセス手段を備え、前記競合管理部が、各前記プロセッサからの前記共有メモリに対するアクセス要求を受け付け、アクセス競合の発生時には、当該アクセスを許可する前記プロセッサを選択し決定するステップを有し、各前記プロセッサの前記アクセス制御手段が、前記共有メモリに記録されたデータの更新処理が終了した場合に、他のプロセッサに対して、当該更新されたデータを読み込ませるための要求であるデータ再読込要求を通知するステップと、前記共有メモリに記録されたデータの更新処理が失敗した場合に、他のプロセッサに対して、当該更新に失敗したデータの更新処理を引き継がせるための要求であるデータ代理更新要求を通知するステップと、前記共有メモリへのアクセス要求に対して前記競合判定部によるアクセスの許可が得られない場合に、他のプロセッサへ前記競合判定部に対する処理の終了の要求であるリセット要求を通知するステップと、前記データ再読込要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ再読込要求において指定される当該更新されたデータの読み込みを要求するステップと、前記データ代理更新要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ代理更新要求において指定される当該更新に失敗したデータの更新を要求するステップと、前記競合判定部に対するリセット要求を他の前記プロセッサから受けた場合に、前記競合判定部に対して前記リセットを要求するステップを有し、各前記プロセッサのそれぞれが連携して、前記共有メモリをアクセスすることを特徴とする。
【００２０】
請求項８の本発明の共有メモリ制御方法は、前記競合判定部は、前記プロセッサから前記リセット要求を受け付けた場合に、各前記プロセッサ及び前記競合判定部をリセットするステップを備えることを特徴とする。
【００２１】
請求項９の本発明の共有メモリ制御方法は、各前記プロセッサは、前記競合判定部からの応答に異常を検出した場合に、自動的に前記リセット要求を発信するステップを備えることを特徴とする。
【００２２】
請求項１０の本発明の共有メモリ制御方法は、通信ネットワークを介して外部のサーバから取得するデータの、前記共有メモリへの記録処理を、各前記プロセッサが連携して実行することを特徴とする。
【００２３】
請求項１１の本発明の共有メモリ制御プログラムは、共有メモリを複数のプロセッサにより共有するマルチプロセッサシステムの、コンピュータを制御することにより、各前記プロセッサの共有メモリに対するアクセスを制御する共有メモリ制御プログラムにおいて、各前記プロセッサによる前記共有メモリに対するアクセスを管理する競合判定部であって、各前記プロセッサからの前記共有メモリに対するアクセス要求を受け付け、アクセス競合の発生時には、当該アクセスを許可する前記プロセッサを選択し決定する競合判定部を備え、各前記プロセッサに、他の前記プロセッサと通信し、前記共有メモリに対するアクセスに関する情報を交換し前記共有メモリへのアクセスを制御するアクセス制御処理と、他の前記プロセッサとの間で交換された情報に基づいて、前記共有メモリに対する予め設定されたアクセスを実行するアクセス処理を実行させると共に、各前記プロセッサの前記アクセス制御処理において、前記共有メモリに記録されたデータの更新処理が終了した場合に、他のプロセッサに対して、当該更新されたデータを読み込ませるための要求であるデータ再読込要求を通知する処理と、前記共有メモリに記録されたデータの更新処理が失敗した場合に、他のプロセッサに対して、当該更新に失敗したデータの更新処理を引き継がせるための要求であるデータ代理更新要求を通知する処理と、前記共有メモリへのアクセス要求に対して、前記競合判定部によるアクセスの許可が得られない場合に、他のプロセッサへ前記競合判定部に対する処理の終了の要求であるリセット要求を通知する処理と、前記データ再読込要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ再読込要求において指定される当該更新されたデータの読み込みを要求する処理と、前記データ代理更新要求を他の前記プロセッサから受けた場合に、前記アクセス手段に対して、当該データ代理更新要求において指定される当該更新に失敗したデータの更新を要求する処理と、前記競合判定部に対するリセット要求を他の前記プロセッサから受けた場合に、前記競合判定部に対して前記リセットを要求する処理とを実行させることを特徴とする。
【００３０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００３１】
本発明のマルチプロセッサシステムでは、共有メモリに記録するデータを、複数の個々のプロセッサが効率良く連携してアクセスし処理する機能を提供する。
【００３２】
図１は、本発明の第１の実施の形態によるマルチプロセッサシステム１００の構成を示すブロック図である。
【００３３】
図１を参照すると、本実施の形態のマルチプロセッサシステム１００では、共有メモリ６０と、競合判定部５０と、複数のプロセッサ１０−１〜１０−ｎを備えている。また、各プロセッサ１０−１〜１０−ｎに対して、ＬＡＮ８０を介してサーバ７０が接続されており、サーバ７０からデータをダウンロードすることができる。
【００３４】
図２は、本実施の形態によるマルチプロセッサシステム１００の各プロセッサ１０、競合判定部５０、共有メモリ６０の構成を示すブロック図である。
【００３５】
図２を参照すると、各プロセッサ１０は、そのプロセッサの動作を制御するＣＰＵ２０と、各種レジスタ（割込要求レジスタ２１、割込表示レジスタ２２、リセットレジスタ２３、ＲＥＱレジスタ２４、ＡＣＫレジスタ２５）と、ＬＡＮコントローラ４０と、システムバス４１と、メインメモリ３０を備えている。
【００３６】
共有メモリ６０は、各プロセッサ１０が共有するメモリであり、フラッシュメモリ（Flash Memory）等を用いることができる。また、共有メモリ６０内には、各プロセッサ１０がサーバ７０からＬＡＮコントローラ経由でダウンロードしたデータであるサービスデータ６２と、そのサービスデータを管理するためのサービスデータ管理情報６１が記録されている。
【００３７】
競合判定部５０は、各プロセッサ１０の共有メモリ６０に対するアクセスが競合した場合に、アクセスを行なうプロセッサ１０を選択し決定する。
【００３８】
また、各プロセッサ１０におけるメインメモリ３０には、当該プロセッサ１０において使用するためのサービスデータ３２と、共有メモリ６０のサービスデータ管理情報３１と、当該プロセッサ１０において処理するプログラムであるアプリケーションソフトウェア３３と、排他制御を処理するプログラムである排他制御ソフトウェア３４が記録されている。メインメモリ３０には、例えば、ＤＲＡＭ（Dynamic RAM）を用いることができる。
【００３９】
これらのアプリケーションソフトウェア３３や排他制御ソフトウェア３４による処理は、当該プロセッサ１０のＣＰＵ２０によりロードされ、当該プロセッサ１０の動作を制御することにより実現される。
【００４０】
排他制御ソフトウェア３４は、自プロセッサ１０内のＲＥＱレジスタ２４、ＡＣＫレジスタ２５や、競合判定部５０との連携により、他のプロセッサとの間で排他処理を行ないつつ、共有メモリ６０へのアクセス処理全体を制御する。更に、排他制御ソフトウェア３４は、割込要求レジスタ２１、割込表示レジスタ２２、リセットレジスタ２３との連携により競合判定部５０の異常処理時の復旧処理を制御する。
【００４１】
この排他制御ソフトウェア３４は、各プロセッサ１０上に同じものが備えられ、上述された処理をそれぞれの各プロセッサ１０において実行する。
【００４２】
本実施の形態のマルチプロセッサシステム１００では、以上説明された構成を採用することにより、例えば、共有メモリ６０に記録されたデータの更新処理において、更新失敗のリカバリ処理や最新データの有無の確認等を、各プロセッサ１０間において相互に通知し連携して処理することができる。
【００４３】
次に、図２に示される本実施の形態の各プロセッサ１０における各部の機能をより詳細に説明する。
【００４４】
ＬＡＮコントローラ４０は、各プロセッサ１０がＬＡＮ８０を介してサーバ７０に接続するためのコントローラである。各プロセッサ１０は、このＬＡＮコントローラ４０を用いて、サーバ７０から共有メモリ６０へデータをダウンロードする。
【００４５】
システムバス４１は、各プロセッサ１０内のメインメモリ３０やＬＡＮコントローラ４０と、共有メモリ６０との間を、競合判定部５０を経由してデータ送受信を行なう。
【００４６】
ＲＥＱレジスタ２４は、競合判定部５０に対して、共有メモリ６０へのアクセスの許可を要求するためのレジスタである。ＲＥＱレジスタ２４には、排他制御ソフトウェア３４による制御に基づいて、共有メモリ６０にアクセスしたい時に“１”が立てられ（“ＯＮ”にされ）、共有メモリ６０へのアクセスが完了次第“０”が立てられる（“ＯＦＦ”にされる）。
【００４７】
ＡＣＫレジスタ２５は、競合判定部５０から、共有メモリ６０に対するアクセス許可の通知を受け付けるためのレジスタである。競合判定部５０は、共有メモリ６０に対するアクセスを許可する場合に、そのプロセッサ１０のＡＣＫレジスタ２５に“１”を立てる（“ＯＮ”にする）。またもし、共有メモリ６０にアクセスを要求するプロセッサ１０が競合した場合には、競合判定部５０は、そのいずれかのプロセッサ１０を選択してアクセスを許可し、そのアクセスを許可したプロセッサ１０のＡＣＫレジスタ２５に“１”を立てる。
【００４８】
割込要求レジスタ２１は、他のプロセッサ１０に対して各種要求を通知するためのレジスタである。割込要求レジスタ２１は、各プロセッサ１０の排他制御ソフトウェア３４の制御に基づいて、他のプロセッサに対しサービスデータ６２の再読込要求や代理更新要求等を通知する。
【００４９】
割込表示レジスタ２２は、他のプロセッサ１０の割込要求レジスタ２１から発信された、各種要求を受け付けるためのレジスタである。割込表示レジスタ２２は、他のプロセッサ１０から要求を受け付けた場合（“１”が立つと）には、ＣＰＵ２０に対して、排他制御ソフトウェア３４による割込ハンドラ処理の起動を指示する信号を出力し、割込処理を開始させる。
【００５０】
リセットレジスタ２３は、競合判定部５０に対してリセット要求を通知するためのレジスタである。リセットレジスタ２３は、排他制御ソフトウェア３４の制御に基づいて、競合判定部５０へのリセット要求を指定する。
【００５１】
図３は、本実施の形態の各プロセッサ１０内のメインメモリ３０に記録されるコンピュータプログラムの機能を説明するための図である。
【００５２】
図３を参照すると、各プロセッサ１０のメインメモリ３０には、そのプロセッサ１０の処理を司るアプリケーションソフトウェア３３と、共有メモリ６０の排他制御を処理する排他制御ソフトウェア３４を記録している。排他制御ソフトウェア３４は、他のアプリケーションソフトウェア３３に対して、ハードウェアアクセス全般を隠蔽して処理することができ、また、各プロセッサ１０において同じ構成のものが配置される。
【００５３】
排他制御ソフトウェア３４には、アプリケーションソフトウェア３３からの共有メモリ６０へのアクセス要求の制御や他のプロセッサへの通知を司るアクセス要求制御プログラム３５と、他のプロセッサ１０からの（各種要求等の）通知を処理し、これをアプリケーションソフトウェア３３へ通知する割込ハンドラプログラム３６の処理を備えている。
【００５４】
次に、図４、図５のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。
【００５５】
まず、図４に従って、排他制御ソフトウェア３４内のアクセス要求制御プログラム３５の動作を説明する。
【００５６】
アクセス要求制御プログラム３５は、アプリケーションソフトウェア３３による、共有メモリ６０へのアクセス要求により起動される（ステップ４０１）。アクセス要求を受けると、アクセス要求制御プログラムは、ＲＥＱレジスタ２４に“１”を立てることにより、共有メモリ６０へのアクセス要求を行なう（ステップ４０２）。
【００５７】
その結果、競合判定部５０は、アクセス要求の競合の有無を判定し、もし競合が発生している場合にはアクセスを許可するプロセッサ１０を選択する。ここで競合のない場合や、競合発生時においてアクセスが許可された場合には、競合判定部５０は、そのプロセッサ１０のＡＣＫレジスタ２５に“１”を立てる（ステップ４０３）。
【００５８】
アクセス要求制御プログラム３５は、各プロセッサのＡＣＫレジスタ２５の値をルックインにて監視しており（ステップ４０４）、もし“１”が立った時はアプリケーションソフトウェア３３にアクセス許可を通知する（ステップ４０５）。その結果、アプリケーションソフトウェア３３は、共有メモリ６０へのアクセスを実行する（ステップ４０６）。
【００５９】
また、アクセスの終了後には、このアクセス処理がもし書き込み処理でない場合は、ＲＥＱレジスタ２４を“０”に戻して（ステップ４０８）、アクセス処理を終了する。この場合には、共有メモリ６０のデータに変化がないため、他のプロセッサ１０にデータの再読込みや代理更新を要求する必要がないからである。
【００６０】
一方、もし書き込み処理の場合は、アクセス処理が正常に終了したのか異常発生で中止したのかどうかをチェックする（ステップ４０９）。
【００６１】
もし正常終了の場合は、共有メモリ６０のデータが更新されたため、他のプロセッサ１０にこの更新されたデータの再読込みを要求する。このため、ＲＥＱレジスタ２４を“０”に戻した後（ステップ４１０）、サービスデータ６２及びサービスデータ管理情報６１の更新を他のプロセッサに通知して、再度各メインメモリ３０にサービスデータ６２を読み込んでもらうため、排他制御ソフトウェア３４へサービスデータ再読み込み通知を出す（ステップ４１１）。その結果、排他制御ソフトウェア３４は、サービスデータ再読み出し要求ビットに“１”を立て（ステップ４１２）、他のプロセッサへ実際にサービスデータ再読み込み信号が出力される（ステップ４１３）。
【００６２】
また、もし異常発生で処理が中止されていた場合は、共有メモリ６０のサービスデータ６２が中途半端に更新されてしまっている可能性があると判断される。この場合、本実施の形態では、他のプロセッサ１０に対して、この更新に失敗したデータの更新処理を要求することができる。この代理更新の要求処理は、ＲＥＱレジスタ２４を“０”に戻した上で（ステップ４１４）、排他制御ソフトウェア３４に対し、他のプロセッサへのサービスデータ代理更新要求を通知する（ステップ４１５）。その結果、排他制御ソフトウェア３４は、サービスデータ代理更新要求ビットに“１”を立て（ステップ４１６）、その結果、他のプロセッサへ実際にサービスデータ代理更新要求信号が出力される（ステップ４１７）。
【００６３】
なお、ステップ４０２におけるＲＥＱレジスタに“１”を立てて、共有メモリ６０へのアクセスを要求した後に、もしＡＣＫレジスタ２５が“０”のままである場合には、競合判定部５０により“１”が立てられることを待機し、ＡＣＫレジスタ２５のルックインを続けてタイムアウトの監視を行なう（ステップ４１８）。
【００６４】
つまり、タイムアウトとなるまでは、競合判定部５０により“１”が立てられていないかを調べるため、再度ＡＣＫレジスタ２５をルックインする処理（ステップ４０４）を繰り返し、もしＡＣＫレジスタ２５が“０”のままタイムアウトした場合には、アプリケーションソフトウェアへタイムアウトの旨通知する（ステップ４１９）。その結果、アプリケーションソフトウェア３３は、共有メモリ６０へのアクセスをキャンセルし（ステップ４２０）、ＲＥＱレジスタ２４を“０”に戻す（ステップ４２１）と共に、競合判定部５０の異常（もしくは他のプロセッサのソフトウェア処理異常）と判断し、排他制御ソフトウェア３４に対し、他のプロセッサへの競合判定部５０の強制リセット要求を出す（ステップ４２２）。その結果、排他制御ソフトウェア３４は、競合判定部５０の強制リセットビットに“１”を立て（ステップ４２３）、他のプロセッサへ実際に競合判定部５０の強制リセット要求信号が出力される（ステップ４２４）。
【００６５】
次に、図５に従って、排他制御ソフトウェア３４内の割込ハンドラプログラム３６の動作を説明する。
【００６６】
割込ハンドラプログラム３６は、他のプロセッサ１０からの割込信号（ステップ５０１）をハードウェアが受信した場合に、起動される（ステップ５０２）。起動された割込ハンドラプログラム３６は、割込表示レジスタ２２のビット判定を行ない、受け付けた割り込み信号の内容を識別する（ステップ５０３）。
【００６７】
もし、サービスデータ再読み込み要求を受け付けた場合には、割込ハンドラプログラム３６は、割込要因をクリアすると共に（ステップ５０４）、アクセス要求制御プログラム３５への他のプロセッサからのサービスデータ６２再読み込み要求を通知する（ステップ５０５）。その結果、アクセス要求制御プログラム３５は、共有メモリ６０からサービスデータ管理情報６１を読み込み（ステップ５０６）、その管理データを元に、更新されたサービスデータ６２だけを共有メモリ６０からメインメモリ３０に読み込んで更新する（ステップ５０７）。
【００６８】
もし、サービスデータ代理更新要求を受け付けた場合には、割込ハンドラプログラム３６は、割込要因をクリアすると共に（ステップ５０８）、アクセス要求制御プログラム３５への他のプロセッサからのサービスデータ６２の代理更新要求を通知する（ステップ５０９）。その結果、アクセス要求制御プログラム３５は、他のプロセッサの代わりに、サーバ７０からのダウンロードを行ない、共有メモリ６０上のサービスデータを更新する（ステップ５１０）。
【００６９】
また、もし競合判定部５０の強制リセット要求を受け付けた場合には、割込ハンドラプログラム３６は、割込要因をクリアすると共に（ステップ５１１）、競合判定部５０のリセットレジスタ２３に“１”を立てる（ステップ５１２）。その結果、ハードウェアは、全てのＲＥＱレジスタ２４やＡＣＫレジスタ２５と共に、競合判定部５０を強制リセットする（ステップ５１３）。
【００７０】
以上説明したように、本実施の形態のマルチプロセッサシステムでは、共有メモリに記録されたデータの更新処理において、更新失敗のリカバリ処理や最新データの有無の確認等を、各プロセッサ間において相互に通知し連携して処理することができる。また、各プロセッサに、リセットを指示するためのリセットレジスタを備えることにより、各プロセッサ毎に電源ＯＦＦ／ＯＮやリセットを個別に行なうことができる。
【００７１】
次に、本発明のその他の実施の形態を説明する。
【００７２】
本発明の他の実施の形態としては、各プロセッサ１０におけるＡＣＫレジスタのルックインを割込信号で実現する方式が同様に可能である。つまり、先の第１の実施の形態においては、ＡＣＫレジスタに返される競合判定部５０からの応答を、ルックインで監視する方式により説明したが、競合判定部５０からのＡＣＫレジスタへの応答時に割り込みを発生させ、その割り込みに応じてＡＣＫレジスタの値を確認するという方式である。
【００７３】
また、サービスデータ代理更新要求を受領した場合に、サーバ７０からのサービスデータのダウンロードが失敗した場合にはそのダウンロードをあきらめて、メインメモリ３０に読み出されているサービスデータを用いて共有メモリ上のサービスデータを書き戻し、次回再起動時に正常に起動できるように保証する方式が考えられる。ダウンロードが失敗した場合には、サーバ７０との間の回線に何らかの不調がある場合も想定される。このような場合に、ダウンロードが成功するまでそのサーバ７０との通信を繰り返したのでは、無駄であり又共有メモリ６０内のデータが異常な状態のままいつまでも修復されないからである。
【００７４】
また、競合判定部５０からの強制リセット要求を受信した場合に、受信したプロセッサ１０におけるソフトウェアの暴走等の可能性があるため、これを回避するために、まずプロセッサ１０内におけるソフトウェアのリセット処理を併用して実行する方式が考えられる。
【００７５】
また、上記各実施の形態のマルチプロセッサシステム１００は、携帯端末等の各種機器に組み込んだ形で用いる組み込みシステム（Embedded System）として構成することも、同様に可能である。
【００７６】
なお、上記各実施の形態のマルチプロセッサシステム１００は、競合判定部５０における、競合発生時においてアクセスを許可するプロセッサ１０を決定する等の機能や、その他の機能をハードウェア的に実現することは勿論として、各機能を備えるコンピュータプログラムを、コンピュータ処理装置のメモリにロードされることで実現することができる。このコンピュータプログラムは、磁気ディスク、半導体メモリその他の記録媒体９０に格納される。そして、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【００７７】
また、各プロセッサ１０のメインメモリ３０に記録された、排他制御ソフトウェア３４やアクセス要求制御プログラム３５や割込ハンドラプログラム３６やその他の機能を、ハードウェア的に実現するものとしてもよい。
【００７８】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００７９】
【発明の効果】
以上説明したように本発明のマルチプロセッサシステムによれば、以下のような効果が達成される。
【００８０】
第１に、複数のプロセッサの対等性／独立性／拡張性を維持した上で、共有メモリに大容量のサービスデータ（例えば、音声／静止画／動画等）を格納し更新する処理を、一元的に効率良く処理することができる。これにより、フラッシュメモリ等の高価な共有メモリを、効率良く利用するすることができ、システムのコストダウンを実現することができる。
【００８１】
第２に、各プロセッサ間の競合判定や各プロセッサ間の最小限の情報交換をハードウェア的に処理し、他の排他制御全体の処理を、コンピュータプログラムが各回路の動作を制御することによるソフトウェア処理とすることができる。この構成により、例えば、アプリケーションソフトウェアの動作状況に応じて、排他処理全体を柔軟に管理することができる。
【００８２】
第３に、外部ホストからのダウンロードによりサービスデータを更新する際の、更新失敗のリカバ処理や最新サービスデータの有無等をプロセッサ間で通知し合うことができる。また、どのプロセッサのＬＡＮコントローラからでも、任意にサービスデータを更新することができる。その理由は、各プロセッサ間において、割込信号による通信手段を備えることで連携動作ができるからである。
【００８３】
第４に、共有メモリを備えるにも関わらず、各プロセッサの個別の電源ＯＦＦ／ＯＮ、リセットが可能となる。その理由は、装置内に１つ備える構成要素である競合判定部が全プロセッサに接続され、かつ競合判定部のリセット手段を各プロセッサ毎に備えるためである。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態によるマルチプロセッサシステムの構成を示すブロック図である。
【図２】  本発明の第１の実施の形態によるマルチプロセッサシステムの各プロセッサ、競合判定部、共有メモリの構成を示すブロック図である。
【図３】  本発明の第１の実施の形態の各プロセッサにおいて実行されるソフトウェアの機能を説明するためのブロック図である。
【図４】  本発明の第１の実施の形態の各プロセッサにおけるアクセス要求の処理を説明するためのフローチャートである。
【図５】  本発明の第１の実施の形態の各プロセッサにおける割り込みハンドラの処理を説明するためのフローチャートである。
【符号の説明】
１００  マルチプロセッサシステム
１０、１０−１〜１０−ｎ  プロセッサ
２０  ＣＰＵ
２１  割込要求レジスタ
２２  割込表示レジスタ
２３  リセットレジスタ
２４  ＲＥＱレジスタ
２５  ＡＣＫレジスタ
３０  メインメモリ
３１  サービスデータ管理情報
３２  サービスデータ
３３  アプリケーションソフトウェア
３４  排他制御ソフトウェア
３５  アクセス要求制御プログラム
３６  割込ハンドラプログラム
４０  ＬＡＮコントローラ
４１  システムバス
５０  競合判定部
６０  共有メモリ
６１  サービスデータ管理情報
６２  サービスデータ
７０  サーバ
８０  ＬＡＮ
９０  記録媒体
【図１】
0004394298.tif 000002
【図２】
0004394298.tif 000003
【図３】
0004394298.tif 000004
【図４】
0004394298.tif 000005
【図５】
0004394298.tif 000006