architettura von neumann a.marchetti spaccamela. architettura cpu

16
Architettura von Neumann A.Marchetti Spaccamela

Upload: piero-bertoni

Post on 02-May-2015

255 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Architettura von Neumann

A.Marchetti Spaccamela

Page 2: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Architettura CPU

Page 3: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Sottosistema memoria

Page 4: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Prelievo dalla memoria di un’istruzione

Passi esguiti sotto il comando dell'Unità di Controllo:1. Copiare il contenuto del PC nel MAR (in MAR va

l'indirizzo della prossima istruzione da eseguire)2. Impostare la linea di controllo per comunicare alla

memoria la richiesta di lettura3. Aspettare il reperimento dell'istruzione da parte

della memoria4. Copiare il contenuto di MDR nel registro istruz. IR

il passo 3 è necessario: non esiste un sistema di memoria che fornisce i dati richiesti in tempo zero.

Page 5: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

• HALT (arresto del programma) • LOAD X IND (Leggi la cella indir. IND e trasferisci il dato reg. X) • LOADC X VALORE (Inizializza il reg X con VALORE, specificato)• STORE X IND (Scrivi il valore reg X nella cella di indirizzo IND) • ADD X,Y,Z (Esegui X=Y+Z, dove X, Y e Z sono registri)• SUB X,Y,Z (Esegui X=Y-Z, dove X, Y e Z sono registri)• MULT X,Y,Z (Esegui X=Y*Z, dove X, Y e Z sono registri)• DIVIDE X,Y,Z (Esegui $X=Y/Z$, dove X, Y e Z sono registri)• SQRT X,Y Esegui $X=\sqrt{Y}$, dove X e Y sono registri)• READ IND (Leggi un valore in ingresso e ponilo cella indir. IND)• WRITE (Scrivi in uscita il valore della cella di memoria IND)• JUMP SALTO (Salta all’istruzione memorizzata in SALTO)• JUMPIFZERO X, SALTO (Salta a SALTO se reg. X è zero) • JUMPIFNEG X,SALTO (Salta a SALTO se il registro è negativo)

Page 6: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Programma somma tre numeriREAD 1000 READ 1001READ 1002LOAD R1 1000LOAD R2 1001LOAD R3 1002ADD R1,R2,R4ADD R4,R3,R4STORE R4 1003WRITE 1003HALT

Page 7: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

PROGRAMMA SOLUZIONE EQUAZIONE II GRADO

Si assume che i valori a,b,c siano memorizzati nelle celle 100,101,102 e che ilprogramma sia memorizzato a partire dalla cella 1000)

LOAD R1 100 LOAD R2 101 LOAD R3 102 LOADC R4 4 (pone la costante 4 nel registro R4MULT R2 R2 R2MULT R4 R3 R4MULT R4 R1 R4 (ora R4 contiene 4ac)SUB R3 R2 R4 (ora R3 contiene b2 − 4ac)JUMPIFNEG R3 1021 (se b2 − 4ac `e negativo non esistono

soluzioni reali e il programma termina senza stampare valori, l’istruzione 1021 è l’istruzione HALT)

Page 8: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Si assume che i valori a,b,c siano memorizzati nelle celle 100,101,102 e che il programma sia memorizzato a partire dalla cella 1000)

… continua: si calcolano le soluzioni realiSQRT R3 R3LOADC R4 2MULT R1 R1 R4 (pone in R1 il valore 2a)LOAD R2 101SUB R4 R2 R3 DIV R4 R4 R1 (pone in R4 la soluzione b−b2−4ac) 2a√b2 − 4acSTORE R4 103 (memorizza in 103 la prima soluzione trovata)ADD R4 R2 R3 (questa istruzione pone R4 pari a b + √DIV R4 R4 R1 (pone in R3 la soluzione b+b2+4ac) 2a√b2 + 4acSTORE R4 104 )memorizza in 104 la seconda soluzione trovata)WRITE 103 (questa istruzione e la successiva stampano i risultatiWRITE 104 HALT

Page 9: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Programma Python equazione II grado

import math a=1 b=3 c=1 d=b*b-4*a*c if d>0:

s1=(-b+math.sqrt(d))/(2*a) s2=(-b-math.sqrt(d))/(2*a) print s1, s2

else: print ’soluzioni complesse’

Page 10: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Legge di Moore

Il numero di transistor per mm raddoppia ogni 24 mesi

Page 11: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

P6Pentium ® proc

486386

28680868085

8080

80084004

0.1

1

10

100

1000

10000

1970 1980 1990 2000 2010Year

Fre

qu

ency

(M

hz)

Courtesy, Intel

FrequenzaLa frequenza di clock raddoppia ogni due anni circaOltre 3GhZ ci sono difficoltà da superare: energia e problemi elettrici fondamentali

La frequenza di clock raddoppia ogni due anni circaOltre 3GhZ ci sono difficoltà da superare: energia e problemi elettrici fondamentali

Page 12: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Il calore sviluppato e’ molto alto

40048008

80808085

8086286

386486

PentiumP1

P2

P4

Pentium Tejascancelled!

P3

Hot-plate

NuclearReactor

STOP !!!

Year

Power density (W/cm2)

4Ghz sembra il limite tecnologico non superabile

Page 13: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Mantenere la legge di Moore

• Stiamo ragiungendo i limiti fisici in termini di velocità

• Usare le possibilità di avere circuiti più densi in modo diverso

Molte CPU su un unico chip !

Page 14: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

Cosa è questo? 1979 - David May’s B0042 board - 42 Transputers

Page 15: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

L’invasione multicore

• Intel’s Core 2, Itanium, Xeon: 2, 4 cores• AMD’s Opteron, Athlon 64 X2, Phenom: 2, 4 cores • IBM’s POWER7: 8 cores• IBM-Toshiba-Sony Cell processor: 8 cores (PSX3)• Sun’s Niagara UltraSPARC: 8 cores• Microsoft’s Xenon: 3 cores (Xbox 360)• Tilera’s TILE64: 64-core• Others (network processors, DSP, GPU,…)

Page 16: Architettura von Neumann A.Marchetti Spaccamela. Architettura CPU

P2012 SoC: 64 core su un chip

P2012 Fabric

L2 (memoria)L2 (memoria)

L3 (memoria)L3 (memoria)

Cluster 0Cluster 0 Cluster 1Cluster 1

Cluster 2Cluster 2 Cluster 3Cluster 3

ARM Host

FCFC

Progetto architettura ST Microelectronics 2009-2012

Homogeneous SoC – 64+4 FP processors no HW-accel