Errores de lectura de RAM localizada: ¿problema de chip o tiempo?

0

Actualmente estoy probando el hardware de una placa prototipo usando memoria DDR2, y obtengo errores de lectura de RAM al realizar una prueba de memoria.

Los errores ocurren de esta manera:

# Next iteration
ERR@ 00fd4ad4 got ffda0540 not ffda0560
# Next iteration
ERR@ 00dc9601 got 0042af73 not 0046af73
ERR@ 00f3bec8 got 002f862c not 002f86ac
ERR@ 00fd4ad4 got 0025fa80 not 0025faa0
# Next iteration
# Next iteration
ERR@ 00dc9601 got 0042af74 not 0046af74
ERR@ 00f3bec8 got 002f862d not 002f86ad
ERR@ 00fd4ad4 got 0025fa81 not 0025faa1
# Next iteration
# Next iteration

Tengo aproximadamente lo mismo en 2 placas, y me pregunto si podría tratarse de un error de voltaje / tiempo o si definitivamente es un problema de chip.

¿Cuál es tu experiencia en esto?

    
pregunta cJ Zougloub

2 respuestas

3

Casi siempre es culpa del tablero o de la sincronización. La RAM se prueba en la fábrica o casi nunca es el chip. Es más probable que tenga un problema de tiempo; Los problemas de voltaje afectarían a más células.

    
respondido por el Brian Carlton
1

Muchos programas de prueba de memoria están diseñados para maximizar la probabilidad de encontrar un problema en una cierta cantidad de pasos de prueba, y no son óptimos para diagnosticar cuál podría ser el problema. Es poco probable que pase una prueba de memoria a menos que (1) todas las operaciones de escritura en cada ubicación almacenen los datos correctos, (2) todas las ubicaciones continúen guardando los últimos datos almacenados, ignorando las lecturas y escrituras de otras ubicaciones, y (3) todas las operaciones de lectura Lea los datos correctos. Las pruebas de memoria detectarán fallas en cualquiera de los pasos anteriores, pero a menudo no están particularmente bien diseñadas para determinar qué paso falló (si el programa almacena 0x1234 en 0xABCD pero lee 0x89AB, es posible que la dirección 0xABCD no se haya escrito en 0x1234 , o que los datos correctos se almacenaron en el lugar correcto pero luego se sobrescribieron, o que los datos correctos se almacenaron (y aún se almacenan) en el lugar correcto, pero la operación de lectura no se recupera correctamente).

Para diagnosticar un problema, dado que no hay más que una lista de desajustes entre los valores esperados y de lectura, uno tendría que conocer la secuencia de operaciones de lectura y escritura utilizadas para una prueba, para ver si las condiciones de desajuste encajan en cualquier tipo de patrón. (por ejemplo, si hay una violación del tiempo de espera en los datos del ciclo de escritura, uno podría notar que los únicos errores ocurren cuando se realizan dos operaciones de escritura consecutivas y al menos algunos bits son "1" en la primera escritura y "0" en la segunda; todos los bits de errores observados en el primer valor escrito que lee "0" cuando deberían leer "1"). El simple hecho de conocer una dirección donde se detectó una falla de lectura, los datos esperados y los datos reales no ayudará mucho si uno no sabe qué otras operaciones se realizaron en direcciones similares.

    
respondido por el supercat

Lea otras preguntas en las etiquetas