Alternativas para el HW de un sistema de Tiempo Real (I)

Una vez que conocemos lo que entendemos por Tiempo Real, que sabemos los diferentes tipos de sistemas que podemos encontrarnos y que hemos resumido sus características más importantes, pasemos a estudiar las alternativas que hoy en día tenemos a nuestro alcance para diseñar el hardware de un sistema de este tipo.

  • Arquitecturas comerciales: Suele ser la elección más sencilla y más barata, puesto que se trata de utilizar en el sistema el hardware comercial más extendido, conocido y con precios más ajustados. Tenemos dos opciones:
    • Procesadores de propósito general: La programación de los procesadores que llevan los PCs, servidores y portátiles actuales se puede realizar con lenguajes de alto nivel para los que existen multitud de compiladores. Por lo tanto, esta alternativa simplifica el desarrollo del software del sistema, aunque al tratarse de arquitecturas de propósito general, las optimizaciones que se podrán llevar a cabo en este software estarán limitadas.
    • Arquitecturas específicas: En este caso se escoge un hardware comercial pero de propósito específico. Un ejemplo serían los PLCs, aunque en muchos casos el hardware que incorporan es demasiado sencillo para afrontar ciertos proyectos. En estos casos están apareciendo con fuerza las tarjetas gráficas, que incorporan un procesador denominado GPU (Graphics Processor Unit) igual de potente que el de propósito general (la CPU) pero optimizado para cierto tipo de operaciones. Este procesador, al contrario de lo que suele pensarse, no sólo se puede utilizar para aplicaciones gráficas. Utilizando técnicas de GPGPU (General Purpose GPU), se puede aprovechar este procesador tan potente para multitud de aplicaciones, especialmente aquellas que manejan una gran cantidad de datos.

2 comentarios:

Unknown dijo...

Buenas tardes Marta:
Muchas gracias por abordar este tema que tan interesado nos dejo en las II Jornadas Técnicas de Telecontrol del Ciclo Integral del Agua.
Conozco de algún caso de sustituto de PLCs en donde el hardware se le ha instalado μCLinux (http://www.uclinux.org/index.html).En cambio me he totalmente desconocido a nivel de SCADA. Quisiera saber si conoces algún caso de Arquitecturas específicas que soporte algún sistema SCADA.
Muchas gracias.
Atentamente,
Fco Javier Cáceres.

Marta Beltrán dijo...

Hola Francisco.
He esperado a terminar la serie de entradas acerca del HW para tiempo real antes de contestar a tu pregunta.
Los entornos de ejecución más habituales para sistemas SCADA han sido los procesadores de propósito general (monoprocesador) hasta hece bien poco tiempo. Sin embargo, con la aparición de los procesadores multinúcleo y de los sistemas GeoSCADA (distribuidos geográficamente), las arquitecturas de memoria compartida y distribuida han adquirido una gran importancia en poco tiempo en el entorno SCADA.
En cuanto a las arquitecturas específicas, no sé de ningún sistema SCADA programado con GPGPU para aprovechar el HW de una tarjeta gráfica. Pero sí conozco varios ejemplos de sistemas SCADA a medida que se han implementado en un ASIC, y sobre todo, en FPGAs.
De hecho en la actualidad se está investigando bastante en esta combinación SCADA+FPGA, que como todo en informática tiene sus ventajas y sus inconvenientes.
Como puedes imaginar, al implementar un sistema SCADA a bajo nivel, se optimiza en gran medida el manejo de señales. Y al optar por una solución basada en FPGA, tenemos la posibilidad de la reconfiguración y de las optimizaciones de la solución "a medida". Pero por otro lado, no se trata de una solución estándar, por lo que aparecen problemas con los interfaces, el mantenimiento y el desarrollo son costosos, etc.
Si estás interesado en el tema, puedo tratarlo en alguna entrada futura.
Un saludo!.