naja kommt auch stark darauf an was der controller zu tun hat, soll e rnur serielle signale einer maus weitergeben oder doch eher Daten verschieben...das geht dann unte randerem auch über die cpu...weiss jetzt aber auch nciht direkt wie windoof das alles regelt.
Auf jedenfall schickt ja der Controller pakete los die stur ne bestimmte grösse haben, diese haben dann ne Addresse im Kopf, jdes gerät im Hub hat sein eigene...deshalb muss auch windoof für jeden Port den Treiber extra reinschreiben.
Das Bus schlägt also die ganze zeit mit gleicher periode packetslot vor, kommen daten an werden sie passend verpackt und verschickt, kommen mehrere daten von verschiedenen geräten an wird halt erst ein Packet für gerät 1 versendet das nächste hat was für gerät 2 drin. Deshalb sind zeitkritische Anwendungen eher schlecht auf USB ausführbar.
Es wird auf keinen Fall irgendwas reserviert für eine bestimmte Datenverbindung meinetwegen Druck->PC oder so, dann könnte man ja gleich für jedes gerät ein eigenes kabel ziehen...Ist auch gar nicht das ziel von Seriellen Schnittstellen, da macht sich ein Paralleler Aufbau bezahlt...der aber schneller ein Resourcenproblem bekommt.
Interessant ist auch die Tatsache das eigentlich ein direktes Abfragen von Daten unter den geräten eigenltich gar nciht möglich ist, weil ja der Hostcontroller nur anfragen an die Geräte schickt aber es gar keine Anfragen von Geräte Seite aus gibt...deshalb gibt es die "on the go" Erweiterung, dort haben die geräte auch einen controller und können unter einander kommunizieren.
Das ist bei Firewire anders gelöst, da wird einfach "gedumpt" ohne beiderseitiger Controller, ähnlich wie ein Internetprotokoll, was zB bei reinen grossen Datenströmen ein vorteil ist, auch reicht an Host und das Gerät wo die daten anstehen kann einfach los senden ohne grossartig alles einzupacken...und braucht dementsprechend keine Chips dafür, wa skosten senkt.
Eigentlich müsste Wiki da ausreichen, vlt steht da noch mehr...ich werd mal kruz googln^^
So mal eine minute gelsen und mein Einfaches Verständnis von Datentransfer ist dahin^^ also USB bietet verschiedene Übertragugsmodi, wa sja auch sinn macht weil manch Anwendungen einfach mal bandbreite brauchen...
auszug aus Wiki:
Endpunkte [Bearbeiten]
USB-Geräte verfügen über eine Anzahl von durchnummerierten „Endpunkten“, gewissermaßen Unteradressen des Gerätes. Die Endpunkte sind in den Geräten hardwareseitig vorhanden und werden von der USB SIE (Serial Interface Engine) bedient. Über diese Endpunkte können voneinander unabhängige Datenströme laufen. Geräte mit mehreren getrennten Funktionen (z. B. Webcams, die Video und Audio übertragen) haben mehrere Endpunkte. Die Übertragungen von und zu den Endpunkten erfolgen meist unidirektional, für bidirektionale Übertragungen ist deshalb ein IN- und ein OUT-Endpunkt erforderlich (IN und OUT beziehen sich jeweils auf die Sicht des Hostcontrollers). Eine Ausnahme davon sind Endpunkte, die den sogenannten Control Transfer Mode verwenden.
In jedem USB-Gerät muss ein Endpunkt mit Adresse 0 vorhanden sein, über den die Erkennung und Konfiguration des Gerätes läuft, darüber hinaus kann er auch noch weitere Funktionen übernehmen. Endpunkt 0 verwendet immer den Control Transfer Mode.
Ein USB-Gerät darf maximal 31 Endpunkte haben: Den Control-Endpunkt (der eigentlich zwei Endpunkte zusammenfasst) und je 15 In- und 15 Out-Endpunkte. Low-Speed-Geräte sind auf Endpunkt 0 plus maximal zwei weitere Endpunkte im Interrupt Transfer Mode mit maximal 8 Bytes pro Transfer beschränkt.
Isochroner Transfer [Bearbeiten]
Der isochrone Transfer ist für Daten geeignet, die eine garantierte Datenrate benötigen. Diese Transferart steht für Full-Speed- und High-Speed-Geräte zur Verfügung. Definiert das Alternate Setting einen Endpunkt mit isochronem Transfer, so reserviert der Host-Controller-Treiber die erforderliche Datenrate. Steht diese Datenrate nicht zur Verfügung, so schlägt die Aktivierung des Alternate Settings fehl, und es kann mit diesem Gerät keine isochrone Kommunikation aufgebaut werden.
Die erforderliche Datenrate ergibt sich aus dem Produkt des Abfrageintervalls und der Größe des Datenpuffers. Full-Speed-Geräte können jede ms bis zu 1023 Bytes je isochronem Endpunkt übertragen (1023 kbyte/s), High-Speed-Geräte können bis zu drei Übertragungen je Micro-Frame (125 µs) mit bis zu 1024 Bytes ausführen (24 Mbyte/s). Stehen in einem Gerät mehrere isochrone Endpunkte zur Verfügung, erhöht sich die Datenrate entsprechend. Die Übertragung ist mit einer Prüfnummer (CRC16) gesichert, wird aber bei einem Übertragungsfehler durch die Hardware nicht wiederholt. Der Empfänger kann erkennen, ob die Daten korrekt übertragen wurden. Isochrone Übertragungen werden z. B. von der USB-Audio-Class benutzt, die bei externen USB-Soundkarten Verwendung findet.
Interrupt-Transfer [Bearbeiten]
USB-Maus für Notebooks
USB-Maus für Notebooks
Interrupt-Transfers dienen zur Übertragung von kleinen Datenmengen, die zu nicht genau bestimmbaren Zeitpunkten verfügbar sind. Im Endpoint Descriptor teilt das Gerät mit, in welchen maximalen Zeitabständen es nach neuen Daten gefragt werden möchte. Das kleinstmögliche Abfrageintervall beträgt bei Low-Speed 10 ms, bei Full-Speed 1 ms und bei High-Speed bis zu drei Abfragen in 125 µs. Bei Low-Speed können pro Abfrage bis zu 8 Byte, bei Full-Speed bis zu 64 Byte und bei High-Speed bis zu 1024 Byte übertragen werden. Daraus ergeben sich maximale Datenraten von 800 byte/s bei Low-Speed, 64 kbyte/s bei Full-Speed und bis zu 24 Mbyte/s bei High-Speed. Die Daten sind mit einer Prüfnummer (CRC16) gesichert und werden bei Übertragungsfehlern bis zu drei mal durch die Hardware wiederholt. Geräte der HID-Klasse (Human Interface Device), zum Beispiel Tastaturen, Mäuse und Joysticks, übertragen die Daten über den Interrupt Transfer.
Bulk-Transfer [Bearbeiten]
Bulk-Transfers sind für große Datenmengen gedacht, die jedoch nicht zeitkritisch sind. Diese Transfers sind niedrig priorisiert und werden vom Controller durchgeführt, wenn alle isochronen und Interrupt-Transfers abgeschlossen sind und noch Datenrate übrig ist. Bulk-Transfers sind durch eine Prüfnummer (CRC16) gesichert und werden durch die Hardware bis zu dreimal wiederholt. Low-Speed-Geräte können diese Transferart nicht benutzen. Full-Speed-Geräte benutzen Puffer-Größen von 8, 16, 32 oder 64 Bytes. High-Speed-Geräte verwenden immer einen 512 Byte großen Puffer.
Control-Transfer [Bearbeiten]
Control-Transfers sind eine besondere Art von Datentransfers, die einen Endpunkt erfordern, der sowohl In- als auch Out-Operationen durchführen kann. Control-Transfers werden generell in beide Richtungen bestätigt, so dass Sender und Empfänger immer sicher sein können, dass die Daten auch angekommen sind. Daher wird der Endpunkt 0 im Control-Transfer-Modus verwendet. Control-Transfers sind zum Beispiel nach dem Detektieren des USB-Geräts und zum Austausch der ersten Kommunikation elementar wichtig.
Die Links führen sogar zu nem Video^^ und auch anderen Seiten wo ausführlich darüber geplaudert wird und all eure Fragen beantworten werden...
Vielleicht etwas an der Frage vorbeigeredet, aber es bleibt so wie es ist:
Es gibt Geräte die sich Bandbreite Reservieren kann,
Pauschal zu sagen das und das Gerät kriegt diese bandbreite wäre mehr als dürftig für eine UNIVERSELLEN BUS(wer macht den bei euch Info Unterricht??)
USB ist ja in den jeweiligen Schritten pro sekunden eingeteilt (was dann auch der Hauptunterschied von USB 1.0/1.1 2.0 ist bzw dessen Übertragungsgeschwindigkeit), dh so und so viele Packete sind für ein Gerät reserviert dies geschieht dynamisch bzw. es bestimmt das gerät/Software, dann kommen halt die Burstdaten(Festplatten kopien) wenn mal was frei das ist auch der Grund warum du deine Maus immer noch bewegen kannst wenn du kopierst.
Zieht euch mal die video auf wiki rein sehr informativ, was sich so entwickelt hat...nagut ist ein Maci der da erzählt aber sollen ja auhc menschen sein
Achso eins noch auf einem Motherboard gibts meist nur einen Hostcontroller der dann meist mit an den BUS via PCIexp oder andere Links angebunden ist, das schafft eine Flaschenhals ab, extra USBhost auf PCI basis sind für 2.0 theoretisch schon zu langsam...es bieten die modernen Southbridges immer eine solche Schnittstelle.