Sartomiki.net

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri
Home Appunti Sistemi a microprocessori Gestione I/O in Pentium

Gestione I/O in Pentium

E-mail Stampa PDF
Valutazione attuale: / 0
ScarsoOttimo 

Input/Output
L'accesso alle periferiche avviene attraverso locazioni speciali associate ad un certo indirizzo. Nei processori 80x86 esso può avvenire in due modi:
-memory mapped, con il quale l'accesso alla memoria avviene con una normale istruzione (MOV…). Questo significa che parte dell'indirizzamento è occupato dagli indirizzi delle periferiche.
-isolated I/O, con il quale si usano istruzioni specifiche. Ne consegue che le periferiche hanno indirizzi dedicati.
Lo spazio di indirizzamento destinato all'I/O è di 64K, poiché gli indirizzi sono su 16bit.

Sottosistema di I/O nell'architettura 80x86
Nella gestione degli I/O il bus di sistema svolge un ruolo fondamentale, in quanto esso determina le modalità di gestione dei periferici, in quanto realizza le transazioni conseguenti alle istruzioni di I/O. Lo spazio di indirizzamento degli I/O indica quanti registri associati ai dispositivi di I/O posso avere. E' importante che tutti i dispositivi che comunicano sullo stesso BUS, abbiano regole di comunicazione comuni. Il sistema di BUS definisce tutte queste regole:
-modi di trasferimento (singolo o a blocchi)
-modalità di connessione (interrupt, DMA)
Il modello classico prevede che ci siano una serie di interfacce che permettano ai dispositivi di I/O di comunicare con il BUS di sistema. Grazie alle interfacce il dispositivo capisce se si tratta di collegamento punto-punto (VGA), di periferia (SCSI)… Ciascuna interfaccia prevede registri diversi:
-di stato, che visualizzano le informazioni sul periferico (errore, pronto,…).
-di comando, che specificano quale istruzione deve essere realizzata.
-di dato, che permettono di scambiare dati con gli altri dispositivi.
Sono presenti inoltre delle parti di BUS destinate ai dati agli indirizzi e ai segnali di R/W e CS.
Esistono due modi di interconnessione tra microprocessore e I/O. A seconda di come si mappano gli indirizzi dei periferici si hanno due configurazioni:
-memory mapped, per il quale gli indirizzi dei registri dei periferici sono contenuti all'interno dello stesso spazio di indirizzamento assegnabile alla memoria fisica. In questo modo i registri sono accessibili direttamente, mediante le normali istruzioni assembly. La limitazione è dovuta al fatto che gli indirizzi occupati dai periferici non possono essere utilizzati dalla memoria fisica. In più le aree di RAM in cui contenere queste informazioni devono essere conosciute a priori.
-isolated I/O, per il quale i dispositivi hanno uno spazio di indirizzamento riservato, che non può essere acceduto dalle normali istruzioni assembly. Sono infatti necessarie delle istruzioni specifiche (IN, OUT) per consentire la lettura e la scrittura dei registri del sottosistema. Con questa tecnica lo spazio di indirizzamento della memoria non viene ridotto dai dispositivi di I/O.

Gestione dell'I/O
La funzione del sistema di I/O di un calcolatore è il trasferimento di dati tra la memoria principale e le interfacce dei periferici. I metodi usati dalla CPU per gestire le richieste di servizio da parte dei dispositivi di I/O può avvenire in due modi:
-polling; la gestione del polling avviene mediante un ciclo software di lettura dello stato di tutti i dispositivi. Ogni tanto ogni dispositivo viene interrogato e se esso ha fatto richiesta, viene eseguito il servizio. La maggior parte del tempo è però impiegata nella gestione del ciclo di polling e questo porta ad un'elevata latenza per alcuni dispositivi. Il fattore positivo è la semplicità di implementazione.
-interrupt; in questo tipo di gestione la CPU non interroga i dispositivi di I/O. Quando un dispositivo ha la necessità di essere servito attiva una richiesta di interrupt. Per eseguire questa operazione è necessario che l'interfaccia abbia un segnale di dato pronto/dato trasmesso. Al termine dell'esecuzione dell'istruzione, la CPU riconosce la richiesta di interrupt e la serve, eseguendo la procedura interrupt handler. Un circuito apposito, detto interrupt controller, gestisce le richieste di interrupt.
-DMA (direct memory access).
A seconda della modalità di trasporto dati, i periferici possono essere distinti in:
-a carattere, in cui il tempo di accesso è il fattore più influente (tastiera, mouse,..).
-a blocco, in cui il fattore dominante è dato dalla somma del tempo di accesso e del tempo di trasferimento (dischi, rete).


blog comments powered by Disqus
 

http://sartomiki.net/modules/mod_fuofb/assets/it/find-us-on-facebook-1.png

Follow me

Amici

Chi è online

 9 visitatori online

Siti amici

Banner

Notizie flash

Stiamo lavorando per voi... A breve saranno aggiunte nuove pagine sul sito. Per il momento oltre a questo sito in costruzione puoi visitare i miei sottodomini: http://catene.sartomiki.net e http://fasi.sartomiki.net. STAY TUNED!

PUBBLICITA'