Hallo,
wie ist die Angabe "8 MB Shared L3-Cache" bei einem i7-860-Prozessor zu
bewerten? Ich habe das kürzlich in einer Werbe-Beilage gesehen...den
L2-Cache haben die überhaupt nicht erwähnt.
Ich kenne von früher noch den L2-Cache bzw. dessen Bedeutung für die
Arbeitsgeschindigkeit von Anwendungen. Damals habe ich gelernt, dass
einzeln laufende Anwendungen weniger vom Cache als von einer hohen
Taktfrequenz profitieren. Laufen dagegen mehrere Anwendungen parallel,
profitieren diese in der Regel mehr vom Cache als von der hohen
Taktfrequenz.
Was genau habe ich mir unter einem Shared L3-Cache vorzustellen?
Welche Rolle spielt der L3-Cache bei Prozessoren von früher, bei denen
immer nur mit L2-Cache geworben wurde. Die werden doch wohl einen
L3-Cache gehabt haben, oder?
Welche Rolle spielt der L2-Cache bei aktuellen Prozessoren mit großem
Shared L3-Cache?
Viele Grüße,
Tobi
>Was genau habe ich mir unter einem Shared L3-Cache vorzustellen?
Das ist der Cache, der von allen CPU-Kernen gemeinsam genutzt wird.
Zusätzlich hat jeder Kern noch einen eigenen L1- und L2-Cache.
>Welche Rolle spielt der L3-Cache bei Prozessoren von früher, bei denen>immer nur mit L2-Cache geworben wurde. Die werden doch wohl einen>L3-Cache gehabt haben, oder?
Nö, hatten die i.d.R. nicht. Der L3 wurde mal mit irgendeinem Athlon
eingeführt, macht aber erst bei Multicore-CPUs richtig Sinn.
Generell kann man sagen, je größer der Cache (egal welcher), desto
besser.
Den L2-Cache hat jede CPU (jeder "Core") für sich, den L3-Cache muss sie
mit den anderen Cores teilen.
Obs was bringt? Völlig wurscht, du hast ja eh keine andere Wahl.
Dass die Werbung gerade den L3-Cache heraushebt, hat einen einfachen
Sinn: Dieser ist Billiger als L1/L2 Cache, muss nur einmal ausgeführt
werden, ist also folglich viel Größer.
Große Zahlen == Gut == Viele Leute kaufen das Teil.
Icke schrieb:> Der L3 wurde mal mit irgendeinem Athlon> eingeführt, macht aber erst bei Multicore-CPUs richtig Sinn.
Beim K6-2+ und K6 III wurde L2 Cache integriert und machte den auf dem
Mobo befindlichen gesteckten L2 Cache damit zum L3 Cache. Und nein, auch
SingleCore profitiert davon. Bei Mehrkernprozessoren im höheren
Leistungssegment wurde integrierter L3 Cache zum Standard.
Εrnst B✶ schrieb:> Dieser ist Billiger als L1/L2 Cache, muss nur einmal ausgeführt> werden, ist also folglich viel Größer.> Große Zahlen == Gut == Viele Leute kaufen das Teil.
Cache ist teuer wegen des Platzbedarfes auf dem DIE, nicht wegen der
Herstellungstechnologie. Der L3 Cache braucht den meisten Platz, also
ist er nicht am billigsten.
Hallo,
danke für eure bisherigen Erläuterungen.
>Dass die Werbung gerade den L3-Cache heraushebt, hat einen einfachen>Sinn: Dieser ist Billiger als L1/L2 Cache, muss nur einmal ausgeführt>werden, ist also folglich viel Größer.>Große Zahlen == Gut == Viele Leute kaufen das Teil.
Irgendwie habe ich noch im Gedächtnis, das die Cache-Level auch die
Geschwindigkeit widerspiegeln - also quasi von schnell nach langsam:
L1 - L2 - L3 - (und dann das RAM)
Verstehe ich das richtig, dass L2-Cache daher nach wie vor essentiell
wichtig ist und gar nicht groß genug sein kann, auch bei modernen
i7-Prozessoren?
Nützt mir der L3-Cache womöglich nur etwas bei speziellen
Anwendungen(z.B. Videobearbeitung), die als einzelne Anwendung mehrere
Kerne sinnvoll auslasten und den großen Shared-Cache zu nutzen wissen?
Der i7 860 hat laut meinen Recherchen 4x256KB L2 Cache. Ein Intel Core 2
Duo T7300 aus dem Jahr 2007 hat laut meinen Recherchen satte 4 MB
L2-Cache. Ist der i7 860 - trotz schwachem L2 Cache - besser als der
T7300, wenn es darum geht, mehrere Anwendungen parallel laufen zu
lassen?
Gruß, Tobi
Die Cache Größe spielt eine Rolle, denn wenn der Platz eng wird, muss ja
in den RAM ausgelagert werden. Und ja, es ist von der Anwendung
abhängig, wie viele Vorteile sich dabei aus größerem Cache ergeben.
Bei parallelen Anwendungen spielt die Prozessorarchitektur UND die
laufende Software eine Rolle bei der Schnelligkeit. Weniger benötigte
Takte pro Befehl können einen Prozessor also durchaus trotz weniger
Cache schneller sein lassen.
Du kannst ja spaßeshalber im Bios den Cache einzeln deaktivieren. Da
merkst Du, was L1 und L2 Cache für Auswirkungen haben.
>Du kannst ja spaßeshalber im Bios den Cache einzeln deaktivieren. Da>merkst Du, was L1 und L2 Cache für Auswirkungen haben.
Ja, das kenne ich noch von früher...dann braucht Windows eine Ewigkeit
um hochzufahren... ;)
Ich habe in alten Artikeln gelesen, dass L1 mit vollem Prozessor-Takt
und L2 nur mit halben Takt arbeitet. Ist das immer noch so? Und hat L3
dann folglich ein Viertel des Taktes?
Gruß, Tobi
Εrnst B✶ schrieb:> Obs was bringt? Völlig wurscht, du hast ja eh keine andere Wahl.
Naja, kommt drauf an. Du könntest z.B. die Wahl haben zwischen zwei
Varianten eines Prozessors, wo die eine 100 Mhz mehr Takt, dafür aber
nur halb so viel Cache hat wie die andere.
Tobi schrieb:> Irgendwie habe ich noch im Gedächtnis, das die Cache-Level auch die> Geschwindigkeit widerspiegeln - also quasi von schnell nach langsam:> L1 - L2 - L3 - (und dann das RAM)
Ja.
> Nützt mir der L3-Cache womöglich nur etwas bei speziellen> Anwendungen(z.B. Videobearbeitung), die als einzelne Anwendung mehrere> Kerne sinnvoll auslasten und den großen Shared-Cache zu nutzen wissen?
Der nützt auch bei Programmen, die nur einen Kern nutzen, was, denn ein
Programm kann auch zwischen den Kernen migrieren, also mal auf dem einen
und mal auf dem anderen laufen. Sowas wird vom Betriebssystem gemacht,
um eine einigermaßen gleichmäßige Auslastung der Kerne zu erreichen.
mhh schrieb:> Bei parallelen Anwendungen spielt die Prozessorarchitektur UND die> laufende Software eine Rolle bei der Schnelligkeit. Weniger benötigte> Takte pro Befehl können einen Prozessor also durchaus trotz weniger> Cache schneller sein lassen.
Aber auch umgekehrt kann ein Programm, das zwar rein von den Taktzyklen
seiner Instruktionen her sehr schnell wäre, elends langsam werden, wenn
sein Verhalten für den Cache ungünstig ist.
>Der nützt auch bei Programmen, die nur einen Kern nutzen, was, denn ein>Programm kann auch zwischen den Kernen migrieren, also mal auf dem einen>und mal auf dem anderen laufen. Sowas wird vom Betriebssystem gemacht,>um eine einigermaßen gleichmäßige Auslastung der Kerne zu erreichen.
Interessant...beherrscht mein in die Jahre gekommenes Windows XP auf
moderner Hardware dieses "Migrieren" auch schon? Eventuell durch die
Installation eines so genannten "Prozessor-Treibers" von der
Mainboard-CD? Oder muss ich dafür Windows 7 haben? Und was ist mit
Linux/Mac?
>Hard- und Software muss halt harmonieren. Und nun gehts in der>Entwicklung darum, gleiche Leistung mit weniger Energie zu erreichen.
Ich gewinne beim Studieren der TDP von modernen QuadCore-Prozessoren
(125 - 130 Watt) ehrlich gesagt nicht gerade den Eindruck, dass bei neu
entwickelten Prozessoren Stromsparen die oberste Direktive ist. Kann es
sein, dass gleiche Leistung mit weniger Energie für die Hersteller quasi
eine erst später erfolgende "Kür-Übung" ist, damit man den Markt
möglichst früh(Konkurrenz) mit Leistungsfähigen - aber Stromhungrigen,
da noch nicht auf Stromsparen optimierten - Prozessoren versorgen kann?
Gruß, Tobi
Rolf Magnus schrieb:> Der nützt auch bei Programmen, die nur einen Kern nutzen, was, denn ein> Programm kann auch zwischen den Kernen migrieren, also mal auf dem einen> und mal auf dem anderen laufen. Sowas wird vom Betriebssystem gemacht,> um eine einigermaßen gleichmäßige Auslastung der Kerne zu erreichen.
Da die Betriebssysteme diese Neigung schon besitzen, seit es
Mehrprozessorsysteme mit anfangs noch getrennten Sockeln gibt, glaube
ich weniger an höhere Inspiration als an etwas unglücklich agierende
Scheduler.
Tobi schrieb:> Ich gewinne beim Studieren der TDP von modernen QuadCore-Prozessoren> (125 - 130 Watt) ehrlich gesagt nicht gerade den Eindruck, dass bei neu> entwickelten Prozessoren Stromsparen die oberste Direktive ist.
Indirekt schon. Zwischen Performance und Wärmeleistung besteht ein
direkter Zusammenhang. Die eigentliche oberste Direktive ist in der
Oberklasse der Prozessoren zwar die Performance. Der TDP-Wert ist aber
die kritische Rahmenbedingung, denn mehr als diese 100-130W lässt sich
mit PC-gängingen Kühltechniken nicht massentauglich realisieren.
Stromsparen ist deshalb spätestens seit Pentium 4 zum wesentlichen
Mittel der Performancesteigerung geworden. Auf hohem Niveau.
> eine erst später erfolgende "Kür-Übung" ist, damit man den Markt> möglichst früh(Konkurrenz) mit Leistungsfähigen - aber Stromhungrigen,> da noch nicht auf Stromsparen optimierten - Prozessoren versorgen kann?
Korrekt. Die am höchsten getakteten Prozessoren kommen zuerst mit
120-130W TDP raus, weil sie direkt am oberen Ende dessen agieren, was
die Fertigungstechnik hergibt. Schneller kann man zu diesem Zeitpunkt
nicht, sonst gäbe es schnellere. Mit besserer weiter optimierter
Fertigung gibt es die irgendwann dann auch in der 90W-Region.
Tobi schrieb:> Ich habe in alten Artikeln gelesen, dass L1 mit vollem Prozessor-Takt> und L2 nur mit halben Takt arbeitet. Ist das immer noch so? Und hat L3> dann folglich ein Viertel des Taktes?
Je weiter weg ein Cache vom Core ist, desto langsamer ist er, jedenfalls
was die Zugriffszeit angeht.
Je grösser ein Cache ist, desto langsamer ist er auch (*) - das ist
technisch bedingt. Und da zwischen dem L(n+1)-Cache und dem Core der
L(n) Cache sitzt, muss der L(n+1)-Cache deutlich grösser sein, sonst
bringt er nichts (jedenfalls bei Intel, bei AMD ist das etwas anders).
Ob das mit reduzierter Taktung einhergeht ist eine andere Frage, denn
die Taktfrequenz dieser Komponente spielt dabei weniger einer Rolle.
*: Beim L1-Cache kommt hinzu, dass man bedingt durch die
performancebedingt notwendige virtuelle(lineare) Indizierung dieses
Caches diesen Cache nicht beliebig vergrössern kann.
>Ich gewinne beim Studieren der TDP von modernen QuadCore-Prozessoren>(125 - 130 Watt) ehrlich gesagt nicht gerade den Eindruck, dass bei neu>entwickelten Prozessoren Stromsparen die oberste Direktive ist.
Die TDP sagt wenig über den realen Stromverbrauch aus. Sie gibt
lediglich an, mit welcher maximalen Wärmeabgabe der PC-Hersteller
rechnen muß, damit er die Kühlung entsprechend auslegen kann. In der Tat
sind die aktuellen CPUs im Vergleich zu früher sogar sehr genügsam. Die
Workgroup-Server, die ich momentan baue, kommen mit ca- 100-120 Watt
Stromaufnahme (netzseitig gemessen) aus, Anwendungs-Server mit zwei
Quadcores unter Vollast mit ca. 200 Watt. Vor nicht allzu langer Zeit
lagen diese Werte noch beim Doppelten bis Dreifachen.
Und 125 Watt für vier Kerne ist gar nicht so schlecht, wenn man bedenkt,
daß z.B. ein Pentium-4 mit nur einem Kern schon fast so viel Leistung
verbraten hat. Wenn ich an die Prescotts zurückdenke, die konnten schon
im Leerlauf kleine Räume schön warm halten...
Icke schrieb:> verbraten hat. Wenn ich an die Prescotts zurückdenke, die konnten schon> im Leerlauf kleine Räume schön warm halten...
Yep, in dieser Generation hatte Intel derart radikal auf Taktfrequenz
optimiert, dass die Leckströme exorbitant anstiegen. In der Folge gingen
sowas in der Grössenordnung von 30W allein durch diese Leckströme drauf.
Da man diese Leerlaufleistung nicht produktiv nutzen kann und sie
aufgrund des begrenzten Wärmebudgets der lastabhängigen Leistung im Weg
steht, hat man die Produktion späterer Prozessoren auf Kompromiss
getrimmt. Daher ist man im Leerlauf heute wieder ungefähr da, wo man vor
dem Pentium 4 war. Plus selektive Abschaltung&Taktreduzierung, was
weiter Strom einspart und früher nicht existierte, jedenfalls nicht bei
Desktops/Servern.
Εrnst B✶ schrieb:> Dass die Werbung gerade den L3-Cache heraushebt, hat einen einfachen> Sinn: Dieser ist Billiger als L1/L2 Cache, muss nur einmal ausgeführt> werden, ist also folglich viel Größer.> Große Zahlen == Gut == Viele Leute kaufen das Teil.
Ein Core hat jenseits seines privaten L2-Cache bei gleicher Taktung und
Rechenleistung eine bestimme Datenrate zwischen ihm und dem Speicher.
Kann der Speicher die nicht liefern sinkt die Rechenleistung.
Wenn man nun 4 oder 6 solcher Cores auf einem Die zusammenspannt, dann
steigt für gleiche Performance pro Core die Anforderung an den Speicher
folglich auf das 4-6fache. Durch neuere und ggf. breitere
Speicherinterfaces kann man das nur begrenzt abfangen, besonders die
steigende Breite erhöht die Kosten.
Der L3 Cache auf dem Chip entlastet das sonst überforderte
Speichersystem, so dass man nur damit die Performance pro Core
einigermassen halten kann. So ist Ickes Aussage zu verstehen, dass dies
erst bei Multicores so richtig Sinn ergibt.
Tobi schrieb:>>Der nützt auch bei Programmen, die nur einen Kern nutzen, was, denn ein>>Programm kann auch zwischen den Kernen migrieren, also mal auf dem>> einen und mal auf dem anderen laufen. Sowas wird vom Betriebssystem>> gemacht, um eine einigermaßen gleichmäßige Auslastung der Kerne zu>> erreichen.>> Interessant...beherrscht mein in die Jahre gekommenes Windows XP auf> moderner Hardware dieses "Migrieren" auch schon?
Das unterstützt es auch auf alter Hardware.
> Eventuell durch die Installation eines so genannten "Prozessor-Treibers" von der
Mainboard-CD?
Da wird man keinen Treiber brauchen.
> Oder muss ich dafür Windows 7 haben? Und was ist mit Linux/Mac?
Auch da. Sowas muß vorhanden sein. Schließlich wird sich der Bedarf
eines Programms an Rechenzeit ja im Laufe der Ausführung in der Regel
ändern. Ein Programm, das gerade noch Däumchen gedreht und hauptsächlich
auf Benutzereingeaben gewartet hat, kann im nächsten Moment auf einmal
eine sehr rechenaufwendige Aktion durchführen, während ein anderes nicht
mehr so viel Rechenzeit braucht wie gerade eben noch. Dann muß es dem
Betriebssystem ja möglich sein, die Programme "umzuverteilen", sonst
könnte es auch passieren, daß alle rechenaufwendigen Prozesse sich auf
einmal einen Prozessor teilen müssen, während die anderen Prozessoren
nix zu tun haben.
Tobi schrieb:> moderner Hardware dieses "Migrieren" auch schon? Eventuell durch die> Installation eines so genannten "Prozessor-Treibers" von der> Mainboard-CD?
Der hat eher was mit Zeugs wie Umschaltung zwischen Stromsparmodi zu
tun.