Takésystémová sběrnice, datová sběrnice, I/O sběrniceZákladní
Definice
Sběrnice je komunikační cesta, po které si části počítače nebo vestavěného systému předávají data, adresy a řídicí signály. Určuje, kdo může mluvit, jak rychle přenos probíhá a jak zařízení poznají správného příjemce; fyzicky může jít o vodiče, konektor, protokol nebo jejich kombinaci.
Nezaměňujte: V informatice se sběrnice nejčastěji chápe jako hardwarové propojení částí počítače, ale stejný český výraz se používá i pro softwarové message bus nebo event bus.
Proč počítač potřebuje sběrnici
Sběrnice řeší praktický problém: procesor, paměť, úložiště, grafická karta a řadiče vstupů a výstupů si musí vyměňovat informace, ale není účelné vést mezi každou dvojicí zařízení samostatné spojení. Společná komunikační cesta s jasnými pravidly snižuje počet vodičů, zjednodušuje návrh desky a umožňuje připojit zařízení od různých výrobců.
Sběrnice může být velmi jednoduchá, například několik vodičů mezi mikrokontrolérem a čidlem, nebo složitá, například PCI Express v osobním počítači. V obou případech nejde jen o kovové spoje. Důležitá jsou také pravidla časování, adresování, potvrzování přenosu a řešení chyb.
Adresy, data a řízení přenosu
Klasický popis sběrnice rozlišuje datovou, adresovou a řídicí část. Datová část nese samotné hodnoty, adresová část říká, kam přenos míří, a řídicí část oznamuje, zda se čte, zapisuje, čeká na odpověď nebo potvrzuje dokončení. V reálných systémech mohou být tyto role oddělené, sdílené v čase nebo zabalené do paketů.
Procesor při čtení z paměti typicky vyšle adresu, řídicí signál pro čtení a čeká na data. Řadič paměti odpoví hodnotou a přenos skončí. U pomalejších periferií může zařízení požádat o prodloužení cyklu, protože fyzický svět, například senzor nebo flash paměť, nereaguje stejně rychle jako cache uvnitř procesoru.
Úzké hrdlo a arbitráž
Společná sběrnice je sdílený zdroj. Pokud se o ni současně hlásí procesor, síťová karta a diskový řadič, musí rozhodnout arbitráž: mechanismus, který přidělí právo vysílat jednomu účastníkovi. Bez arbitráže by zařízení mohla mluvit přes sebe a přenos by byl nečitelný.
Výkon sběrnice závisí na šířce přenosu, frekvenci, režii protokolu, latenci a schopnosti obsloužit více požadavků najednou. Širší sběrnice proto sama o sobě nezaručuje rychlejší systém. Úzké hrdlo se často přesune do paměti, řadiče, softwarového ovladače nebo do čekání na odpověď zařízení.
Paralelní, sériová a paketová podoba
Starší sběrnice bývaly často paralelní: více bitů cestovalo současně po více vodičích. Paralelní přenos vypadá přímočaře, ale s rostoucí rychlostí se hůře hlídá, aby všechny signály dorazily v použitelném okamžiku. Moderní rozhraní proto často používají rychlé sériové linky, diferenciální páry a paketový přenos.
PCI Express je dobrý příklad posunu od společné paralelní sběrnice k přepínané topologii s linkami. USB zase ukazuje sběrnici navrženou pro periferní zařízení, napájení a automatické rozpoznání. I2C a SPI se používají ve vestavěných systémech, kde je důležitá jednoduchost, levné propojení a malé vzdálenosti.
Sběrnice mimo základní desku
Sběrnice se v češtině používá i v přeneseném významu. Softwarová message bus nebo event bus propojuje části aplikace pomocí zpráv místo vodičů. Smysl zůstává podobný: více účastníků sdílí komunikační mechanismus a dodržuje dohodnutý protokol. Rozdíl je v tom, že limity neurčuje elektrika, ale fronty, serializace, doručování, transakce a provozní spolehlivost.
Příklady z praxe
Čtení čidla přes I2C
Mikropočítač čte teplotní čidlo na I2C sběrnici. Program pošle adresu zařízení a číslo registru, sběrnice zajistí, že odpoví právě čidlo s adresou 0x48. Výsledkem jsou dva bajty, které aplikace převede na měřenou hodnotu podle dokumentace senzoru.
from smbus2 import SMBus I2C_BUS = 1 SENSOR_ADDR = 0x48 TEMP_REG = 0x00 with SMBus(I2C_BUS) as bus: raw = bus.read_i2c_block_data(SENSOR_ADDR, TEMP_REG, 2) value = (raw[0] << 8) | raw[1] print(value)Grafická karta na PCI Express
Počítač spustí hru a grafická karta potřebuje rychle přijímat textury z operační paměti. PCI Express poskytne mezi čipsetem a kartou několik sériových linek, přes které putují pakety s daty a příkazy. Pokud karta běží v menším počtu linek, hra nemusí zpomalit vždy, ale velké přenosy textur mohou čekat déle.
Časté omyly
- MýtusČím širší sběrnice, tím je počítač vždy rychlejší.
- Ve skutečnostiŠířka pomáhá jen tehdy, když ostatní části systému stíhají data dodávat a odebírat. Výkon mohou omezit latence, protokolová režie, paměť, řadič nebo software.
- MýtusSběrnice je prostě kabel nebo pár vodičů.
- Ve skutečnostiSběrnice zahrnuje také pravidla komunikace, časování, adresování a řešení konfliktů. Stejné fyzické propojení by bez protokolu neříkalo, kdo právě vysílá a jak má příjemce data vyložit.
Časté dotazy
- Co znamená šířka sběrnice v bitech?
- Šířka sběrnice v bitech říká, kolik bitů může dané rozhraní přenést v jednom taktu nebo jednom přenosovém kroku podle svého návrhu. Širší datová část může zvýšit propustnost, ale skutečný výkon závisí také na frekvenci, latenci, režii protokolu a schopnosti zařízení data připravit. U moderních sériových rozhraní se navíc výkon často popisuje spíše počtem linek a rychlostí signalizace než klasickou šířkou paralelní sběrnice.
- Proč se sběrnice nedá chápat jen jako kabel?
- Sběrnice nemůže být spolehlivá jen jako další kabel, protože přenos potřebuje dohodnuté elektrické vlastnosti, časování a pravidla komunikace. Zařízení musí vědět, kdy může vysílat, jak pozná adresáta, jak se potvrdí přenos a co se stane při chybě. Bez těchto pravidel by stejné vodiče mohly nést nejednoznačné signály, zařízení by si navzájem rušila komunikaci a software by neuměl odhadnout stav připojeného hardwaru.
- Proč se u rozšiřujících karet prosadil PCI Express?
- PCI Express nahradil starší sdílené PCI hlavně proto, že přepínané sériové linky lépe škálují s rychlostí a počtem zařízení. Staré PCI používalo společnou paralelní sběrnici, kde se zařízení dělila o stejnou komunikační cestu. PCI Express vytváří samostatné spojení přes přepínače a kořenový komplex, takže více zařízení může přenášet data efektivněji a fyzické návrhy desek jsou zvládnutelnější při vyšších rychlostech.
- Může být sběrnice i softwarová?
- Softwarová sběrnice je architektonický vzor, ne fyzický spoj. Message bus nebo event bus předává zprávy mezi částmi systému, službami nebo procesy, aby spolu nemusely být pevně svázané. Podobnost s hardwarovou sběrnicí spočívá ve sdíleném komunikačním mechanismu a dohodnutém protokolu. Rozdíl spočívá v limitech: softwarovou sběrnici brzdí serializace, fronty, doručování, transakce a provozní výpadky.
Zdroje
- Bus (computing)(otevře se v novém okně)
- The Linux PCI driver implementer’s API guide(otevře se v novém okně)