(57)【要約】【課題】複数のバスマスタによるバスの使用を、複数のタイムスロットからなるタイムテーブルに基づいて制御するバス制御方法及びバス制御装置において、データ転送の効率をさらに向上させることができる制御方法及びバス制御装置を提供する。【解決手段】複数のバスマスタにはそれぞれ優先順位付けを行い、複数のタイムスロットをこの優先順位に応じた個数でバスマスタに割り当てる。さらに、タイムスロットが割り当てられたバスマスタがバスの使用を要求しない場合には、そのバスマスタ以外のバスマスタであって、優先順位の最も高いバスマスタにバスを使用させるとともに、バスの使用を要求しなかったバスマスタの優先順位を上げる。【選択図】図２
2005210567.tif 000002
【特許請求の範囲】
【請求項１】
優先順位を付けた複数のバスマスタによるバスの使用を、複数のタイムスロットからなるタイムテーブルに基づいて制御するバス制御方法において、
前記複数のタイムスロットを、前記優先順位に応じた個数で前記バスマスタに割り当てることを特徴とするバス制御方法。
【請求項２】
前記タイムスロットが割り当てられた前記バスマスタがバスの使用を要求しない場合には、そのバスマスタ以外のバスマスタであって、前記優先順位の最も高いバスマスタにバスを使用させるとともに、バスの使用を要求しなかったバスマスタの優先順位を上げることを特徴とする請求項１記載のバス制御方法。
【請求項３】
前記優先順位を上げた前記バスマスタが、その後、バスを使用した場合に、そのバスマスタの優先順位を下げることを特徴とする請求項２記載のバス制御方法。
【請求項４】
前記バスマスタによる前記バスの使用履歴に基づいて前記タイムテーブルを更新することを特徴とする請求項２または請求項３に記載のバス制御方法。
【請求項５】
優先順位を付けた複数のバスマスタによるバスの使用を、複数のタイムスロットからなるタイムテーブルに基づいて制御するバス調停回路を有するバス制御装置において、
前記バス調停回路は、前記複数のタイムスロットを、前記優先順位に応じた個数で前記バスマスタに割り当てるように構成したことを特徴とするバス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタを接続したバスを時分割して共用するバス制御方法及びバス制御装置に関するものである。
【背景技術】
【０００２】
従来、複数のバスマスタを接続したバスにおいて、各バスマスタがバスを時分割しながらデータ転送を行う場合には、バス調停回路に設けたタイマモジュールのタイムスロットに基づいて所定時間ごとに各バスマスタへの使用の許可を切り替え、許可されたバスマスタのデータ転送を実行させるようにしたバス制御方法が知られている（例えば、特許文献１参照。）。
【特許文献１】特表２００１−５１６１００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、タイムスロットに基づいてバスの使用が許可されるバスマスタを所定時間ごとに順次切り替えた場合には、重要度及び優先度の異なるデータ転送がそれぞれ画一的に実行されることによって、重要なデータが分割されて転送されたり、優先度の高いデータ転送の途中において優先度の低いデータ転送が実行されたりすることになり、データ転送の効率が低下するおそれがあった。
【課題を解決するための手段】
【０００４】
そこで、本発明のバス制御方法では、優先順位を付けた複数のバスマスタによるバスの使用を、複数のタイムスロットからなるタイムテーブルに基づいて制御するバス制御方法において、複数のタイムスロットを、優先順位に応じた個数でバスマスタに割り当てることとした。
【０００５】
さらに、以下の点にも特徴を有するものである。すなわち、
（１）タイムスロットが割り当てられたバスマスタがバスの使用を要求しない場合には、そのバスマスタ以外のバスマスタであって、優先順位の最も高いバスマスタにバスを使用させるとともに、バスの使用を要求しなかったバスマスタの優先順位を上げること。
（２）優先順位を上げたバスマスタが、その後、バスを使用した場合に、そのバスマスタの優先順位を下げること。
（３）バスマスタによるバスの使用履歴に基づいてタイムテーブルを更新すること。
【０００６】
また、本発明のバス制御装置では、優先順位を付けた複数のバスマスタによるバスの使用を、複数のタイムスロットからなるタイムテーブルに基づいて制御するバス調停回路を有するバス制御装置において、複数のタイムスロットを、優先順位に応じた個数でバスマスタに割り当てるようにバス調停回路を構成した。
【発明の効果】
【０００７】
請求項１記載の発明によれば、優先順位を付けた複数のバスマスタによるバスの使用を、複数のタイムスロットからなるタイムテーブルに基づいて制御するバス制御方法において、複数のタイムスロットを、優先順位に応じた個数でバスマスタに割り当てることによって、優先順位の高いバスマスタによるバスの使用時間を向上させてデータ転送の効率を向上させることができ、場合によっては一つのバスマスタに連続してタイムスロットを割り当てることにより、可変長のタイムスロットとすることができるので、データ転送のさらなる効率向上を図ることができる。
【０００８】
請求項２記載の発明によれば、タイムスロットが割り当てられたバスマスタがバスの使用を要求しない場合には、そのバスマスタ以外のバスマスタであって、優先順位の最も高いバスマスタにバスを使用させることによって、バスの使用効率を向上させてデータ転送の効率を向上させることができる。しかも、バスの使用を要求しなかったバスマスタに対してはその優先順位を上げることによって、次にバスの使用が可能となる機会を得られやすくすることができる。
【０００９】
特に、タイムスロットでバスの使用が割り当てられているにもかかわらず、バスの使用を要求しないことがあるバスマスタは、優先順位が比較的低いためにバスの使用が割り当てられる頻度が少なくなっているので、このように優先順位が低いバスマスタにおいてはバスが長時間使用できなくなるおそれがあるが、バスの使用を要求しなかったバスマスタに対してはその優先順位を上げることによって比較的速やかにそのバスマスタによるバスの使用の機会を与えることができるので、データ転送が長時間実施されないことが生じるおそれを解消できる。
【００１０】
請求項３記載の発明によれば、優先順位を上げたバスマスタが、その後、バスを使用した場合に、そのバスマスタの優先順位を下げることによって、もともと優先順位が低いバスマスタに高い優先順位を与えておくことによる不具合、すなわち、優先順位の変更にともなって優先順位が下げられたバスマスタによるバスの使用機会が低減するという不具合が生じることを抑制して、データ転送の効率化を図ることができる。
【００１１】
請求項４記載の発明によれば、バスマスタによるバスの使用履歴に基づいてタイムテーブルを更新することによって、データ転送をより効率的に実施できるタイムテーブルを自動的に生成することができる。特に、各バスマスタの実質的な処理の発生に対応したタイムテーブルを生成することができるので、データ転送の効率をさらに向上させることができる。
【００１２】
請求項５記載の発明によれば、優先順位を付けた複数のバスマスタによるバスの使用を、複数のタイムスロットからなるタイムテーブルに基づいて制御するバス調停回路を有するバス制御装置において、複数のタイムスロットを、優先順位に応じた個数でバスマスタに割り当てるようにバス調停回路を構成したことによって、請求項１記載の発明と同様に、優先順位の高いバスマスタによるバスの使用時間を向上させてデータ転送の効率を向上させることができ、場合によっては一つのバスマスタに連続してタイムスロットを割り当てることにより、可変長のタイムスロットとすることができるので、データ転送のさらなる効率向上を図ることができる。
【発明を実施するための最良の形態】
【００１３】
本発明のバス制御方法及びバス制御装置は、複数のバスマスタによる１つのバスの使用を、複数のタイムスロットからなるタイムテーブルに基づいて制御するバス制御方法及びバス制御装置であって、複数のバスマスタにはそれぞれ優先順位付けを行っておき、この優先順位に応じた個数で複数のタイムスロットにバスマスタに割り当てているものである。
【００１４】
すなわち、優先順位の高いバスマスタでは、そのバスマスタに割り当てたタイムスロットのタイムテーブルにおける出現回数を多くする一方で、優先順位の低いバスマスタでは、そのバスマスタに割り当てたタイムスロットのタイムテーブルにおける出現回数を少なくして、優先順位の高いバスマスタによるバスの使用機会を多くすることによって、データ転送の効率を向上させているものである。
【００１５】
特に、タイムテーブルにおいて優先順位の高いバスマスタを割り当てたタイムスロットの数を多くした場合には、連続するタイムスロットに同じバスマスタを割り当てることによって可変長のタイムスロットとすることができるので、分割して実行することが望ましくないデータ転送を実行する際に、分割することなくデータ転送を実行することができ、データ転送のさらなる効率向上を図ることができる。
【００１６】
また、タイムスロットが割り当てられたバスマスタがバスの使用を要求しなかった場合には、そのバスマスタ以外のバスマスタであって、優先順位の最も高いバスマスタにバスを使用させるようにしている。
【００１７】
したがって、バスが使用されない状況が発生することを抑制することができ、バスの使用効率を向上させてデータ転送の効率を向上させることができる。
【００１８】
しかも、タイムスロットが割り当てられたバスマスタがバスの使用を要求しなかった場合には、そのバスマスタの優先順位を上げるようにしている。
【００１９】
したがって、バスが使用できる時にたまたまデータ転送の要求がないことによって他のバスマスタにバスを使用させたバスマスタに対して、バスの使用機会を得られやすくすることができる。
【００２０】
特に、このようにタイムテーブルに基づいてバスが使用できる時にデータ転送の要求がないことがあるバスマスタは優先順位が比較的低いために、そのバスマスタに次にタイムスロットが割り当てられるまでの時間が比較的長くなっているので、このようにバスの使用を要求しなかったバスマスタの優先順位を上げることによって比較的速やかにそのバスマスタによるバスの使用の機会を与えることができるので、データ転送が長時間実施されないことが生じるおそれを解消できる。
【００２１】
また、このように優先順位を上げたバスマスタが、その後、バスを使用した場合には、そのバスマスタの優先順位を下げるようにしている。すなわち、バスマスタの優先順位を上げたことによって相対的に優先順位が下がったバスマスタは、優先順位が上げられたバスマスタよりも基本的には優先順位が上位であるので、優先順位を上げたバスマスタによるデータ転送が実行された後は、優先順位を下げたバスマスタの優先順位を上げることによって多い頻度でバスを使用可能となり、データ転送の効率向上を図ることができる。
【００２２】
このように、バスの使用はタイムテーブルに基づいて画一的に行われるのではなく、各バスマスタからの使用要求に対して優先順位に基づいて使用許可を行うことにより、バスのデッドロックを防止できるとともに、所要のデータ転送を所要の時間内に完了させることができる。
【００２３】
さらに、各タイムスロットにおいて実際にバスの使用が許可されたバスマスタの履歴を適宜の記憶手段において記憶し、この記憶した使用履歴情報に基づいてタイムテーブル更新手段でタイムテーブルを逐次更新した場合には、データ転送をより効率的に実施できるタイムテーブルを自動的に生成することができる。
【００２４】
以下において、図面に基づいてバス制御装置の実施形態を説明する。図１は、本実施形態のバス制御装置のブロック図であって、本実施形態では、第１バスマスタM-Aと、第２バスマスタM-Bと、第３バスマスタM-Cと、第４バスマスタM-Dの４つのバスマスタが存在して、それぞれバスＢと接続して、バスＢを使用しているものとする。バスマスタの数は、４つに限定するものではなく、それ以上であってもよいし、それ以下であってもよい。
【００２５】
本実施形態ではバスＢに複数のスレーブS1,S2,S3,S4,S5を接続して、各バスマスタからの命令に基づいて、異なるスレーブ間でデータ転送を行っているものとする。
【００２６】
各バスマスタはそれぞれバス調停回路Ａと接続し、各バスマスタからバス調停回路Ａに対してバスＢの使用要求信号Ｒを出力するとともに、バス調停回路Ａからいずれ一つのバスマスタに対して選択的に使用許可信号Ｇを出力するようにしている。
【００２７】
バス調停回路Ａには、主制御部A-10と、タイマモジュール部A-20と、制御用モジュール部A-30とを設けており、主制御部A-10では、各バスマスタから送信されてきた使用要求信号Ｒを受信して、タイマモジュール部A-20に設けたタイムテーブルを参照するとともに、制御用モジュール部A-30に設けた優先順位テーブルを参照してバスＢの使用を許可するバスマスタを選択し、そのバスマスタに対して使用許可信号Ｇを出力している。
【００２８】
タイマモジュール部A-20には、本実施形態では、フリーランカウンタA-21と、プログラム可能なコンペアマッチレジスタ群A-22を設けてタイムテーブルを構成している。
【００２９】
制御用モジュール部A-30には、優先順位テーブルを記憶した優先順位情報用メモリA-31、及びバス権取得履歴記憶用メモリA-32等の記憶手段を設けている。
【００３０】
バス調停回路Ａには、図示しないＲＯＭ（Read Only Memory）等に格納されたプログラムからなるソフトウェア、あるいはそれ以外のソフトウェア等からの命令が入力されることにより各バスマスタの優先順位が決定され、この優先順位情報からなる優先順位テーブルを生成して優先順位情報用メモリA-31で記憶している。
【００３１】
以下において、図２のフローチャートに基づいて、バス調停回路Ａによる制御について説明する。なお、本実施形態では、説明の便宜上、第１バスマスタM-A、第２バスマスタM-B、第３バスマスタM-C、第４バスマスタM-Dの順で優先順位が高いものとする。
【００３２】
バス調停回路Ａは、処理の開始にともなって、上記したソフトウェア等に基づいて各バスマスタの優先順位を指定する優先順位テーブルを生成して優先順位情報用メモリA-31で記憶している（ステップT1）。
【００３３】
次いで、バス調停回路Ａは、設定された優先順位テーブルに基づいて、所要の数のタイムスロットからなるタイムテーブルに対して、優先順位に応じた個数で複数のタイムスロットをバスマスタに割り当てて、タイムテーブルを生成する（ステップT2）。
【００３４】
すなわち、このタイムテーブルは、最優先でバスの使用が許可されるバスマスタを割り当てているものであり、特に、図３のタイムテーブルに示すように、優先順位が高いバスマスタにはより多くのタイムスロットが割り当てられるようにしており、優先順位が低いバスマスタにはタイムスロットが少なく割り当てられるようにしている。
【００３５】
したがって、優先順位の高いバスマスタによるバスＢの使用機会を多くすることができ、データ転送の効率を向上させることができる。
【００３６】
ここで、タイムテーブル中のタイムスロットの数はＮ個としている。また、図３中、「<A>」はそのタイムスロットにおいて第１バスマスタM-Aを最優先バスマスタとしていることを示しており、「<B>」はそのタイムスロットにおいて第２バスマスタM-Bを最優先バスマスタとしていることを示しており、「<C>」はそのタイムスロットにおいて第３バスマスタM-Cを最優先バスマスタとしていることを示しており、「<D>」はそのタイムスロットにおいて第４バスマスタM-Dを最優先バスマスタとしていることを示している。
【００３７】
また、図３において、タイムテーブルの下方には、各タイムスロットにおいて優先順位の高い順にバスマスタを並べて示しており、「M-A」は第１バスマスタM-A、「M-B」は第２バスマスタM-B、「M-C」は第３バスマスタM-C、「M-D」は第４バスマスタM-Dを示している。特に、「(M-A)」「(M-B)」「(M-C)」「(M-D)」は、第１バスマスタM-A、第２バスマスタM-B、第３バスマスタM-C、第４バスマスタM-Dがそれぞれ使用要求信号Ｒを出力していることを示しており、「M-C」「M-D」は、第３バスマスタM-C、第４バスマスタM-Dがそれぞれ使用要求信号Ｒを出力していないことを示している。本実施形態では、説明の便宜上、第１バスマスタM-A及び第２バスマスタM-Bは常に使用要求信号Ｒを出力し、第３バスマスタM-C及び第４バスマスタM-DはバスＢの使用が必要となったときに使用要求信号Ｒを出力するようにしている。
【００３８】
バス調停回路Ａは、まず、タイムスロットをカウントするカウンタの値を「１」として（ステップT3）、１番目のタイムスロットに割り当てられた最優先バスマスタを確認し（ステップT4）、その最優先バスマスタからバスＢの使用要求信号Ｒが出力されているかを確認する（ステップT5）。
【００３９】
図３では、１番目のタイムスロットにおいて第１バスマスタM-Aを最優先バスマスタとしており、第１バスマスタM-AからバスＢの使用要求信号Ｒが出力されている場合には、バス調停回路Ａは第１バスマスタM-Aに対して使用許可信号Ｇを出力し（ステップT6）、最優先バスマスタである第１バスマスタM-Aにデータ転送を実行させている。また、このようにしてバスＢを使用したバスマスタの使用履歴をバス権取得履歴記憶用メモリA-32に逐次記憶する（ステップT7）。
【００４０】
次いで、バス調停回路Ａは、タイムスロットがタイムテーブルの最終端に達したかどうかを判別し（ステップT8）、タイムスロットがタイムテーブルの最終端に達していない場合にはタイムスロットをカウントするカウンタの値をインクリメントして（ステップT9）、次のタイムスロットに割り当てられた最優先バスマスタを確認して（ステップT4）、その最優先バスマスタに使用要求信号Ｒを出力するかどうかを逐次判別していく。
【００４１】
一方、ステップT5において、最優先バスマスタがバスＢの使用要求信号Ｒを出力していない場合には、バス調停回路Ａは、最優先バスマスタ以外のバスマスタであって、次に優先順位の高いバスマスタを確認し、そのバスマスタからバスＢの使用要求信号Ｒが出力されているかを確認する（ステップT10）。
【００４２】
そして、そのバスマスタがバスＢの使用要求信号Ｒを出力している場合には、バス調停回路Ａはそのバスマスタに対して使用許可信号Ｇを出力し（ステップT11）、そのバスマスタにバスＢを使用させ、バスＢを使用したバスマスタの使用履歴をバス権取得履歴記憶用メモリA-32に逐次記憶する（ステップT12）。
【００４３】
このように、最優先バスマスタがバスＢを使用しない場合に、他のバスマスタにバスＢを使用させることによって、バスＢが使用されない状況が発生することを抑制することができ、バスＢの使用効率を向上させてデータ転送の効率を向上させることができる。
【００４４】
さらに、バス調停回路Ａは、最優先バスマスタとされていたバスマスタの優先順位を上げる処理を行って、優先順位テーブルを変更するようにしている（ステップT13）。
【００４５】
図３を用いて具体的に説明すると、８番目のタイムスロットにおいては第４バスマスタM-Dを最優先バスマスタとしているにも関わらず、この第４バスマスタM-Dがバス調停回路Ａに対して使用要求信号Ｒを出力していないので、バス調停回路Ａは８番目のタイムスロットにおいて次に優先順位が高く、使用要求信号Ｒを出力している第１バスマスタM-Aに使用許可信号Ｇを出力してバスＢを使用させるようにしている。
【００４６】
したがって、８番目のタイムスロットにおいて実質的にバスＢを使用しているのは、第１バスマスタM-Aとなっている。そして、バス権取得履歴記憶用メモリA-32には、８番目のタイムスロットでは第１バスマスタM-AがバスＢを使用したと記憶する。
【００４７】
さらに、バス調停回路Ａは、このように第４バスマスタM-DがバスＢを優先的に使用できるにもかかわらずバスＢを使用しなかった場合に、この第４バスマスタM-Dの優先順位を上げている。本実施形態では、第４バスマスタM-Dの優先順位を１つだけ繰り上げ、そのかわり第３バスマスタM-Cの優先順位を１つ繰り下げており、その情報は優先順位情報用メモリA-31に記憶するようにしている。図３においては、優先順位が上げられた第４バスマスタM-Dを「m-d」と表示している。本実施形態では、優先順位を１つだけ繰り上げるようにしているが、最優先とするようにしてもよいし、優先順位を２つ繰り上げるようにしてもよい。
【００４８】
このように、バスＢを使用する機会が与えられていたにもかかわらず、使用要求信号Ｒの出力を行っていないことによりバスＢの使用権が他のバスマスタに譲られたバスマスタの優先順位を上げておくことによって、そのバスマスタの優先順位を比較的上位として、バスＢの使用の機会が与えられる可能性を向上させることができる。
【００４９】
図３の場合であれば、第４バスマスタM-Dの優先順位を繰り上げた後に、第１バスマスタM-Aと第２バスマスタM-BとがバスＢを使用しない場合には、第４バスマスタM-Dが優先的にバスＢを使用することができる。
【００５０】
したがって、通常、バスＢを使用する機会が与えられていたにもかかわらず、使用要求信号Ｒの出力を行っていないことによりバスＢの使用権を他のバスマスタに譲るバスマスタは、基本的に優先順位が低いことによって、そのバスマスタに割り当てられるタイムスロットの数も少なく、バスＢの使用に必要性が生じた場合に長時間待機状態となる可能性があるが、上記したようにバスＢの使用権を他のバスマスタに譲った場合にはそのバスマスタの優先順位を上げることによって、バスＢの使用待機状態の時間を短くすることができる。
【００５１】
このように、優先順位を上げたバスマスタは、そのバスマスタがバスＢを使用した場合に優先順位を下げるようにしている。
【００５２】
図３を用いて具体的に説明すると、まず、１０番目のタイムスロットにおいて第４バスマスタM-Dは使用要求信号Ｒの出力を開始して、１３番目のタイムスロットにおいて第４バスマスタM-Dが最優先バスマスタとなることによって、第４バスマスタM-DがバスＢを使用することができる。
【００５３】
このように第４バスマスタM-DがバスＢを使用すると、バス調停回路Ａは第４バスマスタM-Dの優先順位を１つだけ繰り下げ、そのかわり第３バスマスタM-Cの優先順位を１つ繰り上げて、元の優先順位に戻している。
【００５４】
なお、一度繰り上げたバスマスタの優先順位を繰り下げる場合には、例えば、優先順位の繰り上げは２段階の繰り上げとして、繰り下げは１段階ずつ２回に分けて繰り下げるようにすることもでき、適宜の繰り上げ方及び繰り下げ方を用いてもよい。
【００５５】
このように、優先順位の繰り上げを行ったバスマスタに対しては、そのバスマスタによるバスＢの使用後に優先順位を繰り下げることによって、優先順位の繰り上げにともなって繰り下げられたバスマスタの優先順位を上げることにより、基本的に優先順位の高いバスマスタによるバスＢの使用機会を増加させることができ、データ転送の効率向上を図ることができる。
【００５６】
上記したように、各タイムスロットに基づいて所定のバスマスタにバスＢを順次使用させて、タイムテーブルの最終端のタイムスロットによる処理が終了すると（ステップT8）、バス調停回路Ａは、優先順位情報用メモリA-31及びバス権取得履歴記憶用メモリA-32に基づいてタイムテーブルを更新する（ステップT14）。
【００５７】
そして、タイムテーブルの更新後も処理が継続される場合には、ステップT3に戻って、更新されたタイムテーブルに基づいて処理を続行するようにしている（ステップT15）。
【００５８】
このように、タイムテーブルを優先順位情報用メモリA-31及びバス権取得履歴記憶用メモリA-32に基づいて更新することによって、データ転送をより効率的に実施できるタイムテーブルを自動的に生成することができる。
【００５９】
図３では、タイムテーブルの更新の簡単な例として、バス権取得履歴記憶用メモリA-32に基づいて更新した例を示しており、８番目のタイムスロットにおいては第１バスマスタM-Aを最優先バスマスタとして更新し、１３番目のタイムスロットにおいては第４バスマスタM-Dを最優先バスマスタとして更新し、１７番目のタイムスロットにおいては第１バスマスタM-Aを最優先バスマスタとして更新したものである。
【図面の簡単な説明】
【００６０】
【図１】本発明にかかるバス制御装置の概略説明図である。
【図２】本発明にかかるバス制御方法を説明するフローチャートである。
【図３】優先順位変更の説明図である。
【符号の説明】
【００６１】
Ａ    バス調停回路
A-10  主制御部
A-20  タイマモジュール部
A-30  制御用モジュール部
A-21  フリーランカウンタ
A-22  コンペアマッチレジスタ群
A-31  優先順位情報用メモリ
A-32  バス権取得履歴記憶用メモリ
Ｂ    バス
M-A   第１バスマスタ
M-B   第２バスマスタ
M-C   第３バスマスタ
M-D   第４バスマスタ
S1    スレーブ
S2    スレーブ
S3    スレーブ
S4    スレーブ
S5    スレーブ
Ｒ    使用要求信号
Ｇ    使用許可信号
【図１】
2005210567.tif 000003
【図２】
2005210567.tif 000004
【図３】
2005210567.tif 000005