PCI Express は、多くの製品開発で採用されているインターフェースです。設計の現場では、デバイスのデータシートを確認し、「何レーン使うか」「どの世代で使うか」といった仕様を決めたうえで、設計が進められることがほとんどです。一方で設計を進める中で、PCI Expressに関わる判断はおこなわれているものの、それが暗黙の前提として扱われることも少なくありません。
本記事では、PCI Express の規格そのものを解説することを目的としません。PCI Express を使った製品開発において、設計時に意識されないまま進めると後から効いてくるポイントを整理します。
PCI Express とは何か
PCI Express はどんなインターフェースか
PCI Express (PCIe) は、CPU や SoC と周辺デバイスを接続するための高速なシリアルインターフェース規格です。複数の差動信号を束ねた「レーン」を単位として通信をおこない、使用するレーン数や世代 (Gen) によって、利用できる帯域が決まります。PCI Express では、x1、x4、x8、x16 といった構成が定義されており、製品の要求性能に応じて構成を選択します。また、PCI Express は単なる信号配線の規格ではなく、初期化やリンク確立、エラー制御などの仕組みを含んだシステム向けのインターフェースとして定義されています。
PCI Expressのレーンや帯域といった基本的な考え方については、以下の記事で解説していますので、ご興味がありましたらご参照ください。
PCI Express は設計する際にどう考えられているか
製品開発で PCI Express を使う場合、設計者はまずデバイスのデータシートやリファレンス構成を確認し、「対応している世代はどこまでか」「最大で何レーン使えるか」といった仕様条件を把握します。その上で、製品要求や SoC/FPGA 側の制約に合わせて、使用するレーン数や構成を決めていくのが一般的です。
一方で、PCI Express は共通の規格であり、さまざまな製品やデバイスで同じ名称・同じ表記が使われています。そのため設計の中では、次のように扱われることもあります。
・レーン数や世代は、デバイスの仕様やリファレンス構成をもとに決められる
・いったん決めたレーン数や世代は、その後の回路設計やレイアウト検討を進めるための前提として扱われることが多い
・設計を進める中で、構成そのものを改めて問い直す機会は限られがちである
その結果、PCI Express 固有の性質や制約については、設計判断の中で改めて取り上げられないまま、他の設計条件と並んで扱われることもあります。
PCI Express は「規格だから同じ」と考えて設計すると、何が起きるのか
PCI Express は共通の規格として定義されており、どのデバイスでも同じ名称、同じ世代、同じレーン構成といった表記が使われます。そのため設計の初期段階では、「同じ Gen・同じレーン数であれば、基本的な振る舞いは同じだろう」という前提で検討が進むことがあります。PCI Express は互換性を重視した規格であり、一定の条件を満たしていれば、異なるデバイス同士でも接続できるよう設計されています。一方で、PCI Express の振る舞いは、実際のシステム構成や実装条件の影響を受ける部分も少なくありません。
たとえば、同じ世代・同じレーン数であっても、
・接続されるデバイスの種類
・SoC / CPU 側の実装や内部構成
・基板配線や電源、クロックの条件
といった要素によって、設計上の注意点や制約が変わることがあります。「規格として同じ」という前提で設計を進めていると、こうした違いは設計途中ではあまり意識されないまま進む場合があります。レーン数や世代はすでに決まっており、それ自体を再検討する理由が見えにくいためです。結果として、PCI Express 固有の性質が、ほかの設計条件と同列に扱われたまま設計が進み、
後工程になってから初めて影響が見えてくる、ということも起こりえます。
PCI Express を使った設計で、知らずに進めると困る 5つのポイント
PCI Express は共通の規格として定義されており、SoC や CPU、周辺デバイスを組み合わせてシステムを構成します。一方で PCI Express は、信号配線だけで完結するインターフェースではなく、
デバイス側の実装、基板設計、立ち上がり条件、さらには設定やソフトウェアの影響まで含めて成立します。そのため設計を進める中で、「どこに注意点があるのか」を最初に意識しているかどうかで、後工程での確認や切り分けのしやすさが大きく変わることがあります。
ここでは、PCI Express を使った設計において、設計の初期段階で押さえておきたいポイントを整理します。
1. どこまでが自分の設計対象か
どこまでが自分の設計対象か PCI Express を使った設計では、一つの担当領域だけで完結することは多くありません。
たとえば、同じ PCI Express 接続であっても、
・SoC / CPU 側の PCI Express 機能
・接続されるデバイス側の実装
・基板上の配線や部品配置
・設定やソフトウェアの関与
といった複数の要素が関係します。そのため、設計を始める段階でどこまでが自分(自チーム)の設計対象かを意識していないと、後工程で影響が見えてきたときに、「何を確認すればよいのか」が分かりにくくなることがあります。ここで押さえておきたいのは、PCI Express が 一つの設計要素に閉じないインターフェースである という点です。この前提を共有しておくだけでも、後の検討や切り分けの進め方が整理しやすくなります。
2. 電源・リセット・クロックとリンク確立
PCI Express は、信号配線が正しくおこなわれていれば自動的に通信が始まる、というインターフェースではありません。リンクが成立するまでには、電源投入、リセット解除、クロック供給といった条件が順序立てて満たされる必要があります。これらの条件がそろったうえで、PCI Express はリンク初期化とトレーニング (LTSSM) と呼ばれる手順を経て通信状態に入ります。設計の初期段階では、レーン数や配線構成に意識が向きがちですが、実際にはこの 「立ち上がりの前提条件」 が満たされていないと、配線が正しくてもリンクは確立しません。
3. Gen / レーン数は性能の話だけではない
PCI Express を使った設計では、「どの世代 (Gen) を使うか」「何レーン使うか」は、まず 必要な性能(帯域) から決められることが多い項目です。
たとえば、
・Gen を上げれば速くなる
・レーン数を増やせば帯域に余裕が出る
といった整理は、設計の初期段階では自然な考え方です。一方で、Gen やレーン数は、性能だけでなく、実装条件や設計の難易度にも直接影響します。
同じ PCI Express であっても、
・世代が上がるほど信号品質への要求が厳しくなる
・レーン数が増えるほど、配線や部品配置の制約が増える
といった形で、基板設計や構成全体に効いてくる条件が変わります。そのため、「とりあえずこの Gen」「余裕を見てこのレーン数」という決め方をすると、後工程になってから 実装面での制約が表に出てくる ことがあります。ここで押さえておきたいのは、Gen やレーン数が 性能指標であると同時に、設計条件そのものでもあるという点です。
4. ソフトウェアや設定が関与すること
PCI Express は、ハードウェアだけで完結するインターフェースではありません。リンクが確立したあと、実際に「使える状態」になるまでには、設定やソフトウェアの関与が含まれます。設計の初期段階では、PCI Express を「物理的につながるインターフェース」として捉えがちですが、実際には、
・デバイスの設定内容
・OS やドライバによる認識
・初期化や列挙の結果
といった要素によって、最終的にどう見えるか、どう振る舞うかが決まります。そのため、リンク自体は成立していても、
・想定した構成で認識されない
・レーン数や速度が期待通りにならない
といった状態になることがあります。ここで押さえておきたいのは、PCI Express を使った設計では ハードウェアの構成と、設定・ソフトウェアの結果が切り離せないという点です。設計の初期段階でこの前提を持っておくと、後工程で状態を確認する際に、「どこまでがハードの話で、どこからが設定やソフトの話か」を整理しやすくなります。
5. 困ったときに "どこを見るか" を知らない
PCI Express は、リンク確立やトレーニングなどの手順を経て通信状態に入るインターフェースです。そのため、何かが期待どおりにならないときに重要なのは「原因を当てにいく」ことよりも、いまどの段階で止まっているかを把握できる観測点を持つことです。ただ、PCI Express を「規格だから同じ」と捉えて設計を進めていると、困ったときに
・立ち上がり条件(電源・リセット・クロック)
・物理的な伝送条件(配線・実装)
・設定やソフトウェア側の結果(認識・列挙)
のどこから確認するかが曖昧になりやすくなります。ここで押さえておきたいのは、PCI Express にはリンクが成立するまでの状態遷移 (LTSSM) があり、状態として "どこまで進んでいるか" を見て切り分ける考え方があるという点です。レイヤー(層)で整理して考えると、どこを疑うべきかが整理しやすくなる、というのも同じ理由です。
まとめ
PCI Express は共通規格ですが、設計で効いてくるのは「規格を知っているか」よりも、どんな前提で設計を進めているかです。配線、立ち上がり条件、Gen やレーン数、設定やソフトウェアなど、設計の中で意識されるタイミングがずれることで、後から影響が見えてくることがあります。
本記事が、PCI Express を使った設計を進める際に、「どこで何が効いてくるか」を考えるきっかけになれば幸いです。
おすすめ関連情報
Parade Technologies の PCI Express 製品情報詳細にご興味のある方は以下のページをご覧ください。
お問い合わせ
本記事に関してご質問などありましたら、以下よりお問い合わせください。
パレードテクノロジーズ メーカー情報 Top へ
パレードテクノロジーズ メーカー情報 Top へ戻りたい方は以下をクリックください。