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

Reply via email to