Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 1
Esecuzione delle istruzioni nel Processore
Il processore è in grado di eseguire solo istruzioni codificate in linguaggio macchina
Ciascun tipo di processore ha un proprio linguaggio macchina
Le istruzioni sono codificate in binario secondo un formato predefinito Ciascuna istruzione è formata da un Codice Operativo e da uno o più Operandi
Un Operando può essere una costante o un indirizzo di memoria Un’istruzione può essere registrata in più locazioni di memoria Il valore di un operando può essere registrato in più locazioni di memoria
Istruzioni in linguaggio macchina
Codice Operativo Operando
Codice Operativo Operando1 Operando2
Codice Operativo Operando1 Operando2 Operando3 Il numero di operandi dipende dall’architettura del processore Un modello esemplificativo di rappresentazioni con 1, 2 o 3 operandi
Il codice operativo indica l’operazione da eseguirsi sugli operandi Un operando può essere:
• il valore del dato su cui (immediatamente) operare
• un indirizzo dove è memorizzato il valore del dato su cui operare
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 3
Bootstrap
Fetch
Decode
Execute
Queste tre fasi costituiscono il cosiddetto ‘Algoritmo del Processore’: il processore opera eseguendo in ciclo sempre queste tre ‘istruzioni’
Esecuzione delle istruzioni nel processore
L’esecuzione delle istruzioni è effettuata dal processore eseguendo ciclicamente tre fasi
• Fase di Fetch (Leggi)
• Leggi l’istruzione corrente, puntata dal registro PC e copiala nel registro IR
• Incrementa il contenuto del Program Counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva
• Fase di Decode (Decodifica)
• Interpreta il tipo di istruzione (il codice operativo) da eseguire
• ‘Costruisci’ gli operandi dell’istruzione
• se l’operando è una costante copia il valore in uno specificato registro della CPU
• se l’operando è un indirizzo accedi alla memoria e copia il valore in uno specificato registro della CPU
• Fase di Execute (Esecuzione)
• Esegui l’istruzione e memorizza i risultati
• Ritorna ad eseguire la fase di fetch per l’istruzione successiva
Esecuzione delle istruzioni nel processore
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 5
Modello Generalizzato di Operatività (MGO) del processore
Descrive in modo semplificato il comportamento di un processore per l’esecuzione di un’istruzione
Costituito da:
• una Memoria centrale (un insieme di registri di memoria)
• un Processore:
• una unità di controllo:
• un registro prossima istruzione (Program Counter – PC) - contiene un’informazione di tipo “puntatore ad un’istruzione” (l’indirizzo di un registro della memoria)
• un registro istruzione (Instruction Register – IR) – contine l’istruzione da eseguire secondo il formato del Processore
• una ALU
• registri degli operandi e circuiti per l’esecuzione istruzioni
Il comportamento è quello risultante dalle caratteristiche dello Hw e Sw di base di un elaboratore
MGO - Componenti
PC
Unità di Controllo
IR
a
b g Memoria
w
…...
…...
ALU
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 7
Istruzioni nel MGO
Un’istruzione è modellata mediante : i = (f, P1, P2)
f : azione elaborativa (codice operativo) da eseguire
Un operatore elementare legato alle altre componenti dell’istruzione Per un dato processore è definito un insieme di funzioni elementari f, ciascuna delle quali trasforma un insieme I di k valori in un insieme U di Q valori:
U = f (I)
Le funzioni f consentono la costruzione di un’azione elaborativa che fa calcolare ed assegnare i valori U ai registri della macchina (memoria e PC).
I1
UQ U2 U1 I2
I3 IK
f
Istruzioni nel MGO
P1 rappresenta k valori iniziali I
un insieme di valori di operandi diretti e/o di indirizzi (puntatori a registri) contenenti i valori degli operandi
... operandi di Input della ALU ...
P2 è costituito da q elementi:
• q-1 indirizzi di memoria associati ad altrettanti valori finali U
... operandi di Output della ALU ...
• il q-esimo valore uq di U è destinato al registro PC.
P2 può essere formato solo da uq
Dal punto di vista del processore, un Programma è formato da una sequenza di istruzioni i
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 9
Principali azioni dello MGO
Le principali azioni eseguite sono:
1) Prelievo dalla memoria dell’istruzione memorizzata nel registro indicato dal PC e suo trasferimento nel processore nel registro IR (fetch)
2) prelievo delle informazioni P1 dalla memoria se identificate da indirizzi, o direttamente dalla istruzione se costituite dai valori su cui operare (decode)
3) calcolo dei valori U = f (I) (execute)
4) memorizzazione dei valori calcolati nei registri P2 (execute) 5) trasferimento in PC dell’ultimo valore di U (execute) 6) ripetizione delle operazioni a partire dal punto 1
Le fasi operative
Si accede al registro della Memoria ‘puntato’
dal PC
1 ALU
f P1 P2 a
PC
Unità di Controllo
IR
Memoria
a
b g w
…...
…...
f P1 P2
1) l’istruzione (f, P1, P2) viene copiata dalla memoria nel registro IR 2) Il contenuto di PC
punta all’istruzione successiva
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 11
Le fasi operative
1 ALU
f P1 P2 b
PC
Unità di Controllo
IR
Memoria
a
w
…...
…...
f P1 P2
I
I
viene costruito l’insieme degli operandi I
…...
2
2) contenuti in P1 P1
2a
2a) e/o prelevando i valori puntati da P1
f
interpretato il codice ooperativo da eseguire
Le fasi operative
1 ALU
f P1 P2 b
PC
Unità di Controllo
IR
Memoria
a
w
…...
…...
f P1 P2
I
P1
I
3) La ALU esegue il calcolo U= f (I)
U 3
2
U = f (I)
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 13
Le fasi operative
1 ALU
f P1 P2 b
PC
Unità di Controllo
IR
Memoria
a
w
…...
…...
f P1 P2 I
P1
I
4) q-i valori dell’insieme U calcolati somo memorizzati nei registri di memoria puntati da P2
U = f (I) U 3
…...
P2 U
4 2
Le fasi operative
1 ALU
PC
Unità di Controllo
IR
Memoria
w
…...
…...
f P1 P2 I
P1
I
5) l’ultimo valore calcolato uq
di U è memorizzato in PC (uq può essere uguale all’indirizzo b già calcolato)
U = f (I) U 3
P2
…...
Uuq f P1 P2
5
a
2
4
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 15
Le fasi operative
ALU
PC
Unità di Controllo
IR
Memoria
w
…...
…...
f’ P’1 P’2
Il processore potrà iniziare di nuovo il ciclo delle operazioni, prelevando l’istruzione posta nel registro di memoria uq
U’ = f (I’) U’
3
…...
uq
uq
1 f’ P’1P’2
5
P’1 I’
I’
2
U’
P’2
4
Le fasi operative - sintesi
1) l’istruzione (f, P1, P2) viene spostata dalla memoria in un registro del processore
2) viene costruito l’insieme I prelevando i valori puntati da P1 e/o contenuti in P1 stesso
3) si esegue il calcolo U= f (I), eseguito dall’ALU
4) q-i valori, dell’insieme U, calcolati somo memorizzati nei registri di memoria puntati da P2
5) l’ultimo valore calcolato uq di U è memorizzato in PI, così il processore potrà di nuovo iniziare il ciclo delle operazioni, prelevando l’istruzione posta nel registro di memoria uq
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 17
Esempio: …..
c = b * 5
….
f = * P1 = (b, 5) P2 = (c, uq)
* (b, 5) (c) b
.. ……. ….
a
.. ……. ….
g
4 b
? c
Memoria
Processore b PC
.. ……. ….
ALU I
U
…... …...
…….
Puntatori (indirizzi) Costante
Esempio: …..
c = b * 5
….
f = * P1 = (b, 5) P2 = (c, uq)
* (b, 5) (c) b
.. ……. ….
a
.. ……. ….
g
4 b
? c
Memoria
b
Processore PC
*
U=4*5
3 20 1
* (b, 5) (c)
4 5
ALU 2
I
U
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 19
Esempio: …..
c = b * 5
….
f = * P1 = (b, 5) P2 = (c, uq)
* (b, 5) (c) b
.. ……. ….
a
.. ……. ….
g
4 b
20 c
Memoria
g
* (b, 5) (c)
Processore PC
1
4 5
ALU 2
I
U
U=4*5
3 4 20
Esempio: …..
c = b * 5
….
f = * P1 = (b, 5) P2 = (c, uq)
* (b, 5) (c) b
.. ……. ….
a
.. ……. ….
g
4 b
20 c
g
* (b, 5) (c)
Processore PC
I
U
U= PC + 1
5
g
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 21
Tre tipologie di istruzioni
• Istruzioni aritmetico-logiche (Elaborazione dati)
– Somma, Sottrazione, Divisione, … – And, Or, Xor, …
– Confronti (Maggiore, Minore, Uguale, Minore o uguale, …)
• Controllo dell’ordine di esecuzione delle istruzioni
– Sequenza
– Selezione semplice, a due vie, a n vie, …
– Ciclo a condizione iniziale, ciclo a condizione finale, …
• Trasferimento di informazione
– Trasferimento dati e istruzioni tra CPU e memoria – Trasferimento dati e istruzioni tra CPU e dispositivi di
ingresso/uscita (attraverso le relative interfacce)
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari Copyright © 2005 – The McGraw-Hill Companies srl
Istruzioni aritmetico-logiche
Un’istruzione aritmetico-logica, ad esempio:
add RZ,RX,RY
istruzione Assembler corrispondente a RZ=RX+RY : somma i valori contenuti nei registri RX e RY e metti il risultato nel registro RZ viene eseguita con i seguenti quattro passi:
1. l’istruzione viene prelevata dalla memoriaprelevata dalla memoria e scritta nell’IR mentre il PC viene incrementato (fase di fase di fetchfetch);
2. viene letto il contenuto dei due registri RX e RYletto il contenuto dei due registri RX e RY
l’unità di controllo attiva i collegamenti tra i registri RX e RY, individuati dal contenuto dell’IR, e i registri di ingresso all’ALU e provvede a effettuare il trasferimento dei dati);
3. la ALU opera sui datiALU opera sui dati letti dai registri, eseguendo l’operazione indicata dal codice compreso nell’istruzione
l’unità di controllo attiva il collegamento di un pezzo dell’IR con l’ingresso di controllo dell’ALU);
4. il risultato risultato calcolato dall’ALU viene scritto nel registro RZscritto nel registro RZ
anche il registro destinazione viene individuato a partire dal contenuto dell’IR.
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio Elementi di InformaticaCopyright © 2006 Pearson Addison-Wesley. All rights 23
reserved.
add RZ,RX,RY <==> add 800, 428, 884
Somma contenuto dei registri con indirizzo 428 e 884 e memorizza nel registro di indirizzo 800
Fetch:
l’istruzione all’indirizzo 2200 della RAM (indicato dal PC) è trasferita nello IR della CU. In PC è trasferito l’indirizzo della istruzione successiva
Eseguita operazione di load da RAM ad IR
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio Elementi di InformaticaCopyright © 2006 Pearson Addison-Wesley. All rights 25
reserved.
Decode:
Sono identificati gli (indirizzi degli) operandi e decodificata l’operazione che la ALU dovrà effettuare
Decode:
I valori degli operandi sono trasferiti dai registri della RAM (agli indirizzi indicati) nei registri operandi dell’ALU .
Eseguite operazioni di load da RAM per i due operandi
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio Elementi di InformaticaCopyright © 2006 Pearson Addison-Wesley. All rights 27
reserved.
Execute:
La ALU esegue l’operazione calcolandone il risultato
Execute:
Il risultato è trasferito dal registro di uscita della ALU al registro della RAM con l’indirizzo specificato nella istruzione.
Eseguita operazione di store da registro ALU a RAM
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 29
add RZ,RX,RY <==> add 800, 428, 884
Somma contenuto dei registri con indirizzo 428 e 884 e memorizza nel registro di indirizzo 800
Indicando con O1, O2 e OU gli operandi di ingresso e di uscita della ALU è richiesta l’esecuzione di almeno le seguenti
(micro)operazioni:
load IR, 2200 add PC, 1 load O1, 428 load O2, 884 add O1, O2 store 800, U