説明

バス装置

【課題】排他制御付き書き込み装置を不要とし、レイアウトの際に配線混雑を回避できるバス装置を得る。
【解決手段】キュー分配部103は複数のバスマスタ100〜102からバススレーブ110〜112に転送するデータを含むバス使用要求を受信して分配し、キュー部104はキュー分配部103から分配されたバス使用要求を複数の領域に分けて保持し、待ち時間算出部106はキュー部104に保持されたバス使用要求の待ち時間を算出し、バス使用権制御部107はキュー部104に保持されたバス使用要求の中から、待ち時間算出部106により算出された待ち時間により、転送するバス使用要求を選択する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えば複数のバスマスタおよび複数のバススレーブ間に接続され、データ転送を行うバス装置に関するものである。
【背景技術】
【0002】
従来のバス装置は、特許文献1のように、リクエストキューが、バスマスタからのリクエストデータスレッドを同時に保持可能に構成され、リクエストデータスレッド選択装置が、リクエストキューに保持されたリクエストデータスレッドを任意に設定可能な選択アルゴリズムに基づいて選択してバスラインを通じて転送し、リクエストデータスレッド分配装置が、バスラインを通じて転送されたリクエストデータスレッドに含まれるアドレスに応じたバススレーブにそのリクエストデータスレッドを出力するものである。
そしてバス装置のリクエストキューにおいて、排他制御付き書き込み装置は、リクエストデータスレッドが書き込まれていない任意のレジスタに対して、リクエストデータスレッドを複数同時に書き込み可能に構成され、セレクタは、リクエストデータスレッド選択装置からの選択信号に応じてレジスタに保持されたリクエストデータスレッドを選択し、バスラインを通じて転送するものである。
従って従来のバス装置は、バスマスタの動作とは独立してバス転送を行うことができる。マスタからのリクエストをリクエストデータスレッドという単位で扱うことが可能となり、マスタの動作とは独立してバス転送を行うことができ、バスラインを効率よく利用することができる。
【0003】
【特許文献1】特開2005-284578号公報(段落0008〜段落0017、図1、図3)
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来のバス装置は以上のように構成され、排他制御付きの書き込み装置が必要になり、レイアウトの際に配線混雑を引き起こす可能性があるという課題があった。
【0005】
この発明は上記のような課題を解決するためになされたもので、排他制御付き書き込み装置を不要とし、レイアウトの際に配線混雑を回避できるバス装置を得ることを目的とする。
【課題を解決するための手段】
【0006】
この発明に係るバス装置は、複数のバスマスタからバススレーブに転送するデータを含むバス使用要求を受信して分配するキュー分配部と、キュー分配部から分配されたバス使用要求を複数の領域に分けて保持するキュー部と、キュー部に保持されたバス使用要求の待ち時間を算出する待ち時間算出部と、キュー部に保持されたバス使用要求の中から、待ち時間算出部により算出された待ち時間により、転送するバス使用要求を選択するバス使用権制御部とを備えたものである。
【発明の効果】
【0007】
この発明によれば、排他制御付き書き込み装置を不要とし、レイアウトの際に配線混雑を回避できるという効果を奏する。
【発明を実施するための最良の形態】
【0008】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1は、この発明の実施の形態1によるバス装置の構成を示すブロック図であり、図1において、バスマスタ100〜102からバススレーブ110〜112に対し、書き込みまたは読み出し要求を発行する場合には、バスマスタ100〜102からバス装置10にバス使用要求(リクエストデータスレッド)を発行する。
【0009】
図2はこの発明の実施の形態1によるリクエストデータスレッドの例を示す図である。
バス使用要求としてのリクエストデータスレッドは、リクエスト、制御信号およびデータから構成される。たとえば、リクエストとしては、要求を示すリクエスト、発行元のバスマスタ100〜102の識別IDを示すマスタID、宛先のバススレーブ110〜112の識別を示すスレッドIDがある。そして、制御信号としては、書き込みまたは読み出し要求を示すR/W、宛先のバススレーブ110〜112のアドレスを示すアドレス、転送の種類(バースト転送かどうか)を示す転送種別がある。最後に、データとしてはバススレーブ110〜112に書き込むデータがあり、リクエストスレッドは合計Mbitで構成される。
【0010】
図1において、バス装置10は、キュー分配部103と、キュー部104と、キュー状態監視部105と、待ち時間算出部106と、バス使用権制御部107と、バスライン108と、スレーブ分配部109と、データバッファ部113により構成されている。
【0011】
ここでバスマスタ100〜102は、例えばコンピュータのような装置等が適用され、バススレーブ110〜112に転送するデータを含むバス使用要求(書き込みまたは読み出し要求)を、バス装置10に発行する。
【0012】
キュー分配部103は、複数のバスマスタ100〜102から発行されたバススレーブ110〜112に転送するデータを含むバス使用要求を受信し、受信したバス使用要求を分配するものであり、バス使用要求の転送種別やバス使用要求に含まれるデータの転送量に応じて、キュー部104内の所定の領域にバス使用要求をキュー部104に分配する。
【0013】
キュー部104はキュー分配部103から分配されたバス使用要求を複数の領域に分けて保持するものであり、例えば各領域内にバス使用要求が存在することを示すフラグや、各領域内のバス使用要求がフル(満杯)状態を示すフラグ等を設定する。またキュー部104の領域がフル状態の場合等の各領域の状態についてキュー状態監視部105に通知する。またキュー部104では転送されたバス使用要求の待ち時間を0に初期化する。
【0014】
キュー状態監視部105はキュー部104の状態を監視するものであり、キュー部104の各領域内のバス使用要求が空かどうか、満杯かどうかを監視し、監視結果をキュー分配部103,バス使用権制御部107に通知する。例えば、キュー部104の領域がフル状態の場合、キュー分配部103にキュー部104の領域にバス使用要求の転送を制限させる通知をし、また空の領域がある場合はバス使用権制御部107に通知する。
【0015】
待ち時間算出部106はキュー部104に保持された各バス使用要求の待ち時間を算出するものであり、キュー部104に保持されたバス使用要求の待ち時間をカウントアップして待ち時間を算出し、各バス使用要求にフィードバックする。
【0016】
バス使用権制御部107は、キュー部104に保持されたバス使用要求の中から、待ち時間算出部106により算出された待ち時間やバス使用要求に含まれるデータの転送量等により、転送するバス使用要求を選択するものである。
【0017】
バス使用権制御部107は、待ち時間算出部106により算出された各バス使用要求の待ち時間を所定の閾値と比較し、比較結果に基づいて、バス使用要求にバス使用権を与える。
【0018】
バス使用権制御部107は、待ち時間が閾値を越えたバス使用要求がキュー部104に1つしか存在しない場合は、そのバス使用要求にバス使用権を与え、待ち時間が閾値を越えたバス使用要求が複数存在する場合は待ち時間が一番長いバス使用要求にバス使用権を与え、待ち時間が一番長いバス使用要求が複数存在する場合は、予め定められたバスマスタ100〜102の固定優先順位によってバス使用権を与える。
【0019】
バス使用権制御部107は、待ち時間が閾値を越えるバス使用要求が存在しない場合、例えばキュー状態監視部105からのキュー部の空の領域の通知に基づいて、予め定められたキュー部104の優先順位の高い領域から順番にバス使用要求の存在を確認し、バス使用要求が存在するキュー部104の領域内において、バス使用要求が1つしか存在しない場合は、そのバス使用要求にバス使用権を与え、バス使用要求が複数存在する場合は、予め定められたバスマスタ100〜102の固定優先順位によってバス使用権を与えることや、データの転送量が最大のバス使用要求にバス使用権を与え、データの転送量が最大のバス使用要求が複数存在する場合は、予め定められたバスマスタ100〜102の固定優先順位によってバス使用権を与える。
【0020】
バスライン108はバス使用権制御部107からのバス使用要求をスレーブ分配部109に出力するためのものである。
【0021】
スレーブ分配部109はバス使用権制御部107から転送されたバス使用要求を該当するバススレーブ110〜112に転送するものである。スレーブ分配部109は、バスライン108を通して転送されたバス使用要求としてのリクエストデータスレッド内のスレッドIDとアドレスにより、該当するバススレーブ110〜112にバス使用要求を転送する。スレーブ分配部109はバススレーブ110〜112が保持するBUSY信号を監視し、バススレーブ110〜112がBUSYでない場合に転送を行う。そのため、内部にバッファが設けられ、バススレーブ110〜112がBUSYの場合は一時的にバス使用要求を保持できる。またスレーブ分配部109は書き込み完了信号あるいは読み出し完了信号217をデータバッファ部113に転送する。
【0022】
バススレーブ110〜112は例えば記憶装置等が適用され、バススレーブ110への転送信号214,バススレーブ111への転送信号215,バススレーブ112への転送信号216に基づいて、書き込み処理または読み出し処理を行い、読み出しデータ信号218をデータバッファ部113に転送する。
【0023】
データバッファ部113は書き込み完了信号あるいは読み出し完了信号217,読み出しデータ信号218を保持し、該当するバスマスタ100〜102にデータ転送が完了したことを通知する。読み出し要求の場合は読み出したデータの転送も行う。データバッファ部113は、書き込み要求の場合はマスタIDとスレッドIDを保持する。読み出し要求の場合、マスタID、スレッドIDおよび読み出しデータを保持する。そして、該当するバスマスタ100〜102にデータ転送が完了したことを通知し、読み出し要求の場合は読み出したデータも転送する。
【0024】
次に動作について説明する。
バス使用要求(書き込みまたは読み出し要求)がバスマスタ100〜102からキュー分配部103にバス使用要求信号200〜202として発行される。このバス使用要求は、キュー分配部103からキュー部104に、第一優先領域に格納されるバス使用要求信号203,第二優先領域に格納されるバス使用要求信号204,第三優先領域に格納されるバス使用要求信号205として転送され、キュー部104はバス使用要求を3つの領域にわけて保持する。保持されているバス使用要求は、バス使用権制御部107により、バス使用要求の待ち時間やデータの転送量等に基づいて、転送されるものが決定される。
【0025】
バス使用要求の待ち時間は、キュー部104から待ち時間算出部106に更新前待ち時間情報信号209として転送され、更新前待ち時間情報信号209に基づいて待ち時間算出部106により算出したものであり、この算出したバス使用要求の待ち時間は更新後待ち時間情報信号210としてキュー部104に転送される。またキュー状態監視部105はキュー部104の3つの領域内のバス使用要求が空かどうか、フル(満杯)状態かどうかを監視し、例えばフル状態の場合は、キュー部104からキュー状態監視部105に、キュー状態信号206により通知される。キュー状態監視部105は、この通知された監視結果を、キュー分配部103にキュー状態信号207として通知し、バス使用権制御部107にキュー状態信号208として通知する。
【0026】
バス使用権制御部107により決定されたバス使用要求は、キュー部104からバス使用権制御部107に、第一優先領域のバス使用要求信号211,第ニ優先領域のバス使用要求信号212,第三優先領域のバス使用要求信号213として転送され、バスライン108を通じて、スレーブ分配部109に転送される。転送されたバス使用要求は、該当するバススレーブ110〜112に、バススレーブ110への転送信号214,バススレーブ111への転送信号215,バススレーブ112への転送信号216として転送される。またスレーブ分配部109はデータバッファ部113に書き込み完了信号あるいは読み出し完了信号217を転送する。バススレーブ110〜112はバススレーブ110への転送信号214,バススレーブ111への転送信号215,バススレーブ112への転送信号216に基づいて、書き込み処理または読み出し処理を行い、読み出しデータ信号218をデータバッファ部113に転送する。データバッファ部113は書き込み完了信号あるいは読み出し完了信号217,読み出しデータ信号218を保持し、該当するバスマスタ100〜102にデータ転送が完了したことをデータ転送完了信号219として通知し、読み出し要求の場合は読み出したデータの転送も行う。
【0027】
図3は、この発明の実施の形態1におけるバス使用要求をキュー部に分配するためのフローチャートである。
発行されたバス使用要求をキュー分配部103で図3のフローにしたがって3つの領域に分配する。まず、ST1において、キュー分配部103はバス使用要求の転送種別がバースト転送かどうかを判断し、バースト転送の場合はキュー部104の第一優先領域にバス使用要求を転送する。バースト転送でない場合は、ST2において、キュー分配部103はデータの転送量を閾値Zと比較し、データの転送量が閾値Zよりも大きい場合はキュー部104の第二優先領域にバス使用要求を転送する。ST2において、キュー分配部103はデータの転送量が閾値Z以下の場合はキュー部104の第三優先領域にバス使用要求を転送する。ただし、転送の際に、キュー分配部103はキュー状態監視部105からキュー部104の各領域がバス使用要求でフル状態になっているかどうかの情報を受け取り、フル状態の場合は転送を中止する。
【0028】
図4は、この発明の実施の形態1によるバス使用権制御部において、スレーブ分配部に転送するバス使用要求を決定するためのフローチャートである。
ST10において、バス使用権制御部107はすべてのバス使用要求の待ち時間を閾値Aと比較し、閾値Aを越える待ち時間が1つ以上あればST11へ進み、すべての待ち時間が閾値A以下であればST12に進む。
ST11において、バス使用権制御部107は待ち時間が閾値Aを越えたバス使用要求が1個であれば、そのバス使用要求にバス使用権を与え、閾値Aを越えたバス使用要求が複数存在する場合は、予め定められたバスマスタ100〜102の固定優先順位によりバス使用権を与えるバス使用要求を決定する。
ST12において、バス使用権制御部107は第一優先領域にバス使用要求が保持されているかどうかを判定し、保持されている場合(empty_flag1=1)はST13へ進み、保持されていない場合はST14へ進む。
ST13において、バス使用権制御部107は第一優先領域内に保持されたバス使用要求の個数が1個かどうかを判定し、1個の場合はそのバス使用要求にバス使用権を与え、複数存在する場合は予め定められたバスマスタ100〜102の固定優先順位によりバス使用権を与えるバス使用要求を決定する。
ST14において、バス使用権制御部107は第二優先領域にバス使用要求が保持されているかどうかを判定し、保持されている場合(empty_flag2=1)はST15へ進み、保持されていない場合はST16へ進む。
ST15において、バス使用権制御部107はデータの転送量が最大のバス使用要求を調べ、データの転送量が最大のバス使用要求が1つのみの場合はその1つのバス使用要求にバス使用権を与え、データの転送量が最大であるバス使用要求が複数存在した場合は、予め定められたバスマスタ100〜102の固定優先順位によりバス使用権を与えるバス使用要求を決定する。
ST16において、バス使用権制御部107は第三優先領域の中でデータの転送量が最大のバス使用要求を調べ、データの転送量の最大のバス使用要求が1つの場合はその1つのバス使用要求にバス使用権を与え、データの転送量が最大であるバス使用要求が複数存在した場合は、予め定められたバスマスタ100〜102の固定優先順位によりバス使用権を与えるバス使用要求を決定する。
【0029】
固定優先順位は、予め定められたバスマスタ100〜102の固定優先順位であり、予めバスマスタ100〜102毎の優先順位を決めておくものであるが、実行中にその優先順位を変更することも可能である。
【0030】
また上記ST11では、閾値Aを越えたバス使用要求が複数存在する場合は、予め定められたバスマスタ100〜102の固定優先順位によりバス使用権を与えたが、閾値Aを越えたバス使用要求が複数存在する場合は、待ち時間の一番長いものにバス使用権を与え、待ち時間が一番長いバス使用要求が複数存在する場合は、予め定められたバスマスタ100〜102の固定優先順位によりバス使用権を与えるとすることも可能である。
【0031】
以上のように、実施の形態1によれば、複数のバスマスタ100〜102からバススレーブ110〜112に転送するデータを含むバス使用要求を受信して分配するキュー分配部103と、キュー分配部103から分配されたバス使用要求を複数の領域に分けて保持するキュー部104と、キュー部104に保持されたバス使用要求の待ち時間を算出する待ち時間算出部106と、キュー部104に保持されたバス使用要求の中から、待ち時間算出部106により算出された待ち時間により、転送するバス使用要求を選択するバス使用権制御部107とを備えることにより、バスライン108に転送するバス使用要求を決定する際に排他制御付き装置を用いる必要がなく、レイアウトの際に配線混雑を回避できるという効果を奏する。
【図面の簡単な説明】
【0032】
【図1】この発明の実施の形態1によるバス装置の構成を示すブロック図である。
【図2】この発明の実施の形態1によるリクエストデータスレッドの例を示す図である。
【図3】この発明の実施の形態1におけるバス使用要求をキュー部に分配するためのフローチャートである。
【図4】この発明の実施の形態1によるバス使用権制御部において、スレーブ分配部に転送するバス使用要求を決定するためのフローチャートである。
【符号の説明】
【0033】
10 バス装置、100〜102 バスマスタ、103 キュー分配部、104 キュー部、105 キュー状態監視部、106 待ち時間算出部、107 バス使用権制御部、108 バスライン、109 スレーブ分配部、110〜112 バススレーブ、113 データバッファ部、200〜202 バス使用要求信号、203 第一優先領域に格納されるバス使用要求信号、204 第二優先領域に格納されるバス使用要求信号、205 第三優先領域に格納されるバス使用要求信号、206〜208 キュー状態信号、209 更新前待ち時間情報信号、210 更新後待ち時間情報信号、211 第一優先領域のバス使用要求信号、212 第二優先領域のバス使用要求信号、213 第三優先領域のバス使用要求信号、214 バススレーブ110への転送信号、215 バススレーブ111への転送信号、216 バススレーブ112への転送信号、217 書き込み完了信号あるいは読み出し完了信号、218 読み出しデータ信号、219 データ転送完了信号。

