Steve - repeat after me 12 % 8 != 1.1 Come on you know better than that, and you know me better than that. I know there are 8 bits in a byte. How many bits does it take to transmit a byte using standard serial protocol? 8? 9? 10? 11? actually all are true depending on whether synch or asynch, parity or not, 0 1 or 2 stop bits.
What about a non-deterministic pipe like ethernet? Can you take pipe bandwidth and divide by bytes to get throughput? Not even close. First there is collision detection overhead. But let's say for simplicity that we have only 2 nodes on the net, full duplex, so no collisions. We still have packet overhead, and the overhead varies with payload size. Ignoring for a moment large packet protocols, the best data transfer we can achieve in a 2-node setup is about 80% of pipe bandwidth. In a network with a significant number of active nodes, transfer rate drops to less than 60% of pipe bandwidth, typically more like 50%. So in that case, the divisor for a byte is 16, not 8.
Do you have either empirical or theoretical data that says that USB transmissions are 100% efficient use of the pipe? How do nodes get addressed? How is pipe arbitration accomplished? what about error detection and correction?
I am suggesting to you that if you have done either empirical or theoretical analysis of the USB protocol you will discover that the useful divisor to get byte rate from pipe bandwidth is 11, not 8, and the usable transfer rate is 1.1 MBps, not 1.5MBps.
Do I need to do more educating here or are you satisfied with this analysis? |