2 Sběrnice Adresová sběrnice Kanálová architektura Struktura a funkce kanálů... 25

Podobné dokumenty
sběrnic a jejich komunikace s periferními zařízeními. Někdy se jedná o sběrnice, kdy celkovou

Komunikace s perifériemi

3. Principy komunikace s perifériemi: V/V brány, programové řízení, přerušení, řešení priorit. Řadiče, DMA kanály. Popis činnosti DMA kanálu.

Principy komunikace s adaptéry periferních zařízení (PZ)

Vstupně - výstupní moduly

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Řízení IO přenosů DMA řadičem

Přerušovací systém s prioritním řetězem

Systém řízení sběrnice

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Struktura a architektura počítačů (BI-SAP) 10

Architektury počítačů a procesorů

Vstupně výstupní moduly. 13.přednáška

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. 25

Profilová část maturitní zkoušky 2014/2015

Periferní operace využívající přímý přístup do paměti

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

Princip funkce počítače

SEKVENČNÍ LOGICKÉ OBVODY

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Z čeho se sběrnice skládá?

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Pohled do nitra mikroprocesoru Josef Horálek

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Paměťový podsystém počítače

Pokročilé architektury počítačů

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L322

Strojový kód. Instrukce počítače

Profilová část maturitní zkoušky 2015/2016

architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu

Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni

Komunikace procesoru s okolím

Pozice sběrnice v počítači

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

Systémová sběrnice, souvislost architektury počítače a systémové

Přerušovací systém 12.přednáška

Struktura a architektura počítačů (BI-SAP) 11

Metody připojování periferií BI-MPP Přednáška 1

Architektura počítačů

Dekódování adres a návrh paměťového systému

OPS Paralelní systémy, seznam pojmů, klasifikace

Vrstvy periferních rozhraní

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L336

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Činnost počítače po zapnutí

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L322

PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6, s o f c o s o f c o n.

Technické prostředky počítačové techniky

Identifikátor materiálu: ICT-1-08

Paměti a jejich organizace

frekvence 8 Mhz, přestože spolupracuje s procesori různe rychlými. 16 bitová ISA sběrnice je

požadovan adované velikosti a vlastností Interpretace adresy POT POT

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Komunikace modulu s procesorem SPI protokol

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Registrový model HDD

Jak do počítače. aneb. Co je vlastně uvnitř

Sbě b r ě n r i n ce

Počítač jako prostředek řízení. Struktura a organizace počítače

PROTOKOL O LABORATORNÍM CVIČENÍ

TECHNICKÝ POPIS MODULU GRAFIK =============================

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

Způsoby realizace této funkce:

Systém adresace paměti

Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem Elektrickém zapojení Principu činnosti Způsobu programování

Metody připojování periferií BI-MPP Přednáška 2

Architektura počítače

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Mezipaměti počítače. L2 cache. L3 cache

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

2.9 Vnitřní paměti. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.

Vysílací modul ECT-16

Praktické úlohy- 2.oblast zaměření

AGP - Accelerated Graphics Port

Principy činnosti sběrnic

Manuál přípravku FPGA University Board (FUB)

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2

Témata profilové maturitní zkoušky

KOMBINAČNÍ LOGICKÉ OBVODY

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIII Paměti konstant

Obecné principy konstrukce systémové sběrnice

Rozhraní SCSI. Rozhraní SCSI. Architektura SCSI

3. Počítačové systémy

Miroslav Flídr Počítačové systémy LS /21- Západočeská univerzita v Plzni

Počítač jako elektronické, Číslicové zařízení

Architektura počítačů

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

Paměti Josef Horálek

Transkript:

Obsah 1 Úvod 3 1.1 Motivace a cíle této práce................................ 3 2 Sběrnice 3 2.1 Adresová sběrnice.................................... 4 2.2 Řídící sběrnice..................................... 4 2.3 Datová sběrnice..................................... 5 3 Připojení zařízení ke sběrnici a adresový dekodér 8 3.1 Adresový dekodér s úplným dekódováním adresy................... 9 3.2 Adresový dekodér s neúplným dekódováním adresy.................. 10 3.3 Adresový dekodér s lineárním přiřazením adresy................... 10 4 Řízení komunikace 13 4.1 Technika V/V bran................................... 14 4.2 Programové řízení komunikace............................. 17 4.3 Řízení komunikace pomocí přerušení......................... 18 4.4 Přímý přístup do paměti DMA............................. 20 5 Kanálová architektura 23 5.1 Struktura a funkce kanálů................................ 25 6 Vyhodnocování priorit 27 6.1 Samostatné žádosti................................... 27 6.2 Zřetězení........................................ 28 6.3 Cyklické výzvy..................................... 29 7 Historie sběrnic PC 30 8 Závěr 35 Seznam tabulek 1 Popis rozhraní XT, ISA, MCA, EISA, VESA a Opti Local BUS........... 31 2 Popis jednotlivých verzí PCI rozhraní......................... 32 3 Popis jednotlivých verzí AGP rozhraní......................... 33 4 Popis jednotlivých verzí PCI Express rozhraní..................... 34 Seznam obrázků 1 Obousměrná datová sběrnice.............................. 5 2 Příklad vedení v jednom směru............................. 6 3 Značení třístavových budičů.............................. 6 4 Časovací diagram.................................... 7 5 Úplné kódování adres.................................. 9 1

6 Neúplné dekódování adresy............................... 10 7 Příklad využití lineárního adresového dekodéru.................... 11 8 Princip univerzálního dekodéru adresy......................... 11 9 Princip využití dekodéru................................ 12 10 Čtení z paměti...................................... 12 11 Zápis do paměti..................................... 13 12 Technika nepodmíněného vstupu a výstupu dat.................... 15 13 Technika podmíněného vstupu dat........................... 15 14 Technika podmíněného výstupu dat.......................... 16 15 Technika úplného (obousměrného korespondenčního) režimu............. 16 16 Případ výstupu dat................................... 17 17 Identifikace zdroje přerušení programovými prostředky................ 19 18 Zjednodušené blokové schéma řadiče přerušení.................... 20 19 Struktura bloku pro přímý přístup do paměti (DMA)................. 21 20 Body DMA....................................... 23 21 Kanálová architektura počítače............................. 24 22 Kombinovaná zapojení kanálů př.1........................... 25 23 Kombinovaná zapojení kanálů př.2........................... 26 24 Kombinovaná zapojení kanálů př.3........................... 26 25 Struktura kanálu..................................... 26 26 Samostatné žádosti................................... 28 27 Prioritní dekodér.................................... 28 28 Vyhodnocení priority zřetězením............................ 29 29 Logický obvod používaný při zřetězení........................ 29 30 Vyhodnocení priority cyklickými výzvami....................... 30 31 Obvod vyhodnocující adresu, používaný pro cyklické výzvy............. 30 2

1 Úvod 1.1 Motivace a cíle této práce V moderní době, kdy je enormní nárůst využití počítačů, je potřeba se věnovat neustálému vývoji sběrnic a jejich komunikace s periferními zařízeními. Někdy se jedná o sběrnice, kdy celkovou rychlost práce s počítačem negativně ovlivňuje právě rychlost sběrnic. Tato přehledová studie má za úkol se zabývat technickými a programovými možnostmi komunikace mezi CPU a periferiemi. V minulosti bylo toto téma často podceňováno a i v dnešní době se najde spousta lidí, kteří otázku komunikace s periferiemi podceňují, zejména pak s rozvojem periferních zařízení. Cílem této práce je navrhnout cca 15-ti stránkový studijní materiál pro studenty informatiky. 2 Sběrnice Jednou z důležitých částí počítače je sběrnice. Patří mezi součásti každého počítače i samotného mikroprocesoru. Sběrnice slouží pro přenos informace mezi mikroprocesorem a ostatními částmi počítače, ale také mezi částmi uvnitř mikroprocesoru nebo také mezi počítačem a okolím. Z těchto možností využití sběrnic pak také vyplývá jedno z kritérií, podle kterého dělíme sběrnice. V následující části si vysvětlíme princip přenosu informace po sběrnici. Logické sítě jsou obvykle složeny z jednoho obvodu, kde je jeho výstupní signál přiveden na jeden nebo několik vstupů dalších obvodů. To znamená, že k vodiči, jež jsou přenášeny informace, je připojen pouze jeden její zdroj (budič) a několik snímačů. Ale dnes je v technice počítačů použit princip, kdy všechny bloky počítače jsou paralelně propojeny souborem vodičů společnou sběrnicí z anglického bus. Tyto bloky počítače jsou schopny informace snímat, ale i předávat. Pro smysluplné připojení a tomu, aby nedocházelo ke kolizi připojení několika zdrojů informace ke sběrnici, musíme určit: který blok bude informaci na sběrnici dodávat a který snímat, kdy je informace na sběrnici platná. Mezi nejčastější účastníky každého přenosu, uskutečněném na sběrnici, bývá téměř vždy mikroprocesor, který v těchto případech rovněž určuje další údaje přenosu. Mikroprocesor například určuje směr přenosu, druhého účastníka přenosu, kdy má být informace na sběrnici platná a další nutné údaje. Z výše popsaného poté vyplývá první z kritérií dělení sběrnic a v technice počítačů tedy rozeznáváme: adresovou sběrnici, řídící sběrnici, datovou sběrnici. 3

2.1 Adresová sběrnice Pokud chce mikroprocesor data číst nebo je zapisovat, musí nějakým způsobem sdělit místo čtení i zápisu. Toto místo je identifikováno adresou, která je přenášena po adresové sběrnici. Zdrojem této informace je mikroprocesor. Počet bitů adresové sběrnice, neboli počet vodičů, odpovídá počtu bitů adresy. Mikroprocesor vytváří tuto adresu a určuje tak využitelný adresový prostor. Jako příklad nám poslouží např. šestnáctibitová adresová sběrnice, která maximálně adresuje2 16 =65536 adres. Těchto prostorů může být i více, ale to pak závisí na architektuře samotných mikroprocesorů. Například univerzální mikroprocesory mají obvykle dva adresové prostory. Jeden adresový prostor pro adresování paměti a druhý pro adresování vstupů a výstupů. Každý blok komunikující s mikroprocesorem musí být umístěn v některém z těchto dvou prostorů. Tyto prostory nejsou totožné a rozlišení těchto adresovatelných prostorů zajišt uje řídící sběrnice. 2.2 Řídící sběrnice Řídící sběrnice je souhrn jednotlivých signálů, aktivních v různých časových okamžicích s různým významem, které mívají různé zdroje. Některé signály jsou generovány mikroprocesorem, některé mohou být ovlivňovány jinými bloky. K jednotlivým blokům jsou pak přivedeny pouze signály jim patřící. Mezi nejčastější signály řídící sběrnice patří například: RESET tímto signálem je vybaven každý mikroprocesor. Tento signál uvede mikroprocesor do jeho výchozího stavu. Je aktivován uživatelem nebo je generován jiným přídavným obvodem, např. při zapnutí napájení. Tímto signálem mohou být uváděny do základního stavu i jiné bloky počítače. Memory Read (MR) signál čtení z bloků paměti. Tyto signály zabezpečují časování přenosu informací z pamětí či jiných blíže nespecifikovaných bloků do mikroprocesoru nebo počítače. Memory Write (MW), Write Enable (WE) signál zápisu do bloků paměti. Tyto signály zabezpečují časování přenosu informací do pamětí či jiných blíže nespecifikovaných bloků z mikroprocesoru nebo počítače. Input/Output Read/Write (IOR/IOW) signály čtení z nebo zápis do zařízení. Tyto instrukce jsou někdy používány 1 samostatně pro zápis do periferních zařízení. Pak jejich řídící sběrnice obsahují signály IOR/IOW pro časování přenosu. READY signál určující připravenost obvodu. K mikroprocesoru jsou občas připojovány obvody, které z hlediska časování nevyhovují a pro požadovanou činnost jsou nedostačující. V případě, 1 také u některých architektur počítačů 4

že činnost mikroprocesoru bude muset být přerušena, budou vloženy čekací smyčky před svou další činností. Např. při čtení z paměti, pro ověření platnosti dat. Mikroprocesor musí být však informován o žádosti pozastavení právě signálem READY. Řídící sběrnice může obsahovat i další řídící signály pro potřeby jednotlivých bloků, ale ty se ovšem liší pro různé mikroprocesory. 2.3 Datová sběrnice Datová sběrnice slouží pro přenos všech dat v počítači. Data jsou vždy přenášena mezi dvěma bloky počítače. Typickým příkladem tohoto přenosu je přenos z paměti do mikroprocesoru. Mikroprocesor se účastní, až na výjimku, jako přijímač a vysílač všech přenosů v počítači. V praxi je nutné, aby v jakémkoliv okamžiku byl aktivní pouze jeden vysílač, jinak řečeno budič sběrnice. Při nedodržení této podmínky by na datové sběrnici došlo k neurčitosti signálu, v horším případě pak ke zničení jednoho nebo obou vysílacích obvodů. Proto je tedy nutné vybavit bloky, připojované na datovou sběrnici, obvody, jež umožnují odpojení tohoto bloku od datové sběrnice, je-li to z hlediska přenosu informace 2 nutné. Takové obvody nazýváme třístavovými budiči sběrnice. Jejich princip a realizace jsou na obr. 1. Příklad jednoho vodiče obousměrné datové sběrnice s třístavovými budiči je na obr. 2. Obrázek 1: Obousměrná datová sběrnice Obrázek, zachycený v tomto okamžiku, popisuje probíhající přenos logické nuly z bloku 1 do bloku 3, kdy jsou ostatní budiče i snímače odpojeny. Obrázek 3 ukazuje dvě obvyklá označení třístavových budičů. Ovládání třetího stavu nějakého bloku, vybaveného budičem, je provedeno signálem Chip Select (CS), případně pomocí signálu Chip Enable (CE). Mezi nejdůležitější parametry datové sběrnice patří její šířka neboli počet bitů. Tento parametr 2 když se zrovna neúčastní přenosu 5

