Sistemi Elettronici Programmabili

Slides:



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

Gestione della memoria centrale
Gestione Input Output A. Ferrari.
Perché le interruzioni?
IL MICROCONTROLLORE ST6
Il Sistema Operativo.
Gestione del processore
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.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © William Fornaciari Tecniche di gestione.
L’organizzazione della comunicazione di I/O G. Vercelli
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Gerarchie di priorità per la gestione delle interruzioni
Struttura dei sistemi operativi (panoramica)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
1 Gestione del processore Il modello a processi sequenziali.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
1.7 Risorse di sistema Comprendere le risorse di sistema Gestire le risorse di sistema.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
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,
La macchina di von Neumann
GLI INTERRUPT PAG..
L’Architettura del Sistema di Elaborazione
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
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.
La gestione dellinput/output Poiché i dispositivi esterni hanno una struttura difforme da quella di un processore, ciascuna periferica necessiterà di una.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
TECNICHE DI INPUT/OUTPUT
ELETTRONICA DIGITALE (II Parte)
L' ARCHITETTURA DI VON NEUMANN
Architettura degli elaboratori
I vettore interruzioni
Architettura del calcolatore
GESTIONE INTERRUPT CPU INTEL 8086
Introduzione al linguaggio assembly del microprocessore a parte
ARCHITETTURA DI UN ELABORATORE
Unità centrale di processo
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
Sistema Operativo (Software di base)
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
Architettura di una CPU
Calcolatori Elettronici Il Processore
1 RIEPILOGO GENERALE Sistemi Elettronici Programmabili.
Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
ELETTRONICA DIGITALE (II Parte) (6-7) 13.12;15.12
Gestione dei dispositivi di I/O:
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
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.
L’esecuzione dei programmi
I primi elaboratori Anni ‘50 Rigidamente sequenziali
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.
NUCLEO DI UN SISTEMA A PROCESSI Il modello a processi prevede l’esistenza di tante unità di elaborazione (macchine virtuali) quanti sono i processi; ogni.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
Il modello di Von Neumann
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Concetti informatici di base. Concetti informatici di base Il computer o elaboratore è una apparecchiatura costituita da un insieme di dispositivi di.
Il BUS è un elemento fondamentale dei computer che ha lo scopo di collegare elettricamente i dispositivi, le periferiche e le memorie con il microprocessore,
Il Sistema Operativo Processi e Risorse
Transcript della presentazione:

Sistemi Elettronici Programmabili Le periferiche Sistemi Elettronici Programmabili: Le periferiche

Sistemi Elettronici Programmabili: Le periferiche Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente: Control REGister; Status REGister; Data REGister; Questi registri sono generalmente “MAPPATI IN MEMORIA” ossia sono visti come locazioni di memoria nello spazio di indirizzamento Sistemi Elettronici Programmabili: Le periferiche

Costruzione dei comandi Nella configurazione minima la CPU deve avere 3 piedini che indicano: se l’operazione è verso la memoria o le periferiche se si tratta di un’operazione di lettura se si tratta di un’operazione di scrittura Esempio di periferica con 2 porte di I/O Attraverso il BUS indirizzi si identifica la locazione di memoria o la periferica interessata nell’operazione (periferica mappata in memoria) Sistemi Elettronici Programmabili: Le periferiche

Gestione delle Periferiche Le Periferiche sono generalmente dei dispositivi Slave che dipendono dal Processore che deve quindi provvedere alla loro gestione. Questa funzione viene espletata principalmente con due tecniche gestite dalla CPU: 1. Polling in cui la gestione è demandata al programma; 2. Interrupt attraverso il quale la periferica può richiedere servizio E una tecnica che esclude la CPU dalla gestione,il DMA attraverso il quale si stabilisce un collegamento diretto tra memoria e dispositivo Interrupt Polling Nel controllo da programma, la CPU interroga periodicamente la porta della periferica di interesse, in modo da tenere sotto controllo lo stato della stessa. Quando la periferica è disponibile a ricevere o trasmettere un dato, la CPU esegue le istruzioni necessarie. Questo approccio risulta assai poco efficiente, comportando un grosso spreco di tempo da parte della CPU. Ha il vantaggio di non richiedere hardware dedicato. La gestione delle periferiche è SINCRONA al programma. Ossia è il programmatore a decidere quando servire la periferica. Nella gestione mediante Interrupt è la periferica stessa a richiedere servizio mediante un apposito segnale. Il processore non deve interrogare periodicamente le periferiche. La gestione delle periferiche è ASINCRONA al programma nel senso che il programmatore non può prevedere quando ci sarà una richiesta di servizio. Sistemi Elettronici Programmabili: Le periferiche

Porta d’ingresso/uscita Componenti standard per porte di I/O 74xx244 = 8 Buffer tristate 74xx374 = 8 FF-D con uscita in tristate Sistemi Elettronici Programmabili: Le periferiche

Esempio: collegamento con stampante Il segnale di dato valido (DAV) segnala alla stampante la presenza di un dato sul BUS Il segnale di dato accettato (DAC) segnala alla CPU che il dato è stato acquisito dalla stampante, che è pronta a ricevere il successivo Sistemi Elettronici Programmabili: Le periferiche

Esempio: collegamento con stampante Interfaccia d’uscita Comunicazione monodirezionale sui dati (semplificazione) Il segnale DAC genera un 1 sul bit 0 del DB SEL abilitato solo se l’indirizzo corrisponde a quello assegnato al dispositivo Sistemi Elettronici Programmabili: Le periferiche

Esempio: collegamento con stampante Temporizzazione delle attività Sincrona rispetto all’esecuzione del programma (Polling) Asincrona rispetto all’esecuzione del programma (Interrupt) Indipendente dall’esecuzione del programma (DMA) Sistemi Elettronici Programmabili: Le periferiche

Collegamento delle periferiche con Polling No Hardware aggiuntivo No controllo aggiuntivo Controllo I/O sincrono con programma Ottimizzazione del codice Grande flessibilità Spreco di tempo di CPU per interrogazione periferiche Sistemi Elettronici Programmabili: Le periferiche

Sistemi Elettronici Programmabili: Le periferiche Polling: esecuzione E’ previsto l’accesso alle periferiche in determinati punti del programma Si controlla se la periferica 1 ha richiesto il servizio e nel caso si esegue la routine di pertinenza Si controlla se la periferica 2 ha richiesto il servizio e nel caso si esegue la routine di pertinenza … Se le periferiche richiedono sporadicamente il servizio si ha un uso non ottimale delle risorse di calcolo Sistemi Elettronici Programmabili: Le periferiche

Modalità asincrona rispetto al programma Interrupt Modalità asincrona rispetto al programma Non si conosce il momento in cui la routine di servizio di una certa periferica verrà eseguita Necessità di salvare lo stato della CPU (necessità dello stack e spreco di cicli macchina) Necessità di hardware aggiuntivo (più o meno complicato) Flessibilità Non si perde tempo nell’interrogazione ciclica delle periferiche Sistemi Elettronici Programmabili: Le periferiche

Collegamento con Interrupt La CPU controlla lo stato di IINTR Il registro IE abilita gli Interrupt (può essere controllato via software) Tutti gli interrupt possono essere mascherati tramite il registro IE (interrupt enable) tranne i NMI (interrupt non mascherabili) Sistemi Elettronici Programmabili: Le periferiche

Interfaccia per Interrupt Interfaccia d’uscita modificata per Interrupt L’interrupt viene generato quando si abbassa il segnale DAC Sistemi Elettronici Programmabili: Le periferiche

Collegamento di più periferiche Singola linea di interrupt Gli interrupt sono collegati in wired-OR (open collector) La porta ISR (Interrupt Status Register) contiene l’informazione relativa a quale dispositivo ha generato l’interrupt Sistemi Elettronici Programmabili: Le periferiche

Collegamento di più periferiche Linee di interrupt multiple Ogni periferica ha la sua linea di interrupt dedicata Sistemi Elettronici Programmabili: Le periferiche

Gestione delle priorità (HW) L’arbitro stabilisce qual’è l’interrupt a priorità più alta mettendo in uscita il codice corrispondente Viene quindi eseguita la routine relativa all’interrupt selezionato Sistemi Elettronici Programmabili: Le periferiche

Esecuzione del Ciclo di Interrupt Il segnale INTA (interrupt acknoledgement) all’uscita della CPU indica che si sta servendo un’interruzione La logica esterna mette sul bus l’identificativo dell’interruzione La richiesta d’interruzione può essere o meno disattivata automaticamente nel corso dell’interruzione Sistemi Elettronici Programmabili: Le periferiche

