Rendimientos en DRAM y otros Procesos Masivamente Redundantes

En este momento, estoy revisando la literatura de ingeniería eléctrica sobre los tipos de estrategias empleadas para producir de manera confiable sistemas altamente complejos pero también extremadamente frágiles como DRAM, donde tiene una matriz de muchos millones de componentes y donde una sola falla puede bloquear todo el sistema. .

Parece que una estrategia común que se emplea es la fabricación de un sistema mucho más grande y luego la desactivación selectiva de filas/columnas dañadas usando fusibles configurables. He leído[1] que (a partir de 2008) ningún módulo DRAM funciona y que para módulos DDR3 de 1GB, con todas las tecnologías de reparación implementadas, el rendimiento general va de ~0% a alrededor de 70% .

Sin embargo, ese es solo un punto de datos. Lo que me pregunto es si esto es algo que se anuncia en el campo. ¿Existe una fuente decente para discutir la mejora en el rendimiento en comparación con el SoA? Tengo fuentes como esta [2], que hacen un trabajo decente al discutir el rendimiento a partir del razonamiento de los primeros principios, pero eso es 1991, e imagino/espero que las cosas estén mejor ahora.

Además, ¿se sigue empleando el uso de filas/columnas redundantes incluso hoy en día? ¿Cuánto espacio de placa adicional requiere esta tecnología de redundancia?

También he estado mirando otros sistemas paralelos como pantallas TFT. Un colega mencionó que a Samsung, en un momento, le resultó más barato fabricar pantallas rotas y luego repararlas en lugar de mejorar su proceso a un rendimiento aceptable. Sin embargo, todavía tengo que encontrar una fuente decente sobre esto.

referencias

[1]: Gutmann, Ronald J, et al. Tecnología de proceso 3-d Ics de nivel de oblea. Nueva York: Springer, 2008. [2]: Horiguchi, Masahi, et al. "Una técnica de redundancia flexible para DRAM de alta densidad". Circuitos de estado sólido, IEEE Journal of 26.1 (1991): 12-17.

La redundancia de filas y columnas todavía se usa hoy en día. Se usó redundancia a nivel de bloque en la caché L3 de Itanium 2 (consulte Stefan Rusu et al., "Procesador Itanium 2 6M: frecuencia más alta y caché L3 más grande", 2004). Otra consideración para el rendimiento es el agrupamiento tanto por velocidad/potencia/temperatura de funcionamiento como por "capacidad" (p. ej., los multiprocesadores de chips se pueden vender con una variedad de recuentos de núcleos; incluso la DRAM con un alto número de defectos podría, en teoría, venderse como una capacidad media). parte).
fascinante, gracias. Mirando el diseño del caché, veo 140 subarreglos, cada uno con 2 subbancos, que a su vez tienen ocho bloques de arreglos de 96x256. Cada bloque tiene 32 bits. Lo que significa que hay, en total, 140*2*8*96*256*32 = 1,762x10^9 bits necesarios para producir 48x10^6 bits de almacenamiento. ¿Es esto correcto?
No, los 32 bits forman parte del bloque de 96x256 (12 vías de caché * 8 * 4 * 32 bits por línea de caché). También se debe tener en cuenta que algunos de los bits se utilizan para ECC, por lo que el caché tenía 6MiB de datos . (El uso de ECC introduce otra dificultad en el rendimiento bajo el agrupamiento. Los requisitos de ECC varían según la aplicación y el exceso de ECC se puede usar para admitir un voltaje más bajo (o frecuencia de actualización para DRAM) sin pérdida de datos para una parte de menor potencia, así como proporcionar corrección para la fabricación defectos (esto es más una consideración teórica ya que los factores de marketing generalmente no permiten tal flexibilidad).
gracias de nuevo. Esto es más para obtener una estimación del costo total del proceso de fabricación. Es decir, ¿cuánto espacio de placa adicional (como representante de los recursos físicos gastados) se requiere para alcanzar estos 6MiB? Trataré de estimar esto a partir del área ocupada por el caché L3 y me pondré en contacto con usted.
Así que supuse, a partir de este cuadro[1], que el área del dado era de ~400 mm^2 y de Rusu et. Alabama. Supongo que el área de la celda de bits era de 2,45 um^2. [1] también admite que el 50% del área de la placa es caché L3 y que cada subarreglo se comunica directamente con el bus. Eso significa que hay ~81x10^6 bits posibles, pero solo se utilizan 48x10^6. (No estoy seguro de cuál es el ecc, pero) ¿Suena razonable un factor de ~ 2? [1]: decus.de/slides/sy2004/22_04/3c08.pdf
El uso del área de celda de bits no tiene en cuenta la decodificación de filas y otros gastos generales. La sobrecarga de área de redundancia podría estimarse simplemente reconociendo que 4 de los 140 subarreglos son repuestos (un poco menos del 3 % de sobrecarga), ignorando la sobrecarga de enrutamiento adicional. También se debe tener en cuenta que se vendieron versiones de caché L3 de 3MiB, por lo que se permitió que el rendimiento para las versiones de 6MiB fuera menor. ( Supongo que el uso de transistores más grandes que el tamaño mínimo para las celdas SRAM, para una menor fuga, también podría disminuir ligeramente la tasa efectiva de defectos). 136 subarreglos usados ​​indican 8 para ECC (6+% de sobrecarga).
bien, gracias de nuevo por aclarar eso. Mi trabajo de análisis parece indicar que tener incluso 4 redundancias puede proporcionar un aumento muy grande en los rendimientos, especialmente en un sistema que tiene solo del orden de cien partes (si tomamos cada módulo como una parte discreta con una probabilidad de falla) , por lo que esto sigue siendo útil. Supongo que sin números sólidos en los rendimientos para versiones de caché de 6MiB, 3MiB, etc., todavía es discutible.
En general, nos referimos a "matriz" en lugar de "placa" cuando hablamos de semiconductores en lugar de PCB. 3% parece razonable, factor de dos absolutamente no.
@Mephistopheles Sí, todavía se emplean técnicas de redundancia, vea mi artículo de encuesta que revisa varios artículos sobre esto, junto con su alcance de mejora.

Respuestas (1)

Ningún fabricante publicará jamás datos de rendimiento a menos que tenga que hacerlo por algún motivo. Se considera un secreto comercial. Entonces, para responder a su pregunta directamente, no, no se anuncia en la industria.

Sin embargo, hay muchos ingenieros cuyo trabajo consiste en mejorar el rendimiento de la línea y el rendimiento al final de la línea. Esto a menudo consiste en el uso de técnicas como el agrupamiento y la redundancia de bloques para hacer que las pérdidas fuera de línea funcionen lo suficiente como para ser vendibles. La redundancia de bloques ciertamente se usa hoy en día. Es bastante fácil de analizar:

(bloques fallidos por parte)/(bloques por parte)*(bloques fallidos por parte)/(bloques por parte)

Eso le dará la probabilidad de que ambos bloques paralelos fallen. Dudo que termine con un rendimiento tan bajo como el 70%, ya que normalmente el 90% es el rendimiento mínimo aceptable.

Si bien aprecio su respuesta, @Paul-a-clayton proporcionó esta información y también pudo citar publicaciones reales (específicamente el Itanium 2) en los comentarios. Además, si bien la redundancia de bloques se analiza en esos documentos, dice "Este uso de subarreglos optimiza la utilización del área de troquel sin restringir el plano del piso central" sin mencionar la tolerancia a fallas. Si tiene documentos que propongan específicamente la redundancia de bloques como una herramienta para el tratamiento de errores, se los agradeceremos mucho.