FAQ - PCIe Switche -Grundlagen, Historie. Einsatzgebiete, Relevanz für unraid -Ver 1.2


Recommended Posts

Und wieder glaube ich, daß eine FAQ die Welt etwas besser macht.


Also bitte schön Entwurf 1.3 (aktualisiert 28.03.2024):

(Es wird lang, wen es nicht interessiert: "Bitte gehen Sie weiter, hier gibt es nichts zu sehen!" 😁)

 

PCIe Switche (Chips/Steckkarten)

 

Ab und zu taucht das Thema PCIe Switch auf, weshalb ich es mal grob darstellen will.

 

Leider sind die echten technischen Eckwerte der jeweiligen Chips für mich kaum zu finden, weshalb ich beispielsweise keine Verbrauchswerte (elektrische Energie) angeben kann.

 

Grober Überblick:
Sehr einfach betrachtet kann man sagen, die PCIe Switchfunktion ist vergleichbar wie bei Ethernet Switchen für ein Netzwerk.

(wer einen Ethernetswitch oder sein grundlegendes Verhalten nicht kennt, muß sich das vielleicht irgendwo anders anlesen.)

Man hat eine Anbindung (upstream), die man meist auf mehrere weitere Anschlüsse (downstream) verteilen will.

Wobei beide Seiten, upstream und downstream in beide Richtungen Datentransferieren können (vgl. lesend und schreibend)!
Und da oft die Bandbreite des upstream nicht so groß ist, wie die Summe der downstreams braucht man ein bisschen 'Intelligenz', damit die Datentransfers sich nicht in die Quere kommen.

Das basiert auf der Annahme, daß bei gleichzeitigem Eintreffen von Datenverkehr, der eine oder andere ruhig etwas warten kann oder wenn er nicht alle Datenleitungen/Lanes benötigt eben ein Teil der Lanes gleichzeitig anderweitig verwendet werden kann.
Das zeitliche Verzögern (um geringste Zeiteinheiten im Nanosekunenbereich) oder anderweitige Benutzen aktuell unbenötigter/-genutzter Lanes ist gerade bei so hohen Geschwindigkeiten und Anzahlen von Lanes, wie sie bei PCIe oft anzutreffen sind, eher selten ein Problem.
Die üblichen Komponenten wie Grafikkarten (bis zu 16 Lanes), NVMe SSD (heutzutage üblich mit 4 Lanes) oder gar darüber betriebene SATA Kontroller sind nicht so leistungsfähig, daß sie exklusiv all ihre PCIe Anbindungen dauerhaft/permanent vollständig auslasten.

 

Historie (aus der Zeit, als NVMe SSD nicht wirklich vorhanden oder weit verbreitet waren):
Die PCIe Switch Technik wurde anfangs als extra Chips (mehrere nebeneinander aufgebrachte 'Käferreihen') direkt auf Mainboards aufgelötet, weshalb es dort Konstellationen gibt/gab, durch die mehr PCIe Devices/Lanes zur Verfügung stehen, als die CPU und Chipsatz eigentlich wirklich haben.
Da das aber eine (damals) eher teure und anspruchsvolle Technik war, Mainboards immer billiger werden sollten und auch nur wenige Extremisten wirklich sehr viel Lanes gleichzeitig belegen wollten, traf/trifft man das immer weniger an.
Auch wurden damalige PCIe Switche eher so eingesetzt, daß man damit Bifurcation ähnliches verhalten auf Mainboards realisierte (also einzelne Slots, die beispielsweise x16 beherrschten, auf 2 Slots zu je x8 verteilte).
Das findet man auch heute noch ab und zu, aber heute ist die dazu notwendige Funktion nicht als extra Chipreihe auf dem Mainboard aufgelötet, sondern dann doch eher in dem Chip(satz) direkt integriert.

 

Grundlage (hier darf man sich auch gerne bei Wikipedia oder so mehr Details anlesen):
PCIe (PCI Express) ist eine Technik in der eine Verbindung über eine Lane (Leiterbahn) realisiert wird.
Um schnell mehr Daten zu transferieren, als nur eine Lane transportieren kann, werden auch mehrere Lanes gleichzeitig verwendet.
Entsprechend hat sich die Bezeichnung eingebürgert:
    x1 für  1 Lane
    x2 für  2 Lanes
    x4 für  4 Lanes
    x8 für  8 Lanes
   x16 für 16 Lanes

