This text below is hard to understand. Some thing that the PCIe uses 10 bits to send 8 bits because it is a serial bus that it cannot send 8 bits.
Why the computer bus cannot send 8 bits because some thing to do with it being a serial bus or clock.
Quote PCIe is a serial bus with the clock embedded in the data, it needs to ensure that enough level transitions (1 to 0 and 0 to 1) occur for a receiver to recover the clock. To increase level transitions, PCIe uses “8b/10b” encoding, where every eight bits are encoded into a 10-bit symbol that is then decoded at the receiver. Thus, the bus needs to transfer 10 bits to send 8 bits of encoded data. Quote
In: 1
The ELI5 explanation is that in this and similar cases you want to send about as many 1s as 0s.
Using 10 bits to send 8 bits means you can avoid long series of just 1s and use different ways to send the same value so that it evens out the ratio of 1s to 0s you send.
It also allows you to add some control characters.
This way of using more bits to send fewer bits in some medium to avoid sending long strings of 1s or similar is actually quite common.
CDs for example use pits and lands that could be understood as 0s and 1s directly , but because having too long pits makes things difficult, the encoding ensures that there is always some alternation going on.
Barcodes also never go all white or all black for too long, there is a maximum of how thick a stripe can be.
Pure math of there is nothing wrong with a string of dozens of 1s rarely translates well into physical media where you then need to figure out how many 1s that really was.
Encoding things to avoid such issues cost some extra bits in overhead but makes thing work better and faster.
Latest Answers