(57)【特許請求の範囲】
【請求項１】
プロセッサからのバス使用要求と周辺デバイスのバス使用要求とをそれぞれにそれぞれの要求タイミングで受付け、前記プロセッサとｎ個（ただしｎは２以上の正数）の前記周辺デバイスとがバス制御装置を介してバスを共有して前記プロセッサおよび前記周辺デバイスがデータの授受を行うコンピュータ装置において、前記周辺デバイスがバス使用要求してからバスの使用を開始できるまでの許容最小時間に対応する期間を周期Ｔとして実質的に前記期間Ｔを（ｎ＋１）ｋ個（ただしｋは２以上の正数）に分割して前記期間Ｔ／｛（ｎ＋１）ｋ｝を単位期間としてこの単位期間ｋ個を前記プロセッサのバス使用期間として割当てｋ個分の前記単位期間に相当する期間Ｔ／（ｎ＋１）をそれぞれ前記ｎ個の周辺デバイスのバス使用期間に割当てることでそれぞれの前記期間Ｔにおいて前記期間Ｔ／｛（ｎ＋１）ｋ｝を単位とし、
前記プロセッサの前記バス使用要求があるときには前記周辺デバイスの前記バス使用要求に応じて割当てられた前記期間Ｔ／（ｎ＋１）の使用期間に対してこの使用期間の後ろを前記プロセッサのバス使用期間として前記単位期間分を割当てて最小で前記ｋ個分を確保し、前記周辺デバイスのバス要求がないときにこのバス要求のない周辺デバイスに割当てられた前記Ｔ／（ｎ＋１）について前記プロセッサのバス使用期間として前記単位期間分を割当てて前記プロセッサのバス使用を許容しかつ前記周期Ｔの期間においてｋ個分前記単位期間を増加させるバス制御装置。
【請求項２】
前記期間Ｔ／｛（ｎ＋１）ｋ｝を単位としたタイミングパルスに応じて少なくとも各前記周辺デバイスに割当てられた前記期間Ｔ／（ｎ＋１）の開始時点でこの期間を割り当てる前記周辺デバイスのバス使用要求があるか否かを検出して検出結果に応じて前記プロセッサの前記バス使用要求に対する前記単位期間の前記プロセッサのバス使用の割当てをする請求項１記載のバス制御装置。
【請求項３】
プロセッサからのバス使用要求と周辺デバイスのバス使用要求とをそれぞれにそれぞれの要求タイミングで受付け、前記プロセッサとｎ個（ただしｎは２以上の正数）の前記周辺デバイスとがバス制御装置を介してバスを共有して前記プロセッサおよび前記周辺デバイスがデータの授受を行うコンピュータ装置において、前記周辺デバイスがバス使用を要求してからバスの使用を開始できるまでの許容最小時間に対応する期間Ｔに対して実質的に前記期間Ｔ／｛（ｎ＋１）ｋ｝（ただしｋは２以上の正数）を周期とするタイミングパルスを発生するタイミングパルス発生回路と、
前記タイミングパルスに応じて前記期間Ｔ／｛（ｎ＋１）ｋ｝を前記プロセッサのバス使用期間として割当て前記期間Ｔ／（ｎ＋１）を前記ｎ個の周辺デバイスのバス使用期間に割当てかつ前記プロセッサの前記バス使用要求があるときにはこれに対応する制御信号に応じて、前記周辺デバイスの前記バス使用要求に応じて割当てられた前記期間Ｔ／（ｎ＋１）の使用期間に対してこの使用期間の後ろを前記プロセッサのバス使用期間として前記単位期間分を割当てて最小で前記ｋ個分を確保し、前記周辺デバイスのバス要求がないときには前記制御信号に応じて、このバス要求のない周辺デバイスに割当てられた前記Ｔ／（ｎ＋１）について前記プロセッサのバス使用期間として前記単位期間分を割当てて前記プロセッサのバス使用を許容しかつ前記周期Ｔの期間においてｋ個分前記単位期間を増加させる制御をするバス調停制御部と、
各前記周辺デバイスに割当てられた前記期間Ｔ／（ｎ＋１）においてその開始時点でこの期間が割当られる前記周辺デバイスにバス使用要求があるか否かを検出しかつ前記プロセッサからのバス使用要求に応じて前記制御信号を発生する検出回路とを備えるバス制御装置。
【請求項４】
前記検出回路は、前記ｋを前記Ｔ期間の開始時点で記憶するカウンタと、前記ｎ個の周辺デバイスから前記バス使用要求を受けて各前記周辺デバイスに割当てられた各前記期間Ｔ／（ｎ＋１）の開始時点でこの期間が割当られる前記周辺デバイスにバス使用要求があるか否かを検出して前記バス使用要求がないときに前記カウンタを前記ｋだけカウントアップする計数値発生回路と、前記プロセッサが前記バスを使用したときに前記期間Ｔ／｛（ｎ＋１）ｋ｝を単位としてこの期間ごとに前記カウンタを１カウントダウンし、前記カウンタのカウント値が１以上であるとき前記プロセッサからのバス使用要求を前記制御信号として発生するゲート回路とを備える請求項３記載のバス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バス制御装置に関し、詳しくは、マイクロコンピュータを有する演算処理システムにおいて、プロセッサ（ＭＰＵあるいはＣＰＵ）とバス接続される各種周辺回路、周辺機器あるいはそのインタフェースとがバス制御装置の管理の下において共通にバスを使用する場合に、ＭＰＵあるいはＣＰＵ等のプロセッサの優先順位が高く、かつ、周辺機器、周辺回路のバス使用権の割当て使用時間の配分を効率よく行うことができるようなバス制御装置に関する。
【０００２】
【従来の技術】
プロセッサと各種周辺回路，装置がバス接続されてバスを相互に利用してデータの授受を行うコンピュータシステムにあっては、ＭＰＵあるいはＣＰＵ等のプロセッサがバスを介して各種回路、機器に接続される。
通常、プロセッサとメモリとは、データ伝送頻度が高いので、これらは、専用のバスで接続されるが、周辺機器、インタフェース回路等の周辺回路（この明細書ではこれらを含めて周辺デバイスと言う。）は、前記とは別のバスで相互にあるいはプロセッサにバス制御装置を介して接続される構成を採る。
【０００３】
このような場合においては、各周辺デバイスがバス使用要求（バス要求）を発生した場合にそれに応じて所定時間バスを使用する権利（バス権）が割当てられるが、バス要求からバス使用までの時間には制限がある。例えば、通信制御装置などでは、受信データを受けて、それをバッファメモリにバスを介して転送しなければ、次のデータの受信ができなくなる。そこで、一定時間内にバス権を獲得しなければならない。したがって、プロセッサや周辺デバイスは、時間的な制限の下にバスを使用することになる。
これには、プロセッサが周辺デバイス側のバスにアクセスしようとする場合、プロセッサに優先的にバスを割当て周辺デバイスを待たせるという方式と、周辺デバイス側に優先的にバスを割当て周辺デバイスがバスを使用する場合には、プロセッサを待たせるという方式がある。
【０００４】
【発明が解決しようとする課題】
しかしながら、このようなコンピュータ装置にあっては、プロセッサに優先的にバス権を与えると、プロセッサのバス使用を基準として全ての周辺デバイスがバス権を要求することになる。そこで、周辺デバイスが使用するバスへのプロセッサによるアクセスが頻繁になった場合に、プロセッサの処理内容によって各周辺デバイスにバス権が与えられるまでの時間が守れなくなり、それが問題になる。
【０００５】
一方、周辺デバイス側に優先的にバス権を与えると複数の周辺デバイスが同時あるいは、連続的にバス権を要求した場合に、すべての周辺デバイスのバス使用が完了するまでプロセッサにバス権が回ってこない問題がある。このような場合には、ある周辺デバイスでのバスの使用が完了し、バスが使用されていないにもかかわらず、次に待つ周辺デバイスのために、プロセッサが待たされてしまうことになる。この場合、周辺デバイスがバス要求をする限り、プロセッサにはバス使用権がないので、プロセッサの処理能力が低下することになる。
この発明の目的は、このような従来技術の問題点を解決するものであって、全ての周辺デバイスがバス要求をしたときでも、各周辺デバイスがバス権を獲得するまでの時間を保証し、かつ、各周辺デバイスからのバス使用要求あっても、プロセッサがバスを使用するできるバス制御装置を提供することにある。
【０００６】
【課題を解決するための手段】
このような目的を達成するためのこの発明のバス制御装置の特徴は、プロセッサからのバス使用要求と周辺デバイスのバス使用要求とをそれぞれにそれぞれの要求タイミングで受付け、プロセッサとｎ個（ただしｎは２以上の正数）の周辺デバイスとがバス制御装置を介してバスを共有してプロセッサおよび周辺デバイスがデータの授受を行うコンピュータ装置において、周辺デバイスがバス使用を要求してからバスの使用を開始できるまでの許容最小時間に対応する期間Ｔを周期として実質的に期間Ｔを（ｎ＋１）ｋ個（ただしｋは２以上の正数）に分割して期間Ｔ／｛（ｎ＋１）ｋ｝を単位期間としてこの単位期間ｋ個をプロセッサのバス使用期間として割当てｋ個分の単位期間に相当する期間Ｔ／（ｎ＋１）をそれぞれｎ個の周辺デバイスのバス使用期間に割当てることでそれぞれの前記期間Ｔにおいて期間Ｔ／｛（ｎ＋１）ｋ｝を単位として
プロセッサのバス使用要求があるときには周辺デバイスのバス使用要求に応じて割当てられた期間Ｔ／（ｎ＋１）の使用期間に対してこの使用期間の後ろをプロセッサのバス使用期間として単位期間分を割当てて最小でｋ個分を確保し、周辺デバイスのバス要求がないときにこのバス要求のない周辺デバイスに割当てられたＴ／（ｎ＋１）についてプロセッサのバス使用期間として単位期間分を割当ててプロセッサのバス使用を許容しかつ周期Ｔの期間においてｋ個分単位期間を増加させるものである。
【０００７】
さらに具体的なこの発明の構成としては、周辺デバイスからのバス要求を検出する手段と各周辺デバイスがバス権を要求してから開始しなければならない時間を基準時間Ｔとし、前記基準時間Ｔ内にプロセッサが周辺デバイス側のバスを使用できる時間Ｔ／｛（ｎ＋１）ｋ｝を割り当てプロセッサがバスをアクセスする時のバス使用時間Ｔ／（ｎ＋１）からプロセッサがバスへのアクセスできる回数をｋとして強制的に設定し、これを、例えば、カウンタに初期値として設定することで、このカウンタのカウント値を周辺デバイスが前記バスを使用しなかったときその時間分ｋだけカウントアップさせて、プロセッサがバスへアクセスできる回数とし、プロセッサがバスをアクセスするごとにカウンタがゼロになるまで減算するものである。そして、カウント値がゼロになったときにその期間Ｔにおけるプロセッサのアクセスを禁止するものである。
【０００８】
【発明の実施の形態】
この発明によれば、コンピュータ装置において、基準時間内に全周辺デバイスから周辺デバイス側のバスへアクセスが多い場合には、プロセッサの前記バスへのアクセス可能な回数が減少し、その分、周辺デバイスが期間Ｔ／（ｎ＋１）においてそれぞれアクセスでき、かつ、プロセッサは、最低でも設定された時間Ｔ／｛（ｎ＋１）ｋ｝を単位とする回数ｋはアクセス可能である。この場合には待ち時間は増加するが、前記の基準時間Ｔを守ることができるので、周辺デバイスの動作が阻害されることはない。また、各周辺デバイスから前記バスへのバス要求が少ない場合には、プロセッサの前記バスへのアクセスは、アクセス可能な回数が期間Ｔ／｛（ｎ＋１）ｋ｝に応じてｋづつ増加するので、プロセッサの待ち時間を減少させることができる。
その結果、全ての周辺デバイスがバス要求をしたときでも、各周辺デバイスがバス権を獲得するまでの時間を保証することができ、各周辺デバイスからのバス要求あっても、プロセッサはバスを使用することができる。さらに、バスに空き時間がある場合には、プロセッサの待ち時間を極力短縮することができる。
【０００９】
【実施例】
図１は、この発明のバス制御装置を適用した一実施例のブロック図であり、図２は、このバス制御装置を有するコンピュータシステムの構成図である。
図２は、プロセッサと不定期的にバスを使用する複数の周辺デバイスを共通バスに接続して、バス制御装置１０７（図面ではシステム全体の一部としてバス制御部１０７としてこれを示すが、以下これをバス制御装置１０７として説明する。）によりこれのバス使用を調整するものである。
図２において、プロセッサ１０１とメインメモリ１０２は、プロセッサ側バス１０９で接続されている。周辺デバイス(1)１０３と、周辺デバイス(2)１０４、周辺デバイス(3)１０５、周辺デバイス(4)１０６、そしてバッファメモリ１０８とは、周辺デバイス側バス１１０において相互に接続されている。
プロセッサ側のバス１０９と周辺デバイス側のバス１１０は、バス制御装置１０７を介して接続され、バス制御装置１０７がバス１１０の割当て、バスの調停制御をする。プロセッサ１０１がメインメモリ１０２をアクセスする場合には、プロセッサ側バス１０９のみを使用し、バス制御装置１０７は何もしない。この場合には、周辺デバイス側バス１１０には影響を与えない。
【００１０】
プロセッサ１０１は、各周辺デバイス(１０３，１０４，１０５，１０６)やバッファメモリ１０８をアクセスする時、バス制御装置１０７を介して周辺デバイス側バス１１０をアクセスする。
図１は、このアクセス等についてバス１１０の使用を管理、調停制御をするバス制御装置１０７のブロック図である。
図１におて、バス制御装置１０７は、カウンタ３０１、コンパレータ３０２、監視タイミング発生回路３０３、周辺デバイスバス要求検出回路３０４、プロセッサバス要求検出回路３０５、バス調停制御回路３０６等とから構成されていて、プロセッサバス要求検出回路３０５とコンパレータ３０２によりこの発明の検出回路が構成される。また、バス調停制御回路３０６は、プロセッサとこれが実行するプログラムを主体として構成されてもよい。
【００１１】
バス調停制御回路３０６は、周辺デバイス(１０３，１０４，１０５，１０６)のうちバス使用を要求してからバスの使用を開始できるまでの許容最小時間の周辺デバイス、例えば、周辺デバイス(1)１０３に対応する期間Ｔを周期として実質的に期間Ｔを（ｎ＋１）×ｋ個（ｎ＝４、ｋ＝２）に分割して、各周辺デバイスの期間とプロセッサ１０１のバス使用期間の単位をＴ／１０として、プロセッサ１０１には期間Ｔ／１０を割当て、各周辺デバイス（１０３，１０４，１０５，１０６）には期間Ｔ／５を割当てる。プロセッサ１０１からバス要求されたときには、各周辺デバイスの期間の後ろに期間Ｔ／１０を挿入する。プロセッサ１０１の期間Ｔ／１０をｋ個、この実施例では２個（ｋ＝２）まで挿入することを許可する。なお、各周辺デバイスの期間にバス権の要求がなければその期間の最初にプロセッサ１０１にバス権が与えられ、次の周辺デバイスの期間に移る。
【００１２】
図３の（ａ），（ｂ）は、それぞれバス調停制御回路３０６における、プロセッサ１０１と周辺デバイス(1)１０３、周辺デバイス(2)１０４、周辺デバイス(3)１０５、周辺デバイス(4)１０６のバスの割当て時間を表わす図である。図３の（ａ）について説明すると、これは、プロセッサ１０１からバス要求が周辺デバイス１０３と周辺デバイス１０４の期間にあって、これらの期間の後に１回づつ合計２回のプロセッサ１０１のバス使用要求を受け入れた例である。
これにより周辺デバイス１０３と周辺デバイス１０４の期間２０４、期間２０６の後ろにプロセッサのアクセス期間（ＣＰＵ）２０２として期間Ｔ／１０（＝期間Ｔ／｛（ｎ＋１）ｋ｝がそれぞれに挿入されている。
【００１３】
これによりプロセッサ１０１のバス使用権を確保することができる。したがって、周辺デバイス１０３と周辺デバイス１０４のバス使用期間とプロセッサ１０１のバス使用期間は、２：１になる。プロセッサ１０１のバス使用期間２０２として期間Ｔ／１０を確保し、周辺デバイス１０３の期間２０４、周辺デバイス１０４の期間２０６、周辺デバイス１０５の期間２０８、周辺デバイス１０６の期間２１０のそれぞれに期間２Ｔ／１０（＝Ｔ／５）を割当てるために、バス調停制御回路３０６は、バス１１０の使用管理を監視タイミング発生回路３０３からの基準期間Ｔに対応する周期のパルスＰT（図４（ａ）参照）とタイミングパルスＰc（その周期Ｔ／１０＝期間Ｔ／｛（ｎ＋１）ｋ｝、図４（ｂ）参照）とを受けてこれらにに応じてバス使用の調整制御をする。
【００１４】
図４は、監視タイミング発生回路３０３のタイミングパルスの説明図である。
その（ｂ）が前記のタイミングパルスＰcである。このパルスの周期ＴCは、期間Ｔ／１０（＝期間Ｔ／｛（ｎ＋１）ｋ｝）に対応している。なお、（ａ）は基準期間を示す周期Ｔのパルスが基準パルスＰTである。
ところで、周辺デバイス(1)１０３、周辺デバイス(2)、１０４周辺デバイス(3)１０５、周辺デバイス(4)１０６がバスを要求してからバスを獲得とするまでには、制限時間があって、この時間内にプロセッサ１０１と全ての周辺デバイス(1)１０３，周辺デバイス(2)１０４，周辺デバイス(3)１０５，周辺デバイス(4)１０６のバスの使用時間を割り当てなければならない。そこで、これら周辺デバイスのうちのもっとも短い制限時間に対応せて基準時間Ｔが設定されている。
【００１５】
この基準時間Ｔは、例えば、通信制御装置でフレーム同期プロトコル処理を行う場合、フレームの受信を開始すると受信終了までデバイス内のＦＩＦＯ（ファーストインファーストアウト）のバッファサイズに関係する時間内にＦＩＦＯバッファに記憶された受信データをバッファメモリ１０８に転送する必要がある。このような場合には、通常、ＦＩＦＯの受信バッファの２分の１までデータが受信されたときにバス要求を発生させる。そこで、残りの２分の１を受信するまでにバス要求が受け入れられなければ受信に失敗することになる。
この期間がバス割当ての制限時間となる。そして、これが他の周辺デバイスの持つ制限時間に対して最小時間であるとすれば、前記の基準時間Ｔとして使用される。この実施例では、例えば、周辺デバイス１０３がこの最小時間Ｔを持つデバイスに当たっている。
【００１６】
ここで、プロセッサ１０１が周辺デバイス側のバス１１０を使用した場合のアクセス時間は、プロセッサ１０１のバス使用時間ＴP（＝期間Ｔ／１０）とする。  また、この実施例では、各周辺デバイスＴ（１０３，１０４，１０５，１０６）がバス１１０を使用した場合のバス使用時間（２０３，２０５，２０７，２０９）は、プロセッサ１０１のバス使用時間ＴPのちょうど２倍かかるものとしている。
周辺デバイス(1)１０３のバス要求監視時間２０３，周辺デバイス(2)１０４のバス要求監視時間２０５，周辺デバイス(3)１０５のバス要求監視時間２０７，周辺デバイス(4)１０６のバス要求監視時間２０９は、説明の都合上、図では幅があるが、実際には微細な時間であるため、各バス使用期間のタイミング発生時点の初期に割当て、これを無視できるものとする。そのための監視パルスＰDを図４の（ｃ）に示す。
【００１７】
この実施例では、プロセッサ１０１と全周辺デバイス（１０３，１０４，１０５，１０６）が基準時間Ｔ内にバス１１０を使用した場合でもバス割当て図３の（ａ）に示すようにプロセッサ１０１のバス使用時間ＴPが基準時間Ｔ内に最大２回（ｋ＝２）分割当てることができる。そこで、プロセッサ１０１のアクセス回数のカウンタ３０１の初期値を２とする。これは、監視タイミング発生回路３０３から発生する図４の基準パルスＰTの発生に応じてカウンタ３０１に設定される。
【００１８】
バス制御装置１０７は、監視タイミング発生回路３０３により基準時間Ｔ以下の同期でプロセッサ１０１及び全周辺デバイス（１０３，１０４，１０５，１０６）のバス権要求を監視する。監視タイミング発生回路３０３から発生する監視タイミング発生回路３０３は、例えば、４つの周辺デバイスを監視するとすれば、期間ＴDの周期で幅の狭い監視パルスＰDを周辺デバイスバス要求検出回路３０４に送出する。これにより各周辺デバイスのバス要求の有無を監視し、カウンタ３０１のカント値によりプロセッサの使用期間の管理をする。
ここでは、基準時間Ｔを５分割した期間Ｔ／５の周期を２つに分けて、Ｔ／１０をプロセッサ１０１のバス使用期間（ＣＰＵ）に割当てているので、各周辺デバイス１０３、１０４は、前記により割当てられた期間Ｔ／５において処理が終了しないときには、その手前で、処理中のデータをバッファメモリ等に退避させて、次のバス使用期間まで待つ処理を行う。これは、プロセッサ１０１についても同様である。
【００１９】
周辺デバイスバス要求検出回路３０４は、アンドゲート３０４ａ，３０４ｂ，３０４ｃ，３０４ｄと、これらアンドゲートの出力を受けるオアゲート３０４ｅとからなる。
アンドゲート３０４ａは、周辺デバイス１０３のバス要求を受け、期間２０４の初期のタイミング２０３で発生する監視パルスＰDを受ける。アンドゲート３０４ｂは、周辺デバイス１０４のバス要求を受け、期間２０４の初期のタイミング２０５で発生する監視パルスＰDを受ける。アンドゲート３０４ｃは、周辺デバイス１０４のバス要求を受け、期間２０８の初期のタイミング２０７で発生する監視パルスＰDを受ける。アンドゲート３０４ｄは、周辺デバイス１０５のバス要求を受け、期間２１０の初期のタイミング２０９で発生する監視パルスＰDを受ける。
【００２０】
バス要求の信号は、ＬＯＷレベル（以下”Ｌ”）有意の信号であり、それぞれの周辺デバイスにバス要求があると、前記の監視パルスＰDの発生タイミングに応じて各アンドゲートの出力は、”Ｌ”になる。その結果、オアゲート３０４ｅの出力は、バス要求があると”Ｌ”になるので、カウンタ３０１は、カウント値が加えられない。一方、いずれかの監視期間にバス要求がない場合には、オアゲート３０４ｅの出力は、ＨＩＧＨレベル（以下”Ｈ”）になり、カウンタ３０１に数値２が加えられ、カウント値が２だけ加算される。
これにより周辺デバイスバス要求検出回路３０４は、周辺デバイス（１０３，１０４，１０５，１０６）のバス使用時間にバス要求があるか否かを検出して、バス権要求がない場合には、カウンタ３０１をカウントアップすることで、プロセッサ１０１にバス使用権を解放する。
なお、オアゲート３０４ｅの出力は、バス調停制御回路３０６に加えられ、この出力が”Ｌ”であるときには、バス要求があるとして、発生したタイミングに対応する周辺デバイスにバス権を与える信号をバス調停制御回路３０６は送出する。
【００２１】
監視タイミング発生回路３０３は、プロセッサバス要求検出回路３０５にタイミングパルスＰcを送出してプロセッサ１０１のバス要求の監視をする。プロセッサバス要求検出回路３０５は、アンドゲート３０５ａとインバータ３０５ｂとからなり、タイミングパルスＰcを受けるアンドゲート３０５ａがインバータ３０５ｂを介してプロセッサ１０１からのバス要求を受ける。これによりバス要求は”Ｈ”にされる。アンドゲート３０５ａは、コンパレータ３０２の出力も受ける。その結果、カウント値がゼロにならない限り、プロセッサ１０１からのバス要求がアンドゲート３０５ａを介してバス調停制御回路３０６に受付けられる。アンドゲート３０５ａの出力は、カウンタ３０１の減算出力に入力され、１回のアクセスごとにカウント値が１減算される。これにより、初期設定された２回だけは、言い換えれば、期間２０２の期間だけはアクセスが可能となる。
アンドゲート３０５ａとオアゲート３０４ｅの出力は、監視タイミング発生回路３０３に入力され、いずれかの周辺デバイスの期間において周辺デバイスからバス要求がなく、かつ、プロセッサ１０１のバス要求があるときには、監視タイミング発生回路３０３は、図４の（ｄ）に示すように、監視パルスＰdの次の発生を周期Ｔ／１０だけ、手前にはシフトさせて発生させる。（ｄ）は、周辺デバイス(1)１０３にバス権の要求がない場合である。そして、監視パルスＰdに応じてそれに対応した周辺デバイスにおいてバス要求がないときにはプロセッサ１０１にＴ／１０の期間だけバス使用権が与えられる。これが図３の（ｂ）に示す例である。
【００２２】
さて、カウンタ３０１の出力は、コンパレータ３０２に入力されて、その値がゼロ以下か否かが比較され、ゼロ以下になったときに、ＬＯＷレベルの検出出力がアンドゲート３０５ｂに送出されてプロセッサ１０１のバス要求が阻止される。
バス調停制御回路３０６は、オアゲート３０４ｅの出力が”Ｌ”であるときに、プロセッサか１０１らのバス要求を受けると、周辺デバイスのバス使用期間をＴ／６に制限して残りの期間Ｔ／１２の最初のタイミングでバス権をプロセッサ１０１に与える信号をプロセッサ１０１に送出してバス１１０をプロセッサ１０１に解放する。
バス調停制御回路３０６は、オアゲート３０４ｅの出力が”Ｈ”であるときに、すなわち、周辺デバイスからのバス要求がなったときには、プロセッサか１０１らのバス要求を受けると、その周辺デバイスのバス使用期間をＴ／５のうち期間Ｔ／１０分のバス権をプロセッサ１０１に与える信号をプロセッサ１０１に送出してバス１１０をプロセッサ１０１に解放する。なお、この場合に図４の（ｄ）のような制御をせずに、バス使用期間をＴ／５のうち期間Ｔ／１０分のバス権を２回プロセッサ１０１に与える信号を発生して期間Ｔ／１０のプロセッサにバスを使用させてもよい。
【００２３】
図３の（ａ）の例について、バス制御装置の動作を説明すると、周辺デバイス(1)１０３がバス要求監視時間２０３内に、周辺デバイス(2)１０４がバス要求監視時間２０５内に、周辺デバイス(3)１０５がバス要求監視時間２０７内に周辺デバイス(4)１０６がバス要求監視時間２０９内にそれぞれバスの使用を要求しており、各周辺デバイス（１０３，１０４，１０５，１０６）のバス要求監視時（２０３，２０５，２０７，２０９）には、カウンタ３０１は、加算されずプロセッサ１０１が周辺デバイス側バス１１０を使用した時のみ前記カウンタ３０１の値を１ずつ減算する。
プロセッサ１０１が２回目にバスを使用した際に前記カウンタ３０１の値は、０となっているためバス制御装置１０７は、周辺デバイス(3)１０５のバス使用時間２０８後及び周辺デバイス(4)１０６のバス使用時間２１０後でプロセッサ１０１のバス権要求があってもコンパレータ３０２の出力結果が”Ｌ”（＝偽）である限り、プロセッサ１０１にバス権が与えられない。
そして、周辺デバイス(4)１０６のバス使用時間２１０が終了すると、基準時間Ｔをすべて使用しているため監視周期の先頭２１５を前記カウンタ３０１に発行し、前記カウンタの３０１値を初期値２に戻す。
【００２４】
図３の（ｂ）の例について、バス制御装置の動作を説明すると、周辺デバイス(1)１０３がバス要求監視時間２０３内にバス権の要求がなく、前記カウンタ３０１の初期値２に対してバス権要求のなかった周辺デバイス(1)１０３のバス要求監視時間２０３後に前記カウンタ３０１に２を加算し値を４とする。その後プロセッサ１０１が周辺デバイス側バス１１０を使用したとき、前記カウンタ３０１の値を１ずつ減算しても全てのプロセッサ１０１のバス権要求のタイミングで前記カウンタ３０１の値が０より大きな値を示すためプロセッサ１０１の周辺デバイス側バス１１０へのアクセスが可能となる。
【００２５】
以上のことより各周辺デバイス（１０３，１０４，１０５，１０６）がバスを使用しなかった時間を利用し、プロセッサ１０１が基準時間Ｔ内にバスを使用できる時間を偏りなく増やすことができるためプロセッサ１０１の周辺デバイス側バス１１０の待ち時間を少なくできる。
【００２６】
【発明の効果】
以上説明してきたように、この発明にあっては、プロセッサと前記プロセッサとは別のバスに接続される複数の周辺デバイスを持ち、各周辺デバイスにバス権を割当てられるまでの時間に制限がある装置において、前記周辺デバイスの制限時間内に前記周辺デバイスからのバス使用状況によりプロセッサのバス割当て時間を可変させることで周辺デバイスがバスを要求してからバスを使用するまでの時間を保証できプロセッサが優先的かつ有効的ににバスを使用させ、プロセッサの待ち時間を減少させることができる。
【図面の簡単な説明】
【図１】図１は、この発明のバス制御装置を適用した一実施例のブロック図である。
【図２】図２は、このバス制御装置を有するコンピュータシステムの構成図である。
【図３】図３は、バス調停制御回路のバス権の期間管理の説明図であって、（ａ）は、周辺デバイスにバス要求がある場合の説明図であり，（ｂ）は、周辺デバイスの１つにバス要求がない場合の説明図である。
【図４】図４は、図１の監視タイミング発生回路のタイミングパルスの説明図である。
【符号の説明】
１０１…プロセッサ、１０２…メインメモリ、
１０３…周辺デバイス(1)、１１０４…周辺デバイス(2)
１０５…周辺デバイス(3)、１０６…周辺デバイス(4)、
１０７…バス制御装置、１０８…バッファメモリ、
１０９…プロセッサ側バス、
１１０…周辺デバイス側バス、
１１１…アクセス回数カウンタ、
３０１…カウンタ、
３０２…コンパレータ、
３０３…監視タイミング発生回路、
Ｔ…基準時間、ＴP…プロセッサのバス使用時間。
【図１】
0003699529.tif 000002
【図２】
0003699529.tif 000003
【図３】
0003699529.tif 000004
【図４】
0003699529.tif 000005