Forum: PC Hard- und Software USB Latenz im Millisekundenbereich?


von root (Gast)


Lesenswert?

Hi.

Kann es sein, dass USB eine deutlich spürbare Latenz im 
Millisekundenbereich hat?

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

Definitiv JA.

Selbst namhafte Hersteller der Automatisierungstechnik bekommen das 
nicht in den Griff.

Das Problem liegt darin begründet, dass man wohl nicht wirklich direkt 
auf den USB-Bus zugreifen kann und man sich damit begnügen muss wann das 
Betriebssystem mal Lust hat den Bus zu updaten.

MfG
Thomas

von mhh (Gast)


Lesenswert?

USB muss im Gegensatz zum Netzwerk der Prozessor alleine machen. Deshalb 
die größere Latenz.

von Alfred (Gast)


Lesenswert?

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.

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

Je nach dem was man über den Bus schieben will können das auch mal 50ms 
sein.

von (prx) A. K. (prx)


Lesenswert?

Fullspeed USB hat von der Arbeitsweise her ein Zeitraster von 1ms.
Öfter ist nicht.

von root (Gast)


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.

von Purzel H. (hacky)


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.

von usbgeek (Gast)


Lesenswert?

klar doch
geht doch schon aus der Spezifikation hervor!

von ich (Gast)


Lesenswert?

Bei rs232 gab es weniger Timingprobleme. Das hat man halt von einem 
riesen Protokolloverhead wie bei USB.

von Purzel H. (hacky)


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.

von Sven P. (Gast)


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.

von (prx) A. K. (prx)


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.

von Christian B. (casandro)


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.

von (prx) A. K. (prx)


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.

von Christian R. (supachris)


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.

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
Noch kein Account? Hier anmelden.