LinkLab linka je dohoda, ne drát

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Proč se posílá po jednom drátě

Osm vodičů vedle sebe pošle bajt najednou. Jeden vodič ho musí poslat po bitech, tedy osmkrát pomaleji. A přesto všechno rychlé, co dnes existuje — USB, PCIe, SATA, Ethernet — je sériové. To vypadá jako krok zpátky a není.

Proč paralelní sběrnice prohrály

  • Rozjezd hran (skew). Osm vodičů není stejně dlouhých. Když jeden bit dorazí o kousek dřív, musí se čekat na nejpomalejší — a čím rychleji se to žene, tím větší podíl periody ten rozdíl zabírá. U jednoho vodiče žádný rozdíl mezi vodiči být nemůže.
  • Přeslechy. Vodiče vedle sebe se ovlivňují, a čím ostřejší hrany, tím víc.
  • Cena. Osm vodičů, osm budičů, osm vstupů, konektor s osmi kontakty navíc.

Sériová linka nic z toho nemá, takže se u ní dá jít na frekvence, kde by paralelní sběrnice neposlala nic — a osminásobek frekvence je víc než osminásobek vodičů. IDE končilo na 133 MB/s se čtyřiceti vodiči; SATA po dvou vodičích udělá 600 MB/s.

Ale za to se platí, a tahle labka je hlavně o té ceně: u jednoho vodiče se najednou musí vyřešit, kde bajt začíná, jak rychle jde, který bit je první a jak se pozná, že dorazil celý. U paralelní sběrnice to řešily ty vodiče navíc. Linka není drát — linka je dohoda.

Čtyři otázky, na které musí každý protokol odpovědět

otázkaUARTSPII²CCAN
kde začíná?start bitsignál výběrupodmínka STARTbit SOF
jak rychle?dohoda předemhodiny na drátěhodiny na drátědohoda + resynchronizace
který bit první?nejnižšíobvykle nejvyššínejvyššínejvyšší
je celý?parita (slabá)nicpotvrzení příjemcemCRC-15

Ten poslední řádek stojí za pohled. SPI nemá žádnou kontrolu. Když do dat skočí rušení, dostanete jinou hodnotu a nikde se nic nedozvíte — a proto si čidla po SPI často nesou vlastní kontrolní součet uvnitř zprávy.