You are on page 1of 6

Appunti Power Consumption

Dynamic power consumption


Quando switch da 0a 1 sto caricando il capacitore.

Considerando un circuito normale (alto a dx del sistema) ho un resistore R e una capacità C, quando carico
carico la capacità da 0 a vcc. Per misurare quanta energia store nel condensatore e quanta energia dissipo
nella resistenza devo fare l’integrale:

𝑡𝑖𝑚𝑒_𝑐ℎ𝑎𝑟𝑔𝑒
𝐸𝑒𝑛𝑒𝑟𝑔𝑦 = ∫ 𝑣𝑐 (𝑡)𝑖(𝑡)𝑑𝑡
0

𝑄 𝑑𝑄
Ma se ricordiamo la formula del condensatore 𝐶 = quindi 𝑄 = 𝐶 ∗ 𝑑𝑣 e 𝑖 = , allora i(t)dt è dQ e
𝑑𝑣 𝑑𝑡
dQ=Cdv, quindi:
𝑡𝑖𝑚𝑒𝑐ℎ𝑎𝑟𝑔𝑒 𝑡𝑖𝑚𝑒𝑐ℎ𝑎𝑟𝑔𝑒 𝑉𝑐𝑐
𝑣2
𝐸𝑒𝑛𝑒𝑟𝑔𝑦 = ∫ 𝑣𝑐 (𝑡)𝑖(𝑡)𝑑𝑡 = ∫ 𝑣𝑐 (𝑡)𝑑𝑄 = ∫ 𝑣𝑐 (𝑡)𝐶𝑑𝑡 = = 𝐶 𝑑𝑎 0 𝑎 𝑉𝑐𝑐
0 0 0 2

Quindi integrando da 0 a Vcc, sostituendo in v^2, ottengo che l’energia nel condensatore vale:
1
𝐸𝑐 = 𝐶𝑉𝑐𝑐2
2

L’energia totale spesa dal power supply è invece pari a:


𝐸𝑔𝑒𝑛𝑒𝑟𝑎𝑡𝑜𝑟 = 𝑐𝑉𝑐𝑐2
per trovarlo:
𝑡 𝑡 𝑣𝑐𝑐
2
𝐸𝑔𝑒𝑛𝑒𝑟𝑎𝑡𝑜𝑟 = ∫ 𝑣𝑐𝑐 𝑖(𝑡)𝑑𝑡 = 𝑣𝑐𝑐 ∫ 𝑖(𝑡)𝑑𝑡 = 𝑣𝑐𝑐 ∫ 𝐶𝑑𝑣 = 𝐶𝑣𝑐𝑐 • 𝑣𝑐𝑐 = 𝐶 𝑣𝑐𝑐
0 0 0

1
La domanda è: dov’è la metà dell’energia spesa per caricare?? È direttamente persa dalla resistenza per
effetto joule.

Durante la carica, spendo 𝐸𝑔𝑒𝑛𝑒𝑟𝑎𝑡𝑜𝑟 = 𝑐𝑉𝑐𝑐2 : metà è persa per heat transfer del resistore, altra invece va
nel capacitor.

Il tempo per andare da 0 a 1 è metà del clock period, da 1 a 0 ho metà periodo ancora. Il capacitor per
andare a 0 si scarica e la scarica è fatta dal pull down network (freccia in verde). Ciò che ho messo nella
prima metà del first clock cycle è dissipato nel next clock cyucle. Nel clock cycle (low level high level)
dissipo metà e metà dunque tutta l’energia generata dal generatore.

L’average del power consume del singolo clock period da un single gate è l’energia divisa il T_clock:
𝐸 𝐸𝑐𝑘 𝐶𝑉𝑐𝑐2 1
̅̅̅̅̅̅̅̅̅̅̅
𝑃𝑑𝑦𝑛𝑎𝑚𝑖𝑐 = = = = 𝐶 𝑉𝑐𝑐2 𝑓𝑐𝑘
𝑇𝑐𝑘 𝑇𝑐𝑘 𝑇𝑐𝑘
con 𝑓𝑐𝑘 = 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑧𝑎 𝑐𝑙𝑜𝑐𝑘.

