Announcement

Collapse
No announcement yet.

Use of multiple USB3 Loopback plugs to benchmark the total USB throughput of an SOC?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Use of multiple USB3 Loopback plugs to benchmark the total USB throughput of an SOC?

    We are benchmarking USB throughput of an Intel SOC with 4 embedded USB 3.0 ports. We ran the USB 3.0 Loopback plug in benchmark mode on each port. Each port had a benchmark of about 3.4 gbps.

    We then attached 2 USB 3.0 Loopback plugs to the system and ran benchmarks on each plug "simultaneously". Each plug benchmarked at about 3.4 gbps...
    Initially, we thought ..."OK ... these results are fantastic. We're done" However, wwe need to understand more about how the benchmark runs to understand our results.

    Here's the quandry:

    There are at least 2 ways the benchmark could operate: (Note both methods are legitimate implementations)

    Method 1: Continuous data flow: The software reads data continuously for an extended period of time. To compute the throughput benchmark, we only need to know the total data transferred and the total elapsed time (also known as the wall clock time)
    Method 1 Throughput = (Total Data Transferred) / (Total Elapsed Time)


    Method 2: Packetized data flow: The software does not send data continuously. Instead, software reads packets of data (the packets may or may not be quite large). To compute throughput, we need to know the total data transferred and the total packet time (total packet time is less than wall clock time)
    Method 2 Throughput = ( Total Data Transferred ) / ( Total Packet Time )

    If the PassMark USB 3 Loopback Plug Benchmark uses Method 1, then if we run 2 benchmarks simultaneously on two different ports, we can add the results together.

    However, if the PassMark USB 3 Loopback Plug Benchmark uses Method 2, then if we run 2 benchmarks simultaneously on two different ports, we CANNOT add the results together, because the packets for the two tests may be timeslicing and may not actually be running simultaneously

    SO ... HOW DOES THE BENCHMARK WORK? CAN WE RUN THEM IN PARALLEL TO MEASURE THE THROUGHPUT OF THE S.O.C.?
    thanks.

  • #2
    USB3 loopback plug measures the port throughput based on the Method 1.
    In the Benchmark test, the Test application initiates 64 transfers of 2Mbytes and adds them to the USB driver task queue. This reduces the latency between successive transfers on the host application side. When a transfer is done (2Mbytes of data), the application sends a new task to keep the driver queue always full. In the meanwhile, the benchmark thread keeps track of the successful data transfers and when the transferred data size has reached 128 megabytes, it measures the elapsed time (passed since the last 2 megabyte transferred) and calculates the throughput.

    Comment

    Working...
    X