JavaScript is currently disabled.Please enable it for a better experience of Jumi. Svensk bäst på 10 Gbit/s

Massiv parallellism i nya generationen nätverksprocessorer

Svenska Xelerated leder prestandaligan i den nya generationen nätverksprocessorer. Ett par dussin företag tar upp linjehastigheten till 10 Gbit/s genom att bearbeta i många paket samtidigt.Dessa massivt parallella system-på-kisel blir allt svårare att programmera.
Världens snabbaste nätverksprocessor (NPU) är svensk. 100 miljoner paket per sekund kan detta enda chips ta hand om i en router.

Kapaciteten räcker till fyra 10 Gbit/s-kanaler. Det är dubbelt så många som närmsta konkurrent

Processorn heter X10q och kommer från svenska Xelerated.

- Vi är bäst i klassen, säger Thomas Eklund, en av grundarna till Xelerated.

Xelerated har tre processorer - X10, X10d och X10q - med en, två respektive fyra 10 Gbit/s-portar.

Tillämpningen kan vara att ge en nätoperatör fler portar på samma antal kortplatser.

Detaljerna i arkitekturen är hemliga av patentskäl. Men grunden är fascinerande enkel. Där andra tillverkare satsar på multiprocessorer som delar upp paketen mellan sig, skickar Xelerated allting genom en enda 200 stegs pipeline. Vid varje klockcykel trillar ett paket igenom.

Arkitekturen kan skalas upp till ännu högre linjehastigheter enligt Xelerated.

Xelerated är ett av ett par dussin företag som bygger NPU:er som klarar linjehastigheten 10 Gbit/s. Efter att ha mejslats fram i verkstäderna under ett par år börjar de nu erbjudas på marknaden.

Efterfrågan på bandbredd växer snabbare än Moores lag. Lösningen är parallellism. NPU:er är en av
de viktigaste tillämpningarna för system-på-kisel. Konstruktörerna klämmer in allt fler processorkärnor, hjälpprocessorer och specialinstruktioner.

Processorkärnorna har dessutom oftast flerdubbla registeruppsättningar så att de kan växla mellan programkörningar. Det uppstår väntetider, till exempel vid anrop av en hjälpprocessor då en annan tråd kan ta över processorn.

Hjälpprocessorer används typiskt för tabellslagning och för att köa upp paket i minne. De är dyra och därför gemensam resurs på chipset.

Om den vill fortsätta att kalla sig NPU kan processorn inte ta steget ut och bli en asic - vilka används för att bygga upp de mest kraftfulla routrarna och växlarna. Poängen med en NPU är programmerbarheten som gör att den kan användas i olika nätverksprodukter.

Svår att programmera

Parallella arkitekturer är mycket svåra att programmera. Den toppprestanda som hårdvaran lovar levereras endast om programmeraren kan se till att samtliga processorer är aktiva. Men om två trådar vill göra tabellslagning samtidigt måste de vänta på varandra.

Arkitekturerna är unika och kräver nya sätt att programmera. Den första generationen NPU:er var mardrömmar som programmerades i assembler och ibland krävde att programmeraren uttryckligen synkroniserade processorerna med varandra.

Och efter omständlig programmering kunde det till sist visa sig att NPU:n inte klarade sin genomströmning.

De nya NPU:erna lägger nu mycket krut på att göra programmeringen enkel. Programmeraren ska kunna koncentrera sig på en tråd och ett paket i taget. Flera tillverkare, bland annat Agere, har konstruerat egna programspråk anpassade till flödet i en NPU.

Parallellismen i NPU:n ska helst vara skalbar så att den kan utökas med ytterligare kärnor och fungera i ytterligare generationer. Det är då viktigt att programkoden kan följa med.

Jan Tångring

Prenumerera på Elektroniktidningens nyhetsbrev eller på vårt magasin.


MER LÄSNING:
 
KOMMENTARER
Kommentarer via Disqus

Rainer Raitasuo

Rainer
Raitasuo

+46(0)734-171099 rainer@etn.se
(sälj och marknads­föring)
Per Henricsson

Per
Henricsson
+46(0)734-171303 per@etn.se
(redaktion)

Jan Tångring

Jan
Tångring
+46(0)734-171309 jan@etn.se
(redaktion)