Obrázek 2: Příklad vedení v jednom směru Obrázek 3: Značení třístavových budičů udává, kolik bitů je schopno se přenést najednou a patří mezi parametry výrazně ovlivňující rychlost komunikace. Ovšem nemá význam, aby bitová šířka datové sběrnice byla větší jak bitová šířka mikroprocesoru. Zde se nabízí, že celkový počet bitů pamět ového prostoru (paměti) získáme vynásobením šířek adresové a datové sběrnice. To ovšem neplatí pro všechny mikroprocesory. Pamět ové buňky zůstávají osmibitové i u šestnáctibitových mikroprocesorů. Je tak umožněn přístup i k menším jednotkám a možnost jak ušetřit paměti pro kratší data. Významnějším důvodem je kompatibilita vyšších typů mikroprocesorů s nižšími, při změně počtu bitů. Pro bezproblémový přenos signálů při dané frekvenci přenosu je omezen maximální délkou sběrnice. Dále je tato maximální délka omezena nepříznivými vlivy jako jsou parazitní indukčnosti nebo vzájemná kapacita vodičů či jinými vlivy. Tyto sběrnice dosahují délky maximálně desítky centimetrů. Jednou z možností, jak ušetřit počet vodičů, je možnost multiplexování sběrnic. Multiplexování spočívá ve vedení signálů dvou sběrnic (nejčastěji adresové a datové) ve společných vodičích takovým způsobem, že jsou jednotlivé signály aktivní v různou dobu. Signály řídící sběrnice určují význam právě přenášených dat na multiplexované sběrnici. U některých mikroprocesorů bývá počet vodičů resp. bitů datové sběrnice nižší než adresové, čímž se mohou multiplexovat jen dolní bity adresové sběrnice s datovými. Mezi další důležité pojmy přenosu informace můžeme zařadit časování a z nich vyplývající časo- 6

vací diagramy, které bývají dodávány v manuálech od výrobce. Časovací diagramy jsou důležité pro návrhy a realizace mikroprocesorových řídících systémů. Jednotlivé označení úseků je názorně zobrazeno na obr. 4. Obrázek 4: Časovací diagram Úseky 1 informují o stavu vysoké impedance (odpojenost všech budičů od sběrnice). Úseky 2 informují o změnách na vodičích. Úsek 3 platnost dat na sběrnici, informace je ustálená. Třístavové budiče sběrnice mohou být tedy jednosměrné nebo obousměrné. Tyto budiče mají kromě schopnosti oddělovat od sběrnice také důležitou úlohu výkonového posílení. Obvykle je těmito budiči již vybavována naprostá většina pamětí, obvody vstupu a výstupu, řadičů přerušení apod. Tam, kde implementovaný budič nestačí pro připojený počet bloků, je posilována sběrnice vložením dalších budičů. Při každém vložení jakéhokoliv prvku do cesty signálu zde vzniká problém, který způsobuje jeho zpoždění dané zpožděním hradel v signálové cestě a možný výskyt problémů při časování sběrnic. Další kritérium dělení sběrnic se odvíjí od architektury počítačových řídících systémů. Sběrnice pak dělíme na: vnitřní sběrnice mikroprocesoru, vnitřní sběrnice počítače, vnější sběrnice počítače. Architektura vnitřní sběrnice mikroprocesoru je dána převážně architekturou mikroprocesoru. Ten můžeme v prvém přiblížení chápat jako černou skříňku se známým chováním vzhledem k signálům a instrukcím programu. Vnitřní sběrnice počítače propojuje mikroprocesor s ostatními prvky počítače a dovoluje tedy vytvoření různých uspořádání počítače, optimální cenově a funkčně pro danou aplikaci. 7

Vnější sběrnice počítače nebo také sběrnice styku s okolím či sběrnice multiprocesorového systému má řadu zvláštností, vyplývajících z charakteru okolí. Ve složitějších systémech, sestavených z několika počítačů, je okolím jednoho počítače míněn jiný počítač. Sběrnice jsou pro takový účel poněkud rozšířeny a upraveny pro rozhodování o prioritě podřízených počítačů. Priorita se může v průběhu algoritmu dynamicky měnit podle okamžitých potřeb systému. Jindy se pomocí vnější sběrnice počítače připojují k danému počítači další přídavná zařízení. V menších systémech jsou tato zařízení připojována ke společné sdílené vnitřní sběrnici počítače. Ve velkých systémech jsou přídavná zařízení připojována ke vnější sběrnici prostřednictvím řadiče této sběrnice ISA, PCI, atd. 3 Připojení zařízení ke sběrnici a adresový dekodér Přenosy dat na sběrnicích se mohou uskutečnit řízením technickými prostředky, nebo programovým řízením. Na přenosu dat s řízením technickými prostředky se podílí mikroprocesor jen částečně nebo je úplně vyřazen. Takový přenos je řízen řadičem přímého přístupu do paměti (DMA) viz. kapitola 4.4. Využívá se pro přenosy velkých bloků dat, například pro přenos dat z přídavných zařízení do paměti RAM. Při přenosu dat s programovým řízením se na tomto přenosu podílí výhradně mikroprocesor tím, že postupně provádí instrukce účelně seřazené do segmentu řídícího programu. Mezi velké výhody patří levná realizace a snadná změna algoritmu přenosu změnou příslušného segmentu řídícího programu. Mezi nevýhody patří pak vlastnost pomalejších mikroprocesorů, kde je celkově pomalý přenos a tudíž jej lze použít jen pro pomalá přídavná zařízení. Přenos dat s programovým řízením je obecně přenosem mezi dvěma registry. U mikroprocesoru probíhá velmi často mezi některými vnitřními registry, případně mezi vnitřním registrem a buňkou vnější paměti (tj. v podstatě také registrem). Z pohledu instrukčního souboru můžeme přenosy mezi vnitřními a vnějšími registry rozdělit na přenosy pamět ové a vstupně/výstupní. To znamená, že umožňuje-li architektura mikroprocesoru oba tyto přenosy, mívají pak tyto dva adresové prostory. Prostor pro adresování paměti a pro adresování vstupů/výstupů. Výběr prostoru je pak určen příslušnými signály pro určitý prostor. Na počítačích, vybavených mikroprocesory s oběma těmito adresovými prostory, pak záleží na hardwarovém návrhu, zda periferní zařízení umístíme do prostoru pamět ového nebo do prostoru vstupů a výstupů. Mezi menší nevýhody pakpatří sdílení tohoto prostoru s fyzickými pamět mi, ale tuto zmíněnou nevýhodu pomíjíme, protože tyto periferie, respektive jejich záchytné registry, zaberou minimum adresového prostoru. Umístění periferních zařízení do některého z těchto prostorů nazýváme mapováním. Mezi výhody patří mapování periferií do V/V prostoru a spočívá v rychlejším přístupu do tohoto prostoru, zpravidla instrukcemi vstupu (IN) a výstupu (OUT). Výhoda mapování do pamět ového prostoru spočívá ve větším množství použitelných instrukcí pro přenos dat (k dispozici jsou všechny instrukce používané pro práci s pamětmi). U počítačů, které jsou osazeny mikroprocesory pouze s pamět ovým adresovým prostorem, je nutno periferní zařízení mapovat vždy do pamět ového prostoru. U takového konkrétního počítače nás pak zajímá obsazení pamět ového prostoru, jež je možno znázornit mapou paměti, do které 8

