xdsl.ob

Transkript

xdsl.ob
Obsah
1 Úvod
1.1 Motivace a cı́le této práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
2 Sběrnice
2.1 Adresová sběrnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Řı́dı́cı́ sběrnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Datová sběrnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4
4
5
3 Připojenı́ zařı́zenı́ ke sběrnici a adresový dekodér
3.1 Adresový dekodér s úplným dekódovánı́m adresy . . . . . . . . . . . . . . . . . . .
3.2 Adresový dekodér s neúplným dekódovánı́m adresy . . . . . . . . . . . . . . . . . .
3.3 Adresový dekodér s lineárnı́m přiřazenı́m adresy . . . . . . . . . . . . . . . . . . .
8
9
10
10
4 Řı́zenı́ komunikace
4.1 Technika V/V bran . . . . . . . . . .
4.2 Programové řı́zenı́ komunikace . . . .
4.3 Řı́zenı́ komunikace pomocı́ přerušenı́
4.4 Přı́mý přı́stup do paměti DMA . . . .
.
.
.
.
13
14
17
18
20
5 Kanálová architektura
5.1 Struktura a funkce kanálů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
25
6 Vyhodnocovánı́ priorit
6.1 Samostatné žádosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Zřetězenı́ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Cyklické výzvy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
27
28
29
7 Historie sběrnic PC
30
8 Závěr
35
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Seznam tabulek
1
2
3
4
Popis rozhranı́ XT, ISA, MCA, EISA, VESA a Opti Local BUS
Popis jednotlivých verzı́ PCI rozhranı́ . . . . . . . . . . . . . .
Popis jednotlivých verzı́ AGP rozhranı́ . . . . . . . . . . . . . .
Popis jednotlivých verzı́ PCI Express rozhranı́ . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
33
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
6
6
7
9
Seznam obrázků
1
2
3
4
5
Obousměrná datová sběrnice .
Přı́klad vedenı́ v jednom směru
Značenı́ třı́stavových budičů .
Časovacı́ diagram . . . . . . .
Úplné kódovánı́ adres . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Neúplné dekódovánı́ adresy . . . . . . . . . . . . . . . . . .
Přı́klad využitı́ lineárnı́ho adresového dekodéru . . . . . . .
Princip univerzálnı́ho dekodéru adresy . . . . . . . . . . . .
Princip využitı́ dekodéru . . . . . . . . . . . . . . . . . . .
Čtenı́ z paměti . . . . . . . . . . . . . . . . . . . . . . . . .
Zápis do paměti . . . . . . . . . . . . . . . . . . . . . . . .
Technika nepodmı́něného vstupu a výstupu dat . . . . . . .
Technika podmı́něného vstupu dat . . . . . . . . . . . . . .
Technika podmı́něného výstupu dat . . . . . . . . . . . . .
Technika úplného (obousměrného korespondenčnı́ho) režimu
Přı́pad výstupu dat . . . . . . . . . . . . . . . . . . . . . .
Identifikace zdroje přerušenı́ programovými prostředky . . .
Zjednodušené blokové schéma řadiče přerušenı́ . . . . . . .
Struktura bloku pro přı́mý přı́stup do paměti (DMA) . . . .
Body DMA . . . . . . . . . . . . . . . . . . . . . . . . . .
Kanálová architektura počı́tače . . . . . . . . . . . . . . . .
Kombinovaná zapojenı́ kanálů př.1 . . . . . . . . . . . . . .
Kombinovaná zapojenı́ kanálů př.2 . . . . . . . . . . . . . .
Kombinovaná zapojenı́ kanálů př.3 . . . . . . . . . . . . . .
Struktura kanálu . . . . . . . . . . . . . . . . . . . . . . . .
Samostatné žádosti . . . . . . . . . . . . . . . . . . . . . .
Prioritnı́ dekodér . . . . . . . . . . . . . . . . . . . . . . .
Vyhodnocenı́ priority zřetězenı́m . . . . . . . . . . . . . . .
Logický obvod použı́vaný při zřetězenı́ . . . . . . . . . . .
Vyhodnocenı́ priority cyklickými výzvami . . . . . . . . . .
Obvod vyhodnocujı́cı́ adresu, použı́vaný pro cyklické výzvy
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
11
11
12
12
13
15
15
16
16
17
19
20
21
23
24
25
26
26
26
28
28
29
29
30
30
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ě adresuje 216 = 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ány1 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
informace2 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ı́ časo6
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 pak patřı́ 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če5 .
• 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 stav6 .
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 W R 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 W R 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 W R 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 obsluhu7 , 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řipraveno9 , žá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 kapitole 6.
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ž 25611 , 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
Obrázek 26: Samostatné žádosti
Obrázek 27: Prioritnı́ dekodér
6.2
Zřetězenı́
Požadavky na obsluhu zařı́zenı́ vysı́lajı́ všechny jednotky po jediném vodiči, takže procesor dostává
žádost anonymně a sám ji nemůže vyhodnotit. Tyto požadavky jsou opět logicky sečteny a signál
potvrzenı́ žádosti od mikroprocesoru je sériově veden přes všechna perifernı́ zařı́zenı́. Pořadı́, v němž
jsou jednotky tı́mto vodičem propojeny, odpovı́dá pořadı́ priorit (prvnı́ jednotka následujı́cı́ přı́mo za
procesorem má nejvyššı́ prioritu, poslednı́ jednotka má nejnižšı́ prioritu).
Na přı́chod přidělovacı́ho signálu reaguje každá jednotka podle toho, zda žádala o sběrnici, nebo
ne. Pokud žádala, zablokuje přidělovacı́ signál a nepustı́ jej dál a současně potvrdı́ výběr. To může
učinit tak, že vygeneruje svou adresu, kterou vyšle do procesoru. Druhou možnostı́ je vyslánı́ jednobitového signálu po zvláštnı́m vodiči, kterým je každá jednotka spojena s procesorem.
Pokud je sběrnice přidělena určité jednotce, pak všechny jednotky za nı́ následujı́cı́ musı́ čekat.
Jednotka, která nežádala o přidělenı́, propustı́ přidělovacı́ signál beze změny a nijak na něj nereaguje.
Detail zapojenı́ vyhodnocovacı́ch obvodů pro přı́jem a předánı́ přidělovacı́ho signálu při zřetězenı́
jednotek je uveden na obr. 29. Každá jednotka je vybavena jednobitovou pamětı́, v nı́ž je zaznamenána
žádost o přidělenı́. Tento pamět’ový člen se nuluje, jakmile byla vyslaná žádost uspokojena a žádajı́cı́
28
Obrázek 28: Vyhodnocenı́ priority zřetězenı́m
jednotka se stala řı́dı́cı́ jednotkou. Po vynulovánı́ paměti žádosti může přidělovacı́ signál projı́t k jednotkám s nižšı́ prioritou. Priority jsou jednotkám přiděleny pevně a lze je změnit pouze změnou pořadı́
jednotek v řetězu.
Obrázek 29: Logický obvod použı́vaný při zřetězenı́
6.3
Cyklické výzvy
Třetı́ metodou vyhodnocovánı́ priorit jsou cyklické výzvy (polling). Jednotky vysı́lajı́ své žádosti opět
po jednom vodiči sběrnicového typu, takže procesor přijme žádost jako anonymnı́ (obr. 30). Mı́sto
jednoho vodiče, který signalizuje přidělenı́ sběrnice, je však použita skupina vodičů „ADRESA JED-
29
NOTKY“, schopná přenášet adresu kterékoliv z připojených jednotek12 . Když procesor přijme žádost
o přidělenı́ sběrnice (a je-li připraven této žádosti vyhovět), začne po adresových vodičı́ch vysı́lat
postupně adresy všech jednotek v předem stanoveném pořadı́. Jakmile jednotka, která žádala o přidělenı́, rozpozná na adresových vodičı́ch svou adresu, reaguje na ni jako signál „přiděleno“, vyšle do
procesoru signál „POTVRZENÍ VÝBĚRU“ a stane se řı́dı́cı́ jednotkou.
Obrázek 30: Vyhodnocenı́ priority cyklickými výzvami
Procesor nevysı́lá adresy do té doby, než řı́dı́cı́ jednotka ukončı́ svou činnost. Pak procesor znovu
testuje signál „ŽÁDOST“. Zjistı́-li, že je opět aktivnı́ (at’již proto, že se objevil nový požadavek nebo
proto, že nějaký dřı́vějšı́ požadavek nebyl uspokojen), začne znovu vysı́lat adresy. Přitom může začı́t
vždy znovu od jednotky s nejvyššı́ prioritou nebo může pokračovat v cyklu tam, kde právě přestal,
tedy u jednotky s nejblı́že nı́zkou prioritou po jednotce, která byla právě vybrána. Obě tyto strategie
se použı́vajı́ a volba každé z nich závisı́ na požadovaných vlastnostech systému13 . Pořadı́ vysı́lánı́
adres v cyklu je obvykle určováno programem, takže je lze dynamicky měnit. Detail obvodu, který
vyhodnocuje adresu vysı́lanou procesorem, je na obr. 31.
Obrázek 31: Obvod vyhodnocujı́cı́ adresu, použı́vaný pro cyklické výzvy
7 Historie sběrnic PC
U počı́tačů XT se použı́vala 8bitová sběrnice, která měla osm datových a dvacet adresových vodičů.
Pro počı́tače AT vyvinulo IBM na jejich začátku sběrnici, která dostala název ISA (Industry Standard
Architecture). Pro tuto sběrnici je charakteristické, že spojuje procesor s diskem, grafickou kartou
12
13
pro tento účel lze využı́t též část adresové sběrnice
druhý způsob zaručuje, že jednotky s nižšı́ prioritou nikdy nebudou zcela připraveny o možnost přidělenı́
30
a ostatnı́mi vnějšı́mi zařı́zenı́mi. Při veškeré komunikaci s nimi se využı́vá služeb této sběrnice.
Nejdůležitějšı́m parametrem sběrnice je jejı́ šı́řka a rychlost. ISA má 8 bitovou sběrnici, která měla
16 datových a 24 adresových vodičů. Problémy nastanou, pokud se na této sběrnici začne provozovat
nějaký vı́ceúlohový, vı́ceuživatelský operačnı́ systém (např. Unix). Tehdy přestane šı́řka a rychlost
sběrnice stačit. Na rychlosti sběrnice záležı́, jak rychle se data dostanou např. z disku k procesoru,
aby je mohl zpracovat, než bude procesor operačnı́m systémem přidělen jinému procesu. Dalšı́m
problémem sběrnice ISA je jejı́ rozšiřitelnost. ISA totiž nedokáže rozeznat typ adaptéru zasunutý
do jejı́ho 16 bitového slotu a přizpůsobit se nové situaci. Tuto nevýhodu odstraňuje EISA a MCA.
Dalšı́ nevýhodou je způsob zpracovánı́ vnějšı́ch přerušenı́. Počet vnějšı́ch přerušenı́, která se mohou
v systému použı́t, je omezen. Systém přerušenı́ tvořı́ kaskádně zapojené řadiče přerušenı́. Přerušenı́ se
obsluhujı́ podle priority.
Výrobci brzy pochopili, že ISA je jen mezistupněm k novým sběrnicı́m. Objevily se totiž nové
a rychlejšı́ procesory, které ISA doslova „dusı́“. Při použitı́ DMA (rychlý přenos mezi vnějšı́m zařı́zenı́m a pamětı́) se u ISA mohou použı́t pouze bloky 64kB a 128kB. Přišly nové architektury MCA
od IBM, průmyslový standard EISA navazujı́cı́ na ISA a zejména Local Bus. Ten se snažı́ všechny
rychlejšı́ prostředky v systému přesunout k procesoru na jeho rychlou lokálnı́ sběrnici (Local bus).
MCA (rok 1987) je 32bitová sběrnice s 32bitovými adresovými vodiči a taktem 10 MHz. Zdálo by
se, že je rychlejšı́ než ISA, ale ta má pouze 16 datových vodičů. MCA navı́c umı́ pracovat s přenosovou
rychlostı́ až 32 MB/s, což je 6x rychleji než sběrnicový systém XT. Dalšı́ 32bitovou sběrnicı́ je EISA
(Extended ISA). Byla vyvinuta u firmy Klone-Bauer. Je stejně rychlá jako MCA, pouze je taktována
na 8,33 MHz. Navı́c, což je důležité pro uvedenı́ na trh, zachovává kompatibilitu směrem dolů ke
kartám pro sběrnici ISA. EISA odstraňuje omezenı́ velikosti bloků při přenosu DMA - tak v módu
burst dosahuje rychlosti přenosu až 33 MB/s.
Typ
XT bus
ISA
MCA
EISA
VESA Local BUS
Opti Local BUS
Datová šı́řka [bitů]
8
16
32
32
32
32
takt [MHz]
4,77
7,15 či 8,33
10,22
8,33
25–66
25–66
Přenosová rychlost [MB/s]
až 2,38
až 16,6
40
až 33
až 264
až 264
Tabulka 1: Popis rozhranı́ XT, ISA, MCA, EISA, VESA a Opti Local BUS
PCI (Peripheral Compinent Interconect) – sběrnice, která vznikla v roce 1993, když nahradila
v té době nejrozšı́řenějšı́ ISA, EISA a VLB sloty. Použı́vá paralelnı́ přenos dat14 . Původnı́ frekvence
PCI byla 33 MHz, v revizi 2 byla zdvojnásobena na 66 MHz. Jejı́ maximálnı́ přenosová rychlost je
133 MB/s (266 MB/s ve druhé revizi), kterou navı́c sdı́lejı́ všechna zařı́zenı́ včetně řadiče IDE, zvukové
14
vždy spolu mohou komunikovat jen 2 zařı́zenı́ najednou a ostatnı́ musı́ „mlčet“
31
karty atd. PCI dobře posloužilo pouze prvnı́m generacı́m grafických karet, než bylo zavedeno AGP.
V současnosti začı́ná nástup nové sběrnice PCI-Express, která na základnı́ch deskách nahradı́ PCI
i AGP. Sběrnice PCI se stále částečně vyvı́jı́, ale bohužel ne zvyšovánı́m výkonu, ale jen některými
„kosmetickými“ úpravami jako je změna napětı́ apod. Nejnovějšı́ verze PCI 2.3 plně přecházı́ k 3.3V,
na rozdı́l od PCI verze 2.2, která použı́vá 5V.
verze PCI
PCI-32/33
PCI-32/66
PCI-64/33
PCI-64/66
datová šı́řka [bitů]
32
32
64
64
takt [MHz]
20-33
66
20-33
66
přenosová rychlost [MB/s]
132
264
264
528
Tabulka 2: Popis jednotlivých verzı́ PCI rozhranı́
AGP (Accelerated Graphics Port) – Sběrnice AGP je určená výhradně pro grafické karty. Princip
jejı́ činnosti spočı́vá v tom, že grafické kartě umožnı́me zabrat prostor v pracovnı́ paměti na základnı́
desce a nezávislou, oddělenou sběrnicı́ dopravı́ data na této přı́mé cestě co nejrychleji. Výsledkem by
měly být výrazně realističtějšı́ trojrozměrné animace. Sběrnice AGP je taktovaná na 66 MHz oproti
PCI 33 MHz, což znamená zvýšenı́ nejvyššı́ přenosové rychlosti na 266 MB/s. Mezi výhody AGP
oproti PCI sběrnice patřı́ většı́ šı́řka pásma při datovém přenosu a dalšı́ signálnı́ vedenı́ pro řı́zenı́
režimu „pipeline“.
U sběrnice AGP lze vyžadovat data už v době, kdy se dřı́ve požadovaná data ještě hledajı́ v paměti, což
u PCI bylo možné teprve po ukončenı́ předchozı́ho datového přenosu. Sběrnice AGP se stará pouze
o grafiku. Může využı́t celou šı́řku pásma a nemusı́ se o ni dělit s ostatnı́mi připojenými zařı́zenı́mi.
Což ovšem znamená menšı́ univerzálnost než sběrnice PCI, pro jejı́ž sloty existujı́ různé přı́davné
karty. Na AGP bychom se tedy měli dı́vat spı́še jako na rozšı́řenı́ než jako na náhradu PCI. Rychlá
sběrnice AGP se tedy použı́vá pro přı́mé spojenı́ mezi pracovnı́ pamětı́ (RAM) na základnı́ desce
a čipem urychlovače na grafické kartě. Mı́sto lokálnı́ paměti na kartě může ted’ grafický akcelerátor
použı́vat RAM počı́tače, třeba pro ukládánı́ textur.
Přehled vývoje rychlostı́ AGP:
• AGP 1x: Už pouhé zdvojnásobenı́ taktu sběrnice na 66 MHz má za následek datovou rychlost
264 MB/s, tedy dvojnásobek hodnoty dosahované s PCI. Je však třeba vzı́t v úvahu, že jde stejně
jako u všech ostatnı́ch režimů o maximum a v praxi dosažitelné hodnoty jsou nižšı́,
• AGP 2x: V tomto režimu se pro zahájenı́ datového přenosu použı́vá nejen náběžná hrana
hodinového signálu s 66 MHz, nýbrž i sestupná. Výsledkem je maximálnı́ přenosová rychlost
528 MB/s. Touto rychlostı́ se data přenášejı́ postupným vedenı́m (pipeline),
• AGP 4x: Režim 4x může odstranit úzký profil při přı́stupu do paměti. Předpokladem je zvýšenı́
taktu sběrnice AGP z 66 na 100 MHz. Teoreticky se tak dosáhne maxima 800 MB/s,
• AGP 8x: Nejnovějšı́ technologie. Pracuje na podobném principu jako paměti typu DDR, kdy jsou
32
přenášena data na vzestupné i sestupné hraně hodinového signálu. Proto může být přenosová
rychlost prakticky zdvojnásobená (cca 2,1 GB/s).
Verze
PCI
AGP 1.0
AGP 2.0
AGP 3.0
AGP Pro
Pracovnı́ režim
PCI
AGP 1x
AGP 2x
AGP 1x
AGP 2x
AGP 4x
AGP 4x
AGP 8x
AGP 1x
AGP 2x
AGP 4x
Rychlost [MB/s]
132
266
533
266
533
1066
1066
2133
266
533
1066
Napětı́ [V]
3,3
3,3
Takt [MHz]
33
3,3/1,5
66
1,5/0,8
3,3/1,5
Tabulka 3: Popis jednotlivých verzı́ AGP rozhranı́
U PCI–X jde o projekt IBM, HP a Compaq za účelem nahradit starou PCI sběrnici. Druhým cı́lem
bylo přesvědčit Intel, aby nový standard přijal (ten však nesouhlasil a zahájil vývoj 3GIO, který nakonec souboj marketingově vyhrál). Sběrnice PCI–X je zpětně kompatibilnı́ s PCI sběrnicı́, ale navı́c
nabı́zı́ vlastnosti, které se ocenı́ zejména v oblasti serverů – tzn. volitelně 64bitový přı́stup a ECC
mechanismy, zabraňujı́cı́ ztrátě přenášených dat. Navı́c se jejı́ rychlost neustále zvyšuje. Nejnovějšı́
verze PCI-X 2.0 zavádı́ nové módy PCI-X 266 a PCI-X 533, čı́mž nabı́zı́ rychlost až 4.3 GB/s - 32krát
vı́ce než standardnı́ PCI sběrnice.
U PCI–Express se jedná o přejmenovanou sběrnici nové generace, vyvinutou firmou Intel pod
krycı́m jménem 3GIO (Third Generation I/O), kde prvnı́mi dvěma generacemi jsou mı́něny sběrnice
PCI a PCI-X. Na rozdı́l od PCI a AGP sběrnice je PCI-Express sériová sběrnice. Proto je jednoduššı́
a levnějšı́, plně zpětně kompatibilnı́ se sběrnicı́ PCI. Na rozdı́l od PCI tato sběrnice nepodporuje
bus-mastering, ale zajišt’uje rovnou přı́mé připojenı́ dı́ky point-to-point architektuře. Dalšı́ výhody této
sběrnice jsou nižšı́ spotřeba energie, možnost hot-swap i hot-plug, kontrola chyb a integrita dat.
PCI Express použı́vá napětı́ 0.8 V a frekvenci 2.5 GHz (obrovský rozdı́l oproti 33 MHz u klasické PCI sběrnice), dı́ky nı́ž může dosáhnout až 8 Gbytes/s jednı́m směrem v módu x32. Navı́c již
dnes existujı́ plány na PCI Express x64 (16 Gbytes/s jednı́m směrem) a dokonce x128 (32 Gbytes/s
jednı́m směrem) a podle Intelu nic nebránı́ tomu, aby rychlost rostla až do omezenı́ způsobeného
samotným materiálem. Tato sběrnice použı́vá vrstvenou architekturu, čı́mž bez jakéhokoliv zásahu do
schémat přenosu dovoluje mı́sto mědi použı́t v budoucnosti např. optické vlákno nebo jiný materiál.
PCI Express slot je schopen dodat 75 W naproti pouhým cca 40 W, které může dodat AGP 8x sběrnice.
PCMCIA (Personal computer memory card association) - byla navržena hlavně pro přenosné
33
Specifikace
PCI Express (x1)
PCI Express (x2)
PCI Express (x4)
PCI Express (x8)
PCI Express (x16)
PCI Express (x32)
Přenosová rychlost
500 Mbytes/s celková přenosová rychlost (oběma směry dohromady)
nebo 2 Gbits/s jednı́m směrem
1 Gbyte/s celková přenosová rychlost (oběma směry dohromady)
nebo 4 Gbit/s jednı́m směrem
2 Gbytes/s celková přenosová rychlost (oběma směry dohromady)
nebo 8 Gbit/s jednı́m směrem
4 Gbytes/s celková přenosová rychlost (oběma směry dohromady)
nebo 16 Gbit/s jednı́m směrem
8 Gbytes/s celková přenosová rychlost (oběma směry dohromady)
nebo 32 Gbit/s jednı́m směrem
16 Gbytes/s celková přenosová rychlost (oběma směry dohromady)
nebo 64 Gbit/s jednı́m směrem
Tabulka 4: Popis jednotlivých verzı́ PCI Express rozhranı́
počı́tače. Je to rozšiřujı́cı́ karta velikosti zhruba kreditnı́ karty. Jedná se o velmi malý konektor, do
kterého se zasunujı́ externı́ rozšiřovacı́ karty. Použı́vajı́ se jako výměnná pamět’ová média, sı́t’ové adaptéry, faxmodemy, snı́mače systému GPS atd. Nabı́zı́ 16bitovou šı́řku a pracovnı́ cyklus maximálně
33 MHz. Má pouze 26 adresových vodičů, které omezujı́ velikost jejı́ paměti na 64 MB. Jejı́ princip
je podobný jako s ISA až na to, že vlastnı́ rozšı́řenı́ se mohou instalovat i za běhu počı́tače. Proto
sběrnice potřebuje i speciálnı́ software.
AMR (Audio Modem Riser) - na základnı́ch deskách se objevujı́ občas i specializované sloty
určené hlavně pro modemy, jejichž autorem je hlavně Intel. Jeho úkolem je nahradit nedostačujı́cı́
sběrnici ISA pro faxmodemy a zvukové karty. Na základnı́ desku jsou již umı́stěny řı́dı́cı́ obvody,
kdežto jednotlivé karty pak obsahujı́ samotná zařı́zenı́. Výhodou je pak nižšı́ cena těchto přı́davných
desek.
ACR (Advanced Communications Riser) - nástupcem AMR, autorem je AMD a VIA. Oproti
AMR umı́ navı́c sı́t’ové karty včetně HomePNA, xDSL modemy či USB, bezdrátová zařı́zenı́ Bluetooth či bezdrátový Ethernet. CNR (Communication and Networking Riser) - autorem je opět Intel. Je
to zcela nový standard zpětně nekompatibilnı́, určený hlavně pro modemy.
Nedovoluji si odhadnout, kam až by mohl vývoj v tomto směru jı́t. Přihlédneme-li ale k tomu,
že ještě na kartách ISA bylo zapotřebı́ přepı́nánı́ pinů a dnes stačı́ za běhu systému připojit napřı́klad
scanner, snad se dočkáme doby, kdy nebude nic výjimečného doba, v které nebude potřeba při připojenı́
zařı́zenı́ instalovat ovladače, ale systém si tyto ovladače přı́mo stáhne z instalovaného zařı́zenı́. Dalšı́
informace najdete v publikacı́ch uvedených v literatuře.
34
8 Závěr
Výsledkem této práce je přı́ručka, která napomáhá při pochopenı́ problematiky principu komunikace
s perifernı́mi zařı́zenı́mi. Tato přı́ručka je v mé diplomové práci uvedena jako přı́loha č.1. Může se tak
stát užitečnou pomůckou nejen při výuce předmětu architektury počı́tačů. V prvnı́ch kapitolách jsem
popsal sběrnice a jejı́ jednotlivé části, kterými jsou adresová, datová a řı́dı́cı́ sběrnice. Také jsem se
zabýval adresnı́mi dekodéry a jejich možnostmi dekódovánı́ adresy, kde jsem vybral jen ty nejpoužı́vanějšı́ typy. V hlavnı́ kapitole 4 jsem rozebral jednotlivé principy řı́zenı́ komunikace, mezi které patřı́
technika V/V bran, programové řı́zenı́ komunikace, řı́zenı́ komunikace pomocı́ přerušenı́ a přı́mý přı́stup do paměti DMA. Následujı́ kapitoly, popisujı́cı́ kanálovou architekturu a vyhodnocovánı́ priorit.
Poslednı́ kapitola pojednává o celkovém vývoji sběrnic od jejich historie až po současnost.
Tomáš Huňka
Reference
[1] Hlavička, Jan, Architektura počı́tačů, Praha: Skriptum ČVUT, 1994.
[2] Ličev, Lačezar, Architektura počı́tačů I., Ostrava: Skriptum VŠB, 1999.
[3] Ličev, Lačezar, Architektura počı́tačů II., Ostrava: Skriptum VŠB, 1999.
[4] Valášek, Pavel, Monolitické mikroprocesory a mikropočı́tače, Praha: SNTL, 1989.
[5] Palacký, Petr, Mikroprocesorové řı́dı́cı́ systémy I., Ostrava: Skriptum VŠB, 2004.
[6] Dudáček, Karel, Dekodovani adres, home.zcu.cz/ dudacek, 2004.
[7] Šustr, Jan, PCI-Express: Spása nebo zbytečnost, www.zive.cz , 2004.
[8] Šmı́d, Josef, Seminárnı́ práce na téma Základnı́ desky, jsmid.net , 2001.
[9] Vrtal, David, Sběrnice AGP,FSB a DDR SDRAM, www.svethardware.cz , 2003.
35

Podobné dokumenty

Základní jednotka

Základní jednotka programem. Toto vede k velmi špatnému využití strojového času. Dnešní počítače zpracovávají paralelně více programů najednou – tzv. multitasking. Počítač může disponovat i více než jedním procesore...

Více

Studijní text - E-learningové prvky pro podporu výuky

Studijní text  - E-learningové prvky pro podporu výuky Shrnutí pojmů 10 ............................................................................................................................. 106 Otázky 10 ..........................................

Více

1 Kybernetika v historii plzenského vysokého školstv´ı 3 2 Studijn´ı

1 Kybernetika v historii plzenského vysokého školstv´ı 3 2 Studijn´ı a medicı́nské diagnostiky apod. Využitı́ uvedených poznatků je podpořeno studiem klı́čových předmětů informatiky a výpočetnı́ techniky (databáze, operačnı́ systémy, počı́tačové sı...

Více

zablokování olivkou

zablokování olivkou 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. Jednou z možností ja...

Více

Bloková struktura mikrokontroléru

Bloková struktura mikrokontroléru Pamět’ je rozdělena na stejně velké buňky, jejichž pořadové čı́sla se využı́vajı́ jako identifikačnı́ adresy.

Více

Přehled a srovnání současných grafických karet

Přehled a srovnání současných grafických karet PCI-Express. Celý název tohoto rozhraní pak je Peripheral Component Intreconnect Express.

Více

Kapitoly z historie kybernetiky

Kapitoly z historie kybernetiky historické vědy. Mým cı́lem je seznámit čtenáře (at’ už je jı́m student, doktorand, akademický pracovnı́k či kdokoli jiný) s jednı́m z úhlů pohledu na vznik a dnešnı́ postavenı́ kyber...

Více

catalog katalog

catalog katalog kláves/tlačítek, vyšší citlivostí a přesností, ale také detekcí otevření/zavření měchů díky obvodu, vybavenému novým senzorem. Zásluhou této technologie, se nyní akordeonista cítí během hraní perfe...

Více