Hacia Embedded World 2021: Episodio 5
Nota del editor: En el primer blog de esta serie de cinco blogs que conducen a la feria Embedded World 2021, episodio 1, se presentó una descripción general de Embedded World. En el episodio 2, Randall repasó su lenguaje de programación C. El episodio 3 se centró en cómo el uso de la programación orientada a objetos puede reducir la complejidad. El episodio 4 mostró cómo la medida fundamental de un buen diseño es su capacidad para reconfigurarse a medida que cambian los requisitos sin tener que volver a implementar los componentes básicos. En este último blog, episodio 5, se cuestiona el espacio en constante expansión que requieren los sistemas operativos y se aborda la descomposición del sistema antes de la presentación principal de Randall en Embedded World 2021.
En mi última publicación, presenté la opinión de David Parnas de que un sistema debe ocultar información detrás de su interfaz y que los sistemas deben descomponerse en módulos que se adapten fácilmente al cambio. También mencioné a un defensor moderno de este enfoque, Juval Löwy, quien escribió el libro Righting Software.
Este enfoque es diferente de la descomposición funcional, que posiblemente sea el enfoque más popular utilizado en la actualidad. Sin embargo, existe muchas pruebas de que el enfoque de Parnas es mejor. Entre estas razones está que un sistema diseñado para el cambio es un sistema más fácil de comprender. Es más fácil "asimilar" tal sistema y es más fácil recomponer dichos sistemas en nuevas implementaciones. Este es un concepto clave para aumentar la reutilización porque permite el acceso de los no expertos a la experiencia de otros. También es la oportunidad de ampliar los mercados de ingenieros integrados al crear influencia para que otros hagan lo que imaginan. Entonces, la medida fundamental de un buen diseño es su capacidad para reconfigurarse a medida que cambian los requisitos sin tener que volver a implementar los componentes básicos. De esta manera, la variación de los casos de uso centrales son simplemente interacciones entre los componentes básicos diseñados para casos de uso específicos y requisitos específicos.
Pero, por desgracia, existen responsabilidades y peligros en este enfoque. Entre ellos se encuentran la ineficiencia y el desperdicio. A medida que los sistemas crecen, naturalmente se vuelven difíciles de manejar. Los invito a leer este interesante blog de alguien llamado Nikita. Me complace informar que todavía está disponible en línea a partir de la semana 53 de 2020. Nikita dice:
”Un sistema Android sin aplicaciones ocupa casi 6 GB. Solo piense por un segundo en cuán obscenamente ENORME es ese número. ¿Qué hay ahí, películas en HD? Supongo que es básicamente código: kernel, controladores. Algunas cadenas y recursos también, claro, pero esos no pueden ser grandes. Entonces, ¿cuántos controladores necesita para un teléfono?
Windows 95 tenía 30 MB. ¡Hoy tenemos páginas web más pesadas que eso! Windows 10 tiene 4 GB, que es 133 veces más grande. Pero, ¿es 133 veces superior? Quiero decir, funcionalmente son básicamente lo mismo. Sí, tenemos Cortana, pero dudo que ocupe 3970 MB. Pero sea lo que sea Windows 10, ¿es Android realmente el 150 % de eso?
El chip M1 de Apple anunciado en noviembre de 2020 contiene 16 mil millones de transistores. Esto es enorme para los estándares actuales. También hay algunos FPGA enormes disponibles para diseñadores integrados. Mientras que el hardware y los programas informáticos de propósito general se han vuelto difíciles de manejar, lo mismo está sucediendo en el espacio integrado.
El procesamiento de señales digitales se desarrolló ya en la década de 1960 y se utilizó para procesar señales de radar. Esto fue antes de la llegada del microprocesador y la lógica programable. Lo que sucedió desde entonces es que hemos adoptado el uso de funciones que desarrolló otra persona: bloques de IP del proveedor de FPGA y sus revendedores de valor agregado y bibliotecas de software de todo tipo. Nos ha hecho más productivos, pero también ha ampliado nuestras soluciones. El problema es que es posible que su aplicación no necesite todas las funciones incluidas y es probable que no conozca todas las funciones incluidas (p. ej.: suites de pruebas integradas que el proveedor ha incorporado en el CI que está utilizando). Es más sencillo agrupar la funcionalidad predefinida e incluirla en el producto final. No vale la pena encontrar una solución más estricta porque lleva más tiempo implementar una solución.
Mencioné en mi último comentario el comentario de Löwy que un elefante y un ratón comparten básicamente la misma arquitectura. Esto me recuerda que mi ADN contiene la mayor parte de la genealogía de un plátano (90 %) y una mosca de la fruta (95 %). A pesar de que llevo estas fórmulas conmigo, las ignoro. Creo que esto les está sucediendo a los sistemas integrados. Solo estamos acarreando el equipaje adicional de funciones disponibles. Estamos diseñando nuestros sistemas integrados con marcos que parecen provenir de departamentos de TI (p. ej.: Microchip’s Harmony, Texas Instruments’ xDAIS, NXP’s MCUXpresso, y más).
Recientemente, leí un artículo de Kevin Morris en EE Journal que decía lo siguiente:
“Ni Xilinx ni Altera/Intel, a pesar de rondar el 80 % de la cuota de mercado combinada de FPGA durante las últimas dos décadas, han enviado la mayoría de los dispositivos FPGA. Esa distinción va para Lattice Semiconductor, y no por un pequeño margen. La razón, por supuesto, es que, en los últimos años, Lattice se ha centrado en el segmento de mercado de gama media y baja, mientras que las empresas de lógica programable más conocidas han luchado por la supremacía en las FPGA más grandes y caras, FPGA-SoC y componentes similares.
Este énfasis estratégico en sockets de menor costo y mayor volumen ha ayudado a Lattice a entregar miles de millones de FPGA en una amplia gama de sistemas en numerosos segmentos de mercado. Y, a medida que las capacidades de la tecnología FPGA han aumentado, Lattice se ha destacado detrás de dos grandes, llevando tecnología que se consideraba de alta gama hace solo unos años a aplicaciones mucho más limitadas en costos, y luego han llevado la tecnología en nuevas direcciones con soluciones prediseñadas que reducen significativamente el nivel de los equipos de ingeniería sin una gran experiencia en FPGA para aprovechar la tecnología".
Ingrese "microcontrolador" en el cuadro de búsqueda de DigiKey y verá una lista de más de 87,000 dispositivos únicos. Ingrese “FPGA” y verá que enumeran más de 25,000 dispositivos. Ahora mire la Figura 1. Muestra los tipos de microcontroladores comprados por los clientes. Tenga en cuenta que la mayor oportunidad es atender el mercado de 8 bits de gama baja. En estos días de ARM y RISC-V, esto puede resultar sorprendente, pero coincide con el artículo sobre Lattice.
Figura 1: Popularidad de tipos de microcontroladores.
Nuestro desafío, como ingenieros integrados, es resistir la tentación de inflar nuestra funcionalidad. Actel, ahora Microsemi, que es una división de Microchip, tenía una herramienta llamada gate gobbler. Por lo que sé, todavía existe. Esta herramienta eliminaría la lógica superflua. Es posible que necesitemos resucitar estas herramientas para permitir a nuestros usuarios dividir funcionalidades innecesarias.
Mi presentación en Embedded World proporcionará un ejemplo de descomposición de sistemas utilizando el enfoque de Parnas y argumentaré que el mercado de ingenieros integrados es amplio y está creciendo. Explicaré la perspectiva de reducir la complejidad para usar la funcionalidad de alguien en beneficio tanto de principiantes como de expertos. Argumentaré que esta oportunidad brinda un futuro fantástico. También explicaré qué han hecho las empresas de lógica programable para dañar sus mercados y qué se debe hacer para corregir las cosas.
Es importante que las empresas hagan que sus productos puedan ser utilizados por las audiencias más grandes. Al principio de mi carrera, una de las empresas automotrices de los EE. UU. realizó un despido masivo. Recuerdo haber leído un artículo que explicaba que, en ese número de personas despedidas, la probabilidad dice que despidieron al menos a algunos Edison, Ford y un DaVinci o dos. Es en mercados grandes y no calificados donde el próximo DaVinci comenzará su carrera. Necesitamos que esas personas aprovechen con éxito nuestra experiencia.
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum

