【PCIE】TLP送信3フェーズとセカンダリバスリセット

TLP 送信の 3 つのフェーズ

TLP 送信の 3 つのフェーズには、次のように PCIe プロトコル スタックのさまざまな層が関係します。
ここに画像の説明を挿入

TLP 送信フェーズ 1 (TS1): このフェーズはトランスポート層 (トランザクション層) で実行されます。この段階で、TLP パケットはエンコードおよびフォーマットされ、ストリーム ID やシーケンス番号などの制御情報が追加されます。同時に、フロー制御やエラー訂正などの関連処理もこの段階で実行されます。

TLP 送信フェーズ 2 (TS2): このフェーズはデータ リンク層で実行されます。この段階で、TLPパケットのビットストリームは物理層リンクの差動信号に変換され、物理層チップドライバー(ドライバー)を介してチャネルに送信されます。

TLP 送信フェーズ 3 (TS3): このフェーズは物理層で実行されます。この段階で、ドライバーはビット ストリームを物理層リンクの差動信号に変換し、チャネル上で送信します。受信機はこれらの信号を間引き、サンプリングし、デコードして元のビット ストリームを復元します。送信が成功すると、受信側は送信側に確認応答 (ACK) を送信して、データ送信プロセスを完了します。

したがって、TLP 送信フェーズはトランスポート層から始まり、データリンク層、物理層を経て、最終的にデータ送信を完了します。

TS1

PCIe プロトコルでは、TS1 は TLP 送信ステージ 1 (TLP 送信ステージ 1) を指し、短縮して TLP ステージ 1 とも呼ばれます。TLP は、PCIe システムでデータと制御情報を送信するために使用されるトランスポート層プロトコル (トランザクション層パケット) を指します。TLP 送信フェーズ 1 は、TLP パケットが物理層に送信される前に実行されます。これには次の手順が含まれます。

  1. 送信者は、ヘッダーの追加、CRC チェックの実行などを含めて、TLP パケットをエンコードします。
  2. 送信者は、エンコードされた TLP パケットを物理層で送信できるビット ストリームに変換します。
  3. 送信側はビット ストリームを物理層に送信して、送信プロセスを開始します。

したがって、TS1 は、TLP データ パケットがトランスポート層を通過する前の処理段階を指します。これには、データが物理層に正しく送信されることを保証するための TLP データ パケットのエンコードと変換が含まれます。なお、PCIe仕様では、TS1をDLLP送信ステージ1(Data Link Layer Packet Transmission Stage 1)と呼ぶことがあるが、意味は同様である。

TS23

PCIe プロトコルでは、TS2 は TLP 送信ステージ 2 (TLP 送信ステージ 2) を指し、TLP ステージ 2 または DLLP 送信ステージ 2 (データ リンク層パケット送信ステージ 2) とも呼ばれます。TS2 は、TLP パケットがデータリンク層に入るときの処理段階であり、その主なタスクは、トランスポート層でエンコードされた TLP パケットを物理層で送信できる差動信号に変換し、制御およびエラー訂正処理を実行することです。プリエンファシス、パワーコントロール、差動出力など。

TS3 は TLP 送信ステージ 3 (TLP 送信ステージ 3) を指し、略して TLP ステージ 3 とも呼ばれます。TS3 は物理層の処理ステージであり、その主なタスクは、受信側からの確認応答 (ACK) を待って、データが正常に送信されたかどうかを判断することです。成功した場合、送信者は上位層プロトコル スタックに通知します。成功しなかった場合は、再送信またはその他のエラー修正操作を実行します。

PCIe 仕様では、TS2 と TS3 はすべて PCIe プロトコル スタックのデータリンク層で実行されるため、これらをまとめてデータリンク層送信ステージと呼ぶこともあります。ただし、TS2 は主に物理層とデータリンク層間の変換処理を行い、TS3 は物理層が送信した結果の確認と処理を行います。

セカンダリバスリセット

セカンダリ バス リセットは、PCI Express (PCIe) バス プロトコルのリセット メカニズムであり、部分的に障害が発生した状態の PCIe デバイスとサブシステムを復元するために使用されます。

PCIe バスでは、各ルート コンプレックス (ルート コンプレックス) にプライマリ バスがあり、各セカンダリ バスはプライマリ バス上の PCI ブリッジに接続されています。セカンダリ バス上のデバイスまたはサブシステムに異常が発生すると、バスに接続されている他のデバイスも影響を受け、データ送信エラーやシステム クラッシュなどの問題が発生する可能性があります。現時点では、セカンダリ バス リセット メカニズムを使用して、これらの異常な状態を修復し、バスの通常の動作状態を復元することができます。

具体的には、ホスト コントローラは、セカンダリ バス上で異常な状況が発生したことを検出すると、セカンダリ バス リセット信号をバスに送信できます。この信号は、バスに接続されているすべてのデバイスとサブシステムにリセット操作を実行するように通知し、それらを初期状態に戻します。このプロセス中に、バスに関連するすべてのメモリ マップ領域とデバイス コンフィギュレーション レジスタがクリアされ、進行中のすべての DMA 操作が終了します。

セカンダリ バス リセット信号は現在のバス上のデバイスとサブシステムにのみ影響し、PCIe バスの他のバス上のデバイスとサブシステムには影響しないことに注意してください。したがって、複数のバスに異常がある場合、完全な修復効果を得るために各バスでリセット操作を実行する必要がある場合があります。

つまり、セカンダリ バス リセットは PCIe バス プロトコルのリセット メカニズムであり、部分的に障害が発生した状態にある PCIe デバイスとサブシステムを復元するために使用されます。バスに関連するすべてのメモリ マッピング領域とデバイス コンフィギュレーション レジスタをクリアし、重要な障害回復方法である進行中の DMA 動作を終了できます。

おすすめ

転載: blog.csdn.net/qq_21688871/article/details/131074750