U bent hier:
  1. Home
  2. Nieuws
  3. Bekijk


Analyse

Nog geen grote rol voor Arm in embedded computers

Arm is energiezuinig en tegenwoordig ook krachtig genoeg om de concurrentie met X86 aan te kunnen in een tradtioneel Intel-domein als embedded computers. Een rondgang langs leveranciers leert echter...

Interview met Georges Gielen

'Leer jongeren innoveren, en begin vroeg'

Nu politici en beleidsmakers hun aandacht hebben gericht op het oplossen van de crisis en de naderende megabezuinigingen schuift het...

Column

De zendmast kleurt groen

Als het van de initiatiefnemers van het Greentouch-consortium afhangt (www.greentouch.org), zullen we binnen tien jaar duizend keer energie-efficiënter kunnen ‘surfen’. Een mooie maar noodzakelijke...

Achtergrond

Logica wordt steeds flexibeler

13 juni 2010

IC’s programmeerbaar maken is al sinds het ontstaan van de IC-industrie een droom. Die droom wordt in steeds meer doelgebieden werkelijkheid, mede door een zetje van de wet van Moore, die de prestatiekloof met applicatiespecifieke chips dicht.

De halfgeleiderindustrie moet altijd de afweging maken tussen flexibiliteit en energiezuinigheid. Hoe minder een chip kan, hoe efficiënter die dat doorgaans doet. De fabricage kent echter hoge opstartkosten: de chip moet eerst ontworpen worden en er moeten dure maskers worden vervaardigd voordat de productie kan beginnen. De industrie heeft daarom in de loop der geschiedenis een brede reeks aan tussenvormen bedacht tussen generiek en applicatiespecifiek.

Standaard processoren werden al vroeg uitgebreid met drijvende-komma-eenheden voor wiskundige bewerkingen en later met vectorprocessoren voor multimediatoepassingen. In embedded Socs worden vaak DSP’s aangetroffen. Deze zijn nog steeds heel flexibel, maar bakenen toch een doelgebied af.

Aan de andere kant zijn er bijvoorbeeld de applicatiespecifieke standaard producten (ASSP), die wel heel sterk zijn gericht op een toepassingsgebied, maar daarbinnen wel flexibiliteit bieden. Bedrijven als Silicon Hive leveren tools om een chip te optimaliseren voor een specifiek doelgebied, maar toch een vorm van softwareprogrammeerbaarheid te behouden.

De ultieme droom is echter om de hardware zelf configureerbaar te maken. De ontwerpkosten van de chip blijven dan weliswaar, maar voor fabricage kan een standaard component worden gepakt. Het mag dan ook geen verbazing wekken dat de industrie al vroeg in de opkomst van het IC is begonnen met het bestuderen van programmeerbare logica: de mogelijkheid om het IC zelf aan te passen, in plaats van alleen de code die het verwerkt. De geschiedenis van programmeerbare logica ligt bezaaid met een brede reeks technieken, benaderingen en afkortingen als CPLD, Pal, SPLD, ALP, FPGA, LUT, CLB en LAB.

Willekeurig

De eerste configureerbare oplossingen waren ‘maskerprogrammeerbaar’. In feite waren het onafgemaakte chips met standaard logische poorten. De klant kon zelf de laatste metaallaag ontwerpen om de gates met elkaar en met de in- en outputpinnen te verbinden. Motorola kwam in 1969 met een dergelijke chip op de markt, de XC157 met twaalf poorten en dertig I/O-pinnen.

Niet veel later deden devices hun intrede gebaseerd op fuse- of antifuse-technologie. Bij de eerste zijn alle gates in eerste instantie met elkaar verbonden via een aluminium laagje, maar kan een stroomstootje een specifieke verbinding smelten en daarmee permanent verbreken. Bij antifuse wordt er juist een permanente verbinding gelegd door een stroompuls.

In de vroege jaren zeventig ontstonden ook devices gebaseerd op read-only memory-technologie (Rom). De inputlijnen waarmee normaal een geheugenadres wordt gespecificeerd, worden daarbij ‘misbruikt’ voor de invoer van een logisch patroon. Het opgehaalde patroon diende als output. Deze methode was goedkoper dan het afbakken van een chip en maakte, afhankelijk van het type Rom, herconfigureerbare devices mogelijk. Geheugen is echter relatief traag vanwege de decoder die nodig is om een geheugenadres te interpreteren. Bovendien kost het relatief veel energie en zijn er geen registers beschikbaar.

FPGA’s bieden vandaag de dag honderdduizenden logische poorten. Het efficiënt inzetten van al dat silicium vereist steeds complexere synthesetools.

Een belangrijke doorbraak in de jaren zeventig was de programmable logic array (PLA). Deze bestaat uit een rij van And-gates en een rij Or-poorten. De inputs zijn met elke willekeurig And te verbinden en de outputs van de Ands weer met de inputs van elke Or. Eind jaren zeventig volgde een variant van de PLA, de Pal (programmable array logic). Hier zijn alleen de And-poorten programmeerbaar om de kosten te drukken en de prestaties te verhogen.

Afgetapt

Van al die pogingen zijn er vandaag nog twee over met een rol van betekenis: de field-programmable gate array (FPGA) en het complex programmable logic device (CPLD). CPLD’s worden, ironisch genoeg, meestal gezien als simpele chips of als een ‘FPGA-light’. In feite bestaan ze uit een aantal Pals in een enkel IC. Doorgaans bevatten ze enkele duizenden tot tienduizenden logische gates en honderden I/O-pinnen. Ze vinden hun toepassing in de wat simpelere klussen zoals glue logic: het op elkaar aansluiten van verschillende componenten.

FPGA’s zijn het afgelopen decennium uitgegroeid tot het paradepaardje van de programmeerbare logica. Ze kunnen zeer zwaar en complex zijn en besteden een veel groter percentage van het siliciumoppervlak aan de interconnects. De zwaarste high-end FPGA’s tellen honderdduizenden logische cellen en registers en kosten meer dan duizend dollar, maar ook de relatief eenvoudige, kleine (en zuinige) FPGA’s spelen een belangrijke rol in de markt.

De architectuur van een FPGA is fundamenteel anders dan die van een CPLD. Kort door de bocht bevat een FPGA relatief complexe programmeerbare logische blokken, die via een switchgebaseerde interconnect met elkaar verbonden kunnen worden. Kern van een logisch blok is de lookup table (LUT), een programmeerbare poort waar een waarheidstabel in kan worden gezet. Traditioneel zijn vier inputs en één output de norm, maar tegenwoordig hebben de LUT’s doorgaans meer in- en uitgangen. Naast een of meerdere LUT’s bevat een logisch blok nog wat andere logische elementen, zoals een flipflop en een adder.

Het resultaat is een chip waarin elk willekeurig circuit kan worden geprogrammeerd, tot aan complexe processoren toe. Zolang de FPGA daar maar genoeg capaciteit voor heeft. De efficiëntie haalt het weliswaar niet bij een daadwerkelijke hardware-implementatie van een IC, maar is nog altijd stukken beter dan bij een algemeen toepasbare processor. Bovendien zijn FPGA’s standaard componenten die in groten getale van de band rollen, wat ze relatief goedkoop maakt.

FPGA’s gebruiken meestal het vluchtige SRam-geheugen voor hun configuratie. Bij het opstarten moet dus eerst de configuratie worden ingelezen vanuit een extern geheugen. Dat is een nadeel ten opzichte van CPLD’s, die vaak op niet-vluchtig geheugen zijn gebaseerd en daarmee direct na het opstarten werken. Een extra probleem van extern geheugen is dat de gegevens zo kunnen worden afgetapt, wat diefstal van het IP mogelijk maakt. De laatste tijd komen er echter steeds meer FPGA’s op de markt die hun configuratie opslaan op het niet-vluchtige flashgeheugen in de chip. Ook zijn er nog steeds antifuse-gebaseerde varianten te vinden.

Vlag en wimpel

FPGA’s hebben nog een groot voordeel boven processoren: ze kunnen daadwerkelijk parallelle uitvoer bereiken. Waar een multitaskende processor de verschillende applicaties heel snel afwisselt, kunnen in een FPGA verschillende onderdelen voor verschillende functionaliteit worden gereserveerd en naast elkaar draaien. Door hier slim gebruik van te maken, kan een FPGA-gebaseerde oplossing in sommige gevallen toch efficiënter werken dan een dedicated oplossing. FPGA’s worden daardoor steeds meer ingezet als hardwareversneller bij een processor.

Dat is echter lang niet de enige toepassing. Sterker nog, programmeerbare logica breidt haar invloed steeds verder uit naar nieuwe domeinen. Ooit was programmeerbaar silicium alleen goed voor het prototypen van Asics en voor lijmlogica. Echt meespelen met het zware reken- of I/O-werk deden FPGA’s niet. Vandaag de dag zijn ze echter krachtig genoeg om een leidende rol in systemen te spelen. De wet van Moore is de FPGA daarbij goedgezind. Transistoren komen in steeds grotere aantallen beschikbaar. De kloof in prestaties en energieverbruik wordt daardoor steeds kleiner. Aan de andere kant worden de opstartkosten voor het maken van een chip alleen maar hoger met elke krimpslag in de chipindustrie. De afweging tussen Asic en FPGA valt daardoor steeds gunstiger uit voor de programmeerbare logica en er zijn steeds hogere volumes of strakkere prestatie-eisen nodig om de keuze voor een Asic nog te rechtvaardigen. In de markt voor basisstations bijvoorbeeld, die hoge prestaties vereist maar relatief klein is, zijn FPGA’s de standaard oplossing. Analisten van de Linley Group schatten dat het momenteel bij markten die kleiner zijn dan honderd miljoen dollar de moeite niet loont om een Asic te fabriceren.

In 1969 introduceerde Motorola de XC157, een IC met twaalf logische poorten en dertig I/O-pinnen waarin de tweede metaallaag voor het onderling verbinden van deze componenten ontbreekt. Klanten konden deze metaallaag zelf specificeren en opsturen naar de elektronicafabrikant, die de chips vervolgens voor hen vervaardigde. Bron: Motorola-catalogus

Het is dan ook geen verrassing dat de FPGA-markt sneller groeit dan de IC-industrie als geheel. De twee grootste FPGA-fabrikanten Altera en Xilinx, die samen ruim 85 procent van de markt in handen hebben, zijn het crisisjaar 2009 dan ook met vlag en wimpel doorgekomen. Toch is het ook weer niet zo dat de FPGA-markt met sterke cijfers groeit. De Linley Group schat dat de huidige markt voor programmeerbare logica zo’n 3,5 miljard dollar waard is, waarvan ruim 2,5 miljard voor FPGA’s. De komende tijd zal deze markt met 3,5 procent per jaar uitdijen.

Gevestigde orde

Ondertussen kan gerust gesteld worden dat de markt voor de ‘halfzachte ware’ nog lang niet volwassen en uitgekristalliseerd is. Op het gebied van programmeerbaarheid is bijvoorbeeld nog veel te winnen. Het vinden van de meest efficiënte toewijzing voor de logische blokken is lastig en heeft een grote invloed op de prestaties. Veelgebruikte verbindingen moeten natuurlijk zo kort mogelijk zijn. De FPGA-fabrikanten leveren allemaal hun eigen tools om dit zo goed mogelijk door te rekenen, en ook de traditionele EDA-leveranciers zoals Mentor Graphics en Synopsys hebben hun eigen FPGA-oplossingen.

Daarnaast is er het inherente parallellisme van FPGA’s dat ontwerpers nog voor de nodige uitdagingen stelt. Bij een gelijktijdige uitvoering van een groot aantal onderdelen is de toepassing al snel niet meer te overzien. Methodes en tools die kunnen helpen bij het opdelen van de programmatuur in parallelle onderdelen zijn dus zeer welkom.

Een ontwikkeling die nu tot wasdom aan het komen is, is runtime herconfiguratie. Traditioneel wordt een FPGA voor aanvang van een toepassing geprogrammeerd, om daarna braaf zijn kunstje af te werken. In het nieuwste aanbod schermen FPGA-fabrikanten echter met partiële herconfiguratie tijdens de uitvoer: terwijl applicaties in een deel van de FPGA draaien, kan in een ander deel nieuwe code worden geladen. Een toepassing hiervan is energiebesparing. Doordat de applicaties in tijd worden afgewisseld, hoeft niet alle code tegelijkertijd aanwezig te zijn en volstaat een kleinere chip. Verder in de toekomst ligt de mogelijkheid om de code on-the-fly aan te passen aan de applicatie.

Juist door deze en andere innovaties zullen kleine spelers een kans maken om marktaandeel te winnen op Altera en Xilinx, denk de Linley Group. De analist haalt het voorbeeld aan van start-ups Tabula en Tier Logic, die dankzij fundamentele wijzigingen in de architectuur van de FPGA mid-range en high-end exemplaren veel goedkoper kunnen aanbieden dan de gevestigde orde.

Ook is er nog te differentiëren door toch weer een klein beetje de applicatiespecifieke weg in te slaan en FPGA’s te optimaliseren voor specifieke toepassingen. FPGA-makers nemen al vaker hardwareblokken op in hun ontwerpen. Denk aan Arm-, Mips- of PowerPC-processorkernen, DSP’s, of snelle interfaces. Een volwaardige hardwareoplossing blijft nou eenmaal efficiënter dan programmeerbare logica.

Pieter Edelman

Terug naar overzicht



© Bits & Chips | Deze pagina op internet: http://www.bits-chips.nl/nieuws/bekijk/artikel/logica-wordt-steeds-flexibeler.html