Kees van Egmond is Xilinx-gecertificeerd field application engineer bij Avnet-onderdeel Silica in Breda.

6 April 2009

Ook bij FPGA‘s is energieverbruik een heet hangijzer. Kees van Egmond van Avnet Silica beschrijft de maatregelen die FPGA-pionier Xilinx heeft genomen om zijn producten zowel statisch als dynamisch zuiniger te maken.

Een lager energieverbruik is niet alleen goed voor het milieu, maar geeft ook legio voordelen op systeemniveau. Zo kunnen we toe met kleinere voedingen en ook de koeling kan kleiner, of zelfs helemaal weg. Een ander positief effect is de verlengde levensduur van componenten en apparaten: een lagere temperatuur vermindert het verouderingsproces en het in- en uitschakelen van apparatuur veroorzaakt minder thermische schokken, wat weer gunstig is voor de betrouwbaarheid van de systemen.

In FPGA‘s is het energieverbruik afhankelijk van verschillende factoren. In het algemeen maken we onderscheid tussen statisch en dynamische energieverbruik. Onder statisch verbruik verstaan we het verbruik terwijl de component niet actief is, het dynamische verbruik is het verbruik als signalen actief zijn. Dit kunnen kloksignalen zijn, maar ook andere snel wisselende signalen hebben invloed op het verbruik.

Op het statische verbruik heeft de ontwikkelaar geen invloed. Dit wordt uitsluitend bepaald door het design en de geometrie van de FPGA. Het dynamische verbruik hangt af van het ontwerp dat de designer in de programmeerbare chip plaatst, de verschillende componenten uit de architectuur die hij aanspreekt en de aangebrachte klokfrequentie.

Dikkere oxidelaag

Met het voortschrijden van de technologie hebben steeds kleinere transistoren hun weg gevonden naar de FPGA. In slechts een paar jaar tijd zijn we gegaan van 130 nanometer naar 40 nanometer. Dit heeft als voordeel dat we op dezelfde oppervlakte steeds meer kunnen integreren. Bovendien worden de componenten steeds sneller.

Er is ook een nadeel: een toegenomen statisch verbruik. Kleinere transistoren hebben een dunnere isolatie- of oxidelaag en een korter source-drainkanaal, waardoor zowel de stroom door de gate als de stroom van source naar drain toeneemt. Deze lekstroompjes zijn uiteraard zeer klein, maar een moderne FPGA kan miljarden transistoren bevatten, zodat de totale lekstroom aanzienlijk kan oplopen.

Silica figuren 1
Figuur 1: Invloed van de temperatuur op de totale lekstroom. De gate-lekstromen overheersen rond de 25 graden Celsius. Bij hoge temperaturen zijn de lekstromen van source naar drain dominant.

Daarnaast dient de ontwerper er rekening mee te houden dat de lekstroompjes afhankelijk zijn van de temperatuur. Naarmate die stijgt, zal de lekstroom verder toenemen (zie Figuur 1). Componenten enkel kleiner maken, zoals gebeurde in het verleden om SRam-structuren af te beelden op een kleinere geometrie, is dus niet meer voldoende. Het is ook nodig om de temperatuur zo laag mogelijk te houden.

Xilinx, uitvinder van de SRam-FPGA-technologie, heeft dit enige jaren geleden al ingezien en het ontwerp hierop aangepast. Met de Virtex-4-familie, gemaakt in een 90 nm-proces, heeft het een nieuw energiebesparend concept geïntroduceerd. Waar het kan, heeft het de oxidelaag in de transistor dikker gemaakt. Hierdoor wordt de lekstroom kleiner, echter wel ten koste van de transistorsnelheid.

Dit houdt in dat niet iedere transistor in een FPGA hiervoor in aanmerking komt. Alleen de transistoren die min of meer statisch worden gebruikt of degene die niet zeer snel hoeven te schakelen zijn uitgerust met een dikkere oxidelaag. Alle ’snelle‘ transistoren hebben uiteraard een dunne oxidelaag. Waar het verbruik anders zou zijn toegenomen, hebben deze aanpassingen gezorgd voor een afname van zo‘n 40 procent (130 nanometer Virtex-II Pro versus 90 nanometer Virtex-4).

Inmiddels is Xilinx twee generaties verder: via de Virtex-5 op 65 nanometer zijn we beland in het 40 nm-proces voor de Virtex-6. Deze nieuwste FPGA-familie toont een nog grotere de diversiteit van transistoren, met verschillende diktes van de oxidelagen en aangepaste source-drainkanaallengtes. Doordat er meer keuze is tussen snelheid en lekstroom in de transistor, ligt het statische energieverbruik van de Virtex-6 30 procent lager dan bij de vorige generaties. Eenzelfde ontwerpwijziging heeft Xilinx ook doorgevoerd in de nieuwe Spartan-6-familie op 45 nanometer. Dit heeft geleid tot een 50 procent lager statisch energieverbruik ten opzichte van de 90 nm Spartan-3A.

Silica figuren 2
Figuur 2: De afname in energieverbruik over de verschillende Virtex-families

Kloksignalen stilleggen

Waar de miniaturisering van transistoren aanzienlijke nadelige effecten heeft op het statische energieverbruik, zijn de gevolgen voor het dynamische energieverbruik vooral voordelig: de voedingspanning daalt en de capacitieve belasting wordt kleiner. Het opgenomen vermogen volgt de vergelijking P = CV²f. Dit houdt in dat een verlaging van de voedingsspanning V het opgenomen vermogen P direct sterk beïnvloedt.

Hierop voortbordurend, biedt Xilinx met de Virtex-6- en Spartan-6-series de keuzemogelijkheid tussen normaal gespecificeerde componenten en low-poweruitvoeringen. Hierbij is de voedingsspanning teruggebracht van 1,0 naar 0,9 V (Virtex-6) en van 1,2 naar 1,0 V (Spartan-6). Voor een nog verdere reductie in het verbruik heeft de Spartan-6 een Suspend-modus, die de component inactief gemaakt. Dit geeft een aanzienlijke besparing zonder de registertoestanden en de inhoud van het interne geheugen aan te tasten. Figuur 2 geeft een overzicht van de trend in verbruik over de verschillende Virtex-families.

Belangrijk voor het dynamische energieverbruik is ook de sterke trend om steeds meer veelgebruikte, vaak complexe, bouwblokken toe te voegen aan een FPGA. Daarbij valt te denken aan DDR/DDR2/DDR3-geheugencontrollers, DSP-blokken, dual-portgeheugens met Fifo-controllers, Gigabit Ethernet-Macs, multigigabit-zendontvangblokken en PCI Express-blokken. Het gebruik van dergelijke elementen bespaart vele duizenden logische cellen en routingkanalen. Bovendien beslaan ze een veel kleiner deel van de totale oppervlakte van de component, waardoor het energieverbruik fors daalt.

Een andere manier om energie te besparen, is door de kloksignalen stil te leggen in delen van het FPGA-ontwerp wanneer die tijdelijk niet worden gebruikt. Dit kon al door registers en geheugenblokken uit te schakelen via een clock-enable-pin, zodat deze niet meer reageren op een kloksignaal. Het kloknetwerk bleef echter wel actief en energie verbruiken. In moderne FPGA‘s hebben ook de globale klokbuffers een clock-enable-pin, waardoor het gehele kloknetwerk kan worden stilgelegd. Dit geeft een nog verdere energiereductie wanneer een deel van het ontwerp inactief wordt gemaakt. De Virtex-6 heeft deze mogelijkheid ook op lokale klokbuffers, zodat ook delen van een globaal kloknet zijn stil te leggen.