TL; DR
El número más importante primero: el recuento de errores para una memoria saludable debe ser 0 . Cualquier número por encima de 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 lo recupera. Si los datos recuperados difieren de los datos almacenados originalmente, MemTest registra un error y aumenta el recuento de errores en uno. Los errores suelen ser signos de malas tiras de RAM.
Dado que la memoria no es solo 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 Test #
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)
- Rellene todos los sectores con patrón: aaaaaaaa
- Rellene 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, caminando, sin caché]
Prueba todos los bits de dirección en todos los bancos de memoria utilizando un patrón de dirección de caminar.
Prueba 1 [Prueba de dirección, dirección propia, secuencial]
Cada dirección se escribe con su propia dirección y luego se verifica la coherencia. En teoría, las pruebas anteriores deberían haber detectado cualquier problema de direccionamiento de memoria. Esta prueba debe detectar cualquier error de direccionamiento que de alguna manera no se haya detectado previamente. Esta prueba se realiza secuencialmente 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 con todas las CPU y con direcciones superpuestas.
Prueba 3 [Moviendo inversiones, unos y ceros, secuencial]
Esta prueba utiliza el algoritmo de inversiones en movimiento con patrones de todos unos y ceros. La memoria caché está habilitada aunque interfiere en algún grado con el algoritmo de prueba. Con el caché habilitado, esta prueba no lleva mucho tiempo y debería encontrar rápidamente todos los errores "duros" y algunos errores más sutiles. Esta prueba es solo una comprobación rápida. Esta prueba se realiza secuencialmente con cada CPU disponible.
Prueba 4 [Moviendo inversiones, unos y ceros, paralelos]
Igual que la prueba 3, pero la prueba se realiza en paralelo con todas las CPU.
Prueba 5 [Inversiones en movimiento, 8 bits pat]
Esto es lo mismo que en la prueba 4, pero utiliza un patrón de 8 bits de ancho de "caminar" y ceros. Esta prueba detectará mejor los errores sutiles en los chips de memoria "anchos".
Prueba 6 [Inversiones en movimiento, patrón aleatorio]
La prueba 6 usa el mismo algoritmo que la prueba 4, pero el patrón de datos es un número aleatorio y es un complemento. Esta prueba es particularmente efectiva para encontrar errores sensibles a la detección de datos difíciles de detectar. La secuencia de números aleatorios es diferente con cada pase, por lo que múltiples pases aumentan la efectividad.
Prueba 7 [movimiento de bloque, 64 movimientos]
Esta prueba enfatiza la memoria mediante el uso de instrucciones de movimiento de bloque (movsl) y se basa en la prueba burnBX de Robert Redelmeier. La memoria se inicializa con patrones de desplazamiento que se invierten cada 8 bytes. Luego, se mueven bloques de memoria de 4 MB utilizando la instrucción movsl. Después de completar 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 informadas son solo para el lugar 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 que falla siempre estará a menos de 8 MB de la dirección informada. Los errores de esta prueba no se utilizan para calcular los patrones de BadRAM.
Prueba 8 [Inversiones en movimiento, pat de 32 bits]
Esta es una variación del algoritmo de inversiones en movimiento que desplaza el patrón de datos a la izquierda un bit para cada dirección sucesiva. La posición del bit inicial se desplaza hacia la izquierda para cada pasada. Para utilizar todos los patrones de datos posibles, se requieren 32 pases. Esta prueba es bastante efectiva 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 para el número aleatorio, se puede crear la misma secuencia de números para una referencia. El patrón inicial se verifica y luego se complementa y se verifica nuevamente en la próxima pasada. Sin embargo, a diferencia de las inversiones en movimiento, la prueba de escritura y verificación solo se puede hacer en dirección hacia adelante.
Prueba 10 [Módulo 20, unos y ceros]
El uso del algoritmo Modulo-X debería descubrir errores que no se detectan al mover las inversiones debido a la caché y la interferencia de almacenamiento en búfer con el algoritmo. Al igual que con la prueba uno, solo se usan 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 y todos los cero.
Debido a que los sectores defectuosos a veces funcionan y no funcionan en otro momento, recomiendo dejar que MemTest ejecute algunos pases. Un pase completo es una serie de pruebas completadas que han pasado. (La serie de prueba anterior 1-11) Cuantos más pases obtenga sin errores, más precisa será su ejecución de MemTest. Por lo general, corro alrededor de 5 pases para estar seguro.
El recuento de errores para una memoria saludable debe ser 0. Cualquier número por encima de 0 puede indicar sectores dañados / defectuosos.
El recuento de errores de ECC solo debe tenerse en cuenta cuando ECC
se 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 costosa y es probable que solo se encuentre en las configuraciones del servidor. El recuento de ECC cuenta cuántos errores ha corregido el mecanismo de ECC de la memoria. ECC no debería tener que ser invocado para una RAM saludable, por lo que un recuento de errores de ECC por encima de 0 también puede indicar una memoria defectuosa.
Explicación de error
Ejemplo de Memtest que ha encontrado errores. Muestra qué sector / dirección ha fallado.
La primera columna ( Tst ) muestra qué prueba ha fallado, el número corresponde al número de prueba de la lista ya mencionada anteriormente. La segunda columna ( Pasar ) muestra si esa prueba ha pasado. En el caso del ejemplo, la prueba 7 no tiene pases.
La tercera columna ( Dirección errónea ) 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 la porción de datos. (0.8MB en el ejemplo)
Las columnas cuarta ( Buena ) y quinta ( Mala ) muestran los datos que se escribieron y los que se recuperaron respectivamente. Ambas columnas deben ser iguales en la memoria no defectuosa (obviamente).
La sexta columna ( Err-Bits ) muestra la posición de los bits exactos que están fallando.
La séptima columna ( Count ) muestra el número de errores consecutivos con la misma dirección y bits defectuosos.
Finalmente, la última columna siete ( Chan ) muestra el canal (si se usan múltiples 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 está cubierto en esta pregunta de Superusuario y su respuesta aceptada:
Utilice el proceso de eliminación: elimine la mitad de los módulos y vuelva a ejecutar la prueba ...
Si no hay fallas, entonces sabe que estos dos módulos son buenos, así que déjelos a un lado y pruebe nuevamente.
Si hay fallas, reduzca a la mitad nuevamente (ahora a uno de los cuatro módulos de memoria) y luego pruebe nuevamente.
Pero, solo porque uno falló 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 intercalación de memoria y esquemas de numeración de zócalos de módulos de memoria deficientes por parte de algunos proveedores de placas base, puede ser difícil saber qué módulo está representado por una dirección determinada.