On 12/19/06, Jon Smirl <[EMAIL PROTECTED]> wrote: > I was giving the hub more credit than it deserved. I thought it was > doing store and forward so that it was talking 480Mb to the PC and > then 1Mb, 12Mb or 480Mb to the peripherals.
It is, but it makes none of the timing decisions itself. This makes sense in some way-- it lets the host controller and driver software exert exacting control over timing details, which can matter to some devices. That's... being somewhat diplomatic though. The practical effect from a driver standpoint is making everything fantastically more complicated :-) > If I understand correctly > it is switching the 1Mb or 12Mb traffic onto the PC at 1Mb or 12Mb > which would make scheduling harder. Actually, it is doing 480Mbps to the hub, but the translation timing details from 480Mbps to 480/12/1 are decided by the host controller/driver. The hub has a tiny buffer (about one microframe, best-case), a few rules it follows for store/forward and it's entirely up to the host controller to make sure the buffering is used correctly/optimally. USB has pages upon pages of special case timing that has to be handled in endless combination, and it's up to the software driver to find a way to make it work with a 188-byte hub buffer. That's not even getting into interleaved transaction ordering... Monty ------------------------------------------------------------------------- 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 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel