(57)【要約】【課題】  適切な調停アルゴリズムでバスの調停を行い、効率よくバスを使用できるバス制御システム及びバス制御方法を提供すること。【解決手段】  本発明にかかるバス制御システムは、バス１４０に共通に接続されたバスマスタ１０１ａ，１０１ｂ，１０１ｃと、バスマスタ１０１ａ，１０１ｂ，１０１ｃによるバス１４０の使用を調停するアービタ１２０と、バスマスタ１０１ａ，１０１ｂ，１０１ｃからのバス使用要求をアービタ１２０が許可する順番を規定する調停アルゴリズムを切り替えるＣＰＵ１と、を備えるものである。【選択図】  図１
2007026021.tif 000002
【特許請求の範囲】
【請求項１】
バスに共通に接続された複数のバスマスタと、
前記複数のバスマスタによる前記バスの使用を予め定められた複数の異なる調停アルゴリズムのいずれかにしたがって調停するバスアービタと、
前記複数の調停アルゴリズムを切り替える調停アルゴリズム制御部と、を備える、
バス制御システム。
【請求項２】
前記調停アルゴリズム制御部は、前記複数のバスマスタで実行予定の処理に基づいて前記複数の調停アルゴリズムを切り替える、
請求項１に記載のバス制御システム。
【請求項３】
前記調停アルゴリズム制御部は、前記複数のバスマスタの処理の実行前に前記複数の調停アルゴリズムを切り替える、
請求項１又は２に記載のバス制御システム。
【請求項４】
前記調停アルゴリズム制御部は、前記複数の調停アルゴリズムをラウンドロビン方式もしくは優先度固定方式を含むアルゴリズムに切り替える、
請求項１乃至３のいずれか一つに記載のバス制御システム。
【請求項５】
前記調停アルゴリズム制御部は、
前記複数のバスマスタで実行される処理が、前記複数のバスマスタのそれぞれでほぼ均等に前記バスを使用する処理の場合、前記複数の調停アルゴリズムをラウンドロビン方式に切り替え、
前記複数のバスマスタで実行される処理が、前記複数のバスマスタのそれぞれで不均等に前記バスを使用する処理の場合、前記複数の調停アルゴリズムを優先度固定方式に切り替える、
請求項４に記載のバス制御システム。
【請求項６】
前記調停アルゴリズム制御部は、
前記複数のバスマスタで実行される処理が、前記複数のバスマスタのそれぞれでほぼ等しい確率で前記バスを使用する処理の場合、前記複数の調停アルゴリズムをラウンドロビン方式に切り替え、
前記複数のバスマスタで実行される処理が、前記複数のバスマスタのそれぞれで異なる確率で前記バスを使用する処理の場合、前記複数の調停アルゴリズムを優先度固定方式に切り替える、
請求項４に記載のバス制御システム。
【請求項７】
前記アービタは、前記複数のバスマスタを複数のグループにグループ化し、前記グループ内の複数のバスマスタ間を調停する調停アルゴリズムであるグループ内調停アルゴリズムと、前記複数のグループ間を調停する調停アルゴリズムであるグループ間調停アルゴリズムとに基づいて前記バスの使用を調停し、
前記調停アルゴリズム制御部は、前記グループ内調停アルゴリズム及び前記グループ間調停アルゴリズムを切り替える、
請求項１乃至３のいずれか一つに記載のバス制御システム。
【請求項８】
前記調停アルゴリズム制御部は、前記グループ内調停アルゴリズム及び前記グループ間調停アルゴリズムのそれぞれを、ラウンドロビン方式もしくは優先度固定方式を含むアルゴリズムに切り替える、
請求項７に記載のバス制御システム。
【請求項９】
前記調停アルゴリズム制御部は、
前記グループに含まれる複数のバスマスタで実行される処理が、前記グループ内の複数のバスマスタのそれぞれでほぼ均等に前記バスを使用する処理の場合、前記グループ内調停アルゴリズムをラウンドロビン方式に切り替え、
前記グループに含まれる複数のバスマスタで実行される処理が、前記グループ内の複数のバスマスタのそれぞれで不均等に前記バスを使用する処理の場合、前記グループ内調停アルゴリズムを優先度固定方式に切り替え、
前記複数のグループに含まれる複数のバスマスタで実行される処理が、前記複数のグループのそれぞれでほぼ均等に前記バスを使用する処理の場合、前記グループ間調停アルゴリズムをラウンドロビン方式に切り替え、
前記複数のグループに含まれる複数のバスマスタで実行される処理が、前記複数のグループのそれぞれで不均等に前記バスを使用する処理の場合、前記グループ間調停アルゴリズムを優先度固定方式に切り替える、
請求項８に記載のバス制御システム。
【請求項１０】
前記調停アルゴリズム制御部は、
前記グループに含まれる複数のバスマスタで実行される処理が、前記グループ内の複数のバスマスタのそれぞれでほぼ等しい確率で前記バスを使用する処理の場合、前記グループ内調停アルゴリズムをラウンドロビン方式に切り替え、
前記グループに含まれる複数のバスマスタで実行される処理が、前記グループ内の複数のバスマスタのそれぞれで異なる確率で前記バスを使用する処理の場合、前記グループ内調停アルゴリズムを優先度固定方式に切り替え、
前記複数のグループに含まれる複数のバスマスタで実行される処理が、前記複数のグループのそれぞれでほぼ等しい確率で前記バスを使用する処理の場合、前記グループ間調停アルゴリズムをラウンドロビン方式に切り替え、
前記複数のグループに含まれる複数のバスマスタで実行される処理が、前記複数のグループのそれぞれで異なる確率で前記バスを使用する処理の場合、前記グループ間調停アルゴリズムを優先度固定方式に切り替える、
請求項８に記載のバス制御システム。
【請求項１１】
前記調停アルゴリズムを設定するアルゴリズムレジスタをさらに有し、
前記調停アルゴリズム制御部は、前記切り替える調停アルゴリズムを前記アルゴリズムレジスタに設定し、
前記バスアービタは、前記アルゴリズムレジスタに設定された調停アルゴリズムによって前記複数のバスマスタの調停を行う、
請求項１乃至１０のいずれか一つに記載のバス制御システム。
【請求項１２】
前記調停アルゴリズム制御部は、前記複数のバスマスタのうちの一つである、
請求項１乃至１１のいずれか一つに記載のバス制御システム。
【請求項１３】
バスに共通に接続された複数のバスマスタと、
前記複数のバスマスタによる前記バスの使用を予め定められた調停アルゴリズムにしたがって調停するバスアービタと、
前記複数のバスマスタで実行予定の処理に基づいて、前記調停アルゴリズムにおける前記複数のバスマスタの優先順位もしくは調停順序を切り替える調停アルゴリズム制御部と、を備える、
バス制御システム。
【請求項１４】
前記調停アルゴリズム制御部は、前記複数のバスマスタの処理の実行前に前記優先順位もしくは調停順序を切り替える、
請求項１３に記載のバス制御システム。
【請求項１５】
複数のバスマスタのバスの使用を調停するバス制御方法であって、
前記複数のバスマスタによる前記バスの使用を予め定められた複数の異なる調停アルゴリズムのいずれかにしたがって調停し、
前記複数のバスマスタで実行予定の処理に基づいて前記複数の調停アルゴリズムを切り替える、
バス制御方法。
【請求項１６】
前記調停アルゴリズムの切り替えは、前記複数のバスマスタの処理の実行前に行われる、
請求項１５に記載のバス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス制御システム及びバス制御方法に関し、特に、複数のバスマスタによるバスの使用を調停するバスアービタを有するバス制御システム及びバス制御方法に関する。
【背景技術】
【０００２】
従来から、１つのバスに複数のデバイスを接続し、各デバイスによるバスの使用を調停するバス制御システムが利用されている。バスの使用を要求しバスを使用するデバイスをバスマスタと呼び、バスマスタからバスを介してアクセスされる側のデバイスをバススレーブと呼び、バスマスタにバスの使用を許可する（調停する）調停回路をアービタと呼んでいる。
【０００３】
近年、このようなバス制御システムを有する情報処理装置や電子機器等の高性能化・高機能化に伴ってシステムが複雑化しており、バスに接続されるバスマスタが増加する傾向にある。また、バスにより転送されて処理されるデータについても、転送遅延が許容される情報（例えばテキスト情報）や、転送遅延が許容されない情報（例えば音声情報、動画情報）など、多様化が進んでいる。したがって、より効率よくバスの使用を調停する技術が望まれている。
【０００４】
バス制御システムにおいて、アービタは、所定の調停アルゴリズムにより規定される順番にバスの使用を許可し、バス使用権を与えることで、バスの調停を行っている。例えば、調停アルゴリズムには、優先度の高いバスマスタに優先的にバス使用権を与える優先度固定方式と、各バスマスタに同じ割合でバス使用権を与えるラウンドロビン方式が知られている。そして、従来のアービタでは、優先度固定方式かラウンドロビン方式のいずれかによりバスの調停が行われている。
【０００５】
例えば、優先度固定方式を用いた従来のアービタとして特許文献１が知られている。図１４は、特許文献１に記載されている従来のバス制御システムの構成を示している。バスマスタ９０１ａ，９０１ｂ及びバススレーブ９１０は、それぞれバス９４０に共通に接続されている。アービタ９２０は、バスマスタ９０１ａ，９０１ｂからバス使用要求を受けて、バス９４０の使用を調停する。バスマスタ９０１ａ，９０１ｂは、アービタ９２０からバスの使用を許可されると、バス９４０を介してバススレーブ９１０とデータ転送を行う。
【０００６】
バス監視回路９５０は、バス９４０で行われるデータ転送を監視し、検出した通信頻度やバス待ち時間などに基づいて、優先度レジスタ９３０にバスマスタ９０１ａ，９０１ｂの優先度（優先順位）を設定する。アービタ９２０は、優先度レジスタ９３０の優先度にしたがって、バスマスタ９０１ａもしくはバスマスタ９０１ｂのいずれかを優先的にバスの使用を許可する。例えば、バス待ち時間の長いバスマスタの優先度を高くすることで、オーバーランやアンダーラン等のエラーを低減させている。
【０００７】
しかしながら、従来のバス制御システムでは、アービタが常に優先度固定方式でのみバスの調停を行っている。また、優先度固定方式の代わりにラウンドロビン方式を適用した場合でも同様にラウンドロビン方式でのみバスの調停を行うことになる。すなわち、従来のバス制御システムでは、アービタがあらかじめ決められた優先度固定方式もしくはラウンドロビン方式のいずれか１つの調停アルゴリズムのみでしか動作せず、１つの調停アルゴリズムの範囲内で調停する順番を変更している。つまり、従来のバス制御システムでは、優先度を変更しても優先度という同じ因子（要素）に基づいてのみ調停を行っている。
【０００８】
従来のバス制御システムにおいて、優先度固定方式を採用すると、優先度固定方式に適したデータを転送する場合には、効率よくバスを調停でき、バスの使用に無駄は生じないが、ラウンドロビン方式に適したデータを転送すると効率よくバスを調停することはできず、バスの使用に無駄が生じる。従来のバス制御システムにおいて、ラウンドロビン方式を採用した場合も同様に、優先度固定方式に適したデータを転送するとバスの使用に無駄が生じる。バスの使用に無駄が生じると、データ転送の待ち時間が増えオーバーランやアンダーランが発生したり、データ転送のボトルネックとなり、システムの性能が低下してしまう。したがって、従来のバス制御システムでは、常に最適な調停アルゴリズムでバスを調停することはできなかった。
【０００９】
また、従来のバス制御システムでは、優先順位を切り替えるために、通信頻度やデータ転送待ちなどを監視するバス監視回路が必要であり、切り替えのタイミングがハードウェアにより決定されている。このため、あらかじめ決められた固定の条件を検出した場合にのみ優先順位を切り替える。バス待ち時間に閾値を設け、待ち時間に応じて優先度を変更することで、バスマスタの最低スループットを保障することはできる。しかし、待ち時間の閾値まで検出する必要があり、常に最適な優先順位を選択することはできない。さらに、ハードウェア制御では、バスもしくはバスマスタごとに待ち時間等を検出するための回路が必要となり、バス数・バスマスタ数が多い場合には、その回路も複雑になり、回路規模が大きくなってしまう。
【特許文献１】特開平６−２４３０９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
このように、従来のバス制御システムでは、固定の調停アルゴリズムでしかバスを調停できない場合などがあるため、常に最適な調停アルゴリズムでバスを調停できず、効率よくバスを使用することができないという問題があった。
【課題を解決するための手段】
【００１１】
本発明にかかるバス制御システムは、バスに共通に接続された複数のバスマスタと、前記複数のバスマスタによる前記バスの使用を予め定められた複数の異なる調停アルゴリズムのいずれかにしたがって調停するバスアービタと、前記複数の調停アルゴリズムを切り替える調停アルゴリズム制御部と、を備えるものである。このバス制御システムによれば、バスアービタの調停アルゴリズムを切り替えることができるようになるため、最適な調停アルゴリズムによりバスの調停が可能になり、効率よくバスを使用することができる。
【００１２】
本発明にかかるバス制御システムは、バスに共通に接続された複数のバスマスタと、前記複数のバスマスタによる前記バスの使用を予め定められた調停アルゴリズムにしたがって調停するバスアービタと、前記複数のバスマスタで実行予定の処理に基づいて、前記調停アルゴリズムにおける前記複数のバスマスタの優先順位もしくは調停順序を切り替える調停アルゴリズム制御部と、を備えるものである。このバス制御システムによれば、ラウンドロビン方式や優先度固定方式のような一つの調停アルゴリズム内で優先順位もしくは調停順序を切り替えることができるようになるため、最適な調停アルゴリズムによりバスの調停が可能になり、効率よくバスを使用することができる。
【００１３】
本発明にかかるバス制御方法は、複数のバスマスタのバスの使用を調停するバス制御方法であって、前記複数のバスマスタによる前記バスの使用を予め定められた複数の異なる調停アルゴリズムのいずれかにしたがって調停し、前記複数のバスマスタで実行予定の処理に基づいて前記複数の調停アルゴリズムを切り替えるものである。このバス制御方法によれば、バスの調停アルゴリズムを切り替えることができるようになるため、最適な調停アルゴリズムによりバスの調停が可能になり、効率よくバスを使用することができる。
【発明の効果】
【００１４】
本発明によれば、適切な方式でバスマスタを選択しバスを調停することにより、効率よくバスを使用できるバス制御システム及びバス制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
発明の実施の形態１．
まず、本発明の実施の形態１にかかるバス制御システムについて説明する。本実施形態にかかるバス制御システムは、実行する処理に基づいてアービタの調停アルゴリズムを切り替えることを特徴としている。
【００１６】
ここで、図１を用いて、本実施形態にかかるバス制御システムのハードウェア構成について説明する。例えば、このバス制御システムは、１チップもしくは複数のチップからなるシステムＬＳＩであり、パーソナルコンピュータなどの情報処理装置や携帯電話などの電子機器に設けられている。
【００１７】
このバス制御システムは、図に示されるように、バスマスタ１０１ａ，１０１ｂ，１０１ｃ、バススレーブ１１０、アービタ１２０、アルゴリズムレジスタ１３０を備えており、バスマスタ１０１ａ，１０１ｂ，１０１ｃ、バススレーブ１１０は、それぞれバス１４０に共通に接続されている。
【００１８】
バスマスタ１０１ａ，１０１ｂ，１０１ｃは、アービタ１２０にバスの使用を要求し、アービタ１２０からバス使用を許可されると、バス１４０を介してバススレーブ１１０との間でデータ転送を行う。
【００１９】
ここでは、バスマスタ１０１ａは、システム全体の動作を制御するＣＰＵ（システム制御部）１である。バスマスタ１０１ｂ，１０１ｃは、ＣＰＵ１の制御のもとで各種動作を行う補助機能部である。例えば、バスマスタ１０１ｂは、外部とやり取りするデータをメモリとの間で直接転送するＤＭＡ（Direct Memory Access）２であり、バスマスタ１０１ｃは、音声データや画像データを処理するＤＳＰ（Digital Signal Processor）３である。バススレーブ１１０は、ＣＰＵ１，ＤＭＡ２，ＤＳＰ３の動作に必要な情報を記憶するＲＡＭなどのメモリ（記憶部）４である。例えば、メモリ４には、ＣＰＵ１で実行されるプログラムや演算データ、ＤＭＡ２の外部データ、ＤＳＰ３の音声データや画像データ等が記憶される。
【００２０】
例えば、バス制御システムが携帯電話などで通話を行う場合、通話用のプログラムがＣＰＵ１で実行され、ユーザから入力される音声がＤＳＰ３で音声データに変換されてメモリ４に格納され、ＣＰＵ１で処理された後、音声データがＤＭＡ２により外部へ送信される。また、外部から受信した音声データはＤＭＡ２によりメモリ４に格納され、ＣＰＵ１で処理された後、音声データがＤＳＰ３で音声に変換されてユーザへ出力される。
【００２１】
アルゴリズムレジスタ１３０は、アービタ１２０がバスを調停するための調停アルゴリズムを設定する。調停アルゴリズムは、所定の因子（要素）に基づいてバスマスタを選択し調停するためのアルゴリズムであり、バスマスタのバス使用要求をバスアービタが許可する順番、すなわち、バス使用権を与える順番を規定するアルゴリズムである。アルゴリズムレジスタ１３０には、調停アルゴリズムとして、ラウンドロビン方式もしくは優先度固定方式が設定される。優先度固定方式は、優先順位（優先度）という因子に基づいてバスマスタを選択する方式である。ラウンドロビン方式は、優先順位ではなく予め決められた順番という因子に基づいてバスマスタを選択する方式（非優先度方式）である。例えば、ラウンドロビン方式の場合は「０」、優先度固定方式の場合は「１」が設定される。本実施形態では、システム制御部であるＣＰＵ１が、これから実行する実行予定の処理に基づいてアルゴリズムレジスタ１３０を設定する。すなわち、ＣＰＵ１は、異なる調停アルゴリズムに切り替える調停アルゴリズム制御部として動作する。
【００２２】
アービタ１２０は、複数の異なる調停アルゴリズムのいずれかにしたがってバスの調停を行う。本実施形態では、アービタ１２０は、アルゴリズムレジスタ１３０に設定された調停アルゴリズムにしたがってバスの調停を行う。すなわち、アービタ１２０は、バスマスタ１０１ａ，１０１ｂ，１０１ｃからのバス使用要求を受けると、アルゴリズムレジスタ１３０に設定されたラウンドロビン方式もしくは優先度固定方式によって、いずれかのバスマスタを選択しバスの使用を許可する。
【００２３】
次に、図２及び図３を用いて、本実施形態のアービタ１２０で用いられる調停アルゴリズム、すなわち、ＣＰＵ１がアルゴリズムレジスタ１３０に設定する調停アルゴリズムについて説明する。
【００２４】
図２は、調停アルゴリズムがラウンドロビン方式の場合の例である。図２（ａ）は、ラウンドロビン方式により各バスマスタが選択されバスの使用を許可される順番を示している。ラウンドロビン方式では、優先度レベルは全て等しく、同じ割合でバスの使用が許可される。すなわち、バスマスタ１０１ａ、１０１ｂ、１０１ｃの順に所定の単位ごとに繰り返し選択されてバスの使用が許可される。一例として、１つのデータ転送単位ごとに次のバスマスタが選択される。
【００２５】
図２（ｂ）は、ラウンドロビン方式によって調停が行われデータが転送される例を示している。例えば、バスマスタ１０１ａからデータＡの転送のためのバス使用要求が４回、バスマスタ１０１ｂからデータＢの転送のためのバス使用要求が４回、バスマスタ１０１ｃからデータＣの転送のためのバス使用要求が２回発生しているとする。ラウンドロビン方式では、バスマスタ１０１ａ，１０１ｂ，１０１ｃの順にバスの使用が許可され、データＡ，Ｂ，Ｃの順に転送される（Ｔ０〜Ｔ３）。さらに、バスマスタ１０１ａ〜１０１ｃまでバスの使用が許可されると、バスマスタ１０１ｃのデータＣの転送が終了する（Ｔ３〜Ｔ６）。その後、バスマスタ１０１ａ，１０１ｂにバスの使用が繰り返し許可されてデータＡ，Ｂが全て転送される（Ｔ６〜Ｔ１０）。図２（ｂ）に示すように、調停アルゴリズムをラウンドロビン方式とした場合には、各バスマスタから平均的にデータ転送され、データＡとデータＢは近いタイミング（Ｔ９とＴ１０）で転送が終了する。
【００２６】
図３は、調停アルゴリズムが優先度固定方式の場合の例である。図２（ａ）は、優先度固定方式によりバスの使用が許可される順番を示している。優先度固定方式では、それぞれ異なる優先度レベルが設定され、優先度の高いバスマスタが優先的にバスの使用を許可される。すなわち、優先度の最も高いバスマスタから選択され、そのバスマスタの処理が全て終わった後に、次の優先度のバスマスタが選択される。ここでは、バスマスタ１０１ａ、１０１ｂ、１０１ｃの順に優先度が低くなるように設定されている。尚、この優先度は、あらかじめアービタ１２０に設定されていてもよいし、ＣＰＵ１がアルゴリズムレジスタ１３０に設定してもよい。
【００２７】
図３（ｂ）は、優先度固定方式によって調停が行われデータが転送される例を示している。各バスマスタから発生するバス使用要求は、図２（ｂ）と同様である。優先度固定方式では、優先度の最も高いバスマスタ１０１ａにバスの使用が繰り返し許可されてデータＡの転送が終了する（Ｔ０〜Ｔ４）。そして、２番目の優先度のバスマスタ１０１ｂにバスの使用が繰り返し許可されてデータＢの転送が終了する（Ｔ４〜Ｔ８）。その後、３番目の優先度のバスマスタ１０１ｃにバスの使用が繰り返し許可されてデータＣの転送が終了する（Ｔ８〜Ｔ１０）。図３（ｂ）に示すように、調停アルゴリズムを優先度固定方式とした場合には、優先度の高いバスマスタから優先的にデータ転送が行われ、データＡが最も早く転送が終了する。ラウンドロビン方式では、図２（ｂ）のようにＴ９までにデータＡの転送が終了するが、優先度固定方式では、Ｔ４までにデータＡの転送が終了する。
【００２８】
次に、図４を用いて、システム制御部（調停アルゴリズム制御部）であるＣＰＵ１の機能ブロックについて説明する。図の各ブロックは、ＣＰＵ１のハードウェアもしくはハードウェアで実行されるソフトウェアによって構成される。例えば、ＣＰＵ１がメモリ４に格納されたプログラムにしたがって処理を行い、ハードウェアと協働することによって各ブロックの機能を実現している。
【００２９】
ＣＰＵ１は、図に示されるように、バス入出力部２１０、処理判定部２１１、アルゴリズム設定部２１２、処理実行部２１３を有している。
【００３０】
バス入出力部２１０は、バス１４０とデータの入出力を行う。バス１４０を使用する場合、まずアービタ１２０にバス使用要求を出力し、バスの使用を許可されるまで待った後、バス１４０を介しデータ転送を行う。
【００３１】
処理判定部２１１は、バス入出力部２１０によってメモリ４から実行するプログラムを取得し、これから実行しようとする処理について判定を行い、処理に適した調停アルゴリズムを決定する。
【００３２】
アルゴリズム設定部２１２は、処理判定部２１１が決定した調停アルゴリズム示す情報をアルゴリズムレジスタ１３０に設定する。
【００３３】
処理実行部２１３は、メモリ４から取得したプログラムの処理を実行する。例えば、プログラムにしたがって各種演算を行い、メモリ４とデータ転送を行ったり、ＤＭＡ２やＤＳＰ３の動作を制御したりする。
【００３４】
次に、図５のフローチャートを用いて、本実施形態にかかるバス制御システムのバス制御処理について説明する。例えば、携帯電話において、通話、テレビ電話、電子メール等の所定のアプリケーションプログラムがユーザによって起動されると、この処理が開始される。
【００３５】
ＣＰＵ１は、次のＳ４０１〜Ｓ４０４に示す動作を行う。まず、処理判定部２１１は、これから実行する処理を取得する（Ｓ４０１）。例えば、ユーザの操作に対応する処理のプログラムや必要なデータがメモリ４から処理判定部２１１に入力される。
【００３６】
次いで、処理判定部２１１は、Ｓ４０１で取得した処理に適した調停アルゴリズムを決定する（Ｓ４０２）。例えば、処理判定部２１１は、メモリ４から取得したプログラムやデータに基づいて、最適な調停アルゴリズムがラウンドロビン方式か優先度固定方式か決定する。この調停アルゴリズムの決定処理の詳細については後述する。
【００３７】
次いで、アルゴリズム設定部２１２は、Ｓ４０２で決定した調停アルゴリズムをアルゴリズムレジスタ１３０に設定する（Ｓ４０３）。例えば、アルゴリズム設定部２１２は、処理判定部２１１の決定した調停アルゴリズムがラウンドロビン方式の場合「０」をアルゴリズムレジスタ１３０に設定し、優先度固定方式の場合「１」をアルゴリズムレジスタ１３０に設定する。
【００３８】
次いで、処理実行部２１３は、Ｓ４０１で取得した処理を実行する（Ｓ４０４）。例えば、処理実行部２１３は、メモリ４から取得したプログラムやデータにしたがい処理を実行する。また、Ｓ４０３でアルゴリズムレジスタ１３０が設定されると、アービタ１２０は、設定された調停アルゴリズムによってバスを調停する（Ｓ４０５）。すなわち、図２や図３のように、アービタ１２０が調停を行い、各バスマスタによってデータの転送が行われる。
【００３９】
例えば、Ｓ４０４で処理が実行されると、ＣＰＵ１がメモリ４のデータを処理したり、ＤＭＡ２が外部データをメモリ４へ転送したり、ＤＳＰ３がメモリ４の音声データを変換したりするため、ＣＰＵ１，ＤＭＡ２，ＤＳＰ３は、バス使用要求をアービタ１２０へ出力する。そうすると、アービタ１２０は、アルゴリズムレジスタ１３０が「０」であればラウンドロビン方式によりバス使用要求を許可し、アルゴリズムレジスタ１３０が「１」であれば優先度固定方式によりバス使用要求を許可する。そして、許可された順にＣＰＵ１，ＤＭＡ２，ＤＳＰ３は、バス１４０を使用してメモリ４との間でデータ転送を行う。
【００４０】
次に、図６のフローチャートを用いて、図５のＳ４０２に示した調停アルゴリズムの決定処理について説明する。この処理は、ＣＰＵ１の処理判定部２１１が、実行する処理に適した調停アルゴリズムを決定する処理である。
【００４１】
まず、処理判定部２１１は、各バスマスタのバス使用パターンを取得する（Ｓ５０１）。例えば、処理判定部２１１は、どの調停アルゴリズムが処理に適しているかを判断するための要素として、処理パターン、すなわち、処理を実行する際に各バスマスタがバスを使用するパターンを取得する。バスの使用パターンとしては、例えば、バスを使用する確率や、転送するデータ量、データの転送頻度等である。その他、遅延が許容されるかどうかや、連続して転送する必要があるかどうか等のデータの性質等を含んでいてもよい。
【００４２】
次いで、処理判定部２１１は、Ｓ５０１で取得したバス使用パターンが、各バスマスタ間で均等／不均等か判定する（Ｓ５０２）。例えば、処理判定部２１１は、調停アルゴリズムを判定する基準として、バス使用パターンが均等／不均等か、すなわち、各バスマスタがほぼ等しいパターンでバスを使用するかどうか判定する。具体的には、各バスマスタのバス使用確率や転送データ量等がほぼ等しいかどうか判定する。
【００４３】
Ｓ５０２において、バス使用パターンが均等であると判定された場合、処理判定部２１１は、調停アルゴリズムをラウンドロビン方式に決定する（Ｓ５０３）。例えば、処理判定部２１１は、各バスマスタのバスを使用する確率等がほぼ等しい場合、すなわち、バスを各バスマスタで平均的に使用する処理の場合、調停アルゴリズムをラウンドロビン方式とする。具体的には、図２（ｂ）のように各バスマスタから同じ割合でデータ転送し、バスマスタ１０１ａのデータＡの転送終了がＴ９でもよい場合にラウンドロビン方式とする。
【００４４】
また、Ｓ５０２においてバス使用パターンが、不均等であると判定された場合、処理判定部２１１は、調停アルゴリズムを優先度固定方式に決定する（Ｓ５０４）。例えば、処理判定部２１１は、各バスマスタのバスを使用する確率等が異なる場合や、他のバスマスタよりも先にデータの転送が必要な場合、すなわち、バスを特定のバスマスタが優先的に使用する処理の場合、調停アルゴリズムを優先度固定方式とする。具体的には、図３（ｂ）のようにバスマスタ１０１ａから優先的にデータ転送し、バスマスタ１０１ａのデータＡの転送をＴ４までに終了させたい場合に優先度固定方式とする。
【００４５】
以上のように、本実施形態では、これから実行する処理に応じてレジスタを変更し、アービタの調停アルゴリズムを切り替える。各バスマスタで平均的に処理する場合にはラウンドロビン方式とし、特定のバスマスタを優先的に処理する場合には優先度固定方式とすることにより、処理の負荷に応じて動的に最適な調停アルゴリズムに変更することができる。例えば、携帯電話に本発明を適用すると、通話やテレビ電話、電子メール等のアプリケーションに適した調停アルゴリズムとすることができる。
【００４６】
従来例のように一つの調停アルゴリズムの中で優先度のみを切り替えるのではなく、調停アルゴリズム自体を切り替えることにより、バスを調停する順番の設定の自由度が高くなり、より適切な順番で調停が行われる。したがって、バスを効率よく使用することができるようになり、各バスマスタにおけるデータの転送待ちの時間を短縮することができる。その結果、バスの使用許可待ちによるオーバーラン／アンダーランの発生を大幅に低減することができる。また、バスマスタが、転送待ちのデータを格納するＦＩＦＯメモリを有している場合には、転送待ち時間が短縮することにより、このＦＩＦＯメモリ量を削減することも可能になる。
【００４７】
さらに、バスマスタに最も負荷がかかる時に使用する調停アルゴリズムを決定しておけば、バスが使用できる確率が求まるため、バスマスタに設けられるＦＩＦＯメモリ量を容易に見積もることができる。例えば、本発明の適用前に、バスマスタであるＤＭＡのバスの使用できる確立が最悪の条件のときに１／４であった場合、本発明によりＤＭＡ処理時は１／２の優先度方式を選択するようにすれば、半分のＦＩＦＯメモリ量で済むことになる。
【００４８】
また、データの転送待ち時間が短縮するため、各バスマスタの処理が終了する時間も早くなる。したがって、マルチプロセッサなどサブシステムを有する冗長構成のシステムでは、処理が終了したＣＰＵのクロックを停止し省電力モードに遷移させることにより消費電力を低減することができる。
【００４９】
さらに、従来例のようにハードウェアによりバスの使用状況を監視する方式では、監視回路が別途必要となるが、本実施形態では、ソフトウェア制御とすることにより、回路規模の増加を抑え、バスマスタの多い大規模なシステムでも容易に制御が可能である。
【００５０】
また、ハードウェア制御の場合、監視回路などにより、あらかじめ決められた条件を検出した場合しか制御することができず、バスマスタの最低スループットのみしか保障することができない。本実施形態では、あらかじめ処理の実行前に調停アルゴリズムを切り替えるため、監視回路が検出するまで待つことなく最適な方式でバスを調停できるため、よりバスの使用効率を向上することができる。
【００５１】
特に、本実施形態では、ハードウェアで制御するのではなくソフトウェアにより制御することにより、より柔軟な条件で制御することが可能となる。すなわち、最低スループットを保障すべき処理の場合には、これを満たすような調停アルゴリズムを選択し、他のバスマスタが長期間待てる処理の場合には、最高スループットを保障するような調停アルゴリズムを選択することが可能である。
【００５２】
発明の実施の形態２．
次に、本発明の実施の形態２にかかるバス制御システムについて説明する。本実施形態にかかるバス制御システムは、複数のバスマスタをグループ化し、グループ間やグループ内の調停アルゴリズムを実行する処理に基づいて切り替えることを特徴としている。
【００５３】
まずここで、実施の形態１と比較するために、バスマスタをグループ化した場合の調停アルゴリズムの簡単な例について説明する。図７は、図２，３と同様にバスマスタ１０１ａ、１０１ｂ、１０１ｃのバスの使用を調停する例である。
【００５４】
図７（ａ）は、バスマスタ１０１ａ〜１０１ｃを２つのグループにグループ化し調停する例である。ここでは、バスマスタ１０１ａをグループ１とし、バスマスタ１０１ｂ，１０１ｃをグループ２とする。本実施形態では、各グループの調停順番（バス使用要求を許可する順番）を決定するグループ間の調停アルゴリズムと、グループ内の各バスマスタの調停順番を決定するグループ内の調停アルゴリズムを設定する。例えば、グループ１とグループ２とを調停する調停アルゴリズムをラウンドロビン方式とし、バスマスタ１０１ｂとバスマスタ１０１ｃとを調停する調停アルゴリズムもラウンドロビン方式とする。この場合、グループ１、グループ２の順に繰り返し選択され、グループ１が選択されるとバスマスタ１０１ａにバスの使用が許可され、グループ２が選択されるとバスマスタ１０１ｂ、１０１ｃのいずれかが順に繰り返し選択されて、バスの使用が許可される。
【００５５】
図７（ｂ）は、図７（ａ）の調停アルゴリズムによってデータが転送される具体例である。各バスマスタから発生するバス使用要求は、図２（ｂ）と同様である。この方式では、バスマスタ１０１ａと、バスマスタ１０１ｂもしくは１０１ｃとが順に選択され、データＡ、Ｂ、Ａ、Ｃの順に転送される（Ｔ０〜Ｔ４）。続いて同様にデータＡ、Ｂ、Ａ、Ｃが転送されると、バスマスタ１０１ａ、１０１ｃのデータＡ、Ｃの転送が終了する（Ｔ４〜Ｔ８）。その後、バスマスタ１０１ｂが繰り返し選択されてデータＢの転送が終了する（Ｔ８〜Ｔ１０）。図２（ｂ），図３（ｂ）のように、ラウンドロビン方式ではＴ９までにデータＡの転送が終了し、優先度固定方式ではＴ４までにデータＡの転送が終了するが、図７（ｂ）のように、この方式では、Ｔ７までにデータＡの転送が終了する。したがって、実施の形態１の単純なラウンドロビン方式や優先度固定方式と比べて、実施の形態２では、処理に合わせてより詳細な調整が可能となる。
【００５６】
次に、図８を用いて、本実施形態にかかるバス制御システムのハードウェア構成について説明する。図８において、図１と同一の符号を付されたものは同様の要素であり、それらの説明を適宜省略する。
【００５７】
このバス制御システムは、図１の構成に加えて、バスマスタ１０２ａ，１０２ｂ，１０２ｃを備えており、各バスマスタはバス１４０に共通に接続されている。例えば、バスマスタ１０２ａは、バスマスタ１０１ａと同様にＣＰＵであり、バスマスタ１０２ｂは、バスマスタ１０１ｂと同様にＤＭＡであり、バスマスタ１０２ｃは、バスマスタ１０１ｃと同様にＤＳＰである。
【００５８】
この図は、６つのバスマスタを３つのグループにグループ化した例である。ここでは、バスマスタ１０１ａ，１０２ａをグループ１とし、バスマスタ１０１ｂ，１０２ｂをグループ２とし、バスマスタ１０１ｃ，１０２ｃをグループ３とする。このグループは、調停アルゴリズムを設定する単位であり、どのグループにどのバスマスタが属しているかどうかは、アービタ１２０にあらかじめ設定されていてもよいし、ＣＰＵがアルゴリズムレジスタ１３０に設定してもよい。
【００５９】
バスマスタ１０１ａは、実施の形態１と同様に、システム全体を制御するＣＰＵ１であり、機能ブロックも図４と同様である。また、バス制御処理についても図５と同様である。本実施形態では、ＣＰＵ１の各ブロックは、アルゴリズムレジスタ１３０に、グループ間の調停アルゴリズムとグループ内の調停アルゴリズムを設定する。すなわち、ＣＰＵ１は、グループ間の調停アルゴリズムとグループ内の調停アルゴリズムを切り替える調停アルゴリズム制御部である。
【００６０】
例えば、アルゴリズムレジスタ１３０に複数ビットのデータを設定するとして、１ビット目に、グループ間の調停アルゴリズムを示すランドロビン方式の「０」や優先度固定方式の「１」を設定し、２ビット目以降にグループごとに、グループ内の調停アルゴリズムを示すランドロビン方式の「０」や優先度固定方式の「１」を設定する。アービタ１２０は、設定された調停アルゴリズムにしたがって、グループ間のバスの使用順序を調停するとともにグループ内のバスマスタのバスの使用順序を調停する。例えば、アルゴリズムレジスタ１３０を参照し、１ビット目が「０」であれば、ラウンドロビン方式でグループ間の調停を行い、１ビット目が「１」であれば、優先度固定方式でグループ間の調停を行う。２ビット目以降の各ビットが「０」であれば、ラウンドロビン方式でそのグループ内の調停を行い、２ビット目以降の各ビットが「１」であれば、優先度固定方式でそのグループ内の調停を行う。
【００６１】
次に、図９〜図１２を用いて、本実施形態のアービタ１２０で用いられる調停アルゴリズム、すなわち、ＣＰＵ１がアルゴリズムレジスタ１３０に設定する調停アルゴリズムについて説明する。
【００６２】
図９は、グループ間の調停アルゴリズムをラウンドロビン方式とし、グループ内の調停アルゴリズムもラウンドロビン方式とした例である。図９（ａ）は、この調停アルゴリズムにしたがって、各バスマスタが選択されバスの使用を許可される順番を示している。この方式では、グループ間の優先度レベルが等しく、グループ内のバスマスタ間の優先度レベルも等しい。したがって、各グループで同じ割合でバスの使用が許可され、グループ内の各バスマスタでも同じ割合でバスの使用が許可される。
【００６３】
すなわち、この方式では、グループ１、グループ２、グループ３の順に繰り返し選択されて、各グループのバスマスタが一つずつ選択される。各グループが選択される毎に、グループのバスマスタのいずれかが順に選択されてバスの使用が許可される。
【００６４】
図９（ｂ）は、図９（ａ）の方式によって調停が行われデータが転送される例を示している。例えば、バスマスタ１０１ａ，１０２ａからデータＡ１，Ａ２の転送のためのバス使用要求がそれぞれ２回、バスマスタ１０１ｂ，１０２ｂからデータＢ１，Ｂ２の転送のためのバス使用要求がそれぞれ２回、バスマスタ１０１ｃ，１０２ｃからデータＣ１，Ｃ２を転送するためのバス使用要求がそれぞれ２回発生しているとする。
【００６５】
この方式では、グループ１からバスマスタ１０１ａ，グループ２からバスマスタ１０１ｂ，グループ３からバスマスタ１０１ｃの順に選択された後、グループ１からバスマスタ１０２ａ，グループ２からバスマスタ１０２ｂ，グループ３からバスマスタ１０２ｃの順に選択される。そうすると、データＡ１，Ｂ１，Ｃ１，Ａ２，Ｂ２，Ｃ２の順に転送される（Ｔ０〜Ｔ６）。同様に繰り返し選択されバスの使用が許可されて、データＡ１，Ｂ１，Ｃ１，Ａ２，Ｂ２，Ｃ２の順に転送され全てのデータ転送が終了する（Ｔ６〜Ｔ１２）。
【００６６】
図９（ｂ）に示すように、グループ間とグループ内の調停アルゴリズムをラウンドロビン方式とした場合には、各グループから平均的にデータ転送するとともに、グループ内の各バスマスタからも平均的にデータ転送することができる。この場合、グループ１〜３のデータＡ２，Ｂ２，Ｃ２が、近いタイミング（Ｔ１０〜Ｔ１２）で転送終了し、グループ１ではデータＡ１とＡ２が近いタイミングで転送終了する（Ｔ７とＴ１０）。
【００６７】
図１０は、グループ間の調停アルゴリズムを優先度固定方式とし、グループ内の調停アルゴリズムをラウンドロビン方式とした例である。図１０（ａ）は、この方式によりバスの使用が許可される順番を示している。この方式では、グループ間で異なる優先度レベルが設定され、グループ内のバスマスタ間での優先度レベルは等しい。したがって、グループ間では優先度の高いグループが優先的にバスの使用を許可され、グループ内では同じ割合でバスマスタにバスの使用が許可される。
【００６８】
すなわち、この方式では、優先度の最も高いグループから選択され、そのグループのバスマスタの処理が全て終わった後に、次の優先度のグループが選択される。各グループが選択されたとき、グループの各バスマスタが順に繰り返し選択されてバスの使用が許可される。ここでは、グループ１、グループ２、グループ３の順に優先度が低くなるように設定されているとする。
【００６９】
図１０（ｂ）は、図１０（ａ）の方式によって調停が行われデータが転送される例を示している。各バスマスタから発生するバス使用要求は、図９（ｂ）と同様である。この方式では、優先度の最も高いグループ１について、バスマスタ１０１ａ，１０２ａの順にバスの使用が繰り返し許可されてデータＡ１，Ａ２の転送が終了する（Ｔ０〜Ｔ４）。そして、２番目の優先度のグループ２について、バスマスタ１０１ｂ，１０２ｂの順にバスの使用が繰り返し許可されてデータＢ１，Ｂ２の転送が終了する（Ｔ４〜Ｔ８）。その後、３番目の優先度のグループ３について、バスマスタ１０１ｃ，１０２ｃにバスの使用が繰り返し許可されてデータＣ１，Ｃ２の転送が終了する（Ｔ８〜Ｔ１２）。
【００７０】
図１０（ｂ）に示すように、グループ間の調停アルゴリズムを優先度固定方式とし、グループ内の調停アルゴリズムをラウンドロビン方式とした場合には、優先度の高いグループから優先的にデータ転送が行われるとともに、グループ内の各バスマスタからは平均的にデータ転送することができる。この場合、グループ１のデータ転送が他のグループより早くＴ４までに終了し、グループ１ではデータＡ１とＡ２が近いタイミングで転送終了する（Ｔ３とＴ４）。
【００７１】
図１１は、グループ間の調停アルゴリズムをラウンドロビン方式とし、グループ内の調停アルゴリズムを優先度固定方式とした例である。図１１（ａ）は、この方式によりバスの使用が許可される順番を示している。この方式では、グループ間で優先度レベルが等しく、グループ内のバスマスタ間での優先度レベルが異なる。したがって、グループ間では同じ割合でバスの使用が許可され、グループ内では優先度の高いバスマスタが優先的にバスの使用を許可される。
【００７２】
すなわち、この方式では、グループ１、グループ２、グループ３の順に繰り返し選択されて、各グループのバスマスタが一つずつ選択される。各グループが選択される毎に、グループで優先度の高いバスマスタが選択され、優先度の高いバスマスタの処理が全て終わっている場合に、次の優先度のバスマスタが選択される。ここでは、グループ１はバスマスタ１０１ａ、１０２ａ、グループ２はバスマスタ１０１ｂ、１０２ｂ、グループ３はバスマスタ１０１ｃ、１０２ｃの順に優先度が低くなるように設定されているとする。
【００７３】
図１１（ｂ）は、図１１（ａ）の方式によって調停が行われデータが転送される例を示している。各バスマスタから発生するバス使用要求は、図９（ｂ）と同様である。この方式では、グループ１、グループ２、グループ３の順にバスマスタが選択される。そして、グループ１から優先度の高いバスマスタ１０１ａが１回ずつ選択され、グループ２から優先度の高いバスマスタ１０１ｂが１回ずつ選択され、グループ３から優先度の高いバスマスタ１０１ｃが１回ずつ選択されてバスの使用が許可され、データＡ１，Ｂ１，Ｃ１の転送が終了する（Ｔ０〜Ｔ６）。さらに、グループ１から優先度の低いバスマスタ１０２ａが１回ずつ選択され、グループ２から優先度の低いバスマスタ１０２ｂが１回ずつ選択され、グループ３から優先度の低いバスマスタ１０２ｃが１回ずつ選択されてバスの使用が許可され、データＡ２，Ｂ２，Ｃ２の転送が終了する（Ｔ６〜Ｔ１２）。
【００７４】
図１１（ｂ）に示すように、グループ間の調停アルゴリズムをラウンドロビン方式とし、グループ内の調停アルゴリズムを優先度固定方式とした場合には、各グループから平均的にデータ転送するとともに、グループ内の優先度の高いバスマスタから優先的にデータ転送することができる。この場合、グループ１〜３のデータＡ２，Ｂ２，Ｃ２が、近いタイミング（Ｔ１０〜Ｔ１２）で転送終了し、グループ１ではデータＡ２より早くＴ４でデータＡ１が転送終了する。
【００７５】
図１２は、グループ間の調停アルゴリズムを優先度固定方式とし、グループ内の調停アルゴリズムも優先度固定方式とした例である。図１２（ａ）は、この方式によりバスの使用が許可される順番を示している。この方式では、グループ間で優先度レベルが異なり、グループ内のバスマスタ間でも優先度レベルが異なる。したがって、グループ間では優先度の高いグループが優先的にバスの使用が許可され、グループ内でも優先度の高いバスマスタが優先的にバスの使用を許可される。
【００７６】
すなわち、この方式では、優先度の最も高いグループから選択され、そのグループのバスマスタの処理が全て終わった後に、次の優先度のグループが選択される。各グループが選択されたとき、グループで優先度の高いバスマスタが選択され、そのバスマスタの処理が全て終わった後に、次の優先度のバスマスタが選択される。ここでは、グループ１、グループ２、グループ３の順に優先度が低く、グループ１ではバスマスタ１０１ａ、１０２ａ、グループ２ではバスマスタ１０１ｂ、１０２ｂ、グループ３ではバスマスタ１０１ｃ、１０２ｃの順に優先度が低くなるように設定されているとする。
【００７７】
図１２（ｂ）は、図１２（ａ）の方式によって調停が行われデータが転送される例を示している。各バスマスタから発生するバス使用要求は、図９（ｂ）と同様である。この方式では、優先度の最も高いグループ１について、優先度の高いバスマスタ１０１ａが繰り返し選択されてデータＡ１の転送が終了した後、優先度の低いバスマスタ１０２ａが繰り返し選択されてデータＡ２の転送が終了する（Ｔ０〜Ｔ４）。そして、２番目の優先度のグループ２について、優先度の高いバスマスタ１０１ｂが繰り返し選択されてデータＢ１の転送が終了した後、優先度の低いバスマスタ１０２ｂが繰り返し選択されてデータＢ２の転送が終了する（Ｔ４〜Ｔ８）。その後、３番目の優先度のグループ３について、優先度の高いバスマスタ１０１ｃが繰り返し選択されてデータＣ１の転送が終了した後、優先度の低いバスマスタ１０２ｃが繰り返し選択されてデータＣ２の転送が終了する（Ｔ８〜Ｔ１２）。
【００７８】
図１２（ｂ）に示すように、グループ間とグループ内の調停アルゴリズムを優先度固定方式とした場合には、優先度の高いグループから優先的にデータ転送するとともに、グループ内の優先度の高いバスマスタから優先的にデータ転送することができる。この場合、グループ１のデータ転送が他のグループより早くＴ４までに終了し、グループ１ではデータＡ２より早くＴ２でデータＡ１が転送終了する。
【００７９】
尚、ここでは、グループ内の調停アルゴリズムは全てのグループで同じとしているが、グループごとに異なる調停アルゴリズムとしてもよい。また、１つのグループの中にさらに複数のグループ（サブグループ）を設けて階層構造とし、サブグループや階層ごとに調停アルゴリズムを設定してもよい。
【００８０】
次に、図１３のフローチャートを用いて、本実施形態にかかる調停アルゴリズムの決定処理について説明する。この処理は、図６と同様に図５のＳ４０２の処理であり、ＣＰＵ１の処理判定部２１１が、実行する処理に適した調停アルゴリズムを決定する処理である。尚、調停アルゴリズムを決定するための要素や基準等は実施の形態１と同様である。
【００８１】
まず、処理判定部２１１は、各バスマスタのバス使用パターンを取得する（Ｓ６０１）。ここでは、各バスマスタのバス使用パターンとともに、各グループのバス使用パターンを取得する。例えば、各バスマスタのバス使用確率や転送データ量等から、グループごとのバス使用確率や転送データ量等を求める。
【００８２】
次いで、処理判定部２１１は、Ｓ６０１で取得したバス使用パターンが、各グループ間で均等／不均等か判定する（Ｓ６０２）。処理判定部２１１は、バス使用パターンが均等である場合、グループ間の調停アルゴリズムをラウンドロビン方式に決定し（Ｓ６０３）、バス使用パターンが不均等である場合、グループ間の調停アルゴリズムを優先度固定方式に決定する（Ｓ６０４）。例えば、処理判定部２１１は、各グループのバス使用確率等がほぼ等しい場合、グループ間の調停アルゴリズムをラウンドロビン方式とする。具体的には、図９（ｂ）や図１１（ｂ）のように各グループから同じ割合でデータ転送し、グループ１のデータＡ１，Ａ２の転送終了がＴ１０でもよい場合にラウンドロビン方式とする。また、処理判定部２１１は、各グループのバス使用確率等が異なる場合、グループ間の調停アルゴリズムを優先度固定方式とする。具体的には、図１０（ｂ）や図１２（ｂ）のようにグループ１から優先的にデータ転送し、グループ１のデータＡ１，Ａ２の転送をＴ４までに終了させたい場合に優先度固定方式とする。
【００８３】
次いで、処理判定部２１１は、Ｓ６０１で取得したバス使用パターンが、各グループ内の各バスマスタ間で均等／不均等か判定する（Ｓ６０５）。処理判定部２１１は、バス使用パターンが均等である場合、グループ内の調停アルゴリズムをラウンドロビン方式に決定し（Ｓ６０６）、バス使用パターンが不均等である場合、グループ内の調停アルゴリズムを優先度固定方式に決定する（Ｓ６０７）。例えば、処理判定部２１１は、グループ内の各バスマスタでバス使用確率等がほぼ等しい場合、グループ内の調停アルゴリズムをラウンドロビン方式とする。具体的には、図９（ｂ）や図１０（ｂ）のようにグループ内に各バスマスタから同じ割合でデータ転送し、バスマスタ１０１ａのデータＡ１の転送終了がＴ７やＴ３でもよい場合にラウンドロビン方式とする。また、処理判定部２１１は、グループ内のバスマスタでバス使用確率等が異なる場合、グループ間の調停アルゴリズムを優先度固定方式とする。具体的には、図１１（ｂ）や図１２（ｂ）のようにグループ１でバスマスタ１０１ａから優先的にデータ転送し、バスマスタ１０１ａのデータＡ１の転送をＴ３やＴ４までに終了させたい場合に優先度固定方式とする。
【００８４】
尚、ここでは、グループ間の調停アルゴリズムを決定した後、グループ内の調停アルゴリズムを決定しているが、決定する順番はこれに限らない。例えば、グループ内の調停アルゴリズムを決定した後、グループ間の調停アルゴリズムを決定してもよいし、グループ間の調停アルゴリズムとグループ内の調停アルゴリズムとを同時に決定してもよい。
【００８５】
このように、本実施形態では、実行する処理に応じて調停アルゴリズムを切り替える際に、グループ間の調停アルゴリズムと、グループ内の調停アルゴリズムを切り替える。これにより、処理のパターンに、さらに適した調停アルゴリズムとすることができる。例えば、ある処理ではバスマスタ１０１ａ，１０２ａの負荷が重く、その他のバスマスタの負荷が軽い場合、グループ間の調停アルゴリズムを優先度固定方式としてグループ１が優先となるようにする。また、バスマスタ１０１ａ，１０２ａの負荷が重く、その他のバスマスタを平均的に処理させたい場合、グループ間の調停アルゴリズムを優先度固定方式とし、グループ内の調停アルゴリズムをラウンドロビン方式とする。したがって、実施の形態１より詳細な調整ができ、さらに効率よくバスの使用が可能になるため、バス待ち時間をより短縮することができる。
【００８６】
その他の発明の実施の形態．
尚、上述の例では、実行する処理に基づいて調停アルゴリズムを切り替えたが、実行する処理に基づいて同じ調停アルゴリズム内でバスマスタを選択する順序が切り替わるようにしてもよい。実行する処理に基づいて、優先度固定方式における各バスマスタや各グループの優先順位（優先度）を変更してもよい。例えば、バスを使用する確率が高いバスマスタの優先度が最も高くなるようにする。この場合、アルゴリズムレジスタ１３０には、調停アルゴリズムが優先度固定方式であることを示す情報と、各バスマスタや各グループの優先度を示す情報を格納し、アービタ１２０は、この優先度にしたがってバスを調停する。
【００８７】
また、実行する処理に基づいて、ラウンドロビン方式における各バスマスタや各グループの選択順序（調停順序）を変更してもよい。例えば、バスを使用する確率は同じだが、先に処理したいバスマスタやグループが先に選択されるようにする。この場合、アルゴリズムレジスタ１３０には、調停アルゴリズムがラウンドロビン方式であることを示す情報と、各バスマスタや各グループの選択順序を示す情報を格納し、アービタ１２０は、この選択順序にしたがってバスを調停する。
【００８８】
また、上述の例では、調停アルゴリズムとしてラウンドロビン方式と優先度固定方式とを切り替えたが、その他のアルゴリズムに切り替えてもよい。例えば、バスマスタをランダムに選択する方式や、単純にバス使用要求の発生した順番にバスマスタを選択する方式などでもよい。
【００８９】
また、上述の例では、これから実行する処理のパターン等をＣＰＵで判定して調停アルゴリズムを切り替えたが、あらかじめ処理に適した調停アルゴリズムを示すデータをメモリ４に記憶しておき、処理を開始する際に、処理内容を判定することなく、この記憶しておいたデータを参照しアルゴリズムレジスタに直接格納してもよい。例えば、携帯電話で通話ボタンをユーザが押したとすると、通話処理に対応する調停アルゴリズムをメモリから取得し、調停アルゴリズムを設定してもよい。
【００９０】
このほか、本発明の要旨を逸脱しない範囲で種々の変形、実施が可能である。
【図面の簡単な説明】
【００９１】
【図１】本発明にかかるバス制御システムの構成を示す構成図である。
【図２】本発明にかかる調停アルゴリズムを説明するための説明図である。
【図３】本発明にかかる調停アルゴリズムを説明するための説明図である。
【図４】本発明にかかるシステム制御部の構成を示すブロック図である。
【図５】本発明にかかるバス制御処理を示すフローチャートである。
【図６】本発明にかかる調停アルゴリズム決定処理を示すフローチャートである。
【図７】本発明にかかる調停アルゴリズムを説明するための説明図である。
【図８】本発明にかかるバス制御システムの構成を示す構成図である。
【図９】本発明にかかる調停アルゴリズムを説明するための説明図である。
【図１０】本発明にかかる調停アルゴリズムを説明するための説明図である。
【図１１】本発明にかかる調停アルゴリズムを説明するための説明図である。
【図１２】本発明にかかる調停アルゴリズムを説明するための説明図である。
【図１３】本発明にかかる調停アルゴリズム決定処理を示すフローチャートである。
【図１４】従来のバス制御システムの構成を示す構成図である。
【符号の説明】
【００９２】
１  ＣＰＵ
２  ＤＭＡ
３  ＤＳＰ
１０１ａ〜１０１ｃ  バスマスタ
１０２ａ〜１０２ｃ  バスマスタ
１１０  バススレーブ
１２０  アービタ
１３０  アルゴリズムレジスタ
１４０  バス
２１０  バス入出力部
２１１  処理判定部
２１２  アルゴリズム設定部
２１３  処理実行部
【図１】
2007026021.tif 000003
【図２】
2007026021.tif 000004
【図３】
2007026021.tif 000005
【図４】
2007026021.tif 000006
【図５】
2007026021.tif 000007
【図６】
2007026021.tif 000008
【図７】
2007026021.tif 000009
【図８】
2007026021.tif 000010
【図９】
2007026021.tif 000011
【図１０】
2007026021.tif 000012
【図１１】
2007026021.tif 000013
【図１２】
2007026021.tif 000014
【図１３】
2007026021.tif 000015
【図１４】
2007026021.tif 000016