Curiosity para curiosos

El Curiosity haciendo trompos en Marte

En esta entrada quería hablaros del Curiosity. Sí, ese robotico de 6 ruedas que está dando vueltas por Marte. Pero voy a hablar desde el punto de vista de un Ingeniero en electrónica con nulos conocimientos sobre exploración espacial, pero al que le intrigaba saber qué microprocesadores se usan en la exploración espacial y porqué.

Las primeras noticias que me hicieron pensar sobre esto son el montón de artículos que aparecieron comparando las especificaciones del procesador del Curiosity con las de cualquier SmartPhone, donde claramente siempre ganaba el SmartPhone.

Para tener un breve resumen aquí tenemos un tuit de Mikko Hypponen, especialista en seguridad informática, además de un tipo con una ironía más que fina. (Que por cierto fue mi jefe durante una temporada, bueno, no exactamente, pero trabajé en la distribuidora de sus productos aquí en España).

Comparadas así las especificaciones, la primera pregunta que nos viene a la cabeza es ¿Por qué no utilizan un microprocesador más potente?, que los hay, y bastante más potentes que los de un iPhone.

El primer motivo para no usar estos microprocesadores de última generación, es que no están preparados para la radiación que tienen que aguantar estos dispositivos. Y cuando hablo de aguantar, me refiero a que sigan funcionando sin errores. Por qué en el espacio exterior y fuera de la protección del campo magnético terrestre la radiación es muy intensa, de hecho parece ser que más de lo que se pensaba.

Estas radiaciones que podrían poner en peligro las misiones tripuladas a marte, como bien comenta @lauramorron en este fantástico post. También afectan y mucho a los sistemas electrónicos, por eso los microprocesadores utilizados deben ser resistentes a la radiación (Radiation Hardened). Por eso hay una serie de procesadores que se utilizan para salir al espacio exterior.

En “Los microprocesadores de las naves espaciales” de Daniel Marín (@Eurekablog) hace un repaso a los microprocesadores más usados en la carrera espacial, donde os recomiendo también leer los comentarios porqué hay algunos muy acertados.

Pero aún no se ha respondido a mis dudas, bueno un poco, se utilizan estos procesadores porque son resistentes a la radiación. Muy bien. Pero, ¿Por qué son resistentes a la radiación y mi móvil no?

Para intentar responder a esto, nos centraremos en el microprocesador que comanda al Curiosity que es el RAD750 de BAE Systems, basado en arquitectura PowerPC.

RAD 750

Este procesador utiliza tecnología CMOS, con canal de 25 micras, lo que está muy lejos de los 25 nanómetros de la  tecnología más puntera. Lo que permite una mayor inmunidad a la radiación, además de ser “Latchup-inmune“, es decir, previene el posible enclavamiento debido a la radiación que se produce por los transistores BJT parásitos. A pesar de estás “limitaciones” tecnológicas el RAD750 multiplica por diez la potencia de su antecesor el RAD6000

Además de las consideraciones de diseño físico implementa otros sistemas, como la protección de errores de la memoria interna y de los registros de las unidades aritmético-lógicas (ALU). Las unidades aritmético-lógicas son los bloques funcionales que forman parte del microprocesador que se encargan de realizar las funciones suma, resta, multiplicación, etc. y las funciones lógicas, AND, OR, etc.

Pero el Curiosity no solo es tolerante a fallos por su microprocesador, si no que lo es por el sistema completo, y de este sistema me gustaría destacar 2 elementos, la memoria SUROM y el Sistema Operativo.

SuROM

Las siglas SuROM corresponden con el acrónimo Start Up Read Only Memory, o lo que en castizo sería: Memoria de solo lectura utilizada en el arranque. Vamos lo que viene siendo la BIOS (Basic Input Output System) de cualquier ordenador. Aunque esta memoria en el caso del computador del curiosity tiene ciertas características interesantes.

Consiste en 256Kbytes de memoria no volátil que incluye el programa de carga del RAD750. Esta memoria esta organizada en bloques de 128Kbytes. Y se puede acceder a ella tanto desde el procesador principal (el RAD750) como de los procesadores que gestionan el bus o la interfaz de comunicaciones. Esto nos será útil en el caso de que el procesador principal se quede “colgado”.

Lo interesante es que la memoria está formada por palabras de 24bits, de los cuales 16bits son de datos y 8 bits para la corrección de errores. El código corrector nos permite en el caso de que se haya producido un solo error corregirlo, y nos permite detectar hasta 2 errores simultáneos.

La SuROM contiene software para realizar las siguientes funciones:

  • Rutina para cargar una imagen en la RAM de uso normal y transferir el control a dicha imagen.
  • Rutinas de inicialización en el caso de reset o apagado.
  • Rutinas de testeo para el RAD750 así como los controladores del bus.
  • Drivers para el acceso a los distintos bloques.
  • Rutinas de testeo de memoria.
  • Rutina de manejo de excepciones.
  • Cargador del Sistema Operativo.
  • Soporte para el software de depuración mediante el interfaz de comunicaciones.
  • Soporte para el software de depuración mediante el interfaz del bus.

