Cicli di clock e istruzioni
|
|
|
- Dionisia Mori
- 9 anni fa
- Просмотров:
Транскрипт
1 Cicli di clock e istruzioni Numero di cicli di clock differenti per istruzioni differenti Le moltiplicazioni impiegano più tempo delle addizioni Operazioni in virgola mobile impiegano più tempo delle operazioni su interi Accedere alla memoria costa di più che accedere ai registri Importante: se cambiamo il periodo di clock spesso, come effetto collaterale, cambiano il numero di cicli di clock necessari per eseguire le varie istruzioni
2 Esempio Per un dato programma da eseguire sul computer A conosciamo il tempo di CPU sul computer A: T A = 10 s la frequenza di clock del computer A: F A = 2 GHz Vogliamo costruire un computer B dove il tempo di CPU: T B = 6 s Il progettista può aumentare la frequenza di B, ma questo provoca l incremento dei numero di cicli per l esecuzione del programma (1.2 in più dei cicli necessari sulla macchina A). Di quanto dovremmo aumentare F B per garantire T B = 6 s? T A = # cicli A / F A # cicli A = 10 x 2 x 10 9 = 2 x T B = 1.2 x # cicli A / F B F B = 1.2 x 2 x / 6 = 4 GHz
3 IC, CPI, MIPS numero istruzioni # Cicli di clock = x macchina numero (medio) di cicli di clock per istruzione IC = instruction count = numero di istruzioni macchina del programma CPI = cicli di clock per istruzioni = # cicli di clock / IC MIPS = milioni di istruzioni per secondo = IC / (Texe * 10 6 ) A noi interessa il tempo di esecuzione, le altre misure, prese singolarmente, possono portare a conclusioni errate ne valutare le prestazioni di un programma.
4 Esempio Due processori A e B implementano diversamente la stessa ISA Il processore A ha un ciclo di clock di 250 ps Il processore B ha un ciclo di clock di 500 ps Per lo stesso programma compilato Il processore A ha CPI 2.0 Il processore B ha CPI 1.2 Quale processore è più veloce, e di quanto?
5 Esempio Due processori A e B implementano diversamente la stessa ISA, quali delle seguenti quantità non cambia? F, CPI, Texe, IC, MIPS Soluzione: TA = IC x CPIA x (periodo di clock)a = 500 x IC ps TB = IC x CPIB x (periodo di clock)b = 600 x IC ps Speedup TB / TA = 600 / 500 = 1.2
6 Esempio Per una data ISA abbiamo tre classi di istruzioni: Classe A: 1 CPI Classe B: 2 CPI Classe C: 3 CPI Progettando un compilare, una porzione di codice può essere implementata in due modi: Modo 1: AABCC (IC = 5) Modo 2: AAAABC(IC = 6) Quale dei due modi è più veloce, e di quanto? Qual è il CPI medio per ciascuna sequenza?
7 Esempio Quale dei due modi è più veloce, e di quanto? (# cicli)1 = 2 x x x 3 = 10 (# cicli)2 = 4 x x x 3 = 9 Speedup = 10/9 ~ 1.1 Qual è il CPI medio per ciascun modo? CPI1 = (# cicli)1 / IC1 = 10/5 = 2 CPI2 = (# cicli)2 / IC2 = 9/6 = 1.5
8 Esempio Due compilatori sono testati su un processore a 100 MHz con tre classi di istruzioni: Classe A, B, C: 1, 2, 3 CPI rispettivamente Il compilatore 1 genera un codice che una 5M istruzioni di classe A, 1M istruzioni di classe B, 1M istruzioni di classe C Il compilatore 2genera un codice che una 10M istruzioni di classe A, 1M istruzioni di classe B, 1M istruzioni di classe C Quale compilatore sarà più veloce rispetto al tempo di esecuzione? Quale compilatore sarà più veloce rispetto ai MIPS?
9 Esempio Quale compilatore sarà più veloce rispetto al tempo di esecuzione? (# cicli) 1 = 5M x 1 + 1M x 2 + 1M x 3 = 10M T 1 = (# cicli) 1 / F = 0.1 sec (# cicli) 2 = 10M x 1 + 1M x 2 + 1M x 3 = 15M T 2 = (# cicli) 2 / F = 0.15 sec Speedup = T 2 / T 1 =1.5 Quale compilatore sarà più veloce rispetto ai MIPS? MIPS 1 = IC 1 / T 1 = 7 / 0.1 = 70 MIPS MIPS 2 = IC 2 / T 2 = 12 / 0.15 = 80 MIPS
10 Problemi del ciclo singolo Ciclo di clock lungo Istruzioni potenzialmente veloci sono rallentate Impiegano sempre lo stesso tempo dell istruzione più lenta Unità funzionale e collegamenti della parte operativa sono replicati Bisogna eseguire in parallelo tutti i passi necessari per l esecuzione di qualsiasi istruzione dell ISA I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni in parallelo (ILP) Organizzazione a pipeline Grazie all ILP diminuiamo il CPI ma aumentiamo la frequenza di accesso alla memoria (per leggere istruzioni e leggere/scrivere dati)
11 Pipeline Le unità funzionali (lavatrice, asciugatrice, stiratrice, armadio) sono usate sequenzialmente per eseguire i vari job tra l esecuzione di due job, ogni unità rimane inattiva per 1,5 ore In modalità pipeline, il job viene suddiviso in stadi, in modo da usare le unità funzionali in parallelo unità funzionali usate in parallelo, ma per eseguire job diversi nella fase iniziale/ finale, non lavorano tutte parallelamente
12 Stadi della pipeline del MIPS Le istruzioni MIPS ristrette (lw, sw, add, or, beq, slt) del nostro processore MIPS sono sempre composte da 5 stadi 1. IF : Instruction fetch (memoria istruzioni) 2. ID : Instruction decode e lettura registri (grazie al formato regolare delle istruzioni) 3. EXE : Esecuzione istruzioni o calcolo indirizzi 4. MEM : Accesso a un operando in memoria (memoria dati) 5. WB : Write back (scrittura del registro risultato, calcolato in EXE o MEM)
13 Stadi della pipeline del MIPS
14 Registri per stadi di pipeline
15 Esempio lw
16 Esempio lw
17 Esempio lw
18 Esempio lw
19 Esempio lw
20 Esempio lw C è un bug!!!
21 Esempio lw
22 Pipeline e prestazioni Consideriamo una pipeline composta da n stadi sia T seq il tempo di esecuzione sequenziale di ogni singola istruzione sia T stadio = T seq / n il tempo di esecuzione di ogni singolo stadio della pipeline rispetto all esecuzione sequenziale, lo speedup ottenibile dall esecuzione pipeline su uno stream molto lungo di istruzioni tende ad n In pratica, lo speedup non è mai uguale a n a causa: del tempo di riempimento/svuotamento della pipeline, durante cui non tutti gli stadi sono in esecuzione dello sbilanciamento degli stadi, che porta a scegliere un tempo di esecuzione di ogni singolo stadio della pipeline T stadio, tale che T stadio > T seq / n delle dipendenze tra le istruzioni, che ritarda il fluire nella pipeline di qualche istruzione (pipeline entra in stallo)
23 Pipeline e prestazioni Confrontiamo l esecuzione sequenziale (a singolo ciclo) di IC istruzioni, con l esecuzione di una pipeline a n stadi Sia T il periodo di clock del processore a singolo ciclo Sia T = T/n il periodo di clock del processore pipeline ogni stadio della pipeline completa quindi l esecuzione in un tempo T/n Tempo di esecuzione del processore a singolo ciclo: IC x T Tempo di esecuzione del processore pipeline: (n - 1) x T + IC x T tempo per riempire la pipeline: (n-1) x T tempo per completare l esecuzione dello stream di IC istruzioni: IC x T (ad ogni ciclo, dalla pipeline fuoriesce il risultato di un istruzione) Speedup = IC x T / ((n-1) x T/n + IC x T/n) = IC / ( (n-1)/n + IC/n ) = = n x IC / (n 1 + IC) quando IC è grande rispetto a n (ovvero, quando lo stream di istr. in ingresso alla pipeline è molto lungo), allora lo speedup tende proprio a n
24 Esempio Pipeline a 5 stadi n = 5 T = 800 ps T = 200 ps Tempo di esecuzione singolo ciclo: IC x T = 2.4 ns Tempo di esecuzione pipeline: (n-1) x T + IC x T = 1.4 ns Speedup = 2.4/1.4 = 1.7 E se IC = 1003? T exe singolo ciclo: 1003 x 800 = ps T exe pipeline: 4 x x 200 = ps Speedup = 802.4/ = 3.98 L organizzazione pipeline aumenta il throughput dell esecuzione delle istruzioni. ma può aumentare la latenza di esecuzione delle singole istruzioni
25 Diagramma temporale multiciclo
26 Diagramma temporale multiciclo
27 Criticità Negli esempi precedenti le istruzioni entrano nella pipeline (stadio IF) una dopo l altra, senza interruzioni In realtà, a causa delle cosiddette criticità (hazard), alcune istruzioni non possono proseguire l esecuzione (o entrare nella pipeline) finché le istruzioni precedenti non hanno prodotto il risultato corretto Criticità: l esecuzione dell istruzione corrente dipende dai risultati dell istruzione precedente. Ma l istruzione precedente è già stata inviata, si trova ancora nella pipeline e non ha completato l esecuzione L effetto delle criticità è lo stallo della pipeline lo stadio che ha scoperto la criticità, assieme agli stadi precedenti rimangono in stallo (in pratica, rieseguono la stessa istruzione) viene propagata una nop (no operation) alle unità seguenti nella pipeline (bolla) lo stallo può prorogarsi per diversi cicli di clock (e quindi più bolle dovranno essere propagate nella pipeline, svuotando gli stadi successivi della pipeline)
28 Criticità strutturali Tipi di Criticità l istruzione ha bisogno di una risorsa (unità funzionale) usata e non ancora liberata da un istruzione precedente (ovvero, da un istruzione che non è ancora uscita dalla pipeline) es.: cosa succederebbe se usassimo una sola memoria per le istruzioni e i dati? Criticità sui dati dipendenza sui dati tra istruzioni es.: dipendenza RAW (Read After Write) : un istruzione legge un registro scritto da un istruzione precedente l esecuzione dell istruzione corrente deve entrare in stallo, finché l istruzione precedente non ha completato la scrittura del registro Esempio: add $s1, $t0, $t1 # Write $s1 sub $s2, $s1, $s3 # Read $s1 Criticità sul controllo finché le istruzioni di branch non hanno calcolato il nuovo PC, lo stadio IF non può effettuare il fetch corretto dell istruzione
29 Tecnica della propagazione Criticità sui dati
30 Tecnica della propagazione Criticità sui dati
31 Criticità sul controllo Nuovo valore del PC calcolato dal branch viene memorizzato durante MEM se il branch è preso, in questo caso abbiamo che le 3 istruzioni successive sono già entrate nella pipeline, ma fortunatamente non hanno ancora modificato registri dobbiamo annullare le 3 istruzioni: l effetto è simile a quello che avremmo ottenuto se avessimo messo in stallo la pipeline fino al calcolo dell indirizzo del salto Annullare queste istruzioni (Valori di1 controllo a10)
32 Predizione dei branch Attendere sempre che l indirizzo di salto sia stato calcolato correttamente porta comunque a rallentare il funzionamento della pipeline è una soluzione conservativa, che immette sempre bolle nella pipeline i branch sono purtroppo abbastanza frequenti nel codice Un modo per eliminare gli stalli, è quella di prevedere il risultato del salto condizionato lo stadio IF potrà quindi, da subito, effettuare il fetch corretto della prossima istruzione da eseguire Problema: cosa succede se la previsione non risulterà corretta? sarà ancora una volta necessario eliminare le istruzioni che nel frattempo sono entrate nella pipeline sarà necessaria un unità che si accorga della criticità, e che si occupi di eliminare dalla pipeline le istruzioni che vi sono entrate erroneamente: ovvero, farle proseguire come nop operation fino all uscita dalla pipeline
Instruction Level Parallelism Salvatore Orlando
Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni
Il pipelining: tecniche di base
Definizione di pipelining Il pipelining: tecniche di base Architetture Avanzate dei Calcolatori E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di
Il pipelining: tecniche di base
Il pipelining: tecniche di base Il pipelining E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di più istruzioni appartenenti ad un flusso di esecuzione
CPU pipeline hazards
Architettura degli Elaboratori e delle Reti Lezione 23 CPU pipeline hazards Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 23 /24 Sommario!
Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini [email protected] Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità
Gestione delle eccezioni (CPU multiciclo) La CPU pipeline
Architettura degli Elaboratori e delle Reti Lezione 22 Gestione delle eccezioni (CPU multiciclo) La CPU pipeline A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi
Valutazione delle prestazioni
Valutazione delle prestazioni Trend tecnologico: Capacità della Memoria Capacità chip DRAM DRAM Year Size 1980 64 Kb 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1996 64 Mb 1999 256 Mb 2002 1 Gb Incremento
Richiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
Richiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.
L unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica [email protected] Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,
L'architettura del processore MIPS
L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento
Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock Prof. Andrea Sterbini [email protected] Argomenti Argomenti della lezione - Esercizi sulla CPU MIPS a 1 colpo di clock
Valutazione delle prestazioni
Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di
Architettura degli Elaboratori
Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni
CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti
Architettura degli Elaboratori e delle Reti Lezione 18 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 18 1/2 Sommario!
