Transfer speed on pipes

regarding the calculations for the transfer speed achieved in the Pipe tests:
seeing as the endpoint’s clock rate is fixed at 48MHz, could you please elaborate on how does the tester program manage to achieve speeds of up to ~300Mb/sec ?
thanks again,

A 16-bit-wide bus at 48 MHz can transfer a maximum rate of 96MB/s or 768Mb/s.


How can the bus be 16-bit wide if USB is a serial protocol? Normally, a bit is transferred at every rising edge of a clock, isn’t?

Thanks in advance,

You referred specifically to the endpoint clock. The endpoint clock is 48MHz. The endpoint bus width is 16-bits.

USB is, indeed 1-bit wide, but it isn’t dictated by the 48MHz. It’s clock is 480MHz.

Thank you for the quick responses so far. Still in regards to transfer speeds, could you go into more details about the “layers of setup required to perform a pipe transfer” mentioned at the user manual? what is the average time required for these setups?
Also, does the speed increase due to transfer length increase come to a stall after 8.0 MB transfer length, seeing as the only overhead factor mentioned is the setup time?

The setup is typically less than 2ms, but is not bounded since we’re at the mercy of the OS, other bus traffic, etc.

The maximum transfer length (per call) is 8 MB, so “after 8.0MB transfer length” is not applicable.