クイックパスインターコネクト

読み:クイックパスインターコネクト
外語:QPI: QuickPath Interconnect
品詞:名詞

Intel製プロセッサなどで使われる予定のCPUバスの一つ。略称は「QPI」。

採用

Pentium Pro以降の80x86シリーズプロセッサは、CPUノースブリッジ間の接続にフロントサイドバス(FSB)が使われてきた。

IA-32系「Nehalem」(ネハーレン)と、IA-64系「Tukwila」(タックウイラ)からは、このシステムアーキテクチャが一新され、このQPIが採用される。

由来

Pentium Pro以来使われてきたFSBは、GTLと呼ばれる技術を用い、振幅の遷移で伝送を行なっていた。

しかし速度に限界が出てきたため、新たに開発されたものがQPIである。

物理層

QPIは平衡(差動、ディファレンシャル)伝送方式を採用している。

またネットワークトポロジ面も、FSBは双方向(全二重)の共有バスだが、QPIは片方向(単向)のポイントツーポイント型リンクである。

シリアル

FSBはパラレルバスだったが、QPIはシリアルバスである。

QPIはデータ線に加え、これと別にクロック信号線(平衡なので2本で一対)がある。つまり、データ内にクロック信号を埋め込むエンベデットクロック方式ではないのが特徴である。この方式をもって、QPIを「シリアルではない」とする記述も一部に見られるが、クロック信号が別であってもシリアルはシリアルである。

データバス幅は次の三種類が用意される。

  • 40ピン20対: フル幅(full-width)
  • 20ピン10対: ハーフ幅(half-width)
  • 10ピン5対: クォーター幅(quarter-width)

CPU用として使われるのはフル幅である。使用されるプロトコルのオーバーヘッドのため、20ビットのレーンの実効伝送幅は16ビットである。

プロトコルレイヤ

QPIのプロトコルは、5層に分かれている。

物理層に近い側から順に、次のようになっている。

  1. 物理層(Physical layer)
  2. リンク層(Link layer)
  3. ルーティング層(Routing layer)
  4. トランスポート層(Transport layer)
  5. プロトコル層(Protocol layer)

物理層(Physical layer)

物理層は、上述のように平衡伝送のシリアルバスであり、データ、クロックともに信号線は一対2本である。

データバス幅によるが、最大で20ビットをユニットとし、伝送が行なわれる。

フル幅でも片方向42線、双方向で84線となるが、従来の64ビットFSBの150ピンと比較して約半分となり、製造の困難が大幅に改善されている。

リンク層(Link layer)

フロー制御やエラー訂正を行なう層である。エラー検出はCRCによって行なわれる。

リンク層では、フリット(Flit: Flow control unit)と呼ばれる単位でデータを扱う。1フリットは80ビットで、フル幅(20ビット)の場合は4サイクルで1フリットとなる。

80ビット中、データは64ビットで、残る16ビットはヘッダやCRC(8ビット)などに使われている。

ルーティング層(Routing layer)

複数のデバイスがバス上にある時、そのデバイスを転送する際に必要となる層である。

TCP/IPならIPが位置する層。

トランスポート層(Transport layer)

より高度なルーティングを実現するために用意されている層。定義だけで、最初の製品では未使用とされている。

TCP/IPならTCPが位置する層。

プロトコル層(Protocol layer)

CPUとチップセットなど、相互で必要なデータは、お互いのこの層にて処理される。

ここでは、従来よりマルチプロセッサで使われてきたMESIプロトコルを改良したプロトコル「MESIFプロトコル」が使われており、一つ以上のフリットで構成されるパケット単位でデータを扱う。なお、MESIFプロトコルはIntelが特許を申請している。