Wenn man also das ursprüngliche PCIe x1 zugrunde legt hatte man mit PCIe x2 die doppelte Transfergeschwindigkeit, weil man doppelt soviele Lanes gleichzeitig nutzen konnte (vgl. eine breitere Autobahn).
Aber auch das stößt mit x16 an Grenzen, die man erweitern wollte.

 

Den ersten PCIe Standard nennt man heute zur Verdeutlichung PCIe 1.0 und er konnte pro Lane 250MByte/s = 0,25GByte/s transportieren.
Man entwickelte dann in Folge PCIe 2.0, 3.0, 4.0, 5.0 welche es alle im Markt gibt. An Nachfolgern wird auch schon gearbeitet.
Jeder dieser Standards verdoppelt ebenfalls die Geschwindigkeit, so daß man mit PCIe 3.0 x1 (also 1 Lane) mit seinen fast 1GByte/s die gleiche Transfergeschwindigkeit seiner Nutzdaten erreichen kann wie mit PCIe 1.0 x4 (4 Lanes) oder PCIe 2.0 x2 (2 Lanes).

 

Hier unwichtige Zwischeninfo 1:
 a) Es gibt auch Zwischenschritte wie beispielsweise PCIe 3.1, aber die haben nur Funktionen/Verbesserungen hinzugefügt, ändern aber nichts an der Geschwindigkeit.
 b) In einigen Fällen ist die Steigerung nicht exakt die doppelte Geschwindigkeit, aber da es sich um eher kleine DIfferenzen handelt, spricht man weiterhin von Verdopplung und nennt auch diese Zahlen.

 

Hier unwichtige Zwischeninfo 2:
 PCIe ist generell so entwickelt, daß sich eine modernere Komponente an die Geschwindigkeit der langsameren Komponente anpaßt.
 Steckt man eine PCIe 4.0 Grafikkarte mit x8 (=maximal rund 8 Lanes mit je 2 GByte/s = 16GByte/s) in ein Mainboard mit PCIe 2.0 x16 Schnittstelle (=maximal rund 16 Lanes mit je 0,5 GByte/s = 8GByte/s), dann kann diese modernere Grafikkarte zwar elektrisch Kontakt zu 8 der vorhandenen 16 Lanes im Steckplatz aufnehmen, drosselt ihre Schnittstelle dann aber auf die PCIe 2.0 herunter (=maximal rund 8 Lanes zu je 0,5 GByte/s = 4GByte/s).

 

Da es nicht wirklich möglich ist auf einem Mainboard, welches beispielsweise zu seiner Zeit mit PCIe 2.0 Bausteinen designt wurde auf magische Weise echte PCIe 3.0 oder höhere Standards zu nutzen, bleibt einem also nur mehr Lanes zu verwenden um mehr Geschwindigkeit für die jeweilig anzuschließende/einzusteckende Komponente zu erreichen oder gar überhaupt erst eine Anschlußmöglichkeit zu bieten.

 

Hier kommen sie endlich: die heute bekannten und langsam im Preis fallenden PCIe Switche!
Man hat also ein Mainboard mit festen Begebenheiten.
Eine bestimmte Anzahl von PCIe Erweiterungsslots mit einer jeweils fest verlöteten Anzahl von Lanes darin und einem maximal möglichen Standard (beispiels PCIe 3.0).
Man will aber vielleicht mehr Komponenten anschließen, als man auf dem Mainboard Lanes zur Verfügung hat (weil auch die CPU und der verwendet Chipsatz zusammen nicht mehr bereitstellen oder sie selber nicht aufteilen können).
Nun kann man eine Steckkarte in einen vorhandenen PCIe Steckplatz einbauen, welche die vorhandenen Kontakte/Lanes im Slot (upstream) per elektrisch betriebenem Chip auf viel mehr Kontakte/Lanes (downstream) verteilt.

Wie oben schon erwähnt ist das ein Trick.

Wenn alle downstream Lanes absolut gleichzeitig maximal ausgelastet werden und Daten zum/vom Mainboard senden/empfangen wollen, muß der PCIe Switch (Chip) die eine oder andere Verbindung kurz ausbremsen (oder anders verteilen), damit alle nacheinander ihre Informationen/Daten transferierten können.
Aber da PCIe eben extrem schnell ist und die Komponenten am downstream eigentlich nie wirklich durchgehend alle ihre Lanes voll ausnutzen verteilt sich das recht gut und man kann damit eben mehr Komponenten anschließen, als das Mainbaord eigentlich vorsieht.

 

Nun zur verfügbaren Realität:
Diese zusätzliche einsetzbaren PCIe Switche sind in der Regel als PCIe Steckkarte realisiert und hier muß man einmal im Auge behalten, daß man in einem PC Gehäuse nicht so einfach Steckkarte in Steckkarte in Steckkarte in Steckkarte ... stopfen kann und das dann noch mechanisch stabil hält oder gar Platz findet. Auch weiß ich nicht, ob man PCIe Switche in beliebig astronomischer Zahl hintereinander betreiben könnte. So verrückt und reich war ich bisher noch nicht um das auszuprobieren.


Und andererseits ist selbst mit dem Trick, daß ein PCIe Switchchip die downstreams verteilt bedient irgendwann die Sättigung des upstream erreicht. Man kann also nicht endlos mit PCIe Switchen die Lanes weiter austocken ohne merkliche Performanceeinbußen zu bekommen.

 

Zusätzlich benötigen diese PCIe Switche elektrische Energie. Anfangs deutete ich schon an, daß diese technischen Details/Datenblätter für mich nicht zugänglich sind, aber allein schon die Tatsache, daß sehr viele dieser PCIe Switch Steckkarten mit recht massiven Kühlkörpern (und sogar Lüftern) auf den /für die Chips daher kommen sollte einem zu denken geben. Man gewinnt Lanes, ver(sch)wendet dafür aber einiges an elektrischer Leistung.

 

Wofür braucht man PCIe Switche:
Heutzutage gewinnen PCIe SSD in der M.2 Bauform immer mehr Bedeutung. Diese werden heutzutage der Einfachheit (von mir 😁) gerne NVMe SSD bezeichnet um sie von bauähnlichen SATA SSD zu unterscheiden.
Diese NVMe SSDs mit ihrer weit verbreiteten 2280 Baugröße verwenden überwiegend x4 PCIe Anbindungen.
Leider ist die 2280 Baugröße so 'klein' daß aktuell bei rund 4TB Datenspeicherplatz Schluß ist.
Das ist viel, aber nicht für Jeden genug.
Von SATA SSD und Festplatten ist man gewohnt einfach eine weitere SATA SSD an einen anderen SATA Port zu stecken und schon hat man in Summe mehr Platz. SATA Ports sind eben einfach(er) nachzurüsten.
Auch sind SSD in 2,5inch Bauform (egal ob nun SATA oder auch in der weniger verbreiteten SAS Technik) viel größer und können schon so mehr Chips/Speicherplatz aufnehmen und bereitstellen.


Bei NVMe SSD in der heute oft zu sehenden M.2 2280 Bauform braucht man einen neuen PCIe Anschluß um eine weitere solche SSD zu betreiben.
Teure Mainboards mit mehreren M.2 Slots tauchten auf dem Markt auf, doch irgendwann ist es jemand nicht genug und man will noch mehr.
Hier kommen die PCIe Steckplätze/Slots ins Spiel. Da M.2 NVMe Steckplätze und PCIe Slots elektrisch fast das gleiche sind (abgesehen von Betriebsspannungen und mechanischer Stabilität) kann man PCIe Slots sehr einfach so adaptieren, daß man da auch m.2 NVMe SSD drin betreiben kann.

Doch auch damit hat man irgendwann eine Grenze erreicht und auch alle PCIe Slots sind bis zu ihrem möglichen mechanischen Maximum belegt.

 

Hier kann man nun mit PCIe Switchen die Grenzen etwas erweitern.
Je nachdem, welche Art von PCIe Switch man einsetzt sind meist Verdopplungen der PCIe Lanes üblich.
Hier komme ich nun zu  den real verfügbaren Chips, die von Steckkartenherstellern auch auf Steckkarten aufgelötet angeboten werden.
Chiphersteller ASMedia hat da ein recht breites Portfolio.

Ein weiterer Hersteller ist Broadcom (bekannt von seinen 3Ware-/Avago-Kontrollern und PlexCom Chips) ist in dem Marktsegment unterwegs, aber preislich meist eher der Luxusbereich.

 