QUESTO VALE PER UN SOLO GATE, nel sistema ne abbiamo tantissimi!

Per calcolare per così grandi sistemi l’energia spesa, si utilizzano metodi statistici anziché fare simulazioni!
SI usa alpha che è il rapporto tra 0 e 1, se la CPU è off alpha è probabilmente 0, se è full utilizzata. La
dynamic power dunque viene valutata come:

̅̅̅̅̅̅̅̅̅̅̅
𝑃𝑑𝑦𝑛𝑎𝑚𝑖𝑐 = 𝜶 𝐶 𝑉𝑐𝑐2 𝑓𝑐𝑘

𝜶 = 𝒂𝒕𝒕𝒊𝒗𝒊𝒕à 𝒅𝒆𝒍 𝒈𝒂𝒕𝒆 𝒄𝒉𝒆 𝒔𝒕𝒐 𝒄𝒐𝒎𝒎𝒖𝒕𝒂𝒏𝒅𝒐 è il parametro che indica l’attività del microprocessore
ed è correlata al numero di mos in utilizzo.

MacBoing Pro 737-800

Short circuit power consumption

Si considera il seguente circuito con due switch e un condensatore.


La energia spesa per la commutazione di 1 interrutore :
𝜏
𝐸(𝑡) = ∫ 𝑉𝑐𝑐 𝑖𝑠𝑐 (𝑡)𝑑𝑡 = 𝑉𝑐𝑐 𝐼𝑠𝑐 • 𝜏
0
Se commuto due volte e considero la media di potenza dissipata da questo effetto short circuit:

2
𝐸𝑠𝑐
𝑃̅𝑠𝑐 = = 𝜏 ∗ 𝑉𝑐𝑐 𝐼𝑠𝑐 𝑓
𝑇𝑐𝑘

QUINDI: come prima possi scrivere:


𝑃̅ = 𝛼 𝜏 ∗ 𝑉𝑐𝑐 𝐼𝑠𝑐 𝑓

La power consuption in cmos digital logic è dovuta al dynamic power factor, short circuit current e
leakage.

Il leakage è dovuto dal design del mos: infatti ci sono regioni che pososno essere modellate come diodi
che fanno passare la corrente solo in alcune direzioni. Se tale regione è poco polarizzata la direzione è dal
basso versl ‘alto. Si cchiama current of leakage e avviene appena applico un Vds tra drain e source.

È una corrente costante che è sempre presente. Se ci sono quantità di pico ampere (sempre l’ordine è
questo), avvien in ogni transistor presente nel chip dunque non importa se ho un clock o no ma avviene
appena do voltaggio al circuito. Oggi nei circuiti ci sono billions di transistor, quindi in totale parlo di
milliampere o ampere che vengono persi per questo effetto.

Una volta essendoci meno transistor l’effetto è minore, oggi grazie alla Moore law non è stato mitigato
dunque l’impatto è simila alla dynamic power.

Unica soluzione: L’idea dunque è quella di spegnere il circuito che non uso in un istante, OPPURE
aumentare il voltaggio across del diodo, dunque reduco la corrente (V=Ir, diminuisco la I) ma questo
aumenta la potenza dei due componenti dunque ho un tradeoff.

ESEMPIO:

Posso decidere di usare pià tempo per ridurre l’energia, in quanto:


𝐸=𝑃𝑥𝑡
ma in questo caso l’area è minore dell’altra di un fattore quadratico.

3
Fundamentals of dyanmic voltage scaling
Non voglio però ridurre la frequenza, quindi posso decidere di ridurre solo il voltaggio di un effetto
quadratico. L’unico limite che ho è che la massima frequenza che posso usare in un chip dipende dal
power supply perché il propagation delay tra i chip dipende dalla formula Delay for CMOS circuits:

𝐾𝐶𝐿 𝑉𝑑𝑑
𝜏=
(𝑉𝑑𝑑 − 𝑉𝑡 )2
il threshold è tra 0.4-0.5. Quando il voltage supply è nel range 3V, posso approssimare :
𝜏 ≈ 𝐾 1/𝑉𝑑𝑑