se zakresluje obsazení dílčích úseků pamět ového prostoru jednotlivými pamět mi. Jsou zde zobrazeny úseky, kde jsou adresovány periferní zařízení a také neobsazené úseky. Pamět ový prostor bývá obsazen více jak jednou fyzickou pamětí nebo periferním zařízením, a proto je nutné při přenosech dat s mikroprocesorem rozhodnout, které zařízení je ke komunikaci určeno. Tímto úkolem je právě pověřen adresový dekodér. Jeho výstupy jsou v podstatě signály CS (Chip Select) pro jednotlivé obvody. Signál CS připojuje daný obvod k datové sběrnici tak, že jeho sběrnici přepne ze stavu vysoké impedance do aktivního stavu. Adresový dekodér může být stavěn jako dekodér pro: úplné dekódování adresy, neúplné dekódování adresy, lineární přiřazování adresy, univerzální přiřazení dekódovaných adres. 3.1 Adresový dekodér s úplným dekódováním adresy Při úplném dekódování je jisté unikátní adrese ADRi přiřazen pouze jeden signál DEADRi a obráceně, kde jistému signálu DEADRi odpovídá pouze jedna adresa ADRi. Pro jednoduchost zapojení budeme u následujících schémat předpokládat šířku adresové sběrnice 8bitů. Obrázek 5: Úplné kódování adres Na obr. 5 je zobrazeno zapojení adresového dekodéru s úplným dekódováním adresy ADR1 = 11101111 = 0Efh. Dekodér je jednoduchého typu a dokážeme ihned posoudit, jak rychle by narůstal počet vstupů/výstupů pro větší počet adres. 9

3.2 Adresový dekodér s neúplným dekódováním adresy Pro adresování dekodéru s neúplným dekódováním adresy nejsou uvažovány některé řády adresy s tím, že jistému signálu DEADRi přísluší adresový prostor ADRi, kde i=1,2,3... Takto postavený adresový dekodér je sice levnější, ale vyžaduje pozorné přiřazování adres k jednotlivým adresovaným obvodům. Vizuálně dvě zcela odlišné adresy v programu mohou ve skutečnosti adresovat tentýž obvod. Na obr. 6 je zapojení adresového dekodéru s neúplně dekódovanou adresou. Výstupní signál DEADR0 je generován pro každou adresu mající AB0 až AB2 = 0. Například adresy 00h, 08h, 10h atd. jsou rovnocenné adresy a patří do téhož adresového prostoru. Je tedy lhostejné, kterou z nich použijeme v programu. Výsledkem bude výběr stejného obvodu. Obrázek 6: Neúplné dekódování adresy S těmito dekodéry se můžete velmi často setkat při přidělování pamět ových prostorů k jednotlivým typům pamětí 3 nebo též při přidělování k přídavným periferiím v počítačovém systému. Některé programově nastavitelné podpůrné V/V obvody mají několik vnitřních registrů s vestavěným adresovým dekodérem s úplným dekódováním adresy. V takovém případě můžeme úplného dekódování adres dosáhnout i s vnějším neúplným dekodérem tím způsobem, že neúplně dekódujeme adresový prostor s velikostí úměrnou prostoru vnitřního dekodéru. 3.3 Adresový dekodér s lineárním přiřazením adresy Jednotlivé řády adresy těchto dekodérů jsou pokládány přímo za výstupní výběrové signály dekodéru. Platí vztah DEADRi = ADRi. Nyní již žádný adresový dekodér není třeba realizovat. Je to tedy nejlevnější adresový dekodér. Jeho nevýhodou je možnost připojit pouze m přídavných zařízení u adresy s m řády. Jeden z velmi často využívaných dekodérů s lineárním přiřazením adresy je na obr. 7. U něj je využit patnáctý bit adresy k rozdělení 64kB adresového prostoru na dvě poloviny. Jedná se pouze o lineární přiřazení pro prostor 0h až 7FFFh. Dekódování druhé poloviny pak vyžaduje použití invertoru. 3 EPROM, RAM, FLASH atd 10

Obrázek 7: Příklad využití lineárního adresového dekodéru Kombinace zde popsaných typů dekodérů patří v dnešní době mezi nejpoužívanější typy dekodérů. Jinak se sestaví dekodér pro předem známou aplikaci s konečnou více nerozšiřitelnou sestavou počítače a jinak pro předem neznámé aplikace s požadavkem modulové rozšiřitelnosti počítače. V takovém případě jde o maximální univerzálnost. Univerzální řešení je zpravidla složitější a dražší. Jedním z takových univerzálních adresových dekodérů je na obr. 8, který má v každé adresní lince Ai vložen invertor a patřičně konstruovaný přepínač P (například DIP), u kterého můžeme libovolně zvolit skutečnou vstupní adresu. Toto nastavování probíhá jen před zasunutím modulu do rozšiřovaného počítače, kdy je možné nahradit přepínač adres pájenými propojkami. Obrázek 8: Princip univerzálního dekodéru adresy Na obrázku 9 je uveden princip využití adresového dekodéru pro adresaci pamětí v jednoduchém počítačovém systému s časováním jednotlivých signálů při čtení i zápisu z/do paměti. 11

Obrázek 9: Princip využití dekodéru Jedním z výše uvedených adresových dekodérů může být použit jako adresový dekodér. Tento systém se vyznačuje společnou datovou i programovou pamět ovou částí, kde se jedná o Von Neumannovu architekturu. Paměti se tedy zde dělí o celkový pamět ový prostor nabízený mikroprocesorem. K adresování přídavných periferií slouží další signály CS, jež by také využívaly společný pamět ový prostor. Obrázky 10 a 11 jsou věnovány znázornění časování jednotlivých signálů při čtení respektive zápisu z/do paměti. Například při čtení z paměti ROM je nejprve generována adresa jednotlivých dat, poté se z této adresy dekóduje adresový dekodér signál CS s určitým zpožděním 4. Následuje signál RD, generovaný mikroprocesorem, po kterém se na datové sběrnici objeví data až po určité době, závisející na přístupové době paměti ROM. Obrázek 10: Čtení z paměti 4 zpoždění jednotlivých komponentů, z kterých je daný dekodér sestaven 12

Obrázek 11: Zápis do paměti Při zápisu do paměti je časování obdobné jen s výjimkou signálu WR, který mikroprocesor aktivuje až po vystavení dat na datovou sběrnici. Sled signálů, generovaných mikroprocesorem, je dán výrobní technologií daného mikroprocesoru. Jednotlivé adresové dekodéry musíme obsazovat součástkami s odpovídajícími rychlostmi, odpovídající časovým diagramům jednotlivých mikroprocesorů. Tato skutečnost se někdy stává zdrojem obtíží při návrhu počítačových systémů. Některé mikroprocesory jsou vybaveny možností prodlužovat časový sled těchto signálů generováním tzv. wait stavů. Využití této možnosti při návrhu pak ale způsobí nepříjemné zpomalení celkové činnosti daného systému s vyplývajícím zpožděním i pro uživatele. 4 Řízení komunikace Existují dva případy zahájení komunikace počítače nebo mikroprocesoru s periferiemi: Zahájení komunikace z iniciativy programu Jde o případ, kdy počátečním příkazem k zahájení komunikace je instrukce probíhajícího programu. Příkladem může být například algoritmus programu, který potřebuje přijímat z, resp. vysílat do okolí informace. Nutnou podmínkou je schopnost dané periferie přijmout resp. vyslat informaci v daný okamžik nebo musí informaci v okamžik určený počítačem vystavit. Příkladem těchto periferií mohou být stavové spínače nebo sdělovače 5. Zahájení komunikace z iniciativy periferie Zahájení komunikace z iniciativy periferie nastává v případě, že jistá periferie chce poslat resp. přijmout svou informaci z resp. do počítače. Zde však nastává problém v navázání komunikace, nebot se počítač může nacházet v činnosti, kdy ihned nemůže s periferií komunikovat. Počítač 5 signalizační zařízení 13

