0

複数の PCIe 3.0 拡張カード (GPU および Infiniband 相互接続) を使用しています。レーンが実際にどのように管理されているか、ポートを変更するか、いくつかのアダプター (16x -> 8x) を使用してデバイスを最適化できるかどうか疑問に思っています。Intel Haswell-EPは、 40 レーンの PCIe 3.0を管理できます。Intel の回路図では、PCIe 3.0 コントローラーは 2 つの x16 サブブリッジと 1 つの x8 サブブリッジに分割されているようです。

Haswell-EP CPU の一部の商用回路図では、次のように読むことができます。

最大 40 の PCIe Gen3 レーン 2x16 + 1x8 から最大 3x8 グラフィックス。

すべてのデバイスがメインの PCIe ブリッジに接続されているか (およびレーンの数がデバイスごとに自動的にネゴシエートされているか)、またはマザーボードがデバイスを 3 つのサブブリッジ16x16xおよび8xのいずれかに直接接続しているか(レーンの数はその後ネゴシエートされます)これらのサブブリッジごとに)?

デバイスがどのように接続されているかを確認するためにマザーボードに直接アクセスすることはできませんが、おそらく 8x サブブリッジのレーンが使用されていないと思われます。また、16x から 8x へのアダプターを使用することで、より多くのレーンを活用し、PCIe 帯域幅の合計を増やすことができるかどうかも知りたいです (そのデバイスの理論上の最大帯域幅が 2 で割られるのは厳しいです)。

[編集]

1 つの CPU ソケットで得られるものの例lstopo:

HostBridge L#0
  PCIBridge
    PCI 15b3:1011
      Net L#16 "ib0"
      OpenFabrics L#17 "mlx5_0"
  PCIBridge
    PCI 8086:1d6b
  PCIBridge
    PCI 102b:0532
      GPU L#18 "card0"
      GPU L#19 "controlD64"
4

1 に答える 1

4

すべてのデバイスがメインの PCIe ブリッジに接続されているか (およびレーンの数がデバイスごとに自動的にネゴシエートされる)、またはマザーボードがデバイスを 16x、16x、および 8x の 3 つのサブブリッジのいずれかに直接接続されているか (レーンの数はその後ネゴシエートされます)これらのサブブリッジごとに)?

これは、少なくとも部分的にはマザーボード設計の機能であるため、具体的な回答はできません。ただし、マザーボードに PCIE スイッチなどの追加の PCIE ハードウェアがないと仮定すると、マザーボードには少なくとも 1 つの PCIE x16「ポート」といくつかの「ポート」、つまりスロットがあり、さまざまな「幅」、つまり x16 を持つ可能性があります。 、x8、x4、x2、x1など

最新の Intel CPU には、デバイスから出るすべてのレーンで共有される内部 PCIE「ルート コンプレックス」があります。デバイスから出るレーンは、1 つ以上の「ポート」にグループ化されます。PCIE ルート コンプレックスは論理エンティティですが、ポートには論理的特性と物理的特性の両方があります。

自動レーン幅ネゴシエーションがありますが、これは通常、サポートおよびエラー軽減戦略としてのみ実施されます。x16 ポートは、x16 の「エンドポイント」(つまりデバイス) が接続されている場合、x16 幅にネゴシエートすることを期待します (特定のレーンにローカライズ可能なエラーが検出された場合は、より低い幅にネゴシエートする場合もあります)。通常、ポートは幅の狭いデバイスを処理できるため、x8 デバイスが x16 ポートに接続されている場合、通常は「正常に機能する」でしょう。 .

x16 ポートを 2 つの x8 ポートに再構成することは、通常、「x16 から x8 へのアダプター」を接続することによって自動的に行われるものではありません。確かに x16 ポートを x8 ポートに減らすことはできますが、他の場所で使用するための 8 つの余分なレーンが自動的に得られるわけではありません。

Haswell デバイスから出る 40 レーンを論理「ポート」に分割するプロセスには、マザーボードのハードウェア設計とファームウェア (BIOS) 設計の両方が含まれます。x16 ポートを 2 つの (論理) x8 ポートに自動的に分割することはできません。一部のマザーボードにはそのような構成オプションがあり、通常、BIOS 構成、スイッチまたはルーティング PCB の変更などの明示的な手段によって選択され、可能なポートごとに 1 つずつ、2 つのスロットが提供されます。

ただし、かなり一般的なのは、PCIE スイッチの使用です。このようなスイッチを使用すると、1 つの PCIE (アップストリーム) ポートで 2 つ (またはそれ以上) のダウンストリーム ポートにサービスを提供できます。これは必ずしも x16 論理文字から x8 論理文字への変換を意味する必要はありませんが (実装によってはそうなる場合もあります)、通常は、アップストリーム ポートの帯域幅制限がダウンストリーム ポートにまとめて適用されることを意味します。それにもかかわらず、これはかなり一般的な製品戦略であり、既存のポート (つまり、スロット) であり、その単一のポート/スロットから複数のポート/スロットを提供します。

Linux 空間では、このlstopoコマンドはこれらのトポロジーを検出するのに役立ちます。hwlocLinux ディストリビューションにパッケージをインストールする必要がある場合があります。

于 2016-03-21T20:35:20.270 に答える