Hier Infos zu den Eckdaten der Chips selber:
Wie die jeweiligen Steckkartenhersteller die Chips und deren Ports dann ausführen und konfigurieren ist deren individuelle Sache.

 

Der ASM1184e ist ein PCIe 2.0 x1 Switch (maximal 0,5GByte/s upstream) der auf bis zu 4 downstream Ports PCIe 2.0 x1 verteilt.
 Gerne verwendet für Mining-Systeme, bei denen nur beim Start die Miningsoftware zu diversen Grafikkarten oder so transferiert wird und dann die Grafikkarten selber den Programmcode auf sich selbst ausführen und im Verlauf ihrer Arbeit zeitlich unterschiedlich nur sehr wenige Daten zurück an das Mainboard liefern. Hier werden gerne USB3.0 Steckverbinder & Kabel eingestzt, die aber dann kein USB3.0 Signal sondern PCIe 2.0 transportieren.

Seit kurzem tauchen auch immer mehr PCIe M2 Steckkarten für 4 M.2 NVMe SSD mit diesem Chip auf. Technisch funktioniert das, aber man ist eben in Summe auf nur maximal 0,5GByte/s begrenzt. Es könnte ein Kompromiß für ältere Systeme sein, bietet dann aber eben nicht mehr Geschwindigkeit als ein 4fach SATA Kontroller es auch könnte.

 

Der ASM1812 ist ein PCIe 2.0 x4 Switch (maximal 2GByte/s upstream) der auf bis zu 8 Lanes (aber nur maximal 6 Ports) downstream PCIe 2.0 verteilt.
 Er wird bei eher günstigen Steckkarten eingesetzt, welche dann mechanisch einen PCIe 2.0 x4 Slot auf 2 Stück M.2 Slots 'verteilen'. Durch die aktuell veraltete PCIe 2.0 Technik ist es (wenn man die Kühlkörper betrachtet) anscheinend weniger energieintensiv möglich eine brauchbare Transferleistung zu erreichen, die aber den Spitzenwerten heutiger PCIe 3.0, 4.0 oder gar 5.0 NVMe SSD nicht gerecht wird. Aber man sollte sich überlegen: braucht man diese Spitzenleistung von mehr als 2GByte/s wirklich?

 

Der ASM2812 ist ein PCIe 3.0 x4 Switch (maximal 4GByte/s upstream)
 Hier wird es interessant, wenn man heutige Leistung haben will und bereit ist daß dafür mehr Geld und Strom bei drauf geht:
 Einsatz bei Steckkarten, welche dann elektrisch die x4 Kontakte eines PCIe 3.0 Slots auf 2 Stück M.2 Slots mit bis zu PCIe 3.0 x4 'verteilen'.

 

Der ASM2824 ist ein PCIe 3.0 x8 Switch (maximal 8GByte/s upstream)
 Das ist der große Bruder des ASM2812 und er hat eine besondere Anwendung.
 Eingesetzt auf Steckkarten, welche dann mechanisch einen PCIe 3.0 Slot x8 auf bis zu 4 Stück M.2 Slots mit bis zu PCIe 3.0 'verteilen'.
 Die Besonderheit hier ist, daß man eben einen x8 Slot upstream voll ausnutzen kann. Oft sind solche Slots auf Mainboards vorhanden, aber eine x4 Karte kann im x8 eben nur die Hälfte nutzen.
 Und wenn man weiß, was Bifurcation ist, hat man bestimmt schon mitbekommen, daß es einige Mainboards gibt die selbst dann einen x16 Slot nur in x8x4x4 aufteilen können und man somit in einem solchen Slot leider nur 3 Stück M.2 x4 NVMe SSD verwenden kann obwohl genug Lanes für 4 Stück PCIe x4 NVMe SSD vorhanden sind.
 Da kommt so ein Kontroller ins Spiel der dann den verbleibenden x8 Slot weiter verteilen kann.
 Aber auch der ist weder billig noch stromsparend.

 

