USB2, 32 MByte/s or 480MBit/s?

Hi,

I was wondering why can the USRP “only” achieve 32 MByte/s, i.e. 256
Mbit/s whereas the USB 2.0 specifications are 480 MBit/s? The 32
Mbyte/s is mentioned in several earlier posts on the gnuradio mailing
list archive and in the BBN report (freebsd section).

Thanks,

Thomas

On Friday 16 June 2006 13:19, Thomas S. wrote:

I was wondering why can the USRP “only” achieve 32 MByte/s, i.e. 256
Mbit/s whereas the USB 2.0 specifications are 480 MBit/s? The 32
Mbyte/s is mentioned in several earlier posts on the gnuradio mailing
list archive and in the BBN report (freebsd section).

For starters USB only does 480MBit/sec on the physical layer. It has
quite a
number of overheads which prevent this throughput being fully realised.

I believe the practical throughput IS higher that 256MBit/sec but I
don’t know
for sure (or what the bottleneck is)

Hi,

I was wondering why can the USRP “only” achieve 32 MByte/s, i.e. 256
Mbit/s whereas the USB 2.0 specifications are 480 MBit/s? The 32
Mbyte/s is mentioned in several earlier posts on the gnuradio mailing
list archive and in the BBN report (freebsd section).

One is ‘full-speed’ and the other is ‘high-speed’. Different chips are
required.

That is incorrect. Full speed is 12 megabits per second (1.5
megabytes/s) and the USRP doesn’t do full speed, only high speed.

The USRP easily does 256 megabits per second (32 megabytes/s). The USB
2.0 raw signalling rate is 480 megabits per second, or 60 megabytes per
second. You can’t get the full 480 because there is overhead from
packet headers, time between packets, etc. We could probably squeeze a
little more bandwidth out of the bus, but it isn’t a priority for now.

Matt

As a point of reference the SSRP was used in a radio astronomy
application
where maximum bandwidth was important and we were able to squeeze a
little
more than 40MB/s out of the bus.

I think this says that there is a little more to be had but that the
USRP
is doing a pretty good job at 32MB/s…

-David Carr

David Carr said:

As a point of reference the SSRP was used in a radio astronomy application
where maximum bandwidth was important and we were able to squeeze a little
more than 40MB/s out of the bus.

I think this says that there is a little more to be had but that the USRP
is doing a pretty good job at 32MB/s…

The SSRP and the USRP both use the same interface chip, but they run it
in different modes. The SSRP doesn’t support transmission, so it uses
a fully-automated hardware mode. The USRP needs data to go both ways,
so there are some firmware delays in the 8-bit processor that runs in
the interface chip.

If someone cared, it is probably possible to reprogram the firmware so
that when no data is being transmitted, the automatic hardware mode is
used. The firmware would have to know, or be told, when to switch in
and out of this mode. But this would gain 25% more bandwidth!

(A similar optimization could be done for transmit-only applications.
It’s mixed transmitting and receiving that takes more overhead. Also,
few people have looked at that firmware code; it may be possible to
optimize it further in other ways.)

Making this change might also require changing the Verilog code in the
FPGA, if the signals that it uses to communicate with the USB chip
today aren’t compatible with the fully automated hardware mode. If
you’re lucky, Matt and Eric already thought of that :slight_smile: while
debugging the USB interface, which was a hairy process due to
undocumented bugs in the USB chip.

John

PS: Hacking in similar places would also allow the USRP to run on
USB 1.1 at 12 megabits/sec, for low sample rate applications.

----- Original Message -----
From: “Thomas S.” [email protected]
To: “Discuss gnuradio” [email protected]
Sent: Friday, June 16, 2006 4:49 AM
Subject: [Discuss-gnuradio] USB2, 32 MByte/s or 480MBit/s?

Hi,

I was wondering why can the USRP “only” achieve 32 MByte/s, i.e. 256
Mbit/s whereas the USB 2.0 specifications are 480 MBit/s? The 32
Mbyte/s is mentioned in several earlier posts on the gnuradio mailing
list archive and in the BBN report (freebsd section).

One is ‘full-speed’ and the other is ‘high-speed’. Different chips are
required.

Leon