(57)【特許請求の範囲】
【請求項１】
共有バスに接続される複数のバスマスタからのバスアクセス要求が競合するときに、プライオリティの高いバスマスタを優先的に許可する固定優先方式に基づいて調停するとともに、プライオリティが同等のバスマスタに対しては均等に許可するラウンドロビン方式に基づいて調停するバス調停方式であって、
プライオリティが同一のバスマスタからのバスアクセス要求が競合するときに、プライオリティの高いバスマスタに対する相対的待ち時間に応じて可変に設定された相対的重みに基づいて、相対的重みが大きく設定されたバスマスタが選択される確率が高くなるように、また、前記相対的重みが小さく設定されたバスマスタが選択される確率が小さくなるように、バスアクセス要求を許可する重み付けラウンドロビン方式により調停するバス調停方式。
【請求項２】
前記相対的待ち時間は単位ラウンドロビン周期において計時される夫々の待ち時間を基準として求められる請求項１記載のバス調停方式。
【請求項３】
前記相対的待ち時間が許容時間内のとき、設定された相対的重みに基づく単位ラウンドロビン周期の経過後に当該バスマスタの相対的重みを復帰させる請求項１または２記載のバス調停方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有バスに接続される複数のバスマスタからのバスアクセス要求が競合するときに、プライオリティの高いバスマスタを優先的に許可する固定優先方式に基づいて調停するとともに、プライオリティが同等のバスマスタに対しては均等に許可するラウンドロビン方式に基づいて調停するバス調停方式に関する。
【背景技術】
【０００２】
従来のバス調停方式、特に大容量の画像データを転送する共有バスに接続される複数のバスマスタを備えた上述のバス調停方式では、システムが円滑に作動するように各バスマスタにプライオリティ情報を持たせ、それらバスマスタからのバスアクセス要求が衝突するときには、バスコントローラがプライオリティ情報に基づいてプライオリティの高いバスマスタに対して優先的に許可する固定優先方式が採用され、同等のプライオリティ情報を有する複数のバスマスタからのバスアクセス要求が衝突するときには、ラウンドロビン方式によって均等に許可するように構成されていた。
【０００３】
また、プライオリティの低いバスマスタからのバスアクセス要求に応えるべく、所定時間以上バスアクセスが許否されたときに、優先的にアクセス要求を許可することによりプライオリティの低いバスマスタにバスアクセスの機会を与える方式や、ラウンドロビン方式において処理能力に差があるバスマスタに対しては、その比率に応じてトラフィックを振り分け、実質的に機会均等とする重み付けラウンドロビン方式も提案されている。
【０００４】
【特許文献１】特開２００４−１７８０５６号公報
【特許文献２】特開２００４−３８９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上述のラウンドロビン方式を採用する場合に、プライオリティの高いバスマスタによってバスの使用権が長期にわたって占有されたような場合に、それよりプライオリティが低いが同等のプライオリティを有する複数のバスマスタの待ち時間は何ら考慮されず、後にバスアクセス要求された同等のプライオリティのバスマスタと同じ調停方式で調停されることになり、先に要求したにも関わらず、先に許可されないといった不整合が生じることが度々発生していた。
【０００６】
本来、プライオリティが同等である場合には、先に要求されたバスマスタが優先的に許可されることが望ましいが、一律に要求発生の先後で優先順位を設定すると、同一のプライオリティを有する特定のバスマスタが長期にわたり許可されなくなるという問題も生じる。
【０００７】
本発明は、上述の問題点に鑑み、プライオリティが同等であるバスマスタからのバスアクセス要求が衝突したときに、異なるプライオリティのバスマスタに対する待ち時間の長い一方のバスマスタからの要求を優先的に許可しながらも、他方のバスマスタにも確実に許可することのできる適応的制御が可能なバス調停方式を提供する点にある。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明によるバス調停方式の第一の特徴構成は、特許請求の範囲の書類の請求項１に記載した通り、共有バスに接続される複数のバスマスタからのバスアクセス要求が競合するときに、プライオリティの高いバスマスタを優先的に許可する固定優先方式に基づいて調停するとともに、プライオリティが同等のバスマスタに対しては均等に許可するラウンドロビン方式に基づいて調停するバス調停方式であって、プライオリティが同一のバスマスタからのバスアクセス要求が競合するときに、プライオリティの高いバスマスタに対する相対的待ち時間に応じて可変に設定された相対的重みに基づいて、相対的重みが大きく設定されたバスマスタが選択される確率が高くなるように、また、前記相対的重みが小さく設定されたバスマスタが選択される確率が小さくなるように、バスアクセス要求を許可する重み付けラウンドロビン方式により調停する点にある。
【０００９】
上述の構成によれば、異なるプライオリティのバスマスタに対する相対的待ち時間が長い方のバスマスタの重みが、前記相対的待ち時間が短い方のバスマスタの重みよりも大きくなるように相対的重みが可変に設定されるので、プライオリティが同一のバスマスタからのバスアクセス要求が競合するときに、相対的重みが大きい方、つまり待ち時間の長い方のバスマスタからの要求が許可される確率を上昇させながらも、待ち時間の短い方のバスマスタからの要求も確実に許可されるようになる。
【００１０】
同第二の特徴構成は、同請求項２に記載した通り、上述の第一特徴構成に加えて、前記相対的待ち時間は単位ラウンドロビン周期において計時される夫々の待ち時間を基準として求められる点にある。
【００１１】
上述の構成によれば、単位ラウンドロビン周期内での夫々の待ち時間の差分により次回のラウンドロビン周期の相対的重みを決定することができるので、容易に相対的待ち時間を求めることができるようになる。
【００１２】
同第三の特徴構成は、同請求項３に記載した通り、上述の第一または第二特徴構成に加えて、前記相対的待ち時間が許容時間内のとき、設定された相対的重みに基づく単位ラウンドロビン周期の経過後に当該バスマスタの相対的重みを復帰させる点にある。
【００１３】
上述の構成によれば、単位ラウンドロビン周期での相対的待ち時間がそれほど大きくないときには、相対的重みを復帰させることにより、プライオリティの等しいバスマスタに対して均等にアクセスが許可されるようになる。
【発明の効果】
【００１４】
以上説明した通り、本発明によれば、プライオリティが同等であるバスマスタからのバスアクセス要求が衝突したときに、異なるプライオリティのバスマスタに対する待ち時間の長い一方のバスマスタからの要求を優先的に許可しながらも、他方のバスマスタにも確実に許可することのできる適応的制御が可能なバス調停方式を提供することができるようになった。
【発明を実施するための最良の形態】
【００１５】
以下、本発明のバス調停方式の実施形態について説明する。前記バス調停方式が適用される転送システムは、図１に示すように、複数のバスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅが共有バス１１を介してメモリ等のアクセスターゲット１２に接続されるとともに、前記各バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅからの前記共有バス１１へのアクセス要求（前記共有バス１１の使用要求）を調停するバスコントローラ１３が前記共有バス１１に接続された構成となっている。
【００１６】
前記バスコントローラ１３は、前記各バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅから前記共有バス１１へのアクセス要求が競合するときに、プライオリティの高いバスマスタ、例えば、前記バスマスタ１０Ａ、１０Ｂを優先的に許可する固定優先方式に基づいて調停するとともに、プライオリティが同等のバスマスタ、例えば、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅに対しては均等に許可するラウンドロビン方式に基づいて調停するように構成されている。
【００１７】
つまり、前記バスコントローラ１３は、前記各バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅに対して、例えば、図２に示すように、バスマスタ１０Ａ＞バスマスタ１０Ｂ＞バスマスタ１０Ｃ＝バスマスタ１０Ｄ＝バスマスタ１０Ｅとなるようにプライオリティが予め設定され、前記プライオリティに基づいて前記共有バス１１へのアクセス要求を調停するように構成されている。
【００１８】
また、前記バスコントローラ１３は、プライオリティが同一のバスマスタ、つまり、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅからの前記共有バス１１へのアクセス要求が競合するときに、異なるプライオリティのバスマスタ、つまり、プライオリティの高い前記バスマスタ１０Ａ、１０Ｂに対する相対的待ち時間に応じて可変に設定された相対的重みに基づいて前記共有バス１１へのアクセス要求を許可する重み付けラウンドロビン方式により調停するように構成されている。尚、前記バスコントローラ１３は、詳細は後述するが、前記相対的待ち時間を単位ラウンドロビン周期において計時される夫々の待ち時間を基準として求めるとともに、前記相対的待ち時間が許容時間内のとき、設定された相対的重みに基づく単位ラウンドロビン周期の経過後に当該バスマスタの相対的重みを復帰させるように構成されている。
【００１９】
ここで、前記各バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅは、前記共有バス１１を介して前記アクセスターゲット１２との間でデータの送受信を行うもので、図３に示す動作によって行われる。つまり、前記各バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅは、前記共有バス１１を介して前記アクセスターゲット１２との間でデータの送受信を行う際に、予め前記共有バス１１へのアクセス要求信号Ｓｒを前記バスコントローラ１３へ送信する（ＳＡ１）。そして、前記アクセス要求信号Ｓｒに応じて、前記バスコントローラ１３からアクセス許可信号Ｓｐが送信され受信すると（ＳＡ２）、前記アクセスターゲット１２との間でデータの送受信を実行する（ＳＡ３）。前記アクセスターゲット１２との間でのデータの送受信が終了すると、前記共有バス１１へのアクセスが終了した旨のアクセス終了通知信号Ｓｅを前記バスコントローラ１３へ送信する（ＳＡ４）。
【００２０】
次に、前記バスコントローラ１３の主要動作について、図４、図５のフローチャートに基づいて説明する。前記バスコントローラ１３が起動されると、それぞれが前記バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅに対応したアクセス要求フラグＦａ、Ｆｂ、Ｆｃ、Ｆｄ、Ｆｅをリセットするとともに、前記バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅの何れかが前記共有バス１１へアクセスしているときにセットされるアクセス実行フラグＦｖをリセットする（ＳＢ１）。また、それぞれがプライオリティが同一となっている前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅに対応した第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１のカウント値Ｃｃ１、Ｃｄ１、Ｃｅ１及び第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウント値Ｃｃ２、Ｃｄ２、Ｃｅ２をリセットする（ＳＢ２）。尚、前記内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１及び第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２は、後述する所定の期間において、例えば、前記共有バス１１の転送クロック数をカウントすることで、前記所定の期間の時間を計時するように構成されている。
【００２１】
前記バスコントローラ１３は、前記バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅの何れかから、前記共有バス１１へのアクセス要求信号Ｓｒを受信すると（ＳＢ３）、前記アクセス要求信号Ｓｒを送信してきたバスマスタに対応するアクセス要求フラグをセットする（ＳＢ４）。つまり、前記アクセス要求信号Ｓｒを送信してきたバスマスタが、前記バスマスタ１０Ａであったときには前記アクセス要求フラグＦａを、前記バスマスタ１０Ｂであったときには前記アクセス要求フラグＦｂを、前記バスマスタ１０Ｃであったときには前記アクセス要求フラグＦｃを、前記バスマスタ１０Ｄであったときには前記アクセス要求フラグＦｄを、前記バスマスタ１０Ｅであったときには前記アクセス要求フラグＦｅを、それぞれセットする。
【００２２】
また、前記共有バス１１へのアクセス要求信号Ｓｒを送信してきたバスマスタが、前記プライオリティが同一となっているバスマスタ１０Ｃ、１０Ｄ、１０Ｅであったときには（ＳＢ５）、前記共有バス１１へのアクセス要求信号Ｓｒを送信してきたバスマスタに対応する第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１及び第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウントを開始する（ＳＢ６）。つまり、前記アクセス要求信号Ｓｒを送信してきたバスマスタが、前記バスマスタ１０Ｃであったときには前記第一内部カウンタＣｃ１及び前記第二内部カウンタＣｃ２のカウントを、前記バスマスタ１０Ｄであったときには前記第一内部カウンタＣｄ１及び前記第二内部カウンタＣｄ２のカウントを、前記バスマスタ１０Ｅであったときには前記第一内部カウンタＣｅ１及び前記第二内部カウンタＣｅ２のカウントを、それぞれ開始する。
【００２３】
前記バスコントローラ１３は、前記アクセス実行フラグＦｖがリセットされていれば（ＳＢ７）、前記各アクセス要求フラグＦａ、Ｆｂ、Ｆｃ、Ｆｄ、Ｆｅのセット状況に基づいて対応するバスマスタに前記アクセス許可信号Ｓｐを送信する。尚、前記アクセス実行フラグＦｖがセットされているときには（ＳＢ７）、前記ステップＳＢ３へ戻る。
【００２４】
詳述すると、前記アクセス実行フラグＦｖがリセットされていて（ＳＢ７）、前記アクセス要求フラグＦａがセットされていたときには（ＳＢ８）、たとえ他のアクセス要求フラグ、つまり、前記アクセス要求フラグＦｂ、Ｆｃ、Ｆｄ、Ｆｅの何れかがセットされている状態においても、前記バスマスタ１０Ａに優先的に前記アクセス許可信号Ｓｐを送信するとともに（ＳＢ９）、前記アクセス実行フラグＦｖをセットする（ＳＢ１０）。
【００２５】
前記アクセス要求フラグＦａがリセットされた状態で（ＳＢ８）、前記アクセス要求フラグＦｂがセットされていたときには（ＳＢ１１）、たとえ他のアクセス要求フラグ、つまり、前記アクセス要求フラグＦｃ、Ｆｄ、Ｆｅの何れかがセットされている状態においても、前記バスマスタ１０Ｂに前記アクセス許可信号Ｓｐを送信するとともに（ＳＢ１２）、前記アクセス実行フラグＦｖをセットする（ＳＢ１０）。
【００２６】
つまり、前記バスコントローラ１３は、前記バスマスタ１０Ａをプライオリティ１位とし、また、前記バスマスタ１０Ｂをプライオリティ２位として、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅよりも、前記バスマスタ１０Ａ、１０Ｂを優先的に許可する固定優先方式に基づいて調停している。
【００２７】
前記アクセス要求フラグＦａ及び前記アクセス要求フラグＦｂがリセットされた状態で（ＳＢ８、ＳＢ１１）、前記アクセス要求フラグＦｃ、Ｆｄ、Ｆｅの何れか一つのみがセットされているときには（ＳＢ１３）、前記セットされているアクセス要求フラグに対応するバスマスタに対して前記アクセス許可信号Ｓｐを送信するとともに（ＳＢ１４）、前記アクセス許可信号Ｓｐが送信されたバスマスタに対応する第一内部カウンタ及び第二内部カウンタのカウントを停止し、更に、前記第一内部カウンタのカウント値のみをリセットし（ＳＢ１５）、そして、前記アクセス実行フラグＦｖをセットする（ＳＢ１０）。つまり、前記アクセス要求フラグＦｃのみがセットされているときには、前記バスマスタ１０Ｃに対して前記アクセス許可信号Ｓｐを送信するとともに、前記第一内部カウンタＣｃ１及び前記第二内部カウンタＣｃ２のカウントを停止し、更に、前記第一内部カウンタＣｃ１のカウント値Ｃｃ１のみをリセットし、そして、前記アクセス実行フラグＦｖをセットする。また、前記アクセス要求フラグＦｄのみがセットされているときには、前記バスマスタ１０Ｄに対して前記アクセス許可信号Ｓｐを送信するとともに、前記第一内部カウンタＣｄ１及び前記第二内部カウンタＣｄ２のカウントを停止し、更に、前記第一内部カウンタＣｄ１のカウント値Ｃｄ１のみをリセットし、そして、前記アクセス実行フラグＦｖをセットする。更に、前記アクセス要求フラグＦｅのみがセットされているときには、前記バスマスタ１０Ｅに対して前記アクセス許可信号Ｓｐを送信するとともに、前記第一内部カウンタＣｅ１及び前記第二内部カウンタＣｅ２のカウントを停止し、更に、前記第一内部カウンタＣｅ１のカウント値Ｃｅ１のみをリセットし、そして、前記アクセス実行フラグＦｖをセットする。
【００２８】
前記アクセス要求フラグＦａ及び前記アクセス要求フラグＦｂがリセットされた状態で（ＳＢ８、ＳＢ１１）、前記アクセス要求フラグＦｃ、Ｆｄ、Ｆｅの何れか二つ以上がセットされているときには（ＳＢ１３）、更なる詳細については後述するが、前記バスマスタ１０Ａ、１０Ｂに対する相対的待ち時間、つまり、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１のカウント値Ｃｃ１、Ｃｄ１、Ｃｅ１及び前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウント値Ｃｃ２、Ｃｄ２、Ｃｅ２に応じて可変に設定された相対的重みに基づいてバスアクセス要求を許可する重み付けラウンドロビン方式による調停結果に基づいて選択されたバスマスタに前記アクセス許可信号Ｓｐを送信するとともに（ＳＢ１６）、前記アクセス許可信号Ｓｐが送信されたバスマスタに対応する第一内部カウンタ及び第二内部カウンタのカウントを停止し、更に、前記第一内部カウンタのカウント値のみをリセットし（ＳＢ１５）、そして、前記アクセス実行フラグＦｖをセットする（ＳＢ１０）。つまり、前記バスマスタ１０Ｃが選択されたときには、前記バスマスタ１０Ｃに対して前記アクセス許可信号Ｓｐを送信するとともに、前記第一内部カウンタＣｃ１及び前記第二内部カウンタＣｃ２のカウントを停止し、更に、前記第一内部カウンタＣｃ１のカウント値Ｃｃ１のみをリセットし、そして、前記アクセス実行フラグＦｖをセットする。また、前記バスマスタ１０Ｄが選択されたときには、前記バスマスタ１０Ｄに対して前記アクセス許可信号Ｓｐを送信するとともに、前記第一内部カウンタＣｄ１及び前記第二内部カウンタＣｄ２のカウントを停止し、更に、前記第一内部カウンタＣｄ１のカウント値Ｃｄ１のみをリセットし、そして、前記アクセス実行フラグＦｖをセットする。更に、前記バスマスタ１０Ｅが選択されたときには、前記バスマスタ１０Ｅに対して前記アクセス許可信号Ｓｐを送信するとともに、前記第一内部カウンタＣｅ１及び前記第二内部カウンタＣｅ２のカウントを停止し、更に、前記第一内部カウンタＣｅ１のカウント値Ｃｅ１のみをリセットし、そして、前記アクセス実行フラグＦｖをセットする。
【００２９】
そして、前記バスコントローラ１３は、前記各バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅの何れかから送信されてくる前記アクセス終了通知信号Ｓｅを受信すると（ＳＢ１７）、前記アクセス実行フラグＦｖをリセットするとともに（ＳＢ１８）、前記アクセス終了通知信号Ｓｅを送信してきたバスマスタに対応するアクセス要求フラグをリセットし（ＳＢ１９）、前記ステップＳＢ３に戻る。つまり、前記ステップＳＢ１９では、前記アクセス終了通知信号Ｓｅを送信してきたバスマスタが、前記バスマスタ１０Ａであったときには前記アクセス要求フラグＦａを、前記バスマスタ１０Ｂであったときには前記アクセス要求フラグＦｂを、前記バスマスタ１０Ｃであったときには前記アクセス要求フラグＦｃを、前記バスマスタ１０Ｄであったときには前記アクセス要求フラグＦｄを、前記バスマスタ１０Ｅであったときには前記アクセス要求フラグＦｅを、それぞれリセットする。
【００３０】
また、前記各バスマスタ１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅの何れかから送信されてくる前記アクセス終了通知信号Ｓｅが受信されないときには（ＳＢ１７）、前記ステップＳＢ７へ戻る。更に、前記ステップＳＢ３で、前記共有バス１１へのアクセス要求信号Ｓｒが受信されないときには、前記ステップＳＢ１７へ進む。
【００３１】
以下、前記重み付けラウンドロビン方式による調停について詳述する。前記バスコントローラ１３は、例えば、プライオリティが同等となっている前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅのそれぞれに対して重み係数Ｗｃ、Ｗｄ、Ｗｅを３ビットの８階級（０、１、２、・・・、７）で設定する。そして、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅにおける前記重み係数Ｗｃ、Ｗｄ、Ｗｅの値をそれぞれ等しくすることで、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅにおける他のバスマスタ間との相対的重みＨｃ、Ｈｄ、Ｈｅを等しく設定し、また、前記重み係数Ｗｃ、Ｗｄ、Ｗｅの何れかを異なった値とすることで、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅにおける他のバスマスタ間との相対的重みＨｃ、Ｈｄ、Ｈｅが異なるように設定する。
【００３２】
具体的には、〔数１〕に示すように前記各重み係数Ｗｃ、Ｗｄ、Ｗｅの和を単位ラウンドロビン周期Ｔｘとし、前記単位ラウンドロビン周期Ｔｘに対してそれぞれ前記各重み係数Ｗｃ、Ｗｄ、Ｗｅで除算した値を、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅにおけるそれぞれの相対的重みＨｃ、Ｈｄ、Ｈｅとして定義する。
【００３３】
【数１】
0004672520.tif 000002
【００３４】
そして、当該バスコントローラ１３の起動時に前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅに対する重み係数Ｗｃ、Ｗｄ、Ｗｅを、例えば、それぞれＷｃ＝７、Ｗｄ＝７、Ｗｅ＝７に設定することで、当初は前記相対的重みＨｃ、Ｈｄ、Ｈｅをそれぞれ、Ｈｃ＝２１／７、Ｈｄ＝２１／７、Ｈｅ＝２１／７として等しく設定するとともに、前記バスマスタ１０Ａ、１０Ｂに対する相対的待ち時間が生じたときに、つまり、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１の何れかのカウントが開始されることにより、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１のカウント値Ｃｃ１、Ｃｄ１、Ｃｅ１の何れかが増加したときに、前記カウント値Ｃｃ１、Ｃｄ１、Ｃｅ１の増加量に応じて、前記各重み係数Ｗｃ、Ｗｄ、Ｗｅの値を更新することで、前記相対的重みＨｃ、Ｈｄ、Ｈｅの値が変化するように更新する。
【００３５】
例えば、前記相対的重みＨｃ、Ｈｄ、Ｈｅの値は、前記第一内部カウンタＣｃ１のカウント値Ｃｃ１が所定のカウント値Ｙｘだけ増加したときに、前記重み係数Ｗｃの値から、１だけ差し引いた値とすれば、前記重み係数Ｗｃの値がＷｃ＝７−１＝６となり、また、前記ラウンドロビン周期Ｔｘの値がＴｘ＝６＋７＋７＝２０となるため、前記相対的重みＨｃ、Ｈｄ、Ｈｅは、それぞれ、Ｈｃ＝２０／６、Ｈｄ＝２０／７、Ｈｅ＝２０／７となり、前記バスマスタ１０Ｃにおける相対的重みＨｃが、他のバスマスタ１０Ｄ、１０Ｅにおける相対的重みＨｄ、Ｈｅよりも大きくなるように更新することができる。また、前記第一内部カウンタＣｃ１が、更に所定のカウント値Ｙｘ増加したときには、前記重み係数Ｗｃの値から、更に１だけ差し引いた値とすれば、前記重み係数Ｗｃの値がＷｃ＝６−１＝５となり、また、前記ラウンドロビン周期Ｔｘの値がＴｘ＝５＋７＋７＝１９となるため、前記相対的重みＨｃ、Ｈｄ、Ｈｅは、それぞれ、Ｈｃ＝１９／５、Ｈｄ＝１９／７、Ｈｅ＝１９／７となり、前記バスマスタ１０Ｃにおける相対的重みＨｃが、他のバスマスタ１０Ｄ、１０Ｅにおける相対的重みＨｄ、Ｈｅよりも、更に一層大きくなるように更新することができる。つまり、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１のカウント値Ｃｃ１、Ｃｄ１、Ｃｅ１の何れかが所定のカウント値だけ増加する毎に、カウント値が前記所定のカウント値だけ増加した第一内部カウンタに対応するバスマスタの重み係数の値を所定の値だけ減算することで、各バスマスタにおいて等しくなっている相対重みを、他のバスマスタにおける相対的重みよりも大きくなるように更新することができる。尚、前記重み係数Ｗｃ、Ｗｄ、Ｗｅの値は、１を下回らないように下限設定されている。また、更新される前の各バスマスタの相対的重みは、必ずしも等しい場合に限定するものではなく、説明の便宜上のため等しくしているものである。つまり、更新される前の各バスマスタの相対的重みが異なった値であり、更新後の相対的重みが等しくなる場合もある。
【００３６】
また、前記バスコントローラ１３は、前記単位ラウンドロビン周期Ｔｘに応じた期間毎においても、前記各相対的重みＨｃ、Ｈｄ、Ｈｅの値を更新する。
【００３７】
具体的には、前記単位ラウンドロビン周期Ｔｘに応じた期間、例えば、前記単位ラウンドロビン周期Ｔｘの値を、前記共有バス１１における転送クロック数と対応付け、現在の単位ラウンドロビン周期Ｔｘの値に対応する数の前記転送クロックが発信される間（以下、単に「単位ラウンドロビン周期Ｔｘ」と記す）、前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｄ３のカウント値Ｃｃ２、Ｃｄ２、Ｃｄ３のうち、カウント値が増加しなかった第二内部カウンタに対応するバスマスタの相対的重みが小さくなるように更新する。つまり、現在の単位ラウンドロビン周期Ｔｘ毎に、現在の前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｄ３のカウント値Ｃｃ２（ｔ）、Ｃｄ２（ｔ）、Ｃｄ３（ｔ）と、前記単位ラウンドロビン周期Ｔｘ経過前における前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｄ３のカウント値Ｃｃ２（ｔ−１）、Ｃｄ２（ｔ−１）、Ｃｄ３（ｔ−１）を比較し、カウント値が等しくなっている、つまり、カウント値が増加していない第二内部カウンタに対応するバスマスタの重み係数の値を増加させることで、対応するバスマスタの相対的重みの値が小さくなるように更新する。
【００３８】
例えば、現在における前記重み係数の値が、Ｗｃ＝５、Ｗｄ＝５、Ｗｅ＝５であったとする。そして、現在の前記第二内部カウンタＣｃ２のカウント値Ｃｃ２（ｔ）と前記単位ラウンドロビン周期Ｔｘ経過前における前記第二内部カウンタＣｃ２のカウント値Ｃｃ２（ｔ−１）が等しかったときに、前記重み係数Ｗｃの値に、１だけ足し加えた値とすれば、前記重み係数Ｗｃの値がＷｃ＝５＋１＝６となり、また、前記ラウンドロビン周期Ｔｘの値がＴｘ＝６＋５＋５＝１６となるため、前記相対的重みＨｃ、Ｈｄ、Ｈｅは、それぞれ、Ｈｃ＝１６／６、Ｈｄ＝１６／５、Ｈｅ＝１６／５となる。つまり、前記バスマスタ１０Ｃにおける相対的重みＨｃの値が、他のバスマスタ１０Ｄ、１０Ｅにおける相対的重みＨｄ、Ｈｅよりも小さくなるように更新することができる。
【００３９】
尚、前記重み係数Ｗｃ、Ｗｄ、Ｗｅの値は、７を上回らないように上限設定されている。つまり、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅの何れからも所定の時間、前記アクセス要求信号Ｓｒが送信されてこなかったときには、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅにおける相対的重みＨｃ、Ｈｄ、Ｈｅは再び等しくなるように構成されている。
【００４０】
そして、前記バスコントローラ１３は、前記各相対的重みＨｃ、Ｈｄ、Ｈｅに基づいて前記アクセス許可信号Ｓｐを送信すべきバスマスタ１０Ｃ、１０Ｄ、１０Ｅの調停を行う。つまり、前記相対的重みが大きく設定されたバスマスタが選択される確率が高くなるように、また、前記相対的重みが小さく設定されたバスマスタが選択される確率が小さくなるように、更には、前記各相対的重みＨｃ、Ｈｄ、Ｈｅが等しいときには、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅのそれぞれが選択される確率が等しくなるように調停する。
【００４１】
尚、前記調停は、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅのうち、前記アクセス要求フラッグがセットされているバスマスタに対して行われる。換言すると、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅのうち、セットされているアクセス要求フラグに対応するバスマスタの何れかが選択されるように調停が行われる。
【００４２】
以下、前記バスコントローラ１３における前記重み付けラウンドロビン方式による調停の具体的動作について、図６、図７のフローチャートに基づいて説明する。前記バスコントローラ１３が起動されると、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅに対する重み係数Ｗｃ、Ｗｄ、Ｗｅを、それぞれＷｃ＝７、Ｗｄ＝７、Ｗｅ＝７に設定するとともに（ＳＣ１）、前記重み係数Ｗｃ、Ｗｄ、Ｗｅと前記〔数１〕に基づいて、前記単位ラウンドロビン周期Ｔｘと、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅの相対的重みＨｃ、Ｈｄ、Ｈｅを算出する（ＳＣ２）。
【００４３】
そして、前記バスコントローラ１３は、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅの選択確率が、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅの相対的重みＨｃ、Ｈｄ、Ｈｅに応じた選択確率となるように、また、前記アクセス要求フラッグＦｃ、Ｆｄ、Ｆｅのセット状態に応じて、前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅから特定のバスマスタの選択を行うとともに（ＳＣ３）、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１のカウント値Ｃｃ１、Ｃｄ１、Ｃｅ１及び前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウント値Ｃｃ２、Ｃｄ２、Ｃｅ２の監視及び前記カウント値に応じた所定の動作を開始する。
【００４４】
つまり、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１のカウント値Ｃｃ１、Ｃｄ１、Ｃｅ１の何れかが、所定のカウント値Ｙｘを超えると（ＳＣ４、ＳＣ８、ＳＣ１２）、前記所定のカウント値Ｙｘを超えた内部カウンタのカウント値をリセットするとともに（ＳＣ５、ＳＣ９、ＳＣ１３）、前記所定のカウント値Ｙｘを超えた内部カウンタに対応するバスマスタの重み係数から、前記重み係数が１よりも大きな値であれば（ＳＣ６、ＳＣ１０、ＳＣ１４）、１を差し引き（ＳＣ７、ＳＣ９、ＳＣ１５）、前記ステップＳＣ２へ戻る。尚、カウント値がリセットされた内部カウンタは、引き続きカウントを継続する。また、前記重み係数が１以下のときには、そのまま前記ステップＳＣ２へ戻る。
【００４５】
また、前記単位ラウンドロビン周期Ｔｘ経過毎に（ＳＣ１６）、現在の前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウント値Ｃｃ２（ｔ）、Ｃｄ２（ｔ）、Ｃｅ２（ｔ）と、前記単位ラウンドロビン周期Ｔｘ経過前における前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウント値Ｃｃ２（ｔ−１）、Ｃｄ２（ｔ−１）、Ｃｅ２（ｔ−１）をそれぞれ比較し、カウント値が等しい第二内部カウンタがあったときに（ＳＣ１７、ＳＣ２０、ＳＣ２３）、カウント値が等しい第二内部カウンタに対応するバスマスタの重み係数に、前記重み係数が７よりも小さな値であれば（ＳＣ１８、ＳＣ２１、ＳＣ２４）、１を足し加える（ＳＣ１９、ＳＣ２２、ＳＣ２５）。
【００４６】
尚、前記ステップＳＢ１６では、前記ステップＳＣ３で現在選択されているバスマスタに対して、前記アクセス許可信号Ｓｐを送信する。
【００４７】
つまり、異なるプライオリティのバスマスタに対する相対的待ち時間が長い方のバスマスタの重みが、前記相対的待ち時間が短い方のバスマスタの重みよりも大きくなるように相対的重みが可変に設定されるので、プライオリティが同一のバスマスタからのバスアクセス要求が競合するときに、相対的重みが大きい方、つまり待ち時間の長い方のバスマスタからの要求が許可される確率を上昇させながらも、待ち時間の短い方のバスマスタからの要求も確実に許可されるようになっている。
【００４８】
また、単位ラウンドロビン周期内での夫々の待ち時間の差分により次回のラウンドロビン周期の相対的重みを決定することができるので、容易に相対的待ち時間を求めることができるようになっている。
【００４９】
更に、単位ラウンドロビン周期での相対的待ち時間がそれほど大きくないときには、相対的重みを復帰させることにより、プライオリティの等しいバスマスタに対して均等にアクセスが許可されるようになっている。
【００５０】
＜実施例＞
以下、前記転送システムを画像処理装置のデータ処理部に適用した例について説明する。画像処理装置のデータ処理部３０は、図８に示すように、画像データを格納する前記アクセスターゲット１２としてのデータメモリ２０と、前記画像データに対して拡大縮小変換処理する前記バスマスタ１０Ａとしての拡縮変換処理部２１と、同じく前記画像データに対して濃度変換処理する前記バスマスタ１０Ｂとしての濃度変換処理部２２と、当該画像処理装置の内部機器から入力されてくる画像データを前記データメモリ２０へ格納する前記バスマスタ１０ＣとしてのＣＰＵＩ／Ｆ２３と、当該画像処理装置の外部機器から入力されてくる画像データを前記データメモリ２０へ格納する前記バスマスタ１０ＤとしてのＵＳＢコントローラ２４と、前記データメモリ２０に格納されている画像データを出力する前記バスマスタ１０ＥとしてのセントロＩ／Ｆ２５と、前記バスコントローラ１３を備え、それぞれを、前記共有バス１１で接続した構成とした。
【００５１】
前記画像処理装置のデータ処理部３０は、前記拡縮変換処理部２１や前記濃度変換処理部２２による画像データの転送が優先されて実行されることにより、前記ＣＰＵＩ／Ｆ２３や、前記ＵＳＢコントローラ２４、前記セントロＩ／Ｆ２５等のプライオリティが同一のバスマスタからのバスアクセス要求が、それぞれの待ち時間が異なる状態で競合しても、その時々の状況に応じて前記共有バス１１へのアクセスが適切に許可されることで、何ら不都合を生じることなく、前記ＣＰＵＩ／Ｆ２３や、前記ＵＳＢコントローラ２４、前記セントロＩ／Ｆ２５による画像データの転送処理を実行することができた。
【００５２】
以下、別の実施形態について説明する。上述の実施形態では、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１及び前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウントを、当該バスコントローラ１３がそれぞれに対応するバスマスタからのアクセス要求信号Ｓｒを受信したタイミングで開始する構成について説明したが、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１及び前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウント開始タイミングは、当該バスコントローラ１３が前記バスマスタ１０Ａまたは前記バスマスタ１０Ｂからのアクセス要求信号Ｓｒを受信した後に、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅから、更に、アクセス要求信号Ｓｒを受信したときに、前記アクセス要求信号Ｓｒ送信してきたバスマスタに対応した前記第一内部カウンタ及び第二内部カウンタのカウントを開始する構成としてもよい。つまり、前記アクセス要求フラグＦａまたは前記アクセス要求フラグＦｂがセットされているときに、前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅから、更に、アクセス要求信号Ｓｒを受信したときに、前記アクセス要求信号Ｓｒ送信してきたバスマスタに対応した前記第一内部カウンタ及び第二内部カウンタのカウントを開始する構成としてもよい。プライオリティが同一のバスマスタからのバスアクセス要求が競合するときの、異なるプライオリティのバスマスタに対する相対的待ち時間を、より正確に計時することができ好ましい。
【００５３】
また、前記アクセス要求フラグＦｃ、Ｆｄ、Ｆｅが同時にセットされているときには、前記第一内部カウンタＣｃ１、Ｃｄ１、Ｃｅ１及び前記第二内部カウンタＣｃ２、Ｃｄ２、Ｃｅ２のカウントを停止する構成としてもよい。前記アクセス要求フラグＦｃ、Ｆｄ、Ｆｅが同時にセットされているときには、プライオリティが同等の前記バスマスタ１０Ｃ、１０Ｄ、１０Ｅ間での、プライオリティの高い前記バスマスタ１０Ａまたは前記バスマスタ１０Ｂに対する相対的待ち時間に対して差が生じないため、不必要な計時を省くことができる。
【００５４】
上述の実施形態では、プライオリティが同等となっている前記各バスマスタ１０Ｃ、１０Ｄ、１０Ｅのそれぞれに対して重み係数を３ビットの８階級（０、１、２、・・・、７）で設定する構成について説明したが、これに限定するものではなく、プライオリティが同等となっているバスマスタの数等に応じて、適宜、設定することができる。
【００５５】
上述した実施形態は、本発明の一例に過ぎず、各機能ブロックの具体的な構成は本発明の作用効果を奏する範囲において適宜変更設計できることはいうまでもない。
【図面の簡単な説明】
【００５６】
【図１】転送システムの説明図
【図２】各バスマスタのプライオリティの説明図
【図３】バスマスタの動作を説明するためのフローチャート
【図４】バスコントローラの主要動作を説明するためのフローチャート
【図５】バスコントローラの主要動作を説明するためのフローチャート
【図６】バスコントローラにおける重み付けラウンドロビン方式による調停の具体的動作を説明するためのフローチャート
【図７】バスコントローラにおける重み付けラウンドロビン方式による調停の具体的動作を説明するためのフローチャート
【図８】転送システムを画像処理装置のデータ処理部に適用した例の説明図
【符号の説明】
【００５７】
１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅ：バスマスタ
１１：共有バス
１２：アクセスターゲット
１３：バスコントローラ
２０：データメモリ
２１：拡縮変換処理部
２２：濃度変換処理部
２３：ＣＰＵＩ／Ｆ
２４：ＵＳＢコントローラ
２５：セントロＩ／Ｆ
【図１】
0004672520.tif 000003
【図２】
0004672520.tif 000004
【図３】
0004672520.tif 000005
【図４】
0004672520.tif 000006
【図５】
0004672520.tif 000007
【図６】
0004672520.tif 000008
【図７】
0004672520.tif 000009
【図８】
0004672520.tif 000010