Woensdag: de Core-architectuur ontrafeld
Intel heeft vandaag tijdens een speciale dubbele sessie uitgebreide technische details laten zien van de nieuwe Core architectuur. Het bedrijf zegt niet bang te zijn om zulke specifieke details aan (onder andere) de concurrentie te laten zien, omdat het volgens hen minstens 1,5 tot 2 jaar zal duren voor alle features nagemaakt kunnen worden. De nieuwe features van de Core-architectuur zijn door Intel grofweg verdeeld in vijf categorieën:
Wide Dynamic Execution
De nieuwe core kan om te beginnen vier in plaats van drie instructies per kloktik decoderen, uitvoeren en verwerken. Omdat het erg moeilijk is om binnen een programma instructies te vinden die onafhankelijk van elkaar uitgevoerd kunnen worden (zonder de werking van de software te veranderen) heeft de Core-core grotere buffers aan boord, zodat er een grotere ruimte is om in te zoeken. De scheduler kan 32 opdrachten tegelijk vasthouden om uit te kiezen. Verder is de branch predection verbeterd en doen de processors aan 'fusion' van instructies op het niveau van micro- en macro-ops. Dat wil zeggen dat iedere keer dat hardware herkent dat er twee instructies vlak achter elkaar staan die eigenlijk net zo goed in één klap uitgevoerd kunnen worden, hij dit ook zal doen. Op deze manier kan het aantal operaties dat wordt uitgevoerd met 10% worden teruggebracht.

Intelligent Power Capability
Om de core zuiniger te maken kan zo ongeveer ieder onderdeel in- en uitgeschakeld worden. Er zijn tientallen verschillende gebieden die allemaal alleen maar actief zijn op de momenten dat ze ook daadwerkelijk nodig zijn. Sommige delen (cache, bussen, buffers) kunnen zelfs deels worden uitgeschakeld. Normaalgesproken brengt het uitschakelen van onderdelen een vervelend nadeel met zich mee, namelijk dat het tijd kost om het weer in te schakelen als het nodig is. Hierdoor gaat de reactietijd omhoog en daar kunnen de prestaties dus onder lijden. Intel heeft echter een slim systeem bedacht dat precies voorspelt wanneer het nodig is om een bepaald deel van de chip te activeren. Omdat de pipeline 14 stappen lang is en aan het begin bekend wordt wat een instructie gaat doen, kan er voor gezorgd worden dat de nodige onderdelen een aantal tikken later (als de instructie op het punt staat om uitgevoerd te worden) gereed zijn.
Naast Memory Disambiguation vallen ook betere prefetchers onder dit kopje. Er zijn per L1-cache twee prefetchers aanwezig die ervoor zorgen dat de juiste gegevens uit het L2-cache klaarstaan op het moment dat de instructie uitgevoerd wordt. In het L2-cache zijn nog eens twee prefetchers die ervoor zorgen dat de gegevens uit het systeemgeheugen alvast in het L2-cache komen. Dit alles moet voor een lagere gemiddelde latency zorgen, en dat zonder een geïntegreerde geheugencontroller. Meerdere prefetchers worden overigens gebruikt omdat er meerdere soorten patronen te herkennen zijn. De prefetchers zijn zo intelligent dat ze zelf kunnen beoordelen hoe effectief ze zijn.

Advanced Smart Cache
De Core-processors zullen tot 4MB gedeeld L2-cache bieden. Niet alleen kunnen ze op die manier van elkaars gegevens profiteren, maar ook een hoop FSB-bandbreedte besparen. De communicatie tussen de cores onderling loopt namelijk via het cache. Het cache heeft ook een hogere bandbreedte gekregen, en net als bij de huidige Centrino Duo kan de capaciteit per core dynamisch ingesteld worden.

Smart Memory Access
Dit is een van de meeste innovatieve nieuwe features die in de Core-architectuur te vinden is: Memory Disambiguation. Om de correcte uitvoer van een programma te garanderen moeten alle instructies in de juiste volgorde uitgevoerd worden. Er zijn al vele jaren technieken om binnen de processor OOO (out-of-order) te werken, maar het probleem was nog steeds dat alle invoer en uitvoer sequentieel moest gebeuren. Het is immers op zijn zachts gezegd onwenselijk dat de processor al data uit het geheugen gaat lezen terwijl de programmeur er eerst nog een wijziging op uit wilde voeren.
In de praktijk is het bij lange na niet nodig om álle lees- en schrijfacties in de exacte volgorde van het programma uit te voeren, maar de huidige processors kunnen gewoon niet weten wanneer het een probleem vormt, en kunnen dus simpelweg niet het risico nemen om de volgorde van het programma te negeren. Smart Memory Access in de Core zorgt er echter voor dat de hardware deze conflicten wel kan herkennen, zodat het in veel gevallen niet meer nodig is om te wachten met het lezen van data tot alle voorgaande schrijfacties zijn verwerkt. Het gaat daarbij overigens wel om een (conservatieve) voorspelling. Als de Disambiguator de fout in gaat moeten alle instructie na die fout opnieuw worden uitgevoerd, net als bij een fout in de Branch Predictor. De Disambiguator is echter slim genoeg om zelf te weten wanneer hij te veel fouten maakt, en zal zichzelf uitschakelen als dat het geval is.


Advanced Digital Media Boost
De nieuwe core kan iedere cycle een 128-bit SSE-instructie uitvoeren, terwijl de huidige Intel-chips dat maar één keer per twee cycles kunnen doen. De chip kan maximaal vijf instructies per cycle uitvoeren, waarvan drie SSE. Er zijn acht nieuwe instructies toegevoegd in SSE4 die specifieke multimedia-applicaties zouden kunnen helpen.
De nieuwe core kan om te beginnen vier in plaats van drie instructies per kloktik decoderen, uitvoeren en verwerken. Omdat het erg moeilijk is om binnen een programma instructies te vinden die onafhankelijk van elkaar uitgevoerd kunnen worden (zonder de werking van de software te veranderen) heeft de Core-core grotere buffers aan boord, zodat er een grotere ruimte is om in te zoeken. De scheduler kan 32 opdrachten tegelijk vasthouden om uit te kiezen. Verder is de branch predection verbeterd en doen de processors aan 'fusion' van instructies op het niveau van micro- en macro-ops. Dat wil zeggen dat iedere keer dat hardware herkent dat er twee instructies vlak achter elkaar staan die eigenlijk net zo goed in één klap uitgevoerd kunnen worden, hij dit ook zal doen. Op deze manier kan het aantal operaties dat wordt uitgevoerd met 10% worden teruggebracht.

Om de core zuiniger te maken kan zo ongeveer ieder onderdeel in- en uitgeschakeld worden. Er zijn tientallen verschillende gebieden die allemaal alleen maar actief zijn op de momenten dat ze ook daadwerkelijk nodig zijn. Sommige delen (cache, bussen, buffers) kunnen zelfs deels worden uitgeschakeld. Normaalgesproken brengt het uitschakelen van onderdelen een vervelend nadeel met zich mee, namelijk dat het tijd kost om het weer in te schakelen als het nodig is. Hierdoor gaat de reactietijd omhoog en daar kunnen de prestaties dus onder lijden. Intel heeft echter een slim systeem bedacht dat precies voorspelt wanneer het nodig is om een bepaald deel van de chip te activeren. Omdat de pipeline 14 stappen lang is en aan het begin bekend wordt wat een instructie gaat doen, kan er voor gezorgd worden dat de nodige onderdelen een aantal tikken later (als de instructie op het punt staat om uitgevoerd te worden) gereed zijn.
Naast Memory Disambiguation vallen ook betere prefetchers onder dit kopje. Er zijn per L1-

De Core-processors zullen tot 4MB gedeeld L2-cache bieden. Niet alleen kunnen ze op die manier van elkaars gegevens profiteren, maar ook een hoop FSB-bandbreedte besparen. De communicatie tussen de cores onderling loopt namelijk via het cache. Het cache heeft ook een hogere bandbreedte gekregen, en net als bij de huidige Centrino Duo kan de capaciteit per core dynamisch ingesteld worden.

Dit is een van de meeste innovatieve nieuwe features die in de Core-architectuur te vinden is: Memory Disambiguation. Om de correcte uitvoer van een programma te garanderen moeten alle instructies in de juiste volgorde uitgevoerd worden. Er zijn al vele jaren technieken om binnen de processor OOO (out-of-order) te werken, maar het probleem was nog steeds dat alle invoer en uitvoer sequentieel moest gebeuren. Het is immers op zijn zachts gezegd onwenselijk dat de processor al data uit het geheugen gaat lezen terwijl de programmeur er eerst nog een wijziging op uit wilde voeren.
In de praktijk is het bij lange na niet nodig om álle lees- en schrijfacties in de exacte volgorde van het programma uit te voeren, maar de huidige processors kunnen gewoon niet weten wanneer het een probleem vormt, en kunnen dus simpelweg niet het risico nemen om de volgorde van het programma te negeren. Smart Memory Access in de Core zorgt er echter voor dat de hardware deze conflicten wel kan herkennen, zodat het in veel gevallen niet meer nodig is om te wachten met het lezen van data tot alle voorgaande schrijfacties zijn verwerkt. Het gaat daarbij overigens wel om een (conservatieve) voorspelling. Als de Disambiguator de fout in gaat moeten alle instructie na die fout opnieuw worden uitgevoerd, net als bij een fout in de Branch Predictor. De Disambiguator is echter slim genoeg om zelf te weten wanneer hij te veel fouten maakt, en zal zichzelf uitschakelen als dat het geval is.


De nieuwe core kan iedere cycle een 128-bit SSE-instructie uitvoeren, terwijl de huidige Intel-chips dat maar één keer per twee cycles kunnen doen. De chip kan maximaal vijf instructies per cycle uitvoeren, waarvan drie SSE. Er zijn acht nieuwe instructies toegevoegd in SSE4 die specifieke multimedia-applicaties zouden kunnen helpen.
Volgende pagina (Donderdag: multicore fotofeest - 18/18)