se však nějakým způsobem musí dozvědět, že je vyžadována komunikace, a která periferie je iniciátorem výzvy. V případě, že je komunikace aktivována periferií, ne počítačem, lze postupovat několika způsoby: Prvním z řešení, kdy je komunikace aktivována periferií, je obvodové řešení daného periferního zařízení. To je povoleno tak, že určitou operaci může uskutečnit, aniž by o tom musel vlastní počítač vědět. V dnešní době se však snažíme o dodržování minima obvodového řešení a maxima programového zabezpečení. Někdy může nastat případ, kdy operace vyžaduje rychlejší odezvu, než můžeme zajistit některým ze tří způsobů popsaných níže a tudížmusíme použít přídavného obvodového řešení. To bývá řešeno pomocí obvodů nízké a střední integrace. Pro inicializaci určité operace zařízením použijeme příznakový bit (Flag) nebo skupinu příznakových bitů. Hodnota tohoto příznakového bitu je pak čtena počítačem a pokud je hodnota rovna 1, může iniciovat určitou operaci. Pomocí příznakových bitů oznamuje periferní zařízení svůj stav 6. Skupina příznakových bitů vytváří stavové slovo (Status Word). Počítač tedy nejprve přečte stavové slovo dodané periferií a na základě analýzy tohoto slova rozhodne o další činnosti. Tomuto zařízení budeme říkat programové řízení nebo také metoda periodického testování. Zařízení, které chce inicializovat nějakou operaci pomocí speciálního signálu procesoru, přeruší právě probíhající program. Procesor přeruší svou okamžitou činnost a vykoná požadovanou akci komunikace. Poté se vrátí tam, kde byl procesor přerušen a pokračuje v původní činnosti. Pro obsluhu komunikace mezi více zařízeními tímto způsobem, musí mít mikroprocesor nebo počítač k dispozici obsáhlejší systém přerušení. Pokud operace, kterou chce periferní zařízení inicializovat, spočívá v přenosu bloku dat z periferního zařízení do paměti počítače nebo naopak, může se tato operace uskutečnit pomocí přímého přístupu do paměti (DMA). 4.1 Technika V/V bran Vstupně/Výstupní brána (z angl. Input/Output I/O) je obvodem, který zprostředkovává předávání dat mezi sběrnicí počítače a periferním zařízením počítače. Máme zde možnost použití brány s/bez pamětí. Oba typy bran jsou výkonové zesilovače (budiče) jednosměrně nebo obousměrně řízené. Základem bran bývá tzv. záchytný registr (latch) s třístavovým výstupem. Na obr. 12 je zobrazena technika nepodmíněného vstupu a výstupu dat. 6 připraven, zaneprázdněn, porucha atd. 14

Obrázek 12: Technika nepodmíněného vstupu a výstupu dat Při vstupu vyšle počítač signál RD, čímž přikáže vstupnímu zařízení předat data do vstupní brány počítače. Při výstupu počítač vyšle současně data i signál WR a výstupní zařízení převezme data. Tento způsob je mimořádně jednoduchý a předpokládá stálou připravenost periferního zařízení komunikovat. Technika podmíněného V/V je zobrazena na následujících obrázcích, kde na obr. 13 je zobrazen vstup. Jsou-li poskytována platná data ze vstupního zařízení, pak se za pomocí snímacího impulsu STB (strobe) nastaví hodnota Q = 1. Tento stav Q je označován jako indikátor (angl. flag). Pokud je tento stav, kdy je Q=1 platný, jsou předána data počítačem za pomocí impulsu RD a po uskutečnění tohoto přenosu je tento indikátor vynulován. Obrázek 13: Technika podmíněného vstupu dat Následně výstup podle obr. 14, kdy počítač vyšle impuls WR pro přepis dat do výstupního zařízení a následnému nastavení indikátoru. Výstupní zařízení po převzetí dat impulsem ACK, indikátor nastaví na nulovou hodnotu. Touto hodnotou je počítači sděleno, že může vyslat další data. 15

Obrázek 14: Technika podmíněného výstupu dat V obou případech jde o neúplný (jednosměrný korespondenční) režim, kdy pomocí indikátoru jsou sdělovány informace pouze počítači o zahájení nebo ukončení přenosu, a kdy vysílač dat je povinen data udržovat. Obrázky 15 a 16 znázornují techniku úplného (obousměrného korespondenčního) režimu. Tato technika využívá jednak vyrovnávací pamět (registr), klopný obvod pracující jako semafor (jeho stav je testován vysílačem i přijímačem dat), a tudíž zde přichází možnost i vzájemného blokování (interlock). Obrázek 15: Technika úplného (obousměrného korespondenčního) režimu Semafor má hodnotu rovnu 1, je-li příslušný registr plný, a tudíž nejsou vysílána další data ze vstupního zařízení. Pokud je ovšem hodnota semaforu nulová, registr je prázdný, pak lze vyslat data do registru za pomocí snímacího signálu STB (strobe) a zároveň semafor nastavit. Nejprve je tento 16

semafor testován počítačem na svou hodnotu. Pokud je jeho hodnota rovna 1, jsou data převzata z registru za pomocí signálu RD. V případě výstupu dle obr. 16 počítač nejdříve testuje hodnotu semaforu a zda tato hodnota není nulová. V kladném případě počítač za pomocí impulsu WR vyšle data do registru a nastaví semafor do stavu 1. Výstupní zařízení tak zjistí, že data jsou v registru a může je impulsem ACK převzít a semafor vynulovat. Obrázek 16: Případ výstupu dat 4.2 Programové řízení komunikace Při použití tohoto principu je komunikace mezi mikroprocesorem nebo počítačem a periferiemi výhradně řízena programovými prostředky. Využívají se zde instrukce pro vstup a výstup ve spojení s instrukcemi umožňujícími testování logických proměnných a instrukcemi skoků. Použití principu programového řízení je velmi jednoduché u těch počítačů, které mají přímo vnější vstup příznakového (stavového) bitu a instrukce podmíněných skoků, umožňující větvení programu podle hodnoty příznakového bitu. Například jednočipový počítač 8048 má dva vstupní signály T0 a T1 přímo testovatelné instrukcemi podmíněných skoků. Dnes se již tyto počítače téměř vůbec nepoužívají a nezbývá tak nic jiného než stavový bit přivést na jeden z pinů V/V brány nebo stavovým bitům či stavovému slovu věnujeme jeden z vstupně/výstupních portů. Stavovou informaci pak mikroprocesor čte běžnými instrukcemi a na jejím základě pak zahajuje a řídí komunikaci s danou periferií. Organizaci programového vybavení obsluhy komunikace musíme přizpůsobit vzhledem k našemu požadavku na včasné zjištění hodnot stavových bitů. Typickým příkladem jsou data z klávesnice, kdy informace nevyžadují příliš častou pozornost mikroprocesoru. Pokud víme, že člověk je schopen 17

