Bygger mini-nettverk inn i CPU

Forskere ved Massachusetts Institute of Technology (MIT) presenterte denne uken en CPU-design som er basert på en temmelig annerledes arkitektur enn de man finner i dagens pc- og mobilprosessorer. Prosessoren er utstyrt med 36 kjerner med Power-instruksjonssett. Hver kjerne er utstyrt med et nettverksgrensesnitt og -ruter, og all kommunikasjon mellom kjernene skjer ved at datapakker med en fast størrelse sendes via et internt nettverk i prosessoren.

Ifølge professor i elektroteknikk og informatikk ved MIT, Li-Shiuan Peh, som har ledet forskningen, løser bruken av nettverksteknologi et alvorlig problem i mangekjernede CPU-er, men det innfører også et nytt problem. Men i den nye prosessordesignen skal også dette være løst.

Buss
Det eksisterende problemet med dagens mangekjernede CPU-arkitekturer er at all kommunikasjon mellom kjernene skjer via en felles kommunikasjonskanal, en buss. Den kan bare brukes til å utveksle data mellom to kjerner om gangen. Så lenge bussen er reservert av en kjerne, må de andre kjernene med behov for å utveksle data, vente på tur. Jo flere kjerner prosessoren har, desto mer ventetid blir det på å få bruke bussen. Det er i så fall lite effektiv utnyttelse av regnekraften.

I den nye prosessordesignet, som kalles for SCORPIO (Snoopy COherent Research Processor with Interconnect Ordering), er hver av kjernene bare knyttet til de kjernene som er plassert rett ved siden av.

– Du kan nå naboene dine virkelig raskt, sier Bhavya Daya, MIT-studenten som er hovedforfatter av den vitenskaplige artikkelen om den nye designen.

– Du kan også ha flere veier til destinasjonen din. Så dersom du skal gå tvers over det hele, har du flere alternative veier istedenfor bare én eneste, overfylt sti, forteller hun.

Det nye problemet
Hver av kjernene i en flerkjernet prosessor har sitt eget cacheminne, et relativt lite minne som er svært raskt. Det er i dette cacheminne at kjernen leser og skriver data. Under kjøringen hender det rett som det er at andre data må hentes fra hurtigminner på høyere nivå eller fra det langsommere, men langt større systemminnet. Og data som kjernen har oppdatert, vil jevnlig også oppdateres oppover i minnesystemet.

Men noen ganger har en kjerne behov for å bruke data som nettopp har blitt oppdatert av en annen kjerne, før de høyere minnenivåene har blitt oppdatert.

Ifølge MIT-forskerne løses dette i de fleste av dagens brikker ved hjelp av en protokoll som ofte kalles for «snoopy», siden den «spionerer» på kommunikasjonen til de andre kjernene. Dette er mulig fordi kjernene bruker den samme bussen. Når en kjerne trenger en spesifikk bit med data, kringkaster den en forespørsel til alle de andre kjernene og for de mest oppdaterte dataene i retur fra kjernen som har disse.

I SCORPIO sendes dataene i mange ulike retninger og rekkefølger, noe som gjør at forutsetningene for at snoopy-protokollen skal fungere, i utgangspunktet ikke finnes.

Skyggenettverk
Det er løsningen på dette som er det virkelig nye i SCORPIO. Det hele er ifølge forskerne løst ved å utstyre prosessorbrikken med et sekundært nettverk, som er en skygge av det første. Ifølge MITs pressemelding er dette nettverket koblet til svært enkle kretser som kun kan erklære at deres assosierte kjerner har sendt dataforespørsler over hovednettverket. Fordi disse erklæringene er så enkle, kan nodene i nettverket, ifølge forskerne, kombinere dem og sende dem videre uten at det oppstår forsinkelser.

Grupper med slike erklæringer når fram til kjernenes rutere ved særskilte intervaller, som korresponderer med tiden det tar å sende fra den ene enden av skyggenettverket til den andre. Hver ruter kan da føre en tabell over hvor mange forespørsler som ble utstedt i hvert intervall og av hvilke kjerner, allerede før selve forespørselen kommer fram over hovednettverket.

Ved å gi hver kjerne ulike, hierarkisk prioriteringer i forbindelse med hvert intervall, vil en ruter som under et intervall mottar mer enn én forespørsel, kunne sende dataene til kjerne i en annen rekkefølge enn den forespørslene kom inn med. Hierarkiet stokkes om for hver intervall for sikre at alle kjernene vektlegges jevnt over tid.

Ifølge forskerne simulerer den hierarkiske rekkefølgen den kronologiske rekkefølgen til forespørslene som sendes via en buss. Det gjør at snoopy-protokollen fortsatt kan brukes.

Prototype
De antatte ytelsesforbedringene som SCORPIO-designen vil gi, er foreløpig kun teori. Men forskningsgruppen har bygget prototypbrikker basert på designen. Disse skal nå testes for å sikre at de fungerer, før Daya tar dem i bruk i et system med et Linux-system som er modifisert til å kjøres på 36 kjerner. Da vil hun også kunne måle ytelsen til virkelige applikasjoner for å se hvor godt forskningsgruppens beregninger stemmer.

På dette tidspunktet planlegger Daya også å publisere brikkedesignen, som er skrevet i språket Verilog, som åpen kildekode.

Leave a Reply

Your email address will not be published.