(57)【要約】【課題】  複数の単位バスに分割されたバスと、このバスに接続された複数のユニットとから構成された情報処理装置のＲＡＳを向上させる。【解決手段】  各ユニット１〜５は、所定のタイミング毎に、他のユニットと通信を行い、正常に動作しているユニットの中からリソース使用率が最も少ないユニットを１つ選択し、この選択したユニットをバスアービタとして機能させる。従って、１台のユニットを固定的にバスアービタとして機能させる場合に比較して、ＲＡＳを向上させることができる。また、バスアービタとして機能しているユニットは、複数のバスマスタからのバス使用要求が競合した場合、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与える。従って、システム性能を高いものにすることができる。【選択図】      図１
2005165488.tif 000002
【特許請求の範囲】
【請求項１】
複数の単位バスに分割されたバスと、該バスに接続された複数のユニットとを備えた情報処理装置であって、
所定のタイミング毎に、前記複数のユニットの中から、正常に動作している負荷が最も低いユニットを１台選択し、該選択したユニットをバスアービタとして機能させ、残りのユニットをバスマスタとして機能させる構成を有することを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記各ユニットが、他のユニット内の制御手段と通信を行うことにより、前記複数のユニットの中から、正常に動作している最もリソース使用率の少ないユニットを１台選択し、該選択したユニットをバスアービタとして機能させ、残りのユニットをバスマスタとして機能させる制御手段を備えたことを特徴とする情報処理装置。
【請求項３】
請求項２記載の情報処理装置において、
前記各ユニットが、
バスの使用要求が発生したとき、自ユニットがバスアービタとして機能していないことを条件にして、使用する単位バスの数に関する情報を含むバス使用要求を、バスアービタとして機能しているユニットに対して出力するバスマスタ機能部と、
複数のバスマスタからのバス使用要求が同時に入力されたとき、前記複数のバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与えるバスアービタ機能部とを備えたことを特徴とする情報処理装置。
【請求項４】
請求項３記載の情報処理装置において、
前記バスアービタ機能部は、バスの使用権を与えることができなかったバス使用要求を保留状態にし、バスを解放するバスマスタが発生したとき、保留状態になっているバス使用要求に対応するバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与える構成を有することを特徴とする情報処理装置。
【請求項５】
請求項１乃至４記載に記載の何れか１つの情報処理装置において、
前記各単位バスの幅が、１バイトであることを特徴とする情報処理装置。
【請求項６】
複数の単位バスに分割されたバスと、該バスに接続された複数のユニットとを備えた情報処理装置における構成変更方法であって、
所定のタイミング毎に、前記複数のユニットの中から、正常に動作している負荷が最も低いユニットを１台選択し、該選択したユニットをバスアービタとして機能させ、残りのユニットをバスマスタとして機能させることを特徴とする構成変更方法。
【請求項７】
請求項６記載の構成変更方法において、
前記各ユニットが、他のユニットと通信を行うことにより、前記複数のユニットの中から、正常に動作している最もリソース使用率の少ないユニットを１台選択し、該選択したユニットをバスアービタとして機能させ、残りのユニットをバスマスタとして機能させることを特徴とする構成変更方法。
【請求項８】
請求項７記載の構成変更方法において、
バスマスタとして機能しているユニットが、自ユニット内にバスの使用要求が発生したとき、使用する単位バスの数に関する情報を含むバス使用要求を、バスアービタとして機能しているユニットに対して出力し、
バスアービタとして機能しているユニットが、複数のバスマスタからのバス使用要求が同時に入力されたとき、前記複数のバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与えることを特徴とする構成変更方法。
【請求項９】
請求項８記載の構成変更方法において、
バスアービタとして機能しているユニットが、バスの使用権を与えることができなかったバス使用要求を保留状態にし、バスを解放するバスマスタが発生したとき、保留状態になっているバス使用要求に対応するバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与えることを特徴とする構成変更方法。
【請求項１０】
請求項６乃至９記載に記載の何れか１つの構成変更方法において、
前記各単位バスの幅が、１バイトであることを特徴とする構成変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の単位バスから構成されるバスに、複数のユニットが接続された情報処理装置に関し、特に、情報処理装置のＲＡＳ(reliability, availabilty and serviceability)を向上させる技術に関する。
【背景技術】
【０００２】
複数のバスマスタが同一のバスに接続されている情報処理装置においては、バスアービタがバスマスタからのバス使用要求を調停している。従来の一般的なバスアービタは、或るバスマスタから使用要求があった場合、バスが未使用であれば、要求元のバスマスタに対してバスの使用権を与え、バスが使用中であれば、バスが解放されるのを待って使用権を与えるというものであった。このため、バスの使用権を与えられたバスマスタが、全バス幅の内の一部のみしか使用しない場合であっても、他のバスマスタからのバス使用要求は、待たされることになってしまう。
【０００３】
そこで、このような問題点を解決するため、バスを複数の単位バスに分割し、バスマスタにバスの使用権を与える際、バスマスタが必要としているバス幅を考慮して、単位バス単位でバスの使用権を与えるという技術が従来提案された（例えば、特許文献１、２参照）。
【特許文献１】特開平５−２８２２４２号公報
【特許文献２】特開２００２−９１９０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１、２に開示されている従来の技術のように、単位バス単位でバスの使用権を与えるようにすることにより、同時に複数台のバスマスタにバスの使用権を与えることが可能になるので、情報処理装置の性能を高めることができる。
【０００５】
しかしながら、特許文献１、２に開示されている従来の情報処理装置は、バスに接続されている複数台のユニットの内の、１台のユニットを固定的にバスアービタとして機能させているため、このバスアービタとして機能しているユニットに障害が発生した場合、システム全体が使用できなくなるなど、ＲＡＳ面に問題があった。
【０００６】
〔発明の目的〕
そこで、本発明の目的は、情報処理装置のＲＡＳを向上させることにある。
【課題を解決するための手段】
【０００７】
本発明にかかる第１の情報処理装置は、ＲＡＳを向上させるため、
複数の単位バスに分割されたバスと、該バスに接続された複数のユニットとを備えた情報処理装置であって、
所定のタイミング毎に、前記複数のユニットの中から、正常に動作している負荷が最も低いユニットを１台選択し、該選択したユニットをバスアービタとして機能させ、残りのユニットをバスマスタとして機能させる構成を有することを特徴とする。
【０００８】
本発明にかかる第２の情報処理装置は、ＲＡＳを向上させるため、第１の情報処理装置において、
前記各ユニットが、他のユニット内の制御手段と通信を行うことにより、前記複数のユニットの中から、正常に動作している最もリソース使用率の少ないユニットを１台選択し、該選択したユニットをバスアービタとして機能させ、残りのユニットをバスマスタとして機能させる制御手段を備えたことを特徴とする。
【０００９】
本発明にかかる第３の情報処理装置は、システム性能を向上させるため、第２の情報処理装置において、
前記各ユニットが、
バスの使用要求が発生したとき、自ユニットがバスアービタとして機能していないことを条件にして、使用する単位バスの数に関する情報を含むバス使用要求を、バスアービタとして機能しているユニットに対して出力するバスマスタ機能部と、
複数のバスマスタからのバス使用要求が同時に入力されたとき、前記複数のバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与えるバスアービタ機能部とを備えたことを特徴とする。
【００１０】
本発明にかかる第４の情報処理装置は、システム性能を向上させるため、第３の情報処理装置において、
前記バスアービタ機能部は、バスの使用権を与えることができなかったバス使用要求を保留状態にし、バスを解放するバスマスタが発生したとき、保留状態になっているバス使用要求に対応するバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与える構成を有することを特徴とする。
【００１１】
本発明にかかる第５の情報処理装置は、バスマスタが１バイト単位で単位バスを要求できるようにするため、第１〜第４の情報処理装置において、
前記各単位バスの幅が、１バイトであることを特徴とする。
【００１２】
本発明にかかる第１の構成変更方法は、ＲＡＳを向上させるため、
複数の単位バスに分割されたバスと、該バスに接続された複数のユニットとを備えた情報処理装置における構成変更方法であって、
所定のタイミング毎に、前記複数のユニットの中から、正常に動作している負荷が最も低いユニットを１台選択し、該選択したユニットをバスアービタとして機能させ、残りのユニットをバスマスタとして機能させることを特徴とする。
【００１３】
本発明にかかる第２の構成変更方法は、ＲＡＳを向上させるため、第１の構成変更方法において、
前記各ユニットが、他のユニットと通信を行うことにより、前記複数のユニットの中から、正常に動作している最もリソース使用率の少ないユニットを１台選択し、該選択したユニットをバスアービタとして機能させ、残りのユニットをバスマスタとして機能させることを特徴とする。
【００１４】
本発明にかかる第３の構成変更方法は、システム性能を向上させるため、第２の構成変更方法において、
バスマスタとして機能しているユニットが、自ユニット内にバスの使用要求が発生したとき、使用する単位バスの数に関する情報を含むバス使用要求を、バスアービタとして機能しているユニットに対して出力し、
バスアービタとして機能しているユニットが、複数のバスマスタからのバス使用要求が同時に入力されたとき、前記複数のバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与えることを特徴とする。
【００１５】
本発明にかかる第４の構成変更方法は、システム性能を向上させるため、第３のの構成変更方法において、
バスアービタとして機能しているユニットが、バスの使用権を与えることができなかったバス使用要求を保留状態にし、バスを解放するバスマスタが発生したとき、保留状態になっているバス使用要求に対応するバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与えることを特徴とする。
【００１６】
本発明にかかる第５の構成変更方法は、バスマスタが１バイト単位でバスを要求できるようにするため、第１〜第５の構成変更方法において、
前記各単位バスの幅が、１バイトであることを特徴とする。
【発明の効果】
【００１７】
本発明にかかる第１の情報処理装置及び第１の構成変更方法は、情報処理装置のＲＡＳを向上できるという効果を有する。その理由は、正常動作しているユニットの内の、負荷が最も低いユニットをバスアービタとして機能させるようにしているからである。つまり、１台のユニットを固定的にバスアービタとして機能させた場合は、そのユニットに障害が発生すると、システム全体が使用できなくなってしまうが、本発明によれば、正常動作しているユニットの内の、負荷が最も低いユニットをバスアービタとして機能させているので、１台のユニット障害によりシステム全体が停止してしまうということはなくなる。
【００１８】
本発明にかかる第２の情報処理装置及び第２の構成変更方法は、情報処理装置のＲＡＳを向上できるという効果を有する。その理由は、正常動作しているユニットの内の、リソース使用率が最も少ないユニットをバスアービタとして機能させるようにしているからである。
【００１９】
本発明にかかる第３の情報処理装置及び第３の構成変更方法は、システム性能を高いものにすることができるという効果を有する。その理由は、複数のバスマスタからのバス使用要求が競合した場合、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与えるようにしているからである。
【００２０】
本発明にかかる第４の情報処理装置及び第４の構成変更方法は、システム性能を高いものにすることができるという効果を有する。その理由は、バスの使用権を与えることができなかったバス使用要求を保留状態にし、バスを解放するバスマスタが発生したとき、保留状態になっているバス使用要求に対応するバスマスタの内の、動作中のプロセス数が多いバスマスタから優先的に、要求単位バス数が未使用単位バス数以下であることを条件にしてバスの使用権を与えるようにしているからである。
【００２１】
本発明にかかる第５の情報処理装置及び第５の構成変更方法は、バスマスタが１バイト単位でバスを要求できるという効果を有する。その理由は、各単位バスの幅が、１バイトであるからである。
【発明を実施するための最良の形態】
【００２２】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２３】
図１は本発明にかかる情報処理装置の実施例のブロック図であり、バス１００を介して５台のユニット１〜５が相互に接続されている。各ユニット１〜５は、同一構成を有しており、バスアービタ、バスマスタの何れとしても機能可能なものであるが、現時点では、ユニット１がバスアービタとして機能し、残りのユニット２〜４がバスマスタとして機能している。また、図１では、ユニット１の内部構成として、主にバスアービタとして機能するために必要になるバスアービタ機能部の構成を示し、ユニット２の内部構成として、主にバスマスタとして機能するために必要になるバスマスタ機能部の構成を示しているが、各ユニットは、上記したように、同一構成を有する。また、図１では、ユニット１、２間のインターフェースしか示していないが、各ユニット１〜５間には同様のインターフェースが存在する。また、以下の説明では、バスアービタとして機能しているユニットｊ（１≦ｊ≦５）をバスアービタｊと、バスマスタとして機能しているユニットｊをバスマスタｊと記す場合がある。
【００２４】
バス１００は、複数の単位バスに分割されている。本実施例においては、バス１００は、４バイト構成のバスであり、それぞれが１バイト構成の第０バイト目〜第３バイト目の４つの単位バスに分割されているとする。
【００２５】
バスマスタとして機能しているユニット２は、バス使用要求信号生成手段２０、使用要求バイト幅情報送出手段２１、バス使用許可信号受信手段２２、バス使用許可位置情報解読手段２３、データ転送実行手段２４、バス使用要求信号送出手段２５、使用要求バイト幅情報生成手段２６およびバス使用許可位置情報受信手段２７からなるバスマスタ機能部を備えている。更に、ユニット２は、制御手段２８およびバスアービタ機能部（図示せず）を備えている。なお、バスアービタ機能部については、後で（バスユニット１の説明部分）で詳細に説明する。
【００２６】
バス使用要求信号生成手段２０は、バスマスタ２内にバスの使用要求が発生すると、バス使用要求信号送出手段２５に対してバス使用要求信号の出力を指示する機能を有する。
【００２７】
バス使用要求信号送出手段２５は、バス使用要求信号生成手段２０からの指示に従って、現在バスアービタとして機能しているユニット１に対して、バス使用要求信号ＢＲを出力する機能を有する。
【００２８】
使用要求バイト幅情報生成手段２６は、バスマスタ２内にバスの使用要求が発生すると、使用要求されているバス幅（単位バス数）を使用要求バイト幅情報送出手段２１に指示する機能を有する。
【００２９】
使用要求バイト幅情報送出手段２１は、使用要求バイト幅情報生成手段２６からの指示されたバス幅に対応する使用要求バイト幅情報Ｗ０〜Ｗ３を、バスアービタ１に対して出力する機能を有する。なお、本実施例においては、使用するバス幅が１バイトの場合は、使用要求バイト幅情報Ｗ０を出力し、同様に、使用するバス幅が、２、３、４バイトの場合は、使用要求バイト幅情報Ｗ１、Ｗ２、Ｗ３を出力するものとする。
【００３０】
バス使用許可位置情報受信手段２７は、バスアービタ１からのバス使用許可位置情報Ｐ０〜Ｐ３を受信する機能を有する。
【００３１】
バス使用許可信号受信手段２２は、バスアービタ１からのバス使用許可信号ＢＧを受信すると、バス使用許可位置情報解読手段２３に対して解読開始を指示する機能を有する。
【００３２】
バス使用許可位置情報解読手段２３は、バス使用許可信号受信手段２２から解読開始が指示されると、バス使用許可位置情報受信手段２７の受信結果に基づいて、使用許可された単位バス（使用権の与えられた単位バス）を認識する機能を有する。
【００３３】
データ転送実行手段２４は、バス使用許可位置情報解読手段２３が認識した単位バスを使用してデータを転送する機能を有する。
【００３４】
制御手段２８は、他のユニット１、３〜４内の制御手段と情報をやり取りし、バスアービタとして機能させるユニットを選択するというバスアービタ選択処理を実行する機能を有する。なお、バスアービタ選択処理については、後で詳細に説明する。
【００３５】
一方、バスアービタとして機能しているユニット１は、バス使用要求信号受信手段１０、バス使用要求幅解読手段１１、バス使用許可手段１２、バス使用許可信号送出手段１３、バス使用許可位置観測手段１４、バス使用許可位置情報送出手段１５及び要求保留部１６から構成されるバスアービタ機能部を備えている。更に、ユニット１は、制御手段１７及びバスマスタ機能部（図示せず；ユニット２内のバスマスタ機能部と同一構成）を備えている。なお、バスアービタとして機能しているユニット内の、バスマスタ機能部は、自ユニット内でバス使用要求が発生した場合、それを待ち行列（図示せず）に繋いでおき、自ユニットがバスマスタとして機能する状態になったら、上記待ち行列に繋がれているバス使用要求を処理する。
【００３６】
バス使用要求信号受信手段１０は、他のユニット２〜５から送られてくるバス使用要求信号ＢＲを受信したとき、要求元のユニットの識別子をバス使用要求幅解読手段１１に渡す機能を有する。
【００３７】
バス使用要求幅解読手段１１は、バス使用要求信号受信手段１０から要求元ユニットの識別子が渡されると、要求元ユニットからの使用要求バイト幅情報Ｗ０〜Ｗ３を解読し、解読結果（使用要求されている単位バスの数；要求単位バス数）と要求元ユニットの識別子（要求元識別子）とを含む使用要求をバス使用許可手段１２に渡す機能を有する。
【００３８】
バス使用許可位置観測手段１４は、バス１００を構成する各単位バスの使用状況（各単位バスがどのユニットに割り当てられているか）を観測、管理する機能や、未使用単位バス数を管理する機能を有する。
【００３９】
バス使用許可手段１２は、バス使用許可判定処理を行う機能や、バス解放時に、要求保留部１６に保留されている使用要求に基づいてバスの使用権を与えるユニットを決定する機能を有する。なお、バス使用許可判定処理については、後で詳細に説明するが、このバス使用許可判定処理には、バス使用要求幅解読手段１１から使用要求が渡されたとき、その使用要求中の要求単位バス数とバス使用許可位置観測手段１４によって管理されている未使用の単位バス数とに基づいて、バスの使用を許可するか否かを判定する処理や、複数の使用要求が競合した場合、その調停を行う処理などが含まれる。
【００４０】
バス使用許可信号送出手段１３は、バス１００の使用を許可するユニットに対してバス使用許可信号ＢＲを出力する機能を有する。
【００４１】
バス使用許可位置情報送出手段１５は、バス１００の使用を許可するユニットに対して、使用を許可する単位バスを示すバス使用許可位置信号Ｐ０〜Ｐ３を出力する機能を有する。
【００４２】
要求保留部１６には、バス使用許可手段１２においてバス１００の使用を許可できなかった使用要求が格納される。
【００４３】
次に、本実施例の動作について詳細に説明する。今、ユニット１がバスアービタとして機能し、ユニット２〜５がバスマスタとして機能している状態において、バスマスタ２内でバス使用要求が発生したとする。
【００４４】
バスマスタ２内にバス使用要求が発生すると、バス使用要求信号生成手段２０が、バス使用要求信号送出手段２５に対してバス使用要求信号ＢＲの送出を指示し、これにより、バス使用要求信号送出手段２５が、バスアービタ１内のバス使用信号受信手段１０に対してバス使用要求信号ＢＲを送出する（ステップＳ２１）。また、これと同時に、バス使用要求バイト幅情報生成手段２６が、使用要求されているバス幅が何バイトであるのかを使用要求バイト幅情報送出手段２１に対して指示し、これにより、使用要求バイト幅情報送出手段２１が、上記バイト幅に対応した使用要求バイト幅情報Ｗ０〜Ｗ３を、バスアービタ１内のバス使用要求解読手段１１に送出する（ステップＳ２２）。その後、バスマスタ２は、バスアービタ１からバス使用許可信号ＢＧが与えられるのを待つ。なお、現時点において、どのユニットがバスアービタとして機能しているのかは、制御手段２８が認識しており、使用要求バイト幅情報送出手段２１およびバス使用要求信号送出手段２５は、制御手段２８からバスアービタとして機能しているユニットの識別子を取得し、この識別子によって示されるユニットに対して使用要求バイト幅情報Ｗ０〜Ｗ３及びバス使用要求信号ＢＲを出力する。
【００４５】
バスアービタ１内のバス使用要求信号受信手段１０は、バスマスタ２からのバス使用要求信号ＢＲを受信すると、バス使用要求幅解読手段１１に対して要求元のバスマスタ２の識別子を渡す（図３のステップＳ３１）。これにより、バス使用要求幅解読手段１１は、使用要求バイト幅情報Ｗ０〜３の受信内容を解読し、解読結果（要求単位バス数）とバスマスタ２の識別子（要求元識別子）とを含む使用要求をバス使用許可手段１２に渡す（ステップＳ３２）。
【００４６】
一方、バス使用許可位置観測手段１４は、どのバスマスタに対してどのバス位置（単位バス）の使用を許可しているかを常に観測し、観測結果や、未使用の単位バス数などを管理している。
【００４７】
バス使用許可手段１２は、バス使用要求幅解読手段１１から使用要求が渡されると、バス使用許可判定処理を開始する（ステップＳ３３）。以下、バス使用許可判定処理について、図４のフローチャートを参照して詳細に説明する。
【００４８】
先ず、バス使用許可手段１２は、バス使用要求幅解読手段１１から渡された使用要求が、１個であるのか、複数個であるのかを判定する（図４のステップＳ３３１）。この例の場合、バス使用要求幅解読手段１１から渡される使用要求は、バスマスタ２から出力されたバス使用要求信号ＢＲに対応するもの１個だけであるので、ステップＳ３３２の処理が行われる。ステップＳ３３２では、使用要求中の要求単位バス数と、バス使用許可位置観測手段１４で管理されている未使用単位バス数とを比較し、（要求単位バス数）≦（未使用単位バス数）であるか否かを判定する。
【００４９】
そして、（要求単位バス数）≦（未使用単位バス数）である場合は、未使用の単位バスの中から要求単位バス数分の単位バスを選択し、バス使用許可信号送出手段１３に対してバスマスタ２の識別子を含む出力指示を出力すると共に、バス使用許可位置情報送出手段１５に対して上記選択した単位バスの位置情報（第Ｎバイト目）及びバスマスタ２の識別子を含む出力指示を出力する。これにより、バス使用許可信号送出手段１３は、バスマスタ２に対してバス使用許可信号ＢＧを出力し、バス使用許可位置情報送出手段１５は、バスマスタ２に対してバス使用許可位置情報Ｐ０〜Ｐ３を出力する（ステップＳ３３３）。また、ステップＳ３３３では、バス使用許可手段１２が、バス使用許可位置観測手段１４に対してバスマスタ２の識別子とバスマスタ２に割り当てた単位バスとを通知し、バス使用許可手段１２がこの通知に基づいて、管理しているバスの使用状況を更新するという処理も行われている。
【００５０】
これに対して、（要求単位バス数）＞（未使用単位バス数）である場合は、要求されている数の単位バスを割り当てることができないので、バス使用要求幅解読手段１１から渡された使用要求を要求保留部１６に保存する（ステップＳ３３４）。
【００５１】
今、例えば、ステップＳ３３３において、バスマスタ２に対してバス使用許可信号ＢＲ及びバス使用許可位置情報Ｐ０〜Ｐ３が出力されたとする。
【００５２】
バスマスタ２内のバス使用許可信号受信手段２２は、バスアービタ１からのバス使用許可信号ＢＧを受信すると、バス使用許可位置情報解読手段２３に対して解読指示を出力する（図２のステップＳ２３）。この時、バス使用許可位置情報解読手段２３には、バス使用許可位置情報受信手段２７が受信したバス使用許可位置情報Ｐ０〜Ｐ３が入力されており、解読指示が入力されると、バス使用許可位置情報解読手段２３は、バス使用許可位置情報Ｐ０〜Ｐ３を解読し、解読結果（使用許可された単位バスを示す）をデータ転送実行手段２４に渡す（ステップＳ２４）。これにより、データ転送実行手段２４は、使用許可された単位バスを使用してデータ転送を実行する（ステップＳ２５）。そして、データ転送が完了すると、使用要求バイト幅情報送出手段２１、バス使用要求信号送出手段２５は、使用要求バイト幅情報Ｗ０〜Ｗ３、バス使用要求信号ＢＲの出力を停止する（ステップＳ２６）。
【００５３】
上述した動作は、バスマスタ２〜５の内の、バスマスタ２のみがバス使用要求信号ＢＲを出力した場合の動作であるが、複数のバスマスタが同時にバス使用要求ＢＲを出力した場合は、次のような動作が行われる。
【００５４】
今、例えば、バスマスタ２、５が同時にバスアービタ１に対してバス使用要求信号ＢＲ及び使用要求バイト幅情報Ｗ０〜Ｗ３を出力したとすると、バスアービタ１内のバス使用要求信号受信手段１０は、バスマスタ２、５の識別子をバス使用要求幅解読手段１１に渡し（図３のステップＳ３１）、バス使用要求幅解読手段１１は、バスマスタ２の識別子及びバスマスタ２から要求されている単位バス数を含む第１の使用要求と、バスマスタ５の識別子及びバスマスタ５から要求されている単位バス数とを含む第２の使用要求とをバス使用許可手段１２に渡す（ステップＳ３２）。
【００５５】
バス使用許可手段１２は、第１及び第２の使用要求が渡されると、ステップＳ３３のバス使用許可判定処理を行う。バス使用許可判定処理においては、先ず、第１及び第２のに含まれている要求単位バス数の合計値を算出する（図４、ステップＳ３３１がＹＥＳ、Ｓ３３５）。その後、算出した合計値とバス使用許可位置観測手段１４で管理されている未使用バス数とを比較し、（合計値）≦（未使用単位バス数）であるか否かを判断する（ステップＳ３３６）。
【００５６】
そして、（合計値）≦（未使用単位バス数）である場合（ステップＳ３３６がＹＥＳ）は、未使用の単位バスの中からバスマスタ２、５に割り当てる単位バスを選択し、バス使用許可信号送出手段１３に対して、バスマスタ２の識別子を含む出力指示及びバスマスタ５の識別子を含む出力指示を出力すると共に、バス使用許可位置情報送出手段１５に対して、バスマスタ２用に選択した単位バスの位置情報及びバスマスタ２の識別子を含む出力指示と、バスマスタ５用に選択した単位バスの位置情報及びバスマスタ５の識別子を含む出力指示とを出力する。これにより、バス使用許可信号送出手段１３は、バスマスタ２、５それぞれにバス使用許可信号ＢＧを出力し、バス使用許可位置情報送出手段１５は、バスマスタ２、５それぞれにバス使用許可位置情報Ｐ０〜Ｐ３を出力する（ステップＳ３３７）。また、ステップＳ３３７では、バス使用許可手段１２が、バス使用許可位置観測手段１４に対して単位バスを割り当てたバスマスタの識別子と割り当てた単位バスとを通知し、バス使用許可位置観測手段１４がこの通知に基づいて、バスの使用状況を更新するという処理も行われている。
【００５７】
これに対して、（合計値）＞（未使用単位バス数）である場合（ステップＳ３３７がＹＥＳ）は、未処理の使用要求（第１、第２の使用要求）に対応するバスマスタ２、５の中から、バスマスタを１台選択する（ステップＳ３３８）。
【００５８】
この選択方法としては、例えば、次のような方法を採用することができる。バス使用許可手段１２において、各バスマスタ２〜５のプライオリティを管理しておく。そして、バス使用要求幅解読手段１１から入力された各使用要求に対応するバスマスタの中から、プライオリティが最も高いバスマスタを選択する。この時、複数のバスマスタが選択される場合があり、このような場合は、選択した各バスマスタと専用の信号線（図示せず）等を介して通信を行うことにより、上記各バスマスタで動作中のプロセス数を取得し、動作中のプロセス数が最も多いものを選択する。これでも、バスマスタを１つに絞り込むことができなかった場合は、その中から、予め決められているルールに従って、１台のバスマスタを選択する。
【００５９】
また、これ以外にも、次のような方法を採用することができる。バス使用許可手段１２において、各バスマスタ２〜５のプライオリティを管理しておく。そして、バス使用要求幅解読手段１１から入力された各使用要求に対応するバスマスタの中から、プライオリティが最も高いバスマスタを選択する。この時、複数のバスマスタが選択される場合があり、このような場合は、選択した各バスマスタの中からボトルネックになるものを１つ選択する。
【００６０】
即ち、複数のスレッドの管理名称（例えば、投入者一意であることがわかるＩＤ）を何処かに保持しておいて、１回目にそのスレッドが実行された時に、そのスレッドを実行するのに要する使用メモリ、プロセッサ数、処理時間などを保持しておき、例えば、２回目以降その管理名称（または、ＩＤ）Ｋら、使用メモリ、プロセッサ数、処理時間などを参照する。単純に、投入順に実行される場合だと、キューがはけてきた後半に、複数のスレッドが後続にリンクされたたった一つだけ実行されているだけの状態となり、この間のシステムの稼働率が極めて低く、ＪＯＢ全体としては、ＴＡＴが延びてしまうような場合でも、使用メモリ、プロセッサ数、処理時間情報を使用することにより、例えば、複数のスレッドがリンクＪＯＢとして複数セットキューに投入された場合に、処理ＴＡＴの面で最もクリティカルになるものを先に割り当て、システムの稼働効率を高いものにし全体の性能向上をする。
【００６１】
ステップＳ３３８で１台のバスマスタ（例えば、バスマスタ２）を選択すると、次に、バスマスタ２に対応する第１の使用要求中の要求単位バス数とバス使用許可位置観測手段１４で管理されている未使用単位バス数とを比較し、（要求単位バス数）≦（未使用単位バス数）であるか否かを判断する（ステップＳ３３９）。
【００６２】
そして、（要求単位バス数）≦（未使用単位バス数）である場合（ステップＳ３３９がＹＥＳ）は、未使用の単位バスの中からステップＳ３３８で選択したバスマスタ２に対して使用を許可する単位バスを選択し、更に、バス使用許可信号送出手段１３に対して、バスマスタ２の識別子を含む出力指示を出力すると共に、バス使用許可位置情報送出手段１５に対して、バスマスタ２用に選択した単位バスの位置情報及びバスマスタ２の識別子を含む出力指示を出力する。これにより、バス使用許可信号送出手段１３は、バスマスタ２に対してバス使用許可信号ＢＧを出力し、バス使用許可位置情報送出手段１５は、バスマスタ２に対してバス使用許可位置情報Ｐ０〜Ｐ３を出力する（ステップＳ３４０）。また、ステップＳ３４０では、バス使用許可手段１２が、バス使用許可位置観測手段１４に対して、単位バスを割り当てたバスマスタ２の識別子と割り当てた単位バスとを通知し、バス使用許可位置観測手段１４がこの通知に基づいて、使用状況を更新するという処理も行われている。
【００６３】
これに対して、（要求単位バス数）＞（未使用単位バス数）である場合（ステップＳ３３９がＮＯ）は、ステップＳ３３８で選択したバスマスタ２に対応する第１の使用要求を要求保留部１６に格納する（ステップＳ３４１）。
【００６４】
ステップＳ３４０或いはステップＳ３４１を実行後、バス使用許可手段１２は、未処理の使用要求があるか否かを判断する（ステップＳ３４２）。そして、未処理の使用要求がある場合（ステップＳ３４２がＹＥＳ）は、再び、ステップＳ３３８の処理を行い、未処理の使用要求がない場合（ステップＳ３４２がＮＯ）は、その処理を終了する。
【００６５】
次に、バス解放時の動作について、説明する。
【００６６】
今、第１及び第２バイト目の単位バスを使用してデータ転送を行っていたバスマスタ２がデータ転送を完了したとすると、バスマスタ２内のバス使用要求信号生成手段２０がバス使用要求信号送出手段２５に対してバス使用要求信号ＢＲの出力停止を指示し、使用要求バイト幅情報生成手段２６が使用要求バイト幅情報送出手段２１に対して使用要求バイト幅情報Ｗ０〜Ｗ３の出力停止を指示する。これにより、バス使用要求信号送出手段２５及び使用要求バイト幅情報送出手段２１は、それぞれバス使用要求信号ＢＲ及び使用要求バイト幅情報Ｗ０〜Ｗ３の出力を停止する。
【００６７】
バスアービタ１内のバス使用許可位置観測手段１４は、バスマスタ２からバス使用要求信号ＢＲが出力されなくなったことを検出すると、バスマスタ２が使用していた第１及び第２バイト目の単位バスの使用状況を未使用に更新すると共に、未使用単位バス数を更新する（図５、ステップＳ５１）。
【００６８】
その後、バス使用許可手段１２が、使用要求が要求保留部１６に保留されているバスマスタの中から１台のバスマスタを選択する（ステップＳ５２）。この選択方法は、図４のステップＳ３３８で説明した選択方法を採用することができる。
【００６９】
次に、バス使用許可手段１２は、選択したバスマスタに対応する使用要求中の要求単位バス数と、バス使用許可位置観測手段１４で管理されている未使用単位バス数とを比較する（ステップＳ５４）。
【００７０】
そして、（要求単位バス数）≦（未使用単位バス数）である場合（ステップＳ５４がＹＥＳ）は、ステップＳ５２で選択したバスマスタに対して、バス使用許可信号ＢＧ及びバス使用許可位置情報Ｐ０〜Ｐ３を出力した後（ステップＳ５５）、ステップＳ５２の処理に戻る。なお、ステップＳ５５では、バス使用許可手段１２が要求保留部１６に格納されている該当する使用要求を削除する処理、および、バス使用許可手段１２がバス使用許可位置観測手段１４に対して、単位バスを割り当てたバスマスタの識別子と割り当てた単位バスとを通知し、バス使用許可位置観測手段１４がこの通知に基づいて、使用状況を更新するという処理も行われている。
【００７１】
これに対して、（要求単位バス数）＞（未使用単位バス数）である場合（ステップＳ５４がＮＯ）は、再び、ステップＳ５２の処理を行う。以上の処理は、要求保留部１６内に未選択の使用要求がなくなるまで（ステップＳ５３がＮＯとなるまで）、繰り返し行われる。
【００７２】
次に、具体例を挙げて上述した動作について説明する。
【００７３】
今、例えば、バス１００を構成する第０バイト目〜第３バイト目の４個の単位バスが全く使用されていない状態において、図６のタイムチャートに示すように、バスマスタ２、３、４、５が、それぞれ時刻ｔ１、ｔ４、ｔ７、ｔ１０においてバス使用要求信号ＢＲ−２、ＢＲ−３、ＢＲ−４、ＢＲ−５及び使用要求バイト幅情報Ｗ０−２、Ｗ０−３、Ｗ０−４、Ｗ０−５を出力したとする。なお、図６及び図７において、ハイフン“−”の後ろに記した数字は、関連するユニット（バスマスタ、バスアービタ）を示している。例えば、バス使用要求信号ＢＲ−４と記されている信号は、バスマスタ４が出力した信号であることを示している。
【００７４】
バスアービタ１は、時刻ｔ１においては、未使用単位バス数が「４」であるので、時刻ｔ２において、バス使用許可信号ＢＧ２を送出すると共に、第０バイト目の単位バスを示すバス使用許可位置信号Ｐ０−２を送出する。また、時刻ｔ４、ｔ７、ｔ１０においては、未使用単位バス数がそれぞれ「３」、「２」、「１」であるので、時刻ｔ５、ｔ８、ｔ１１において、バス使用許可信号ＢＧ−３、ＢＧ−４、ＢＧ−５を出力すると共に、Ｐ１−３、Ｐ２−４、Ｐ３−５を“１”とする。以上の処理により、バスマスタ２〜５に、それぞれ第１バイト目〜第４バイト目の単位バスの使用権が与えられ、４台のバスマスタ２〜５が同時にバス１００を使用することが可能になる。
【００７５】
また、例えば、バス１００を構成する４個の単位バスが全て未使用である時に、図７のタイムチャートに示すように、時刻ｔ１において、各バスマスタ２〜５から同時にバス使用要求信号ＢＲ−２〜ＢＲ−５が出力されたとする。また、この時、各バスマスタ２〜５からそれぞれ、使用要求バイト幅情報Ｗ１−２、Ｗ１−３、Ｗ１−４、Ｗ１−５（２本の単位バスの使用を要求）が出力されたとする。
【００７６】
バスアービタ１内のバス使用許可手段１２は、４個の使用要求が同時に入力されるので（図４のステップＳ３３１がＹＥＳ）、各使用要求中の要求単位バス数の合計値を求める（ステップＳ３３５）。この例の場合、合計値は「８」バイトとなり、未使用単位バス数「４」よりも多くなってしまうので、バス使用許可手段１２は、バスマスタを１台選択することになる（ステップＳ３３６がＮＯ、Ｓ３３８）。
【００７７】
今、例えば、バスマスタ２、３のプライオリティが「１」、バスマスタ４、５のプライオリティが「２」であったとすると、バス使用許可手段１２は、プライオリティが最も高いバスマスタ２、３と通信を行い、各バスマスタ２、３で実行中のプロセス数を取得し、実行中のプロセス数が多い方（例えば、バスマスタ２）を選択する。その後、バスマスタ２に２バイト分の単位バスの使用権を与えることができるので（この時点の未使用単位バス数は「４」）、バスマスタ２に対してバス使用許可信号ＢＧ−２を出力すると共に、バス使用許可位置情報Ｐ０−２、Ｐ１−２を“１”にする（ステップＳ３４０、時刻ｔ２）。
【００７８】
その後、残りのバスマスタ３〜５の中から最もプライオリティが高いバスマスタ３を選択し（ステップＳ３３８）、バスマスタ３に対してバス使用許可信号ＢＧ−３を出力すると共に、バス使用許可位置情報Ｐ２−３、Ｐ３−３を“１”とする（ステップＳ３４０、時刻ｔ３）。
【００７９】
更に、残りの優先度が「２」のバスマスタ４、５と通信を行い、各バスマスタで実行中のプロセス数を取得し、実行中のプロセス数が多い方（例えば、バスマスタ４）を選択するが（ステップＳ３３８）、この時点では、（要求単位バス数）＞（未使用単位バス数）となるので、バスマスタ４に対応する使用要求は、要求保留部１６に格納される（ステップＳ３３９がＮＯ、Ｓ３４１）。
【００８０】
そして、最後に、残りのバスマスタ５が選択されるが（ステップＳ３３８）、（要求単位バス数）＞（未使用単位バス数）となるので、バスマスタ５に対応する使用要求も、要求保留部１６に格納される（ステップＳ３３９がＮＯ、Ｓ３４１）。
【００８１】
その後、バスマスタ２がデータ転送を完了し、時刻ｔ１０において、バス使用要求信号ＢＲ−２の出力を停止すると、バス使用許可位置観測手段１４が、管理しているバスの使用状況を更新し、未使用単位バス数を「２」とする（図５、ステップＳ５１）。次に、バス使用許可手段１２が、要求保留部１６に使用要求が登録されているバスマスタ４、５の内の１台（例えば、バスマスタ４）を選択する（ステップＳ５２）。この時、（要求単位バス数）≦（未使用単位バス数）となるので、バスアービタ１は、バスマスタ４に対して、バス使用許可信号ＢＧ−４を出力すると共に、バス使用許可位置情報Ｐ０−２、Ｐ１−２を“１”にする（ステップＳ５５、時刻ｔ１１）。
【００８２】
また、時刻ｔ１３において、バスマスタ３がバス使用要求信号ＢＲ−３の出力を停止すると、時刻ｔ１４において、バスアービタ１からバスマスタ５に対してバス使用許可信号ＢＧ−５が出力されると共に、バス使用許可位置情報Ｐ２−５、Ｐ３−５が“１”にされる。
【００８３】
次に、図８のフローチャートを参照して、バスアービタ選択処理について説明する。
【００８４】
各ユニット１〜５内の制御手段（１７、２８など）は、他のユニット内の制御手段と専用の信号線（図示せず）を介して通信を行い、各制御手段が保持しているバスアービタフラグが全てＯＦＦになったか否かを常に監視している（ステップＳ８１）。そして、全ての制御手段が保持しているバスアービタフラグがＯＦＦになったことを確認すると、ユニット１〜５の中から、バスアービタとして機能させるユニットを１台選択する（ステップＳ８２）。本実施例では、正常に動作しているユニットの中から、メモリ使用率などのリソース使用率が最も低いユニット（負荷が最も低いユニット）を選択する。
【００８５】
そして、バスアービタに選択されなかったユニット（ステップＳ８３がＮＯとなったユニット）内の制御手段は、再び、ステップＳ８１の処理を行う。これに対して、バスアービタに選択されたユニット（例えば、ユニット１）内の制御手段１７は、バスアービタフラグをＯＮにする（ステップＳ８３がＹＥＳ、Ｓ８４）。また、ステップＳ８４では、それまでバスアービタとして機能していた他ユニット内の制御手段と通信を行い、上記他ユニット内の要求保留部１６に格納されていた使用要求を取得し、自ユニット内の要求保留部１６に格納する処理も行う。
【００８６】
その後、予め定められた一定時間が経過すると（ステップＳ８５がＹＥＳ）、ユニット１内の制御手段１７は、自身が保持しているバスアービタフラグをＯＦＦする（ステップＳ８６）。ここで、一定時間が経過した場合、バスアービタフラグをＯＦＦとするのは、バスアービタの選択処理に、各ユニットの最新のリソース使用率を反映させるためである。また、本実施例では、予め定められた一定時間が経過した場合、バスアービタフラグをＯＦＦにするようにしたが、予め定められた個数のバス使用要求を処理した場合に、バスアービタフラグをＯＦＦにするようにしても良い。また、バスアービタとして機能しているユニット内の制御手段は、一定時間が経過するのを待っている間（ステップＳ８５）も、他のユニット内の制御手段から問い合わせ（バスアービタフラグの状態に関する問い合わせ）があった場合は、それに応答する。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施例のブロック図である。
【図２】バスマスタの処理例を示すフローチャートである。
【図３】バスアービタの処理例を示すフローチャートである。
【図４】バスアービタが行うバス使用許可判定処理の詳細を示すフローチャートである。
【図５】バス解放時の処理例を示すフローチャートである。
【図６】実施例の動作を説明するためのタイムチャートである。
【図７】実施例の動作を説明するためのタイムチャートである。
【図８】バスアービタ選択処理を説明するためのフローチャートである。
【符号の説明】
【００８８】
１…バスアービタ
１１…バス使用要求幅解読手段
１２…バス使用許可手段
１３…バス使用許可信号送出手段
１４…バス使用許可位置観測手段
１５…バス使用許可位置情報送出手段
１６…要求保留部
１７…制御手段
２〜５…バスマスタ
２１…使用要求バイト幅情報送出手段
２２…バス使用許可信号受信手段
２３…バス使用許可位置情報解読手段
２４…データ転送実行手段
２５…バス使用要求信号送出手段
２６…使用要求バイト幅情報生成手段
２７…バス使用許可位置情報受信手段
２８…制御手段
１００…バス
【図１】
2005165488.tif 000003
【図２】
2005165488.tif 000004
【図３】
2005165488.tif 000005
【図４】
2005165488.tif 000006
【図５】
2005165488.tif 000007
【図６】
2005165488.tif 000008
【図７】
2005165488.tif 000009
【図８】
2005165488.tif 000010