PCI Express デザイン・ガイド ――LSI開発者のための設計Tips
●バーチャル・チャネル
PCI Expressは,パケット単位で通信を行います.PCI Expressのトランザクション・パケットのフォーマットを図7に示します.トランザクション・パケットはリンク上をシリアルに流れていきます.
トランザクション・パケットは物理層から送信されるときに,自動的にデータリンク層パケットに分割されます(図8).x1の場合は,レーンが1本なので,パケットがそのままシリアルに流れていきます.x4では,レーンが4本あるので,最初のパケットがレーン0,次のパケットがレーン1...というように,データが各レーンに割り振られて流れていきます.x4リンクの例では,一見パラレル・バスのようですが,レーンごとに独立した転送を行うので,パラレル・バスで問題となるスキューが大幅に緩和されます.レシーバ(受信側)は,各レーンごとに送られてきたパケットを再構築します.
〔図7〕トランザクション・パケットのフォーマット
送りたいデータ(0~4Kバイト)に対し,各層(レイヤ)に合わせてシーケンスやフレームが追加され,データが構築される.
〔図8〕データリンク層パケットのフォーマット
物理層では,図7のパケットがデータリンク層パケットに分割されて,各レーンに送信される.レーンへの分割(データリンク層パケットの生成)は,ハードウェアが自動的に行う.