Ga naar de inhoud

Noticias

Logre el éxito empresarial cerrando la brecha entre software y hardware en sistemas integrados.

door Contec Americas 08 Feb 2023 0 opmerkingen
Achieve business success by bridging the gap between software and hardware in embedded systems

Las fases de diseño y creación de prototipos de soluciones tecnológicas suelen ser largas y críticas para el éxito empresarial. Las inversiones de capital iniciales pueden ser altas en estos proyectos. En consecuencia, ¡hay mucho en juego y expectativas! Dado que todavía sufrimos las consecuencias de la pandemia en términos de retrasos en los envíos y escasez de componentes electrónicos, en muchos casos las empresas están experimentando una enorme presión para llegar al mercado y enviar el inventario comprometido a tiempo.

También existe una batalla constante por los recursos de hardware porque las aplicaciones a menudo requieren capacidades de procesamiento cada vez mayores. Esto significa que el hardware probablemente estará sobredimensionado al principio y quedará obsoleto con el tiempo. Por lo tanto, deberá revisar su diseño para agregar constantemente más capacidades de hardware a sus productos tecnológicos y aumentar innecesariamente los costos y las inversiones.

Por último, no siempre es fácil encontrar personal experimentado y con conocimientos de sistemas integrados, hardware y software al mismo tiempo. En algunas empresas, ingenieros sin experiencia en sistemas embebidos lideran y desarrollan proyectos tecnológicos. Como resultado, podrían elegir kits de desarrollador (Jetson Nano, Arduino, Raspberry PI) debido a su familiaridad con esos sistemas y las características estándar que facilitan la integración con otros sistemas. Las placas de desarrollador tienen aplicaciones industriales únicas y puede leer más sobre ellas en esta publicación de blog. Pero este podría no ser el caso de la producción en masa.

Todos estos factores pueden influir negativamente en la decisión sobre la programación del lenguaje, la arquitectura de algoritmos y el desarrollo general del software de aplicaciones. A veces, la decisión se reduce a utilizar un sistema operativo estándar en lugar de uno personalizado o especializado con un código de collage Stack Overflow en lugar de un algoritmo propietario. Esto genera recursos sin explotar, componentes de hardware de gran tamaño, demoras innecesarias y costos adicionales de rediseño o recertificación. Entonces, al principio, esta podría parecer la solución rentable, pero es posible que descubra que no era la solución más rentable en el futuro. Lo que es peor, durante el funcionamiento normal, el hardware que funciona a plena capacidad puede provocar calentamiento, reducción del tiempo medio entre fallas y mayores costos de reparación.

Arquitectura del algoritmo

Analicemos el camino común que toman las empresas hacia la arquitectura de algoritmos. Desafortunadamente, algunos ingenieros que trabajan con sistemas integrados se sientan a programar sin ningún plan o diseño. El problema es que sólo descubrirás después del hecho si tu algoritmo es efectivo o ineficiente.

Vamos a describir dos ejemplos de algoritmos ideales: lineal y logarítmico. Supongamos que cada operación básica lleva un segundo. En el caso de los algoritmos lineales a medida que aumentan las entradas también aumenta el tiempo de ejecución, como se ve en la Tabla 1. Si este algoritmo se comportara de forma logarítmica, al tener más entradas, su tiempo de ejecución se mantendría estable (Tabla 2). Por ejemplo, los algoritmos de búsqueda binaria exhiben un comportamiento logarítmico.

Tabla 1. Relación entre entradas y tiempo de ejecución de un algoritmo lineal.

Entrada

Tiempo de ejecución

10

0.00000001

100

0.0000001

1 000

0.000001

1 000 000 000

1

Tabla 2. Relación entre entradas y tiempo de ejecución del algoritmo logarítmico.

Entrada

Tiempo de ejecución

10

3.3E-09

100

6.6E-09

1 000

1.0E-08

1 000 000 000

3.0E-08

