説明

共有メモリシステム

【課題】 システムで異常が発生した場合に、共有メモリに格納されている正常なデータを保護する。
【解決手段】 共有メモリシステム1の異常判定部は、複数あるマザーボード10a〜10cのうち、何れかのマザーボードで異常が発生したか否かを判定する。何れかのマザーボードで異常が発生したと判定された場合に、共有メモリシステム1のスイッチ制御部は、スイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“15”に対応するアクセス許可パターンを選択して保持するとともに、当該アクセス許可パターンに基づいて全てのスイッチをOFFに切り替える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共有メモリシステムに関する。
【背景技術】
【0002】
下記特許文献1には、複数のCPUでメモリを共有するメモリアクセスシステムが開示されている。
【特許文献1】特開平5−342109号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上述したメモリアクセスシステムでは、システムで異常が発生したときの処理についてまでは考慮されていないため、異常発生後も、引き続き全てのCPUがメモリにアクセスすることになる。この場合には、異常発生に起因して暴走したCPUによってメモリに格納されているデータが書き換えられるおそれがある。
【0004】
そこで、本発明は、上述した課題を解決するために、システムで異常が発生した場合に、共有メモリに格納されている正常なデータを保護することができる共有メモリシステムを提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明の共有メモリシステムは、複数のCPUがアクセス可能な共有メモリを有する共有メモリシステムであって、CPUによる共有メモリへのアクセスの種類ごとに、共有メモリへのアクセスを許可させるための複数のアクセス許可パターンを記憶する記憶手段と、記憶手段によって記憶されるアクセス許可パターンを順次選択し、当該選択したアクセス許可パターンに応じてCPUによる共有メモリへのアクセスを制御する制御手段と、何れかのCPUにより異常が検知されたか否かを判定する判定手段と、を備え、制御手段は、判定手段によって何れかのCPUにより異常が検知されたと判定された場合に、記憶手段によって記憶されるアクセス許可パターンから、共有メモリへのアクセスを全て不可能とするパターンを選択して保持することを特徴とする。
【0006】
この発明によれば、システムで異常が発生した場合には、CPUによる共有メモリへのアクセスを全て不可能にすることができるため、例えば、異常発生に起因してCPUが暴走した場合であってもCPUが共有メモリにアクセスすることはできない。したがって、共有メモリに格納されている正常なデータを確実に保護することができる。
【0007】
本発明の共有メモリシステムにおいて、外部装置から送信される修理モードへの移行を指示するメッセージを受信する受信手段をさらに備え、制御手段は、受信手段によって修理モードへの移行を指示するメッセージが受信された場合に、記憶手段によって記憶される前記アクセス許可パターンから、前記CPUのうちの予め定められた一のCPUの読み込みアクセスのみを可能とするパターンを選択して保持することが好ましい。このようにすれば、異常が発生したときに、予め定められた一のCPUを用いて共有メモリから異常発生前のデータを読み込むことができるため、異常発生の原因が解明し易くなる。
【発明の効果】
【0008】
本発明に係る共有メモリシステムによれば、システムで異常が発生した場合に、共有メモリに格納されている正常なデータを保護することができる。
【発明を実施するための最良の形態】
【0009】
以下、本発明に係る共有メモリシステムの実施形態を図面に基づき説明する。なお、各図において、同一要素には同一符号を付して重複する説明を省略する。
【0010】
図1は、実施形態における共有メモリシステム1のハードウェア構成を例示する図である。図1に示すように、共有メモリシステム1は、主に、複数のマザーボード10a,10b,10cと、スイッチ制御回路20とから構成される。マザーボード10a,10b,10cには、CPU11a,11b,11cが備えられている。各CPU11は、DMA(Direct Memory Access)通信によりスイッチ制御回路20を介して共有RAM2にアクセスすることができる。ここで、共有RAM2へのアクセスには、共有RAM2からデータを読み込む際の読み込みアクセスと、共有RAM2にデータを書き込む際の書き込みアクセスとが含まれる。
【0011】
また、本実施形態では、図1に示すマザーボード10aが、メインマザーボードとして設定されている。このメインマザーボードは、スイッチ制御回路20に制御信号を送信する機能を有する。この制御信号としては、スイッチ制御回路20に含まれる複数のスイッチのON/OFF切り替えを制御させるための信号が該当する。また、メインマザーボード10aには、RAM12aが備えられている。このRAM12aには、上記制御信号に含まれる制御Bit等を記憶するスイッチ状態テーブル(記憶手段)が格納されている。このスイッチ状態テーブルの詳細については、後述する。なお、本実施形態では、共有メモリシステムに備えられているマザーボードが三枚の場合について説明しているが、マザーボードの枚数は三枚に限定されず、複数枚備えられていればよい。
【0012】
共有メモリシステム1には、接続コネクタ30が設けられており、メインマザーボード10aのCPU11aは、この接続コネクタ30を介して接続された外部ツール装置40から送信される各種のメッセージを受信する。各種のメッセージとしては、例えば、修理モードへの移行を指示する修理モード移行指示メッセージや、共有RAM2からデータを読み込むように指示するデータ読込指示メッセージがある。
【0013】
次に、図2を参照して、図1に示すスイッチ制御回路20のハードウェア構成について詳細に説明する。スイッチ制御回路20は、スイッチ駆動回路21と、RAM22と、複数のスイッチSW1R〜SW3Wと、複数のゲート回路G1〜G6とを有する。
【0014】
スイッチ駆動回路21は、メインマザーボード10aのCPU11aから送信される制御信号に基づいて、各スイッチSWのON/OFFを切り替える。一のゲート回路Gに対応して配置されたスイッチSWがONになると、そのゲート回路Gが配置されている回線が接続状態となる。回線が接続状態になると、その回線により接続されているマザーボード10と共有RAM2との間において予め定められた一方向にのみデータの送信が可能となる。すなわち、そのマザーボード10に備えられたCPU11のみが共有RAM2に対してデータの読み込みまたは書き込みが可能となる。また、一のゲート回路Gに対応して配置されたスイッチSWがOFFになると、そのゲート回路Gが配置されている回線が切断状態となる。回線が切断状態になると、切断状態の回線に接続されているマザーボード10と共有RAM2との間でデータの送受信ができなくなる。すなわち、そのマザーボード10に備えられたCPU11は共有RAM2に対してデータの読み込みまたは書き込みができなくなる。
【0015】
ここで、スイッチSW1RがONになると、CPU11aが、共有RAM2からデータを読み込むことが可能となり、スイッチSW1WがONになると、CPU11aが、共有RAM2にデータを書き込むことが可能となる。また、スイッチSW2RがONになると、CPU11bが、共有RAM2からデータを読み込むことが可能となり、スイッチSW2WがONになると、CPU11bが、共有RAM2にデータを書き込むことが可能となる。さらに、スイッチSW3RがONになると、CPU11cが、共有RAM2からデータを読み込むことが可能となり、スイッチSW3WがONになると、CPU11cが、共有RAM2にデータを書き込むことが可能となる。
【0016】
図2に示すRAM22には、上述したメインマザーボード10aのRAM12aと同様に、スイッチ状態テーブルが格納されている。
【0017】
ここで、図3を参照して、スイッチ状態テーブルのデータ構成について説明する。スイッチ状態テーブルは、CPU11による共有RAM2へのアクセスの種類(読み込み、書き込み)ごとに、共有RAM2へのアクセスを許可させるための複数のアクセス許可パターンを記憶するテーブルである。本実施形態では、アクセス許可パターンを、上述した各スイッチSW1R〜SW3Wのスイッチ状態を用いて表すこととする。すなわち、一のスイッチのスイッチ状態がONである場合には、そのスイッチに対応するアクセスが許可されていることを示し、一のスイッチのスイッチ状態がOFFである場合には、そのスイッチに対応するアクセスが許可されていないことを示す。
【0018】
図3に示すように、スイッチ状態テーブルは、データ項目として、例えば、状態NO、制御Bit、スイッチ状態を有する。状態NOには、各スイッチSW1R〜SW3Wのスイッチ状態により示されるアクセス許可パターンを一意に特定するための識別番号が格納される。制御Bitには、状態NOを4ビットの二進法で表したビット情報が格納される。スイッチ状態には、各スイッチSW1R〜SW3WがONであるかOFFであるかを示す情報が格納される。
【0019】
図3に示すスイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“0”〜“11”に対応する複数のアクセス許可パターンは、システムが正常であるときにスイッチ制御回路20で順次用いられるパターンである。状態NOが“0”〜“11”に対応する複数のアクセス許可パターンは、何れか一のスイッチSWのみがONに設定されているか、または全てのスイッチSWがOFFに設定されているパターンである。このような複数のアクセス許可パターンを状態NOにしたがって順次選択し、この選択したアクセス許可パターンに基づいて各スイッチのON/OFFを制御させることによって、いずれか一のスイッチのみをON状態に設定することができる。すなわち、各スイッチSW1R〜SW3Wを、順番に一つずつONに切り替えていくことができる。これにより、正常時には、各CPU11a〜11cによる共有RAM2へのアクセスを競合させることなく、順番に一つずつ共有RAM2にアクセスさせることができる。なお、本実施形態においては、各CPU11a〜11cによる共有RAM2へのアクセスを連続させずに、各アクセス間に空き時間を設けている。すなわち、いずれかのスイッチをONにした後は、一旦、全てのスイッチをOFFに切り替えて、その後、次のスイッチをONにしている。これにより、データの送受信をより確実に遂行させることができる。
【0020】
また、図3に示すスイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“15”に対応するアクセス許可パターンは、システムで異常が発生したときにスイッチ制御回路20で用いられるパターンである。状態NOが“15”に対応するアクセス許可パターンは、全てのスイッチSWがOFFに設定されているパターンである。このようなアクセス許可パターンを選択し、この選択したアクセス許可パターンに基づいて各スイッチのON/OFFを制御させることによって、全てのスイッチをOFF状態に設定することができる。これにより、異常が発生したときには、各CPU11a〜11cによる共有RAM2への全てのアクセスを禁止させることができる。
【0021】
また、図3に示すスイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“14”に対応するアクセス許可パターンは、システムで異常が発生して修理モードに移行するときにスイッチ制御回路20で用いられるパターンである。状態NOが“14”に対応するアクセス許可パターンは、スイッチSW1RのみがONに設定されて、その他のスイッチSW1W〜SW3WがOFFに設定されているパターンである。このようなアクセス許可パターンを選択し、この選択したアクセス許可パターンに基づいて各スイッチのON/OFFを制御させることによって、スイッチSW1RのみをON状態に設定することができる。これにより、修理モードに移行したときには、CPU11aのみが共有RAM2からデータを読み込むことができるようになり、CPU11aによる共有RAM2へのデータの書き込みや、CPU11b,11cによる共有RAM2への全てのアクセスを禁止させることができる。
【0022】
次に、図4を参照して共有メモリシステム1の機能構成について説明する。図4に示すように、共有メモリシステム1は、異常判定部51(判定手段)と、メッセージ受信部52(受信手段)と、スイッチ制御部53(制御手段)とを有する。
【0023】
異常判定部51は、複数あるマザーボード10a〜10cのうち、何れかのマザーボードで異常が発生したか否かを判定する。具体的に説明すると、まず、CPU11bまたはCPU11cは、マザーボード10bまたはマザーボード10cで異常が発生したことを検知した場合に、その旨をCPU11aに通知する。次に、CPU11aは、異常が検知された旨の通知を受信した場合、または、CPU11a自体がマザーボード10aで異常が発生したことを検知した場合に、何れかのマザーボード10a〜10cで異常が発生したと判定する。
【0024】
メッセージ受信部52は、外部ツール装置40から送信される各種のメッセージを受信する。各種のメッセージとしては、例えば、修理モードへの移行を指示する修理モード移行指示メッセージや、共有RAM2からデータを読み込むように指示するデータ読込指示メッセージがある。
【0025】
スイッチ制御部53は、スイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“0”〜“11”に対応する複数のアクセス許可パターンを、状態NO順にしたがって順次選択することを繰り返す。スイッチ制御部53は、選択したアクセス許可パターンに基づいて各スイッチSW1R〜SW3WのON/OFFを制御する。これにより、各CPU11a〜11cによる共有RAM2へのアクセスが制御される。
【0026】
スイッチ制御部53は、異常判定部51によって何れかのマザーボードで異常が発生したと判定された場合に、スイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“15”に対応するアクセス許可パターンを選択して保持する。スイッチ制御部53は、状態NOが“15”に対応するアクセス許可パターンに基づいて各スイッチSW1R〜SW3Wを全てOFFに切り替える。
【0027】
具体的に説明すると、まず、CPU11aは、何れかのマザーボードで異常が発生したと判定された場合に、RAM12aに格納されているスイッチ状態テーブルから、状態NO“15”に対応する制御Bitである“1111”を抽出し、この抽出した制御Bitを含む制御信号を、スイッチ制御回路20に送信する。次に、スイッチ制御回路20のスイッチ駆動回路21は、受信した制御信号に含まれる制御Bit“1111”に基づいて、RAM22に格納されているスイッチ状態テーブルから、制御Bit“1111”に対応付けて記憶されているスイッチ状態を抽出する。次に、スイッチ駆動回路21は、抽出したスイッチ状態に基づいて、全てのスイッチSW1〜SW3をOFFに切り替える。これにより、各CPU11a〜11cによる共有RAM2への全てのアクセスが禁止される。
【0028】
また、スイッチ制御部53は、メッセージ受信部52によって外部ツール装置40から送信される修理モード移行指示メッセージが受信された場合に、スイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“14”に対応するアクセス許可パターンを選択して保持する。スイッチ制御部53は、状態NOが“14”に対応するアクセス許可パターンに基づいてスイッチSW1RのみをONに切り替えて、その他のスイッチSW1W〜SW3WをOFFに切り替える。
【0029】
具体的に説明すると、まず、CPU11aは、修理モード移行指示メッセージが受信された場合に、RAM12aに格納されているスイッチ状態テーブルから、状態NO“14”に対応する制御Bitである“1110”を抽出し、この抽出した制御Bitを含む制御信号を、スイッチ制御回路20に送信する。次に、スイッチ制御回路20のスイッチ駆動回路21は、受信した制御信号に含まれる制御Bit“1110”に基づいて、RAM22に格納されているスイッチ状態テーブルから、制御Bit“1110”に対応付けて記憶されているスイッチ状態を抽出する。次に、スイッチ駆動回路21は、抽出したスイッチ状態に基づいて、スイッチSW1RのみをONに切り替えて、その他のスイッチSW1W〜SW3WをOFFに切り替える。これにより、CPU11aのみが共有RAM2からデータを読み込むことができ、CPU11aによる共有RAM2へのデータの書き込みや、CPU11b,11cによる共有RAM2への全てのアクセスが禁止される。
【0030】
次に、図5を参照して、異常が発生したときのアクセス制御処理の流れについて説明する。
【0031】
まず、共有メモリシステム1の異常判定部51は、複数あるマザーボード10a〜10cのうち、何れかのマザーボードで異常が発生したか否かを判定する(ステップS1)。この判定がNOである場合(ステップS1;NO)に、異常判定部51は、ステップS1の判定処理を繰り返す。
【0032】
一方、ステップS1の判定において、何れかのマザーボードで異常が発生したと判定された場合(ステップS1;YES)に、スイッチ制御部53は、スイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“15”に対応するアクセス許可パターンを選択して保持する(ステップS2)。
【0033】
次に、スイッチ制御部53は、状態NOが“15”に対応するアクセス許可パターンに基づいて全てのスイッチSW1R〜SW3WをOFFに切り替える(ステップS3)。
【0034】
次に、図6を参照して、修理モードに移行したときのアクセス制御処理の流れについて説明する。
【0035】
まず、共有メモリシステム1のメッセージ受信部52によって、外部ツール装置40から送信される修理モード移行指示メッセージが受信された場合(ステップS11)に、スイッチ制御部53は、スイッチ状態テーブルに格納されているアクセス許可パターンのうち、状態NOが“14”に対応するアクセス許可パターンを選択して保持する(ステップS12)。
【0036】
次に、スイッチ制御部53は、状態NOが“14”に対応するアクセス許可パターンに基づいてスイッチSW1RのみをONに切り替えて、その他のスイッチSW1W〜SW3WをOFFに切り替える(ステップS13)。
【0037】
以上のように、本実施形態における共有メモリシステムによれば、何れかのマザーボードで異常が発生したと判定された場合に、各CPU11a〜11cによる共有RAM2へのアクセスを全て不可能にすることができるため、異常発生に起因してCPUが暴走しても、各CPUは共有RAM2にアクセスすることができない。したがって、共有RAM2に格納されている正常なデータを確実に保護することができる。
【0038】
また、異常発生によって、各CPU11a〜11cによる共有RAM2へのアクセスが全て不可能になった場合であっても、修理モード移行指示メッセージが受信された場合には、メインマザーボード10aのCPU11aのみが共有RAM2から異常発生前のデータを読み込むことができるため、異常発生の原因を解明するのに役立てることができる。
【図面の簡単な説明】
【0039】
【図1】発明の実施形態における共有メモリシステムのハードウェア構成を例示する図である。
【図2】図1に示すスイッチ制御回路の詳細なハードウェア構成を例示する図である。
【図3】スイッチ状態テーブルのデータ構成を例示する図である。
【図4】共有メモリシステムの機能構成を例示する図である。
【図5】異常が発生したときのアクセス制御処理の流れを説明するためのフローチャートである。
【図6】修理モードに移行したときのアクセス制御処理の流れを説明するためのフローチャートである。
【符号の説明】
【0040】
1・・・共有メモリシステム、2・・・共有RAM、10(10a,10b,10c)・・・マザーボード、11(11a,11b,11c)・・・CPU、12a,22・・・RAM、20・・・スイッチ制御回路、21・・・スイッチ駆動回路、30・・・接続コネクタ、40・・・外部ツール装置、51・・・異常判定部、52・・・メッセージ受信部、53・・・スイッチ制御部。

