(57)【要約】【課題】スレーブデバイスを追加する際に、マスタデバイス・スレーブデバイス間のデータ転送を調停する調停回路を少ない変更とすることができるバス調停回路を提供すること。【解決手段】  バス調停回路３０は、複数のマスタデバイス１０と、これらにバスを介して接続されるスレーブデバイス２０との間のデータ転送の調停をするものであって、複数のマスタデバイス１０からデータ転送リクエストを受け取り、当該リクエストを出力したマスタデバイスの識別情報を要求順又は優先順に出力するＩＤ生成回路３１と、ＩＤ生成部から受け取ったマスタデバイス識別情報に基づき、リクエストを処理させるリクエスト処理部３２とを有する。調停回路３０のうち少なくともリクエスト処理部３２は、スレーブデバイス２０毎に設けられている。【選択図】  図１
2007122410.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタデバイスからのスレーブデバイスへ対するデータ転送リクエストを調停するバス調停回路であって、
前記複数のマスタデバイスから受け取ったデータ転送リクエストの調停をし、リクエストを要求したマスタデバイスの識別情報を生成して出力する識別情報生成部と、
前記識別情報生成部から受け取ったマスタデバイス識別情報に基づき、リクエストを処理させるリクエスト処理部とを有し、
少なくともリクエスト処理部は、前記スレーブデバイス毎に設けられるバス調停回路。
【請求項２】
前記リクエスト処理部は、
前記マスタデバイス識別情報を保持するリクエスト保持部と、
前記スレーブデバイスと前記複数のマスタデバイスのいずれか一とを接続させる選択部とを有し、
前記リクエスト保持部は、前記マスタデバイス識別情報に基づき前記選択部の接続を制御する
ことを特徴とする請求項１記載のバス調停回路。
【請求項３】
前記識別情報生成部は、前記スレーブデバイス毎に設けられるものであって、
前記複数のマスタデバイスから受け取ったデータ転送リクエストのうち自己のスレーブデバイスに対するリクエストのみを抽出し、抽出したリクエストを要求したマスタデバイスの識別情報を出力する
ことを特徴とする請求項１又は２記載のバス調停回路。
【請求項４】
前記リクエスト処理部は、ライト用リクエスト処理部及びリード用リクエスト処理部とからなり、
前記ライト用リクエスト処理部及びリード用リクエスト処理部は、それぞれ前記リクエスト保持部及び前記選択部を有する
ことを特徴とする請求項１乃至３のいずれか１項記載のバス調停回路。
【請求項５】
前記識別情報生成部は、一のマスタデバイスに対して２以上の前記データ転送リクエストを受け取った場合は、受け取った順で前記一のマスタデバイスへ前記識別情報を出力する
ことを特徴とする請求項１乃至４のいずれか１項記載のバス調停回路。
【請求項６】
前記識別情報生成部は、一のマスタデバイスに対して２以上の前記データ転送リクエストを受け取った場合は、当該データ転送リクエストを発行したマスタデバイスの優先順位が高い順で前記一のマスタデバイスへ前記識別情報を出力する
ことを特徴とする請求項１乃至４のいずれか１項記載のバス調停回路。
【請求項７】
前記識別情報生成部は、一のマスタデバイスに対して２以上の前記データ転送リクエストを受け取った場合は、当該データ転送リクエストを発行したマスタデバイスのうち最も優先順位が高いマスタデバイスの前記識別情報を前記一のマスタデバイスへ出力する
ことを特徴とする請求項１乃至４のいずれか１項記載のバス調停回路。
【請求項８】
前記リクエスト処理部は、前記スレーブデバイスと前記複数のマスタデバイスとの間に接続された転送監視部を更に有し、
前記転送監視部は、前記スレーブデバイスとマスタデバイスとの間の転送終了を検知し前記リクエスト保持部に前記リクエストの終了通知する
ことを特徴とする請求項１乃至４のいずれか１項記載のバス調停回路。
【請求項９】
前記識別情報生成部は、前記データ転送リクエストを受け取ると、前記識別情報と共にデータ転送の繰り返し回数を出力し、
前記転送監視部は、前記繰り返し回数に基づきデータ転送回数をカウントし、カウント結果に基づき前記リクエストの終了通知をする
ことを特徴とする請求項８記載のバス調停回路。
【請求項１０】
複数のマスタデバイスからのスレーブデバイスへ対するデータ転送リクエストを調停するバス調停方法であって、
前記複数のマスタデバイスからのデータ転送リクエストを受け取ると、そのデータ転送リクエストを要求したマスタデバイスを識別するマスタデバイス識別情報を生成し、
前記データ転送リクエストが前記スレーブデバイスに対するリード要求かライト要求かを判別し、
前記マスタデバイス識別情報を、リード要求である場合には前記スレーブバイス毎に設けられたリード用リクエスト処理部に出力し、ライト要求である場合には前記スレーブデバイス毎に設けられたライト用リクエスト処理部に出力し、
前記リード要求とライト要求のデータ転送リクエストを並列して処理するバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタデバイスからのスレーブデバイスへ対するデータ転送リクエストを調停するバス調停回路及びバス調停方法に関する。
【背景技術】
【０００２】
図３は、従前のバス調停回路を示す図である。図３に示すように、従前は、複数のマスタデバイス１１０とバスモジュール１３０を介してスレーブデバイス１２０が接続されているシステムにおいて、異なるマスタデバイス１３０から同一のスレーブデバイスへデータ転送を行う際、バスモジュール１３０の調停回路１３１は、先にアクセスを開始したマスタデバイスの転送が終了してから、次の転送のリクエストを受け付けるようにアービトレーション（Arbitration：調停）していた。
【０００３】
これは以下の理由による。すなわち、一つのスレーブデバイスが、複数のマスタデバイスから連続してリクエストを受け付けてしまうと、ライトデータフェーズ、又はリードデータフェーズにおいて、複数のマスタデバイスが転送可能になってしまう。すると、データ転送の順序関係が保証されないため、後にリクエストを出力したマスタデバイスが先に転送を実行したり、同時に転送を実行した場合、正しく転送を実行することができなくなってしまう。
【０００４】
このため、調停回路１３１を設け、異なるマスタデバイスが一つのスレーブデバイスに対して連続してアクセスする際は、最初のデータ転送を終了してから、次のリクエストを受け付けるよう、前記バス調停回路にて調停されていた。しかしながら、この方法では、スレーブデバイスコンフリクト時に、スレーブデバイスがリクエストを受け付けられない期間が生じるため、マスタデバイス・スレーブデバイス間の転送速度が落ちてしまうという欠点があった。
【０００５】
すなわち、同一のスレーブデバイスへのアクセスが生じると、先のマスタデバイスのデータ転送が終了するのを待ってから、次のマスタデバイスのリクエストを受け付けるように調停するため、レイテンシ(待ち時間)が多くなってしまい、実質的にデータ転送の高速化を図ることができないという問題点があった。
【０００６】
このような問題に対し、特許文献１には、一連のデータ転送終了を待たずにデータ転送の起動を行なえるようにすることで、実質的にデータ転送の高速化を図ったバス調停方法が開示されている。図４は、特許文献１に記載のバス調停方法を説明する図である。
【０００７】
図４に示すように、複数のマスタデバイス２２０は、それぞれ複数のスレーブデバイス２３０とバスを介して接続され、データの転送要求が生じると該当するスレーブデバイス２３０にデータ転送の要求を行う。マスタデバイス２２０はまた、データ転送の要求が生じると、データ転送を行うデバイス情報を示す識別信号（１）を識別信号制御回路２１０に送る。
【０００８】
識別信号制御回路２１０は、バスを介してマスタデバイス２２０及びスレーブデバイス２３０に接続され、これらデバイス間で行うデータ転送のタイミングを指示する制御回路である。この識別信号制御回路２１０は、マスタデバイス２２０よりスレーブデバイス２３０に行われたデータ転送の要求（バスサイクル）を識別信号（１）にて記憶し、同バスサイクルに対するデータ転送タイミングを識別信号（２）にて通知する。
【０００９】
スレーブデバイス２３０は、マスタデバイス２２０よりデータ転送の要求を受けると、要求されたデータの転送をバスを介して所定のタイミングにて行う。このスレーブデバイス２３０は、識別信号制御回路２１０より送られた識別信号（２）により、各デバイスが起動されたバスサイクルに対するデータ転送のタイミングを判断する。識別信号制御回路２１０、マスタデバイス２２０及びスレーブデバイス２３０間でやり取りされる情報は、識別信号（１）、識別信号（２）、アドレス／転送方向信号２４３、アドレスストローブ信号２４４、アドレス応答信号２４５、データ信号２４６、データ応答信号２４７であり、これらはバスを介して伝送される。
【００１０】
識別信号（１）は、マスタデバイス２２０がスレーブデバイス２３０に対し転送要求を行う際に識別信号制御回路２１０に送出される信号であり、転送要求を行ったマスタデバイス２２０、要求先のスレーブデバイス２３０の情報などが含まれている。
【００１１】
識別信号（２）は識別信号制御回路２１０がスレーブデバイス２３０に対しデータ転送を行うタイミングを示す信号であり、各スレーブデバイス２３０はこの信号が自スレーブデバイス２３０を示しているときにデータの転送を行う。この識別信号（２）に同期してマスタデバイス２２０とスレーブデバイス２３０はデータ転送を行う。
【００１２】
アドレス信号／転送方向信号２４３は、マスタデバイス２２０よりスレーブデバイス２３０に送信される信号であり、アドレス信号により信号送信先のスレーブデバイス２０が指定され、転送方向信号により、マスタデバイス２２０がスレーブデバイス２３０に対し、書き込み動作を行うのかまたは読み出し動作を行うのかを指示する。
【００１３】
アドレスストローブ信号２４４は、信号の有効／無効を示す信号である。この信号２４４は、マスタデバイス２２０より送られるアドレス信号／転送方向信号２４３および識別信号（１）を、スレーブデバイス２３０が記憶するタイミングを示す。
【００１４】
アドレス応答信号２４５は、スレーブデバイス２３０から識別信号制御回路２１０及びマスタデバイス２２０に送られる信号であり、識別信号（１）及びアドレス信号／転送方向信号２４３の取り込みが終了したときに送出される。
【００１５】
データ信号２４６は、マスタデバイス２２０とスレーブデバイス２３０間でやり取りされる情報である。データ応答信号２４７は、スレーブデバイス２３０からマスタデバイス２２０及び識別信号制御回路２１０に送信される信号である。スレーブデバイス２３０は、書き込み動作または読み出し動作のために十分な時間が経過するとこの信号を送出する。読み出し動作の場合、マスタデバイス２２０はデータ応答信号２４７が送出された時点でデータ信号２４６の取り込みを行う。
【００１６】
このように、特許文献１に記載の技術においては、各マスタデバイスからのリクエスト信号から、データ転送するマスタデバイス・スレーブデバイスの識別信号を付加し、その識別信号によりデータ転送を行う。
【特許文献１】特開平５−１４３５３３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、上述の特許文献１においては、複数のマスタデバイスとスレーブデバイスとのデータ転送の調停を１つの識別信号制御回路２１０が行なうため、１つのリクエストを処理するため、マスタデバイス及びスレーブデバイスの両方を識別する識別信号を生成する必要があり、マスタデバイス・スレーブデバイスの数が多い場合には多数のリクエストを調停しなければならない等、その処理が複雑である。また、新たにスレーブデバイスを接続する場合には、識別信号制御回路２１０を取り替える必要があり、スレーブデバイスを追加する際の処理が煩雑であるという問題点がある。
【課題を解決するための手段】
【００１８】
本発明にかかるバス調停回路は、複数のマスタデバイスからのスレーブデバイスへ対するデータ転送リクエストを調停するバス調停回路であって、前記複数のマスタデバイスから受け取ったデータ転送リクエストの調停をし、リクエストを要求したマスタデバイスの識別情報を生成して出力する識別情報生成部と、前記識別情報生成部から受け取ったマスタデバイス識別情報に基づき、リクエストを処理させるリクエスト処理部とを有し、少なくともリクエスト処理部は、前記スレーブデバイス毎に設けられるものである。
【００１９】
本発明においては、調停回路のうち、少なくともリクエスト処理部はスレーブデバイス毎に設けられるため、ＩＤ生成部のみを更新すれば簡単にスレーブデバイスを追加することができる。
【００２０】
本発明にかかるバス調停方法は、複数のマスタデバイスからのスレーブデバイスへ対するデータ転送リクエストを調停するバス調停方法であって、前記複数のマスタデバイスからのデータ転送リクエストを受け取ると、そのデータ転送リクエストを要求したマスタデバイスを識別するマスタデバイス識別情報を生成し、前記データ転送リクエストが前記スレーブデバイスに対するリード要求かライト要求かを判別し、前記マスタデバイス識別情報を、リード要求である場合には前記スレーブデバイス毎に設けられたリード用リクエスト処理部に出力し、ライト要求である場合には前記スレーブデバイス毎に設けられたライト用リクエスト処理部に出力し、前記リード要求とライト要求のデータ転送リクエストを並列して処理するものである。
【００２１】
本発明においては、スレーブデバイス毎にリード用リクエスト処理部及びライト用リクエスト処理部が設けられているため、スレーブデバイスの追加が容易であると共に、マスタデバイスからのリード要求とライト要求とを並列処理することができるため、リクエストの処理を高速化することができる。
【発明の効果】
【００２２】
本発明によれば、スレーブデバイスを増設する場合であっても、マスタデバイス・スレーブデバイス間のデータ転送を調停する調停回路を少ない変更とすることができるバス調停回路及びバス調停方法を提供する。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、データ転送の終了を待たずに、次のデータ転送リクエストを受け付けることができるバス制御回路に適用したものである。
【００２４】
図１は、本実施の形態にかかるバス調停回路を示すブロック図である。図１に示すように、バス制御システム１は、例えばシステムＬＳＩ（Large Scale Integration）内部に設けられる。本実施の形態にかかる調停回路３０は、複数のマスタデバイス１０と、複数のスレーブデバイス２０とを接続し、バス制御システム１を構成する。この調停回路３０は、マスタデバイス１０とスレーブデバイス２０との間のバスにおけるデータ転送リクエストの調停を行なう。
【００２５】
ここで、マスタデバイス１０は、例えばＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＤＭＡ（Direct Memory Access controller）コントローラなどである。スレーブデバイス２０は、メモリなどである。
【００２６】
調停回路３０は、リクエスト調停・ＩＤ生成回路３１と、リクエスト処理部３２とを有する。ここで、本実施の形態においては、リクエスト処理部３２は、各スレーブデバイス２０毎に設けられるものとして、リクエスト調停・ＩＤ生成回路３１は、各スレーブデバイス２０に共通に設けられるものとして説明する。なお、リクエスト調停・ＩＤ生成回路３１も、リクエスト処理部３２と同様、スレーブデバイス２０毎に設ける、すなわち、調停回路３０をスレーブデバイス毎に設けることも可能である。少なくともリクエスト処理部３２をスレーブデバイス２０毎に設けることで、各リクエスト処理部３２の処理を軽くすると共に、新たなスレーブデバイス２０を追加する際に、追加前のスレーブデバイス２０に対応して設けられるリクエスト処理部３２をそのまま使用することができ、リクエスト調停・ＩＤ生成回路３１のみの変更でよいため、スレーブデバイス２０の追加が簡単化する。
【００２７】
リクエスト調停・ＩＤ生成回路３１は、リクエストフェーズの調停と、スレーブデバイス毎にアクセス許可されたマスタデバイスのＩＤを出力する。具体的には、複数のマスタデバイス１０からデータ転送リクエストを受け取ると、どのスレーブデバイス２０へのリクエストかを判別する。また、リクエストが、ライト要求であるかリード要求であるかを判別する。これらの判別結果に基づき、データ転送リクエストをスレーブデバイス２０毎、リード要求、ライト要求毎に振り分ける。そして、リクエストを発行したマスタデバイス１０を識別するためのマスタデバイス識別情報（マスタデバイスＩＤ）を生成し、これを要求先の各スレーブデバイス２０のリクエスト処理部３２へ出力する。ここで、リクエスト調停・ＩＤ生成回路３１は、マスタデバイスＩＤと共に、データ転送リクエストのデータ転送の繰り返し回数（バースト長）も出力する。
【００２８】
ここで、リクエスト調停・ＩＤ生成回路３２は、一のスレーブデバイス２０に対する複数のデータ転送リクエストを受け取った場合には、マスタデバイスＩＤをマスタデバイスのリクエスト発行順に出力することができる。また、一のスレーブデバイス２０に対する複数のデータ転送リクエストを同時に受け取った場合には、例えば予め定められたマスタデバイス１０の優先順位が高い順に上記マスタデバイスＩＤを出力することができる。又は、同時に受け取った場合には、優先順位が最も高いマスタデバイス１０からのリクエストのみを受け付け、そのマスタデバイスＩＤを出力することも可能である。こうしてリクエストを、要求順又は優先順等としてそのマスタデバイスＩＤ及び繰り返し回数をリクエスト処理部３２へ出力する。この場合、リクエストがライト要求であるかリード要求であるかにより、各スレーブデバイス２０のリクエスト処理部３２の後述するライト用ＩＤ保持回路４１又はリード用ＩＤ保持回路５１のいずれかに出力する。リクエストをライト要求とリード要求とで区別することで、リート用バス、ライト用バスを有効利用することができると共にリクエストの処理を高速化することができる。
【００２９】
こうしてリクエスト調停ＩＤ生成回路３１により、マスタデバイス１０からのリクエストが対象のスレーブデバイス２０のリクエスト処理部３２へ振り分けられる。リクエスト処理部３２は、リクエスト調停・ＩＤ生成回路３１から受け取ったマスタデバイスＩＤ及び繰り返し回数に基づき、リクエストを処理させる回路である。このリクエスト処理部３２は、マスタデバイス１０からスレーブデバイス２０に対してライト要求を処理するライト用リクエスト処理部と、リード要求を処理するリード用リクエスト処理部とからなる。
【００３０】
ライト用リクエスト処理部は、ライト用ＩＤ保持回路４１と、ライトフェーズ信号調停回路４２と、ライト用転送カウンタ４３とを有する。リード用リクエスト処理部も同様に構成され、リード用ＩＤ保持回路５１と、リードフェーズ信号調停回路５２と、リード用転送カウンタ５３とを有する。リクエスト調停ＩＤ生成回路３１からスレーブデバイス２０毎に割り振られたマスタデバイスＩＤ及び繰り返し回数は、リクエストがリード要求かライト要求かでライト用ＩＤ保持回路４１又はリード用ＩＤ保持回路５１に割り振られる。
【００３１】
ライト用ＩＤ保持回路４１は、マスタデバイスＩＤ及びカウント回数をリクエスト毎に保持するリクエスト保持部として機能する。また、保持しているリクエスト順で、そのマスタデバイスＩＤに基づきライトフェーズ信号調停回路４２を制御する。ライトフェーズ信号調停回路４２は、ライト用ＩＤ保持回路４１からのマスタデバイスＩＤに基づきスレーブデバイス２０と複数のマスタデバイス１０のうち、マスタデバイスＩＤが示す特定のマスタデバイスとを接続させる選択部として機能する。
【００３２】
ライト用転送カウンタ４３は、スレーブデバイス２０とライトフェーズ信号調停回路４２との間に接続され、スレーブデバイス２０がリクエストを処理して出力する終了信号（ＡＣＫ）に基づきライト用ＩＤ保持回路４１にリクエストの終了通知する転送監視部として機能する。
【００３３】
次に、リクエスト処理部３２の各回路について更に詳細に説明する。上述したように、リクエスト処理部３２は、スレーブデバイス毎に設けられる。そして、リクエスト調停ＩＤ生成回路３１からスレーブデバイス毎に割り振られたリクエストは、当該リクエストがリード要求であるかライト要求であるかでライト用ＩＤ保持回路４１又はリード用ＩＤ保持回路５１に割り振られる。
【００３４】
ライト用ＩＤ保持回路４１は、リクエスト調停ＩＤ生成回路３１から割り振られたデータ転送リクエストのうちライト要求を保持する。この際、ライトリクエストを発行したマスタデバイスを識別するマスタデバイスＩＤと、ライトデータの転送回数とをリクエスト毎に保持する。そして、保持した順で、マスタデバイスＩＤをライトフェーズ信号調停回路４２に出力する。一のリクエストの処理が終了すると次のリクエストのマスタデバイスＩＤを出力する。
【００３５】
同様に、リード用ＩＤ保持回路５１は、リクエスト調停ＩＤ生成回路３１から割り振られたデータ転送リクエストのうちライト要求をリクエスト毎に保持する。そして、保持した順で、マスタデバイスＩＤをリードフェーズ信号調停回路５２に出力する。
【００３６】
ライトフェーズ信号調停回路４２は、マスタデバイスＩＤを受け取ると、このマスタデバイスＩＤをデコードし現在のリクエスト元であるマスタデバイス１０とスレーブデバイス２０とを接続させる。リードフェーズ信号調停回路５２も同様に、マスタデバイスＩＤに基づき現在のリクエスト元のマスタデバイス１０とスレーブデバイス２０とを接続させる。
【００３７】
ライト用転送カウンタ４３は、ライトデータが転送終了した際の転送終了通知を受け取るとこれをライト用ＩＤ保持回路４１へ通知する。ライト用ＩＤ保持回路４１は、この通知により現在のリクエストをクリアし、次のリクエストの処理に移る。また、同一のデータを繰り返しライトするリクエストの場合には、データ転送毎に転送完了通知を受け取り、これを終了回数までカウントアップすることでリクエストの終了をライト用ＩＤ保持回路４１へ通知する。リード用転送カウンタ５３も同様に機能する。
【００３８】
なお、スレーブデバイス２０が繰り返し転送を行なう場合に、１回の転送を終了する毎ではなく、全てのデータ転送が終了した場合にのみ転送完了通知を出力するものであるときは、ライト用転送カウンタ４３、リード用転送カウンタ５３はこれを検知しそれぞれライト用ＩＤ保持回路４１、リード用ＩＤ保持回路５１に通知すればよい。また、これらライト用転送カウンタ４３、リード用転送カウンタ５３は、それぞれライト用ＩＤ保持回路４１、リード用ＩＤ保持回路５１内に設けてもよい。更に、これらライト用転送カウンタ４３、リード用転送カウンタ５３を設けず、ライト用ＩＤ保持回路４１、リード用ＩＤ保持回路５１はデータ転送終了通知をスレーブデバイス２０から直接受け取るようにしてもよい。
【００３９】
次に、本実施の形態にかかるバス調停回路の動作について説明する。本実施の形態においては、２つのマスタデバイス１０（以下、マスタデバイスＭ０、Ｍ１という。）がスレーブデバイス２０に対して連続してライト転送リクエスト（ライト要求）、リード転送リクエスト（リード要求）する場合について説明する。図２は、バス調停回路１の動作を説明するタイミングチャートである。
【００４０】
先ず、マスタデバイスＭ０がスレーブデバイス２０に対してライト要求をする。ライト要求は、リクエスト調停ＩＤ生成回路３１を介して、又は直接スレーブデバイス２０に転送される。ライト要求には、ライトデータのアドレス等が含まれる。これを受け取ったスレーブデバイス２０は、リクエスト受付（ａｃｋ０）をリクエスト調停・ＩＤ生成回路３１へ出力する。マスタデバイスＭ１が同じくスレーブデバイス２０に対してリード要求をするとこのリード要求もリクエスト調停ＩＤ生成回路３１を介して、又は直接スレーブデバイス２０に転送される。リード要求には、リードデータのアドレス等が含まれる。そして、これを受け取ったスレーブデバイスからリクエスト受け付け（ａｃｋ１）がリクエスト調停・ＩＤ生成回路３１へ出力される。
【００４１】
本例においては、これらのリクエストは、同一のスレーブデバイス２０に対するものであるが、リード要求、ライト要求であって、それぞれ別々のバス（リードバス、ライトバス）にて処理されるものであって、また順次発行されていることから、リクエスト調停・ＩＤ生成回路３１がこれらのリクエストを処理可能としてスレーブデバイス２０からの上記リクエスト受付（ａｃｋ０、ａｃｋ１）をマスタデバイス１０へ渡す。以上のようにして、マスタデバイスＭ０、Ｍ１からのリクエストが受け付け完了となる。
【００４２】
ここで、リクエスト調停ＩＤ生成回路３１は、複数のマスタデバイス１０から同時に同一のスレーブデバイス１０に対し、例えばライト要求（同種のリクエスト）が発行された場合には、上述したように、例えば、スレーブデバイス２０から渡されるリクエスト受付のうち、優先順位が高いマスタデバイス１０からのものに対するリクエストのリクエスト受付のみをマスタデバイス１０へ返すことでリクエストの調停を行なう。
【００４３】
リクエスト調停ＩＤ生成回路３１は、受け付けを完了したリクエストを順次処理する。本例では、先ず、マスタデバイスＭ０のライト要求から、マスタデバイスＭ０を示すマスタデバイスＩＤ、ライトデータの繰り返し回数をライト用ＩＤ保持回路４１へ出力する。ライト用ＩＤ保持回路４１は、受け取ったマスタデバイスＩＤをライトフェーズ信号調停回路４２へ出力する（図２に示すＭ０  ライトＩＤ）。ライトフェーズ信号調停回路４２は、このマスタデバイスＩＤに基づき、マスタデバイスＭ０からの信号がスレーブデバイス２０に転送されるよう両者を接続する。マスタデバイスＭ０とスレーブデバイス２０とは、このマスタデバイスＩＤが出力されている間、接続される。
【００４４】
また、リクエスト調停ＩＤ生成回路３１は、マスタデバイスＭ１のリード要求から、マスタデバイスＭ１を示すマスタデバイスＩＤ、繰り返し回数をリード用ＩＤ保持回路５１へ出力する。リード用ＩＤ保持回路５１は、受け取ったマスタデバイスＩＤをリードフェーズ信号調停回路５２へ出力する（図２に示すＭ１  リードＩＤ）。リードフェーズ信号調停回路５２は、このマスタデバイスＩＤに基づき、マスタデバイスＭ１からの信号がスレーブデバイス２０に転送されるよう両者を接続する。マスタデバイスＭ１とスレーブデバイス２０とは、このマスタデバイスＩＤが出力されている間、接続される。ここで、マスタデバイスＭ１からのリクエストはリード要求であるので、上記のマスタデバイスＭ０からのライト要求と並行して処理することができる。
【００４５】
マスタデバイスＭ０とスレーブデバイス２０とが接続されると、マスタデバイスＭ０がスレーブデバイス２０へライトデータ及びライトデータが有効であることを示す信号（data valid）を出力する。この際、ライト用転送カウンタ４３は、スレーブデバイス２０のライトデータフェーズのデータ転送終了信号の回数をカウントし、ライト用ＩＤ保持回路４１に保持されている繰り返し回数分の転送終了信号を受け取ったら、これをライト用ＩＤ保持回路４１へ通知する。又は、スレーブデバイス２０からデータ転送が終了した際に出力するデータ転送終了信号を受け取り、これをライト用ＩＤ保持回路４１へ通知する。
【００４６】
ライト用ＩＤ保持回路４１は、この通知により保持しているリクエスト（マスタデバイスＩＤ、繰り返し回数）をクリアし、マスタデバイスＩＤの出力を終了する。これにより、ライトフェーズ信号調停回路４２によるマスタデバイスＭ０とスレーブデバイス２０との接続を終了させ、コマンド処理を終了する。なお、スレーブデバイス２０がデータ転送終了信号を出力しない場合には、ライト用転送カウンタ４３を設けず、ライト用マスタＩＤ保持回路４１がマスタデバイスＩＤ出力後、データ転送に必要十分な時間が経過するのを待って処理を終了するようにしてもよい。
【００４７】
一方、マスタデバイスＭ１とスレーブデバイス２０とが接続されると、スレーブデバイス２０は、転送するリードデータが有効であること示す応答信号及び読み出したリードデータをマスタデバイスＭ１へ転送する。
【００４８】
リード用転送カウンタ５３は、スレーブデバイス２０のリードデータフェーズのデータ転送終了信号の回数をカウントし、リードＩＤ・バースト長保持回路５１に保持されている繰り返し回数分のデータ転送が終了したら、これをリード用ＩＤ保持回路５１へ通知する。又は、スレーブデバイス２０からデータ転送が終了した際に出力するデータ転送終了信号を受け取り、これをリード用ＩＤ保持回路５１へ通知する。
【００４９】
リード用ＩＤ保持回路５１は、この通知により保持しているリクエスト（マスタデバイスＩＤ、繰り返し回数）をクリアし、マスタデバイスＩＤの出力を終了する。これにより、リードフェーズ信号調停回路５２によるマスタデバイスＭ１とスレーブデバイス２０との接続を終了させ、コマンド処理を終了する。なお、ライトの場合と同様、リード用マスタＩＤ保持回路５１がマスタデバイスＩＤ出力後、データ転送に必要十分な時間が経過するのを待って処理を終了するようにしてもよい。
【００５０】
本実施の形態においては、スレーブデバイス２０毎に、マスタデバイス１０からのリクエストを処理するリクエスト処理部３２を設けることで、スレーブデバイス２０の新たな追加を容易とする。また、スレーブデバイス２０毎に、リクエスト処理部３２によりデータ転送を行なうマスタデバイスＩＤとその順序を記憶することで、複数のリクエストを受け取ることができると共にリクエスト処理部３２がリードとライトのリクエストを別々に処理することができ、このことにより、従来に比べてレイテンシを少なくして、データ転送を高速化することができる。
【００５１】
すなわち、リクエスト処理部３２をスレーブデバイス２０毎に設けることで、新たなスレーブデバイスを追加する場合には、調停回路３０の全体ではなく、リクエスト調停ＩＤ生成回路３１のみを変更すればよく、簡単にスレーブデバイスを追加することができる。
【００５２】
また、異なる複数のマスタデバイス１０から同一のスレーブデバイス２０に対してリクエストを発行された場合に、リクエスト調停ＩＤ生成回路３１がこれをスレーブデバイス２０毎に、リクエストを発行したマスタデバイスＩＤとして振り分ける。この際、スレーブデバイス毎に設けられるリクエスト処理部３２は、ライト用ＩＤ保持回路４１及びリード用ＩＤ保持回路５１により、リードのリクエストとライトのリクエストとを別々にマスタデバイスＩＤとして順次振り分ける。
【００５３】
このことにより、複数のマスタデバイス１０が同時に同一のスレーブデバイス２０に対してリクエストを要求した場合においても、最初のデータ転送の終了を待たずに次のリクエストを発行することができる。また、リードとライトのリクエストを別々に処理するため、ライトリクエスト、リードリクエストの同時実行が可能となり、リクエストの処理を高速化することができる。
【００５４】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、本実施の形態においては、リクエスト調停ＩＤ生成回路３１は、各スレーブデバイスに共通に設けることとしたが、リクエスト処理部３２と同様、各スレーブデバイス毎に設けることも可能である。この場合、リクエスト調停ＩＤ生成回路は、マスタデバイスから受け取ったリクエストが、自己のスレーブデバイス宛であるか否かを判断すればよい。このことにより、スレーブデバイス２０の追加が更に簡単化する。
【００５５】
更に、上述の実施の形態においては、ライト用ＩＤ保持回路４１、リード用ＩＤ保持回路５１は、マスタデバイスＩＤ及び転送データのバースト長を保持するものとして説明したが、マスタデバイスＩＤのみを保持するようにすることも可能である。一のリクエストによるデータ転送が終了したか否かは、データ転送終了時にスレーブデバイスが出力する転送終了通知により判断することができ、この通知に基づき、ライトフェーズ信号調停回路４２、リードフェーズ信号調停回路５２を制御すればよい。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施の形態にかかるバス調停回路を示すブロック図である。
【図２】本発明の実施の形態にかかるバス調停方法を説明するタイミングチャートである。
【図３】従前のバス調停回路を示す図である。
【図４】特許文献１に記載のバス調停方法を説明する図である。
【符号の説明】
【００５７】
１０  マスタデバイス
２０  スレーブデバイス
３０  調停回路
３１  ＩＤ生成回路
３２  リクエスト処理部
４１  ライト用バースト長保持回路
４２  ライトフェーズ信号調停回路
４３  ライト用転送カウンタ
５１  リード用バースト長保持回路
５２  リードフェーズ信号調停回路
５３  リード用転送カウンタ
【図１】
2007122410.tif 000003
【図２】
2007122410.tif 000004
【図３】
2007122410.tif 000005
【図４】
2007122410.tif 000006