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 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)
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.
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.
Comment