L’organizzazione della comunicazione di I/O G. Vercelli

Slides:



Advertisements
Presentazioni simili
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Advertisements

Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Gestione Input Output A. Ferrari.
Perché le interruzioni?
Prof. Emanuele Marino Concetti teorici di base della tecnologia dellinformazione.
IL MICROCONTROLLORE ST6
Il Sistema Operativo.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Tipologie di Controlli in Ambito Industriale
Operating System Concepts
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © William Fornaciari Tecniche di gestione.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Input/Output.
Introduzione ai PLC.
Struttura dei sistemi operativi (panoramica)
Il livello analogico digitale Lezione 3_4 Chip delle CPU e Bus.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
1.7 Risorse di sistema Comprendere le risorse di sistema Gestire le risorse di sistema.
Sistemi Operativi GESTIONE DEI PROCESSI.
Introduzione Cosa è un Sistema Operativo ?
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
Istruzioni per il Controllo del Processore
BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino
Ingresso/Uscita u Materiale in: –Queste trasparenze, non basta il testo! –Tanenbaum 2.4.1, 5.6.4, 5.6.5,
GLI INTERRUPT PAG..
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
TECNICHE DI INPUT/OUTPUT
Il Calcolatore Elettronico
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
ELETTRONICA DIGITALE (II Parte)
L' ARCHITETTURA DI VON NEUMANN
Architettura degli elaboratori
I vettore interruzioni
Architettura del calcolatore
Introduzione al linguaggio assembly del microprocessore a parte
ARCHITETTURA DI UN ELABORATORE
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Unità centrale di processo
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Sistema Operativo (Software di base)
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
Architettura di una CPU
ELETTRONICA DIGITALE (II Parte) (6-7) 13.12;15.12
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Tecniche Automatiche di Acquisizione Dati
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Richiami di Architettura degli elaboratori.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Il calcolatore Stefano Cagnoni e Monica Mordonini
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda Interfaccia verso il bus.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
STRUTTURA DELL’ELABORATORE
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Il modello di Von Neumann
IL PLC AUTOMAZIONE INDUSTRIALE
Fondamenti di Informatica Il Calcolatore Monica Mordonini Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

L’organizzazione della comunicazione di I/O G. Vercelli Interruzioni DMA Interfacciamento Device Drivers

Generalità dispositivi di I/O tradizionali capacità di scambiare dati con altri dispositivi dispositivi di I/O tradizionali tastiera di un terminale video schermo stampante plotter dischi magnetici dispositivi per i nastri magnetici

Generalità (continua) applicazioni di controllo industriale, ingressi e uscita digitale di: voltmetro sensore di temperatura allarme antincendio motore valvola robot

Generalità (continua) Un calcolatore di uso generale deve poter essere collegato a dispositivi con caratteristiche differenti, che operano in ambienti molto variabili. le operazioni di I/O dal punto di vista del programmatore

Dispositivi di I/O memory mapped I/O Organizzazione del bus I/O mapped I/O memory mapped I/O

Memory-mapped I/O Move DATAIN,RO Move RO,DATAOUT Con l'I/O associato a un indirizzo di memoria, ogni istruzione macchina che può accedere alla memoria può essere impiegata per trasferire dati da e verso un dispositivo di I/O. Per esempio, se DATAIN è l'indirizzo del buffer di ingresso associato alla tastiera, l'istruzione Move DATAIN,RO legge il dato da DATAIN e lo memorizza nel registro RO del processore. Allo stesso modo, l'istruzione Move RO,DATAOUT invia il contenuto del registro RO alla locazione DATAOUT, che può essere il buffer dei dati in uscita di un'unità video o di una stampante.

Schemi di mappatura Motorola 68000: memory-mapped I/O Intel 80X86: istruzioni speciali di I/O e spazio di indirizzamento a 16 bit, ma anche memory-mapped I/O PowerPC: stesso spazio di memoria o separato (registro speciale per cambio di contesto)

Interfaccia di I/O Decodificatore degli indirizzi Registri dei dati e di stato Circuiti di controllo

Registri di una Interfaccia di I/O Registro di Stato con: flag di sincronizzazione SIN SOUT Registri di Scambio Dati DATAIN DATAOUT

Problema del Busy-Waiting Un programma che legge una riga di caratteri dalla tastiera e la invia al terminale video. Esempio di I/O “controllato da programma”. Altre soluzioni: 1) interrupt, 2) direct memory access (DMA)

Interrupt Il meccanismo di interruzione è caratterizzato da tre elementi: INTR (interrupt request, di solito attiva bassa) = linea di richiesta di interruzione INTA (interrupt acknowledge, di solito attiva bassa) = segnale di riscontro della interruzione Procedura di servizio della interruzione

Interruzioni

Gestione di un interrupt Riconoscimento dell’interrupt Selezione della procedura di servizio Salvataggio del contesto Esecuzione della procedura di servizio Ripristino del contesto

Problemi legati alle interruzioni Cambio del contesto = Context switch (legato al sistema operativo, al minimo PS e PC in modo automatico, ma anche altre informazioni presenti nei registri) latenza di interrupt abilitazione e disabilitazione degli interrupt

Interruzioni e Programmazione Un interrupt non è solo un meccanismo di coordinamento dei trasferimenti di I/O, ma serve a gestire anche: eventi esterni ed interni trasferimento del controllo da un processo ad un altro (scheduling in tempo reale)

Scheduling e Interrupt Un sistema operativo multitasking e pre-emptive (che gestisce più processi contemporaneamente mediante la sospensione dell’esecuzione su eventi sincroni/asincroni) deve poter gestire in modo efficiente gli interrupt.

Interrupt, trap, exception, signal Interrupt hardware = evento (generalmente asincrono) legato a un dispositivo di I/O, che costringe il processore a sospendere l’esecuzione di un processo. Interrupt software = evento (generalmente asincrono) legato a una condizione anomala (trap, exception, signal) che si verifica nell’esecuzione di una istruzione.

Caso: singolo Interrupt da un dispositivo Possibile problema: annidamento degli interrupt (durante l’esecuzione della procedura di servizio sopraggiunge un nuovo interrupt). 1 soluzione : ignora tramite disabilitazione 2 soluzione : disabilitazione automatica ma con mascheramento 3 soluzione : edge-triggered

Scenario tipico (poco efficiente)

Gestione di più dispositivi di I/O

Generazione del segnale IRQ

Identificazione del dispositivo Viene cambiato lo stato del dispositivo interrompente (IRQ alto) Soluzione del problema di identicazione: 1. Polling = interrogazione ciclica dei dispositivi 2. Interrupt vettorizzati (autoidenticazione tramite interrupt vector)

Problemi di efficienza Un lungo ritardo nella emissione di INTA può provocare errori nella gestione del tempo reale (ad es. real time clock) Soluzione: organizzazione dei dispositivi secondo (classi di) PRIORITÀ e mascheramento selettivo

Arbitraggio delle priorità

Schemi di Interrupt Daisy Chain = soluzione in caso di richieste simultanee di interrupt

Schemi di Interrupt Gruppi di priorità + daisy chain: maggiore flessibilità

Eccezioni Le interruzioni sono un tipo particolare di “eccezioni”. Gestione degli errori (TRAP): controllo di parità, istruzioni non ammissibili, divisioni per zero, violazione di indirizzamento, eccezioni di privilegio (modo kernel) DEBUGGING: trace e breakpoints

Gestione delle eccezioni software Linguaggio C: SIGNAL HANDLERS C++ e JAVA: try {…}except {…} catch {…}

DMA: Accesso diretto alla memoria Approccio alternativo a polling e interrupt per il trasferimento di grandi quantità di dati ad alta velocità (DATA BLOCK TRANSFER). Il controllo del trasferimento dati è delegato dal processore a uno o più DMA CONTROLLER. Il processore comunica al controller: l’indirizzo di partenza del blocco, il numero di byte da trasferire e la direzione del trasferimento.

DMA segnali di STATO utilizzati nel DMA: R/W, IRQ, IE, Done registri: BASE e COUNTER In caso di più controllori DMA, si usano le tecniche di daisy chain e abitraggio delle priorità per gestire i vari dispositivi I/O

Furto di ciclo (Cycle Stealing) In generale può sorgere un conflitto sul possesso del bus tra processore e controller DMA. Per risolvere i conflitti si usa un ARBITRO del BUS: quando il DMA acquisisce il controllo sul bus, si dice che “ruba” i cicli di accesso in memoria al processore.

Arbitraggio del bus 1 Meccanismo centralizzato: Un controller DMA fa richiesta del bus (BUS REQUEST) Se non vi sono conflitti, l’arbitro (il processore) concede il bus (BUS GRANT) Il controller richiedente diventa BUS MASTER attivando il segnale BUS BUSY

Arbitraggio del bus 2 Meccanismo distribuito: se uno o più controller DMA richiedono il bus attivano il segnale START-ARBITRATION, ponendo il proprio codice di priorità sulle linee di arbitraggio del bus (in OR tra loro) ognuno confronta il codice presente sul bus con quello proprio a partire dal bit più significativo: chi vince la contesa guadagna il bus

Circuiti di Interfaccia 1 L’interfaccia di I/O è costituita dalla logica necessaria a trasferire i dati fra bus a dispositivo. Dal lato del dispositivo di I/O può essere di tipo PARALLELA o SERIALE, dal lato del bus è sempre parallela.

Funzioni di una interfaccia di I/O fornire un buffer di memoria nei confronti del processore e del dispositivo di I/O contenere i flag di stato utili al processore per capire se il buffer è pieno/vuoto decodificare gli indirizzi con cui viene identificato il dispositivo di I/O generare i segnali di temporizzazione richiesti dallo schema di controllo del bus eseguire le conversioni di formato richieste per il trasferimento dei dati (es. seriale - parallelo)

Esempio di Interfaccia di I/O