Como se puede observar está pensado para llevar al sistema a un estado conocido o para poder detectar posibles errores o salir desde algún fallo. Algo que parece imprescindible cuando no podemos enviar nadie allí a ver qué ha pasado. ;).

De hecho son cosas que ya han pasado. El Curiosity ha tenido que pasar a modo seguro, o lo que es lo mismo, a un estado conocido desde donde se comienza a testear todo el sistema para ver donde ha podido estar el fallo y recuperar toda la información posible. Como se recoge en los siguientes enlaces:

Curiosity sufre un problema con su ordenador (Bitácora del Curiosity 23)

New Curiosity “Safe Mode” Status Expected to be brief

Curiosity en “modo seguro” por un problema con el ordenador de abordo

Pueden ocurrir errores, pero parece que de momento se recuperan, por supuesto debido a la redundancia (ya que no lo he comentado pero lleva 2 ordenadores exactamente iguales) y a estos “detalles” de los sistemas que hemos comentado.

Sistema Operativo

Otro de los detalles que hacen al ordenador de abordo del Curiosity tan tolerante a fallos es el sistema operativo. Aunque parezca mentira el sistema operativo usado no es Windows (una pena) si no uno llamado VxWorks, que es un sistema operativo comercial pero centrado en el uso para sistemas en tiempo real.

Que se centre en sistemas en tiempo real significa que debe responder rápidamente a cualquier petición externa de apoyo o reacción, es decir, si ocurre cualquier evento en la multitud de sensores o equipos que lleva abordo el Curiosity el sistema tiene que ser capaz de responder en el menor tiempo posible, lo que evitará que se pierdan datos, o que se caiga por un barranco ;).

Para conseguir esto tiene una serie de características  entre las que me gustaría destacar las siguientes:

  • Multitarea. Más que necesaria para toda la retaila de cosas que tiene que hacer el Curiosity a la vez, moverse, comunicarse, tomar datos …
  • Planificación Round-Robin. La planificación es la forma en la que se gestiona el acceso a los recursos del computador, memoria, cálculos, etc. para cada uno de los procesos que se ejecutan. La planificación Round-Robin, es la más sencilla ya que es simplemente una rueda de acceso donde se le va dando acceso a los recursos secuencialmente y durante un periodo de tiempo determinado. Esto permite varias cosas, primero que tengamos definido el tiempo que como máximo tardará un proceso en acceder al procesador, algo que es imprescindible cuando queremos tener un sistema de respuesta en tiempo real. Y segundo, que cuando se le acaba su tiempo se pasa al siguiente proceso, lo que nos hará más inmune al “cuelgue” definitivo del ordenador.
  • Respuesta rápida a interrupciones. Las interrupciones son eventos que se producen en el sistema y que reclaman la acción del procesador, que actuará llamando a la rutina software que se encargará de dicha llamada.
  • Entorno para el manejo de errores. Poco más que añadir debe tenerlo para asegurar la recuperación desde un error.
  • Protección de memoria. Implementa elementos (“semáforos”) para el control de acceso de memoria, evitando el acceso indebido a la memoria usada por otro proceso.

Resumiendo, que el Curiosity sea tolerable a fallos es debido a un conjunto de características tanto físicas, como es el diseño del microprocesador, carcasas de protección, etc. como de características software del sistema operativo. Además de contar con redundancia ya que trabajan dos sistemas en paralelo pudiendo pasar el control de uno a otro en cualquier momento.

Espero que todo esto os haya dado una perspectiva, que por lo menos a mi me interesaba, de las peculiaridades de los sistemas aero-espaciales.

¿Nos seguimos leyendo?

@guardiolajavi

Anuncios

4 comments

  1. Es muy interesante el artículo. No tengo el nivel técnico para corregir nada, pero también creo que una posible idea para hablar puede ser el mantenimiento de temperatura para el correcto funcionamiento de toda la electrónica, y la programación de software crítico.

    Aun así, el artículo está en línea con la divulgación de la que hablo últimamente en twitter, tecnológica y aplicada a la realidad para entender conceptos de ingeniería aplicada.

    1. Gracias por comentar, aunque es una pena que no puedas corregir nada, ya que hay errores seguro. Pero bueno a ver si viene alguien a iluminarnos. En cuanto al control de temperaturas, no tengo muy claro como se hará pero por las fotos que he visto del computador de abordo del curiosity no parece que sea un problema especial. O todo se lo dejan a la carcasa. Me imagino que en la superficie de Marte no será un problema difícil, lo que si me intriga es como lo solucionan en los satélites, pero por lo que sé es algo más “mecánico” o “constructivo” por los extremos contrastes entre la parte que recibe la radiación solar y la que está a la sombra.

      Si encuentro algo interesante lo sacaré.
      Un saludo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s