napsat několik znaků za vteřinu, bude stačit mikroprocesoru sledovat stavový bit klávesnice jednou za desetinu sekundy, kdy bude tato doba stačit k zamezení ztráty znaků. Program určitých zařízení lze sestavit tak, že vykonává opakovaně určitou posloupnost instrukcí. Tato posloupnost je vzhledem k rychlosti dnešních mikroprocesorů a počítačů natolik krátká, že by nemělo činit problémy snímat stavový bit mnohem častěji, např. každých 10ms. Pokud tato doba trvání je delší, můžeme toto testování zařadit vícekrát (např. voláním podprogramu) do posloupnosti instrukcí algoritmu programu. Jisté případy, kdy mikroprocesor při určité fázi komunikace s periferním zařízením nastaví stavový bit a bude v určité krátké době vyžadovat odezvu na tento stav, jsou řešeny čekací smyčkou. Tím je míněno, že počítač testuje daný stavový bit, dokud nebude nastaven. Dochází zde k nebezpečí vzniku kolize a uvíznutí programu v některých případech, pokud není z jakéhokoliv důvodu nastaven stavový bit. Samozřejmě se i toto může řešit programovým způsobem, např. zařazením počítadla do čekací smyčky. 4.3 Řízení komunikace pomocí přerušení Systém přerušení mikroprocesoru usnadňuje programové řízení spolupráce s periferními zařízeními, především ve fázi zjišt ování žádosti o obsluhu. Jakmile periferní zařízení požaduje od počítače obsluhu 7, aktivuje přerušovací signál, vstupující do mikroprocesoru. Po zjištění žádosti o obsluhu procesor přeruší právě probíhající program a přejde do obslužného programu. Po jeho dokončení se procesor vrátí do původního místa v programu, kde byl přerušen a pokračuje v dalším provádění hlavního programu, v kterém byl přerušen. U tohoto řízení však nastává problém při obsluze více zařízení a je tak potřeba rozsáhlejšího přerušovacího systému. Některé mikroprocesory však mají méně přerušovacích vstupů než kolik bude k němu připojeno periferních zařízení. Pokud tedy chceme obsluhovat několik periferních zařízení, můžeme zvětšovat počet přerušovacích vstupů do procesoru nebo použít jednoho společného přerušovacího vstupu a při vybavení žádosti o přerušení vhodným způsobem zjistit, které zařízení o obsluhu žádalo. Informace, které zařízení žádalo o obsluhu, je nejčastěji poskytnuta ve formě vektoru přerušení, což je adresa příslušného obslužného programu. Některé možnosti identifikace zařízení žádajícího o obsluhu: 1. Požadavky na obsluhu jednotlivých zařízení jsou logicky sečteny a procesor přečte stavové slovo, obsahující identifikační znak zařízení, žádající o obsluhu. Tzn., že při požadavku na obsluhu si procesor v programu obsluhy přerušení otestuje jednotlivé bity brány, ke které jsou připojeny žádosti o přerušení všech periferních zařízení. Podle programového nastavení určí skok do příslušného podprogramu obsluhy daného zařízení. 7 např. přenos dat, různá hlášení atd. 18

Pokud o obsluhu žádá více jak jedno zařízení najednou, musíme toto přijetí požadavků programově ošetřit. Způsob ošetření požadavků je schematicky naznačen na obr. 17. Obrázek 17: Identifikace zdroje přerušení programovými prostředky 2. Požadavky na obsluhu zařízení jsou opět logicky sečteny a signál potvrzení žádosti od mikroprocesoru je sériově veden přes všechna periferní zařízení. Priorita je tedy dána zařazením jednotlivých zařízení vůči tomuto signálu. Pokud nastane žádost o přerušení, procesor vyšle potvrzující signál nejprve prvnímu zařízení 8. Pokud toto zařízení nežádalo o přerušení, je tento signál propuštěn dál. Jakmile signál dojde k zařízení, jež požadavek o přerušení vydalo, je nutné zabránit dalšímu průchodu tohoto signálu k dalším zařízením. Procesoru předáme vektor přerušení, tj. adresu, na které se nachází obslužný podprogram. Tento způsob již vyžaduje přídavné řešení technickými prostředky. 3. Další možností je použití řadiče přerušení, jehož princip spočívá ve vyslání identifikačního znaku daného zařízení až po přijetí žádosti o přerušení a také v přiřazování priority a jejich dynamické změny jednotlivým zařízením při více žádostech najednou a také zajišt uje maskování zdrojů. Podrobnější blokové schéma takového řadiče je na obr. 18. Žádosti o přerušení jsou nejprve porovnány s registrem masky, který rozhoduje o jejich maskování. Tyto žádosti jsou nejprve uloženy v registru žádosti o přerušení. Poté jsou blokem priorit přijmuty tyto požadavky na přerušení, rozřazeny podle jejich priority a vybrán jeden požadavek s nejvyšší prioritou. Tento požadavek s nejvyšší prioritou, který pošle procesoru kompletní informace o adrese, na které je program obsluhy přerušení, je potřeba před jeho činností naprogramovat. Naprogramováním se nastavují priority jednotlivých zdrojů, masky a v neposlední řadě i adresy obsluhy přerušení příslušným zdrojům. U některých řadičů lze naprogramovat dynamicky proměnnou prioritu žádostí. Sekvence ošetření žádosti přerušení vypadá zjednodušeně následovně: jedna nebo více žádostí nastaví náběžnou hranou odpovídající bity v registru žádostí přerušení, 8 zařízení s nejvyšší prioritou 19

řadič vyhodnotí žádosti o přerušení a posílá signál žádost o přerušení do procesoru, procesor po akceptaci posílá signál o přijetí žádosti, řadič generuje na sběrnici instrukci CALL; tato instrukce je akceptována mikroprocesorem, vykonání instrukce způsobí generování dalšího signálu do řadiče, řadič posílá na datovou sběrnici vektor přerušení odpovídající žádosti, mikroprocesor vykonává instrukci CALL s daným vektorem přerušení. Obrázek 18: Zjednodušené blokové schéma řadiče přerušení 4.4 Přímý přístup do paměti DMA Pokud používáme přerušení, je málo efektivní řízení V/V operací pomocí procesoru. Velkou nevýhodou je především to, že každá V/V operace se provádí nadvakrát, protože informace se nejprve přesouvá do střadače a teprve pak na místo určení. Navíc s každým přerušením vznikají další časové ztráty, nutné pro úklid stavu přerušeného programu a obnovení tohoto stavu po skončení obslužného programu. V počítači existují události, na které nelze reagovat jinak než přerušením. Princip operace spočívá v prostém přesunu informací z periferního zařízení do hlavní paměti nebo naopak. Lze realizovat výhodněji formou přímého přístupu do paměti označované zkratkou DMA (z anglického výrazu Direct memory access). Dané označení DMA se používá u většiny výrobců, proto jej budeme používat i zde. Princip DMA spočívá v přímém přesunu informací bez účasti procesoru mezi vyrovnávacím registrem periferního zařízení a hlavní pamětí. Z toho plyne, že procesor se vůbec neúčastní tohoto přesunu, a tudíž nemusí ukončovat své aktuálně běžící programy, aniž by je přerušoval. Jedinou nutnou podmínkou je uvolnění sběrnice pro procesor. To znamená, že procesor na dobu přesunu přepne všechny budiče sběrnic do třetího (vysokoimpedančního) stavu. Sběrnice nemohou zůstat po 20

