技術情報 / PCI Expressの基礎知識
パラレルからシリアルへ
PCI Express®(PCIe®)は、PCI、PCI Extended (PCI-X)、アクセラレーテッド・グラフィックポート(AGP)などのバスを利用した通信アーキテクチャに代わる、Peripheral Component Interconnect Special Interest Group (PCI-SIG)策定の高性能/広帯域幅シリアル通信規格です。
PCIeへの置き換えが進む最大の理由は、従来のバスを利用したインターコネクトでは実現できなかったシステムのスループット/スケーラビリティ/柔軟性の大幅な向上、そして製造コストの削減が達成できるというメリットがあるからです。
PCI Express規格は、将来の発展を視野に入れて開発されており、システムのスループット向上を可能にすべく進化を続けています。第1世代のPCIe仕様では、スループットは1秒あたり2.5Gbps、第2世代の仕様では5.0Gbps、そして先日発表されたPCIe 3.0規格は8.0Gbpsにまで処理能力が向上しました。PCIe規格は、スループット向上のために最新技術を駆使していますが、プロトコルを階層化することにより、ドライバソフトウェアと既存のPCIアプリケーションとの互換性が保たれるため、PCIからの移行作業は容易に可能です。
PCIeは、従来はコンピュータの拡張カードやグラフィックカードを対象に適用されてきましたが、現在では、ネットワーク、通信、記憶装置、産業用/一般向け電子機器など、広範囲にわたるアプリケーションにも幅広く採用されています。
本稿では、お客様にPCIeについての理解を広げていただくとともに、PCIeインプリメンテーションの成功に欠かせない設計課題についてもご紹介します。
PCI Expressの基礎
トポロジ
まず、PCIeプロトコルの基礎、および現在のシステムでPCIeプロトコルを実現/サポートするために必要な各種コンポーネントについて説明します。ここでは、複雑なPCIeプロトコルの詳細を掘り下げるのではなく、PCIeに関する実用的な知識について解説します。
PCIeのメリットは、その複雑性と引き換えに成り立っています。パケットベースのシリアル通信プロトコルであるPCIeは、PCIのパラレルバスの約10倍も複雑な構造をしています。この複雑さの原因の一端は、ギガヘルツ単位のスピードでのパラレルからシリアルへのデータ変換や、パケットベースのインプリメンテーションにあります。
PCIeでは、PCI-Xで追加されたスプリット・トランザクションのサポートを始めとする、PCIの基本的なロード/ストア・アーキテクチャが引き継がれています。さらに、従来のパラレルバスのサイドバンド・ワイヤを模倣し、高い信頼性と機能性を実現する、リンク管理(リンクレベルのフロー制御など)のための低レベル・メッセージ伝達プリミティブがいくつか導入されています。仕様では、現在のニーズと将来の拡張可能性の両方に対応した多数の機能が定義されていると同時に、PCIとのソフトウェアドライバの互換性が保たれています。またPCIeは、自律的パワーマネージメント、アドバンスト・エラーレポート、End-to-End Cyclic Redundancy Checking (ECRC) による end-to-end の信頼性、ホットプラグのサポート、Quality of Service (QoS) トラフィッククラスなどの先進機能を備えています。
Root Complex、Switch、Endpoint、Bridgeという4つのファンクションタイプで構成される単純なシステムのトポロジを図1に示します。それぞれの点線は、リンクと呼ばれる2つのPCIeデバイス間の接続を表しています。
図1. 4つの PCIeファンクションタイプ |
■ | Root Complexは、PCIe構造全体を初期化し、各リンクをコンフィギュレーションします。通常は中央演算装置(CPU)と他の3つのファンクション(PCIe Switch、PCIe Endpoint、PCIe-to-PCI Bridge)の1つまたは複数を接続します。 |
■ | PCIeのSwitchは、データを下流にある複数のPCIeポートに接続したり、逆に、上流のRoot Complexに接続したりします。またPCIeのSwitchは、ある下流ポートのデータをフレキシブルに他のポートに接続(peer-to-peer)します。これにより、従来のPCIでは避けられなかった制限のあるツリー構造を排除することができます。 |
■ | 通常、Endpointは、システムでアプリケーションとPCIeネットワークを接続している末端のアプリケーションに属します。Endpointは、PCIeトランザクションの要求と応答を行います。通常、Endpointは、他のタイプのPCIeコンポーネントよりも多くシステムに存在します。 |
■ | Bridgeは、PCIeと、PCIeとともに他のPCIバス規格(PCI/PCI-X など)を使用しているシステムのバス・アーキテクチャと接続します。 |
PCIeプロトコル仕様
PCIe規格で定義されているプロトコルは、Open Source Initiative (OSI)モデルに準じます。これは、図2の左図に示すように、5つの主要層に分割されています。ここでは、機械層と物理層の概要を説明します。以降の各項では、リンク層、トランザクション層、アプリケーション層について説明します。
図2. PCIe規格のプロトコル層 |
■ | 機械層は、コネクタ、カード・フォームファクタ、カード検出とホットプラグの条件など、メカニカル環境を定義します。 |
図2の右図は、その他の層を展開して、下位層が実際のハードウェア・インプリメンテーションにどのように対応するかをより高精度に示しています。
上図のように、物理層は電気層と論理層という2つのサブレイヤに分割されます。多くの企業では、Physical Interface for PCI Express (PIPE)と呼ばれるElectrical Layerと Logical Layer間のインターフェイスを定義して利用しています。PIPEインターフェイスは、デザインと規格のインターフェイスを可能にし、複数の異なるベンダから複数のコンポーネントを購入して一緒に動作できるようにします。
■ | 物理層の電気サブレイヤは、トランシーバ、アナログバッファ、シリアライザ/デシリアライザ(SerDes)、10ビット・インターフェイスなどのアナログコンポーネントをインプリメントします。 |
■ | 物理コーディング・サブレイヤ(PCS)は、各8ビット・データバイトを10ビットコードにエンコード/デコードします。このコーディング機能は、有効な文字をチェックするだけでなく、送信される0と1の個数の差を制限することによりトランスミッタとレシーバ双方のDCバランスを保ち、電磁適合性(EMC)と電気信号のスピードを大幅に改善します。 |
■ どのように私は私のiPod shuffleのバッテリーの強さを見つけることができます | 物理層のPIPEインターフェイスの反対側には、Link Training and Status State Machine (LTSSM)、レーン間デスキュー、特殊シーケンス検出/生成などがあります。 |
実際のハードウェアでは、シリアルピンからPIPEインターフェイスまでの層をまとめてPHYと呼び、PIPEインターフェイスからアプリケーション層までをまとめてデジタルコントローラと呼びます。任意のPCIeリンクの末端には、PHYとデジタルコントローラの両方がなくてはなりません。図3に、図1で定義したサブシステムのRoot ComplexとEndpointに挿入されたPCIeのPHYとコントローラを示します。EndpointはEndpointポートを使用し、Root ComplexデバイスはRootポートを使用します。 図3には、個別のPHYとコントローラのファンクションに展開された各ポートタイプが示されています。
図3. SoCにおけるPHYとコントローラの使用法 |
上図でも、2つのポート間の点線はリンクを表しています。このPCIeリンクは相方向性がなく、低電圧ディファレンシャル信号を使用します。PCIe規格では、PCIe 1.x (2.5Gbps)リンクの場合は 80 Gbps、そしてPCIe 2.0 (5.0 Gbps) の場合は 160 Gbps にスループットを向上させるため、リンクに32までのパラレルレーンを持たせることができるように定義されています。リンクの各レーンは独自の埋め込みクロックを供給するので、従来のPCIインターフェイスではタイミングを維持するために必要であったPCB上でのライン長の適合作業は必要なくなりました。
次に、PHYおよびデジタルコントローラのファンクションのデザインについて詳しく説明します。
PCIe SerDesの設計課題
PCIeのPCIe PHYのデザインは、次の理由により特に困難になっています。
■ | シリアルからパラレルへデータ変換するために、高度なアナログ設計技術が要求される。 |
■ | アナログ設計は、プロセステクノロジ間で移植できないため、チップの製造に用いられる新しいプロセステクノロジごとにPHYの再設計が必要になる。 |
■ | 高速信号は(それ自体、設計課題といえるが)、シグナルインテグリティやノイズに起因する信号劣化の対策をすることによって、デザインを複雑化させ、アナログリンクの特製を悪化させてしまう。 |
■ | 他のデバイスとのインターオペラビリティを確実にするため、PHYは厳しい電気的テストおよび準拠テストをパスしなくてはならない。 |
ラインスピードの高速化に伴い、PHYの設計が難しくなるだけでなく、1Gbps以上のスループットで発生するシグナルインテグリティの問題に対処するため、PHYを慎重に統合する必要性が生じます。高速信号の場合、パッケージングとボード設計はさらに困難になり、プロジェクト遅延の原因になることもあります。さらに、高性能PHYの設計には高速アナログ通信に関する高度な専門知識が必要です。この種の通信は、デバイスの製造プロセスに大きく依存するので、設計者はデバイスの基本的な物理的特性についての知識を必要とします。これらの専門知識は、豊富な設計経験を通じてのみ身に付けることができます。PHYの設計が困難であることに加えて、PHYは他社で設計されたPCIeインターフェイスとの相互運用が可能でなく てはなりません。このため、PCI-SIGでは、デザインの仕様への準拠と他のデバイスとのインターオペラビリティをテストする「プラグフェスト」と呼ばれるコンプライアンス (規格準拠)ワークショップを開催しています。
PCIeの設計はなぜそんなにも困難なのでしょうか。高速信号デザインの問題と標準FR4基板材料の信号に対する影響の例を図4に示します。左側に、26インチ(約66センチ)の標準FR4基板材料を伝達する1.25Gbpsストリームと5Gbpsストリームのバイナリ・アイダイアグラムをそれぞれ示します。右側の対応するバイナリ・アイダイアグラムは、デスティネーションにおける信号の劣化を示しています。1.25Gbpsストリームは伝送後も十分に残存していますが、5Gbpsアイのサイズとクリーンさは、1GHz以上の周波数で低コストのFR4基板およびインターコネクト材料に発生する誘電損失により、大幅に低下しています。
図4. 周波数増加に伴うバイナリ・アイの劣化 |
この損失は周波数の増加に伴って増加し、すべて1、またはすべて0 (主にDC信号)の連続の場合は正常に伝達されますが、1-0-1-0ビットストリーム(主にAC信号)の場合は想定外の歪みが発生します。
解決策は、高周波数(AC)信号の振幅を低周波数(DC)信号の振幅よりも大きくすることによって、信号とノイズの全体的な比率を大きくすることです。このプロセスはプリエンファシスと呼ばれます。あるいは、低周波数信号のデエンファシスも可能です。トランスミッタでプリエンファシスを使用することにより、デスティネーションのアイがクリーンになり、適切なマージンで仕様を満たすことができます(図5)。
図5. プリエンファシスの使用によるバイナリ・アイ劣化の改善 |
プリエンファシスとその他のアナログ設計手法を用いて、クリーンな信号にすることができます。ただし、バイナリ・アイが明らかにクリーンな信号でも、PCIe仕様の電圧マージンの条件は満たす必要があります。図6の左図は、アイ・オープニングの最小条件を表す菱形が中に示されたPCIe仕様を表しています。中央の図では、PCIe仕様の条件(菱形で示されています)を移動して、これらの条件を上回る、有効なアイ・オープニングを示しています。右図の波形は、菱形で表現されている条件を満たしていません。
図6. 電圧マージンの条件を満たす信号 私は、1つのコア上で実行するウィンドウを設定することができます |
なぜこれが問題になるのでしょうか。高速SerDesテストでは、一般的に、ループバック・モードを使用して、PHYがクリーンなアイを生成できることを確認します。ただし、デバイスのアイがクリーンな場合でも、ループバック・テストにパスしたにもかかわらず、システム内では、他のPCIeデバイスとの通信の信頼性を確保できないことがあります。PHYがPCIe仕様の電気的条件を満たしていることを確認するには、ループバック・テストでは明らかに不十分です。ループバック・テストの限界を克服するため、シノプシスでは、高速PHYデザインにオンボード診断機能を組み込み、リンク動作と性能をリアルタイムに目視確認できるようにしました。これらの診断により、ダイ上の過剰ジッタや不十分な電圧マージンといったシグ� ��ルインテグリティの問題を特定して数量化することができます。これは、単純な"go/no-go"ループバック診断では実行できません。
しかしながら、前述のPHY開発課題への対応により、さらに制約が発生することがあります。これらの課題には、経済的に現実的なダイ面積と消費電力見積もりの範囲内で対応しなくてはなりません。ダイの省面積と低消費電力は必須です。
PCI Expressデジタルコントローラの設計課題
PCIeはPCIよりもはるかに複雑で、インターフェイスの複雑性は約10倍、ゲート数(PHYを除く)は約7.5倍です。また、PCIeでは、Root Complex、Switch、Bridge、Endpointといった複数の異なるポートタイプも定義されています。さらに複雑なことに、各PCIeポートタイプは、1つのサイズですべてに適合するわけではありません。たとえば、1G EthernetコントローラのPCIeアドイン・カードは32ビットの内部データパスを持つシングルレーン(x1)Endpointで実現できますが、セットトップボックスにはRoot ComplexとEndpointのデュアル機能を持つ64ビットの内部データパスが必要になる場合があります。特定のPCIeアプリケーションに必要となる可能性のある最適機能など、PCIeインターフェイスの複雑化には多数の要因があります。PCIeインターフェイスのインプリメンテーション時は、ゲート数/面積/消費電力が必要以上に増えないようにするため、必要な機能のみをデザインに取り込むよう、細心の注意が必要です。
PCIeポートタイプのそれぞれには、いくつかの必須機能がありますが、最適化と解決を必要とするシステムレベルの問題もいくつかあります。このようなシステムレベルの決定事項は、インターフェイスの性能とゲート数に大きく影響します。これらの決定事項については、本稿での解説は省略します。
PCIeパケット
各プロトコル層のさまざまな機能について詳しく説明する前に、PCIeネットワークでデータがどのように送信されるかを理解しておくことが重要です。PCI Expressでは、パケットを使用して、システム内、およびデジタルインターフェイスの層とPCIeデバイス間でデータを移動します。アプリケーション層はトランザクションを開始し、トランザクション層はアプリケーションの要求をPCIeトランザクションパケットに変換します。データリンク層はパケットにシーケンス番号とLink CRC(LCRC)を付加します。データリンク層は、2方向トランザクションが適切に受信されたかどうかの確認も行います(図7)。最後に、物理層はPCIeリンクにトランザクションを送信します。
図7. 物理層 (論理層) |
コントローラの物理層は、PHYとインターフェイスし、リンクの初期化とパケットのフォーマットを実行する多数のファンクションを管理します。物理的リンクの設定、低電力リンク状態の開始/終了などに特殊なシーケンスが用いられます。
物理層の受信部では以下のことが行われます。
■ | 複数のレーンで構成されるリンクの、レーンマッピング、レーン間デスキュー |
■ | データのデスクランブリング |
■ | パケットの検出とデフレーミング |
■ | TS1、TS2、Skip、Electrical Idle といった特殊なパケット・シーケンスの検出 |
物理層の送信部では以下のことが行われます。
■ | パケットの開始をマークする STPシンボルやSDPシンボル、終了をマークするENDシンボルなど、特殊なシンボルの挿入によるパケットのフレーミング |
■ | データのスクランブリング |
■ | リンク制御 - 初期化、幅とレーン反転ネゴシエーション |
■ | マルチレーン送信制御 |
■ | リンクの2つの終端間におけるクロックのPPMの差を補正するためのスキップ・シーケンスの生成 |
以下の各項で、これらの概念のいくつかについてさらに詳しく説明します。
■レーンマッピングは、シーケンシャル・パケットをマルチレーン・リンクにパラレル送信できるようにすることによって、スループットを大幅に改善します。レシーバの物理層は、パケットを正しいシーケンスに組み立て直します(図8)。
図8. レーンマッピングによるスループットの改善 |
■レーン間デスキューは、マルチレーン・リンクのレーン間のスキューを修正するために実行されます。送信コンポーネントは、あらかじめ定義されたマーカー(COM)をすべてのレーンに同時に送信することにより、レシーバがスキューを検出し、受信データが他の層によって同時に到着しているものと認識されるようにパケットを再調整するための補整を挿入します。下記の図9の左図は、パケットを送信している4レーンデバイス(x4)と、それらのパケットがどのように受信されるかを示しています。右図は、レーンごとの遅延の相違によって発生するスキューを除去するために、受信データに対してどのようにデスキューが実行されるかを示しています。
図9 レーン間デスキュー |
■レーン反転("信号の反転"ではありません)は、プリント回路基板(PCB)上の配線の交差を避けるために使用されます。これによりPCB設計がシンプルになり、製造コストが削減されます。図9と同じx4送信を使用して、図10に示すように、PCB配線の問題を補整するためにデータを内部的にマッピングし直すことができます。
図10. レーン反転によるPCB配線の補整 |
■Link Training and Status State Machine (LTSSM)は、物理層およびそれに続いてリンクを制御します。LTSSMは"Detect"状態でリンクネゴシエーションを開始し、続いて"Polling"状態でリンクパートナーがいつ検出されるかを監視します。リンクが確立されると、2つの通信コンポーネントは"Configuration"状態になり、リンクのコンフィギュレーションをネゴシエートします。これらの状態は、いくつのレーンが物理的に接続されているか、いくつがアクティブであるか、データペアが反転されるかどうか、およびレーンが反転されるかどうかを識別します。L0状態は通常のリンク操作になります。また、LTSSMは、"Recovery"状態を使用した、切断されたリンクの再確立、L0s、L1、および "Recovery"状態を使用したリンクの電力状態の変化の管理も行います。
データリンク層
データリンク層は、データ交換の信頼性、エラー検出とリトライ、フローコントロール・クレジット(FCC)の初期化とアップデート、およびパワーマネージメント・サービスを確実に行います。これらのファンクションを実行するため、データリンク層はデータリンク層パケット (DLLP)を生成して処理します。
データリンク層は、物理層がLTSSMによってネゴシエートされると有効化されます。この時点で、リンクの両端にあるデータリンク層は、フロー制御(FC)初期化プロトコルを使用してリンクを初期化します。このプロトコルは、各リンクパートナーの使用可能なキュー資源の通信に使用されます。FC の初期化が完了すると、リンクは、トランザクション層への信頼性の高いデータ送信サービスを行えるようになります。TLP送信時は、周期的なフロー制御アップデートにより、オーバーフローを防ぐために使用できるバッファ・スペース量の記録が継続されます。
メガピクセルのピクセル数
データリンク層は、信頼性の低い(損失の多い)物理的リンクに対して信頼性の高いデータ送信サービスを提供します。これは、受信TLPの検証と受信データのackの使用、および障害時の再送信によって行われます。TLPが送信されると、シーケンス番号が割り当てられ、シリアルリンクへの送信のために、物理層にCRCコードが適用されて送信されます。受信時に、CRCとシーケンス番号がチェックされます。CRCのエラーやシーケンス番号の不整合は送信エラーを意味し、信号はnakで応答します。nakを受信すると、トランスミッタは、この目的のためにリプレイ・バッファに保存しておいたパケットを再送信します。CRCシーケンス番号のチェックが正常に行われた場合、レシーバはackを送信します。特定のTLPのackが受信された場合にのみ、リ� ��レイ・バッファからデータが一層されます。データリンク層では、このプロトコルを使用して、TLP送信を保証することができます。
トランザクション層
トランザクション層は、アウトバウンド・トランザクション層パケット (TLP)を作成し、インバウンドTLPを受信します。TLPには、ヘッダ、オプションのデータペイロード、およびオプションの End-to-End CRC (ECRC)が含まれます。TLPは、要求、または要求に対する応答(コンプリーション)であり、常に4バイト(1DWORD)の倍数です。ヘッダは、トランザクションタイプ、プライオリティ、アドレス、配線ルール、およびその他のパケット特性を指定します。送信トランザクション層は、パケットのヘッダを作成し、オプションでECRCを付加して、十分なリモート・フローコントロール・クレジットが得られるまでパケット送信をゲートします。受信トランザクション層は、TLP フォーマットとヘッダをチェックします。また、オプションでECRCもチェックします。
PCIe の基本的なファンクションと属性
スループット: フローコントロール・クレジット
前述のように、PCIe接続の2つの終端には、バッファのオーバーフローによってデータが失われないようにするためのフロー・コントロール・クレジット(FCC)が使用されます。フロー・コントロール・クレジットはこのように総実効スループットに大きな役割を果たします。
フロー・コントロール・クレジットは、単に使用可能なレシーババッファ容量に関する情報であり、受信コンポーネントによって発行されます。リンクの送信端は、受信端に十分なクレジットがある量のパケットのみを送信し、パケット送信時にそれらのクレジットを使い果たします。リンクの受信端は、バッファスペースが使用可能になると、さらにクレジットを発行します。Posted、Non-Posted、およびCompletionキューという、3つの異なるタイプのフロー制御DLLPがあります。さらに、Init_FC DLLP は、各 FC クラス (P、NP、CPL) の初期バッファスペースを定義し、Update_FC DLLP は、新しいクレジットが使用可能になったことを告知します。
QoS: トラフィック・クラスと仮想チャネル
トラフィック・クラスとチャネルの仮想化により、システムで、アプリケーションごとに異なるQoSを実現することができます。たとえば、PCの場合、画像ストリームのプライオリティを最も高くして、他のアプリケーションに妨害されずに高品位画像を実現するのに十分な帯域幅を確保することができます。ネットワークサーバ・アプリケーションの場合、このようなプライオリティ設定は、価格の異なるさまざまなサービスレベルを実現しなくてはならないネットワークサービス・プロバイダにとって経済的な意味で重要です。
チャネルの仮想化により、複数の独立したデータストリームを同一ワイヤ上で多重化することができます。仮想チャネルは、独自のバッファを持ちます。
トラフィッククラス・ラベルを使用したトラフィック・クラスは、他のトラフィックとの関連においてパケットに設定されるend-to-endプライオリティを定義します。各トラフィック・クラスはRoot Complexによって仮想チャネルに割り当てられますが、パケットのパスのさまざまなポイントに異なる数の仮想チャネルが存在する場合もあります。柔軟性の高いアービトレーション・スキームにより、必要なプライオリティとサービスレベルを仮想チャネルで維持することができます。Arbitrary(カスタム)、Round Robin、Weighted Round Robinといったアービトレーション・スキームがあります。
RAS: データの整合性
データの整合性は、必須およびオプションのプロトコル機能を用いて保証されます。
必須の機能は次のとおりです。
■ | 物理層チェック - 無効な文字を除外する 8b/10bエンコーディング/デコーディング |
■ | リンク層チェック - Packet CRC(PCRC)チェック、パケットシーケンス番号チェック、ack/nakの検証 |
■ | トランザクション層チェック - ヘッダとパケットの検証、コンプリーション・タイムアウト |
オプション/必須を問わず実際にすべてのPCIe IPでサポートすべきオプションの機能は、レシーバのオーバーフローのチェック、フロー制御のエラーチェック、end-to-end CRC (ECRC)、TLP エラー、メモリのパリティとデータパスのパリティです。
RAS: オーダリング/PCI ルール
オーダリングはPCIモデルから生成され、2つの目的があります。
■ | システムのデッドロックの回避 − PCIeは、ある種のパケットタイプが、ブロックされている他のパケットよりも優先して処理されなければなりません。また、別のある種のパケットタイプは、他のパケットよりも優先的に処理されないことでこれを達成します。たとえば、CompletionとPosted Writeは、Read Requestよりも優先的に処理される必要があります。 |
■ | データの有効性を確実にするためにデータおよびフラグの一貫性を維持 − たとえば、CompletionとRead RequestはPosted Writeよりも優先的に処理されてはいけません。同様にPosted Writeは他のPosted Writeよりも優先的に処理されてはいけません。 |
オーダリング・ルールは、ハードウェアまたはソフトウェアでインプリメントすることができます。たとえば、ハードウェアの受信バッファは、到着順とパケットタイプに応じて自動的にパケットを渡したりブロックしたりします。ソフトウェアによるインプリメンテーションでは、デッドロックを回避するためにRead Requestの発行を制限し、バイパスが問題にならないようにフラグの位置を制御します。また、Writeの順序のみが維持される場合は、フラグをレシーバブロックに配置し、生成元からのWriteで設定します。
アクティブ・パワーマネージメント
アクティブ・パワーマネージメントとは、システムまたはデバイスの動作が検出されなかったとき、つまり、リンクにパケットがなく、タイムアウトが発生したときに、自動的に低消費電力状態になり、必要が生じたときに低消費電力状態を自動的に終了する機能です。アクティブ・パワーマネージメントは、L0sおよびL1低消費電力状態を使用して、全面的にハードウェアで実行されます。PCIeデバイスは、D0、D1、D2、およびD3ホット/コールドプラグ経由でPCIソフトウェアの節電メカニズムと互換性が必要で、PCIeホットプラグ・ロジックの割り込みとウェークアップをサポートする必要があります。2つのPCIeコンポーネントが正常にL1モードになったときに必要なシーケンスのアクティブ・パワーマネージメントの例を 図11に示します。
図11. L1パワーマネージメント |
「上流コンポーネント」はRoot Complex、下流コンポーネントはEndpointの可能性があります。下流コンポーネントは、リンクが「長」時間(数マイクロ秒程度)にわたってアイドルであることを検出します。したがって、下流コンポーネントはパケット送信を中止し、適切なリンク・クレジットとack 条件を待機します。その後、L1アクティブ・パワーマネージメント状態に入る許可を要求するパケットを送信します。これにより上流コンポーネントは許可を与えるかどうかを決定しなくてはなりません。この例では、パケット送信を中止し、前のパケットのack を待機してL1状態を容認する特殊なパケットを送信することにより、許可を与えることを決定します。その後、下流コンポーネントは送信ワイヤを特殊な"Electrical Idle"状態に設定します。Electrical Idle状態は、上流コンポーネントによって検出され、同じことが行われます。この時点で、リンクはL1モードです。この処理は、全面的に自動化され、アプリケーション層とロジックは何もする必要がありません。
アドバンスト・エラーマネージメント
アドバンスト・エラーレポートは PCIe のオプションの機能ですが、多くのアプリケーションに必要な重要機能です。アドバンスト・エラーレポートは、システムの問題点の診断に利用できる、個別のエラーに関する詳細情報を提供します。また、これにより、エラーを Fatal または Non-fatal に分類し、詳細なエラータイプとマスキング能力を提供します。
割り込み
PCIe Endpointは、メッセージ経由で割り込みを信号することがあります。従来の割り込みサポートは、メッセージを使用して、ラインベースの"wired-OR" PCI割り込みをエミュレートします。これらのメッセージは、PCIまたはPCI-Xのバスで使用される実際の物理的な割り込み信号に代わる、「仮想ワイヤ」を作成します。各PCIeファンクションでは、このような割り込みは1つに制限されます。
従来のラインベースの割り込みの代替策は、メッセージ信号割り込み(MSI)またはMSI Extended割り込み(MSI-X)です。これらは、PCIおよびPCI-Xのこれらの割り込みに相当します。MSIは、1つのEndpointから、アドレスが同じで、Root Complexによって指定されるデータ値が異なる32のメッセージ割り込みをサポートします。MSI-Xはこの割り込みの柔軟性を拡張したもので、アドレスとデータ値がRoot Complexによって指定される2,048の割り込みをサポートします。どちらのタイプも、メモリ書き込みによってRoot Complexに供給されます。MSIデータは常にサイズが1 DWORD、値はプラットフォームごとに異なります。PCIeソフトウェアは、各MSIメッセージのMSIアドレスとデータ値をプログラムします。
IPによるPCIe対応デザインのリスク削減と開発期間の短縮
PCI Expressには、需要の多い性能、信頼性/可用性/サービサビリティ(RAS)、およびQoSの目的を満たすための複雑なシステムレベルのトレードオフが異なる、複数のコンポーネントタイプがあります。これらの目的を達成するには、スループット、バッファサイジング、フローコントロール・クレジット管理、およびオーダリング・ルールといったパラメータの多次元的最適化が必要なので、「1つのサイズですべてに適合する」デザインは実用的ではありません。これらの設計課題と、準拠性およびインターオペラビリティの厳密なテストの組み合わせは、最高レベルの熟練を積んだ設計チームにとってさえ難問です。開発期間の短縮とリスク削減のため、設計者は、PCIeインターフェイスのデザインへの統合に、サードパーティIPを採用し始めてい� ��す。適切な選択を確実に行うには、機能の的確さ、インテグレーション、使い勝手、サポートなど、IPベンダの選定に不可欠な条件を考慮する必要があります。
シノプシスのPCI Express向けDesignWare IPソリューションは、PCIe通信規格を用いた高性能デザインの実現と検証に必要なIPをご提供します。この完全な統合ソリューションは、シリコン検証済みで、広範囲にわたるコンフィギュラブル・デジタルコントローラ、高速ミックスドシグナル PHY、および検証用IPを含んでおり、これらはすべてPCIe1.1および2.0規格に準拠しています。単一のIPベンダから提供される完全なソリューションを活用することで、すべての IP がシームレスに機能することが保証され、インテグレーションのリスクが削減されます。シノプシスのPCI Express向けDesignWare IPは、消費電力、面積、レイテンシーの非常に低い高性能 IP ソリューションを設計者に提供します。
デジタルコントローラ
■ | すべてのポートタイプ - Endpoint、Root Complex、Switch、Bridge、Dual Mode (Endpoint/Root Complex) - で使用可能 |
■ | デジタルコントローラは、PCIeプロトコルのPhysical Layer、Data Link Layer、およびトランザクション層をインプリメント |
■ | 必要なゲート数、レイテンシ、メモリを削減すると同時に、最大限のスループットを実現 |
PHY IP
■ | 低消費電力/省面積 - 競合他社のソリューションと比較し、最大1/2に削減 |
■ | 優れた性能マージンと受信感度 |
■ | 完全な高速製造テストに対応した先進の組み込み診断 & ATEテストベクタ |
検証用 IP
■ | デジタルコアのすべてのコンフィギュレーションを検証 |
■ | ダイレクト/コンストレインド・ランダム・トラフィック生成をサポート |
■ | PCIe規格準拠検証 |
シノプシスは PCI Express IPのマーケットリーダー(2007年データクエスト調べ)として、次世代の革新的PCIe IPソリューションを市場に提供し続けています。高品質な製品をご提供すべく、PCI Express向けDesignWare IPは、量産における製品出荷で、サードパーティによる広範なインターオペラビリティ・テストを実行しています。シノプシスは、厳しい品質基準と専門知識豊富な技術サポートチームにより、次世代のPCIe対応デスクトップ、モバイル、コンシューマ、および通信システムオンチップの開発期間の短縮と統合リスクの削減を可能にします。
PCI Express向けDesignWare IPの詳細については、www.synopsys.com/designware をご参照ください。
0 コメント:
コメントを投稿