Número de errores

Número de errores

Tengo una computadora portátil aquí que sospecho que tiene un módulo de memoria defectuoso. Por eso descarguéMemtest86+y déjalo correr.

Tenga en cuenta que la captura de pantalla no es la mía real, la proporciona memtest86+.

prueba de memoria

¿Cómo interpreto los números en la pantalla? Lo dejé funcionar durante unas cuatro horas y ahora estoy en el paso 7.

Especialmente, ¿qué hace

  • el número de prueba
  • el recuento de errores
  • el recuento de errores ECC

¿indicar? ¿Cuáles son los valores sensatos para los errores de memoria? ¿En qué momento debería considerar reemplazar la memoria?

Respuesta1

TL;DR

El número más importante primero:El recuento de errores para una memoria sana debe ser 0. Cualquier número superior a 0 puede indicar sectores dañados/defectuosos.


Explicación de la pantalla

     Memtest86+ v1.00      | Progress of the entire pass (test series)
CPU MODEL and clock speed  | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.

WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors  ECC Errs
---------  ------  -------  --------  -----  ---  ----  ----  ------  --------
Elapsed    Amount  Amount    Mapping  on     on   Test  # of  # of    # of ECC
time       of RAM  of        used     or     or   type  pass  errors  errors
           cached  reserved           off    off        done  found   found
                   RAM, not
                   tested

Explicación de datos/prueba

MemTest ejecuta una serie de pruebas, escribe patrones específicos en cada sector de la memoria y los recupera. Si los datos recuperados difieren de los datos que se almacenaron originalmente, MemTest registra un error y aumenta elrecuento de errorespor uno. Los errores suelen ser signos de tiras de RAM defectuosas.

Dado que la memoria no es sólo un bloc de notas que contiene información sino que tiene funciones avanzadas como el almacenamiento en caché, se realizan varias pruebas diferentes. Esto es lo que elTest #indica. MemTest ejecuta varias pruebas diferentes para ver si se producen errores.

Algunos ejemplos de prueba (simplificados):

  • Pruebe los sectores en este orden: A, B, C, D, E, F. (Serie)
  • Pruebe los sectores en este orden: A, C, E, B, D, F. (En movimiento)
  • Rellena todos los sectores con patrón: aaaaaaaa
  • Rellena todos los sectores con un patrón aleatorio.

Descripción más detallada de todas las pruebas de:https://www.memtest86.com/technical.htm#detailed

Prueba 0 [Prueba de dirección, para caminar, sin caché]

Prueba todos los bits de dirección en todos los bancos de memoria utilizando un patrón de dirección ambulante.

Prueba 1 [Prueba de dirección, dirección propia, Secuencial]

Cada dirección se escribe con su propia dirección y luego se verifica su coherencia. En teoría, las pruebas anteriores deberían haber detectado cualquier problema de direccionamiento de la memoria. Esta prueba debería detectar cualquier error de direccionamiento que de alguna manera no se haya detectado previamente. Esta prueba se realiza de forma secuencial con cada CPU disponible.

Prueba 2 [Prueba de dirección, dirección propia, Paralela]

Igual que la prueba 1, pero la prueba se realiza en paralelo utilizando todas las CPU y direcciones superpuestas.

Prueba 3 [Inversiones en movimiento, unos y ceros, secuencial]

Esta prueba utiliza el algoritmo de inversiones en movimiento con patrones de todos unos y ceros. La caché está habilitada aunque interfiere hasta cierto punto con el algoritmo de prueba. Con el caché habilitado, esta prueba no lleva mucho tiempo y debería encontrar rápidamente todos los errores "difíciles" y algunos errores más sutiles. Esta prueba es sólo una comprobación rápida. Esta prueba se realiza de forma secuencial con cada CPU disponible.

Prueba 4 [Inversiones en movimiento, unos y ceros, en paralelo]

Igual que la prueba 3, pero la prueba se realiza en paralelo utilizando todas las CPU.

Prueba 5 [Inversiones en movimiento, palmadita de 8 bits]

Esto es lo mismo que la prueba 4, pero utiliza un patrón de 8 bits de unos y ceros "andantes". Esta prueba detectará mejor errores sutiles en chips de memoria "anchos".

Prueba 6 [Inversiones en movimiento, patrón aleatorio]

La prueba 6 utiliza el mismo algoritmo que la prueba 4, pero el patrón de datos es un número aleatorio y su complemento. Esta prueba es particularmente efectiva para encontrar errores difíciles de detectar en datos sensibles. La secuencia de números aleatorios es diferente con cada pasada, por lo que varias pasadas aumentan la efectividad.

Prueba 7 [movimiento de bloque, 64 movimientos]

