Konstruktioner som förr krävde flera processor ryms allt oftare på samma chips. Nu tävlar företagen som licenserar IP-kärnor om att erbjuda de bästa verktygen för multiprocessorkonstruktion.
Ungefär hälften av Arcs kunder bygger kiselsystem med flera processorkärnor. En av kunderna utvecklar just nu en 64-kärnorsprocessor. Tensilicas kunder använder någonstans mellan fyra och sex kärnor i snitt.
Mips verktyg gör det möjligt att lägga "hundratals" kärnor på samma chips. Om några år finns nära 1 000 kärnor på en multiprocessor, tror Mips.
Det är Moores lag som driver utvecklingen. Chipsytan rymmer grindar till allt fler kärnor.
Det finns också ett evolutionärt historiskt skäl. Teoretiskt skulle man idag kunna låta en enda kraftfull processor ta hand om både basband, GPS
och användarprogram i en avancerad mobiltelefon. Men tidigare konstruktioner har delat upp funktionerna i olika processorer. Nu lyfts alltsammans in i ett enda chips.
- Det är enkelt att göra så. Man slipper konstruera om, säger Dave Cormie, CPU-produktchef på Arm.
Samtidigt är det inte optimalt att bara återanvända den gamla strukturen. Nya möjligheter öppnar sig när kärnorna ligger på samma kisel. Det finns inga kapselben i vägen för kommunikationen.
Det betyder att multiprocessorkonstruktören måste byta verktyg och tänka på nya sätt.
De företag som licensierar processorteknik lyfter allt mer fram sitt stöd för multiprocessorer.
Elektroniktidningen har talat med de fyra stora kärnlicenserarna: Arm, Mips, Arc och Tensilica. De berättar om ny teknik men lika mycket om hur deras gamla singelprocessorteknik fungerar bra i multiprocessorer.
Företagen framhåller olika aspekter, alltefter sina specialiteter. Fyra rubriker kan sammanfatta de olika typerna av multiprocessorstöd:
o stöd för konstruktionen av systemet som helhet.
o stöd för att skräddarsy de enskilda kärnorna.
o stöd för kommunikation mellan kärnor, minne, in- och utgångar.
o stöd för programmering och avlusning av det färdiga systemet.
Systemarkitekten vill provköra olika varianter av systemet och avlusa det innan det byggs.
- Det är självklart ingen poäng med
att ha en multiprocessorarkitektur utan programverktyg som stöder den, säger Ashish Sethi, produktchef på Arc.
Arckonstruktören kan simulera sin blivande multiprocessor i avlusaren Seecode med hjälp av tillägget CMPD (coordinated multiprocessor debugging).
- Utvecklaren kan utveckla program i system med hundratals kärnor, säger Ashish Sethi.
Skräddarsydd kärna önskas
Tensilicas motsvarande verktyg heter XTMP (Xtensa modeling protocol). Det är ett C-programgränssnitt i Tensilicas instruktionssimulator ISS. Utvecklaren skriver C-program som simulerar programkörning i enstaka kärnor och i systemet som helhet.
Skräddarsydda kärnor har kommit på modet i och med intresset för multiprocessorer. Hela kiselytan ska nyttjas maximalt. Alla nya kärnor kan idag skala bort funktionalitet som inte behövs. Och Mips hakade nyligen på Tensilicas och Arcs gamla finess att kunna utöka maskinspråket med egendefinierade instruktioner.
Det måste gå att avlusa den färdiga multiprocessorn. Men kärnorna kan inte få fem chipsben vardera till proben. Arc samlar därför kärnornas probtrafik via en växel kallad Madi (Multiple Arc Tangent Debug Interface).
Kommunikationsstödet handlar till exempel om att introducera semaforer för att synkronisera skrivning i gemensamt minne.
Arms minneshanterare kan märka upp vilka adresser som är gemensamma och vilka som är privata för enskilda kärnor. Privata minnesblock behöver därmed inte bekymra sig över kollisioner.
Det finns små men irriterande kommunikationsproblem att lösa. Om ett dataord består av flera byte lagras dessa av vissa kärnor i omvänd ordning - så kallad "little endian". Armv6 kan under körning kasta om byteordningen för att kunna dela data med alla kärnor.
Funktionen har en bonus i att den även kan användas på en högre nivå för att hantera nätprotokoll som använder olika byteordning.
Arc tror på att separera olika typer av trafik från varandra och introducerar tre processorgränssnitt, två minnesbussar plus direktkanaler mellan kärnornas register.
Det är svårt att säga vilken av de fyra IP-licenserarna som stöder multiprocessorer bäst.
Prestanda per kvadratmillimeter
Tensilica och Arc har ett flerårigt försprång i verktyg för att addera extrainstruktioner. Vi kan tacka dem för att verktygen är mogna. Att konfigurerbarhet är viktigt i detta sammanhang visas av att Arm och Mips nu följer efter.
Mips mutar in en ny nisch med sin M4k-kärna och dess stöd för att designa nätverksprocessorer, vilka kännetecknas av många likadana processorer i serie eller parallellt som gör ungefär samma jobb. Mipskärnan är dessutom liten. Ingen kan få in lika många kärnor per chips, enligt Mike Thompson, marknadschef för syntetiserbara kärnor på Mips.
- Vår M4k har högst prestanda per Watt och per kvadratmillimeter på marknaden för syntetiserbara kärnor. Och det är den parameter kunderna efterfrågar.
Arm och Mips har ett försprång i sin nuvarande marknadsdominans, men tätpositionerna kan ändras snabbt, "som en bra hästkapplöpning" som analytikern Jim Turley uttrycker saken.
Kommunikationen över den gemensamma kiselytan är det område som känns minst utforskat. Här trevar sig IP-licenserarna fram med egna lösningar. I framtiden får vi kanske se en större modularitet och öppenhet att blanda IP från olika säljare, med hjälp av kommunikationsstandarder som till exempel Arms Amba-buss.
När kärnantalet fortsätter stiga är det naturligt att tänka sig en utveckling mot "multi-multi-processorer" där grupper av kärnor ligger i kluster som kommunicerar med varandra. Här blir möjligheten att blanda IP-block ännu intressantare. Då krävs standarder för klusterkommunikation motsvarande dagens kretskortsbussar.
Jan Tångring