ARCHITETTURA elementi di base
• Contenuto della lezione
–
–
–
–
–
Richiami sulla struttura del calcolatore (CPU)
Logica cablata/microprogrammazione
Repertorio istruzioni (RISC/CISC)
Prestazioni
Classificazione architetture
Calcolatori Elettronici (G.B.)
Architettura 1
Struttura (anni 70)
MINI
(HP 2100)
MAINFRAME
(IBM 370)
MEMORIA
MEMORIA
CPU
CPU
I/O bus
modulo
I/O
modulo
I/O
Calcolatori Elettronici (G.B.)
controllore
di
canale
bus di I/O
modulo
I/O
modulo
I/O
Architettura 2
Struttura PDP-11 (anni 70-80)
POWER
SUPPLY
MODULO
MICROCOMPUTER
PDP-11
BACKPLANE
MODULO INTERFACCIA
LINEA SERIALE
( CONSOLE )
La console è su linea
seriale RS-232
Calcolatori Elettronici (G.B.)
MODULO DI MEMORIA
LETTURA/SCRITTURA
MODULO MEMORIA
SOLA LETTURA
REAL TIME CLOCK
UNIBUS
MODULI OPZIONALI
SUPPORTI MAGNETICI
ROTANTI
STAMPANTE AD
ALTA VELOCITA'
CONVERTITORE A/D
CONVERTITORE D/A
INTERFACCIA PARALLELA
INTERFACCIA SERIALE
INTERFACCIA DMA
ACCESSORI
Architettura 3
Struttura PC (anni 80)
scheda madre
CPU
MEMORIA
•
•
•
•
PC bus
memoria
Calcolatori Elettronici (G.B.)
E’ sparita la console RS232
Il Video e la tastiera sono
collegati direttamente alla
scheda madre.
Per il video c’è una RAM
apposita
Memoria di espansione e
periferici sono su schede
collegate sul bus
I/O
Architettura 4
Anni 90
AGP: Acelerated Graphic Port (bus parallelo basato su PCI)
Calcolatori Elettronici (G.B.)
Architettura 5
Struttura PC (come da schema precedente)
Calcolatori Elettronici (G.B.)
Architettura 6
Struttura PC corrente
Calcolatori Elettronici (G.B.)
Architettura 9
Schema di riferimento
•
Per Il momento lo schema di riferimento sarà quello di figura
– Sistema di bus paralleli
•
Corrisponde allo schema dei PC anni 80
•
Tuttora in largo uso nei sistemi di controllo
Calcolatori Elettronici (G.B.)
Architettura 12
Transazioni sul bus
Calcolatori Elettronici (G.B.)
Architettura 13
Architettura di Von Neuman
•
memoria indifferenziata per dati o istruzioni, solo
l'interpretazione da parte di CPU stabilisce se una data
configurazione di bit è da riguardarsi come un dato o come
un'istruzione
Calcolatori Elettronici (G.B.)
Architettura 14
Architettura Harvard
•
•
Due memorie distinte: la memoria istruzioni e la memoria dati.
Il comando di lettura della memoria istruzioni è superfluo, in
quanto si può immaginare che questa memoria sia sempre e
soltanto letta
Calcolatori Elettronici (G.B.)
Architettura 15
Schema aggregato della CPU
Calcolatori Elettronici (G.B.)
Architettura 16
Componenti essenziali
Calcolatori Elettronici (G.B.)
Architettura 18
Organizzazione a singolo bus interno
Calcolatori Elettronici (G.B.)
Architettura 21
Data Path - 1 bus
Esecuzione in più passi.
Esempio: ADD R3,R1,R2
Richiede Almeno tre periodi di clock:
Calcolatori Elettronici (G.B.)
•
R1_out; TEMPI_in
•
R2_out; TEMPI_out; ADD;
TEMPO_in
•
TEMPO_out; R3_in
Architettura 27
Data Path - 3 bus
L’istruzione ADD R3,R2,R1
viene eseguita in un solo
clock:
•
Calcolatori Elettronici (G.B.)
R1_out1; R2_out2; ADD;
R3_in
Architettura 28
Logica cablata
Calcolatori Elettronici (G.B.)
Architettura 29
Logica cablata
• Progetto
– Come sintesi di rete sequenziale
• ingressi: IR, stato di UO (e di eventuali altre parti esterne, p.e. memoria)
• uscite: comandi
– Uso di ROM. La rete combinatoria ha come
• ingressi (indirizzi alla ROM): IR, stato di UO, stato di UC
• uscite: comandi, ingressi di eccitazione dei FF di stato
– Progettazione con CAD per VLSI
– Per composizione di parti
• Misura della complessità di UC:
N_stati x N_ingressi x N_uscite
Calcolatori Elettronici (G.B.)
Architettura 30
UC microprogrammata
Calcolatori Elettronici (G.B.)
Architettura 31
UC microprogrammata
• Tecnica affermatasi negli anni 70
• UC è una sorta di calcolatore nel calcolatore
• La memoria di controllo contiene le microistruzioni:
• mPC: contatore di microprogramma. Contiene
l’indirizzo della prossima microistruzione
– All’inizio della fase di fetch mPC contiene l’indirizzo (I0) del
tratto di microprogramma corrispondente al fetch
– Alla fine della fase di fetch mPC viene aggiornato con il
contenuto (o una opportuna decodifica) di IR in modo da
puntare alla microroutine che effettua le azioni richieste dalla
particolare istruzione
– Al termine, mPC viene di nuovo caricato con (mI0)
Calcolatori Elettronici (G.B.)
Architettura 32
Cablata o microprogrammata?
• Fino a fine anni ‘60: logica cablata (PDP8, HP 2116)
• Anni ‘70: microprogrammazione (VAX, Z80, 8086, 68000)
– Repertorio di istruzioni molto esteso e variato: CISC
– Il VAX 11/789 (Digital) e il 370/168 (IBM) avevano oltre
400.000 bit di memoria di controllo
• Dagli anni ‘80 si è tornati alla logica cablata;
– Affermazione delle macchine RISC
• Istruttivo è esaminare l’evoluzione dell’architettura Intel: da
CISC a (praticamente) RISC
Calcolatori Elettronici (G.B.)
Architettura 34
Ragioni per le CISC
• Un repertorio di istruzioni esteso è preferibile perché:
– Istruzioni potenti semplificano la programmazione
– Riduce il gap tra linguaggio di macchina e linguaggio di alto
livello
– Software crisis
• L’uso efficiente della memoria (all’epoca era costosa)
era la preoccupazione principale:
– meglio avere codici compatti
• Essendo (allora) la memoria di controllo molto più
veloce della memoria centrale, portare funzionalità
nella prima avrebbe migliorato le prestazioni della
macchina
Calcolatori Elettronici (G.B.)
Architettura 35
...Tuttavia
• Memorie RAM: molto più veloci delle precedenti a
nuclei
• Cache: riducono ulteriormente i tempi di esecuzione
• Comportamento dei programmi:
– l'80% delle istruzioni eseguite corrispondeva al solo 20% del
repertorio.
 conviene investire nella riduzione dei tempi di esecuzione di
quel 20%, anziché aggiungere raffinate istruzioni, quasi mai
usate, ma responsabili dell'allungamento del tempo di ciclo
di macchina
 conviene costruire processori molto veloci, necessariamente
con repertori semplici, e contare sull’ottimizzazione del
compilatore
Calcolatori Elettronici (G.B.)
Architettura 36
Criteri di progetto per le RISC
•
Le istruzioni devono essere semplici
– Se l'introduzione di una operazione di macchina fa crescere
del 10% il periodo di clock, allora essa deve produrre una
riduzione di almeno un 10% del numero totale di cicli
eseguiti.
• Con memorie attuali le istruzioni di macchina
possono essere eseguite alla stessa o maggior
velocità delle microistruzioni
– non c'è vantaggio a spostare le funzionalità a livello di
microcodice; ciò ha solo l'effetto di rendere più difficoltose
modifiche e cambiamenti
– molto meglio modificare una libreria di sistema che
modificare una memoria di controllo.
Calcolatori Elettronici (G.B.)
Architettura 37
Criteri di progetto per le RISC
• Tutte le istruzioni occupano lo stesso spazio di
memoria (una parola)
• Ristretto numero di formati
– l'interpretazione del codice avviene attraverso un semplice
decodificatore (una rete AND-OR)
– la codificate ``ordinata'' consente accorgimenti per
velocizzare l'esecuzione (pipeline), difficilmente applicabili a
repertori di istruzioni complesse
• La semplificazione del repertorio tende a far
aumentare la dimensione del codice
– non è un problema, vista la tendenza alla riduzione dei costi
e all'aumento della densità delle memorie
– dal punto di vista della velocità i guadagni che si ottengono
nel semplificare le istruzioni sono superiori all'effetto
negativo del maggior numero di istruzioni per programma.
Calcolatori Elettronici (G.B.)
Architettura 38
Criteri di progetto per le RISC
• Compilatori ottimizzati.
– in grado di produrre sequenze ottimizzate di semplici
operazioni di macchina, indipendentemente dalla
complessità del linguaggio
– Il compilatore sbroglia in modo automatico e efficiente tutte
le complicazioni che possono sorgere nel tradurre da
linguaggio di alto livello a linguaggio di basso livello
– Il compilatore è motivo di semplificazione del repertorio di
istruzioni anziché di complicazione
Calcolatori Elettronici (G.B.)
Architettura 39
Criteri di progetto per le RISC
• Conclusioni
•
•
•
L'architettura dovrebbe prevedere solo operazioni tra registri (e
non tra registri e memoria o tra memoria e memoria) e semplici
operazioni di lettura/scrittura in memoria, con ridotte modalità di
indirizzamento
Il compilatore deve essere costruito in modo da fare il miglior
uso dei registri, tenendo, per quanto possibile, le variabili nei
registri stessi, riducendo al minimo il traffico con la memoria
Per il precedente motivo la CPU dovrebbe presentare un
consistente numero di registri
Calcolatori Elettronici (G.B.)
Architettura 40
Impatto sull’architettura X86
• L’8086 è un tipico rappresentante dell’architettura
CISC. I modelli successivi si avvicinano sempre più
ai RISC
–
–
–
–
Pipeline: una (vera) pipeline appare con il 486
Cache: con il 486
Predizione dei salti con il Pentium
Dal Pentium Pro:
• Esecuzione fuori ordine (speculativa)
• Superscalarità
• Register renaming
Calcolatori Elettronici (G.B.)
Architettura 41
Prestazioni (della CPU)
Si consideri un generico programma
– N: numero di cicli di clock richiesti per la sua esecuzione
– f: frequenza del clock
– t: tempo di CPU richiesto per l'esecuzione
t = N / f = N*T
– I: numero totale di istruzioni di macchina eseguite per
portare a termine la computazione
– CPI: numero medio di clock per istruzione di macchina
CPI=N / I
Calcolatori Elettronici (G.B.)
Architettura 42
Dipendenza
Repertorio
Tecnologia
t= I * CPI * T
Compilatore
Calcolatori Elettronici (G.B.)
Architettura
Architettura 43
Prestazioni
t= I * CPI/f = I* CPI * T
• I dipende dal repertorio di istruzioni e dal grado di
ottimizzazione del compilatore.
– Compilatori diversi possono dare luogo a I diversi.
– Uno stesso compilatore, che genera codice per due
macchine diverse, dà I diversi.
– Un repertorio CISC favorisce il miglioramento delle
prestazioni (riduce I).
Calcolatori Elettronici (G.B.)
Architettura 44
Prestazioni
t= I * CPI/f = I* CPI * T
• f è legata alla tecnologia e all'organizzazione
architetturale della CPU
– Oggi f >2 GHz è la norma nei PC
– Istruzioni complesse richiedono di norma frequenze di più
basse
– Istruzioni semplici (RISC) permettono di diminuire i ritardi di
propagazione nella logica di controllo e, quindi, di diminuire
l'ampiezza del periodo di clock.
Calcolatori Elettronici (G.B.)
Architettura 45
Prestazioni
t= I * CPI/f = I* CPI * T
• CPI dipende dall'architettura e dal repertorio delle
istruzioni
– Istruzioni semplici richiedono un minor numero di cicli.
• In un macchina convenzionale CPI >= 1
– Attraverso tecniche come la pipeline è possibile portare CPI
ad un valore molto vicino ad 1.
– L'aggiunta di più unità di esecuzione in parallelo (macchine
superscalari) permette di rendere CPI minore di 1.
Calcolatori Elettronici (G.B.)
Architettura 46
Indici di prestazione
•
MIPS (Milioni di istruzioni al secondo)
MIPS = I / (t*106)
E’ un indice che ha poco significato
•
MFLOPS (Milioni di istruzioni in virgola mobile al secondo)
MFLOPS = I_vm / (t*106)
•
Ci sono indici migliori, ottenuti con programmi campione
(benchmark)
– I benchmark posso essere di diversa natura e complessità e mirare
a raccogliere indici differenziati delle prestazioni
– In particolare ci sono quelli forniti da SPEC (Standard Performance
Evaluation Corporation) : SpecCPU 2006, SpecWeb 2009, …..
– E molti altri free: Whetstone, Dhrystone, …
Calcolatori Elettronici (G.B.)
Architettura 47
Repertorio stile RISC
• Il PowerPC
ADD
ADD.
ADDO
ADDO.
RD,RA,RB
RD,RA,RB
RD,RA,RB
RD,RA,RB
(OE=0,
(OE=0,
(OE=1,
(OE=1,
Rc=0)
Rc=1)
Rc=0)
Rc=1)
Tipicamente 32 reg
da 32 bit
Calcolatori Elettronici (G.B.)
Architettura 48
Formato x86 (a 32 bit)
Esempio
CLI
PUSH EAX
PUSH Var[EBX]
MOV EAX, ES:V[EBX+ESI]
1 solo byte
1 solo byte
fino a 6 byte
6 byte (probabilmente)
EA= scost(V)+EBX+ESI
Indir.Fisico= ES:EA
Calcolatori Elettronici (G.B.)
Architettura 49
Modello di programmazione (386)
Calcolatori Elettronici (G.B.)
Architettura 50
Classificazione architetture
• In base al modello di esecuzione, ovvero al modo in
cui la CPU accede e manipola gli oggetti
dell'elaborazione
– determina il numero di operandi esplicitamente o
implicitamente rappresentati nell'istruzione
•
•
•
•
Modello a stack
Modello registro-registro
Modello registri-memoria
Modello memoria-memoria
Calcolatori Elettronici (G.B.)
Architettura 51
Confronto
In riferimento all’istruzione di alto livello a=b+c
STACK
REGISTRO-REGISTRO MEMORIAREGISTRO (*)
MEMORIAMEMORIA
ADD A,B,C
PUSH
B
LOAD
R1, B
LOAD
B
PUSH
C
LOAD
R2,C
ADD
C
ADD
R3,R1,R2
STORE
A
STORE
A, R3
ADD
POP
A
(somma)
0 indirizzi
Load/Store
1 indirizzo
3 indirizzi
Riferiti alla ADD
(*) Assume un registro accumulatore
Calcolatori Elettronici (G.B.)
Architettura 52
Uno sguardo
alla
Evoluzione
Calcolatori Elettronici (G.B.)
Architettura 53
Il primo computer della storia
• ENIAC (Electronic Numerical Integrator And Calculator)
–
–
–
–
–
Sviluppato presso l’Università della Pennsylvania
Finanziato dal Ministero della Difesa USA
Divenne operativo durante la II guerra mondiale
Costruito tra il 1943 e il 1946, reso pubblico nel 1946
Oltre 120 metri cubi di volume, su una superficie di 180 mq,
pesava 30 tonnellate. Consumava poco meno di 180kW
– Oltre 18.000 tubi a vuoto (valvole) collegati da 500.000
contatti saldati a mano.
– 20 registri di 10 cifre; ogni registro era lungo oltre mezzo
metro.
•
I progettisti erano J.P. Eckert e J. Mauchly
Calcolatori Elettronici (G.B.)
Architettura 54
Calcolatori Elettronici (G.B.)
Architettura 55
Entra in scena l’IBM
• Inizia a costruire nel 1950
• 1951: mod. 701 di cui vengono costruite 19 unità
• 1964: annunciato il sistema S/360
– A transistori
– 5 M$ investiti nel progetto
– Concetto di famiglia (architettura)
Calcolatori Elettronici (G.B.)
Architettura 56
IBM 370 Mod 145
Calcolatori Elettronici (G.B.)
(anni ’70)
Architettura 57
4004: il primo microprocessore
(1971)
Microprocessore a 4 bit
•
•
•
•
Calcolatori Elettronici (G.B.)
2.300
108
10
16
Transistori
KHz (f di introduz)
microMetri
piedini
Architettura 58
4004
•
(da Wikipedia)
Memorizzazione separata di codice e dati, il 4004 utilizza un
singolo bus multiplexato per trasferire:
– Indirizzi a 12 bit
– Istruzioni in parole di 8 bit, in uno spazio separato rispetto ai dati
– Dati in parole di 4 bit
•
•
•
•
•
Il set di istruzioni comprende 46 istruzioni (di cui 41 a 8 bit e 5 a
16 bit)
16 registri a 4 bit
Alimentazione a 12 Volt.
Stack per le subroutine con al massimo 3 livelli di annidamento
Poteva indirizzare fino a 640 Byte di memoria RAM.
Calcolatori Elettronici (G.B.)
Architettura 59
8086
(giugno 1978)
•
•
•
•
29.000 Transistori
5 MHz (f di introduzione)
40 piedini
15 CPI (n. medio di clock per istruzione) equivalenti
in media a 3 microsecondi a istruzione
• 16 bit dati
• 20 bit indirizzi
Calcolatori Elettronici (G.B.)
Architettura 60
XEON E7-8850 v2
•
•
•
•
•
•
•
•
(2014)
2.600 Milioni di transistori
2,30 GHz
24 MB Cache
12 core; 24 thread
68 GB/s Max vel di trasferimento con la memoria
46 bit dimensione indirizzi fisici
64 bit parallelismo dati
Circa 2000 piedini
– Distribuiti su 50x50mm (circa)
Calcolatori Elettronici (G.B.)
Architettura 61
“Legge” di Moore
• Enunciata nel 1965, aggiustata più volte:
– Inizialmente: Raddoppio della “capacità elaborativa”
(numero di transistori) ogni 12 mesi (anni 70)
– A media via: Raddoppio ogni 2 anni (anni 80)
– Correntemente: Raddoppio ogni 18 mesi (dai 90)
• Vuol dire che nei prossimi 18 mesi l’elettronica avrà
un aumento quantitativo pari a quello complessivo
dall’inizio (della storia) ad oggi !!!!!!!!!!!!!!
– Non è una legge fisica
– Prima o poi non andrà più bene
– Per ora tiene!!!!!!!!!!!!!!!!
Calcolatori Elettronici (G.B.)
Architettura 62
Legge di Moore
Calcolatori Elettronici (G.B.)
Architettura 63
Processori Intel
Calcolatori Elettronici (G.B.)
Architettura 64
Processori Intel
Calcolatori Elettronici (G.B.)
Architettura 65
Primati
Calcolatori Elettronici (G.B.)
Architettura 66
Ma come scaldi!
Calcolatori Elettronici (G.B.)
Architettura 67
Ma come scaldi!
Core2
starebbe
qui (+o-)
Se la crescita
fosse stata la
stessa !!
Calcolatori Elettronici (G.B.)
Architettura 68
Tanto per curiosare
SUPERCOMPUTER
Calcolatori Elettronici (G.B.)
Architettura 69
K
(il più potente a novembre 2011)
K Computer (Fujitsu, Giappone)
– Presso RIKEN Advanced Institute for
Computational Science (AICS)
– 705.024 core (di processori SPARC64 VIIIfx 8C
2.00GHz ovvero 88.128 processori)
– 10,51 Petaflop/s
– Consumo 12,66 MW
– 0,83 MFlops/W
Calcolatori Elettronici (G.B.)
Architettura 70
K computer
Calcolatori Elettronici (G.B.)
Architettura 71
Il più potente (a novembre 2012)
TITAN (Cray XK7)
– Presso Oak Ridge National Laboratory (usa)
– 560.640 core (di processori Opteron 6274 16C 2,2 GHz,
ovvero 35.040 processori)
– 261.632 acceleratori (coprocessori NVIDIA K20x)
– 17.59 Petaflop/s (Linpack) (1 Peta = 10^15)
– Consumo 8.21 MW
– 2,143 MFlops/W
– Questo supercomputer ha un numero relativamente basso i
processori; usa i coprocessori (GPU) per raggiungere questo
livello prestazioni
http://www.top500.org/
Calcolatori Elettronici (G.B.)
Architettura 72
Il secondo più potente (a novembre 2012)
(Era il più potente a giugno 2012)
SEQUOIA
( IBM BlueGene/Q)
– Presso Lawrence Livermore National Laboratoy (usa)
– 1.572.864 core (di processori Power BQC (PowerPC) 16C
1,6 GHz, ovvero 98.304 processori)
– 16,32 Petaflop/s
– Consumo 7,89 MW
– 2,1 MFlops/W
– 96 armadi
– 82,2 KW per armadio (circa 1/3 di ENIAC !!)
– 1024 processori (16.384 core) per armadio
– Ogni processore ha 16 GB di memoria DRAM (DDR3)
– Pesa quanto 60 elefanti adulti (un elefante adulto pesa fino a 5
tonn)
•
Notare la frequenza relativamente bassa per ridurre i consumi
Calcolatori Elettronici (G.B.)
Architettura 73
Sequoia
Calcolatori Elettronici (G.B.)
Architettura 74
Il più potente (a giugno 2014)
Tianhe-2 (MilkyWay-2)
– Presso National University of Defense Technology (NUDT)
Cina (è anche il costruttore)
– 3.120.000 core (di processori Intel Xeon E5-2692 12C
2.200GHz, ovvero 260.000 processori)
– 2.736.000 core acceleratori (coprocessori Xeon Phi 31S1P)
– 33,86 Petaflop/s (Linpack)
– Consumo 17,81 MW
– 1.902 MFlops/W
– E’ meno efficiente del precedente. Usa più processori e più
coprocessori.
• Prime 5 posizioni invariate da giugno 2013
Calcolatori Elettronici (G.B.)
Architettura 75
Giugno 2014
Calcolatori Elettronici (G.B.)
Architettura 76
Tanto per la cronaca
• Nella classifica di Giugno 2012 al numero 7 apparve
“Fermi” : BlueGene/Q (IBM) del CINECA (Bologna).
• 163.840 core (di processori Power BQC 16C
1.600GHz)
• 1,72 Petaflops/s
• A Novembre 2012 è passato al n. 9
• Giugno 2013 è passato al n. 12
• A Novembre 2013 è passato al n. 15
Calcolatori Elettronici (G.B.)
Architettura 77
Costo per GFlop
•
•
•
•
•
•
•
•
•
1961
1984
1997
April 2000
August 2003
August 2007
March 2011
August 2012
June 2013
Calcolatori Elettronici (G.B.)
(Tenuto conto dell’inflazione)
$8,3 trillion
$33.000.000
$42.000
$1.300
$100
$52
$1.80
$0.73
$0.22
(una moltplicazione in 17.7 ms)
(Cray X-MP)
Fonte: Wikipedia
Architettura 78
Nota sulle prestazioni dei microprocessori
•
•
I microprocessori attuali hanno prestazioni dell’ordine delle
decine di Gflop/s
I7 (versioni ultime) c’è chi dice che faccia oltre 100 Gflop/s
• ATTENZIONE: se si vedono le prestazioni sui cataloghi o su
Internet ci si deve accertare bene come sono state misurate
(benchmark, configurazione della macchina, ecc.). Vengono
pubblicati risultati inconfrontabili.
•
Da un studio serio (Dongarra)
– Intel Core i7 3930K (a 4,720 GH (overclocked)
• prestazioni misurate con Linpack su Windows 64 bit
• 3.100 (circa) MFlop = 3,1 GFlop/s
Calcolatori Elettronici (G.B.)
Architettura 79
Calcolatori Elettronici (G.B.)
Architettura 80
Scarica

ARCHITETTURA elementi di base