Your cart is currently empty!
De comeback van coarse-grain computing
Begin jaren ‘90 werd coarse-grain computing een nieuwe maar hippe trend. Coarse-grain FPGA‘s waren geoptimaliseerd om bewerkingen uit te voeren op woorden in plaats van bits. Ze beloofden efficiënter te zijn dan herconfigureerbare fine-grain arrays voor woordgeoriënteerde toepassingen. Fine-grain FPGA‘s mochten dan wel algemeen toepasbaar en erg flexiebel zijn in gebruik, de grote oppervlakteoverhead (tot een factor 100 tegenover een traditionele ASIC) en het relatief hoge vermogenverbruik beperken hun toepasbaarheid voor batterijgevoede consumententoepassingen. De ontwikkeling van herconfigureerbare coarse-grain arrays loste deze problemen op. Een groot aantal startende bedrijven wilde hiermee dan ook het succes van fine-grain computing herhalen, maar nu voor woordgeoriënteerde toepassingen.
Het leek veelbelovend en toch heeft het niet gewerkt. Coarse-grain computing heeft gefaald. Waar ging het mis? De belangrijkste reden is ongetwijfeld het gebrek aan ondersteuning om de herconfigureerbare coarse-grain arrays te kunnen programmeren. De makers van deze FPGA‘s waren in de eerste plaats hardwaregeoriënteerd. Ze hebben nooit de tools voorzien om vanuit een hardwaresynthese de logische poorten af te beelden op de coarse-grain array. Bovendien palmden de ontwikkelaars van fine-grain FPGA‘s een deel van de coarse-grainmarkt in door de bouwblokken van hun arrays te combineren met coarse-grainelementen, zoals een vermenigvuldiger of snelle opteller. Hierdoor konden ze een aantrekkelijke oplossing bieden voor toepassingen die zowel bit- als woordgeoriënteerde delen bevatten. Coarse-grain computing kon niet langer overleven.
Recent zien we opnieuw een aantal start-ups in hetzelfde domein. Wat is er aan de hand? Wat maakt dat deze bedrijven nu wel succesvol kunnen zijn? De nieuwe golf van coarse-grain computing ontstaat vanuit het feit dat in een algoritme de meeste code typisch instaat voor een kleine fractie van de totale uitvoertijd, en het overige kleine aandeel van de code het leeuwendeel van de uitvoertijd vereist. Een efficiënte oplossing bestaat erin deze eenvoudige maar rekenintensieve code parallel te maken en af te beelden op een coarse-grain array. De complexere code die weinig rekentijd vergt, draait op een microprocessor. Dit concept is volledig vanuit software te compileren, zowel naar de microprocessor als naar de coarse-grain array. Hierdoor vervalt meteen de grootste oorzaak voor het falen van coarse-grain arrays in de jaren negentig, namelijk het ontbreken van goede tools.