(57)【要約】【課題】優先度が高いタスクを実行する装置に、より効率的にバスが割り当てられるようにバスの使用率を定義したテーブルを作成し、テーブルに従ってバスの調停を行うことにより、優先度の高いタスクの実行時間を短縮できるバス調停方法及びバス調停プログラムを提供する。【解決手段】バスに接続された複数の装置によって複数のタスクを実行可能なコンピュータにおける前記バスの調停を行うバス調停方法であって、所定のタイミングで、前記複数のタスクの各々の優先度を含むタスク情報を取得する工程と、前記タスク情報に基づいて、前記優先度の高いタスクを実行する装置に優先的に前記バスが割り当てられるように前記複数の装置の各々のバス使用条件を定義したバス使用条件情報を生成する工程と、前記バス使用条件情報に基づいて前記バスの調停を行う工程とを含む。【選択図】図３
2007072598.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続された複数の装置によって複数のタスクを実行可能なコンピュータにおける前記バスの調停を行うバス調停方法であって、
前記コンピュータが、所定のタイミングで、前記複数のタスクの各々の優先度と、前記複数のタスク毎の実行に必要な装置毎の前記タスクの実行に使用される割合を示す使用率とを含むタスク情報を取得する工程と、
前記コンピュータが、前記優先度と前記使用率とに基づいて、前記優先度の高いタスクの実行に必要な装置に優先的に前記バスが割り当てられるように前記複数の装置の各々のバス使用条件を定義したバス使用条件情報を作成する工程と、
前記コンピュータが、前記バス使用条件情報にしたがって前記バスの調停を行う工程とを含むバス調停方法。
【請求項２】
請求項１記載のバス調停方法であって、
前記優先度が、前記タスクの実行に際して単位時間当たりに起動すべきバスサイクル数で定義され、
前記バス使用条件情報を作成する工程では、前記バスサイクル数と前記使用率とから、前記複数の装置毎に、前記複数のタスクの前記バスサイクル数の総和であるに対する前記装置が前記単位時間当たりに起動すべきバスサイクル数の比率であるバス使用率を算出し、前記バス使用率と、前記複数の装置の各々が前記バスを使用する際に最低限起動することのできるバスサイクルの数である最小バスサイクル数とから、前記装置に割り当てられた１回の前記バスの使用に際して前記装置が起動することのできる最大のバスサイクルの数である連続使用バスサイクル数を算出し、前記連続使用バスサイクル数を用いて前記バス使用条件情報を作成するバス調停方法。
【請求項３】
請求項１又は２記載のバス調停方法であって、
前記コンピュータが、前記複数の装置からの前記バスの使用要求の有無を判定する工程を含み、
前記バスの調停を行う工程では、前記バスの使用要求が無いと判定した装置には前記バスを割り当てないようにするバス調停方法。
【請求項４】
請求項１〜３のいずれか記載のバス調停方法であって、
前記所定のタイミングが、前記優先度が変更されたタイミングであるバス調停方法。
【請求項５】
請求項１〜３のいずれか記載のバス調停方法であって、
前記コンピュータが、前記取得したタスク情報に含まれる前記優先度を、前記タスク情報を取得した時点で実行されているタスクが最も高くなるように設定する工程を含むバス調停方法。
【請求項６】
コンピュータに、請求項１〜５のいずれか記載のバス調停方法の各工程を実行させるためのバス調停プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスに接続された複数の装置により複数のタスクを実行するコンピュータのバス調停方法及びバス調停プログラムに関するもので、リアルタイム・マルチタスクＯＳとして利用されるものである。
【背景技術】
【０００２】
ＣＰＵを含む入出力処理装置では、マルチタスクの場合、一般に優先度の高いタスクから順番に処理が実行される。ところが、実際には、ＣＰＵと各装置を接続するバスが他の処理により使用されていて、目的のタスクが優先的に処理されず、当該タスクの実行を待機しなければならないことがある。
【０００３】
従来の入出力処理装置の中には、本来処理されるべきタスクの代わりに、実行しやすいその他のタスクを適切に割り当て、現在使用中のバスを継続的に利用することにより処理効率の向上を図る装置がある（例えば、特許文献１参照）。
【０００４】
全体としての処理効率が向上することは好ましいが、その一方で、バスの割り当てにより、優先度の最も高いタスクが迅速に実行されない場合があることは問題であった。
【０００５】
【特許文献１】特開平５−２３３５２５号公報  第２頁〜第５頁  図１
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これは、タスクの優先順位だけでは、タスクの実行に使用する装置に対するバスの割り当てが優先度の高いタスクに対して適切に行われないことに起因すると考えられる。つまり、優先度の高いタスクを実行する装置に優先的にバスが割り当てられるようにバスの調停を行えば、優先度の高いタスクが実行されるまでの時間を短縮できることが期待される。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、優先度の高いタスクが実行されるまでの時間を短縮することのできるバス調停方法及びバス調停プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のバス調停方法は、バスに接続された複数の装置によって複数のタスクを実行可能なコンピュータにおける前記バスの調停を行うバス調停方法であって、前記コンピュータが、所定のタイミングで、前記複数のタスクの各々の優先度と、前記複数のタスク毎の実行に必要な装置毎の前記タスクの実行に使用される割合を示す使用率とを含むタスク情報を取得する工程と、前記コンピュータが、前記優先度と前記使用率とに基づいて、前記優先度の高いタスクの実行に必要な装置に優先的に前記バスが割り当てられるように前記複数の装置の各々のバス使用条件を定義したバス使用条件情報を作成する工程と、前記コンピュータが、前記バス使用条件情報にしたがって前記バスの調停を行う工程とを含む。
【０００９】
上記方法によれば、優先度の高いタスクを実行する装置に優先的にバスを割り当てるようにすることができるため、優先度の高いタスクが実行されるまでの時間を短縮することができる。
【００１０】
また、本発明のバス調停方法は、前記優先度が、前記タスクの実行に際して単位時間当たりに起動すべきバスサイクル数で定義され、前記バス使用条件情報を作成する工程では、前記バスサイクル数と前記使用率とから、前記複数の装置毎に、前記複数のタスクの前記バスサイクル数の総和に対する前記装置が前記単位時間当たりに起動すべきバスサイクル数の比率であるバス使用率を算出し、前記バス使用率と、前記複数の装置の各々が前記バスを使用する際に最低限起動することのできるバスサイクルの数である最小バスサイクル数とから、前記装置に割り当てられた１回の前記バスの使用に際して前記装置が起動することのできる最大のバスサイクルの数である連続使用バスサイクル数を算出し、前記連続使用バスサイクル数を用いて前記バス使用条件情報を作成する。
【００１１】
また、本発明のバス調停方法は、前記コンピュータが、前記複数の装置からの前記バスの使用要求の有無を判定する工程を含み、前記バスの調停を行う工程では、前記バスの使用要求の無い装置には前記バスを割り当てないようにする。
【００１２】
上記方法によれば、バス使用要求が無い装置にはバスの割り当てが行われないため、不要なバス割り当てが阻止され、処理効率の低下を防止することができる。
【００１３】
また、本発明のバス調停方法において、前記所定のタイミングは、前記優先度が変更されたタイミングである。
【００１４】
上記方法によれば、タスクの実行中に当該タスクの優先度が動的に変化する場合でもバス使用条件情報が更新されるので、タスクの実行状態に応じて装置のバス使用条件が適宜適切に定義され、従って、優先度の最も高いタスクが実行されるまでの時間を短縮することができる。
【００１５】
また、本発明のバス調停方法は、前記コンピュータが、前記取得したタスク情報に含まれる前記優先度を、前記タスク情報を取得した時点で実行されているタスクが最も高くなるように設定する工程を含む。
【００１６】
上記方法によれば、タスク情報を取得した時点で実行されているタスクの優先度に適宜重み付けを行うことにより、このタスクの実行時間を短縮することができる。
【００１７】
本発明のバス調停プログラムは、コンピュータに、前記バス調停方法の各工程を実行させるためのプログラムである。
【発明の効果】
【００１８】
本発明によれば、優先度の高いタスクが実行されるまでの時間を短縮することのできるバス調停方法及びバス調停プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態について図面を参照して説明する。
【００２０】
図１は、本発明の実施の形態であるバス調停方法を実行するコンピュータの概念図である。
図１に示すコンピュータは、バスに接続された複数の装置によって複数のタスクを実行可能なコンピュータであり、バス１０と、バスの調停を行うアービター２０と、アービター２０を介してバス１０に接続された複数の装置（装置Ａ３１、装置Ｂ３２、装置Ｃ３３）とを備える。以下の説明では、装置Ａ３１を装置Ａ、装置Ｂ３２を装置Ｂ、装置Ｃ３３を装置Ｃと記載する。
【００２１】
各装置３１〜３３へのバス１０の割り当て（バスの調停）は、後述するバス使用条件情報テーブルに基づいて、アービター２０が行う。アービター２０は、バス調停プログラムを実行することで、バス１０の調停を行う。以下、バス１０のことを単にバスと省略して記載する。
【００２２】
ここで、バス使用条件情報テーブルの概要について説明する。
図２は、本発明の実施の形態におけるバス使用条件情報テーブルを概念的に示す図である。
バス使用条件情報テーブルとは、コンピュータに登録されているタスクの優先度に応じて各装置Ａ〜Ｃのバス使用条件（各装置Ａ〜Ｃがどのくらいの頻度でバスをどのくらい使用するのかを決めた条件）を定義したテーブルである。バス使用条件情報テーブルには、各装置Ａ〜Ｃの装置ＩＤ、各装置Ａ〜Ｃからのバス使用要求の有無、各装置Ａ〜Ｃの連続使用バスサイクル数、実行周期、などの項目が記述されている。
【００２３】
バス使用条件情報テーブルの各項目について説明する。
「バス使用要求の有無」は、装置からバスの使用要求があったか否かを示す情報である。使用要求があった場合は「有」、ない場合は「無」が記録される。
「連続使用バスサイクル数」は、装置に割り当てられた１回のバスの使用に際して、該装置が起動することのできる最大のバスサイクルの数を示す情報である。連続使用バスサイクル数が多い程、１回の割り当てで、多くのデータの送受信が可能となる。又、連続使用バスサイクル数は、装置の最小バスサイクル数（装置がバスを使用する際に最低限起動することのできるバスサイクルの数）の整数倍となるように設定されている。
「実行周期」は、装置がどれくらいの頻度でバスを割り当てられるかを示す情報である。
【００２４】
図２に示すバス使用条件情報テーブルでは、例えば、装置Ａの場合、１回のバス割り当てで起動することのできるバスサイクル数が４であり、３つの装置（装置Ａ、Ｂ、Ｃ）へのバスの割り当てをＡ、Ｂ、Ｃの順番で巡回させる際、３回に１回の割合で割り当てを行うことが定義されている。
【００２５】
同様に、装置Ｂの場合、１回のバス割り当てで起動することのできるバスサイクル数が１６であり、３つの装置へのバスの割り当てを巡回させる際、２回に１回の割合で割り当てを行うことが定義されている。しかし、装置Ｂはバス使用要求が無いため、この場合には装置Ｂへのバスの割り当ては行わない。このようにすることで、バス使用要求が無い装置にはバスの割り当てが行われないため、不要なバス割り当てが阻止され、処理効率の低下を防止することができる。
【００２６】
バス使用条件情報テーブルは、優先度の高いタスクの実行に必要な装置へ優先的にバスの割り当てがなされるように作成される。バス使用条件情報テーブルの具体的な作成手順については後述する。
【００２７】
次に、上記構成におけるアービター２０の各装置へのバス割り当て動作について説明する。
【００２８】
図３は、本発明の実施形態におけるアービターのバス調停動作手順を示すフローチャートである。
はじめに、コンピュータを起動後、バス調停プログラムを実行したアービター２０は、コンピュータに登録されているタスクから要求が発生したか否かを判定する（ステップＳ１０１）。
【００２９】
タスクからの要求がある場合、アービター２０は、全タスクのタスク情報（このタスク情報は各タスクが持っている）を取得し（ステップＳ１０２）、取得したタスク情報と各装置Ａ〜Ｃの最小バスサイクル数とに基づいてバス使用条件情報テーブルを作成する（ステップＳ１０３）。
【００３０】
タスクのタスク情報には、当該タスクが現在実行中か否かの情報、当該タスクの優先度、当該タスクの実行に必要な装置、該装置毎の当該タスクの実行に使用される割合を示す使用率、などの情報が含まれる。タスクからの要求は、例えばタスクの優先度が変更されたタイミングなどで発生する。タスクの優先度は、当該タスクの実行に際して単位時間（例えば１秒）当たりに起動すべきバスサイクル数で定義される。このバスサイクル数が多い程、タスクの優先度が高いものとする。
【００３１】
尚、タスク情報に含まれる優先度は、コンピュータが起動中、動的に変化するものであるが、アービター２０は、タスク情報を取得した際に、その時点で実行されているタスクについて、そのタスク情報に含まれる優先度が最も高くなるように重み付けを行っても良い。こうすることで、実行中のタスクに使用する装置に優先的にバスの割り当てを行うことができる。これについては、以下の作成手順（２）で詳細に説明する。
【００３２】
次に、上記作成したバス使用条件情報テーブルにしたがって、アービター２０がバスの調停を行う（ステップＳ１０４）。
【００３３】
尚、タスクがアービター２０に対して要求を行うタイミングとしては、タスクの優先度が変更された時点の他にも、「コンピュータが起動した時点」、「各装置がバスの使用を終了した時点」、「タスクが登録及び抹消された時点」、「タスクが起動及び終了した時点」、「タスクが切り替えられた時点」、「タスクの実行に必要な装置が更新された時点」などがある。
【００３４】
また、図３のフローには記載していないが、コンピュータの起動中、アービター２０は、各装置Ａ〜Ｃからバスの使用要求が行われているか否かを常に判定し、その判定結果に応じてバス使用条件情報テーブルの「バス使用要求の有無」の情報を更新する。例えば、アービター２０は、バス使用要求を行った装置については、バス使用条件情報テーブルの「バス使用要求の有無」の情報を「有」に更新し、「バス使用要求の有無」が「無」の装置（バス使用要求を行っていない装置）に対してはバスの割り当てを行わないようにする。つまり、図２に示すバス使用条件情報テーブルの場合は、装置Ａと装置Ｃとの２つの装置でバスの割り当てを巡回させるようにする。これにより、バス使用要求を行っていない装置に対しては、バスを割り当てないようにすることができ、処理効率の低下を防止することができる。
【００３５】
以下、上記ステップＳ１０３におけるバス使用条件情報テーブルの具体的な作成手順について説明する。
【００３６】
作成手順（１）
本実施の形態では、「タスクの登録時」のタイミングで取得した「全タスクのタスク情報」に基づいてバス使用条件情報テーブルを作成する場合について説明する。ここでは、登録されているタスクがＸ，Ｙ，Ｚの３つあるものとする。
【００３７】
図４は、全タスクから取得したタスク情報の一部を概念的に示す図である。
各タスクＸ，Ｙ，Ｚのタスク情報には、装置Ａ〜Ｃのうちの各タスクＸ，Ｙ，Ｚの実行に使用される装置毎の使用率と、各タスクＸ，Ｙ，Ｚの優先度であるバス使用量（バスサイクル数）とが含まれている。
【００３８】
図４の例では、タスクＸの実行には装置Ａ〜Ｃの３つの装置が使用され、その３つの装置の使用率は、装置Ａが４０％、装置Ｂが３０％、装置Ｃが３０％であることが示されている。また、タスクＹの実行には装置Ａ，Ｂの２つの装置が使用され、その２つの装置の使用率は、装置Ａが６０％、装置Ｂが４０％であることが示されている。また、タスクＺの実行には装置Ａ，Ｃの２つの装置が使用され、その２つの装置の使用率は、装置Ａが９０％、装置Ｃが１０％であることが示されている。また、図４の例では、タスクＹが最も優先度が高いことが示されている。
【００３９】
図５は、各装置Ａ〜Ｃの最小バスサイクル数情報を概念的に示す図である。図５に示す情報は、予めコンピュータ内に記憶されているものとする。
【００４０】
アービター２０は、図４に示すタスク情報と図５に示す最小バスサイクル数情報に基づいて、以下に示すように各装置Ａ〜Ｃの連続使用バスサイクル数を算出する。
【００４１】
まず、以下の式により総バス使用量（各タスクＸ〜Ｚのバス使用量の総和）を算出する。
【００４２】
総バス使用量＝タスクＸのバス使用量＋タスクＹのバス使用量＋タスクＺのバス使用量
（図４のタスク情報では、50＋60＋10＝120となる）
【００４３】
次に、以下の式により、各装置Ａ〜Ｃのバス使用量（各装置Ａ〜Ｃが単位時間当たりに起動すべきバスサイクル数）を算出する。
【００４４】
装置Ａのバス使用量＝タスクＸの装置Ａ使用率×タスクＸのバス使用量
＋タスクＹの装置Ａ使用率×タスクＹのバス使用量
＋タスクＺの装置Ａ使用率×タスクＺのバス使用量
（図４のタスク情報では、40％×50＋60％×60＋90％×10＝65となる）
【００４５】
装置Ｂのバス使用量＝タスクＸの装置Ｂ使用率×タスクＸのバス使用量
＋タスクＹの装置Ｂ使用率×タスクＹのバス使用量
＋タスクＺの装置Ｂ使用率×タスクＺのバス使用量
（図４のタスク情報では、30％×50＋40％×60＋0％×10＝39となる）
【００４６】
装置Ｃのバス使用量＝タスクＸの装置Ｃ使用率×タスクＸのバス使用量
＋タスクＹの装置Ｃ使用率×タスクＹのバス使用量
＋タスクＺの装置Ｃ使用率×タスクＺのバス使用量
（図４のタスク情報では、30％×50＋0％×60＋10％×10＝16となる）
【００４７】
次に、以下の式により、各装置Ａ〜Ｃのバス使用率を算出する。
【００４８】
装置Ａのバス使用率＝装置Ａのバス使用量／総バス使用量
（図４のタスク情報では、65/120＝約0.542となる）
【００４９】
装置Ｂのバス使用率＝装置Ｂのバス使用量／総バス使用量
（図４のタスク情報では、39/120＝約0.325となる）
【００５０】
装置Ｃのバス使用率＝装置Ｃのバス使用量／総バス使用量
（図４のタスク情報では、16/120＝約0.133となる）
【００５１】
次に、上記の算出に基づいて下記３式の連立方程式を解く。但し、完全な等式となる必要はなく、３式が最も近似するようにそれぞれの係数を求める。
K×装置Ａのバス使用率==Na×装置Ａの最小バスサイクル数
K×装置Ｂのバス使用率==Nb×装置Ｂの最小バスサイクル数
K×装置Ｃのバス使用率==Nc×装置Ｃの最小バスサイクル数
尚、上記の係数K、Na、Nb、Ncはいずれも整数値で、係数Kがなるべく小さな数値となるように各係数値を算出する。具体的には、最小バスサイクル数が最も大きな装置の係数N（本例ではNc）を１とした場合から開始して算出すればよい。
（図４のタスク情報と図５の最小バスサイクル数情報では、Nc＝1とした場合、K＝244、Na＝33、Nb＝5と算出される）
【００５２】
求める連続使用バスサイクル数は下記により算出される。
【００５３】
装置Ａの連続使用バスサイクル数＝Na×装置Ａの最小バスサイクル数
（例では、33×4＝132と算出される）
【００５４】
装置Ｂの連続使用バスサイクル数＝Nb×装置Ｂの最小バスサイクル数
（例では、5×16＝80と算出される）
【００５５】
装置Ｃの連続使用バスサイクル数＝Nc×装置Ｃの最小バスサイクル数
（例では、1×32＝32と算出される）
【００５６】
アービター２０は、このように算出された各装置Ａ〜Ｃの連続使用バスサイクル数を用いて、バス使用条件情報テーブルを作成する。
【００５７】
図６は、以上の計算の結果得られた連続バスサイクル数を用いて作成したバス使用条件情報テーブルを概念的に示す図である。
このバス使用条件情報テーブルによれば、実行周期がすべて１であるため、装置Ａ：132サイクル、装置Ｂ：80サイクル、装置Ｃ：32サイクル、の順番でバスの割り当てが巡回する。このバス使用条件情報テーブルにしたがってバスの調停を行うと、装置Ａにより優先的にバスの割り当てが行われることになるため、優先度の高いタスクＹが実行されるまでの時間を効率的に短縮することができる。
【００５８】
ところで、図６のバス使用条件情報テーブルでは、連続使用バスサイクル数を１回ですべて割り当てるようにしているが、図７、図８、図９などに示すように連続使用バスサイクル数を小さく分割して最小バスサイクル数またはそれに近いサイクルで細切れにバスを割り当てたテーブルとすることも可能である。特に、図９は、連続使用バスサイクル数を小さく分割して最小バスサイクル数とし、細切れのサイクルで頻繁にバスを割り当てるように設定したバス使用条件情報テーブルの例である。実際上は、実行周期を変更することでバスの連続使用バスサイクル数を変更することが好ましいと考えられる。尚、上記の図６から図９のテーブルではバス使用要求の有無の項目は省略している。
【００５９】
作成手順（２）
次に、本実施の形態では、「タスクの切り替え時」のタイミングで取得した「全タスクのタスク情報」に含まれる各タスクの優先度（バス使用量）を、現在実行中のタスクが最も高くなるように重み付け設定を行ってから、バス使用条件情報テーブルを作成する場合について説明する。この場合、アービター２０が、現在実行中のタスクのタスク情報に含まれる「バス使用量」に適宜重み付けを行う。ここでは、タスク情報を取得した時点で実行中のタスクがタスクＸである場合について説明する。
【００６０】
図１０は、作成手順（１）で取得した３つのタスク情報（図４参照）において、現在実行中のタスクＸのバス使用量に重み付け設定を行った場合のタスク情報を概念的に示す図である。
【００６１】
図１０に示すように、図４のそれと比較して、タスクＸのバス使用量が50から50％増加して75に、その他のタスクＹとタスクＺはそれぞれ50％減少して30と5に設定されている。アービター２０は、図１０に示すタスク情報と図５に最小バスサイクル数情報とに基づいて、作成手順（１）と同様に各装置の連続使用バスサイクル数を算出する。
【００６２】
まず、以下の式により総バス使用量（各タスクＸ〜Ｚのバス使用量の総和）を算出する。
【００６３】
総バス使用量＝タスクＸのバス使用量＋タスクＹのバス使用量＋タスクＺのバス使用量
（図１０のタスク情報では、75＋30＋5＝110となる）
【００６４】
次に、以下の式により、各装置Ａ〜Ｃのバス使用量（各装置Ａ〜Ｃが単位時間当たりに起動すべきバスサイクル数）を算出する。
【００６５】
装置Ａのバス使用量＝タスクＸの装置Ａ使用率×タスクＸのバス使用量
＋タスクＹの装置Ａ使用率×タスクＹのバス使用量
＋タスクＺの装置Ａ使用率×タスクＺのバス使用量
（図１０のタスク情報では、40％×75＋60％×30＋90％×5＝52.5となる）
【００６６】
装置Ｂのバス使用量＝タスクＸの装置Ｂ使用率×タスクＸのバス使用量
＋タスクＹの装置Ｂ使用率×タスクＹのバス使用量
＋タスクＺの装置Ｂ使用率×タスクＺのバス使用量
（図１０のタスク情報では、30％×75＋40％×30＋0％×5＝34.5となる）
【００６７】
装置Ｃのバス使用量＝タスクＸの装置Ｃ使用率×タスクＸのバス使用量
＋タスクＹの装置Ｃ使用率×タスクＹのバス使用量
＋タスクＺの装置Ｃ使用率×タスクＺのバス使用量
（図１０のタスク情報では、30％×75＋0％×30＋10％×5＝23となる）
【００６８】
次に、以下の式により、各装置Ａ〜Ｃのバス使用率を算出する。
【００６９】
装置Ａのバス使用率＝装置Ａのバス使用量／総バス使用量
（図１０のタスク情報では、52.5/110＝約0.477となる）
【００７０】
装置Ｂのバス使用率＝装置Ｂのバス使用量／総バス使用量
（図１０のタスク情報では、34.5/110＝約0.314となる）
【００７１】
装置Ｃのバス使用率＝装置Ｃのバス使用量／総バス使用量
（図１０のタスク情報では、23/110＝約0.209となる）
【００７２】
次に、上記の算出に基づいて下記３式の連立方程式を解く。但し、完全な等式となる必要はなく、３式が最も近似するようにそれぞれの係数を求める。
K×装置Ａのバス使用率==Na×装置Ａの最小バスサイクル数
K×装置Ｂのバス使用率==Nb×装置Ｂの最小バスサイクル数
K×装置Ｃのバス使用率==Nc×装置Ｃの最小バスサイクル数
（図１０のタスク情報と図５の最小バスサイクル数情報では、Nc＝1とした場合、K＝151、Na＝18、Nb＝3と算出される）
【００７３】
求める連続使用バスサイクル数は下記により算出される。
【００７４】
装置Ａの連続使用バスサイクル数＝Na×装置Ａの最小バスサイクル数
（例では、18×4＝72と算出される）
【００７５】
装置Ｂの連続使用バスサイクル数＝Nb×装置Ｂの最小バスサイクル数
（例では、3×16＝48と算出される）
【００７６】
装置Ｃの連続使用バスサイクル数＝Nc×装置Ｃの最小バスサイクル数
（例では、1×32＝32と算出される）
【００７７】
アービター２０は、このように算出された各装置Ａ〜Ｃの連続使用バスサイクル数を用いて、バス使用条件情報テーブルを作成する。
【００７８】
図１１は、以上の計算の結果得られた連続使用バスサイクル数を用いて作成したバス使用条件情報テーブルを概念的に示す図である。
このバス使用条件情報テーブルによれば、実行周期がすべて１であるため、装置Ａ：72サイクル、装置Ｂ：48サイクル、装置Ｃ：32サイクル、の順番でバスの割り当てが巡回する。図６と図１１を比較すると、図６に示すバス使用条件情報テーブルに従えば、装置Ａに、より優先的にバスの割り当てが行われるのに対し、図１１に示すバス使用条件情報テーブルでは、装置Ａ〜Ｃのそれぞれにほぼ均等に割り当てが行われることになる。タスクＸは、装置Ａ〜Ｃをほぼ均等に使用するため、図１１に示すバス使用条件情報テーブルによれば、タスクＸの実行時間を、図６に示すバス使用条件情報テーブルの場合よりも短くすることができる。
【００７９】
図１２は、連続使用バスサイクル数を小さく分割して最小バスサイクル数とし、細切れのサイクルで頻繁にバスを割り当てるように設定したバス使用条件情報テーブルを概念的に示す図である。尚、上記の図１１から図１２のテーブルではバス使用要求の有無の項目は省略している。
【００８０】
以上のように、本実施形態のコンピュータによれば、優先度が高いタスクについては、そのタスクを実行する装置に優先的にバスが割り当てられるようにバス使用条件情報テーブルを作成し、このテーブルにしたがってバスの調停を行うことができる。つまり、タスクは要求のあった順に実行されるが、優先度の高いタスクを実行する装置により効率的にバスが割り当てられるようにしておくことで、優先度の高いタスクが実行されるまで又はそのタスクが実行完了するまでの時間を短縮することができ、処理効率を向上させることができる。
【００８１】
尚、タスクは分割しておくことも可能である。この場合、タスクの分割は、そのタスクに使用する装置のバスへのアクセス頻度に応じて行ったり、装置毎に対応させて行ったり、タスクの処理時間に応じて行ったりすれば良い。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施形態を示すブロック図である。
【図２】本発明の実施形態におけるバス使用条件情報テーブルを概念的に示す図である。
【図３】本発明の実施形態におけるアービターのバスの調停動作手順を示すフローチャートである。
【図４】タスク情報を概念的に示す図である。
【図５】装置ごとの最小バスサイクル数情報を概念的に示す図である。
【図６】計算結果に基づいて作成されるバス使用条件情報テーブルを概念的に示す図である。
【図７】計算結果に基づいて作成されるバス使用条件情報テーブルを概念的に示す図である。
【図８】計算結果に基づいて作成されるバス使用条件情報テーブルを概念的に示す図である。
【図９】計算結果に基づいて作成されるバス使用条件情報テーブル例を概念的に示す図である。
【図１０】現在実行中のタスクＸが優先されるようにバス使用量に重み付けを行った場合のタスク情報を概念的に示す図である。
【図１１】計算結果に基づいて作成されるバス使用条件情報テーブルを概念的に示す図である。
【図１２】計算結果に基づいて作成されるバス使用条件情報テーブルを概念的に示す図である。
【符号の説明】
【００８３】
１０  バス
２０  アービター
３１  装置Ａ
３２  装置Ｂ
３３  装置Ｃ
【図１】
2007072598.tif 000003
【図２】
2007072598.tif 000004
【図３】
2007072598.tif 000005
【図４】
2007072598.tif 000006
【図５】
2007072598.tif 000007
【図６】
2007072598.tif 000008
【図７】
2007072598.tif 000009
【図８】
2007072598.tif 000010
【図９】
2007072598.tif 000011
【図１０】
2007072598.tif 000012
【図１１】
2007072598.tif 000013
【図１２】
2007072598.tif 000014