Informatica Applicata – Progettazione dei sistemi di elaborazione 3DUWH ,QWURGX]LRQH Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002 © Alessandro Bogliolo 1 Informatica Applicata – Progettazione dei sistemi di elaborazione © Alessandro Bogliolo 3UHPHVVD 7HQGHQ]HWHFQRORJLFKH • • • • Circuiti integrati digitali: • Legge di Moore: il numero di dispositivi integrabili su un singolo chip cresce del 55% all’anno • La dimensione lineare minima dei dispositivi elettronici diminuisce del 13% all’anno • Le prestazioni dei dispositivi elettronici aumentano del 13% all’anno • Le prestazioni complessive dei circuiti integrati aumentano meno del 13% all’anno per colpa del ritardo delle interconnessioni • La frequenza operativa dei circuiti integrati raddoppia ogni tre anni • Il consumo di potenza dei chip aumenta • Il numero di pin aumenta del 12% all’anno • Tecnologia attuale: 0.13µm, 100,000,000 di dispositivi per chip, frequenza operativa superiore al GHz, consumo di potenza dell’ordine di 10-100W, 1,000 pin Memorie DRAM: • La densità delle celle di memoria cresce di circa il 50% all’anno • Il tempo di accesso diminuisce molto lentamente • Il throughput e la bandwidth aumentano più in fretta dell’inverso della latenza • Tecnologia attuale: Batterie • La capacità delle batterie per unità di peso aumenta Dischi magnetici • La densità dei dischi magnetici cresce del 100% all’anno • Il tempo di accesso diminuisce di un terzo ogni 10 anni 7HQGHQ]HHDVSHWWDWLYHGLPHUFDWR • • • • • • • • Riduzione dei costi • Esempio: DRAM [HP fig. 1.5] • Esempio: Intel [HP fig. 1.6] Riduzione di dimensioni Aumento delle prestazioni • Le prestazioni dei sistemi a microprocessore aumentano del 58% all’anno (di cui solo il 35% è dovuto a fattori tecnologici) [HP fig. 1.1] Aumento delle funzionalità Aumento della disponibilità Aumento dell’affidabilità Rapida obsolescenza • Esempio: DRAM [HP fig. 1.5] Aumento della pervasività (embedded applications) 3URJHWWR • • Il compito del progetto è quello di sfruttare la tecnologia per soddisfare le esigenze di mercato Il divario tra le prestazioni dei circuiti integrati e le prestazioni dei sistemi a microprocessore aumenta del 23% all’anno ed è attualmente quantificabile in un fattore 15 [HP fig. 1.1] 3DUDPHWULGLSURJHWWR 3DUDPHWULGLPHUFDWR 'LPHQVLRQHGHOPHUFDWRXQLWjYHQGXWHDOJLRUQRQ • Fortemente variabile nel tempo e diverso da 0 per un periodo di tempo limitato • L’andamento tipico è caratterizzato da un tratto ascendente, da un tratto constante e da un tratto iscendente. Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002 2 Informatica Applicata – Progettazione dei sistemi di elaborazione © Alessandro Bogliolo 3UH]]RDOFRQVXPDWRUH86'ROODU • Dipende dalla dimensione del mercato, dal tempo di obsolescenza del prodotto, dagli investimenti sopportati, dal costo di produzione, dalla concorrenza • Decresce velocemente durante il ciclo di vita di un prodotto [HP figg. 1.5, 1.6] • Composizione del prezzo di mercato [HP fig. 1.7] 7LPHWRPDUNHW0HVLP • Ritardo nell’immissione sul mercato • Somma di: tempo di progetto, tempo di verifica, tempo di produzione, tempo di collaudo • Se superiore a quello di prodotti concorrenti causa sia un mancato guadagno immediato che una riduzione dei profitti durante tutta la vita del prodotto • Un’azienda che immetta sul mercato un prodotto il cui mercato ha già superato la fase ascendente non ha possibilità di conquistare fette di mercato rilevanti 7LPHIRUUHYHQXH0HVLP • Periodo di permanenza sul mercato • Limitato dalla crescita congiunta delle aspettative di mercato e delle potenzialità tecnologiche • Quanto più è lungo tanto più permette di ammortizzare nel tempo gli investimenti iniziali 5HVDGLSURFHVVR • Percentuale di prodotti che superano il collaudo e raggiungono il mercato • Limitata dalla complessità dei sistemi e dei processi • Aumenta il costo di produzione e il prezzo unitario • La stima della resa può essere falsata da un collaudo inefficace 3DUDPHWULWHFQLFL 3UHVWD]LRQL)UHTXHQ]D+]7KURXJKSXW0,360236/DWHQ]DQV&3, • Dipendono dal tempo di elaborazione di ogni componente, dal numero di componenti in cascata, dal ritardo di propagazione dei segnali lungo le linee di interconnessione e dall’architettura del sistema • Benchmarks &RQVXPRGLSRWHQ]D: • Dipende dalla tecnologia, dalla complessità del sistema, dalla frequenza operativa, dalla tensione di alimentazione, dalle capacità interne e dall’attività media • Causa problemi di disponibilità (durata delle batterie dei sistemi portatili), di packaging (raffreddamento) e di affidabilità (temperatura operativa) &RQVXPRGLHQHUJLD- • Rispetto al consumo di potenza, non dipende dalla frequenza operativa • Riduce la disponibilità in termini di capacità di elaborazione piuttosto che in termini di tempo di elaborazione $IILGDELOLWj5W • Probabilità, stimata al tempo 0, che il sistema continui a funzionare correttamente fino al tempo t dato che funziona correttamente al tempo 0 • Funzione decrescente del tempo indicata con 5(W) • Nota la probabilità 3 che il sistema si guasti in un’unità di tempo, 5(W)=(1-3) nell’ipotesi di noninvecchiamento • 3 aumenta (e l' affidabilità diminuisce) all' aumentare della complessità del sistema • È difficile raccogliere dati statisticamente significativi per la caratterizzazione diretta di 3 • Nota la probabilità di guasto nell' unità di tempo di ogni componente del sistema (S ), quella del sistema si ricava analiticamente ipotizzando che ogni componente sia indispensabile al corretto funzionamento 3 = 1 − ∏ =1 (1 − S ) dove 1 è il numero di componenti. Nell' ipotesi semplificativa in cui tutti i componenti abbiano la stessa probabilità di guasto S, la probabilità di guasto del sistema risulta: 3 = 1 − (1 − S ) da cui è evidente che la probabilità di guasto del sistema dipende dal numero di componenti. Generalmente, tanto più elementari e diffusi sono i componenti tanto più semplice è raccogliere statistiche significative sulla loro probabilità di guasto nell’unità di tempo. Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002 3 Informatica Applicata – Progettazione dei sistemi di elaborazione © Alessandro Bogliolo 'LPHQVLRQLPP PP .J • Le dimensioni dei chip non sono direttamente un problema, poiché generalmente trascurabili rispetto a quelle di altri componenti dei sistemi elettronici, quali i dispositivi di input output (monitor, display, tastiera) le cui dimensioni sono dettate da esigenze di fruibilità • Indirettamente, i requisiti di portabilità (dimensioni e peso ridotti) impongono di limitare le dimensioni delle batterie (non trascurabili) e quindi dettano specifiche di consumo di potenza ai componenti elettronici 'LVSRQLELOLWjRUHKJLRUQLJWHPSR • Durata delle batterie dei sistemi portatili (h,g) • Influenzata dal consumo di potenza • Quantità di elaborazione supportata da una sola carica della batteria (milioni di istruzioni) • Influenzata dal consumo di energia • Percentuale di tempo di funzionamento (%) • Influenzata dalla probabilità di rottura e dal tempo medio di riparazione 6SD]LRGLSURJHWWR • • • • • • • • Spazio N-dimensionale i cui assi rappresentano i parametri del progetto Ogni soluzione è associata ad un punto nello spazio di progetto La presenza di parametri conflittuali e l' intervallo limitato di definizione dei parametri individuano zone di fattibilità (punti che rappresentano soluzioni possibili) e zone di infattibilità (i cui punti rappresentano soluzioni impossibili) Ogni coppia di parametri individua un piano su cui si può proiettare lo spazio di progetto La curva che sul piano separa la zona di fattibilità da quella di infattibilità è detta Curva di Pareto, luogo dei punti che rappresentano i migliori compromessi tra i due parametri (non ci si puo’ allontanare dalla curva di Pareto entrando nella zona di fattibilità senza peggiorare almeno uno dei parametri). Il progetto in uno spazio a 2 parametri può essere affrontato in 3 modi diversi: • come ottimizzazione simultanea di entrambi i parametri. In tal caso occorre dare un peso ai due parametri per avere un criterio per decidere a favore dell’uno o dell’altro in situazioni conflittuali. In tal caso si definisce una funzione obiettivo come combinazione lineare (o somma pesata) dei parametri di interesse f=c0x+c1y e si minimizza (o massimizza) f • come ottimizzazione di x condizionata al rispetto di un vincolo su y • come ottimizzazione di y condizionata al rispetto di un vincolo su x In genere i problemi di ottimizzazione incondizionata sono più semplici da risolvere, ma la scelta dei pesi nella definizione della funzione obiettivo è arbitraria Su un piano x-y, il procedimento di soluzione di un problema di ottimizzazione del parametro y condizionato al valore del parametro x=x0 è rappresentato da un segmento che, partendo da un punto dello spazio di fattibilità (y,x0), raggiunge la curva di Pareto nel punto (x0,y0), oltre il quale non riesce a spingersi La soluzione di problemi di ottimizzazione condizionata per diversi valori della condizione x0 individua per punti la curva di Pareto 6LVWHPLGLHODERUD]LRQH (OHPHQWLIRQGDPHQWDOLGLXQVLVWHPDGLHODERUD]LRQH • • • Elaborazione • Trasformazione di informazione Memoria • Conservazione di informazione nel tempo Comunicazione • Trasferimento di informazione nello spazio 5LXVRGLFRPSRQHQWLJHQHUDOSXUSRVHHSURJHWWRGLFRPSRQHQWLDGKRF • • Uso di componenti general-purpose programmabili • Ridotto time-to-market • Limitati gradi di libertà a disposizione del progettista • Soluzioni sub-ottime Soluzioni full-custom / application-specific • Completa disponibilità dei gradi di libertà Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002 4 Informatica Applicata – Progettazione dei sistemi di elaborazione • • © Alessandro Bogliolo Aumento dei costi e del tempo di progetto e produzione Soluzioni potenzialmente ottime 6LVWHPLDPLFURSURFHVVRUH • • • • • Hardware Software Sistemi di calcolo general purpose • calcolatori elettronici progettati per • progettati per offrire buone prestazioni medie su ampie categorie di software Sistemi di calcolo special-purpose • Domain-specific (esempio:igital signal processors, DSP) • Application-specific (ASIP) • progettati per offrire buone prestazioni su una particolare categoria di software, sacrificando le prestazioni offerte in applicazioni diverse Sistemi embedded • Microprocessori inseriti in apparati complessi dedicati ad applicazioni specifiche in cui la presenza di microprocessori non è apparente (telefoni cellulari, elettrodomestici, automobili, ...) • dedicati all’esecuzione continua di pochi segmenti di codice $UFKLWHWWXUHYLUWXDOL • • • • Un’architettura virtuale è simulata da strumenti software (detti macchine virtuali, YLUWXDOPDFKLQH, 90) che girano su architetture reali (generalmente comuni PC). Un esempio di architettura virtuale è quella realizzata dalle -DYD9LUWXDO0DFKLQH, JVM. Il software compilato per la JVM (bytecode) è portabile, nel senso che puo’ essere eseguito da tutte le macchine sulle quali può essere installata ed eseguita la JVM. Del resto la virtual machine introduce un overhead in termini di prestazioni, poichè il bytecode, benchè compilato, è di fatto interpretato dalla VM. 6WLPDGLSDUDPHWUL 6SHFLILFKHHTXDOLWjGHOVHUYL]LR • • • • • • Specifiche o requisiti (FRQVWUDLQWV UHTXLUHPHQWV): limiti imposti ad uno o più parametri di progetto I limiti sono detti KDUG se non ammettono violazioni, VRIW se ammettono violazioni Alcuni parametri (tra cui consumo di potenza, prestazioni, disponibilità) sono fortemente dipendenti dalle condizioni operative e quindi trattabili solo come variabili aleatorie in fase di progetto I requisiti imposti alle prestazioni di un sistema a microprocessore possono riguardare: • il tempo medio di esecuzione di un task • il tempo massimo di esecuzione di un task • il tempo di esecuzione di un task specifico in condizioni specifiche I requisiti che riguardano il tempo massimo di esecuzione di un task sono detti UHDOWLPHFRQVWUDLQWV poichè sono quelli tipicamente imposti da applicazioni che producono risultati la cui fruizione avviene in tempo reale (ad esempio la decodifica di immagini televisive) La qualità del servizio offerto da un sistema di calcolo in una data applicazione puo’ essere valutata come probabilità di violazione dei requisiti imposti a quella applicazione (ad esempio probabilità di decodificare in ritardo un frame di un video) %HQFKPDUNLQJ • • Poichè molti dei parametri di un sistema a microprocessore (in partiolare le prestazioni) dipendono fortemente dall’uso che ne viene fatto, si pone il problema di standardizzare le condizioni in cui tali parametri sono valutati, al fine di rendere la misura riproducibile e di rendere confrontabili diverse architetture. Le condizioni di lavoro di un sistema vengono indicate con il termine inglese ZRUNORDG. Tipicamente, il workload di un sistema a microprocessore è rappresentato dal software applicativo e dai dati su cui esso opera, mentre il software di sistema è visto come parte del sistema da caratterizzare. Si chiama EHQFKPDUN un workload riproducibile e ben documentato. Esistono diversi tipi di benchmark, concepiti per valutare parametri di natura diversa o per essere applicati a sistemi diversi. In particolare distinguiamo tre categorie di benchmark: • applicazioni reali • benchmark sintetici rappresentativi di situazioni tipiche • microbenchmark concepiti per caratterizzare aspetti molto specifici Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002 5 Informatica Applicata – Progettazione dei sistemi di elaborazione • • • © Alessandro Bogliolo In molti casi i benchamrk sono raggruppati in insiemi (suite) di benchmark tutti necessari a fornire una caratterizzazione completa di sistemi general purpose L’uso di numerosi benchmark per la valutazione e il confronto di prestazioni di sistemi general purpose pone il problema di combinare i risultati relativi ai singoli benchmark per ottenerne una sola figura di merito. • Media aritmetica dei tempi di esecuzione: ha il difetto di pesare maggiormente il confronto tra i benchmark con tempi di esecuzione più lunghi • Media pesata dei tempi di esecuzione: il tempo di esecuzione di ciascun benchmark contribuisce alla media con un peso calcolato sulla base di previsioni sulla composizione del workload del sistema reale che si vuol valutare • Media geometrica dei tempi di esecuzione relativi: ogni tempo di esecuzione è diviso per il tempo di esecuzione dello stesso benchmark su un’architettura di riferimento (Sun Ultra5_10 Sparc 300MHz con 256Mb di RAM). La media geometrica è calcolata come radice N-essima del prodotto degli N tempi di esecuzione relativi. Il vantaggio della media geometrica è che la media geometrica del rapporto è uguale al rapporto delle medie geometriche. Nel caso di microprocessori embedded dedicati ad applicazioni specifiche, la valutazione delle prestazioni puo’ essere effettuata direttamente utilizzando l’applicazione target. 6LPXOD]LRQH(PXOD]LRQH3URWRW\SLQJ • • • • Se non si dispone del sistema reale (ad esempio perchè è in fase di progetto o perchè se ne vuole valutare l’acquisto) è possibile valutarne le prestazioni eseguendo i benchmark su sistemi diversi che emulino il comportamento del sistema di interesse Simulatore: strumento software eseguibile da un calcolatore elettronico general purpose che simula il comportamento (funzionale e/o parametrico) di un sistema diverso. Per i sistemi a microprocessore distinguiamo due generi di simulatori: o Simulatori a livello di istruzione (ISS, ,QVWUXFWLRQVHWVLPXODWRUV), che simulano l’esecuzione dell’instruction set dell’architettura target, ma non tengono conto dei dettagli microarchitetturali. Cioè lo stato del simulatore coincide con quello del sistema simulato al termine dell’esecuzione di ogni istruzione. o Simulatori F\FOHDFFXUDWH che simulano il comportamento dell’architettura target ciclo di clock per ciclo di clock. Cioe’ lo stato del simulatore coincide con quello del sistema simulato al limite di ciascun ciclo di clock. Emulatore: piattaforma hardware/software riconfigurabile in grado di emulare il comportamento di diversi sistemi a microprocessore Prototipo: realizzazione preliminare del sistema target 3URILOLQJHG,QVWUXPHQWDWLRQ • • In molti casi, eseguendo un segmento di codice ha interesse non solo conoscere il tempo totale di esecuzione, ma anche informazioni di natura statistica sull’uso delle risorse, sulla composizione delle istruzioni, ecc. L’insieme di queste informazioni viene detto SURILOR, e il processo necessario a collezionarle SURILOLQJ Mentre il tempo totale di esecuzione è in genere direttamente misurabile, l’estrazione di profili richiede la modifica del software o della piattaforma che lo esegue. La modifica del software o dell’harware al fine di collezionare profili d’esecuzione viene detta LQVWUXPHQWDWLRQ. Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002 6 Informatica Applicata – Progettazione dei sistemi di elaborazione © Alessandro Bogliolo Fig. 1.1 Fig. 1.5 Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002 7 Informatica Applicata – Progettazione dei sistemi di elaborazione © Alessandro Bogliolo Fig. 1.6 Fig. 1.7 Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002 8