Vyšlo v týdeníku Computerworld č. 31/93 v roce 1993
Vytištěno z adresy: http://www.earchiv.cz/a93/a331c120.php3

Bus

Potřebujeme-li propojit mezi sebou určitý počet objektů, můžeme pro toto propojení zvolit různé strategie, například:

  • propojení do hvězdy (star), kdy jeden objekt má postavení centra, ze kterého vedou dvoubodové spoje ke všem ostatním objektům (pak jde o tzv. hvězdicovou topologii, star topology),
  • propojení do kruhu, kdy jsou jednotlivé objekty vzájemně propojovány po dvojicích a tyto dvoubodové spoje na sebe navazují a vytváří kruh (kruhová topologie, ring topology),
  • propojení do stromu, kdy jsou jednotlivé objekty opět propojovány po dvojicích a jejich dvoubodové spoje vytváří hrany stromu (tzv. stromová či stromovitá topologie, tree topology),
  • propojení do sběrnice, kdy jsou všechny objekty připojeny na jeden vícebodový spoj (tzv. sběrnicová topologie, bus topology).

Každá z těchto strategií dává výslednému celku určitou konkrétní topologii, která pak svou samotnou podstatou determinuje i možný způsob komunikace dvou účastníků. Například při hvězdicové topologii mohou dva objekty komunikovat pouze prostřednictvím centrálního objektu, resp. veškerá jejich komunikace musí procházet přes tento centrální objekt. V případě kruhové topologie musí dokonce procházet všemi objekty, které leží na obvodu kruhu mezi oběma komunikujícími objekty, stejně tak pro stromovou topologii.

Nás však bude zajímat topologie sběrnicová - jejím charakteristickým rysem je to, že každému objektu umožňuje přímé spojení s kterýmkoli jiným objektem připojeným na tentýž vícebodový spoj. To samozřejmě platí pro různé úrovně, na kterých může být sběrnicová topologie propojení použita - ať již jde o propojení uzlových počítačů v síti, o vzájemné propojení rozšiřujících desek a systémové desky v rámci jednoho počítače, o vzájemné propojení jednotlivých integrovaných obvodů v rámci systémové desky, o propojení jednotlivých logických členů v rámci integrovaného obvodu apod.

Možnost přímého spojení je dána právě vícebodovým charakterem spoje, na který jsou všechny objekty napojeny a který vlastně společně sdílejí. Tento vícebodový spoj je sám o sobě označován jako sběrnice (bus).

Sdílený charakter sběrnice má i některé další významné důsledky. Například ten, že kromě komunikace mezi jedním zdrojem a jedním příjemcem umožňuje sběrnice i přenos od jednoho zdroje k více příjemcům současně. Nikoli však, a to je velmi podstatné, mezi více zdroji a více příjemci současně. Sběrnici je možné si představit jako potrubí, kterým může proudit tekutina. Dodávat ji do potrubí může vždy jen jeden zdroj, potrubí však tuto tekutinu rozvádí současně ke všem odběratelům, kteří jsou na něj připojeni. Ti se pak mohou sami individuálně rozhodnout, zda budou tekutinu odebírat, či nikoli. Problém by ovšem nastal v případě, kdyby se do potrubí vpouštěly dvě různé tekutiny ze dvou různých zdrojů - v lepším případě by došlo jen k jejich promíchání, v horším k prasknutí potrubí v důsledku příliš velkého tlaku. I v tomto směru analogie s potrubím dobře odpovídá realitě: u skutečné sběrnice by také došlo k promíchání různých signálů (např. k logickému součinu či součtu jednotlivých bitů), a v některých p řípadech by mohlo dojít dokonce k fyzickému poškození (přetížením tzv. budičů sběrnic neboli obvodů, které generují signály vysílané na sběrnici).

Každá sběrnice tedy musí nějakým způsobem regulovat vysílání, resp. určovat, kdo a kdy se smí dostat do postavení vysílajícího zdroje či odesilatele, a řešit případné konflikty, kdyby o vysílání usilovalo více zájemců současně. Příslušná opatření či regulační mechanismy přitom mohou mít preventivní charakter a nepřipouštět jakékoli konflikty, nebo je naopak připouštět a řešit je až v okamžiku, kdy k nim skutečně dojde (samozřejmě pokud sběrnice jako taková případné konflikty "snáší"). Konkrétní řešení je ovšem závislé na tom, o jakou sběrnici se jedná, a jaký druh objektů propojuje.

Se sběrnicovou topologií se můžeme setkat například u lokálních sítí typu Ethernet. Zde je vlastní sběrnicí (vícebodovým spojem) koaxiální kabel, na který jsou jednotlivé stanice připojovány. Pravidlo, konvence či princip, který v lokálních sítích sběrnicového typu zajišťuje korektní přístup k přenosovému médiu (tj. ke sběrnici), se obecně označuje jako přístupová metoda (access method). Konkrétně u sítí typu Ethernet jde o přístupovou metodu označovanou zkratkou CSMA/CD. Je natolik zajímavá, že si zaslouží samostatný díl této rubriky. Existuje však celá řada dalších přístupových metod, založených na různých myšlenkách, principech i technikách.

Pod pojmem sběrnice (bus) se však nejčastěji rozumí tzv. systémové sběrnice, které propojují procesor, operační paměť a různá vstupně-výstupní zařízení. Tyto systémové sběrnice se často rozdělují na adresovou, datovou a řídicí část, resp. na adresovou, datovou a řídicí sběrnici, podle toho, jaká data jsou po nich přenášena. Adresová sběrnice tedy rozvádí adresy od procesoru do operační paměti a vstupně-výstupních zařízení (a tudíž může být jednosměrná), zatímco datová sběrnice musí být obousměrná, neboť slouží k přenosu dat z mikroprocesoru, paměti a V/V zařízení, ale i naopak. Jako řídicí sběrnice se pak obvykle označuje konglomerát jednotlivých řídících a stavových signálů (či skupin takovýchto signálů), z nichž některé jsou z pohledu procesoru vstupní, jiné výstupní a některé obousměrné.

U systémových sběrnic se regulace přístupu řeší různými způsoby. O jedné možnosti jsme se již zmínili v souvislosti s řadiči DMA (viz CW 93/25), kdy o přístupu ke sběrnicím (ve smyslu práva vysílat data na sběrnici) rozhoduje procesor a řadič DMA se na něj obrací zvláštním signálem (nebo mu sběrnice na chvíli doslova "ukradne", viz CW 93/26). Další možnost počítá s tím, že procesor nebude jediným pánem, který rozhoduje o přístupu ke sběrnicím, ale že takovýchto pánů (masters) bude existovat více (například více procesorů, nebo jeden procesor a jiné autonomní obvody, např. V/V procesory, kanály apod.) a tito páni si budou právo řízení sběrnic mezi sebou předávat. Opět ale k tomu budou potřebovat vhodné signály, které budou nejspíše součástí řídicí sběrnice.

Pro samotnou řídicí sběrnici je však nutné použít principiálně odlišný přístup - jestliže ona má být prostředníkem při rozhodování o přístupu k datové a adresové sběrnici, kdo bude rozhodovat o přístupu k řídicí sběrnici? V případě řídicí sběrnice se proto obvykle používá takové technické řešení, které připouští současný přístup, resp. současné vysílání jednoho a téhož řídicího signálu více zdroji. Jde o tzv. zapojení s otevřeným kolektorem, které ze všech současně vysílaných signálů vytváří logický součet (resp. součin, podle toho, zda jde o kladnou, nebo zápornou logiku). Ale o tom si zase povíme až někdy příště.