Արտահոսքն ընդդեմ Dynamic էներգասպառման
Չիպի ընդհանուր էներգասպառումը երկու շատ տարբեր մեխանիզմների գումարն է։ Dynamic էներգասպառում-ը ծախսվում է միայն այն ժամանակ, երբ գեյթը իրականում switch է անում — load capacitance-ը լիցքավորելիս և պարպելիս, գումարած կարճ short-circuit հոսք, երբ և՛ PMOS-ը, և՛ NMOS-ը transition-ի ընթացքում մասամբ միացած են։ Արտահոսքային էներգասպառում-ը ծախսվում է անընդհատ՝ անկախ նրանից՝ ինչ-որ բան switch է անում, թե ոչ, ժամանակակից node-երում գերիշխվում է subthreshold conduction-ով — հոսք, որը հոսում է լիարժեք անջատված ենթադրվող տրանզիստորի միջով, որովհետև channel-ը երբեք լիովին չի ազատվում կրիչներից, երբ gate length-երն ու oxide-ի հաստությունը բավական փոքրանում են։
Հենց այս crossover-ն է պատճառը, որ արտահոսքին ուղղված տեխնիկաները — multi-Vt, power gating, body biasing — դարձան առաջնակարգ դիզայներական մտահոգություններ, ոչ թե հետին պլանի մանրուքներ, երբ node-երը scale եղան մոտավորապես 90–65nm-ից ցածր։
| Տեխնիկա | Հիմնականում ուղղված է | Որտեղ է ընդգրկված |
|---|---|---|
| Clock gating | Dynamic էներգասպառում (կանգնեցնում է ավելորդ toggling-ը) | Physical Design → CTS |
| Multi-Vt բջիջների selection | Արտահոսքային էներգասպառում (հիմնականում), որոշ dynamic փոխզիջում | Այս էջը |
| Power gating | Արտահոսքային էներգասպառում (գրեթե ամբողջական, gated region-ների համար) | Այս էջը + UPF & IPF |
| Adaptive body biasing | Արտահոսքային էներգասպառում (dynamic tuning) | Այս էջը |
| Multi-voltage / voltage islands | Dynamic էներգասպառում (V² անդամ) | UPF & IPF |
| DVFS / AVS | Երկուսն էլ, adaptively runtime-ում | Այս էջը |
Multi-Threshold Voltage (Multi-Vt) Design
Յուրաքանչյուր ստանդարտ բջիջների գրադարան մատակարարում է նույն logic գեյթի մի քանի ֆիզիկապես նույնական տարբերակներ, որոնք տարբերվում են միայն տրանզիստորի threshold լարմամբ (Vt) — gate-to-source լարումը, որն անհրաժեշտ է, նախքան channel-ը սկսի հաղորդել։ Vt-ի բարձրացումը տրանզիստորը switch է անել տալիս ավելի դանդաղ (ավելի վատ հապաղում), բայց էքսպոնենցիալ կերպով նվազեցնում է նրա subthreshold արտահոսքը, Vt-ի իջեցումն անում է հակառակը։ Multi-Vt design-ը շահագործում է սա՝ բջիջ առ բջիջ ընտրելով այն տարբերակը, որ չիպի տվյալ տեղակայությունն իրականում պահանջում է։
HVT-ն (high-Vt) արտահոսքը խնայող default ընտրությունն է չիպի մեծ մասի համար, SVT-ն (standard-Vt) հավասարակշռված միջին տարբերակն է, LVT-ն (low-Vt) ծախսվում է խնայողաբար՝ միայն այն կոնկրետ գեյթերի վրա, որոնք իրականում սահմանափակում են critical path-ը։
| Տարբերակ | Արագություն | Արտահոսք | Բնորոշ կիրառություն |
|---|---|---|---|
| LVT (low-Vt) | Ամենաարագ | Ամենաբարձր | Critical ժամանակային path-եր, տակտային ազդանշանի network-ներ — կիրառվում է խնայողաբար, քանի որ ամեն LVT բջիջ ավելացնում է արտահոսք |
| SVT (standard-Vt) | Baseline | Baseline | Default ընտրություն design-ի մեծ մասի համար — հավասարակշռված միջին տարբերակը |
| HVT (high-Vt) | Ամենադանդաղ | Ամենացածր | Non-critical logic՝ ավելորդ ժամանակային պահուստով — հիմնական զենքը չիպի ընդհանուր արտահոսքի դեմ |
Dual-Vt և triple-Vt հոսքեր
Dual-Vt հոսքը (սովորաբար SVT + HVT) տարածված default-ն է. սինթեզը և place-and-route գործիքները օպտիմալացման ընթացքում non-critical path-երի բջիջները SVT-ից swap են անում HVT՝ զուտ արտահոսքը կրճատելու համար, քանի դեռ ժամանակային պահուստը թույլ է տալիս։ Triple-Vt հոսքը միջավայրում ավելացնում է LVT՝ իսկապես critical path-երի այն մի քանիսի համար, որոնք ուրիշ կերպ չեն կարող close անել ժամանակային պահանջները։ Քանի որ LVT արտահոսքը այնքան ավելի բարձր է per բջիջ, triple-Vt գրադարանները կիրառվում են վիրահատական ճշգրտությամբ — թիմերը հետևում են design-ում LVT բջիջների area-ի տոկոսին որպես արտահոսք-ռիսկի ցուցանիշ, ոչ միայն ժամանակային closure-ի հարմարություն։
Vt swap որպես ուշ-փուլային ECO
Քանի որ բջիջի HVT/SVT/LVT տարբերակները սովորաբար footprint-compatible են (նույն չափը, նույն pin տեղակայությունները, նույն connection-ները), բջիջի Vt տարբերակը swap անելը հնարավոր ամենաէժան engineering change-երից է — հաճախ same-layer, երբեմն նույնիսկ metal-only փոփոխություն։ Սա Vt-swap ECO-ները դարձնում է տարածված ուշ-փուլային լծակ. եթե post-route signoff-ը ցույց է տալիս արտահոսքի budget-ի գերազանցում՝ ավելորդ ժամանակային margin-ով, կամ ժամանակային violation՝ ավելորդ արտահոսքի budget-ով, ուղղումը հաճախ ազդակիր path-երի երկայնքով պարզապես Vt տարբերակների վերընտրությունն է, այլ ոչ թե որևէ բանի վերատեղադրումը կամ վերաերթուղավորումը։
Power Gating-ի ճարտարապետություն
UPF & IPF էջն ընդգրկում է, թե ինչպես է power gating-ը բնութագրվում (create_power_switch, power state-եր)։ Այս բաժինն ընդգրկում է, թե ինչ է իրականում այդ switch-ը տրանզիստորի մակարդակում, և երկու շատ տարբեր եղանակները, որոնցով այն կառուցվում է իրական հատակագծի մեջ։
Header-ը (PMOS, gates VDD) և footer-ը (NMOS, gates VSS) switch-երը երկու տարբերակներն են, իրական design-երը հաճախ խառնում են երկուսն էլ, կամ օգտագործում մեկը բացառապես՝ կախված նրանից, թե որ փոխզիջումն է ավելի կարևոր տվյալ block-ի համար։
Երբ SLEEP control-ը անջատված է, և՛ header, և՛ footer sleep տրանզիստորները հաղորդում են նորմալ, և block-ի «virtual» power/ground rail-երը վարվում են ճիշտ ինչպես իրական VDD/VSS-ը։ Երբ SLEEP-ը assert է անում, sleep տրանզիստորը բացվում է՝ ամբողջությամբ անջատելով block-ի միջով անցնող ուղիղ VDD-to-VSS արտահոսքի path-ը — switch բջիջներն իրենք դեռ մի քիչ leak են անում (դրանք էլ են active տրանզիստորներ), բայց այդ մնացորդային արտահոսքը փոքր է այն ամենի կողքին, ինչ ամբողջ gated block-ն այլապես կդրաներ։
Fine-grain-ն ընդդեմ coarse-grain gating-ի
Fine-grain
Sleep տրանզիստորը կառուցվում է հենց ամեն ստանդարտ բջիջի մեջ՝ virtual rail-ը երթուղավորված բջիջի ներսում։ Մշակվում է սովորական place-and-route հոսքերով՝ ինչպես ցանկացած այլ ստանդարտ բջիջ, և gating-ի granularity-ն կարող է իջնել մինչև առանձին բջիջներ կամ փոքր cluster-ներ — ամենաճկուն, ամենա-արտահոսք-արդյունավետ տարբերակը։ Գինը. ամեն մեկ gated բջիջ կրում է իր սեփական switch-տրանզիստորի area overhead-ը, և սերտորեն cluster-ված բջիջներն անկախ gating անելը կարող է ստեղծել լոկալ լարման variation, որը բարդացնում է դրանց միջև ժամանակային closure-ը։
Coarse-grain
Switch բջիջների բաշխված network-ը — կառուցված հենց power grid-ի մեջ, ոչ թե ստանդարտ բջիջների — gate է անում սնուցումն ամբողջ block-ին ընդհանուր virtual power network-ի միջոցով։ Երկու տարածված տոպոլոգիա. ring-based (switch-երը շրջանում են block-ի պարագիծը՝ պարզեցնելով ներքին grid-ը) և column-based (switch-երն անցնում են որպես column-ներ block-ի միջով՝ global grid-ը վերին metal-ի, իսկ switched rail-երը ստորին layer-ների վրա)։ Շատ ավելի ցածր area overhead և ավելի քիչ PVT-variation զգայունություն, քան fine-grain-ը, մի քիչ ավելի քիչ արտահոսքի reduction-ի և մի նոր խնդրի գնով. simultaneous switching capacitance։
Rush հոսանք և daisy-chained wake-up
Այն ակնթարթին, երբ մեծ gated block-ի sleep տրանզիստորները բոլորն միասին միանում են, այդ block-ի decoupling-ի և load capacitance-ի ամեն մասը լիցքավորվում է միանգամից — հսկայական, կարճ հոսանքի spike («rush հոսանք» կամ inrush հոսանք), որը կարող է ընդհանուր power grid-ը այնքան ցած քաշել, որ առաջացնի IR-drop violation-ներ կամ glitch-ներ չիպի այլ մասերում՝ ճիշտ այն dynamic voltage-drop failure mode-ը, որն ընդգրկված է EMIR Analysis էջում։
Switch-enable ազդանշանը daisy-chaining անելը — կամ counter-ների միջոցով ընտրողական sub-block-ներ միացնելը — inrush հոսանքը բաշխում է մի քանի տակտային ազդանշանի cycle-ի վրայով՝ մեկի փոխարեն, մի փոքր ավելի երկար wake-up latency-ի գնով։
| Մոտեցում | Rush հոսանքը շտկում է | Փոխզիջում |
|---|---|---|
| Daisy-chain enable | Ամեն switch segment-ի enable-ը հետաձգվում է նախորդի նկատմամբ, այնպես որ ամբողջ block-ը միաժամանակ inrush չի անում | Մի փոքր ավելի երկար ընդհանուր wake-up ժամանակ |
| Selective/counter-driven activation | Switch-երի sub-block-երը միացվում են վերահսկվող հաջորդականությամբ՝ counter-ի միջոցով, այլ ոչ թե բոլոր switch-երը կիսում են մեկ enable | Լրացուցիչ control logic և wake-up sequencing-ի բարդություն |
| Ավելի մեծ power grid | Պարզապես grid-ին տալիս է բավական headroom՝ spike-ը կլանելու համար՝ առանց IR-drop budget-ը խախտելու | Երթուղավորման resource overhead ամենուր, ոչ միայն gated block-ի մոտ |
Isolation-ը և Retention-ը, սխեմայի տեսանկյունից
Երկու ռազմավարությունների ամբողջական UPF syntax-ը գտնվում է UPF & IPF էջում։ Սխեմայի մակարդակում isolation cell-ը մոտ է հնարավոր ամենապարզ building block-ին. 2-input գեյթ՝ control ազդանշանով։
Սեղմեք որևէ box, որ բացեք ամբողջական UPF syntax-ը։ Isolation control ազդանշանները և retention save/restore ազդանշանները երկուսն էլ գալիս են նույն power-gating controller-ից, որը drive է անում sleep տրանզիստորները — բոլոր երեքը մեկ համակարգված հաջորդականություն են, ոչ թե երեք անկախ մեխանիզմ։
Adaptive Body Biasing
MOSFET-ի threshold լարումը միայն տոպոլոգիայով ֆիքսված չէ — այն նաև կախված է իր body-ի (well/substrate) և source-ի միջև լարումից՝ body effect-ից։ Body biasing-ը միտումնավոր կիրառում է ոչ-զրոյական body-to-source լարում՝ Vt-ն վեր կամ վար տեղաշարժելու համար այն բանից հետո, երբ չիպն արդեն արտադրված է, առանց ընդհանրապես ստանդարտ բջիջների գրադարանին կամ հանգույցների ցանկին դիպչելու։
Երկու ուղղություններն էլ օգտագործում են նույն body-bias generator սխեման և նույն ֆիզիկական well contact-ները — փոխվում է միայն կիրառված bias-ի նշանը, ինչն էլ adaptive (ի տարբերություն ֆիքսված) body bias-ը գործնական է դարձնում։
Adaptive-ն ընդդեմ ֆիքսված body bias-ի
Ֆիքսված body bias-ը, մեկ անգամ սահմանված, կարող է փոխհատուցել միայն միջին բյուրեղիկի համար։ Adaptive body biasing (ABB)-ը փոխարենը օգտագործում է on-chip closed-loop generator՝ մոնիտորինգ անելով իրական սիլիցիումը (ring-oscillator-ի կամ նման reference structure-ի միջոցով, հայեցակարգորեն նույն բյուրեղիկի մակարդակի չափումը, որ նկարագրված է process corner-ների համար Fabrication էջում) և անընդհատ ճշգրտելով well bias-ը, որպեսզի յուրաքանչյուր առանձին բյուրեղիկ — ոչ միայն process distribution-ի միջինը — հասնի իր թիրախային speed/արտահոսք կետին։ Սա փոխհատուցում է բյուրեղիկ-to-բյուրեղիկ process variation-ը, և կարող է նույնիսկ հետևել ավելի դանդաղ drift-ի, ինչպիսին են ջերմաստիճանը և aging-ը (NBTI-driven Vt shift) ապրանքի ողջ կյանքի ընթացքում։
DVFS & AVS
Երկու տեխնիկան էլ փոխում են սնուցման լարումը tapeout-ից հետո, դաշտում, բայց նրանք պատասխանում են տարբեր հարցերի։ Dynamic Voltage and Frequency Scaling (DVFS)-ը փոխում է լարումը և հաճախությունը միասին, դիսկրետ քայլերով, driven workload-ի պահանջով — scheduler-ը որոշում է «ինձ հիմա ավելի շատ արագագործություն է պետք» և պահանջում ավելի բարձր V/F operating point։ Adaptive Voltage Scaling (AVS)-ը ավելի նեղ է և ավելի ինքնավար. closed feedback loop-ը անընդհատ trim է անում սնուցման լարումը մինչև նվազագույն արժեքը, որը դեռ բավարարում է թիրախային արագությանը՝ փոխհատուցելով process, լարում և temperature պայմանները, որ չիպն իրականում ապրում է հենց հիմա — ոչ թե workload-ի պահանջ, սիլիցիումի իրականություն։
Քանի որ հապաղման chain-ը նստում է նույն սնուցման rail-ի վրա, ինչ real logic-ը, նրա չափված հաճախությունը ուղղակիորեն արտացոլում է, թե որքան արագ է այդ logic-ն իրականում հենց հիմա — այս կոնկրետ բյուրեղիկի վրա, այս կոնկրետ ջերմաստիճանում, իր կյանքի այս պահին — թույլ տալով loop-ին գտնել նվազագույն ապահով լարումը, այլ ոչ թե ֆիքսված worst-case ենթադրություն։
| DVFS | AVS | |
|---|---|---|
| Driven by | Workload / software-ի պահանջ (արագագործության state-եր, «P-states») | Անընդհատ hardware feedback loop |
| Փոխում է | Լարումը և հաճախությունը միասին, դիսկրետ քայլերով | Միայն լարումը, անընդհատ trim արվող |
| Փոխհատուցում է | Ցանկալի արագագործության մակարդակը | Process, լարում, temperature, aging |
| Բնորոշ կիրառություն | CPU/GPU արագագործության governor-ներ, battery life-ի կառավարում | Դուրս քամելով margin-ը, որ ֆիքսված-լարման design-ը այլապես կվատնե worst-case guardband-ի վրա |
Կիրառություններ runtime էներգասպառման խնայողությունից անդին
Նույն DVFS ենթակառուցվածքը, որ կառավարում է runtime էներգասպառումը, կրկին օգտագործվում է bring-up-ի և test-ի ընթացքում. սնուցման լարումը կանոնավոր ինտերվալներով աստիճանաբար իջեցնելը standard եղանակ է բյուրեղիկի իրական minimum functional լարումը (Vmin) գտնելու, և թիթեղի sort binning-ը կարող է օգտագործել DVFS-ոճի lookup table՝ մասերը դասակարգելու ըստ իրենց իրական լարման/հաճախության կարողության, այլ ոչ թե մեկ pass/fail threshold-ի — ուղղակիորեն լրացնելով speed-binning գործընթացը, որ նկարագրված է Post-Silicon Bring-Up էջում։
Ամեն ինչ միասին հավաքելով
Այս տեխնիկաներից ոչ մեկը իրական չիպի վրա մեկուսացված չի օգտագործվում — դրանք շերտավորվում են, յուրաքանչյուրը թիրախավորելով էներգասպառման budget-ի տարբեր հատված, համակարգված նույն UPF power intent-ով և նույն power-gating controller-ով։
| Շերտ | Տեխնիկա | Խնայում է |
|---|---|---|
| Բջիջների selection (սինթեզ) | Multi-Vt swapping | Արտահոսք non-critical path-երում, ձրի (ոչ մի area/ժամանակային գին swap-ից անդին) |
| Sequential element-ներ | Clock gating (տես CTS) | Dynamic էներգասպառում idle register-ներում, ամեն cycle |
| Block մակարդակ | Power gating + isolation + retention | Գրեթե ամբողջական արտահոսք լիովին idle block-երում, երկարատև idle period-ների համար |
| Domain մակարդակ | Multi-voltage / voltage islands (տես UPF domains) | Dynamic էներգասպառում՝ ավելի ցածր V²-ի միջոցով non-performance-critical domain-ներում |
| Բյուրեղիկի մակարդակ, static | Adaptive body biasing | Per-բյուրեղիկ արտահոսքի margin, կորսված process variation-ի պատճառով |
| System մակարդակ, runtime | DVFS / AVS | ԵՒ՛ dynamic, և՛ արտահոսքային էներգասպառում, adaptively, համապատասխանեցված իրական workload-ին և իրական սիլիցիումին |
Բոլոր վեց շերտերը մեկ անգամ բնութագրվում են նույն UPF ֆայլում (տես UPF in the Design Flow), միասին verified են power-aware մոդելավորման մեջ, և միասին իրականացվում են սինթեզի ու physical design-ի կողմից — չիպի power architecture-ը մեկ համակարգված համակարգ է, ոչ թե վեց առանձին հետին պլանի մանրուք, որ վերջում պտուտակված են վրան։
Աղբյուրներ
- Leakage Optimization Using Transistor-Level Dual Threshold Voltage Cell Library — IEEE Xplore
- Multi-Threshold CMOS Devices: A Comparative Analysis of Leakage Power and Delay — IEEE Xplore
- The Ultimate Guide to Power Gating — AnySilicon
- A Comparative Analysis of Coarse-Grain and Fine-Grain Power Gating for FPGA Lookup Tables — IEEE Xplore
- ICAP: Designing Inrush Current Aware Power Gating Switch for GPGPU — IEEE Xplore
- Soft-Start Header Power Gating for Inrush Alleviated Current Profile — IEEE Xplore
- Adaptive Forward Body Bias Voltage Generator — IEEE Xplore
- Physically Clustered Forward Body Biasing for Variability Compensation in Nanometer CMOS — IEEE Xplore
- A Low-Power Forward and Reverse Body Bias Generator in CMOS 40nm — IEEE Xplore
- Closed-Loop Adaptive Voltage Scaling Controller for Standard-Cell ASICs — IEEE Xplore
- Adaptive Voltage Scaling — Wikipedia
- Explaining Adaptive Voltage Scaling and Dynamic Voltage Frequency Scaling — Semiconductor Engineering
- Dynamic Voltage Frequency Scaling in Multi-Core Systems Using Adaptive Regression Model — IEEE Xplore