prezentace ke stažení
Transkript
prezentace ke stažení
Techniky Návrhu pro Nízkou Spotřebu (Low Power) Ing. Miloš Bečvář [email protected] PI-PSC 1 Osnova prezentace ° Příkon, spotřeba, plošná hustota příkonu ° Motivace pro návrh s ohledem na spotřebu a příkon ° Techniky minimalizace spotřeby na úrovni systému, algoritmu a architektury ° Techniky minimalizace spotřeby na úrovni RTL návrhu ° Gate-level techniky PI-PSC 2 Základní pojmy – příkon obvodu ° Příkon obvodu (Power) [Watt] • Statický – Pstat=Vdd*Ioff • Dynamický – Pdyn=f*a*C*Vdd2 P = Pstat + Pdyn ° Statický příkon (static power, leakage power) je dán zejména podprahovými proudy Ioff zavřených tranzistorů a dalšími plazivými proudy ° Dynamický příkon (dynamic power) je dán zejména opakovaným nabíjením parazitních kapacit hradel a propojení Pdyn=f*a*C*Vdd2 a … faktor aktivity obvodu C … celková parazitní kapacita f … hodinová frekvence Vdd … napájecí napětí Csw … nabíjená kapacita, Csw=a*C Pdyn=f*Csw*Vdd2 PI-PSC 3 Na čem závisí faktory ovlivňující příkon v dané technologii ° Statický příkon • Vdd … závisí na potřebné rychlosti návrhu nebo je dáno • Ioff … závisí na prahovém napětí Vt tranzistoru (větší Vt ,znamená menší Ioff) • Pstat závisí na prostém počtu napájených tranzistorů s daným Vt v obvodu ° Dynamický příkon • Csw … složitost obvodu (C) a aktivita signálů (kolik se jich mění v průměrném taktu) (a) • f … hodinová frekvence závisí na délce kritického zpoždění v návrhu (součet zpoždění hradel a propojení v kritické cestě) • Vdd … závisí na potřebné rychlosti návrhu nebo je dáno ° Důležité poznatky: (1) f závisí na Vdd (v určitém rozsahu) • Lineární nárůst f => přibl. lineární nárůst Vdd => kubický nárůst Pdyn (2) f závisí na Vt tranzistorů v kritické cestě – menší Vt => rychlejší hradla => větší f, větší Pstat PI-PSC 4 Závislost zpoždění hradla na Vdd a Vth – CMOS 0.25u High-Vth tranzistor: Vth=0.55 V, Ioff=2 *10-13 A*um-1 Low-Vth tranzistor: Vth=0.20 V, Ioff=6 *10-10 A*um-1 High-Vth invertor má cca 300 x nižší leakage než Low-Vth. Ale pro Vdd=1V je High-Vth 3x pomalejší než Low-Vth. PI-PSC 5 Závislost Pdyn a f na Vdd Zdroj: Intel EMEA05 Frekvence a Vdd jsou obecně proměnnými návrhu ! Ale ne vždy je možné je libovolně volit (jiná omezení aplikace) PI-PSC 6 Spotřeba a plošná hustota příkonu ° Příkon [Watt] - Význam pro dimenzování napájecích cest (maximální) a pro celkovou spotřebu (průměrný) ° Spotřeba (energy consumption) [Joule] • E = ∫Pdt - Význam u baterií napájených zařízení ° Plošná hustota příkonu [Watt/cm2] - Poměr příkonu vůči ploše čipu - Souvisí s teplotou čipu a chlazením - Průběh příkonu v čase a v oblastech čipu PI-PSC 7 Motivace pro low power návrh ° Rostoucí zájem trhu o nejrůznější baterií napájená přenosná zařízení (mobilní telefony, iPOD, dig. camera, bezdrátové periferie PC, …) ° Problémy se škálováním Vdd a f které vedou na nárůst plošné hustoty příkonu a tím i teploty čipu – problém s chlazením u vysoce výkonných procesorů • Zařízení napájená z RF pole případně pomocí ‘energy harvesting’ – extreme low power, low performance • Špičková zařízení kde je problém jak s chlazením procesoru tak s výdrží na baterie (netbooky, iPAD) – low power, high performance PI-PSC 8 Důsledky pro návrh číslicových obvodů ° Prakticky každý návrh musí dnes být power-aware ° Trochu odlišné strategie je možné zvolit pro minimalizaci příkonu, spotřeby a plošné hustoty příkonu ° Minimalizace příkonu ovšem pomáhá i oběma zbývajícím faktorům ° Obtížnou úlohou je dosažení vysoké rychlosti výpočtu při zachování hledisek spotřeby ° Zatímco klasický návrh procesorů uvažoval pouze CPI, f, a plochu čipu dnes musíme uvažovat i Vdd, příkon, spotřebu a teplotu jako faktory návrhu PI-PSC 9 Úrovně optimalizace spotřeby ° Systémová • Definice rozhraní, protokolů • A/D dekompozice (u smíšených obvodů) • Volba a optimalizace algoritmu výpočtu • Definice operačních módů a jejich parametrů • Rozdělení obvodu do napájecích domén Efektivita optimalizace Nejvyšší 100x ° Architekturní • Volba typu implementace ASIC/FPGA/MCU • Dekompozice mezi HW a SW • Volba typu procesoru, použití koprocesorů • Optimalizace SW ° RTL • Typ časování • Paralelizace logiky • Hradlování hodin, datové cesty a další triky ° Hradlová • Nízkopříkonová technologie • Standardní buňky optimalizované pro low power PI-PSC Nejnižší 2x 10 Vliv Protokolu na Low Power Návrh (1) ° Příklad – USB protokol ° Existují různé kategorie zařízení z hlediska napájení (Self-Powered,BusPowered) ° Bus Powered zařízení v aktivním módu mohou spotřebovávat násobky 100 mA (max 5 x 100 mA) – 100 mA je cca 20x spotřeba běžné aktivní myši ° Ale v USB suspend módu může zařízení spotřebovávat pouze 500 uA PI-PSC 11 Vliv Protokolu na Low Power Návrh (2) ° 500 uA limit USB suspend módu: • 200 uA přes resistory • USB transceiver ve standby módu 20 uA (speciální mód) • Regulátory 80 uA • USB logic 50 uA (detekce bus wakeup) • Zbývá 150 uA na aplikaci (MCU + Optický sensor) 200 uA Přes sběrnici USB Transc. 450 uA / 20 uA Regulator 5V to 3.3V 50 uA USB Logic 50 uA Regulator 3.3V to 1.8V 30 uA ° Z 500 uA limitu je režie protokolu 70 % MCU Optical Sensor PI-PSC ° Existence USB suspend módu vyžaduje low-power návrh aplikace 12 Vliv Protokolu na Low-Power Návrh (3) ° Příklad 2: Pasivní UHF RFID Důležitým parametrem u RFID obvodů je čtecí / zápisová vzdálenost. Ta je dána zejména nutnou intenzitou RF pole k těmto operacím. Energie je ztrácena v usměrňovači (obsahuje napěťový násobič) a v analogových obvodech. Po odečtení statické spotřeby analogových bloků zbývá na logiku jen několik jednotek či desítek uA. U RFID bývá kritický i průběh spotřeby v čase. Energie může být ve formě náboje uložena ve filtračním kapacitoru a použita k hrazení špičkových odběrů při čtení/zápisu. Z toho důvodu je zajímavá statická – standby spotřeba když obvod ‘čeká na příjem’ RFID paketu – zde je zásadní vliv kódování paketu a protokolu. PI-PSC 13 Vliv Protokolu na Low-Power Návrh (4) ° Příjem paketu v pulse-positional encoding: 0 2 1 3 0 2 1 3 0 1 Příklad Příjmu 0110 0 1 1 0 ° Přijímač je založen na čítači doby mezi náběžnými hranami signálu ° Jednoduchý automat rozpoznává podle stavu čítače 0 a 1. ° Spotřeba ve stavu „Listen“ je dána zejména frekvencí hodin přijímače (spotřeba oscilátoru + cca 5 DFF v přijímači) ° Zajímavý problém návrhu: Nižší frekvence oscilátoru => nižší spotřeba ale i vyšší chybovost příjmu (horší schopnost rozlišení 0/1) ° Reálně protokol u RFID determinuje minimální frekvenci hodin přijímače => minimální napětí z hlediska časování a také spotřebu logiky => čtecí vzdálenost PI-PSC 14 Definice Operačních Módů Obvodu ° Následuje tvorba modelu spotřeby v různých módech – s ohledem na spotřebu různých bloků ° Umožňuje provádět odhady vlivu parametrů návrhu na spotřebu ° Model je udržován v průběhu návrhu a průběžně zpřesňován ° Existují automatizované nástroje, ale typicky jsou vhodné jen pro určitou třídu obvodů. Firmy častěji používají vlastní in-house nástroje nebo MS Excel. ° Pro úspěšnou optimalizaci spotřeby je nutné vědět časové procento, které obvod stráví v daném módu => optimalizace spotřeby se potom soustředí na příslušný blok kde je potenciálně nejvyšší úspora (analogie Amdahlova zákona). PI-PSC 15 Návrh energeticky efektivní architektury ° Dána operace a časový limit T na její provedení (typická situace ve vestavných systémech) ° Hledáme architekturu pro výpočet operace, která bude trvat CPO taktů (Cycles Per Operation) při hodinové frekvenci f T CPO clock cycles • Platí : T=CPO / f • Příkon Pdyn = f*Csw*Vdd2 • (Spotřeba) Energie na operaci E = Pdyn*T = f*Csw*Vdd2 *CPO / f = CPO*Csw*Vdd2 • Měřítko efektivity [MOPS/Watt] = 106*f/(CPO* f*Csw*Vdd2) = 106 / (CPO*Csw*Vdd2) ENERGETICKY efektivní architektura má minimální CPO => minimální f => minimální Vdd Csw může i mírně vzrůst, při minimalizaci CPO a Vdd je to téměř vždy lepší. PI-PSC 16 Minimalizace energie na operaci - CPO*Csw*Vdd2 ASIC vs FPGA vs CPU ° ASIC implementace je typicky nejefektivnější př.: - hodiny jako čítač vs hodiny jako program na MCU– 1 takt v HW vs 6*CPI taktů na CPU - 8-bitové násobení – 8 taktů v HW, 56 taktů na CPU bez násobičky … ° FPGA implementace efektivnější než CPU ale horší než ASIC (statická spotřeba v řádu desítek mA je problém pro přenosná baterií napájená zařízení) PI-PSC 17 Energetická efektivita vs Flexibilita PI-PSC 18 Volba typu CPU • CPO = IC * CPI – minimalizovat tento faktor ! • Minimalizace počtu instrukcí (IC) i průměrného počtu taktů na instrukci (CPI) • Šířka slova aplikace = šířka slova procesoru (8b násobení na 8-bit CPU = 56 taktů, 16b násobení na 8-bit CPU 170 taktů) • DSP pro datově intenzivní výpočty, MCU pro řídící aplikace (výpočetně nenáročné) • RISC typicky efektivnější (CPI), pokud IC nevzroste moc (u většiny aplikací – ale pozor na šířku dat) • Nestandardní šířka dat (nenásobek 8b) – má smysl uvažovat o vlastním CPU jádru PI-PSC 19 Rozdělení Shiftregistru Do Dvou Větví Pdyn ≅ Csw*(f/2)*Vdd2 PI-PSC Kritické zpoždění které může zabránit snížení Vdd 20 Rozdělení paměti do bank Pdyn ≅ Csw*(f/M)*Vdd2 Kde M je počet bank. PI-PSC 21 RTL techniky – Paralelizace Logiky © Ch.Piquet, CSEM Pdyn = M*Csw*(f/M)*Vdd2 = Csw*f*Vdd2 Kde M je počet replikací Úspora spočívá v nižším Vdd logiky pro f/M Obdobný efekt poskytuje i pipelining, kde nezvýšíme f, ale snížíme Vdd PI-PSC 22 Optimalizace spotřeby na úrovni RTL ° Každý blok používá nejpomalejší možné hodiny (minimalizace f) ° Každé hodiny tikají jen, když je to užitečné (minimalizace Csw) Konflikty low power technik návrhu - problémy se statickou časovou analýzou (STA) a constrains pro syntézu - problémy s DFT technikami (full-scan, controlability, observability) PI-PSC 23 Paralelizace logiky - příklad © Ch.Piquet, CSEM PI-PSC 24 Hodiny a hodinové děličky D D D D Clk Clk/2 Clk/4 Clk/8 Clk Clk/2 Clk/4 ° Asynchronní dělička (ripple counter) je mnohonásobně efektivnější než synchronní dělička ° Spotřeba N-bitového ripple counteru < spotřeba 2-bitového synchronního čítače ° I přes problémy se STA jsou ripple countery nezastupitelné v low-power návrhu PI-PSC 25 Volba typu časování – DFF vs Double Latch CK1 CK2 tH tD Period Vícefázové hodiny umožňují – toleranci skew - slack-borrowing - nativní hradlování hodin => Efektivnější časování než jednofázové hodiny, ale složitější na návrh PI-PSC 26 Hradlování hodin – základní low-power technika Není obecně korektní: D SET CLR Q Combinatorial Logic Unsafe enable D SET Q Gated clk Q CLR Q clk Korektní: Integrovaný „Clock Gating Cell“ (v některých knihovnách) PI-PSC 27 Hradlování Hodin ° Hradlování hodin typicky na dvou úrovních: • High-level – na úrovni velkých bloků, typicky vloženo ručně neboť bývá kořenem hodinového podstromu. Souvisí s operačními módy obvodu. • Low-level (fine-grained) – vloženo syntézou: Clkpr: PROCESS (clk) BEGIN IF clk’event AND clk=‘1’ THEN IF ec=‘1’ THEN q <= d; Hradlování hodin vloženo, pokud počet DFF > konst. END IF; (konst. typicky zvolena 3-4) END IF; END IF; PI-PSC 28 Hradlování hodin – rizika a problémy ° Hradlování hodin většinou snižuje průměrnou spotřebu návrhu, vždy však zvyšuje maximální okamžitou odběrovou špičku ° Nevhodně vložený clock-gating může zvýšit i průměrnou spotřebu • Pokud je enable signál statisticky spíše povolen než zakázán • Hodinový podstrom s clock-gatingem má vyšší zpoždění a vede na potřebu balancovat stále aktivní větev stromu ! Trvale běžící část ! ! Hradlovaná část ! PI-PSC 29 Low Power Optimalizace Synchronních Automatů (1) ° Clock-Gating Stavového registru ° Fa je přibližná funkce určující kdy automat mění stav S1 S2 ° Umožňuje eliminovat všechny nebo některé čekací smyčky v přechodové funkci automatu PI-PSC 30 Low Power Optimalizace Synchronních Automatů (2) ° Dekompozice automatu PI-PSC 31 Low Power Optimalizace Synchronních Automatů (3) ° Hierarchická dekompozice ° 1 stav FSM1 odpovídá sekvenci stavů FSM2 ° FSM2 bývá nejčastěji čítač PI-PSC 32 Low Power Optimalizace Synchronních Automatů (4) ° Sekvenční dekompozice ° Vhodné pokud automat v čase ovládá 2 různé bloky datové cesty (t.j. mají převážně nezávislé výstupy) ° Výsledkem jsou 2 jednodušší automaty které si předávají řízení PI-PSC 33 Low Power Optimalizace Synchronních Automatů (5) ° Optimalizace kódování stavu automatu pro spotřebu ° ASICentrum heuristika vychází z výběru takového kódování automatu, aby průměrná Hammingova vzdálenost při přechodu mezi stavy byla minimální ° Viz http://www.scalopes.eu PI-PSC 34 Optimalizace Statické Spotřeby (Vdd*Ioff) ° Problém se zhoršuje u jemnějších technologií ° Největší leakage – paměti, registrová pole Používají se High-Vth tranzistory ° Vypínání napájecího napětí pro segmenty logiky: Duální registr pro zachování stavu High-Vth tranzistory Low-Vth tranzistory High-Vth tranzistory ° Praktická realizace po jednotlivých hierarchických blocích je složitější. Zejména je třeba zabránit nedefinovanému vodiči vedoucímu na hradlo které je napájené ! Nástroje pro kontrolu a optimalizaci příliš zatím neexistují – ruční kontrola ! PI-PSC 35 Postup Low-Power Syntézy Pro současné techologie je vhodné druhé kolo power optimalizace provádět při rozmístění a propojení. Podporované optimalizace: • Minimalizace Csw na kritické cestě • Automatické vkládání hradlování hodin • Volba low-power buněk • Automatické vkládání level-shifterů mezi napájecí domény obvodu • Syntéza do standardních buněk multi-Vt – pouze kritická cesta z low-Vt, ostatní – high Vt buňky (minimalizace statické spotřeby) PI-PSC 36 Optimalizace na úrovni layoutu (std. buňky) Podpora automatických nástrojů: ° Vložení hodinového stromu s ohledem na minimalizaci spotřeby ° Power-annotated Placement and Routing Ale moc dobře to nefunguje takže: ° Ruční optimalizace definice hodinového stromu (minimalizace bufferů) ° Ruční předrozmístění kritických bloků (hodinový strom) ° Separátní blok standardních buněk s nejkritičtější spotřebou (typicky logika, která běží stále) ° Ruční layout kritických bloků (např. přijímač v RFID) PI-PSC 37 Asynchronní Návrh pro Low Power (1) Typy asynchronních obvodů: ° Klopné obvody – vnitřně jde o asynchronní obvody. Lokální a známé zpoždění hradel a zanedbatelné zpoždění propojení. Vnější systém musí splnit setup/hold podmínky. ° Delay Insensitive (DI) – fungují pro libovolné zpoždění hradel a propojení. Vysílač musí čekat na potvrzení od přijímače než pošle další data. Přijímač musí mít schopnost detekovat dokončení (data dorazila). Obvody nahrazují hodinový signál několika hand-shake signály. ° Speed Independent (SI) – libovolné zpoždění hradel a zanedbatelné zpoždění propojení. ° Quasi Delay Insensitive obvody (QDI) – neomezené zpoždění hradel a propojení, ale některá zpoždění jsou stejná (tzv. isochronic fork) ° Self-Timed Circuits (ST) – zkládají se ze ST elementů. Ty jsou navrženy jako SI obvody nebo se znalostí zpoždění. Zpoždění mezi elementy opět může být libovolné. Lze chápat jako metodu realizace DI obvodů. PI-PSC 38 Asynchronní Návrh pro Low Power (2) ° Pozitiva: • High Performance & Low Power (většinou) • Instantní reakce z Idle módu • Nízký šum a nízké EMI • Adaptace na změněné PVT ° Problémy: • Využití potenciálu skutečně asynchronního obvodu v rámci jinak synchronního prostředí může být obtížné • Zcela odlišný způsob návrhu spíše na bázi paralelního programování (specializované jazyky, Petriho sítě) – včetně náchylnosti k sémantickým problémům typu deadlock, livelock a pod. • Pro jednoduché obvody typu FSM může jít o overkill a asynchronní obvod může mít i vyšší spotřebu (dominován hand-shake signalizací) ° Nicméně: • Existují úspěšné průmyslové aplikace – např. firma Handshake Solutions (spinoff Philips Semiconductors) • Existují asynchronní IP jádra (8051, AMR996) i CAD nástroje umožňující finální implementaci pomocí standardních buněk • Řada aplikací v oblasti automotive, smartcard a wireless komunikace. PI-PSC 39 Závěry ° Hledisko spotřeby, příkonu a/nebo teploty je dnes součástí téměř KAŽDÉHO digitálního návrhu ° Spotřebu a příkon je třeba minimalizovat na všech úrovních abstrakce ° Dobrý systémový návrh je těžké pokazit na nižších úrovních, ale špatný je obtížné kompenzovat ° Techniky pro vysokou výkonnost jsou i technikami pro nízkou spotřebu (paralelismus, pipelining) ° Pro energetickou efektivitu minimalizovat CPO*Csw*Vdd2 = maximalizovat MOPS/Watt ° Na úrovni obvodové minimalizovat f a Csw PI-PSC 40