0

X86 プラットフォームのルート コンプレックスからエンドポイントまでの単一 Memwr TLP (BAR ACCESS) の最大サイズは?

私のシステムのセットアップでは、X86 PC にプラグインされた PCIe エンドポイント デバイスがあり、このデバイスの bar0 サイズは 1 MB で、この範囲のメモリはユーザー空間にメモリ マップされています。

メモリの部分にデータをコピーすると、エンドポイント側でバー アクセス (MemWr) を取得できました。しかし、1 MB などの大きなコピーを行うと、Memwrリクエストは常に非常に小さなMemwr TLP ( 8バイトまたは 4 バイト) に分割され、128 バイトの最大ペイロード サイズからはかけ離れています

ルート comlex がリクエストを分割したのはなぜですか? これは X86 プラットフォームに関連していますか? X86 プラットフォームのルート コンプレックスからエンドポイントまでの Memwr TLP の最大サイズは?

ありがとうございました。

4

1 に答える 1

0

リンク上で使用される最大ペイロード サイズ (MPS) は、EP MPS と RC MPS の間の最小値です。あなたの場合、ここでの制限数値はRCの数値のようです。

これが発生するもう 1 つの理由は、十分なフロー制御クレジット (FCC) がない場合、FCC が必要な値に到達するのを待つ代わりに、ドライバーが自律的に MWr を分割することを選択できることです。

乾杯、ナダブ。

于 2013-07-03T18:44:00.557 に答える