Optimizacija snage je pokušaj smanjenja energije koju troše digitalni uređaji kao što su integrirani krugovi balansiranjem parametara kao što su veličina, performanse i rasipanje topline. To je vrlo kritično područje dizajna elektroničkih komponenti jer mnogi prijenosni elektronički uređaji zahtijevaju visok kapacitet obrade uz nisku potrošnju energije. Komponente moraju obavljati složene funkcije, a pritom stvarati što je moguće manje topline i buke, a sve to na vrlo maloj površini. Intenzivno istraženo područje digitalnog dizajna, optimizacija napajanja ključna je za komercijalni uspjeh mnogih uređaja.
Ideja optimizacije snage u elektroničkom dizajnu počela je zaokupljati pozornost kasnih 1980-ih s raširenom uporabom prijenosnih uređaja. Životni vijek baterije, učinci grijanja i zahtjevi za hlađenjem postali su vrlo važni i iz ekoloških i iz ekonomskih razloga. Postavljanje sve složenijih komponenti na manje veličine čipova postalo je od vitalnog značaja kako bi se osigurala proizvodnja manjih uređaja s više funkcionalnosti. Međutim, toplina nastala uključivanjem tolikog broja komponenti postala je glavni problem. Toplina također utječe na čimbenike kao što su performanse uređaja i pouzdanost.
Za povećanje veličine čipova, smanjenje veličine matrice i još uvijek vrhunske performanse na prihvatljivim razinama temperature potrebno je uložiti vrijeme u metodologije optimizacije snage. Ručno optimiziranje snage postaje nemoguće s postojećim čipovima poput integriranih krugova jer sadrže milijune komponenti. Tipično, dizajneri postižu optimizaciju snage ograničavanjem izgubljene energije, što je uglavnom spekulacija, arhitektonski i programski otpad. Sve ove metode pokušavaju smanjiti gubitak energije od razine dizajna sklopa do izvedbe i primjene.
Gubitak programa događa se kada vrhunski mikroprocesor izvršava naredbe koje nisu potrebne. Izvršavanje ovih naredbi ne mijenja sadržaj memorije i registara. Uklanjanje programskog otpada znači smanjenje izvršavanja mrtvih uputa i rješavanje tihih trgovina. Špekulacijski gubitak događa se kada procesor dohvaća i izvršava upute izvan neriješenih grana. Arhitektonski otpad se događa kada su strukture poput predmemorije, prediktori grananja i redovi instrukcija preveliki ili premali.
Uglavnom dizajnirane za držanje velikih količina, arhitektonske strukture obično se ne koriste u punom kapacitetu. S druge strane, njihovo smanjenje također povećava potrošnju energije zbog više pogrešnih nagađanja. Uspješna optimizacija napajanja zahtijeva korištenje pristupa na razini sustava odabirom komponenti koje troše vrlo malo energije. Sve moguće kombinacije ovih vrsta komponenti mogu se istražiti u fazi projektiranja. Smanjenje količine preklopne aktivnosti potrebne u krugu također osigurava manju potrošnju energije.
Neki od drugih pristupa koji se koriste za optimizaciju napajanja uključuju clock gating, režim mirovanja i bolji logički dizajn. Ponovno podešavanje vremena, balansiranje putanje i kodiranje stanja druge su logičke metode koje mogu ograničiti potrošnju energije. Neki dizajneri mikroprocesora također koriste posebne formate za kodiranje datoteka dizajna koje umeću kontrolne značajke za uštedu energije.