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.

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.