Sběrnice, přerušení, přenos DMA

Z MediaWiki SPŠ a VOŠ Písek
Verze z 19. 5. 2011, 10:02, kterou vytvořil Vpankratz (diskuse | příspěvky) (Založena nová stránka: '''Sběrnice''' je skupina vodičů se stejnou nebo příbuznou funkcí. Po každém vodiči sepřenáší nejmenší množství informace, tj. 1 bit. Počet vodičů sběr...)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

Sběrnice je skupina vodičů se stejnou nebo příbuznou funkcí. Po každém vodiči sepřenáší nejmenší množství informace, tj. 1 bit. Počet vodičů sběrnice určuje počet bitů,které se po ní mohou přenášet současně, tj. šířku sběrnice. Sběrnice slouží kekomunikaci mezi jednotlivými částmi mikropočítače. Informace se po ní přenášívždy mezi dvěma bloky mikropočítače - jeden blok informaci vysílá, druhý přijímá.Kromě přenosu DMA (viz dále) je vždy jedním z komunikujících blokůmikroprocesor. Sběrnice může být jednosměrná nebo obousměrná. V určitémčasovém okamžiku může být na sběrnici připojen pouze jeden zdroj informací. Blokyvysílající informaci jsou na sběrnici připojeny prostřednictvím budiče sběrnice.

Pokud budič není schopen dodat nebo přijmout dostatečný proud při připojeném počtubloků ne sběrnici, posiluje se vložením dalšího budiče mezi vysílající blok a sběrnici.Budič sběrnice zabezpečuje správnou logickou úroveň signálů předávaných nasběrnici.může být jednosměrný, obousměrný, třístavovýtřístavový budič sběrnice umožňuje odpojení bloku od sběrnice (třetí stavznamená odpojeno - také stav vysoké impedance)

Datová sběrnice slouží k přenosu dat a instrukcí programu.Šířka datové sběrnice mikropočítače je obvykle totožná se šířkou vnitřnídatové sběrnice mikroprocesoru3. Šířka dat přenášených v určitém okamžikupo datové sběrnici pak odpovídá tzv. slovu mikroprocesoru, tj. skupině bitů,které mikroprocesor najednou zpracovává.Podle šířky datové sběrnice rozlišujeme mikroprocesory, a tedy imikropočítače 8bitové, 16bitové, 32bitové, 64bitové.slovo (word) je skupina slabik, resp. bitů, které počítač zpracovává jako celekslabika (byte) je skupina 8 bitů, které počítač společně zpracovává8bitový mikropočítač pracuje tedy se slovem o délce jedné slabiky, délkaslova 16bitového mikropočítače jsou dvě slabiky.Paměť mikropočítače je zpravidla uspořádána tak, že v jednom paměťovémmístě je uložena právě jedna slabika. Slovo 32bitového mikropočítače je pakuloženo na čtyřech paměťových místech. Protože datová sběrnice takovéhomikropočítače je též 32bitová, přenáší se slovo mezi pamětí amikroprocesorem najednou a je také jako celek mikroprocesorem zpracováno.


Adresová sběrnice přenáší adresu z mikroprocesoru do paměti nebo V/V obvodu.Adresa je označení (pořadové číslo) místa v paměti, příp. označení vstupu čivýstupu (vstupní či výstupní brány), z kterého se má číst či do kterého se mázapisovat slabika dat. První paměťové místo má adresu 0.Počet bitů adresy (tj. vodičů adresové sběrnice) určuje maximální početpřímo adresovatelných míst v paměti:počet adresovatelných míst = 2n , kde n je počet bitů adresyPříklad:8bitové mikroprocesory mají zpravidla 16bitovou adresu paměti. Pak jemožné adresovat 216=65536 míst v paměti. V každém paměťovém místě jeuložena jedna slabika (byte), je tedy možné adresovat 65536 bytů.210 bytů = 1024 bytů = 1 kbyte = 1kB (1 kilobyte)216 bytů = 26 . 210 bytů = 64 kB16bitovou adresou je tedy možné adresovat 64 kB paměti.Bude-li adresa 20bitová, pak je možné adresovat 220 bytů = 210 .210 bytů== 1 MB (1 megabyte).Adresa paměti i adresa brány (ta má však obvykle menší počet bitů) se vysílá po stejnéadresové sběrnici. Rozlišení se děje prostřednictvím řídicí sběrnice.

