(57)【要約】【課題】バスマスタユニットの優先順位に依存することなく、所定の期間、任意のバスマスタユニットが最優先で共有バスを使用することができるバス制御装置を提供する。【解決手段】バスマスタユニット１０−１〜１０−ｎはバス使用許可信号ＡＣＫ１〜ＡＣＫｎがアサートとなった回数に基づいて優先順位を選択するとともに、バス使用要求信号ＲＥＱ１〜ＲＥＱｎを優先させるバス不可分要求信号ＮＯＤＩＶ１〜ＮＯＤＩＶｎを送信し、バス調停部３０は、バス不可分要求信号がネゲートの場合にはバス使用要求信号ＲＥＱ１〜ＲＥＱｎおよび優先順位信号ＰＲＩＯ１〜ＰＲＩＯｎが示す優先順位に基づいて共有バス５０を使用するバスマスタユニット１０−１〜１０−ｎを選択し、バス不可分要求信号がアサートの場合には、当該バス不可分要求信号を送信したバスマスタユニット１０−１〜１０−ｎを優先して選択する。【選択図】        図１
2005339260.tif 000002
【特許請求の範囲】
【請求項１】
共有バスに接続された複数のバスマスタユニットと、これらバスマスタユニットから入力されるそれぞれの優先順位に基づいて前記共有バスを使用するバスマスタユニットを選択し、選択したバスマスタユニットに共有バスの使用を許可するバス調停部とを備えるバス制御装置において、
前記バスマスタユニットは、
前記共有バスの使用を許可された回数をカウントするバス使用許可カウント部と、
このバス使用許可カウント部のカウント値に基づいて予め定められた異なる優先順位を選択する優先順位設定部と、
この優先順位設定部によって選択された優先順位、前記共有バスの使用要求、および当該バスマスタユニットの使用要求を優先させる優先要求を前記バス調停部に送信する優先順位送信部と、
を備え、
前記バス調停部は、
前記優先要求がネゲートの場合には、前記使用要求および前記優先順位に基づいて前記共有バスを使用するバスマスタユニットを選択して前記共有バスの使用を許可し、前記優先要求がアサートの場合には、当該優先要求を送信したバスマスタユニットを選択して前記共有バスの使用を許可すること、
を特徴とするバス制御装置。
【請求項２】
前記優先順位送信部は、
前記カウント値が予め定められた範囲内の場合に前記優先要求をアサートにすること、
を特徴とする請求項１に記載のバス制御装置。
【請求項３】
前記優先順位送信部は、
前記使用要求をアサートにする要因となった命令を解析して、解析の結果に基づいて前記優先要求をアサートにすること、
を特徴とする請求項１または２に記載のバス制御装置。
【請求項４】
共有バスに接続された複数のバスマスタユニットと、これらバスマスタユニットから入力されるそれぞれの優先順位に基づいて前記共有バスを使用するバスマスタユニットを選択し、選択したバスマスタユニットに共有バスの使用を許可するバス調停部とを備えるバス制御装置において、
前記バスマスタユニットは、
予め定められた優先順位、前記共有バスの使用要求、および当該バスマスタユニット以外のバスマスタユニットが送信した前記共有バスの使用要求を無効にする変更要求を送信するバス使用要求送信部、
を備え、
前記バス調停部は、
前記変更要求がネゲートの場合には、前記複数のバスマスタユニットからの使用要求をスルーで出力し、前記変更要求がアサートの場合には当該変更要求を送信したバスマスタユニットとは異なるバスマスタユニットからの使用要求をネゲートにして出力するバス使用要求変更部、
を備え、
このバス使用要求変更部から出力された使用要求および前記優先順位に基づいて前記共有バスを使用するバスマスタユニットを選択して前記共有バスの使用を許可すること、
を特徴とするバス制御装置。
【請求項５】
前記バス使用要求送信部は、
前記使用要求をアサートにする要因となった命令を解析して、解析の結果に基づいて前記変更要求をアサートにすること、
を特徴とする請求項４に記載のバス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有バスに接続されている複数のバスマスタユニットのバス使用要求を調停するバス制御装置に関するものであり、特に、競合したバス使用要求を調停するバス制御装置に関するものである。
【背景技術】
【０００２】
複数のバスマスタユニットが共有バスを介して主記憶装置などを共有するバス制御装置は、バス調停部が、各バスマスタユニットが共有バスを使用する際に出力するバス使用要求信号、および共有バスを使用する優先順位を示すバス優先順位信号に基づいてバス使用要求信号を出力しているバスマスタユニットの中から１つのバスマスタユニットを選択し、選択したバスマスタユニットに対して共有バスの使用を許可するバス使用許可信号を出力し、バス使用許可信号を受けたバスマスタユニットが共有バスを使用する。すなわち、複数のバスマスタユニットがバス調停部によって制御されて、時分割で共有バスを使用してデータ転送を行っている。
【０００３】
一般的に、同時に複数のバス使用要求信号が入力された場合、バス調停部は、バス使用要求信号を出力しているバスマスタユニットの中で、最も優先順位の高いバスマスタユニットを選択する。また、優先順位が同一のバスマスタユニットからバス使用要求信号が入力された場合、バス調停部は、時系列で最も早くにバス使用要求信号を出力したバスマスタユニット、または予め定められた同一優先順位間の優先順位にしたがって共有バスの使用を許可するバスマスタユニットを選択する。
【０００４】
しかしながら、バス調停部がバスマスタユニットの優先順位に基づいてバスマスタユニットを選択するバス調停を行うバス制御装置では、バスマスタユニットに予め設定されている優先順位が固定であるため、高い優先順位のバスマスタユニットが複数存在した場合には、低い優先順位のバスマスタユニットは延々共有バスを使用できないという問題があった。
【０００５】
このような問題を改善するために、従来からバスマスタユニットの優先順位を変更する種々の技術が考えられている。たとえば、特許文献１には、機能モジュール（バスマスタユニット）毎に主記憶装置に対するアクセス回数、またはアクセス要求発生から当該アクセス要求が受け付けられるまでの待ち時間（使用要求待ち時間）を一定周期でモニタリングして、このモニタリングした結果に基づいてバスマスタユニットの優先順位を変更する優先順位設定回路の技術が開示されている。
【０００６】
具体的には、アクセス回数に基づいて優先順位を変更する場合には、一定周期内で最もアクセス回数が多かったバスマスタユニットに最も高い優先順位を設定するか、アクセス回数が多かったバスマスタユニットから順に高い優先順位を設定する。使用要求待ち時間に基づいて優先順位を変更する場合には、一定周期内で最も使用要求待ち時間が長かったバスマスタユニットに最も高い優先順位を設定するか、使用待ち時間が長かったバスマスタユニットから順に高い優先順位を設定する。
【０００７】
このように特許文献１に記載の従来技術では、一定期間内の各バスマスタユニットの共有バスの使用状態に基づいて優先順位を変更するようにしているので、システム・パフォーマンスの優れたバス調停を行うことができる。
【０００８】
【特許文献１】特開昭６４−５９５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の従来技術では、最も高い優先順位が設定されたバスマスタユニット以外のバスマスタユニットは、当該バスマスタユニットよりも高い優先順位が設定されたバスマスタユニットとの競合が発生した場合、連続して共有バスを使用することはできない。そのため、使用形態や共有バスの使用回数が予め定められたバスマスタユニットでは、連続した複数回のデータ転送を行うことができず、システム全体の処理能力を低下させてしまうことがあるという問題があった。
【００１０】
この発明は上記に鑑みてなされたもので、バスマスタユニットの優先順位に依存することなく、所定の期間、任意のバスマスタユニットが最優先で共有バスを使用することができるバス制御装置を得ることを目的としている。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明にかかるバス制御装置は、共有バスに接続された複数のバスマスタユニットと、これらバスマスタユニットから入力されるそれぞれの優先順位に基づいて前記共有バスを使用するバスマスタユニットを選択し、選択したバスマスタユニットに共有バスの使用を許可するバス調停部とを備えるバス制御装置において、前記バスマスタユニットは、前記共有バスの使用を許可された回数をカウントするバス使用許可カウント部と、このバス使用許可カウント部のカウント値に基づいて予め定められた異なる優先順位を選択する優先順位設定部と、この優先順位設定部によって選択された優先順位、前記共有バスの使用要求、および当該バスマスタユニットの使用要求を優先させる優先要求を前記バス調停部に送信する優先順位送信部と、を備え、前記バス調停部は、前記優先要求がネゲートの場合には、前記使用要求および前記優先順位に基づいて前記共有バスを使用するバスマスタユニットを選択して前記共有バスの使用を許可し、前記優先要求がアサートの場合には、当該優先要求を送信したバスマスタユニットを選択して前記共有バスの使用を許可すること、を特徴とする。
【発明の効果】
【００１２】
この発明にかかるバス制御装置によれば、バスマスタユニットは共有バスの使用を許可された回数に基づいて優先順位を選択するとともに、使用要求を優先させる優先要求を送信し、バス調停部は、優先要求がネゲートの場合には使用要求および優先順位に基づいて共有バスを使用するバスマスタユニットを選択し、優先要求がアサートの場合には、当該優先要求を送信したバスマスタユニットを優先して選択するようにしているので、共有バスの使用状態によって予め定められた異なる優先順位の変更だけでなく、所定の期間は最も優先順位を高くすることが可能となり、優先順位が低いバスマスタユニットでも連続した複数回のデータ転送を高速に行ってシステム全体の処理能力を上げることができる。
【発明を実施するための最良の形態】
【００１３】
以下に、この発明にかかるバス制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
図１〜図３を用いてこの発明の実施の形態１を説明する。図１は、この発明にかかる実施の形態１のバス制御装置の構成を示すブロック図である。この発明にかかる実施の形態１のバス制御装置は、共有バス５０を介して図示しない他の装置、たとえば主記憶装置などにアクセスするｎ（１＜ｎ，ｎは自然数）台のバスマスタユニット１０−１〜１０−ｎと、バスマスタユニット１０−１〜１０−ｎの共有バス５０へのアクセスを制御するバス調停部３０とを備えている。
【００１５】
バスマスタユニット１０−１〜１０−ｎは、それぞれ同じ機能を備えている。図２に示したバスマスタユニット１０−１の構成を示すブロック図を参照して、バスマスタユニットの機能を説明する。
【００１６】
バスマスタユニット１０−１は、バス使用許可カウント部１１１と、優先順位設定部１１３と、優先順位送信部１１５とを備えている。バス使用許可カウント部１１１は、バス調停部３０から入力されるバス使用許可信号ＡＣＫ１が有効となった回数をカウントするカウンタ機能を備え、カウント値が予め定められた値になるとリセットされて、新たにバス使用許可信号ＡＣＫ１が有効となった回数をカウントする。バス使用許可カウント部１１１は、カウント値ＣＮＴ１を優先順位設定部１１３および優先順位送信部１１５に出力する。なお、カウンタをリセットする値は、外部から設定するようにしてもよい。
【００１７】
優先順位設定部１１３は、予め異なる優先順位が定められており、バス使用許可カウント部１１１から入力されるカウント値ＣＮＴ１に基づいて優先順位を選択する。優先順位設定部１１３は、選択した優先順位を優先順位送信部１１５に出力する。なお、優先順位設定部１１３が選択する優先順位は、外部から設定するようにしてもよい。
【００１８】
優先順位送信部１１５は、共有バス５０の使用を要求するバス使用要求信号ＲＥＱ１と、優先順位設定部１１３が選択した優先順位を示す優先順位信号ＰＲＩＯ１と、自ユニットが出力したバス使用要求信号ＲＥＱ１を最優先にするバス不可分要求信号ＮＯＤＩＶ１とをバス調停部３０に出力する機能を備えている。優先順位送信部１１５は、共有バス５０を使用する要求の際にバス使用要求信号ＲＥＱ１をアサートにする。また、バス使用許可カウント部１１１から入力されるカウント値ＣＮＴ１に基づいてバス不可分要求信号ＮＯＤＩＶ１をアサートまたはネゲートにする。
【００１９】
バス調停部３０は、バスマスタユニット１０−１〜１０−ｎの優先順位送信部１１５から入力されるバス使用要求信号ＲＥＱ１〜ＲＥＱｎ、優先順位信号ＰＲＩＯ１〜ＰＲＩＯｎ、およびバス不可分要求信号ＮＯＤＩＶ１〜ＮＯＤＩＶｎに基づいて時系列にバス調停を行う。バス調停部３０は、バス調停によって共有バス５０の使用を許可するバスマスタユニット１０−１〜１０−ｎに対応するバス使用許可信号ＡＣＫ１〜ＡＣＫｎをアサートにする。バス調停部３０は、同一時刻に唯一１本のバス使用許可信号ＡＣＫｉ（１≦ｉ≦ｎ，ｉは自然数）をアサートにして、バス使用許可信号ＡＣＫｉに対応するバスマスタユニット１０−ｉから入力されたバス使用要求信号ＲＥＱｉをネゲートにする。
【００２０】
つぎに、図３のタイミングチャートを参照して、バスマスタユニットが３台の場合を例に挙げて、この発明にかかる実施の形態１のバス制御装置の動作を説明する。図３では、バス制御装置はクロックＣＬＫ１を基準としてクロックＣＬＫ１の３周期分を１ステートとして動作しており、クロックステートＳ１ｍ（１＜ｍ，ｍは自然数）はバス調停部３０がバス調停を行うフェーズであり、クロックステートＳ２ｍはバス調停部３０が調停の結果に基づいてバス使用許可信号ＡＣＫ１〜ＡＣＫ３の何れか１つをアサートにするバス転送開始フェーズであり、クロックステートＳ３ｍはその他の処理を行うフェーズである。
【００２１】
なお、ここでは説明を簡略化するために、バスマスタユニット１０−１の優先順位設定部１１３はバス使用許可カウント部１１１から入力されるカウント値ＣＮＴ１に依存することなく優先順位「１」を選択し、バスマスタユニット１０−２の優先順位設定部１１３はバス使用許可カウント部１１１から入力されるカウント値ＣＮＴ２に依存することなく優先順位「３」を選択するものとする。
【００２２】
また、バスマスタユニット１０−３の優先順位設定部１１３には優先順位「２」および優先順位「４」が予め設定されており、バス使用許可カウント部１１１から入力されるカウント値ＣＮＴ３が「０」または「３」の時に優先順位「４」を選択し、カウント値ＣＮＴ３が「１」または「２」の時に優先順位「２」を選択するものとする。なお、優先順位は、若番ほど優先順位が高いものとする。
【００２３】
さらに、バスマスタユニット１０−３のバス使用許可カウント部１１１はカウント値ＣＮＴ３が「３」になるとカウンタをリセットするものとし、バスマスタユニット１０−３の優先順位送信部１１５は、バス使用許可カウント部１１１から入力されるカウント値ＣＮＴ３が「１」または「２」の時にバス不可分要求信号ＮＯＤＩＶ３をアサートにして、カウント値ＣＮＴ３が「０」または「３」の時にバス不可分要求信号ＮＯＤＩＶ３をネゲートにするものとする。
【００２４】
クロックステートＳ１１において、バスマスタユニット１０−１〜１０−３の優先順位送信部１１５はバス使用要求信号ＲＥＱ１〜ＲＥＱ３をアサート（この場合は“Ｈ”）に、バス不可分要求信号ＮＯＤＩＶ１をネゲート（この場合は“Ｌ”）にする。
【００２５】
バス調停部３０は、バス使用要求信号ＲＥＱ１〜ＲＥＱ３が“Ｈ”になったことを検出してバス調停を行う。バス調停部３０は、バス不可分要求信号ＮＯＤＩＶ１〜ＮＯＤＩＶ３が“Ｌ”であるので、優先順位信号ＰＲＩＯ１〜ＰＲＩＯ３が示す優先順位に基づいて共有バス５０の使用を許可するバスマスタユニット１０−１〜１０−３を選択する。この場合は、優先順位信号ＰＲＩＯ１が優先順位「１」を示し、優先順位信号ＰＲＩＯ２が優先順位「３」を示し、優先順位信号ＰＲＩＯ３が優先順位「４」を示しているので、バス調停部３０は、最も優先順位の高い優先順位「１」を示す優先順位信号ＰＲＩＯ１を出力しているバスマスタユニット１０−１を選択する。図３においては、選択されたバス使用要求信号ＲＥＱ１〜ＲＥＱ３を「勝」と示し、選択されなかったバス使用要求信号ＲＥＱ１〜ＲＥＱ３を「負」と示している。
【００２６】
クロックステートＳ２１において、バス調停部３０は、選択したバスマスタユニット１０−１へのバス使用許可信号ＡＣＫ１をアサート（この場合は“Ｈ”）にして、選択されなかったバスマスタユニット１０−２，１０−３へのバス使用許可信号ＡＣＫ１，ＡＣＫ２をネゲート（この場合は“Ｌ”）にする。これにより、バスマスタユニット１０−１は、共有バス５０にアクセスしてバス転送を開始する。
【００２７】
クロックステートＳ３１において、バス調停部３０は、共有バス５０の使用要求を受け付けたバス使用要求信号ＲＥＱ１をネゲート（この場合は“Ｌ”）にする。
【００２８】
クロックステートＳ１２において、バス調停部３０は、バス使用要求信号ＲＥＱ２，ＲＥＱ３が“Ｈ”であることを検出してバス調停を行う。バス調停部３０は、バス不可分要求信号ＮＯＤＩＶ２，ＮＯＤＩＶ３が“Ｌ”であるので、優先順位信号ＰＲＩＯ２，ＰＲＩＯ３が示す優先順位に基づいて共有バス５０を使用を許可するバスマスタユニット１０−２，１０−３を選択する。この場合は、優先順位信号ＰＲＩＯ２が優先順位「３」を示し、優先順位信号ＰＲＩＯ３が優先順位「４」を示しているので、バス調停部３０は、優先順位の高いバスマスタユニット１０−２を選択する。
【００２９】
クロックステートＳ２２において、バス調停部３０は、選択したバスマスタユニット１０−２へのバス使用許可信号ＡＣＫ２を“Ｈ”にする。これにより、バスマスタユニット１０−２は、共有バス５０にアクセスしてバス転送を開始する。
【００３０】
クロックステートＳ３２において、バス調停部３０は、共有バス５０の使用要求を受け付けたバス使用要求信号ＲＥＱ２を“Ｌ”にする。
【００３１】
クロックステートＳ１３において、バス調停部３０は、バス使用要求信号ＲＥＱ３が“Ｈ”であることを検出してバス調停を行う。バス調停部３０は、バス使用要求信号ＲＥＱ３のみが“Ｈ”であるので、バス使用要求信号ＲＥＱ３を出力しているバスマスタユニット１０−３を選択する。
【００３２】
クロックステートＳ２３において、バス調停部３０は、選択したバスマスタユニット１０−３へのバス使用許可信号ＡＣＫ３を“Ｈ”にする。これにより、バスマスタユニット１０−３は、共有バス５０にアクセスしてバス転送を開始する。
【００３３】
一方、バスマスタユニット１０−１，１０−２は新たに共有バス５０を使用する状態が発生したため、バスマスタユニット１０−１，１０−２の優先順位送信部１１５はバス使用要求信号ＲＥＱ１，ＲＥＱ２を“Ｈ”にする。
【００３４】
クロックステートＳ３３において、バス調停部３０は、共有バス５０の使用要求を受け付けたバス使用要求信号ＲＥＱ３を“Ｌ”にする。また、バスマスタユニット１０−３のバス使用許可カウント部１１１のカウンタは、バス使用許可信号ＡＣＫ３が“Ｈ”をカウントしてカウント値ＣＮＴ３を「０」から「１」にする。
【００３５】
クロックステートＳ１４において、バスマスタユニット１０−３は新たに共有バス５０を使用する状態が発生したため、バスマスタユニット１０−３の優先順位送信部１１５はバス使用要求信号ＲＥＱ３を“Ｈ”にする。また、バス使用許可カウント部１１１のカウント値ＣＮＴ３が「１」であるので、バスマスタユニット１０−３の優先順位設定部１１３は優先順位「２」を選択する。すなわち、優先順位設定部１１３は、バス使用要求信号ＲＥＱ３による共有バス５０の使用要求が受け付けられた回数が予め定められた回数になったので、優先順位を「４」から「２」に変更する。
【００３６】
バスマスタユニット１０−３の優先順位設定部１１３が優先順位を変更したので、優先順位送信部１１５は、優先順位「２」を示す優先順位信号ＰＲＩＯ３を出力する。また、バスマスタユニット１０−３のバス使用許可カウント部１１１から入力されるカウント値ＣＮＴ３が「１」であるので、優先順位送信部１１５は、バス不可分要求信号ＮＯＤＩＶ３をアサート（この場合は“Ｈ”）にする。
【００３７】
バス調停部３０は、バス使用要求信号ＲＥＱ１〜ＲＥＱ３が“Ｈ”になったことを検出してバス調停を行う。優先順位信号ＰＲＩＯ１は優先順位「１」を示し、優先順位信号ＰＲＩＯ２は優先順位「３」を示し、優先順位信号ＰＲＩＯ３は優先順位「２」を示している。優先順位は若番ほど優先順位が高いので、バスマスタユニット１０−１〜１０−３の中でバスマスタユニット１０−１が最も優先順位が高い。しかし、バスマスタユニット１０−３が出力しているバス不可分要求信号ＮＯＤＩＶ３が“Ｈ”であるので、バス調停部３０は、優先順位信号ＰＲＩＯ１〜ＰＩＲＯ３が示す優先順位に依存することなく、バスマスタユニット１０−３を選択する。
【００３８】
クロックステートＳ２４において、バス調停部３０は、選択したバスマスタユニット１０−３へのバス使用許可信号ＡＣＫ３を“Ｈ”にし、バスマスタユニット１０−３は共有バス５０にアクセスしてバス転送を開始する。
【００３９】
クロックステートＳ３４において、バス調停部３０は、共有バス５０の使用要求を受け付けたバス使用要求信号ＲＥＱ３を“Ｌ”にする。また、バスマスタユニット１０−３のバス使用許可カウント部１１１のカウンタは、バス使用許可信号ＡＣＫ３が“Ｈ”をカウントしてカウント値ＣＮＴ３を「１」から「２」にする。
【００４０】
クロックステートＳ１５，Ｓ２５においては、クロックステートＳ１４，Ｓ２５と同様に、バス調停部３０は、バスマスタユニット１０−３を選択してバスマスタユニット１０−３へのバス使用許可信号ＡＣＫ３を“Ｈ”にする。
【００４１】
クロックステートＳ３５において、バス調停部３０は、共有バス５０の使用要求を受け付けたバス使用要求信号ＲＥＱ３を“Ｌ”にする。また、バスマスタユニット１０−３のバス使用許可カウント部１１１のカウンタは、バス使用許可信号ＡＣＫ３が“Ｈ”をカウントしてカウント値ＣＮＴ３を「２」から「３」にする。
【００４２】
クロックステートＳ１６において、バスマスタユニット１０−３のバス使用許可カウント部１１１は、カウンタのカウント値ＣＮＴ３が予め定められた値「３」になっているので、カウンタをリセットする。これによりカウンタ値ＣＮＴ３は「０」になる。
【００４３】
バスマスタユニット１０−３のバス使用許可カウント部１１１のカウンタ値ＣＮＴ３が「０」になると、優先順位設定部１１３は、優先順位「４」を選択して優先順位を「２」から「４」に変更し、優先順位送信部１１５はバス不可分要求信号ＮＯＤＩＶ３を“Ｌ”にする。これにより、バスマスタユニット１０−３は初期状態となる。
【００４４】
バス調停部３０は、バス使用要求信号ＲＥＱ１，ＲＥＱ２が“Ｈ”であることを検出してバス調停を行う。バス不可分要求信号ＮＯＤＩＶ１，ＮＯＤＩＶ２は“Ｌ”であるので、バス調停部３０は、優先順位信号ＰＲＩＯ１，ＰＲＯＩ２が示す優先順位に基づいてバスマスタユニット１０−１を選択する。
【００４５】
このようにこの実施の形態１では、バスマスタユニットは共有バスの使用を許可された回数に基づいて優先順位を選択するとともに、共有バスの使用要求を示すバス使用要求信号を優先させる優先要求であるバス不可分要求信号を送信し、バス調停部は、バス不可分要求信号がネゲートの場合には使用要求であるバス使用要求信号および優先順位信号が示す優先順位に基づいて共有バスを使用するバスマスタユニットを選択し、バス不可分要求信号がアサートの場合には、当該バス不可分要求信号を送信したバスマスタユニットを優先して選択するようにしているので、共有バスの使用状態によって予め定められた異なる優先順位の変更だけでなく、所定の期間は最も優先順位を高くすることができ、優先順位が低いバスマスタユニットでも連続した複数回のデータ転送を高速に行ってシステム全体の処理能力を上げることができる。
【００４６】
なお、この実施の形態１では、優先順位送信部１１５が、バス使用許可カウント部１１１のカウント値によってバス不可分要求信号をアサート、またはネゲートにするようにしたがこれに限るものではない。優先順位送信部１１５または優先順位設定部１１３が、バス使用要求信号をアサートにする要因となった命令を解析して、特定の命令、たとえば、連続したデータ転送処理や緊急のデータ転送処理などの命令の場合にバス不可分要求信号をアサートにするようにしてもよい。これにより、命令対応して最優先の処理ができるようになる。
【００４７】
実施の形態２．
図４および図５を参照して、この発明の実施の形態２を説明する。図４は、この発明にかかる実施の形態２のバス制御装置の構成を示すブロック図である。この発明にかかる実施の形態２のバス制御装置は、共有バス５０を介して図示しない他の装置、たとえば主記憶装置などにアクセスするｎ（１＜ｎ，ｎは自然数）台のバスマスタユニット７０−１〜７０−ｎと、バスマスタユニット７０−１〜７０−ｎの共有バス５０へのアクセスを制御するバス調停部９０とを備えている。
【００４８】
バスマスタユニット７０−１〜７０−ｎは、バス使用要求送信部７１を備えている。バスマスタユニット７０−１〜７０−ｎのバス使用要求送信部７１は、共有バス５０の使用を要求するバス使用要求信号ＲＥＱ１〜ＲＥＱｎと、予め定められた優先順位を示す優先順位信号ＰＲＩＯ１〜ＰＲＩＯｎと、バス使用要求信号ＲＥＱ１〜ＲＥＱｎをバス調停の対象としないように要求するバス使用要求変更信号ＣＨＥ１〜ＣＨＥｎとをバス調停部９０に出力する機能を備えている。バスマスタユニット７０−１〜７０−ｎのバス使用要求送信部７１は、特定の期間、たとえば、バス使用要求信号ＲＥＱ１〜ＲＥＱｎをアサートにする要因となった命令を解析して、解析した結果に基づいてバス使用要求変更信号ＣＨＥ１〜ＣＨＥｎをアサートにする。なお、優先順位は、外部から設定するようにしてもよい。
【００４９】
バス調停部９０は、バス使用要求変更信号ＣＨＥ１〜ＣＨＥｎに基づいてバス使用要求信号ＲＥＱ１〜ＲＥＱｎを変更するバス使用要求変更部９１を備えている。バス使用要求変更部９１は、バス使用要求変更信号ＣＨＥ１〜ＣＨＥｎがネゲートの場合、バス使用要求信号ＲＥＱ１〜ＲＥＱｎをスルーで出力し、バス使用要求変更信号ＣＨＥ１〜ＣＨＥｎがアサートの場合、アサートとなっているバス使用要求変更信号ＣＨＥ１〜ＣＨＥｎを出力しているバスマスタユニット７０−１〜７０−ｎのバス使用要求信号ＲＥＱ１〜ＲＥＱｎ以外のバス使用要求信号ＲＥＱ１〜ＲＥＱｎをネゲートにして出力する。すなわち、バス使用要求変更部９１は、バス使用要求変更信号ＣＨＥ１〜ＣＨＥｎがアサートとなっているバスマスタユニット７０−１〜７０−ｎのみをバス調停対象として、それ以外はバス調停の対象外となるようにバス使用要求信号ＲＥＱ１〜ＲＥＱｎを変更することでバス調停の対象とするバスマスタユニット７０−１〜７０ーｎを決定する。
【００５０】
バス調停部９０は、バス使用要求変更部９１から出力されたバス使用要求信号ＲＥＱ１〜ＲＥＱｎおよび優先順位信号ＰＲＩＯ１〜ＰＲＩＯｎに基づいてバス調停を行って、共有バス５０の使用を許可するバスマスタユニット７０−１〜７０−ｎに対応するバス使用許可信号ＡＣＫ１〜ＡＣＫｎをアサートにする。
【００５１】
バス調停部９０は、バス調停によって共有バス５０の使用を許可するバスマスタユニット７０−１〜７０−ｎに対応するバス使用許可信号ＡＣＫ１〜ＡＣＫｎをアサートにする。バス調停部９０は、同一時刻に唯一１本のバス使用許可信号ＡＣＫｉ（１≦ｉ≦ｎ，ｉは自然数）をアサートにして、バス使用許可信号ＡＣＫｉに対応するバスマスタユニット７０−ｉから入力されたバス使用要求信号ＲＥＱｉをネゲートにする。
【００５２】
つぎに、図５のタイミングチャートを参照して、バスマスタユニットが２台の場合を例に挙げて、この発明にかかる実施の形態２のバス制御装置の動作を説明する。なお、バス制御装置の処理フェーズは、実施の形態１で説明した図３と同様であるが、ここではバス調停を行うクロックステートＳ１ｍのみ記載して、クロックステートＳ２ｍ，Ｓ３ｍについては簡略化している。
【００５３】
また、バスマスタユニット７０−１のバス使用要求送信部７１には優先順位「１」が設定されており、バスマスタユニット７０−２のバス使用要求送信部７１には優先順位「２」が設定されているものとする。なお、優先順位は、若番ほど優先順位が高いものとする。しがたって、この場合は、バスマスタユニット７０−１がバスマスタユニット７０−２よりも優先順位が高く設定されている。
【００５４】
クロックステートＳ１１からクロックステートＳ１５までは、バス使用要求変更信号ＣＨＥ１，ＣＨＥ２はネゲート（この場合は“Ｌ”）であるので、バス使用要求変更部９１は、バスマスタユニット７０−１，７０−２をバス調停の対象と決定する。したがって、バス調停部９０は、一般的なバス調停、すなわち優先順位信号ＰＲＩＯ１，ＰＲＩＯ２が示す優先順位に基づいてバス調停を行う。この場合は、優先順位信号ＰＲＩＯ１は優先順位「１」を示し、優先順位信号ＰＲＩＯ２は優先順位「２」を示しているので、バス使用要求信号ＲＥＱ１，ＲＥＱ２がともに“Ｈ”の場合、バス調停部９０は、バスマスタユニット７０−１を選択して、バス使用許可信号ＡＣＫ１を“Ｈ”にする。バス使用要求信号ＲＥＱ１，ＲＥＱ２の一方が“Ｈ”の場合には、バス使用要求信号ＲＥＱ１，ＲＥＱ２が“Ｈ”のバスマスタユニット７０−１，７０−２を選択して、バスマスタユニット７０−１，７０−２に対応するバス使用許可信号ＡＣＫ１，ＡＣＫ２を“Ｈ”にする。
【００５５】
クロックステートＳ１６において、バスマスタユニット７０−２のバス使用要求送信部７１は、バス使用要求変更信号ＣＨＥ２をアサート（この場合は“Ｈ”）にする。バス調停部９０のバス使用要求変更部９１は、バス使用要求変更信号ＣＨＥ２が“Ｈ”になると、バス使用要求信号ＲＥＱ１を“Ｌ”にして、バスマスタユニット７０−２以外のバスマスタユニット７０−１をバス調停の対象外とする。これにより、バス使用要求信号ＲＥＱ２のみが“Ｈ”となり、バス調停部９０は、優先順位信号ＰＲＩＯ１，ＰＲＩＯ２が示す優先順位に依存することなく、バス使用要求信号ＲＥＱ２を優先してバス調停を行い、バスマスタユニット７０−２に共有バス５０の使用許可を与える。クロックステートＳ１６では、バス使用要求信号ＲＥＱ１は“Ｌ”であるので、見かけ上は一般的なバス調停によってバス使用要求信号ＲＥＱ２を受け付けている。
【００５６】
クロックステートＳ１７において、バス調停部９０はバス使用要求信号ＲＥＱ１，ＲＥＱ２が“Ｈ”であることを検出する。バス使用要求変更部９１は、バス使用要求変更信号ＣＨＥ２が“Ｈ”であるので、バス使用要求信号ＲＥＱ１をバス調停の対象外としている。したがって、バス調停部９０は、バス使用要求信号ＲＥＱ２を優先する。すなわち、優先順位信号ＰＲＩＯ１，ＰＲＩＯ２に依存することなく、バスマスタユニット７０−１のバス使用要求信号ＲＥＱ１を待機させて、バス使用要求信号ＲＥＱ２を受け付ける。
【００５７】
クロックステートＳ１８，Ｓ１９においても、クロックステートＳ１７と同様にバス使用要求変更信号ＣＨＥ２が“Ｈ”であるので、バス調停部９０は、バス使用要求信号ＲＥＱ２を優先して受け付ける。
【００５８】
クロックステートＳ１１０〜Ｓ１１３においては、バス使用要求変更信号ＣＨＥ２が“Ｌ”であるので、バス使用要求変更部９１は、全てのバスマスタユニット７０−１，７０−２をバス調停の対象とすることを決定し、バス調停部９０は、バス使用要求信号ＲＥＱ１，ＲＥＱ２に競合が発生した場合には、優先順位信号ＰＲＩＯ１，ＰＲＩＯ２が示す優先順位に基づいて共有バス５０を使用する許可を与えるバスマスタユニット７０−１，７０−２を選択する。
【００５９】
このようにこの実施の形態２では、バスマスタユニットが当該バスマスタユニット以外のバスマスタユニットが送信した共有バスの使用要求であるバス使用要求信号を無効にするように変更する変更要求としてバス使用要求変更信号をアサートにすると、バス調停部のバス使用要求変更部が、アサートのバス使用要求変更信号を送信したバスマスタユニット以外のバスマスタユニットからのバス使用要求信号をネゲートにしてバス調停の対象外とするようにしているので、優先順位を変更することなく所定の期間最も優先順位を高くすることができ、データ転送処理機関やデータ転送数がわかっている場合などに優先順位の低いバスマスタユニットのデータ転送効率を上げることができる。
【００６０】
なお、この実施の形態２では、バス使用要求変更部９１は、バス使用要求変更信号ＣＨＥ１〜ＣＨＥｎがアサートとなっているバスマスタユニット７０−１〜７０−ｎ以外から出力されるバス使用要求信号ＲＥＱ１〜ＲＥＱｎを全てネゲートにするようにしたが、一部のバス使用要求信号ＲＥＱ１〜ＲＥＱｎのみをネゲートにするようにしてもよい。これにより、優先順位を変更することなくバス競合数を減少させてバス制御装置を備えるシステム全体のデータ転送効率の見積もりを簡単に行うことができるようになり、バス制御装置が制御するバスマスタユニット７０−１〜７０−ｎの数や優先順位の変更に柔軟に対応することができる。
【産業上の利用可能性】
【００６１】
以上のように、この発明にかかるバス制御装置は、緊急のデータ転送処理が必要となるシステムに有用であり、特に、通常は優先順位が低いバスマスタユニットに緊急のデータ転送処理が必要となるシステムに適している。
【図面の簡単な説明】
【００６２】
【図１】この発明にかかる実施の形態１のバス制御装置の構成を示すブロック図である。
【図２】図１に示したバスマスタユニットの構成を示すブロック図である。
【図３】この発明にかかる実施の形態１のバス制御装置の動作を説明するためのタイミングチャートである。
【図４】この発明にかかる実施の形態２のバス制御装置の構成を示すブロック図である。
【図５】この発明にかかる実施の形態２のバス制御装置の動作を説明するためのタイミングチャートである。
【符号の説明】
【００６３】
１０−１，１０−２，１０−ｎ，７０−１，７０−ｎ  バスマスタユニット
３０，９０  バス調停部
５０  共有バス
７１  バス使用要求送信部
９１  バス使用要求変更部
１１１  バス使用許可カウント部
１１３  優先順位設定部
１１５  優先順位送信部
【図１】
2005339260.tif 000003
【図２】
2005339260.tif 000004
【図３】
2005339260.tif 000005
【図４】
2005339260.tif 000006
【図５】
2005339260.tif 000007