(57)【要約】【課題】  バスマスタの動作とは独立してバス転送を行うことができ、バスラインを効率良く利用するバス装置を得る。【解決手段】  バス装置１として、複数のバスマスタ２ｍ０〜２ｍＸからのリクエストデータスレッドを同時に保持可能なリクエストキュー４と、そのリクエストキュー４に保持されたリクエストデータスレッドを選択してバスライン６より転送するリクエストデータスレッド選択装置５と、バスライン６を通じて転送されたリクエストデータスレッドに含まれるスレッドＩＤに応じたバススレーブにそのリクエストデータスレッドを出力するリクエストデータスレッド分配装置７とを備えた。  このように構成することによって、バスマスタ２ｍ０〜２ｍＸからのリクエストをリクエストデータスレッドという単位で扱うことが可能となり、バスマスタ２ｍ０〜２ｍＸの動作とは独立してバス転送を行うことができ、バスライン６を効率良く利用することができる。【選択図】        図１
2005284578.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタからのスレッドＩＤを含むリクエストおよびデータの組で構成されるリクエストデータスレッドを同時に保持可能なリクエストキューと、
上記リクエストキューに保持されたリクエストデータスレッドを選択するリクエストデータスレッド選択装置と、
上記リクエストデータスレッド選択装置により選択されたリクエストデータスレッドを転送するバスラインと、
複数のスレーブのうちの上記バスラインを通じて転送されたリクエストデータスレッドのリクエストに含まれるスレッドＩＤに応じたスレーブにそのリクエストデータスレッドを出力するリクエストデータスレッド分配装置とを備えたバス装置。
【請求項２】
複数のスレーブからのマスタＩＤを含むレスポンスおよびデータの組で構成されるレスポンスデータスレッドを同時に保持可能なレスポンスキューと、
上記レスポンスキューに保持されたレスポンスデータスレッドを選択するレスポンスデータスレッド選択装置と、
上記レスポンスデータスレッド選択装置により選択されたレスポンスデータスレッドを転送するバスラインと、
複数のマスタのうちの上記バスラインを通じて転送されたレスポンスデータスレッドのレスポンスに含まれるマスタＩＤに応じたマスタにそのレスポンスデータスレッドを出力するレスポンスデータスレッド分配装置とを備えたバス装置。
【請求項３】
リクエストデータスレッド選択装置は、
リクエストキュー内に１つ以上のリクエストデータスレッドが保持されている場合に、異なるＸ個のマスタのそれぞれのリクエストデータスレッドのビット幅をＭｉ（Ｍｉ＞０）、バス幅をＮ（ＮＢｉｔ，Ｎ＞０）とした時、バス幅以下の範囲で１つ以上のリクエストデータスレッドを選択可能（Ｎ≧ΣＭｉ，０≦ｉ≦Ｘ）とすることで、異なる、あるいは同一のマスタのリクエストデータスレッドをバスラインに１つ以上同時転送可能にすることを特徴とする請求項１記載のバス装置。
【請求項４】
レスポンスデータスレッド選択装置は、
レスポンスキュー内に１つ以上のレスポンスデータスレッドが保持されている場合に、異なるＹ個のスレーブのそれぞれのレスポンスデータスレッドのビット幅をＬｊ（Ｌｊ＞０）、バス幅をＫ（ＫＢｉｔ，Ｋ＞０）とした時、バス幅以下の範囲で１つ以上のレスポンスデータスレッドを選択可能（Ｋ≧ΣＬｊ，０≦ｊ≦Ｙ）とすることで、異なる、あるいは同一のスレーブのレスポンスデータスレッドをバスラインに１つ以上同時転送可能にすることを特徴とする請求項２記載のバス装置。
【請求項５】
リクエストデータスレッド選択装置は、
リクエストキュー内に保持されたリクエストデータスレッドを任意に設定可能な優先度に基づいて選択することを特徴とする請求項１または請求項３記載のバス装置。
【請求項６】
レスポンスデータスレッド選択装置は、
レスポンスキュー内に保持されたレスポンスデータスレッドを任意に設定可能な優先度に基づいて選択することを特徴とする請求項２または請求項４記載のバス装置。
【請求項７】
リクエストキューは、
リクエストデータスレッド選択装置に選択されバスラインに転送されるまで、リクエストデータスレッドを保持し続けることを特徴とする請求項１、請求項３および請求項５のうちのいずれか１項記載のバス装置。
【請求項８】
レスポンスキューは、
レスポンスデータスレッド選択装置に選択されバスラインに転送されるまで、レスポンスデータスレッドを保持し続けることを特徴とする請求項２、請求項４および請求項６のうちのいずれか１項記載のバス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のマスタおよび複数のスレーブ間に接続され、それら複数のマスタおよび複数のスレーブ間相互のデータ転送を行うバス装置に関するものである。
【背景技術】
【０００２】
従来から複数のマスタおよび複数のスレーブを相互接続する手段としてバスを用いるものが主流となっている。これは、実現が容易なためであるが、反面、複数のマスタから同時にバス使用要求が発生した場合に、一時に１つのバス使用要求しか受け付けられないため、バス使用要求の衝突が頻繁に起き、バス使用要求を受け付けられなかったマスタは、バス使用権が得られるまで処理を停止させなくてはならず、性能低下を引き起こすという課題があった。
この課題を解決する手段として、バスを分割（例えば、特許文献１参照）、あるいはバスを多重化（例えば、特許文献２参照）して、バス使用要求を分散させることによりバス使用要求の競合を軽減し、同時に無効なバスラインを減らし効率的な転送を可能とする手法が採られている。
【０００３】
【特許文献１】特開平５−２８２２４２号公報
【特許文献２】特開平１０−１７７５４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のバス装置は以上のように構成されているので、分割されたバス、あるいは多重化されたバスのそれぞれにバス使用要求が分散することにより、バス使用要求の衝突が減り、バスを効率的に利用でき、システムの性能向上が可能となる。
しかしながら、分割されたバス、あるいは多重化されたバスが全て使用されるような状況下では、やはりバス使用要求の衝突が起こり、上記従来の課題同様、バス使用権が得られるまで処理を停止させなくてはならず、その結果、性能低下を引き起こしてしまうなどの課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、マスタあるいはスレーブの動作とは独立してバス転送を行うことができ、バスラインを効率良く利用するバス装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るバス装置は、複数のマスタからのスレッドＩＤを含むリクエストおよびデータの組で構成されるリクエストデータスレッドを同時に保持可能なリクエストキューと、リクエストキューに保持されたリクエストデータスレッドを選択してバスラインより転送するリクエストデータスレッド選択装置と、バスラインを通じて転送されたリクエストデータスレッドのリクエストに含まれるスレッドＩＤに応じたスレーブにそのリクエストデータスレッドを出力するリクエストデータスレッド分配装置とを備えたものである。
【発明の効果】
【０００７】
この発明によれば、マスタからのリクエストをリクエストデータスレッドという単位で扱うことが可能となり、マスタの動作とは独立してバス転送を行うことができ、バスラインを効率良く利用することができる効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１はこの発明の実施の形態１によるバス装置を示すブロック図であり、図において、バス装置１は、複数のバスマスタ（マスタ）２ｍ０〜２ｍＸ（Ｘ＞０）と、複数のバススレーブ（スレーブ）３ｓ０〜３ｓＹ（Ｙ＞０）とが相互に接続されて、それら複数のバスマスタ２ｍ０〜２ｍＸおよび複数のバススレーブ３ｓ０〜３ｓＹ間相互のデータ転送を行うものである。なお、バスマスタ２ｍ０〜２ｍＸとしては、コンピュータのような装置あるいは特定用途向けのＨ／Ｗ  ＩＰ等が適用され、バススレーブ３ｓ０〜３ｓＹとしては、ＳＤＲＡＭのような記憶装置が適用されるものである。
バス装置１において、リクエストキュー４は、バスマスタ２ｍ０〜２ｍＸからのリクエストデータスレッドを同時に保持可能に構成され、リクエストデータスレッド選択装置５は、リクエストキュー４に保持されたリクエストデータスレッドを任意に設定可能な選択アルゴリズムに基づいて選択してバスライン６を通じて転送し、リクエストデータスレッド分配装置７は、バスライン６を通じて転送されたリクエストデータスレッドに含まれるアドレスに応じたバススレーブにそのリクエストデータスレッドを出力するものである。
また、レスポンスキュー８は、バススレーブ３ｓ０〜３ｓＹからのレスポンスデータスレッドを同時に保持可能に構成され、レスポンスデータスレッド選択装置９は、レスポンスキュー８に保持されたレスポンスデータスレッドを任意に設定可能な選択アルゴリズムに基づいて選択してバスライン１０を通じて転送し、レスポンスデータスレッド分配装置１１は、バスライン１０を通じて転送されたレスポンスデータスレッドのマスタＩＤに応じたバスマスタにそのレスポンスデータスレッドを出力するものである。
【０００９】
図２はリクエストデータスレッドの詳細を示す説明図である。
図３はリクエストキューの詳細を示すブロック図であり、リクエストキュー４において、排他制御付き書き込み装置２１は、リクエストデータスレッドが書き込まれていない任意のレジスタ２２に対して、リクエストデータスレッドを複数同時に書き込み可能に構成され、セレクタ２３は、リクエストデータスレッド選択装置５からの選択信号に応じてレジスタ２２に保持されたリクエストデータスレッドを選択し、バスライン６を通じて転送するものである。
図４はリクエストデータスレッド選択装置の選択アルゴリズムを示すフローチャートである。
図５はリクエストデータスレッド分配装置の詳細を示すブロック図であり、リクエストデータスレッド分配装置７において、ＦＩＦＯ３１は、バスライン６を通じて転送されたリクエストデータスレッドを一時保持し、バススレーブアドレスデコーダ３２は、ＦＩＦＯ３１から順次出力されるリクエストデータスレッドのアドレスをデコードして選択信号を生成し、リクエストデータスレッドセレクタ３３は、選択信号に応じてＦＩＦＯ３１から順次出力されるリクエストデータスレッドをバススレーブに出力するものである。
図６はレスポンスデータスレッドの詳細を示す説明図である。
図７はレスポンスキューの詳細を示すブロック図であり、レスポンスキュー８において、排他制御付き書き込み装置４１は、レスポンスデータスレッドが書き込まれていない任意のレジスタ４２に対して、レスポンスデータスレッドを複数同時に書き込み可能に構成され、セレクタ４３は、レスポンスデータスレッド選択装置９からの選択信号に応じてレジスタ４２に保持されたレスポンスデータスレッドを選択し、バスライン１０を通じて転送するものである。
図８はレスポンスデータスレッド分配装置の詳細を示すブロック図であり、レスポンスデータスレッド分配装置１１において、ＦＩＦＯ５１は、バスライン１０を通じて転送されたレスポンスデータスレッドを一時保持し、マスタＩＤデコーダ５２は、ＦＩＦＯ５１から順次出力されるレスポンスデータスレッドのマスタＩＤをデコードして選択信号を生成し、レスポンスデータスレッドセレクタ５３は、選択信号に応じてＦＩＦＯ５１から順次出力されるレスポンスデータスレッドをバススマスタに出力するものである。
【００１０】
次に動作について説明する。
図１において、バスマスタ２ｍ０〜２ｍＸからバススレーブ３ｓ０〜３ｓＹに対し、書き込みないし読み出し要求を発行する場合には、バスマスタ２ｍ０〜２ｍＸからバス装置１にリクエストデータスレッドを発行する。図２に示すように、リクエストデータスレッドは、リクエスト、制御信号およびデータを組として構成されるものである。例えば、リクエストとしては、要求を示すリクエスト、発行元のバスマスタの識別を示すマスタＩＤ、宛先のバススレーブの識別を示すスレッドＩＤ、制御信号として、読み出しまたは書き込み要求を示すＲ／Ｗ、宛先のバススレーブのアドレスを示すアドレス、データとして、バススレーブに書き込むデータで構成され，全体でＭｂｉｔの幅を持つものとする。
バスマスタ２ｍ０〜２ｍＸからバス装置１に発行されたリクエストデータスレッドは、リクエストキュー４に一時的に保持される。図３に示すように、リクエストキュー４の排他制御付き書き込み装置２１は、各Ｍｂｉｔで構成された複数のレジスタ２２のうちのリクエストデータスレッドが書き込まれていない任意のレジスタに対して、入力されるリクエストデータスレッドを順次書き込む。ここで、排他制御付き書き込み装置２１は、複数のリクエストデータスレッドが同時に入力された時でも、空いているレジスタに対して複数同時に書き込み可能にしたものであり、バスマスタ２ｍ０〜２ｍＸからの要求の全てを毎バスサイクル受け付けることが可能なため、バスマスタ２ｍ０〜２ｍＸは、従来の技術のようにリクエストバス使用権を得るためのサイクルを必要としない。
【００１１】
リクエストキュー４に保持されたリクエストデータスレッドは、リクエストデータスレッド選択装置５からの選択信号に応じて選択され、バスライン６を通じてリクエストデータスレッド分配装置７に転送される。この時、リクエストデータスレッド選択装置５は、バスライン６のバス幅以下の範囲で１つ以上のリクエストデータスレッドを組み合わせ、バスライン６を通じてリクエストデータスレッド分配装置７に転送する。
これは即ち、例えば、バスライン６のバス幅がＮｂｉｔ（Ｎ＞０）、バスマスタ２ｍ０〜２ｍＸからのリクエストデータスレッドがＭｂｉｔである場合、リクエストデータスレッド選択装置５が同時に選択可能な最大リクエストデータスレッド数はＮ／Ｍとなり、Ｎ／Ｍ個のリクエストデータスレッドが全て、例えば、バスマスタ２ｍ０から発行されたものであれば、バスマスタ２ｍ０はバスライン６をＮｂｉｔ分使用することになるし、選択されたリクエストデータスレッドのうちの一つがバスマスタ２ｍ０、またある一つがバスマスタ２ｍ１より発行されたものであるならば、バスマスタ２ｍ０、バスマスタ２ｍ１は、それぞれバスライン６をＭｂｉｔずつ使用して転送したこととなる。
なお、上記では説明を分かりやすくするために、リクエストデータスレッドのビット幅を全て同じビット幅Ｍ、且つバス幅Ｎをリクエストデータスレッドのビット幅Ｍの整数倍としたが、Ｘ個の各バスマスタ毎に異なるビット幅Ｍｉ（Ｍｉ＞０）のリクエストデータスレッドを定義しても良く、この場合、リクエストデータスレッド選択装置５は、バスライン６のバス幅Ｎ以下の範囲で、異なるあるいは同一のバスマスタからのリクエストデータスレッドを（Ｎ≧ΣＭｉ，０≦ｉ≦Ｘ）を満たすように組み合わせ、バスライン６を通じて転送するようにすれば良い。
【００１２】
また、リクエストデータスレッド選択装置５は、リクエストキュー４に保持されたリクエストデータスレッドを任意に設定可能な選択アルゴリズムに基づいて選択するものである。図４にその一例を示す。
図４において、まず、レイテンシ（リクエストデータスレッドがリクエストキュー４に保持されてからどの程度の時間が経過したか）の閾値を設定し、その閾値を越えたリクエストデータスレッドを優先する（ステップＳＴ１）。次に、ステップＳＴ１の条件が満たされない場合には、リクエストデタスレッドにバースト転送コマンドが含まれるものを優先する（ステップＳＴ２）。次に、ステップＳＴ２の条件が満たされない場合には、データ量（リクエストキュー４に保持されているリクエストデータスレッドの数）の閾値をバスマスタ毎に設定し、その閾値を越えたバスマスタが発行したリクエストデータスレッドを優先する（ステップＳＴ３）。次に、ステップＳＴ３の条件が満たされない場合には、データ量（リクエストキュー４に保持されているリクエストデータスレッドの数）が最も多いバスマスタのリクエストデータスレッドを優先する（ステップＳＴ４）。さらに、リクエストキュー４にリクエストデータスレッドが保持されていなければ、処理を終了する（ステップＳＴ５）。
これらステップＳＴ１からステップＳＴ４の条件の優先順位は任意に設定可能である。例えば、ステップＳＴ３の条件を最も高い優先順位としたり、ステップＳＴ２の条件を最も高い優先順位として設定を変更しても良い。
ステップＳＴ１からステップＳＴ４において、同一条件を満たすリクエストデータスレッドが複数存在する場合には（ステップＳＴ６）、予め設定された固定の優先順位により選択を行い（ステップＳＴ７）、選択を完了する（ステップＳＴ８）。
【００１３】
リクエストデータスレッド分配装置７は、図５に示すように、バスライン６から転送されたリクエストデータスレッドをＦＩＦＯ３１に一時保持し、ＦＩＦＯ３１より順次出力されるリクエストデータスレッドの制御信号に含まれるアドレスをバススレーブアドレスデコーダ３２によりデコードして選択信号を生成し、選択信号を入力とするリクエストデータスレッドセレクタ３３により、リクエストデータスレッド内のスレッドＩＤに応じたバススレーブの該当するアドレスにリクエストデータスレッドを出力する。
この出力の際には、バススレーブ３ｓ０〜３ｓＹのＢＵＳＹ信号を監視し、バススレーブがＢＵＳＹで無い場合に転送を行う。バススレーブがＢＵＳＹである場合は、リクエストデータスレッドはＢＵＳＹが解除されるまでリクエストデータスレッドセレクタ３３内に保持される。また、一時保持するための装置としてＦＩＦＯ３１を例としたが、レジスタアレイ等のバッファ機能を持つ装置であれば良い。
【００１４】
バススレーブ３ｓ０〜３ｓＹは、リクエストデータスレッドを受け、リクエストデータスレッドの制御信号に含まれるＲ／Ｗに応じて、データを処理して、応答をレスポンスデータスレッドとしてレスポンスキュー８に転送する。図６に示すように、レスポンスデータスレッドは、レスポンスおよびデータを組として構成されるものである。例えば、レスポンスとしては、応答を示すレスポンス、宛先のバスマスタの識別を示すマスタＩＤ、発行元のバススレーブの識別を示すスレッドＩＤ、データとして、バスマスタからの要求が読み出しであった場合のバススレーブから読み出されるデータで構成され、全体でＬｂｉｔの幅を持つものとする。
バススレーブ３ｓ０〜３ｓＹからバス装置１に発行されたレスポンスデータスレッドは、レスポンスキュー８に一時的に保持される。図７に示すように、レスポンスキュー８の排他制御付き書き込み装置４１は、各Ｌｂｉｔで構成された複数のレジスタ４２のうちのレスポンスデータスレッドが書き込まれていない任意のレジスタに対して、入力されるレスポンスデータスレッドを順次書き込む。ここで、排他制御付き書き込み装置４１は、複数のレスポンスデータスレッドが同時に入力された時でも、空いているレジスタに対して複数同時に書き込み可能にしたものであり、バススレーブ３ｓ０〜３ｓＹからの応答の全てを毎バスサイクル受け付けることが可能なため、バススレーブ３ｓ０〜３ｓＹは、従来の技術のようにレスポンスバス使用権を得るためのサイクルを必要としない。
【００１５】
レスポンスキュー８に保持されたレスポンスデータスレッドは、レスポンスデータスレッド選択装置９からの選択信号に応じて選択され、バスライン１０を通じてレスポンスデータスレッド分配装置１１に転送される。この時、レスポンスデータスレッド選択装置９は、バスライン１０のバス幅以下の範囲で１つ以上のレスポンスデータスレッドを組み合わせ、バスライン１０を通じてレスポンスデータスレッド分配装置１１に転送する。
これは即ち、例えば、バスライン１０のバス幅がＫｂｉｔ（Ｋ＞０）、バススレーブ３ｓ０〜３ｓＹからのレスポンスデータスレッドがＬｂｉｔである場合、レスポンスデータスレッド選択装置９が同時に選択可能な最大レスポンスデータスレッド数はＫ／Ｌとなり、Ｋ／Ｌ個のレスポンスデータスレッドが全て、例えば、バススレーブ３ｓ０から発行されたものであれば、バススレーブ３ｓ０はバスライン１０をＫｂｉｔ分使用することになるし、選択されたレスポンスデータスレッドのうちの一つがバススレーブ３ｓ０、またある一つがバススレーブ３ｓ１より発行されたものであるならば、バススレーブ３ｓ０、バススレーブ３ｓ１は、それぞれバスライン１０をＬｂｉｔずつ使用して転送したこととなる。
なお、上記では説明を分かりやすくするために、レスポンスデータスレッドのビット幅を全て同じビット幅Ｌ、且つバス幅Ｋをレスポンスデータスレッドのビット幅Ｌの整数倍としたが、Ｙ個の各バススレーブ毎に異なるビット幅Ｌｊ（Ｌｊ＞０）のレスポンスデータスレッドを定義しても良く、この場合、レスポンスデータスレッド選択装置９は、バスライン１０のバス幅Ｋ以下の範囲で、異なるあるいは同一のバススレーブからのレスポンスデータスレッドを（Ｋ≧ΣＬｊ，０≦ｊ≦Ｙ）を満たすように組み合わせ、バスライン１０を通じて転送するようにすれば良い。
【００１６】
また、レスポンスデータスレッド選択装置９は、レスポンスキュー８に保持されたレスポンスデータスレッドを任意に設定可能な選択アルゴリズムに基づいて選択するものである。その一例としては図４についての説明においてリクエストをレスポンスに置換えたたものとなる。
【００１７】
レスポンスデータスレッド分配装置１１は、図８に示すように、バスライン１０から転送されたレスポンスデータスレッドをＦＩＦＯ５１に一時保持し、ＦＩＦＯ５１より順次出力されるレスポンスデータスレッドのレスポンスに含まれるマスタＩＤをマスタＩＤデコーダ５２によりデコードして選択信号を生成し、選択信号を入力とするレスポンスデータスレッドセレクタ５３により、レスポンスデータスレッド内のマスタＩＤに応じたバスマスタにレスポンスデータスレッドを出力する。
この出力の際には、バスマスタ２ｍ０〜２ｍＸのＢＵＳＹ信号を監視し、バスマスタがＢＵＳＹで無い場合に転送を行う。バスマスタがＢＵＳＹである場合は、レスポンスデータスレッドはＢＵＳＹが解除されるまでレスポンスデータスレッドセレクタ５３内に保持される。また、一時保持するための装置としてＦＩＦＯ５１を例としたが、レジスタアレイ等のバッファ機能を持つ装置であれば良い。
【００１８】
以上のように、この実施の形態１によれば、バスマスタ２ｍ０〜２ｍＸからのリクエストをリクエストデータスレッドという単位で扱うことが可能となると共に、バススレーブ３ｓ０〜３ｓＹからのレスポンスをレスポンスデータスレッドという単位で扱うことが可能となり、バスマスタ２ｍ０〜２ｍＸあるいはバススレーブ３ｓ０〜３ｓＹの動作とは独立してバス転送を行うことができ、バスライン６，１０を効率良く利用することができる。
【００１９】
また、リクエストデータスレッド選択装置５は、異なる、あるいは同一のバスマスタのリクエストデータスレッドをバスライン６に１つ以上同時転送可能にするので、バスライン６が広幅であっても、複数のリクエストデータスレッドを同時にバスライン６に投入できるため、バスマスタ２ｍ０〜２ｍＸの転送レートを動的に制御でき、バスライン６の利用率を高め、システムの性能を向上させることができる。
また、レスポンスデータスレッド選択装置９は、異なる、あるいは同一のバススレーブのレスポンスデータスレッドをバスライン１０に１つ以上同時転送可能にするので、バスライン１０が広幅であっても、複数のレスポンスデータスレッドを同時にバスライン１０に投入できるため、バススレーブ３ｓ０〜３ｓＹの転送レートを動的に制御でき、バスライン１０の利用率を高め、システムの性能を向上させることができる。
【００２０】
さらに、リクエストデータスレッド選択装置５は、リクエストキュー４内に保持されたリクエストデータスレッドを任意に設定可能な優先度に基づいて選択するので、リクエストキュー４内に保持されたリクエストデータスレッドのうちの保持時間を長く経過したものを優先的に選択したり、バースト転送コマンドが含まれるものを優先的に選択する等、効率的なリクエストの処理が可能となり、システムの性能を向上させることができる。
さらに、レスポンスデータスレッド選択装置９は、レスポンスキュー内に保持されたレスポンスデータスレッドを任意に設定可能な優先度に基づいて選択するので、レスポンスキュー８内に保持されたレスポンスデータスレッドのうちの保持時間を長く経過したものを優先的に選択したり、バースト転送コマンドが含まれるものを優先的に選択する等、効率的なレスポンスの処理が可能となり、システムの性能を向上させることができる。
【００２１】
さらに、リクエストキュー４は、リクエストデータスレッド選択装置５に選択されバスライン６に転送されるまで、リクエストデータスレッドを保持し続けるので、リクエストキュー４をバッファのように用いることで、バスライン６あるいはバススレーブ３ｓ０〜３ｓＹが処理しきれない分のバスマスタ２ｍ０〜２ｍＸからのリクエストを一時的にリクエストキュー４内に保持できるため、バスマスタ２ｍ０〜２ｍＸはバスライン６あるいはバススレーブ３ｓ０〜３ｓＹの応答を待たずに次の処理に移ることができる。この結果、効率的にバスマスタ２ｍ０〜２ｍＸが動作できるため、システム全体の処理効率を向上させることができる。
さらに、レスポンスキュー８は、レスポンスデータスレッド選択装置９に選択されバスライン１０に転送されるまで、レスポンスデータスレッドを保持し続けるので、レスポンスキュー８をバッファのように用いることで、バスライン１０あるいはバスマスタ２ｍ０〜２ｍＸが処理しきれない分のバススレーブ３ｓ０〜３ｓＹからのレスポンスを一時的にレスポンスキュー８内に保持できるため、バススレーブ３ｓ０〜３ｓＹはバスライン１０あるいはバスマスタ２ｍ０〜２ｍＸの応答を待たずに次の処理に移ることができる。この結果、効率的にバススレーブ３ｓ０〜３ｓＹが動作できるため、システム全体の処理効率を向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】この発明の実施の形態１によるバス装置を示すブロック図である。
【図２】リクエストデータスレッドの詳細を示す説明図である。
【図３】リクエストキューの詳細を示すブロック図である。
【図４】リクエストデータスレッド選択装置の選択アルゴリズムを示すフローチャートである。
【図５】リクエストデータスレッド分配装置の詳細を示すブロック図である。
【図６】レスポンスデータスレッドの詳細を示す説明図である。
【図７】レスポンスキューの詳細を示すブロック図である。
【図８】レスポンスデータスレッド分配装置の詳細を示すブロック図である。
【符号の説明】
【００２３】
１  バス装置、２ｍ０〜２ｍＸ  バスマスタ（マスタ）、３ｓ０〜３ｓＹ  バススレーブ（スレーブ）、４  リクエストキュー、５  リクエストデータスレッド選択装置、６，１０  バスライン、７  リクエストデータスレッド分配装置、８  レスポンスキュー、９  レスポンスデータスレッド選択装置、１１  レスポンスデータスレッド分配装置、２１，４１  排他制御付き書き込み装置、２２，４２  レジスタ、２３，４３  セレクタ、３１，５１  ＦＩＦＯ、３２  バススレーブアドレスデコーダ、３３  リクエストデータスレッドセレクタ、５２  マスタＩＤデコーダ、５３  レスポンスデータスレッドセレクタ。
【図１】
2005284578.tif 000003
【図２】
2005284578.tif 000004
【図３】
2005284578.tif 000005
【図４】
2005284578.tif 000006
【図５】
2005284578.tif 000007
【図６】
2005284578.tif 000008
【図７】
2005284578.tif 000009
【図８】
2005284578.tif 000010