USB-Speed

Hallo zusammen,
mit den Angaben zu USB-2, und USB-1.1 Spied bin ich etwas durcheinander.

  1. Test mit USB-2 Stick 128MB:
    a) Anschluß an USB-2 PCI-Karte:
    54MB vom PC zum Stick = 60sec. ~ 0,9 MB/s
    54MB vom Stick zum PC = 28sec. ~ 1,92MB/s
    b) Anschluß an USB-1.1 PC-Anschluß:
    54Mb vom PC zum Stick = 1min/45sec ~ 0,5 MB/s
    54MB vom Stick zum PC = 1min/08sec ~ 0,79MB/s

  2. Test mit USB-2 externe HD IBM-Travelstar 40MB:
    a) Anschluß an USB-2 PCI-Karte:
    54MB vom PC zum Stick = 25sec. ~ 2,16MB/s
    54MB vom Stick zum PC = 28sec. ~ 1,92MB/s
    b) Anschluß an USB-1.1 PC-Anschluß:
    54Mb vom PC zum Stick = 50sec ~ 1,08MB/s
    54MB vom Stick zum PC = 1min/25sec ~ 0,63MB/s

Laut Spec sollte:
USB 1.1 Low, Theoretisch Max.= 1,5 Mbit/sec ~ 0,19MByte/sec
USB 1.1 High, Theoretisch Max.= 122 Mbit/sec ~ 1,5 MByte/sec
USB 2 (Intel),Theoretisch Max.= 480 Mbit/sec ~ 60 MByte/sec

Aber daß erreiche ich nie, mein bester Wert liegt bei 2,16MB/s.
Woran kann daß liegen ??
Hat jemand eine Ahnung, oder habe ich da was falsch gemacht ?

Getestet am 60MHz; 256MB-RAM PC 133; Desktop mit WinME.

Gruß, Lothar

Hallo Lothar,

Aber daß erreiche ich nie, mein bester Wert liegt bei
2,16MB/s.
Woran kann daß liegen ??

Ganz einfach an der Technik im USB-Stick.
Höhere Geschwindigkeit gibt die nicht her, und falls „USB2-kompatibel“ auf der Verpackung stand, halte ich das für einen Werbe-Gag, denn USB 1 und 2 sind immer kompatibel, bis auf die Geschwindigkeit.
Gruß, Markus

Hallo Markus,
Danke für die Info.

BERICHTIGUNG ===> Mein Rechner hat nicht 60, sondern 600MHz !

Aber was sagst Du denn zu dem Test mit der USB-2 Festplatte ?

Gruß, Lothar

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Aber was sagst Du denn zu dem Test mit der USB-2 Festplatte ?

Habe ich irgendwie nicht ganz verstanden, weil du als Daten wieder „USB -> PC“ oder umgekehrt angibst.

Wie ist denn die Datenrate von externer Festplatte zu interner?
Dabei müsstest du doch auf wesentlich höhere Geschwindigeiten kommen?
Gruß - Markus

Hi,

was hast Du denn fürn USB2.0 Controller?
Sind die Treiber korrekt installiert?

Die theoretischen Werte sind fern der Realität. Mit USB2.0 und ner externen Platte 20Mb/s zu bekommen ist schon ordentlich.

Aber Deine Werte sind schon reichnlich mickrig, stimmt.

JD

Hallo Lothar,

Laut Spec sollte:
USB 1.1 Low, Theoretisch Max.= 1,5 Mbit/sec ~ 0,19MByte/sec
USB 1.1 High, Theoretisch Max.= 12 Mbit/sec ~ 1,5 MByte/sec
USB 2 (Intel),Theoretisch Max.= 480 Mbit/sec ~ 60 MByte/sec