Řídicí sběrnice se svým charakterem liší od předcházejících dvou. Nepřenáší se po níněkolikabitová informace, ale jednotlivé řídicí signály. Některé z nichgeneruje mikroprocesor na základě dekódování instrukcí programu. Jde o tytosignály:

-zápis dat do paměti (RWM)

-čtení dat z paměti (RWM nebo ROM)

-zápis dat na výstup

-čtení dat ze vstupu

Uvedené řídicí signály jsou základní, řídí komunikaci po datové sběrnici.Komunikace probíhá následovně:

-mikroprocesor přiloží adresu paměti nebo brány na adresovou sběrnici

-v případě zápisu pak vloží slovo dat na datovou sběrnici a vyšleodpovídající řídicí signál, kterým se data zapíší na patřičné místo v pamětinebo do patřičné brány

-v případě čtení vyšle mikroprocesor řídicí signál, čímž se uvolní slovo datz paměti nebo brány na datovou sběrnici a mikroprocesor si je následněpřevezme

Přerušení a přenos DMA

PřerušeníKaždý mikroprocesor (s výjimkou nejjednodušších mikrořadičů) má zabudovanýpřerušovací systém, který umožňuje přerušit probíhající program a uskutečnit takrychlou reakci mikropočítače na nějaký podnět přicházející z jeho okolí.Přerušení (interruption) programu nastane, přijme-li mikroprocesor signál na vstupupřerušení (INT), tj. žádost o přerušení. Tento signál přichází zpravidla od nějakéhoperiferního zařízení a po jeho přijetí mikroprocesor

- dokončí rozpracovanou instrukci

- přeruší běžící program

- přejde na podprogram obsluhy přerušení, který obslouží přerušení

- např.přečte/zapíše slabiku dat z/do periferního zařízení

- po jeho skončení pokračuje v provádění přerušeného programu

Bude-li některá ze žádostí o přerušení IR0 až IR7 aktivní, řadič přerušení vyšle kmikroprocesoru signál INT. Nebude-li přerušení mikroprocesoru zakázáno, odpovímikroprocesor aktivním signálem INTA (signál přejde na úroveň logické nuly). Řadičpřerušení pak vyšle po DBUS mikroprocesoru číslo přerušení, tj. číslo 0 až 7 podleaktivní žádosti. Mikroprocesor pak začne vykonávat odpovídající podprogram obsluhypřerušení.Řadič přerušení musí také zajistit správné pořadí obsluhy jednotlivých požadavků,přijde-li jich více najednou, a nebo se stane aktivním některý z nich v době, kdy je jinýprávě obsluhován. O to se stará tzv. prioritní systém, který je obvykleprogramovatelný.

Přenos DMA Přímý přístup do paměti - DMA (direct memory access) se používá pro zrychlenípřenosu dat mezi pamětí mikropočítače a vnější velkokapacitní (např. diskovou)pamětí.Normální přenos dat je řízen mikroprocesorem. Každé slovo dat je nejdříve načtenoz RWM do registru mikroprocesoru a teprve pak je odtud přeneseno do vnější paměti(nebo naopak):

1. RWM ® DBUS ® registr CPU

2. registr CPU ® DBUS ® vnější paměť

Přenos dat s využitím DMA není řízen mikroprocesorem (ten je odpojen od sběrnic),ale speciálním obvodem, řadičem DMA. Ten vyšle před zahájením přenosu domikroprocesoru požadavek na jeho odpojení od sběrnic (signál HOLD), mikroprocesorpotvrdí odpojení signálem HLDA. Řadič DMA pak sám vysílá na ABUS adresy a naCBUS signály potřebné k uskutečnění přenosu. Mikroprocesor se na přenosu nijaknepodílí, každé slovo dat se přenáší přímo z RWM do vnější paměti (nebo naopak):RWM ® DBUS ® vnější paměťPřenos dat se tím podstatně zrychlí.