ENSCHEDE, 26 januari 2015 09:16

Enorme besparing op chipontwerp met nieuwe programmeertaal

ICT-onderzoekers van de Universiteit Twente hebben een programmeertaal ontwikkeld waardoor het mogelijk is de enorme kosten van het ontwerpen van hardware beheersbaar te houden. Tijdens het ontwerpproces van nieuwe chips gebruiken fabrikanten al twintig jaar dezelfde technieken. Daarbij moet na elke stap in het ontwerpproces uitvoerig getest worden. Dat kost veel geld. De moderne, zogenaamde functionele programmeertaal maakt het mogelijk vooraf te bewijzen dat ontwerptransformaties honderd procent foutloos zijn.

"Waar je als softwareontwikkelaar een codefout nog kan herstellen door een patch op te sturen, moet je bij een fout in een chip alle producten waar deze chip in is verwerkt, terugroepen", legt promovendus Christiaan Baaij uit. Een dergelijke ontwerpfout kostte Intel  in 2011 maar liefst één miljard dollar.

"Tijdens het ontwerpproces van chips in hardware moet er dus uitvoerig en herhaaldelijk getest worden. Dit testen is duur, maar nu nog nodig. Ontwerpkosten voor een bedrijf als NVidia zijn tegenwoordig al meer dan één miljard dollar per jaar."

7 miljard transistoren op een chip

In zijn proefschrift beschrijft Baaij de wereldwijde chipproductie door de jaren heen. In 1985 kwam Intel met de 386-processor, die 275 000 transistoren bevatte. Anno 2015 heeft de allergrootste chip van NVidia meer dan 7 000 000 000 transistoren. Een ongelooflijke prestatie op het gebied van chipproductie: in dertig jaar tijd van minder dan een miljoen, naar miljarden transistorn per chip.

Helaas ging de productiviteit van de ontwerpers niet met zulke grote stappen vooruit. Tijdens het ontwerpproces van nieuwe chips gebruikt de industrie al twintig jaar dezelfde technieken.

Functionele programmeertaal

De onderzoekers ontwikkelden een moderne, zogehten functionele programmeertaal voor het ontwerpen van hardware. Het gebruik van functionele programmeertalen stelt hen in staat formeel te bewijzen dat ontwerptransformaties correct zijn.

Het gaat om transformaties die de chip sneller maken. De onderzoekers kunnen daarbij bewijzen dat het gedrag van de chip door deze transformatie niet verandert. In tegenstelling tot traditionele methoden is het daarom niet nodig bij elke stap in het ontwerpproces opnieuw alles te verifiëren. De technieken uit moderne programmeertalen maken het dus mogelijk om de complexiteit en de kosten van chipontwerp beheersbaar te houden.

Onderdeel van dit onderzoek is de CλaSH compiler, die beschrijvingen van hardware in de functionele taal Haskell omzet naar een laag-niveau beschrijving. Standaard software kan daar een chip van maken. Het werk van Baaij betreft de ontwikkeling van deze compiler waardoor het nu dus mogelijk is automatisch vanuit een abstracte beschrijving daadwerkelijk de hardware te genereren.

Grote interesse bedrijfsleven

Inmiddels heeft de vakgroep hun werk kenbaar gemaakt bij het bedrijfsleven, dat grote interesse toont. Tijdens de Nederlandse Functioneel Programmeren Dag van 9 januari jongstleden op de Universiteit Twente, georganiseerd door onderzoeker Jan Kuper, waren naast tal van academici veel vertegenwoordigers uit het bedrijfsleven aanwezig. Zo zijn er op dit moment al samenwerkingsverbanden met Incas³ en TNO en toont het High performance computing center Stuttgart (HLRS) grote belangstelling.

Toch merkt Baaij ondanks de grote interesse ook nog wat terughoudendheid. "Veel bedrijven hebben bezwaar tegen het omscholen van personeel en kampen met andere continuïteitszaken. Functioneel programmeren zit niet in het standaardcurriculum. Gelukkig is er wel steeds meer hoop. Apple heeft laatst de taal 'Swift' uitgebracht. Dat is een functionele taal voor de ontwikkeling van apps. Apple kennende, zullen ze die taal uiteindelijk erg gaan pushen. Hopelijk hebben we dan hordes programmeurs die bekend zijn met functionele talen, zodat de chipwereld kan volgen."

De functionele programmeertaal is ontwikkeld binnen de vakgroep Computer Architecture for Embedded Systems (CAES, prof. Gerard Smit) van onderzoeksinstituut CTIT van de Universiteit Twente. Universitair docent Jan Kuper, tevens docent binnen de bachelor Technische Informatica en de master Embedded Systems aan de UT, geeft leiding aan het onderzoek.

Binnen de vakgroep promoveert Christiaan Baaij op het onderzoek met de compiler die de beschrijving in Haskell omzet naar een laagniveau beschrijving. Baaij verdedigt zijn proefschrift getiteld Digital Circuits in CλaSH -- Functional Specifications and Type-Directed Synthesis op 23 januari 2015.

Foto's:

Enorme besparing op chipontwerp met nieuwe programmeertaal

© Aandrijvenenbesturen.nl