Anteprima
Vedrai una selezione di 10 pagine su 183
Calcolatori elettronici, prof. Cilardo Pag. 1 Calcolatori elettronici, prof. Cilardo Pag. 2
Anteprima di 10 pagg. su 183.
Scarica il documento per vederlo tutto.
Calcolatori elettronici, prof. Cilardo Pag. 6
Anteprima di 10 pagg. su 183.
Scarica il documento per vederlo tutto.
Calcolatori elettronici, prof. Cilardo Pag. 11
Anteprima di 10 pagg. su 183.
Scarica il documento per vederlo tutto.
Calcolatori elettronici, prof. Cilardo Pag. 16
Anteprima di 10 pagg. su 183.
Scarica il documento per vederlo tutto.
Calcolatori elettronici, prof. Cilardo Pag. 21
Anteprima di 10 pagg. su 183.
Scarica il documento per vederlo tutto.
Calcolatori elettronici, prof. Cilardo Pag. 26
Anteprima di 10 pagg. su 183.
Scarica il documento per vederlo tutto.
Calcolatori elettronici, prof. Cilardo Pag. 31
Anteprima di 10 pagg. su 183.
Scarica il documento per vederlo tutto.
Calcolatori elettronici, prof. Cilardo Pag. 36
Anteprima di 10 pagg. su 183.
Scarica il documento per vederlo tutto.
Calcolatori elettronici, prof. Cilardo Pag. 41
1 su 183
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

LINK E UNLK LINK.

Stato dello stack prima e dopo Supponiamo che la routine richieda due

Word

variabili locali, entrambe (4 byte in tutto).

UNLK. UNLK Ax

Stato dello stack prima e dopo L’istruzione ripristina in

Ax Ax

il valore puntato da (old_Ax) e

ESEMPI CON LINK/ UNLK

23) SOTTOSISTEMA DI INGRESSO/USCITA (I/O)

Calcolatore: sottosistemi

- Processing Unit)

• Processore o CPU (Central

- • Memoria centrale

- • Sottosistema di input/output (I/O)

Sottosistema di input/output (I/O)

• Periferiche (peripherals) di Ingresso/Uscita, o Input/Output (I/O),

praticamente tutti i componenti esterni all’interazione diretta

processore-memoria.

- Esempi: tastiera, monitor, dispositivi di puntamento, periferiche USB,

disco rigido (memoria di massa), timer, gestore delle interruzioni,

Controllore del Direct Memory Address (DMA), etc etc.

INTERFACCIAMENTO CON I/O

Due approcci per l’interfacciamento tra processore e dispositivi di I/O

- “I/O mapped” I/O: il processore dispone di un’interfaccia indirizzo/dato

separato per l’I/O (es. Intel x86) e i dispositivi sono in uno spazio di

indirizzamento separato e sono presenti istruzioni apposite;

- “memory-mapped” I/O: i dispositivi sono attivati da alcuni specifici

indirizzi, per il processore, gli accessi ai dispositivi di I/O sono visti

come operazioni in memoria (es. M68000)

I/O- mapped I/O

Memory- mapped I/O

Interfaccia della periferica registri;

Tipicamente, l’interfaccia di qualsiasi dispositivo è composta da

locazioni, simili a quelle in memoria, da cui è possibile leggere o su cui è

possibile scrivere. Tre tipi di registri:

- controllo e stato;

registri di

- indirizzo;

registri

- dato.

registri

• Registri Controllo/Stato:

- Controllo: scritti dal processore, determinano mediante opportune

codifiche (diverse da periferica a periferica) cosa il dispositivo deve fare;

- Stato: scritti dalla periferica e letti dal processore, danno la possibilità

al dispositivo di informare il processore circa l’esito delle

operazioni;effettuate;

Indirizzo Dato:

• Registri e hanno lo stesso significato di quelli usati per la

memoria, ma fanno riferimento ad un insieme (tipicamente ridotto) di

locazioni fisicamente presenti nella periferica.

ESEMPIO: TERMINALE

24) Terminale: rappresenta un dispositivo combinato Monitor/Tastiera

console)

