Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 23 reacties

Op de ISSCC heeft Suns Marc Tremblay de grote lijnen van het ontwerp van de Rock-processor bekendgemaakt. Threads spelen in de zestien processorkernen van de Rock 'haasje-over'.

Sun heeft zijn Rock-processor op een unieke manier ingericht. De chip is opgebouwd uit vier clusters met in elke cluster vier processorkernen, en elke cluster deelt een instructiecache, twee floating-pointeenheden en twee datacaches. Iedere processorkern kan vier instructies tegelijk verwerken, heeft een oppervlakte van 14 vierkante milimeter en verbruikt 10W. In totaal zal de Rock-processor een vermogen opnemen van 250W. De kloksnelheid van Rock komt uit op 2,3GHz en daarmee zal de chip per thread beduidend sneller zijn dan de Niagara-multiprocessors.

Courante serverprocessors maken meestal gebruik van out-of-order-executie van instructies en branch prediction, zodat de trage aanvoer van data uit het geheugen de processor niet lamlegt. Volgens Sun moet hiervoor te veel ruimte op de chip gereserveerd worden. Bij de Rock-processor is alleen het laatste gedeelte van het uitvoergedeelte van de processor out-of-order.

Threads spelen bij Rock 'haasje-over'. Als een draadje te lang moet wachten op data uit het hoofdgeheugen, wordt de status van de thread opgeslagen in een 'checkpoint' en wordt een 'scout thread' aangemaakt. Deze snelt vooruit totdat het resultaat in het register van de processor kan worden weggeschreven of de informatie wordt in een wachtrij geplaatst. De wachtrij heeft 128 posities en maakt gebruik van energiezuinig sram. Als de originele thread weer data krijgt, volgt deze het verkenningsdraadje. Als de scout wordt opgehouden en ingehaald door de hoofddraad, wisselen ze van functie. In principe wordt een thread dus twee keer uitgevoerd. Per thread zijn acht checkpoints mogelijk. De scout is onzichtbaar voor het besturingssysteem en moet daardoor in principe zonder al te veel aanpassingen bestaande Solaris-code kunnen draaien.

Het ontwerp van de Rock doet denken aan Suns MAJC-javaprocessor en aan het concept van de 'slipstream processors' van de universiteit van North Carolina.

Sun Rock layout
Moderatie-faq Wijzig weergave

Reacties (23)

Eigenlijk best logisch, maar dat is achteraf. De P4 faalde, omdat de hoge klokfrequentie bereikt werd door een lange pipeline. Die was nodig voor de OoO executie, maar de pipeline werd geflushed bij een branch misprediction. Door te switchen naar OoO retirement heb je een kortere pipeline nodig, en ben je bij een branch misprediction een stuk minder instructies kwijt. De consequentie lijkt dat je bij een branch misprediction een scout thread kwijt bent. Jammer, maar je hoeft waarschijnlijk niet op een nieuwe scout thread te wachten dankzij de 8 checkpoints.
Wow, 16 kernen op 1 chip, doet je uitkijken naar wat zo over een jaar of 10 allemaal gaan kunnen ontwikkelen. Die threads structuur waarbij Haasje-over word gespeeld lijkt me ook een serieuze stap voorwaarts.
Eigenlijk gaan we in de komende 3 jaar een enorme draai zien in de x86-CPU markt. Namelijk de CPU+GPU in 1 oplossingen zoals AMD's Fusion en Intel's Havertown.

Men kan namelijk neit eindeloos cores bij plaatsen. Op een bepaald moment zul je nie tmeer nodig hebben. Ik denk dat een consument weinig aan meer dan 16-cores zal hebben. Door de GPU zal een CPU een compleet nieuwe dimensie krijgen. De huidige GPU's zijn in bepaalde berekeningen veel effectiever dan de x86 CPU. Kijk maar naar physics, folding@home en het verwerken van videobeelden.

Voor de CPU's die we dagelijks thuis gebruiken zullen we daar dus de komende jaren een ingrijpende verandering zien. Ik ben niet zo thuis in deze grote clusters en supercomputers waar deze CPU meer in zal worden gebruikt.
Maar dan vergeet je dat ze 18 jaar geleden ook al zeiden dat een 8088 (4Mhz) met 716Kb RAM en een 20Mb HDD echt wel alles was wat je ooit nodig ging hebben.

De hardware blijft gewoon evolueren, maar ook de vereisten van de gebruiker blijven stijgen (kijk maar naar Vista dat opnieuw een heel wat snellere PC nodig heeft dan XP om lekker te draaien).

Daarbij komt dat deze CPU het wellicht niet zo goed zou doen als desktop-procje. Voor renderfarms en grote clusters is ie daarentegen gewoon het beste wat er te krijgen valt denk ik...
Door juist de zwakke punten van de CPU op te vangen door de GPU zal de CPU effectiever worden. Idd heeft de CPU als doel om overal voor te kunnen worden gebruikt, echter blijkt dat zeer inefficient voor bepaalde behandelingen. Deze zullen dus worden opgevangen worden door de GPU.

Verder vergeet ik die uitspraken niet. Maar bedenk wel dat er een punt komt waarop we niet meer kunnen met al die cores. Software meot er speciaal voor worden aangepast. Je ziet nu al in het begin dat games weinig aan de 3e en 4e core hebben. Skulltrial is op dit moment meer marketing en prestige dan dat het echt broodnodig is. Je kunt niet eindeloos threads over cores verdelen.

Een CPU kan namelijk niet de toekomst voorspellen. Een 2e thread kan niet beginnen wanneer hij een antwoord uit een 1e thread niet ter beschikking heeft en het antwoord wel nodig heeft. Voor spellen kun je wel een paar cores inzetten voor de AI van spelers, je kan er een aantal inzetten voor physics berekeningen, en een aantal anderen voor de game zelf. Maar je loopt ergens tegenaan, een punt waarop je gewoon geen andere dingen meer kan verzinnen om al die cores bezig te houden. Dan kun je dus geen gebruik maken van nog meer cores. Hogere clocks zouden dan nodig zijn, maar je weet zelf wel dat juist die ook stil staan.

Verder zullen bij meer threads en meer cores ook weer meerdere threads in 1 core kunnen worden afgehandeld. Puur omdat die core anders toch zou moeten wachten op een antwoord, in de tussentijd kan hij dan evengoed een andere thread afhandelen. Je zult dus steeds minder performancewinst terugkrijgen bij een verdubbeling van het aantal cores. Ik verwacht dat bij 16 of 32-cores het punt wordt bereikt waarbij we praten over een paar procentjes winst. tegenover de helft van het aantal beschikbare cores.

Ik zeg echter niet dat de techniek dan ook stil staat, nee het is gewoon een muur. De clocksnelheid muur is gevonden op zo'n 3-4GHz voor de komende jaren. Zeker op de huidige technieken. Zoals gemeld zullen we zo ook over een aantal jaar na een 4-tal verdubbelingen tegen zo'n muur van cores aanlopen. Niet fysiek dan, maar wel effectief.

Daarna zullen we de CPU dus moeten uitbreiden. Dat zal dus eerst gebeuren met de GPU. Maar ik kan me voorstellen dat zodra er extra power nodig is dat we meer gespecialiseerde CPU's gaan zien in de x86-CPU, net als bij de Cell.

Ten slotte zullen we ook dat niet eeuwig kunnen doen bij de huidige x86-architectuur. Dan zullen we overstappen op iets totaal nieuws. Quantum-CPU's oid. Nee, de techniek staat niet stil, dat zeker niet. Maar we zullen wel constant nieuwe dingen meoten blijven uitvinden en ontdekken om vooruit te kunnen.

Verder heb ik eht dus over de consumenten PC's en niet over de clusters waar deze Sun CPU's in komen. Die vinden rauwe CPU kracht wel leuk ja, maar ook daar zullen GPU's best wel verbetering kunnen vormen. Nogmaals, zie het folding@hoem project.

(post ook als reactie op Mr_Light)

[Reactie gewijzigd door GENETX op 5 februari 2008 17:38]

