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?

  1. ATo compress data and reduce the amount sent
  2. BTo balance the numbers of 0s and 1s and ensure frequent transitions so the receiver can recover the clock
  3. 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.
Practice this topic Back to topic

More I/O Interfaces & Buses questions

  1. On a link using 8b/10b encoding with a signaling rate of 5 Gb/s, what is the effective data rate?
  2. Which is closest to the efficiency of the 128b/130b encoding adopted from PCI Express 3.0 onward?
  3. Which describes a "lane" in PCI Express?
  4. What is closest to the effective one-direction bandwidth of a PCI Express 3.0 x16 link (8 GT/s per lane, 128b/130b encoding)?
  5. For PCI Express generations 3 through 6, how does the per-lane signaling rate change with each generation?