このページの目次
PCIe と高速インターコネクト
PCIe とは
PCIe (PCI Express) — 現代のコンピュータにおける高速シリアルバス。CPU と GPU、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.0 | 2.5 GT/s | 250 MB/s | 4 GB/s | 2003 |
| 2.0 | 5.0 GT/s | 500 MB/s | 8 GB/s | 2007 |
| 3.0 | 8.0 GT/s | ~1 GB/s | ~16 GB/s | 2010 |
| 4.0 | 16.0 GT/s | ~2 GB/s | ~32 GB/s | 2017 |
| 5.0 | 32.0 GT/s | ~4 GB/s | ~64 GB/s | 2019 |
| 6.0 | 64.0 GT/s | ~8 GB/s | ~128 GB/s | 2022 (商用化直後) |
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, レーン, GT/s, NVMe, Root Complex, Endpoint, 差動信号, ReBAR, Gen