TECNICHE DI INPUT/OUTPUT Prof. Marco Solarino
DI COSA PARLIAMO Le tecniche di I/O (Input/Output) sono le modalità tramite le quali vengono scambiati dati fra periferiche e CPU (o memoria centrale)
QUALI SONO POLLING INTERRUPT DMA
Il controllo dello scambio dati è a carico del programma POLLING Cosa è? Il controllo dello scambio dati è a carico del programma .......... IN AL,21H OUT 21H,AL INPUT dalla periferica OUTPUT verso la periferica
POLLING Quando si usa? In operazioni sincrone (cioè che avvengono ad intervalli regolari) In applicazioni di controllo per scambi con periferiche sempre disponibili
POLLING Pro e contro E' semplice da realizzare e non richiede hardware particolare In presenza di eventi asincroni ci possono essere problemi: se l'intervallo fra le operazioni è troppo breve scambieremo più volte lo stesso dato se l'intervallo fra le operazioni è troppo lungo rischieremo una perdita di dati
Il controllo dello scambio dati avviene anche via hardware INTERRUPT Cosa è? Il controllo dello scambio dati avviene anche via hardware Periferica main Segnale elettrico ISR
INTERRUPT Quando si usa? In situazioni dove è necessario scambiare pochi dati in maniera asincrona
INTERRUPT Pro e contro Siamo sicuri di non perdere nessun dato E' necessario hardware più complesso per gestire i segnali di interruzione La CPU non è impegnata in operazioni inutili C'è un sovraccarico (overhead) di tempo necessario al salvataggio e al ripristino del contesto
DMA Cosa è? La sigla sta per Direct Memory Access (accesso diretto in memoria) e indica operazioni di scambio di dati fra periferiche e memoria senza l'intervento della CPU CPU DMAC MEMORIA PERIFERICA BUS
DMA Quando si usa? In situazioni dove è necessario scambiare grandi quantità di dati in maniera asincrona
DMA Pro e contro Ogni dato, non transitando per la CPU, viene trasferito in un solo passaggio anziché due E' necessario un hardware apposito (DMA Controller) Non serve salvare e ripristinare il contesto Bisogna programmare il DMAC
IN CONCLUSIONE... Se lavoriamo in modalità sincrona o con dispositivi sempre disponibili si può usare il POLLING Se dobbiamo trasferire pochi dati in modalità asincrona conviene usare l'INTERRUPT Se abbiamo grandi quantità di dati da trasferire in modalità asincrona usiamo il DMA