(57)【特許請求の範囲】
【請求項１】
複数のバスマスタからの転送データを複数のバススレーブに転送するバス装置において、
前記転送データを該転送データに含まれる宛先のバススレーブの識別を示すスレッドＩＤに基づいて分配する複数のスレーブ分配部と、
前記分配されたデータをバススレーブ毎に複数保持し、その中から当該バススレーブ毎に最も優先度の高いデータを抽出し、転送する複数のサブバスと、
前記複数のバススレーブからの転送データをバスマスタ毎に分配する読み出しデータ選択部と、  
前記読み出しデータ選択部で分配されたバスマスタ毎の転送データをそれぞれ保持して各バスマスタに転送する複数の読み出しデータ格納部とを備え、
前記サブバスは、
複数のスレーブ分配部で分配されたバスマスタ毎の転送データを保持し、同一バスマスタからの複数の転送データを保持した場合は、その中から最も優先度の高い転送データを抽出し、調停に必要なデータとして送出する複数の転送データ情報管理部と、
前記複数の転送データ情報管理部から送出された調停に必要なデータに基づいて、前記複数のスレーブ分配部で分配されたバスマスタ毎の転送データのうち、最も優先度の高い転送データを決定する調停部と、
前記調停部によって選択された転送データを選択する選択部とを備えたことを特徴とするバス装置。
【請求項２】
前記サブバスは、
前記調停部で決定された転送データに基づいて、前記転送データ情報管理部で蓄積する転送データのアドレスを管理するアドレス管理部を備えたことを特徴とする請求項１記載のバス装置。
【請求項３】
前記サブバスは、
前記選択部で選択された転送データを保持し、順次バススレーブに転送する出力バッファ部を備えたことを特徴とする請求項１記載のバス装置。
【請求項４】
前記調停部は、バススレーブ毎のビジー状態を示すスレーブビジー情報に基づいて、転送データを決定することを特徴とする請求項１記載のバス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のバスマスタおよび複数のバススレーブ間に接続され、それら複数のバスマスタおよび複数のバススレーブ間相互のデータ転送を行うバス装置に関するものである。
【背景技術】
【０００２】
従来のバス装置として、複数のシステムバスを多重化し、複数のバスマスタと複数のバススレーブが同時に通信することを可能としたものがあった（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開平０９−２２３１０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のバス装置では、バスの使用が不可の場合、バススレーブへ転送するデータがバスマスタに蓄積され、バスマスタの処理性能が劣化し、その結果システム全体の処理性能が劣化する可能性があった。
【０００５】
また同一のスレーブへのアクセスをする場合、衝突により、使用可能なバスがあるにもかかわらず、データの転送が行われず、帯域が小さくなる可能性があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、複数のバスマスタから複数のバススレーブに同時に効率よくアクセスすることが可能なバス装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るバス装置は、複数のバスマスタからの転送データを複数のバススレーブに転送するバス装置において、
前記転送データを該転送データに含まれる宛先のバススレーブの識別を示すスレッドＩＤに基づいて分配する複数のスレーブ分配部と、
前記分配されたデータをバススレーブ毎に複数保持し、その中から当該バススレーブ毎に最も優先度の高いデータを抽出し、転送する複数のサブバスと、
前記複数のバススレーブからの転送データをバスマスタ毎に分配する読み出しデータ選択部と、  
前記読み出しデータ選択部で分配されたバスマスタ毎の転送データをそれぞれ保持して各バスマスタに転送する複数の読み出しデータ格納部とを備え、
前記サブバスは、
複数のスレーブ分配部で分配されたバスマスタ毎の転送データを保持し、同一バスマスタからの複数の転送データを保持した場合は、その中から最も優先度の高い転送データを抽出し、調停に必要なデータとして送出する複数の転送データ情報管理部と、
前記複数の転送データ情報管理部から送出された調停に必要なデータに基づいて、前記複数のスレーブ分配部で分配されたバスマスタ毎の転送データのうち、最も優先度の高い転送データを決定する調停部と、
前記調停部によって選択された転送データを選択する選択部とを備えたものである。
【発明の効果】
【０００８】
この発明のバス装置は、分配されたデータをバススレーブ毎に複数保持し、その中からバススレーブ毎に最も優先度の高いデータを抽出し、転送する複数のサブバスを備えたので、複数のバスマスタから複数のバススレーブに同時に効率よくアクセスすることができる。また、サブバスは、調停に必要なデータとして送出する複数の転送データ情報管理部と、
複数の転送データ情報管理部から送出された調停に必要なデータに基づいて、複数のスレーブ分配部で分配されたバスマスタ毎の転送データのうち、最も優先度の高い転送データを決定する調停部と、調停部によって選択された転送データを選択する選択部とを備えたので、複数のバスマスタから複数のバススレーブに同時に効率よくアクセスすることができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるバス装置を示す構成図である。また、図２は、サブバスの詳細を示す構成図である。
図１において、バス装置１は、複数のバスマスタ２−１〜２−ｎと、複数のバススレーブ３−１〜３−ｍとの間に設けられる装置であり、スレーブ分配部４−１〜４−ｎ、サブバス５−１〜５−ｍ、読み出しデータ選択部６、読み出しデータ格納部７−１〜７−ｎを備えている。
【００１０】
また、図２において、サブバス５−１〜５−ｍは、転送データ情報管理部８−１〜８−ｎ、アドレス管理部９−１〜９−ｎ、調停部１０、選択部１１、出力バッファ部１２を備えている。尚、それぞれのサブバス５−１〜５−ｍの内部構成は同様であるため、図２ではサブバス５−１を代表として示している。
【００１１】
複数のバスマスタ２−１〜２−ｎは、データ転送を要求する装置であり、複数のバススレーブ３−１〜３−ｍは、複数のバスマスタ２−１〜２−ｎの要求に基づき、バスマスタ２−１〜２−ｎのデータをリード／ライトする装置である。スレーブ分配部４−１〜４−ｎは、バスマスタ２−１〜２−ｎから転送要求されたデータをバススレーブ３−１〜３−ｍに対応して設けられたサブバス５−１〜５−ｍに分配するよう構成されている。サブバス５−１〜５−ｍは、バスマスタ２−１〜２−ｎからのバススレーブ毎の転送要求データを保持し、その中から１つの転送データを選択し、バススレーブに転送するよう構成されている。読み出しデータ選択部６は、バススレーブ３−１〜３−ｍから出力されたバスマスタ２−１〜２−ｎへの転送データをバスマスタ２−１〜２−ｎに対応する読み出しデータ格納部７−１〜７−ｎに分配するよう構成されている。
【００１２】
スレーブ分配部４−１〜４−ｎは、それぞれのバスマスタ２−１〜２−ｎに対応して設けられ、各バスマスタから送られてきた転送データを、転送データ中に含まれるバススレーブのＩＤやマスタＩＤを識別することで、バススレーブ毎に分配し、各サブバス５−１〜５−ｍにおける各転送データ情報管理部８−１〜８−ｎへデータを転送する機能部である。サブバス５−１〜５−ｍは、入力された転送データを複数保持し、その中から最も転送優先度が高い転送データの転送を行う。
【００１３】
サブバス５−１〜５−ｍにおける転送データ情報管理部８−１〜８−ｎは、バスマスタ２−１〜２−ｎに対応して設けられ、スレーブ分配部４−１〜４−ｎによってバススレーブ毎に分配された転送データを保持し、その中から最も転送優先度が高い転送データを決定し、この情報を調停に必要なデータ１００として調停部１０に通知するよう構成されている。また、転送データ情報管理部８−１〜８−ｎにおいて決定された転送データ１０１は、選択部１１に出力されるよう構成されている。アドレス管理部９−１〜９−ｎは、転送データ情報管理部８−１〜８−ｎに対応して設けられ、転送データ情報管理部８−１〜８−ｎにおける転送データの書き込みと読み出しのアドレスの管理を行う機能部である。調停部１０では、転送データ情報管理部８−１〜８−ｎからの転送データの中から、調停に必要なデータ１００に基づいて、最も優先度の高い転送データを決定し、この決定した転送データを示す転送決定信号１０３を、転送データ情報管理部８−１〜８−ｎと、アドレス管理部９−１〜９−ｎと、選択部１１とに通知する機能部である。また、バススレーブに転送可能かどうかを、バススレーブ３−１〜３−ｍがビジーか否かを示すスレーブビジー１０２により判断し、バススレーブがビジーであれば、転送を行わないように構成されている。選択部１１は、転送データ情報管理部８−１〜８−ｎからの転送データの中から、調停部１０で決定された転送データを選択し、出力する機能を有する。出力バッファ部１２は、選択部１１で選択された転送データを保持し、バススレーブに対して転送データを順次転送する構成を持ち、バススレーブがビジーであった場合はスレーブビジー１０２を出力するよう構成されている。
【００１４】
次に実施の形態１のバス装置の動作について説明する。
図３は、実施の形態１のバス装置におけるデータ転送要求の選択に関する処理の過程を示すフローチャートである。
バスマスタ２−１〜２−ｎからデータ転送要求が発行されると、これらのバスマスタ２−１〜２−ｎに対応したそれぞれのスレーブ分配部４−１〜４−ｎは、バススレーブ毎に転送データを分配し、バススレーブ３−１〜３−ｍに対応したそれぞれのサブバス５−１〜５−ｍにデータを転送する（ステップＳＴ１）。
【００１５】
図４は、バスマスタから発行されるデータ転送要求の例である。
リクエストデータスレッドは、リクエスト、制御情報およびデータから構成される。例えば、リクエストとしては、要求を示すリクエスト、発行元のバスマスタの識別ＩＤを示すマスタＩＤ、宛先のバススレーブの識別を示すスレッドＩＤがある。そして、制御情報としては、書き込みまたは読み出し要求を示すＲ／Ｗ、宛先のバススレーブのアドレスを示すアドレス、転送の種類（バースト転送かどうか）を示す転送種別がある。最後に、データとしては、バススレーブに書き込むデータがあり、合計Ｍｂｉｔで構成される。
スレーブ分配部４−１〜４−ｎは、このマスタＩＤとバススレーブのスレッドＩＤから、転送データを分配し、適切なサブバスサブバス５−１〜５−ｍの転送データ情報管理部８−１〜８−ｎへ転送データの転送を行う。
【００１６】
アドレス管理部９−１〜９−ｎは、転送データ情報管理部８−１〜８−ｎにデータが格納可能であれば、スレーブ分配部４−１〜４−ｎから送られてきた転送データを転送データ情報管理部８−１〜８−ｎに書き込むためのアドレスをその転送データ情報管理部８−１〜８−ｎに通知し、転送データ情報管理部８−１〜８−ｎに転送データが書き込まれる（ステップＳＴ２）。転送データ情報管理部８−１〜８−ｎは、蓄積された転送データの中で最も優先順位の高い転送データ情報を抽出し、これを調停に必要なデータ１００として調停部１０に通知する（ステップＳＴ３）。尚、転送データ情報管理部８−１〜８−ｎにおける優先順位の決定方法として、例えば最も早く転送データを受け取ったものを最も優先順位の高い転送データとする、あるいは、バースト転送を優先する、といった方法を用いる。
【００１７】
調停部１０では、各転送データ情報管理部８−１〜８−ｎから送られてきた調停に必要なデータ１００に基づいて調停を行い、バススレーブ３−１〜３−ｍに転送する転送データの選択を行い、この選択結果を転送決定信号１０３として出力する（ステップＳＴ４）。調停部１０における転送データの選択方法としては、転送データ情報管理部８−１〜８−ｎの場合と同様に、例えば最も早く転送データを受け取ったものを最も優先順位の高い転送データとする、あるいは、バースト転送を優先する、といった方法を用いることができる。選択部１１では、通知された情報を元に転送データ情報管理部８−１〜８−ｎから出力されている転送データ１０１の中から転送する転送データを出力バッファ部１２に転送する。転送されたデータは、出力バッファ部１２に蓄積され、順次バススレーブ３−１〜３−ｍへと転送される（ステップＳＴ５）。
【００１８】
一方、ステップＳＴ４の後、転送されたデータの情報は、調停部１０からの転送決定信号１０３により、各アドレス管理部９−１〜９−ｎ、各転送データ情報管理部８−１〜８−ｎに通知され（ステップＳＴ２）、アドレス管理部９−１〜９−ｎは、新たに書き込みが可能となったアドレスを転送データ情報管理部８−１〜８−ｎに通知する。これにより、新たなデータが転送データ情報管理部８−１〜８−ｎに入力されると共に、優先度の高いデータの抽出が行われる（ステップＳＴ３）。このようにステップＳＴ２に戻り、各サブバス５−１〜５−ｍはステップＳＴ２以降の処理を繰り返す。
【００１９】
尚、バススレーブ３−１〜３−ｍからバスマスタ２−１〜２−ｎへの転送データを転送する際も同様の構成と動作により行うこともできる。
【００２０】
以上のように、実施の形態１のバス装置によれば、複数のバスマスタからの転送データを複数のバススレーブに転送するバス装置において、転送データをバススレーブ毎に分配する複数のスレーブ分配部と、分配されたデータをバススレーブ毎に複数保持し、その中からバススレーブ毎に最も優先度の高いデータを抽出し、転送する複数のサブバスと、複数のバススレーブからの転送データをバスマスタ毎に分配する読み出しデータ選択部とを備えたので、バススレーブ毎に転送候補データが存在し、複数のバスマスタから複数のバススレーブに同時に効率の良い転送を実現することができる。
【００２１】
また、実施の形態１のバス装置によれば、スレーブ分配部は、転送データに含まれる宛先のバススレーブの識別を示すスレッドＩＤに基づいて分配を行うようにしたので、簡単な構成で容易にバススレーブの分配処理を行うことができる。
【００２２】
また、実施の形態１のバス装置によれば、読み出しデータ選択部で分配されたバスマスタ毎の転送データをそれぞれ保持して各バスマスタに転送する複数の読み出しデータ格納部を備えたので、各バスマスタ、各バススレーブにおいて入出力バッファを不要とすることができる。従って、設計者の負担を軽くすることができ、転送効率も高いため、より安価なバス装置を実現することができる。
【００２３】
また、実施の形態１のバス装置によれば、サブバスは、複数のスレーブ分配部で分配されたバスマスタ毎の転送データを保持し、同一バスマスタからの複数の転送データを保持した場合は、その中から最も優先度の高い転送データを抽出し、調停に必要なデータとして送出する複数の転送データ情報管理部と、複数の転送データ情報管理部から送出された調停に必要なデータに基づいて、複数のスレーブ分配部で分配されたバスマスタ毎の転送データのうち、最も優先度の高い転送データを決定する調停部と、調停部によって選択された転送データを選択する選択部とを備えたので、複数のバスマスタから複数のバススレーブに同時に効率よくアクセスすることができる。
【００２４】
また、実施の形態１のバス装置によれば、サブバスは、調停部で決定された転送データに基づいて、転送データ情報管理部で蓄積する転送データのアドレスを管理するアドレス管理部を備えたので、効率よくバスマスタからの転送データを蓄積することができる。
【００２５】
また、実施の形態１のバス装置によれば、サブバスは、選択部で選択された転送データを保持し、順次バススレーブに転送する出力バッファ部を備えたので、転送先のバススレーブがビジーであっても転送データを蓄積することができる。
【００２６】
また、実施の形態１のバス装置によれば、調停部は、バススレーブ毎のビジー状態を示すスレーブビジー情報に基づいて、転送データを決定するようにしたので、ビジー状態のバススレーブには転送データを選択しないといったバススレーブの状態に対応した処理を行うことができる。
【図面の簡単な説明】
【００２７】
【図１】この発明の実施の形態１によるバス装置を示す構成図である。
【図２】この発明の実施の形態１によるバス装置におけるサブバスの詳細を示す構成図である。
【図３】この発明の実施の形態１によるバス装置の動作を示すフローチャートである。
【図４】この発明の実施の形態１によるバス装置のデータ転送要求のデータフォーマットを示す説明図である。
【符号の説明】
【００２８】
１  バス装置、２−１〜２−ｎ  バスマスタ、３−１〜３−ｍ  バススレーブ、４−１〜４−ｎ  スレーブ分配部、５−１〜５−ｍ  サブバス、６  読み出しデータ選択部、７−１〜７−ｎ  読み出しデータ格納部、８−１〜８−ｎ  転送データ情報管理部、９−１〜９−ｎ  アドレス管理部、１０  調停部、１１  選択部、１２  出力バッファ部、１００  調停に必要なデータ、１０１  転送データ、１０２  スレーブビジー、１０３  転送決定信号。
【図１】
0005127470.tif 000002
【図２】
0005127470.tif 000003
【図３】
0005127470.tif 000004
【図４】
0005127470.tif 000005