Esta prueba enfatiza la memoria mediante el uso de instrucciones de movimiento de bloques (movsl) y se basa en la prueba burnBX de Robert Redelmeier. La memoria se inicializa con patrones cambiantes que se invierten cada 8 bytes. Luego, se mueven bloques de memoria de 4 MB utilizando la instrucción movsl. Una vez completados los movimientos, se verifican los patrones de datos. Debido a que los datos se verifican solo después de que se completan los movimientos de memoria, no es posible saber dónde ocurrió el error. Las direcciones reportadas son solo de donde se encontró el patrón incorrecto. Dado que los movimientos están restringidos a un segmento de memoria de 8 MB, la dirección fallida siempre estará a menos de 8 MB de la dirección informada. Los errores de esta prueba no se utilizan para calcular patrones de BadRAM.

Prueba 8 [Inversiones en movimiento, patrón de 32 bits]

Esta es una variación del algoritmo de inversiones en movimiento que desplaza el patrón de datos un bit hacia la izquierda para cada dirección sucesiva. La posición inicial de la broca se desplaza hacia la izquierda en cada pasada. Para utilizar todos los patrones de datos posibles, se requieren 32 pases. Esta prueba es bastante eficaz para detectar errores sensibles a los datos, pero el tiempo de ejecución es largo.

Prueba 9 [secuencia de números aleatorios]

Esta prueba escribe una serie de números aleatorios en la memoria. Al restablecer la semilla del número aleatorio, se puede crear la misma secuencia de números como referencia. El patrón inicial se comprueba y luego se complementa y se vuelve a comprobar en la siguiente pasada. Sin embargo, a diferencia de la prueba de inversiones en movimiento, la escritura y la verificación solo se pueden realizar en la dirección de avance.

Prueba 10 [Módulo 20, unos y ceros]

El uso del algoritmo Módulo-X debería descubrir errores que no se detectan al mover inversiones debido a la interferencia del caché y el buffer con el algoritmo. Al igual que con la prueba uno, solo se utilizan unos y ceros para los patrones de datos.

Prueba 11 [Prueba de desvanecimiento de bits, 90 min, 2 patrones]

La prueba de desvanecimiento de bits inicializa toda la memoria con un patrón y luego duerme durante 5 minutos. Luego se examina la memoria para ver si algún bit de memoria ha cambiado. Se utilizan todos los patrones de unos y todos los ceros.

Debido a que los sectores defectuosos a veces pueden funcionar y no funcionar en otras ocasiones, recomiendo dejar que MemTest ejecute algunas pasadas. Una completaaprobarEs una serie de pruebas completadas que han pasado. (La serie de pruebas anterior 1-11) Cuantas más pasadas obtenga sin errores, más precisa será su ejecución de MemTest. Normalmente hago unas 5 pasadas para estar seguro.

El recuento de errorespara que la memoria esté sana debe ser 0. Cualquier número superior a 0 puede indicar sectores dañados o defectuosos.

Recuento de errores ECCsólo debe tenerse en cuenta cuando ECCse establece en off. ECC significa memoria de código de corrección de errores y es un mecanismo para detectar y corregir bits incorrectos en un estado de memoria. Se puede comparar ligeramente con las comprobaciones de paridad realizadas en RAID o medios ópticos. Esta tecnología es bastante cara y probablemente sólo se encontrará en configuraciones de servidores. El recuento de ECC cuenta cuántos errores han sido corregidos por el mecanismo ECC de la memoria. No debería ser necesario invocar ECC para una RAM en buen estado, por lo que un recuento de errores de ECC superior a 0 también puede indicar mala memoria.


Explicación del error

Ejemplo de Memtest que ha encontrado errores. Muestra qué sector/dirección ha fallado.

Pantalla de prueba de memoria con errores

La primera columna (tt) muestra qué prueba ha fallado, el número corresponde al número de prueba de la lista ya mencionada anteriormente. La segunda columna (Aprobar) muestra si esa pruebatieneaprobado. En el caso del ejemplo, la prueba 7 no tiene pases.

La tercera columna (Dirección fallida) muestra exactamente qué parte de la memoria tiene errores. Dicha parte tiene una dirección, muy parecida a una dirección IP, que es única para esa pieza de almacenamiento de datos. Muestra qué dirección falló y qué tan grande es el fragmento de datos. (0,8 MB en el ejemplo)

El cuarto (Bien) y quinto (Malo) las columnas muestran los datos que se escribieron y los que se recuperaron respectivamente. Ambas columnas deben ser iguales en la memoria sin fallas (obviamente).

La sexta columna (Bits de error) muestra la posición exacta de los bits que están fallando.

La séptima columna (Contar) muestra el número de errores consecutivos con la misma dirección y bits fallidos.

Finalmente, la última columna siete (chan) muestra el canal (si se utilizan varios canales en el sistema) en el que se encuentra la tira de memoria.


Si encuentra errores

Si MemTest descubre algún error, el mejor método para determinar qué módulo está defectuoso se trata enesta pregunta de superusuarioy su respuesta aceptada:

Utilice el proceso de eliminación: elimine la mitad de los módulos y ejecute la prueba nuevamente...

Si no hay fallas, entonces sabes que estos dos módulos están bien, así que déjalos a un lado y pruébalos nuevamente.

Si hay fallas, reduzca nuevamente a la mitad (ahora hasta uno de los cuatro módulos de memoria) y luego vuelva a realizar la prueba.

