Serielle Anwesenheitserkennung - Serial presence detect

In der Computertechnik ist Serial Presence Detect ( SPD ) eine standardisierte Methode, um automatisch auf Informationen über ein Speichermodul zuzugreifen . Frühere 72-Pin- SIMMs enthielten fünf Pins, die fünf Bits an parallelen Präsenzerkennungsdaten (PPD) bereitstellten, aber der 168-Pin- DIMM- Standard wurde zu einer seriellen Präsenzerkennung geändert, um viel mehr Informationen zu codieren.

Wenn ein gewöhnlicher moderner Computer eingeschaltet wird, führt er zunächst einen Selbsttest beim Einschalten (POST) durch. Dieser Prozess beinhaltet seit etwa Mitte der 1990er Jahre die automatische Konfiguration der aktuell vorhandenen Hardware. SPD ist eine Speicherhardwarefunktion, die es dem Computer ermöglicht zu wissen, welcher Speicher vorhanden ist und welche Speicherzeiten für den Zugriff auf den Speicher verwendet werden sollen.

Manche Computer passen sich komplett automatisch an Hardwareänderungen an. In den meisten Fällen gibt es ein spezielles optionales Verfahren für den Zugriff auf BIOS- Parameter, um Einstellungen anzuzeigen und möglicherweise Änderungen daran vorzunehmen. Es ist möglicherweise möglich zu steuern, wie der Computer die SPD-Speicherdaten verwendet – um Einstellungen auszuwählen, Speichertimings selektiv zu ändern oder möglicherweise die SPD-Daten vollständig zu überschreiben (siehe Übertakten ).

Gespeicherte Informationen

Damit ein Speichermodul SPD unterstützt, erfordern die JEDEC- Standards, dass sich bestimmte Parameter in den unteren 128 Bytes eines EEPROM befinden, das sich auf dem Speichermodul befindet. Diese Bytes enthalten Timing-Parameter, Hersteller, Seriennummer und andere nützliche Informationen über das Modul. Geräte, die den Speicher verwenden, bestimmen automatisch Schlüsselparameter des Moduls, indem sie diese Informationen lesen. Beispielsweise können die SPD-Daten auf einem SDRAM- Modul Informationen über die CAS-Latenz liefern, damit das System diese ohne Benutzereingriff richtig einstellen kann.

Der Zugriff auf die SPD-EEPROM-Firmware erfolgt über SMBus , eine Variante des I²C- Protokolls. Dadurch reduziert sich die Anzahl der Kommunikationspins des Moduls auf nur zwei: ein Taktsignal und ein Datensignal. Das EEPROM teilt Masse-Pins mit dem RAM, hat einen eigenen Power-Pin und hat drei zusätzliche Pins (SA0–2) zur Identifizierung des Steckplatzes, die verwendet werden, um dem EEPROM eine eindeutige Adresse im Bereich 0x50–0x57 zuzuweisen. Die Kommunikationsleitungen können nicht nur von 8 Speichermodulen geteilt werden, sondern derselbe SMBus wird auf Motherboards häufig für Aufgaben zur Überwachung des Systemzustands verwendet, wie z. B. das Lesen von Netzteilspannungen, CPU- Temperaturen und Lüftergeschwindigkeiten.

SPD-EEPROMs reagieren auch auf die I²C-Adressen 0x30–0x37, wenn sie nicht schreibgeschützt sind, und eine Erweiterung (TSE-Serie) verwendet die Adressen 0x18–0x1F, um auf einen optionalen On-Chip-Temperatursensor zuzugreifen. Alle diese Werte sind 7-Bit-I²C-Adressen, die durch ein Device Type Identifier Code Prefix (DTIC) mit SA0-2 gebildet werden: Zum Lesen (1100) von Steckplatz 3 verwendet man 110 0011 = 0x33. Mit einem abschließenden R/W-Bit bildet es den 8-Bit-Geräteauswahlcode. Beachten Sie, dass die Semantik der Slot-ID für Schreibschutzoperationen anders ist: Für sie können sie überhaupt nicht von den SA-Pins übergeben werden.

Vor SPD wurden Speicherchips mit Parallel Presence Detect (PPD) entdeckt. PPD verwendete für jedes Informationsbit einen separaten Pin, wodurch aufgrund des begrenzten Platzes für Pins nur die Geschwindigkeit und Dichte des Speichermoduls gespeichert werden konnte.

SDR-SDRAM

Speichergerät auf einem SDRAM- Modul, das SPD- Daten enthält (rot eingekreist)

Die erste SPD-Spezifikation wurde von JEDEC herausgegeben und von Intel als Teil seiner PC100- Speicherspezifikation verschärft . Die meisten angegebenen Werte sind in binär codierter Dezimalform . Das höchstwertige Halbbyte kann Werte von 10 bis 15 enthalten und reicht in einigen Fällen höher. In solchen Fällen werden stattdessen die Codierungen für 1, 2 und 3 verwendet, um 16, 17 und 18 zu codieren. Ein höchstwertiges Halbbyte von 0 ist reserviert, um "undefiniert" darzustellen.

Das SPD-ROM definiert bis zu drei DRAM-Timings für drei CAS-Latenzen, die durch gesetzte Bits in Byte 18 spezifiziert werden. Zuerst kommt die höchste CAS-Latenz (schnellster Takt), dann zwei niedrigere CAS-Latenzen mit zunehmend niedrigeren Taktraten.

SPD-Inhalte für SDR SDRAM
Byte Bit Anmerkungen
(Dez.) (verhexen.) 7 6 5 4 3 2 1 0
0 0x00 Anzahl vorhandener Bytes Typisch 128
1 0x01 log 2 (Größe des SPD-EEPROM) Typisch 8 (256 Byte)
2 0x02 Basisspeichertyp (4: SPD SDRAM)
3 0x03 Reihenadreßbits der Bank 2 (0-15) Reihenadressenbits der Bank 1 (1–15) Bank 2 ist 0, wenn gleich Bank 1
4 0x04 Spaltenadressenbits der Bank 2 (0–15) Spaltenadressenbits der Bank 1 (1–15) Bank 2 ist 0, wenn gleich Bank 1
5 0x05 Anzahl RAM-Bänke auf Modul (1–255) Normalerweise 1 oder 2
6 0x06 Moduldatenbreite Low Byte Üblicherweise 64 oder 72 für ECC-DIMMs
7 0x07 Moduldatenbreite High Byte 0, es sei denn, Breite 256 Bit
8 0x08 Schnittstellenspannungspegel dieser Baugruppe (entspricht der V cc- Versorgungsspannung) (0–4) Entschlüsselt durch Tabellensuche
9 0x09 Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) Taktzykluszeit bei höchster CAS-Latenz
10 0x0a Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) SDRAM-Zugriffszeit von der Uhr (t AC )
11 0x0b DIMM-Konfigurationstyp (0–2): Nicht-ECC, Parität, ECC Tabellensuche
12 0x0c Selbst Aktualisierungsperiode (0–5): 64, 256, 128, 32, 16, 8 kHz Aktualisierungsanforderungen
13 0x0d Bank 2 2× Bank 1 primäre SDRAM-Breite (1–127, normalerweise 8) Breite von Bank-1-Daten-SDRAM-Geräten. Bank 2 kann dieselbe Breite oder 2 × Breite haben, wenn Bit 7 gesetzt ist.
14 0x0e Bank 2 2× Bank 1 ECC SDRAM-Breite (0–127) Breite von Bank-1-ECC/Parity-SDRAM-Geräten. Bank 2 kann dieselbe Breite oder 2 × Breite haben, wenn Bit 7 gesetzt ist.
fünfzehn 0x0f Taktverzögerung für zufällige Spaltenlesevorgänge Normalerweise 1
16 0x10 Buchseite 8 4 2 1 Unterstützte Burstlängen (Bitmap)
17 0x11 Bänke pro SDRAM-Gerät (1–255) Normalerweise 2 oder 4
18 0x12 7 6 5 4 3 2 1 Unterstützte CAS- Latenzen (Bitmap)
19 0x13 6 5 4 3 2 1 0 CS- Latenzen unterstützt (Bitmap)
20 0x14 6 5 4 3 2 1 0 WE- Latenzen unterstützt (Bitmap)
21 0x15 Redundant Diff. Uhr Registrierte Daten Gepufferte Daten PLL auf der Karte Registrierte Adr. Gepufferte Adr. Speichermodul-Feature-Bitmap
22 0x16 Obere V cc (Versorgungsspannung) Toleranz Untere V cc (Versorgungsspannung) Toleranz Schreib-/Lese-Burst Alles vorladen Automatische Vorladung Frühe RAS- Vorladung Bitmap-Unterstützung für Speicherchipfunktionen
23 0x17 Nanosekunden (4-18) Zehntel Nanosekunden (0–9: 0,0–0,9) Taktzykluszeit bei mittlerer CAS-Latenz
24 0x18 Nanosekunden (4-18) Zehntel Nanosekunden (0–9: 0,0–0,9) Datenzugriffszeit ab Uhr (t AC )
25 0x19 Nanosekunden (1–63) 0,25 ns (0–3: 0,00–0,75) Taktzykluszeit bei kurzer CAS-Latenz.
26 0x1a Nanosekunden (1–63) 0,25 ns (0–3: 0,00–0,75) Datenzugriffszeit ab Uhr (t AC )
27 0x1b Nanosekunden (1–255) Mindestreihenvorladezeit (t RP )
28 0x1c Nanosekunden (1–255) Minimale Zeilen-Aktiv-Zeilen-Aktiv-Verzögerung (t RRD )
29 0x1d Nanosekunden (1–255) Minimale Verzögerung von RAS zu CAS (t RCD )
30 0x1e Nanosekunden (1–255) Minimale aktive bis Vorladezeit (t RAS )
31 0x1f 512 MiB 256 MiB 128 MiB 64 MiB 32 MiB 16 MiB 8 MiB 4 MiB Modulbankdichte (Bitmap). Bei unterschiedlich großen Bänken werden zwei Bits gesetzt.
32 0x20 Zeichen (1: −) Nanosekunden (0–7) Zehntel Nanosekunden (0–9: 0,0–0,9) Adresse/Befehl Setup-Zeit ab Uhr
33 0x21 Zeichen (1: −) Nanosekunden (0–7) Zehntel Nanosekunden (0–9: 0,0–0,9) Adress-/Befehlshaltezeit nach Uhr
34 0x22 Zeichen (1: −) Nanosekunden (0–7) Zehntel Nanosekunden (0–9: 0,0–0,9) Dateneingabe-Setup-Zeit von der Uhr
35 0x23 Zeichen (1: −) Nanosekunden (0–7) Zehntel Nanosekunden (0–9: 0,0–0,9) Haltezeit der Dateneingabe nach der Uhr
36–61 0x24–0x3d Reserviert Für zukünftige Standardisierung
62 0x3e Hauptrevision (0–9) Kleinere Überarbeitung (0–9) SPD-Revisionsstand; zB 1,2
63 0x3f Prüfsumme Summe der Bytes 0–62, dann nicht negiert
64–71 0x40–47 Hersteller JEDEC-ID. Gespeicherter Little-Endian, nachgestellte Null aufgefüllt
72 0x48 Standort der Modulfertigung Anbieterspezifischer Code
73–90 0x49–0x5a Modul-Teilenummer ASCII, mit Leerzeichen aufgefüllt
91–92 0x5b–0x5c Modul-Revisionscode Anbieterspezifischer Code
93 0x5d Dutzende von Jahren (0–9: 0–90) Jahre (0–9) Herstellungsdatum (YYWW)
94 0x5e Zehn Wochen (0–5: 0–50) Wochen (0–9)
95–98 0x5f–0x62 Seriennummer des Moduls Anbieterspezifischer Code
99–125 0x63–0x7f Herstellerspezifische Daten Könnte verbessertes Leistungsprofil sein
126 0x7e 0x66 [ sic ] für 66 MHz, 0x64 für 100 MHz Intel-Frequenzunterstützung
127 0x7f CLK0 CLK1 CLK3 CLK3 90/100 °C CL3 CL2 Gleichzeitiger AP Intel-Feature-Bitmap

DDR-SDRAM

Das DDR DIMM SPD-Format ist eine Erweiterung des SDR SDRAM-Formats. Meistens werden Parameterbereiche neu skaliert, um höheren Geschwindigkeiten gerecht zu werden.

SPD-Inhalte für DDR SDRAM
Byte Bit Anmerkungen
(Dez.) (verhexen.) 7 6 5 4 3 2 1 0
0 0x00 Anzahl der geschriebenen Bytes Typisch 128
1 0x01 log 2 (Größe des SPD-EEPROM) Typisch 8 (256 Byte)
2 0x02 Basisspeichertyp (7 = DDR SDRAM)
3 0x03 Reihenadreßbits der Bank 2 (0-15) Reihenadressenbits der Bank 1 (1–15) Bank 2 ist 0, wenn sie gleich Bank 1 ist.
4 0x04 Spaltenadressenbits der Bank 2 (0–15) Spaltenadressenbits der Bank 1 (1–15) Bank 2 ist 0, wenn sie gleich Bank 1 ist.
5 0x05 Anzahl RAM-Bänke auf Modul (1–255) Normalerweise 1 oder 2
6 0x06 Moduldatenbreite Low Byte Üblicherweise 64 oder 72 für ECC-DIMMs
7 0x07 Moduldatenbreite High Byte 0, es sei denn, Breite 256 Bit
8 0x08 Schnittstellenspannungspegel dieser Baugruppe (entspricht der V cc- Versorgungsspannung) (0–5) Entschlüsselt durch Tabellensuche
9 0x09 Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) Taktzykluszeit bei höchster CAS-Latenz.
10 0x0a Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) SDRAM-Zugriffszeit von der Uhr (t AC )
11 0x0b DIMM-Konfigurationstyp (0–2): Nicht-ECC, Parität, ECC Tabellensuche
12 0x0c Selbst Aktualisierungsperiode (0–5): 64, 256, 128, 32, 16, 8 kHz Aktualisierungsanforderungen
13 0x0d Bank 2 2× Bank 1 primäre SDRAM-Breite (1–127) Breite von Bank-1-Daten-SDRAM-Geräten. Bank 2 kann dieselbe Breite oder 2 × Breite haben, wenn Bit 7 gesetzt ist.
14 0x0e Bank 2 2× Bank 1 ECC SDRAM-Breite (0–127) Breite von Bank-1-ECC/Parity-SDRAM-Geräten. Bank 2 kann dieselbe Breite oder 2 × Breite haben, wenn Bit 7 gesetzt ist.
fünfzehn 0x0f Taktverzögerung für zufällige Spaltenlesevorgänge Normalerweise 1
16 0x10 Buchseite 8 4 2 1 Unterstützte Burstlängen (Bitmap)
17 0x11 Bänke pro SDRAM-Gerät (1–255) Normalerweise 4
18 0x12 4 3.5 3 2.5 2 1,5 1 Unterstützte CAS- Latenzen (Bitmap)
19 0x13 6 5 4 3 2 1 0 CS- Latenzen unterstützt (Bitmap)
20 0x14 6 5 4 3 2 1 0 WE- Latenzen unterstützt (Bitmap)
21 0x15 x Diff-Uhr FET-Schalter externe Freigabe FET-Schalter On-Board-Aktivierung PLL auf der Karte Eingetragen Gepuffert Speichermodul-Feature-Bitmap
22 0x16 Schneller AP Gleichzeitiges automatisches Vorladen Obere V cc (Versorgungsspannung) Toleranz Untere V cc (Versorgungsspannung) Toleranz Enthält schwachen Treiber Bitmap mit Speicherchipfunktion
23 0x17 Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) Taktzykluszeit bei mittlerer CAS-Latenz.
24 0x18 Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Datenzugriffszeit ab Uhr (t AC )
25 0x19 Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) Taktzykluszeit bei kurzer CAS-Latenz.
26 0x1a Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Datenzugriffszeit ab Uhr (t AC )
27 0x1b Nanosekunden (1–63) 0,25 ns (0–0,75) Mindestreihenvorladezeit (t RP )
28 0x1c Nanosekunden (1–63) 0,25 ns (0–0,75) Minimale Zeilen-Aktiv-Zeilen-Aktiv-Verzögerung (t RRD )
29 0x1d Nanosekunden (1–63) 0,25 ns (0–0,75) Minimale Verzögerung von RAS zu CAS (t RCD )
30 0x1e Nanosekunden (1–255) Minimale aktive bis Vorladezeit (t RAS )
31 0x1f 512 MiB 256 MiB 128 MiB 64 MiB 32 MiB 16 MiB/
4 GiB
8 MiB/
2 GiB
4 MiB/
1 GiB
Modulbankdichte (Bitmap). Bei unterschiedlich großen Bänken werden zwei Bits gesetzt.
32 0x20 Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Adresse/Befehl Setup-Zeit ab Uhr
33 0x21 Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Adress-/Befehlshaltezeit nach Uhr
34 0x22 Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Dateneingabe-Setup-Zeit von der Uhr
35 0x23 Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Haltezeit der Dateneingabe nach der Uhr
36–40 0x24–0x28 Reserviert Superset-Informationen
41 0x29 Nanosekunden (1–255) Mindestzeit aktiv bis aktiv/Aktualisierung (t RC )
42 0x2a Nanosekunden (1–255) Mindestaktualisierung auf aktive/Aktualisierungszeit (t RFC )
43 0x2b Nanosekunden (1–63 oder 255: kein Maximum) 0,25 ns (0–0,75) Maximale Taktzykluszeit (t CK max.)
44 0x2c Hundertstel Nanosekunden (0,01–2,55) Maximaler Skew, DQS zu jedem DQ. (t DQSQ max.)
45 0x2d Zehntel Nanosekunden (0,0–1,2) Hundertstel Nanosekunden (0,00–0,09) Read Data Hold-Skew-Faktor (t QHS )
46 0x2e Reserviert Für zukünftige Standardisierung
47 0x2f Höhe Höhe des DIMM-Moduls, Tabellensuche
48–61 0x30–0x3d Reserviert Für zukünftige Standardisierung
62 0x3e Hauptrevision (0–9) Kleinere Überarbeitung (0–9) SPD-Revisionsstufe, 0.0 oder 1.0
63 0x3f Prüfsumme Summe der Bytes 0–62, dann nicht negiert
64–71 0x40–47 Hersteller JEDEC-ID. Gespeicherter Little-Endian, nachgestellte Null aufgefüllt
72 0x48 Standort der Modulfertigung Anbieterspezifischer Code
73–90 0x49–0x5a Modul-Teilenummer ASCII, mit Leerzeichen aufgefüllt
91–92 0x5b–0x5c Modul-Revisionscode Anbieterspezifischer Code
93 0x5d Dutzende von Jahren (0–90) Jahre (0–9) Herstellungsdatum (YYWW)
94 0x5e Zehn Wochen (0–50) Wochen (0–9)
95–98 0x5f–0x62 Seriennummer des Moduls Anbieterspezifischer Code
99–127 0x63–0x7f Herstellerspezifische Daten Könnte verbessertes Leistungsprofil sein

DDR2-SDRAM

Der DDR2-SPD-Standard nimmt eine Reihe von Änderungen vor, ähnelt jedoch in etwa dem oben genannten. Eine bemerkenswerte Streichung ist die verwirrende und wenig genutzte Unterstützung für DIMMs mit zwei Reihen unterschiedlicher Größe.

Für Zykluszeitfelder (Bytes 9, 23, 25 und 49), die in BCD codiert sind, sind einige zusätzliche Codierungen für die Zehntelstelle definiert, um einige gängige Timings genau darzustellen:

DDR2 BCD-Erweiterungen
Verhexen Binär Bedeutung
EIN 1010 0,25 (¼)
B 1011 0,33 (⅓)
C 1100 0,66 (⅔)
D 1101 0,75 (¾)
E 1110 0,875 (⅞, Nvidia XMP-Erweiterung)
F 1111 Reserviert
SPD-Inhalte für DDR2 SDRAM
Byte Bit Anmerkungen
Dezember Verhexen 7 6 5 4 3 2 1 0
0 0x00 Anzahl der geschriebenen Bytes Typisch 128
1 0x01 log 2 (Größe des SPD-EEPROM) Typisch 8 (256 Byte)
2 0x02 Basisspeichertyp (8 = DDR2 SDRAM)
3 0x03 Reserviert Zeilenadressenbits (1–15)
4 0x04 Reserviert Spaltenadressenbits (1–15)
5 0x05 Vertikale Höhe Stapel? ConC? Ränge-1 (1–8) Normalerweise 0 oder 1, was 1 oder 2 bedeutet
6 0x06 Moduldatenbreite Üblicherweise 64 oder 72 für ECC-DIMMs
7 0x07 Reserviert
8 0x08 Schnittstellenspannungspegel dieser Baugruppe (entspricht der V cc- Versorgungsspannung) (0–5) Entschlüsselt durch Tabellensuche.
Üblicherweise 5 = SSTL 1,8 V
9 0x09 Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) Taktzykluszeit bei höchster CAS-Latenz.
10 0x0a Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) SDRAM-Zugriffszeit von der Uhr (t AC )
11 0x0b DIMM-Konfigurationstyp (0–2): Nicht-ECC, Parität, ECC Tabellensuche
12 0x0c Selbst Aktualisierungsperiode (0–5): 64, 256, 128, 32, 16, 8 kHz Aktualisierungsanforderungen
13 0x0d Primäre SDRAM-Breite (1–255) Üblicherweise 8 (Modul aus ×8 Teilen aufgebaut) oder 16
14 0x0e ECC SDRAM-Breite (0–255) Breite der Bank-ECC/Parity-SDRAM-Geräte. Normalerweise 0 oder 8.
fünfzehn 0x0f Reserviert
16 0x10 8 4 Unterstützte Burstlängen (Bitmap)
17 0x11 Bänke pro SDRAM-Gerät (1–255) Typischerweise 4 oder 8
18 0x12 7 6 5 4 3 2 Unterstützte CAS- Latenzen (Bitmap)
19 0x13 Reserviert
20 0x14 Mini-UDIMM Mini-RDIMM Mikro-DIMM SO-DIMM UDIMM RDIMM DIMM-Typ dieser Baugruppe (Bitmap)
21 0x15 Modul ist Analysesonde FET-Schalter externe Freigabe Speichermodul-Feature-Bitmap
22 0x16 Enthält schwachen Treiber Bitmap mit Speicherchipfunktion
23 0x17 Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) Taktzykluszeit bei mittlerer CAS-Latenz.
24 0x18 Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Datenzugriffszeit ab Uhr (t AC )
25 0x19 Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) Taktzykluszeit bei kurzer CAS-Latenz.
26 0x1a Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Datenzugriffszeit ab Uhr (t AC )
27 0x1b Nanosekunden (1–63) 1/4 ns (0–0,75) Mindestreihenvorladezeit (t RP )
28 0x1c Nanosekunden (1–63) 1/4 ns (0–0,75) Minimale Zeilen-Aktiv-Zeilen-Aktiv-Verzögerung (t RRD )
29 0x1d Nanosekunden (1–63) 1/4 ns (0–0,75) Minimale Verzögerung von RAS zu CAS (t RCD )
30 0x1e Nanosekunden (1–255) Minimale aktive bis Vorladezeit (t RAS )
31 0x1f 512 MiB 256 MiB 128 MiB 16 GiB 8 GiB 4 GiB 2 GiB 1 GiB Größe jedes Rangs (Bitmap).
32 0x20 Zehntel Nanosekunden (0,0–1,2) Hundertstel Nanosekunden (0,00–0,09) Adresse/Befehl Setup-Zeit ab Uhr
33 0x21 Zehntel Nanosekunden (0,0–1,2) Hundertstel Nanosekunden (0,00–0,09) Adress-/Befehlshaltezeit nach Uhr
34 0x22 Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Setup-Zeit der Dateneingabe vom Stroboskop
35 0x23 Zehntel Nanosekunden (0,0–0,9) Hundertstel Nanosekunden (0,00–0,09) Haltezeit der Dateneingabe nach dem Stroboskop
36 0x24 Nanosekunden (1–63) 0,25 ns (0–0,75) Minimale Schreibwiederherstellungszeit (t WR )
37 0x25 Nanosekunden (1–63) 0,25 ns (0–0,75) Interne Schreib-Lese-Befehlsverzögerung (t WTR )
38 0x26 Nanosekunden (1–63) 0,25 ns (0–0,75) Interne Verzögerung des Lesens zum Vorladen (t RTP )
39 0x27 Reserviert Reserviert für "Memory-Analyse-Sondeneigenschaften"
40 0x28 t RC gebrochen ns (0–5):
0, 0.25, 0.33, 0.5, 0.66, 0.75
t RFC fraktional ns (0–5):
0, 0.25, 0.33, 0.5, 0.66, 0.75
t RFC + 256 ns Erweiterung der Bytes 41 und 42.
41 0x29 Nanosekunden (1–255) Mindestzeit aktiv bis aktiv/Aktualisierung (t RC )
42 0x2a Nanosekunden (1–255) Mindestaktualisierung auf aktive/Aktualisierungszeit (t RFC )
43 0x2b Nanosekunden (0-15) Zehntel Nanosekunden (0,0–0,9) Maximale Taktzykluszeit (t CK max)
44 0x2c Hundertstel Nanosekunden (0,01–2,55) Maximaler Skew, DQS zu jedem DQ. (t DQSQ max.)
45 0x2d Hundertstel Nanosekunden (0,01–2,55) Read Data Hold-Skew-Faktor (t QHS )
46 0x2e Mikrosekunden (1–255) PLL-Relock-Zeit
47–61 0x2f–0x3d Reserviert Für zukünftige Standardisierung.
62 0x3e Hauptrevision (0–9) Kleinere Überarbeitung (0,0–0,9) SPD-Revisionsstufe, normalerweise 1.0
63 0x3f Prüfsumme Summe der Bytes 0–62, nicht negiert
64–71 0x40–47 Hersteller JEDEC ID Gespeicherter Little-Endian, nachgestellte Nullstelle
72 0x48 Standort der Modulfertigung Anbieterspezifischer Code
73–90 0x49–0x5a Modul-Teilenummer ASCII, mit Leerzeichen aufgefüllt (begrenzt auf (,-,), A–Z, a–z, 0–9, Leerzeichen)
91–92 0x5b–0x5c Modul-Revisionscode Anbieterspezifischer Code
93 0x5d Jahre seit 2000 (0–255) Herstellungsdatum (YYWW)
94 0x5e Wochen (1–52)
95–98 0x5f–0x62 Seriennummer des Moduls Anbieterspezifischer Code
99–127 0x63–0x7f Herstellerspezifische Daten Könnte verbessertes Leistungsprofil sein

