So überprüfen Sie die PCIe-Version und -Geschwindigkeit unter Linux

So überprüfen Sie die PCIe-Version und -Geschwindigkeit unter Linux

PCIE verfügt über vier verschiedene Spezifikationen. In der folgenden Abbildung sehen wir uns zwei davon an.

Überprüfen Sie die PCI-Steckplätze auf dem Motherboard

# dmidecode | grep --color "PCI"

Die den verschiedenen PCIe-Versionen entsprechenden Übertragungsraten lauten wie folgt:

Die Übertragungsrate wird in GT/s und nicht in Gbit/s angegeben, da die Übertragungsrate Overhead-Bits enthält, die keinen zusätzlichen Durchsatz bieten.
Beispielsweise verwenden PCIe 1.x und PCIe 2.x das 8b/10b-Kodierungsschema, wodurch 20 % (= 2/10) der ursprünglichen Kanalbandbreite belegt werden.

GT/s – Gigatransfer pro Sekunde, also die Anzahl der Übertragungen pro Sekunde. Der Schwerpunkt liegt auf der Beschreibung der Ratenattribute des Kommunikationsprotokolls der physischen Schicht, die möglicherweise nicht mit der Verbindungsbreite usw. verknüpft sind.

Gbit/s – Gigabits pro Sekunde. Es besteht keine proportionale Umrechnungsbeziehung zwischen GT/s und Gbps.

Berechnungsmethode für den PCIe-Durchsatz (verfügbare Bandbreite):

Durchsatz = Übertragungsrate * Kodierungsschema

Beispielsweise unterstützt das PCI-e2.0-Protokoll 5,0 GT/s, was bedeutet, dass jede Lane die Übertragung von 5 Gbit/s unterstützt. Dies bedeutet jedoch nicht, dass jede Lane des PCIe 2.0-Protokolls eine Rate von 5 Gbit/s unterstützt.

Warum sage ich das? Weil das PCIe 2.0-Protokoll der physischen Schicht das 8b/10b-Kodierungsschema verwendet. Das heißt, für jeweils 8 übertragene Bits müssen 10 Bits gesendet werden; die zusätzlichen 2 Bits stellen für die obere Schicht keine sinnvolle Information dar.

Dann unterstützt jede Lane des PCIe 2.0-Protokolls eine Rate von 5 * 8 / 10 = 4 Gbps = 500 MB/s.

Am Beispiel eines PCIe 2.0 x8-Kanals beträgt die verfügbare Bandbreite von x8 4 * 8 = 32 Gbit/s = 4 GB/s.

Das PCI-e3.0-Protokoll unterstützt 8,0 GT/s, was bedeutet, dass jede Spur eine Übertragung von 8 GB pro Sekunde unterstützt.

Das PCIe 3.0-Protokoll der physischen Schicht verwendet das 128b/130b-Kodierungsschema. Das heißt, für jeweils 128 übertragene Bits müssen 130 Bits gesendet werden.

Dann unterstützt jede Lane des PCIe 3.0-Protokolls eine Rate von 8 * 128 / 130 = 7,877 Gbps = 984,6 MB/s.

Für einen PCIe 3.0 x16-Kanal beträgt die verfügbare Bandbreite von x16 7,877 * 16 = 126,031 Gbit/s = 15,754 GB/s.

Wie kann man erkennen, ob der PCI-E-Bus in Linux Gen (Generation) 1, Gen2 oder die neuere Gen3 verwendet?
#lspci kann alle Geräte im aktuellen System anzeigen. Es scheint jedoch nicht zu erkennen, welche Generation des PCI-E-Busses verwendet wird.

root@XXX# lspci 
00:00.0 Host-Bridge: Intel Corporation Haswell DRAM-Controller (Rev. 06)
00:01.0 PCI-Brücke: Intel Corporation Haswell PCI Express x16 Controller (Rev. 06)
00:01.1 PCI-Brücke: Intel Corporation Haswell PCI Express x8 Controller (Rev. 06)
00:02.0 VGA-kompatibler Controller: Intel Corporation Haswell Integrated Graphics Controller (Rev. 06)
00:03.0 Audiogerät: Intel Corporation Haswell HD Audio Controller (Rev. 06)
00:14.0 USB-Controller: Intel Corporation Lynx Point USB xHCI Host Controller (Rev. 05)
00:16.0 Kommunikationscontroller: Intel Corporation Lynx Point MEI Controller Nr. 1 (Rev. 04)
00:1a.0 USB-Controller: Intel Corporation Lynx Point USB Enhanced Host Controller Nr. 2 (Rev. 05)
00:1c.0 PCI-Brücke: Intel Corporation Lynx Point PCI Express Root Port Nr. 1 (Rev. d5)
00:1c.4 PCI-Brücke: Intel Corporation Lynx Point PCI Express Root Port Nr. 5 (Rev. d5)
00:1c.5 PCI-Brücke: Intel Corporation Lynx Point PCI Express Root Port Nr. 6 (Rev. d5)
00:1d.0 USB-Controller: Intel Corporation Lynx Point USB Enhanced Host Controller Nr. 1 (Rev. 05)
00:1f.0 ISA-Brücke: Intel Corporation Lynx Point LPC Controller (Rev. 05)
00:1f.2 IDE-Schnittstelle: Intel Corporation Lynx Point 4-Port SATA Controller 1 [IDE-Modus] (Rev. 05)
00:1f.3 SMBus: Intel Corporation Lynx Point SMBus-Controller (Rev. 05)
00:1f.6 Signalverarbeitungscontroller: Intel Corporation Lynx Point Thermal Management Controller (Rev. 05)
01:00.0 PCI-Brücke: PLX Technology, Inc. Unbekanntes Gerät 8724 (Rev. ca)
02:01.0 PCI-Brücke: PLX Technology, Inc. Unbekanntes Gerät 8724 (Rev. ca)
02:02.0 PCI-Brücke: PLX Technology, Inc. Unbekanntes Gerät 8724 (Rev. ca)
02:08.0 PCI-Brücke: PLX Technology, Inc. Unbekanntes Gerät 8724 (Rev. ca)
02:09.0 PCI-Brücke: PLX Technology, Inc. Unbekanntes Gerät 8724 (Rev. ca)
03:00.0 Ethernet-Controller: Intel Corporation I350 Gigabit-Netzwerkverbindung (Rev. 01)
03:00.1 Ethernet-Controller: Intel Corporation I350 Gigabit-Netzwerkverbindung (Rev. 01)
03:00.2 Ethernet-Controller: Intel Corporation I350 Gigabit-Netzwerkverbindung (Rev. 01)
03:00.3 Ethernet-Controller: Intel Corporation I350 Gigabit-Netzwerkverbindung (Rev. 01)
04:00.0 Ethernet-Controller: Intel Corporation I350 Gigabit-Netzwerkverbindung (Rev. 01)
04:00.1 Ethernet-Controller: Intel Corporation I350 Gigabit-Netzwerkverbindung (Rev. 01)
04:00.2 Ethernet-Controller: Intel Corporation I350 Gigabit-Netzwerkverbindung (Rev. 01)
04:00.3 Ethernet-Controller: Intel Corporation I350 Gigabit-Netzwerkverbindung (Rev. 01)
06:00.0 Ethernet-Controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung (Rev. 01)
06:00.1 Ethernet-Controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung (Rev. 01)
07:00.0 PCI-Brücke: PLX Technology, Inc. PEX 8732 32-Lane, 8-Port PCI Express Gen 3 (8,0 GT/s) Switch (Rev. ca)
08:01.0 PCI-Brücke: PLX Technology, Inc. PEX 8732 32-Lane, 8-Port PCI Express Gen 3 (8,0 GT/s) Switch (Rev. ca)
08:08.0 PCI-Brücke: PLX Technology, Inc. PEX 8732 32-Lane, 8-Port PCI Express Gen 3 (8,0 GT/s) Switch (Rev. ca)
08:09.0 PCI-Brücke: PLX Technology, Inc. PEX 8732 32-Lane, 8-Port PCI Express Gen 3 (8,0 GT/s) Switch (Rev. ca)
08:0a.0 PCI-Brücke: PLX Technology, Inc. PEX 8732 32-Lane, 8-Port PCI Express Gen 3 (8,0 GT/s) Switch (Rev. ca)
09:00.0 Ethernet-Controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung (Rev. 01)
09:00.1 Ethernet-Controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung (Rev. 01)
0e:00.0 Ethernet-Controller: Intel Corporation I210 Gigabit-Netzwerkverbindung (Rev. 03)
0f:00.0 Ethernet-Controller: Intel Corporation I210 Gigabit-Netzwerkverbindung (Rev. 03)
Wurzel@XXX#
root@XXX# lspci -tv
-[0000:00]-+-00.0 Intel Corporation Haswell DRAM-Controller
   +-01.0-[0000:01-06]----00.0-[0000:02-06]--+-01.0-[0000:03]--+-00.0 Intel Corporation I350 Gigabit-Netzwerkverbindung
   | | +-00.1 Intel Corporation I350 Gigabit-Netzwerkverbindung
   | | +-00.2 Intel Corporation I350 Gigabit-Netzwerkverbindung
   | | \-00.3 Intel Corporation I350 Gigabit-Netzwerkverbindung
   | +-02.0-[0000:04]--+-00.0 Intel Corporation I350 Gigabit-Netzwerkverbindung
   | | +-00.1 Intel Corporation I350 Gigabit-Netzwerkverbindung
   | | +-00.2 Intel Corporation I350 Gigabit-Netzwerkverbindung
   | | \-00.3 Intel Corporation I350 Gigabit-Netzwerkverbindung
   | +-08.0-[0000:05]--
   | \-09.0-[0000:06]--+-00.0 Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung
   | \-00.1 Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung
   +-01.1-[0000:07-0c]----00.0-[0000:08-0c]--+-01.0-[0000:09]--+-00.0 Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung
   | | \-00.1 Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung
   | +-08.0-[0000:0a]--
   | +-09.0-[0000:0b]--
   | \-0a.0-[0000:0c]--
   +-02.0 Intel Corporation Haswell Integrierter Grafikcontroller
   +-03.0 Intel Corporation Haswell HD-Audio-Controller
   +-14.0 Intel Corporation Lynx Point USB xHCI-Hostcontroller
   +-16.0 Intel Corporation Lynx Point MEI-Controller Nr. 1
   +-1a.0 Intel Corporation Lynx Point USB-erweiterter Hostcontroller Nr. 2
   +-1c.0-[0000:0d]--
   +-1c.4-[0000:0e]----00.0 Intel Corporation I210 Gigabit-Netzwerkverbindung
   +-1c.5-[0000:0f]----00.0 Intel Corporation I210 Gigabit-Netzwerkverbindung
   +-1d.0 Intel Corporation Lynx Point USB-erweiterter Hostcontroller Nr. 1
   +-1f.0 Intel Corporation Lynx Point LPC-Controller
   +-1f.2 Intel Corporation Lynx Point 4-Port-SATA-Controller 1 [IDE-Modus]
   +-1f.3 Intel Corporation Lynx Point SMBus-Controller
   \-1f.6 Intel Corporation Lynx Point Wärmemanagement-Controller
