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