Een CPU kan namelijk niet de toekomst voorspellen. Een 2e thread kan niet beginnen wanneer hij een antwoord uit een 1e thread niet ter beschikking heeft en het antwoord wel nodig heeft.
Als er processing power te over is kan een CPU makkelijk die tijd gebruiken om inden de mogelijkheden beperkt zijn; gewoon alles uit te rekenen en meteen het antwoord terug geven als het signaal komt. Een CPU hoeft de toekomst dus niet te voorspellen, om toch al iets in de 'toekomst' te kunnen doen. Efficient? dat licht natuurlijk aan de kosten die het met zich meebrengt.
Verder vergeet ik die uitspraken niet. Maar bedenk wel dat er een punt komt waarop we niet meer kunnen met al die cores. Ben ik met je eens, in de zin van dat er een punt komt dat effectiviteit van het toevoegen van extra cores nihil word. Maar ik ben het met je oneens dat dit al in zicht is, verder zijn het in mijn ogen barriŤres; niet muren het stopt niet abrupt.
Software meot er speciaal voor worden aangepast.
Natuurlijk maar er is ook zat software geschreven om op een single core dingen parallelle te laten lijken.
Je ziet nu al in het begin dat games weinig aan de 3e en 4e core hebben. Skulltrial is op dit moment meer marketing en prestige dan dat het echt broodnodig is.
Software bouwers, specifiek game bouwers, houden zich erg bezig met de doelgroep. Ook is tijd geld, waar het op neer komt is ze dat geen aandacht besteden aan het gebruik maken van die 3de en 4de als de penetratie van de markt ervan nog te klein is. Dit gekoppeld met de huidige kennis van game programmeurs mbt het schrijven van parallelle code. Pragmatisme KISS ofzo.

Ook heeft de snelheid van de communicatie invloed op hoeveel cores je nog efficient kunt gebruiken; ze lopen dus hand in hand.

Zodra CPU het verschil in prijs tussen CPU cores en 'G'PU cores vervaagd is de GPU in de vorm zo als hij nu is ook ten dode opgeschreven.

Verder zullen bij meer threads en meer cores ook weer meerdere threads in 1 core kunnen worden afgehandeld. Puur omdat die core anders toch zou moeten wachten op een antwoord, in de tussentijd kan hij dan evengoed een andere thread afhandelen. Je zult dus steeds minder performancewinst terugkrijgen bij een verdubbeling van het aantal cores. Ik verwacht dat bij 16 of 32-cores het punt wordt bereikt waarbij we praten over een paar procentjes winst. tegenover de helft van het aantal beschikbare cores.
Boeie, het gaat erom hoeveel het kost om die cores te verdubbelen. Als de kosten die het opschroeven van de kloksnelheid* hoger zijn dan het verdubbelen van de cores, verdubbel je dus gewoon de cores. Ook als het maar een paar procent is.
Zeker voor spellen is 32->64 nog altijd te weinig om terug te vallen naar een winst van enkele procenten, mits er fatsoenlijk geprogrammeerd word.
*even uitgaande dat er geen andere manier is die minder kost.

voor verdere discussie moet er maar een topic geopend worden.

[Reactie gewijzigd door Mr_Light op 5 februari 2008 20:17]

Je zou over kunnen gaan op microthreading als je genoeg cores tot je beschikking hebt. Op een gegeven moment heb je voor elk object in je spel bv een eigen thread die communiceert met zijn omgeving door middel van message passing. Er zal echt niet gauw een moment komen dat je niet weet wat je met de cores aanmoet.
Op bepaalde platformen (bv NVidia CUDA) zit je nu al met 256*16 threads. En algoritmes hiervoor ontwikkelen is een zeer actief onderzoeksgebied.
Ik ben alleen nog benieuwd naar de schaalbaarheid van zo'n ding, maar als je hier 8 van op 1 bordje kan prikken kun je met een enkele server een flink aantal servers vervangen. Daarnaast is het stroomverbruik ook niet mis, 250W voor de hele cpu lijkt veel, maar verdeeld over 16 cores is het nog geen 16W dat je per cpucore kwijt bent, wat zuiniger zal zijn dat veel Intel en AMD cpus.
'Wow'? Intel heeft toch ook al een 80-core chip laten zien? (Sun zal zo iets ook wel in z'n research labs hebben liggen) Ten opzichte van de T2 is het toch ook niet zo 'wow'? een 'normale' verdubbeling 8(niagra2(T2)) -> 16(rock).

De andere technieken die we hier terugzien in een commerciŽle chip trekken veel meer me aandacht. :9 :9~

@Terw_Dan(hierboven)
The 65nm Rock has an overall die size of 396mm2, and it dissipates 250W of power at 2.3 GHz. The individual, four-issue cores are only 14mm2 and dissipate 10W each.

16 * 10 = 160 -> 250W - 160W dat is toch wel een whooping 90 Watt voor het spul er omheen

@GENETX (hieronder)
Natuurlijk kan je niets eindeloos; dus ook niet cores erbij plaatsen. Het idee dat het einde echter al in zicht zou zijn ben je denk ik de enige mee. Intel zelf maakt het niet voor niets mogelijk om 2 quad cores in z'n game platform te stoppen( nieuws: Intels Skulltrail op de pijnbank gelegd ) en ongetwijfeld is het efficiŽnter om die 8 cores op een chip te bakken. En gaming lijkt me toch echt een consument gericht iets. Voor de rest verwijs ik je naar de roadmaps. Ook die GPU is zo geschikt voor bepaalde berekeningen omdat het goed veel (simpele!->primitievere) dingen parallel kan uitvoeren. en niet omdat het een GPU is hoor. CPU's kunnen dat niet, omdat ze ook ingewikkeldere niet-primitieve dingen moeten kunnen en het dus te duur allemaal zou worden. //edit zie ook darkjeric reactie

[Reactie gewijzigd door Mr_Light op 5 februari 2008 17:06]

Ik weet dat er 10W per cpu core gebruikt wordt voor alleen de core, maar goed, dat maakt de koper van zo'n ding niet uit. het gaat om het stroomverbruik per cpu en wat je dan per core kwijt bent. Zonder die zooi eromheen werken je cores niet, dus zul je dat stroomverbruik wel mee moeten rekenen als je kijkt naar het daadwerkelijke verbruik dat je voor een core hebt.
Ter vergelijking, ik kan zeggen dat een benzine motor maar 1 liter nodig heeft om zichzelf 100KM te verplaatsen. Echter, als eindgebruiker heb ik daar niets aan, gezien ik op z'n minst nog 2 wielen wil hebben, een stuur, enige vorm van stoel e.d.
Die motor mag dan wel genoeg hebben aan 1 liter, alle meuk eromheen zorgt ervoor dat er veel meer nodig is.

In technisch opzicht heb je 100% gelijk, maar ik bekeek het even vanuit een ander perspectief, namelijk, wat vreet de cpu, en wat is het gebruik gedeeld door het aantal cores dat beschikbaar is.
oh sorry het was niet bedoeld als correctie hoor, was meer toevoeging. Hoeveel die meuk er omheen verbruikt is interessant omdat de andere aanpak van sun minder zou gebruiken als intel's design en toch alsnog 90W ~ 90/250 = 36% bij intel(en amd?) zou dit dus nog meer zijn. Gezien de grote van het aandeel dus ook een groot aandachtspunt.

Nu we het er toch overhebben; zelfs die 16W is niet helemaal eerlijk omdat er ook dingen gedeeld worden per cluster van 4 en clusters van 2. Aan de andere kant zijn er ook weer resources gebruikt om de cores met elkaar samen te laten werken die uiteraard met enkele core weer overbodig zijn.
Grappig. Bedrijven welke deze processor bestellen zijn eigenlijk niet geinteresseerd in hoeveel de CPU verbruikt. Zij meten de besparing juist ten opzichte van andere processors.


Ik zal een voorbeeld geven. Laten we er even van uitgaan dat de cores van Sun even snel zijn als die van Intel (maakt de vergelijking iets eenvoudiger). Dat maakt de Rock dan viermaal zo snel als een Xeon van Intel. Je bespaart dan 3 x een Intel Xeon processor uit.

De praktijk is niet heel erg veel anders. Wij (mijn werkbezorger) hebben namelijk een T2 met 4 cores en deze heeft vergelijkbare resultaten als een Xeon. Alleen zal de snelheid niet evenredig toenemen met het aantal cores (net zoals een quad core geen verdubbeling tov een dual core geeft). Maar de Rock zal denk ik toch wel zeker 2 Xeons uitsparen.

Wij gebruiken de T2 met een Oracle database. Wij zullen dus ook niet zo snel overstappen naar een processor met meer cores, omdat weinig toegevoegde waarde zal opleveren. Echter zal de Rock wel zijn weg weten te vinden naar wetenschappelijke projecten welke voornamelijk afhankelijk zijn van reken capaciteit.

Eigenlijk zou ik een vergelijking tussen de Xeon, Rock en Cell processor wel interessant vinden.
'Wow'? Intel heeft toch ook al een 80-core chip laten zien?
Dat was niet een echte maar een proof of principle voor 't een of ander. Een x aantal cores is niet echt nieuw, eigenlijk de meerdere ALU eenheden in een enkele core kan je ook al een soort mult-core nomen.

Ik moet trouwens zeggen de links bij het artikel werken verhelderend, ik had niet gedacht dat zo een manier van werken ook maar practisch zou zijn.. De techniek van tegenwoordig.
In principe wordt een thread dus twee keer uitgevoerd.
Is dat dan niet zonde van de energie die daarmee gepaard gaat, of maakt dat geen verschil in het verbruik?
Dat hoeft niet, als het betekent dat de threads efficienter kunnen worden afgehandeld op deze manier, dan zal het uiteindelijk stroom besparen. Als ik de keuze heb om 1 thread in 10 seconden af te handelen, of 2 threads in 8 seconden, dan is de laatste optie de meest effiente (in tijd gezien).
Zoals ik het lees is het trouwens zo dat op het moment dat 1 thread klaar is, de andere gewoon ophoudt
Als de scout wordt opgehouden en ingehaald door de hoofddraad, wisselen ze van functie.
Een logisch gevolg lijkt mij dat degene die als eerste de finish bereikt wint en de andere dan niet meer nodig is en na het eerstvolgende checkpoint stop gezet wordt.
Ik voel een product-introductie-jingle aan komen...

3rd Stone from the Sun (Jimi Hendrix) :+

Indrukwekkend principe. Zeker als je de energie-dissipatie/-consumptie per processor in een breder verband ziet (in verhouding tot het verbruik van een hedendaagse Xeon/Opteron, o.i.d.)
Maar bekend maken van een principe is toch wat anders dan een Proc lanceren. Dus blijft de vraag wanneer is dit apparaat daadwerkelijk verkoopklaar. Dat lijkt me belangrijker dan behaalde theoretische cijfers en wattages uit Suns eigen ontwikkellab.
1. Ga eens naar de lessen Nederlands.. :|

2. De Xeon en Opteron zijn wel server CPU's en ook zeker niet verkeerd. Maar deze Sun beestjes gaan veel, heel veel, verder. Je kan zo ook niet vergelijken wat mij betreft. Deze CPU's worden meer ingezet voor grote clusters en supercomputers. Xeon's en Opterons worden meer gebruikt voor dataverwerking, deze voor grote ingewikkelde berekeningen.
Klopt, je zult hier voornamelijk hebben over supercomputers, vandaar dat ik verwacht dat deze procs ook zelden in hun eentje op een bordje worden gezet en ze waarschijnlijk zeer schaalbaar zijn. Xeons en opterons zijn leuk voor flinke databaseservers en webservers, dit zijn de computers die echt zware berekeningen mogen doen (en waarschijnlijk ook prima in een renderfarm terecht kunnen).
renderfarm weet ik niet
kan maya ( 3ds max lightwave whatever)
overweg met deze architectuur?
zo ja dan wil ik er wel 1...
alleen dan niet het bonnetje... :)
Suns worden al wel gebruikt voor rendering, bijv http://sun.systemnews.com/articles/38/4/pr-partner/3667 en zo zullen er nog wel meer zijn. Vordeel is dat niet alleen Solaris erop draait, maar ook genoeg linuxvarianten. Hoe het zit met individuele pakketten weet ik zo niet, maar er is genoeg bruikbaar op zo'n bak om mee te renderen.
Xeon's en Opterons worden meer gebruikt voor dataverwerking, deze voor grote ingewikkelde berekeningen.
Inderdaad: 16 cores kan heel snel zijn, maar die kun je nooit goed van gegevens voorzien in de toepassingen van bijvoorbeeld een gewone desktop of een webserver. Als de threads allemaal op data wachten, verlies je alle voordelen van een multicore processor.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True