(57)【要約】【課題】バスマスタ側にバス優先使用要求用の回路を設けなくても、バス使用権の優先度を変更することのできるバス調停装置を提供する。【解決手段】バスアービタ１は、バスインタフェース部１１が、データバスへ送出された、ディスクリプタテーブルに記載のベースアドレスの値およびデータサイズの値のベースアドレスレジスタ１２およびデータサイズレジスタ１３への書き込みと、アドレスバスの観測を行い、転送開始アドレス検出部１４が、ベースアドレスレジスタ１２に格納の値に一致する値のアドレスデータを検出して転送開始検出信号を出力し、転送終了アドレス検出部１５が、ベースアドレスレジスタ１２に格納の値から増分が、データサイズレジスタ１３に格納の値に一致するアドレスデータを検出し、バス使用権制御部１６が、転送開始検出信号の出力開始から転送終了検出信号の出力終了までの間、転送実行中のバスマスタのバス使用権の優先度を上げる。【選択図】図１
2010140440.tif 000002
【特許請求の範囲】
【請求項１】
通常は予め定められた優先順位にもとづいて複数のバスマスタ間のバス使用権を調停するバス調停装置であって、
データバスおよびアドレスバスに接続されて、データバスへ送出されたデータを受領するとともにアドレスバス上のアドレスデータの値を観測するバスインタフェース手段と、
前記データバスへ送出されて前記バスインタフェース手段により受領された第１のデータが書き込まれる第１のレジスタと、
前記データバスへ送出されて前記バスインタフェース手段により受領された第２のデータが書き込まれる第２のレジスタと、
前記バスインタフェース手段により観測された前記アドレスデータの値を受領し、前記第１のレジスタに書き込まれた前記第１のデータの値に一致する値のアドレスデータを検出したときに、第１の検出信号を出力する第１のアドレス検出手段と、
前記バスインタフェース手段により観測された前記アドレスデータの値を受領し、前記第１のレジスタに書き込まれたデータの値からのアドレス値の増分が前記第２のレジスタに書き込まれたデータの値に一致するアドレスデータを検出したときに、第２の検出信号を出力する第２のアドレス検出手段と、
前記第１の検出信号の出力の開始から前記第２の検出信号の出力の終了までの間、そのときバス使用権を獲得しているバスマスタに対する優先度を通常よりも上げるよう変更するバス使用権制御手段と
を備えることを特徴とするバス調停装置。
【請求項２】
前記第２のアドレス検出手段が、
前記第１のレジスタに書き込まれたデータの値と前記第２のレジスタに書き込まれたデータの値とを加算する加算手段を有し、
前記監視中のアドレスデータから前記加算手段の出力値に一致する値のアドレスデータを検出したときに前記第２の検出信号を出力する
ことを特徴とする請求項１に記載のバス調停装置。
【請求項３】
前記第１のデータが、
ディスクリプタテーブルに書き込まれたベースアドレスの値であり、
前記第２のデータが、
前記ディスクリプタテーブルに書き込まれたデータサイズの値である
ことを特徴とする請求項１または２に記載のバス調停装置。
【請求項４】
前記データバスへ送出されて前記バスインタフェース手段により受領された第３のデータが書き込まれる第３のレジスタをさらに備え、
前記バス使用権制御手段による前記バス使用権の優先度の変更動作の実行／不実行が、
前記第３のレジスタに書き込まれた前記第３のデータの値により制御される
ことを特徴とする請求項１乃至３のいずれか１項に記載のバス調停装置。
【請求項５】
前記バスインタフェース手段により受領された前記第３のデータが書き込まれ、そのデータが前記第２の検出信号により消去される第４のレジスタをさらに備え、
前記第３のレジスタまたは前記第４のレジスタのいずれかの選択されたレジスタに対して、前記第３のデータの書き込みが行われ、
前記バス使用権制御手段による前記バス使用権の優先度の変更動作の実行／不実行が、
前記選択されたレジスタに書き込まれた前記第３のデータの値により制御される
ことを特徴とする請求項４に記載のバス調停装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス調停装置に関する。
【背景技術】
【０００２】
複数のバスマスタがバスに接続されたバスシステムでは、バスマスタからのバスリクエストが重なった場合、通常、バスアービタによってバス使用権の調停が行われる。バス使用権の優先度の調停方式には、例えば、優先度固定方式、ラウンドロビン方式などがある。
【０００３】
バス使用権の優先度が低いバスマスタがバス使用権を取得して、バス上でデータ転送を行っている際に、バス使用権の優先度が高いバスマスタがバス使用権獲得のためにバスリクエストを行うと、バスアービタは、使用している調停方式に従って、バス使用権を優先度の高いバスマスタに切り替える。
【０００４】
このようなシステムの場合、データ転送中にバス使用権を失った優先度の低いバスマスタは、その時点でデータ転送を一度中断し、再度バス使用権を取得してデータ転送を再開しなければならない。しかしながら、例えば、転送データ量に関する情報が記載されたディスクリプタテーブルの情報にもとづいて一定量のデータをまとめて転送するディスクリプタ形式のＤＭＡ転送などで、画像データなどの高スループットが要求される連続データを転送するときには、優先度の低いバスマスタであっても、バス使用権を失わずにデータ転送を続けたいときがある。
【０００５】
そのため、従来、バスに接続されるバスマスタ（ユニット）から通常のバス使用要求信号のほかに優先バス使用要求信号を出力するようにし、早急に送り出すべき属性のデータを扱うユニットから優先バス使用要求信号が出力されたときは、そのユニットに対して、バスアービタが優先的にバスの使用許可を与えるようにしたバス制御方式が提案されている（例えば、特許文献１参照。）。
【０００６】
この提案された方式により、通常はバス使用権の優先度が低いバスマスタであっても、優先バス使用要求信号を出力することによって、高スループットが要求されるデータを連続して転送することができ、装置の処理特性を向上させることができる。
【０００７】
ただし、そのためには、それぞれのバスマスタに、優先バス使用要求信号を出力するための回路を設ける必要がある。
【０００８】
これに対して、近年、ＬＳＩの回路規模の増大化に伴い、開発期間の短縮のため、バスマスタには、実績のある汎用のＩＰを使用することが一般的に行われている。したがって、このようなＬＳＩでは、上述の提案の方式のような特殊なバスマスタを新規に設計して使用することが、現実的には難しい、という問題がある。
【０００９】
一方、バスアービタは、システムごとにバス使用権の優先度の設定などが異なるので、システムの仕様に応じてＬＳＩごとに設計される。したがって、上述のようなバス使用権の優先度の変更は、バスアービタ側で処理することが望まれる。
【特許文献１】特開平７−２４８９９７号公報  （第３ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
そこで、本発明の目的は、バスマスタ側にバス優先使用要求用の回路を設けなくても、バス使用権の優先度を変更することのできるバス調停装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、通常は予め定められた優先順位にもとづいて複数のバスマスタ間のバス使用権を調停するバス調停装置であって、データバスおよびアドレスバスに接続されて、データバスへ送出されたデータを受領するとともにアドレスバス上のアドレスデータの値を観測するバスインタフェース手段と、前記データバスへ送出されて前記バスインタフェース手段により受領された第１のデータが書き込まれる第１のレジスタと、前記データバスへ送出されて前記バスインタフェース手段により受領された第２のデータが書き込まれる第２のレジスタと、前記バスインタフェース手段により観測された前記アドレスデータの値を受領し、前記第１のレジスタに書き込まれた前記第１のデータの値に一致する値のアドレスデータを検出したときに、第１の検出信号を出力する第１のアドレス検出手段と、前記バスインタフェース手段により観測された前記アドレスデータの値を受領し、前記第１のレジスタに書き込まれたデータの値からのアドレス値の増分が前記第２のレジスタに書き込まれたデータの値に一致するアドレスデータを検出したときに、第２の検出信号を出力する第２のアドレス検出手段と、前記第１の検出信号の出力の開始から前記第２の検出信号の出力の終了までの間、そのときバス使用権を獲得しているバスマスタに対する優先度を通常よりも上げるよう変更するバス使用権制御手段とを備えることを特徴とするバス調停装置が提供される。
【発明の効果】
【００１２】
本発明によれば、バスマスタ側にバス優先使用要求用の回路を設けなくても、バス使用権の優先度を変更することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明に係るバス調停装置に対応するバスアービタの実施例について、図面を参照して説明する。
【００１４】
ここで、各実施例のバスアービタによりバス使用権が調停されるバスマスタは、ディスクリプタテーブルに記載されたベースアドレスとデータサイズの情報にもとづいて連続データのＤＭＡ転送を行う、ディスクリプタ形式のＤＭＡ転送に対応しているものとする。
【００１５】
なお、図中、同一または相当部分には同一の符号を付して、その説明は繰り返さない。
【実施例１】
【００１６】
図１は、本発明の実施例１に係るバスアービタの構成の例を示すブロック図である。
【００１７】
本実施例のバスアービタ１は、データバスおよびアドレスバスに接続されて、データバスへ送出されたデータを受領するとともに、アドレスバス上のアドレスデータの値を観測するバスインタフェース部１１と、データバスへ送出されてバスインタフェース部１１により受領されたディスクリプタテーブルに記載のベースアドレスの値が書き込まれるベースアドレスレジスタ１２と、データバスへ送出されてバスインタフェース部１１により受領されたディスクリプタテーブルに記載のデータサイズの値が書き込まれるデータサイズレジスタ１３と、バスインタフェース部１１により観測されたアドレスデータの値を受領し、ベースアドレスレジスタ１２に書き込まれたベースアドレスの値に一致する値のアドレスデータを検出したときに、転送開始検出信号を出力する転送開始アドレス検出部１４と、バスインタフェース部１１により観測されたアドレスデータの値を受領し、ベースアドレスレジスタ１２に書き込まれたデータの値からのアドレス値の増分が、データサイズレジスタ１３に書き込まれたデータサイズの値に一致するアドレスデータを検出したときに、転送終了検出信号を出力する転送終了アドレス検出部１５と、転送開始検出信号の出力の開始から転送終了検出信号の出力の終了までの間、そのときバス使用権を獲得しているバスマスタに対する優先度を通常よりも上げるよう、バス使用権の優先順位を変更するバス使用権制御部１６と、を備える。
【００１８】
バスインタフェース部１１は、ＣＰＵなどのマスターからのアクセスに従って、データバスへ送出されたデータを受領して、アドレスバスによりアドレスが指定された、ベースアドレスレジスタ１２またはデータサイズレジスタ１３へ書き込む。
【００１９】
また、バスインタフェース部１１は、アドレスバス上のアドレスデータの値を観測し、その値を転送開始アドレス検出部１４および転送終了アドレス検出部１５へ送出する。
【００２０】
ベースアドレスレジスタ１２は、ＣＰＵなどのマスターの制御により、データバスへ送出されたディスクリプタテーブルに記載のベースアドレスの値が、バスインタフェース部１１により書き込まれる。
【００２１】
データサイズレジスタ１３は、ＣＰＵなどのマスターの制御により、データバスへ送出されたディスクリプタテーブルに記載のデータサイズの値が、バスインタフェース部１１により書き込まれる。
【００２２】
転送開始アドレス検出部１４は、バスインタフェース部１１から伝送されたアドレスデータの値と、ベースアドレスレジスタ１２に書き込まれたベースアドレスの値と、を比較し、その値が一致したときに、転送開始検出信号を出力する。
【００２３】
転送終了アドレス検出部１５は、バスインタフェース部１１から伝送されたアドレスの値のベースアドレスのアドレス値からの増分と、データサイズレジスタ１３に書き込まれたデータサイズの値と、を比較し、その値が一致したときに、転送終了検出信号を出力する。
【００２４】
図２に、転送終了アドレス検出部１５の内部構成の例を示す。
【００２５】
図２に示す例では、転送終了アドレス検出部１５は、ベースアドレスレジスタ１２から出力されるベースアドレスのアドレス値とデータサイズレジスタ１３から出力されるデータサイズの値とを加算する加算部１５１と、加算部１５１からの加算出力とバスインタフェース部１１から送出されたアドレスデータの値とを比較し、その値が一致したときに転送終了検出信号を出力する比較部１５２と、を備える。
【００２６】
連続データの転送の場合、アドレスの値が１ずつインクリメントされるので、加算部１５１は、ベースアドレスのアドレス値とデータサイズの値とを加算することにより、転送終了アドレスのアドレス値を予め算出しておくものである。
【００２７】
したがって、比較部１５２は、バスアドレス上のアドレスデータの値が終了アドレスのアドレス値に達したときに、送終了検出信号を出力する。
【００２８】
図１に戻って、バス使用権制御部１６は、通常は予め定められた優先順位にもとづいて複数のバスマスタ間のバス使用権を調停している。すなわち、複数のバスマスタからバス使用要求信号が重なって出力されたときは、予め定められた優先順位に従って、それぞれのバスマスタに順次バス使用許可信号を出力している。
【００２９】
しかし、転送開始アドレス検出部１４から転送開始検出信号が出力されると、バス使用権制御部１６は、その転送開始検出信号の出力の開始から、転送終了アドレス検出部１５からの転送終了検出信号の出力の終了までの間、そのときバス使用権を獲得しているバスマスタに対する優先度を通常よりも上げるよう、バス使用権の優先順位を変更する。
【００３０】
これにより、バス使用権の優先順位の低いバスマスタであっても、現在実行中のデータ転送をその終了まで継続することが可能となる。
【００３１】
次に、上述のバス使用権の優先順位の変更動作の具体的な例について、図３および図４を用いて説明する。
【００３２】
図３は、本実施例のバスアービタ１を用いるバスシステム１０００の概略構成の例を示すブロック図である。
【００３３】
バスシステム１０００は、アドレスバスおよびデータバスに、ＣＰＵ１００、メモリ２００、バスマスタ３００、バスマスタ４００、バスマスタ５００、およびバスアービタ１が接続される構成となっている。
【００３４】
ＣＰＵ１００およびバスマスタ３００、４００、５００は、メモリ２００に対するデータ転送を行うために、バス使用権を獲得するためのバス使用要求信号Ｂｕｓｒｅｑ、Ｂｕｓｒｅｑ１、Ｂｕｓｒｅｑ２、Ｂｕｓｒｅｑ３をそれぞれに出力する。
【００３５】
これらのバス使用要求信号の出力が重なった場合、バスアービタ１は、バス使用権の調停を行い、そのうちの１つに対してバス使用許可信号を出力する。ここでは、ＣＰＵ１００およびバスマスタ３００、４００、５００に対するバス使用許可信号をそれぞれ、Ｇｒａｎｔ、Ｇｒａｎｔ１、Ｇｒａｎｔ２、Ｇｒａｎｔ３と表す。
【００３６】
ここで、本実施例におけるバス使用権の通常の優先度は、バスマスタ３００：低、バスマスタ４００：中、バスマスタ５００：高、とされており、優先順位は、バスマスタ３００＜バスマスタ４００＜バスマスタ５００とされているものとする。
【００３７】
ここで、バスマスタ３００は、ディスクリプタ形式のＤＭＡ転送により、メモリ２００との間でデータ転送を行うものとする。
【００３８】
ディスクリプタ形式のＤＭＡ転送では、転送に先立って、ＣＰＵ１００によってメモリ２００にディスクリプタテーブルが形成される。ディスクリプタテーブルには、メモリ２００に格納されている転送対象のデータ領域のベースアドレスの値と、データサイズの値が記載される。
【００３９】
その後、ＣＰＵ１００によりＤＭＡスタートレジスタ３０１にスタートビットが立てられてＤＭＡ転送が指示されると、バスマスタ３００は、一旦メモリ２００にアクセスし、ディスクリプタテーブルを取得する。続いて、バスマスタ３００は、ディスクリプタテーブルに記載されているベースアドレスの値とデータサイズの値をもとに、再度メモリ２００にアクセスし、転送対象のデータの転送を行う。
【００４０】
このようなディスクリプタ形式のＤＭＡ転送は、メモリ２００のある領域にまとまって置かれているデータを連続して転送するのに適している。
【００４１】
そこで、バスシステム１０００では、バスマスタ３００がバス使用権を獲得し、ディスクリプタ形式のＤＭＡ転送を行っている最中は、バスアービタ１が、バスマスタ３００のバス使用権の優先度を上げ、バスマスタ３００によるデータの転送が中断しないようにする。
【００４２】
その際、バスアービタ１は、バス使用権の優先度を、バスマスタ３００：中、バスマスタ４００：低、バスマスタ５００：高、に変更するものとする。すなわち、バス使用権の優先順位を、バスマスタ４００＜バスマスタ３００＜バスマスタ５００に変更する、ものとする。
【００４３】
なお、バスマスタ３００によるディスクリプタ形式のＤＭＡ転送が終了すると、バスアービタ１は、バス使用権の優先順位を通常の優先順位に戻す。
【００４４】
図４は、バスシステム１０００におけるバス使用権の優先順位の変更動作の例を示す波形図である。この例では、バスマスタ３００がディスクリプタ形式のＤＭＡ転送を行っている最中に、バスマスタ３００よりバス使用権の優先度が高いバスマスタ４００からバス使用要求信号ＢｕｓＲｅｑ２が出力されたときの動作について示す。なお、図中のクロックは、アドレスバスおよびアドレスバス上へデータを送受信する際の同期クロックを示す。以下、本実施例における動作の流れについて説明する。
【００４５】
（１）ＣＰＵ１００は、バスマスタ３００にディスクリプタ形式のＤＭＡ転送を行わせるため、まず、メモリ２００にアクセスし、ディスクリプタテーブルおよび転送データをメモリ２００に書き込む。ディスクリプタテーブルには、転送データが格納されている領域のベースアドレスとデータサイズが記載される。ここでは、ベースアドレスとして‘Ａ０’、データサイズとして‘ｍ’が記載されたものとする。
【００４６】
（２）次いで、ＣＰＵ１００は、バスアービタ１のベースアドレスレジスタ１２をアクセス先に指定して、ディスクリプタテーブルに書き込んだベースアドレスの値Ａ０をデータバスへ送出する。これを受けて、バスアービタ１のバスインタフェース部１１は、このベースアドレスの値Ａ０をベースアドレスレジスタ１２へ書き込む。
【００４７】
（３）続いて、ＣＰＵ１００は、バスアービタ１のデータサイズレジスタ１３をアクセス先に指定して、ディスクリプタテーブルに書き込んだデータサイズの値ｍをデータバスへ送出する。これを受けて、バスインタフェース部１１は、このデータサイズの値ｍをデータサイズレジスタ１３へ書き込む。
【００４８】
（４）その結果、バスアービタ１の転送終了アドレス検出部１５の加算部１５１から、加算出力（Ａ０＋ｍ）が出力される。
【００４９】
（５）次に、ＣＰＵ１００は、バスマスタ３００のＤＭＡスタートレジスタ３０１にスタートビットを立てて、バスマスタ３００へＤＭＡ転送を指示する。この指示を受けて、バスマスタ３００は、バスアービタ１へバス使用要求信号ＢｕｓＲｅｑ１を送る。
【００５０】
（６）このバス使用要求信号ＢｕｓＲｅｑ１の出力に対して、バスアービタ１からバス使用許可信号Ｇｒａｎｔ１が送られてくると、バスマスタ３００は、ディスクリプタ形式のＤＭＡ転送を開始する。
【００５１】
（７）このとき、バスマスタ３００は、ディスクリプタテーブルに記載されているベースアドレスの値Ａ０データサイズの値ｍにもとづいて、メモリ２００のアドレスＡ０〜（Ａ０＋ｍ）のデータの読み出しを連続して行う。そのため、アドレスバスへは、アドレス値Ａ０〜（Ａ０＋ｍ）が連続して送出される。
【００５２】
（８）バスアービタ１のバスインタフェース部１１は、このアドレスバスへ送出されたアドレスの値をバスアービタ１の転送開始アドレス検出部１４および転送終了アドレス検出部１５へ送出する。
【００５３】
（９）転送開始アドレス検出部１４は、ベースアドレスレジスタ１２に書き込まれたベースアドレスの値Ａ０に一致するアドレス値がアドレスバスへ送出されたとき、すなわち、アドレス値Ａ０がアドレスバスへ送出されたときに、転送開始検出信号を出力する。
【００５４】
（１０）転送開始検出信号が出力されると、バスアービタ１のバス使用権制御部１６は、バス使用権の優先度を、バスマスタ３００は低→中、バスマスタ４００は中→低、に変更する。
【００５５】
（１１）したがって、バスマスタ３００のＤＭＡ転送中に、バスマスタ４００からバス使用要求信号ＢｕｓＲｅｑ２が出力されても、バスマスタ３００の方がバス使用権の優先順位が高いので、バスマスタ３００のＤＭＡ転送が、そのまま継続される。
【００５６】
（１２）このバス使用権の優先度変更は、転送終了アドレスであるアドレス値（Ａ０＋ｍ）がアドレスバスへ送出され、転送終了アドレス検出部１５から転送終了検出信号が出力されるまで、継続される。
【００５７】
（１３）転送終了アドレス検出部１５からの転送終了検出信号の出力が終了すると、バスアービタ１のバス使用権制御部１６は、バス使用権の優先度を通常の設定に戻す。また、バスアービタ１は、バスマスタ４００に対して、バス使用許可信号Ｇｒａｎｔ２を出力する。これにより、バスマスタ４００による転送が開始され、アドレスバスには、その先頭アドレス、例えばＢ０が送出される。
【００５８】
このような本実施例によれば、バスアービタ側において連続データの転送中であるかどうかを判断し、連続データの転送中であればバス使用権の優先度を変更するので、バスマスタ側にバス優先使用要求用の回路を設けなくても、バス使用権の優先度を変更することができる。
【実施例２】
【００５９】
本実施例では、実施例１のバスアービタ１に対して、バス使用権の優先度の変更動作を実際に行うか否かを設定できる機能を付加したバスアービタの例を示す。
【００６０】
図５は、本発明の実施例２に係るバスアービタの構成の例を示すブロック図である。
【００６１】
本実施例のバスアービタ２は、実施例１のバスアービタ１にイネーブルレジスタ２７を追加し、このイネーブルレジスタ２７から出力されるイネーブル信号により、バス使用権制御部１６Ａに対して、バス使用権の優先度の変更動作を実行させるか、させないか、の制御を行うようにしたものである。
【００６２】
イネーブルレジスタ２７は、データバスへ送出されたイネーブル信号データが、バスインタフェース部１１を介して書き込まれるレジスタである。イネーブルレジスタ２７に書き込まれたデータは、次の書き込みが行われるまで、その値が保持される。
【００６３】
バス使用権制御部１６Ａは、イネーブルレジスタ２７から出力されるイネーブル信号により、バス使用権の優先度の変更動作を実際に行うか否かが、制御される。例えば、イネーブル信号が‘１’であるときはバス使用権の優先度の変更動作を行い、イネーブル信号が‘０’であるときはバス使用権の優先度の変更動作を行わない。
【００６４】
バス使用権の優先度の変更動作を行うときは、実施例１のバス使用権制御部１６と同じ動作を行う。
【００６５】
図６に、イネーブルレジスタ２７へのイネーブル信号データの書き込みと、バス使用権制御部１６Ａのバス使用権の優先度の変更動作の関係を波形図で示す。
【００６６】
データバスへイネーブル信号データとして‘１’が送出され、イネーブルレジスタ２７へ‘１’が書き込まれると、イネーブルレジスタ２７から出力されるイネーブル信号が‘１’となる。
【００６７】
イネーブル信号が‘１’のとき、バス使用権制御部１６Ａは、実施例１と同様、転送開始検出信号の出力開始から転送終了検出信号の出力終了までの間、そのときバスを使用しているバスマスタに対するバス使用権の優先度の変更を行う。
【００６８】
一方、データバスへイネーブル信号データとして‘０’が送出され、イネーブルレジスタ２７へ‘０’が書き込まれて、イネーブル信号が‘０’となった場合、バス使用権制御部１６Ａは、バス使用権の優先度の変更動作を実行しない。
【００６９】
すなわち、転送開始検出信号の出力開始から転送終了検出信号の出力終了までの間も、通常の優先順位のまま、バスマスタ間のバス使用権の調停を行う。
【００７０】
このような本実施例によれば、バス使用権保持の優先度変更のイネーブル機能をレジスタで持つことにより、バス使用権の優先度の変更をより細かく制御することができる。例えば、同じバスマスタによる優先度の高いデータ転送であっても、バス上の他のバスマスタのバス使用状況によっては、バス使用権の優先度の変更を行わない、などの制御を行うことができる。
【実施例３】
【００７１】
図７は、本発明の実施例３に係るバスアービタの構成の例を示すブロック図である。
【００７２】
本実施例のバスアービタ３は、実施例２のバスアービタ２に、イネーブルレジスタ３８およびＯＲゲート３９を追加したものである。
【００７３】
イネーブルレジスタ３８は、イネーブルレジスタ２７と同様、データバスへ送出されたイネーブル信号データが、バスインタフェース部１１を介して書き込まれるレジスタである。
【００７４】
ただし、イネーブルレジスタ２７とは異なり、イネーブルレジスタ３８に書き込まれたデータは、転送終了アドレス検出部１５から出力される転送終了検出信号により消去される。すなわち、イネーブルレジスタ３８にイネーブル信号として‘１’が書き込まれても、１回の連続データの転送が終了すると、イネーブルレジスタ３８の出力は‘０’となる。
【００７５】
ＯＲゲート３９は、イネーブルレジスタ２７の出力と、イネーブルレジスタ３８の出力と、が入力され、その出力が、イネーブル信号としてバス使用権制御部１６Ａへ入力される。
【００７６】
本実施例では、イネーブル信号データが書き込まれるレジスタとして、２つのレジスタ、すなわち、イネーブルレジスタ２７およびイネーブルレジスタ３８を備えるが、この２つのレジスタに同時に‘１’が書き込まれることはなく、いずれか一方が選択されて、‘１’が書き込まれる。
【００７７】
この２つのレジスタの使い分けは、例えば、次のように行う。
【００７８】
（１）バス使用権の優先度を上げたデータ転送を連続して複数回行う場合は、イネーブルレジスタ２７を使用する。この場合、イネーブル信号データ‘１’の書き込みは、最初の１回のみ行えばよく、また、イネーブル信号データ‘０’の書き込みも、最後の１回のみ行えばよい。
【００７９】
（２）一方、バス使用権の優先度を上げたデータ転送を単発で行う場合は、イネーブルレジスタ３８を使用する。この場合、データ転送が終了すると、自動的にイネーブルレジスタ３８のデータが消去されるので、イネーブル信号データ‘０’を改めて書き込む必要がない。
【００８０】
図８に、イネーブル信号データ保持に対する、イネーブルレジスタ２７とイネーブルレジスタ３８の動作の違いを示す。
【００８１】
図８（ａ）は、イネーブルレジスタ２７におけるイネーブル信号データ保持動作の様子を示す。
【００８２】
イネーブルレジスタ２７は、一旦、イネーブル信号データとして‘１’が書き込まれると、次に‘０’が書き込まれるまで、その‘１’を保持する。したがって、その間に複数回の連続データの転送があり、転送開始検出信号および転送終了検出信号が複数回出力されると、その都度、バスアービタ３は、バス使用権の優先度を変更する動作を行う。
【００８３】
一方、図８（ｂ）は、イネーブルレジスタ３８におけるイネーブル信号データ保持動作の様子を示す。
【００８４】
イネーブルレジスタ３８は、イネーブル信号データとして‘１’が書き込まれた後、転送終了検出信号が出力されると、そのデータが消去され、出力が‘０’に変化する。従って、バスアービタ３は、イネーブル信号データ‘１’が書き込まれた後の１回のデータ転送のときのみ、バス使用権の優先度を変更する動作を行い、その後のデータ転送に対しては、通常の優先度のままで、バス使用権の調停を行う。
【００８５】
このような本実施例によれば、イネーブル信号データを書き込むレジスタを２つ設け、この２つのレジスタをデータ転送の内容によって使い分けることにより、イネーブル信号データのレジスタへの書き込み回数を少なくすることができる。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施例１に係るバスアービタの構成の例を示すブロック図。
【図２】実施例１の転送終了アドレス検出部の内部構成の例を示すブロック図。
【図３】実施例１のバスアービタを用いるバスシステムの概略構成の例を示すブロック図。
【図４】実施例１のバスアービタを用いるバスシステムの動作の例を示す波形図。
【図５】本発明の実施例２に係るバスアービタの構成の例を示すブロック図。
【図６】実施例２のバスアービタの動作の例を示す波形図。
【図７】本発明の実施例３に係るバスアービタの構成の例を示すブロック図。
【図８】実施例３のバスアービタの動作の例を示す波形図。
【符号の説明】
【００８７】
１〜３  バスアービタ
１１  バスインタフェース部
１２  ベースアドレスレジスタ
１３  データサイズレジスタ
１４  転送開始アドレス検出部
１５  転送終了アドレス検出部
１６、１６Ａ  バス使用権制御部
２７、３８  イネーブルレジスタ
３９  ＯＲゲート
１５１  加算部
１５２  比較部
【図１】
2010140440.tif 000003
【図２】
2010140440.tif 000004
【図３】
2010140440.tif 000005
【図４】
2010140440.tif 000006
【図５】
2010140440.tif 000007
【図６】
2010140440.tif 000008
【図７】
2010140440.tif 000009
【図８】
2010140440.tif 000010