クロスバスイッチ

図4.1のプロセサコアとメモリの接続構造は、図4.4に示す各プロセサコアから出た縦方向のバーとメモリが接続された横方向のバーがあり、縦横のバーの交点にスイッチがあるという構造でも実現できる。なお、この構造は、機械式の電話交換機のために考案されたもので、バーが交差していることからクロスバスイッチ(Crossbar Switch)、あるいは単にクロスバと呼ばれる。

図4.4 プロセサとメモリの間の接続はクロスバとも考えられる

しかし、LSIの場合は、コモンバスやクロスバのように双方向に信号を伝送する回路は作れなくはないが、伝送速度を速くすることが難しいので、図4.5にようにプロセサコアからメモリとメモリからプロセサコアへの信号伝送パスを分離し、それぞれのパスにマルチプレクサを置いて信号の送信元を選択するという回路構成が取られる。

図4.5 半導体チップでのクロスバの実現法

この回路は、厳密な意味では金属配線の縦横のバーが交差し、交点にスイッチを置くという形のクロスバにはなっていないが、機能的に等価ということで、この回路もクロスバと呼ばれる。

クロスバを使う場合も2つ以上のプロセサコアが同じキャッシュバンクへアクセスする場合や、複数のキャッシュバンクが同じプロセサコアのプライベートキャッシュにデータを送るというケースでは、アービトレーションを行って一つの要求を選択する必要があるが、このようなぶつかりが発生しないアクセス要求は並列に処理することができる。このようにクロスバは高い転送性能を実現できるので、AMDのOpteronプロセサ、IBMのPOWERプロセサ、富士通のSPARC64プロセサなど多くのプロセサで使われている。

リングバス

クロスバスイッチは、複数のところから同一の宛先に接続したいという要求が重ならない限りは並列に複数のソース(Source)‐ディスティネーション(Destination)ペアの間で並列にデータ伝送を実行できるという汎用性の高い接続(インタコネクト)である。しかし、64ビットのデータにアドレスなどが加わり図4.5のそれぞれの線が実際は100本以上の配線となるので、非常に多くの配線が必要となる。また、クロスバから離れた位置のプロセサコアまでの配線は長くなり、配線のために多くのチップ面積が必要になってしまう。また、クロスバのサイズはポート数の2乗に比例して大きくなるので、入出力のポート数の大きいクロスバはかなりのチップ面積を占めてしまうという問題がある。

これに対して、すべてのモジュールとクロスバの間に配線を張るのではなく、隣接したモジュール間を順に接続し、図4.6に示すようなリング状の構造でデータを伝送しようというアプローチが出てきた。

図4.6 リングバスの構成