Anteprima
Vedrai una selezione di 8 pagine su 32
DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: caratteristiche, funzioni, modi di indirizzamento, Struttura e funzione del processore, Processori Risc, parallelismo Pag. 1 DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: caratteristiche, funzioni, modi di indirizzamento, Struttura e funzione del processore, Processori Risc, parallelismo Pag. 2
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: caratteristiche, funzioni, modi di indirizzamento, Struttura e funzione del processore, Processori Risc, parallelismo Pag. 6
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: caratteristiche, funzioni, modi di indirizzamento, Struttura e funzione del processore, Processori Risc, parallelismo Pag. 11
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: caratteristiche, funzioni, modi di indirizzamento, Struttura e funzione del processore, Processori Risc, parallelismo Pag. 16
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: caratteristiche, funzioni, modi di indirizzamento, Struttura e funzione del processore, Processori Risc, parallelismo Pag. 21
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: caratteristiche, funzioni, modi di indirizzamento, Struttura e funzione del processore, Processori Risc, parallelismo Pag. 26
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: caratteristiche, funzioni, modi di indirizzamento, Struttura e funzione del processore, Processori Risc, parallelismo Pag. 31
1 su 32
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

(R).

Tale tecnica richiede che l’istruzione abbia due campi indirizzo, e che almeno uno sia esplicito.

Il valore, A, di un campo indirizzo è usato direttamente. L’aItro campo indirizzo, o un riferimento

implicito basato sul codice operativo, si riferisce a un registro il cui contenuto viene sommato ad A

per produrre l’indirizzo effettivo. Tre dei più comuni utilizzi:

• indirizzamento relativo

• indirizzamento base-registro

• indicizzazione

Indirizzamento relativo  Nell’indirizzamento relativo, il registro implicitamente referenziato è il

program counter (PC). In altre parole, l’indirizzo dell'istruzione corrente viene sommato al campo

indirizzo per produrre l’EA. Qui il campo indirizzo viene trattato come un numero in complemento a

due. Pertanto, l’indirizzo effettivo è uno spiazzamento relativo rispetto all’indirizzo dell’istruzione.

L’indirizzamento relativo sfrutta il concetto di località. Se la maggior parte dei riferimenti alla

memoria sono relativamente vicini all’istruzione in esecuzione, allora l’uso dell’indirizzamento

relativo risparmia bit di indirizzo nell’istruzione.

Indirizzamento registro-base  Il registro referenziato contiene un indirizzo di memoria e il campo

indirizzo contiene uno spiazzamento (solitamente un intero senza segno) rispetto a tale indirizzo. Il

riferimento al registro può essere esplicito o implicito. L’indirizzamento registro-base sfrutta

anch’esso la località degli accessi alla memoria. Si tratta di un metodo adatto all’implementazione

della segmentazione. In alcune implementazioni, si utilizza implicitamente un registro segmento-

base. In altre, il programmatore può scegliere un registro per contenere l’indirizzo base di un

segmento, e l’istruzione deve fare riferimento esplicito a tale registro. In quest’ultimo caso, se la

lunghezza del campo indirizzo è K e il numero di registri possibili è N, allora un’istruzione può

k

accedere a ciascuna delle N aree delle 2 parole.

Architettura degli elaboratori Maria Loreta La Barbera

22

Indicizzazione  il campo indirizzo rappresenta un indirizzo di memoria centrale e il registro

referenziato contiene uno spiazzamento positivo da tale indirizzo. Si noti che questa descrizione è

l’opposto dell’interpretazione dell’indirizzamento base-registro. Un utilizzo importante

dell’indicizzazione consiste nel fornire un meccanismo efficiente per eseguire operazioni iterative.

Indirizzamento a pila  Una pila è una sequenza lineare di locazioni riservate di memoria.

Associato alla pila troviamo un puntatore (contenuto nel registro SP, stack pointer) il cui valore è

l’indirizzo della cima della pila. In alternativa, i due elementi più in alto nella pila si possono trovare

nei registri della CPU. In tal caso SP referenzia il terzo elemento della pila. Pertanto, i riferimenti

alle locazioni della pila nella memoria sono di fatto indirizzi a registro indiretto. Questa tecnica è

una forma di indirizzamento implicito. Le istruzioni macchina operano implicitamente sulla cima

della pila senza accedere alla memoria.

Linguaggio assembly

Un processore può interpretare ed eseguire istruzioni macchina costituite da stringhe binarie

memorizzate nel calcolatore. Per programmare direttamente in linguaggio macchina occorre quindi

immettere il programma in forma binaria. Consideriamo il semplice comando BASIC N = I +J + K.

Supponiamo di voler programmare questo comando in linguaggio macchina e di inizializzare I, J e

K rispettivamente a 2, 3 e 4. Il programma inizia all’indirizzo esadecimale 101. Viene riservata

memoria per le quattro variabili a partire dall’indirizzo 201. Il programma consiste di quattro

istruzioni:

1. carica i contenuti della locazione 201 in AC

2. somma i contenuti della locazione 202 ad AC

3. somma i contenuti della locazione 203 ad AC

4. memorizza i contenuti di AC nella locazione 204.

Si tratta di un processo chiaramente tedioso e molto incline agli errori. Un leggero miglioramento

consiste nello scrivere il programma in notazione esadecimale anziché binaria. Potremmo

riscrivere il programma come una serie di istruzioni che contengono l’indirizzo di una cella di

memoria e la rappresentazione esadecimale del valore da memorizzare in tale locazione. Poi è

necessario un programma che legge questo input, lo traduca in forma binaria e lo memorizzi nella

cella specificata. Per un ulteriore miglioramento, si può far uso di nomi simbolici (o mnemonici) per

le istruzioni. Ne consegue il programma simbolico. Lo sviluppo dei linguaggi assemblativi

rappresenta una pietra miliare nell’evoluzione della tecnologia dei calcolatori, in quanto si tratta del

primo passo verso gli odierni linguaggi ad alto livello.

CAPITOLO 12: Struttura e funzione del processore

Organizzazione del processore

I requisiti dei compiti che deve svolgere:

• Prelevare istruzioni: il processore legge un’istruzione dalla memoria.

• Interpretare istruzioni: l’istruzione viene decodificata per determinare l’azione richiesta.

• Prelevare dati: l’esecuzione di un’istruzione può richiedere la lettura dei dati dalla memoria

o da un modulo di I/O.

• Elaborare dati: l’esecuzione di un’istruzione può richiedere di effettuare alcune operazioni

aritmetiche o logiche sui dati.

• Scrivere dati: i risultati dell’esecuzione possono richiedere la scrittura di dati in memoria in

un modulo di I/O.

Le componenti principali del processore sono l’unità aritmetico-logica (ALU) e l’unità di controllo.

L’ALU effettua la vera e propria elaborazione sui dati. L’unità di controllo gestisce il trasferimento

dati e istruzioni da e verso il processore, e controlla le operazioni dell’ALU.

Organizzazione dei registri

Architettura degli elaboratori Maria Loreta La Barbera

23

I registri del processore svolgono due ruoli.

• Registri utente: consentono al programmatore di minimizzare i riferimenti alla memoria

centrale ottimizzando l’uso dei registri.

• Registri di controllo e di stato: sono usati dall'unità di controllo per monitorare le

operazioni del processore e dai programmi del sistema operativo per controllare

l’esecuzione dei programmi.

Registri utente

I registri utente possono essere referenziati per mezzo del linguaggio macchina che il processore

esegue. Possiamo suddividere tali registri nelle seguenti categorie:

• generici

• dati

• indirizzi

• codici di condizione.

I registri generici possono essere assegnati a varie funzioni da parte del programmatore.

Talvolta il loro impiego rispetto all’insieme di istruzioni è ortogonale all’operazione. In altre parole,

ogni registro generico può contenere l’operando di ciascun codice operativo. Questo consente

l’uso di registri veramente generici. Spesso si pongono delle restrizioni. In alcuni casi, i registri

generici possono essere usati per l’indirizzamento (registro indiretto o spiazzamento). In altri casi,

esiste una distinzione tra i registri dati e i registri indirizzo. I registri dati dovrebbero essere usati

per contenere dati e non per il calcolo dell’indirizzo degli operandi. I registri indirizzo possono

essere di uso generale oppure dedicati a una specifica modalità di indirizzamento. Tra i possibili

esempi:

• Puntatori a segmento: nelle macchine con indirizzamento segmentato i registri di

segmento contengono l’indirizzo iniziale dei segmenti. Ci può essere un registro di

segmento per il sistema operativo e uno per il processo in esecuzione.

• Registri indice: sono utilizzati per l’indirizzamento con indice e possono essere

autoindicizzati.

• Puntatore alla pila: se l’indirizzamento alla pila è visibile all’utente, allora generalmente

esiste un registro dedicato (stack pointer) che punta alla cima della pila. Ciò consente l

indirizzamento implicito; ossia push, pop e altre istruzioni sulla pila che non richiedono un

operando esplicito.

Registri di controllo e di stato

Vari registri del processore vengono utilizzati per controllare le operazioni del processore stesso. In

genere questi registri non sono visibili all’utente. Alcuni possono essere utilizzati dalle istruzioni

macchina eseguite in modalità controllo o in modalità sistema operativo. Ovviamente, macchine

diverse avranno differenti organizzazioni dei registri e useranno la propria terminologia. Per

l’esecuzione delle istruzioni, sono essenziali quattro registri:

• Program counter (PC): contiene l’indirizzo della prossima istruzione da eseguire.

• Instruction register (IR): contiene l’ultima istruzione prelevata.

• Memory address register (MAR): contiene l’indirizzo di una locazione in memoria.

• Memory buffer register (MBR): contiene un dato da scrivere nella memoria o proveniente

da questa.

Non tutti i processori hanno registri dedicati come MAR ed MBR1 ma tutti possiedono i circuiti in

grado di scrivere sul bus e di leggere e registrare dati dal bus.

Architettura degli elaboratori Maria Loreta La Barbera

24

Ciclo esecutivo delle istruzioni

Un ciclo esecutivo include le seguenti fasi:

• Fetch: legge l’istruzione successiva dalla memoria e la pone nel processore.

• Esecuzione: interpreta il codice operativo ed esegue l’operazione indicata.

• Interrupt: se viene raccolto un interrupt, salva lo stato del processo corrente e serve

l’interrupt.

Ciclo indiretto

L’esecuzione di un’istruzione può coinvolgere uno o più operandi in memoria, ciascuno dei quali

richiede un accesso alla memoria. Inoltre, l’indirizzamento indiretto richiede accessi aggiuntivi alla

memoria.

Possiamo pensare al prelievo di indirizzi indiretti come a un sottociclo di un’istruzione. La

principale linea d’azione consiste nell’alternare prelievi di istruzioni ed esecuzioni di istruzioni.

L’istruzione prelevata viene esaminata per determinare se comporta un indirizzamento indiretto; in

questo caso gli operandi richiesti vengono prelevati in tal modo. Dopo l’esecuzione, si può gestire

un interrupt prima del successivo fetch.

Altro modo di interpretar il processo Una volta che un’istruzione viene prelevata, si devono

identificare i suoi operandi. Questi vengono letti dalla memoria, e il processo può richiedere il

calcolo dell’indirettezza.

Gli operandi che si trovano nei registri non richiedono prelievi. Al completamento della fase

esecutiva propriamente detta può essere necessario ripetere il processo di memorizzazione del

risultato.

Flusso di dati

La sequenza esatta di eventi durante l’esecuzione di un

Dettagli
A.A. 2014-2015
32 pagine
2 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher PrInCeSs Of MuSiC di informazioni apprese con la frequenza delle lezioni di Architettura degli elaboratori 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 Camerino o del prof De Angelis Francesco.