【特許請求の範囲】
【請求項1】
複数のバスマスタからバススレーブに転送するデータを含むバス使用要求を受信して分配するキュー分配部と、
上記キュー分配部から分配されたバス使用要求を複数の領域に分けて保持するキュー部と、
上記キュー部に保持されたバス使用要求の待ち時間を算出する待ち時間算出部と、
上記キュー部に保持されたバス使用要求の中から、上記待ち時間算出部により算出された待ち時間により、転送するバス使用要求を選択するバス使用権制御部とを備えたバス装置。
【請求項2】
キュー分配部は、バス使用要求の転送種別に応じて、キュー部内の所定の領域にバス使用要求を分配することを特徴とする請求項1記載のバス装置。
【請求項3】
キュー分配部は、バス使用要求に含まれるデータの転送量に応じて、キュー部内の所定の領域にバス使用要求を分配することを特徴とする請求項1記載のバス装置。
【請求項4】
バス使用権制御部は、待ち時間算出部により算出された各バス使用要求の待ち時間を所定の閾値と比較し、比較結果に基づいて、バス使用要求にバス使用権を与えることを特徴とする請求項1記載のバス装置。
【請求項5】
バス使用権制御部は、待ち時間が閾値を越えたバス使用要求が1つしか存在しない場合は該バス使用要求にバス使用権を与え、待ち時間が閾値を越えたバス使用要求が複数存在する場合は、予め定められたバスマスタの固定優先順位によってバス使用権を与えることを特徴とする請求項4記載のバス装置。
【請求項6】
バス使用権制御部は、待ち時間が閾値を越えるバス使用要求が存在しない場合、予め定められたキュー部の優先順位の高い領域から順番にバス使用要求の存在を確認し、
バス使用要求が存在する上記キュー部の領域内において、バス使用要求が1つしか存在しない場合は該バス使用要求にバス使用権を与え、バス使用要求が複数存在する場合は、予め定められたバスマスタの固定優先順位によってバス使用権を与えることを特徴とする請求項4記載のバス装置。
【請求項7】
バス使用権制御部は、待ち時間が閾値を越えるバス使用要求が存在しない場合、予め定められたキュー部の優先順位の高い領域から順番にバス使用要求の存在を確認し、バス使用要求に含まれるデータの転送量により転送するバス使用要求を選択し、
バス使用要求が存在する上記キュー部の領域内において、データの転送量が最大のバス使用要求が1つしか存在しない場合は該バス使用要求にバス使用権を与え、データの転送量が最大のバス使用要求が複数存在する場合は、予め定められたバスマスタの固定優先順位によってバス使用権を与えることを特徴とする請求項4記載のバス装置。
【請求項8】
キュー部は、各領域内にバス使用要求が存在することを示すフラグを設定することを特徴とする請求項1記載のバス装置。
【請求項9】
キュー部の領域の状態を監視し、上記キュー部の領域がフル状態の場合、キュー分配部に上記キュー部の領域にバス使用要求の転送を制限させるキュー状態監視部を備えることを特徴とする請求項1記載のバス装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate