VikingGe
Software-Overclocker(in)
@shootme55 die neue Cache-Architektur von Nehalem und der ebenfalls dort integrierte Speichercontroller sind meines Wissens aber auch die einzigen Änderungen, bei der man sich tatsächlich mal von einem Feature der ursprünglichen Architektur getrennt hat. Gut, das allein ist schon ein großer Unterschied, lasse ich gelten.
Was weite Teile des Front- und quasi das gesamte Backend angeht, hat sich von den diversen Core 2-Kernen auf Nehalem aber rein gar nichts getan - immer noch dasselbe System mit den Ports, bei denen sich unterschiedliche Befehle, die an sich nichts miteinander zu tun haben, gerne mal gegenseitig im Weg sind (v.a., wenn SMT verwendet wird), und wo Speicheroperationen grundsätzlich mindestens eine zusätzliche µOp brauchen. SMT gabs noch, das bedeutet aber in erster Linie einfach nur mehr Transistoren.
Was hat Sandy Bridge geändert? Flottere Caches, µOp-Cache (der die nach wie vor langsame Instruction Fetch-Rate kompensiert), größere Buffer hier und da, AVX-256 (-> mehr Transistoren), aber nichts wurde grundlegend neu gestaltet.
Was hat Haswell geändert? Flottere Caches, paar neue Befehle, größere Buffer hier und da und ein breiteres Backend (8 Ports statt 6), welches aber nach wie vor derselben Logik folgt wie beim alten Core 2. Nichts wurde grundlegend neu gestaltet.
Was hat Skylake geändert? Flottere Caches, größere Buffer hier und da (...ach) und ein etwas umsortiertes Backend, damit sich verschiedene Befehle eben nicht dauernd gegenseitig blockieren - das Prinzip bleibt aber dasselbe. Nichts wurde grundlegend neu gestaltet.
Skylake ist letztenendes eben einfach ein Nehalem mit mehr. Alles, was in NHM drin ist, ist auch noch in sehr ähnlicher Form in Skylake zu finden. Ist eben so bei inkrementellen Verbesserungen - das Ergebnis ist zwar eine sehr schnelle und sehr effiziente Architektur, aber Intel muss eben mit alten Designentscheidungen leben, die ggf. nicht vorteilhaft sind - zum Beispiel hat Intel nie die von ihnen selbst vorgeschlagenen FMA4-Befehle implementiert, weil wohl niemand Lust hatte, Support für vier Register-Operanden in die Pipelines einzupflegen, oder eben, dass der Durchsatz des Backends stark davon abhängt, welche Befehle mit welchen anderen kollidieren und daher nicht immer gleichzeitig ausgeführt werden können, oder dass man ständig zwei Arten von µOps durch die Gegend schleppt (eine Sorte für den µOp-Cache und eine fürs eigentliche Backend - sowas wie ADD rax, [rdx] erzeugt im Decoder eine µOp, benötigt aber zwei Ports). Und mit sowas umzugehen kostet eben wahlweise Die-Fläche und Strom oder Zeit und Geld.
Was weite Teile des Front- und quasi das gesamte Backend angeht, hat sich von den diversen Core 2-Kernen auf Nehalem aber rein gar nichts getan - immer noch dasselbe System mit den Ports, bei denen sich unterschiedliche Befehle, die an sich nichts miteinander zu tun haben, gerne mal gegenseitig im Weg sind (v.a., wenn SMT verwendet wird), und wo Speicheroperationen grundsätzlich mindestens eine zusätzliche µOp brauchen. SMT gabs noch, das bedeutet aber in erster Linie einfach nur mehr Transistoren.
Was hat Sandy Bridge geändert? Flottere Caches, µOp-Cache (der die nach wie vor langsame Instruction Fetch-Rate kompensiert), größere Buffer hier und da, AVX-256 (-> mehr Transistoren), aber nichts wurde grundlegend neu gestaltet.
Was hat Haswell geändert? Flottere Caches, paar neue Befehle, größere Buffer hier und da und ein breiteres Backend (8 Ports statt 6), welches aber nach wie vor derselben Logik folgt wie beim alten Core 2. Nichts wurde grundlegend neu gestaltet.
Was hat Skylake geändert? Flottere Caches, größere Buffer hier und da (...ach) und ein etwas umsortiertes Backend, damit sich verschiedene Befehle eben nicht dauernd gegenseitig blockieren - das Prinzip bleibt aber dasselbe. Nichts wurde grundlegend neu gestaltet.
Skylake ist letztenendes eben einfach ein Nehalem mit mehr. Alles, was in NHM drin ist, ist auch noch in sehr ähnlicher Form in Skylake zu finden. Ist eben so bei inkrementellen Verbesserungen - das Ergebnis ist zwar eine sehr schnelle und sehr effiziente Architektur, aber Intel muss eben mit alten Designentscheidungen leben, die ggf. nicht vorteilhaft sind - zum Beispiel hat Intel nie die von ihnen selbst vorgeschlagenen FMA4-Befehle implementiert, weil wohl niemand Lust hatte, Support für vier Register-Operanden in die Pipelines einzupflegen, oder eben, dass der Durchsatz des Backends stark davon abhängt, welche Befehle mit welchen anderen kollidieren und daher nicht immer gleichzeitig ausgeführt werden können, oder dass man ständig zwei Arten von µOps durch die Gegend schleppt (eine Sorte für den µOp-Cache und eine fürs eigentliche Backend - sowas wie ADD rax, [rdx] erzeugt im Decoder eine µOp, benötigt aber zwei Ports). Und mit sowas umzugehen kostet eben wahlweise Die-Fläche und Strom oder Zeit und Geld.


.