Multi-threading
Uiteindelijk is een Bulldozer-module dus in feite een half single-core, half dual-core bouwsteen.Onderstaand schema, dat de weg van instructies door de processor nog eens overzichtelijk toont, geeft met kleuren aan hoe de verschillende onderdelen van de chip omgaan met programmathreads.
De gele gedeeltes van de chip zijn enkel uitgevoerd, maar zijn geschikt voor het gelijktijdig verwerken van twee programmathreads en vormen, volgens AMD's ontwerpers in ieder geval, geen bottleneck ten opzichte van twee hypothetische, volledig gescheiden cores. Onder meer de onderdelen die instructies ophalen (instruction fetch), instructies decoderen en de zogenaamde branch prediction toepassen behoren tot dit groepje. Al deze onderdelen zijn dus in de weer met instructies van twee programmathreads en weten van iedere instructie waar die bijhoort.
De groene gedeeltes zijn volledig dubbel uitgevoerd en komen zodoende twee keer afzonderlijk, maar identiek in de chip voor. De integer-verwerkingseenheden zijn daar het belangrijkste voorbeeld van, maar ook de floating point backend, het gedeelte waar uitgevoerde floating point-instructies worden opgespaard, is dubbel uitgevoerd, om deze uiteindelijk los van elkaar naar de twee programmathreads door te voeren.
De rode onderdelen zijn niet dubbel uitgevoerd en verwerken (semi-)gelijktijdig instructies van twee programmathreads zonder daarvan zelf op de hoogte te zijn. De floating point verwerkingseenheden, maar ook de L2-cache behoren tot deze categorie. Beide hoeven niet zelf bij te houden bij welke threads de data waarmee ze in de weer zijn horen; de logica eromheen doet dat voor ze.
Nogmaals: het besturingssysteem merkt hier allemaal niets van. Net zoals Windows, Linux en andere besturingssystemen Intel cores met HyperThreading zien als twee geheel afzonderlijke cores, is dat ook het geval bij Bulldozer modules. Sterker nog: AMD kan Intel zelfs dankbaar zijn, want softwareoptimalisaties voor HyperThreading, zoals die in alle courante besturingssystemen voorkomen, zijn ook voordelig voor Bulldozer. Wanneer een modern besturingssysteem taken van meerdere programma's moet verdelen, zal het immers eerst cores met oneven nummers vullen. Bij een Intel dual-core processor met HyperThreading zijn virtuele core 1 en 2 immers dezelfde, net als 3 en 4. Wanneer er twee taken zijn, is het dus sneller om die door 1 en 3 dan door 1 en 2 te laten uitvoeren. Datzelfde gaat op voor Bulldozer!
Windows 8
Toch zit AMD een beetje met de software in haar maag. Bestaande besturingssystemen, inclusief Windows 7, zijn immers niet op de hoogte van de exacte werking van de Bulldozer architectuur en kunnen zodoende niet-optimale beslissingen nemen bij het verdelen van taken over (virtuele) cores. Volgens AMD is de kernel van Windows 8 wél geheel geoptimaliseerd voor de nieuwe architectuur en kan dat voor een paar procent extra prestaties zorgen.
4 besproken producten
Vergelijk | Product | Prijs | |
---|---|---|---|
![]() |
AMD FX-4100 Boxed
|
Niet verkrijgbaar | |
![]() |
AMD FX-6100 Boxed
|
Niet verkrijgbaar | |
![]() |
AMD FX-8120
|
Niet verkrijgbaar | |
![]() |
AMD FX-8150
|
Niet verkrijgbaar |