Pero, sólo porque uno no pasó una prueba, no asuma que el otro no falla (podría tener dos módulos de memoria defectuosos). Cuando haya detectado una falla con dos módulos de memoria, pruebe cada uno de esos dos por separado después. .

Nota importante: con características como el entrelazado de memoria y esquemas deficientes de numeración de sockets de módulos de memoria por parte de algunos proveedores de placas base, puede resultar difícil saber qué módulo está representado por una dirección determinada.

Respuesta2

Número de prueba: el número de la prueba específica que memtest está ejecutando actualmente. Hay muchos de ellos.

Recuento de errores: el número de errores de memoria encontrados.

Errores de ECC: número de errores corregidos por ECC. Su chipset/memoria no tiene ECC, por lo que este número no importa.

Si su memoria tiene algún número de errores superior a 0, querrá reemplazarla.

EDITAR: Las pruebas son los diferentes patrones que memtest escribe en la memoria. Escribe diferentes patrones en la memoria y los vuelve a leer para comprobar si hay errores, y utiliza diferentes patrones para poder probar todos los estados de todos los bits.

El recuento indica la cantidad de veces que el resultado leído nuevamente en memtest no coincidió con lo escrito en la memoria, lo que significa que hay un error en la porción de memoria que se está probando.

ECC es una tecnología de corrección de errores integrada en chips de memoria para servidores y estaciones de trabajo. La mayoría de los escritorios no admiten módulos de memoria con ECC integrado. Casi todos los servidores/estaciones de trabajo lo admiten y, por lo general, lo requieren. La cantidad de errores corregidos por ECC es la cantidad de errores que el chip ECC solucionó con éxito.

Respuesta3

Número de errores

Al realizar las pruebas, si la memoria falla en alguna de las pruebas, se incrementará la cantidad de errores. Si no recuerdo mal, cuenta la cantidad de direcciones que no pasaron la prueba.

Número de errores ECC

memoria ECCes un tipo especial de chip de memoria que se utiliza para evitar que los datos se corrompan. Su ECC Errscolumna cuenta cuántos problemas solucionó ECC.

(ECC es lento y costoso y es básicamente para sistemas de misión crítica que no se molestan en cambiar la RAM).

Número de prueba

Memtest realiza diferentes tipos de pruebas en su memoria, que se describen en laMemtest86sitio web. Solo como una traducción rápida y sencilla al inglés:

Prueba 0: Prueba de direcciones de los que caminan

Memtest escribirá 00000001en la primera ubicación de la memoria, 00000010en la siguiente, y así sucesivamente, repitiendo este patrón cada 8 bytes. Luego lee la memoria y se asegura de que el valor no haya cambiado. (Fuente)

Pruebas 1 y 2: Prueba de dirección de dirección propia

Memtest escribe cada ubicación de memoria con su propia dirección y verifica que el valor no haya cambiado.

La prueba 1 es secuencial y la prueba 2 es paralela (es decir, utiliza concurrencia).

Prueba 3 y 4Prueba de inversiones en movimiento

En esencia, esta prueba carga 0 en la memoria y luego

  1. toma cada ubicación de la memoria (comenzando desde la primera/más baja ubicación),
  2. y escribe lo inverso del patrón (creo que es un NO bit a bit, pero no pude encontrar ninguna documentación al respecto).

El objetivo aquí es intentar probar cada bit y sus bits adyacentes "todas las combinaciones posibles de 0 y 1".

La prueba 3 no utiliza concurrencia, mientras que la prueba 4 sí.

Prueba 5: Inversiones en movimiento, Pat de 8 bits

Esto vuelve a realizar el método de inversión en movimiento, pero esta vez con los 1 que caminan de la prueba 0 en bloques de 8 bits.

Prueba 6: Inversiones en movimiento, patrón aleatorio

Memtest utiliza números aleatorios en lugar de ceros o unos móviles.

Prueba 7: movimiento de bloque

Éste es divertido. Carga patrones en la memoria, los mueve en bloques de 4 MB y los verifica.

Prueba 8: inversión en movimiento, Pat de 32 bits

Igual que la prueba 5, pero en su lugar utiliza bloques de 32 bits. De hecho, este carga todos los valores posibles de 32 bits en cada ubicación.

Prueba 9: números aleatorios

Éste carga números pseudoaleatorios en la memoria y los verifica. Lo bueno del generador de números pseudoaleatorios es que no es muy aleatorio (si alguna vez ejecutó printf("%d", rand());un programa en C sin inicialización y obtuvo el 41 tan aleatorio, ya sabe a qué me refiero). Por lo tanto, lo verifica reiniciando el sembrador de números aleatorios y ejecutando el generador nuevamente.

Prueba 10: Módulo-X

Cada 20 ubicaciones, escribe un patrón (todos 0 o todos 1) y escribe el complemento en todas las demás ubicaciones, luego lo verifica.

Prueba 11: Prueba de desvanecimiento de bits

Este carga la RAM con todos los 1 (y nuevamente con todos los 0), espera 5 minutos y ve si alguno de los valores cambia.

información relacionada