Kopioi artikkelin PDF-versio

Paristoilla pidemmälle:

Pieniruokaiset piirirakenteet

cmos-aloitus

Paristo- tai akkukäyttöisissä laitteissa keskeinen mikropiirin hyvyyden mittari suorituskyvyn ja hinnan ohella on pieni tehonkulutus. Tehonkulutusta voidaan optimoida sopivilla piirirakenteilla, teknologiavalinnoilla ja arkkitehtuuriratkaisuilla. Virrankulutusta ja käyttöjännitettä pienentämällä kannettavien laitteiden käyttöaika lisääntyy ja usein myös laitteen paino kevenee.

Digitaalisten mikropiirien käyttöjännitteen alentaminen on erittäin houkutteleva tehonsäästökeino. Samalla käyttöjännitteen syöttöpuolella saadaan sarjaan kytkettyjen akkukennojen tai paristojen määrä pienemmäksi. Haittana on se, että käyttöjännitteen pienentäminen hidastaa piirin toimintanopeutta.

Se miten eri logiikkaportit ja kiikut käyttäytyvät käyttöjännitettä laskettaessa, riippuu niiden toteutustekniikasta. Toisin sanoen logiikkatyypin valinnan lisäksi myös valittu logiikkatyyli ja valmistusteknologia vaikuttavat tehonkulutukseen. Esimerkiksi eristeen päälle valmistettavat (SOI, Silicon-On-Insulator) mikropiirit vähentävät tehonkulutusta, koska teknologia pienentää piirille muodostuvia loiskapasitansseja.

Kaikkein paras tulos saadaan kuitenkin tekemällä suunnitteluvalintoja kaikilla tehonkulutukseen vaikuttavilla tasoilla, joita ovat järjestelmä, arkkitehtuuri, logiikka ja valmistusteknologia.

Transistorilogiikan toiminta

Logiikka muodostuu siten, että transistorin hilalle ohjautuva jännite joko avaa tai sulkee transistorin. Näin tapahtuu kun ohjattu jännite on joko nolla volttia tai käyttöjännitteen jännitetaso. Toimintaa voi kuvata hyvin vesisaavilla, joka sijaitsee lähdössä.

Jos PMOS-transistorien hilalle (piirrosmerkissä hilaan merkitään pieni ympyrä) viedään nolla volttia, transistori avautuu ja päästää ylhäältä, käyttöjännitteestä vettä valumaan lähdön vesisaaviin, joka todellisuudessa on ulostulon kuormakapasitanssi. Kun vesisaavi on täynnä, lähdössä on käyttöjännite eli looginen '1'.

Jos tulojen ohjausjännitteet muuttuvat siten, että NMOS-transistorien kannoissa on käyttöjännitteet, ja näin avattujen NMOS-transistorien ketju muodostaa ketjun lähdöstä maahan, niin lähdön vesisaavi alkaa vuotaa ja tyhjenee. Tämä vastaa lähdön loogista arvoa '0'.

Portin lähtö todennäköisesti ohjaa muita portteja, eli lähtö on kytketty seuraavien porttien tuloihin. Näin mikropiirillä kyetään muodostamaan portteja yhdistämällä monimutkaisia kytkentöjä, kuten esimerkiksi prosessoreita.

Sama logiikka, monta tyyliä

Nykyaikainen sovelluskohtaisen digitaalielektroniikan suunnittelu nojaa vahvasti laitteiston kuvauskielellä (HDL, Hardware Description Language) tehdyn kuvauksen synteesiin. Synteesissä käännintyökalu tekee HDL-koodista piirikytkennän tai -kuvion käyttäen standardisolukirjaston tarjoamia soluja.

Fyysisesti yksi solu on suunniteltavan piirin piirikuvion palanen, joka toteuttaa tietyn loogisen funktion. Yksinkertaisimmillaan tämä tarkoittaa Boolean-algebran NAND-operaatiota. Synteesillä nopeutetaan suunnittelua merkittävästi, mikä nykyajan tuloslähtöisessä liiketoiminnassa ajaa viimeiseen asti huolitellun, ja näin myös hitaan, piirisuunnittelun ohi.

Standardisolukirjaston solut, joita piirikaaviotasolla kutsutaan porteiksi, voidaan rakentaa monella eri tavalla. Näitä eri tapoja kutsutaan tässä artikkelissa logiikkatyyleiksi. Esimerkiksi kahdella tulolla varustettu NAND-portti voidaan koota vaikkapa viidellä eri logiikkatyylillä. Näistä SCMOS ja Pseudo-NMOS ovat yksilähtöisiä logiikoita, DCVSL, DCVSPG sekä PPCL ovat komplementaarisia logiikoita, jotka tuottavat kaksi toisiinsa nähden vastakkaista lähtöä.