Nur, damit es nicht unter den Tisch fällt, ich erwähnte die Firma Broadcom. Diese hat auch einige PCIe Switche im Angebot (beginnen meist mit PEX) und sind im eher höherpreisigen Segment zu finden.
Hier nur ein Beispiel:
PEX8747 ist ein Switch für sehr hohe Performance im zeikritischen Video-/Multimediabereich.
 Eingesetzt um einen mechanischen einen PCIe 3.0 Anschluß/Slot(Port) x16 auf bis zu 4 andere x8 oder x16 Slots downstream zu verteilen.
 Hier gibt es gewisse Konfigurationsgrenzen, aber mit einer angegebenen Latenz von 'nur' 100 Nanosekunden (an anderer Stelle 150 Nanosekunden) wenn an x16 auf x16 beschaltet wird er als recht flott propagiert und sein Einsatzgebiet wird eher in fertigen Geräten für Multigrafikanwendungen gesehen.
Zu diesem Chip habe ich bei dem aktuellen Hersteller sogar Leistungswerte gefunden. Die Webseite spricht von Typ. 7,3W, das zugehörende PDF von 8W.

 

Zukunft: PCIe 4.0 Switche sind in Entwicklung aber auf dem Markt habe ich sie noch nicht gesehen.

 

So und nun zum Schluß wird es für unraid vielleicht noch interessanter:
Wenn man in unraid sehr viel Speicherplatz nutzen will, ist das aktuell mit SSD noch recht teuer.
Und Festplatten mit SATA sind von Preis pro TB immer noch erheblich günstiger als gleiche Kapazität in SSD.

 

SATA Kontroller für SATA Festplatten sind bei Mainboards entweder im Chipsatz schon eingebaut oder als Zusatzchip auf einem Mainboard aufgelötet (welcher auch per PCIe angelötet ist).
Aber vielleicht ist das nicht genug?


Man will vielleicht zusätzliche SATA Kontroller haben um noch mehr SATA Ports für Festplatten zu nutzen.
Und da kommen wir zu dem Punkt, daß auch irgendwann die PCIe Slots, in die man solche SATA Kontroller rein steckt, alle belegt sind.
Auch hier können die selben PCIe Switchkarten vielleicht helfen.
Wie ich in meiner anderen FAQ zum Thema SATA Kontroller andeutete haben die Chiphersteller leider mit der Entwicklung der SATA Kontrollerchips irgendwo Schluss gemacht und man findet nur 2Port, 4Port, 5 Port oder 6 Port SATA Kontrollerchip.
(siehe meine SATA FAQ - Link unten angehängt)

 

Hier kann man per PCIe Switch dann weiter gehen, wieder mehrere SATA Kontrollerchips anbinden und eine recht performante Lösung finden.

 

Es gibt dennoch ein recht großes "ABER":
Wie oben angedeutet schlucken performante PCIe Switches einiges an elektrischer Energie (werden warm und benötigen Kühlung/Luftbewegung).
Ob es nun stromsparender/sinnvoller ist einen PCIe Switch mit nachgeschalteten SATA Kontrollern zu verwenden (egal ob ein Hersteller das alles auf eine Steckkarte gegossen hat oder man es sich aus einzelnen Steckkarten zusammen stöpselt)
oder ob es stromsparender/sinnvoller ist gleich einen SAS Kontroller mit mehr Anschlußports zu verwenden ist fraglich.


Anfangs schon erwähnt: leider finde ich kaum Angaben der PCIe Switch-Chiphersteller, was die PCIe Switch Chips energetisch 'schlucken' und in so fern ist zu befürchten, daß das Konstrukt mit PCIe Switch und nachgeschalteten SATA Kontrollern mehr Strom frißt als ein vom Hersteller alles aus einer Hand in einer Komponente zusammen designter SAS Kontroller.

 

The End!

Ich hoffe es hilft jemand, wenn das Thema mal akut wird.

 

 

Meine oben erwähnte SATA FAQ ist hier zu finden:

 

Links:

PLX PEX 8747.

Hier ist die Webseite:

https://www.broadcom.com/products/pcie-switches-bridges/pcie-switches/pex8747

Und hier das PDF:

https://docs.broadcom.com/docs/12351854

 

Edited by DataCollector
Typos - Link zu Verbrauchswerten/ Ergänzung zum ASM1184e
  • Like 2
  • Thanks 4
Link to comment
  • DataCollector changed the title to FAQ - PCIe Switche -Grundlagen, Historie. Einsatzgebiete, Relevanz für unraid -Ver 1.2

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.