We have a scenario as follows using BULK mode:

- High speed USB device that provides MPEG2 TS. Device has 2K FIFO.
- Stream rate is approx. 32 Mbit/s, so we see an IN token in about 7000
out of the 8000 microframes per second.
- Our USB client driver is queuing up 8 requests, then requeueing 1 on
Bulk complete, to make sure there is always a request ready for Host
Controller.
- The driver is requesting 564 bytes( 3 * 188) at a time.

Problem:

- Some microframes come back to back from Host controller without an
IN token
and we lose MPEG2 data from the device, since the device overflows
its FIFO.

IS there anything we can do in our client driver to increase throughput?

Thanks
decoder

Re: WinXP USB BULK mode High speed by Doron

Doron
Tue Jul 10 14:49:16 CDT 2007

what about a bigger transfer size per pended request? I have found that 2-3
pended requests will get all of the data off of the device, any more and you
are really just burning memory w/out any benefit.

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"decoder" <rcg_golf@verizon.net> wrote in message
news:eqLTmoxwHHA.2040@TK2MSFTNGP03.phx.gbl...
> We have a scenario as follows using BULK mode:
>
> - High speed USB device that provides MPEG2 TS. Device has 2K FIFO.
> - Stream rate is approx. 32 Mbit/s, so we see an IN token in about
> 7000 out of the 8000 microframes per second.
> - Our USB client driver is queuing up 8 requests, then requeueing 1 on
> Bulk complete, to make sure there is always a request ready for Host
> Controller.
> - The driver is requesting 564 bytes( 3 * 188) at a time.
>
> Problem:
>
> - Some microframes come back to back from Host controller without an
> IN token
> and we lose MPEG2 data from the device, since the device overflows
> its FIFO.
>
> IS there anything we can do in our client driver to increase throughput?
>
> Thanks
> decoder
>


Re: WinXP USB BULK mode High speed by decoder

decoder
Wed Jul 11 14:00:50 CDT 2007


"Doron Holan [MSFT]" <doronh@online.microsoft.com> wrote in message
news:4D299F6C-131A-4A91-86D0-9CB1A8D8DCAF@microsoft.com...
> what about a bigger transfer size per pended request? I have found that
> 2-3 pended requests will get all of the data off of the device, any more
> and you are really just burning memory w/out any benefit.
>
> d

Doron,

When you say bigger transfer size are you refering to the actual MPEG2
payload
that we are using (564 bytes), or are the size of the URB? I am just not
sure if we increase
the data payload to lets say 2 * 564, how that maps into the 512 byte max
data size for BULK mode?

Also you mentioned that 2 -3 pended or queued requests are typically enough,
how does using 8
burn memory?

Also in trying to get maximum throughput for even higher data rates , we are
looking at using ISO.
The USB spec. indicates that up to 3 1024-byte transactions are possible
with ISO. We never see
more than one IN token per microframe. So on the device side we modified
the "wMaxPacketSize"
field to advertise additional transactions per microframe. Bits [12:11] =
01. Is there anything in the
client USB driver that we need to modify to get the Host Controller to send
out 2 IN tokens per microframe
in ISO?

thanks
-decoder


>
> --
> Please do not send e-mail directly to this alias. this alias is for
> newsgroup purposes only.
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>
>
> "decoder" <rcg_golf@verizon.net> wrote in message
> news:eqLTmoxwHHA.2040@TK2MSFTNGP03.phx.gbl...
>> We have a scenario as follows using BULK mode:
>>
>> - High speed USB device that provides MPEG2 TS. Device has 2K FIFO.
>> - Stream rate is approx. 32 Mbit/s, so we see an IN token in about
>> 7000 out of the 8000 microframes per second.
>> - Our USB client driver is queuing up 8 requests, then requeueing 1 on
>> Bulk complete, to make sure there is always a request ready for Host
>> Controller.
>> - The driver is requesting 564 bytes( 3 * 188) at a time.
>>
>> Problem:
>>
>> - Some microframes come back to back from Host controller without an
>> IN token
>> and we lose MPEG2 data from the device, since the device overflows
>> its FIFO.
>>
>> IS there anything we can do in our client driver to increase throughput?
>>
>> Thanks
>> decoder
>>
>



Re: WinXP USB BULK mode High speed by chris

chris
Wed Jul 11 15:40:38 CDT 2007

On Jul 11, 2:00 pm, "decoder" <rcg_g...@verizon.net> wrote:

> When you say bigger transfer size are you refering to the actual MPEG2
> payload that we are using (564 bytes), or are the size of the URB? I
> am just not sure if we increase the data payload to lets say 2 * 564,
> how that maps into the 512 byte max data size for BULK mode?

He's saying issue reads to the host controller that are (much) larger
than 564 bytes, and do any necessary buffering inside your driver.
Plus, you should never issue a read that is not a multiple of the
endpoint's maximum packet size anyway, this can cause babble.

Common mistake: maximum packet size on the wire has nothing to do with
the transfer size requested from the stack. If you ask for, say, 8K,
the read will complete when you actually get 8K or when a short packet
(< 512 bytes, including zero) is received.

> Also you mentioned that 2 -3 pended or queued requests are typically enough,
> how does using 8 burn memory?

Because you always have eight URBs allocated instead of two?


RE: WinXP USB BULK mode High speed by Zhou

Zhou
Sun Jul 15 21:10:01 CDT 2007

To adjust MaximumTransferSize to 4k or more will reduce CPU utilizationã??


"decoder" wrote:

> We have a scenario as follows using BULK mode:
>
> - High speed USB device that provides MPEG2 TS. Device has 2K FIFO.
> - Stream rate is approx. 32 Mbit/s, so we see an IN token in about 7000
> out of the 8000 microframes per second.
> - Our USB client driver is queuing up 8 requests, then requeueing 1 on
> Bulk complete, to make sure there is always a request ready for Host
> Controller.
> - The driver is requesting 564 bytes( 3 * 188) at a time.
>
> Problem:
>
> - Some microframes come back to back from Host controller without an
> IN token
> and we lose MPEG2 data from the device, since the device overflows
> its FIFO.
>
> IS there anything we can do in our client driver to increase throughput?
>
> Thanks
> decoder
>
>
>

Re: WinXP USB BULK mode High speed by Tim

Tim
Tue Jul 17 23:30:06 CDT 2007

Zhou <Zhou@discussions.microsoft.com> wrote:
>
>To adjust MaximumTransferSize to 4k or more will reduce CPU utilization?

No, XP ignores the MaximumTransferSize. What you need to do is increase
the size of your requests. Instead of submitting 564 bytes per URB, say
(for example) 5640 bytes or 22560 bytes per URB.
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.