stringtranslate.com

Detección de presencia en serie

En informática , la detección de presencia en serie ( SPD ) es una forma estandarizada de acceder automáticamente a información sobre un módulo de memoria . Los SIMM anteriores de 72 pines incluían cinco pines que proporcionaban cinco bits de datos de detección de presencia paralela (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 autoprueba de encendido (POST). Desde mediados de la década de 1990, este proceso incluye la configuración automática del hardware actualmente presente. SPD es una característica del hardware de memoria que hace posible que la computadora sepa qué memoria está presente y qué tiempos de memoria usar para acceder a ella.

Algunas computadoras se adaptan a los cambios de hardware de forma 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 potencialmente realizar cambios en la configuración. Es posible controlar cómo la computadora usa los datos SPD de la memoria: elegir configuraciones, modificar selectivamente los tiempos de la memoria o posiblemente anular completamente los datos SPD (consulte overclocking ).

Información almacenada

Para que un módulo de memoria admita SPD, los estándares JEDEC requieren que ciertos parámetros estén 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 leyendo 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.

Se accede al firmware SPD EEPROM mediante SMBus , una variante del protocolo I 2 C. 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 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. Las líneas de comunicación no solo se pueden compartir 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 los voltajes de la fuente de alimentación, las temperaturas de la CPU y las 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) usa las direcciones 0x18–0x1F para acceder a un sensor de temperatura en chip opcional. Todos esos valores son direcciones I 2 C de siete bits formadas por un prefijo de código identificador de tipo de dispositivo (DTIC) con SA0-2: para leer (1100) desde la ranura 3, se usa 110 0011 = 0x33. Con un bit final de lectura y escritura, forma el código de selección de dispositivo de 8 bits. [2] Tenga en cuenta que la semántica de slot-id es diferente para las operaciones de protección contra escritura: para ellas no pueden pasar por los pines SA en absoluto. [3]

Antes de SPD, los chips de memoria se detectaban con detección de presencia paralela (PPD). PPD usó un pin separado 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.

DEG SDRAM

Dispositivo de memoria en un módulo SDRAM , que contiene datos SPD (en un círculo rojo)

La primera especificación SPD fue publicada por JEDEC y reforzada 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 alto. En tales casos, las codificaciones para 1, 2 y 3 se utilizan para codificar 16, 17 y 18. Un cuarteto más significativo de 0 se reserva para representar "indefinido".

La ROM SPD define hasta tres tiempos de DRAM, para tres latencias CAS especificadas mediante 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.

SDRAM DDR

El formato DDR DIMM SPD es una extensión del formato SDR SDRAM. En su mayoría, los rangos de parámetros se reescalan para adaptarse a velocidades más altas.

SDRAM DDR2

El estándar DDR2 SPD realiza una serie de cambios, pero es más o menos similar al anterior. Una eliminación notable es el soporte confuso y poco utilizado para DIMM con dos rangos de diferentes tamaños.

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 exactamente algunos tiempos comunes:

SDRAM DDR3

El estándar DDR3 SDRAM revisa y simplifica significativamente el diseño de contenidos SPD. En lugar de una serie de campos de nanosegundos codificados en BCD, algunas unidades de "base de tiempo" se especifican con alta precisión y varios parámetros de tiempo se codifican como múltiplos de esa unidad base. [10] Además, se ha eliminado la práctica de especificar diferentes valores de tiempo dependiendo de la latencia CAS; ahora sólo hay un único conjunto de parámetros de sincronización.

La revisión 1.1 permite que algunos parámetros se expresen como un valor de "base de tiempo medio" más una corrección de "base de tiempo fina" (con signo, −128 +127). Generalmente, la base de tiempos media es 1/8 ns (125 ps) y la base de tiempos fina es 1, 2,5 o 5 ps. Para compatibilidad con versiones anteriores que carecen de corrección, el número de base de tiempo medio generalmente se redondea hacia arriba y la corrección es negativa. Los valores que funcionan de esta manera son:

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 el número de bits por chip (byte 7) da el número de chips por rango. Luego, esto se puede multiplicar por la capacidad por chip (byte 4) y el número de rangos de chips en el módulo (generalmente 1 o 2, a partir del byte 7).

SDRAM DDR4

El estándar DDR4 SDRAM "Annex 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 EE1004 no estándar con dos páginas en el nivel SMBus cada una con 256 bytes. La nueva memoria todavía usa las antiguas direcciones 0x50–0x57, pero ahora se usan 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 cambio de banco . [13] Internamente, cada página lógica se divide en dos bloques físicos de 128 bytes cada uno, con un total de cuatro bloques y 512 bytes. [14] Otras semánticas para rangos de direcciones "especiales" siguen siendo las mismas, aunque la protección contra escritura ahora se aborda mediante 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 conectar a una plantilla de 512 bytes (de los cuales se define un máximo de 320 bytes), dependiendo del tipo de módulo de memoria. Las definiciones de bits son similares a DDR3. [14]

SDRAM DDR5

Tabla preliminar para DDR5, basada en la especificación JESD400-5. [17]

DDR5 expande la tabla SPD a 1024 bytes. SPD de DDR5 utiliza el bus I3C .

Extensiones

El estándar JEDEC solo 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 está destinado a la identificación del fabricante. Sin embargo, generalmente se proporciona una EEPROM de 256 bytes. Del espacio restante se han hecho varios usos.

Perfiles de rendimiento mejorados (EPP)

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 suelen dedicar un tiempo considerable a ajustar manualmente los tiempos de memoria para obtener 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 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 del EPP se almacena en la misma EEPROM, pero en los bytes 99 a 127, que no se utilizan en el SPD DDR2 estándar. [21]

Los parámetros están especialmente diseñados para adaptarse al controlador de memoria en los conjuntos de chips nForce 5 , nForce 6 y nForce 7 . Nvidia fomenta la compatibilidad con EPP en el BIOS de sus conjuntos de chips de placa base de alta gama. 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 vídeo SLI . Se puede utilizar la memoria EPP/SLI con una sola tarjeta de vídeo (incluso una tarjeta que no sea Nvidia) y se puede ejecutar una configuración de vídeo SLI de varias tarjetas sin memoria EPP/SLI.

Una versión extendida, EPP 2.0, también admite memoria DDR3. [23]

Perfil de memoria Intel Extreme (XMP)

Se desarrolló una extensión JEDEC SPD similar desarrollada por Intel para DIMM SDRAM DDR3 , que luego se usó también en SDRAM DDR4 . XMP utiliza los bytes 176 a 255, que JEDEC no asigna, para codificar tiempos de memoria de mayor rendimiento. [24]

Posteriormente, AMD desarrolló AMP, una tecnología equivalente a XMP, para usar en su línea de módulos de memoria "Radeon Memory" 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 lean perfiles XMP: MSI ofrece A-XMP, [27] ASUS tiene DOCP (Direct Over Clock Profile) y Gigabyte tiene EOCP ( Perfil extendido sobre reloj). [28]

El encabezado contiene los siguientes datos. Lo más importante es que contiene un valor MTB de "base de tiempo medio", como un número racional de nanosegundos (los valores comunes son 1/8, 1/12 y 1/16 ns). Muchos otros valores de sincronización 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 admitir; Es posible que incluir más DIMM no funcione bien.

Todos los datos anteriores son para DDR3 (XMP 1.1); Las especificaciones DDR4 aún no están disponibles.

Perfiles extendidos de AMD para overclocking (EXPO)

Los perfiles extendidos para overclocking (EXPO) de AMD es una extensión JEDEC SPD desarrollada para DIMM DDR5 para aplicar un perfil de overclocking automático con un solo clic a la memoria del sistema. [30] [31] Los DIMM certificados por AMD EXPO 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]

Memoria específica del proveedor

Un uso indebido común es escribir información en ciertas regiones de la 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 resulta en 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, tenga en cuenta 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 computadoras portátiles Packard Bell AMD también usan este método; en este caso, los síntomas pueden variar, pero pueden provocar un cursor parpadeante en lugar de un patrón de pitido. Por cierto, esto también puede ser un síntoma de corrupción del BIOS. [34] Aunque actualizar de 2 GB a 4 GB también puede generar problemas.

Lectura y escritura de información SPD

Los fabricantes de módulos de memoria escriben la información SPD en la EEPROM del módulo. Los BIOS de la placa base leen la información del 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 la placa base, pero no en todos.

La lectura y escritura de información SPD independiente del chipset se realiza accediendo a la EEPROM de la memoria directamente con el hardware y software del programador eeprom.

Un uso no tan común para las computadoras portátiles antiguas es como lectores SMBus genéricos, ya que la EEPROM interna del módulo se puede desactivar una vez que el BIOS la ha leído, por lo 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, permitiendo 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 chips de memoria del panel LCD para adaptar un panel genérico a una computadora portátil patentada. 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 muchas computadoras portátiles, ya que la velocidad del bus es sustancialmente mayor e incluso se puede modificar para que se puedan leer chips compatibles con 25x para una posterior clonación del uEFI en caso de falla del chip.

Desafortunadamente, esto solo funciona en DDR3 e inferiores, ya que DDR4 usa una seguridad diferente y generalmente solo se puede leer. Es posible utilizar una herramienta como SPDTool o similar y sustituir el chip por uno que tenga su línea WP libre para poder modificarlo in situ. En algunos conjuntos de chips aparece el mensaje "¿Controlador SMBus incompatible?" puede verse, por lo que también se impide su lectura.

Control de LED RGB

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 del LED sin conectores ni cables adicionales. Los controladores de kernel de múltiples fabricantes necesarios para controlar las luces se han explotado para obtener acceso que va desde el acceso completo a la memoria del kernel hasta el control de puertos de E/S y MSR en numerosas ocasiones solo en 2020. [40] [41] [42]

En equipos más antiguos

Algunos equipos más antiguos requieren el uso de SIMM con detección de presencia paralela (más comúnmente llamado simplemente detección de presencia o PD). Algunos de estos equipos utilizan codificación PD no estándar, computadoras IBM y Hewlett-Packard LaserJet y otras impresoras en particular.

Ver también

Referencias

  1. ^ Thomas P. Koenig; Nathan John (3 de febrero de 1997), "La detección de presencia en serie está lista para ser el centro de atención", Electronic News , 43 (2153)
  2. ^ Sección 4.1.4 del estándar JEDEC 21-C "Definición de la EEPROM de detección de presencia en serie (SPD) TSE2002av con sensor de temperatura (TS) para aplicaciones de módulo de memoria"
  3. ^ "TN-04-42: Protección contra escritura con detección de presencia en serie del módulo de memoria" (PDF) . Micron .
  4. ^ Dean Kent (24 de octubre de 1998). "Guía de ariete". Hardware de Tom .
  5. ^ Shimpi, Anand Lal. "PC100 SDRAM: Introducción". www.anandtech.com .
  6. ^ Nota de aplicación INN-8668-APN3: Estándares de datos SDRAM SPD, Memorytesters.com
  7. ^ Especificación de detección de presencia en serie (SPD) de PC SDRAM (PDF) , 1.2A, diciembre de 1997, p. 28
  8. ^ ab JEDEC Standard 21-C sección 4.1.2.4 "SPD para DDR SDRAM"
  9. ^ ab JEDEC Standard 21-C sección 4.1.2.10 "SPD específicos para SDRAM DDR2"
  10. ^ "Comprensión de la tabla de detección de presencia en serie (SPD) DDR3".
  11. ^ JESD21-C Anexo K: Detección de presencia en serie para módulos SDRAM DDR3, versión 4, revisión SPD 1.1
  12. ^ JESD21-C Anexo K: Detección de presencia en serie para módulos SDRAM DDR3, versión 6, revisión SPD 1.3
  13. ^ Delvare, Jean. "[PATCH] eeprom: Nuevo controlador ee1004 para memoria DDR4". LKML . Consultado el 7 de noviembre de 2019 .
  14. ^ ab JEDEC. "Anexo L: Detección de presencia en serie (SPD) para módulos SDRAM DDR4" (PDF) .
  15. ^ JEDEC. "Especificación de dispositivo EE1004 y TSE2004 (borrador)" (PDF) . Consultado el 7 de noviembre de 2019 .
  16. ^ JESD21-C Anexo L: Detección de presencia en serie para módulos SDRAM DDR4, versión 5
  17. ^ "JESD400-5B (JESD400-5B)". jedec . 2023 . Consultado el 31 de diciembre de 2023 .
  18. ^ Sección 4.1.2.11 del estándar JEDEC 21-C "Detección de presencia en serie (SPD) para módulos SDRAM DDR3"
  19. ^ Norma JEDEC 21-C sección 4.1.2 "ESTÁNDAR DE DETECCIÓN DE PRESENCIA EN SERIE, Norma general"
  20. ^ Sección 4.1.2.5 del estándar JEDEC 21-C "PD específicos para DRAM síncrona (SDRAM)"
  21. ^ Especificación de diseño de perfiles de rendimiento mejorado DDR2 UDIMM (PDF) , Nvidia , 12 de mayo de 2006 , consultado el 5 de mayo de 2009
  22. ^ http://www.nvidia.com/docs/CP/45121/sli_memory.pdf [ URL básica PDF ]
  23. ^ Perfiles de rendimiento mejorados 2.0 (págs. 2 y 3)
  24. ^ "¿Qué es el perfil de memoria Intel Extreme (Intel XMP)?". Intel . Consultado el 26 de septiembre de 2022 .
  25. ^ "Tecnología de perfil de memoria: amplíe su RAM". AMD . 2012 . Consultado el 8 de enero de 2018 .
  26. ^ Martin, Ryan (23 de julio de 2012). "AMD presenta su AMP equivalente a XMP: eTeknix". eTeknix . Consultado el 8 de enero de 2018 .
  27. ^ "MSI es la primera marca del mundo que habilita A-XMP en Ryzen para obtener el mejor rendimiento DDR4 y lanza nuevos modelos". MSI . 21 de marzo de 2017 . Consultado el 8 de enero de 2018 .
  28. ^ Tradesman1 (26 de agosto de 2016). "¿Qué significa XMP, DOCP, EOCP? Resuelto: Memoria". Foros de hardware de Tom . Consultado el 8 de enero de 2018 .{{cite web}}: Mantenimiento CS1: nombres numéricos: lista de autores ( enlace )
  29. ^ abc "Especificación Intel Extreme Memory Profile (XMP), Rev 1.1" (PDF) . Intel . Octubre de 2007. Archivado desde el original (PDF) el 6 de marzo de 2012 . Consultado el 25 de mayo de 2010 .
  30. ^ "Perfiles extendidos de AMD para overclocking". AMD . Consultado el 26 de septiembre de 2022 .
  31. ^ abc Roach, Jacob (6 de septiembre de 2022). "¿Qué es AMD EXPO y mi DDR5 debería tenerlo?". Tendencias digitales . Consultado el 26 de septiembre de 2022 .
  32. ^ Bonshor, Gavin (30 de agosto de 2022). "Tecnología de memoria AMD EXPO: perfiles de overclocking con un clic para Ryzen 7000". AnandTech . Consultado el 26 de septiembre de 2022 .
  33. ^ "AMD anuncia tecnología EXPO para overclocking de memoria DDR5". VideoCardz . 30 de agosto de 2022 . Consultado el 26 de septiembre de 2022 .
  34. ^ "Actualización de RAM Packard Bell LJ65". Foro de hardware de Tom . 9 de enero de 2014.
  35. ^ "dmidecode: ¿Para qué sirve?". Linux.com | La fuente de información de Linux . 29 de noviembre de 2004.
  36. ^ "decodificar atenuadores (1)". Página de manual de Debian . Consultado el 16 de diciembre de 2020 .
  37. ^ "decodificar atenuadores". www.freebsd.org . Consultado el 24 de enero de 2021 .
  38. ^ "HWiNFO - Diagnóstico e información del sistema profesional". HWiNFO .
  39. ^ "Memoria DDR4 serie VENGEANCE RGB PRO | Memoria de escritorio | CORSAIR". www.corsair.com . Consultado el 26 de noviembre de 2020 .
  40. ^ ActivoCyber. Escalada de privilegios locales del controlador Viper RGB (informe técnico). CVE - 2019-18845 - a través de MITRE Corporation.
  41. ^ ActivoCyber. Escalada de privilegios locales del conductor CORSAIR iCUE (CVE-2020-8808) (Informe técnico). CVE - 2020-8808 - a través de MITRE Corporation.
  42. ^ ActivoCyber. ACTIVO-2020-003: Escalada de privilegios locales del controlador de control de iluminación Trident Z (Reporte técnico). CVE - 2020-12446 - a través de MITRE Corporation.

enlaces externos