(57)【特許請求の範囲】
【請求項１】
バスマスタとしての機能を備える複数のモジュールが第１のバスで接続される情報処理システムであって、
前記各モジュールは、
各モジュールを一意に識別するために用いる識別番号をスイッチにより予め設定する識別番号設定手段と、
前記識別番号設定手段により設定されている自己の識別番号が特定値であるとき、自己が実装されている第１のバスに実装されているモジュール全てに対して、バスマスタが未設定の状態なのかを確認するために応答要求を送信する応答要求送信手段と、
前記応答要求に対して１つも応答が返答されないとき、自己をバスマスタとして設定するバスマスタ設定手段と、
を備えることを特徴とする情報処理システム。
【請求項２】
前記情報処理システムは前記第１のバスとは独立した第２のバスを備え、
前記モジュールは、
自己が実装されている第１のバスのバスマスタとして設定されているバスマスタモジュールから、前記第２のバスを介して送信されてくる該バスマスタモジュールの状態を示すステータス情報を監視するバスマスタモジュール監視手段と、前記ステータス情報が前記バスマスタモジュールが故障であることを示すとき、前記識別番号設定手段により設定されている識別番号から自己をバスマスタとして設定するかどうかを決めるバスマスタ切換え選択手段と
を更に備えることを特徴とする請求項１記載の情報処理システム。
【請求項３】
バスマスタとしての機能を備える複数のモジュールが１つ以上のシステムバスで接続される構成の情報処理システムでのシステムバス管理方法であって、
前記各モジュールは、
自己に設定されている各モジュールを一意に識別するために用いる識別番号がスイッチにより予め設定した特定値であるとき、自己が実装されているシステムバスに実装されているモジュール全てに対して、バスマスタが未設定の状態なのかを確認するために応答要求を送信し、
前記応答要求に対して１つも応答が返答されないとき、自己をバスマスタとして設定すること
を特徴とするシステムバス管理方法。
【請求項４】
バスマスタとしての機能を備える複数のモジュールが１つ以上のシステムバスで接続される構成の情報処理システムでのシステムバス管理方法であって、
前記各モジュールは、自己をバスマスタとして設定後、前記システムバスと独立したバスを用いて、バスマスタが設定されていないシステムバスに実装されているモジュールの１つに対して、バスマスタの設定を依頼するバスマスタ判定依頼を送信し、
前記バスマスタ判定依頼を受信したモジュールは、自己が実装されているシステムバスに実装されているモジュール全てに対して応答要求を送信し、
前記応答要求に対して１つも応答が返答されない時、自己をバスマスタとして設定すること
を特徴とするシステムバス管理方法。
【請求項５】
前記モジュールは、自己をバスマスタとして設定後、自己が実装されているシステムバスに実装されているモジュール全てに対して、再度応答要求を送信し、該応答要求に対する各モジュールからの応答に基づいて前記システムバスの実装状態を求め、該実装状態と自己が記憶している実装状態に対する情報とを比較すること
を特徴とする請求項３又は４記載のシステムバス管理方法。
【請求項６】
前記モジュールは、前記応答から求めた実装状態と前記実装状態に対する情報が一致したとき、自己をバスマスタとして確定すること
を特徴とする請求項５記載のシステムバス管理方法。
【請求項７】
前記特定値は最小の識別番号であり、前記自己をバスマスタとして設定後のモジュールは、バスマスタが設定されていないシステムバスに実装されているモジュールの中で最小の識別番号が設定されているモジュールにバスマスタ判定依頼を送信する
こと
を特徴とする請求項６記載のシステムバス管理方法。
【請求項８】
コンピュータにより使用されたとき、自己に設定されている各モジュールを一意に識別するために用いる識別番号がスイッチにより予め設定した特定値であるとき、自己が実装されている第１のバスに実装されているモジュール全てに対して、バスマスタが未設定の状態なのかを確認するために応答要求を送信し、
前記応答要求に対して１つも応答が返答されないとき、自己を前記第１のバスのバスマスタとして設定すること
を前記コンピュータに行わせるためのプログラムを記憶した前記コンピュータが読み出し可能な記録媒体。
【請求項９】
前記第１のバスとは独立した第２のバスから送信される、前記第１のバスのバスマスタとして設定されているバスマスタモジュールの状態を示すステータス情報を監視し、前記ステータス情報が前記バスマスタモジュールが故障であることを示すとき、前記識別番号から自己をバスマスタとして設定するかどうかを決めること
を特徴とする請求項８記載のコンピュータが読み出し可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システムバスを介して複数のモジュールが接続される構成の情報処理システムに関し、更に詳しくは各モジュールを接続するシステムバスのバスマスタに関する。
【０００２】
【従来の技術】
通信機能をもつ複数のモジュールをシステムバスに接続する構成のシステムを構築する場合、ユーザは１つのシステムバス上に１つバスマスタを設定しなければならない。このバスマスタは、システムバスを管理するもので、各モジュール間のバス使用の調停やバスのデータ転送用クロックの供給を行う。
【０００３】
バスマスタとしての機能を備えるモジュールがバスマスタとしてシステムバスに設定されると、以降原則的にはそのモジュールがバスマスタとしてそのシステムバスを管理してゆく。またシステムバスに１台もバスマスタが設定されない場合や１つのシステムバスに複数のモジュールがバスマスタとして設定された場合、ハードウェアの制約からバスマスタの多重設定を行うとシステムバスは動作できないので、そのシステムバスは使用不能となりシステムダウンとなる。
【０００４】
よってバスマスタとしての機能を備えるモジュールが複数システムバスに実装されていても、バスマスタとして機能するのはそのうちのバスマスタとして設定されている１つのモジュール（以降バスマスタモジュールという）だけであり、他のモジュールはバスマスタとしては機能しない。図１０のシステム構成においては、システムバス１０１−１ではモジュール０、システムバス１０１−２ではモジュール５、システムバス１０１−３ではモジュール１０をバスマスタモジュールとした場合、モジュール１〜４、６〜９、１１〜１４はバスマスタとしては動作しない。
【０００５】
【発明が解決しようとする課題】
バスマスタの多重設定は出来ないので、バスマスタモジュールが故障した場合、他のバスマスタモジュールが切り換ってバス管理に携わることは出来ない。従ってバスマスタが故障するとそのシステムバスは使用不可能な状態となりシステムダウンする。例えば図１０のシステム構成においてシステムバス１０１−１上のバスマスタモジュールであるモジュール０が故障した場合、モジュール１〜４にバスマスタとしての機能が備っていたとしてもこれらが新たなバスマスタモジュールに切り換わることはできない。よって、システムバス１０１−１は使用出来なくなってしまい、システムダウンに至ってしまう。
【０００６】
また図１０に示す様に、システムが複数のシステムバスを備え、各システムバスそれぞれにバスマスタを設定する構成の場合、１つのシステムバス上にバスマスタが必ず１台設定されなければシステムバスはアクセス動作できないので、バスマスタモジュールを有効設定するための手順を取り決めなければならない。
【０００７】
更に、バスマスタモジュールが故障した場合、対応するシステムバスは使用出来なくなるが、これによってシステムダウンしないためには、非バスマスタ設定モジュールが新たなバスマスタモジュールとしてシステムバスに設定され、システムは縮退運転を行わなければならない。よって、このバスマスタモジュールの切り換えの為の手順を決めなければならない。
【０００８】
本発明は、上記問題を鑑み、システム構成をフレキシブルにしたシステムバス構築のルールが確立された情報処理システム及びそのシステムバス管理方法を提供することを課題とする。
【０００９】
【課題を解決するための手段】
本発明による情報処理システムは、バスマスタとしての機能を備える複数のモジュールが第１のバスで接続されることを前提とする。
【００１０】
上記各モジュールは、識別番号設定手段、応答要求送信手段及びバスマスタ設定手段を備える。識別番号設定手段は、各モジュールを一意に識別するために用いる識別番号をスイッチにより予め設定する。
【００１１】
応答要求送信手段は、上記識別番号設定手段により設定されている自己の識別番号が特定値である時、自己が実装されている第１のバスに実装されているモジュール全てに対して、応答要求を送信する。
【００１２】
バスマスタ設定手段は、上記応答要求に対して１つも応答が返答されない時、自己をバスマスタとして設定する。
また情報システムは、上記第１のバスとは独立した第２のバスを備え、また上記モジュールはバスマスタモジュール監視手段、バスマスタ切換え選択手段を備える構成としてもよい。
【００１３】
バスマスタモジュール監視手段は、自己が実装されている第１のバスのバスマスタとして設定されているバスマスタモジュールから、上記第２のバスを介して送信されてくる該バスマスタモジュールの状態を示すステータス情報を監視する。
【００１４】
バスマスタ切換え選択手段は、上記ステータス情報が上記バスマスタモジュールが故障であることを示す時、上記識別番号設定手段により設定されている識別番号から自己をバスマスタとして設定するかどうかを決める。
【００１５】
本発明によれば、バスマスタ設定時にモジュールは、応答要求送信手段により第１のバスに実装されているモジュール全てに対して、応答要求を送信し、バスマスタ設定手段が、上記応答要求に対して１つも応答が返答されないことを確認した後、自己をバスマスタとして設定する。この為バスマスタの多重設定がされず、１つのバスに１つのバスマスタが設定される。
【００１６】
また、バスマスタが故障しても、そのバスマスタと同じバスに実装されているモジュールがバスマスタモジュール監視手段により監視しており、バスマスタ切換え手段が自己の識別番号に基づいて自己をバスマスタとして設定するかどうかを決めるので、バスマスタは多重設定されずにバスマスタモジュールが切換えられる。
【００１７】
【発明の実施の形態】
以下に本発明の一実施形態として、バスによるデータ通信機能をもつ複数のモジュールがシステムバスによって接続される構成をもつプログラマブルコントローラに適用した場合について説明する。
【００１８】
図１に本実施形態のプログラマブルコントローラのシステム構成概要を示す。
図１のシステムは、通信機能をもつ１５のモジュール（モジュール０〜１４）がバスによって接続される構成で、各モジュールは、モジュール０〜４がシステムバス１−１、モジュール５〜９がシステムバス１−２及びモジュール１０〜１４がシステムバス１−３と５つずつ各システムバス１−１〜１−３によって接続されている。また全モジュールは、モジュールの状態ステータスを通知する機能やメッセージ通信機能を備えたシリアルバスにより接続される。
【００１９】
システムバス１は、モジュール間でのデータ転送において、高速アクセスを必要とする１、１６、３２ビットデータ転送に使用されるもので、例えばモジュール上で実行されるアプリケーションによるデータメモリアクセスに使用される。このシステムバスによるデータ転送では、絶対番地により相手先を指定してアクセスを行う。
【００２０】
またシリアルバス２は、接続されているモジュール間でのサイクリックブロックデータ転送に用いられるもので、各モジュールの送信バッファにセットされたデータがサイクリックに転送される。このシリアルバス２では、各モジュールの運転状態ステータス、アプリケーション入出力（プロセスデータ）データが送信される。なおこのシリアルバス２は、全モジュール間でデータをやり取り出来るシステムバス１と独立した別系統のバスであれば、上記構成のもの以外の仕様のものでも良いし、シリアル転送を行うもので無くても良い。
【００２１】
各モジュール０〜１４には、ハードウエアスイッチによりそれぞれを一意に識別する識別番号が設定されている。この識別番号は、バスマスタ設定専用に各モジュールに設定するものとしても、あるいは各モジュールのシステムバスでの局アドレス又はシリアルバスでの局アドレスと共用してもよい。本実施形態では、この識別番号として各モジュールのシステムバスでの局アドレスを用いる。図１の場合、この識別番号はモジュール０には識別番号“０”、モジュール１には識別番号“１”、・・・、モジュール１４には識別番号“１４”という順番で各モジュールに設定されているものとする。
【００２２】
図１のシステムでは、リセット解除後の初期動作としてシステムバス１を構築し、使用可能な状態にするが、その為にはまずシステムバス１−１〜１−３上にそれぞれバスマスタを設定しなければならない。本実施形態では、バスマスタには、そのシステムバスに実装されているモジュールのうちで一番小さな識別番号が割付けられているモジュールがそのシステムバスのバスマスタに設定されるものとする。
【００２３】
尚図１のシステムでは、全モジュール０〜１４がバスマスタとしての機能を有しているものとするが、１つのシステムバス上にバスマスタを多重設定するとクロック信号や送信データの衝突の発生等ハードウェアの制約によりシステムバスが正常動作できないので、バスマスタとして設定されるモジュールは各システムバスに対して１つのモジュールのみである。
【００２４】
このバスマスタの設定は、以下の手順で行われる。
ステップ１
各モジュールは、リセット解除後の初期動作として、まず自己に設定されている識別番号を調べる。そしてこの識別番号に特定の値が設定されているモジュールが自己をバスマスタとして設定する為の処理を自律的に行ってゆく。本実施形態ではシステムバスに実装されているモジュールの中で識別番号値が最も小さなモジュールがバスマスタとなるので、この特定の値を最小値“０”とし、最初にこの識別番号を持つモジュール０がバスマスタとして自己を設定する為の処理動作を行う。
【００２５】
モジュール０は、そのシステムバス１−１に対して、現在既にバスマスタが設定されて使用可能な状態なのかあるいはバスマスタが未設定の状態なのかを確認するため、システムバス１−１に接続されている全てのモジュールに対して返答を要求するデータを送信する。
【００２６】
システムバス１を用いたモジュール間のデータ通信は、各モジュール内の特定アドレス空間にシステムバス１によるアクセス用の領域（以下Ｉ／Ｏ領域という）を設け、このＩ／Ｏ領域へアクセスすることによりデータ送受信を行う。
【００２７】
図２は、そのＩ／Ｏ領域の例を示す図である。
図２の場合、Ｉ／Ｏ領域として００００００Ｈから〜７ＦＦＦＦＦＨまでの８Ｍワードのアドレス空間が設定されている。このＩ／Ｏ領域は１６の領域に分けられ、それぞれの領域がシステムバス上の各局アドレスと対応している。例えば局アドレス１の領域にデータを書込むと、システムバス１−１に実装されているアドレス１のモジュールにそのデータが送信され、またアドレス１のモジュールからの返答は、局アドレス１の領域からデータを読み出すことによってデータ受信することができる。よってこのＩ／Ｏ領域の局アドレス０〜１５の全ての領域へアクセスを行うことは、対応するシステムバス１に実装されている全てのモジュールに対してデータ送信を行うことを意味する。
【００２８】
モジュール０は、システムバス１−１のバスマスタの有無や実装状態を確認するため、システムバス１−１に対応するＩ／Ｏ領域の全アドレス領域へアクセスを行い、応答要求に対して全てが無応答アクセスとなることを確認する。
【００２９】
ここで無応答アクセスとは、応答要求を送信して一定時間内に送信相手から応答が無いことを示す。よって全アドレス領域へのアクセスに対して、全く応答が無いということは、システムバス１−１上にはバスマスタが設定されておらずシステムバス１−１は使用できない状態にあるのか、若しくはシステムバス１−１上に自モジュール以外のモジュールが１台も実装されていないことを示す。
【００３０】
上記無応答アクセスを確認すると、モジュール０はシステムバス１−１にはまだバスマスタが設定されておらず、バスマスタを設定しても多重設定にはならないと判断し、自己をシステムバス１−１のバスマスタに設定する。
【００３１】
ステップ２
各モジュール０〜１４には、システムに対する設定情報としてユーザ登録情報がセットされており、このユーザ情報には各システムバス１−１〜１−３に対してどのモジュールがバスマスタとして設定されるか等バスマスタについての情報も設定されている。バスマスタとして設定されたモジュール０は、このユーザ登録情報の設定内容がシステムバス１−１の実装状態と一致していることを確認した上で自己をバスマスタとする設定を確定しなければならない。
【００３２】
図３はユーザ登録情報の構成内容を示す図である。
同図に示すようにユーザ登録情報は、システム定義番号、サイズ情報（Ｌ，Ｈ）、モジュール構成情報数、シリアルバス直結モジュール数、及び各モジュール毎に構成されるモジュール構成情報からなる。
【００３３】
システム定義番号は、このモジュールのプログラマブルコントローラとしての動作を定義する各システム設定の識別番号である。またサイズ情報はこのユーザ登録情報の大きさを示す２バイトのデータで、以下に続くモジュール構成情報数、シリアルバス直結モジュール数、及び各モジュール構成情報を合わせた全バイト数を示す。
【００３４】
モジュール構成情報数は、ユーザ登録情報内に設定されているモジュール構成情報の数を示し、シリアルバス直結モジュール数は、バス制御ＬＳＩが実装され、シリアルバス２に実装されているモジュールの総数を示す。
【００３５】
モジュール構成情報は、モジュールの種類、シリアル局アドレス等構成に関する情報を集約するもので、システム管理情報、シリアルバス局アドレス、モジュール種別１、２及びバスマスタのシリアルバス局アドレスより構成されている。
【００３６】
システム管理情報は、ＲＡＳ管理情報番号やモジュールの実装／未実装を設定するフラグである。
シリアルバス局アドレスは、そのモジュールに割り当てられたシリアルバス２での論理局アドレスを示す。尚このシリアルバス２の局アドレスは、システムバスの局アドレスと同一のもの、若しくはシステムバスの局アドレスから導き出せる形で形成されている。
【００３７】
モジュール種別１及び２は、ＣＰＵモジュール、入出力モジュール等そのモジュールの種別を示す情報である。
バスマスタのシリアルバス局アドレスは、同一システムバスに実装されるバスマスタのシリアルバス局アドレスを定義するものである。本実施形態ではそのシステムバスに実装されているモジュールの中で最も小さい識別番号を持つものがバスマスタとなるので、この領域には識別番号が最も小さい、即ち最も小さいシステムバスの局アドレスを持つモジュールのシリアルバスの局アドレスが設定されている。尚上述したようにシリアルバスとシステムバスの局アドレスは、同じものか対応関係にあるのでシリアルバスの局アドレスからシステムバスの局アドレスは容易に求まる。
【００３８】
モジュール０は、ステップ１により自己をシステムバス１−１のバスマスタに設定すると、次に再度システムバス１−１のＩ／Ｏ領域の全アドレス領域に対してアクセスを行う。このアクセスにより、再度、システムバス１−１に実装されている全モジュールに対して応答要求を行うこととなるが、今回はステップ１の場合と異なり、モジュール０はデータ転送用クロックの供給等、バスマスタとして振る舞うので、システムバス１−１は使用可能状態となっている。従ってシステムバス１−１に実装されているモジュールは、モジュール０からの応答要求に対してシステムバス１−１を用いて応答を返す。
【００３９】
これに対しモジュール０は、Ｉ／Ｏ領域中で応答が返ってきた領域に対応する局アドレスには、システムバス１−１上にモジュールが実装されていると、また無応答アクセスであった領域に対応する局アドレスではモジュールが実装されていないと判断する。そして、これらの結果に基づく実際のシステムバス１−１の構成とユーザ登録情報内の実装構成が一致するかをチェックする。
【００４０】
図１のシステム構成の場合、モジュール０は、全アドレス空間へのアクセスに対して、Ｉ／Ｏ領域の局アドレス１〜４の領域に応答が格納されることによって、システムバス１−１上にモジュール１、２、３及び４が実装されていることが認識できる。
【００４１】
ステップ３
ステップ２により、システムバス１−１上の実際に実装されているモジュールはモジュール０〜４であることを認識すると、これをユーザ登録情報内の設定と比較する。
【００４２】
この結果、両者の内容が一致すると、ユーザ登録情報の内容はシステムバス１−１の現状の実装状態を正確に表していることが分る。ユーザ登録情報中には、１つのシステムバスには１つのモジュールのみがバスマスタとして設定され、そのアドレスが格納されている。従って、ユーザ登録情報どおりに、自己をバスマスタとして登録することは、バスマスタの多重設定にはならない保証がとれる。このことからモジュール０は、自己をバスマスタと確定する。
【００４３】
ステップ４
システムバス１−１上のバスマスタとしてモジュール０が確定されると、次にこのバスマスタとなったモジュール０は、シリアルバス２のメッセージ通信機能を利用して、システムバス１−１以外のシステムバスに実装されているモジュールのうち、最小の識別番号が設定されているモジュールに対してバスマスタ判定依頼３を通知する。このバスマスタ判定依頼は、送信相手のモジュールに自己が実装されているシステムバス１のバスマスタの設定を行わせるものである。
【００４４】
図１のシステム構成では、モジュール０はモジュール５にバスマスタ判定依頼３−１をシリアルバス２を介して送信する。バスマスタ判定依頼３−１を受けたモジュール５は、上記ステップ１〜３と同様の処理を行い、自己をシステムバス１−２のバスマスタとして設定し、システムバス１−２を構築する。
【００４５】
システムバス１−２のバスマスタの設定が正常に終わり、システムバス１−２が使用可能な状態となると、バスマスタとなったモジュール５は、システムバス１−１、１−２以外のシステムバス実装されているモジュールの中で最小の識別番号が設定されているモジュールに対して、バスマスタ判定依頼３を通知する。
【００４６】
図１のシステム構成ではこのモジュールは、システムバス１−３のモジュール１０となり、バスマスタ判定依頼３−１を受けたモジュール１０は、上記ステップ１〜３と同様の処理を行い、自己をシステムバス１−２のバスマスタとして設定し、システムバス１−３を構築する。そして、モジュール１０は、システムバス１−１、１−２及び１−３以外のシステムバスに実装されているモジュールで最小の識別番号が設定されているモジュールに対してバスマスタ判定依頼を送信する。
【００４７】
以降、上記処理を繰り返すことにより、システム内の全システムバスを構築することができる。
図４は、バスマスタとして設定されるモジュールの動作処理を示すフローチャートである。
【００４８】
リセットが解除されるとシステムを構成している各モジュールは、初期動作の１つとして、まずステップＳ１として自己に設定されている識別番号を調べる。そしてこの識別番号番号がバスマスタを設定する処理を行うモジュールを定める規定値（上記例では“０”）でなかったら（ステップＳ２、Ｎ）、このモジュールはバスマスタ設定処理を行うモジュールではないので処理を終了する。
【００４９】
また識別番号が規定値であったならば（ステップＳ２、Ｙ）、このモジュールはバスマスタ設定処理を行う為のモジュールなので、次にステップＳ３として、自己が実装されているシステムバスに対応するアドレス領域にアクセスし、全てのモジュールに対して応答要求を送信する。その結果応答が返ってきた場合（ステップＳ４、Ｎ）、そのシステムバスには既にバスマスタが設定されているので処理を終了する。また無応答アクセスであった場合（ステップＳ４、Ｙ）、ステップＳ５として自己をそのシステムバスのバスマスタとして設定する。
【００５０】
ステップＳ５の後、そのモジュールはシステムバスにデータ転送用クロックを供給する等バスマスタとして振る舞いつつ、ステップＳ６として再度そのシステムバスに実装されている全てのモジュールに対して、応答要求を送信する。そしてこの応答要求に対する返答から得られるシステムバスの実装状態とユーザ登録情報とを比較する（ステップＳ８）。その結果、両者が一致しなければ（ステップＳ８、Ｎ）、バスマスタの多重設定の可能性があるので、重故障状態であることを通知（ステップＳ１０）した後、処理を終了する。また一致すれば（ステップＳ８、Ｙ）、自己をそのシステムバスのバスマスタとして確定し、次にステップＳ９として、このシステムバス以外のシステムバスに実装されているモジュールの中から、特定の規則、例えば識別番号が最も小さいモジュールを選択し、バスマスタ判定依頼を送信した後、バスマスタ設定処理を終了する。
【００５１】
このバスマスタ判定依頼を受信したバスマスタとしての機能を備えるモジュールは、図４の▲１▼部分、即ちステップＳ３から上記処理を行い、以降システム内の全てのシステムバスが構築されるまで、これらの処理が繰り返される。
【００５２】
ステップ５
上記ステップ１〜４の処理により、システム内の全システムバス１が構築され使用可能な状態に入ると、バスマスタとしての機能を備え、バスマスタとして設定されなかったモジュール（以下非バスマスタモジュールという）は、シリアルバス２上を流れるモジュールの運用状態ステータスの監視を行う。この運用状態ステータスは各モジュールの運用状態を示すもので、非バスマスタモジュールは、自己が実装されているシステムバス１のバスマスタモジュールから送信される運用状態ステータスを監視する。
【００５３】
図５は、この運用状態ステータスの構成例を示す図である。
図５の例の場合、この運用状態ステータスは８ビットのデータで、各ビットはバスマスタモジュールの状態をそれぞれ表す。例えば図５の場合ビット３がこの運用状態ステータスがバスマスタモジュールからのものであるかどうかを示す。またビット５及び６はバスマスタモジュールがハードウエア故障等の致命的故障である重故障及び一時的な故障である軽故障時にセットされ、ビット７は、バスマスタモジュールでアプリケーションプログラムが動作中かどうかを表す。
【００５４】
非バスマスタモジュールは、シリアルバス上を定周期で送信されてくるバスマスタモジュールからの運用状態ステータスを監視し、バスマスタモジュールが正常に動作しているかどうかをチェックする。
【００５５】
そしてバスマスタモジュールが故障状態となり、バスマスタとして機能できなくなった時、そのバスマスタモジュールと同じシステムバス１に実装されている非バスマスタモジュールが代わりにバスマスタとして設定されることによりシステムバスの運用状態は継続維持される。
【００５６】
図１のシステム構成の場合、システムバス１−１では、非バスマスタモジュールであるモジュール１〜４は、バスマスタであるモジュール０がシリアルバス上に送信する運用状態ステータスの監視を常時行う。
【００５７】
そしてモジュール０に故障が発生すると、システムバス１−１上でモジュール０の次に小さい識別番号が設定されているモジュール１が代わりにバスマスタとして設定されることにより、モジュール０からモジュール１ヘバスマスタが切り換わりシステムバスの動作を継承維持する。このことにより、システムバス１−１では、バスマスタモジュール０が故障しても非バスマスタモジュール１が新たなバスマスタとしてシステムバス１−１を管理するので、システムバス１−１はダウンすること無く正常に動作することが可能となる。他のシステムバス１−２、１−３上についても同様の処理が行われ、バスマスタモジュール５、１０が故障してもバスマスタはモジュール６、モジュール１１に切り換わるので、モジュール６〜９のデータ転送、モジュール１１〜１４のデータ転送は正常に行われる。
【００５８】
図６は、このバスマスタの切り換えを行う非バスマスタモジュールの処理を示すフローチャートである。
各非バスマスタモジュールは、一定周期、例えば２０ｍｓ周期毎に発生する割込み処理として、この様なプログラムを起動してバスマスタモジュールが故障した場合、新たなバスマスタモジュールを切り換える。
【００５９】
このバスマスタ監視、切り換え処理が起動されると、まずステップＳ１１として自モジュールが、重故障かどうかを調べる。重故障である場合（ステップＳ１１、Ｎ）、バスマスタモジュールとしては機能できないので、ステップＳ１８として自己が重故障状態であることを通知した後処理を終了する。また自己が重故障でない場合（ステップＳ１１、Ｙ）、次に自己が実装されているシステムバスのバスマスタモジュールの局番が設定されているかどうかを調べる（ステップＳ１２）。その結果、登録されていなければステップＳ１９として、運用状態ステータスからバスマスタモジュールの局番を検索して登録後、処理を終了する。
【００６０】
またステップＳ１２でバスマスタの局番が登録されていれば（ステップＳ１２、Ｙ）、次にステップＳ１３として、運用状態ステータスから得られる他モジュールの状態から、重故障が発生したモジュールをモジュール脱落情報としてマスタモジュールに切り換え可能なモジュールから除く。
【００６１】
次に、運用状態ステータスからバスマスタモジュールの状態を調べ、バスマスタモジュールに重故障等が発生して脱落しているかどうかを調べる（ステップＳ１５）。その結果脱落していなければ（ステップＳ１５、Ｎ）、バスマスタを切換える必要はないので処理を終了する。
【００６２】
また脱落していた場合（ステップＳ１５、Ｙ）、新たなバスマスタモジュールに切換えなければならないので、自己をバスマスタモジュールとして設定するべきかどうかを決めるため、ステップＳ１６として自己の識別番号とそのシステムバスに実装されている他のモジュールの識別番号を比較する。その結果そのシステムバスに実装されていて、バスマスタモジュールに切換え可能なモジュールのの中で自己の識別番号が最も小さければ（Ｓ１６、Ｙ）、Ｓ１７として自己をバスマスタとして設定して処理を終了する。また自己の識別番号より小さい識別番号を持つモジュールが他に存在するならば（ステップＳ１７、Ｎ）、そのモジュールがバスマスタモジュールに設定され処理を終了する。
【００６３】
ステップ４の別形態
図７は、ステップ４の処理の別形態の説明図である。
図７（ａ）に示すように、ステップ４では、システムバス１−１上のバスマスタとなったモジュール０は、シリアルバス２のメッセージ通信機能を利用して、システムバス１−１以外のシステムバスに実装されているモジュールのうち、最小の識別番号が設定されているモジュール５に対してバスマスタ判定依頼３−１を通知する。そしてモジュール５がシステムバス１−２のバスマスタに設定されると、このモジュール５がシリアルバス２からシステムバス１−１及び１−２以外のシステムバスに実装されているモジュールのうち、最小の識別番号が設定されているモジュール１０に対してバスマスタ判定依頼３−１を通知し、以降全てのシステムバス１にバスマスタが設定されるまでこの処理を繰り返す。
【００６４】
しかし、本実施形態でのバスマスタ判定依頼３の送信方法は、この図７（ａ）の方式のみに限らない。
図７（ｂ）に別方式によるバスマスタ判定依頼３の通知を示す。同図（ｂ）の方式では、最初にバスマスタモジュールとなったモジュール０が、モジュール５のみだけではなく、システムバス１−１以外の残りの未構築システムバス１全てに対して実装されているバスマスタ機能を備えたモジュールのうち最も小さい識別番号が設定されているモジュールを調べ、そのモジュール全てにバスマスタ判定依頼３を送信する。図７（ｂ）では、モジュール０は、モジュール５、モジュール１０等宛てにバスマスタ判定依頼３を同時に若しくは連続して送信する。これを受取った各モジュールは、上記ステップ１〜３と同様の処理を行い、自己を各システムバス１のバスマスタとして設定し、システムバス１を構築する。
【００６５】
この図７（ｂ）の方式の場合、バスマスタ判定依頼３を受取った複数のモジュールが平行してバスマスタモジュールの設定の為の処理を行いシステムバス１を構築するので、図７（ａ）の方式に比して、短い処理時間で全システムバスが構築されシステムが稼動可能となる。
【００６６】
図８は、本実施形態におけるバスマスタとしての機能を備えたモジュールの構成例を示す図である。
本実施形態のモジュールは、図８に示すＣＰＵ１１、ＲＯＭ、ＲＡＭ等による主記憶装置１２、ハードディスク装置１３、ディスプレイ、キーボード等の入出力装置（Ｉ／Ｏ）１４、システムバス１とモジュールを接続するバスマスタとしての機能を備えたシステムバスインタフェース１５、シリアルバス２とモジュールを接続するシリアルバスインタフェース１６及びディスク、磁気テープなどの可搬記憶媒体１８から記憶内容を読み出す媒体読取り装置１７の一部若しくは全部を備え、これらが互いに内部バス１９により接続される構成を備えている。
【００６７】
図８のモジュールでは、媒体読取り装置１７により磁気テープ、フロッピーディスク、ＣＤ−ＲＯＭ、ＭＯ等の記憶媒体１８に記憶されているプログラム、データを読み出し、これを主記憶装置１２またはハードディスク１３にダウンロードする。そして本実施形態の各処理は、ハードウエア的手法のみならず、ＣＰＵ１１がこのプログラムやデータを実行することにより、ソフトウエア的に実現することも可能である。
【００６８】
このモジュールでは、フロッピーディスク等の記憶媒体１８を用いてアプリケーションソフトの交換が行われる場合がある。よって、本発明は、情報処理システム及びそのシステムバス管理方法に限らず、コンピュータにより使用されたときに、上述の本発明の実施の形態の機能をコンピュータに行わせるためのコンピュータ読み出し可能な記憶媒体１８として構成することもできる。
【００６９】
この場合、「記憶媒体」には、例えば図９に示されるように、ＣＤ−ＲＯＭ、フロッピーディスク（あるいはＭＯ、ＤＶＤ、リムーバブルハードディスク等であってもよい）等の媒体駆動装置２７に脱着可能な可搬記憶媒体２６や、ネットワーク回線２３経由で送信される外部の装置（サーバ等）内の記憶手段（データベース等）２２、あるいは情報処理装置２１の本体２４内の記憶装置（ＲＡＭ又はハードディスク等）２５等が含まれる。可搬記憶媒体２６や記憶手段（データベース等）２２に記憶されているプログラムは、本体２４内のメモリ（ＲＡＭ又はハードディスク等）２５にロードされて、実行される。尚本発明を実現するプログラムをＲＯＭ内に保持し、ＲＯＭ交換によってプログラムを変更する形態もあるので、上記可搬記憶媒体にはＲＯＭも含まれる。
【００７０】
【発明の効果】
本発明によれば、複数システムバスを介して複数のモジュールが接続される情報処理システムにおいて、システム構成をフレキシブルにしたシステムバス構築のルールが確立される。また、このシステムバス構築時、バスマスタとして設定されるモジュールはそのシステムバスにバスマスタが多重設定されないよう確認しながら設定する。拠って、複数のバスマスタとしての機能を備えるモジュールが１つのシステムバスに実装されていても、バスマスタが多重設定されずに１つのシステムバスに１つのバスマスタが設定される。
【００７１】
また、バスマスタが故障しても他のモジュールが新たなバスマスタとしてそのシステムバスを管理することが出来る。このため、バスマスタの故障によるシステムバスの使用不可能状態や、システムダウンの発生を防ぐことが出来る。
【図面の簡単な説明】
【図１】本実施形態のシステム構成の概要を示す図である。
【図２】Ｉ／Ｏ領域の例を示す図である。
【図３】各モジュールにセットされているユーザ登録情報の内容を示す図である。
【図４】バスマスタとして設定されるモジュールの動作処理を示すフローチャートである。
【図５】運用状態ステータスの構成例を示す図である。
【図６】バスマスタの切り換えを行う非バスマスタモジュールの処理を示すフローチャートである。
【図７】別方式によるバスマスタ判定依頼通知方式の説明図である。
【図８】モジュール構成を示す図である。
【図９】記憶媒体の例を示す図である。
【図１０】従来のシステム構成の概要を示す図である。
【符号の説明】
１、１０１  システムバス
２、１０２  シリアルバス
３  バスマスタ判定依頼
１１  ＣＰＵ
１２  主記憶装置
１３  ハードディスク
１４  入出力装置
１５  システムバスインタフェース
１６  シリアルバスインタフェース
１７  媒体読取り装置
１８  記憶媒体
１９  内部バス
【図１】
0003959891.tif 000002
【図２】
0003959891.tif 000003
【図３】
0003959891.tif 000004
【図４】
0003959891.tif 000005
【図５】
0003959891.tif 000006
【図６】
0003959891.tif 000007
【図７】
0003959891.tif 000008
【図８】
0003959891.tif 000009
【図９】
0003959891.tif 000010
【図１０】
0003959891.tif 000011