(57)【特許請求の範囲】
【請求項１】
バスマスターとバススレーブの間で情報を転送するバス装置であって、
前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタと、
前記複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置と
を備え、
各管理装置は、
当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、
前記自段パイプラインレジスタに情報を送る前段パイプラインレジスタの前記保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定手段と、
前記保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定手段が特定する前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有し、
前記隣段保持状態特定手段には、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、
前記隣段保持状態特定手段は、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力する
ことを特徴とするバス装置。
【請求項２】
前記バス装置は、複数のバスマスターと接続し、
前記複数のバスマスターに対応する複数のパイプラインレジスタのうちから１つのパイプラインレジスタを選択し、選択したパイプラインレジスタからの情報を、前記複数のパイプラインレジスタからの情報が送出される後段パイプラインレジスタに送るアービタを備え、
前記後段パイプラインレジスタに対応して設けられた管理装置の前記隣接保持状態特定手段は、前記アービタにより選択された前記パイプラインレジスタの前記保持状態を、前記前段パイプラインの前記保持状態として特定する
ことを特徴とする請求項１に記載のバス装置。
【請求項３】
前記アービタは、当該アービタの保持状態と、前記複数のパイプラインそれぞれの前記保持状態と前記後段パイプラインレジスタの前記保持状態とに基づいて、前記パイプラインレジスタを選択する
ことを特徴とする請求項２に記載のバス装置。
【請求項４】
前記アービタは、当該アービタによる過去の選択の履歴に基づいて、パイプラインを選択する
ことを特徴とする請求項３に記載のバス装置。
【請求項５】
前記アービタは、複数のパイプラインレジスタと、前記後段パイプラインレジスタの中間位置に配置される
ことを特徴とする請求項２に記載のバス装置。
【請求項６】
前記転送制御手段は、情報を保持していないことを前記自段パイプラインレジスタの前記保持状態が示し、情報を保持していることを前記前段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記後段パイプラインレジスタの前記保持状態が示しているときに、対応する前記パイプラインレジスタが保持している情報を転送すると決定する
ことを特徴とする請求項１乃至５のいずれか一項に記載のバス装置。
【請求項７】
前記転送制御手段は、情報を保持していることを前記自段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記前段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記後段パイプラインレジスタの前記保持状態が示しているときに、対応する前記パイプラインレジスタが保持している情報を転送しないと決定する
ことを特徴とする請求項１乃至６のいずれか一項に記載のバス装置。
【請求項８】
バスマスターと、バススレーブと、前記バスマスターと前記バススレーブの間で情報を伝達するバス装置とを備えたバスシステムであって、
前記バス装置は、
前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタと、
前記複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置と
を備え、
各管理装置は、
当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、
前記自段パイプラインレジスタに情報を送る前段パイプラインレジスタの前記保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定手段と、
前記保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定手段が特定する前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有し、
前記隣段保持状態特定手段には、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、
前記隣段保持状態特定手段は、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力する
ことを特徴とするバスシステム。
【請求項９】
前記バスマスターは、接続しているパイプラインレジスタの前記保持状態に基づいて、情報を送出するか否かを決定する
ことを特徴とする請求項８に記載のバスシステム。
【請求項１０】
前記バススレーブは、当該バススレーブが情報を保持するか否かに基づいて、接続しているパイプラインレジスタから情報を取得するか否かを決定する
ことを特徴とする請求項８に記載のバスシステム。
【請求項１１】
前記バススレーブは、接続しているパイプラインレジスタの前記保持状態に基づいて、前記情報を取得するか否かを決定することを特徴とする請求項８に記載のバスシステム。
【請求項１２】
前記転送制御手段は、情報を保持していないことを前記自段パイプラインレジスタの前記保持状態が示し、情報を保持していることを前記前段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記後段パイプラインレジスタの前記保持状態が示しているときに、対応する前記パイプラインレジスタが保持している情報を転送すると決定する
ことを特徴とする請求項８乃至１１のいずれか一項に記載のバスシステム。
【請求項１３】
前記転送制御手段は、情報を保持していることを前記自段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記前段パイプラインレジスタの前記保持状態が示し、情報を保持していないことを前記後段パイプラインレジスタの前記保持状態が示しているときに、対応する前記パイプラインレジスタが保持している情報を転送しないと決定する
ことを特徴とする請求項８乃至１２のいずれか一項に記載のバスシステム。
【請求項１４】
バスマスターとバススレーブの間で情報を転送するバス装置における情報転送方法であって、
前記バス装置は、
を前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置それぞれが、
各管理装置に対応する自段パイプラインレジスタに情報を送る前段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定ステップと、
当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定ステップにおいて特定した前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御ステップとを有し、
前記隣段保持状態特定ステップでは、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力する
ことを特徴とする情報転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスマスターとバススレーブの間で情報を転送するバス装置、バスシステムおよび情報転送方法に関するものである。
【背景技術】
【０００２】
半導体技術の向上と共にシステムの動作周波数が向上している。しかし、配線によるディレイは動作周波数の向上に応じて短縮されているとは言い難い。特に配線を半導体基板上に形成した場合、微細化により配線の線幅は細くなり、それによる配線の抵抗値の増大は配線容量の縮小効果を上回る場合があり、微細化の割合に従ってディレイが短くなるわけではない。
【０００３】
半導体基板上に複数のプロセッサ、メモリおよびＩ／Ｏデバイスを集積し、システムを構成するシステムオンシリコンが広く使われるようになった。しかし、周波数の向上と、上記に述べたような微細化による配線ディレイにより、１サイクル中にプロセッサからメモリやＩ／Ｏデバイスに信号を伝達することが難しくなってきている。
【０００４】
従来の方式では、プロセッサとメモリやＩ／Ｏデバイスをバスで接続する場合、まずメモリやＩ／Ｏデバイスがアドレスを受け付けるか否かの情報をプロセッサ側に伝達する。そして、プロセッサはその情報に基づいてアドレスを伝送する。しかし、動作周波数の向上にともない、プロセッサとメモリやＩ／Ｏデバイスの接続が１サイクルで伝達できず、複数サイクルかかってしまう場合が生じている。
【０００５】
通信の分野においては、送信元と受信先が距離的に離れており、情報の伝送に複数サイクルかかることが前提になっている。そこで、システムの周波数を向上すべく、例えば、受信先に一定量のバッファを設け、送信側ではバッファ量に相当するクレジットという値を管理し、受信側バッファのオーバーフローを防ぐ方法が開示されている（例えば、「特許文献１」参照）。
【０００６】
【特許文献１】米国特許第５７４８６１３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のように、プロセッサとメモリやＩ／Ｏデバイスの接続が１サイクルで伝達できず、複数サイクルかかるようになるとプロセッサとメモリの間にはパイプライン構造を導入する必要がある。
【０００８】
ただし、この場合でも、メモリやＩ／Ｏデバイスがアドレスを受け付けられなくなったという信号をプロセッサ側に返す場合にも複数サイクル必要となる。したがって、パイプライン構造を導入したとしても、受け付けられないという信号がプロセッサに伝達されたときには既にプロセッサからは複数のアドレス情報が送出されている可能性がある。
【０００９】
一方、上述のクレジット方式の通信においては、一定のペースでコマンドを送信元から受信先へ送る場合には、レーテンシーに応じたバッファを用意する必要があり、余分な資源を浪費してしまう。
【００１０】
例えばバスマスターからバススレーブへはｔサイクル、バススレーブからバスマスターへも同様にｔサイクルかかるとする。この場合には、バスマスター側に存在するクレジットの値が更新されるまで２ｔサイクルかかることになる。すなわち、バスマスターがｎサイクルに１回のペースでコマンドを送れる場合は２ｔ／ｎ個のコマンドに対するバッファがスレーブ側に存在しなければならない。逆にバッファの数が１個しかない場合は２ｔサイクルに１回しかコマンドが送れないこととなり、バンド幅が著しく制限されてしまう。
【００１１】
さらに、複数のバスマスターがバススレーブに対してコマンドを送る従来方式においては、アービタは集中して存在するのが一般的である。しかし、システムの動作周波数が高い場合は複数のプロセッサからアービタへ１サイクルで信号を伝達することができない場合がある。この場合には、アービタは分散して配置する必要がある。
【００１２】
一方で、すでに述べたように、スレーブ（メモリやＩ／Ｏデバイス）のバッファに上書きするのを防止するためのフローコントロールのメカニズムが必要である。クレジットベースのフローコントロールではクレジット情報のやり取りが一対のバスマスター（プロセッサ）とスレーブに限定される。したがって、複数のバスマスターを扱うためには、バススレーブはバスマスターごとにクレジットの管理とバスマスターごとのバッファを設けなければならず、資源を浪費してしまう。
【００１３】
本発明は、上記に鑑みてなされたものであって、１サイクルで信号を伝達することができない場合であっても、確実に情報を送信することができ、かつシステムの周波数を向上させることのできるバス装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本発明は、バスマスターとバススレーブの間で情報を転送するバス装置であって、前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタと、前記複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置とを備え、各管理装置は、当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、前記自段パイプラインレジスタに情報を送る前段パイプラインレジスタの前記保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定手段と、前記保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定手段が特定する前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有し、前記隣段保持状態特定手段には、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、前記隣段保持状態特定手段は、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力することを特徴とする。
【００１５】
また、本発明の他の形態は、バスマスターと、バススレーブと、前記バスマスターと前記バススレーブの間で情報を伝達するバス装置とを備えたバスシステムであって、前記バス装置は、前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタと、前記複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置とを備え、各管理装置は、当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段と、前記自段パイプラインレジスタに情報を送る前段パイプラインレジスタの前記保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定手段と、前記保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定手段が特定する前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御手段とを有し、前記隣段保持状態特定手段には、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、前記隣段保持状態特定手段は、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力することを特徴とする。
【００１６】
また、本発明の他の形態は、バスマスターとバススレーブの間で情報を転送するバス装置における情報転送方法であって、前記バス装置は、を前記バスマスターから前記バススレーブに向けて、パイプラインにより情報を送信可能な複数のパイプラインレジスタそれぞれに対応して設けられ、各パイプラインレジスタを管理する複数の管理装置それぞれが、各管理装置に対応する自段パイプラインレジスタに情報を送る前段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態と、前記自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの前記保持状態を特定する隣段保持状態特定ステップと、当該管理装置に対応する自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持する保持状態保持手段が保持する前記自段パイプラインレジスタの前記保持状態と、前記隣段保持状態特定ステップにおいて特定した前記前段パイプラインレジスタの前記保持状態および前記後段パイプラインレジスタの前記保持状態とに基づいて、対応する前記パイプラインレジスタが保持する情報を転送するか否かを決定する転送制御ステップとを有し、前記隣段保持状態特定ステップでは、前記前段パイプラインレジスタの前記保持状態及び前記後段パイプラインレジスタの前記保持状態が入力され、前記自段パイプラインレジスタの前記保持状態を前記前段パイプラインレジスタ及び前記後段パイプラインレジスタに出力することを特徴とする。
【発明の効果】
【００１７】
本発明にかかるバス装置は、各パイプラインレジスタに対応して設けられた管理装置の保持状態保持手段が、自段パイプラインレジスタが情報を保持するか否かを示す情報である保持状態を保持し、隣段保持状態特定手段が、自段パイプラインレジスタに情報を送る前段パイプラインレジスタの保持状態と、自段パイプラインレジスタからの情報が送出される後段パイプラインレジスタの保持状態を特定し、転送制御手段が、自段パイプラインレジスタの保持状態と、前段パイプラインレジスタの保持状態および後段パイプラインレジスタの保持状態とに基づいて、対応するパイプラインレジスタが保持する情報を転送するか否かを決定するので、１サイクルで信号を伝達することができない場合であっても、確実に情報を送信することができ、かつシステムの周波数を向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下に、本発明にかかるバス装置、バスシステムおよび情報転送方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１９】
図１は、実施の形態にかかるバスシステム１の全体構成を示す図である。バスシステム１は、８つのプロセッサ１０Ａ〜１０Ｈと、Ｉ／Ｏデバイス５０と、Ｌ２（レベル２）キャッシュ３０と、メモリコントローラ４０と、内蔵ＥＤＲＡＭ４３と、外部ＳＤＲＡＭ４４とを備えている。メモリコントローラ４０は、Ｌ３（レベル３）キャッシュ４２を有している。８つのプロセッサ１０Ａ〜１０Ｈは、Ｌ２キャッシュ３０に接続している。さらに、Ｉ／Ｏデバイス５０がＬ２キャッシュ３０に接続している。Ｌ２キャッシュ２０は、さらにメモリコントローラ４０に接続している。
【００２０】
アドレス情報は、プロセッサ１０Ａ〜１０Ｈから、Ｌ２キャッシュ３０に伝達される。Ｌ２キャッシュ３０は、プロセッサ１０Ａ〜１０Ｈから要求される情報がＬ２キャッシュ３０にキャッシュされているかどうかをチェックし、チェックの結果に応じて所定の動作を行う。キャッシュされていない場合には、メモリコントローラ４０がＬ３キャッシュ４２にアクセスする。Ｌ３キャッシュ４２にキャッシュされていない場合はアドレスに応じて内蔵ＥＤＲＡＭ４３および外部ＳＤＲＡＭ４４をアクセスする。すなわち、実施の形態にかかる８つのプロセッサ１０Ａ〜１０Ｈは、バスにおけるマスターデバイスに相当する。Ｌ２キャッシュ３０は、バスにおけるスレーブデバイスに相当する。なお、バスシステム１はＬ３キャッシュや、Ｌ２キャッシュは有さなくともよい。
【００２１】
なお、アドレス情報には、プロセッサが要求するメモリのアドレスの他、コマンドの種類（ＲｅａｄまたはＷｒｉｔｅなど）、データ転送の大きさ（キャッシュラインまたはバイトなど）などの情報が含まれており、これらの情報が同時に転送される。
【００２２】
図２は、プロセッサ１０Ａ〜１０Ｈと、Ｌ２キャッシュ３０の物理的な位置関係を示す図である。図２に示すように、プロセッサ１０ＡとＬ２キャッシュ３０は、５ｍｍ程度離れて配置されている。したがって、バスのクロックサイクルが５００ＭＨｚで配線は１サイクル中に２．５ｍｍ程度しか到達しないとした場合には、プロセッサ１０ＡからＬ２キャッシュ３０へは少なくとも２段のパイプラインを設置する必要がある。さらに、パイプライン中のラッチやクロックスキューなどの余裕を考慮した場合には、さらに多くの段のパイプラインを必要とする。
【００２３】
仮に、バスをパイプライン構成にしない場合は、次のような制約を設けなければならない。すなわち、一つの方法としては、バスの周波数はそのままで、システムを１サイクルで到達するだけの大きさに制限する。また他の方法としては、バスの周波数を低下させる。この２つの制約ではシステムの規模を限定したり、バスのスループットを制約したりするので性能に対するインパクトが大きく、望ましくない。
【００２４】
図３は、プロセッサ１０Ａ〜１０Ｈと、Ｌ２キャッシュ３０の接続関係をより詳細に示す図である。図３に示すように、２つのプロセッサ１０Ａ，１０Ｂは、アービタ１１Ａに接続し、さらに、フリップフロップで構成されたアドレス情報保持部１２Ａに接続している。同様に、他のプロセッサ１０Ｃ〜１０Ｈも、アービタ１１Ｂ〜１１Ｄおよびアドレス情報保持部１２Ｂ〜１２Ｄに接続している。また、各アドレス情報保持部１２Ａ〜１２Ｄは、アービタ２１を経由してアドレス情報保持部２２に接続している。
【００２５】
この構成において、プロセッサ１０Ａ〜１０ＨからＬ２キャッシュ３０までの間には、パイプラインが２段存在する。各プロセッサ１０Ａ〜１０Ｈが有するアドレス情報保持部１２Ａ〜１２Ｈを第１段とし、アドレス情報保持部２２を第２段とするパイプラインである。
【００２６】
なお、アービタ２１には、さらにＩ／Ｏデバイス５０が接続している。すなわち、Ｉ／Ｏデバイス５０もアービタ２１経由でＬ２キャッシュ３０にアクセスする。
【００２７】
なお、本実施の形態にかかるパイプラインは２段であるが、パイプラインの段数はプロセッサ１０とＬ２キャッシュ３０の間の距離とサイクルタイムに応じて変更してもよい。
【００２８】
以下、アドレス情報保持部１２Ａ〜１２Ｈ、アドレス情報保持部２２およびアドレス情報保持部３２をパイプラインレジスタとするパイプラインについて説明する。なお、説明を簡単にするため、まず１つのプロセッサ１０のみがＬ２キャッシュ３０に接続している場合について説明する。
【００２９】
図４は、アドレス情報保持部２２のより詳細な構成を示す図である。アドレス情報保持部２２は、パイプラインの１段分に相当する。なお、パイプラインの他の段の構成も同様である。アドレス情報保持部２２は、マルチプレクサ（ＭＵＸ）２０１と、ラッチ２０５と、フローコントロールを行うロジック回路２０３と、フリップフロップ２０４とを有している。なお、これらの協働により、管理装置の保持状態保持手段、隣段保持状態特定手段および転送制御手段が実現される。
【００３０】
ロジック回路２０３は、ｐｓｔａｔ端子と、ｃｓｔａｔ端子と、ｆｓｔａｔ端子と、ｓｅｌ端子と、ｎｅｘｔ端子とを有している。ｎｅｘｔ端子は、１ビットのフリップフロップ２０４に接続されている。フリップフロップ２０４は、自身がアドレス情報を保持するか否かを示す保持状態を保持する。ここで、保持状態としては、アドレス情報を保持する場合には、保持状態として「ｆ」を保持する。アドレス情報を保持しない場合には、保持状態として「ｅ」を保持する。なお、「ｆ」および「ｅ」は、一般に「１」および「０」で表現できる。
【００３１】
ロジック回路２０３のｐｓｔａｔ端子は、パイプラインの前段に接続されており、前段の状態情報「ｆ」または「ｅ」を入力とする。ｎｅｘｔ端子は、自段の状態情報「ｆ」または「ｅ」をフリップフロップ２０４に出力する。フリップフロップ２０４は、ｎｅｘｔ端子から入力された状態情報を、パイプラインの後段に出力する。
【００３２】
ｎｅｘｔ端子から出力される情報は、次サイクルでの自段の状態情報を示している。この状態情報は、ロジック回路２０３のｃｓｔａｔ端子の入力となる。ｆｓｔａｔ端子は、パイプラインの後段に接続されており、後段の状態情報「ｆ」または「ｅ」を入力とする。
【００３３】
ｓｅｌ端子は、マルチプレクサ２０１に接続され、マルチプレクサ２０１がアドレス情報を保持するか更新するかを示す「０」または「１」の情報を出力する。アドレス情報はラッチ２０５に保存され、ラッチ２０５の情報は、フローコントロールにしたがい、マルチプレクサ２０１により保持または更新される。具体的には、ｓｅｌ端子の出力が０の場合（ＭＵＸが０の場合）には、ラッチ２０５は、アドレス情報を保持する。すなわち、これまで保持していたアドレス情報を再び保持する。ｓｅｌ端子の出力が１の場合（ＭＵＸが１の場合）には、アドレス情報を更新する。すなわち、パイプラインにおける前段の情報を保持する。
【００３４】
このように、消費電力を減らすべく、更新時のみアドレス情報が入れ替わり、ラッチ２０５の内容が変更される。ＭＵＸの回路は、さらに消費電力を減らすべく、ラッチに対するクロックゲーティングにより実現されてもよい。
【００３５】
なお、ｎｅｘｔ端子の出力およびｓｅｌ端子の出力は、ｐｓｔａｔ端子、ｃｓｔａｔ端子およびｆｓｔａｔ端子の入力に基づいて決定される。
【００３６】
図５は、ロジック回路２０３のロジックを示す図である。ｎｅｘｔ端子の出力およびｓｅｌ端子の出力値は、図５に示すロジックにより決定される。例えば、図６の２行目のｐｓｔａｔ＝ｆ、ｃｓｔａｔ＝ｅ、ｆｓｔａｔ＝ｅの場合には、ｓｅｌ＝１およびｎｅｘｔ＝ｆとなる。すなわち、前段の情報を自段に入れると共に自段の状態をｆに変更する。
【００３７】
また、７行目のｐｓｔａｔ＝ｅ、ｃｓｔａｔ＝ｆ、ｆｓｔａｔ＝ｅの場合には、ｓｅｌ＝０となる。すなわち、自段の情報は前のサイクルのままで維持される。これはパイプラインの前段には情報がないため、新たな情報を自段に入力する必要が無く、消費電力を低減させるため前サイクルと同じ情報をキープしておくためである。
【００３８】
図６は、図５のロジックによるパイプラインの動作を説明するための図である。なお、図６の上から下に沿って、各パイプラインレジスタの保持状態が時系列に沿って変化する様子が示されている。図６に示すようにアドレス情報保持部１２、アドレス情報保持部２２およびアドレス情報保持部３２をパイプラインレジスタとするパイプラインが構成される。
【００３９】
ここでは、アドレス情報保持部１２、アドレス情報保持部２２およびアドレス情報保持部３２をそれぞれ第１段、第２段および第３段と称する。アドレス情報保持部１２側、すなわちプロセッサ側をＦｒｏｎｔｅｎｄとし、Ｌ２キャッシュ３０側をＢａｃｋｅｎｄとする。各パイプラインレジスタは、それぞれ自身すなわち自段の保持状態を保持している。
【００４０】
ここで、プロセッサ１０からアドレス情報が送出され、このアドレス情報がＬ２キャッシュ３０に転送される際の動作について説明する。図５に示すロジックにしたがい、プロセッサ１０は、第１段が「ｅ」のときのみアドレス情報を送出することができる。また、Ｌ２キャッシュ３０には、第３段が「ｆ」のときにアドレス情報が転送されてくる。
【００４１】
図６の最上段に示すように、初めの状態では、第１段から第３段は、いずれもアドレス情報を保持せず、したがって保持状態「ｅ」を保持している。このとき、第１段の保持状態は「ｅ」なので、プロセッサ１０は、図５のロジックに基づいて、アドレス情報を送出することができる。プロセッサ１０がアドレス情報を送出すると、第１段にコマンドが投入され、第１段の保持状態は、「ｅ」から「ｆ」に変更される。第２サイクルにおいては、第１段が保持するアドレス情報が第２段に送出される。これにしたがい、第２段の保持状態が「ｅ」から「ｆ」に変更され、第１段の保持状態が「ｆ」から「ｅ」に変更される。
【００４２】
なお、各段は、いずれも隣接する段の保持状態しか参照することができない。したがって、プロセッサ１０からアドレス情報を送出できるのは２サイクルに１回となる。これにしたがい、第３サイクルにおいて、次のアドレス情報が送出され、第１段の保持状態が「ｅ」から「ｆ」に変更される。さらに第３サイクルにおいて、第２段のアドレス情報は、第３段に送出され、第３段の保持状態は「ｅ」から「ｆ」に変更され、第２段の保持状態は、「ｆ」から「ｅ」に変更される。
【００４３】
Ｌ２キャッシュ３０は、例えばタグ情報の更新や内蔵ＥＤＲＡＭ４３や外部ＳＤＲＡＭ４４へのアクセスなど何らかの処理を行っている際には、アドレス情報を受け付けない。したがって、時間の経過とともに、パイプラインのＢａｃｋｅｎｄ側にアドレス情報が詰まってくる。図６に示す例においては、第５サイクルにおいてｆｆｆの状態になる。この状態では、プロセッサ１０は、アドレス情報を送出できない。
【００４４】
この状態のときに、Ｌ２キャッシュ３０がアドレス情報をパイプラインから引き出すと、パイプライン上を埋めていたアドレス情報は順次Ｌ２キャッシュ３０において処理される。そして、プロセッサ１０がアドレス情報を送出できる状態になる。第６サイクル以降の各段にこのときの保持状態を示している。
【００４５】
以上のように、パイプラインの各段は、互いに隣接する段（前段および後段）とのみ通信し、アドレス情報の上書きが起こらないように制御する。
【００４６】
また、上述のように、パイプラインの各段が前段からのコマンドの存在の有無、次の段の情報の有無、さらには自段の状態に基づいて、自段の動作を決定する。また、前段から自段に対して送出されるコマンドは、自段から信号があったときに始めて送出されるのではなく、前段がコマンドを持つときは常に送出されるように制御されている。すなわち、自段から前段への信号は次のコマンドに切り替えが可能であることを示している信号である。この方式によりパイプライン間のレーテンシーを短くすることができる。
【００４７】
次に、パイプラインに複数のプロセッサが接続される構成について説明する。この場合には、プロセッサ間でのアービトレーションが必要である。図３に示すアービタ１１Ａ〜１１Ｄがアービトレーションを行う。なお、ここでは、アービタ１１Ａについて説明するが他のアービタ１１Ｂ〜１１Ｄの構成および動作も同様である。
【００４８】
図７は、アービタ１１Ａの詳細な構成を示す図である。アービタ１１Ａは、プロセッサ１０Ａおよびプロセッサ１０Ｂの２つのプロセッサからの入力のうち一方を選択する。なお、この選択においては、図４を参照しつつ説明したフローコントロール回路が利用される。アービタ１１Ａは、アービタ回路１１１と、フリップフロップ回路で構成された優先度保持部１１２と、ＯＲ回路１１３と、マルチプレクサ１１４とを有している。なお、他のアービタ１１Ｂ〜１１Ｄおよびアービタ２１の構成も同様である。
【００４９】
アービタ回路１１１は、ｐｔａｔＡ端子、ｐｔａｔＢ端子、ｎｐｒｉｏ端子、ｃｐｒｉｏ端子、ｃｓｔａｔＡ端子、ｃｓｔａｔＢ端子、ｃｓｔａｔｆ端子、ｓｅｌ端子を有している。
【００５０】
ｐｔａｔＡ端子およびｐｔａｔＢ端子は、それぞれ前段、すなわちプロセッサ１０Ａおよびプロセッサ１０Ｂの保持状態を入力とする。ｃｓｔａｔｆ端子は、後段の保持状態を入力とする。また、ｃｓｔａｔＡ端子およびｃｓｔａｔＢ端子は、後段の状態を２つの前段に伝える。
【００５１】
また、優先度保持部１１２は、前回どちらを選択したかの履歴を示しており、優先度を示す情報を保持し、直前に選択した方の段の優先度が低くなるようにし、プロセッサ１０Ａおよびプロセッサ１０Ｂの間の公平性を保つようにしてある。なお、優先度保持部１１２は、ｎｐｒｉｏ端子の出力を入力とする。そして、ｃｐｒｉｏ端子は、優先度保持部１１２の出力を入力とする。すなわち、前回選択されたのはどちらかを履歴として記憶し、次回の選択では前回と反対側がより選択されやすいように優先度を変更する。
【００５２】
マルチプレクサ１１４は、ｓｅｌ端子の出力に基づいて、プロセッサ１０Ａとプロセッサ１０Ｂのうち一方のアドレス情報を選択する。ｓｅｌ端子の出力は、ｃｐｒｉｏ端子からの入力の他、ｐｔａｔＡ端子、ｐｔａｔＢ端子およびｃｓｔａｔｆ端子の入力に基づいて決定される。
【００５３】
図８は、アービタ回路１１１のロジックを示す図である。図８の１行目の状態は、後段にアドレス情報が保持されている状態である。この場合には、ｓｅｌ端子は、前段のうちいずれを選択してもよいことを示す情報「ｘ」が示されているが、実際の回路の出力は１または０のどちらかである。この場合には、マルチプレクサ１１４は、いずれか一方のアドレス情報を選択する。
【００５４】
また、２行目および３行目の状態のように、前段のうちいずれか一方の保持状態が「ｆ」であって、かつ後段の保持状態が「ｅ」である場合には、ｓｅｌ端子は、前段のうち保持状態が「ｆ」の方の段を示す情報を出力する。
【００５５】
また、４行目、５行目に示すように前段の保持状態がともに「ｆ」でありかつ後段の保持状態が「ｅ」である場合には、優先度の高いほうの段を示す情報がｓｅｌ端子より出力される。
【００５６】
また、ｎｐｒｉｏ端子からの出力においては、前回の選択が履歴としてｃｐｒｉｏから入力され、前回選択した段とは異なる段を優先して選択するための情報が出力される。例えば、２行目においては、ｓｅｌ端子において、プロセッサ１０Ｂのアドレス情報を示す情報が出力されるので、ｎｐｒｉｏでは、プロセッサ１０Ａを優先する旨の情報が出力される。なお、「ｋｅｅｐ」は、優先度を変更しない旨を示している。
【００５７】
次に、アービタ１１Ａの物理的な配置位置について説明する。アービタ１１Ａは、パイプラインにおける前段と後段の中間付近に配置されている。例えば、図７に示す例では、プロセッサ１０Ａとパイプライン１２Ａの中間付近であって、かつプロセッサ１０Ｂとパイプライン１２Ａの中間付近となる位置に配置されている。
【００５８】
図７に示す例においては、プロセッサ１０Ａおよびプロセッサ１０Ｂからアービタ１１Ａを経由してパイプライン１２Ａに入る信号線のパスと、後段すなわちパイプライン１２Ａのフローコントローラ２０３からアービタ１１Ａを経由し、マルチプレクサ１１４を選択して再び後段すなわちパイプライン１２Ａに至る信号線のパスとが、共に１サイクルで行われる必要がある。これらのパスが同じディレイになるときが必要とするサイクルタイムが最小になる場合なので、上述のように、アービタ１１Ａは、プロセッサ１０Ａおよびプロセッサ１０Ｂとパイプライン１２Ａの中間付近に配置されるのが望ましい。
【００５９】
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
【００６０】
図９−１および図９−２は、そうした第１の変更例を示す図である。本実施の形態にかかるバスシステム１は、２つのプロセッサに対するアービタ１１を有したが、これを多段に構成し、２つ以上のアービトレーションを可能としてもよい。
【００６１】
図９−１は、３つのプロセッサのアービトレーションを可能とする構成である。また、図９−２は、５つのプロセッサのアービトレーションを可能とする構成である。このように、図７に示す基本構成を複数接続することにより、任意の数のプロセッサのアービトレーションを行うことができる。
【００６２】
また、第２の変更例としては、バスシステム１は、同一半導体基板上に形成されてもよい。また、他の例としては、複数のチップをモジュール上にまとめたマルチチップモジュールとして形成されてもよい。また、回路基板上に配置したシステムとして形成されてもよい。また、複数の基板をラックマウントして形成されてもよい。
【００６３】
また、第３の変更例としては、本実施の形態においては、アドレス情報またはコマンドをアービトレーションしながらプロセッサからメモリならびにＩ／Ｏデバイスに伝達する例を示したが、本実施の形態にかかるバスシステム１による制御方式をパイプラインで伝送するデータに適用してもよい。例えばメモリからプロセッサへのデータの転送などの用途にも使用することができる。
【００６４】
また、第４の変更例としては、本実施の形態にかかるバスシステム１においては、公平なアービトレーションを行ったが、用途によってはアービトレーションを固定としてもよい。また、他の例としては、重みをつけた選択でもよく、既知のアービトレーションアルゴリズムを適用すればよい。
【図面の簡単な説明】
【００６５】
【図１】実施の形態にかかるバスシステム１の全体構成を示す図である。
【図２】プロセッサ１０Ａ〜１０Ｈと、Ｌ２キャッシュ３０の物理的な位置関係を示す図である。
【図３】プロセッサ１０Ａ〜１０Ｈと、Ｌ２キャッシュ３０の接続関係をより詳細に示す図である。
【図４】パイプラインの各段のより詳細な構成を示す図である。
【図５】ロジック回路２０３のロジックを示す図である。
【図６】図５のロジックによるパイプラインの動作を説明するための図である。
【図７】アービタ１１Ａの詳細な構成を示す図である。
【図８】アービタ回路１１１のロジックを示す図である。
【図９−１】第１の変更例を示す図である。
【図９−２】第１の変更例を示す図である。
【符号の説明】
【００６６】
１  バスシステム
１０Ａ〜１０Ｈ  プロセッサ
１１Ａ，１１Ｂ  アービタ
１２Ａ，１２Ｂ  アドレス情報保持部
２１  アービタ
２２  アドレス情報保持部
３０  Ｌ２キャッシュ
３２  アドレス情報保持部
４２  Ｌ３キャッシュ
４３  内蔵ＥＤＲＡＭ
４４  外部ＳＤＲＡＭ
５０  Ｉ／Ｏデバイス
１１１  アービタ回路
１１２  優先度保持部
１１３  ＯＲ回路
１１４  マルチプレクサ
２０１  マルチプレクサ
２０３  ロジック回路
２０４  フリップフロップ
２０５  ラッチ
【図１】
0004621604.tif 000002
【図２】
0004621604.tif 000003
【図３】
0004621604.tif 000004
【図４】
0004621604.tif 000005
【図５】
0004621604.tif 000006
【図６】
0004621604.tif 000007
【図７】
0004621604.tif 000008
【図８】
0004621604.tif 000009
【図９−１】
0004621604.tif 000010
【図９−２】
0004621604.tif 000011