Wird ein USB high speed hub von einer Maus ausgebremst?
Nehmen wir an, dass die USB Maus nur 1M5bps schafft...
Leitet der Hub das dann auch mit 1M5bps weiter? Oder speichert er es erst mal und redet immer mit 480Mbps mit dem Host? Einen Zwischenspeicher braucht der Hub ja sowieso, weil mehrere Gerät ja gleichzeitig auf die Idee kommen könnten, zu senden... Oder muss der Hub an seinen anderen Ports iwi signalisieren, dass der Bus schon belegt ist, wenn an einem Port gerade traffic ist?
Ist ein USB Hub also eigentlich mehr ein Switch? Oder schickt er sogar Kopien seines Verkehrs an alle Ports?
3 Antworten
Das kommt auf den "Transaction Translator" an, bzw. ob der Hub über mehrere davon verfügt.
https://kb.atomminer.com/kb/what-are-multiple-tt-mtt-usb-hubs/
Grundsätzlich:
Windows ist objektorientiert programmiert, und arbeitet daher nach dem Ereignisprinzip. Es gibt Ereignisprioritäten. Eine davon ist die Maus. Solange also, prinzipiell die Maus nicht bewegt wird, generiert die Maus auch kein Ereignis. Tritt ein Mausereignis ein, wird das an Windows gemeldet. Windows unterbricht seine Arbeit und reagiert auf das Mausereignis. Klar ist, dass das seine Zeit braucht. In dieser Zeit wird also nichts weiter gemacht.
Das bedeutet, das tatsächlich Mausbewegungen die Geschwindigkeit des Systems ausbremsen.
Ein High Speed Hub kann gleichzeitig mit jedem Gerät mit max. 480Mbps, dabei werden auch unterschiedliche Geschwindigkeiten, also im Falle der Maus 1,5Mbps realisiert. Andere Geräte können dennoch gleichzeitig mit 480Mbps angesteuert werden. Natürlich hat ein solcher Hub auch einen Puffer, sodass die Daten der Maus gespeichert und maximal zum Host geleitet werden, während er wartet bis die Maus für Daten vom Host bereit ist. Richtig, ein solcher Hub ist eigentlich eher ein Switch also kein purer Verteiler sondern Koordinator.
ok... ja... ist sicherlich zutreffend...
aber ich meinte eher den Durchsatz des Hubs... nicht den des Gesamtsystems...