DDR3-SDRAM

Der DDR3-SDRAM-Standard überarbeitet und vereinfacht das Layout der SPD-Inhalte erheblich. Anstelle einer Anzahl von BCD-codierten Nanosekundenfeldern werden einige "Zeitbasis"-Einheiten mit hoher Genauigkeit spezifiziert, und verschiedene Zeitsteuerungsparameter werden als Vielfache dieser Basiseinheit codiert. Außerdem wurde die Praxis, unterschiedliche Zeitwerte in Abhängigkeit von der CAS-Latenzzeit anzugeben, fallengelassen; Jetzt gibt es nur noch einen einzigen Satz von Timing-Parametern.

Revision 1.1 lässt einige Parameter als "mittlere Zeitbasis"-Wert plus eine (vorzeichenbehaftete, -128 +127) "feine Zeitbasis"-Korrektur ausdrücken. Im Allgemeinen beträgt die mittlere Zeitbasis 1/8 ns (125 ps) und die feine Zeitbasis beträgt 1, 2,5 oder 5 ps. Aus Kompatibilitätsgründen mit früheren Versionen, denen die Korrektur fehlt, wird die mittlere Zeitbasiszahl normalerweise aufgerundet und die Korrektur negativ. Werte, die auf diese Weise funktionieren, sind:

DDR3 SPD zweiteilige Timing-Parameter
MTB-Byte FTB-Byte Wert
12 34 t CK min, minimale Taktperiode
16 35 t AA min, minimale CAS-Latenzzeit
18 36 t RCD min, minimale Verzögerung von RAS# zu CAS#
20 37 t RP min, minimale Zeilenvorladeverzögerung
21, 23 38 t RC min, Minimum aktiv bis aktiv/Vorladeverzögerung
SPD-Inhalte für DDR3-SDRAM
Byte Bit Anmerkungen
Dezember Verhexen 7 6 5 4 3 2 1 0
0 0x00 Serien aus CRC ausschließen SPD-Bytes insgesamt (undef/256) Verwendete SPD-Bytes (undef/128/176/256)
1 0x01 SPD-Großrevision SPD kleinere Überarbeitung 1.0, 1.1, 1.2 oder 1.3
2 0x02 Basisspeichertyp (11 = DDR3 SDRAM) Art der RAM-Chips
3 0x03 Reserviert Modultyp Modultyp; zB 2 = Ungepuffertes DIMM, 3 = SO-DIMM, 11=LRDIMM
4 0x04 Bankadressenbits-3 log 2 (Bits pro Chip) -28 Null bedeutet 8 Bänke, 256 Mibit.
5 0x05 Zeilenadressenbits-12 Spaltenadressenbits −9
6 0x06 Reserviert 1,25 V 1,35 V Nicht 1,5 V Modulspannungen unterstützt. 1,5 V ist Standard.
7 0x07 Ränge−1 log 2 (I/O-Bits/Chip)−2 Modulorganisation
8 0x08 ECC-Bits (001=8) log 2 (Datenbits)−3 0x03 für 64-Bit-Nicht-ECC-DIMM.
9 0x09 Dividende, Pikosekunden (1–15) Teiler, Pikosekunden (1–15) Feine Zeitbasis, Dividende/Divisor
10 0x0a Dividende, Nanosekunden (1–255) Mittlere Zeitbasis, Dividende/Divisor; üblicherweise 1/8
11 0x0b Teiler, Nanosekunden (1–255)
12 0x0c Mindestzykluszeit t CK min In Vielfachen von MTB
13 0x0d Reserviert
14 0x0e 11 10 9 8 7 6 5 4 Unterstützte CAS-Latenzen (Bitmap)
fünfzehn 0x0f 18 17 16 fünfzehn 14 13 12
16 0x10 Minimale CAS-Latenzzeit, t AA min In Vielfachen von MTB; zB 80/8 ns.
17 0x11 Minimale Schreibwiederherstellungszeit, t WR min In Vielfachen von MTB; zB 120/8 ns.
18 0x12 Mindestverzögerungszeit von RAS zu CAS, t RCD min In Vielfachen von MTB; zB 100/8 ns.
19 0x13 Minimale aktive Verzögerungszeit von Reihe zu Reihe, t RRD min In Vielfachen von MTB; zB 60/8 ns.
20 0x14 Mindestreihenvorladezeit, t RP min In Vielfachen von MTB; zB 100/8 ns.
21 0x15 t RC min, Bits 11:8 t RAS min, Bits 11:8 Obere 4 Bits von Byte 23 und 22
22 0x16 Minimum aktiv bis Zeit, t RAS min, Bits 7:0 In Vielfachen von MTB; zB 280/8 ns.
23 0x17 Minimum aktiv bis aktiv/aktualisieren, t RC min, Bits 7:0 In Vielfachen von MTB; zB 396/8 ns.
24 0x18 Minimale Auffrischungsverzögerung, t RFC min, Bits 7:0 In Vielfachen von MTB; zB 1280/8 ns.
25 0x19 Minimale Verzögerung für die Wiederherstellungswiederherstellung, t RFC min, Bits 15:8
26 0x1a Minimale interne Schreib-Lese-Verzögerung, t WTR min In Vielfachen von MTB; zB 60/8 ns.
27 0x1b Minimale Verzögerung des internen Lesens bis zum Vorladen, t RTP min In Vielfachen von MTB; zB 60/8 ns.
28 0x1c Reserviert t FAW min, Bits 11:8 In Vielfachen von MTB; zB 240/8 ns.
29 0x1d Mindestens vier Aktivierungsfensterverzögerung t FAW min, Bits 7:0
30 0x1e DLL-aus RZQ/7 RZQ/6 Optionale SDRAM-Funktionen unterstützen Bitmap
31 0x1f PASR ODTS ASR ETR 1× ETR (95 °C) SDRAM-Thermo- und Aktualisierungsoptionen
32 0x20 Gegenwärtig Genauigkeit (TBD; derzeit 0 = undefiniert) DIMM-Thermosensor vorhanden?
33 0x21 Nichtstd. Würfel zählen Signalbelastung Nicht standardmäßiger SDRAM-Gerätetyp (z. B. Stacked Die)
34 0x22 t CK min Korrektur (neu für 1.1) Vorzeichenbehaftetes Vielfaches von FTB, hinzugefügt zu Byte 12
35 0x23 t AA min-Korrektur (neu für 1.1) Vorzeichenbehaftetes Vielfaches von FTB, hinzugefügt zu Byte 16
36 0x24 t RCD min-Korrektur (neu für 1.1) Vorzeichenbehaftetes Vielfaches von FTB, hinzugefügt zu Byte 18
37 0x25 t RP min-Korrektur (neu für 1.1) Vorzeichenbehaftetes Vielfaches von FTB, hinzugefügt zu Byte 20
38 0x26 t RC min-Korrektur (neu für 1.1) Vorzeichenbehaftetes Vielfaches von FTB, hinzugefügt zu Byte 23
39–40 0x27–0x28 Reserviert Für zukünftige Standardisierung.
41 0x29 Anbieterspezifisch t MAW Maximaler Aktivierungszähler (MAC) (ungetestet/700k/600k/.../200k/reserviert/∞) Zur Abschwächung von Reihenhämmern
42–59 0x2a–0x3b Reserviert Für zukünftige Standardisierung.
60 0x3c Modulhöhe, mm (1–31, >45) Modulnennhöhe
61 0x3d Rückenstärke, mm (1–16) Frontdicke, mm (1–16) Moduldicke, Wert = ceil(mm) − 1
62 0x3e Entwurf Revision JEDEC-Designnummer Verwendetes JEDEC-Referenzdesign (11111=kein)
63–116 0x3f–0x74 Modulspezifischer Abschnitt Unterscheidet sich zwischen registriert/ungepuffert
117 0x75 Modulhersteller-ID, lsbyte Zugewiesen von JEP-106
118 0x76 Modulhersteller-ID, msbyte
119 0x77 Standort der Modulfertigung Anbieterspezifischer Code
120 0x78 Zehn Jahre Jahre Herstellungsjahr (BCD)
121 0x79 Zehn Wochen Wochen Fertigungswoche (BCD)
122–125 0x7a–0x7d Seriennummer des Moduls Anbieterspezifischer Code
126–127 0x7e–0x7f SPD CRC-16 Enthält Bytes 0–116 oder 0–125; siehe Byte 0 Bit 7
128–145 0x80–0x91 Modul-Teilenummer ASCII-Untermenge, mit Leerzeichen aufgefüllt
146–147 0x92–0x93 Modul-Revisionscode Herstellerdefiniert
148–149 0x94–0x95 DRAM-Hersteller-ID Im Unterschied zum Modulhersteller
150–175 0x96–0xAF Herstellerspezifische Daten
176–255 0xB0–0xFF Verfügbar für den Kundengebrauch

Die Speicherkapazität eines Moduls lässt sich aus den Bytes 4, 7 und 8 berechnen. Die Modulbreite (Byte 8) geteilt durch die Anzahl der Bits pro Chip (Byte 7) ergibt die Anzahl der Chips pro Rank. Dies kann dann mit der Kapazität pro Chip (Byte 4) und der Anzahl der Chipreihen auf dem Modul (normalerweise 1 oder 2, ab Byte 7) multipliziert werden.

DDR4-SDRAM

Der DDR4 SDRAM "Annex L" Standard für SPD ändert das verwendete EEPROM-Modul. Anstelle der alten AT24C02-kompatiblen 256-Byte-EEPROMs definiert JEDEC jetzt einen neuen Nicht-Standard-EE1004-Typ mit zwei Seiten auf SMBus-Ebene mit je 256 Byte. Der neue Speicher verwendet immer noch die alten 0x50–0x57-Adressen, aber zwei zusätzliche Adressen bei 0x36 (SPA0) und 0x37 (SPA1) werden jetzt verwendet, um Befehle zur Auswahl der aktuell aktiven Seite für den Bus zu empfangen, eine Form der Bankumschaltung . Intern ist jede logische Seite weiter in zwei physikalische Blöcke von jeweils 128 Byte unterteilt, was insgesamt vier Blöcke und 512 Byte ergibt. Andere Semantiken für "spezielle" Adressbereiche bleiben gleich, obwohl der Schreibschutz jetzt blockweise adressiert wird und nun eine hohe Spannung an SA0 erforderlich ist, um seinen Zustand zu ändern.

Annex L definiert einige unterschiedliche Layouts, die je nach Typ des Speichermoduls in ein 512-Byte-Template (von denen maximal 320 Byte definiert sind) gesteckt werden können. Die Bitdefinitionen sind DDR3 ähnlich.

SPD-Inhalte für DDR4 SDRAM
Byte Bit Anmerkungen
Dezember Verhexen 7 6 5 4 3 2 1 0
0 0x00 Verwendete SPD-Bytes
1 0x01 SPD-Revision Nr Normalerweise 0x10, 0x11, 0x12
2 0x02 Basisspeichertyp (12 = DDR4 SDRAM) Art der RAM-Chips
3 0x03 Reserviert Modultyp Modultyp; zB 2 = Ungepuffertes DIMM, 3 = SO-DIMM, 11=LRDIMM
4 0x04 Bankgruppenbits Bankadressenbits-2 Gesamt-SDRAM-Kapazität pro Chip in MB Null bedeutet keine Bankgruppen, 4 Bänke, 256 Mibit.
5 0x05 Reserviert Zeilenadressenbits-12 Spaltenadressenbits −9
6 0x06 Primärer SDRAM-Pakettyp Würfel zählen Reserviert Signalbelastung
7 0x07 Reserviert Maximales Aktivierungsfenster (tMAW) Maximaler Aktivierungszähler (MAC) Optionale SDRAM-Funktionen
8 0x08 Reserviert SDRAM-Thermo- und Aktualisierungsoptionen
9 0x09 Reparatur nach dem Paket (PPR) Weiches PPR Reserviert Andere optionale SDRAM-Funktionen
10 0x0a SDRAM-Pakettyp Würfelzahl−1 DRAM-Dichteverhältnis Signal laden Sekundärer SDRAM-Pakettyp
11 0x0b Reserviert Endurant-Flagge Betriebsfähige Flagge Modulnennspannung, VDD
12 0x0c Reserviert Rang-Mix Package-Ränge pro DIMM−1 SDRAM-Gerätebreite Modulorganisation
13 0x0d Reserviert Busbreitenerweiterung Breite des primären Busses Modulspeicherbusbreite in Bit
14 0x0e Wärmesensor Reserviert Modul-Thermosensor
fünfzehn 0x0f Reserviert Erweiterter Basismodultyp
16 0x10 Reserviert
17 0x11 Reserviert Mittlere Zeitbasis (MTB) Feine Zeitbasis (FTB) Gemessen in ps.
18 0x12 Minimale SDRAM-Zykluszeit, t CKAVG min In Vielfachen von MTB; zB 100/8 ns.
19 0x13 Maximale SDRAM-Zykluszeit, t CKAVG max In Vielfachen von MTB; zB 60/8 ns.
20 0x14 14 13 12 11 10 9 8 7 CAS-Latenzen unterstützte Bitmaske
21 0x15 22 21 20 19 18 17 16 fünfzehn CAS-Latenzen unterstützte Bitmaske
22 0x16 30 29 28 27 26 25 24 23 CAS-Latenzen unterstützte Bitmaske
23 0x17 Niedriger CL-Bereich Reserviert 36 35 34 33 32 31 CAS-Latenzen unterstützte Bitmaske
24 0x18 Minimale CAS-Latenzzeit, t AA min In Vielfachen von MTB; zB 1280/8 ns.
25 0x19 Mindestverzögerungszeit von RAS zu CAS, t RCD min In Vielfachen von MTB; zB 60/8 ns.
26 0x1a Minimale Zeilenvorladeverzögerungszeit, t RP min In Vielfachen von MTB; zB 60/8 ns.
27 0x1b Obere Nibbles für t RAS min und t RC min
28 0x1c Mindestens aktive bis Vorladeverzögerungszeit, t RAS min niedrigstwertiges Byte In Vielfachen von MTB
29 0x1d Mindestens aktiv bis aktiv/Refresh-Verzögerungszeit, t RC min niedrigstwertiges Byte In Vielfachen von MTB
30 0x1e Minimale Verzögerungszeit für die Wiederherstellungswiederherstellung, t RFC1 min niedrigstwertiges Byte In Vielfachen von MTB
31 0x1f Minimale Verzögerungszeit für die Wiederherstellungswiederherstellung, t RFC1 min höchstwertiges Byte In Vielfachen von MTB
32 0x20 Minimale Verzögerungszeit für die Wiederherstellungswiederherstellung, t RFC2 min niedrigstwertiges Byte In Vielfachen von MTB
33 0x21 Minimale Verzögerungszeit für die Wiederherstellungswiederherstellung, t RFC2 min höchstwertiges Byte In Vielfachen von MTB
34 0x22 Minimale Verzögerungszeit für die Wiederherstellungswiederherstellung, t RFC4 min niedrigstwertiges Byte In Vielfachen von MTB
35 0x23 Minimale Verzögerungszeit für die Wiederherstellungswiederherstellung, t RFC4 min höchstwertiges Byte In Vielfachen von MTB
36 0x24 Reserviert t FAW min höchstwertiges Nibble
37 0x25 Mindestens vier Aktivierungsfensterverzögerungszeit, t FAW min niedrigstwertiges Byte In Vielfachen von MTB
38 0x26 Mindestaktivierung zum Aktivieren der Verzögerungszeit, t RRD_S min, andere Bankgruppe In Vielfachen von MTB
39 0x27 Mindestaktivierung zum Aktivieren der Verzögerungszeit, t RRD_L min, gleiche Bankgruppe In Vielfachen von MTB
40 0x28 Minimale Verzögerungszeit von CAS zu CAS, t CCD_L min, gleiche Bankgruppe In Vielfachen von MTB
41 0x29 Oberes Nibble für t WR min
42 0x2a Minimale Schreibwiederherstellungszeit, t WR min In Vielfachen von MTB
43 0x2b Obere Knabbereien für t WTR min
44 0x2c Minimale Schreib-Lese-Zeit, t WTR_S min, andere Bankgruppe In Vielfachen von MTB
45 0x2d Minimale Schreib-Lese-Zeit, t WTR_L min, gleiche Bankgruppe In Vielfachen von MTB
49–59 0x2e–0x3b Reserviert Abschnitt Basiskonfiguration
60–77 0x3c–0x4d Anschluss an SDRAM-Bit-Mapping
78–116 0x4e–0x74 Reserviert Abschnitt Basiskonfiguration
117 0x75 Feiner Offset für minimale Verzögerungszeit von CAS zu CAS, t CCD_L min, gleiche Bank Zweierkomplement-Multiplikator für FTB-Einheiten
118 0x76 Feinverschiebung für minimale Aktivierung zur Aktivierung der Verzögerungszeit, t RRD_L min, gleiche Bankgruppe Zweierkomplement-Multiplikator für FTB-Einheiten
119 0x77 Feinverschiebung für minimale Aktivierung zur Aktivierung der Verzögerungszeit, t RRD_S min, andere Bankgruppe Zweierkomplement-Multiplikator für FTB-Einheiten
120 0x78 Feinverschiebung für minimale aktive bis aktive/Auffrischverzögerungszeit, t RC min Zweierkomplement-Multiplikator für FTB-Einheiten
121 0x79 Feiner Offset für minimale Zeilenvorladeverzögerungszeit, t RP min Zweierkomplement-Multiplikator für FTB-Einheiten
122 0x7a Feiner Offset für minimale Verzögerungszeit von RAS zu CAS, t RCD min Zweierkomplement-Multiplikator für FTB-Einheiten
123 0x7b Feiner Offset für minimale CAS-Latenzzeit, t AA min Zweierkomplement-Multiplikator für FTB-Einheiten
124 0x7c Feiner Offset für maximale SDRAM-Zykluszeit, t CKAVG max Zweierkomplement-Multiplikator für FTB-Einheiten
125 0x7d Feinversatz für SDRAM-Mindestzykluszeit, t CKAVG min Zweierkomplement-Multiplikator für FTB-Einheiten
126 0x7e Cyclic Rendundancy Code (CRC) für den Basiskonfigurationsabschnitt, niederwertigstes Byte CRC16-Algorithmus
127 0x7f Cyclic Rendundancy Code (CRC) für den Basiskonfigurationsabschnitt, höchstwertiges Byte CRC16-Algorithmus
128–191 0x80–0xbf Modulspezifischer Abschnitt Abhängig von der Speichermodulfamilie (UDIMM, RDIMM, LRDIMM)
192–255 0xc0–0xff Spezifische Parameter für die Hybridspeicherarchitektur
256–319 0x100–0x13f Erweiterter Funktionsparameterblock
320–321 0x140–0x141 Modulhersteller Siehe JEP-106
322 0x142 Standort der Modulfertigung Herstellerdefinierter Produktionsstandortcode
323 0x143 Modulherstellungsjahr Dargestellt in binär codierter Dezimalzahl (BCD)
324 0x144 Modulfertigungswoche Dargestellt in binär codierter Dezimalzahl (BCD)
325–328 0x145–0x148 Seriennummer des Moduls Vom Hersteller definiertes Format für eine eindeutige Seriennummer über Teilenummern hinweg
329–348 0x149–0x15c Modul-Teilenummer ASCII-Teilenummer, nicht verwendete Ziffern sollten auf 0x20 . gesetzt werden
349 0x15d Modul-Revisionscode Vom Hersteller definierter Revisionscode
350–351 0x15e–0x15f ID-Code des DRAM-Herstellers Siehe JEP-106
352 0x160 DRAM-Stepping Herstellerdefiniertes Stepping oder 0xFF wenn nicht verwendet
353–381 0x161–0x17d Herstellerspezifische Daten
382–383 0x17e–0x17f Reserviert

Erweiterungen

Der JEDEC-Standard spezifiziert nur einige der SPD-Bytes. Die wirklich kritischen Daten passen in die ersten 64 Bytes, während ein Teil des Rests für die Herstelleridentifikation vorgesehen ist. Im Allgemeinen wird jedoch ein 256-Byte-EEPROM bereitgestellt. Der verbleibende Platz wurde mehrfach genutzt.

Erweiterte Leistungsprofile (EPP)

Speicher wird im Allgemeinen mit konservativen Timing-Empfehlungen im SPD-ROM geliefert, um die grundlegende Funktionalität auf allen Systemen sicherzustellen. Enthusiasten verbringen oft viel Zeit damit, die Speichertimings manuell anzupassen, um eine höhere Geschwindigkeit zu erzielen.

Enhanced Performance Profiles ist eine von Nvidia und Corsair entwickelte Erweiterung von SPD, die zusätzliche Informationen für den leistungsstärkeren Betrieb von DDR2 SDRAM enthält , einschließlich Versorgungsspannungen und Befehls-Timing-Informationen, die nicht in der JEDEC-SPD-Spezifikation enthalten sind. Die EPP-Informationen werden im gleichen EEPROM gespeichert, jedoch in den Bytes 99–127, die von Standard-DDR2-SPD nicht verwendet werden.

EPP SPD-ROM-Nutzung
Byte Größe Vollständige Profile Kurzprofile
99–103 5 EPP-Header
104–109 6 Profil FP1 Profil AP1
110–115 6 Profil AP2
116–121 6 Profil FP2 Profil AP3
122–127 6 Profil AP4

Die Parameter sind speziell auf den Speichercontroller der nForce 5 , nForce 6 und nForce 7 Chipsätze abgestimmt. Nvidia fördert die Unterstützung von EPP im BIOS für seine High-End-Motherboard-Chipsätze. Dies soll "One-Click- Overclocking " ermöglichen, um mit minimalem Aufwand eine bessere Leistung zu erzielen.

Nvidias Name für EPP-Speicher, der für Leistung und Stabilität qualifiziert wurde, ist "SLI-ready memory". Der Begriff "SLI-ready-memory" hat für einige Verwirrung gesorgt, da er nichts mit SLI-Video zu tun hat . Man kann EPP/SLI-Speicher mit einer einzelnen Grafikkarte verwenden (auch mit einer Nicht-Nvidia-Karte), und man kann ein SLI-Video-Setup mit mehreren Karten ohne EPP/SLI-Speicher ausführen.

Eine erweiterte Version, EPP 2.0, unterstützt auch DDR3-Speicher.

Extremes Speicherprofil (XMP)

Eine ähnliche, von Intel entwickelte JEDEC SPD-Erweiterung wurde für DDR3-SDRAM- DIMMs entwickelt, die später auch in DDR4 verwendet wurden . XMP verwendet die von JEDEC nicht zugewiesenen Bytes 176–255, um Speicher-Timings mit höherer Leistung zu codieren.

Später entwickelte AMD AMP, eine zu XMP äquivalente Technologie, für den Einsatz in seiner "Radeon Memory"-Reihe von Speichermodulen, die für den Einsatz in AMD-Plattformen optimiert wurden. Darüber hinaus haben Motherboard-Entwickler ihre eigenen Technologien implementiert, damit ihre AMD-basierten Motherboards XMP-Profile lesen können: MSI bietet A-XMP, ASUS hat DOCP (Direct Over Clock Profile) und Gigabyte hat EOCP (Extended Over Clock Profile).

XMP SPD-ROM-Nutzung
DDR3-Byte Größe Verwenden
176–184 10 XMP-Header
185–219 33 XMP-Profil 1 ("Enthusiast"-Einstellungen)
220–254 36 XMP-Profil 2 ("extreme" Einstellungen)

Der Header enthält die folgenden Daten. Am wichtigsten ist, dass es einen MTB-Wert für die "mittlere Zeitbasis" als rationale Anzahl von Nanosekunden enthält (übliche Werte sind 1/8, 1/12 und 1/16 ns). Viele andere spätere Timing-Werte werden als eine ganze Zahl von MTB-Einheiten ausgedrückt.

Im Header ist auch die Anzahl der DIMMs pro Speicherkanal enthalten, die das Profil unterstützen soll; Das Einschließen weiterer DIMMs funktioniert möglicherweise nicht richtig.

XMP-Header-Bytes
DDR3-Byte Bits Verwenden
176 7:0 XMP magische Zahl Byte 1 0x0C
177 7:0 XMP magische Zahl Byte 2 0x4A
178 0 Profil 1 aktiviert (wenn 0, deaktiviert)
1 Profil 2 aktiviert
3:2 Profil 1 DIMMs pro Kanal (1–4 codiert als 0–3)
5:4 Profil 2 DIMMs pro Kanal
7:6 Reserviert
179 3:0 XMP-Nebenversionsnummer (x.0 oder x.1)
7:4 XMP-Hauptversionsnummer (0.x oder 1.x)
180 7:0 Dividende auf mittlerer Zeitbasis für Profil 1
181 7:0 Mittlerer Zeitbasisteiler für Profil 1 (MTB = Dividend/Divisor ns)
182 7:0 Dividende auf mittlerer Zeitbasis für Profil 2 (zB 8)
183 7:0 Mittlerer Zeitbasisteiler für Profil 2 (zB 1, ergibt MTB = 1/8 ns)
184 7:0 Reserviert
XMP-Profilbytes
DDR3-Byte 1 DDR3-Byte 2 Bits Verwenden
185 220 0 Modul Vdd Spannung Zwanzigstel (0,00 oder 0,05)
4:1 Modul Vdd Spannung Zehntel (0,0–0,9)
6:5 Modul Vdd Spannungseinheiten (0–2)
7 Reserviert
186 221 7:0 Minimale SDRAM-Taktperiode t CK min (MTB-Einheiten)
187 222 7:0 Minimale CAS-Latenzzeit t AA min (MTB-Einheiten)
188 223 7:0 Unterstützte CAS-Latenzen (Bitmap, 4–11 codiert als Bits 0–7)
189 224 6:0 Unterstützte CAS-Latenzen (Bitmap, 12–18 codiert als Bits 0–6)
7 Reserviert
190 225 7:0 Minimale CAS-Schreiblatenzzeit t CWL min (MTB-Einheiten)
191 226 7:0 Minimale Zeilenvorladeverzögerungszeit t RP min (MTB-Einheiten)
192 227 7:0 Mindestverzögerungszeit von RAS zu CAS t RCD min (MTB-Einheiten)
193 228 7:0 Minimale Schreibwiederherstellungszeit t WR min (MTB-Einheiten)
194 229 3:0 t RAS min oberes Nibble (Bits 11:8)
7:4 t RC min oberes Nibble (Bits 11:8)
195 230 7:0 Mindestens aktive bis Vorladeverzögerungszeit t RAS min Bits 7:0 (MTB-Einheiten)
196 231 7:0 Mindestverzögerungszeit aktiv bis aktiv/Aktualisierung t RC min Bits 7:0 (MTB-Einheiten)
197 232 7:0 Maximales durchschnittliches Aktualisierungsintervall t REFI lsbyte (MTB-Einheiten)
198 233 7:0 Maximales durchschnittliches Aktualisierungsintervall t REFI msbyte (MTB-Einheiten)
199 234 7:0 Mindestverzögerungszeit für die Wiederherstellung der Aktualisierung t RFC min lsbyte (MTB-Einheiten)
200 235 7:0 Mindestverzögerungszeit für die Wiederherstellung der Aktualisierung t RFC min msbyte (MTB-Einheiten)
201 236 7:0 Mindestverzögerungszeit des internen Read-to-Precharge-Befehls t RTP min (MTB-Einheiten)
202 237 7:0 Mindestverzögerungszeit von Reihe aktiv zu Reihe aktiv t RRD min (MTB-Einheiten)
203 238 3:0 t FAW min oberes Nibble (Bits 11:8)
7:4 Reserviert
204 239 7:0 Mindestens vier Aktivierungsfensterverzögerungszeit t FAW min Bits 7:0 (MTB-Einheiten)
205 240 7:0 Mindestverzögerungszeit für interne Schreib- und Lesebefehle t WTR min (MTB-Einheiten)
206 241 2:0 Schreibe-in-Lese-Befehl-Durchlaufzeitanpassung (0–7 Taktzyklen)
3 Schreiben, um das Zeichen für die Einstellung der Befehlswende zu lesen (0 = Pull-in, 1 = Push-out)
6:4 Durchlaufzeitanpassung des Lese- und Schreibbefehls (0–7 Taktzyklen)
7 Lese- und Schreibbefehl-Umkehrungs-Einstellzeichen (0 = Pull-in, 1 = Push-out)
207 242 2:0 Back-to-Back-Befehlsdurchlaufzeitanpassung (0–7 Taktzyklen)
3 Rücken-an-Rücken-Turnaround-Anpassungszeichen (0=Pull-In, 1=Push-Out)
7:4 Reserviert
208 243 7:0 System-CMD-Ratenmodus. 0=JTAG-Standard, ansonsten in besonderen Einheiten von MTB × t CK /ns.
Wenn MTB zB 1/8 ns beträgt, dann ist dies in Einheiten von 1/8 Taktzyklus.
209 244 7:0 SDRAM-Selbstaktualisierungsleistung.
Standardversion 1.1 sagt, dass die Dokumentation noch offen ist .
210–218 245–253 7:0 Reserviert
219 254 7:0 Reservierter , herstellerspezifischer Persönlichkeitscode.

Alle obigen Daten gelten für DDR3 (XMP 1.1); DDR4-Spezifikationen sind noch nicht verfügbar.

Herstellerspezifischer Speicher

Ein häufiger Missbrauch besteht darin, Informationen in bestimmte Speicherbereiche zu schreiben, um herstellerspezifische Speichermodule an ein bestimmtes System zu binden. Fujitsu Technology Solutions ist dafür bekannt. Das Hinzufügen anderer Speichermodule zum System führt normalerweise zu einer Ablehnung oder anderen Gegenmaßnahmen (wie das Drücken von F1 bei jedem Start).

02 0E 00 01-00 00 00 EF-02 03 19 4D-BC 47 C3 46 ...........M.G.F
53 43 00 04-EF 4F 8D 1F-00 01 70 00-01 03 C1 CF SC...O....p.....

Dies ist die Ausgabe eines 512 MB Speichermoduls von Micron Technologies, gebrandmarkt für Fujitsu-Siemens Computers, beachten Sie den "FSC"-String. Das System-BIOS lehnt Speichermodule ab, die diese Informationen nicht haben, beginnend bei Offset 128h.

Einige Packard Bell AMD-Laptops verwenden auch diese Methode. In diesem Fall können die Symptome variieren, aber es kann zu einem blinkenden Cursor anstelle eines Signaltonmusters kommen. Dies kann übrigens auch ein Symptom für eine BIOS-Korruption sein. Ein Upgrade von 2 GB auf 4 GB kann jedoch auch zu Problemen führen.

Lesen und Schreiben von SPD-Informationen

Hersteller von Speichermodulen schreiben die SPD-Informationen in das EEPROM auf dem Modul. Motherboard- BIOSes lesen die SPD-Informationen, um den Speichercontroller zu konfigurieren. Es gibt mehrere Programme, die SPD-Informationen auf den meisten, aber nicht allen Motherboard-Chipsätzen lesen und ändern können.

  • dmidecode Programm, das Informationen über Speicher (und andere Dinge) dekodieren kann und auf Linux , FreeBSD , NetBSD , OpenBSD , BeOS , Cygwin und Solaris läuft . dmidecode greift nicht direkt auf SPD-Informationen zu; es meldet die SMBIOS- Daten über den Speicher. Diese Informationen können eingeschränkt oder falsch sein.
  • Auf Linux - Systemen und FreeBSD , die User - Space - Programm decode-dimms von i2c-tools decodieren und drucken Informationen zu jedem Speicher mit SPD Informationen in dem Computer zur Verfügung gestellt. Es erfordert SMBus- Controller-Unterstützung im Kernel, den EEPROM-Kernel-Treiber und auch, dass die SPD-EEPROMs mit dem SMBus verbunden sind. Auf älteren Linux-Distributionen war decode-dimms.pl als Teil von lm_sensors verfügbar .
  • OpenBSD enthält seit Version 4.3 einen Treiber ( spdmem(4) ), um Informationen über Speichermodule bereitzustellen. Der Treiber wurde von NetBSD portiert, wo er seit Release 5.0 verfügbar ist.
  • Coreboot liest und verwendet SPD-Informationen, um alle Speichercontroller in einem Computer mit Timing, Größe und anderen Eigenschaften zu initialisieren .
  • Windows- Systeme verwenden Programme wie HWiNFO , CPU-Z und Speccy , die DRAM- Modulinformationen von SPD lesen und anzeigen können.

Chipsatz-unabhängiges Lesen und Schreiben von SPD-Informationen erfolgt durch direkten Zugriff auf das EEPROM des Speichers mit Eeprom-Programmierhardware und -software.

Eine nicht so häufige Verwendung für alte Laptops sind generische SMBus-Leser, da das interne EEPROM auf dem Modul deaktiviert werden kann, sobald es vom BIOS gelesen wurde, so dass der Bus im Wesentlichen zur Verfügung steht. Das verwendete Verfahren besteht darin, die Leitungen A0, A1 auf Low zu ziehen, so dass der interne Speicher heruntergefahren wird und das externe Gerät auf den SMBus zugreifen kann. Sobald dies erledigt ist, kann eine benutzerdefinierte Linux-Build- oder DOS-Anwendung auf das externe Gerät zugreifen. Eine häufige Anwendung ist die Wiederherstellung von Daten von LCD-Panel-Speicherchips, um ein generisches Panel in einen proprietären Laptop nachzurüsten. Bei einigen Chips ist es auch sinnvoll, Schreibschutzleitungen zu trennen, damit die Onboard-Chips beim Umprogrammieren nicht gelöscht werden. Eine verwandte Technik ist das Umschreiben des Chips von Webcams, die oft in vielen Laptops enthalten sind, da die Busgeschwindigkeit wesentlich höher ist und sogar so modifiziert werden kann, dass bei einem Chipausfall 25x kompatible Chips zum späteren Klonen des uEFI zurückgelesen werden können.

Dies funktioniert leider nur auf DDR3 und darunter, da DDR4 unterschiedliche Sicherheiten verwendet und meist nur ausgelesen werden kann. Es ist möglich, ein Werkzeug wie SPDTool oder ähnliches zu verwenden und den Chip durch einen zu ersetzen, dessen WP-Linie frei ist, damit er vor Ort geändert werden kann. Bei einigen Chipsätzen wird die Meldung "Inkompatibler SMBus-Treiber?" kann gesehen werden, so dass das Lesen auch verhindert wird.

RGB-LED-Steuerung

Einige Speichermodule (insbesondere bei Gaming-PCs ) unterstützen RGB-LEDs, die durch proprietäre SMBus-Befehle gesteuert werden. Dies ermöglicht eine LED-Farbsteuerung ohne zusätzliche Stecker und Kabel. Kernel-Treiber mehrerer Hersteller, die zur Steuerung der Lichter erforderlich sind, wurden allein im Jahr 2020 mehrmals ausgenutzt, um Zugriff zu erhalten, der vom vollen Kernel-Speicherzugriff bis hin zur MSR- und I/O-Port-Steuerung reicht.

Bei älteren Geräten

Einige ältere Geräte erfordern die Verwendung von SIMMs mit paralleler Präsenzerkennung (häufig als Präsenzerkennung oder PD bezeichnet). Einige dieser Geräte verwenden nicht standardmäßige PD-Codierung, insbesondere IBM Computer und Hewlett-Packard LaserJet und andere Drucker.

Siehe auch

Verweise

Externe Links