(cosiddetta

Osservazione:

- i dati sono scritti uno dopo l’altro sullo stesso indirizzo;

- Il funzionamento del dispositivo garantisce che valori scritti

successivamente sullo stesso indirizzo vengano trasferiti come dati

distinti;

- non

qui l’indirizzo corrisponde fisicamente ad una locazione di

memoria!!

INTERAZIONE CPU- PERIFERICA

• Osservazione:

- CNTRL

controllo/stato

il registro di segnala il fatto che sia stato

premuto il tasto ENTER, alzando il bit più significativo (che

stato);

rappresenta un’informazione di

- per aspettare fino alla pressione del tasto, il programma principale

CNTRL

contiene un ciclo che legge il registro e itera (bloccandosi nel

0.

ciclo) quando il bit di stato è

Polling” controllato da programma”):

• “ (o “I/O tecnica per l’interazione

CPU-periferica in cui la CPU accede ripetutamente ai registri di stato fino a

quando la periferica è pronta (come nell’esempio precedente). Impedisce alla

CPU di fare altro durante l’attesa! La CPU si blocca in quello che si chiama

busy-waiting.

• Alternativa: “Interruzioni” (interrupts), dette anche “eccezioni”

(exceptions); il processore può eseguire altre istruzioni mentre la periferica

lavora. Appena questa è pronta, il processore viene interrotto (tramite

un’opportuna infrastruttura circuitale fornita dal sistema), e passa ad

eseguire la parte di programma che gestisce l’interazione con la periferica.

INTERRUZIONI

GESTIONE DI EVENTI

Ciclo base del processore:

- le istruzioni sono eseguite una dopo l’altra in sequenza;

- eventuali salti spostano l’esecuzione ad una differente sequenza sulla

base di condizioni comunque dipendenti dal programma in esecuzione.

In molti casi, tuttavia, è necessario che il processore esegua una routine

quando si verifica un evento esterno, indipendente dal programma in

esecuzione; l’evento accade in momenti che non sono predicibili da parte del

processore.

Gli eventi esterni sono quasi sempre asincroni; Spesso si presentano con

molto più bassa

frequenza rispetto alla frequenza con la quale il processore

carica ed esegue le istruzioni.

polling I/O controllato da programma),

Nel (o la CPU accede ripetutamente

ai registri di stato fino a quando la periferica è pronta (come nell’esempio del

Terminale); impedisce alla CPU di fare altro durante l’attesa! La CPU si

busy-waiting.

blocca in quello che si chiama

Alternativa: “Interruzioni” (interrupts): dette anche “eccezioni”

(exceptions); segnale

un’interruzione è un mandato direttamente dalla

periferica al processore per interromperne l’esecuzione e lanciare l’esecuzione

di un programma differente. Il processore può eseguire altre istruzioni

mentre la periferica lavora. Appena questa è pronta, il processore viene

interrotto (tramite un’opportuna infrastruttura circuitale fornita

dal sistema), e passa ad eseguire il programma che gestisce l’interazione con

la periferica.

INTERRUZIONI ASINCRONE

Tipicamente (ma non necessariamente) le interruzioni sono innescate da un

evento esterno, ad esempio la pressione di un tasto, e possono quindi

avvenire in qualsasi momento.

- asincrona

L’interruzione è rispetto al programma

L’accettazione di un’interruzione comporta la sospensione del programma in

esecuzione ed il salto ad una routine per la gestione dell’interruzione

ISR).

Service Routine,

