• 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 Il Codice Operativo indica l’operazione che deve essere eseguita 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 (Prelievo)

• Leggi l’istruzione corrente, nella locazione di memoria 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à del processore

Descrive in modo semplificato il comportamento di un processore per l’esecuzione di un’istruzione

Un modello semplificato 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) – contiene 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

CPU

(4)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 7

Istruzioni nel Modello semplificato

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 realizzazione di un’azione elaborativa che fa calcolare ed assegnare i valori U ai registri della macchina (memoria e PC).

Istruzioni nel MGO

P1 rappresenta k valori iniziali I

un insieme di valori di operandi immediati 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 P 1 se immediati P1

2a

2a) e/o prelevando i valori puntati da P1

f

interpretato il codice operativo 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 nel registro IR 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

CPU 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

CPU 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)

CPU 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)

CPU 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 in linguaggio Assembler (linguaggio di programmazione simbolico più vicino al linguaggio macchina) 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 memoria e scritta nell’IR mentre il PC viene incrementato (fase di Fetch);

2. viene letto 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 (fase di Decode);

3. la ALU 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(fase di Execute);

4. il risultato calcolato dall’ALU viene scritto 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 23

I nomi dei registri RZ,RX,RY sono sostituiti dai relativi indirizzi add RZ,RX,RY <==> add 800, 428, 884

Somma del contenuto dei registri con indirizzo 428 e 884 e memorizzazione 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

add RZ,RX,RY <==> add 800, 428, 884

Somma del contenuto dei registri con indirizzo 428 e 884 e memorizzazione nel registro di indirizzo 800

…. ipotizzando una struttura della ALU con due Operandi in ingresso ed un

(13)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio Elementi di InformaticaCopyright © 2006 Pearson Addison-Wesley. All rights 25

reserved.

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

load IR, 2200 add PC, 1

Decode:

Sono identificati gli (indirizzi degli) operandi e decodificata l’operazione che la ALU dovrà effettuare

(14)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio Elementi di InformaticaCopyright © 2006 Pearson Addison-Wesley. All rights 27

reserved.

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 load O1, 428

load O2, 884

Execute:

La ALU esegue l’operazione calcolandone il risultato

add O1, O2

(15)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio Elementi di InformaticaCopyright © 2006 Pearson Addison-Wesley. All rights 29

reserved.

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 uscita ALU a RAM store 800, U

Riferimenti

Documenti correlati

Supponiamo di essere arrivati a un certo passo della costruzione e di saper costruire tutti i punti del piano che hanno coordinate appartenenti a un certo campo di numeri F..

Finalmente arrivano informazioni sul complice della Signora Violet, l’abilissima ladra arrestata da Numerik.. Gli indizi sono contenuti in una busta chiusa: l’ispettore Numerik la

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

1) violazione e falsa applicazione dei principi di imparzialità, trasparenza e par condicio competitorum; violazione del principio di concorrenza; eccesso di potere per

3 Sulla normativa in questione si sono succeduti vari orientamenti a partire da quello fornito dal Dipartimento della funzione pubblica con la circolare n. 1/2013.,

L’accessibilità non è un optional o, peggio ancora, una gentile concessione da “elargire” alle persone con disabilità, ma un diritto da garantire in partenza a tutti i

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