JP4621604B2 - バス装置、バスシステムおよび情報転送方法 - Google Patents

バス装置、バスシステムおよび情報転送方法 Download PDF

Info

Publication number
JP4621604B2
JP4621604B2 JP2006043182A JP2006043182A JP4621604B2 JP 4621604 B2 JP4621604 B2 JP 4621604B2 JP 2006043182 A JP2006043182 A JP 2006043182A JP 2006043182 A JP2006043182 A JP 2006043182A JP 4621604 B2 JP4621604 B2 JP 4621604B2
Authority
JP
Japan
Prior art keywords
holding state
pipeline register
information
stage
bus
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.)
Expired - Fee Related
Application number
JP2006043182A
Other languages
English (en)
Other versions
JP2007220046A (ja
Inventor
滋博 浅野
宜史 吉川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006043182A priority Critical patent/JP4621604B2/ja
Priority to US11/517,327 priority patent/US7818546B2/en
Priority to CN200710005846A priority patent/CN100576811C/zh
Publication of JP2007220046A publication Critical patent/JP2007220046A/ja
Application granted granted Critical
Publication of JP4621604B2 publication Critical patent/JP4621604B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Description

本発明は、バスマスターとバススレーブの間で情報を転送するバス装置、バスシステムおよび情報転送方法に関するものである。
半導体技術の向上と共にシステムの動作周波数が向上している。しかし、配線によるディレイは動作周波数の向上に応じて短縮されているとは言い難い。特に配線を半導体基板上に形成した場合、微細化により配線の線幅は細くなり、それによる配線の抵抗値の増大は配線容量の縮小効果を上回る場合があり、微細化の割合に従ってディレイが短くなるわけではない。
半導体基板上に複数のプロセッサ、メモリおよびI/Oデバイスを集積し、システムを構成するシステムオンシリコンが広く使われるようになった。しかし、周波数の向上と、上記に述べたような微細化による配線ディレイにより、1サイクル中にプロセッサからメモリやI/Oデバイスに信号を伝達することが難しくなってきている。
従来の方式では、プロセッサとメモリやI/Oデバイスをバスで接続する場合、まずメモリやI/Oデバイスがアドレスを受け付けるか否かの情報をプロセッサ側に伝達する。そして、プロセッサはその情報に基づいてアドレスを伝送する。しかし、動作周波数の向上にともない、プロセッサとメモリやI/Oデバイスの接続が1サイクルで伝達できず、複数サイクルかかってしまう場合が生じている。
通信の分野においては、送信元と受信先が距離的に離れており、情報の伝送に複数サイクルかかることが前提になっている。そこで、システムの周波数を向上すべく、例えば、受信先に一定量のバッファを設け、送信側ではバッファ量に相当するクレジットという値を管理し、受信側バッファのオーバーフローを防ぐ方法が開示されている(例えば、「特許文献1」参照)。
米国特許第5748613号明細書
上述のように、プロセッサとメモリやI/Oデバイスの接続が1サイクルで伝達できず、複数サイクルかかるようになるとプロセッサとメモリの間にはパイプライン構造を導入する必要がある。
ただし、この場合でも、メモリやI/Oデバイスがアドレスを受け付けられなくなったという信号をプロセッサ側に返す場合にも複数サイクル必要となる。したがって、パイプライン構造を導入したとしても、受け付けられないという信号がプロセッサに伝達されたときには既にプロセッサからは複数のアドレス情報が送出されている可能性がある。
一方、上述のクレジット方式の通信においては、一定のペースでコマンドを送信元から受信先へ送る場合には、レーテンシーに応じたバッファを用意する必要があり、余分な資源を浪費してしまう。
例えばバスマスターからバススレーブへはtサイクル、バススレーブからバスマスターへも同様にtサイクルかかるとする。この場合には、バスマスター側に存在するクレジットの値が更新されるまで2tサイクルかかることになる。すなわち、バスマスターがnサイクルに1回のペースでコマンドを送れる場合は2t/n個のコマンドに対するバッファがスレーブ側に存在しなければならない。逆にバッファの数が1個しかない場合は2tサイクルに1回しかコマンドが送れないこととなり、バンド幅が著しく制限されてしまう。
さらに、複数のバスマスターがバススレーブに対してコマンドを送る従来方式においては、アービタは集中して存在するのが一般的である。しかし、システムの動作周波数が高い場合は複数のプロセッサからアービタへ1サイクルで信号を伝達することができない場合がある。この場合には、アービタは分散して配置する必要がある。
一方で、すでに述べたように、スレーブ(メモリやI/Oデバイス)のバッファに上書きするのを防止するためのフローコントロールのメカニズムが必要である。クレジットベースのフローコントロールではクレジット情報のやり取りが一対のバスマスター(プロセッサ)とスレーブに限定される。したがって、複数のバスマスターを扱うためには、バススレーブはバスマスターごとにクレジットの管理とバスマスターごとのバッファを設けなければならず、資源を浪費してしまう。
本発明は、上記に鑑みてなされたものであって、1サイクルで信号を伝達することができない場合であっても、確実に情報を送信することができ、かつシステムの周波数を向上させることのできるバス装置を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、バスマスターとバススレーブの間で情報を転送するバス装置であって、前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタと、前記複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置とを備え、各管理装置は、当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、前記自段パイプラインレジスタに情報を送る前段パイプラインレジスタの前記保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定手段と、前記保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定手段が特定する前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有し、前記隣段保持状態特定手段には、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、前記隣段保持状態特定手段は、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力することを特徴とする。
また、本発明の他の形態は、バスマスターと、バススレーブと、前記バスマスターと前記バススレーブの間で情報を伝達するバス装置とを備えたバスシステムであって、前記バス装置は、前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタと、前記複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置とを備え、各管理装置は、当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、前記自段パイプラインレジスタに情報を送る前段パイプラインレジスタの前記保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定手段と、前記保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定手段が特定する前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有し、前記隣段保持状態特定手段には、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、前記隣段保持状態特定手段は、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力することを特徴とする。
また、本発明の他の形態は、バスマスターとバススレーブの間で情報を転送するバス装置における情報転送方法であって、前記バス装置は、を前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置それぞれが、各管理装置に対応する自段パイプラインレジスタに情報を送る前段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定ステップと、当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定ステップにおいて特定した前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御ステップとを有し、前記隣段保持状態特定ステップでは、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力することを特徴とする。
本発明にかかるバス装置は、各パイプラインレジスタに対応して設けられた管理装置の保持状態保持手段が、自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持し、隣段保持状態特定手段が、自段パイプラインレジスタに情報を送る前段パイプラインレジスタの保持状態と、自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの保持状態を特定し、転送制御手段が、自段パイプラインレジスタの保持状態と、前段パイプラインレジスタの保持状態および後段パイプラインレジスタの保持状態とに基づいて、対応するパイプラインレジスタが保持する情報を転送するか否かを決定するので、1サイクルで信号を伝達することができない場合であっても、確実に情報を送信することができ、かつシステムの周波数を向上させることができるという効果を奏する。
以下に、本発明にかかるバス装置、バスシステムおよび情報転送方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
図1は、実施の形態にかかるバスシステム1の全体構成を示す図である。バスシステム1は、8つのプロセッサ10A〜10Hと、I/Oデバイス50と、L2(レベル2)キャッシュ30と、メモリコントローラ40と、内蔵EDRAM43と、外部SDRAM44とを備えている。メモリコントローラ40は、L3(レベル3)キャッシュ42を有している。8つのプロセッサ10A〜10Hは、L2キャッシュ30に接続している。さらに、I/Oデバイス50がL2キャッシュ30に接続している。L2キャッシュ20は、さらにメモリコントローラ40に接続している。
アドレス情報は、プロセッサ10A〜10Hから、L2キャッシュ30に伝達される。L2キャッシュ30は、プロセッサ10A〜10Hから要求される情報がL2キャッシュ30にキャッシュされているかどうかをチェックし、チェックの結果に応じて所定の動作を行う。キャッシュされていない場合には、メモリコントローラ40がL3キャッシュ42にアクセスする。L3キャッシュ42にキャッシュされていない場合はアドレスに応じて内蔵EDRAM43および外部SDRAM44をアクセスする。すなわち、実施の形態にかかる8つのプロセッサ10A〜10Hは、バスにおけるマスターデバイスに相当する。L2キャッシュ30は、バスにおけるスレーブデバイスに相当する。なお、バスシステム1はL3キャッシュや、L2キャッシュは有さなくともよい。
なお、アドレス情報には、プロセッサが要求するメモリのアドレスの他、コマンドの種類(ReadまたはWriteなど)、データ転送の大きさ(キャッシュラインまたはバイトなど)などの情報が含まれており、これらの情報が同時に転送される。
図2は、プロセッサ10A〜10Hと、L2キャッシュ30の物理的な位置関係を示す図である。図2に示すように、プロセッサ10AとL2キャッシュ30は、5mm程度離れて配置されている。したがって、バスのクロックサイクルが500MHzで配線は1サイクル中に2.5mm程度しか到達しないとした場合には、プロセッサ10AからL2キャッシュ30へは少なくとも2段のパイプラインを設置する必要がある。さらに、パイプライン中のラッチやクロックスキューなどの余裕を考慮した場合には、さらに多くの段のパイプラインを必要とする。
仮に、バスをパイプライン構成にしない場合は、次のような制約を設けなければならない。すなわち、一つの方法としては、バスの周波数はそのままで、システムを1サイクルで到達するだけの大きさに制限する。また他の方法としては、バスの周波数を低下させる。この2つの制約ではシステムの規模を限定したり、バスのスループットを制約したりするので性能に対するインパクトが大きく、望ましくない。
図3は、プロセッサ10A〜10Hと、L2キャッシュ30の接続関係をより詳細に示す図である。図3に示すように、2つのプロセッサ10A,10Bは、アービタ11Aに接続し、さらに、フリップフロップで構成されたアドレス情報保持部12Aに接続している。同様に、他のプロセッサ10C〜10Hも、アービタ11B〜11Dおよびアドレス情報保持部12B〜12Dに接続している。また、各アドレス情報保持部12A〜12Dは、アービタ21を経由してアドレス情報保持部22に接続している。
この構成において、プロセッサ10A〜10HからL2キャッシュ30までの間には、パイプラインが2段存在する。各プロセッサ10A〜10Hが有するアドレス情報保持部12A〜12Hを第1段とし、アドレス情報保持部22を第2段とするパイプラインである。
なお、アービタ21には、さらにI/Oデバイス50が接続している。すなわち、I/Oデバイス50もアービタ21経由でL2キャッシュ30にアクセスする。
なお、本実施の形態にかかるパイプラインは2段であるが、パイプラインの段数はプロセッサ10とL2キャッシュ30の間の距離とサイクルタイムに応じて変更してもよい。
以下、アドレス情報保持部12A〜12H、アドレス情報保持部22およびアドレス情報保持部32をパイプラインレジスタとするパイプラインについて説明する。なお、説明を簡単にするため、まず1つのプロセッサ10のみがL2キャッシュ30に接続している場合について説明する。
図4は、アドレス情報保持部22のより詳細な構成を示す図である。アドレス情報保持部22は、パイプラインの1段分に相当する。なお、パイプラインの他の段の構成も同様である。アドレス情報保持部22は、マルチプレクサ(MUX)201と、ラッチ205と、フローコントロールを行うロジック回路203と、フリップフロップ204とを有している。なお、これらの協働により、管理装置の保持状態保持手段、隣段保持状態特定手段および転送制御手段が実現される。
ロジック回路203は、pstat端子と、cstat端子と、fstat端子と、sel端子と、next端子とを有している。next端子は、1ビットのフリップフロップ204に接続されている。フリップフロップ204は、自身がアドレス情報を保持するか否かを示す保持状態を保持する。ここで、保持状態としては、アドレス情報を保持する場合には、保持状態として「f」を保持する。アドレス情報を保持しない場合には、保持状態として「e」を保持する。なお、「f」および「e」は、一般に「1」および「0」で表現できる。
ロジック回路203のpstat端子は、パイプラインの前段に接続されており、前段の状態情報「f」または「e」を入力とする。next端子は、自段の状態情報「f」または「e」をフリップフロップ204に出力する。フリップフロップ204は、next端子から入力された状態情報を、パイプラインの後段に出力する。
next端子から出力される情報は、次サイクルでの自段の状態情報を示している。この状態情報は、ロジック回路203のcstat端子の入力となる。fstat端子は、パイプラインの後段に接続されており、後段の状態情報「f」または「e」を入力とする。
sel端子は、マルチプレクサ201に接続され、マルチプレクサ201がアドレス情報を保持するか更新するかを示す「0」または「1」の情報を出力する。アドレス情報はラッチ205に保存され、ラッチ205の情報は、フローコントロールにしたがい、マルチプレクサ201により保持または更新される。具体的には、sel端子の出力が0の場合(MUXが0の場合)には、ラッチ205は、アドレス情報を保持する。すなわち、これまで保持していたアドレス情報を再び保持する。sel端子の出力が1の場合(MUXが1の場合)には、アドレス情報を更新する。すなわち、パイプラインにおける前段の情報を保持する。
このように、消費電力を減らすべく、更新時のみアドレス情報が入れ替わり、ラッチ205の内容が変更される。MUXの回路は、さらに消費電力を減らすべく、ラッチに対するクロックゲーティングにより実現されてもよい。
なお、next端子の出力およびsel端子の出力は、pstat端子、cstat端子およびfstat端子の入力に基づいて決定される。
図5は、ロジック回路203のロジックを示す図である。next端子の出力およびsel端子の出力値は、図5に示すロジックにより決定される。例えば、図6の2行目のpstat=f、cstat=e、fstat=eの場合には、sel=1およびnext=fとなる。すなわち、前段の情報を自段に入れると共に自段の状態をfに変更する。
また、7行目のpstat=e、cstat=f、fstat=eの場合には、sel=0となる。すなわち、自段の情報は前のサイクルのままで維持される。これはパイプラインの前段には情報がないため、新たな情報を自段に入力する必要が無く、消費電力を低減させるため前サイクルと同じ情報をキープしておくためである。
図6は、図5のロジックによるパイプラインの動作を説明するための図である。なお、図6の上から下に沿って、各パイプラインレジスタの保持状態が時系列に沿って変化する様子が示されている。図6に示すようにアドレス情報保持部12、アドレス情報保持部22およびアドレス情報保持部32をパイプラインレジスタとするパイプラインが構成される。
ここでは、アドレス情報保持部12、アドレス情報保持部22およびアドレス情報保持部32をそれぞれ第1段、第2段および第3段と称する。アドレス情報保持部12側、すなわちプロセッサ側をFrontendとし、L2キャッシュ30側をBackendとする。各パイプラインレジスタは、それぞれ自身すなわち自段の保持状態を保持している。
ここで、プロセッサ10からアドレス情報が送出され、このアドレス情報がL2キャッシュ30に転送される際の動作について説明する。図5に示すロジックにしたがい、プロセッサ10は、第1段が「e」のときのみアドレス情報を送出することができる。また、L2キャッシュ30には、第3段が「f」のときにアドレス情報が転送されてくる。
図6の最上段に示すように、初めの状態では、第1段から第3段は、いずれもアドレス情報を保持せず、したがって保持状態「e」を保持している。このとき、第1段の保持状態は「e」なので、プロセッサ10は、図5のロジックに基づいて、アドレス情報を送出することができる。プロセッサ10がアドレス情報を送出すると、第1段にコマンドが投入され、第1段の保持状態は、「e」から「f」に変更される。第2サイクルにおいては、第1段が保持するアドレス情報が第2段に送出される。これにしたがい、第2段の保持状態が「e」から「f」に変更され、第1段の保持状態が「f」から「e」に変更される。
なお、各段は、いずれも隣接する段の保持状態しか参照することができない。したがって、プロセッサ10からアドレス情報を送出できるのは2サイクルに1回となる。これにしたがい、第3サイクルにおいて、次のアドレス情報が送出され、第1段の保持状態が「e」から「f」に変更される。さらに第3サイクルにおいて、第2段のアドレス情報は、第3段に送出され、第3段の保持状態は「e」から「f」に変更され、第2段の保持状態は、「f」から「e」に変更される。
L2キャッシュ30は、例えばタグ情報の更新や内蔵EDRAM43や外部SDRAM44へのアクセスなど何らかの処理を行っている際には、アドレス情報を受け付けない。したがって、時間の経過とともに、パイプラインのBackend側にアドレス情報が詰まってくる。図6に示す例においては、第5サイクルにおいてfffの状態になる。この状態では、プロセッサ10は、アドレス情報を送出できない。
この状態のときに、L2キャッシュ30がアドレス情報をパイプラインから引き出すと、パイプライン上を埋めていたアドレス情報は順次L2キャッシュ30において処理される。そして、プロセッサ10がアドレス情報を送出できる状態になる。第6サイクル以降の各段にこのときの保持状態を示している。
以上のように、パイプラインの各段は、互いに隣接する段(前段および後段)とのみ通信し、アドレス情報の上書きが起こらないように制御する。
また、上述のように、パイプラインの各段が前段からのコマンドの存在の有無、次の段の情報の有無、さらには自段の状態に基づいて、自段の動作を決定する。また、前段から自段に対して送出されるコマンドは、自段から信号があったときに始めて送出されるのではなく、前段がコマンドを持つときは常に送出されるように制御されている。すなわち、自段から前段への信号は次のコマンドに切り替えが可能であることを示している信号である。この方式によりパイプライン間のレーテンシーを短くすることができる。
次に、パイプラインに複数のプロセッサが接続される構成について説明する。この場合には、プロセッサ間でのアービトレーションが必要である。図3に示すアービタ11A〜11Dがアービトレーションを行う。なお、ここでは、アービタ11Aについて説明するが他のアービタ11B〜11Dの構成および動作も同様である。
図7は、アービタ11Aの詳細な構成を示す図である。アービタ11Aは、プロセッサ10Aおよびプロセッサ10Bの2つのプロセッサからの入力のうち一方を選択する。なお、この選択においては、図4を参照しつつ説明したフローコントロール回路が利用される。アービタ11Aは、アービタ回路111と、フリップフロップ回路で構成された優先度保持部112と、OR回路113と、マルチプレクサ114とを有している。なお、他のアービタ11B〜11Dおよびアービタ21の構成も同様である。
アービタ回路111は、ptatA端子、ptatB端子、nprio端子、cprio端子、cstatA端子、cstatB端子、cstatf端子、sel端子を有している。
ptatA端子およびptatB端子は、それぞれ前段、すなわちプロセッサ10Aおよびプロセッサ10Bの保持状態を入力とする。cstatf端子は、後段の保持状態を入力とする。また、cstatA端子およびcstatB端子は、後段の状態を2つの前段に伝える。
また、優先度保持部112は、前回どちらを選択したかの履歴を示しており、優先度を示す情報を保持し、直前に選択した方の段の優先度が低くなるようにし、プロセッサ10Aおよびプロセッサ10Bの間の公平性を保つようにしてある。なお、優先度保持部112は、nprio端子の出力を入力とする。そして、cprio端子は、優先度保持部112の出力を入力とする。すなわち、前回選択されたのはどちらかを履歴として記憶し、次回の選択では前回と反対側がより選択されやすいように優先度を変更する。
マルチプレクサ114は、sel端子の出力に基づいて、プロセッサ10Aとプロセッサ10Bのうち一方のアドレス情報を選択する。sel端子の出力は、cprio端子からの入力の他、ptatA端子、ptatB端子およびcstatf端子の入力に基づいて決定される。
図8は、アービタ回路111のロジックを示す図である。図8の1行目の状態は、後段にアドレス情報が保持されている状態である。この場合には、sel端子は、前段のうちいずれを選択してもよいことを示す情報「x」が示されているが、実際の回路の出力は1または0のどちらかである。この場合には、マルチプレクサ114は、いずれか一方のアドレス情報を選択する。
また、2行目および3行目の状態のように、前段のうちいずれか一方の保持状態が「f」であって、かつ後段の保持状態が「e」である場合には、sel端子は、前段のうち保持状態が「f」の方の段を示す情報を出力する。
また、4行目、5行目に示すように前段の保持状態がともに「f」でありかつ後段の保持状態が「e」である場合には、優先度の高いほうの段を示す情報がsel端子より出力される。
また、nprio端子からの出力においては、前回の選択が履歴としてcprioから入力され、前回選択した段とは異なる段を優先して選択するための情報が出力される。例えば、2行目においては、sel端子において、プロセッサ10Bのアドレス情報を示す情報が出力されるので、nprioでは、プロセッサ10Aを優先する旨の情報が出力される。なお、「keep」は、優先度を変更しない旨を示している。
次に、アービタ11Aの物理的な配置位置について説明する。アービタ11Aは、パイプラインにおける前段と後段の中間付近に配置されている。例えば、図7に示す例では、プロセッサ10Aとパイプライン12Aの中間付近であって、かつプロセッサ10Bとパイプライン12Aの中間付近となる位置に配置されている。
図7に示す例においては、プロセッサ10Aおよびプロセッサ10Bからアービタ11Aを経由してパイプライン12Aに入る信号線のパスと、後段すなわちパイプライン12Aのフローコントローラ203からアービタ11Aを経由し、マルチプレクサ114を選択して再び後段すなわちパイプライン12Aに至る信号線のパスとが、共に1サイクルで行われる必要がある。これらのパスが同じディレイになるときが必要とするサイクルタイムが最小になる場合なので、上述のように、アービタ11Aは、プロセッサ10Aおよびプロセッサ10Bとパイプライン12Aの中間付近に配置されるのが望ましい。
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
図9−1および図9−2は、そうした第1の変更例を示す図である。本実施の形態にかかるバスシステム1は、2つのプロセッサに対するアービタ11を有したが、これを多段に構成し、2つ以上のアービトレーションを可能としてもよい。
図9−1は、3つのプロセッサのアービトレーションを可能とする構成である。また、図9−2は、5つのプロセッサのアービトレーションを可能とする構成である。このように、図7に示す基本構成を複数接続することにより、任意の数のプロセッサのアービトレーションを行うことができる。
また、第2の変更例としては、バスシステム1は、同一半導体基板上に形成されてもよい。また、他の例としては、複数のチップをモジュール上にまとめたマルチチップモジュールとして形成されてもよい。また、回路基板上に配置したシステムとして形成されてもよい。また、複数の基板をラックマウントして形成されてもよい。
また、第3の変更例としては、本実施の形態においては、アドレス情報またはコマンドをアービトレーションしながらプロセッサからメモリならびにI/Oデバイスに伝達する例を示したが、本実施の形態にかかるバスシステム1による制御方式をパイプラインで伝送するデータに適用してもよい。例えばメモリからプロセッサへのデータの転送などの用途にも使用することができる。
また、第4の変更例としては、本実施の形態にかかるバスシステム1においては、公平なアービトレーションを行ったが、用途によってはアービトレーションを固定としてもよい。また、他の例としては、重みをつけた選択でもよく、既知のアービトレーションアルゴリズムを適用すればよい。
実施の形態にかかるバスシステム1の全体構成を示す図である。 プロセッサ10A〜10Hと、L2キャッシュ30の物理的な位置関係を示す図である。 プロセッサ10A〜10Hと、L2キャッシュ30の接続関係をより詳細に示す図である。 パイプラインの各段のより詳細な構成を示す図である。 ロジック回路203のロジックを示す図である。 図5のロジックによるパイプラインの動作を説明するための図である。 アービタ11Aの詳細な構成を示す図である。 アービタ回路111のロジックを示す図である。 第1の変更例を示す図である。 第1の変更例を示す図である。
符号の説明
1 バスシステム
10A〜10H プロセッサ
11A,11B アービタ
12A,12B アドレス情報保持部
21 アービタ
22 アドレス情報保持部
30 L2キャッシュ
32 アドレス情報保持部
42 L3キャッシュ
43 内蔵EDRAM
44 外部SDRAM
50 I/Oデバイス
111 アービタ回路
112 優先度保持部
113 OR回路
114 マルチプレクサ
201 マルチプレクサ
203 ロジック回路
204 フリップフロップ
205 ラッチ

Claims (14)

  1. バスマスターとバススレーブの間で情報を転送するバス装置であって、
    前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタと、
    前記複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置と
    を備え、
    各管理装置は、
    当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、
    前記自段パイプラインレジスタに情報を送る前段パイプラインレジスタの前記保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定手段と、
    前記保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定手段が特定する前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有し、
    前記隣段保持状態特定手段には、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、
    前記隣段保持状態特定手段は、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力する
    ことを特徴とするバス装置。
  2. 前記バス装置は、複数のバスマスターと接続し、
    前記複数のバスマスターに対応する複数のパイプラインレジスタのうちから1つのパイプラインレジスタを選択し、選択したパイプラインレジスタからの情報を、前記複数のパイプラインレジスタからの情報が送出される後段パイプラインレジスタに送るアービタを備え、
    前記後段パイプラインレジスタに対応して設けられた管理装置の前記隣接保持状態特定手段は、前記アービタにより選択された前記パイプラインレジスタの前記保持状態を、前記前段パイプラインの前記保持状態として特定する
    ことを特徴とする請求項1に記載のバス装置。
  3. 前記アービタは、当該アービタの保持状態と、前記複数のパイプラインそれぞれの前記保持状態と前記後段パイプラインレジスタの前記保持状態とに基づいて、前記パイプラインレジスタを選択する
    ことを特徴とする請求項2に記載のバス装置。
  4. 前記アービタは、当該アービタによる過去の選択の履歴に基づいて、パイプラインを選択する
    ことを特徴とする請求項3に記載のバス装置。
  5. 前記アービタは、複数のパイプラインレジスタと、前記後段パイプラインレジスタの中間位置に配置される
    ことを特徴とする請求項2に記載のバス装置。
  6. 前記転送制御手段は、情報を保持していないことを前記自段パイプラインレジスタの前記保持状態が示し、情報を保持していることを前記前段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記後段パイプラインレジスタの前記保持状態が示しているときに、対応する前記パイプラインレジスタが保持している情報を転送すると決定する
    ことを特徴とする請求項1乃至5のいずれか一項に記載のバス装置。
  7. 前記転送制御手段は、情報を保持していることを前記自段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記前段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記後段パイプラインレジスタの前記保持状態が示しているときに、対応する前記パイプラインレジスタが保持している情報を転送しないと決定する
    ことを特徴とする請求項1乃至6のいずれか一項に記載のバス装置。
  8. バスマスターと、バススレーブと、前記バスマスターと前記バススレーブの間で情報を伝達するバス装置とを備えたバスシステムであって、
    前記バス装置は、
    前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタと、
    前記複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置と
    を備え、
    各管理装置は、
    当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、
    前記自段パイプラインレジスタに情報を送る前段パイプラインレジスタの前記保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定手段と、
    前記保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定手段が特定する前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有し、
    前記隣段保持状態特定手段には、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、
    前記隣段保持状態特定手段は、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力する
    ことを特徴とするバスシステム。
  9. 前記バスマスターは、接続しているパイプラインレジスタの前記保持状態に基づいて、情報を送出するか否かを決定する
    ことを特徴とする請求項に記載のバスシステム。
  10. 前記バススレーブは、当該バススレーブが情報を保持するか否かに基づいて、接続しているパイプラインレジスタから情報を取得するか否かを決定する
    ことを特徴とする請求項に記載のバスシステム。
  11. 前記バススレーブは、接続しているパイプラインレジスタの前記保持状態に基づいて、前記情報を取得するか否かを決定することを特徴とする請求項に記載のバスシステム。
  12. 前記転送制御手段は、情報を保持していないことを前記自段パイプラインレジスタの前記保持状態が示し、情報を保持していることを前記前段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記後段パイプラインレジスタの前記保持状態が示しているときに、対応する前記パイプラインレジスタが保持している情報を転送すると決定する
    ことを特徴とする請求項8乃至11のいずれか一項に記載のバスシステム。
  13. 前記転送制御手段は、情報を保持していることを前記自段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記前段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記後段パイプラインレジスタの前記保持状態が示しているときに、対応する前記パイプラインレジスタが保持している情報を転送しないと決定する
    ことを特徴とする請求項8乃至12のいずれか一項に記載のバスシステム。
  14. バスマスターとバススレーブの間で情報を転送するバス装置における情報転送方法であって、
    前記バス装置は、
    を前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置それぞれが、
    各管理装置に対応する自段パイプラインレジスタに情報を送る前段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定ステップと、
    当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定ステップにおいて特定した前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御ステップとを有し、
    前記隣段保持状態特定ステップでは、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力する
    ことを特徴とする情報転送方法。
JP2006043182A 2006-02-20 2006-02-20 バス装置、バスシステムおよび情報転送方法 Expired - Fee Related JP4621604B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006043182A JP4621604B2 (ja) 2006-02-20 2006-02-20 バス装置、バスシステムおよび情報転送方法
US11/517,327 US7818546B2 (en) 2006-02-20 2006-09-08 Pipeline processing communicating adjacent stages and controls to prevent the address information from being overwritten
CN200710005846A CN100576811C (zh) 2006-02-20 2007-02-25 总线装置、总线***和信息传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006043182A JP4621604B2 (ja) 2006-02-20 2006-02-20 バス装置、バスシステムおよび情報転送方法

Publications (2)

Publication Number Publication Date
JP2007220046A JP2007220046A (ja) 2007-08-30
JP4621604B2 true JP4621604B2 (ja) 2011-01-26

Family

ID=38429732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006043182A Expired - Fee Related JP4621604B2 (ja) 2006-02-20 2006-02-20 バス装置、バスシステムおよび情報転送方法

Country Status (3)

Country Link
US (1) US7818546B2 (ja)
JP (1) JP4621604B2 (ja)
CN (1) CN100576811C (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595394B1 (en) * 2003-06-26 2013-11-26 Nvidia Corporation Method and system for dynamic buffering of disk I/O command chains
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
JP4521678B2 (ja) * 2007-11-19 2010-08-11 フェリカネットワークス株式会社 通信システム、情報処理方法、プログラム、及び情報処理装置
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
JP2010165175A (ja) * 2009-01-15 2010-07-29 Internatl Business Mach Corp <Ibm> バスの使用権を制御する装置および方法
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
WO2010134252A1 (ja) 2009-05-18 2010-11-25 日本電気株式会社 通信回路および通信方法
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553806A (ja) * 1991-04-05 1993-03-05 Toshiba Corp 並列処理制御装置
JPH0683731A (ja) * 1992-09-02 1994-03-25 Sharp Corp 自己同期型転送制御回路
JPH06149731A (ja) * 1992-11-06 1994-05-31 Hitachi Ltd マイクロコンピュータシステム
JP2001167049A (ja) * 1999-12-13 2001-06-22 Matsushita Electric Ind Co Ltd バス調停装置
JP2001306546A (ja) * 2000-04-27 2001-11-02 Sharp Corp データ駆動型情報処理装置
JP2003157227A (ja) * 2001-11-20 2003-05-30 Nec Corp バスアクセス調停装置及びバスアクセス調停方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748613A (en) * 1996-03-29 1998-05-05 Hewlett-Packard Company Communication pacing method
US6657955B1 (en) * 1999-05-27 2003-12-02 Alcatel Canada Inc. Buffering system employing per traffic flow accounting congestion control
US20040133745A1 (en) * 2002-10-28 2004-07-08 Quicksilver Technology, Inc. Adaptable datapath for a digital processing system
US7131017B2 (en) * 2002-08-16 2006-10-31 Carnegie Mellon University Programmable pipeline fabric having mechanism to terminate signal propagation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553806A (ja) * 1991-04-05 1993-03-05 Toshiba Corp 並列処理制御装置
JPH0683731A (ja) * 1992-09-02 1994-03-25 Sharp Corp 自己同期型転送制御回路
JPH06149731A (ja) * 1992-11-06 1994-05-31 Hitachi Ltd マイクロコンピュータシステム
JP2001167049A (ja) * 1999-12-13 2001-06-22 Matsushita Electric Ind Co Ltd バス調停装置
JP2001306546A (ja) * 2000-04-27 2001-11-02 Sharp Corp データ駆動型情報処理装置
JP2003157227A (ja) * 2001-11-20 2003-05-30 Nec Corp バスアクセス調停装置及びバスアクセス調停方法

Also Published As

Publication number Publication date
CN100576811C (zh) 2009-12-30
US20070198758A1 (en) 2007-08-23
US7818546B2 (en) 2010-10-19
CN101026526A (zh) 2007-08-29
JP2007220046A (ja) 2007-08-30

Similar Documents

Publication Publication Date Title
JP4621604B2 (ja) バス装置、バスシステムおよび情報転送方法
US7269709B2 (en) Memory controller configurable to allow bandwidth/latency tradeoff
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6182183B1 (en) Communications system and method with multilevel connection identification
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US7246191B2 (en) Method and apparatus for memory interface
US7353310B2 (en) Hierarchical memory access via pipelining with deferred arbitration
KR100814904B1 (ko) 칩 내부 회로 간의 데이터 전송을 위한 통신 시스템
US7930462B2 (en) Interface controller that has flexible configurability and low cost
US7783817B2 (en) Method and apparatus for conditional broadcast of barrier operations
US7007111B2 (en) DMA port sharing bandwidth balancing logic
US7480201B2 (en) Daisy chainable memory chip
JPH0981508A (ja) 通信方法及び装置
US20070156937A1 (en) Data transfer in multiprocessor system
JP5356024B2 (ja) 部分的にポピュレートされる階層型クロスバ
US8284792B2 (en) Buffer minimization in interface controller
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US20080028125A1 (en) Computer System Having an Apportionable Data Bus
US9858222B2 (en) Register access control among multiple devices
JP2022002164A (ja) 非順次的ページ連続リード
TW202032383A (zh) 可重組態資料處理器的組態加載和卸載
JP2012178637A (ja) 記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101005

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101101

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees