En informática , la detección de presencia en serie ( SPD ) es una forma estandarizada de acceder automáticamente a la información sobre un módulo de memoria . Los módulos SIMM de 72 pines anteriores incluían cinco pines que proporcionaban cinco bits de datos de detección de presencia en paralelo (PPD), pero el estándar DIMM de 168 pines cambió a una detección de presencia en serie para codificar más información. [1]
Cuando se enciende una computadora moderna común y corriente, comienza realizando una prueba automática de encendido (POST). Desde aproximadamente mediados de la década de 1990, este proceso incluye la configuración automática del hardware presente en ese momento. SPD es una función del hardware de memoria que permite que la computadora sepa qué memoria está presente y qué tiempos de memoria utilizar para acceder a ella.
Algunas computadoras se adaptan a los cambios de hardware de manera completamente automática. En la mayoría de los casos, existe un procedimiento opcional especial para acceder a los parámetros del BIOS , para ver y posiblemente realizar cambios en las configuraciones. Es posible controlar cómo la computadora utiliza los datos SPD de la memoria: para elegir configuraciones, modificar selectivamente los tiempos de la memoria o posiblemente anular por completo los datos SPD (consulte overclocking ).
Para que un módulo de memoria admita SPD, las normas JEDEC exigen que determinados parámetros se encuentren en los 128 bytes inferiores de una EEPROM ubicada en el módulo de memoria. Estos bytes contienen parámetros de sincronización, fabricante, número de serie y otra información útil sobre el módulo. Los dispositivos que utilizan la memoria determinan automáticamente los parámetros clave del módulo al leer esta información. Por ejemplo, los datos SPD en un módulo SDRAM pueden proporcionar información sobre la latencia CAS para que el sistema pueda configurarla correctamente sin la intervención del usuario.
El firmware de la EEPROM SPD se accede mediante SMBus , una variante del protocolo I2C . Esto reduce la cantidad de pines de comunicación en el módulo a solo dos: una señal de reloj y una señal de datos. La EEPROM comparte pines de tierra con la RAM, tiene su propio pin de alimentación y tiene tres pines adicionales (SA0–2) para identificar la ranura, que se utilizan para asignar a la EEPROM una dirección única en el rango 0x50–0x57. No solo se pueden compartir las líneas de comunicación entre 8 módulos de memoria, sino que el mismo SMBus se usa comúnmente en las placas base para tareas de monitoreo del estado del sistema, como leer voltajes de la fuente de alimentación, temperaturas de la CPU y velocidades de los ventiladores.
Las EEPROM SPD también responden a las direcciones I 2 C 0x30–0x37 si no han sido protegidas contra escritura, y una extensión (serie TSE) utiliza las direcciones 0x18–0x1F para acceder a un sensor de temperatura opcional en chip. Todos esos valores son direcciones I 2 C de siete bits formadas por un prefijo de código de identificación de tipo de dispositivo (DTIC) con SA0-2: para leer (1100) desde la ranura 3, se utiliza 110 0011 = 0x33
. Con un bit R/W final forma el código de selección de dispositivo de 8 bits. [2] Nótese que la semántica de slot-id es diferente para las operaciones de protección contra escritura: para ellas no pueden ser pasadas por los pines SA en absoluto. [3]
Antes de SPD, los chips de memoria se detectaban con detección de presencia paralela (PPD). PPD utilizaba un pin independiente para cada bit de información, lo que significaba que solo se podía almacenar la velocidad y la densidad del módulo de memoria debido al espacio limitado para los pines.
La primera especificación SPD fue emitida por JEDEC y ajustada por Intel como parte de su especificación de memoria PC100 introducida en 1998. [4] [5] [6] La mayoría de los valores especificados están en forma decimal codificada en binario . El nibble más significativo puede contener valores de 10 a 15 y, en algunos casos, se extiende más allá. En tales casos, las codificaciones para 1, 2 y 3 se utilizan en su lugar para codificar 16, 17 y 18. Un nibble más significativo de 0 se reserva para representar "indefinido".
La ROM SPD define hasta tres tiempos de DRAM, para tres latencias CAS especificadas por bits establecidos en el byte 18. Primero viene la latencia CAS más alta (reloj más rápido), luego dos latencias CAS más bajas con velocidades de reloj progresivamente más bajas.
Byte | Poco | Notas | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
(dic.) | (maleficio.) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0 | 0x00 | Número de bytes presentes | Normalmente 128 | |||||||
1 | 0x01 | log 2 (tamaño de la EEPROM SPD) | Normalmente 8 (256 bytes) | |||||||
2 | 0x02 | Tipo de memoria básica (4: SPD SDRAM) | ||||||||
3 | 0x03 | Bits de dirección de fila del banco 2 (0–15) | Bits de dirección de fila del banco 1 (1–15) | El banco 2 es 0 si es el mismo que el banco 1 | ||||||
4 | 0x04 | Bits de dirección de la columna del banco 2 (0–15) | Bits de dirección de la columna del banco 1 (1–15) | El banco 2 es 0 si es el mismo que el banco 1 | ||||||
5 | 0x05 | Número de bancos de RAM en el módulo (1–255) | Comúnmente 1 o 2 | |||||||
6 | 0x06 | Ancho de datos del módulo en bytes bajos | Comúnmente 64 o 72 para DIMM ECC | |||||||
7 | 0x07 | Ancho de datos del módulo byte alto | 0, a menos que el ancho sea ≥ 256 bits | |||||||
8 | 0x08 | Nivel de voltaje de interfaz de este conjunto (no es el mismo que el voltaje de suministro de V cc ) (0–4) | Descodificado por búsqueda en la tabla | |||||||
9 | 0x09 | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo de ciclo de reloj en la latencia CAS más alta | ||||||
10 | 0x0a | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo de acceso a SDRAM desde el reloj (t AC ) | ||||||
11 | 0x0b | Tipo de configuración DIMM (0–2): no ECC, paridad, ECC | Búsqueda en tabla | |||||||
12 | 0x0c | Ser | Periodo de actualización (0–5): 64, 256, 128, 32, 16, 8 kHz | Requisitos de actualización | ||||||
13 | 0x0d | Banco 2 2× | Ancho de SDRAM principal del banco 1 (1–127, generalmente 8) | Ancho de los dispositivos SDRAM de datos del banco 1. El banco 2 puede tener el mismo ancho o el doble del ancho si se establece el bit 7. | ||||||
14 | 0x0e | Banco 2 2× | Ancho de SDRAM ECC del banco 1 (0–127) | Ancho de los dispositivos SDRAM ECC/paridad del banco 1. El banco 2 puede tener el mismo ancho o el doble del ancho si se configura el bit 7. | ||||||
15 | 0x0f | Retardo de reloj para lecturas de columnas aleatorias | Normalmente 1 | |||||||
16 | 0x10 | Página | — | — | — | 8 | 4 | 2 | 1 | Longitudes de ráfaga admitidas (mapa de bits) |
17 | 0x11 | Bancos por dispositivo SDRAM (1–255) | Generalmente 2 o 4 | |||||||
18 | 0x12 | — | 7 | 6 | 5 | 4 | 3 | 2 | 1 | Latencias CAS admitidas (mapa de bits) |
19 | 0x13 | — | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Latencias CS admitidas (mapa de bits) |
20 | 0x14 | — | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Latencias WE admitidas (mapa de bits) |
21 | 0x15 | — | Redundante | Reloj diferencial | Datos registrados | Datos almacenados en búfer | PLL en tarjeta | Dirección registrada. | Dirección almacenada en búfer. | Mapa de bits de características del módulo de memoria |
22 | 0x16 | — | — | Tolerancia superior de Vcc ( voltaje de suministro) | Tolerancia de voltaje de alimentación ( Vcc ) más baja | Escritura/1 ráfaga de lectura | Precargar todo | Precarga automática | Precarga temprana de RAS | Soporte de mapa de bits para funciones de chip de memoria |
23 | 0x17 | Nanosegundos (4–18) | Décimas de nanosegundos (0–9: 0,0–0,9) | Tiempo de ciclo de reloj en latencia CAS media | ||||||
24 | 0x18 | Nanosegundos (4–18) | Décimas de nanosegundos (0–9: 0,0–0,9) | Tiempo de acceso a los datos desde el reloj (t AC ) | ||||||
25 | 0x19 | Nanosegundos (1–63) | 0,25 ns (0-3: 0,00-0,75) | Tiempo de ciclo de reloj con latencia CAS corta. | ||||||
26 | 0x1a | Nanosegundos (1–63) | 0,25 ns (0-3: 0,00-0,75) | Tiempo de acceso a los datos desde el reloj (t AC ) | ||||||
27 | 0x1b | Nanosegundos (1–255) | Tiempo mínimo de precarga de fila (t RP ) | |||||||
28 | 0x1c | Nanosegundos (1–255) | Retardo mínimo entre filas activas y filas activas (t RRD ) | |||||||
29 | 0x1d | Nanosegundos (1–255) | Retardo mínimo de RAS a CAS (t RCD ) | |||||||
30 | 0x1e | Nanosegundos (1–255) | Tiempo mínimo de precarga activa ( tRAS ) | |||||||
31 | 0x1f | 512 MB | 256 MB | 128 MB | 64 MB | 32 MB | 16 MB | 8 MB | 4 MiB | Densidad de bancos de módulos (mapa de bits). Se establecen dos bits si los bancos son de diferente tamaño. |
32 | 0x20 | Signo (1: −) | Nanosegundos (0–7) | Décimas de nanosegundos (0–9: 0,0–0,9) | Hora de configuración de la dirección/comando desde el reloj | |||||
33 | 0x21 | Signo (1: −) | Nanosegundos (0–7) | Décimas de nanosegundos (0–9: 0,0–0,9) | Tiempo de retención de dirección/comando después del reloj | |||||
34 | 0x22 | Signo (1: −) | Nanosegundos (0–7) | Décimas de nanosegundos (0–9: 0,0–0,9) | Hora de configuración de entrada de datos desde el reloj | |||||
35 | 0x23 | Signo (1: −) | Nanosegundos (0–7) | Décimas de nanosegundos (0–9: 0,0–0,9) | Tiempo de retención de entrada de datos después del reloj | |||||
36–61 | 0x24–0x3d | Reservado | Para una futura estandarización | |||||||
62 | 0x3e | Revisión importante (0–9) | Revisión menor (0–9) | Nivel de revisión del SPD; p. ej., 1.2 | ||||||
63 | 0x3f | Suma de comprobación | Suma de bytes 0–62, no negada | |||||||
64–71 | 0x40–47 | Fabricante JEDEC id. | Almacenado en formato little-endian, relleno con ceros finales | |||||||
72 | 0x48 | Ubicación de fabricación del módulo | Código específico del proveedor | |||||||
73–90 | 0x49–0x5a | Número de pieza del módulo | ASCII, relleno con espacio | |||||||
91–92 | 0x5b–0x5c | Código de revisión del módulo | Código específico del proveedor | |||||||
93 | 0x5d | Decenas de años (0–9: 0–90) | Años (0–9) | Fecha de fabricación (AAAA) | ||||||
94 | 0x5e | Decenas de semanas (0–5: 0–50) | Semanas (0–9) | |||||||
95–98 | 0x5f–0x62 | Número de serie del módulo | Código específico del proveedor | |||||||
99–125 | 0x63–0x7f | Datos específicos del fabricante | Podría mejorarse el perfil de rendimiento | |||||||
126 | 0x7e | 0x66 [ sic ] para 66 MHz, 0x64 para 100 MHz | Compatibilidad con frecuencia Intel | |||||||
127 | 0x7f | CLK0 | CLK1 | CLK3 | CLK3 | 90/100 °C | CL3 | CL2 | AP concurrente | Mapa de bits de características de Intel |
El formato DDR DIMM SPD es una extensión del formato SDR SDRAM. En general, los rangos de parámetros se reescalan para adaptarse a velocidades más altas.
Byte | Poco | Notas | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
(dic.) | (maleficio.) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0 | 0x00 | Número de bytes escritos | Normalmente 128 | |||||||
1 | 0x01 | log 2 (tamaño de la EEPROM SPD) | Normalmente 8 (256 bytes) | |||||||
2 | 0x02 | Tipo de memoria básica (7 = DDR SDRAM) | ||||||||
3 | 0x03 | Bits de dirección de fila del banco 2 (0–15) | Bits de dirección de fila del banco 1 (1–15) | El banco 2 es 0 si es el mismo que el banco 1. | ||||||
4 | 0x04 | Bits de dirección de la columna del banco 2 (0–15) | Bits de dirección de la columna del banco 1 (1–15) | El banco 2 es 0 si es el mismo que el banco 1. | ||||||
5 | 0x05 | Número de bancos de RAM en el módulo (1–255) | Comúnmente 1 o 2 | |||||||
6 | 0x06 | Ancho de datos del módulo en bytes bajos | Comúnmente 64 o 72 para DIMM ECC | |||||||
7 | 0x07 | Ancho de datos del módulo byte alto | 0, a menos que el ancho sea ≥ 256 bits | |||||||
8 | 0x08 | Nivel de voltaje de interfaz de este conjunto (no es el mismo que el voltaje de suministro de V cc ) (0–5) | Descodificado por búsqueda en la tabla | |||||||
9 | 0x09 | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo de ciclo de reloj en la latencia CAS más alta. | ||||||
10 | 0x0a | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de acceso a SDRAM desde el reloj (t AC ) | ||||||
11 | 0x0b | Tipo de configuración DIMM (0–2): no ECC, paridad, ECC | Búsqueda en tabla | |||||||
12 | 0x0c | Ser | Periodo de actualización (0–5): 64, 256, 128, 32, 16, 8 kHz | Requisitos de actualización | ||||||
13 | 0x0d | Banco 2 2× | Ancho de la SDRAM primaria del banco 1 (1–127) | Ancho de los dispositivos SDRAM de datos del banco 1. El banco 2 puede tener el mismo ancho o el doble del ancho si se establece el bit 7. | ||||||
14 | 0x0e | Banco 2 2× | Ancho de SDRAM ECC del banco 1 (0–127) | Ancho de los dispositivos SDRAM ECC/paridad del banco 1. El banco 2 puede tener el mismo ancho o el doble del ancho si se configura el bit 7. | ||||||
15 | 0x0f | Retardo de reloj para lecturas de columnas aleatorias | Normalmente 1 | |||||||
16 | 0x10 | Página | — | — | — | 8 | 4 | 2 | 1 | Longitudes de ráfaga admitidas (mapa de bits) |
17 | 0x11 | Bancos por dispositivo SDRAM (1–255) | Normalmente 4 | |||||||
18 | 0x12 | — | 4 | 3.5 | 3 | 2.5 | 2 | 1.5 | 1 | Latencias CAS admitidas (mapa de bits) |
19 | 0x13 | — | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Latencias CS admitidas (mapa de bits) |
20 | 0x14 | — | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Latencias WE admitidas (mapa de bits) |
21 | 0x15 | — | incógnita | Reloj diferencial | Habilitación externa del interruptor FET | Habilitación del interruptor FET integrado | PLL en tarjeta | Registrado | almacenado en búfer | Mapa de bits de características del módulo de memoria |
22 | 0x16 | AP rápido | Precarga automática concurrente | Tolerancia superior de Vcc ( voltaje de suministro) | Tolerancia de voltaje de alimentación ( Vcc ) más baja | — | — | — | Incluye controlador débil | Mapa de bits de características del chip de memoria |
23 | 0x17 | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo de ciclo de reloj en latencia CAS media. | ||||||
24 | 0x18 | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de acceso a los datos desde el reloj (t AC ) | ||||||
25 | 0x19 | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo de ciclo de reloj con latencia CAS corta. | ||||||
26 | 0x1a | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de acceso a los datos desde el reloj (t AC ) | ||||||
27 | 0x1b | Nanosegundos (1–63) | 0,25 ns (0–0,75) | Tiempo mínimo de precarga de fila (t RP ) | ||||||
28 | 0x1c | Nanosegundos (1–63) | 0,25 ns (0–0,75) | Retardo mínimo entre filas activas y filas activas (t RRD ) | ||||||
29 | 0x1d | Nanosegundos (1–63) | 0,25 ns (0–0,75) | Retardo mínimo de RAS a CAS (t RCD ) | ||||||
30 | 0x1e | Nanosegundos (1–255) | Tiempo mínimo de precarga activa ( tRAS ) | |||||||
31 | 0x1f | 512 MB | 256 MB | 128 MB | 64 MB | 32 MB | 16 MiB/ 4 GiB | 8 MiB/ 2 GiB | 4 MiB/ 1 GiB | Densidad de bancos de módulos (mapa de bits). Se establecen dos bits si los bancos son de diferente tamaño. |
32 | 0x20 | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Hora de configuración de la dirección/comando desde el reloj | ||||||
33 | 0x21 | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de retención de dirección/comando después del reloj | ||||||
34 | 0x22 | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Hora de configuración de entrada de datos desde el reloj | ||||||
35 | 0x23 | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de retención de entrada de datos después del reloj | ||||||
36–40 | 0x24–0x28 | Reservado | Información de superconjunto | |||||||
41 | 0x29 | Nanosegundos (1–255) | Tiempo mínimo de actividad a actividad/actualización (t RC ) | |||||||
42 | 0x2a | Nanosegundos (1–255) | Tiempo mínimo de actualización a activo/actualización (t RFC ) | |||||||
43 | 0x2b | Nanosegundos (1–63, o 255: sin máximo) | 0,25 ns (0–0,75) | Tiempo máximo de ciclo de reloj (tCK máx .) | ||||||
44 | 0x2c | Centésimas de nanosegundos (0,01–2,55) | Sesgo máximo, DQS a cualquier DQ. (t DQSQ máx.) | |||||||
45 | 0x2d | Décimas de nanosegundos (0,0–1,2) | Centésimas de nanosegundos (0,00–0,09) | Factor de sesgo de retención de datos de lectura (t QHS ) | ||||||
46 | 0x2e | Reservado | Para una futura estandarización | |||||||
47 | 0x2f | — | Altura | Altura del módulo DIMM, consulta en la tabla | ||||||
48–61 | 0x30–0x3d | Reservado | Para una futura estandarización | |||||||
62 | 0x3e | Revisión importante (0–9) | Revisión menor (0–9) | Nivel de revisión SPD, 0.0 o 1.0 | ||||||
63 | 0x3f | Suma de comprobación | Suma de bytes 0–62, no negada | |||||||
64–71 | 0x40–47 | Fabricante JEDEC id. | Almacenado en formato little-endian, relleno con ceros finales | |||||||
72 | 0x48 | Ubicación de fabricación del módulo | Código específico del proveedor | |||||||
73–90 | 0x49–0x5a | Número de pieza del módulo | ASCII, relleno con espacio | |||||||
91–92 | 0x5b–0x5c | Código de revisión del módulo | Código específico del proveedor | |||||||
93 | 0x5d | Decenas de años (0–90) | Años (0–9) | Fecha de fabricación (AAAA) | ||||||
94 | 0x5e | Decenas de semanas (0–50) | Semanas (0–9) | |||||||
95–98 | 0x5f–0x62 | Número de serie del módulo | Código específico del proveedor | |||||||
99–127 | 0x63–0x7f | Datos específicos del fabricante | Podría mejorarse el perfil de rendimiento |
El estándar DDR2 SPD introduce una serie de cambios, pero es similar al anterior. Una eliminación notable es la compatibilidad confusa y poco utilizada con módulos DIMM con dos filas de tamaños diferentes.
Para los campos de tiempo de ciclo (bytes 9, 23, 25 y 49), que están codificados en BCD , se definen algunas codificaciones adicionales para el dígito de las décimas para representar con exactitud algunos tiempos comunes:
Maleficio | Binario | Significado |
---|---|---|
A | 1010 | 0,25 ( 1 ⁄ 4 ) |
B | 1011 | 0,33 ( 1 ⁄ 3 ) |
do | 1100 | 0,66 ( 2 ⁄ 3 ) |
D | 1101 | 0,75 ( 3 ⁄ 4 ) |
mi | 1110 | 0.875 ( 7 ⁄ 8 , extensión XMP de Nvidia) |
F | 1111 | Reservado |
Byte | Poco | Notas | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Dic | Maleficio | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0 | 0x00 | Número de bytes escritos | Normalmente 128 | |||||||
1 | 0x01 | log 2 (tamaño de la EEPROM SPD) | Normalmente 8 (256 bytes) | |||||||
2 | 0x02 | Tipo de memoria básica (8 = DDR2 SDRAM) | ||||||||
3 | 0x03 | Reservado | Bits de dirección de fila (1–15) | |||||||
4 | 0x04 | Reservado | Bits de dirección de columna (1–15) | |||||||
5 | 0x05 | Altura vertical | ¿Pila? | ¿ConC? | Rangos −1 (1–8) | Comúnmente 0 o 1, es decir 1 o 2 | ||||
6 | 0x06 | Ancho de datos del módulo | Comúnmente 64 o 72 para DIMM ECC | |||||||
7 | 0x07 | Reservado | ||||||||
8 | 0x08 | Nivel de voltaje de interfaz de este conjunto (no es el mismo que el voltaje de suministro de V cc ) (0–5) | Descodificado por consulta en tabla. Normalmente 5 = SSTL 1,8 V | |||||||
9 | 0x09 | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo de ciclo de reloj en la latencia CAS más alta. | ||||||
10 | 0x0a | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de acceso a SDRAM desde el reloj (t AC ) | ||||||
11 | 0x0b | Tipo de configuración DIMM (0–2): no ECC, paridad, ECC | Búsqueda en tabla | |||||||
12 | 0x0c | Ser | Periodo de actualización (0–5): 64, 256, 128, 32, 16, 8 kHz | Requisitos de actualización | ||||||
13 | 0x0d | Ancho de SDRAM primaria (1–255) | Comúnmente 8 (módulo construido a partir de ×8 partes) o 16 | |||||||
14 | 0x0e | Ancho de SDRAM ECC (0–255) | Ancho de los dispositivos SDRAM con paridad/ECC de banco. Normalmente 0 u 8. | |||||||
15 | 0x0f | Reservado | ||||||||
16 | 0x10 | — | — | — | — | 8 | 4 | — | — | Longitudes de ráfaga admitidas (mapa de bits) |
17 | 0x11 | Bancos por dispositivo SDRAM (1–255) | Generalmente 4 u 8 | |||||||
18 | 0x12 | 7 | 6 | 5 | 4 | 3 | 2 | — | — | Latencias CAS admitidas (mapa de bits) |
19 | 0x13 | Reservado | ||||||||
20 | 0x14 | — | — | Mini-UDIMM | Mini-RDIMM | Micro-DIMM | SO DIMM | Memoria UDIM | Memoria RAM DDR3 | Tipo de DIMM de este ensamblaje (mapa de bits) |
21 | 0x15 | — | El módulo es una sonda de análisis. | — | Habilitación externa del interruptor FET | — | — | — | — | Mapa de bits de características del módulo de memoria |
22 | 0x16 | — | — | — | — | — | — | — | Incluye controlador débil | Mapa de bits de características del chip de memoria |
23 | 0x17 | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo de ciclo de reloj en latencia CAS media. | ||||||
24 | 0x18 | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de acceso a los datos desde el reloj (t AC ) | ||||||
25 | 0x19 | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo de ciclo de reloj con latencia CAS corta. | ||||||
26 | 0x1a | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de acceso a los datos desde el reloj (t AC ) | ||||||
27 | 0x1b | Nanosegundos (1–63) | 1/4 ns (0–0,75) | Tiempo mínimo de precarga de fila (t RP ) | ||||||
28 | 0x1c | Nanosegundos (1–63) | 1/4 ns (0–0,75) | Retardo mínimo entre filas activas y filas activas (t RRD ) | ||||||
29 | 0x1d | Nanosegundos (1–63) | 1/4 ns (0–0,75) | Retardo mínimo de RAS a CAS (t RCD ) | ||||||
30 | 0x1e | Nanosegundos (1–255) | Tiempo mínimo de precarga activa ( tRAS ) | |||||||
31 | 0x1f | 512 MB | 256 MB | 128 MB | 16 GB | 8 GB | 4 GB | 2 GB | 1 GB | Tamaño de cada rango (mapa de bits). |
32 | 0x20 | Décimas de nanosegundos (0,0–1,2) | Centésimas de nanosegundos (0,00–0,09) | Hora de configuración de la dirección/comando desde el reloj | ||||||
33 | 0x21 | Décimas de nanosegundos (0,0–1,2) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de retención de dirección/comando después del reloj | ||||||
34 | 0x22 | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de configuración de entrada de datos desde el estroboscopio | ||||||
35 | 0x23 | Décimas de nanosegundos (0,0–0,9) | Centésimas de nanosegundos (0,00–0,09) | Tiempo de retención de entrada de datos después del estroboscopio | ||||||
36 | 0x24 | Nanosegundos (1–63) | 0,25 ns (0–0,75) | Tiempo mínimo de recuperación de escritura ( tWR ) | ||||||
37 | 0x25 | Nanosegundos (1–63) | 0,25 ns (0–0,75) | Retardo de comando de lectura y escritura interna (t WTR ) | ||||||
38 | 0x26 | Nanosegundos (1–63) | 0,25 ns (0–0,75) | Retardo del comando de lectura interna para precargar (t RTP ) | ||||||
39 | 0x27 | Reservado | Reservado para "características de la sonda de análisis de memoria" | |||||||
40 | 0x28 | — | t RC ns fraccionario (0–5): 0, 0,25, 0,33, 0,5, 0,66, 0,75 | t RFC ns fraccionarios (0–5): 0, 0,25, 0,33, 0,5, 0,66, 0,75 | t RFC + 256 ns | Ampliación de los bytes 41 y 42. | ||||
41 | 0x29 | Nanosegundos (1–255) | Tiempo mínimo de actividad a actividad/actualización (t RC ) | |||||||
42 | 0x2a | Nanosegundos (1–255) | Tiempo mínimo de actualización a activo/actualización (t RFC ) | |||||||
43 | 0x2b | Nanosegundos (0–15) | Décimas de nanosegundos (0,0–0,9) | Tiempo máximo de ciclo de reloj (tCK máx .) | ||||||
44 | 0x2c | Centésimas de nanosegundos (0,01–2,55) | Máximo sesgo, DQS a cualquier DQ. (t DQSQ máx.) | |||||||
45 | 0x2d | Centésimas de nanosegundos (0,01–2,55) | Factor de sesgo de retención de datos de lectura (t QHS ) | |||||||
46 | 0x2e | Microsegundos (1–255) | Tiempo de rebloqueo del PLL | |||||||
47–61 | 0x2f–0x3d | Reservado | Para una futura estandarización. | |||||||
62 | 0x3e | Revisión importante (0–9) | Revisión menor (0,0–0,9) | Nivel de revisión SPD, normalmente 1.0 | ||||||
63 | 0x3f | Suma de comprobación | Suma de bytes 0–62, no negada | |||||||
64–71 | 0x40–47 | Fabricante JEDEC ID | Little-endian almacenado, relleno de ceros final | |||||||
72 | 0x48 | Ubicación de fabricación del módulo | Código específico del proveedor | |||||||
73–90 | 0x49–0x5a | Número de pieza del módulo | ASCII, relleno con espacio (limitado a (,-,), A–Z, a–z, 0–9, espacio) | |||||||
91–92 | 0x5b–0x5c | Código de revisión del módulo | Código específico del proveedor | |||||||
93 | 0x5d | Años desde 2000 (0–255) | Fecha de fabricación (AAAA) | |||||||
94 | 0x5e | Semanas (1–52) | ||||||||
95–98 | 0x5f–0x62 | Número de serie del módulo | Código específico del proveedor | |||||||
99–127 | 0x63–0x7f | Datos específicos del fabricante | Podría mejorarse el perfil de rendimiento |
El estándar DDR3 SDRAM renueva y simplifica significativamente el diseño de los contenidos de SPD. En lugar de una serie de campos de nanosegundos codificados en BCD, se especifican algunas unidades de "base de tiempo" con alta precisión y varios parámetros de tiempo se codifican como múltiplos de esa unidad base. [10] Además, se ha abandonado la práctica de especificar diferentes valores de tiempo en función de la latencia CAS; ahora hay un solo conjunto de parámetros de tiempo.
La revisión 1.1 permite que algunos parámetros se expresen como un valor de "base de tiempo media" más una corrección de "base de tiempo fina" (con signo, −128 + 127). Generalmente, la base de tiempo media es 1/8 ns (125 ps) y la base de tiempo fina es 1, 2,5 o 5 ps. Para compatibilidad con versiones anteriores que carecen de la corrección, el número de la base de tiempo media se suele redondear hacia arriba y la corrección es negativa. Los valores que funcionan de esta manera son:
Byte de MTB | Byte FTB | Valor |
---|---|---|
12 | 34 | t CK min, período de reloj mínimo |
16 | 35 | t AA min, tiempo mínimo de latencia CAS |
18 | 36 | t RCD mín., retardo mínimo de RAS# a CAS# |
20 | 37 | t RP min, retraso mínimo de precarga de fila |
21, 23 | 38 | t RC min, retardo mínimo de activo a activo/precarga |
Byte | Poco | Notas | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Dic | Maleficio | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0 | 0x00 | Excluir serial del CRC | Total de bytes SPD (undef/256) | Bytes SPD utilizados (undef/128/176/256) | ||||||
1 | 0x01 | Revisión importante del SPD | Revisión menor del SPD | 1.0, 1.1, 1.2 o 1.3 | ||||||
2 | 0x02 | Tipo de memoria básica (11 = DDR3 SDRAM) | Tipos de chips de RAM | |||||||
3 | 0x03 | Reservado | Tipo de módulo | Tipo de módulo; por ejemplo, 2 = DIMM sin búfer, 3 = SO-DIMM, 11=LRDIMM | ||||||
4 | 0x04 | — | Bits de dirección del banco−3 | log 2 (bits por chip)−28 | Cero significa 8 bancos, 256 Mibit. | |||||
5 | 0x05 | — | Bits de dirección de fila: 12 | Bits de dirección de columna −9 | ||||||
6 | 0x06 | Reservado | 1,25 V | 1,35 V | No 1,5 V | Voltajes de módulos admitidos. 1,5 V es el valor predeterminado. | ||||
7 | 0x07 | — | rangos−1 | log 2 (bits de E/S/chip)−2 | Organización del módulo | |||||
8 | 0x08 | — | Bits ECC (001=8) | log 2 (bits de datos)−3 | 0x03 para DIMM de 64 bits, no ECC. | |||||
9 | 0x09 | Dividendo, picosegundos (1–15) | Divisor, picosegundos (1–15) | Base de tiempo fina, dividendo/divisor | ||||||
10 | 0x0a | Dividendo, nanosegundos (1–255) | Base de tiempo media, dividendo/divisor; comúnmente 1/8 | |||||||
11 | 0x0b | Divisor, nanosegundos (1–255) | ||||||||
12 | 0x0c | Tiempo mínimo de ciclo t CK min | En múltiplos de MTB | |||||||
13 | 0x0d | Reservado | ||||||||
14 | 0x0e | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | Latencias CAS admitidas (mapa de bits) |
15 | 0x0f | — | 18 | 17 | 16 | 15 | 14 | 13 | 12 | |
16 | 0x10 | Tiempo mínimo de latencia CAS, t AA min | En múltiplos de MTB; por ejemplo, 80/8 ns. | |||||||
17 | 0x11 | Tiempo mínimo de recuperación de escritura, tWR min | En múltiplos de MTB; por ejemplo, 120/8 ns. | |||||||
18 | 0x12 | Tiempo de retardo mínimo de RAS a CAS, t RCD min | En múltiplos de MTB; por ejemplo, 100/8 ns. | |||||||
19 | 0x13 | Tiempo mínimo de retardo activo de fila a fila, t RRD min | En múltiplos de MTB; por ejemplo, 60/8 ns. | |||||||
20 | 0x14 | Tiempo mínimo de precarga de fila, t RP min | En múltiplos de MTB; por ejemplo, 100/8 ns. | |||||||
21 | 0x15 | t RC mín, bits 11:8 | t RAS mín., bits 11:8 | Los 4 bits superiores de los bytes 23 y 22 | ||||||
22 | 0x16 | Mínimo activo por tiempo, t RAS min, bits 7:0 | En múltiplos de MTB; por ejemplo, 280/8 ns. | |||||||
23 | 0x17 | Mínimo activo a activo/actualizado, t RC min, bits 7:0 | En múltiplos de MTB; por ejemplo, 396/8 ns. | |||||||
24 | 0x18 | Retardo mínimo de recuperación de actualización, t RFC min, bits 7:0 | En múltiplos de MTB; por ejemplo, 1280/8 ns. | |||||||
25 | 0x19 | Retardo mínimo de recuperación de actualización, t RFC min, bits 15:8 | ||||||||
26 | 0x1a | Retardo mínimo interno de escritura a lectura, t WTR min | En múltiplos de MTB; por ejemplo, 60/8 ns. | |||||||
27 | 0x1b | Retardo mínimo de lectura interna para precarga, t RTP min | En múltiplos de MTB; por ejemplo, 60/8 ns. | |||||||
28 | 0x1c | Reservado | t FAW mín., bits 11:8 | En múltiplos de MTB; por ejemplo, 240/8 ns. | ||||||
29 | 0x1d | Retardo mínimo de cuatro ventanas de activación t FAW min, bits 7:0 | ||||||||
30 | 0x1e | DLL desactivado | — | RZQ/7 | RZQ/6 | Las características opcionales de SDRAM admiten mapas de bits | ||||
31 | 0x1f | PASR | — | ODTs | ASR | ETR 1× | ETR (95 °C) | Opciones de actualización y temperatura de SDRAM | ||
32 | 0x20 | Presente | Precisión (por determinar; actualmente 0 = indefinido) | ¿Está presente el sensor térmico DIMM? | ||||||
33 | 0x21 | No estándar. | Conteo de dados | — | Carga de señal | Tipo de dispositivo SDRAM no estándar (por ejemplo, matriz apilada) | ||||
34 | 0x22 | Corrección mínima de t CK (nuevo para 1.1) | Múltiplo firmado de FTB, agregado al byte 12 | |||||||
35 | 0x23 | Corrección mínima de t AA (nuevo para 1.1) | Múltiplo firmado de FTB, agregado al byte 16 | |||||||
36 | 0x24 | Corrección mínima del RCD ( nuevo para 1.1) | Múltiplo firmado de FTB, agregado al byte 18 | |||||||
37 | 0x25 | Corrección mínima de t RP (nuevo para 1.1) | Múltiplo firmado de FTB, agregado al byte 20 | |||||||
38 | 0x26 | Corrección mínima de t RC (nuevo para 1.1) | Múltiplo firmado de FTB, agregado al byte 23 | |||||||
39–40 | 0x27–0x28 | Reservado | Para una futura estandarización. | |||||||
41 | 0x29 | Específico del proveedor | t MAW | Recuento máximo de activación (MAC) (no probado/700k/600k/.../200k/reservado/∞) | Para mitigación de golpes de martillo | |||||
42–59 | 0x2a–0x3b | Reservado | Para una futura estandarización. | |||||||
60 | 0x3c | — | Altura del módulo, mm (1–31, >45) | Altura nominal del módulo | ||||||
61 | 0x3d | Espesor de la espalda, mm (1–16) | Espesor frontal, mm (1–16) | Espesor del módulo, valor = ceil(mm) − 1 | ||||||
62 | 0x3e | Diseño | Revisión | Número de diseño JEDEC | Diseño de referencia JEDEC utilizado (11111=ninguno) | |||||
63–116 | 0x3f–0x74 | Sección específica del módulo | Diferencias entre registrado/sin búfer | |||||||
117 | 0x75 | Identificación del fabricante del módulo, lsbyte | Asignado por JEP-106 | |||||||
118 | 0x76 | Identificación del fabricante del módulo, msbyte | ||||||||
119 | 0x77 | Ubicación de fabricación del módulo | Código específico del proveedor | |||||||
120 | 0x78 | Decenas de años | Años | Año de fabricación (BCD) | ||||||
121 | 0x79 | Decenas de semanas | Semanas | Semana de fabricación (BCD) | ||||||
122–125 | 0x7a–0x7d | Número de serie del módulo | Código específico del proveedor | |||||||
126–127 | 0x7e–0x7f | Dispositivo de protección contra sobretensiones CRC-16 | Incluye los bytes 0–116 o 0–125; consulte el byte 0 bit 7 | |||||||
128–145 | 0x80–0x91 | Número de pieza del módulo | Subconjunto ASCII, rellenado con espacios | |||||||
146–147 | 0x92–0x93 | Código de revisión del módulo | Definido por el proveedor | |||||||
148–149 | 0x94–0x95 | Identificación del fabricante de DRAM | A diferencia del fabricante del módulo | |||||||
150–175 | 0x96–0xAF | Datos específicos del fabricante | ||||||||
176–255 | 0xB0–0xFF | Disponible para uso del cliente |
La capacidad de memoria de un módulo se puede calcular a partir de los bytes 4, 7 y 8. El ancho del módulo (byte 8) dividido por la cantidad de bits por chip (byte 7) da la cantidad de chips por fila. Esto se puede multiplicar por la capacidad por chip (byte 4) y la cantidad de filas de chips en el módulo (generalmente 1 o 2, a partir del byte 7).
El estándar DDR4 SDRAM "Anexo L" para SPD cambia el módulo EEPROM utilizado. En lugar de las antiguas EEPROM de 256 bytes compatibles con AT24C02, JEDEC ahora define un nuevo tipo no estándar EE1004 con dos páginas a nivel de SMBus, cada una con 256 bytes. La nueva memoria todavía utiliza las antiguas direcciones 0x50–0x57, pero ahora se utilizan dos direcciones adicionales en 0x36 (SPA0) y 0x37 (SPA1) para recibir comandos para seleccionar la página actualmente activa para el bus, una forma de conmutación de bancos . [13] Internamente, cada página lógica se divide a su vez en dos bloques físicos de 128 bytes cada uno, lo que suma un total de cuatro bloques y 512 bytes. [14] La semántica restante para los rangos de direcciones "especiales" sigue siendo la misma, aunque la protección contra escritura ahora se aborda por bloques y ahora se requiere un alto voltaje en SA0 para cambiar su estado. [15]
El Anexo L define algunos diseños diferentes que se pueden incorporar a una plantilla de 512 bytes (de los cuales se define un máximo de 320 bytes), según el tipo de módulo de memoria. Las definiciones de bits son similares a las de DDR3. [14]
Byte | Poco | Notas | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Dic | Maleficio | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0 | 0x00 | Bytes SPD utilizados | ||||||||
1 | 0x01 | Revisión n del SPD | Generalmente 0x10, 0x11, 0x12 | |||||||
2 | 0x02 | Tipo de memoria básica (12 = DDR4 SDRAM) | Tipos de chips de RAM | |||||||
3 | 0x03 | Reservado | Tipo de módulo | Tipo de módulo; por ejemplo, 2 = DIMM sin búfer, 3 = SO-DIMM, 11=LRDIMM | ||||||
4 | 0x04 | Bits del grupo bancario | Bits de dirección del banco−2 | Capacidad total de SDRAM por chip en megabits | Cero significa que no hay grupos bancarios, 4 bancos, 256 Mibit. | |||||
5 | 0x05 | Reservado | Bits de dirección de fila: 12 | Bits de dirección de columna −9 | ||||||
6 | 0x06 | Tipo de paquete SDRAM primario | Conteo de dados | Reservado | Carga de señal | |||||
7 | 0x07 | Reservado | Ventana de activación máxima (tMAW) | Recuento máximo de activación (MAC) | Características opcionales de SDRAM | |||||
8 | 0x08 | Reservado | Opciones de actualización y temperatura de SDRAM | |||||||
9 | 0x09 | Reparación de paquetes posteriores (PPR) | PPR blando | Reservado | Otras características opcionales de SDRAM | |||||
10 | 0x0a | Tipo de paquete SDRAM | Número de dados −1 | Relación de densidad de DRAM | Carga de señal | Tipo de paquete SDRAM secundario | ||||
11 | 0x0b | Reservado | Bandera resistente | Bandera operable | Tensión nominal del módulo, VDD | |||||
12 | 0x0c | Reservado | Mezcla de rangos | Rangos de paquetes por DIMM−1 | Ancho del dispositivo SDRAM | Organización del módulo | ||||
13 | 0x0d | Reservado | Ampliación del ancho del bus | Ancho del bus primario | Ancho del bus de memoria del módulo en bits | |||||
14 | 0x0e | Sensor térmico | Reservado | Módulo sensor térmico | ||||||
15 | 0x0f | Reservado | Tipo de módulo base extendido | |||||||
16 | 0x10 | Reservado | ||||||||
17 | 0x11 | Reservado | Base de tiempo media (MTB) | Base de tiempo fina (FTB) | Medido en ps. | |||||
18 | 0x12 | Tiempo mínimo de ciclo de SDRAM, t CKAVG min | En múltiplos de MTB; por ejemplo, 100/8 ns. | |||||||
19 | 0x13 | Tiempo máximo de ciclo de SDRAM, t CKAVG máx. | En múltiplos de MTB; por ejemplo, 60/8 ns. | |||||||
20 | 0x14 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | Máscara de bits compatible con latencias CAS |
21 | 0x15 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | Máscara de bits compatible con latencias CAS |
22 | 0x16 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | Máscara de bits compatible con latencias CAS |
23 | 0x17 | Rango CL bajo | Reservado | 36 | 35 | 34 | 33 | 32 | 31 | Máscara de bits compatible con latencias CAS |
24 | 0x18 | Tiempo mínimo de latencia CAS, t AA min | En múltiplos de MTB; por ejemplo, 1280/8 ns. | |||||||
25 | 0x19 | Tiempo de retardo mínimo de RAS a CAS, t RCD min | En múltiplos de MTB; por ejemplo, 60/8 ns. | |||||||
26 | 0x1a | Tiempo mínimo de retardo de precarga de fila, t RP min | En múltiplos de MTB; por ejemplo, 60/8 ns. | |||||||
27 | 0x1b | Nibbles superiores para t RAS min y t RC min | ||||||||
28 | 0x1c | Tiempo mínimo de retardo de precarga activa, t RAS min byte menos significativo | En múltiplos de MTB | |||||||
29 | 0x1d | Tiempo mínimo de retardo de activo a activo/actualización, t RC min byte menos significativo | En múltiplos de MTB | |||||||
30 | 0x1e | Tiempo mínimo de retardo de recuperación de actualización, t RFC1 min byte menos significativo | En múltiplos de MTB | |||||||
31 | 0x1f | Tiempo mínimo de retardo de recuperación de actualización, t RFC1 min byte más significativo | En múltiplos de MTB | |||||||
32 | 0x20 | Tiempo mínimo de retardo de recuperación de actualización, t RFC2 min byte menos significativo | En múltiplos de MTB | |||||||
33 | 0x21 | Tiempo mínimo de retardo de recuperación de actualización, t RFC2 min byte más significativo | En múltiplos de MTB | |||||||
34 | 0x22 | Tiempo mínimo de retardo de recuperación de actualización, t RFC4 min byte menos significativo | En múltiplos de MTB | |||||||
35 | 0x23 | Tiempo mínimo de retardo de recuperación de actualización, t RFC4 min byte más significativo | En múltiplos de MTB | |||||||
36 | 0x24 | Reservado | t FAW min mordisco más significativo | |||||||
37 | 0x25 | Tiempo mínimo de retardo de activación de cuatro ventanas, t FAW min byte menos significativo | En múltiplos de MTB | |||||||
38 | 0x26 | Tiempo mínimo de retardo de activación para activación, t RRD_S min, grupo de bancos diferente | En múltiplos de MTB | |||||||
39 | 0x27 | Tiempo mínimo de retardo de activación para activación, t RRD_L min, mismo grupo de bancos | En múltiplos de MTB | |||||||
40 | 0x28 | Tiempo de retardo mínimo de CAS a CAS, t CCD_L min, mismo grupo de bancos | En múltiplos de MTB | |||||||
41 | 0x29 | Mordisco superior para t WR min | ||||||||
42 | 0x2a | Tiempo mínimo de recuperación de escritura, tWR min | En múltiplos de MTB | |||||||
43 | 0x2b | Nibbles superiores para t WTR min | ||||||||
44 | 0x2c | Tiempo mínimo de escritura a lectura, t WTR_S min, grupo de bancos diferente | En múltiplos de MTB | |||||||
45 | 0x2d | Tiempo mínimo de escritura a lectura, t WTR_L min, mismo grupo de bancos | En múltiplos de MTB | |||||||
49–59 | 0x2e–0x3b | Reservado | Sección de configuración base | |||||||
60–77 | 0x3c–0x4d | Conector a mapeo de bits de SDRAM | ||||||||
78–116 | 0x4e–0x74 | Reservado | Sección de configuración base | |||||||
117 | 0x75 | Desplazamiento fino para el tiempo de retardo mínimo de CAS a CAS, t CCD_L min, mismo banco | Multiplicador de complemento a dos para unidades FTB | |||||||
118 | 0x76 | Desplazamiento fino para el tiempo mínimo de activación para activar el tiempo de retardo, t RRD_L min, mismo grupo de bancos | Multiplicador de complemento a dos para unidades FTB | |||||||
119 | 0x77 | Desplazamiento fino para el tiempo de retardo de activación mínimo, t RRD_S min, grupo de bancos diferente | Multiplicador de complemento a dos para unidades FTB | |||||||
120 | 0x78 | Desplazamiento fino para el tiempo mínimo de retardo de activo a activo/actualización, t RC min | Multiplicador de complemento a dos para unidades FTB | |||||||
121 | 0x79 | Compensación fina para el tiempo mínimo de retardo de precarga de fila, t RP min | Multiplicador de complemento a dos para unidades FTB | |||||||
122 | 0x7a | Desplazamiento fino para el tiempo de retardo mínimo de RAS a CAS, t RCD min | Multiplicador de complemento a dos para unidades FTB | |||||||
123 | 0x7b | Compensación fina para tiempo de latencia CAS mínimo, t AA min | Multiplicador de complemento a dos para unidades FTB | |||||||
124 | 0x7c | Desplazamiento fino para el tiempo de ciclo máximo de SDRAM, t CKAVG máx. | Multiplicador de complemento a dos para unidades FTB | |||||||
125 | 0x7d | Desplazamiento fino para el tiempo de ciclo mínimo de SDRAM, t CKAVG min | Multiplicador de complemento a dos para unidades FTB | |||||||
126 | 0x7e | Código de redundancia cíclica (CRC) para la sección de configuración base, byte menos significativo | Algoritmo CRC16 | |||||||
127 | 0x7f | Código de redundancia cíclica (CRC) para la sección de configuración base, byte más significativo | Algoritmo CRC16 | |||||||
128–191 | 0x80–0xbf | Sección específica del módulo | Depende de la familia de módulos de memoria (UDIMM, RDIMM, LRDIMM) | |||||||
192–255 | 0xc0–0xff | Parámetros específicos de la arquitectura de memoria híbrida | ||||||||
256–319 | 0x100–0x13f | Bloque de parámetros de función extendida | ||||||||
320–321 | 0x140–0x141 | Fabricante del módulo | Véase JEP-106 | |||||||
322 | 0x142 | Ubicación de fabricación del módulo | Código de ubicación de fabricación definido por el fabricante | |||||||
323 | 0x143 | Año de fabricación del módulo | Representado en código decimal binario (BCD) | |||||||
324 | 0x144 | Semana de fabricación de módulos | Representado en código decimal binario (BCD) | |||||||
325–328 | 0x145–0x148 | Número de serie del módulo | Formato definido por el fabricante para un número de serie único en todos los números de pieza | |||||||
329–348 | 0x149–0x15c | Número de pieza del módulo | Número de pieza ASCII, los dígitos no utilizados deben configurarse en 0x20 | |||||||
349 | 0x15d | Código de revisión del módulo | Código de revisión definido por el fabricante | |||||||
350–351 | 0x15e–0x15f | Código de identificación del fabricante de DRAM | Véase JEP-106 | |||||||
352 | 0x160 | Paso a paso de DRAM | Paso definido por el fabricante o 0xFF si no se utiliza | |||||||
353–381 | 0x161–0x17d | Datos específicos del fabricante | ||||||||
382–383 | 0x17e–0x17f | Reservado |
Tabla preliminar para DDR5, basada en la especificación JESD400-5. [17]
La DDR5 amplía la tabla SPD a 1024 bytes. La SPD de la DDR5 utiliza el bus I3C .
Byte | Poco | Notas | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Dic | Maleficio | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0 | 0x00 | Número de bytes en el dispositivo SPD | ||||||||
1 | 0x01 | Revisión de SPD para parámetros de configuración base | ||||||||
2 | 0x02 | Byte clave/tipo de protocolo de comando de bus host | ||||||||
3 | 0x03 | Byte clave/tipo de módulo | ||||||||
4 | 0x04 | Primera densidad y paquete de SDRAM | ||||||||
5 | 0x05 | Primer direccionamiento de SDRAM | ||||||||
6 | 0x06 | Primer ancho de E/S de SDRAM | ||||||||
7 | 0x07 | Primeros grupos de bancos SDRAM y bancos por grupo de bancos | ||||||||
8 | 0x08 | Segunda densidad y paquete de SDRAM | ||||||||
9 | 0x09 | Segundo direccionamiento de SDRAM | ||||||||
10 | 0x0a | Segundo ancho de E/S de SDRAM | ||||||||
11 | 0x0b | Segundos grupos de bancos SDRAM y bancos por grupo de bancos | ||||||||
12 | 0x0c | Características opcionales de SDRAM | ||||||||
13 | 0x0d | Opciones térmicas y refrescantes | ||||||||
14 | 0x0e | Reservado | ||||||||
15 | 0x0f | Reservado | ||||||||
16 | 0x10 | Voltaje nominal de SDRAM, VDD |
El estándar JEDEC sólo especifica algunos de los bytes SPD. Los datos verdaderamente críticos caben en los primeros 64 bytes, [8] [9] [18] [19] [20] mientras que parte del resto se reserva para la identificación del fabricante. Sin embargo, generalmente se proporciona una EEPROM de 256 bytes. El espacio restante se ha utilizado de diversas formas.
La memoria generalmente viene con recomendaciones de sincronización conservadoras en la ROM SPD, para garantizar la funcionalidad básica en todos los sistemas. Los entusiastas a menudo dedican un tiempo considerable a ajustar manualmente las sincronizaciones de la memoria para lograr una mayor velocidad.
Enhanced Performance Profiles es una extensión de SPD, desarrollada por Nvidia y Corsair , que incluye información adicional para un funcionamiento de mayor rendimiento de la DDR2 SDRAM , incluidos voltajes de suministro e información de sincronización de comandos no incluidos en la especificación JEDEC SPD. La información EPP se almacena en la misma EEPROM, pero en los bytes 99–127, que no son utilizados por la DDR2 SPD estándar. [21]
Bytes | Tamaño | Perfiles completos | Perfiles abreviados |
---|---|---|---|
99–103 | 5 | Encabezado del EPP | |
104–109 | 6 | Perfil FP1 | Perfil AP1 |
110–115 | 6 | Perfil AP2 | |
116–121 | 6 | Perfil FP2 | Perfil AP3 |
122–127 | 6 | Perfil AP4 |
Los parámetros están diseñados especialmente para adaptarse al controlador de memoria de los chipsets nForce 5 , nForce 6 y nForce 7. Nvidia fomenta la compatibilidad con EPP en el BIOS de sus chipsets de placa base de gama alta. Esto tiene como objetivo proporcionar " overclocking con un solo clic " para obtener un mejor rendimiento con el mínimo esfuerzo.
El nombre de Nvidia para la memoria EPP que ha sido calificada por su rendimiento y estabilidad es "memoria preparada para SLI". [22] El término "memoria preparada para SLI" ha causado cierta confusión, ya que no tiene nada que ver con el video SLI . Se puede usar memoria EPP/SLI con una sola tarjeta de video (incluso una tarjeta que no sea Nvidia), y se puede ejecutar una configuración de video SLI con múltiples tarjetas sin memoria EPP/SLI.
Una versión ampliada, EPP 2.0, también admite memoria DDR3. [23]
Una extensión JEDEC SPD similar, desarrollada por Intel, fue desarrollada para módulos DIMM SDRAM DDR3 , que luego se utilizó también en módulos SDRAM DDR4 y DDR5 . XMP utiliza los bytes 176–255, que no están asignados por JEDEC, para codificar tiempos de memoria de mayor rendimiento. [24]
Más tarde, AMD desarrolló AMP, una tecnología equivalente a XMP, para su uso en su línea "Radeon Memory" de módulos de memoria optimizados para su uso en plataformas AMD. [25] [26] Además, los desarrolladores de placas base implementaron sus propias tecnologías para permitir que sus placas base basadas en AMD leyeran perfiles XMP: MSI ofrece A-XMP, [27] ASUS tiene DOCP (Direct Over Clock Profile) y Gigabyte tiene EOCP (Extended Over Clock Profile). [28]
Bytes DDR3 | Tamaño | Usar |
---|---|---|
176–184 | 10 | Encabezado XMP |
185–219 | 33 | Perfil XMP 1 (configuración "entusiasta") |
220–254 | 36 | Perfil XMP 2 (configuración "extrema") |
El encabezado contiene los siguientes datos. Lo más importante es que contiene un valor de "base de tiempo media" MTB, como un número racional de nanosegundos (los valores comunes son 1/8, 1/12 y 1/16 ns). Muchos otros valores de tiempo posteriores se expresan como un número entero de unidades MTB.
También se incluye en el encabezado la cantidad de DIMM por canal de memoria que el perfil está diseñado para soportar; incluir más DIMM puede no funcionar bien.
Bytes DDR3 | Pedazos | Usar |
---|---|---|
176 | 7:0 | Byte 1 del número mágico XMP 0x0C |
177 | 7:0 | Byte 2 del número mágico XMP 0x4A |
178 | 0 | Perfil 1 habilitado (si es 0, deshabilitado) |
1 | Perfil 2 habilitado | |
3:2 | Perfil 1 DIMM por canal (1–4 codificados como 0–3) | |
5:4 | Perfil 2 DIMM por canal | |
7:6 | Reservado | |
179 | 3:0 | Número de versión secundaria de XMP (x.0 o x.1) |
7:4 | Número de versión principal de XMP (0.x o 1.x) | |
180 | 7:0 | Dividendo de base temporal media para el perfil 1 |
181 | 7:0 | Divisor de base de tiempo medio para el perfil 1 (MTB = dividendo/divisor ns) |
182 | 7:0 | Dividendo de base de tiempo media para el perfil 2 (por ejemplo, 8) |
183 | 7:0 | Divisor de base de tiempo medio para el perfil 2 (por ejemplo, 1, lo que da MTB = 1/8 ns) |
184 | 7:0 | Reservado |
Byte 1 de DDR3 | Byte 2 de DDR3 | Pedazos | Usar |
---|---|---|---|
185 | 220 | 0 | Tensión del módulo Vdd en vigésimas (0,00 o 0,05) |
4:1 | Décimas de voltaje del módulo Vdd (0,0–0,9) | ||
6:5 | Unidades de voltaje del módulo Vdd (0–2) | ||
7 | Reservado | ||
186 | 221 | 7:0 | Período mínimo de reloj SDRAM t CK min (unidades MTB) |
187 | 222 | 7:0 | Tiempo mínimo de latencia CAS t AA min (unidades MTB) |
188 | 223 | 7:0 | Latencias CAS admitidas (mapa de bits, 4–11 codificados como bits 0–7) |
189 | 224 | 6:0 | Latencias CAS admitidas (mapa de bits, 12–18 codificados como bits 0–6) |
7 | Reservado | ||
190 | 225 | 7:0 | Tiempo mínimo de latencia de escritura CAS t CWL min (unidades MTB) |
191 | 226 | 7:0 | Tiempo mínimo de retardo de precarga de fila t RP min (unidades MTB) |
192 | 227 | 7:0 | Tiempo de retardo mínimo de RAS a CAS t RCD min (unidades MTB) |
193 | 228 | 7:0 | Tiempo mínimo de recuperación de escritura t WR min (unidades MTB) |
194 | 229 | 3:0 | t RAS min nibble superior (bits 11:8) |
7:4 | t RC min nibble superior (bits 11:8) | ||
195 | 230 | 7:0 | Tiempo mínimo de retardo de precarga activa t RAS min bits 7:0 (unidades MTB) |
196 | 231 | 7:0 | Tiempo mínimo de retardo de activo a activo/actualización t RC min bits 7:0 (unidades MTB) |
197 | 232 | 7:0 | Intervalo de actualización promedio máximo t REFI lsbyte (unidades MTB) |
198 | 233 | 7:0 | Intervalo de actualización promedio máximo t REFI msbyte (unidades MTB) |
199 | 234 | 7:0 | Tiempo mínimo de retardo de recuperación de actualización t RFC min lsbyte (unidades MTB) |
200 | 235 | 7:0 | Tiempo mínimo de retardo de recuperación de actualización t RFC min msbyte (unidades MTB) |
201 | 236 | 7:0 | Tiempo mínimo de retardo del comando de precarga de lectura interna t RTP min (unidades MTB) |
202 | 237 | 7:0 | Tiempo mínimo de retardo de fila activa a fila activa t RRD min (unidades MTB) |
203 | 238 | 3:0 | t FAW min nibble superior (bits 11:8) |
7:4 | Reservado | ||
204 | 239 | 7:0 | Tiempo de retardo de ventana de activación mínimo de cuatro bits t FAW min 7:0 (unidades MTB) |
205 | 240 | 7:0 | Tiempo mínimo de retardo de comando de lectura y escritura interna t WTR min (unidades MTB) |
206 | 241 | 2:0 | Ajuste del tiempo de respuesta del comando de escritura a lectura (0 a 7 ciclos de reloj) |
3 | Escriba para leer el signo de ajuste de giro del comando (0=tracción, 1=extracción) | ||
6:4 | Ajuste del tiempo de respuesta del comando de lectura a escritura (0 a 7 ciclos de reloj) | ||
7 | Signo de ajuste de giro del comando de lectura para escritura (0=tracción, 1=extracción) | ||
207 | 242 | 2:0 | Ajuste del tiempo de respuesta de comandos consecutivos (0 a 7 ciclos de reloj) |
3 | Señal de ajuste de giro consecutivo (0 = entrada, 1 = salida) | ||
7:4 | Reservado | ||
208 | 243 | 7:0 | Modo de velocidad CMD del sistema. 0 = JTAG predeterminado; de lo contrario, en unidades peculiares de MTB × tCK / ns. Por ejemplo, si MTB es 1/8 ns, entonces se expresa en unidades de 1/8 de ciclo de reloj. |
209 | 244 | 7:0 | Rendimiento de actualización automática de SDRAM. La versión estándar 1.1 indica que la documentación está pendiente de publicación. |
210–218 | 245–253 | 7:0 | Reservado |
219 | 254 | 7:0 | Código de personalidad reservado y específico del proveedor. |
Todos los datos anteriores son para DDR3 (XMP 1.1); las especificaciones DDR4 aún no están disponibles.
Los perfiles extendidos para overclocking (EXPO) de AMD son una extensión JEDEC SPD desarrollada para módulos DIMM DDR5 para aplicar un perfil de overclocking automático con un solo clic a la memoria del sistema. [30] [31] Los módulos DIMM con certificación EXPO de AMD incluyen tiempos optimizados que optimizan el rendimiento de sus procesadores Zen 4. [32] A diferencia del estándar cerrado XMP de Intel, el estándar EXPO es abierto y libre de regalías. [31] Se puede utilizar en plataformas Intel. [31] En el lanzamiento en septiembre de 2022, hay 15 kits de RAM de socios con certificación EXPO disponibles que alcanzan hasta 6400 MT/s. [33]
Un mal uso habitual es escribir información en determinadas regiones de memoria para vincular módulos de memoria específicos del proveedor a un sistema específico. Se sabe que Fujitsu Technology Solutions hace esto. Agregar un módulo de memoria diferente al sistema generalmente da como resultado un rechazo u otras contramedidas (como presionar F1 en cada arranque).
02 0E 00 01-00 00 00 EF-02 03 19 4D-BC 47 C3 46 ...........MGF53 43 00 04-EF 4F 8D 1F-00 01 70 00-01 03 C1 CF SC...O....p.....
Esta es la salida de un módulo de memoria de 512 MB de Micron Technologies, con la marca Fujitsu-Siemens Computers. Observe la cadena "FSC". El BIOS del sistema rechaza los módulos de memoria que no tienen esta información a partir del desplazamiento 128h.
Algunas laptops AMD de Packard Bell también usan este método, en este caso los síntomas pueden variar pero puede provocar un cursor parpadeante en lugar de un patrón de pitidos. Por cierto, esto también puede ser un síntoma de corrupción del BIOS. [34] Aunque actualizar una de 2 GB a una de 4 GB también puede generar problemas.
Los fabricantes de módulos de memoria escriben la información SPD en la EEPROM del módulo. Las BIOS de las placas base leen la información SPD para configurar el controlador de memoria. Existen varios programas que pueden leer y modificar la información SPD en la mayoría de los conjuntos de chips de las placas base, pero no en todos.
La lectura y escritura de información SPD independiente del chipset se realiza accediendo directamente a la EEPROM de la memoria con el hardware y el software programadores de EEPROM.
Un uso no tan común para los portátiles antiguos es como lectores SMBus genéricos, ya que la EEPROM interna del módulo se puede desactivar una vez que la BIOS la ha leído, de modo que el bus está esencialmente disponible para su uso. El método utilizado es bajar las líneas A0, A1 para que la memoria interna se apague, lo que permite que el dispositivo externo acceda al SMBus. Una vez hecho esto, una compilación personalizada de Linux o una aplicación DOS puede acceder al dispositivo externo. Un uso común es recuperar datos de los chips de memoria del panel LCD para adaptar un panel genérico a un portátil propietario. En algunos chips, también es una buena idea separar las líneas de protección contra escritura para que los chips integrados no se borren durante la reprogramación. Una técnica relacionada es reescribir el chip en las cámaras web que a menudo se incluyen con muchos portátiles, ya que la velocidad del bus es sustancialmente mayor e incluso se puede modificar para que se puedan volver a leer chips compatibles con 25x para clonar posteriormente la uEFI en caso de que falle un chip.
Lamentablemente, esto solo funciona en DDR3 y versiones inferiores, ya que la DDR4 utiliza una seguridad diferente y, por lo general, solo se puede leer. Es posible utilizar una herramienta como SPDTool o similar y reemplazar el chip por uno que tenga la línea WP libre para que se pueda modificar in situ. En algunos chipsets, puede aparecer el mensaje "¿Controlador SMBus incompatible?", por lo que también se evita la lectura.
Algunos módulos de memoria (especialmente en PC para juegos ) [39] admiten LED RGB que se controlan mediante comandos SMBus propietarios. Esto permite el control del color de los LED sin conectores ni cables adicionales. Los controladores de kernel de varios fabricantes necesarios para controlar las luces han sido explotados para obtener acceso que abarca desde el acceso completo a la memoria del kernel hasta el control del puerto de E/S y MSR en numerosas ocasiones solo en 2020. [40] [41] [42]
Algunos equipos más antiguos requieren el uso de módulos SIMM con detección de presencia paralela (más comúnmente llamados simplemente detección de presencia o PD). Algunos de estos equipos utilizan codificación PD no estándar, en particular las computadoras IBM y las impresoras Hewlett-Packard LaserJet y otras.
{{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace )