Berechnung der RAM CL Timings und MB/s

Status
Für weitere Antworten geschlossen.
Ich glaube (und das ist gut und freundlich gemeint) wir sollten nicht über die CPU diskutieren. Das Teil ist so komplex, dass es nicht in unser Hirn passt.
Du ignorierst ja schon die Existenz von CPU Register. Schau einmal hier.
Das Thema RAM und Datendurchsatz bekommt man ja noch nicht einmal auf die Reihe.
 
Bravo, du hast mich überführt, ich bin schuldig.

was genau sollen diese bunten Bildchen da darstellen?
 
Zuletzt bearbeitet:
Du kannst aber schon drauf klicken und selber lesen. Oder muss ich es Dir vorlesen.
 
Zuletzt bearbeitet:
Ich warte aber immer noch auf die Erklärung warum z.B. L1-Cache heutzutage weit über 300GB/s hat, wenn doch die CPU viel langsamer ist.
 
Peiper schrieb:

Definiere mir mal das Wort Register.
Worauf bezieht sich dieses Register?
Was macht dieses Register?
Wo genau befindet sich dieses Register?
Ergänzung ()

Wo ist der Zusammenhang zwischen Register und Bandbreite (Rechenleistung einer CPU)?
Ergänzung ()

TorenAltair schrieb:
Ich warte aber immer noch auf die Erklärung warum z.B. L1-Cache heutzutage weit über 300GB/s hat, wenn doch die CPU viel langsamer ist.

Also
1. habe ich den L1, L2 oder Lx Cache nie erwähnt.
2. Welchen einfluss soll den der L1 Chache auf die Transistoren habe?
3. Wirf nicht mit Begriffen um dich, von deren Bedeutung du nicht die leiseste Ahnung hast, was sie überhaupt bedeuten, bewirke und in welchem Zusammenhang sie mit dem Rest stehen.
 
Zuletzt bearbeitet:
3. Wirf nicht mit Begriffen um dich, von deren Bedeutung du nicht die leiseste Ahnung hast, was sie überhaupt bedeuten, bewirke und in welchem Zusammenhang sie mit dem Rest stehen.

Verzeihung Mr. Gelsinger.
 
hier noch mal

El Bandolero schrieb:
Die folgenden Berechnungen basieren auf dieser Hardware:
CPU: AMD Phenom II X4 955 (200MHz * 16 = 3200MHz * 4 Kerne)
RAM: Mushkin DDR3-1600MHz CL8-8-8-24 (PC3-12800MB/s)
MainBoard: ASUS M4A79XTD EVO

Ich möchte einfach nur wissen, in wie weit ich mit meinen Berechnungen richtig liege und was falsch ist.


DRAM-Bus
Cannel 1: 200MHz * 2DDR = 400MHz
Cannel 2: 200MHz * 2DDR = 400MHz
Cannel 3: 200MHz * 2DDR = 400MHz
Cannel 4: 200MHz * 2DDR = 400MHz


SingelCannel: 200MHz * 2DDR * 1Cannel = 0400MHz (Effektive)
DualChannel: 200MHz * 2DDR * 2Cannel = 0800MHz (Effektive)
TripleChannel: 200MHz * 2DDR * 3Cannel = 1600MHz (Effektive)
QuadCannell: 200MHz * 2DDR * 4Cannel = 3200MHz (Effektive)


DRAM
RAM 1: 400MHz * 2 = 800MHz
RAM 2: 400MHz * 2 = 800MHz
RAM 3: 400MHz * 2 = 800MHz
RAM 4: 400MHz * 2 = 800MHz


RAM 1: 0400 * 2Channel = 0800MHz (Effektive)
RAM 2: 0800 * 2Channel = 1600MHz (Effektive)
RAM 3: 1200 * 2Channel = 2400MHz (Effektive)
RAM 4: 1600 * 2Channel = 3200MHz (Effektive)


Bandbreite
SingelCannel: DDR3-0800MHz * 8Byte = 06400MB/s
DualCannel: DDR3-1600MHz * 8Byte = 12800MB/s
TripleChannel: DDR3-2400MHz * 8Byte = 19200MB/s
QuadCannel: DDR3-3200MHz * 8Byte = 25600MB/s


CPU Durchsatz

FSB
FSB: 200MHZ * 4Core = 800MHz (Effektive)
FSB: 200MHz * 16Mulit = 3200MHz

CPU
CPU: 3200MHz * 4Core = 12800MHz (Effektive)
CPU: 12800MHz * 8Bit = 102400MBit/s
BW: 102400MBit/s / 8 = 12800MByte/s


Vereinfachte Formel:
800FSB * 16Multi = 12800MB/s



DualCannel
den DualCannel-Bus muss man sich wie ein Förderband vorstellen und den DDR-RAM wie ein Huhn das Eier legt

_._._#_._._._._._._._._#_._._._._._._._._#_._._._._._._._._#_._._._._._._._._#_._._._._._._._._#_._._

ich fasse das mal in Worte:
Die punkte ( . ) stellen die Frequenz dar und die Raute ( # ) den Zeitpunkt zu dem der Speicher für eine Aktion bereit ist (Lesen oder Schreiben).
ein Speicher ist ein Kondensator und benötigt eine bestimmte zeit für das laden oder entladen z.B. 10ns.


1-Sek / 400MHz = 1-Sek / 400.000.000-Herz = 0,0000000025-Sek. (2,5 Nano Sekunden)
damit haben wir die zeit abstände zwischen zwei Takten des DDR-Buses = 2,5 Nano Sekunden


nun kommt die berümte Wikipedia Formel zum Einsatz (die anscheinend von den wenigsten verstanden wurde):
400MHz (Speichertakt) *2 (zwei Bit Daten pro Takt) * 64Bit (Bandbreite der Speicheranbindung / 8 (in Byte umrechnen) = 6400MB/s


64 Bit Bandbreite (es werden 64 Kondensatoren auf/entladen)
64 Bit = 8 Byte (Bit in Byte umrechnen)
DualCannel = ein/auslesen gleichzeitig somit: * 2 = 16-Byte
16-Byte * 400-MHz = 6400-Byte pro Sekunde

das sagt uns aber nur was die maximale Bandbreite des DDR-Buses, bei 400MHz ist, wie viele Daten tatsächlich übertragen werden hängt vom Huhn ab (RAM).

der RAM kann wegen seiner Latenz nur z.B. in jedem 8. Takt (Herz) einmal 8-Byte auf das Förderband absetzen, somit ist die tatsächliche Bandbreite:

6400 / CL8 = 800 * 8-Byte * 2-DualCannel = 12800MB/s
6400 / CL11 = 582 * 8-Byte * 2-DualCannel = 9303MB/s

Je niedriger die Latenz desto mehr Daten können übertragen werden.


RAM: 1333MHz / CL-4 = 333FSB * 16Multi = 5332MHz - (PC3-21328MB/s)
RAM: 1333MHz / CL-5 = 266FSB * 16Multi = 4266MHz - (PC3-17062MB/s)
RAM: 1333MHz / CL-6 = 222FSB * 16Multi = 3555MHz - (PC3-14218MB/s)
RAM: 1333MHz / CL-7 = 190FSB * 16Multi = 3046MHz - (PC3-12187MB/s)
RAM: 1333MHz / CL-8 = 166FSB * 16Multi = 2666MHz - (PC3-10664MB/s)
RAM: 1333MHz / CL-9 = 148FSB * 16Multi = 2370MHz - (PC3-9479MB/s)
RAM: 1333MHz / CL-10 = 133FSB * 16Multi = 2133MHz - (PC3-8531MB/s)

RAM: 1600MHz / CL-4 = 400FSB * 16Multi = 6400MHz - (PC3-25600MB/s)
RAM: 1600MHz / CL-5 = 320FSB * 16Multi = 5120MHz - (PC3-20480MB/s)
RAM: 1600MHz / CL-6 = 266FSB * 16Multi = 4266MHz - (PC3-17064MB/s)
RAM: 1600MHz / CL-7 = 228FSB * 16Multi = 3657MHz - (PC3-14628MB/s)
RAM: 1600MHz / CL-8 = 200FSB * 16Multi = 3200MHz - (PC3-12800MB/s)
RAM: 1600MHz / CL-9 = 177FSB * 16Multi = 2844MHz - (PC3-11376MB/s)
RAM: 1600MHz / CL-10 = 200FSB * 16Multi = 2560MHz - (PC3-10240MB/s)

RAM: 1800MHz / CL-4 = 450FSB * 16Multi = 7200MHz - (PC3-28800MB/s)
RAM: 1800MHz / CL-5 = 360FSB * 16Multi = 5760MHz - (PC3-23040MB/s)
RAM: 1800MHz / CL-6 = 300FSB * 16Multi = 4800MHz - (PC3-19200MB/s)
RAM: 1800MHz / CL-7 = 257FSB * 16Multi = 4114MHz - (PC3-16456MB/s)
RAM: 1800MHz / CL-8 = 225FSB * 16Multi = 3600MHz - (PC3-14400MB/s)
RAM: 1800MHz / CL-9 = 200FSB * 16Multi = 3200MHz - (PC3-12800MB/s)
RAM: 1800MHz / CL-10 = 180FSB * 16Multi = 2880MHz - (PC3-11520MB/s)

RAM: 2000MHz / CL-4 = 500FSB * 16Multi = 8000MHz - (PC3-32000MB/s)
RAM: 2000MHz / CL-5 = 400FSB * 16Multi = 6400MHz - (PC3-25600MB/s)
RAM: 2000MHz / CL-6 = 333FSB * 16Multi = 5333MHz - (PC3-21333MB/s)
RAM: 2000MHz / CL-7 = 285FSB * 16Multi = 4571MHz - (PC3-18285MB/s)
RAM: 2000MHz / CL-8 = 250FSB * 16Multi = 4000MHz - (PC3-16000MB/s)
RAM: 2000MHz / CL-9 = 222FSB * 16Multi = 3555MHz - (PC3-14222MB/s)
RAM: 2000MHz / CL-10 = 200FSB * 16Multi = 3200MHz - (PC3-12800MB/s)
El Bandolero schrieb:
Meine Theorie V1.2, kann Fehler enthalten bitte berichtigen wenn so!!!


Die Frequenz ist immer (AMD Phenom) 100MHz, die Frequenzen steigen nicht (nur OC), nur die Bandbreite.

das müsst ihr euch wie wellen auf dem Meer vorstellen:
100 Wellen hintereinander, auf jeder welle ist ein Surfer (16Bit) 100 wellen pro Sekunde =

Core 0+1 = 100MHz * 16Bit = 1600MBit/s = 200MByte/s (ist zugleich SingeCannel 1x Rate)
Core 2+3 = 100MHz * 16Bit = 1600MBit/s = 200MByte/s (ist zugleich SingeCannel 1x Rate)
..........................................= 400MBit/s = 400MByte/s (ist zugleich DualCannel DDR)


tatsächlich gibt es keinen echten QuadCore CPUs, im Moment, nur DualCore und SingleCore und 64Bit Computer gibt es auch nicht, nur 4 * 16Bit = 64Bit.
TrpleCannel/Core ergibt 96Bit wo für es aber kein Betriebssystem gibt (ich kenne keins) also wird da irgend wie getrickst damit am ende 64Bit herauskommen.

Das wird alles nur zusammengerechnet, der Grund dafür ist die Wellenlänge.
Je kürzer die welle, des tu kürzer wird die darauf getragene Information.

um die Datenmenge zu erhöhen, müsst ihr die welle verbreitern, damit 2 Surfer nebeneinander surfen können.

100 * 2 = 200 * 2 = 400 * 2 = 800MHz so wird es gerechnet.
In Wirklichkeit macht der Computer nicht weiter als, die welle zu verbreiten =
100MHz * 2 (DDR) * 16Bit = 32Bit : 3200MBit/s *16 (Multi) / 8 = 6400MB/s (ist zugleich SingleCannel)
100MHz = 2 (DDR) * 16Bit = 32Bit : 3200MBit/s *16 (Multi) / 8 = 6400MB/s (ist zugleich SingleCannel)
6400MB/s * 2 DualChannel = 128000MB/s (ist zugleich DualCannel)


die Maschine (CPU RAM...) kennt keine Byte nur Bit, die Byte sind nur für die Programme wichtig.

somit haben wir die maximale theoretische Bandbreite der CPU ermittelt 12800MB/s bei 16 * Multiplikator. Wie viel davon genutzt wird hängt vom RAM ab.


Stellt euch die CPU wie ein gefräßiges Monster vor und den RAM als den Sklaven der das Monster füttern muss. Das Monster frisst, verdaut und scheißt in die Grafikkarte.
Aber, das Monster kann nur so viel Kacken, wie es frisst.
Das bedeutet was der RAM gibt, das kommt bei der Grafikkarte auch an (verarbeitet).

Ab DDR4 soll es dann echte 128Bit Computer geben mit: Windows 8 - 128Bit OS.
Ergänzung ()

Commander Alex schrieb:
Wie willst du berechnen wie viel die CPU max. transportieren kann, sie ist ja eigentlich kein Datenschieber,

Jetzt versteh ich dich,
ja du hast vollkommenem recht das die CPU kein Bus hat ist ja logisch, dein Missverständnis ist das die CPU kein Bus braucht.
Ich definiere mal genauer der RAM schiebt die Daten in die CPU und der HT zieht sie einfach weiter zur Grafikkarte, mal einfach ausgedrückt.

Ich habe mich falsch ausgedrückt, dafür möchte ich mich bei die entschuldigen.
Die CPU hat keine Bandbreite, sondern nur ein Maximalen Durchsatz je nach BIOS Einstellung (FSB, Multipikator...?)

SORRY!
Ergänzung ()

TorenAltair schrieb:
Verzeihung Mr. Gelsinger.

Sorry TorenAltair ich habe dich mit MikelMolto verwechselt, der hat mich wirklich zum toben gebracht da habe ich nicht ein mal geschaut wem ich antworte.

Der L1 Chache hat deswegen so eine hohe Durchsatz rate damit er die CPU nicht behindert, des weiteren wird nicht für jede neue CPU ein neuer Cache geplant sondern meistens der selbe benutzt somit spart man Geld.
Ein Cache für alle CPUs bis eine neue Generation von CPU-Kernen kommt, die mehr Bandbreite benötigt
das gleiche gilt für die Speichercontroller.


An diesen Bildern kann man auch deutlich erkennen, das es sich bei beiden CPUs um den gleichen Cache handelt.
Einfach mal Form, Anzahl und Anordnung vergleichen.


intel_core_i7_980x_architecture_triple_channel_memory_controller-jpg.293804



quadcore_-jpg.293805


Und wenn mal mehr oder weniger Cache gebraucht wird, dann wird einfach mal eine reihe ausgelassen oder erweitert.
Ergänzung ()

Ich habe zwar keinen blassen Schimmer davon, wie so ein Cache, in irgend einer weise, einen Prozessor beschleunigen soll, aber alle behaupten es sie so?
Ein Cache ist ja nur ein Kondensator (Zwischenspeicher)
So wie ich das sehe, beschleunigt ein Cache garnix, kann er auch nicht.
Der dient nur dazu, Schwankungen des CPU-Kerns auszugleichen. Wenn ein CPU-Kern Schwankungen hat, kann das entweder an der Stromversorgung liegen (heutzutage fast ausgeschlossen), an einer schlechten Konstruktion, an der Frequenz oder beides.
An der Frequenz deswegen, weil, Intel CPUs meistens mit so eigenartigen Frequenzen arbeiten, wie 133,333..MHz, wen man die durch z.B. 8Bit = 1Byte teilt, bekommt man so eine Kammerzahl heraus 16,6666.... so was mögen die Programme gar nicht, denn ein Programm kennt nur eindeutige befehle wie 1 oder 0, (JA oder NEIN) mit einer X,6666.... (vielleicht) kann ein Programm schon mal garnix anfangen.
Da muss irgendwo ein Mechanismus verbaut sein, der diese Fehler ständig ausgleicht (auf/abrundet).
Ich glaube, das dass der Grund ist, warum Windows 98 so instabil wahr, denn ich hatte damals ein AMD K6-III 400Mhz und kaum Probleme mit Win98.
 
Zuletzt bearbeitet:
Eine Cache ist ein Datenspeicher, kein Stromspeicher.
Warum eine Cache hilf, hängt mit der Latenz! des RAMs zusammen.
Die Cache hat quasi keine Latenz (i.d.R. 2-3 Takte L1 und 20 Takte L2 und L3).
Daher werden auch nur Cache-misses gezählt, wenn man ein Programm optimiert, weil die Cache hits einen gar nicht jucken, die gibts gratis.
Die Cache hält Daten aus dem RAM, die häufig gebraucht werden, vor und verzögert das Schreiben von Daten in den RAM.
Damit die Cache voll zum Tragen kommt, muss der Prozessor erkennen, welche Daten er möglicherweise bald brauchen wird, damit er diese schon anfordern kann und er darf nicht Daten, die er noch braucht aus der Cache kicken. Also relativ komplex.

Zu deinen Frequenzen: Dir ist bewusst, dass das nur eine Zahl ist?
Auch ist es so, dass es Synchronisationsglieder gibt, die die verschieden schnelle Busgeschwindigkeiten umformen über kleine Puffer und entsprechende Halt-Befehle, daher ist es wohldefiniert und stabil. Halt nicht schön, aber das ist ja irrelevant.

Windows 98 war nicht aus diesem Grund instabil, warum, siehe oben.
 
Hancock schrieb:
Eine Cache ist ein Datenspeicher, kein Stromspeicher.
ich denke das wir uns alle darüber einig sind, das Daten in einem Computer mittels Strom befördert werden (Strom = Daten).
ist dein Computer an eine Wasserleitung oder an eine Stromleitung angeschlossen?



Hancock schrieb:
Warum eine Cache hilf, hängt mit der Latenz! des RAMs zusammen.
wie du oben auf den Bildern deutlich erkennen kannst befindet sich der Cache hinter dem CPU-Core und ist nicht mit dem RAM direkt
verbunden sondern der Speichercontroller.



Hancock schrieb:
Die Cache hat quasi keine Latenz (i.d.R. 2-3 Takte L1 und 20 Takte L2 und L3).
diese Information hast du bestimmt von WIKI, ist aber korrekt.


Hancock schrieb:
Daher werden auch nur Cache-misses gezählt, wenn man ein Programm optimiert, weil die Cache hits einen gar nicht jucken, die gibts
gratis.
?????????


Hancock schrieb:
Die Cache hält Daten aus dem RAM, die häufig gebraucht werden, vor und verzögert das Schreiben von Daten in den RAM. Damit die Cache voll zum Tragen kommt
das ist auch richtig
aber
1. muss diese Funktion von dem Programm unterstützt werden (hast du auch gesagt ja)
2. gibt es Prozessoren mit weit weniger Cache z.B. VIA, AMD... und alle Programme laufen trotzdem fehlerfrei (ich kann das bezeugen)
3. wenn ich Battlefield 3 (BF3 ist auch nur ein Programm) starte, dann belegt mir das Programm 7,3GB RAM und 2GB Grafik-RAM = ca. 9,3GB-RAM (gesamt Arbeitsspeicher-auslastung),
glaubst du wirklich das bei dieser Masse an Daten diese paar MB Cache, irgend eine auch nur messbare Beschleunigung bringen? Ich nicht!
ich glaube das das nur eine gute Tarnung für Intel ist, um zu verschleiern was der wirkliche Grund, für den so großen (im Vergleich zu z.B. AMD VIA und co.) Cache ist.
Als Nebeneffekt, verkauft sich ein großer Cache, besser als ein kleiner.


Hancock schrieb:
Zu deinen Frequenzen: Dir ist bewusst, dass das nur eine Zahl ist?
unter anderen ist es auch eine zahl, wie man es sehen will.
du willst doch nicht mit diese aussage bestreiten, das es ein Frequenz gibt, oder?
den dann weiß ich nicht, was die ganzen XXXMHz, XXXGHz, XXXTHz zu bedeuten haben und warum Leute beim kauf einer CPU immer wissen wollen, wie viele MHz die CPU hat


Hancock schrieb:
Auch ist es so, dass es Synchronisationsglieder gibt, die die
verschieden schnelle Busgeschwindigkeiten umformen über kleine Puffer und entsprechende Halt-Befehle, daher ist es wohldefiniert und stabil. Halt nicht schön, aber das ist ja irrelevant.
???????
Ergänzung ()

So sieht die Welt aus, wenn man sie mal aus dem Blickwinkel, eines Elektroniker sieht.
Erschreckend, nichtwahr.
 
Zuletzt bearbeitet:
Punkt 1: Klar wird das über Ladungen gespeichert, aber halt in einem Flipflop z.B.
WIKI: Nee, selber beim Programmieren gemerkt.
Ein Programm unterstützt das gar nicht (ok, es gibt die Prefetch-Befehle von SSE, aber die haben praktisch keine Relevanz), die CPU ist selbst schlau genug, das zu erkennen.
3.: Klar, du kannst bei alten Prozessoren im BIOS die Cache deaktivieren, da sinkt die Performance teilweise auf 1 hundertstel ab.

Zu den Frequenzen, du schreibst, weil die Zahl krumm sei, wäre es nicht stabil, das ist doch irrational. Das ist ein Verhältnis zwischen Klicks und einer Zeiteinheit (s). Die Sekunde ist nur eine Definition.
Statt 166 2/3 MHz kannst du auch 500 M 1/(3s) schreiben, da ist die Zahl wieder schön, aber es ist die selbe Frequenz.

Zu deinen ??????
http://www.gidf.de
 
OK, das Programm merkt sich das selber, die sind ja so intelligent, mein Computer macht mir auch mein Espresso und mittlerweile hat mein PC auch gefüllte für mich (doch wirklich hat sie mir im Editor geschrieben).


bitte bitte bitte hör auf damit das hilft uns nicht weiter
Stele mir eine normale frage, ich werde versuchen sie dir zu beantworten (mach ich gerne).
 
Falls deine ursprüngliche Frage noch nicht geklärt ist, kannst du dich gern per PN melden.
Ich habe den Eindruck, dass es hier noch um's "Recht haben" geht.Kann man nicht mehr antworten, postet man Unsinn.
So nicht.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben