Re: high speed isoch => why number of packets has to be a multiple of 8 ? by Tim
Tim
Tue Jul 27 16:25:18 CDT 2004
m.tahamasood@gmail.com (M Taha Masood) wrote:
>Hello Hari,
>
>If you have a look at the USB 2.0 specification document in the
>section 8.4.3.1 , titled "USB Frames and Microframes" , it says:
>
>It says:
>
>QUOTE BEGIN
>SOF packets are generated (by the host controller or hub
>transaction translator) every 1ms for full-speed links. SOF packets
>are also generated after the next seven 125 µs periods for high-speed
>links.
>
>High-speed devices see an SOF packet with the same frame number eight
>times (every 125 µs) during each 1 ms period.
>
>QUOTE END
>
>Question:
>1) Why are SOF packets in the high speed generated after 8 125 micro
>second periods , even for high speeds , and why not after every single
>125 micro second clock tick ?
Partly for compatibility: so that frame numbers increase at a constant 1
kHz rate regardless of speed, so you can keep some sense of alignment on
two different link speeds. High-speed still keeps the concept of a 1 ms
frame; the lesser divisions are microframes, and there is no specific
announcement packet for those. Partly for performance: there is no real
need to send an SOF any more often, so why waste 8 times the bandwidth?
>2) Does this have anything to do with the limitation of windows USB
>stack that requires in high speed isochronous mode , number of packets
>sent per IRP/URB ot be a multiple of 8 ? looks like there is a link ,
>but i am not understandnig it correctly .
Could be. This is also partly a performance issue. You do not want to
force the drivers to exchange IRPs every 125 microseonds, so just stick to
what is known to work.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc