Hi, welche Methode ist am besten geeignet um 2 Kleinstcomputer (wie z.B. Pi & Co) miteinenander direkt zu verbinden (also nicht Ethernet), um die schnellste Verbindung (Datenrate) zu haben? Natürlich erwartet man in diesem Fall dass die Datenrate mehr sein muss als wenn man die Boards über ihre NICs verbindet. Wäre die SPI-Schnittstelle die geeignetste Methode für so ein Vorhaben? Ich dachte mir, dass man die 2 Boards direkt über Kabel verbindet und ein Kerneltreiber schreibt für die Kommunikation. Oder gibt es spezielle Bausteine um so was noch besser zu realisieren? Was bräuchte man zusätzlich wenn man 3 Nodes (anstatt 2) in Serie verbinden wollte, also in einer Art Ring-Netz? Oder gibt es hierfür bessere Alternativen? Bin für alle Ideen dankbar. Thx
Schneller wie über den NIC wirst du ohne PCIe Lanes nicht werden... Das was du bei der Latenz rausholst wirst du bei der Bandbreite verlieren. 73
Mutluit M. schrieb: > Natürlich erwartet man in diesem Fall dass die Datenrate > mehr sein muss als wenn man die Boards über ihre NICs verbindet. Nun, mit GBit-Ethernet sind um die 100 MB/s machbar, wenn die NICs schnell genug mit dem SoC verbunden sind. Beim RPi ist wegen dem USB-Anschluss dazwischen vielleicht die Hälfte machbar. Alle anderne Anschlüsse (abgesehen vom USB-Anschluss) sind langsamer. Mutluit M. schrieb: > Wäre die SPI-Schnittstelle die geeignetste Methode für so ein Vorhaben? Je nach Kabellänge sind damit 2 MB/s drin.
Am schnellsten wird es wohl werden, wenn du den LAN9514 USB Hub raus wirfst und beide SOCs über eine USB Bridge zusammen klemmst. Alternativ könnte man noch das CSI2 (Camera) Interface anschauen, dafür Treiber zu schreiben soll aber sehr schwer sein. Was soll das denn am Ende werden? Ein Rechen-Cluster? Denke auch an den Software Overhead für so einen Cluster. Selbst wenn du einen super schnellen Link zwischen den beiden CPUs hast, verlierst du viel Leistung durch die Aufteilung der Tasks.
Andre schrieb: > Alternativ könnte man noch das CSI2 (Camera) Interface anschauen, > dafür Treiber zu schreiben soll aber sehr schwer sein. Zumal damit nur die Empfangsrichtung geklärt wäre, nicht die Senderichtung.
S. R. schrieb: > Mutluit M. schrieb: >> Natürlich erwartet man in diesem Fall dass die Datenrate >> mehr sein muss als wenn man die Boards über ihre NICs verbindet. > > Nun, mit GBit-Ethernet sind um die 100 MB/s machbar, wenn die NICs > schnell genug mit dem SoC verbunden sind. Beim RPi ist wegen dem > USB-Anschluss dazwischen vielleicht die Hälfte machbar. > > Alle anderne Anschlüsse (abgesehen vom USB-Anschluss) sind langsamer. Ich habe Pi zwar als Beispiel genannt, aber eigentlich meinte ich eher Boards mit echtem GbE-NIC wie den Rock Pi 4 mit dem RK3399, oder etwas billigere Boards mit RK3328. Wie wird Native-GbE eigentlich angeschlossen? Ich meine welche Schnittstelle auf dem Board wird dafür benutzt? Oder hat so eine CPU direkte Unterstützung (Pins) für Eth? >> Mutluit M. schrieb: >> Wäre die SPI-Schnittstelle die geeignetste Methode für so ein Vorhaben? > > Je nach Kabellänge sind damit 2 MB/s drin. D.h. zusammenfassend: SPI ist Grössenordnungen langsamer als Eth. Schnellere Schnittstellen sind USB, SATA bzw. Parallel-SCSI. Danke allen für die Infos, jetzt kann ich in bestimmte Richtungen recherchieren.
Andre schrieb: > Am schnellsten wird es wohl werden, wenn du den LAN9514 USB Hub raus > wirfst und beide SOCs über eine USB Bridge zusammen klemmst. > Alternativ könnte man noch das CSI2 (Camera) Interface anschauen, dafür > Treiber zu schreiben soll aber sehr schwer sein. > > Was soll das denn am Ende werden? Ein Rechen-Cluster? Denke auch an den > Software Overhead für so einen Cluster. Selbst wenn du einen super > schnellen Link zwischen den beiden CPUs hast, verlierst du viel Leistung > durch die Aufteilung der Tasks. Es geht um einen schnellen Interconnect zwischen den Boards, ohne die bestehenden Anschlüsse dafür zu benutzen. Es sollte im Idealfall schneller als Eth sein, relativ einfach zu realisieren, und kostenmässig sehr wenig betragen. Also, vlt. ein billiges Expansion-Board herstellen für Bildung solch eines Clusters, evtl. um auch Boards verschiedener Hersteller miteinander zu verbinden. Also, erstmal nur eine Idee bzgl. der Machbarkeit.
Einfach und schnell wäre eine parallele Übertragung mit Busmaster-DMA Controller, falls vorhanden.
Mutluit M. schrieb: > Wie wird Native-GbE eigentlich angeschlossen? In der Regel "native", was auch immer das bedeutet. :-) > Ich meine welche Schnittstelle auf dem Board wird dafür benutzt? Das hängt vom jeweiligen Board ab. Du hast ja nichts konkretes spezifiziert und meine Annahme war falsch, also solltest du bevorzugt selbst ins jeweilige Datenblatt schauen. :-) > Oder hat so eine CPU direkte Unterstützung (Pins) für Eth? Die meisten SoCs haben direkte Unterstützung für ein MII oder RMII-Interface, wo man direkt den Ethernet-PHY anklemmen kann. Das eigentliche Ethernet-Signal kommt nur selten aus den Pins raus, weil elektrisch inkompatibel und so. Andere SoCs unterstützen schlicht einen PCIe-Bus (oft 1x, manchmal 4x) und klemmen den NIC darüber an. Findet man vermutlich eher im Serverbereich, genauso wie schnelles SATA oder so. Mutluit M. schrieb: > Schnellere Schnittstellen sind USB, SATA bzw. Parallel-SCSI. Die meisten SoCs haben USB-Unterstützung, aber GbE ist schneller als mit USB2. Manche SoCs haben SATA-Unterstützung, aber eine SATA-Schnittstelle sagt nicht viel über die Geschwindigkeit der Datenübertragung aus. Eine SCSI-Schnittstelle ist mir an ARM-SoCs bisher nicht untergekommen. Ich empfehle dir ja GbE. Im Gegensatz zu den Alternativen ist das wenigstens für "geringe Latenz" (v.a. bei den Industrievarianten), "hohe Bandbreite" und "beliebige Daten" optimiert. Nachtrag: Gigabit-Ethernet mit IP unterstützt ohne weiteren Aufwand auch "Bus", "Adressierung", "Broadcast", "längere Strecken", "billig" und "elektromagnetisch verträglich". Aber mach nur, viel Spaß.
Der RK3399 SoC hat auch PCIe 2.1 (4 full-duplex lanes with 20Gbps). http://opensource.rock-chips.com/wiki_RK3399 Wäre das nicht die schnellste Verbindung zwischen 2 solcher Boards? Was bräuchte man um über PCIe ein schnelles Interconnect zwischen 2 solchen Boards zu realisieren?
Stefanus F. schrieb: > Einfach und schnell wäre eine parallele Übertragung mit Busmaster-DMA > Controller, falls vorhanden. Die SoCs RK3328 und RK3399 scheinen DMA zu haben. http://opensource.rock-chips.com/images/9/97/Rockchip_RK3328TRM_V1.1-Part1-20170321.pdf Angenommen die Boards takten mit 1.4 GHz, welche Geschwindigkeitsgrössenordnungen wären damit erreichbar zwischen 2 solchen Boards? Und welche Peripherie braucht man um so ein Interconnect zu bilden? Reichen nur Kabelverbindungen aus?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.