Low Power Scheduling per Sistemi Real Time Corso di Sistemi Real Time A.A. 2007-08 Ing. Giordano Kaczynski Sistemi Real Time 1
Introduzione Il consumo di energia nei sistemi portatili negli ultimi anni è diventato un problema importante. Notebook, palmari. Telefoni cellulari, macchine fotografiche. Robot, dispositivi medici portatili, satelliti, sonde. La principale limitazione dei progettisti di questi sistemi è la scarsa durata delle batterie, a fronte di una sempre crescente richiesta di maggiori prestazioni. Compromesso tra prestazioni e consumo di energia. Sistemi Real Time 2
Il consumo di energia Un minor consumo di energia vuol dire: Maggior durata delle batterie. Minor dissipazione di potenza (sistemi di raffreddamento più semplici ed economici). Sistemi più piccoli e leggeri. Maggiore affidabilità. I progressi fatti nel campo delle batterie non sono sufficienti. Il consumo di energia dei chip aumenta seguendo la legge di Moore (raddoppia ogni 18 mesi). L incremento delle capacità delle batterie è di meno del 5% annuo. Sistemi Real Time 3
Cosa si può fare? Punto di vista hardware: Progettazione mirata non solo alle prestazioni ma anche al risparmio di energia. Supporto di diversi stati di funzionamento. CPU con Voltage Scaling. Punto di vista software: SO (supporto al DVS e/o scheduling appropriato). Compilatore (intra-task DVS). Sistemi Real Time 4
Il Carico computazionale Il carico computazionale che una CPU deve sostenere non è omogeneo. I picchi computazionali richiesti sono molto più alti del carico medio fornito alla CPU. Le richieste di alte prestazioni sono occasionali e di breve durata. Per la maggior parte del tempo è sufficiente un processore con prestazioni basse. Un processore con prestazioni più basse consuma meno energia? Sistemi Real Time 5
Potenza e CMOS I moderni microprocessori embedded sono basati quasi esclusivamente sulla logica a CMOS. Nei transistor CMOS, per quanto concerne la componente dinamica della potenza, vale: 2 P CV La componente statica ha un peso trascurabile, anche se quest ultima ultimamente sta crescendo. f Sistemi Real Time 6
Frequenza e voltaggio L aspetto interessante è la relazione che sussiste tra la frequenza ed il voltaggio nei transistor CMOS: V Ma allora la potenza dinamica è proporzionale a V 3! Diminuendo la frequenza di funzionamento andando ad agire sul voltaggio otteniamo potenzialmente un grosso risparmio di energia. f Sistemi Real Time 7
Dynamic Voltage Scaling I moderni processori embedded possono operare a frequenze diverse, grazie al Dynamic Voltage Scaling. Transmeta Crusoe/Efficeon con LongRun. AMD K6+2 con PowerNow! Intel XScale con SpeedStep. A frequenze più elevate si hanno voltaggi più alti, quindi maggior consumo di energia. I livelli di voltaggio a disposizione sono ad intervalli discreti. Sistemi Real Time 8
Transmeta Crusoe Facciamo un esempio, il processore Transmeta Crusoe: Frequenza (Mhz) Voltaggio (V) Potenza relativa (%) 700 1.65 100 600 1.50 80.59 500 1.40 59.03 400 1.30 41.14 300 1.25 24.60 200 1.10 12.70 Sistemi Real Time 9
Quanto risparmiamo? Quanta energia risparmiamo utilizzando un Crusoe alla minima frequenza, rispetto alla massima? Risparmio (1.65) (1.1) 2 2 700 200 Ma siamo sicuri che non manca qualcosa? = = 7.875 Sistemi Real Time 10
Energia e potenza L energia si misura nel tempo. E T = P dt = P T 0 L intervallo di tempo T varia al variare della frequenza. Sistemi Real Time 11
Allora quanto risparmiamo? Il risparmio ottenuto effettivo è dato dal seguente rapporto: Risparmio = E E max min = (1.65) (1.1) 2 2 700 T 200 T max min In definitiva: E E 2 max 1.65 = = min 1.1 2.25 Risparmiamo circa il 55% di energia. Sistemi Real Time 12
DVS e Real Time Gli algoritmi DVS classici falliscono nei sistemi real time. Essi si basano solo sul carico medio riscontrato sulla CPU. Non tengono conto dei vincoli temporali, il rallentamento della frequenza potrebbe far violare le deadline. Esempio: Un task ha un tempo di esecuzione di 2 ms alla massima frequenza. La sua deadline è di 3 ms. Il processore viene scalato al 50% della frequenza massima. Il task completa l esecuzione dopo 4 ms: deadline miss. Sistemi Real Time 13
RT-DVS Scheduling E necessario accoppiare l algoritmo DVS con uno scheduling real time appropriato, in maniera tale da minimizzare l energia consumata ma al contempo garantire il soddisfacimento dei vincoli temporali. Verranno presentati alcuni algoritmi di schedulazione, chiamati anche algoritmi RT-DVS, che permettono prestazioni real time con minimizzazione dell energia. In particolare, essi garantiscono l hard real time. Sistemi Real Time 14
Assunzioni Verranno fatte le seguenti assunzioni, laddove non diversamente specificato: No preemption. Deadline uguale al periodo del task. Tempo di esecuzione dei task è pari al WCET. No eventi aperiodici. Le frequenze del processore a disposizione, normalizzate rispetto alla frequenza massima, sono: 100%, 75%, 50% e 25%. Sistemi Real Time 15
Static Voltage Scaling Lo Static Voltage Scaling è l approccio più semplice: Si sceglie la frequenza più bassa che permette di garantire le deadline. La frequenza viene scelta offline per il task set e rimane fissa per tutto il tempo. Per la schedulazione può essere utilizzato qualunque algoritmo (EDF, RM, ecc ). Sistemi Real Time 16
Static Voltage Scaling Consideriamo il seguente task set: Task 1 2 3 Tempo di esecuzione 3 ms 3 ms 1 ms Periodo 8 ms 10 ms 14 ms Schedulazione con EDF (o RM) alla frequenza massima: Sistemi Real Time 17
Static Voltage Scaling EDF Per schedulare con EDF basta fare il test di schedulabilità modificato per lo Static Voltage Scaling: con c i p i α = f f max α dove f è la frequenza attuale ed f max quella massima. Sistemi Real Time 18
Static Voltage Scaling EDF Scegliamo: α = 0.75 Vogliamo cioè schedulare con EDF al 75% della frequenza massima. c i p i = 0.7464 α Con EDF è possibile schedulare. Sistemi Real Time 19
Static Voltage Scaling EDF Risultato della schedulazione con EDF al 75% della frequenza massima: Sistemi Real Time 20
Static Voltage Scaling RM Proviamo la schedulazione con RM al 75% della frequenza massima: La prima istanza del task 3 ha un deadline miss, non è possibile utilizzare RM al 75% della frequenza massima. Sistemi Real Time 21
WCET Che cosa succede se il tempo di computazione è minore del WCET? Task 1 2 3 Tempo di esecuzione 3 ms 3 ms 1 ms Periodo 8 ms 10 ms 14 ms Immaginiamo di avere invece i seguenti tempi di esecuzione per la prima e per la seconda invocazione dei task: Task 1 2 3 Prima invocazione 2 ms 1 ms 1 ms Seconda invocazione 1 ms 1 ms 1 ms Con lo Static Voltage Scaling sprecheremmo energia inutilmente. Sistemi Real Time 22
Cycle Conserving EDF Il Cycle Conserving EDF varia dinamicamente la frequenza in funzione del carico effettivo. Sfrutta il fatto che in media un task impiega meno tempo del suo WCET. Si cerca di conservare i cicli di esecuzione che invece verrebbero sprecati facendo girare la CPU in modalità idle. Approccio utilizzato: Si confronta, dopo l esecuzione di un istanza di un task, il tempo di esecuzione effettivo e il WCET. Se sono stati risparmiati cicli, si scala la frequenza. Sistemi Real Time 23
Cycle Conserving EDF Schedulazione con Cycle Conserving EDF al 75% della frequenza massima: Dopo la prima invocazione del task 1 è stato risparmiato poco più di un ciclo. Sistemi Real Time 24
Cycle Conserving EDF Si ricalcola l utilizzazione del processore: c i p i = 2 8 + 3 10 + 1 14 = 0.621 Essa è maggiore di 0.5, quindi si mantiene la frequenza al 75%. Sistemi Real Time 25
Cycle Conserving EDF Dopo la fine del task 2 si ricalcola nuovamente l utilizzazione del processore: c i p i = 2 8 + 0.421 L utilizzazione è minore di 0.5 (ma maggiore di 0.25), quindi si può abbassare la frequenza al 50%. 1 10 + 1 14 = Sistemi Real Time 26
Look Ahead RT-DVS Il Look Ahead RT-DVS è un algoritmo molto aggressivo. Si cerca di spostare quanto più carico possibile oltre la deadline più vicina. Si setta la frequenza minima necessaria per fare il lavoro allocato adesso, soddisfacendo comunque i vincoli temporali. Tramite il meccanismo di prenotazione si riserva una porzione di CPU in anticipo per le future invocazioni dei task. Sistemi Real Time 27
Look Ahead RT-DVS Si cerca di allocare il task 3 dopo la prima deadline, tra D 1 e D, 3 prenotando la banda per le future istanze di T 1 e T 2. Si alloca la banda per T 1. Sistemi Real Time 28
Look Ahead RT-DVS Si cerca di allocare T 2 dopo la prima deadline D 1, ma non c è abbastanza banda per tutto il task. La rimanente parte del task 2 viene allocata prima della deadline D 1. Sistemi Real Time 29
Look Ahead RT-DVS Dopo l esecuzione di T si 1 riesegue il calcolo per T 2. Risultato finale. Sistemi Real Time 30
Confronti Confrontiamo le prestazioni in termini di consumo di energia degli algoritmi proposti: Schedulazione Energia utilizzata Solo EDF 1 Static Voltage RM 1 Static Voltage EDF 0.64 Cycle Conserving RM 0.71 Cycle Conserving EDF 0.52 Look Ahead EDF 0.44 Sistemi Real Time 31
Conclusioni Con l introduzione di semplici algoritmi di schedulazione DVS per il real time è possibile ottenere significativi risparmi energetici. Esistono però ancora parecchi campi aperti. Soft real time. Gestione degli eventi aperiodici. Overhead introdotto dal cambiamento di frequenza. Consumo di energia del ciclo idle. Possibiltà di prelazione. Sistemi Real Time 32