Hoofdcategorieën

Nieuw reactie in topic: [Discussie] Dual core Intels: Pentium D, Core (2) Duo, Xeon

Let op:
  • Reageer ontopic, plaats geen onzinnige berichten en ga niet flamen of uitlokken (trollen).
  • Zie je iets dat niet door de beugel kan, attendeer dan een moderator via een topicreport maar post hierover niet in het topic, dat werkt alleen averechts. Zie ook de policy die wij op dit forum hanteren.
  • Lees je eigen bericht even door voor je het post.

Insert message
 
Waarschuwing:
Dit topic gaat over de technische discussie omtrent de Dual Core Intels.

Het is dus niet de bedoeling om doelloos "Welke moet ik nemen?" vragen te dumpen.
Hiervoor zijn er reviews en hierover is de FAQ van dit subforum duidelijk genoeg.

Ook gaat dit topic niet over problemen met Dual Core Intel systemen. Daarvoor kun je gewoon een nieuw topic starten, mits aan het PMG beleid voldoend.

Posts die de bovenstaande regels niet in acht nemen en/of gewoon dik offtopic zijn worden zonder nadere mededelingen modbreaked of verwijderd.

Let op! Het laatste bericht in deze discussie is meer dan 2 weken oud!

 

Smilies: :) :( ;) >:) :> :P :9 :o :*) :'( 8) :+ :D _/-\o_ :9~ O+ :O }:O :/ :| :X :? 8)7 |:( O-) :z ;( meer »

Page navigation

Laatste reacties:

 
Het tweede deel. Dit topic is gewijd aan de dual-core processoren van Intel. In dit topic kunnen daarover alle in's en out's besproken worden. Gezien de Intel Pentium D niet zo denderend populair is zal deze topicstart meer informatie bevatten over de Intel Core 2 Duo processor.

Hieronder staat een inhoudsopgave (en startpost) die onderverdeeld is in twee globale stukken.

Inhoudsopgave:

Algemene informatie
De processoren


Deze titel omvat eigenlijk twee vragen. Zowel de Intel Pentium D als de Intel Core 2 Duo zijn dual-core processoren van Intel. Toch is het niet mogelijk om specifiek uitleg te geven over de werking omdat beide soorten processoren vanelkaar afwijken.

Om de uitleg enigszins gemakkelijk te houden is hieronder een globaal stukje over dual-core geplaatst. De specifiekere eigenschappen zullen nadien behandeld worden.

Interessant leesvoer omtrent dual-core processoren:
Tweakers.net - Vergelijking dual-coretechnologie Intel en AMD

Terug naar de inhoudsopgave

Dual-core globaal

Een dual-core processor heeft zoals de naam reeds doet vermoeden twee cores aan boord. Dat wil zeggen dat er twee processoren onder één kap aanwezig zijn.

Single-core processorDe linkse afbeelding dient een single-core processor voor te stellen. Er is slechts één core aanwezig welke berekeningen uit kan voeren. Om het makkelijk te zeggen, er is één snelweg waar auto's overheen kunnen rijden.

In de computerwereld zou dit betekenen dat er slechts één thread (een applicatie kan uit meerdere threads bestaan) per keer uitvoeren. De thread welke daarna berekend moet worden zal eerst moeten wachten totdat de eerste klaar is.
Rechts zien we een afbeelding welke ons aan een dual-core processor moet doen denken. Ditmaal zijn er twee snelwegen beschikbaar. Twee snelwegen kunnen twee stromen van auto's tegelijk verwerken.

In de computerwereld zou dit betekenen dat er twee threads tegelijk uitgevoerd kunnen worden. Dit kan één programma zijn welke twee threads tegelijk uit moet voeren. Anderzijds is het mogelijk om twee programma's tegelijk te draaien welke één thread per keer uitvoeren.

Dual-core processor
Menig persoon zal reeds denken: Iedere PC vanaf de 386 kon toch al meerdere applicaties tegelijk uitvoeren? Ogenschijnlijk wel. Met behulp van multi-tasking is het mogelijk om meerdere programma's op te starten en te laten draaien. Dit lijkt allemaal tegelijk te gaan maar niets is minder waar gezien alles tóch één voor één wordt uitgevoerd. Met menig applicatie zal het niet merkbaar zijn dat het eigenlijk één voor één behandeld wordt. De hedendaagse processoren zijn dermate snel dat dit geen problemen oplevert.

Dit multi-tasking zal snel verlopen totdat er een applicatie welke zware berekeningen uitvoert om de hoek komt kijken. Deze applicatie zal veel rekenkracht tot zich nemen waardoor er voor de rest van de applicaties minder overblijft. Gelukkig is menig besturingssysteem in staat om prioriteiten te stellen. Het zal ervoor zorgen dat alle beschikbare kracht netjes verdeeld wordt zodat één applicatie niet in staat is om alle kracht tot zich te nemen.

Echter hangt daar alsnog een nadeel aan. Één applicatie dat 98% (2% voor overige lichte applicaties) van de CPU kracht opneemt zal op volle snelheid draaien. In geval van een Intel Pentium 4 530 (3GHz) zal de applicatie ongeveer draaien als een Intel Pentium 4 530 (3GHz). Totdat er een andere zware applicatie om de hoek komt kijken. Deze applicatie wil ook graag alle beschikbare processorkracht hebben. Het besturingssysteem zal wederom prioriteiten stellen. De nadelen zullen al snel zichtbaar zijn zodra applicatie 1 slechts 49% CPU kracht krijgt, applicatie 2 slechts 49% CPU kracht krijgt en de overige lichte applicaties het wederom met 2% af kunnen handelen. Dit zou in principe betekenen dat zowel applicatie 1 als applicatie 2 verwerkt worden met ieders één helft van de Intel Pentium 4 530 (3GHz) processor. Kijkende naar het getal van de processor zal elke applicatie dus met de snelheid van een Intel Pentium 4 1,5GHz berekent worden.
Dit alles zorgt ervoor dat de applicaties trager zullen draaien. Ook de PC zal trager aanvoelen omdat alles wat gebeurt (een klik op een start knop vereist al berekeningen!) berekend moet worden met een processor welke de handen vol heeft aan twee zware applicaties.

Het moge dus duidelijk zijn wat het effect is van een dual-core processor. Zodra men een Intel Pentium D 930 (3GHz) zal gebruiken zullen zowel applicatie 1 als applicatie 2 beide met een snelheid van een Intel Pentium 4 530 (3GHz) berekent worden (i.p.v. een Intel Pentium 4 1,5GHz). Immers zullen de applicaties verdeeld worden over de beschikbare cores (=processoren).

Gemakshalve is er gekozen voor een vergelijking tussen een 3GHz en een 1,5GHz Intel Pentium 4. Bovenstaande tekst suggereert dat de 3GHz processor twee keer zo snel is als de 1,5GHz processor. Dit is in de praktijk absoluut niet waar omdat het aantal GHz'en van een processor werkelijk niets zegt over de uiteindelijke prestaties van een computer.

Naast het draaien van twee applicaties tegelijk is het ook mogelijk één applicatie te draaien welke beide cores zal benutten (mits de applicaties dat kan). Hierbij spreekt men over multi-threaded applicaties. In dergelijke applicaties dienen de cores niet ‘langs elkaar heen te werken’. Ofwel, het is belangrijk dat de taken verdeeld worden.
Stel dat er twee opdrachten gegeven worden. De eerste opdracht gaat naar CPU0 en telt 100 punten bij een score op. De andere opdracht is bestemd voor CPU1 en dient er 15% bij op te tellen. Welke van de twee opdrachten dient dan eerst uitgevoerd te worden? Immers is de uitkomst anders als CPU1 eerder aan de beurt is dan CPU0.

Bovenstaande voorbeeld laat zien dat het implementeren van software die geschikt is voor dual-core vrij lastig kan zijn. Zeker bij games waarin een ingewikkelde AI aangestuurd moet worden. Bij videobewerken is dit een ander verhaal. Bij het encoden worden er na een aantal frames een key-frame gerendered. Als voorbeeld zou CPU0 zich bezig kunnen houden met de eerste 15 frames (+ keyframe) en CPU1 verwerkt vanaf de 16e frame tot en met de 30ste frame. Uiteraard ook met keyframe. Aan het einde van de rit kunnen deze ‘losse stukken’ achter elkaar geplakt worden waardoor een volledige film incl. key-frames ontstaat.

Terug naar de inhoudsopgave

Dual-core specifiek: Intel Pentium D

Overzicht dual-coreHiernaast is een schematische afbeelding van de Intel Pentium D 'Smithfield' te zien. Heel globaal komt het er op neer dat dit twee Intel Pentium 4
'Prescott' processoren zijn.

De Intel Pentium 4 heeft één front-side-bus (FSB) tot haar beschikking. De Intel Pentium D heeft dit ook. Immers zijn enkel de cores van de Intel Pentium 4 aan elkaar geplakt. Niet de FSB noch de chipset.
Omdat er slechts één FSB beschikbaar is en er twee cores zijn dient er een verdeling plaats te vinden. Bij de Intel Pentium D wordt hiervoor een arbiter gebruikt.

Deze arbiter dient als politieagent voor beide cores. Hij zal ervoor zorgen dat CPU1 rood licht krijgt te zien zodra CPU0 gebruik maakt van de FSB.

De foto hieronder laat net zoals de vorige schematische afbeelding zien dat het om twee dezelfde, aan elkaar geplakte cores gaat. In onderstaande foto is het goed zichtbaar omdat de linkerhelft hetzelfde is als de rechterhelft. De losse afbeelding aan de rechterkant is van een Intel Pentium 4 'Prescott'. Afgezien van het kleurverschil ziet deze er hetzelfde uit.
Foto van de core van de Intel Pentium D 'Smithfield' Foto van de core van een Intel Pentium 4 'Prescott'

Terug naar de inhoudsopgave

Dual-core specifiek: Intel Core Duo

De Intel Core Duo bestaat technisch gezien uit een tweetal Intel Pentium-M processoren. Toch zijn deze niet zo letterlijk aan elkaar geplakt zoals bij de Intel Pentium D het geval is. De afbeelding hieronder laat dit zien. De arceringen laten bepaalde onderdelen zien. Het paarse zijn de eigenlijke cores. Deze staan gespiegeld tegenover elkaar met daartussen een bus. Deze bus is met geel aangegeven en zal alles met elkaar verbinden. Zowel de cores zelf als de het L2 cache wordt er mee verbonden. Dit is te zien omdat het gele richting het groene loopt. De twee groene vlakken zijn het L2 cache geheugen.

Intel Core Duo 'Yonah'Vergeet niet dat de Intel Core Duo weinig overeenkomsten toont met de Intel Core 2 Duo. De Intel Core 2 Duo is in principe vanaf de grond af aan opnieuw opgezet. Dit uiteraard wel met bepaalde logica en delen van de Intel Pentium-M (en de Intel Core Duo is min of meer een dubbele Intel Pentium-M) maar uiteindelijk zijn er te grote verschillen om de processoren als grote en kleine broer aan te duiden.

De grootste verschillen tussen de Intel Core Duo en de Intel Core Duo worden elders (hieronder) aangegeven. De links zijn overigens ook te vinden in de inhoudsopgave.

Terug naar de inhoudsopgave

Dual-core specifiek: Intel Core 2 Duo

Deze processor is écht goed in staat om te multi-threaden. Dit omdat naast de krachtige prestaties het L2 cache door beide cores benaderd kan worden. Bij de AMD Athlon64 X2, Intel Pentium D en Intel Core Duo hebben de cores beschikking over elk hun eigen cache. Het nadeel hiervan is dat zodra er data van de éne cache (die bij een bepaalde core hoort) naar de andere cache gekopieerd moet worden er een vertraging optreedt. Immers is de weg tussen beide cores vrij lang (processortechnisch gezien). Bij de Intel Core 2 Duo is er de mogelijkheid dat beide cores in één grote cache te werk kunnen gaan. Intel heeft dit Advanced Smart Cache genoemd. Meer daarover is hier te lezen.

Dit zogenaamde Advanced Smart Cache is dan wat betreft dual-core technologie enorm duidelijk te zien. Zie de foto en bijbehorende uitleg hieronder:
Intel Core 2 Duo 'die-photo'

De donkere vlak aan de linker kant is één grote L2 cache. Bij de Intel Pentium D was overduidelijk te zien dat het ging om twee aan elkaar geplakte Intel Pentium 4 processoren. Ook bij de Intel Core Duo is een scheiding zichtbaar. Er loopt een zogenaamde bus (met gele arcering) tussen beide L2 caches (met groene arcering). Bovenstaande foto van de Intel Core 2 Duo heeft deze bus niet tussen het L2 lopen.

Wat betreft de cores: Er is goed te zien dat deze net zoals bij de Intel Core Duo gespiegeld van elkaar staan. Indien er daadwerkelijk een spiegel horizontaal in het midden van de foto gezet wordt zou de foto er alsnog praktisch hetzelfde uitzien.

Terug naar de inhoudsopgave

Specifieke eigenschappen van de Intel Pentium D

Er zitten verschillen tussen de zogenaamde 'Netburst'-processoren (Intel Pentium D in dit geval) en de 'Intel Core' processoren. Deze laatste is bekend van de Intel Core (2) Duo processoren.
  • Het is een dubbele Intel Pentium 4
    De Intel Pentium D 'Smithfield' 800-series bestaat min of meer uit een dubbele Intel Pentium 4 'Prescott' (90nm)
    De Intel Pentium D 'Presler' 900-series bestaat min of meer uit een dubbele Intel Pentium 4 'Cedar Mill' (65nm)

  • Ondanks het eigenlijk een dubbele Intel Pentium 4 is ondersteunt de Intel Pentium D geen Hyper Threading technologie. Enkel de Intel Pentium Extreme Edition 840, 955 en 965 hebben Hyper Threading geactiveerd en zullen dus twee fysieke en twee logische cores hebben.

  • Elke core heeft zijn eigen cache. Effectief dus 50% van de opgegeven cache.
    1MB per core voor de 800-serie, 2MB per core voor de 900-series.

Terug naar de inhoudsopgave

Specifieke eigenschappen van de Intel Core Duo

De voorloper van de Intel Core 2 Duo.
  • Het is in feite een dual-core Intel Pentium-M

  • Deze processor kent geen Hyper Threading technologie.

  • Heeft geen EM64T extensies.

Terug naar de inhoudsopgave

Specifieke eigenschappen van de Intel Core 2 Duo

  • Er is één globale L2-cache voor beide cores
    Processoren zoals de Intel Pentium D en de AMD Athlon 64 X2 hebben geen 'gedeelde' L2 cache. Zie Advanced Smart Cache voor meer informatie.

  • Deze processor kent vooralsnog geen Hyper Threading technologie.

  • Één core kan worden uitgeschakeld.
    De Intel Core 2 Duo heeft de mogelijkheid om bepaalde (niet gebruikte) onderdelen van de processor uit te schakelen zodat er minder energie verbruikt wordt. Een core uitschakelen behoort ook tot de features.

Terug naar de inhoudsopgave


Hoe is dual-core en multi-core dan toepasbaar in bv. computerspellen?

Daar zijn een aantal manieren voor. Hieronder zal ik het één en het ander uitleggen.

Een programmeur zou graag zien dat de benodigde tijd om iets te berekenen minder zou worden.

Dit kan door processoren en/of cores toe te voegen en daar gebruik van te maken. Hiernaast staat een diagram wat globaal gezien het effect is van het toevoegen van meerdere processoren en/of cores.
Bij oudere singlethreaded games zou alles in serie berekend worden. Hierdoor hebben we één slag waarin alles berekend wordt. Om dat multithreaded te maken zou het een idee zijn om twee slagen te maken (twee threads). Zo zullen bepaalde onderdelen van een game parallel van elkaar berekend moeten worden. Hierbij botsen we tegen het feit dat de data altijd in gebruik is. Dat is enorm lastig zodra CPU0 en CPU1 tegelijk aan dezelfde data moeten werken.

Het diagram hiernaast laat een aantal onderdelen zien welke zomaar in een game zouden kunnen zitten. De AI berekeningen hebben invloed op Animations. In de uiteindelijke Render komen Animations en Physics. Physics staat ook in verbinding met Particles en Animations. (De pijlen dienen gelezen te worden als data welke rond gestuurd wordt).
Dit alles wordt door één CPU achter elkaar door berekend (in serie). Hoe krijgen we het voorelkaar om dit met twee cores te berekenen?

Met een zogenaamde 'render'-split kan dit gerealiseerd worden.
In het linker diagram wordt de thread met alle berekeningen uitgevoerd en vervolgens gerendered door een andere thread. Zo zijn er twee threads welke beide op een eigen core uitgevoerd kunnen worden. Dit zou ideaal zijn ware het niet dat de data steeds in gebruik is. De 'render'-thread dient steeds te wachten totdat alle berekeningen klaar zijn. (Andersom ook mocht dat het geval zijn!). Daardoor wordt het inefficiënt.

Dit is op te lossen met een buffer. We berekenen alles en zetten dat vervolgens in een buffer. De 'render'-thread kan dit uit de buffer halen en verwerken. Dit loopt steeds zo door. Zo is het niet nodig om op elkaar te wachten, immers kan alles in buffer gezet worden om nadien meteen de volgende berekeningen uit te voeren.
Om het één en het ander duidelijker te maken heb ik het diagram ietwat bewerkt. Links is nu te zien dat frame A gerendered wordt terwijl frame A1 alweer berekend wordt.
Nadat frame A gerendered is zal frame A1 gerendered worden (vanuit het buffer) en frame A2 klaar gezet worden.

Dit alles is prima toepasbaar op dual-core systemen. Er zitten wel wat nadelen aan. Als bv. Een 'occlusion-query' weer opnieuw opgevraagd moet worden levert deze methode problemen op.

Hoe zouden we dan iets kunnen maken wat gebruik kan maken van meer dan 2 cores?
Zie hieronder voor multithreading:

Dit alles geldt zodra data altijd 100% up-to-date is en indien er data toegevoegd wordt.
Het diagram hiernaast laat een doorlopend proces zien. Elke CPU heeft haar eigen taak en de threads zullen elkaar beïnvloeden.

In het voorbeeld zullen