Szybkie interfejsy szeregowe -- dlaczego nie np. EFM-plus zamiast

Feb 11, 2016 38 Replies

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


W dniu 2016-02-11 o 14:50, mk pisze:

Bo pomylileś się w obliczeniach, wg mnie przepustowość wyniesie 0,625G a nie 1,875. Zauważ że 8 bit jest transkodowane do 16, czyli tracimy połowę przepustowości a w 8b10 tylko 20%.

mk pisze: [..]

Jeśli nie wiadomo o co chodzi to na pewno chodzi o pieniądze, w tym wypadku komu trzeba by zapłacić za użycie EFM?

W dniu czwartek, 11 lutego 2016 14:50:40 UTC+1 użytkownik mk napisał:

Podobnie jak janusz_k ale innymi słowy: Tu sie pomyliles w warunku. Tu będzie tych zmian sygnału gęściej a nie rzadziej. Bo w tych grupach 3 bitowych te bity się będą zmieniać np tak: 101 lub 010 itp. A w sumie będzie bitów na bajt 16.

Zawsze lubie inżynierom informatykom zadawać pytania: Czym sie rózni bit na sekunde od boda (baud) oraz tym czy przelicznik bit na sekunde na bod może być ułamkowy :) (OIDP bo dawno nie pytałem :) )

W dniu 2016-02-11 18:28, janusz_k pisze:

Ale zauważ, że w EFM-plus mamy gwarancję że sygnał wyjściowy (po przekodowaniu) nie zmieni się częściej niż co trzy bity, więc można układy wytwarzające sygnał taktować 3x szybciej, a na linii transmisyjnej będzie zachowany limit max. 1.25 Gprzełączeń/s (przełączenia nie częściej niż co 8 ns).

pzdr mk

W dniu 2016-02-11 18:31, AlexY pisze:

Jeśli EFM-plus obłożony wciąż patentami, to można sięgnąć po przekodowanie oryginalne EFM znane z CD (wbrew nazwie "Eight to Fourteen Modulation" jest to przekodowanie 8 do 17 bitów) i nadal cieszyć się zyskiem w stosunku do 8b10b. Zresztą, liczba możliwych przepisów na przekodowania 8 do 16 bitów jest tak duża (przy jednoczesnym zachowaniu właściwości jak EFM-plus)... kwestia pewnie tylko czy inne opcje będą się tak ładnie implementować jak owy EFM-plus... ale jest w czym wybierać i zakładam, że bez problemu znalazło by się alternatywne przekodowanie. Zakładam, że kombinatoryki nie da się opatentować.

pzdr mk

W dniu 2016-02-11 18:43, snipped-for-privacy@gmail.com pisze:

Nie! Po przekodowaniu EFM-plus nie będzie w strumieniu bitów żadnego dowolnego wycinka 3-bitowego jak pokazałeś. Po przekodowaniu jest gwarancja, że linia po zmianie stanu, utrzyma swój stan przez co najmniej 3 bity! Stąd bity w linii można 3x upakować i czynnik 3 w moim wzorze.

Nie jestem inż.

Baud -- szybkość modulacji sygnału.

Może.

pzdr mk

Mysle ze bledne jest milczaco przyjmowane przez ciebie zalozenie ze ograniczeniem jest ilosc zmian sygnalu. Ja mysle ze glownym ograniczniem jest mozliwosc precyzyjnego wykrywania zboczy: ty bys wymagal 3 razy lepszej rozdzielczosci przy wykrywaniu zboczy. Ograniczajac ilosc zboczy pewnie mozna by troche poprawic rozdzielczosc ale nie sadze by to skompensowalo strate na gestosci kodowania.

mk pisze: [..]

Wiki podaje linki do patentów.

Użytkownik "mk" <reverse_lp.pw@myzskm> napisał w wiadomości news:56bcccba$0$22829$ snipped-for-privacy@news.neostrada.pl...

Tak myślą tylko ludzie logicznie myślący, ale z patentów żyją prawnicy = wszystko da się opatentować. OIDP nie tak dawno w Australii jakiś gość złożył wniosek o patent na wynalazek koła i dostał ten patent. Sam się zdziwił, a że ogólnie zrobił to aby pokazać jak wypaczona została idea patentów to następnie nieodpłatnie udostępnił patent całej ludzkości. P.G.

Użytkownik "Piotr Gałka" snipped-for-privacy@cutthismicromade.pl napisał w wiadomości news:n9k9gd$l6b$1$ snipped-for-privacy@news.chmurka.net...

U nas w .pl zaraz pewnie by mu się fiskus dobrał do tyłka, że kombinuje, jakby tu orżnąć Państwo Polskie, bo przecież na patentach się zarabia i płaci podatki... Piekarz Gronowski, co rozdawał stary chleb biednym, zaj*bali go... No, jak przedsiębiorcę potrafią dupnąć, że darmowego Open Office używa? Chyba dobrze, ze zrobił to w .au ...

W dniu czwartek, 11 lutego 2016 19:12:17 UTC+1 użytkownik mk napisał:

Ah. Racja. Poczytalem i widze co i jak. Ale tam chyba nadal problemem będzie to aby odróżnić czy w danym ciagu jest 4 czy 5 kolejnych "zer".

To nie był przytyk do Ciebie. Chcialem pokazać że nawet ludzie zajmujący sie tematami tego typu moga mieć problemy z niskopoziomowymi aspektami.

Tak. Innymi słowy ilość zmian sygnału w jednostce czasu.

Ano :)

U¿ytkownik "Waldek Hebisch" napisa³ w wiadomo¶ci grup dyskusyjnych:n9il2a$np3$ snipped-for-privacy@z-news.wcss.wroc.pl...

3 razy to nie. Wystarczy ze rozpoznamy stan 14 bitow. Przy czym konkurencyjny 8/10 wymaga 10 bitow. Precyzja tylko 40% lepsza potrzebna. A mozliwe, ze wydluzenie czasu trwania 0 i 1 nam te precyzje polepsza.

Dalej pytajac - czy EFM zapewnia wypelnienie 50% ? Bo to moze byc istotne przy transmisjach po kablach i radiach.

J.

Użytkownik "AlexY" napisał w wiadomości grup dyskusyjnych:n9ivii$3jv$ snipped-for-privacy@dont-email.me... mk pisze:

Ale w jakim sensie - ze EFM drozsze, czy na na EFM nie daje sie juz zarobic, bo patenty wygasly ? :-)

J.

Na wiki piszą, że jest DC-free, więc powinna się ładnie transmitować.

Co do meritum, to mnie się wydaje, że po prostu nikt na to nie wpadł. :-)

Pozdrawiam, Piotr

Ale to nie są dowolne przełączenia, które możesz wykorzystać wedle woli, np. transmitując 1,25G przełączeń w 0,1s i potem przez 0,9s milczeć, tylko zmiany mogące się dokonać w ściśle określonym slocie czasowym, wyznaczonym przez parametry ADC w PHY karty sieciowej, które z kolei wynikają z opisanych w standardzie minimalnych parametrów kabla w dziedzinie pasma.

Ty chcesz zakodować nadmiarową informację w pozycji czasowej impulsu (tj. *kiedy* zaczyna się ciąg trzech jedynek), czyli w jego fazie. A to wymaga szerszego pasma, czyli nie spełnisz wymagań normy Ethernetu w każdych warunkach. Rzeczywiste kable pewnie sobie z tym poradzą, ale gwarancji nie masz -- działa, bo działa.

Pozdrawiam, Piotr

U¿ytkownik "J.F." <jfox snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:56bddd4e$0$640$ snipped-for-privacy@news.neostrada.pl...

Nic nie wiem o EFM, ale je¶li opieraj±c siê na gwarancji, ¿e ka¿dy stan zawsze trwa co najmniej 3 bity zwiêkszamy szybko¶æ 3 razy to ró¿nica miêdzy tylnym zboczem po 3 bitach a tylnym po 4 bêdzie stanowi³a 1/3 ró¿nicy miêdzy

1 a 2 bitami w normalnej transmisji. Wed³ug mnie równie¿ oznacza to, ¿e potrzebna jest 3 razy lepsza precyzja wykrywania pozycji zbocza.

Przy znacznie mniejszych prêdko¶ciach (pêtle pr±dowe), gdzie robi³em kiedy¶ pomiary co siê dzieje ze zboczami zasada jest taka, ¿e im dany stan trwa d³u¿ej tym koñcz±ce go zbocze zostanie bardziej opó¼nione. Podejrzewam, ¿e taka zale¿no¶æ jest zawsze. Analizuj±c wtedy transmisjê RS232 bra³em pod uwagê najd³u¿szy jeden stan trwaj±cy 10 bitów, a drugi nieskoñczono¶æ. P.G.

U¿ytkownik "Piotr Ga³ka" snipped-for-privacy@cutthismicromade.pl napisa³ w wiadomo¶ci news:n9knul$9m0$1$ snipped-for-privacy@news.chmurka.net...

a mo¿e 9, ale ³atwiej mi by³o generator prze³±czyæ o dekadê. P.G.

U¿ytkownik "Piotr Ga³ka" napisa³ w wiadomo¶ci grup dyskusyjnych:n9knul$9m0$1$ snipped-for-privacy@news.chmurka.net... U¿ytkownik "J.F." <jfox snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci

Ale nie zwiekszamy 3 razy, bo z 8 bitow robimy 14 :-) Czyli zwiekszamy niecale 2 razy, a tak naprawde to mniej, bo tych 8 nie moglibysmy tak wprost zapisac, tylko trzeba by jakos przekodowac. Przykladem takiego przekodowania jest 8/10, czyli mielibysmy 14 bitow zamiast 10 przesylane.

Nie calkiem - Ty robiles to na linii krotkiej, to sie bardziej liczy jak filtr RLC. Teraz mamy transmisje, przy ktorych kabel robi sie linia dluga :-)

Poza tym jesli zmienisz dlugo trwajacy stan to impuls przeleci po jakims tam czasie, a jesli ten stan bedzie jeszcze dluzej trwal ... to czas powinien byc ten sam. To przy skracaniu zaczynaja wychodzic cuda :-)

J.

Ściślej: precyzja wykrywania zbocza nie jest problemem, bo wystarczy zwiększyć taktowanie ADC w PHY. Problemem jest transmisja tego zbocza kanałem o zadanym paśmie. W pewnym momencie je przekroczysz -- Shanonna nie oszukasz. :-)

Przykład ekstremalny: możemy wyzwolić impuls 1ns z rozdzielczością również 1ns i robimy to raz na sekundę. Czekamy tyle nanosekund od umownego początku, ile wynosi wartość elementu do przesłania. Mamy więc zakres 0..999999999 (~30 bitów) i przesyłamy element z takiego alfabetu raz na sekundę -- jedna lub dwie zmiany, zależnie jak chcieć to liczyć. Czy to oznacza, że pasmo kabla to 2Hz? :-)

To samo będzie z zaproponowanym pomysłem, tylko słabiej to widać.

Pozdrawiam, Piotr

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required