(Interrupt

- NON si tratta quindi di un salto o di una chiamata a sottoprogramma

eseguita “consapevolmente” dal programma interrotto.

MODIFICA AL CICLO DI VON-NEUMANN

Come realizzare le interruzioni? Se il ciclo del processore fosse puramente

quello mostrato a destra, sorgerebbero alcuni problemi:

- un’applicazione potrebbe impadronirsi della risorsa CPU senza mai

terminare;

- non ci sarebbe modo di rimuovere forzatamente un’applicazione che

entri per errore in un ciclo infinito;

- Sistema Operativo,

il in generale, avrebbe un controllo limitato sul

Sistema.

La soluzione comunemente adottata consiste nel permettere al “supervisore”

(il Sistema Operativo) di prendere periodicamente il controllo del processore.

Questo avviene esclusivamente nel caso in cui si verifichino eventi

“eccezionali”, di solito asincroni con l’esecuzione del programma

correntemente in corso.

In assenza di tali eventi l’elaborazione procede nella maniera consueta

MODALITA’ DI ESECUZIONE

La presenza di eventi è spesso collegata alla gestione delle funzionalità “di

basso livello” del calcolatore, gestione del disco, periferiche, timer, etc.

Normalmente, i programmi per la gestione di tali funzionalità devono avere

accesso a tutte le caratteristiche del calcolatore, tipicamente è meglio evitare

invece che questo sia concesso ai normali programmi utente.

Molti processori prevedono pertanto (almeno) due modalità:

- Supervisore (accesso pieno alle funzionalità del sistema);

- Utente (accesso limitato alle sole istruzioni di processazione).

cambia modalità di esecuzione

All’accettazione dell’interruzione, la CPU

passando da Utente a Supervisore. stato

La modalità di esecuzione attiva in un certo momento è parte dello del

processore. Tipicamente, in modalità di esecuzione differenti il processore

M68000

stack differenti;

accede anche a ad esempio nel la modalità è indicata

S Registro di Stato

dal bit del (SR); sono presenti due Stack Pointer (A7 e

A7’) usati rispettivamente in modalità Utente e Supervisore.

DRIVER

La modalità di esecuzione Supervisore è normalmente pensata per

l’esecuzione di routine del Sistema Operativo. L’insieme di routine, comprese

le ISR, che gestiscono l’interazione con una particolare periferica viene detto

driver.

Ogni periferica ha il proprio funzionamento e necessita pertanto dei propri

driver; questo è il motivo per cui l’installazione di una nuova periferica

comporta normalmente l’installazione dei corrispondenti driver!

TIPOLOGIE DI INTERRUZIONI

Reset:

- Riporta la macchina in uno stato iniziale noto;

- È generato da condizioni d’errore non recuperabili;

Traps:

- Forniscono un meccanismo controllato di passaggio allo stato

supervisore;

- Sono eventi sincroni (rispetto all’elaborazione);

Interrupts in senso stretto:

- Permettono di gestire richieste di “attenzione” da parte di periferiche

(tipicamente di I/O);

- Sono eventi asincroni (rispetto all’elaborazione).

TRAPS

Generano un’interruzione al termine di ogni istruzione eseguita, o in

corrispondenza di particolari circostanze determinate dal programma; sono

sincrone

pertanto con il programma. debug

Sono usate per consentire l’esecuzione passopasso ed il dei programmi.

T

Nel M68000 sono abilitate dal bit del registro di Stato (SR).

INTERRUZIONI: FUNZIONAMENTO

• Segnale di Interrupt (INT): segnale di interruzione per il processore;

• Ack: segnale

Segnale di di accettazione dell’interruzione:

• ISR (Procedura di Servizio degli Interrupt): Procedura lanciata quando

viene accolto l’interrupt.

• Sequenza di attivazione:

1) la Periferica alza il segnale (INT);

2) il Processore interrompe il programma in esecuzione;

3) la Periferica viene informata che l’interrupt è stato ricevuto (Ack);

4) viene eseguita la procedura (ISR);

5) si ripristina il Programma originale.

SEQUENZA DI ATTIVAZIONE: DETTAGLI

• Esecuzione normale;

• Servizio dell’interruzione:

- Salvataggio del contesto (hardware);

- Identificazione del device;

- Salto all’entry-point della Interrupt Service Routine (ISR);

- Salvataggio del contesto (software);

- Servizio dell’interruzione;

- Ripristino del contesto (software);

- Ripristino del contesto (hardware).

• Ripresa dell’esecuzione normale.

IL SALVATAGGIO DELLO STATO

L’elaborazione eseguita dalla ISR in risposta all’interruzione potrebbe essere

Dettagli
Publisher
A.A. 2016-2017
183 pagine
1 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher r.lollo di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Cilardo Alessandro.