Estos dos ejemplos no se suelen encontrar en la vida real porque los algoritmos difícilmente se comportan de forma lineal o logarítmica. El algoritmo "Clasificación estúpida" se puede utilizar como ejemplo de los resultados cuando no se realizó ninguna planificación o diseño antes de comenzar a programar. Se trata de un algoritmo de estructuración basado en una prueba aleatoria en un grupo de tarjetas con comportamiento factorial (Tabla 3). En el que si tenemos 100 entradas, tenemos 3.2E+183 años para resolverlo. Según la NASA, la edad del Universo es de 13,7E9 años, lo que implica que si ejecutamos el algoritmo en la fecha en que se creó el universo, aún estaría ejecutándose sin solución. Desea mantenerse alejado de los algoritmos factoriales, como el algoritmo de “clasificación estúpida”, para evitar desperdiciar recursos de hardware.

Tabla 3. Relación entre entradas y tiempo de ejecución de un algoritmo factorial.

Entrada

Tiempo de ejecución

Duración en años

10

10

3.171E-7

100

1.0E+191

3.2E+183

1 000

?

?

1 000 000 000

?

?

 

De hecho, el hardware tiene sus limitaciones. En general, las escalas de tiempo de los sistemas integrados son difíciles de comprender para los humanos. Por ese motivo, vamos a definir una escala más fácil de entender para este análisis. Para el procesador típico de 3,9 GHz incluido en las computadoras normales de 2014, podemos decir que un ciclo de CPU toma 1 segundo con los tiempos que se muestran en la Tabla 4. En esos casos, leer un archivo en el disco duro podría tomar, en el peor de los casos, 1,5 años, o leer un archivo en la memoria RAM podría tomar 32 segundos. Como puede ver, un algoritmo mal diseñado desperdiciará recursos. En consecuencia, podría pensar que necesita un hardware más robusto con mayores capacidades cuando necesite revisar cómo está desarrollando el software.

Tabla 4. Tiempos de ejecución de procesos regulares en una computadora en una escala que es más fácil de entender.

Actividad

Hora

Escala humana

Ciclo de CPU

0,256 ns

1 segundo

Caché L1

1,026 ns

4 segundos

Caché L2

3.077 ns

12 segundos

Caché L3

6,154 ns

24 segundos

R.A.M. Memoria

8,4 ns

32 segundos

Disco duro: mejor caso

2,9 ms

132 días

Disco duro: peor caso

12 ms

1,5 años

SDD

85 µs

3 días y 20 horas

Cambio de contexto

10 µs

10,8 horas

Cuántico

100 ms

12,4 años

 

¿Cómo se logra el éxito empresarial al desarrollar productos tecnológicos?

Con una cuidadosa arquitectura de algoritmo. Debe formar un equipo que incluya al menos un ingeniero con experiencia en sistemas integrados. Este profesional estará mejor equipado para diseñar algoritmos que se ejecutarán en un hardware específico. Básicamente, esta persona mejorará el software para adaptarlo mejor al hardware (y no al revés), lo que a su vez proporcionará un mejor retorno de la inversión y le ahorrará muchos dolores de cabeza operativos y de fabricación.

Un ingeniero de sistemas integrados elaborará estrategias, planificará y programará para evitar errores comunes al desarrollar software y podrá predecir las capacidades del hardware. Esto significa que los desafíos se pueden reducir y será más fácil lograr el éxito empresarial. ¡Quién sabe! Incluso podrías convertirte en el héroe de la Industria 4.0, el Internet de las cosas, la robótica o el procesamiento de imágenes en tu empresa.

Si quieres seguir leyendo sobre este tema, puedes consultar este blog. También puede consulte esta página para obtener más información sobre sistemas integrados.

Vorig bericht
Volgende bericht

Laat een reactie achter

Let op: reacties moeten worden goedgekeurd voordat ze worden gepubliceerd.

Bedankt voor het abonneren!

Deze e-mail is geregistreerd!

Shop de look

Kies opties

Bewerk optie
Back In Stock Notification
Vergelijken
Product SKU Beschrijving Verzameling Beschikbaarheid Producttype Andere details

Kies opties

this is just a warning
Login
Winkelwagen
0 artikelen