Please enable JavaScript.
Coggle requires JavaScript to display documents.
Computer design intro (01-02) - Coggle Diagram
Computer design intro (01-02)
Costi e produzione
Market segmentation
Desktop computing
price/perfomance ratio
Servers
throughput
scalability
availability
Clusters/Warhouse-scale computers (WAS)
power consumption
price/performance
Embedded computers
special-purpose computers
can't run 3rd party apps
Soluzioni possibili:
processore standard + logica aggiuntiva + sw apposito
processore standard + sw apposito
DPS standard
+ sw apposito
Personal Mobile Device (PMD)
energy efficient
real time applications
Architetture
Parallelismo
Architectures (GPUs or vector architectures)
Thread-level Parallelism (TLP)
Task-level Parallelism (TaskLP)
compiti indipendenti possono essere eseguiti nello stesso tempo
Request-level Paralleism (RLP)
Istruction-level Parallelism (ILP)
Data-level Parallelism (DLP)
dati indipendenti possono essere lavorati allo stesso tempo
Energia e potenza
Potenza
La potenza
dinamica
è direttamente proporzionale al quadrato della tensione.
Per questo si è ridotta la tensione al minimo indispensabile
La potenza
statica
è direttamente proporzionale alla tensione
Energia
E = C * V * V
(E -> Energia
C -> Capacità
V -> Tensione)
D'interesse soprattutto per i dispositivi mobili
Tre aspetti
Instruction set
Organizzazione
Hardware
Dependibilità
(Dependability)
è la qualità del sistema di funzionare correttamente
Peggiora con i bug del software, difetti nell'hardware, bug nel design hardware
è importantissima nei sistemi Safety-critical
Si misura in:
Mean Time To Failure
Mean Time Between Failures
Mean Time To Repair
MTBF = MTTF + MTTR
Legge di Moore
Il numero di transistor dentro un chip raddoppia ogni 2 anni
Costo di un chip
Il processo di produzione si evolve nel tempo, valutando lo
yield
(guadagno) che è la percentuale di prodotti che passano la fase di test
L'evoluzione è spesso chiamate "curva d'apprendimento"
Più del 50% del costo viene impiegato alle procedure di test e valutazione
Valutazione delle performance
Dipende dai punti di vista
Utente
tempo di risposta
(tempo tra l'inizio e il completamento di un'operazione)
system manager
throughput
(quantità di lavoro fatto nell'unità di tempo)
Tempo
Tempo trascorso (dall'inizio alla fine)
Tempo usato dalla CPU (ai fini del calcolo per quell'operazione)
La misurazione del tempo può avvenire in diversi modi:
osservando il tempo reale
simulazione
equazione della performance della CPU
$$ T = {T_{CLK} \times \sum{CPI_i \times {IC_i}}} $$
CPI è il numero di cicli di clock per l'istruzione i
IC è il numero di volte che l'istruzione i è eseguita
T_CLK è il periodo del clock (1/frequenzaClock)
Per valutare le performance si una i
Benchmarks
La scelta del benchmarks influisce sul risultato ottenuto
Può essere fatto con:
programmi reali (gcc)
kernels (livermore)
benchmark giocattolo (quicksort)
benchmark sintetici (whetstone)
Di solito si usa una combinazione di tutto, ovvero una
becnhmark suite
Esempi famosi:
SPEC
MiBench
I benchmark dovrebbero fornire risultati riproducibili, riportando cioè informazioni dettagliate su:
hardware (configurazione del sistema)
software (OS, compilatore, programma usato)
input del programma
Problemi:
1- qual è la performance globale di una macchina conoscendo i risultati dei benchmark?
2- Sapendo le performance di due macchine, qual è la loro performance relativa?
Metriche
Tempo d'esecuzione totale
$$ \sum Time_i $$
Media aritmetica
$$ \frac{1}{n} \sum Time_i $$
Media pesata
$$ \sum w_i \times Time_i $$
Legge di Amdahl
Speedup
parziale
$$ SpeedUp = \frac{P_f}{P_i} $$
$$ P_i \to Performance\ prima\ del\ miglioramento $$
$$ P_f \to Performance\ dopo\ il\ miglioramento $$
Speedup
completo
$$ Speedup_{overall} = \frac{T_o}{T_n} $$
To: Tempo vecchio (senza miglioramento)
Tn: Tempo nuovo (con il miglioramento)
$$ Speedup_{overall} = ( (1 - n_{migliorato}) + \frac{n_{migliorato}}{speedup} ) $$
n: tempo esecuzione del programma migliorato / tempo di esecuzione del programma prima del miglioramento
Equivalenti
Approfondimento