説明

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

【課題】システムの周波数を向上させることのできるバス装置を提供する。
【解決手段】バスマスターとバススレーブの間で情報を転送するバス装置であって、複数のパイプラインレジスタ10A〜10H,20,30と、各パイプラインレジスタ10A〜10H,20,30を管理する複数の管理装置10A〜10H,20,30とを備え、各管理装置は、自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、前段パイプラインレジスタの保持状態と、後段パイプラインレジスタの保持状態を特定する隣段保持状態特定手段と、自段パイプラインレジスタの保持状態と、前段パイプラインレジスタの保持状態および後段パイプラインレジスタの保持状態とに基づいて、対応するパイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有する。

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

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

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9−1】
image rotate

【図9−2】
image rotate


【公開番号】特開2007−220046(P2007−220046A)
【公開日】平成19年8月30日(2007.8.30)
【国際特許分類】
【出願番号】特願2006−43182(P2006−43182)
【出願日】平成18年2月20日(2006.2.20)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】