S profesorem na počítačovou architekturu jsem se dnes bavil o tomto článku a káral mě za to, že sériová komunikace asi těžko bude probíhat přes 256 paralelních vodičů, když definice sériové komunikace je že současně je přenášen jen 1 bit.
Chápu to správně, že sériová komunikace je pouze v jednom směru na jedné lince na jednom rozhraní? Tedy protože se jedná o Full Duplex rozhraní a vodiče jsou diferenciální, měla by se podle teorie sériová komunikace vymezit pouze na jeden pár vodičů a již ne na celou linku (4 vodiče) natož několik linek současně. Nebo jsem mimo mísu a jedná se o jakési paketově sériové rozhraní?
Trochu k této tématice chybí dobré materiály, wiki je k této problematice lhostejná. Je nějaká forma sériového rozhraní řekněme PCIe x1, které provozuje paralelně několik linek současně PCIe x16 stále považována za sériové rozhraní? Čím je taková klasifikace obhájena?
Je vlastně HBM považováno za sériovou technologii, podle mého rozhodně ne, protože všechny vodiče jdou bez jakékoliv změny rovnou do GPU, ale už jsem z té terminologie celý zmatený.
U HMC jsem argumentoval tak, že v podstatě musíte data na linku multiplexovat a z linky demultiplexovat a to že je typický znak sériového přístupu. Profesor se mě ale ptal, že jak to tedy bude fungovat, když budu mít je jeden drát. Že dle definice sériové komunikace by to muselo být možné...
Definici máte celkem správně, na paralelním rozhraní se SOUČASNĚ přenáší celé slovo a ne jen jedinný bit. Problém je právě v tom "SOUČASNĚ" - to znamená na straně vysílače v jednom okamžiku a na straně přijímače také v jednom okamžiku. Když máte ale nestejně dlouhé vodiče, což může být technické omezení desky plošných spojů, tak šířka pulsu musí být výrazně delší, než je posun signálu způsobený tímto rozdílem. Signál se šíří rychlostí 3x10^8 m/s, takže při rozdílu drah 3mm je časové spoždění 1/10^11 s, což je šířka pulsu u 500GHz obdélníkového signálu. Takže s výše uvedenými rychlostmi jsme velmi blízko fyzikální hranice pro standardní _synchronní_ paralelní přenos.
Jedním z řešení je místo paralelního rozhraní použít několik sériových rozhraní, které mezi sebou nejsou synchronizována. Proto se tomu říká sériový přenos - v momentě kdy se po jednom vodiči přenáší bit, tak na ostatních vodičích může být cokoliv (vypnuté linky, nebo přechod mezi bity), takže se nedá mluvit o standardním paralelním přenosu.
Děkuji za vysvětlení, už je mi to jasnější.
Ta terminologie, resp. rozdělení na sériový a paralelní přenos, asi moc neodpovídá dnešní praxi kdy je pro rozumnou propustnost realizováno, jak jste poznamenal, linek z fyzikálního hlediska realizováno více paralelně, ale nezávisle. Vzniká jakési asynchronní chování jestli to chápu správně.
Potom mi však není moc jasné, proč je sériový přenos v praxi rychlejší. Když jedna linka musí stejně nakonec čekat na jinou? Navíc 3 mm se mi nezdá jako neřešitelný problém. Paměti RAM se nakonec taky musí routovat dost precizně. Kdosi mi taky říkal, že tolerance je asi ten milimetr a to ještě dávno nemluvíme o desítkách natož stovkách GHz.
Asi by se takové problematiky měly důsledněji přibližovat již na začátku studia informatiky/ elektrotechniky, aby potom nevznikaly podobné poměrně základní diskuze vlastně o ničem, jen protože nejsou jasné základní pojmy. Resp. by podobné populárně-technické články mohly v krátkém odstavci pojmy obrazně vyjasnit.