Aber daß erreiche ich nie, mein bester Wert liegt bei
2,16MB/s.
Woran kann daß liegen ??

  1. Die Angaben in der Spec. ist die reine Bitrate der Übertragungsleitung, die Nutzdatenrate ist immer kleiner. Hinzu kommt, dass in halbduplex übertragen wird, also zum Senden und Empfangen wird die gleiche Leitung verwendet. somit kann nur entweder empfangen oder gesendet werden. Das Umschalten zwischen Empfangen und Senden benötigt auch etwas Zeit in welcher sich gar nichts auf der Leitung tut.
  2. Deine Nutzdaten-Daten werden zuerst einmal in Blöcke zerlegt und „verpackt“, d.h. es kommt eine Prüfsumme hinzu und zusätzliche Informationen wo die Daten herkommen und wo sie hin sollen.
  3. Zusätzlich zu den Datenblöcken müssen auch noch Befehle hin und her geschickt werden. Da kannst nicht einfach einen Datenblock an ein Gerät senden und erwarten, dass das Gerät dann schon weiss was es damit machen soll.
  4. Das Gerät braucht Zeit um einen Befehl zu verarbeiten, bevor nicht eine Bestätigung gekommen ist geht’s nicht weiter.
  5. Am USB sind mehrere Geräte angeschlossen und alle wollen bedient werden. Somit muss der USB-Controller dauernd auch diese abfragen ob sie etwas zu übertragen haben. Du wirst sicher keinen Spass haben, wenn deine USB-Maus einfach nichts macht, während du deine Daten zum Stick überträgst.
  6. Weiterhin werden die Geräte beim USB wärend des Betriebs an und abgesteckt, dadurch muss der Controller auch dauernd kontrollieren ob nicht ein Gerät dazugekommen ist oder eines abgesteckt wurde.

Heute ist es leider üblich, dass mit der technisch grössten Zahl werbung gemacht wird. Bei z.B. Festplatten wird dann die „Burst Rate“ angegeben, welche meist nur für einen Datenblock von 512 Byte erreicht wird.
Du kannst ja auch nicht die Zeit eines 100-Meter-Sprinters nehmen und damit ausrechnen wie lange er für die Marathon-Strecke benötigt. Aber die 100-Meter-Zeiten sehen in der werbung viel besser aus.

MfG Peter(TOO)

Hallo zusammen,
zuerst mal vielen Dank am alle für die guten Infos.
Ich hatte ja schon geschrieben, daß ich mich mit der MHz-Angabe meines Rechners vertan hatte, daß sind 600MHz, und nicht 60MHz.
Außerdem hat die Festplatte keine 40MB, sondern 40GB.
ENTSCHULDIGUNG, hatte wohl einen Hänger beim Schreiben !!

Zu Peter(TOO)
daß hast Du ja gut beschrieben, Dank nochmals für die Mühe. Aber was meinst du denn ist ein heute realistischer Übertragungs-Wert für USB-2 ??
Zu Deinen Ausführungen paßt übrigends auch mein weiterer Test an einem anderen PC mit fast leerer Festplatte, und keine Programm-Tasks im Hintergrund. Der hatte zwar nur eine 233CPU, aber da war alles schon mal um einiges schneller.

Aber jetzt zu den Fragen.  
Meine eingebaute USB-2 Karte ist eine PCI-Karte mit 4 USB-2 Ausgängen extern, und einem internen Anschluß.  
Die sollte eigentlich I.O. sein.  
  
\> Habe ich irgendwie nicht ganz verstanden, weil du als Daten  
\> wieder "USB -\> PC" oder umgekehrt angibst.  
  
Na ja, daß meint daß ich getestet habe, wie lange es braucht, um die 54 MB hin- u. -her zu schieben.  
  
Da sieht man ja schon, daß die Festplatte wesentlich schneller ist, wie der Stick.  
  
  
Gruß, Lothar  

Hallo Lothar,

Zu Peter(TOO)
daß hast Du ja gut beschrieben, Dank nochmals für die Mühe.
Aber was meinst du denn ist ein heute realistischer
Übertragungs-Wert für USB-2 ??
Zu Deinen Ausführungen paßt übrigends auch mein weiterer Test
an einem anderen PC mit fast leerer Festplatte, und keine
Programm-Tasks im Hintergrund. Der hatte zwar nur eine 233CPU,
aber da war alles schon mal um einiges schneller.

Aber jetzt zu den Fragen.
Meine eingebaute USB-2 Karte ist eine PCI-Karte mit 4 USB-2
Ausgängen extern, und einem internen Anschluß.
Die sollte eigentlich I.O. sein.

