26
1 S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI PROGRAMMAZIONE, a.a. 2015/16 prof. Andrea Prevete IL MODELLO di VON NEUMANN

S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

Embed Size (px)

Citation preview

Page 1: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

1

S.U.N. – INGEGNERIA MECCANICA/AEROSPAZIALE

ELEMENTI DI PROGRAMMAZIONE, a.a. 2015/16

prof. Andrea Prevete

IL MODELLO

di

VON NEUMANN

Page 2: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

2

NOTE STORICHEL’architettura a programma memorizzato (program-stored) è a tutt’oggi il riferimento concettuale per il progetto e la realizzazione dei computer.

Le idee che ne sono a fondamento si sviluppano subito dopo la seconda guerra mondiale grazie a studiosi/progettisti come

- Eckert e Mauchley (ENIAC, Electronic Numerival Integrator e Computer – EDVAC, Electronic Discrete Variable Automatic Computer)

- Wilkes (EDSAC, Electronic Delay Storage Automatic Calculator)

- von Neumann e Goldstine (IAS, presso l’ Institute of Advanced Study di Princeton).

La suddetta architettura è fondata essenzialmente su di una struttura di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di uscita, un’unità di ingresso) e sulla dematerializzazione delle istruzioni, non cablate ma codificate in memoria come i dati su cui operano.

La lucida formalizzazione di questi concetti da parte di J. von Neumann ha fatto sì che ci si riferisca spesso all’architettura program-stored come architettura di von Neumann.

Page 3: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

3

Il modello di von Neumann

MEMORY

CONTROL UNIT

MAR MDR

IR

PROCESSING UNIT

ALU TEMP

PC

OUTPUT

Monitor

Printer

LED

Disk

INPUTKeyboard

Mouse

Scanner

Disk

Page 4: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

4

LA MEMORIA

Possiamo pensarla come un insieme ordinato,

un elenco di 2k x m bit

INDIRIZZI

• Interi positivi (k-bit) per identificare la

posizione dei contenuti

CONTENUTI

• Parole di m-bit memorizzate ad un certo

indirizzo

OPERAZIONI DI BASE:

LOAD

• legge un dato memorizzato in una

locazione di memoria

STORE

• conserva un dato in una locazione di

memoria

•••

0000000100100011010001010110

110111101111

00101101

10100010

Page 5: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

5

INTERFACCE PER LA MEMORIA

Come vengono gestiti i dati da e per la

memoria?

MAR: Memory Address Register

MDR: Memory Data Register

Per LOAD da una locazione (A):

1. Write l’indirizzo (A) nel MAR.

2. Send un segnale “read” alla memoria.

3. Read il dato dal MDR.

Per STORE un dato (X) in una locazione (A):

1. Write il dato (X) nel MDR.

2. Write l’indirizzo (A) nel MAR.

3. Send un segnale “write” alla memoria.

MEMORY

MAR MDR

Page 6: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

6

Unità di Processo

Unità operative

• ALU = Arithmetic and Logic Unit

• Puo’ avere molte sottounità.

Alcune special-purpose

(multiply, square root, …).

Registri TEMP

• Memorizzazione temporanea di dati

• Operandi e risultati delle unità

operative

Dimensione della Parola (Word Size)

• Il numero di bit normalmente

processato dalla ALU nel corso di

un’istruzione

• Corrisponde all’ampiezza dei registri

PROCESSING UNIT

ALU TEMP

Page 7: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

7

MODULI di Input and Output

Dispositivi per effettuare l’ingresso o l’uscita di dati dalla memoria

Ogni dispositivo ha la sua propria interfaccia,usualmente un set di registricome MAR e MDR per la memoria

Qualche dispositivo può essere considerato sia d’input che d’output

• disk, network

Un programma che gestisce l’accesso ad un dispositivo è usualmente detto un driver.

INPUT

Keyboard

Mouse

Scanner

Disk

OUTPUT

Monitor

Printer

LED

Disk

Page 8: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

8

Unità di Controllo

Dirige l’esecuzione di un programma, così come un

Direttore l’Orchestra!

L’ Instruction Register (IR) contiene l’istruzione corrente.

Il Program Counter (PC) contiene l’indirizzo della

prossima istruzione da eseguire.

L’Unità di Controllo:

• Legge un’istruzione dalla memoria all’indirizzo contenuto da IR

• Interpreta l’istruzione generando la sequenza di segnali atta a

pilotare gli altri componenti

(un’ istruzione può richiedere vari cicli macchina per terminare!)

CONTROL UNIT

IRPC

Page 9: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

9

Ciclo di Esecuzione di un’Istruzione

Decodifica l’istruzione

Valuta gli indirizzi

Carica gli operandi dalla memoria

Esegui l’operazione

Memorizza il risultato

Carica l’istruzione dalla memoria

Page 10: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

10

Le Istruzioni

Un’ istruzione è l’atomo della struttura operativa di un computer.

Essa è specificata da:

• Un opcode: l’operazione che deve essere eseguita

• Uno o più operandi : dati/indirizzi che devono essere utilizzati per

eseguire l’operazione

Un’ istruzione è codificata come una sequenza di bit.

(Esattamente come per i dati!)

• Spesso, ma non sempre, le istruzioni hanno una lunghezza

prefissata, per esempio 16 o 32 bit.

• L’Unità di Controllo interpreta, quindi genera sequenze di segnali

di controllo per implementare le varie operazioni.

• Un’operazione è eseguita completamente o per niente.

L’insieme delle istruzioni di un computer ed il loro formato

costituiscono il cosiddetto Instruction Set Architecture (ISA).

Page 11: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

11

ESEMPIO: ADD

In un ipotetico computer ad 8 registri (R0 – R7) le

istruzioni a 16 bit potrebbero avere il seguente formato:

“Addiziona il contenuto di R2 al contenuto of R6,

e immagazzina il risultato in R6.”

Page 12: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

12

ESEMPIO: LDR

Vediamo un altro esempio:

“Addiziona il valore 6 al contenuto di R3 per formare

un indirizzo di memoria. Quindi carica il contenuto

di quell’indirizzo di memoria in R2.”

Page 13: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

13

FETCH

Carica la prossima istruzione dalla memoria

(indirizzo memorizzato nel PC)

nel Registro Istruzioni (IR).

• Copia il contenuto del PC in MAR.

• Invia un segnale “read” alla memoria.

• Copia il contenuto di MDR in IR.

Quindi incrementa PC, così da farlo puntare

all’istruzione che segue.

• PC diventa PC+1.

EA

OP

EX

S

F

D

Page 14: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

14

DECODE

Identifica l’ opcode.• Nel nostro esempio i primi 4 bit

dell’istruzione.

• Un’ opportuna macchina combinatoria, un decoder 4-to-16, attiva la linea di controllo corrispondente all’opcode identificato.

In base all’opcode identificato, restano fissati gli operandi.

• Nel nostro esempio:

per LDR, gli ultimi 6 bit definiscono l’offset

per ADD, gli ultimi 3 bit definiscono il secondo operando

EA

OP

EX

S

F

D

Page 15: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

15

EVALUATE ADDRESS

Per le istruzioni che richiedono

accesso in memoria,

calcola l’indirizzo usato per

l’accesso.

Esempi:

• Addizionare l’offset al registro base

(come in LDR)

• Addizionare l’offset al PC

EA

OP

EX

S

F

D

Page 16: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

16

FETCH OPERANDS

Vengono prelevati gli operandi

sorgente necessari all’esecuzione

dell’operazione.

Esempi:

• Carica i dati dalla memoria (LDR)

• Leggi i dati dal registro file (ADD)

EA

OP

EX

S

F

D

Page 17: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

17

EXECUTE

Viene eseguita l’operazione,

usando gli operandi sorgente.

Esempi:

• Vengono inviati gli operandi all’ ALU e

attivato il segnale ADD

• NOP (cioè, per istruzioni come load e

store)

EA

OP

EX

S

F

D

Page 18: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

18

STORE RESULT

I risultati vengono memorizzati a destinazione.

(un registro o la memoria)

Esempi:

• Il risultato di un ADD è memorizzato nel registro di

destinazione

• Il risultato di un MEMORY LOAD è memorizzato nel

registro destinazione

• Per istruzioni di tipo STORE, il dato è

immagazzinato in memoria

L’indirizzo è scritto in MAR, i dati in MDR

Quindi è attivato un segnale WRITE per la

memoria

EA

OP

EX

S

F

D

Page 19: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

19

CAMBIARE LA SEQUENZA DELLE ISTRUZIONI

Nella fase FETCH,

il Program Counter viene incrementato di 1.

Cosa fare nel caso in cui non si voglia far eseguire tutte

le istruzioni in sequenza?

Necessitiamo di istruzioni speciali che cambiano il

contenuto del PC.

Queste sono chiamate istruzioni di controllo.

• I jumps sono incondizionati – cambiano comunque ed in modo

predeterminato il PC

• I branches sono condizionati – cambiano il PC solo se una certa

condizione è verificata (ad esempio, il risultato di un ADD è 0)

Page 20: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

20

Esempio: Istruzione JMP

Memorizza nel PC il valore contenuto in un registro. Questo diventa

l’indirizzo della prossima istruzione da prelevare (FETCH).

“Carica il contenuto del registro R3 nel PC.”

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0 0JMP Base

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0

Page 21: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

21

Esempio: Istruzioni BR/BRn/BRz/BRp

Memorizza in PC il suo valore attuale sommato a PCoffeset9, se

l’esito dell’ultima operazione svolta è stato negativo, nullo o positivo

– così come indicato dai bit di selezione n/z/p . Questo diventa

l’indirizzo della prossima istruzione da prelevare (FETCH).

“Carica PC con il nuovo valore PC+75, se l’ultima

istruzione eseguita ha dato in esito un risultato nullo.”

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

n z pBR PCoffset9

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1

Page 22: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

22

RIASSUMENDO

Tre tipi di istruzioni di base:

• Istruzioni operative (ADD, AND, …)

• Istruzioni per spostare dati (LD, ST, …)

• Istruzioni di controllo (JMP, BRnz, …)

Sei fasi essenziali per l’esecuzione di un’istruzione:

F D EA OP EX S

• Non tutte le istruzioni hanno bisogno delle sei fasi!

• Le fasi possono richiedere un numero variabile di cicli macchina

Page 23: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

23

DIAGRAMMA A STATI DELL’ UNITÀ DI CONTROLLO

L’Unità di Controllo è una macchina a stati. Di seguito ne

riportiamo un diagramma semplificato:

Page 24: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

24

PAUSARIUS

Tutte le moderne macchine digitali sono macchine sincrone.

Ciò significa che ogni singolo componente può modificare il

proprio stato solo in corrispondenza di istanti di tempo

scanditi da un segnale regolare detto clock (generalmente

generato da un oscillatore ad alta frequenza facente uso di

cristalli).

Come il capovogatore (pausarius) di una nave romana, il clock

sincronizza e regola il compartamento coordinato dei vari

componenti della macchina.F

ron

te d

i sa

lita

Un periodo di clocktempo

Fro

nte

di d

isce

sa

Page 25: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

DAI MEGA AI GIGA

25

Page 26: S.U.N. INGEGNERIA MECCANICA/AEROSPAZIALE ELEMENTI DI ... · di base data da cinque componenti (un’unità logico-aritmetica, una memoria, un’unità di controllo, un’unità di

26

THE END