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 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 dato su cui (direttamente) operare
o un indirizzo dove è memorizzato il 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 da eseguire
• ‘Costruisci’ gli operandi dell’istruzione
• se l’operando è una costante copia il valore in un registro della CPU
• se l’operando è un indirizzo accedi alla memoria e copia il valore in un registro della CPU
• Fase di Execute (Esecuzione)
• Esegui l’istruzione
• 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
Un Modello Generale di Operatività del processore
Modello descrivente in modo generalizzato il comportamento di un processore per l’esecuzione di un’istruzione
Modello 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
Il comportamento è quello risultante dalle caratteristiche dello Hw e Sw di base di un elaboratore
MGO - Componenti
a
PC
Unità di Controllo
ALU
a
b g Memoria
IR
w
…...
…...
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 7
Istruzioni nello MGO
Un’istruzione è modellata mediante : i = (f, P1, P2) f : funzione (azione elaborativa) da eseguire
un singolo operatore elementare o un insieme di operatori 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 nello 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
Modello operativo 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 2) prelievo delle informazioni P1 dalla memoria se identificate da
indirizzi, o direttamente dalla istruzione se costituite dai valori su cui operare
3) calcolo dei valori U = f (I)
4) memorizzazione dei valori calcolati nei registri P2 5) trasferimento in PC dell’ultimo valore di U 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
P1
I
2) viene costruito l’insieme degli operandi I prelevando i valori puntati da P1
[e/o contenuti in P1 stesso]
2
…...
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’ P’1 P’2
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 Dato
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
(RZ=RX+RY : somma i valori di RX e RY e metti il risultato in 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 dal banco dei 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 di 428 e 884 e memorizza in 800
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio Elementi di InformaticaCopyright © 2006 Pearson Addison-Wesley. All rights 25
reserved.
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio Elementi di InformaticaCopyright © 2006 Pearson Addison-Wesley. All rights 27
reserved.