Das Maximum bei USB 1.1 liegt theoretisch, mit nur einem Gerät am Bus, bei 1.2 MByte/S.
Bei USB 2 ist die Berechnung recht kompliziert.

Noch etwas mehr Grundlagen zum USB:
Eigentlich ist das Ganze eine TimeSlice-Verfahren (Zeitschlitz).
Der Host arbeitet mit Frames, welche 1 MilliSekunde lang sind. So ein Frame wird auch Tranaktion genannt.
Die einzelnen Frames werden vom Host noch in „Scheibchen“ unterterteilt und jedem Gerät wird ein solches „Scheibchen“ zugewiesen. Dies kann jetzt vom Host(-Treiber) mehr oder weniger intelligent gemacht werden. Wenn nur ein Gerät angeschlossen ist kann der Host diesem einen Gerät den Ganzen Frame zuteilen, oder halt auch nicht.

Ein Gerät kann nur dann Daten senden, wenn es vom Host dazu aufgefordert wird, dazu wird vom Host dem Gerät ein entsprechender „Antwortschlitz“ zu geteilt.
Wie man bis hierher schon sieht hängt vieles vom Host(-Treiber) ab.
Hinzu kommt, Dass die Bestätigung eines Befehls, frühestens im nächsten Frame erfolgen kann.
Wie du siehst ist es einfach nur die Übertragungsgeschwindigkeit mit 12 MBite/s anzugeben, alles andere ist sehr schwierig und von Fall zu Fall ganz anders.

Da sieht man ja schon, daß die Festplatte wesentlich schneller
ist, wie der Stick.

Das liegt einerseits am eingebauten Controller und andererseits an der unterschiedlichen Technologie von Stick und Platte.
Auffallend ist das die Platte schneller beim Schreiben ist und der Stick ist aber beim Lesen schneller.

Beim Schreiben auf den Disk werden die Daten zuerst direkt in den Disk-Cache geschrieben, dann wird der Kopf positioniert und die Daten können endlich vom Cache auf die Platte kopiert werden. Ist der Cache teilweise gelehrt können sofort weitere Daten vom USB eingelesen werden.

Beim Lesen von der Disk, muss zuerst der Kopf positioniert und die Daten von der Platte in den Cache gelesen werden, bevor diese über USB gesendet werden können.

Bei einem Disk ist ein Cache, zumindest für einen Sektor (üblicherweise 512Byte gross), technisch zwingend nötig. Bei Heutigen Platten sind 1 oder 2 MByte für den Cache üblich, es gibt aber auch Laufwerke mit wesentlich grösserem Cache.

Beim Lesen vom Stick wird nicht einmal ein Cache benötigt, sondern die Daten können direkt vom FLAH-Speicher zum USB übertragen werden.

Beim Schreiben auf den Stick wird es etwas komplizierter. Die Daten müssen zuerst zwischengespeichert werden, da das Schreiben des FLASH-Speichers relativ lange dauert und je nach Algorithmus muss der gleiche Speicherplatz auch mehrmals beschrieben werden.

Hier werden meist nur kleine Zwischenspeicher (einige Hunder bis Kilobyte gross) verwendet.

MfG Peter(TOO)

Hallo Peter,
daß war ja mal ordentlich ausführlich.

Offensichtlich ist meine „Kiste“ etwas lahm, denn in einem anderen Notebook kam USB 2.0 ordentlich in Fahrt (der hatte auch keinen Virenscanner, Firewall, usw…).

Hab Dank für Deine Mühe.
Gruß, Lothar

Hallo Lothar,

Offensichtlich ist meine „Kiste“ etwas lahm, denn in einem
anderen Notebook kam USB 2.0 ordentlich in Fahrt (der hatte
auch keinen Virenscanner, Firewall, usw…).

Es kann auch an einem schlecht programmierten USB-Treiber liegen oder einem einfachen USB-Controller.
Es gibt USB-Controller, deren Hardware nur aus dem absolut Notwendigsten besteht, dabei muss dann fast alles von der CPU erledigt werden und „intelligente“ welche fast alles ohne zutun der CPU selbs erledigen können.

MfG Peter(TOO)