このページの目次

PCIe と高速インターコネクト

PCIe とは

PCIe (PCI Express) — 現代のコンピュータにおける高速シリアルバス。CPU と GPU、SSD、ネットワークカードなどの周辺デバイスを接続します。

PCIe ツリートポロジ: 単一 Root Complex 下のデバイス階層 CPU PCIe RC Memory Controller Switch Endpoint (GPU) EP EP EP (NVMe SSD、ネットワークカード...) RC = Root Complex(ルートコンプレックス、通常は CPU または PCH 内にあります); Switch = スイッチチップ、さらに多くの PCIe ポートを下位に拡張します EP = Endpoint(エンドポイント)、つまり Switch 配下の NVMe SSD、ネットワークカードなどの末端デバイス

レーンとジェネレーション

レーン (Lane)

PCIe の最小単位は 1 つのレーンです

x1:  1 レーン
x4:  4 レーン (一般的: NVMe SSD)
x8:  8 レーン
x16: 16 レーン (一般的: GPU)

各レーンは独立したフルデュプレックスのシリアルリンクです
  TX+/TX- (送信) + RX+/RX- (受信) = レーンあたり 4 本の信号線

x16 は物理的に 64 本の信号線 (16×4) に相当します

各世代の速度

Genレーンあたりの速度 (シングル)レーンあたりの帯域 (デュプレックス)x16 帯域年代
1.02.5 GT/s250 MB/s4 GB/s2003
2.05.0 GT/s500 MB/s8 GB/s2007
3.08.0 GT/s~1 GB/s~16 GB/s2010
4.016.0 GT/s~2 GB/s~32 GB/s2017
5.032.0 GT/s~4 GB/s~64 GB/s2019
6.064.0 GT/s~8 GB/s~128 GB/s2022 (商用化直後)
8b/10b (Gen1/2): 2.5 GT/s × 8/10 = 2 Gbps = 250 MB/s
128b/130b (Gen3以降): 8 GT/s × 128/130 ≈ 7.88 Gbps ≈ 985 MB/s
→ Gen3以降はエンコーディングオーバーヘッドが大幅に削減されました

"GT/s" = 1秒あたりのギガトランザクション (エンコーディングオーバーヘッドを含む)
"GB/s" = 1秒あたりのギガバイトの有効データ

一般的な構成

コンシューマー向け CPU の典型的な PCIe レーン数:
  AMD Ryzen: 24〜28 レーン (うち 4 が PCH に接続、16+4 が GPU+NVMe に割り当て)
  Intel Core: 16〜20 レーン (うち 4 が PCH に接続)

グラフィックカード: x16 Gen4/5 (ただし x8 で十分であることが多く、性能低下は 1〜3%)
NVMe SSD: x4 Gen4/5 (Gen4 x4 = ~8 GB/s)
10GbE ネットワークカード: x4 Gen3

下位互換性

Gen4 デバイスを Gen3 スロットに挿入 → Gen3 に降速
Gen3 デバイスを Gen4 スロットに挿入 → Gen3 で動作

リンクトレーニング (Link Training):
  電源投入後、両端が自動的にネゴシエーションを行い、実行可能な最高速度と最大レーン数を決定します

物理層

信号

各レーン:
  TX+ TX- : 差動送信 (AC結合、コンデンサによる直流遮断)
  RX+ RX- : 差動受信 (AC結合)

リファレンスクロック: 100MHz (HCSL または LVDS 差動)
  Common Clock (同源) または Separate Clock (独立)
  現在では SRIS (Separate Refclk Independent SSC) が主流です

Gen3以降は 128b/130b エンコーディングとスクランブル (scramble) を使用
独立したクロック線はなく、受信側でデータからクロックを復元します (CDR)

PCB 設計のポイント

PCIe 配線:
  - 差動対の長さを揃える (P/N 差 <5mil)
  - 特性インピーダンス: 85Ω 差動 (Gen3)、場合によっては 100Ω
  - 参照平面の不連続を避ける (スプリットグランドを跨がない)
  - AC結合コンデンサ (100nF〜220nF) は送信端近くに配置
  - スルーホールは最小限に (各スルーホールはインピーダンスを乱す)

PCIe プロトコル層

3層モデル:

トランザクション層 (Transaction Layer):
  TLP (トランザクションレイヤパケット) の生成/消費
  アドレスルーティング / IDルーティング / 暗黙的ルーティング

データリンク層 (Data Link Layer):
  信頼性の高い伝送を保証
  ACK/NAK、再送、CRC チェック
  DLLP の生成/消費

物理層 (Physical Layer):
  8b/10b または 128b/130b エンコーディング
  シリアル/パラレル変換、リンクトレーニング

一般的な用途

NVMe over PCIe

NVMe プロトコルは PCIe 上で動作します
AHCI (SATA の伝統的なプロトコル) は PCIe 上で動作していましたが、NVMe に置き換えられました

NVMe の利点:
  - キュー深度 64K (AHCI は 32 のみ)
  - キュー数 64K (AHCI は 1 のみ)
  - より低いレイテンシ (SATA コントローラへのアクセスが不要)

GPU 接続

コンシューマー向け GPU: x16 PCIe で CPU に直接接続
  Gen3 x16 = 16 GB/s (RTX 20/30 シリーズ)
  Gen4 x16 = 32 GB/s (RTX 40 シリーズ)
  Gen5 x16 = 64 GB/s (RTX 50 シリーズ)

実際のところ: ゲームシーンでは Gen3 x8 でもほぼ性能低下はありません
      Gen4 はコンシューマー向け GPU において主に将来の余裕を持たせるためのものです
      計算/ML シーンでは大きな帯域幅がより重要になります (マルチ GPU インターコネクト)

Resizable BAR (Smart Access Memory)

従来: CPU は 256MB の BAR ウィンドウを通じてのみ GPU メモリにアクセス可能
ReBAR: CPU は一度に GPU メモリ全体をマッピング可能 → コピーの削減、性能向上

要件: BIOS のサポート + GPU ドライバのサポート + PCIe のサポート

CPU との接続

PCIe と CPU の接続: 直結 vs PCH経由 (Intel / AMD 比較) Intel CPU PCH(チップセット) DMI(本質的には PCIe x8) PCIe x16(直結) PCIe x4(NVMe 直結) SATA/USB/Ethernet/WiFi さらに多くの PCIe レーン AMD CPU PCH PCIe x4(IF バス) PCIe x16/x8 PCIe x4(NVMe) Intel と同様のトポロジ (SATA/USB/さらに多くのレーン) CPU に直結された PCIe (独立した x16 グラフィックカード、CPU 直結 NVMe) = より低いレイテンシ、GPU/NVMe に最適; PCH経由の PCIe (SATA/USB/ネットワークカードなど) = DMI/IF バス帯域を共有し、さらに CPU へ上行します。

キーワード: PCIe, レーン, GT/s, NVMe, Root Complex, Endpoint, 差動信号, ReBAR, Gen