dobu přesunu bez řízení. Tomuto zabraňuje existující další blok, který je schopný generovat adresu a určovat okamžiky přesunu dat po datové sběrnici. Tento blok se označuje jako blok DMA, někdy též označovaný kanál DMA. Obrázek 19: Struktura bloku pro přímý přístup do paměti (DMA) Příklad struktury bloku DMA vidíme na obr. 19. V tomto bloku pro přímý přístup do paměti jsou určeny tři registry pro styk se sběrnicemi, označené jako: registr dat, registr adresy, čítač přesunů. Registr dat obsahuje slovo, která má být přesunuto z periferního zařízení do hlavní paměti nebo naopak. Délka tohoto slova odpovídá šířce toku dat na datové sběrnici systému. Je-li na sběrnici periferního zařízení použit jiný formát dat (např. o šířce jedné slabiky), používá se tento registr současně k přeformátování dat. To znamená, že při přesunu z periferního zařízení do hlavní paměti se obsah registru dat postupně skládá z několika slabik a při zpětném přesunu se naopak z jednoho slova vybírá slabika po slabice. Registr adresy slouží pro uchování adresy hlavní paměti, která má být použita při přesunu. Tedy adresa, na kterou bude zapsáno slovo obsažené v registru dat v bloku DMA nebo ze které bude přečteno slovo, které má být do registru dat v bloku DMA zapsáno. Čítač přesunů obsahuje požadovaný počet slov, které mají být ještě přesunuty v rámci jednoho 21

spojení mezi periferním zařízením a hlavní pamětí. Při každém uskutečněném přesunu se obsah tohoto počítače zmenší o jedničku, takže jeho nulová hodnota signalizuje, že spojení skončilo. Blok DMA může obecně pracovat ve dvou základních režimech: přesouvání dat mezi periferním zařízením a hlavní pamětí jednotlivě, přesouvání dat v blocích. Jednotlivé přesuny se uskutečňují v režimu odebrání cyklu (cycle stealing). V tomto režimu se procesor zastaví pouze na dobu jednoho cyklu hlavní paměti a po provedení jednoho přesunu slova uvolní blok DMA sběrnice, takže procesor může pokračovat ve své činnosti. Blokový přenos probíhá tak, že blok DMA nepřetržitě řídí sběrnice po celou dobu, dokud nemá vynulovaný čítač přesunů. Celá operace přímého přístupu do paměti obvykle probíhá v několika krocích. 1. Blok přímého přístupu do paměti DMA je nejprve potřeba procesorem naprogramovat než bude zahájen jakýkoliv přesun. Tímto naprogramováním se myslí, zápis operacemi V/V do čítače přesunů počet přesouvaných slov, do registru adresy pošle adresu začátku oblasti v hlavní paměti, s níž se má pracovat. Navíc do registru příkazu se zapíše kód operace, kterou má DMA provést. 2. Blok DMA spustí periferní zařízení a čeká, až bude toto periferní zařízení připraveno bud data přijmout nebo vyslat. Pro další výklad budeme předpokládat, že blok DMA řídí operaci vstupu, tedy přesun dat z periferního zařízení do hlavní paměti. Výstup dat do periferního zařízení by probíhal analogicky. Jakmile periferní zařízení oznámí bloku DMA, že je připraveno 9, žádá blok DMA o přímý přístup do paměti signálem STB. 3. Procesor nejprve musí dokončit strojový cyklus, protože nemůže reagovat na žádost o DMA okamžitě. Během tohoto strojového cyklu mohl procesor používat hlavní pamět, takže musí mít dost času na dokončení požadovaného přesunu po sběrnici. V systému, který používá přímý přístup do paměti, jsou pro procesor přesně definovány okamžiky, kdy může dojít k přímému přístupu. Obvykle je to konec každého strojového cyklu procesoru. Příklad rozložení okamžiků přímého přístupu do paměti během jednoho instrukčního cyklu je uveden na časovém diagramu obr. 20. Tento obrázek ovšem vyjadřuje pouze jedno z možných řešení. Existují systémy, např. systém sestavený na bázi mikroprocesoru Motorola MC 6800, v nichž není třeba čekat na konec strojového cyklu. Přímý přístup k paměti se pak uskutečňuje průběžně během normální činnosti procesoru tak, že blok DMA vysílá data synchronně s fází hodinφ 1, zatímco procesor používá pamět vždy ve fáziφ 2. Ve složitějších systémech může dojít k tomu, že o přímý přístup do paměti žádá několik jednotek současně. V takovém případě procesor vyhodnocuje jejich žádosti 9 tzn. připravenost dat, která mají být vyslána do hlavní paměti 22

na základě priorit některým ze způsobů popsaných v kapitole6. Obrázek 20: Body DMA 4. K přímému přístupu do paměti může dojít v okamžiku, kdy vyšle procesor vybrané jednotce signál ACK a uvolní sběrnice. Vybraná jednotka pak vyšle na adresovou sběrnici obsah svého registru adresy, na datovou sběrnici obsah svého registru dat a čeká na provedení jednoho cyklu paměti. Pak zvětší obsah registru adresy o jedna a zmenší obsah čítače přesunů. Není-li obsah čítače přesunů dosud nulový, testuje, zda periferní zařízení již přesunulo nové slovo do registru dat. Pokud tento přesun proběhl, pokračuje se rovnou v přesunu. Vyšle na adresovou sběrnici novou adresu a na datovou sběrnici nové slovo a dále změní obsahy registru adresy a čítače přesunů. V opačném případě dočasně ukončí přesun dat a přestane vysílat žádost o DMA, a tím předá řízení procesoru. 5. Procesor dále pokračuje v provádění svého programu až do okamžiku, kdy některý blok DMA vyšle novou žádost o DMA, signalizující připravenost dat z periferních zařízení v registru dat. 6. Pokud je obsah čítače přesunů nulový, blok DMA končí celý přesun a uvolní sběrnice. Navíc může vyslat žádost o přerušení, čímž si vyžádá programový zásah procesoru, který spočívá v novém naprogramování jeho vnitřních registrů. Řadič DMA adresuje hlavní pamět a synchronizuje činnost mezi sběrnicí a periferním zařízením, zatímco data jdou mimo něj. Dále existují i takové přenosové subsystémy, které jsou založeny na podobném principu jako u DMA. Mají jistou inteligenci a jsou schopny data i kontrolovat, opakovat a přepracovávat. Jde o kanál, což je speciální procesor určený ke spojení hlavního procesoru s periferními zařízeními. Řídí se kanálovým programem. Kanály mohou být multiplexní a selektorové, ale podrobněji o nich v kapitole 5. 5 Kanálová architektura U centrálních počítačů se vkládá ještě další jednotka, obvykle mezi procesor a řadič periferního zařízení, označovaná jako kanál. Kanál je specializovaný, programově řízený procesor, který je schopen samostatně řídit vstupní/výstupní V/V operace. Mezi obvyklé způsoby propojení patří jeho využití v architektuře počítače, jež je naznačeno na obr. 21. Vidíme, že jeden systém může obsahovat 23

