• Non ci sono risultati.

Esecuzione delle istruzioni nel Processore

N/A
N/A
Protected

Academic year: 2021

Condividi "Esecuzione delle istruzioni nel Processore "

Copied!
15
0
0

Testo completo

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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)

(7)

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

…...

U

uq f P1 P2

5

a

2

4

(8)

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

(9)

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

(10)

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

(11)

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.

(12)

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

(13)

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

(14)

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

(15)

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

Riferimenti

Documenti correlati

OGGETTO: Istituzione del codice tributo per l’utilizzo in compensazione, tramite modello F24, del credito d’imposta per le spese di formazione del personale dipendente nel

L’ENPAV ha elaborato una simulazione relativa all’entità del trattamento pensionistico di due casi reali di veterinari nati nel 1972, con analoga capacità reddituale e colloca-

Per ulteriori informazioni e avvertenze, in particolare sulla sicurezza dell'impianto e sul suo utilizzo, si vedano le istruzioni di montaggio e per l'uso di frangisole e

Dopo aver selezionato “F4.Y”, premete il pulsante [+/YES] per abilitare il sub-modo delle funzioni del modo Split e usate poi i pulsanti [TEMPO/FUNCTION t, s] per selezionare

Esiste un programma chiamato interprete che è in grado di prendere in ingresso le istruzioni scritte in linguaggio ad alto livello (una alla volta) e fornire in uscita le

• Il pipelining incrementa il throughput del processore (numero di istruzioni completate nell’unità di tempo), ma non riduce il tempo di esecuzione (latenza) della singola

Prova a completare il percorso ricordando che ogni numero è maggiore di uno rispetto al suo precedente:. Ecco formato il numero cento

Il sistema operativo, quando c’è bisogno di eseguire un nuovo servizio (e quindi di mandare in esecuzione un nuovo processo) decide di mandarlo in esecuzione sul processore che