Tillräckligt bra

Konferenserna har duggat tätt de senaste veckorna. Senast ut var multicore-konferensen förra veckan och FPGA-konferensen i dag. Och i bägge fallen känns det som om begreppet ”good enough” blir allt viktigare.
Jag har varit inne på det här tidigare. Utvecklingen inom olika områden går ofta mycket snabbt, tills dess att man når upp till en ”good enough”-nivå. Sedan planar det ut och allt handlar om kostnadsreduktion. Typiska exempel är digitalkameror och TV-apparater, där det blir allt svårare att hitta nya viktiga och säljande tekniksprång. Delar av mobiltelefonmarknaden närmar sig också sin ”good enough”-nivå, även om det lär ta ett par år till innan de avancerade telefonerna hittar dit.
Nu är det förstås viktigt att säga att varken multicore-tekniken eller FPGA-tekniken som helhet har blivit ”bra nog”. Men det finns delar där man är på god väg och det märks inte minst på multicore-området. Det där jättesprånget mot nya metoder för att hantera massivt parallella arkitekturer verkar mest bara hända på serversidan. På PC-sidan verkar det betydligt ljummare.
I stället ser det ut som om huvudintresset riktar sig mot ”cloud computing”, med datorer som inte nödvändigtvis behöver vara så särskilt mycket snabbare än de vi har idag. I det läget räcker det med kanske fyra kärnor, där operativsystemet får en, antivirusmjukvaran får en och ett par aktiva tillämpningar får var sin. På det här sättet slipper man det gigantiska arbetet att skriva om applikationerna för att kunna köras på flera trådar.
Problemet är som vanligt att i stort sett alla desktopprogram är skrivna på konventionellt sätt för sekventiell bearbetning. Det är ruggigt svårt att skriva om dem för parallell bearbetning och det är långt ifrån alltid värt jobbet. Och för de relativt få programdelar som verkligen drar nytta av parallellisering kan det enligt många konferensdeltagare vara intressantare att använda de grafikprocessorer som redan finns på plats.
De här tongångarna verkade faktiskt vanligare i år än på förra årets multicore-konferens. På server-sidan fortsätter explosionen av processorer och processorkärnor och samma sak händer i avancerade embeddedtillämpningar (till exempel telekomtillämpningar). Men för desktop-tillämpningarna talade allt fler om möjligheterna att effektivisera utan att parallellisera. Där finns fortfarande stora marginaler.
På FPGA-sidan har vi sett en fantastisk utveckling de senaste åren. En miljon grindar är ingen omöjlighet och det rymmer gigantiska konstruktioner.
Men om man skall använda konventionella ASIC-metoder för att konstruera blir det fruktansvärt dyrt, framför allt att verifiera. Det man lätt glömmer bort är att den stora kostnaden i ASIC-projekt faktiskt inte ligger på masker och kisel, utan på konstruktion och verifiering. Och även FPGA-kretsar måste konstrueras och verifieras.
Så nu ser vi en klar trend mot att förenkla konstruktionsarbetet. Flexibiliteten offras till förmån för färdiga byggblock som förhoppningsvis är tillräckligt väl verifierade. Det skall vara lika lätt att konstruera med programmerbar logik som med komponenter.
Också här handlar det om ”tillräckligt bra”. FPGA-tillverkarna har tröttnat på att få stryk av enkapseldatorer som har dålig flexibilitet, men som ofta är tillräckligt bra (åtminstone om man tummar på kraven här och där). Det är inte lätt att sälja in en FPGA-lösning om utvecklingsarbetet tar mycket längre tid och risken är större. Då säger man gärna ”vi testar en FPGA-lösning nästa gång – kanske”.
Ett riktigt bra exempel på ”good enough” är förresten CMOS-teknologin. Alla vet att BiCMOS, GaAs och SiGe är mycket bättre och de senaste tjugofem åren har många dömt ut vanlig CMOS till fördel för bättre processer. Men CMOS är billigare och det går nästan alltid att komma runt problemen. CMOS är helt enkelt tillräckligt bra.
Nej nu får det räcka för den här gången. För min del vet jag i alla fall vad som just nu är viktigast. För några timmar sedan ringde min näst äldsta son från Japan och berättade att han blivit pappa. Det blev en liten flicka. Det är bättre än bra.

Leave a Reply