Komunikácia procesora s pamäťou a perifériami, priamy prístup do pamäte
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
- 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
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
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
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í |
0 | Systémový časovač |
1 | Klávesnica |
2 | Rezervované |
3 | COM2 a COM4 |
4 | COM1 a COM3 | 5 | LPT2, resp. zvuk. karta, resp. sieť. karta |
6 | Radič floppy diskov | 7 | LPT1, resp. zvuk. karta |
8 | Reálne hodiny - CMOS | 9 | Rezervované |
10 | Voliteľné | 11 | Voliteľné |
12 | Myš - PS/2 | 13 | Numerický koprocesor |
14 | Primárny radič doskov | 15 | Sekundá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
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 |
0 | Refresh pamäte |
1 | Zvuková karta |
2 | Radič floppy diskov |
3 | voliteľné (sieť. karta, zvuk. karta, modem, paralelný port tlačiarne) |
4 | Rezervované | 5 | Zvuk. karta |
6 | Voliteľné (sieť. karta, zvuk. karta) | 7 | Voliteľné (sieť. karta, zvuk. karta) |
Odkazy na príbuzné témy
© Jana Machová
|