Salvataggio del Contesto Tutti i sistemi di interruzioni richiedono, come minimo, il salvataggio del Program Counter (PC). Molti processori salvano in modo automatico molti dei registri interni. In questo modo la Routine di servizio può alterare i registri che verranno ripristinati, in modo automatico e molto veloce, con il contenuto originario prima che il controllo torni al programma principale. In altri casi, deve essere il programmatore a mettere in salvo (e.s. nello Stack) il contenuto dei registri che verranno usati dalla routine di servizio e a ripristinarli al suo termine. Sistemi Elettronici Programmabili: Le periferiche

Sistemi Elettronici Programmabili: Le periferiche Routine di servizio La routine di servizio di una interruzione è semplicemente un sottoprogramma che viene attivato dalla CPU, quando questa intende servire la richiesta di interruzione prodotta da una periferica. Il sottoprogramma contiene tutte le istruzioni necessarie a gestire la periferica, consentendo lo scambio dei dati con la CPU. Al suo termine, una particolare istruzione (e.s. RTI) provoca il ripristino del contesto e quindi il ritorno della CPU alle attività precedenti la richiesta di interruzione. Sistemi Elettronici Programmabili: Le periferiche

Sistemi Elettronici Programmabili: Le periferiche Gestione Interrupt Dato che le periferiche di un Processore possono essere numerose, si pongono diversi problemi: 1. riconoscere la periferica che ha richiesto l’interruzione; 2. gestire eventuali richieste simultanee da parte di diverse periferiche; 3. gestire le interruzioni delle routine di servizio (interruzioni annidate). Esistono diverse possibili soluzioni che corrispondono a diverse organizzazioni del sistema di interruzioni. Gestione da Programma Gestione Automatica (Interrupt Vector) Sistemi Elettronici Programmabili: Le periferiche

Controllo da Programma Una possibile soluzione sfrutta un registro di stato delle interruzioni (ISR), ciascun bit del quale è associato ad una periferica. Una periferica che richieda una interruzione asserisce al tempo stesso il proprio bit del registro. All’arrivo dell’Interrupt la routine di servizio esamina sequenzialmente i bit di ISR e determina quale periferica ha attivato la richiesta. Di conseguenza, attiva (e.s. CALL) la subroutine di gestione relativa. Questa soluzione realizza implicitamente anche un meccanismo di priorità, in quanto i bit di ISR vengono letti in un ordine fissato e nello stesso ordine vengono servite eventuali richieste di interruzione concorrenti. La gestione di ISR è a carico del programma, che deve disasserire i bit delle interruzioni servite e le stesse richieste, in modo da evitare loop pericolosi. Il metodo è comunque poco efficiente, in quanto la lettura di ISR richiede un tempo significativo. Sistemi Elettronici Programmabili: Le periferiche

Sistemi Elettronici Programmabili: Le periferiche Interrupt Vector Nella gestione tramite Interrupt Vector il processore presenta più linee di interruzione (IRQ1, IRQ2, …) ciascuna dedicata a una periferica (o a un gruppo di periferiche) ed è in grado di attivare in modo automatico la routine di servizio (Interrupt Handler) associata. Sistemi Elettronici Programmabili: Le periferiche

Direct Memory Access (DMA) L’accesso diretto alla memoria consente (solo) di scambiare dati tra una periferica e la RAM senza l’intervento della CPU (Rigidità) Non viene perso del tempo di CPU nello scambio dei dati (la CPU continua ad eseguire il programma principale fino al prossimo cache miss) Necessita di hardware (complesso) aggiuntivo Sistemi Elettronici Programmabili: Le periferiche

Trasferimenti singoli e burst Trasferimento singolo Viene trasferito un byte per ogni DMAREQ Trasferimento a burst Viene trasferito un pacchetto di byte per ogni DMAREQ La dimensione del pacchetto può essere fissa o variabile Sistemi Elettronici Programmabili: Le periferiche

Sistemi Elettronici Programmabili: Le periferiche Controllore di DMA Quando c’è una richiesta di DMA il controllore genera una richiesta alla CPU (DMAREQ) La CPU risponde con DMAACK e lascia il controllo del BUS al controllore di DMA (address BUS e data BUS = Z) Il controllore genera gli indirizzi per la memoria La CPU continua l’esecuzione del programma principale Occorre fornire: Indirizzo di partenza Lunghezza del blocco Direzione del trasferimento Sistemi Elettronici Programmabili: Le periferiche