(57)【特許請求の範囲】
【請求項１】
システムバスに接続された複数のバスマスタの間でバスアービトレーションによって、バスマスタ間のデータの転送の調停が行われるデータ転送システムにおいて、バスマスタが取得した前記システムバスの使用権に基づいて他のバスマスタにアクセスしてデータ転送を実行するためのデータ転送制御装置であって、
前記システムバスの使用要求を発し、該使用要求に対する使用許可を受けることにより動作し、前記他のバスマスタにアクセスして前記システムバスを用いた前記データ転送を実行する複数のデータ処理手段と、
前記複数のデータ処理手段のそれぞれとの接続関係に基づいて前記複数のデータ処理手段の間の動作順序を調停すると共に前記バスマスタとして機能する内部バスアービタと、
前記内部バスアービタと前記データ処理手段とを所定の接続関係で接続する共に、前記所定の接続関係と異なる接続関係に切替可能な切替手段と、
前記他のバスマスタが前記システムバスの前記使用権を取得している場合に、前記他のバスマスタが発する前記複数のデータ処理手段へアクセスする前記使用要求を監視する監視手段と、
前記監視手段の監視中に前記他のバスマスタから所定回数以上の前記使用要求が発せられることにより前記切替手段により前記内部バスアービタと前記複数のデータ処理手段との前記接続関係を切り替えるように制御する切替制御手段と、
を有するデータ転送制御装置。
【請求項２】
前記切替手段が、前記内部バスアービタと前記データ処理手段との接続関係を予め設定された接続パターンに切り替える、請求項１記載のデータ転送制御装置。
【請求項３】
前記切替手段による前記接続パターンの切り替えが、前記複数のデータ処理手段の前記内部アービタへの接続位置の入れ替えである請求項２記載のデータ転送制御装置。
【請求項４】
前記切替手段による前記接続パターンの切り替えが、前記複数のデータ処理手段の何れかを除いて他のデータ処理手段の一つが連続して前記内部バスアービタに接続されるようにする差し替えである請求項２記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムバスに複数のバスマスタが接続され、各バスマスタのバスアービトレーションによって、バスマスタ間のデータの転送の調停を行うデータ転送システムにおいて、前記バスマスタから他のバスマスタに対してアクセス要求を行って、データ転送を実行するためのデータ転送制御装置に関するものである。
【背景技術】
【０００２】
従来、プロセッサ、メモリ、入出力装置等で構成される複数のマスタがシステムバスを介して互いにアクセス可能に接続されている場合、マスタ間でのデータ転送が行われる。
【０００３】
このようなシステムにおいて、同時に複数のマスタからバスの使用権（以下、「バス権」という）の要求があることが予想され、このため、バスアービタによって、バス権を調停するようにしている。
【０００４】
このバスアービタによる調停（バスアービトレーション）の代表例としては、固定優先順位方式と、ラウンドロビン方式とがある。
【０００５】
固定優先順位方式は、同時に複数のマスタからバス権の要求があった場合に、バス権を与えられるマスタの優先順位が予め定められているものであり、常に優先順位の高いマスタがバス権を得ることになる（特許文献１の従来技術参照）。
【０００６】
この場合、優先順位の高い方のマスタが連続的にバスを占有すると、優先順位の低い方のマスタ（例えば、入出力装置）はいつまでたってもバス権を獲得できず、結局、優先順位の低いマスタは、タイムアウトになってしまう。
【０００７】
一方、ラウンドロビン方式は、同時に複数のマスタからバス権の要求があった場合、次にバス権が与えられるマスタの順番を変えている方式である。
【０００８】
ここで、何れの方式、あるいは双方が併用された方式であっても、バスの転送が非常に過密になると、優先順位の低いマスタにとっては、バス権を得にくい。すなわち、固定優先順位方式ではバス権が得られない可能性が高くなり、ラウンドロビン方式では、バス権の順番は回ってくるが実行できる保証がない。また、何れの方式であっても、過密なバスの転送により、局所的にデッドロック（システムの異常停止）が陥る可能性もある。
【０００９】
このようなデッドロックは、例えば、メインＣＰＵとメインメモリが多段のアービタ（アービタ１、アービタ２）を介してバスに接続されている状態で、（１）メインＣＰＵから外部のＩ／Ｏへのデータ書き込み（アービタ２を経由）、（２）メインメモリから外部のＤＭＡマスタ１へのデータ読出し（アービタ１、アービタ２を経由）、（３）外部のＤＭＡマスタ２からメインメモリへのデータ書き込み（アービタ２、アービタ１を経由）が連続して実行されるような場合に起こり得る。
【００１０】
上記の場合、アービトレーションによって、（１）の実行→（２）の実行→（３）のリトライ→（１）の実行→（２）の実行→（３）のリトライ→・・・となり、（３）の実行が長時間阻害されることになる。
【００１１】
この理由は、アービトレーションが多段に実行されるためであり、メインメモリのアービトレーションと、外部のマスタ（ＤＭＡマスタ１，２）のアービトレーションが独立して動作する条件の下では、常に起こり得る。
【００１２】
特許文献１では、優先順位の高い複数のマスタが交互にバス権を取り合って、優先順位の低いマスタが待ち合わせている場合に、この待ち合わせ時間と、待ち合わせているマスタのバスアクセス時間と、他のマスタのバスアクセスが終了するまでの時間と、の和が、優先順位の低いマスタの待ち合わせのタイムアウト時間に達しないとき、次のバス権を優先順位の低いマスタに与えるようにしている。
【００１３】
また、関連技術として、特許文献２には、要求発生までの時間と優先順位による重み付けでバス獲得の優先度を制御することが提案されている。
【００１４】
また、特許文献３には、使用時間を計測してマスクをし、残りのマスタに対して優先順位でバスを制御し、連続使用の長いマスタは、使用禁止にして占有を防ぐことが開示されている。
【００１５】
さらに、特許文献４には、優先順位レベルを各マスタがレジスタのビットとして複数用意し、これをアクセスが発生する度にシフトして毎回別テーブルとして、バスを使用するマスタを決定することが提案されている。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、上記特許文献１乃至特許文献４の従来技術では、何れも特定のバスアービテーションを基本として動作させ、何らかの条件が成立した場合に、この基本となるバスアービテーションの規則を逸脱し、イレギュラーに優先順位を変更するようにしているため、このイレギュラーな優先順位の変更制御回路構成が複雑となる。
【００１７】
また、それぞれの技術は、専用のバスアービテーションのための回路構成が必要であり、既存のバスアービテーションのための回路構成がそのまま適用できない。
【００１８】
本発明は上記事実を考慮し、汎用的なバスアービテーションのための回路構成を利用することができると共に、バスの状態に関わらず、簡単な回路構成で局所的なマスタのデッドロックを防止することができるデータ転送制御装置を得ることが目的である。
【課題を解決するための手段】
【００１９】
本発明は、システムバスに接続された複数のバスマスタの間でバスアービトレーションによって、バスマスタ間のデータの転送の調停が行われるデータ転送システムにおいて、バスマスタが取得した前記システムバスの使用権に基づいて他のバスマスタにアクセスしてデータ転送を実行するためのデータ転送制御装置であって、前記システムバスの使用要求を発し、該使用要求に対する使用許可を受けることにより動作し、前記他のバスマスタにアクセスして前記システムバスを用いた前記データ転送を実行する複数のデータ処理手段と、前記複数のデータ処理手段のそれぞれとの接続関係に基づいて前記複数のデータ処理手段の間の動作順序を調停すると共に前記バスマスタとして機能する内部バスアービタと、前記内部バスアービタと前記データ処理手段とを所定の接続関係で接続する共に、前記所定の接続関係と異なる接続関係に切替可能な切替手段と、前記他のバスマスタが前記システムバスの前記使用権を取得している場合に、前記他のバスマスタが発する前記複数のデータ処理手段へアクセスする前記使用要求を監視する監視手段と、前記監視手段の監視中に前記他のバスマスタから所定回数以上の前記使用要求が発せられることにより前記切替手段により前記内部バスアービタと前記複数のデータ処理手段との前記接続関係を切り替えるように制御する切替制御手段と、を有している。
【００２０】
本発明が適用されるデータ転送システムでは、複数のバスマスタが設けられ、システムバスの使用権の要求が、同時に複数のバスマスタによってなされる場合がある。
【００２１】
このような場合、同一のデータ処理手段についてシステムバスの使用権が得られない状態が継続すると、そのデータ処理手段が接続されたバスマスタはデッドロックとなり得る。
【００２２】
そこで、監視手段は、他のバスマスタにおける前記システムバスの実行サイクルを監視し、この監視手段により監視している実行サイクルに基づいて内部バスアービタと複数のデータ処理手段との接続関係を切り替える。
【００２３】
すなわち、内部バスアービタと複数のデータ処理手段との接続関係を切り替えることで、デッドロックの要因となるデータ処理手段の実行（使用権の行使）を待たずに、デッドロックの発生原因が解消されるようにする。
【００２４】
本発明において、監視手段で監視する実行サイクルは、システムバスの使用権を取得できなかったときに実行されるリトライのサイクルである。
【００２５】
他のバスマスタでは、該当バスマスタに接続されているデータ処理手段の使用要求に応じたデータ処理の実行がなされず、使用要求のリトライが繰り返されることでデッドロックになる。そこで、例えば、他のバスマスタからの複数のデータ処理手段の何れかに対するリトライのサイクル（回数）のカウント値が所定値に達した時点で、内部バスアービタの調停によるデータ処理手段の実行順序が変更されるように切り替える。
【００２７】
したがって、内部バスアービタは、従前と変わらずにデータ処理手段を指定する信号を出力する。このとき、切替制御手段では、監視手段からの切替信号に基づいて接続関係を切り替えることで、前記内部バスアービタが指定するデータ処理手段を切り替える。より具体的には、配線を変更する。これにより、内部バスアービタや各データ処理手段を何ら変更することなく、他のバスマスタにデッドロックが発生してしまうのを解消することができる。
【００２８】
ここで、本発明では、所定期間の間に、所定回数の使用要求があった場合に、切替手段による接続関係を切り替える。
【００２９】
所定回数のカウントに制限時間（所定期間）を持たせることで、接続関係が不必要に切り替えられてしまうのをなくすことができる。
【００３０】
また、本発明においては、前記切替手段が、前記内部バスアービタと前記データ処理手段との接続関係を予め設定された接続パターンに切り替えるものであれば良く、このとき、前記切替手段による前記接続パターンの切り替えが、前記複数のデータ処理手段の前記内部アービタへの接続位置の入れ替えとすることができる。
【００３１】
データ処理手段の接続パターンの切り替えとして、予め定められている範囲内でのデータ処理手段の入れ替えを行う。これにより、各データ処理手段の占有度合いの偏りを解消することができる。
【００３２】
さらに、本発明において、前記切替手段による前記接続パターンの切り替えが、前記複数のデータ処理手段の何れかを除いて他のデータ処理手段の一つが連続して前記内部バスアービタに接続されるようにする差し替えとすることができ、切替手段による機能の切替パターンが、リトライとなった機能とそれ以外の機能との差し替えであっても良い。
【００３３】
これにより、デッドロック解消を優先することができる。
【発明の効果】
【００３４】
以上説明した如く本発明では、汎用的なバスアービテーションのための回路構成を利用して、局所的なバスマスタのデッドロックを防止することができるという優れた効果を有する。
【発明を実施するための最良の形態】
【００３５】
図１には、本実施の形態に係るデバイスシステム１０が示されている。
【００３６】
このデバイスシステム１０は、システムバス１２に、第１のバスマスタ１１、第２のバスマスタ１３、ＣＰＵ１４、主記憶装置１５、二次記憶装置１６、印字装置１８、読取装置１７、ＦＡＸ装置１９等が接続され、互いに信号（データ信号や制御信号）のやりとりを行うことができる。
【００３７】
ＣＰＵ１４は、例えば情報（画像データ等）を編集、加工、演算処理する。
【００３８】
二次記憶装置１６は、前記ＣＰＵ１４で編集等を行った情報を一括して格納し、管理する役目を有している。この二次記憶装置１６に格納された情報は、ＣＰＵ１４からの情報取得要求に対して共有することができる。
【００３９】
印字装置１８は、ＣＰＵ１４に予めインストールされたドライバによって、情報が転送されることで、所定の記録用紙へのプリント処理を実行する。
【００４０】
また、読取装置１７は、印字装置１８の例えば上部に設けられた原稿台に原稿を載置することで走査を実行する。この走査により、例えば、ＣＣＤセンサ等によって原稿画像が読み取られ、デジタル画像データが生成される。この生成されたデジタル画像データは、スキャニングを要求したＣＰＵ、あるいは予め指定されたＣＰＵ１４又は二次記憶装置１６へ送出されるようになっている。
【００４１】
また、印字装置１８では、前記読取装置１７で読み取ったデジタル画像データを直接プリンタ機能へ送出することで、所定の記録用紙に原稿画像と同等の画像をプリントすることができる。
【００４２】
ＦＡＸ装置１９は、別途電話回線によって通信されるデータの送受信を行うものであり、前記読取り装置により読み取った画像を送信し、受信した画像は印字装置１８によって所定の記録用紙にプリントする。
【００４３】
上記構成のデバイスシステム１０では、第１のバスマスタ１１、第２のバスマスタ１３、ＣＰＵ１４と、主記憶装置１５、二次記憶装置１６、印字装置１８、読取装置１７、ＦＡＸ装置１９のそれぞれがバス１２に対して使用権の要求を行う。このため、使用権の要求が同時期に集中する場合がある。
【００４４】
そこで、これらには、それぞれアービテーション機能が設けられており、このアービテーション機能によって、バス１２の要求に対して調停を行い、使用権の順序が設定され、互いに偏りが無いようにバス１２の使用権が割り付けられる（以下、ＣＰＵ１４、二次記憶装置１６、印字装置１８を例にとり説明する）。
【００４５】
しかし、上記アービテーション機能による調停があっても、基本的に優先順位が定められているため、いつまで経っても、使用権が与えられないバスマスタが存在し、このバスマスタは、使用権が得られない状態が長期間続くことで、デッドロックを引き起こすことになる。特に、印字装置１８における複数のデータ処理機能の内の１つの機能について、長期間、バス１２の使用権を与えられないと、他の機能も実行することができないといった不具合を生じる。
【００４６】
そこで、本実施の形態の印字装置１８では、バス１２の使用権の要求の状態を監視し、当該監視状態に基づいて、使用権が得られない機能をパス（スルー）することで、他の機能の実行を優先させる、デッドロック監視部２０（図２参照）を設けた。
【００４７】
図２は、このデッドロック監視部２０が設けられた印字装置１８のデータ転送制御回路２２の概略を示している。
【００４８】
バス１２には、アービテンション機能を司る内部バスアービタ２４が接続されている。また、このバス１２には、デッドロック監視部２０の一部を構成するバス監視回路２６が接続されている。
【００４９】
内部バスアービタ２４は、バス１２との間で、データ処理手段として印字装置１８が備える複数の機能（図２では、Ｆｕｎｃ．１、Ｆｕｎｃ．２・・・、Ｆｕｎｃ．Ｎとする）の実行要求信号を出力する共に、当該要求に対する回答信号を入力する。
【００５０】
この内部バスアービタ２４と、Ｆｕｎｃ．１、Ｆｕｎｃ．２・・・、Ｆｕｎｃ．Ｎとの間には、前記バス監視回路２６と共にデッドロック監視部２０を構成する要求切替回路２８が介在されている。
【００５１】
この要求切替回路２８と、前記バス監視回路２６とは、直接接続されており、バス監視回路２６において、所定の条件が成立した場合に、当該バス監視回路２６から要求切替回路２８に対して信号（切替信号）が送出されるようになっている。
【００５２】
バス監視回路２６には、インターバルカウンタ３０が接続されている。このインターバルカウンタ３０には、インターバルレジスタ３２が接続されている。
【００５３】
インターバルレジスタ３２には、所定のインタバル（期間）が設定されており、インターバルカウンタ３０によってカウントしたカウント値が所定のインタバルに達する毎にバス監視回路２６を起動させる。バス監視回路２６では、この起動毎に、バス１２の使用権の要求が所定カウント（所定期間）内に正常に終了したか、あるいは、リトライ（再要求）を求められたかを監視する。
【００５４】
また、バス監視回路２６では、上記リトライを受けた回数をカウントし、所定期間内に所定回数のリトライ要求があったときに、前記切替信号を出力する。
【００５５】
一方、要求切替回路２８には、各機能（Ｆｕｎｃ．１、Ｆｕｎｃ．２・・・、Ｆｕｎｃ．Ｎ）との内部接続ターミナル２８Ａ（すなわち、Ｎ個の内部接続ターミナル２８Ａ）が設けられ、この内部接続ターミナル２８Ａを介して、Ｆｕｎｃ．１、Ｆｕｎｃ．２・・・、Ｆｕｎｃ．Ｎとの信号の送受信が行われる。
【００５６】
また、要求切替回路２８には、前記内部バスアービタ２４との間に、Ｎ個の外部接続ターミナル２８Ｂが設けられている。
【００５７】
こおで、要求切替回路２８では、前記内部接続ターミナル２８Ａと外部接続ターミナル２８Ｂとの間は、相互に接続可能となっている。定常状態（リトライがほとんどなく、格機能の所定のサイクルで実行されている状態）では、要求切替回路２８における内部接続ターミナル２８Ａと外部接続ターミナル２８Ｂとの接続関係は、固定されているが（図３（Ａ）参照）、前記バス監視回路２６から切替信号が入力した場合は、予め設定した切替パターン（図３（Ｂ）又は（Ｃ）参照、詳細後述）に基づいて、内部接続ターミナル２８Ａと外部接続ターミナル２８Ｂとの接続関係が変更される。
【００５８】
言い換えれば、内部バスアービタ２４が認識している機能とは、別の機能に接続されることになる。
【００５９】
前記切替パターンとしては、代表として以下の２種類を挙げることができる。
【００６０】
・  サイクル内、１回順序変更切替パターン
このパターンは、図３（Ｂ）に示される如く、例えば３種類の機能（Ｆ１、Ｆ２、Ｆ３）の場合、通常状態におけるサイクル（Ｆ１→Ｆ２→Ｆ３→Ｆ１→・・・）に対して、特定のサイクルにおいて、機能Ｆ１と機能Ｆ２とを入れ替える切替パターンである。
【００６１】
すなわち、機能Ｆ１に割り当てられたサイクルで、機能Ｆ２が先に実行されることになる。このとき、内部バスアービタ２４では、この事実を認識しない。
【００６２】
・  連続実行切替パターン
このパターンでは、機能Ｆ２に割り当てられたサイクルを、機能Ｆ１が所謂横取りし、機能Ｆ２は次のアービトレーションまでバス１２の使用許可がなされず、その分スキップすることになる。このとき、内部バスアービタ２４では、この事実を認識しない。
【００６３】
上記何れかの切替パターンにより、定常状態を継続したことによって起こり得るデッドロックを解消することになるが、前述したように、内部バスアービタ２４がその事実を認識しないため、既存のデータ転送制御系を利用することが可能となる。
【００６４】
以下に本実施の形態の作用を図４のフローチャートに従い説明する。
【００６５】
ステップ１００では、リトライカウント値Ｒをリセット（Ｒ＝０）し、次いでステップ１０２では、各機能を定常状態（図３（Ａ）参照）のサイクルで実行する。
【００６６】
次のステップ１０４では、監視時期になったか否かが判断され、否定判定された場合には、ステップ１０２へ戻る。
【００６７】
また、ステップ１０４で肯定判定されると、ステップ１０６へ移行してリトライ要求があったか否かが判断される。
【００６８】
このステップ１０６で否定判定された場合には、ステップ１０８へ移行して所定時間が経過したか否かが判断される。
【００６９】
また、ステップ１０６で肯定判定された場合には、このリトライ要求の回数をカウントするべく、ステップ１１０でＲ値をインクリメントし、ステップ１１２へ移行する。ステップ１１２では、このカウント値Ｒが予め設定した所定値に達したか否かが判断される。
【００７０】
ステップ１１２で否定判定されると、前記ステップ１０８へ移行して、所定時間が経過したか否かが判断される。
【００７１】
ステップ１０８において、否定判定、すなわち所定時間が経過していないと判断された場合には、ステップ１０２へ戻り上記工程を繰り返す。
【００７２】
また、ステップ１０８で肯定判定された場合は、デッドロックが起きるほどの待ち時間が発生していないと判断し、ステップ１１４でリトライのカウント値Ｒをリセットしてこのルーチンは終了する。
【００７３】
また、前記ステップ１１２で肯定判定された場合には、デッドロックが起きる可能性があると判断し、ステップ１１６へ移行して、バス監視回路２６から要求切替回路２８へ切替信号を出力する。
【００７４】
この切替信号により、ステップ１１８では、要求切替回路２８では、切替パターン（１）又は（２）、すなわち、図３（Ｂ）又は（Ｃ）を読み出し、ステップ１２０へ移行する。なお、この切替パターンは１種類でもよいし、リトライの頻度によって、段階的に読み出すパターンを変更してもよい。
【００７５】
次のステップ１２０では、読み出した切替パターン（１）又は（２）によって切替制御を実行する。これにより、内部バスアービタ２４が認識している機能とは別の機能が実行されるため、リトライが続きデッドロックになることを回避することができる。
【００７６】
以上説明したように本実施の形態では、複数のバスマスタがバス１２に接続されている状態で、同時にこのバス１２の使用権の要求があった場合に発生するデッドロックを、バスマスタ側の機能の切替によって回避するようにした。この場合、バスマスタに搭載されている内部バスアービタ２４の機能は既存のままで、この内部バスアービタ２４と各機能との間に要求切替回路２８を介在させるのみでよいため、簡単な回路構成でデッドロックを回避することができる。また、内部バスアービタ２４は、機能が切り替わっていることが認識されないため、制御プログラム等の大幅な変更も不要となる。
【００７７】
なお、上記実施の形態では、内部バスアービタ２４と各機能（Ｆｕｎｃ．１、Ｆｕｎｃ．２・・・、Ｆｕｎｃ．Ｎ）との間に、要求切替回路２８を設けるようにしたが、前記要求切替回路２８の機能を、内部バスアービタ２４に付加する構成としてもよい（図５参照）。
【００７８】
この場合、前記実施の形態が、既存のデータ転送制御系をそのまま利用できるのに対して、既存の内部バスアービタ２４を交換する必要があるが、装置構成としては簡略化することができ、新規製造の場合に有効である。また、この場合、図２に示す要求切替回路２８の機能を内部バスアビータ２４が実行するため、デッドロック監視部２０は、バス監視部２６と内部バスアービタ２４とで構成されることになる。
【図面の簡単な説明】
【００７９】
【図１】本実施の形態に係るネットワークシステムの概略図である。
【図２】本実施の形態に係るバスマスタにおけるデータ転送制御回路の概略図である。
【図３】（Ａ）は定常状態の内部バスアービタによる切替パターン、（Ｂ）はリトライが所定回数、所定期間に発生したときに要求切替回路によって実行する切替パターン１、（Ｃ）はリトライが所定回数、所定期間に発生したときに要求切替回路によって実行する切替パターン２を示すサイクル概念図である。
【図４】本実施の形態に係るデータ転送制御回路における切替制御の流れを示すフローチャートである。
【図５】変形例に係るバスマスタにおけるデータ転送制御回路の概略図である。
【符号の説明】
【００８０】
１０    デバイスシステム
１１    第１のバスマスタ
１２    バス
１３    第２のバスマスタ
１４    ＣＰＵ
１５    主記憶装置
１６    二次記憶装置
１７    読取装置
１８    印字装置
１９    ＦＡＸ装置
２０    デッドロック監視部
２２    データ転送制御回路
２４    内部バスアービタ
２６    バス監視回路（実行サイクル監視手段）
２８    要求切替回路（機能実行順序変更制御手段）
３０    インターバルカウンタ
３２    インターバルレジスタ
２８Ａ    内部接続ターミナル
２８Ｂ    外部接続ターミナル
【図１】
0004835259.tif 000002
【図２】
0004835259.tif 000003
【図３】
0004835259.tif 000004
【図４】
0004835259.tif 000005
【図５】
0004835259.tif 000006