Komunikácia procesora s pamäťou a perifériami, priamy prístup do pamäte

Mimoprocesorové zbernice
Komunikácia CPU s operačnou pamäťou
Komunikácia CPU so vstupno-výstupnými portami
Spracovanie žiadosti o prerušenie
DMA - priamy prístup do pamäte
Odkazy na príbuzné témy


Procesor navystačí so svojimi registrami, neustále loaduje inštrukcie aj dáta z operačnej pamäte (vyrovnávacej pamäte), alebo priamo z periférnych zariadení prostredníctvom portov. Ak sa však majú dáta presunúť do operačnej pamäte z periférií, je výhodnejšie ich prenášať priamo - bez účasti procesora. Celá komunikácia prebieha po cestičkách - (mimoprocesorových) zberniciach.


Mimoprocesorové zbernice     Nahor


  • A - Adresová zbernica je jednosmená - procesor generuje adresy, z ktorých bude čítať resp. do ktorých bude zapisovať dáta prostredníctvom vyrovnávacieho registra MAR.

  • D - Dátová zbernica má obojsmený prístup - načítané dáta z operačnej pamäte resp. dáta pre zápis do operačnej pamäte putujú po tejto zbernici, komunikácia prebieha prostredníctvom registra MBR.

  • S - Riadiaca zbernica - po zbernici putuje len niekoľko riadiacich signálov:
    • Reset - do CPU (po stlačení tlačidla reset, tento signál sa generuje aj po zapnutí počítača a do IP registra sa nastaví adresa počiatku testovacích programov v BIOS-e)
    • Ready - z OP do CPU (po dokončení čítania resp. zápisu - ukončenie 3. taktu strojového cyklu)
    • R/W - z CPU (signál z MIR, ktorý rozhoduje o tom, či sa bude v 3. takte čítať, či zapisovať)
    • MS - z CPU (signál z MIR, ktorý rozhoduje o tom, či nastane komunikácia s OP, alebo 3. takt bude prázdny).
    • I/O - obojsmerný signál z CPU (out) a do CPU (in) (signál rozhoduje o tom, či nastane komunikácia so vstupno-výstupnými zatiadeniami prostredníctvom radiča V/V zariadení a V/V portov).


Komunikácia CPU s operačnou pamäťou     Nahor

Komunikácia procesora s operačnou pamäťou prebieha počas 3. taktu strojového cyklu pomocou vyrovnávacích registrov MAR a MBR (pozri strojový cyklus). Procesor generuje adresy (miest, na ktoré sa bude zapisovať, resp. z ktorých sa bude čítať), ktoré ďalej putujú z MAR po zbernici A, dáta pre zápis, resp. načítané dáta putujú oboma smermi z MBR po dátovej zbernici D, po zbernici S prechádzajú ridiace signály Reset, Ready, MS, R/W.



Komunikácia CPU so vstupno-výstupnými portami     Nahor
Komunikácia procesora so vstupno-výstupnými zariadeniami sa realizuje prostredníctvom vstupno-výstupných portov - brán. Porty sú vývody registrov s pevne danou adresou pre každé zariadenie, periférne zariadenie nemôže byť priamo pripojené k zberniciam. Sú umiestnené na rozhraní (interface) daného vstupného či výstupného zariadenia.

Pri komunikácii po zbernici A putuje číslo portu (adresa), po zbernici D idú údaje na výstup (zo vstupu), po zbernici S prechádzajú signály R/W, I/O, prípadne signál Ready od portov, ktorý znamená, že čítanie či zápis bolo ukončené.

Delenie portov podľa fukcie:

Obojsmerné dátové porty - prístupné z dvoch strán
Riadiace porty - riadia tok dát
Stavové porty - pre pamätanie stavu portov

Delenie portov podľa spôsobu prenosu:

Sériové porty (SIO) - posuvné registre, ktoré sa používajú pri sériovom prenose dát napr. pripojenie klávesnice, myši, modemu a pod.
Paralelné porty (PIO) - paralelné registre, pripájajú napr. disky, tlačiareň, scanner, ... cez 10 až 40 žilový kábel.



Rozhrania vstupno-výstupných zariadení obsahujú okrem štandardných portov ďalšie podporné obvody - vyrovnávacie pamäte, podporné procesory, signálové procesory.

Procesor vykonáva nejakú strojovú inštrukciu, musí reagovať v reálnom čase, ak chce niektoré periférne zariadenie s ním komunikovať. Synchrónne riešenie predpokladá v istých časových intervaloch prerušenie práce CPU a jeho "pohľad" na riadiace porty, či niektoré zariadenie nežiada o prístup k CPU. Asynchrónne riešenie vyžaduje ďalšie signály - žiadosť o prerušenie práce CPU a následné spacovanie tejto žiadosti


