I/O Interfaces & Buses
What has been the purpose of 8b/10b encoding (sending 8 data bits as a 10-bit code) in serial links?
- ATo compress data and reduce the amount sent
- BTo balance the numbers of 0s and 1s and ensure frequent transitions so the receiver can recover the clock
- CTo encrypt data so third parties cannot read it
Show answer and explanation
Answer: B. To balance the numbers of 0s and 1s and ensure frequent transitions so the receiver can recover the clock
Long runs of 0s or 1s make the receiver's CDR lose timing and shift the average signal voltage, preventing correct decisions. 8b/10b encoding replaces 8 data bits with a 10-bit code that has nearly equal numbers of 0s and 1s and only short runs. The cost is 25% more bits on the wire, so data efficiency is 80%. It was used in PCI Express generations 1 and 2, USB 3.0 and others.
- A. The amount sent actually grows by 25%.
- B. Correct. The goals are DC balance and guaranteed transitions.
- C. It does not encrypt.