4.2.15 · HinglishVLSI Design

Low-power design techniques (clock - power gating)

2,154 words10 min readRead in English

4.2.15 · Hardware › VLSI Design


CMOS chip bilkul power kyon jalaati hai?

Kisi bhi technique se pehle, hume jaanna chahiye ki hum kisse lad rahe hain. Total power teen mein baanti hai:

Dynamic (switching) power — scratch se derive kiya hua

Derivation (WHY yeh famous formula sahi hai):

Cap par stored charge jab tak charge hoti hai:

Ek charge ke dauran supply se li gayi energy ( par rakha gaya supply):

Uska aadha cap par stored hota hai (), aadha pull-up resistance mein jal jaata hai. Agle discharge par, stored aadha pull-down mein jal jaata hai. Toh ek poora 0→1→0 cycle dissipate karta hai.

Agar node full cycles per second banata hai aur sirf probability ke saath switch karta hai (activity factor), tab:

Static (leakage) power

Ek transistor jo "off" hai woh bhi subthreshold current leak karta hai: Yeh modern nodes mein dominate karta hai aur switching par depend nahi karta — ek idle block phir bhi leak karta hai. Isi wajah se hume power gating chahiye.


Technique 1: Clock Gating ( aur par attack karta hai)

HOW (naive approach, aur yeh galat kyon hai): Pehla instinct hai gated_clk = clk AND enable. Yeh dangerous hai kyunki agar enable tab change ho jab clk high ho, toh ek glitch (ek runt pulse) milti hai jo flops ko falsely trigger kar sakti hai.

Fix — Integrated Clock Gating (ICG) cell: enable ko clock ke low phase par latch karo, taaki yeh next high edge se pehle stable ho:

enable ──▶ [ Latch (transparent when clk=0) ] ──▶ en_latched
                                                    │
clk ─────────────────────────────────────────── AND ──▶ gated_clk

Kyunki en_latched sirf tab update hota hai jab clk=0 ho, AND gate ko clk=1 ke dauran mid-cycle change kabhi nahi dikti → glitch-free.

YEH KYA HELP NAHI KARTA: static leakage. Flops abhi bhi powered baithe hain; woh sirf switch nahi karte.


Technique 2: Power Gating ( par attack karta hai)

HOW — sleep transistor:

 Vdd ──[ Header PMOS ]── VVDD ── logic block ── VVSS ──[ Footer NMOS ]── GND
          ▲ sleep_b                                        ▲ sleep

VVDD ek virtual supply hai. Jab asleep ho, header off → VVDD neeche float karta hai → block starve hota hai → leakage ≈ 0.

Costs (WHY yeh free nahi hai):

  1. Wake-up latency aur rush current restore karne par block ke saare internal caps recharge hote hain, ek bada inrush spike draw karke.
  2. State loss — flip-flops apna content kho dete hain. Fix karo retention registers se (ek tiny always-on shadow latch state preserve karta hai).
  3. Floating outputs — ek sleeping block ke outputs undefined ho jaate hain aur awake blocks ko corrupt kar sakte hain. Fix karo isolation cells se jo outputs ko ek known value par clamp karti hain.
  4. Area/IR-drop — sleep FET bada hota hai aur series resistance add karta hai.

Break-even (WHY tum choti idles ke liye gate nahi karte): Power gating tabhi faaydemand hoti hai jab sleep mein bachi energy wake-up energy se zyada ho:

Figure — Low-power design techniques (clock - power gating)

Quick comparison

Clock gating Power gating
Targets Dynamic power Static (leakage) power
Mechanism Clock rok do Supply kaat do
State rahti hai? Haan Nahi (retention regs chahiye)
Wake latency ~1 cycle Lamba (recharge)
Extra cells ICG latch+AND Sleep FET, isolation, retention

Worked Examples


Common Mistakes (Steel-manned)


Flashcards

Dynamic power formula aur har term ka matlab
; =activity factor, =switched cap, =supply (squared), =frequency.
Ek full charge/discharge cycle kyon dissipate karta hai?
Supply har charge par deliver karta hai; aadha charging mein jalta hai, aadha discharging mein → total per cycle.
Clock gating kya reduce karta hai?
Dynamic switching power, ek register ka local activity factor ~0 set karke.
Power gating kya reduce karta hai?
Static leakage power, block ko sleep transistor ke zariye se disconnect karke.
clk AND enable ek bura clock gate kyon hai?
enable ka clk=1 ke dauran change hona glitches/runt pulses create karta hai jo flops ko falsely clock kar sakte hain.
ICG cell kya hota hai?
Integrated clock gating: ek latch (clk low par transparent) jo ek AND ko feed karta hai, enable ko clk high ke dauran stable banata hai → glitch-free.
Retention register kya hota hai?
Ek flip-flop jisme ek always-on shadow latch hota hai jo state preserve karta hai jab main block power-gated ho.
Isolation cells ka purpose?
Ek sleeping block ke outputs ko ek known value par clamp karna taaki floating outputs awake logic ko corrupt na karein.
Power-gating break-even condition
Gate karo sirf agar ho, warna wake-up energy saved leakage se zyada ho jaati hai.
Dynamic-power reduction mein kaun zyada dominant hai, ya ?
— yeh squared hai, toh voltage scale karna zyada help karta hai (lekin gates slow ho jaate hain).
Header vs footer switch?
Header = PMOS aur virtual VDD ke beech; footer = NMOS virtual VSS aur GND ke beech.

Recall Feynman: ek 12-saal ke bachche ko explain karo

Ek bade ghar ki kalpana karo jisme bahut saari lights aur chalte naale hain. Clock gating aise hai jaise un rooms ki lights band karna jisme koi nahi hai — room abhi bhi electricity se connected hai, lekin kuch flicker nahi karta, toh tum "flickering" bill par bachate ho. Power gating aise hai jaise poori khaali wing ka main breaker flip karna — ab switched-off lights se jo thodi si electricity leak hoti thi woh bhi chali gayi. Lekin jab tum woh breaker wapas on karte ho, lights warm up hone mein thoda time lagta hai aur clocks reset ho jaate hain (state kho jaati hai) — toh tum yeh sirf tab karte ho jab wing lambe time ke liye khaali ho.

Connections

Concept Map

splits into

splits into

formula alpha CL Vdd2 f

Vdd times Ileak

drives

stops clock when

causes

fixed by

latches enable on low phase

attacks

disconnects

Total power

Dynamic power

Static leakage power

Activity factor alpha

Idle blocks still leak

Clock gating

Data not changing

Naive clk AND enable

Runt pulse glitch

ICG cell with latch

Power gating

Idle block from Vdd