Om het aantal threads van de Ultrasparc T1 te verdubbelen heeft Sun een interessante aanpak gekozen. In plaats van zestien cores op een chip te integreren of acht threads om de aandacht van dezelfde eenheden te laten vechten is gekozen voor een hybride oplossing. Iedere core beheert twee groepen van vier threads, waarbij iedere groep bepaalde hardware exclusief voor zichzelf heeft. Onder meer de instructiedecoder, het registerbestand en de integerpipeline zijn dubbel uitgevoerd: voor iedere groep één.
Een hoop andere hardware, waaronder de geheugentoegang en het L1-cache wordt echter nog steeds gedeeld tussen alle acht threads. Je zou een threadgroep dus als een soort 'subcore' kunnen omschrijven. Als zodanig zijn ze overigens ook zichtbaar voor de software, zodat een besturingssysteem dat zich bewust is van het bestaan van de groepen kan proberen de threads er optimaal over te verdelen.

Bandbreedte
Om acht threads te kunnen voeden is een hoop bandbreedte nodig. Binnen de core is dat op twee manieren te merken: de verbinding tussen het L1-instructiecache en de threadgroepen is verdubbeld in breedte, waardoor hij meer opdrachten tegelijk kan ophalen. Verder is er een direct kanaal aangelegd tussen de load store unit en de crossbar. In de Ultrasparc T1 liep al het dataverkeer tussen een core en andere onderdelen van de chip via het L1-datacache. De T2 heeft echter een kortere route met twee keer zoveel capaciteit tot zijn beschikking.
Buiten de core zelf heeft Sun ook flink huisgehouden. De crossbar die alle cores en andere onderdelen van de chip aan elkaar knoopt is in capaciteit verdubbeld en ook de geheugenbandbreedte is ruim twee keer zo hoog. Dat is bereikt door over te stappen van vier kanalen ddr2-geheugen naar acht fbd-kanalen. Opmerkelijk is dat de socket van Niagara 2 ondanks deze forse uitbreiding minder pinnen heeft dan die van zijn voorganger: fully buffered geheugen heeft dus niet alleen maar nadelen. Tot slot is het L2-cache vergroot van 3MB naar 4MB en verdeeld over acht fysieke banken in plaats van vier, wat betekent dat er meer gelijktijdige lees- of schrijfacties op plaats kunnen vinden.
Integratie
De Ultrasparc T2 heeft ook een paar interessante nieuwe dingen in zijn mars op het gebied van integratie. Om te beginnen heeft iedere core voortaan zijn eigen fpu met ondersteuning voor de Sparc-tegenhanger van ssex aan boord: VIS 2.0. Toegang tot de lokale fpu is meer dan zes keer sneller dan een excursie naar de enkele gedeelde eenheid van de T1, die tot overmaat van ramp nog niet eens alle VIS 1.0-instructies ondersteunde. Samengevat: snel rekenen met kommagetallen was haast niet te doen op de vorige generatie, maar werkt prima op de nieuwe chip.
Ook de encryptie-hardware is bij de Ultrasparc T2 in de core getrokken en flexibeler gemaakt. Ondersteuning voor een aantal populaire coderings- en hashing-algoritmes zoals AES, SHA256, Elliptic Curve, CRC32 en 3DES zijn nieuw toegevoegd, terwijl de functionaliteiten uit de T1 (RSA, DSA en DH) natuurlijk zijn behouden.
De encryptiehardware is speciaal ontworpen om data uit een derde integratiepronkstuk te kunnen verwerken: twee 10Gbit-ethernetcontrollers, samen goed voor ruim 2GB/s netwerkverkeer dat zonder zuchten of stoten ge(de)codeerd moet kunnen worden. De controllers zijn strak geïntegreerd met het threading- en virtualisatiemodel van de T2, zodat de datastroom ook onder zware belasting nog soepel door de chip heen kan lopen. Tot slot heeft Sun zijn 3,1GB/s Jbus-interface ingeruild voor een standaard PCI Express x8-link die 4GB/s op en neer kan schuiven.

Gezien de grote verbeteringen die zijn aangebracht op core- en chipniveau is het geen wonder dat de kloksnelheid niet verhoogd kon worden. De chip blijft steken op dezelfde bescheiden 1,4GHz als zijn voorganger. De verkleining van 90nm naar 65nm kon zelfs niet voorkomen dat het tdp ruim de helft omhoog moest. Met 123W is de Ultrasparc T2 echter nog steeds geen extreme heethoofd, zeker niet als Suns claim dat het 'typische' vermogen maar 16 procent is gestegen (van 72W naar 84W) in de praktijk waar wordt gemaakt. Hieronder de belangrijkste specificaties op een rijtje:
Ultrasparc T1 | Ultrasparc T2 | ||||
---|---|---|---|---|---|
Cores | 8 | 8 | |||
Threads per core | 4 | 8 | |||
Procédé | 90nm | 65nm | |||
Kloksnelheid | 1,0 - 1,4GHz | 1,0 - 1,4GHz | |||
Aantal transistors | 279 miljoen | 503 miljoen | |||
Grootte totaal | 378mm² | 342mm² | |||
Grootte core | 11mm² | 12mm² | |||
Pipeline lengte (integer) | 6 stappen | 8 stappen | |||
Pipeline lengte (float) | N.v.t. | 12 stappen | |||
Max. instructies per klok | 1 | 2 | |||
L1-cache (per core) | 8KB data, 16KB instructie | 8KB data, 16KB instructie | |||
L2-cache (gedeeld) | 3MB | 4MB | |||
Geheugencontroller | 4x DDR2-533 (17,1GB/s) | 8x FBD-667 (63GB/s) | |||
Interne crossbar | 134GB/s | 268GB/s | |||
Aantal pinnen socket | 1933 | 1831 | |||
Maximumverbruik | 79W | 123W | |||
Typisch verbruik | 72W | 84W |