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. Obsah 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. _________________________ 1 3.1 Technika V/V bran ______________________________________________________ 1 3.2 Programové řízení styku _________________________________________________ 2 3.3 Přerušení programu ____________________________________________________ 3 3.4 Přímý přístup do paměti - DMA ___________________________________________ 4 3.5 Závěr ________________________________________________________________ 6 3.6 Literatura ____________________________________________________________ 6 Klíčová slova _____________________________________________________________ 6 Slovník __________________________________________________________________ 6
Časová náročnost kapitoly: 90 minut Nasazení mikropočítačů má skutečný význam teprve ve spojení s periferními zařízeními, které zprostředkovávají spojení s okolním prostředím. Součinnost mezi mikroprocesorem a periferním zařízením se realizuje s použitím tří základních principů: programovým řízením, systémem přerušování programu a metodou přímého přístupu do paměti.
3.1 Technika V/V bran Časová náročnost kapitoly: 20 minut Vstupní/výstupní brána (I/O port), je obvod, který zprostředkuje předávání dat mezi sběrnicí mikropočítače a periferním zařízením. Používají se buď brány s pamětí, jejichž základem bývá tzv. záchytný registr (latch) s tří stavovým výstupem, nebo brány bez paměti, což jsou výkonové zesilovače (budiče) jednosměrné nebo řízené obousměrné. __ V případě vstupu vyšle mikropočítač bitový signál RD, čímž přikáže vstupnímu zařízení předat data do vstupní brány mikropočítače. __ Při výstupu mikropočítač vyšle současně data i signál WR a výstupní zařízení převezme data.
1
Tento způsob je mimořádně jednoduchý a předpokládá, že periferní zařízení je stále připraveno komunikovat. Technika podmíněného vstupu/výstupu. Vstupu probíhá následovně. Jestliže vstupní zařízení poskytuje platná data, strobovacím impulsem STB nastaví Q do stavu 1, který pro mikropočítač představuje indikátor (flag). Po zjištění Q=1, mikropočítač impulsem RD data převezme a nuluje indikátor. Analogickly při výstupu mikropočítač výšle impuls WR a přepisuje data do výstupního zařízení a nastaví indikátor. Výstupní zařízení po převzetí dat impulsem ACK indikátor nuluje, a tím mikropočítači sděluje, že může vyslat další data. V obou případech jde o neúplný (jednosměrný korespondenční) režim, kdy indikátor informuje o zahájení nebo skončení přenosu pouze mikropočítač,a kdy vysílač dat je povinen data udržovat. Technika úplného (obousměrného korespondenčního) režimu, využívající jednak vyrovnávací paměť-registr, klopný obvod pracujíci jako semafor (jeho stav je testován vysílačem i přijímačem dat, a tak je možné vzájemné blokování (interlock). Pokud je registr plný, semafor je ve stavu 1 a vstupní zaří zení další data nevyšle. Je-li registr prázdný, semafor je nulový a strobovacím signálem STB lze do registru vyslat data a zároveň semafor nastavit. Mikropočítač testuje semafor a při jeho hodnotě 1 impulsem RD převezme data z registru a také semafor nuluje. V případě výstupu mikropočítač nejdříve testuje semafor, zda není nulový. V kladém případě mikropočítač impulsem WR vyšle data do registru a nastaví semafor do stavu 1. Výstupní zařízeni tak zjistí, že data jsou v registru a může je impulsem ACK převzít a semafor vynulovat.
3.2 Programové řízení styku Časová náročnost kapitoly: 20 minut
Při tomto způsobu je styk procesoru s periferním zařízením řízen programovými prostředky. Program prostřednictvím stavové vstupní brány postupně testuje, zda a která vstupní/ výstupní zařízení jsou připravena vyslat data, a která data přijmout. Při zjištění připravenosti procesor volá V/V podprogram (driver), který pak zajistí vstup popř. výstup dat. Souběžně podprogram generuje a povelovou bránou vysílá řídící signály odpovídající typu periferního zařízení a jemu odpovídajícímu způsobu styku i uspořádání V/V brány. Programové řízení je výhodné z hlediska úspory obvodu. Je však pomalé, neboť počítač je příliš zatěžován periodickým testováním stavů, a to i v případech,kdy k
2
přenosům nedochází. Proto se konstruktéři počítačů uchylují k následujícím postupům: - Přenášejí úlohu styku na pomocný tzv. komunikační procesor. Tím se hlavní procesor zbaví větší části zátěže spojené se stykem. - Přesunou část stykové úlohy z programu na obvody.
3.3 Přerušení programu Časová náročnost kapitoly: 20 minut
Přerušení (interruption. trap) programu je odezva procesoru na požadavek o programové obsloužení. Nechť periferní zařízení vyžaduje spolupráci s mikropočítačem. Pak zařízení žádá o obsluhu přerušovacím signálem , který se buď přímo, nebo pomocí zprostředkujících obvodů zavádí na bitový vstup mitroprocesoru, označovaný INT, INTR, TRAP apod. Mikroprocesor při každé instrukci signál automaticky testuje a v pozitivním případě postupuje takto: Dokončí rozpracovanou instrukci, znemožní přijetí dalších žádostí o přerušení nulováním interního indikátoru, vyšle signál o akceptování požadavku a převezme z datové sběrnice instrukci přerušení. Tato se načte z paměti programu, ale na sběrnici ji dodá přerušující zařízení jako odezvu na signál INTA. Jako přerušovací instrukce se obvykle uplatňují instrukce volání buď typu CALL, RSTn u 8080 a nebo INTn u 8086/88). Při větším počtu zdrojů žádosti o přerušení vzniká problém počtu přerušovacích vstupů a priority jejich obsloužení. Většina mikroprocesorů má jeden nebo dva takové bitové, vstupy, přičemž druhý bývá nemaskovatelný. Problém počtu a priority přerušení lze řešit třemi způsoby. a) S programovou identifikací. K přerušovacímu vstupu mikroprocesoru je připojen signál logického součtu externích signálů přerušení, a ty se zároveň přivádějí na vstupní bránu požadavku. Po akceptování žádosti o přerušení se vyvolá přerušovací podprogram, který čistě programově podle brány požadavků identifikuje přerušující zařízení a přejde do odpovídající větve. Teorericky je možné i programovým způsobem zajistit úplné prioritní zpracování. Je to však nevýhodné z hlediska času i nároku na program, a tak se dává přednost dalším způsobům. b) Se sériovou obvodovou identifikací. Mikroprocesor po příchodu přerušovacího signálu očekává identifikační znak, generovaný stykovými obvody, který jej nasměruje do žadoucího podprogramu. Stykové obvody jsou však spojeny v pořadí priority a sériové tak, že se nemůže uplatnit další přerušovací signál ani identifikační znak nižší priority.
3
c) S řadičem přerušení. Specializované pomocné obvody, nazývané řadiče přerušení, redukují potřebu aktivní účasti stykových obvodů na fázi identifikace i rozhodování o obsluze podle priority zařízení. Periferní zařízení pouze vysílají požadavky na obsluhu do řadiče přerušení, a ten žádá mikroprocesor o přerušení jen tehdy, je-li prioritní úroveň nového požadavku vyšší než úroveň požadavku právě obsluhovaného.
3.4 Přímý přístup do paměti - DMA Časová náročnost kapitoly: 30 minut
Některá zařízení vyžadují tak vysokou rychlost přenosu dat, že přenos nemůže být řízen mikroprocesorem. Tehdy se používá přímy přístup do paměti - DMA (direct memory access), kdy se data přenášejí mezi periferním zařízením a příslušným polem hlavní paměti bez účasti mikroprocesoru. Přenos kanálem DMA je podmíněn předchozí činností mikroprocesoru, který jej iniciuje, tj. určí směr toku dat, počet slabik v přenášeném bloku v hlavní paměti apod. Existují vlastně tři způsoby řízení přenosu DMA. 1. způsob - řadič uplatní před zahájením přenosu DMA na vstupu HOLD mikroprocesoru signál, kterým přiměje převést své adresové, datové a řídící vývody do neutrálního stavu. Tím uvolní sběrnici, jejich řízení převezme řadič DMA. Po ukončení přenosu se řízení sběrnice opět ujímá mikroprocesor a pokračuje v běžné činnosti. Tento způsob zpomaluje probíhající program. 2. způsob - po ukončení strojového cyklu se zastaví generování hodinových signálů mikroprocesoru a odpojí se jeho budiče sběrnice, nejčastěji na jediný dílčí přenos dat. Tento způsob zpomaluje probíhající program. 3. způsob - jednotlivé dílčí přenosy se uskutečňují v časových intervalech, v nichž mikroprocesor pracuje, ale nekomunikuje se spolupracujícími zařízeními. Přenos DMA neovlivňují rychlost mikroprocesoru.Zde máme přísně synchronní činnost mikroprocesoru a řadiče DMA. Pro styk se sběrnicemi jsou určeny tři registry, označené jako registr dat, registr adresy a čítač přesunů: - registr dat: obsahuje slovo, které má být přesunuto z PZ (periferní zařízení) do HP (hlavní pamět) nebo naopak, délka tohoto slova odpovídá šířce toku dat na datové sběrnici systému. - registr adresy: obsahuje adresu v HP, která se má při přesunu zúčastnit, tzn., že na tuto adresu bude zapsáno slovo, obsažené v registru dat v bloku DMA, nebo z ní bude přečteno slovo, které má být do registru dat v bloku DMA zapsáno.
4
-
čítač přesunů: obsahuje požadovaný počet slov, která mají být ještě přesunuta v rámci jednoho spojení mezi PZ a HP. Po každém uskutečněném přesunu se obsah tohoto čítače zmenší o jedničku, takže jeho nulová hodnota signalizuje, že spojení skončilo.
Blok DMA může pracovat ve dvou základních režimech. Buď přesouvá data mezi PZ a HP v blocích, nebo jednotlivě. Blokový přenos se uskutečňuje tak, že blok DMA nepřetržitě řídí sběrnice po celou dobu, dokuď nemá vynulován čítač přesunů. Jednotlivé přesuny se uskutečňují v režimu tzv. odebrání cyklu (cycle stealing). V tomto režimu se procesor zastaví pouze na dobu jednoho cyklu HP a po provedení jednoho přesunu slova uvolní blok DMA sběrnice, takže procesor může pokračovat ve své činnosti. Celá operace přímého přístupu do paměti obvykle probíhá v několika krocich: 1. 1.Před zahájením vlastního přesunu musí procesor "naprogramovat" blok DMA, tzn. , že operacemi V/V zapíše do čítače přesunů požadovaný počet přesouvaných slov a do registru adresy adresu začátku oblasti v HP. 2. 2.Blok DMA spustí PZ a čeká, až bude PZ připraveno přijmout nebo vyslat data. Pro další výklad budeme předpokládat, že DMA řídí operaci vstupu dat z PZ. 3. 3.Procesor obvykle nemůže reagovat na žádost o DMA okamžitě, protože musí nejprve dokončit strojový cyklus. V systémech, které používají přímý přístup do HP, jsou pro procesor přesně definovány okamžiky, kdy může dojít k přímému přístupu. 4. 4.Když procesor rozhodne, že může dojít k přímému přístupu do paměti, vyšle vybrané jednotce signál "DMA povoleno" 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 jedničku a současně zmenší obsah čítače přesunů o jedničku. Není-li obsah čítače přesunů dosud nulový, testuje , zda PZ již přesunulo do registru dat nové slovo. Pokud ano, pokračuje rovnou v přesunu, tedy vyšle novou adresu na adresovou sběrnici 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ředá řízení procesoru. 5. 5.Procesor pokračuje v provádění svého programu až do okamžiku, kdy některý blok DMA vyšle novou žádost o DMA. 6. 6.Jestliže je obsah čítače přenosů 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, spočívající obvykle v novém naprogramování jeho vnitřních registrů. Dosud jsme předpokládali, že řadič DMA jen adresuje hlavní paměť a synchronizuje činnost mezi sběrnicí a perif. zařízením, zatímco data jdou mimo něj. Existují však i takové přenosové subsystémy, které jsou založeny na principu DM, ale mají i 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: multiplexní a selektorové).
5
3.5 Závěr Po prostudování tohoto textu byste se měli seznámit na uspokojivé úrovni s problematikou komunikace mikropočítačů s periferními zařízeními a prostředky, které umožňují jejich spojení s okolním prostředím. Součinnost mezi mikroprocesorem a periferním zařízením se realizuje s použitím tří základních principů: programovým řízením, systémem přerušování programu a metodou přímého přístupu do paměti. Na základě výše uvedeného vysvětlete: 1. Principy komunikace s periferním zařízení. 2. Přímý přístup do paměti. 3. Uveďte konkrétní příklad komunikace s periferním zařízeni (PC –tiskárna, plotter, myš atd.).
3.6 Literatura 1. 2. 3. 4. 5. 6.
Přednáška Internet Ličev L.: Architektura počítačů, skriptum FEI VŠB TUO, 1996. Ličev L.: Architektura počítačů I, skriptum FEI VŠB TUO, 1999. Ličev L.: Architektura počítačů II, skriptum FEI VŠB TUO, 1999. Ličev L., Morkes D.: Procesory - architektura, funkce, použití, Computer press, Praha, 1999. 7. Pechal S.: Monolitické počítače, BEN - Technická literatura, 1998, Praha. 8. Valášek: Monolitické mikroprocesory a mikropočítače, SNTL, Praha 1989.
Klíčová slova DMA komunikace priorit řadič přístup V/V brány přerušení
Slovník
6