Inicio Artículos de fondo Diseño de sistemas embebidos críticos con SRAM para la seguridad

Diseño de sistemas embebidos críticos con SRAM para la seguridad

895
0

Henrik Nyholm y Jacob Lunn Lassen nos explican los desafíos prácticos al implementar la detección de fallas en tiempo de ejecución para SRAM (Memorias Estáticas de Acceso Aleatorio) utilizando algoritmos de tablero de ajedrez.

Al diseñar sistemas embebidos críticos para la seguridad, las normas internacionales de seguridad son fundamentales para que seleccionemos los procesos apropiados y las técnicas adecuadas para detectar y evitar fallas peligrosas en el producto final.

Los estándares aseguran que no caigamos en los mismos pozos que nuestros compañeros ingenieros de seguridad antes que nosotros.

Sin embargo, el peligro de los estándares es que asumen que tiene un conocimiento detallado sobre el hardware subyacente, por ejemplo, un microcontrolador, lo que puede hacer que los ingenieros de seguridad menos experimentados implementen diseños inseguros.

Como ejemplo, el estándar IEC (Comisión Electrotécnica Internacional) 60730 recomienda el uso de una prueba de memoria de tablero de ajedrez para detectar fallas de CC en memorias variables para software de Clase B, que es más desafiante de lo que parece.

Este artículo describe cómo la diferencia no documentada entre el diseño lógico y físico de SRAM puede hacer que sin darnos cuenta implementemos pruebas de memoria como el algoritmo de tablero de ajedrez de forma incorrecta. La información necesaria normalmente no está disponible en la hoja de datos de los microcontroladores estándar, pero afortunadamente, existen algoritmos de prueba de memoria que no están influenciados por la diferencia entre el diseño lógico y físico de la SRAM.

Por qué probar la SRAM en busca de defectos en tiempo de ejecución

Las memorias SRAM obviamente son probadas en producción por el proveedor del circuito integrado y los productos con defectos no se envían a los consumidores. Aun así, los defectos de hardware aleatorios pueden aparecer y aparecerán durante la vida útil del IC, que es una de las razones por las que se requiere probar el hardware en un microcontrolador en tiempo de ejecución en aplicaciones críticas de seguridad.

La prueba de memoria del tablero de ajedrez

Los estándares de seguridad como IEC 60730 (H.2.19.6.1) sugieren que se puede usar un algoritmo de tablero de ajedrez para identificar ciertos defectos (fallas de CC) en SRAM para aplicaciones que deben cumplir con el nivel de seguridad de Clase B.

La prueba de tablero de ajedrez a menudo se selecciona porque cubre las fallas más probables en una SRAM y es relativamente rápida, lo cual es conveniente para minimizar el impacto en el rendimiento de la aplicación misma. Además de las fallas de CC, donde un bit se atasca permanentemente en un nivel alto o bajo, el algoritmo de tablero de ajedrez también puede detectar defectos, donde los bits vecinos se afectan entre sí.

Una memoria SRAM consta lógicamente de una serie de bits organizados en palabras. Las palabras suelen tener 8, 16 o 32 bits de ancho, pero también pueden ser más largas. Físicamente, los bits están organizados en arreglos, donde cada bit normalmente tiene ocho bits vecinos (consulte la Figura 1). Un defecto físico en un bit puede afectar a un solo bit para que se atasque alto o bajo (falla de CC), o el defecto puede estar en la separación de dos bits, en cuyo caso una celda agresora vecina (marcada en púrpura en la Figura 1) puede influir en una celda víctima (marcada en amarillo en la Figura 1). El escenario agresor-víctima se conoce comúnmente como falla de acoplamiento. Visto estadísticamente, es más probable que ocurra la falla de CC, pero aún es relevante para detectar las fallas de acoplamiento más probables en sistemas embebidos críticos.

Diseño de sistemas embebidos críticos con SRAM para la seguridad
Figura 1: Posibles fallas de acoplamiento entre bits vecinos.

Si una falla afecta un solo bit, de modo que el bit está atascado alto o bajo, puede revelarse escribiendo el valor uno, verificando el uno leyéndolo y luego escribiendo el valor cero y verificando el cero leyéndolo, como se ilustra en la Figura 1. Si, por otro lado, el defecto es una falla de acoplamiento entre dos bits vecinos, digamos las columnas de bits 9 y 10 en la fila 2, ciertos patrones, como todos los unos o todos los ceros, no revelarán el acoplamiento o falla ya que las celdas tienen el mismo valor durante la prueba.

Tales fallas de acoplamiento como las celdas vecinas (a los lados, arriba y abajo) tienen valores binarios opuestos. La Figura 1 (abajo a la derecha) ilustra que el del bit 10 ha contaminado el bit 9 y se revela la falla de acoplamiento ya que el bit 9 no tiene el valor esperado, cero.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.