Wurzel@XXX#

Wenn unbekannte Geräte vorhanden sind, müssen Sie /usr/local/share/pci.ids.gz aktualisieren. Bitte beachten Sie die Aktualisierungsmethode http://benjr.tw/node/88

Fragen Sie zunächst die Identifikationsnummer der Inetl 82599EB Netzwerkkarte ab (bus:device.function)

root@XXX# lspci | grep --color 82599 
06:00.0 Ethernet-Controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung (Rev. 01)
06:00.1 Ethernet-Controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung (Rev. 01)
09:00.0 Ethernet-Controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung (Rev. 01)
09:00.1 Ethernet-Controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Netzwerkverbindung (Rev. 01)
Wurzel@XXX#

Bei PCI verwenden Geräte drei Nummern als Identifikationswerte, nämlich 1. „Busnummer“, 2. „Gerätenummer“ und 3. „Funktionsnummer“.

Die Zeit 06:00.0 bedeutet jetzt also Busnummer = 06, Gerätenummer = 00, Funktion = 0.

Diese drei Zahlen werden zu einem 16-Bit-Identifikationscode kombiniert.

Busnummer 8 Bit 2^8 Es können bis zu 256 Busse angeschlossen werden (0 bis ff),

Gerätenummer 5 Bit 2^5 Es können bis zu 32 Geräte (0 bis 1f) angeschlossen werden und

