(57)【要約】【課題】複数のデバイスに対するバス使用権移行のタイムラグを抑制し、迅速なデータ転送を実現できるようにすること。【解決手段】本発明は、共有バスに接続された複数のデバイスＤ１〜Ｄ３のうちいずれかに使用権を与える制御を行うバス調停装置１において、複数のデバイスＤ１〜Ｄ３のいずれに使用権を与えるかの順番を記憶するバスマスタ順序レジスタ１１と、バスマスタ順序レジスタ１１に記憶された順番に従って複数のデバイスＤ１〜Ｄ３に対して順次回帰的に前記使用権を与えるGNT#出力部１５とを備えている。【選択図】図１
2006163881.tif 000002
【特許請求の範囲】
【請求項１】
共有バスに接続された複数のデバイスのうちいずれかに使用権を与える制御を行うバス調停装置において、
前記複数のデバイスのいずれに前記使用権を与えるかの順番を記憶するバスマスタ順序レジスタと、
前記バスマスタ順序レジスタに記憶された順番に従って前記複数のデバイスに対して順次回帰的に前記使用権を与えるグラント出力部と
を備えることを特徴とするバス調停装置。
【請求項２】
前記デバイスが前記共有バスを介して転送を行うデータの最低サイズを記憶する最低転送サイズレジスタを備えており、
前記グラント出力部は、バスマスタとなったデバイスによるデータの転送サイズが前記最低転送サイズレジスタに記憶されている最低サイズ以下の場合には引き続きそのデバイスに前記使用権を与える
ことを特徴とする請求項１記載のバス調停装置。
【請求項３】
前記デバイスが前記共有バスを介して転送を行うデータの最低サイズを記憶する最低転送サイズレジスタを備えており、
前記グラント出力部は、バスマスタとなったデバイスによるデータの転送サイズが前記最低転送サイズレジスタに記憶されている最低サイズを超えた後、そのデバイスから出力されるデータ転送終了信号を検知した段階で次のデバイスに前記使用権を与える
ことを特徴とする請求項１記載のバス調停装置。
【請求項４】
共有バスに接続され、バス調停装置から使用権を得て共有バスを使用するデバイスにおいて、
前記共有バスを介して送られる他のデバイスのアドレスを格納するアドレスレジスタと、
前記アドレスレジスタに格納された他のデバイスのアドレスと前記共有バスに現在流れているアドレスとを比較する比較回路と
を備えている
ことを特徴とするデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有バスに接続された複数のデバイスのうちいずれかに使用権を与える制御を行うバス調停装置およびこのバス調停装置から使用権を受けるデバイスに関する。
【背景技術】
【０００２】
従来、共有バスの使用権を調停するバス調停装置においては、特許文献１〜４が開示されている。特許文献１では、バスパーキングを行うバス調停方式において、デフォルトオーナである１つのデバイスが通常オーナとしてバスパーキングを行う技術が開示されている。デフォルトオーナの決め方は、固定で指定しておくか、最後にバスを使用したデバイスがオーナとなる。
【０００３】
また、特許文献２では、電源投入直後のレジスタの値が不定であってもリセットが入ることによりレジスタはデフォルト値になりバスがフローティングになることはないという技術である。
【０００４】
また、特許文献３、４では、実行しているアプリケーションに応じて（アプリケーションが）バスマスタを切り替えることによりバスパーキングしている（ダミードライブしている）デバイスが引き続きバスマスタになる確立を高めたものである。
【０００５】
例えば、ある時間内に１６ＭＢのＤＭＡ転送が１回発生する可能性と同時に同一バス/別デバイスから１ＭＢのＰＩＯが３回発生する可能性あるシステムの時、どちらの優先順位をあげるかをＣＰＵが判断しバス使用権を与えている。
【０００６】
また、カウンターを持ち、そのデバイスのトランザクションの発生回数から一番アクセスされたもの/アクセス数中間のもの/一番アクセスがないものなどと条件を指定してバス使用権を与えている。
【０００７】
【特許文献１】特開平１１−２５０３５号公報
【特許文献２】特開平１１−１７５４６３号公報
【特許文献３】特開平１１−３２８１０７号公報
【特許文献４】特開２００３−３４５７３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のバス調停装置の恒久的な問題として、バスマスタになる可能性のある複数のデバイスがひとつのバスに接続されている場合、アクセスの優先度を高く設定されたデバイスが必ずしもアクセス回数が多く、転送サイズが大きいとは限らない。このため、パーキング動作を解除し、あるバスマスタがアクセス可能になるまで時間がかかってしまう。また、アクセス回数が多く、転送サイズの大きいものにデフォルトオーナを指定していたとしても、デフォルトオーナ以外のバスマスタへ使用権を移す時に数十クロックを要してしまう。
【０００９】
そこで、これを改善するため、デフォルトオーナレジスタを設け、ＣＰＵ（もしくはアプリケーション）によりダイナミックにデフォルトオーナを変更する方法が提案されているが、いずれも確率を高めるためのものであり、次のバスマスタデバイスが明確なアプリケーション（ラウンドロビンでバスマスタが変更していく場合）であってもバス使用権移行にタイムラグが発生してしまう可能性がある。
【００１０】
上記従来技術では、次のバスマスタになるデバイス予測の確率を高めるためのものであり、予めバスマスタになる順番が決定しているシステムでは時間のロスが発生してしまう可能性がある。
【課題を解決するための手段】
【００１１】
本発明はこのような課題を解決するために成されたものである。すなわち、本発明は、共有バスに接続された複数のデバイスのうちいずれかに使用権を与える制御を行うバス調停装置において、複数のデバイスのいずれに使用権を与えるかの順番を記憶するバスマスタ順序レジスタと、バスマスタ順序レジスタに記憶された順番に従って複数のデバイスに対して順次回帰的に前記使用権を与えるグラント出力部とを備えている。
【００１２】
このような本発明では、予めバスマスタ順序レジスタに複数のデバイスのいずれかに使用権を与えるかの順番が記憶されており、グラント出力部がバスマスタ順序レジスタに記憶されている順番に従って複数のデバイスに対して順次回帰的に使用権を与えていることから、各デバイスは共有バスの使用権を要求する信号を出すことなく順次共有バスの使用権を得ることができる。また、次に使用権を与えられるデバイスが事前に分かるため、各デバイスは自らが使用権を得るまでの間に必要な処理を行うことができ、使用権を得た段階で即座にデータ転送を行うことができるようになる。
【００１３】
また、本発明は、共有バスに接続され、バス調停装置から使用権を得て共有バスを使用するデバイスにおいて、共有バスを介して送られる他のデバイスのアドレスを格納するアドレスレジスタと、アドレスレジスタに格納された他のデバイスのアドレスと前記共有バスに現在流れているアドレスとを比較する比較回路とを備えているものである。
【００１４】
このような本発明では、共有バスに接続される他のデバイスのアドレスをアドレスレジスタに格納しておき、現在共有バスに流れるアドレスと、アドレスレジスタに格納されているアドレスとを比較回路で比較することで、現在共有バスの使用権を与えられているデバイスと自らが使用権を与えられる順番とを把握することができるようになる。これにより、バス使用権を与えられる前までに実施できる処理を済ませておくことができるようになる。
【発明の効果】
【００１５】
したがって、本発明によれば、バス使用権移行のタイムラグを抑制して、迅速に各デバイスへ共有バスの使用権を渡すことができ、最適なデータ転送を行うことが可能となる。また、デバイスは、バス使用権を与えられた段階で即座にデータを転送できることから、効率良くバスを利用することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図に基づき説明する。図１は、本実施形態に係るバス調停装置を説明するブロック図である。すなわち、本実施形態に係るバス調停装置１は、共有バスＢ（図１では、アドレス／データ／制御線バス）に接続された複数のデバイス（図１では、Ｄ１〜Ｄ３）のうちいずれかに使用権を与える制御を行うもので、使用権を与えられてバスマスタになるデバイスの順番がアプリケーションにより予め決定されているようなシステムにおいて、共有バスの使用権（GNT#の移行）を１クロックの時間のロスも無く行うことができる点に特徴がある。
【００１７】
これを実現するため、本実施形態のバス調停装置は、バスマスタ順序レジスタ１１、最低転送レジスタ１２、コンペア回路１３、転送サイズカウンタ１４およびGNT#（グラント）出力回路１５を備えている。なお、各デバイスＤ１〜Ｄ３のREQ#はオープンのままでも構成できる。
【００１８】
バスマスタ順序レジスタ１１は、複数のデバイスについてバスマスタとなる順番を記憶するレジスタであり、この順序はＣＰＵ等から書き込めるようになっている。このバスマスタ順序レジスタ１１はループ機能を持っており、バスマスタとなるデバイスＤ１〜Ｄ３の順番を回帰的に設定できる。例えば、画像処理装置においては、Ｙ（イエロー）、Ｍ（マゼンタ）、Ｃ（シアン）、Ｋ（ブラック）のデータ順や、画像処理の順番（例えば、フィルタ、解像度変換、回転…）に従ってバスマスタとなるデバイスの順番を設定する。
【００１９】
また、最低転送サイズレジスタ１２は、バスマスタとなったデバイスＤ１〜Ｄ３が共有バスＢを介してデータを転送する際の最低サイズを格納するレジスタである。最低転送サイズレジスタ１２に格納する最低サイズはＣＰＵやユーザインタフェースからセットすることができる。
【００２０】
コンペア回路１３は、最低転送サイズレジスタから読み出した最低転送サイズと転送サイズカウンタ１２でカウントした値とを比較する回路であり、バスマスタとなったデバイスＤ１〜Ｄ３から転送されるデータのサイズが最低転送サイズを超えた場合にGNT#出力回路１５へその旨の信号を出力する。
【００２１】
転送サイズカウンタ１４は、デバイスマスタとなったデバイスＤ１〜Ｄ３でのデータ転送開始信号からデータ転送終了信号を受けるまでの間のデータ転送イネーブル信号をカウントして転送データサイズを計測し、その値をコンペア回路１３へ渡している。
【００２２】
これにより、バスマスタとなったデバイスＤ１〜Ｄ３が共有バスＢを介してデータを転送する際、その転送サイズが最低転送サイズレジスタ１２にセットされたサイズ以下の場合、トランザクション終了信号が得られても引き続き、そのデバイスＤ１〜Ｄ３にバス使用権を与えておくことが可能となる。つまり、バスマスタとなったデバイスＤ１〜Ｄ３は、１トランザクションでデータを転送しきれなかった場合でも、引き続きバスマスタとして残りのデータを転送できるようになる。
【００２３】
また、各デバイスＤ１〜Ｄ３内（マスター/ターゲット共）においては、同一バスに接続されている全てのデバイスＤ１〜Ｄ３の番号とベースアドレスを格納しておくレジスタを持っている。図２は、デバイス（ＰＣＩデバイス）の内部構成を説明する概略ブロック図である。デバイスには、アドレスデコード回路２１、比較回路２２、Ｐｒｅユーザ回路２３、ユーザ回路２４およびアドレスレジスタ２５が設けられている。
【００２４】
デバイスは、共有バスを介してバスマスタ順序レジスタ１１（図１参照）から送られてくるバスマスタの順序に従ったデバイスのアドレスを取得し、アドレスレジスタ２５に格納している。アドレスレジスタ２５は複数のデバイスのアドレスを格納でき、共有バスを流れるデバイスのアドレスとアドレスレジスタに格納したアドレスとを比較回路２２で比較することで、現在バス使用権を与えられた仕掛中のデバイスを知ることができる。
【００２５】
また、アドレスレジスタ２５に格納されたアドレスの順番から、自分がバスマスタとなって共有バスにアクセスできる順番も知ることが可能となる。したがって、自分がアクセス対象になる時までに、バス転送開始準備までの処理をＰｒｅユーザ回路２３で事前に行っておくことが可能となる。このため、自分がバスマスタとなってバス使用権を与えられた段階では即座にデータを転送できるようになる。
【００２６】
各デバイスＤ１〜Ｄ３とも図２に示すようなアドレスレジスタを備えているため、各々のデバイスでは自分がバスマスタとなる順番を事前に把握できることから、逐次バス使用権が与えられることで１クロックの時間のロスも無くデータ転送を行うことが可能となる。
【００２７】
図３は、本実施形態に係るバス調停装置の動作を説明するフローチャートである。なお、以下の説明で図に示されない符号は図１を参照するものとする。先ず、システムの電源をＯＮにすると（ステップＳ１）、ＣＰＵ（２）からバスマスタ順序レジスタ１１に予め決められたバスマスタの順序を設定する（ステップＳ２）。
【００２８】
次に、ＣＰＵ（２）から最低転送サイズレジスタ１２に一つのトランザクションでの最低の転送サイズを格納する（ステップＳ３）。その後、ＣＰＵ（２）から各デバイスへデバイス番号と要求されたＰＣＩ空間をベースアドレスへ設定する。同時に、デバイス番号をキーワードにして各自のデバイスが他のデバイスのベースアドレスもアドレスレジスタに格納する（ステップＳ４）。
【００２９】
次いで、ＣＰＵ（２）からバス調停装置１へスタートトリガが発生され、これによってバスマスタ順序レジスタ１１が起動し、はじめのバスマスタへグラント（GNT#）を渡す（ステップＳ５）。
【００３０】
続いて、ＣＰＵ（１）から入力回路３１へスタートトリガが発生され（ステップＳ６）、入力回路３１から入力データ制御回路３２へデータ（例えば、イメージデータ）が送信される（ステップＳ７）。その後は、複数のデバイスＤ１〜Ｄ３で順番にデータ処理が行われる場合と、同時に複数のデバイスＤ１〜Ｄ３でデータ処理が行われる場合とで処理内容が分かれる。
【００３１】
図４は、複数のデバイスで順番にデータ処理が行われる場合のフローチャートである。先ず、一番始めのバスマスタは入力データ制御回路３２からデータを受け取り、指定されたデータの処理を行う（ステップＳ１１）。次いで、次の処理を行うデバイスに対してターゲットアドレスを送信し、続いてデータを送信する。このとき、全てのデバイス（マスター／ターゲット）は前記ターゲットアドレスを受信し、自分が次のバスマスタになるか否かを認識し、事前処理可能な項目を実施しておく。これにより、トランザクションが最速で発生可能な状態にしておく（ステップＳ１２）。
【００３２】
次に、バス調停装置１の転送サイズカウンタ１４で転送サイズをカウントしておき、最低転送サイズレジスタ１２に格納される最低転送サイズ以下の場合は引き続き今までのバスマスタにバス使用権を与えるようにする。一方、最低転送サイズの値より多くのデータが転送された場合、バス調停装置１はデータ送信終了信号を検知したと同時にバスマスタ順序レジスタ１１の順序に従い次のバスマスタへバス使用権を順次移す（グラント（GNT#）の発行）（ステップＳ１３）。
【００３３】
その後、処理結果を指定されたデバイスから出力装置へ専用線（ローカルバス）を介してデータを送信し（ステップＳ１４）、ＣＰＵ（１）もしくはＣＰＵ（２）からバス調停装置１へ処理終了を通知する（ステップＳ１５）。
【００３４】
図５は、同時に複数のデバイスでデータ処理が行われる場合のフローチャートである。先ず、入力データ制御回路３２から各デバイスＤ１〜Ｄ３へ専用線で順次（又は同時に）データを送信する（ステップＳ２１）。
【００３５】
次いで、一番始めのバスマスタはデータ準備完了と同時にターゲット（出力回路）アドレスを送信し、続いてデータを出力回路３３に送信する。このとき、全デバイスＤ１〜Ｄ３は、前記ターゲット（出力回路）アドレスを受信し、自分が次のバスマスタになるか否かを認識し、事前処理可能な項目を実施しておく。これにより、トランザクションが最速で発生可能な状態にしておく。また、バス調停装置１の転送サイズカウンタ１４で転送サイズをカウントしておき、最低転送サイズレジスタ１２に格納される最低転送サイズ以下の場合は引き続き今までのバスマスタにバス使用権を与えるようにする（ステップＳ２２）。
【００３６】
また、順次バスマスタになる可能性のある他のデバイスは、ターゲット（出力回路）アドレスを受信し、自分が次のバスマスタになることを認識し、事前処理を実施しておく（ステップＳ２３）。その後、ＣＰＵ（１）もしくはＣＰＵ（２）からバス調停装置１へ処理終了を通知する（ステップＳ２４）。
【００３７】
図６は、本実施形態に係るバス調停のタイミングチャート、図７、図８は比較例のタイミングチャートである。先ず、図７に示す比較例Ａは、バスパーキングデバイスが存在しない場合の例で、バス使用権がフローティングの状態でNo.1デバイスからバス使用権の要求があると（REQ1#がLow）、グラント（GNT1#）が発行されるまでタイムラグが発生していることが分かる。
【００３８】
また、図８に示す比較例Ｂは、バスパーキングが存在する場合の例で、No.1デバイスにバスパーキングがされているときにNo.2デバイスからバス使用権が要求があると（REQ2#が発行）、No.1デバイスへのグラント（GNT1#）をHighにした後、No.2デバイスにグラント（GNT2#）を発行している。このため、No.2デバイスによるバス使用権の要求からグラント発行までタイムラグが発生していることが分かる。
【００３９】
これに対し、図６に示す本実施形態では、バスマスタ順序レジスタ１１に格納されたバスマスタの順番に従ってバス使用権を移していくため、各デバイスからの要求（REQ#）が不要である。先ず、デバイスセレクタ（DEVSEL#）がLowになることでバスマスタ順序レジスタ１１に従った一つのデバイス（ここではNo.1デバイス）が選択され、グラント（GNT1#）の発行によってNo.1デバイスをバスマスタとしてデータ転送が行われる。
【００４０】
次に、バスマスタ順序レジスタ１１に従ってデバイスセレクタ（DEVSEL#）の切り替わりが発生した場合でも、バスマスタによるデータの転送サイズが最低転送サイズ以上になっていないときはそのままグラント（GNT1#）はLowのままになり、No.1デバイスのバス使用権は維持される。
【００４１】
その後、No.1デバイスからデータ転送終了信号がバス調停装置１に送られるとグラント（GNT1#）がHighとなる。これと同時にデバイスセレクタ（DEVSEL#）の切り替わり、およびバスマスタ順序レジスタ１１に従った次のデバイスであるNo.2デバイスに対するグラント（GNT2#）がLowとなってNo.2デバイスへバス使用権が移行する。つまり、本実施形態では、No.1デバイスからNo.2デバイスへのバス使用権の移行に１クロックのタイムラグも発生しないことになる。
【００４２】
このようなバス調停装置１により、タイムラグなくバス使用権を移行できるとともに、各デバイスがバスマスタとなった際にはデータの最低転送サイズが保証されるため、確実かつ迅速にデータの転送処理を行うことが可能となる。
【図面の簡単な説明】
【００４３】
【図１】本実施形態に係るバス調停装置を説明するブロック図である。
【図２】デバイスの内部構成を説明する概略ブロック図である。
【図３】本実施形態に係るバス調停装置の動作を説明するフローチャートである。
【図４】複数のデバイスで順番にデータ処理が行われる場合のフローチャートである。
【図５】同時に複数のデバイスでデータ処理が行われる場合のフローチャートである。
【図６】本実施形態に係るバス調停のタイミングチャートである。
【図７】比較例Ａのタイミングチャートである。
【図８】比較例Ｂのタイミングチャートである。
【符号の説明】
【００４４】
１…バス調停装置、１１…バスマスタ順序レジスタ、１２…最低転送サイズレジスタ、１３…コンペア回路、１４…転送サイズカウンタ、１５…GNT#出力回路、２２…比較回路、２５…アドレスレジスタ、Ｄ１〜Ｄ３…デバイス
【図１】
2006163881.tif 000003
【図２】
2006163881.tif 000004
【図３】
2006163881.tif 000005
【図４】
2006163881.tif 000006
【図５】
2006163881.tif 000007
【図６】
2006163881.tif 000008
【図７】
2006163881.tif 000009
【図８】
2006163881.tif 000010