Sun går nye veier innen flertråd-teknologi

Prosessorer kan utføre parallelle transaksjoner langt mer effektivt enn i dag, mener Sun.

Som kjent skal Sun, IBM og Intel alle presentere nye prosessorer på IEEEs årlige konferanse International Solid State Circuits Conference (ISSCC) som starter i San Francisco over helgen. Det Sun skal vise er den lenge omtalte «Rock», en videreføring av den åttekjernede «Niagara» offisielt kjent som Ultrasparc T1. Rock har 16 kjerner som hver kan håndtere fire tråder, og skal være klar til lansering innen utgangen av 2008.

    Les også:

Ifølge EE Times blir Rock den første prosessoren til å basere håndteringen av flere samtidige tråder på metoden «transactional memory», også kalt «atomic transactions».

Hensikten med å fordele en prosess på flere tråder som utføres samtidig er å få opp ytelsen. Prinsippet er det samme som ved å fordele biltrafikk på flere felter. Hver bil har samme fart, men det totale antall biler som passerer et gitt punkt, øker proporsjonalt med antall parallelle felter i veibanen.

Problemet med å dele en databehandlingsprosess i flere samtidige tråder, er at to eller flere tråder kan komme til å ville behandle den samme databolken på samme tid. Det er lett å forestille seg dette på databasenivå: En bankkonto kan oppleve å bli aksessert av to eller flere forskjellige transaksjoner på én gang.

Ofte vil ikke dette spille noen rolle. Stort sett er det likegyldig i hvilken rekkefølge inn- og utbetalinger foregår. Men hvis noen ønsker å lese saldo i forbindelse med en kredittsjekk, bør man vente til alle inn- og utbetalinger er ferdig.

Det er to prinsipielt motsatte måter å verne om data som risikerer å behandles samtidig av to eller flere samtidige prosesser. Den ene er såkalt «pessimistisk». Den går ut fra at resultatet vil bli feil dersom en og samme databolk aksesseres samtidig. Følgelig låses databolken av den første prosessen som melder seg, og andre prosesser stanser opp fordi de må vente til databolken igjen blir tilgjengelig. Denne pessimistiske metoden gir et effektivt vern mot feil, men har negative følger for ytelsen.

Den andre metoden er såkalt «optimistisk». Den går ut fra at det ikke vil skje feil, og tillater følgelig at flere prosessor behandler den samme databolken samtidig. For å gardere seg mot feil, må denne metoden innføre en kontroll i etterkant. Den må for eksempel sjekke loggen til alle transaksjonene som databolken har opplevd, og rydde opp dersom den oppdager en konflikt.

Fordelen ved den optimistiske tilnærmingen er at ingen prosess behøver å vente for å få tilgang til data. Ulempen er at det må innføres en kontrollprosess, og at transaksjoner må kjøres om igjen dersom de har vært utsatt for en feil. Kontrollprosessen kan bidra til å gjøre noen transaksjoner mer korrekte: Den kan for eksempel føre til at saldoavlesing utsettes til alle samtidige inn- og utbetalinger er ferdige.

«Transactional memory» bygger på det optimistiske, men mer kompliserte prinsippet. Erfaringen med det pessimistiske prinsippet som er gjennomført i dagens teknologi for flertrådete prosessorer, er at 99 prosent av låsene er bortkastet, sier prosessorekspert Nathan Brookwood i Insight64 til EE Times. Følgelig kan «transactional memory» bidra med en vesentlig ytelsesøkning. Forbedringen vil være relativt større desto flere samtidige tråder en prosessor skal håndtere. Med Rock er det, som nevnt ovenfor, hele 64 tråder som deler på det samme minneområdet.

Sun erkjenner at implementeringen av det optimistiske prinsippet for flertrådete prosessorer i Rock – og i operativsystemet Solaris som skal kjøre den nye prosessoren – ikke realiserer teknologiens fulle potensial, selv om den fører til en klar forbedring i forhold til løsninger basert på å låse data.

Selskapet har tatt to initiativ for å trekke flere med i arbeidet for å bedre implementeringen av det optimistiske prinsippet. Det ene er at de vil samle et konsortium av selskaper som kan tjene på å realisere det samme prinsippet i sine egne produkter. Det andre er at de har bygget en simulator som skal slippes i åpen kildekode, i håp om at særlig akademiske forskere vil foreslå forbedringer.

Til toppen