Spracovanie žiadosti o prerušenie     Nahor


Pri asynchrónnom riešení komunikácie CPU s V/V zariadeniami sa používajú dva signály -

INTR (interupt request) - žiadosť o prerušenie práce CPU (signál smerom do CPU)
INTA (interupt acknowletge) - potvrdenie žiadosti o prerušenie (signál smerom z CPU). Procesor prijíma žiadosť až po dokončení aktuálnej strojovej inštrukcie.


POSTUP PRI SPRACOVANÍ ŽIADOSTI
1. Radič V/V zariadení vyšle smerom k CPU signál INTR.
2. CPU ukončí všetky strojové cykly práve vykonávanej strojovej inštrukcie.
3. Ak neboli zakázané prerušenia, žiadosť akceptuje - vyšle signál INTA.
4. CPU očakáva po dátovej zbernici D od príslušného V/V zariadenia ČÍSLO PRERUŠENIA (odkiaľ prišla žiadosť).
5. CPU uloží obsah registrov Flags a IP do zásobníka a z TABUĽKY VEKTOROV PRERUŠENÍ sa prenesie číslo prerušenia do registra IP (adresa pre obsluhu prerušenia - adresa začiatku procedúry na spracovanie prerušenia napr. čítanie z klávesnice).
6. Po spracovaní prerušenia CPU vyberie zo zásobníka obsah registrov Flags a IP pre pokračovanie v predošlej práci.


Prerušenia sa môžu vnárať do seba, pokiaľ sú dovolené, pokiaľ nie je ZÁKAZ PRERUŠENIA (príznak v registri Flags). Napr. pri stlačení kláves "A" a potom "B", by mohlo spracovanie žiadosti písmena B prerušiť spracovanie písmena A, preto sa na čas, kým sa prvý znak nespracuje, zakáže prerušenie - tento spôsob riešenia sa nazýva MASKOVANIE . Niektoré prerušenia sa nedajú zakázať napr. synchrónne, ktoré vznikajú nejakým stavom - pri delení 0, nezrozumiteľnej inštrukcii a pod. Prerušiť prácu CPU môžeme aj softvérovo (INT číslo prerušenia).


Tabuľka čísel prerušení
0Systémový časovač 1Klávesnica
2Rezervované 3COM2 a COM4
4COM1 a COM35LPT2, resp. zvuk. karta, resp. sieť. karta
6Radič floppy diskov7LPT1, resp. zvuk. karta
8Reálne hodiny - CMOS9Rezervované
10Voliteľné11Voliteľné
12Myš - PS/2 13Numerický koprocesor
14Primárny radič doskov15Sekundárny radič doskov


Keďže vstupných a výstupných zariadení je viacej, môžu súčasne žiadať o prerušenie CPU, ale len jedno zariadenie môže v danom čase komunikovať s CPU. Funkciu rozhodcu preberá tzv. RADIČ V/V zariadení, pričom určuje poradie prístupu zariadení k CPU na základe priorít. CPU tak komunikuje signálmi INTR a INTA len s radičom.


DMA - priamy prístup do pamäte     Nahor


Prenos veľkého objemu dát zo vstupného zariadenia do operačnej pamäte (napr. zvuk, video) je nevýhodné cez CPU (CPU najprv zapisuje do svojich registrov a potom z registrov do pamäte - na 2 strojové cykly). Preto je vhodné, ak procesor "opustí" zbernice a ponechá ich danému zariadeniu, ktrého sa prenos dát týka.

Zariadenie vyšle signál HOLD - žiadosť o DMA (direct memory access) - priamy prístup do pamäte, čím žiada CPU, aby opustil zbernice. Procesor po ukončení strojového cyklu (nemusí ukončiť celú inštrukciu) vyšle signál HLDA (hold acknowletge) - potvrdenie žiadosti o DMA, pričom môže pokračovať v činnosti, ale bez účasti zberníc, nemôže komunikovať s pamäťou.

Ak je viacej zariadení pripojených na DMA prenos, je potrebný RADIČ DMA (štandardne sa dajú pripojiť 4 zariadenia)


Tabuľka čísel pre DMA prenos
0Refresh pamäte 1Zvuková karta
2Radič floppy diskov 3voliteľné (sieť. karta, zvuk. karta, modem, paralelný port tlačiarne)
4Rezervované5Zvuk. karta
6Voliteľné (sieť. karta, zvuk. karta)7Voliteľné (sieť. karta, zvuk. karta)


Odkazy na príbuzné témy     Nahor
Typy zberníc
DMA I.
DMA II.
Rozhranie pre vstup a výstup

Predchádzajúca téma Obsah Nasledujúca téma

© Jana Machová