Szybkie interfejsy szeregowe czy to elektryczne (Serial ATA, PCI-Express, HDMI), czy optyczne używają np. przekodowania 8b10b. Czyli każde surowe 8 bitów zamieniane jest na odpowiednie 10 bitów. Płacimy ekstra 25%, ale dzięki temu zyskuje się DC-free oraz określony "run length limit", tj. pod rząd nie może wystąpić więcej 5 bitów tej samej wartości (przydatne do odtworzenia zegara).
Jeśli koszt 25% jest zbyt duży to można użyć 64b66b, 128b130b...
Załóżmy, że dysponujemy linią przesyłową z ograniczeniem
1.25Gprzełączeń/s. Stosując przekodowanie 8b10b uzyskamy użyteczny transfer 1Gbps.A gdyby tak zaaplikować znane rozwiązania z napędów optycznych, czy magnetycznych... np. znane z DVD przekodowanie EFM-plus, czyli oryginalne 8 bitów transformowane jest do 16 bitów. Również dostaniemy DC-free, również "run length limit" (równy 11), ale i też minimalny "run length" (równy 3). Innymi słowy: po przekodowaniu, minimalny gwarantowany ciąg jednakowych bitów wynosi 3 bity, czyli zmiany stanu linii nie mogą występować częściej niż co 3 bity. Zatem używając EFM-plus i nie naruszając limitu linii przesyłowej
1.25Gprzełączeń/s uzyskujemy transfer: 1.25G*3*8/16 = 1.875Gbps (!)87.5% więcej niż 8b10b prawie za darmo! Dlaczego więc to 8b10b jest preferowane?
Oczywiście EFM-plus wymaga potencjalnie 3x wyższego wewnętrznego taktowania nadajnika jak i odbiornika... no ale łatwo (?) to pokonać stosując zegar trójfazowy... oczywiście wymaga to PLL, ale i przy 8b10b też PLL jest potrzebny do odtwarzania zegara i wyrównywania faz.
Dlaczego nikt(?) nie stosuje takiego podejścia?
pzdr mk