Funktion (Funktionsnummer) 3 Bits 2^3 Jedes Gerät kann bis zu 8 Funktionen (0 bis 7) haben.

Weitere Informationen zu #lspci finden Sie unter http://benjr.tw/node/543

Überprüfen Sie dann die Hersteller-ID und die Geräte-ID

root@XXX# lspci -n | grep -i 06:00.0
06:00.0 0200: 8086:10fb (Rev. 01)
Wurzel@XXX#

Linux verwendet Klassen-ID + Hersteller-ID + Geräte-ID zur Darstellung von Geräten. Der durch 0200: 8086:10fb dargestellte Gerätename lautet beispielsweise (Klassen-ID = 0200, Hersteller-ID = 8086, Geräte-ID = 10fb).

Überprüfen Sie abschließend die Bandbreite des angegebenen PCI-Gerätes

root@XXX# lspci -n -d 8086:10fb -vvv | grep --color Breite
  LnkCap: Port Nr. 9, Geschwindigkeit 5 GT/s, Breite x8, ASPM L0s, Latenz L0 <1 us, L1 <8 us
  LnkSta: Geschwindigkeit 5GT/s, Breite x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
  LnkCap: Port Nr. 9, Geschwindigkeit 5 GT/s, Breite x8, ASPM L0s, Latenz L0 <1 us, L1 <8 us
  LnkSta: Geschwindigkeit 5GT/s, Breite x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
  LnkCap: Port Nr. 1, Geschwindigkeit 5 GT/s, Breite x8, ASPM L0s, Latenz L0 <1 us, L1 <8 us
  LnkSta: Geschwindigkeit 5GT/s, Breite x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
  LnkCap: Port Nr. 1, Geschwindigkeit 5 GT/s, Breite x8, ASPM L0s, Latenz L0 <1 us, L1 <8 us
  LnkSta: Geschwindigkeit 5GT/s, Breite x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Wurzel@XXX# 

LnkSta: Die aktuelle vom System bereitgestellte Geschwindigkeit ist PCI-Express 2.0 (5GT/s)

LnkCap: Die aktuell vom Gerät verwendete Geschwindigkeit.

Die Geschwindigkeiten von LnkSta und LnkCap können unterschiedlich sein. Normalerweise bietet das System PCI Express 3.0, das Gerät verwendet jedoch 2.0.

Oben sind die relevanten Wissenspunkte, die dieses Mal vorgestellt wurden. Vielen Dank für Ihr Lernen und Ihre Unterstützung für 123WORDPRESS.COM.

<<:  Mehrere Möglichkeiten zum Aktualisieren von Batches in MySQL

>>:  Erläuterung zur Verwendung von „if“-Beurteilungsbedingungen in Summen- und Zählfunktionen bei der Verwendung von SQL-Anweisungen zum Sammeln von Daten

Artikel empfehlen

Anwendungsbeispiele für React Hooks (6 gängige Hooks)

1. useState: Funktionskomponenten Status geben An...

Einfaches Grafik-Tutorial zur Verwendung von Adobe Brackets

Adobe Brackets ist eine Open Source-, einfache un...

Zusammenfassung der Tipps zur CSS-Verwendung

Vor Kurzem habe ich mit der Aktualisierung meines ...

Automatische Sicherung der MySQL-Datenbank per Shell-Skript

Automatische Sicherung der MySQL-Datenbank per Sh...

Rsync+crontab regelmäßige Synchronisierungssicherung unter centos7

In letzter Zeit möchte ich regelmäßig wichtige in...

Vue implementiert Buchverwaltungsfall

In diesem Artikelbeispiel wird der spezifische Co...

Sublime/vscode – schnelle Implementierung zur Generierung von HTML-Code

Inhaltsverzeichnis Grundlegende HTML-Struktur Gen...

Vue + node realisiert Audioaufzeichnungs- und -wiedergabefunktion

Ergebnis: Der Hauptteil besteht darin, die Codelo...

Grundlegende Konzepte und allgemeine Methoden des Map-Mappings in ECMAScript6

Inhaltsverzeichnis Was ist eine Zuordnung? Unters...