Esitellyt logiikkatyylit ovat staattisia, mikä tarkoittaa sitä, että niiden lähtö on lyhyttä tilanvaihtoaikaa lukuun ottamatta aina kytketty joko käyttöjännitteeseen tai maapotentiaaliin. Tästä seuraa hyvät kohinansieto-ominaisuudet. Staattinen logiikka ei ole sidottu järjestelmän kellosignaaliin, vaan loogiset arvot evaluoituvat lohkossa porttien etenemisviiveiden mukaan. Lohkon lähdöt kerätään kiikkupiireistä muodostettuihin rekistereihin, jotta lohkojen rajapinnat saataisiin synkronisiksi eli kelloon sidotuiksi. Tämä helpottaa oleellisesti suunnittelua ja testausta.

Staattisen logiikan lisäksi on olemassa dynaamista logiikkaa, jossa portin lähdön arvo on lähdön kuormakapasitanssin varaustaso. Dynaaminen logiikka on kellotettua eli portissa on vähintään yksi transistori, jota ohjataan järjestelmän kellosignaalilla. Tällä järjestelyllä voidaan saavuttaa huomattavaa parannusta järjestelmän kellotaajuuteen ja tätä kautta suorituskykyyn, mutta tehonkulutus kasvaa 3-5-kertaiseksi verrattuna staattisen logiikkaan.

Loiskapasitanssit pienemmiksi

SOI CMOS -teknologiaa on aina viime aikoihin asti hyödynnetty lähinnä erikoissovelluksissa, kuten suurta säteilynsietoa vaativissa piireissä tai tiheissä muistipiireissä. Nykyisin vaatimukset pienestä tehonkulutuksesta ja nopeudesta ovat kuitenkin kasvaneet varsinkin langattomien sovellusten yleistyessä ja monipuolistuessa. Näissä ja monissa muissa sovelluksissa SOI CMOS -piirit tarjoavat mielenkiintoisen mahdollisuuden korvata perinteisellä CMOS-teknologialla toteutetut piirit.

SOI-transistorit valmistetaan nimensä mukaisesti eristeen päälle perinteisen piisubstraatin sijaan. Eristeenä voidaan käyttää esimerkiksi safiiria tai piisubstraatin päälle kasvatettua piioksidikerrosta.

Perinteisessä CMOS-teknologiassa joko N- tai P-transistorit (tai molemmat) valmistetaan niin kutsuttuihin kaivoihin, jotka kytketään erillisten substraattikontaktien kautta maahan tai käyttöjännitteeseen. SOI-teknologiassa näitä kaivoja ja kontakteja ei ole lainkaan, mikä mahdollistaa entistä tiheämpien piirien valmistuksen. Jos SOI-transistorit valmistetaan piioksidikerroksen päälle, vaikuttaa tämän kerroksen paksuus transistoreiden toimintaan varsinkin analogiapiireissä.

SOI-transistorit ovat myös sähköisesti eristetyt toisistaan, joten osa parasiittisista kapasitanssitansseista poistuu kokonaan ja jäljelle jäävätkin ovat hilakapasitanssia lukuun ottamatta huomattavasti pienemmät kuin CMOS-piireissä.

Sähköisen kontaktin puutteesta johtuen SOI-piireissä ei esiinny niin sanottua lukkiutumista (latch-up), joka CMOS-piireissä aiheuttaa vikatilanteessa äkillisen virrankulun kasvun ja piirin tuhoutumisen tai vähintäänkin tarpeen katkaista piirin virransyöttö hetkeksi toiminnan palauttamiseksi. Tämä on yksi syy siihen, miksi SOI-piirit ovat säteilylle alttiissa sovelluksissa huomattavasti luotettavampia kuin vastaavat CMOS-piirit. Loiskapasitanssien pieneneminen myös nopeuttaa piirin toimintaa sekä hieman pienentää tehonkulutusta.

CMOS-piireissä jokainen liitoskohta aiheuttaa kapasitanssin, joista suurimmat ovat substraatin ja liitoksen välillä, kun taas SOI-transistorissa ainoa merkittävä kapasitanssi muodostuu eristeen yli piikerrosten väliin. Tämä kapasitanssi on kuitenkin huomattavasti pienempi kuin liitoskapasitanssit CMOS-transistorissa.

Testauspiirinä 3G-radiovastaanotin

Tampereen teknillisen korkeakoulun Digitaali- ja tietokonetekniikan laitoksen CLEVER-projektissa tutkitaan lähinnä arkkitehtuurin, logiikan ja teknologian vaikutusta tehonkulutukseen. Sen lisäksi projektissa on pureuduttu DSP-prosessorien tehonsäästötekniikoihin arkkitehtuuritasolta alkaen.

Tutkimuksessa portteja kootaan useista eri logiikkatyyleistä ja niitä verrataan toisiinsa simuloimalla. Kaikista logiikkatyyleistä kootaan lohko, joka toteuttaa saman loogisen funktion. Tässä tapauksessa funktioksi valittiin summain, joka on hyvin yleinen prosessoreissa ja ASIC-piireissä. Tarkoituksena oli löytää logiikkatyyli, joka toimii mahdollisimman pienellä käyttöjännitteellä piirin nopeuden merkittävästi siitä kärsimättä.

Simuloinneissa löytyi muutama logiikkatyyli, joilla oli pienen tehonkulutuksen kannalta lupaavia ominaisuuksia. Näitä tutkittiin edelleen kattavammalla testausfunktiolla ja luotettavammalla simuloinnilla.

Kattavampi testausfunktio tarkoittaa tässä tapauksessa kolmannen sukupolven matkapuhelinjärjestelmän digitaalisen radiovastaanottimen lohkoa. Simuloinnissa taas pyritään ottamaan huomioon piirin fysikaalisten ominaisuuksien mukanaan tuomat muutokset, joita kaikissa käytännön piireissä ovat loisresistanssit ja -kapasitanssit.

CLEVER-projektissa tutkitaan SOI-teknologian käytön vaikutuksia isohkon digitaalipiirin toimintaan ja tehonkulutukseen. Testipiirinä projektissa on VLSI Solutionin kehittämä ohjelmoitava DSP-prosessori, joka alunperin oli toteutettu 0,6 mikrometrin CMOS-teknologialla. Piirikuvio siirrettiin Peregrinen UTSi SOI CMOS -teknologiaan, jossa käytetään 0,5 mikrometrin viivanleveyttä. Prosessi on käytettävissä myös amerikkalaisen MOSIS-prototyyppipiirien valmistuspalvelun kautta.

Kyseisen SOI-teknologian transistoreiden kynnysjännite on noin puolet alkuperäisen CMOS-teknologian kynnysjännitteistä, joten edellytykset käyttöjännitteen pienentämiselle ovat erinomaiset.

Uusimpiin CMOS-teknologioihin verrattuna kaikki nykyiset SOI-teknologiat ovat varsin kypsymättömiä viivanleveyden kannalta, koska niiden kehitystyöhön ei tähän mennessä ole kannattanut investoida rajallisen sovellusmäärän vuoksi. Valmistusmenetelmä on kuitenkin hyvin samankaltainen kuin CMOS-piireilläkin, joten jo olemassa olevia tuotantolinjoja voidaan hyvin pienin muutoksin käyttää hyväksi SOI-piirejä valmistettaessa.

CLEVER-projektissa prosessori valmistetaan fyysisesti piirille asti piirikuviotason teknologiamuunnoksen jälkeen, jolloin saadaan konkreettista tietoa siitä, miten SOI-teknologian käyttö vaikuttaa piirin suorituskykyyn. Tässä tapauksessa vertailu CMOS-teknologialla valmistetun piirin kanssa on myös varsin suoraviivaista, koska molemmat toteutukset ovat toiminnan kannalta periaatteessa täsmälleen samanlaisia.

Älykäs koodaus pienentää tehontarvetta

Siirryttäessä arkkitehtuuritasolle huomio kiinnittyy prosessoripohjaisissa piireissä, joita lähes kaikki digitaalipiirit nykyisin ovat, muistihakujen osuuteen tehonkulutuksessa. Reaaliaikaisessa datan käsittelyssä ei ole paljoakaan tehtävissä datamuistihakujen vähentämiseksi jo käytössä olevien välimuistitekniikoiden ja vastaavien lisäksi.

Sen sijaan käskyjen koodausta integroidussa järjestelmässä voidaan kehittää edelleen sovellusalue- tai jopa piirikohtaiseksi. Tämä on tuttu ilmiö sulautettujen RISC-prosessorien 32/16-bittisistä toimintatiloista, joilla voidaan käytännössä pienentää käskymuistia ja sinne tehtävien hakujen määrää 20-30 prosenttia. Tällaisia ovat esimerkiksi ARM- ja MIPS-prosessoriperheet.

DSP-prosessoreissa tämänsuuntainen ajattelu tekee vasta tuloaan, eikä välttämättä ole edes kovin tehokasta yleiskäyttöisen DSP:n tapauksessa. TTKK:n projektin lähtökohtana onkin kehittää räätälöityjä käskysanojen koodaus- ja dekoodausmenetelmiä, jotka perustuvat sovelluksissa yleisimpien käskyjen ja käskysekvenssien esittämiseen mahdollisimman pienellä bittimäärällä. Periaatteena on, että vain harvinaiset käskyt saavat viedä täyden käskysanan ohjelmamuistissa.

Yksinkertaisimmillaan tällainen menetelmä muistuttaa Huffman-koodausta, mutta käskysekvenssien kompressoinnissa parhaita tuloksia odotetaan periaatteeltaan monimutkaisemmista menetelmistä. Esimerkiksi kätkettyjä Markov-malleja voidaan käyttää kuvaamaan kompressoitu binäärikoodi takaisin prosessorin ymmärtämään muotoon.

Käytännön muutokset järjestelmiä toteutettaessa rajoittuvat käskyndekoodauslogiikan ja käskyt binäärimuotoon koodaavan assemblerin toiminnan uudelleenmäärittelyyn. C-kääntimeen koskemalla tosin saavutettaisiin vielä paremmat tulokset.

Kulutuselektroniikkaan suunnatun piirin suunnittelussa lisätyön vaikutus kustannuksiin on häviävän pieni verrattuna sen avulla säästettyyn tehonkulutukseen ja piirin pinta-alaan. Menetelmillä tähdätään käskymuistin koon ja muistihakujen määrän (ja sitä kautta muistiväylän tehonkulutuksen) vähintäänkin puolittamiseen. Menetelmiä päästään kokeilemaan käytännössä VLSI Solutionin VS-DSP-prosessoriytimen yhteydessä.

Aiheesta enemmän

J.B. Kuo, J.-H. Lou: Low-Vol-tage CMOS VLSI Circuits,
John Wiley & Sons 1999.

MOSIS: www.mosis.org/

Peregrine Semiconductor Corp.: http://www.peregrinesemi.com

IBM SOI: http://www.chips.ibm.com/bluelogic/showcase/soi/

TTKK:n tutkimusryhmä: http://www.cs.tut.fi/~nurmi/

VLSI Solution (VS-DSP): http://www.vlsi.fi


Low-power Circuits and Architectures

Power consumption has become one of the most important parameters in digital circuit design, besides chip area and performance. The power consumption can be addressed on various levels from system level through architecture to logic and transistor level design and fabrication technology.

CLEVER project at Tampere University of Technology tackles the power issues mostly on technology and circuit levels, but is reaching at architectural optimizations as well in the search for low power.

One of the approaches in the project is to use SOI (Silicon on Insulator) process to achieve lower parasitic capacitance levels. A complete DSP processor prototype circuit is used as a vehicle in comparing the power-performance characteristics of SOI vs. CMOS in a real case.

On the circuit level, the attention is turned towards low-voltage operation. Due to the quadratic dependence between the supply voltage and power consumption, the use of as low a voltage as possible is aimed at. Different logic styles are studied in terms of operation at low voltages.

The third level of optimization consists of architectural improvements in DSP processors for low-power operation. One of the key issues in embedded DSP core environments is the program memory utilization. The project targets at reduced access frequencies and also at smaller memory footprint by developing new instruction coding/decoding schemes. The key idea is to develop application-specific encoding schemes to minimize the entropy of instructions and instruction sequences.

The project belongs to the ETX programme, and the consortium contains Nokia Mobile Phones, Vaisala and VLSI Solution. Contact: jari.nurmi@tut.fi


Lyhenteet

ASIC Application Specific Integrated Circuit. Sovelluskohtainen mikropiiri.

CMOS Complementary Metal Oxide Semiconductor. Teknologia, jossa on sekä N- että P-tyyppisiä MOSFET-transistoreita samalla piilastulla.

DCVSL Differential Cascode Voltage Switch Logic. Eräs logiikkatyyli.

DCVSPG Differential Cascode Voltage Switch logic with Pass Gate. Eräs logiikkatyyli.

DSP Digital Signal Processor. Digitaalinen signaaliprosessori.

MOSFET Metal Oxide Semiconductor Field Effect Transistor. Eräs transistorityyppi.

NMOS N-channel Metal-Oxide Semiconductor. Eräs transistorityyppi.

Pseudo-NMOS Pelkistä NMOS-tyyppisistä transistoreista koostuvaa logiikkatyyliä muistuttava logiikkatyyli.

PMOS P-channel Metal-Oxide Semiconductor. Eräs transistorityyppi.

PPCL Push-Pull Cascode Logic. Eräs logiikkatyyli.

SCMOS Static CMOS. Staattinen CMOS-logiikkatyyli.

SOI Silicon-On-Insulator. Eristeen päälle valmistettava puolijohde.

UTSi Ultra Thin Silicon. Hyvin ohut puolijohde.


Tehonkulutuksen jäljillä

Erityisesti digitaaliset mikropiirit valmistetaan useimmiten CMOS-valmistusteknologialla, jossa looginen toiminta muodostetaan yhdistämällä komplementaarisia (eli sekä P- että N-tyyppisiä) kanavatransistoreja (MOSFET). Piirin kokonaistehonkulutus muodostuu pääasiassa staattisesta ja dynaamisesta tehonkulutuksesta.

Edellinen on staattista CMOS-logiikkaa käytettäessä vähäinen nykyteknologioilla, joskin saattaa muodostua merkittäväksi joillakin suureen nopeuteen tähtäävillä logiikkatyyleillä. Myös transistorin johtavaan tilaan saavan kynnysjännitteen alentaminen valmistusprosessissa vaikuttaa staattista tehonkulutusta kasvattavasti.

Merkittävin kuitenkin on dynaaminen tehonkulutus, joka riippuu piirin kellotaajuudesta, kokonaiskapasitanssista, käyttöjännitteen neliöstä ja aktiivisuustekijästä, joka kuvaa tilaansa vaihtavien piirikytkennän solmupisteiden määrää suhteessa kaikkiin solmupisteisiin. Tehonkulutusta voi pyrkiä alentamaan pienentämällä yhtä tai useampaa edellä mainittua tekijää.

Yksinkertaistaen voidaan sanoa, että teho kuluu siihen, kun jokaisella kellojaksolla varataan (tai puretaan) piirin johdotuksen ja loiskapasitanssien muodostamia kondensaattoreita. Piirin aktiivisuuteen voidaan vaikuttaa järjestelmätasolla kytkemällä kellotus pois sellaisista osista piiriä, joita ei juuri sillä hetkellä käytetä. Toinen vaihtoehto on koodata tilanvaihdot siten, että toisiaan seuraavat tilat ovat mahdollisimman samanlaisia (esimerkiksi prosessorin käskykoodissa vaihtuu ohjelman edetessä mahdollisimman harvan bitin arvo).

Kellotaajuutta voidaan toki myös alentaa, mutta piirin suorituskyky laskee samassa suhteessa. Se ei siis ole kovin käyttökelpoinen keino tehonkulutuksen optimoinnissa. Solmupisteiden kokonaiskapasitanssi alenee mahdollisimman optimaalisella toteutuksella. Yleensä paras tulos saavutetaan optimoimalla piiritoteutusta transistoritasolla sen sijaan, että käytettäisiin korkeamman tason kuvausta ja automaattisia työkaluja piirin generoimisessa.

Myös eri logiikkatyyleillä voidaan jonkin verran vaikuttaa loiskapasitanssin määrään. Suurin yksittäinen tekijä, osittain juuri sen neliöllisyydestä johtuen, on käyttöjännitteen pienentäminen. Periaatteessa esimerkiksi käyttöjännitteen pudotus puoleen (esimerkiksi 5 V:sta 2,5 V:iin) pienentää tehontarpeen neljäsosaan tai pudotettaessa käyttöjännite viidesosaan (5 V:sta 1 V:iin) vähenee tehonkulutus peräti 25. osaan alkuperäisestä.

Käytännössä suorituskyky alenee samalla jonkin verran, mutta jännitteen vaikutuksen voidaan arvioida olevan vähintään suoraan verrannollinen tehonkulutukseen sama suorituskyky säilyttäen.


Taustat

Kirjoittajat: TkT Jari Nurmi on TTKK:n Digitaali- ja tietokonetekniikan laitoksen professori ja DSP and Digital Communication Systems On Chip -tutkimusryhmän johtaja.

Mika Kontiala ja DI Piia Simonen ovat projektin työntekijöitä.

Yhteystieto: jari.nurmi@tut.fi

Tutkimushanke: Circuit Level Low-Voltage/Low-Power Techniques (CLEVER)

Yhteistyössä: Nokia Mobile Phones, Vaisala ja VLSI Solution.

Teknologiaohjelma: ETX