až několik kanálů, které jsou připojeny na sběrnici hlavní paměti a procesoru. Hlavní pamět řídí organizátor nebo přidělovač hlavní paměti, kterému se kanál musí podřídit jako každý jiný účastník. Každý kanál řídí periferní sběrnici, k níž mohou být připojena jednotlivá periferní zařízení. Obrázek 21: Kanálová architektura počítače Obr. 21 popisuje zvolení nejobvyklejšího způsobu tohoto kanálového propojení, a to prostřednictvím řadičů periferních zařízení. Musíme si ale dávat pozor na skutečnost, že v konfiguraci na tomto obrázku může v některých případech dojít k přetížení určitého kanálu, a tím ke zdržování činnosti periferního zařízení, které jsou na něj připojeny. Některé řadiče lze připojit ke dvěma kanálům současně 10. U některých systémů lze navíc připojit jeden kanál k několika počítačům současně, čímž lze vytvářet vícepočítačové systémy. Propojením kanálů dvou různých počítačů pomocí tzv. adaptéru kanál - kanál, jež se připojuje na V/V sběrnici, jsme schopni vytvořit vícepočítačové systémy. Těmto kombinovaným zapojením je věnován obr. 22. Systémy, v nichž operace V/V řídí kanály, nejsou V/V operace obvykle obsaženy v operačním kódu procesoru, protože procesor tyto operace nepotřebuje. Místo nich se používají pouze operace spouštějící a ukončující činnost kanálů, případně testující stav přídavného zařízení. Například to mohou být operace START IO, HALT IO, HALT device, TEST IO. Tyto instrukce obsahují kromě typu operace i adresu kanálu periferního zařízení. Vlastní činnost kanálu během V/V operace je pak řízena kanálovým programem, prováděným přímo v kanálu. Kanálový program je uložen v hlavní paměti a čte se po povelových slovech (CCW), která se jednotlivě přenášejí do registru CCW v kanálu, kde je řízena jeho činnost. V kanálu prováděné operace jsou použity především pro řízení přenosu dat mezi registrem periferního zařízení a hlavní pamětí. Kanál má též možnost přímého přístupu do hlavní paměti na rozdíl 10 toto řešení se používá např. u řadičů disků 24

od bloku DMA (obr. 19). Kanál je však v této funkci podstatně samostatnější a je schopen provádět větší množství různých operací bez zásahu procesoru. Navíc může být operační kód kanálu doplněn speciálními instrukcemi, urychlující aritmetické operace s adresou, logické operace a skoky v programu. Obsluhu ze strany procesoru si kanál může vyžádat pomocí žádosti o přerušení. Určité V/V instrukce se provádějí přímo v periferním zařízení. Mezi tyto instrukce patří například řídící specifické operace podle typu jednotlivých periferních zařízení, např. vyhledávání adresy na disku nebo tisk řádku. Kanál tyto instrukce pouze čte z hlavní paměti a předává dál do příslušných přídavných zařízení. 5.1 Struktura a funkce kanálů Vnitřní struktura kanálu je znázorněna na obr. 25. Můžeme pozorovat, že se základní registry v mnohém neliší od DMA a jsou v podstatě stejné. Jednou z částí, kterou se odlišuje kanál od DMA je přítomnost vlastního řadiče, náležícího kanálu, který mu umožňuje provádět kanálový program. Podrobnější struktura kanálu je závislá na tom, zda se jedná o selektorový nebo o multiplexní kanál. Hlavním rozdílem mezi selektorovým a multiplexním kanálem je to, že multiplexní kanál může obsluhovat více periferních zařízení současně, kdežto selektorový pouze jen jedno zařízení. Selektorový kanál se používá k připojení velmi rychlých periferních zařízení, především disků. Průběh přesunu dat řízený selektorovým kanálem probíhá tak, že nejprve kanál naváže spojení s určitým periferním zařízením, poté vydá příkaz ke spuštění V/V operace, a provede se přesun bloku dat z hlavní paměti do periferního zařízení nebo naopak. Poté se spojení ukončí. Po ukončení spojení se může navázat spojení s dalším periferním zařízením, které je na něj připojeno. Během tohoto spojení se přesune opět celý blok dat. Přenosová rychlost selektorových kanálů se pohybuje v rozmezí 1 až 3 MB/s. Postupem času se však selektorové kanály přestaly používat a nahradily je blokové multiplexní kanály, které dosahují stejných přenosových rychlostí a mají navíc některé další výhody. Obrázek 22: Kombinovaná zapojení kanálů př.1 Mezi hlavní výhody multiplexního kanálu je schopnost obsluhovat až několik periferních zařízení současně, tedy provádět současně několik kanálových programů. Aby byl schopen provádět několik 25

Obrázek 23: Kombinovaná zapojení kanálů př.2 Obrázek 24: Kombinovaná zapojení kanálů př.3 kanálových programů současně, je rozdělen kanál na podkanály, které jsou přiděleny jednotlivým periferním zařízením. Každý podkanál je vybaven vlastní sadou registrů. Registr dat bývá společný, sloužící pro přenos vždy jen u jednoho zařízení. Podkanálů však bývá až 256 11, podkanály se obvykle realizují jako vyhrazené bloky hlavní paměti. Multiplexní kanál se označuje jako slabikový nebo blokový podle toho, zda-li přesouvá jednotlivé slabiky nebo celé bloky mezi hlavní pamětí a periferním zařízením. Obrázek 25: Struktura kanálu 11 maximální počet připojitelných periferních zařízení, adresovatelných ve standardním styku 26

Slabikový multiplexní kanál se používá pro obsluhu pomalých zařízení jako je klávesnice, tiskárna nebo komunikační linky a další zařízení. Jedním z režimů činnosti slabikového multiplexního kanálu je spuštění určitého zařízení. Nejprve je předána (resp. převzata) jedna slabika a za dobu potřebnou pro zpracování (resp. přípravě pro předání nové slabiky) periferním zařízením, spustí kanál jiné periferní zařízení, přesune též jednu slabiku, atd. Takto cyklicky obsluhuje všechna periferní zařízení, která jsou v určitém okamžiku spuštěna, dokud se všechny požadované přesuny neuskuteční. Přesun několika slabik po sobě jdoucích z jednoho periferního zařízení je někdy výhodné přesunout i u pomalejších periferních zařízení. Tento režim se označuje jako dávkový (burst mode). Mezi jeho výhody patří zvýšená přenosová rychlost téměř o řád až několika stovek tisíc slabik za sekundu. 6 Vyhodnocování priorit K řízení činnosti počítačového systému se často používají žádosti, což jsou signály signalizující, že zařízení jsou připravena vykonávat určitou činnost, pod kterou si můžeme představit např. žádost o přerušení, žádost o DMA, žádost o sběrnici apod. Tyto žádosti mohou přicházet z různých zařízení zcela nekoordinovaně, a tím vzniká nebezpečí vzájemné konkurence těchto signálů. Řešením těchto konfliktních situací je zavedení systému priorit (předností), který umožňuje procesoru rozhodování o pořadí jednotlivých žádostí. Mezi nejznámější metody vyhodnocení priority žadatele lze zařadit tři druhy: samostatné žádosti, zřetězení, cyklické výzvy. 6.1 Samostatné žádosti Samostatné žádosti jednotek se posílají přímo po radiálních vodičích do procesoru. Ke každému vodiči ŽÁDOST je přiřazen jeden vodič s označením PŘIDĚLENÍ, který probíhá radiálně od procesoru k žádající jednotce viz. blokové schéma této metody na obr. 26. Tímto jednoznačným přiřazením jednoho vodiče každé jednotce je dána informace procesoru, která jednotka žádala o sběrnici. Vyhodnocení priority se může provést jednoduchým prioritním dekodérem podle obr. 27. Jednotlivé priority jsou přiděleny pevně, což umožňuje kombinačnímu obvodu zpracování přicházejících žádostí s minimálním zpožděním. Další možností je vyhodnotit přijaté žádosti programem, který cyklicky prohledává registr, v kterém jsou tyto žádosti zapsány. Výhodou použití programu je možnost jeho snadné změny. 27