USB Latenz im Millisekundenbereich?

Gast #1875156
Lesenswert?

Alfred schrieb:
> Grundsätzlich gibt's bei USB Latenzen im Millisekundenbereich. Aber wie
> Du die spüren willst, bleibt ein Rätsel... ich würde mal sagen, alles
> kürzer als 20-30 ms spürt man nicht.

Oh doch.
Bei bei TCP/IP mit Einzelbestätigung der Pakete merkt man das schon 
deutlich.
#1875260
Lesenswert?

Woher kommt denn die Idee, dass der USB unendlich viel Dampf dahinter 
hat? Dahinter ist die PC CPU, die noch beliebig viele andere mindestens 
so wichtigen Dinge zu tun hat.
Falls man erhoehte Anforderungen hat, dann sollte man den PC als 
Visualisierungsstation betrachten, die keinerlei Zeitanforderungen 
erfuellt.
Das heisst, die zeitkritischen Dinge sollte man an externe Hardware 
auslagern.
#1875288
Lesenswert?

Die Anforderungen sind auch gewachsen. Bei RS232, zB 9600Baud, gibt's 
ein Byte alle Milisekunde. Mit einem 25MHz 386 unter DOS hatten wir also 
um die 25000 Befehle pro Byte, kein Betriebssystem.
Heute, bei USB 1.2, mit 10MBaud haben wir ein Byte alle Mikrosekunde. 
Ohne Betriebssytem waeren's auch 2500 Befehle bei 2.5GHz, nur wurde in 
der Zwischenzeit alles an die CPU ausgelagert. Frueher gab's mal 
Busmaster Diskcontroller, Busmaster Ethernet karten, gibt's alles nicht 
mehr, da zu teuer. Teilweise wird das Graphikmemory dem Hauptmemory 
weggenommen.
Gast #1875395
Lesenswert?

USB ist halt ein Schrott-Billig-Desktop-Bus. Für Industrie und 
Automation war der nie gedacht, ist der total ungeeignet.

Und ja: Die Latenz beträgt mindestens eine Millisekunde, per 
Definition im Protokoll. USB ist ein Billigprotokoll ohne Intelligenz, 
das macht die PHYs billig. Dafür läuft aber alles über Polling vom Root 
aus, und das nunmal im Millisekunden-Raster.

Und auch ja: Eine konventionelle serielle Schnittstelle lässt sich 
besser und einfacher in den Griff bekommen.
#1875406
Lesenswert?

Netter Versuch schrieb:

> der Zwischenzeit alles an die CPU ausgelagert. Frueher gab's mal
> Busmaster Diskcontroller, Busmaster Ethernet karten, gibt's alles nicht
> mehr, da zu teuer.

Bist du sicher, dass Disk-Controller wie SAS/SATA RAID in Hardware, 
Fibre-Channel-Adapter und die besseren Netzwerkadapter keinen 
Busmaster-Zugriff verwenden?

Aber die Entwicklung gibt es schon, das stimmt. Die auf Adaptecs 
bekannte Busmaster-SCSIs folgende Generation war zwar ebenfalls 
Busmaster-Technik, aber in der Komplexität reduziert. Da könnte aber 
neben der Preisfrage auch ein Stück weit die Erkenntnis Pate gestanden 
haben, dass es wenig Sinn ergibt, wenn ein superschneller Hauptprozessor 
Däumchen drehend wartet, während sein 2-3 Grössenordnungen langsamerer 
I/O-Kollege gemächlich dem Ergebnis entgegen trottet.

So wirkt beispielsweise die Übernahme bestimmtet TCP/IP-Funktionen durch 
Netzwerkadapter zwar entlastend für den Hauptprozessor, was bei 
hochbelasteten Servern nützlich sein mag. Bei Desktops und wenig 
belasteten Servern kann es jedoch die Performance sogar reduzieren.

Verwendung von Hauptspeicher für Grafikfunktion ist schlichtweg billiger 
und stromsparend. Wenn das Ergebnis ausreicht, warum nicht? Wenn es 
nicht ausreicht gibt es immer noch Myriaden von Alternativen.
#1875417
Lesenswert?

Netter Versuch schrieb:
> Busmaster Ethernet karten, gibt's alles nicht
> mehr, da zu teuer.

Naja, heute macht man das sauberer per DMA. Richtig, die ganz billigen 
RT8128-Karten können das nicht, da braucht man das auch nicht wirklich 
unbedingt. So bald Du aber in den Gigabit Bereich gehst können das 
plötzlich alle Karten, auch die billigen 6 Euro Dinger.
Ich glaub IDE-Controller ohne DMA gibts seit ungefähr dem Jahr 2000 
nicht mehr.
Unter Linux kannst Du zum Beispiel inzwischen "Zero Copy"-Server bauen. 
Wenn Du da eine Datei unverschlüsselt über ein Netzwerkprotokoll 
schicken willst, so schiebt der Plattencontroller die Blöcke der Datei 
in das RAM, der Kernel erzeugt die Header im RAM, und gibt der 
Netzwerkkarte die entsprechenden Befehle um daraus die fertigen Pakete 
zu generieren.

Busmaster nennt man das heute übrigens nicht mehr, da wir inzwischen 
auch im PC vom physikalischen Bus weg kommen. PCI-E hab nur noch 
physikalische Punkt-zu-Punkt Verbindungen.

> Teilweise wird das Graphikmemory dem Hauptmemory
> weggenommen.

Was ja an sich wieder "Busmaster" ist. :) Es ist ja nicht so als ob die 
CPU da Bit für Bit den Graphikspeicher ausgeben müsste.
#1875491
Lesenswert?

Christian Berger schrieb:

> Naja, heute macht man das sauberer per DMA.

Ähm... DMA steht hierbei nicht zur Debatte, auch Busmaster-Zugriff ist 
DMA. Der Unterschied: Unter dem Begriff DMA (mis)versteht man bei PCs 
oft den steinalten (Third Party) DMA-Controller mit seiner Begrenzung 
auf 16MB Adressraum, der schon länger praktisch nur noch für 
Floppy-Disks zuständig war.

> Busmaster nennt man das heute übrigens nicht mehr, da wir inzwischen
> auch im PC vom physikalischen Bus weg kommen. PCI-E hab nur noch
> physikalische Punkt-zu-Punkt Verbindungen.

Ok. Wenn der Begriff "Bus" nicht mehr passt obzwar man nicht unbedingt 
päpstlicher als der Papst sein muss: Wie nennt man das heute? Evtl. 
First Party DMA, so hiess das anfangs auch schon.
#1875673
Lesenswert?

Um zur Ausgangsfrage zurückzukommen: Ja, das ist leider normal und 
OS-unabhängig. Unter Linux genauso wie unter MacOS wie unter Windows. 
Wir haben hier Leer-Zeiten von bis zu 50 ms gemessen, wenn wir mit 
40MB/s Daten von einem externen Gerät über BULK IN streamen. Da muss man 
halt entsprechend puffern in der Hardware.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren