Hacker News new | ask | show | jobs
by andyv 2126 days ago
> How does the retimer recover the underlying clock if the signal is (say) all zeroes for an extended period of time?

Data is encoded such that all-zeros or all-ones doesn't happen. For Gen3, eight bits are encoded with ten bits, look up "10/8 encoding" for details. For Gen4+, blocks of 128 bits are exclusive-ored with random numbers, plus a pair of bits to keep the number of one bits roughly equal to the number of zero bits. This is "130/128" encoding.

> And why is clock recovery from the data signal necessary in the first place? Can't the clock signal be recovered from the clock signal itself?

Recovering the clock signal from the data avoids the need for an additional clock wire.

2 comments

Close but PCIE Gen3 was the first version that switched to 128/130 encoding.

https://en.wikipedia.org/wiki/PCI_Express#History_and_revisi...

A small correction. PCIE has a clock, but it's an utility reference clock only.