mikrocontroller.net

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


Autor: root (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.

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

Autor: Thomas Müller (thomas1123) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mhh (Gast)
Datum:

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

Autor: Alfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Müller (thomas1123) Benutzerseite
Datum:

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

Autor: A. K. (prx)
Datum:

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

Autor: root (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: usbgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klar doch
geht doch schon aus der Spezifikation hervor!

Autor: ich (Gast)
Datum:

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

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.