Quindi se aumento Vdd il delay diminuisce ed essendo la frequenza proporzionale a 1/delay, allora:
1
𝑓α
𝜏

Se incremento la V_dd dunque aumento la frequenza, ma aumento il power consumption, viceversa se


diminuisco la frequenza diminuisco il power consumption.

Approcci

Ci sono 2 approcci pe rminimizzare


1) DPM - Dynamic power management, si usa uno shutdown di ciò che non uso oppure ottimizzo il
task per avere dei periodi in cui shut down mode. È una sorta di on off mode.

2) DVFS - Voltage and frequency scaling. Si modula l’esecuzione del task settando frequency e voltage
completando il task quando è richiesto, ma per mantenere il circuito di cui ho bisogno sempre on.

Posso usare entrambi: quando ho più performance o salvare energy switcho dal primo al secondo.

Entrambi hanno PRO e CONTRo quindi si possono usare insieme. Se ho un sistema che non permette il
voltage e frequency scaling, come l’MSP430 (non posso sceglire il voltage supply del chip dentro le librerie)
ma posso solamente modificarlo solo esternalmente, il chip non self adjust it.

CONTRO DPM: dipende dal sistema che ho, ad esempio un HDD del pc non lo uso quando non serve, ma
quando devo usare l’hard disk di nuovo devo aspettare tanto quindi vado in sleep ok ma devo stare attento
che la transizione tra off e on costa un certo budget di energia.
Quindi in ogni transizione devo stare attento al costo energetico tra off e on: se ho due task

Break event time: tempo necessario per stare in low power state per compensare??
Il tempo totale di transizione è la somma delle due transizione, da on a off e da off a on.

Il break event time è il momento in cui l’energia che ho ricevuto in low power state che paga l’extra energy
che spendo nela transizione. La prima condizione è: non faccio nulla, dunque la mia energia è
PonxTbreakevent, l’energia di quando non faccio nulla, deve essere >= 2Ptr.

Se l’average power di entrambe le transizoni è maggiore di Pon che è la potenza più alta, alora il total time
to wait è transition + transition * … dovuto al payoff dell’etra consumption della transizione.
4
Se la potenza della transizione è minore di Pon, l’elemento è negativo quindi vale sempre la pena andare in
low power state perché la transizione costa anche meno di quanto costa tenere il sistema on.

MANCANO TUTTE LE IMMAGINI!!!

Frequency voltage scaling


Al tempo T1 e T2 eseguo lo stesso task. Ipotizzo che T2 sia uguale a 2T1, è solo un esempio.

Se uso dynamic power management DPM, l’energia associata è P1xT1 (area del quadratino).

Se uso DVFS dynamic voltage frequency scaling, scalo sia la frequenza che il voltaggio, e assumo di scalare
la frequenza di un fattore 2 (f2=f1/2), allora eseguo il primo task nel doppio del tempo ma in tempo con la
deadline T2 quindi non ho problemi. Se scalo di un fattore due anche il voltaggio (V2=V1/2), l’energia spesa
vale: P2xT2=V2^2 C F2 x T2.

QUINDI: meglio iniziare con DVFS csì l’energia del task diminuisce pià velocemente, ma in un sistema reale
ho un minimo perché nel calcolo ci sono moltissime semplificazioni, ad esempio non prendiamo in
considerazione il delay che non scala linearmente con il voltage supply, oppure non abbiamo cnosiderato
ilc osto dello switch nel DPM etc.

Una volta raggiunto il minimo entro la regione di shutdown, per Emin, se diminuisco ulteriormente la
frequenza e il voltaggio PERO’ l’energia AUMENTA ! Quindi qui switcho all’altra tecnica DPM, dove ho una
costante power cnsumption che dipende dal minimum voltage e frequency del sistema.

Ovviamente se ho una real time aplication e la deadline avviene molto prima del tempo di scaling allora
non ho abbastanza tempo ed energia per decidere, quindi sempre uso DVFS il prima possibile.
Il grafico dsignifica: se ho una deadline molto distante nel tempo, inizio molto prima con DVFS cmopleto il
task, quando lo completo e non ho nulla da fare (terzo grafico) switch to DPM.

Energy in radio

5
6

You might also like