Reason why USB speeds don't match the specifications!

Protocol and engineering overheads. The reason for using such an encoding scheme is because serial protocols like USB, sata are clockless, they don't have an explicit clock line going from one device to the other.

However, you still need a clock to synchronise the data transfers, so clock-data recovery (CDR) is used to extract clock information from the data. CDR requires(not exactly, but best case) the same number of 0/1 bits in a limited data frame, if you have too many 0s or 1s, you don't have enough transitions (rising/falling edge) to perform CDR. This is the reason 8b/10b encoding was used, to place some extra bits that can counter the steady stream of same valued bits.

Another advantage of this scheme is that such an encoding scheme will try to achieve overall DC balance. Again, if you have too many same valued bits, your average voltage on the line changes (gets a DC bias). A DC bias can cause issues with charged devices not transitioning fast enough to the other state (1 bit biased capacitor might not immediately discharge when a 0 bit is received, thus corrupting the data stream).
 
Back
Top