Vyšlo v týdeníku Computerworld č. 22/92 v roce 1992
Vytištěno z adresy: http://www.earchiv.cz/a92/a222c120.php3

Daisy chain

Součástí dnešních počítačů jsou nejrůznější funkční celky - procesory, koprocesory, řadiče, adaptéry, stykové obvody apod. Mnohé z nich jsou schopné fungovat do značné míry autonomně, tedy nezávisle na sobě. Vždy však musí existovat vhodný mechanismus, který dokáže korektně vyřešit případné konfliktní situace.
Warning: include(../includes/potenza/stridavytext_inner.php3): failed to open stream: No such file or directory in /www/doc/www.earchiv.cz/www/a92/a222c120.php3 on line 16

Warning: include(../includes/potenza/stridavytext_inner.php3): failed to open stream: No such file or directory in /www/doc/www.earchiv.cz/www/a92/a222c120.php3 on line 16

Warning: include(): Failed opening '../includes/potenza/stridavytext_inner.php3' for inclusion (include_path='.:/usr/share/php') in /www/doc/www.earchiv.cz/www/a92/a222c120.php3 on line 16

Uvažujme jako příklad různá vstupně výstupní zařízení, připojená ke stejnému počítači. Každé z těchto zařízení si může kdykoli vyžádat pozornost procesoru prostřednictvím mechanismu přerušení - například proto, by mu oznámilo úspěšné dokončení vstupně/výstupní operace, vyžádalo si předání dalších dat, oznámilo poruchu či závadu apod. Co ale v případě, že si se svou žádostí o přerušení vzpomene hned několik zařízení najednou? Pak musí existovat někdo (nebo něco), kdo mezi nimi vybere jednoho, a jeho žádosti vyhoví (zatímco ostatní nechá čekat).

Možnosti realizace jsou v zásadě dvě. První z nich je založena na myšlence svěřit rozhodování samostatnému obvodu, který je na tuto činnost specializován - v našem případě tzv. řadiči přerušení, který sám přijímá žádosti od jednotlivých zařízení a mezi nimi vybírá tu, které má být vyhověno.

Druhou možností je vyřešit případné konflikty vhodným zapojením do řetězce - viz obrázek. Zde každým zařízením, které je potenciálním žadatelem o přerušení, prochází zvláštní signál. Dva diskrétní stavy, které tento signál může nabývat, pak reprezentují "volno" k vyslání žádosti, resp. "zákaz" takovéto akce. Každé zařízení přitom musí přísně dodržovat pravidla hry - pokud chce vyslat svou žádost, může tak skutečně učinit jen tehdy, když samo přijímá zmíněný signál ve stavu "volno". Svému následníkovi v řetězci pak ovšem musí signalizovat "zákaz", tedy vlastně změnit stav signálu, který daným zařízením prochází. V každém jiném případě pak ponechává řídící signál beze změny.

Právě popsané zřetězení (či zřetězené zapojení) obvodů se v angličtině označuje jako daisy chain. Může se použít všude tam, kde je potřeba vyřešit případné konflikty mezi více soupeřícími zařízeními, a kde nevadí pevně dané priority, které při případném souběhu rozhodují. Jak lze jistě snadno nahlédnout, má v případě zřetězeného zapojení nejvyšší prioritu ten žadatel, který je nejblíže začátku řetězce.