Azioni elaborative nella macchina di Von Neumann
Un’azione elaborativa, nel modello di Von Neumann, è un’azione che ha l’effetto di alterare lo stato di un insieme di dati, definito come la coppia (A,V), dove A è un insieme di attributi e V l’insieme dei valori associati
Un’azione elaborativa è quella di assegnare un valore ad uno o più attributi
Una elaborazione è, allora, una trasformazione dello stato dei dati coinvolti: lo stato dei dati viene alterato dopo ogni azione, pervenendo in un numero finito di passi dallo stato iniziale a quello finale
Si compie così l’algoritmo di calcolo, detto processo di elaborazione Il processore del modello di Von Neumann è la ‘macchina’ che esegue il processo di elaborazione
Il processo è descritto formalmente da un programma registrato nella memoria
La Macchina Astratta Generalizzata (MAG)
E’ un modello dal quale trarre come casi particolari il comportamento delle macchine reali
Il comportamento della MAG è quello risultante dalle caratteristiche dello Hw e Sw di base di un elaboratore e corrisponde a ciò che
‘vede’ un utente
Una MAG è costituita da:
• un insieme di registri di memoria, costituenti la Memoria
• un registro speciale detto prossima istruzione PC, che contiene un’informazione di tipo “puntatore ad un’istruzione” (il nome, indirizzo, di un registro)
• un processore (insieme registri, tra cui il PC, e la ALU)
La Macchina Astratta Generalizzata (MAG) Componenti
α PC
Processore
ALU
α β γ
Memoria IR
Dati ed Istruzioni della MAG
I tipi di informazioni trattati dalla MAG si suddividono in Dati: le informazioni da elaborare o elaborate
Istruzioni: le informazioni che indicano le azioni da compiere
… dati di tipo puntatore ...
puntatori a dati: assumono il nome (attributo, indirizzo) del dato puntatori ad istruzioni: assumono il nome (attributo, indirizzo) di un’istruzione, tipicamente detto etichetta
E’ 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)
Istruzioni e Programmi nella MAG
Le funzioni f consentono la costruzione di un’azione elaborativa che fa assegnare i valori U ai registri della macchina (memoria e PC).
Un’azione elaborativa si esprime mediante un’istruzione:
i = (f, P1, P2)
f è la funzione da calcolare (un singolo operatore elementare o un insieme di operatori legato alle altre componenti dell’istruzione) P1rappresenta i valori I (iniziali), un insieme di valori e/o di puntatori a registri. P1è un insieme di dati se oggetto dell’elaborazione sono i dati; P1contiene etichette (indirizzi) se oggetto dell’elaborazione sono le stesse istruzioni
P2è costituito da q-1 puntatori a registri di memoria associati ad altrettanti valori di U (finali); il q-esimo valore uq di U è destinati al registro PC.
P2può essere formato solo da uq
Un Programma è formato da una sequenza di istruzioni i
Modello operativo della MAG
La MAG in ogni istante è in un particolare stato, definito dall’insieme dei valori in tutti i suoi registri.
Le azioni espletate dalla MAG sono:
1) Prelievo dalla memoria dell’istruzione definita dal puntatore PC e suo trasferimento nel processore
2) prelievo delle informazioni P1, dalla memoria se identificate da puntatori (indirizzi) o direttamente dalla istruzione se costituite da valori
3) calcolo dei valori U = f (I)
4) memorizzazione dei valori calcolati nei registri P2
Le fasi operative della MAG - 1
f P1 P2 f P1 P2 α
PC
Processore
ALU
α β γ
Memoria 1
1) si accede al registro della Memoria ‘puntato’ dal PC e l’istruzione (f, P1, P2) viene copiata dalla memoria in un registro del processore (il registro IR)
Le fasi operative della MAG - 2
f P1 P2 α
PC
Processore
ALU
Memoria 1
2
2) viene costruito l’insieme I prelevando i valori puntati da P1e/o contenuti in P1 stesso
I
f P1 P2 I
α P1 γ
Le fasi operative della MAG - 3
f P1 P2 α
PC
Processore
I U = f (I) U
ALU
Memoria 1
2
3 3) si esegue il calcolo U= f (I), eseguito dall’ALU
f P1 P2 I
α P1 γ
Le fasi operative della MAG - 4
f P1 P2 α
PC
Processore
I U = f (I) U
1 ALU
2 4
3
4) q-i valori, dell’insieme U, calcolati somo memorizzati nei registri di memoria puntati da P2
f P1 P2 I
α P1
P2 U
Le fasi operative della MAG - 5
f P1 P2 f P1 P2 uq
PC
Processore
I U = f (I) U
ALU
I U α
P1 P2
Memoria
1
2 4
3 5
5) l’ultimo valore calcolato uqdi U è memorizzato in PI, così il processore potrà di nuovo iniziare il ciclo delle operazioni, prelevando l’istruzione posta nel registro di memoria uq
f’ P’2 P’1 uq
Le fasi operative della MAG - 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 P1e/o contenuti in P1stesso
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
MAG e sue fasi operative
f P1 P2 α
PC
Processore
I U = f (I) U
ALU
Memoria 1
2 4
3 5
f P1 P2 I
α P1
P2 U
Esempio: …..
c = b * 5
….
f = * P1 = (b, 5) P2 = (c, uq)
* (b, 5) (c) β
.. ……. ….
α
.. ……. ….
γ
4 b
? c
Processore β PC
.. ……. ….
I
U
…... …...
…….
Esempio: …..
c = b * 5
….
f = * P1 = (b, 5) P2 = (c, uq)
* (b, 5) (c) β
.. ……. ….
α
.. ……. ….
γ
4 b
? c
Memoria
β
* (b, 5) (c)
Processore PC
1
4 5
ALU 2
I
U
U=4*5
3 20
Esempio: …..
c = b * 5
….
f = * P1 = (b, 5) P2 = (c, uq)
* (b, 5) (c) β
.. ……. ….
α
.. ……. ….
γ
4 b
20 c
Memoria
β
* (b, 5) (c)
Processore PC
1
4 5
ALU 2
I
U
U=4*5
3 20 4
Esempio: …..
c = b * 5
….
f = * P1 = (b, 5) P2 = (c, uq)
* (b, 5) (c) β
.. ……. ….
α
.. ……. ….
γ
4 b
20 c
Memoria
γ
* (b, 5) (c)
Processore PC
ALU I
U
U= PC + 1
5
γ
Esecuzione delle istruzioni nella Macchina Reale
(leggi - decodifica - esegui)
1. Leggi l’istruzione corrente, puntata dal registro PC e copiala nel registro IR (Fetch)
4. ‘Costruisci’ gli operandi dell’istruzione (decode):
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
(Fetch) 2.
3.
Istruzioni 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
Codice Operativo Operando
Codice Operativo Operando1 Operando2
Codice Operativo Operando1 Operando2 Operando3
Bootstrap
Fetch
Decode
Execute