【特許請求の範囲】
【請求項1】
複数のCPUがアクセス可能な共有メモリを有する共有メモリシステムであって、
前記CPUによる前記共有メモリへのアクセスの種類ごとに、前記共有メモリへのアクセスを許可させるための複数のアクセス許可パターンを記憶する記憶手段と、
前記記憶手段によって記憶される前記アクセス許可パターンを順次選択し、当該選択した前記アクセス許可パターンに応じて前記CPUによる前記共有メモリへのアクセスを制御する制御手段と、
何れかの前記CPUにより異常が検知されたか否かを判定する判定手段と、を備え、
前記制御手段は、前記判定手段によって何れかの前記CPUにより異常が検知されたと判定された場合に、前記記憶手段によって記憶される前記アクセス許可パターンから、前記共有メモリへのアクセスを全て不可能とするパターンを選択して保持することを特徴とする共有メモリシステム。
【請求項2】
外部装置から送信される修理モードへの移行を指示するメッセージを受信する受信手段をさらに備え、
前記制御手段は、前記受信手段によって前記修理モードへの移行を指示するメッセージが受信された場合に、前記記憶手段によって記憶される前記アクセス許可パターンから、前記CPUのうちの予め定められた一のCPUの読み込みアクセスのみを可能とするパターンを選択して保持することを特徴とする請求項1記載の共有メモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate