Börje Lindh är civilingenjör från Chalmers och arbetar som teknisk expert inom processorer och datorsystemsystem på Sun Microsystems AB. Han har tidigare branscherfarenhet både från IBM och Chalmers. De sista 12 åren har han haft olika specialistroller på Sun i Sverige. |
Den andra kategorin är beräkningsintensiva tillämpningar. Inom denna kategori är flyttalsprestanda ofta viktigt och applikationerna skalar ofta horisontellt, det vill säga man kan dela upp applikationen (till exempel en krocksimulering) och köra den parallellt på ett stort antal servrar. Här krävs varken hög tillgänglighet, mycket I/O eller stora minnen, men ibland ett snabbt nätverk. Beräkningssidan växer snabbare än vad Moors lag tillåter.
Den tredje, och snabbt växande kategorin är nätverkstillämpningar, det vill säga tjänster till klienter på Internet. Dessa maskiner betjänar ofta ett mycket stort antal klienter (PC, handdatorer, mobiltelefoner, spelkonsoler, etc) men skalar horisontellt så man kan lätt utöka kapaciteten genom att utöka antalet maskiner. Kör du ett program på din PC är du bara intresserad av att det enda programmet går så fort som möjligt. Om du betjänar tusentals webbklienter eller mobiltelefoner via Internet blir det istället viktigare hur många man kan betjäna samtidigt med rimlig svarstid. Kraven på tillgänglighet, I/O och minnesstorlek är relativt små. Nätverkssidan växer betydligt snabbare än Moores lag tillåter, med företag som Ebay, Google och Salesforce.com.
Hur kan en processor optimerad för Internetlast se ut? En processor som är optimerad för just nätverkslast är Suns UltraSPARC T1. Den är en implementation av den öppna SPARC V9-standarden (www.sparc.org) och är en 64-bitars processor. Det finns ett antal andra implementationer av SPARC V9, till exempel Fujitsus SPARC64 VI och Suns UltraSPARC IV+.
UltraSPARC T1 är en 90 nm-design som innehåller åtta ganska enkla processorer. Varje processor har en 6-stegs in-order pipeline som kan exekvera fyra programtrådar parallellt. Varje tråd har egen registerstatus, instruktionsbuffer och store-buffer. För operativsystemet och användaren framstår det alltså som en 32-processorsmaskin. Ett enskilt jobb som inte är parallelliserat går inte lika snabbt som på dagens snabbaste en- eller tvåprocessorchip, men man kan dra runt väldigt många jobb samtidigt. Den lämpar sig alltså inte för beräkningskod eller andra tillämpningar där en enskild sak måste gå fort.
Genom att använda en ganska enkel pipeline och relativt sett låg klockfrekvens – 1,4GHz – hålls också energiförbrukning och värmeutveckling nere. De varmaste delarna i en processor är nämligen själva CPU-pipelinen och branch-prediction. Ett chip drar under 65W där många av dagens processorer drar runt 100W. Arbetstemperaturen ligger runt 70 grader, där majoriteten av högprestandaprocessorer idag ligger en bit över 100 grader i just pipeline och branchprediction. Denna skillnad i temperatur kan minska risken för att fel skall uppstå på grund av åldring med över tjugo gånger. I och med att den totala prestandan är hög och energiförbrukningen låg är UltraSPARC T1 ett steg mot mer miljövänlig datorteknik.
Designen av UltraSPARC T1 är open source under GNU General Public License (GPL) och finns tillgänglig på www.opensparc.net. I den nuvarande versionen kallad OpenSPARC 1.4 finns möjlighet att, om man vill, skapa en enkelkärnig, enkeltrådad version av processorn, vilket kan vara intressant om man till exempel behöver skapa en implementation för inbyggda system. Det finns också stöd för att skapa en FPGA-implementation från basdesignen. Man får då en helt synkron design som bättre utnyttjar FPGA-resurser som Block RAMs och Multipliers. Den första tillgängliga processorn som bygger på OpenSPARC T1 är SimplyRISC S1 core.
Orsaken till att Sun inte bara implementerar en standard utan också släpper en implementation som öppen källkod är precis som inom progamvarusidan, att man hoppas på en större spridning av tekniken och att fler skall bidra till utvecklingen.
Vill man ha en licens för att utan krav på royalty konstruera, tillverka och sälja system eller komponenter baserade på SPARC-standarden, går man in på webb-sidan och beställer en licens till en administrativ kostnad av cirka 700 kronor.
För ungefär ett år sedan nådde satelliten Venus Express fram till planeten Venus, och denna satellit innehåller faktiskt två SPARC-processorer. Dels en LEON SPARC V8 processor vilken implementeras i en Virtex FPGA och sköter kameran. Och dels en strålningshärdad ERC32 (SPARC V7) från Atmel i satellitens styrdator. SPARC V7 och V8 är tidigare 32-bitars versioner av SPARC-standarden.
Nästa generation av UltraSPARC T1 presenterades vid MicroProcessor Forum i USA hösten 2006 och den kommer att släppas i produkter redan under 2007. Inget formellt beslut har ännu fattats men avsikten är att även denna processor kommer att släppas som öppen källkod. Det som kan försvåra detta är krypteringsdelen i processorn, då amerikanska myndigheter är lite känsliga när det gäller export av krypteringsteknologi.
Niagara 2, som chipet kallas, är en 65 nm-design med åtta processorkärnor som vardera kan exekvera åtta trådar. Man har i varje processorkärna lagt in två stycken UltraSPARC T1-pipelines, en 12-stegs flyttalspipeline och en krypteringsprocessor som stöder bland annat RC4, AES, DES, 3DES, MD-5 och SHA1/256. Processorkärnorna är via en så kallad cross-bar kopplade till sammanlagt 4MB 16-vägs associativt nivå 2-cache, fördelat på 8 banker. Vidare finns på chipet även minnescontroller, PCI-Express x8 för I/O och 10Gbit Ethernet. För att förbättra minnesbandbredden har de fyra DDR-2 kanalerna i UltraSPARC T1 ersatts av fyra dubbla FBDIMM-kanaler.
Niagara 2 ser ut som man tänkt sig att UltraSPARC T1 skulle sett ut från början, men eftersom man då bara hade tillgång till 90 nm-teknologi så tvingades man göra en del kompromisser, som att bara ha en flyttalsenhet för hela chipet. Niagara 2 är en mer balanserad design och kommer att fungera bra för de flesta typer av applikationer, undantaget tillämpningar där man bara behöver köra ett enkeltrådat jobb med hög prestanda. Den blir till exempel en utmärkt databasserver eller SunRayserver, men inget för beräkningstillämpningar.
Även framtida efterföljare i denna serie finns på ritbordet. För att till exempel lättare kunna konsolidera många äldre maskiner till en, så stödjer maskinerna LDOMS – logiska domäner.
Förutom minne och strömförsörjning är det i princip en komplett 64-tråds 64-bitars dator.
Detta är bara början av övergången från mikroprocessorer till mikrosystem. Man tror på många håll att vi i framtiden inte kommer att se på mikroprocessorer som vi gör i dag. Precis som vi gick från minidatorer där processorn var ett helt kort, till PC/arbetsstationer där processorn var ett chip, så håller vi nu på att gå över till mikrosystem där allt utom minne finns på ett enda chip.
Sun tittar även på en liknande processor kallad Rock som i stället är optimerad för dataintensiva och beräkningsintensiva tillämpningar. Man gjorde tape-out på detta 16 kärnors-chip i vintras och hade Solaris körande i fleranvändarläge nu i maj. Här stöds något färre trådar per chip men dessa trådar har i gengäld betydligt högre prestanda, dels genom högre klockfrekvens och dels genom funktioner som till exempel hardware scout, en avancerad form av prefetch.
Hur ser framtiden ut? Det spekuleras i att det i framtiden kommer att finnas ett mindre antal ”datorer” i världen, där varje ”dator” består av en väldig massa processorer fördelade mellan några stora datacentraler i världen. Något i stil med några ”Super-Google” som tillsammans tillhandahåller de tjänster som nätanvändarna behöver, ungefär som ett mindre antal stora elbolag i dag tillhandahåller den el användarna behöver i stället för att alla har var sitt eget kraftverk. I detta framtidsscenario passar processorer som stöder stora antal trådar perfekt in.