(57)【要約】【課題】排他制御付き書き込み装置を不要とし、レイアウトの際に配線混雑を回避できるバス装置を得る。【解決手段】キュー分配部１０３は複数のバスマスタ１００〜１０２からバススレーブ１１０〜１１２に転送するデータを含むバス使用要求を受信して分配し、キュー部１０４はキュー分配部１０３から分配されたバス使用要求を複数の領域に分けて保持し、待ち時間算出部１０６はキュー部１０４に保持されたバス使用要求の待ち時間を算出し、バス使用権制御部１０７はキュー部１０４に保持されたバス使用要求の中から、待ち時間算出部１０６により算出された待ち時間により、転送するバス使用要求を選択する。【選択図】図１
2008203989.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタからバススレーブに転送するデータを含むバス使用要求を受信して分配するキュー分配部と、
上記キュー分配部から分配されたバス使用要求を複数の領域に分けて保持するキュー部と、
上記キュー部に保持されたバス使用要求の待ち時間を算出する待ち時間算出部と、
上記キュー部に保持されたバス使用要求の中から、上記待ち時間算出部により算出された待ち時間により、転送するバス使用要求を選択するバス使用権制御部とを備えたバス装置。
【請求項２】
キュー分配部は、バス使用要求の転送種別に応じて、キュー部内の所定の領域にバス使用要求を分配することを特徴とする請求項１記載のバス装置。
【請求項３】
キュー分配部は、バス使用要求に含まれるデータの転送量に応じて、キュー部内の所定の領域にバス使用要求を分配することを特徴とする請求項１記載のバス装置。
【請求項４】
バス使用権制御部は、待ち時間算出部により算出された各バス使用要求の待ち時間を所定の閾値と比較し、比較結果に基づいて、バス使用要求にバス使用権を与えることを特徴とする請求項１記載のバス装置。
【請求項５】
バス使用権制御部は、待ち時間が閾値を越えたバス使用要求が１つしか存在しない場合は該バス使用要求にバス使用権を与え、待ち時間が閾値を越えたバス使用要求が複数存在する場合は、予め定められたバスマスタの固定優先順位によってバス使用権を与えることを特徴とする請求項４記載のバス装置。
【請求項６】
バス使用権制御部は、待ち時間が閾値を越えるバス使用要求が存在しない場合、予め定められたキュー部の優先順位の高い領域から順番にバス使用要求の存在を確認し、
バス使用要求が存在する上記キュー部の領域内において、バス使用要求が１つしか存在しない場合は該バス使用要求にバス使用権を与え、バス使用要求が複数存在する場合は、予め定められたバスマスタの固定優先順位によってバス使用権を与えることを特徴とする請求項４記載のバス装置。
【請求項７】
バス使用権制御部は、待ち時間が閾値を越えるバス使用要求が存在しない場合、予め定められたキュー部の優先順位の高い領域から順番にバス使用要求の存在を確認し、バス使用要求に含まれるデータの転送量により転送するバス使用要求を選択し、
バス使用要求が存在する上記キュー部の領域内において、データの転送量が最大のバス使用要求が１つしか存在しない場合は該バス使用要求にバス使用権を与え、データの転送量が最大のバス使用要求が複数存在する場合は、予め定められたバスマスタの固定優先順位によってバス使用権を与えることを特徴とする請求項４記載のバス装置。
【請求項８】
キュー部は、各領域内にバス使用要求が存在することを示すフラグを設定することを特徴とする請求項１記載のバス装置。
【請求項９】
キュー部の領域の状態を監視し、上記キュー部の領域がフル状態の場合、キュー分配部に上記キュー部の領域にバス使用要求の転送を制限させるキュー状態監視部を備えることを特徴とする請求項１記載のバス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば複数のバスマスタおよび複数のバススレーブ間に接続され、データ転送を行うバス装置に関するものである。
【背景技術】
【０００２】
従来のバス装置は、特許文献１のように、リクエストキューが、バスマスタからのリクエストデータスレッドを同時に保持可能に構成され、リクエストデータスレッド選択装置が、リクエストキューに保持されたリクエストデータスレッドを任意に設定可能な選択アルゴリズムに基づいて選択してバスラインを通じて転送し、リクエストデータスレッド分配装置が、バスラインを通じて転送されたリクエストデータスレッドに含まれるアドレスに応じたバススレーブにそのリクエストデータスレッドを出力するものである。
そしてバス装置のリクエストキューにおいて、排他制御付き書き込み装置は、リクエストデータスレッドが書き込まれていない任意のレジスタに対して、リクエストデータスレッドを複数同時に書き込み可能に構成され、セレクタは、リクエストデータスレッド選択装置からの選択信号に応じてレジスタに保持されたリクエストデータスレッドを選択し、バスラインを通じて転送するものである。
従って従来のバス装置は、バスマスタの動作とは独立してバス転送を行うことができる。マスタからのリクエストをリクエストデータスレッドという単位で扱うことが可能となり、マスタの動作とは独立してバス転送を行うことができ、バスラインを効率よく利用することができる。
【０００３】
【特許文献１】特開２００５-２８４５７８号公報（段落０００８〜段落００１７、図１、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のバス装置は以上のように構成され、排他制御付きの書き込み装置が必要になり、レイアウトの際に配線混雑を引き起こす可能性があるという課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、排他制御付き書き込み装置を不要とし、レイアウトの際に配線混雑を回避できるバス装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るバス装置は、複数のバスマスタからバススレーブに転送するデータを含むバス使用要求を受信して分配するキュー分配部と、キュー分配部から分配されたバス使用要求を複数の領域に分けて保持するキュー部と、キュー部に保持されたバス使用要求の待ち時間を算出する待ち時間算出部と、キュー部に保持されたバス使用要求の中から、待ち時間算出部により算出された待ち時間により、転送するバス使用要求を選択するバス使用権制御部とを備えたものである。
【発明の効果】
【０００７】
この発明によれば、排他制御付き書き込み装置を不要とし、レイアウトの際に配線混雑を回避できるという効果を奏する。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施の一形態を説明する。  
実施の形態１．
図１は、この発明の実施の形態１によるバス装置の構成を示すブロック図であり、図１において、バスマスタ１００〜１０２からバススレーブ１１０〜１１２に対し、書き込みまたは読み出し要求を発行する場合には、バスマスタ１００〜１０２からバス装置１０にバス使用要求（リクエストデータスレッド）を発行する。
【０００９】
図２はこの発明の実施の形態１によるリクエストデータスレッドの例を示す図である。
バス使用要求としてのリクエストデータスレッドは、リクエスト、制御信号およびデータから構成される。たとえば、リクエストとしては、要求を示すリクエスト、発行元のバスマスタ１００〜１０２の識別ＩＤを示すマスタＩＤ、宛先のバススレーブ１１０〜１１２の識別を示すスレッドＩＤがある。そして、制御信号としては、書き込みまたは読み出し要求を示すR/W、宛先のバススレーブ１１０〜１１２のアドレスを示すアドレス、転送の種類（バースト転送かどうか）を示す転送種別がある。最後に、データとしてはバススレーブ１１０〜１１２に書き込むデータがあり、リクエストスレッドは合計Mbitで構成される。
【００１０】
図１において、バス装置１０は、キュー分配部１０３と、キュー部１０４と、キュー状態監視部１０５と、待ち時間算出部１０６と、バス使用権制御部１０７と、バスライン１０８と、スレーブ分配部１０９と、データバッファ部１１３により構成されている。
【００１１】
ここでバスマスタ１００〜１０２は、例えばコンピュータのような装置等が適用され、バススレーブ１１０〜１１２に転送するデータを含むバス使用要求（書き込みまたは読み出し要求）を、バス装置１０に発行する。
【００１２】
キュー分配部１０３は、複数のバスマスタ１００〜１０２から発行されたバススレーブ１１０〜１１２に転送するデータを含むバス使用要求を受信し、受信したバス使用要求を分配するものであり、バス使用要求の転送種別やバス使用要求に含まれるデータの転送量に応じて、キュー部１０４内の所定の領域にバス使用要求をキュー部１０４に分配する。
【００１３】
キュー部１０４はキュー分配部１０３から分配されたバス使用要求を複数の領域に分けて保持するものであり、例えば各領域内にバス使用要求が存在することを示すフラグや、各領域内のバス使用要求がフル(満杯)状態を示すフラグ等を設定する。またキュー部１０４の領域がフル状態の場合等の各領域の状態についてキュー状態監視部１０５に通知する。またキュー部１０４では転送されたバス使用要求の待ち時間を０に初期化する。
【００１４】
キュー状態監視部１０５はキュー部１０４の状態を監視するものであり、キュー部１０４の各領域内のバス使用要求が空かどうか、満杯かどうかを監視し、監視結果をキュー分配部１０３，バス使用権制御部１０７に通知する。例えば、キュー部１０４の領域がフル状態の場合、キュー分配部１０３にキュー部１０４の領域にバス使用要求の転送を制限させる通知をし、また空の領域がある場合はバス使用権制御部１０７に通知する。
【００１５】
待ち時間算出部１０６はキュー部１０４に保持された各バス使用要求の待ち時間を算出するものであり、キュー部１０４に保持されたバス使用要求の待ち時間をカウントアップして待ち時間を算出し、各バス使用要求にフィードバックする。
【００１６】
バス使用権制御部１０７は、キュー部１０４に保持されたバス使用要求の中から、待ち時間算出部１０６により算出された待ち時間やバス使用要求に含まれるデータの転送量等により、転送するバス使用要求を選択するものである。
【００１７】
バス使用権制御部１０７は、待ち時間算出部１０６により算出された各バス使用要求の待ち時間を所定の閾値と比較し、比較結果に基づいて、バス使用要求にバス使用権を与える。
【００１８】
バス使用権制御部１０７は、待ち時間が閾値を越えたバス使用要求がキュー部１０４に１つしか存在しない場合は、そのバス使用要求にバス使用権を与え、待ち時間が閾値を越えたバス使用要求が複数存在する場合は待ち時間が一番長いバス使用要求にバス使用権を与え、待ち時間が一番長いバス使用要求が複数存在する場合は、予め定められたバスマスタ１００〜１０２の固定優先順位によってバス使用権を与える。
【００１９】
バス使用権制御部１０７は、待ち時間が閾値を越えるバス使用要求が存在しない場合、例えばキュー状態監視部１０５からのキュー部の空の領域の通知に基づいて、予め定められたキュー部１０４の優先順位の高い領域から順番にバス使用要求の存在を確認し、バス使用要求が存在するキュー部１０４の領域内において、バス使用要求が１つしか存在しない場合は、そのバス使用要求にバス使用権を与え、バス使用要求が複数存在する場合は、予め定められたバスマスタ１００〜１０２の固定優先順位によってバス使用権を与えることや、データの転送量が最大のバス使用要求にバス使用権を与え、データの転送量が最大のバス使用要求が複数存在する場合は、予め定められたバスマスタ１００〜１０２の固定優先順位によってバス使用権を与える。
【００２０】
バスライン１０８はバス使用権制御部１０７からのバス使用要求をスレーブ分配部１０９に出力するためのものである。
【００２１】
スレーブ分配部１０９はバス使用権制御部１０７から転送されたバス使用要求を該当するバススレーブ１１０〜１１２に転送するものである。スレーブ分配部１０９は、バスライン１０８を通して転送されたバス使用要求としてのリクエストデータスレッド内のスレッドＩＤとアドレスにより、該当するバススレーブ１１０〜１１２にバス使用要求を転送する。スレーブ分配部１０９はバススレーブ１１０〜１１２が保持するＢＵＳＹ信号を監視し、バススレーブ１１０〜１１２がＢＵＳＹでない場合に転送を行う。そのため、内部にバッファが設けられ、バススレーブ１１０〜１１２がＢＵＳＹの場合は一時的にバス使用要求を保持できる。またスレーブ分配部１０９は書き込み完了信号あるいは読み出し完了信号２１７をデータバッファ部１１３に転送する。
【００２２】
バススレーブ１１０〜１１２は例えば記憶装置等が適用され、バススレーブ１１０への転送信号２１４，バススレーブ１１１への転送信号２１５，バススレーブ１１２への転送信号２１６に基づいて、書き込み処理または読み出し処理を行い、読み出しデータ信号２１８をデータバッファ部１１３に転送する。
【００２３】
データバッファ部１１３は書き込み完了信号あるいは読み出し完了信号２１７，読み出しデータ信号２１８を保持し、該当するバスマスタ１００〜１０２にデータ転送が完了したことを通知する。読み出し要求の場合は読み出したデータの転送も行う。データバッファ部１１３は、書き込み要求の場合はマスタＩＤとスレッドＩＤを保持する。読み出し要求の場合、マスタＩＤ、スレッドＩＤおよび読み出しデータを保持する。そして、該当するバスマスタ１００〜１０２にデータ転送が完了したことを通知し、読み出し要求の場合は読み出したデータも転送する。
【００２４】
次に動作について説明する。
バス使用要求（書き込みまたは読み出し要求）がバスマスタ１００〜１０２からキュー分配部１０３にバス使用要求信号２００〜２０２として発行される。このバス使用要求は、キュー分配部１０３からキュー部１０４に、第一優先領域に格納されるバス使用要求信号２０３，第二優先領域に格納されるバス使用要求信号２０４，第三優先領域に格納されるバス使用要求信号２０５として転送され、キュー部１０４はバス使用要求を３つの領域にわけて保持する。保持されているバス使用要求は、バス使用権制御部１０７により、バス使用要求の待ち時間やデータの転送量等に基づいて、転送されるものが決定される。
【００２５】
バス使用要求の待ち時間は、キュー部１０４から待ち時間算出部１０６に更新前待ち時間情報信号２０９として転送され、更新前待ち時間情報信号２０９に基づいて待ち時間算出部１０６により算出したものであり、この算出したバス使用要求の待ち時間は更新後待ち時間情報信号２１０としてキュー部１０４に転送される。またキュー状態監視部１０５はキュー部１０４の３つの領域内のバス使用要求が空かどうか、フル（満杯）状態かどうかを監視し、例えばフル状態の場合は、キュー部１０４からキュー状態監視部１０５に、キュー状態信号２０６により通知される。キュー状態監視部１０５は、この通知された監視結果を、キュー分配部１０３にキュー状態信号２０７として通知し、バス使用権制御部１０７にキュー状態信号２０８として通知する。
【００２６】
バス使用権制御部１０７により決定されたバス使用要求は、キュー部１０４からバス使用権制御部１０７に、第一優先領域のバス使用要求信号２１１，第ニ優先領域のバス使用要求信号２１２，第三優先領域のバス使用要求信号２１３として転送され、バスライン１０８を通じて、スレーブ分配部１０９に転送される。転送されたバス使用要求は、該当するバススレーブ１１０〜１１２に、バススレーブ１１０への転送信号２１４，バススレーブ１１１への転送信号２１５，バススレーブ１１２への転送信号２１６として転送される。またスレーブ分配部１０９はデータバッファ部１１３に書き込み完了信号あるいは読み出し完了信号２１７を転送する。バススレーブ１１０〜１１２はバススレーブ１１０への転送信号２１４，バススレーブ１１１への転送信号２１５，バススレーブ１１２への転送信号２１６に基づいて、書き込み処理または読み出し処理を行い、読み出しデータ信号２１８をデータバッファ部１１３に転送する。データバッファ部１１３は書き込み完了信号あるいは読み出し完了信号２１７，読み出しデータ信号２１８を保持し、該当するバスマスタ１００〜１０２にデータ転送が完了したことをデータ転送完了信号２１９として通知し、読み出し要求の場合は読み出したデータの転送も行う。
【００２７】
図３は、この発明の実施の形態１におけるバス使用要求をキュー部に分配するためのフローチャートである。
発行されたバス使用要求をキュー分配部１０３で図３のフローにしたがって３つの領域に分配する。まず、ＳＴ１において、キュー分配部１０３はバス使用要求の転送種別がバースト転送かどうかを判断し、バースト転送の場合はキュー部１０４の第一優先領域にバス使用要求を転送する。バースト転送でない場合は、ＳＴ２において、キュー分配部１０３はデータの転送量を閾値Ｚと比較し、データの転送量が閾値Ｚよりも大きい場合はキュー部１０４の第二優先領域にバス使用要求を転送する。ＳＴ２において、キュー分配部１０３はデータの転送量が閾値Ｚ以下の場合はキュー部１０４の第三優先領域にバス使用要求を転送する。ただし、転送の際に、キュー分配部１０３はキュー状態監視部１０５からキュー部１０４の各領域がバス使用要求でフル状態になっているかどうかの情報を受け取り、フル状態の場合は転送を中止する。
【００２８】
図４は、この発明の実施の形態１によるバス使用権制御部において、スレーブ分配部に転送するバス使用要求を決定するためのフローチャートである。
ＳＴ１０において、バス使用権制御部１０７はすべてのバス使用要求の待ち時間を閾値Ａと比較し、閾値Ａを越える待ち時間が１つ以上あればＳＴ１１へ進み、すべての待ち時間が閾値Ａ以下であればＳＴ１２に進む。
ＳＴ１１において、バス使用権制御部１０７は待ち時間が閾値Ａを越えたバス使用要求が１個であれば、そのバス使用要求にバス使用権を与え、閾値Ａを越えたバス使用要求が複数存在する場合は、予め定められたバスマスタ１００〜１０２の固定優先順位によりバス使用権を与えるバス使用要求を決定する。
ＳＴ１２において、バス使用権制御部１０７は第一優先領域にバス使用要求が保持されているかどうかを判定し、保持されている場合（empty_flag1=1）はＳＴ１３へ進み、保持されていない場合はＳＴ１４へ進む。
ＳＴ１３において、バス使用権制御部１０７は第一優先領域内に保持されたバス使用要求の個数が１個かどうかを判定し、１個の場合はそのバス使用要求にバス使用権を与え、複数存在する場合は予め定められたバスマスタ１００〜１０２の固定優先順位によりバス使用権を与えるバス使用要求を決定する。
ＳＴ１４において、バス使用権制御部１０７は第二優先領域にバス使用要求が保持されているかどうかを判定し、保持されている場合（empty_flag2=1）はＳＴ１５へ進み、保持されていない場合はＳＴ１６へ進む。
ＳＴ１５において、バス使用権制御部１０７はデータの転送量が最大のバス使用要求を調べ、データの転送量が最大のバス使用要求が１つのみの場合はその１つのバス使用要求にバス使用権を与え、データの転送量が最大であるバス使用要求が複数存在した場合は、予め定められたバスマスタ１００〜１０２の固定優先順位によりバス使用権を与えるバス使用要求を決定する。
ＳＴ１６において、バス使用権制御部１０７は第三優先領域の中でデータの転送量が最大のバス使用要求を調べ、データの転送量の最大のバス使用要求が１つの場合はその１つのバス使用要求にバス使用権を与え、データの転送量が最大であるバス使用要求が複数存在した場合は、予め定められたバスマスタ１００〜１０２の固定優先順位によりバス使用権を与えるバス使用要求を決定する。
【００２９】
固定優先順位は、予め定められたバスマスタ１００〜１０２の固定優先順位であり、予めバスマスタ１００〜１０２毎の優先順位を決めておくものであるが、実行中にその優先順位を変更することも可能である。
【００３０】
また上記ＳＴ１１では、閾値Ａを越えたバス使用要求が複数存在する場合は、予め定められたバスマスタ１００〜１０２の固定優先順位によりバス使用権を与えたが、閾値Ａを越えたバス使用要求が複数存在する場合は、待ち時間の一番長いものにバス使用権を与え、待ち時間が一番長いバス使用要求が複数存在する場合は、予め定められたバスマスタ１００〜１０２の固定優先順位によりバス使用権を与えるとすることも可能である。
【００３１】
以上のように、実施の形態１によれば、複数のバスマスタ１００〜１０２からバススレーブ１１０〜１１２に転送するデータを含むバス使用要求を受信して分配するキュー分配部１０３と、キュー分配部１０３から分配されたバス使用要求を複数の領域に分けて保持するキュー部１０４と、キュー部１０４に保持されたバス使用要求の待ち時間を算出する待ち時間算出部１０６と、キュー部１０４に保持されたバス使用要求の中から、待ち時間算出部１０６により算出された待ち時間により、転送するバス使用要求を選択するバス使用権制御部１０７とを備えることにより、バスライン１０８に転送するバス使用要求を決定する際に排他制御付き装置を用いる必要がなく、レイアウトの際に配線混雑を回避できるという効果を奏する。
【図面の簡単な説明】
【００３２】
【図１】この発明の実施の形態１によるバス装置の構成を示すブロック図である。
【図２】この発明の実施の形態１によるリクエストデータスレッドの例を示す図である。
【図３】この発明の実施の形態１におけるバス使用要求をキュー部に分配するためのフローチャートである。
【図４】この発明の実施の形態１によるバス使用権制御部において、スレーブ分配部に転送するバス使用要求を決定するためのフローチャートである。
【符号の説明】
【００３３】
１０  バス装置、１００〜１０２  バスマスタ、１０３  キュー分配部、１０４  キュー部、１０５  キュー状態監視部、１０６  待ち時間算出部、１０７  バス使用権制御部、１０８  バスライン、１０９  スレーブ分配部、１１０〜１１２  バススレーブ、１１３  データバッファ部、２００〜２０２  バス使用要求信号、２０３  第一優先領域に格納されるバス使用要求信号、２０４  第二優先領域に格納されるバス使用要求信号、２０５  第三優先領域に格納されるバス使用要求信号、２０６〜２０８  キュー状態信号、２０９  更新前待ち時間情報信号、２１０  更新後待ち時間情報信号、２１１  第一優先領域のバス使用要求信号、２１２  第二優先領域のバス使用要求信号、２１３  第三優先領域のバス使用要求信号、２１４  バススレーブ１１０への転送信号、２１５  バススレーブ１１１への転送信号、２１６  バススレーブ１１２への転送信号、２１７  書き込み完了信号あるいは読み出し完了信号、２１８  読み出しデータ信号、２１９  データ転送完了信号。
【図１】
2008203989.tif 000003
【図２】
2008203989.tif 000004
【図３】
2008203989.tif 000005
【図４】
2008203989.tif 000006