JP2005284578A - バス装置 - Google Patents
バス装置 Download PDFInfo
- Publication number
- JP2005284578A JP2005284578A JP2004095969A JP2004095969A JP2005284578A JP 2005284578 A JP2005284578 A JP 2005284578A JP 2004095969 A JP2004095969 A JP 2004095969A JP 2004095969 A JP2004095969 A JP 2004095969A JP 2005284578 A JP2005284578 A JP 2005284578A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data thread
- request
- response
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【解決手段】 バス装置1として、複数のバスマスタ2m0〜2mXからのリクエストデータスレッドを同時に保持可能なリクエストキュー4と、そのリクエストキュー4に保持されたリクエストデータスレッドを選択してバスライン6より転送するリクエストデータスレッド選択装置5と、バスライン6を通じて転送されたリクエストデータスレッドに含まれるスレッドIDに応じたバススレーブにそのリクエストデータスレッドを出力するリクエストデータスレッド分配装置7とを備えた。
このように構成することによって、バスマスタ2m0〜2mXからのリクエストをリクエストデータスレッドという単位で扱うことが可能となり、バスマスタ2m0〜2mXの動作とは独立してバス転送を行うことができ、バスライン6を効率良く利用することができる。
【選択図】 図1
Description
この課題を解決する手段として、バスを分割(例えば、特許文献1参照)、あるいはバスを多重化(例えば、特許文献2参照)して、バス使用要求を分散させることによりバス使用要求の競合を軽減し、同時に無効なバスラインを減らし効率的な転送を可能とする手法が採られている。
しかしながら、分割されたバス、あるいは多重化されたバスが全て使用されるような状況下では、やはりバス使用要求の衝突が起こり、上記従来の課題同様、バス使用権が得られるまで処理を停止させなくてはならず、その結果、性能低下を引き起こしてしまうなどの課題があった。
図1はこの発明の実施の形態1によるバス装置を示すブロック図であり、図において、バス装置1は、複数のバスマスタ(マスタ)2m0〜2mX(X>0)と、複数のバススレーブ(スレーブ)3s0〜3sY(Y>0)とが相互に接続されて、それら複数のバスマスタ2m0〜2mXおよび複数のバススレーブ3s0〜3sY間相互のデータ転送を行うものである。なお、バスマスタ2m0〜2mXとしては、コンピュータのような装置あるいは特定用途向けのH/W IP等が適用され、バススレーブ3s0〜3sYとしては、SDRAMのような記憶装置が適用されるものである。
バス装置1において、リクエストキュー4は、バスマスタ2m0〜2mXからのリクエストデータスレッドを同時に保持可能に構成され、リクエストデータスレッド選択装置5は、リクエストキュー4に保持されたリクエストデータスレッドを任意に設定可能な選択アルゴリズムに基づいて選択してバスライン6を通じて転送し、リクエストデータスレッド分配装置7は、バスライン6を通じて転送されたリクエストデータスレッドに含まれるアドレスに応じたバススレーブにそのリクエストデータスレッドを出力するものである。
また、レスポンスキュー8は、バススレーブ3s0〜3sYからのレスポンスデータスレッドを同時に保持可能に構成され、レスポンスデータスレッド選択装置9は、レスポンスキュー8に保持されたレスポンスデータスレッドを任意に設定可能な選択アルゴリズムに基づいて選択してバスライン10を通じて転送し、レスポンスデータスレッド分配装置11は、バスライン10を通じて転送されたレスポンスデータスレッドのマスタIDに応じたバスマスタにそのレスポンスデータスレッドを出力するものである。
図3はリクエストキューの詳細を示すブロック図であり、リクエストキュー4において、排他制御付き書き込み装置21は、リクエストデータスレッドが書き込まれていない任意のレジスタ22に対して、リクエストデータスレッドを複数同時に書き込み可能に構成され、セレクタ23は、リクエストデータスレッド選択装置5からの選択信号に応じてレジスタ22に保持されたリクエストデータスレッドを選択し、バスライン6を通じて転送するものである。
図4はリクエストデータスレッド選択装置の選択アルゴリズムを示すフローチャートである。
図5はリクエストデータスレッド分配装置の詳細を示すブロック図であり、リクエストデータスレッド分配装置7において、FIFO31は、バスライン6を通じて転送されたリクエストデータスレッドを一時保持し、バススレーブアドレスデコーダ32は、FIFO31から順次出力されるリクエストデータスレッドのアドレスをデコードして選択信号を生成し、リクエストデータスレッドセレクタ33は、選択信号に応じてFIFO31から順次出力されるリクエストデータスレッドをバススレーブに出力するものである。
図6はレスポンスデータスレッドの詳細を示す説明図である。
図7はレスポンスキューの詳細を示すブロック図であり、レスポンスキュー8において、排他制御付き書き込み装置41は、レスポンスデータスレッドが書き込まれていない任意のレジスタ42に対して、レスポンスデータスレッドを複数同時に書き込み可能に構成され、セレクタ43は、レスポンスデータスレッド選択装置9からの選択信号に応じてレジスタ42に保持されたレスポンスデータスレッドを選択し、バスライン10を通じて転送するものである。
図8はレスポンスデータスレッド分配装置の詳細を示すブロック図であり、レスポンスデータスレッド分配装置11において、FIFO51は、バスライン10を通じて転送されたレスポンスデータスレッドを一時保持し、マスタIDデコーダ52は、FIFO51から順次出力されるレスポンスデータスレッドのマスタIDをデコードして選択信号を生成し、レスポンスデータスレッドセレクタ53は、選択信号に応じてFIFO51から順次出力されるレスポンスデータスレッドをバススマスタに出力するものである。
図1において、バスマスタ2m0〜2mXからバススレーブ3s0〜3sYに対し、書き込みないし読み出し要求を発行する場合には、バスマスタ2m0〜2mXからバス装置1にリクエストデータスレッドを発行する。図2に示すように、リクエストデータスレッドは、リクエスト、制御信号およびデータを組として構成されるものである。例えば、リクエストとしては、要求を示すリクエスト、発行元のバスマスタの識別を示すマスタID、宛先のバススレーブの識別を示すスレッドID、制御信号として、読み出しまたは書き込み要求を示すR/W、宛先のバススレーブのアドレスを示すアドレス、データとして、バススレーブに書き込むデータで構成され,全体でMbitの幅を持つものとする。
バスマスタ2m0〜2mXからバス装置1に発行されたリクエストデータスレッドは、リクエストキュー4に一時的に保持される。図3に示すように、リクエストキュー4の排他制御付き書き込み装置21は、各Mbitで構成された複数のレジスタ22のうちのリクエストデータスレッドが書き込まれていない任意のレジスタに対して、入力されるリクエストデータスレッドを順次書き込む。ここで、排他制御付き書き込み装置21は、複数のリクエストデータスレッドが同時に入力された時でも、空いているレジスタに対して複数同時に書き込み可能にしたものであり、バスマスタ2m0〜2mXからの要求の全てを毎バスサイクル受け付けることが可能なため、バスマスタ2m0〜2mXは、従来の技術のようにリクエストバス使用権を得るためのサイクルを必要としない。
これは即ち、例えば、バスライン6のバス幅がNbit(N>0)、バスマスタ2m0〜2mXからのリクエストデータスレッドがMbitである場合、リクエストデータスレッド選択装置5が同時に選択可能な最大リクエストデータスレッド数はN/Mとなり、N/M個のリクエストデータスレッドが全て、例えば、バスマスタ2m0から発行されたものであれば、バスマスタ2m0はバスライン6をNbit分使用することになるし、選択されたリクエストデータスレッドのうちの一つがバスマスタ2m0、またある一つがバスマスタ2m1より発行されたものであるならば、バスマスタ2m0、バスマスタ2m1は、それぞれバスライン6をMbitずつ使用して転送したこととなる。
なお、上記では説明を分かりやすくするために、リクエストデータスレッドのビット幅を全て同じビット幅M、且つバス幅Nをリクエストデータスレッドのビット幅Mの整数倍としたが、X個の各バスマスタ毎に異なるビット幅Mi(Mi>0)のリクエストデータスレッドを定義しても良く、この場合、リクエストデータスレッド選択装置5は、バスライン6のバス幅N以下の範囲で、異なるあるいは同一のバスマスタからのリクエストデータスレッドを(N≧ΣMi,0≦i≦X)を満たすように組み合わせ、バスライン6を通じて転送するようにすれば良い。
図4において、まず、レイテンシ(リクエストデータスレッドがリクエストキュー4に保持されてからどの程度の時間が経過したか)の閾値を設定し、その閾値を越えたリクエストデータスレッドを優先する(ステップST1)。次に、ステップST1の条件が満たされない場合には、リクエストデタスレッドにバースト転送コマンドが含まれるものを優先する(ステップST2)。次に、ステップST2の条件が満たされない場合には、データ量(リクエストキュー4に保持されているリクエストデータスレッドの数)の閾値をバスマスタ毎に設定し、その閾値を越えたバスマスタが発行したリクエストデータスレッドを優先する(ステップST3)。次に、ステップST3の条件が満たされない場合には、データ量(リクエストキュー4に保持されているリクエストデータスレッドの数)が最も多いバスマスタのリクエストデータスレッドを優先する(ステップST4)。さらに、リクエストキュー4にリクエストデータスレッドが保持されていなければ、処理を終了する(ステップST5)。
これらステップST1からステップST4の条件の優先順位は任意に設定可能である。例えば、ステップST3の条件を最も高い優先順位としたり、ステップST2の条件を最も高い優先順位として設定を変更しても良い。
ステップST1からステップST4において、同一条件を満たすリクエストデータスレッドが複数存在する場合には(ステップST6)、予め設定された固定の優先順位により選択を行い(ステップST7)、選択を完了する(ステップST8)。
この出力の際には、バススレーブ3s0〜3sYのBUSY信号を監視し、バススレーブがBUSYで無い場合に転送を行う。バススレーブがBUSYである場合は、リクエストデータスレッドはBUSYが解除されるまでリクエストデータスレッドセレクタ33内に保持される。また、一時保持するための装置としてFIFO31を例としたが、レジスタアレイ等のバッファ機能を持つ装置であれば良い。
バススレーブ3s0〜3sYからバス装置1に発行されたレスポンスデータスレッドは、レスポンスキュー8に一時的に保持される。図7に示すように、レスポンスキュー8の排他制御付き書き込み装置41は、各Lbitで構成された複数のレジスタ42のうちのレスポンスデータスレッドが書き込まれていない任意のレジスタに対して、入力されるレスポンスデータスレッドを順次書き込む。ここで、排他制御付き書き込み装置41は、複数のレスポンスデータスレッドが同時に入力された時でも、空いているレジスタに対して複数同時に書き込み可能にしたものであり、バススレーブ3s0〜3sYからの応答の全てを毎バスサイクル受け付けることが可能なため、バススレーブ3s0〜3sYは、従来の技術のようにレスポンスバス使用権を得るためのサイクルを必要としない。
これは即ち、例えば、バスライン10のバス幅がKbit(K>0)、バススレーブ3s0〜3sYからのレスポンスデータスレッドがLbitである場合、レスポンスデータスレッド選択装置9が同時に選択可能な最大レスポンスデータスレッド数はK/Lとなり、K/L個のレスポンスデータスレッドが全て、例えば、バススレーブ3s0から発行されたものであれば、バススレーブ3s0はバスライン10をKbit分使用することになるし、選択されたレスポンスデータスレッドのうちの一つがバススレーブ3s0、またある一つがバススレーブ3s1より発行されたものであるならば、バススレーブ3s0、バススレーブ3s1は、それぞれバスライン10をLbitずつ使用して転送したこととなる。
なお、上記では説明を分かりやすくするために、レスポンスデータスレッドのビット幅を全て同じビット幅L、且つバス幅Kをレスポンスデータスレッドのビット幅Lの整数倍としたが、Y個の各バススレーブ毎に異なるビット幅Lj(Lj>0)のレスポンスデータスレッドを定義しても良く、この場合、レスポンスデータスレッド選択装置9は、バスライン10のバス幅K以下の範囲で、異なるあるいは同一のバススレーブからのレスポンスデータスレッドを(K≧ΣLj,0≦j≦Y)を満たすように組み合わせ、バスライン10を通じて転送するようにすれば良い。
この出力の際には、バスマスタ2m0〜2mXのBUSY信号を監視し、バスマスタがBUSYで無い場合に転送を行う。バスマスタがBUSYである場合は、レスポンスデータスレッドはBUSYが解除されるまでレスポンスデータスレッドセレクタ53内に保持される。また、一時保持するための装置としてFIFO51を例としたが、レジスタアレイ等のバッファ機能を持つ装置であれば良い。
また、レスポンスデータスレッド選択装置9は、異なる、あるいは同一のバススレーブのレスポンスデータスレッドをバスライン10に1つ以上同時転送可能にするので、バスライン10が広幅であっても、複数のレスポンスデータスレッドを同時にバスライン10に投入できるため、バススレーブ3s0〜3sYの転送レートを動的に制御でき、バスライン10の利用率を高め、システムの性能を向上させることができる。
さらに、レスポンスデータスレッド選択装置9は、レスポンスキュー内に保持されたレスポンスデータスレッドを任意に設定可能な優先度に基づいて選択するので、レスポンスキュー8内に保持されたレスポンスデータスレッドのうちの保持時間を長く経過したものを優先的に選択したり、バースト転送コマンドが含まれるものを優先的に選択する等、効率的なレスポンスの処理が可能となり、システムの性能を向上させることができる。
さらに、レスポンスキュー8は、レスポンスデータスレッド選択装置9に選択されバスライン10に転送されるまで、レスポンスデータスレッドを保持し続けるので、レスポンスキュー8をバッファのように用いることで、バスライン10あるいはバスマスタ2m0〜2mXが処理しきれない分のバススレーブ3s0〜3sYからのレスポンスを一時的にレスポンスキュー8内に保持できるため、バススレーブ3s0〜3sYはバスライン10あるいはバスマスタ2m0〜2mXの応答を待たずに次の処理に移ることができる。この結果、効率的にバススレーブ3s0〜3sYが動作できるため、システム全体の処理効率を向上させることができる。
Claims (8)
- 複数のマスタからのスレッドIDを含むリクエストおよびデータの組で構成されるリクエストデータスレッドを同時に保持可能なリクエストキューと、
上記リクエストキューに保持されたリクエストデータスレッドを選択するリクエストデータスレッド選択装置と、
上記リクエストデータスレッド選択装置により選択されたリクエストデータスレッドを転送するバスラインと、
複数のスレーブのうちの上記バスラインを通じて転送されたリクエストデータスレッドのリクエストに含まれるスレッドIDに応じたスレーブにそのリクエストデータスレッドを出力するリクエストデータスレッド分配装置とを備えたバス装置。 - 複数のスレーブからのマスタIDを含むレスポンスおよびデータの組で構成されるレスポンスデータスレッドを同時に保持可能なレスポンスキューと、
上記レスポンスキューに保持されたレスポンスデータスレッドを選択するレスポンスデータスレッド選択装置と、
上記レスポンスデータスレッド選択装置により選択されたレスポンスデータスレッドを転送するバスラインと、
複数のマスタのうちの上記バスラインを通じて転送されたレスポンスデータスレッドのレスポンスに含まれるマスタIDに応じたマスタにそのレスポンスデータスレッドを出力するレスポンスデータスレッド分配装置とを備えたバス装置。 - リクエストデータスレッド選択装置は、
リクエストキュー内に1つ以上のリクエストデータスレッドが保持されている場合に、異なるX個のマスタのそれぞれのリクエストデータスレッドのビット幅をMi(Mi>0)、バス幅をN(NBit,N>0)とした時、バス幅以下の範囲で1つ以上のリクエストデータスレッドを選択可能(N≧ΣMi,0≦i≦X)とすることで、異なる、あるいは同一のマスタのリクエストデータスレッドをバスラインに1つ以上同時転送可能にすることを特徴とする請求項1記載のバス装置。 - レスポンスデータスレッド選択装置は、
レスポンスキュー内に1つ以上のレスポンスデータスレッドが保持されている場合に、異なるY個のスレーブのそれぞれのレスポンスデータスレッドのビット幅をLj(Lj>0)、バス幅をK(KBit,K>0)とした時、バス幅以下の範囲で1つ以上のレスポンスデータスレッドを選択可能(K≧ΣLj,0≦j≦Y)とすることで、異なる、あるいは同一のスレーブのレスポンスデータスレッドをバスラインに1つ以上同時転送可能にすることを特徴とする請求項2記載のバス装置。 - リクエストデータスレッド選択装置は、
リクエストキュー内に保持されたリクエストデータスレッドを任意に設定可能な優先度に基づいて選択することを特徴とする請求項1または請求項3記載のバス装置。 - レスポンスデータスレッド選択装置は、
レスポンスキュー内に保持されたレスポンスデータスレッドを任意に設定可能な優先度に基づいて選択することを特徴とする請求項2または請求項4記載のバス装置。 - リクエストキューは、
リクエストデータスレッド選択装置に選択されバスラインに転送されるまで、リクエストデータスレッドを保持し続けることを特徴とする請求項1、請求項3および請求項5のうちのいずれか1項記載のバス装置。 - レスポンスキューは、
レスポンスデータスレッド選択装置に選択されバスラインに転送されるまで、レスポンスデータスレッドを保持し続けることを特徴とする請求項2、請求項4および請求項6のうちのいずれか1項記載のバス装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004095969A JP2005284578A (ja) | 2004-03-29 | 2004-03-29 | バス装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004095969A JP2005284578A (ja) | 2004-03-29 | 2004-03-29 | バス装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005284578A true JP2005284578A (ja) | 2005-10-13 |
Family
ID=35182903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004095969A Pending JP2005284578A (ja) | 2004-03-29 | 2004-03-29 | バス装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005284578A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008269555A (ja) * | 2007-03-28 | 2008-11-06 | Mitsubishi Electric Corp | バス装置 |
JP2009009512A (ja) * | 2007-06-29 | 2009-01-15 | Nec Electronics Corp | バスシステム |
JP2009031932A (ja) * | 2007-07-25 | 2009-02-12 | Fujitsu Ltd | 転送装置、転送装置を有する情報処理装置及び制御方法 |
JP2009169599A (ja) * | 2008-01-15 | 2009-07-30 | Mitsubishi Electric Corp | バス装置 |
JP2009251652A (ja) * | 2008-04-01 | 2009-10-29 | Mitsubishi Electric Corp | マルチコアシステム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0528103A (ja) * | 1990-05-22 | 1993-02-05 | Mitsubishi Electric Corp | バス多重方式 |
JPH06139207A (ja) * | 1992-10-30 | 1994-05-20 | Fujitsu Ltd | システムバス制御方式 |
JPH0844662A (ja) * | 1994-07-26 | 1996-02-16 | Fuji Xerox Co Ltd | 情報処理装置 |
JP2002108804A (ja) * | 2000-10-04 | 2002-04-12 | Nec Eng Ltd | データスイッチング装置 |
JP2003256350A (ja) * | 2002-03-01 | 2003-09-12 | Nec Electronics Corp | バスシステム |
-
2004
- 2004-03-29 JP JP2004095969A patent/JP2005284578A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0528103A (ja) * | 1990-05-22 | 1993-02-05 | Mitsubishi Electric Corp | バス多重方式 |
JPH06139207A (ja) * | 1992-10-30 | 1994-05-20 | Fujitsu Ltd | システムバス制御方式 |
JPH0844662A (ja) * | 1994-07-26 | 1996-02-16 | Fuji Xerox Co Ltd | 情報処理装置 |
JP2002108804A (ja) * | 2000-10-04 | 2002-04-12 | Nec Eng Ltd | データスイッチング装置 |
JP2003256350A (ja) * | 2002-03-01 | 2003-09-12 | Nec Electronics Corp | バスシステム |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008269555A (ja) * | 2007-03-28 | 2008-11-06 | Mitsubishi Electric Corp | バス装置 |
JP2009009512A (ja) * | 2007-06-29 | 2009-01-15 | Nec Electronics Corp | バスシステム |
JP2009031932A (ja) * | 2007-07-25 | 2009-02-12 | Fujitsu Ltd | 転送装置、転送装置を有する情報処理装置及び制御方法 |
JP2009169599A (ja) * | 2008-01-15 | 2009-07-30 | Mitsubishi Electric Corp | バス装置 |
JP2009251652A (ja) * | 2008-04-01 | 2009-10-29 | Mitsubishi Electric Corp | マルチコアシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4024875B2 (ja) | 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置 | |
JP4124491B2 (ja) | 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ | |
US20090138570A1 (en) | Method for setting parameters and determining latency in a chained device system | |
TW200931250A (en) | Memory controller for performing memory block initialization and copy | |
JP2006338538A (ja) | ストリームプロセッサ | |
US7970959B2 (en) | DMA transfer system using virtual channels | |
US20100017544A1 (en) | Direct memory access controller and data transmitting method of direct memory access channel | |
US20070156937A1 (en) | Data transfer in multiprocessor system | |
JP2012521588A (ja) | 回路構成におけるデータ交換を制御するための回路構成、および方法 | |
JP6290761B2 (ja) | データ転送制御システム、データ転送制御方法、及び、データ転送制御プログラム | |
US7913013B2 (en) | Semiconductor integrated circuit | |
JP2005284578A (ja) | バス装置 | |
JP2005084907A (ja) | メモリ帯域制御装置 | |
KR101420290B1 (ko) | 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템 | |
US6701407B1 (en) | Multiprocessor system with system modules each having processors, and a data transfer method therefor | |
JP5360594B2 (ja) | Dma転送装置及び方法 | |
JP2004086798A (ja) | マルチプロセッサシステム | |
JP4882116B2 (ja) | バッファ制御装置およびバッファ制御方法 | |
JP2009037639A (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
US20030093594A1 (en) | Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller | |
JP2007026184A (ja) | 機能処理電子回路およびその制御手法 | |
JP2008203989A (ja) | バス装置 | |
KR20020051545A (ko) | 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법 | |
JP4862593B2 (ja) | データ転送装置及び画像形成装置 | |
JP4593220B2 (ja) | メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070219 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071016 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100120 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100518 |