Kisel eller mjukvara?

Är kanske pendeln på väg att svänga tillbaka igen? Idag handlar allt om energiförbrukning och i valet mellan programmerbara system och "hårda" ASIC-lösningar är det ingen större tvekan om vad som är energieffektivast. Och det blir samtidigt allt lättare att konstruera med hjälp av färdiga IP-block.

Jag skriver det här ombord på ett franskt snabbtåg från Grenoble till Paris. IP-konferensen IP ESC-09 slutar i eftermiddag och de tre senaste dagarna har varit klart intressanta. Det är tydligt att IP-industrin har kommit långt på vägen mot mognad.

För ett par timmar sedan hade jag ett långt och intressant samtal med Kathryn Kranen, vd för EDA-företaget Jasper och mycket kom att handla om motsättningen mellan mjukvara och hårdvara och den allmänna trenden mot programmerbara system. Kathryn Kranen hävdar med bestämdhet att hon ser allt fler halvledarkonstruktioner, inte färre. Till och med företag som inte tidigare gjort egna kretsar tar nu steget till kisel för att klara sina krav.

Det här går förstås helt på tvärs mot kända trender. "Alla" vet ju att ASIC är på väg ut och att vi i framtiden får se betydligt färre, om än mycket större, konstruktioner. Det är för dyrt och för tidskrävande att konstruera hårdvara.

Men frågan är om det här nödvändigtvis är hela sanningen. Är det verkligen så mycket mera tidsödande att konstruera hårdvara och är det egentligen så mycket dyrare?

Det stora argumentet för mjukvara är förstås flexibiliteten, men där ligger också mjukvarans akilleshäl. I grunden är det ingen avgörande skillnad mellan att skriva kod för hårdvara eller att skriva kod för en processor, men normala programmerare har vant sig vid att ha frihet att göra nästan vad som helst. Ändringar görs kontinuerligt och det innebär bland annat att verifieringen blir en mardröm och att ingen håller deadlines. Projekttiderna blir flytande och ofta förbluffande långa.

Hårdvarukonstruktörerna å andra sidan har sedan många år tillbaka tvingats att inordna sig i metodiker med stora begränsningar. Vid ett givet tillfälle måste allt vara klart och färdigverifierat och därefter finns ingen återvändo. I det läget har "konstnärlighet" och flexibilitet fått stå tillbaka för säkerhet och förutsägbarhet. Resultatet är att de flesta konstruktioner faktiskt är korrekta första gången.

Man skulle kunna tro att mjukvaruvärlden snabbt kunde anpassa sig till den här mera rigorösa och disciplinerade verkligheten, men så lätt är det inte. Här talar vi om en lång tradition som inte bryts på ett enkelt sätt. Resultatet är att hårdvaruutveckling visserligen är dyrt, men inte nödvändigtvis dyrare än mjukvaruutveckling (även om kostnaderna för hårdvaran är lättare att se).

Nu har pendeln varit på väg mot mjukvara och programmerbara system så länge att det kan vara svårt att se den stoppa eller ens sakta in. Det enda argument som skulle kunna påverka utvecklingen är just energiförbrukningen, men det är också ett väldigt bra argument.

Om vi å andra sidan tittar på de viktigaste argumenten mot halvledarkonstruktion, ser vi att världen kanske håller på att ändras. IP-företagens mognad har en viktig roll i det. Det är idag  betydligt enklare att köpa IP-block, integrera IP-block och framför allt verifiera IP-block. Att integrera en krets utifrån ett antal IP-block kräver inte längre en stab advokater och massor av stöd från IP-tillverkaren. Hela arbetet kan gå hyfsat snabbt.

Och det är heller inte nödvändigtvis så fruktansvärt dyrt att tillverka egna kretsar. Den som måste använda 65 eller 45 nm får naturligtvis betala, men redan 180 0ch 130 nm rymmer massor och vid 90 nm får man in nästan hur mycket som helst. Och energiförbrukningen blir inte högre för att man använder lite mognare processer. Tvärtom blir den faktiskt oftast lägre (mindre läckströmmar).

Tiden från prototyp till färdiga kretsar har också blivit kortare. Flödet är ganska strömlinjeformat, åtminstone så länge man håller sig till mogna processer. Och när man väl betalat prototypkostnaden blir styckepriset för de färdiga komponenterna lågt.

Ett alternativ till egna ASIC-kretsar är förstås programmerbar logik. Men om låg energiförbrukning är huvudsaken är det ingen bra lösning, energiförbrukningen i en FPGA kan vara 15 gånger större än i en ASIC-krets och prestanda är klart lägre, trots flera generationer modernare processer. Däremot är FPGA-lösningen självklar som prototyp och i konstruktioner där begränsningarna går att tolerera.

Den som har tankar om det här är välkommen att ringa eller skriva (gote@elinor.se eller +4687157219).

Comments are closed.