On Sat, 23 Dec 2006, Jon Smirl wrote: > I did a lot of reading last night on how USB works. I believe I > understand the problem now. My new hub has a single transaction > translator (TT). This TT provides support for the FS/LS devices. > Because there is only a single TT this limits the total FS/LS device > bandwidth to 12Mb on my 480Mb hub. If the hub had seven TTs I would > have had 84Mb for FS/LS devices and no problems. > > I've plugged six FS/LS and one HS device into the hub. Each of these > devices states how much bandwidth it requires. When you add these up > it is more than a 12Mb channel. Now that I understand this the USB > spec should never have allowed 7-port USB 2.0 hubs to be sold with a > single TT.
Not true. The fact that the full bandwidth isn't available isn't necessarily a fatal flaw, since most users wouldn't need to use it. For instance, if you have a high speed device plugged into one port and full speed devices plugged into the other six, you'd be okay. The TT would have to manage only six ports then, not all seven. > But for my device collection it doesn't appear to me that collectively > they are actually generating more that 12Mb of traffic. Is the EHCI > code smart enough to over commit the reservations requested by the > devices and then schedule based on actual use? It isn't nearly as simple as you seem to think. It's not just a question of how much traffic there is; it's also a matter of scheduling the transfers to take place at certain definite times. And ehci-hcd isn't free to overcommit on bandwidth reservations; the USB spec prohibits it from doing so. > I'm also confused about how my old 4-port FS hub worked. I had most of > the same devices plugged into it and it worked. It appear to be that > there shouldn't be any big scheduling differences between a 7-port FS > hub and a single TT HS hub. They both have the same problem of fitting > into a single FS channel. Can the FS scheduling code be applied to > the single TT HS hub case? No. They work completely differently. The old hub receives data from the computer at 12 or 1.5 Mb/s and sends the data out its downstream ports at the same speed. No complexity and no problems. By contrast, the new hub receives data from the computer at 480 Mb/s, has to buffer it internally, and then sends it out the appropriate downstream port at 12 or 1.5 Mb/s at the appropriate time. The buffering and timing requirements place very strong restrictions on how the hub can operate. Alan Stern ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
