Queridos lectores:
Una vez más, Beamspot nos ofrece una nueva entrega de su serie "Las Guerras COB". Esta semana nos explica la diferencia entre diversos nichos de producción de semiconductores, y cómo se han alcanzado ciertos límites en la complejidad y capacidad de mejora. Con las 3 partes anteriores, estamos en mejor situación para comprender el futuro de la producción de semiconductores.
Les dejo con Beamspot.
Salu2.
AMT
(enlace a la 3ª parte).
Las Guerras COB. 4ª parte.
Velocidad WARP.
Prólogo.
Lo primero que le viene a la mente a uno cuando le hablan de la velocidad de la luz, es Einstein, la teoría de la relatividad, y las naves espaciales, con su ‘hiperespacio’ para ir más rápido aún que ese límite físico.
Por supuesto, eso pertenece al campo de la ciencia ficción, y parece que ese límite está muy lejos actualmente como para preocuparnos, y que, cuando llegue, encontraremos una manera de ‘doblar el espacio’ o de ‘arrugarlo’ y así alcanzar velocidades WARP, como lo denominan los Trekkies.
Sin embargo, los efectos relativistas y el límite de la velocidad de la luz nos lo encontramos cada día de forma cotidiana. Usted mismo lo está ‘padeciendo’ en el momento de leer esto: la electrónica utilizada en la informática y la transmisión de video al monitor, por poner un par de ejemplos, se han topado con este efecto hace varias décadas. De hecho, las Leyes de Maxwell trabajan ya con efectos relativistas y preceden a la teoría de Einstein.
De hecho, el WiFi y demás comunicaciones radio, utilizan antenas, que son un caso práctico de relatividad aplicada a la electricidad.
Todo eso forma un límite complicado y que es obviado, ignorado por mucha gente, empezando por ingenieros electrónicos mismamente, pero cuyo alcance va mucho más allá.
Aunque en esta entrada retomaremos el hilo dónde se dejó en la pasada entrada, pues es la continuación, el hecho de explorar los últimos avances tecnológicos en el mundo de los semiconductores nos llevará precisamente a visitar estos y otros límites, así como a ciertas conclusiones y conceptos importantes para entender la escasez de semiconductores.
Con esta entrada, pues, se llega al final de la explicación de las ‘piezas principales’ que se mueven en este ‘tablero de juego’ que intentamos entender.
State of the Art.
Todos los procesadores y derivados, funcionan a una cierta velocidad. Para conseguir esto, utilizan un reloj de sistema que ‘marca el paso’ al cual las instrucciones de programa van desfilando por el procesador.
Este reloj de mide en ciclos por segundo o sus múltiplos, MegaHercios (MHz) o GigaHercios (GHz), y es la frecuencia máxima en pulsos de reloj a la que puede trabajar ese procesador. Mega para millones, giga para miles de millones. Que se dice rápido.
Cuando salió el primer PC de IBM, el reloj de sistema iba a la extraña velocidad de 4,77 MHz. Extraña por no ser un número ‘redondo’, pero su razón era porque era un múltiplo necesario de la velocidad de comunicación del puerto serie base con el que se comunicaba con el mainframe (pensad que estaba diseñado para ser utilizado también como terminal ‘inteligente’).
El básico microcontrolador 8051 iba a la ‘increíble’ velocidad de 12 MHz.
Sin embargo, el funcionamiento interno de esas CPU’s implicaba que cada instrucción necesitase una serie de pasos para ser ejecutada, 12 por ejemplo en el 8051, lo cual implicaba que como máximo ejecutaba una instrucción cada 12 ciclos de reloj o lo que era equivalente, 1 MHz de instrucción, generalmente llamado 1MIPS (1 Millón de Instrucciones Por Segundo).
Obviamente, la punta de lanza de la tecnología iba en dirección de aumentar la frecuencia de reloj a base de reducir los elementos que la limitaban: el tamaño de la puerta de los MOSFET internos.
Vamos, el famoso nodo de fabricación.
Además, se trabajó en el sistema interno de ‘pasos’ del procesador, para que las unidades que los ejecutaban funcionasen de forma independiente y en paralelo. Lo que ahora se conoce como piping, que básicamente consiste que mientras la instrucción 1 está en el paso 12 en la estación correspondiente, la instrucción 12 está en la estación 1 ejecutándose el primer paso.
Eso permitía que se llegase cerca de 1MIPS por MHz, es decir, que con esa solución el 8051 daría aproximadamente 12MIPS a los mismos 12MHz.
Este sistema se debe a que por aquellos entonces las arquitecturas internas de los procesadores de juego de instrucción complejos (CISC en su acrónimo anglosajón) eran eso, complejos, y requerían muchas etapas diferentes, superando las 12 en varios casos.
Por contrapartida, se empezó a trabajar en sistemas más sencillos que necesitasen muchas menos etapas, del orden de dos o tres, pero en base a ejecutar instrucciones más sencillas. Es la arquitectura RISC o de juego de instrucciones reducido.
La idea es quitar esas instrucciones complicadas que lo hacían todo más complejo, pero que se usaban rara vez, por sólo las instrucciones necesarias para los cometidos básicos, de tal manera que la complejidad pasaba al programa (que necesitaba ahora más instrucciones, un programa más largo) para hacer esas cosas complicadas.
Sin embargo eso permitía que las cosas sencillas, que constituyen la mayor parte del programa, se ejecutasen de forma más rápida, aunque las cosas complicadas fuesen más lentas, con una ganancia neta de velocidad.
Gracias a estos tres puntales (reducción del tamaño del nodo, pipelining, pasar de CISC a RISC), se ha conseguido mantener un ritmo de evolución enorme en cuanto a la velocidad de procesamiento o potencia de cálculo.
Eso se hizo famoso con la Ley de Moore: cada dos años se dobla la potencia de cálculo.
De hecho, hace ya años que se ha pasado de 4,77MHz a más de 4GHz, una ganancia del orden de 1000 veces, sólo en cuanto a velocidad, y básicamente, gracias a la reducción de nodo.
Pero esa velocidad de 4GHz hace ya tiempo que se ha establecido como límite.
Eso implica que la Ley de Moore hace ya tiempo que se ha ‘ralentizado’. Y si no se ha parado de hecho, es porque se ha ido desarrollando el pipelining de otra forma: poniendo más cores, añadiendo redundancia en forma de hyperthreading (que es duplicando parte del procesador sin llegar a hacer un core doble), las memorias Double Data Rate (DDR) y añadiendo complejidad al diseño electrónico.
De hecho, lo primero que se encontró con ‘problemas’ de velocidad, fueron las memorias, sobre todo debido a que en ese campo, en lo que se trabajaba era en aumentar el tamaño: de mi primer PC con 256KB de DRAM, a los habituales 8 – 16 GB de DDR, la ganancia ha sido de millones, no de mil. Pero ese incremento de tamaño ha implicado el incremento de complejidad, que es, una vez más, lo que limitó la velocidad real de las memorias, a pesar de las ganancias por la reducción de nodo.
De hecho, las mejoras esperadas en la reducción de nodo hasta los 2 – 3 nm, no se van a traducir en mayor velocidad, sino sólo en mayor tamaño de memoria/menor precio por GB.
Algo similar ha ocurrido con el cambio de CISC a RISC. El aumento de complejidad de la informática hoy en día, significa que cada vez el procesador hace cosas más complejas de forma más habitual, incluso algunas de ellas de forma mucho más repetitiva. Jevons aplicado.
Eso ha derivado en el uso de HW específico para desarrollar ciertas cosas que generalmente se hacían por SW, pero tan a menudo que vale la pena gastar algo más de electrónica para eliminarlas o reducirlas del programa.
Aunque suene críptico, es fácil de entender: la CPU se pasaba mucho rato dibujando rectángulos en la pantalla, y rellenándolos de color, algo que es, desde el punto de vista algorítmico, muy simple, repetitivo, pero que consume mucho tiempo de procesamiento dado el tamaño de las pantallas (en puntos o píxeles).
Así pues, se partió en dirección opuesta a los RISC/CISC: se puso un ‘subprocesador de vídeo’ o ‘acelerador gráfico’ que no es más que electrónica específica que hace ciertas tareas muy sencillas, particulares y concretas de forma autónoma sin necesidad de utilizar preciosos ciclos de CPU. Ese marca el nacimiento de las GPU.
De la misma forma, se añadieron (y eso ya viene de los tiempos del viejo PC) subprocesadores o coprocesadores matemáticos que ejecutan operaciones que generalmente son complejas, como la raíz cuadrada, trigonometría, exponenciales, convoluciones, matemática en coma flotante, etc.
Es decir, se añade, una vez más HW específico para hacer funciones complejas (es decir, de cierta forma, se vuelve al CISC aunque el procesador principal sea RISC) que hagan esas partes largas del programa que antes hacían las instrucciones complejas de los CISC.
Además, se añaden prestaciones típicas de lo que eran DSP’s, es decir, los procesadores digitales de la señal que básicamente eran machacanúmeros, sistemas dedicados a hacer muchos cálculos matemáticos relativamente complejos (cuadrados y raíz cuadrada a menudo, aunque lo básico era sumar y multiplicar, lo que se llama operación MAC – Multiply And Accumulate), pero encima de forma cíclica, y de forma automática (dicho en jerga informática, un bucle que repite la misma operación matemática n veces).
Esto dio pié a muchas cosas. Una de ellas son las tarjetas gráficas. Otra, es lo que se llama máquinas vectoriales o de Una Instrucción sobre Múltilpes Datos (SIMD), que luego se amplió a lo que se llama Múltiples Instrucciones sobre Múltiples Datos. (MIMD).
Tampoco es que eso sea nuevo, los CRAY ya implementaban esto hace décadas, pero utilizando muchos chips. Ahora todo esto está contenido en uno solo.
Toda esta complejidad se unió para llegar a lo que quizás fue otro de los últimos puntos de inflexión en el desarrollo de potencia de cálculo: los procesadores gráficos o GPU. Los aceleradores de vídeo.
De ahí, y dadas las nuevas demandas gráficas, se llegó a la descompresión de video, de audio (MPEG, MP3 que es una sub parte del MPEG), y luego para el renderizado o creación de imágenes virtuales, especialmente para el gaming (los friquis de los videojuegos).
Las tarjetas de video especializadas en creación de imágenes sintéticas repiten de forma constante ciertos algoritmos, la mayoría basados en el mismo concepto de bucle repetitivo con cierta matemática sobre un gran grupo de datos.
Es decir, en el fondo, son DSP’s muy potentes, pero que ejecutan siempre las mismas operaciones matemáticas que, en muchas ocasiones, son relativamente parecidas a las que utilizan los grandes sistemas de procesamiento matemático, como por ejemplo, la metereología, o la simulación mecánica o electrónica en ingeniería. Y no llevan sistema operativo.
Eso llevó a que muchas de las nuevas necesidades de procesamiento para ciertas aplicaciones, pudiesen beneficiarse de estas aceleraciones HW.
Obviamente, la ofimática no es una de ellas.
Pero la ingeniería (recordemos eso del diseño hecho por ingenieros, para ingenieros) sigue demandando mucho, especialmente la mecánica, que hace mucho uso del 3D, renderizado, etc.
Eso hizo que los ingenieros tuviesen una cierta nVidia de los gamers, o, más habitualmente, que muchos ingenieros que también eran gamers, pidiesen el poder utilizar la potencia de gaming en sus trabajos.
Pero los procesadores de renderizado están, o, mejor dicho, estaban, demasiado especializados en ciertos algoritmos, eran demasiado CISC para decirlo de alguna manera.
Así que ciertos fabricantes empezaron a optar, de nuevo, por un nuevo ciclo de ‘simplificación’ en base a convertir esos sistemas ‘rígidos’ en sistemas más ‘simples’ que pudiesen ejecutar otras operaciones similares en algoritmos similares, pero para otros usos, es decir, los hicieron más RISC.
Esa potencia de cálculo semiespecializada que ahora cubría dos vastos campos, gaming e ingeniería varia (por no mencionar simulaciones matemáticas y compañía), llamó la atención de otro sector muchísimo más metido en todo este campo: el de los informáticos. Especialmente, de los que se dedicaban a la Inteligencia Artificial (de ahora en adelante IA).
Hay que entrar en terrenos personales aquí para explicar ciertos rasgos necesarios para comprender los siguientes pasos.
Digo personales porque son rasgos de personalidad típicos (estereotipados, muy ‘simplificados’, de ‘brocha gorda’) que son más una ‘deformación profesional’, una cierta ‘moda’ o ‘estilo’ muchas veces ‘imprimado’ por el proceso formativo y el nicho laboral más que por la persona en sí misma. Llamémosle, ‘filosofía propia del puesto’ a ese concepto más que algo estrictamente personal o de la persona.
Quiero recalcar y dejar claro, que la variedad y diversidad son enormes y que estas pinceladas no son en absoluto sobre personas.
El asunto, es que los ingenieros tendemos a centrarnos en cosas concretas, particulares, en muchas ocasiones, únicas, mientras que la gente metida a informática, especialmente fuera de las especialidades más ‘oscuras’ de la informática de sistemas, se centran en abstracciones, va en la dirección contraria.
De hecho, el que esto suscribe, lleva décadas observando cómo incluso en la ingeniería se está tendiendo cada vez más hacia la abstracción (y simplificación), probablemente por el tirón de la informática, por no mencionar otros sesgos tanto culturales como técnicos y personales.
Esa tendencia, sin embargo, es contraproductiva en mi triste y poco objetiva opinión, hasta el punto de convertirme en un ‘talibán’ en cuanto a ciertas abstracciones que se han impuesto en ingeniería, y que son una traba.
Dado que esa traba es relevante, precisamente, esta percepción (repito, subjetiva) viene muy a cuento.
Dado el enorme incremento de la complejidad, no sólo desde sus inicios, sino con su aceleración (que se está frenando) durante la primera década de este siglo, se ha hecho demasiado difícil el conocer las ‘interioridades’ de la electrónica sobre la que se trabaja.
Además, la increíble velocidad a la que se producen los cambios, en el momento en que uno llega a dominar esas particularidades, el chisme en cuestión ya está más que obsoleto. Con lo que no vale la pena llegar a profundizar en las posibilidades que trae la máquina en concreto.
Además, el incremento enooooorme de complejidad del programa/sistema, hace que lo que antes hacía un ingeniero, ahora requiera un grupo inmenso de programadores de seguir con esa filosofía.
No sólo eso. Hace falta mucha automatización para simplificar y reducir el esfuerzo necesario para hacer lo que antes se hacía a mano. Por ejemplo, los compiladores son mucho más eficientes, los sistemas operativos permiten más filigranas, los procesadores permiten más tareas y el procesamiento más rápido, etc.
Todo eso lleva a uno de los conceptos clave que forman parte básica de todo informático que se precie, hasta el punto de ser ‘invisible’ para la gran mayoría de los mismos.
Se conoce por el infame (por otras razones) nombre de HAL o Hardware Abstraction Layer. Capa de abstracción de hardware.
Para los cinéfilos que peinamos canas (o nada en absoluto), mezclar HAL e IA en la misma frase nos causa escalofríos.
La idea es simple: que un mismo programa se pueda ejecutar sobre varios ordenadores DIFERENTES sin que el programador necesite saber ni las particularidades ni las diferencias de dichos ordenadores.
Eso generalmente, lleva a la estandarización de funciones, interfaces, etc. En buena parte, es lo que proporcionan los sistemas operativos utilizados en los ordenadores personales (Windows, Linux,
macOS, Android WebOS, etc), teléfonos móviles, hasta televisores…
Es muy práctico y tiene muchas ventajas para los desarrolladores.
Pero es sumamente ineficiente.
Por ejemplo: bajo un HAL simple y efectivo como el utilizado por el Arduino, una operación de poner a 1 e inmediatamente volver a poner a 0 un pin (para encender un LED, por ejemplo), tarda como 50 ciclos de reloj y un porrón de instrucciones. Hacer lo mismo en C, sobre el mismo procesador, pero pasándose por el forro el HAL tarda TRES ciclos de reloj, tres instrucciones. En ensamblador, el resultado es exactamente el mismo. 20X en velocidad.
Hacer algo similar en un PC, con el eficiente C#, caso particular personal, para implementar un puerto I2C bit banged sobre el (obsoleto) puerto paralelo, tardaba MILES de ciclos de reloj, con centenares de llamadas de función, capas de SW, capas HAL, Sistema Operativo (Windows), llamadas a drivers a través de wrappers, etc.
Por supuesto, un PC iba miles de veces más rápido de CPU que el AVR del Arduino. Sin embargo, el PC apenas conseguía una velocidad de comunicación de 16 – 17 kbits por segundo, mientras que el AVR iba tranquilamente a 400 – 500, 25 veces más rápido (y con una CPU a 16MHz, un programa mucho más corto, y muchísima menos memoria).
Esto ha llevado, desde tiempos inmemoriales, a una ineficiencia incentivada y beneficiosa para los fabricantes y desarrolladores, pero perjudicial para los usuarios, ya que necesitan sistemas más potentes, con más recursos… para hacer básicamente lo mismo.
El ‘code bloating’ es otra forma de obsolescencia programada.
Hasta que nos estrellamos con el muro de la relatividad.
Ya he explicado que la velocidad en cuanto a MHz lleva tiempo estancada. Se ha esquivado el frenazo brusco tirando de procesamiento paralelo: aceleradores gráficos, coprocesadores, y luego, al ir empeorando la situación, el aumento de núcleos con la idea de ir repartiendo trabajo.
Ese reparto de trabajo en núcleos es un resultado obvio de la problemática expuesta del code bloating: el aumento de ‘tareas’ que se tienen que ejecutar a la vez para que todo el sistema operativo y el HAL subyacente funcionen.
Al haber tantas tareas (frente a la única del viejuno MSDOS) que ejecutar, lo habitual, lógico y lo que ha sido la respuesta, el ‘truco’ es meter más procesadores donde cada uno se encarga de alguna tarea, trabajando todos a la vez. El reparto de tareas resulta relativamente sencillo… si hay pocos núcleos.
Pero todo tiene un límite, y en lo que respecta a ordenadores personales, se está llegando ahí.
Afortunadamente, para videoconferencias, ver gatitos por internete, escribir artículos en Word, o usar el ‘complicado’ Excel para echar las cuentas de la casa, vamos mas que sobradísimos desde hace varias generaciones de sistemas operativos. Un ‘viejo’ ordenador con el Windos XP va más que sobrado.
De hecho, se están reutilizando muchos viejos ordenadores con sistemas operativos más livianos como el Linux Mint, que permiten hacer lo mismo que los nuevos más potentes pero con muchos menos recursos. Básicamente gracias a una cosa: la simplificación de las labores y el ‘recorte de grasa’ del code bloating (en bastantes ocasiones, basado en sistemas antipiratería, de supervisión de utilización del programa – casi spyware sin llegar a serlo, etc).
Pero hay cierto campos en los que esta ineficiencia ya llega a ser prohibitiva. Hay ciertas aplicaciones donde hace falta hilar fino, muy fino, para sacar todo el jugo posible de la máquina, precisamente porque necesitan máquinas muy potentes para hacer esas cosas particulares… o porque ahora se intenta pasar esas aplicaciones que se han desarrollado en sistemas muy potentes, a sistemas mucho más ligeritos.
Me refiero a la IA y al Big Data, dos campos diferentes pero familiares entre sí.
La aparición de sistemas multiprocesadores con gran capacidad para ejecutar una misma rutina sobre gran cantidad de datos, esos mismos que se pusieron en las tarjetas gráficas para acelerar no sólo los juegos, sino los cálculos de ingeniería, ahora resultaban ser muy útiles para ejecutar redes neuronales, puesto que el algoritmo que ‘ejecuta’ la neurona es sencillo y repetitivo, de naturaleza similar (en el fondo, parece ser una rutina DSP sobre varias señales).
La IA, en el fondo es más ‘caja negra’ que casi ningún otro desarrollo informático, el summum de la abstracción.
Además, el volumen de datos que procesan son ingentes, muy superiores a nuestra capacidad para entender siquiera dicho volumen. De ahí su uso exhaustivo en el Big Data, aunque no exclusivo (muchos algoritmos de Big Data, que en realidad no son tal, son muy conocidos, y habitualmente de naturaleza estadística o de DSP).
En estos casos, hace falta que la eficiencia sea la más alta posible. Especialmente, debido a la limitación relativista a la que se ha aludido varias veces en este escrito.
Eso lleva a mezclar agua y aceite. A hacer en HW concreto un algoritmo SW abstracto que muchas veces desconoce hasta el mismo programador.
Me refiero a lo que es la tecnología punta o estado del arte de los mega ordenadores: la supercomputación reconfigurable masivamente paralela, similar a la menos potente computación con tarjetas graficas o con circuitos integrados específicos.
Si la primera es la punta de lanza, la segunda es la que se utiliza hoy en día mayormente para el Big Data, y la tercera, para casos muy específicos, como el minado de criptomonedas.
De hecho, para ser más precisos, podríamos decir que la primera es la tecnología de punta de I+D de sistemas de IA y Big Data, donde se desarrollan aplicaciones y se entrenan IA’s, que luego se ejecutan una vez optimizadas y entrenadas en las segundas, o, para casos muy concretos y establecidos, en las terceras.
Tal es el caso de las criptomonedas, que es algo más que desarrollado y fijo como para poder ser implementado de forma fácil, ‘sencilla’ y muy eficiente en un ASIC.
Pero eso implica que ese chip SOLO se puede usar para minar criptomonedas.
Eso no es nada nuevo: gran cantidad de protocolos de comunicación utilizan este concepto, como el MOST de la automoción, por poner un simple ejemplo.
Sin embargo, el Big Data y otros tipos de procesamiento, necesitan una cierta flexibilidad en cuanto al programa, no puede ser fijo, igual que los datos de aprendizaje no pueden serlo. Por eso hace falta el procesamiento más flexible en base a sistemas basados en procesadores gráficos tipo Tegra de nVidia: el ejemplo más clásico aquí es el de los sistemas de conducción autónoma.
En esta aplicación concreta, el ordenador de IA a bordo del coche básicamente ejecuta un programa ya entrenado. Los resultados, o más habitualmente, las diferencias e incoherencias del mismo, son enviados a una sede central ‘maestro’ para seguir entrenando a estas mismas IA’s utilizando un sistema mucho más potente, que luego ‘enseña’ al resto de IA’s repartidas en los coches mediante actualizaciones, y a las nuevas producciones.
Por eso varios fabricantes de sistemas de conducción autónoma, como por ejemplo Continental, han adquirido grandes superordenadores o centros de computación sólo para ejercitar las IA’s que comercializan.
Pero el frente más peliagudo, es el de reconocimiento de imagen. En este caso, la idea es que la IA corra en la misma cámara, en un pequeño sistema autocontenido, y limitado. Este sistema, para poder dar el máximo rendimiento, necesita de la computación paralela ‘semimasiva’ y reconfigurable que se utiliza en los grandes superordenadores como el Blue Gene, pero a una escala mucho más reducida.
De nuevo, la idea es meter toda la aceleración posible por HW, que lo ejecuta de forma mucho más rápida, mediante el uso de FPGA’s que se pueden afinar más en cuanto al uso de HW que las GPU’s. Esa es precisamente una de las razones por las que se utilizan como coprocesadores.
Es más, el desarrollo de circuitos y algoritmos HW para FPGA es algo que conlleva mucho procesamiento en sí mismo, ya que es bastante más complejo que un compilador de SW, especialmente si el HW para el que tiene que compilar ya está precisamente pensado para un uso óptimo (es el caso de los RISC).
Pero a pesar de las ventajas (una FPGA puede llevar más de 12000 unidades MAC, o incluso MACs avanzadas, haciendo entre dos y una docena de operaciones matemáticas a la vez, además de otras tareas cada una de esas unidades, todas en un sólo ciclo de reloj, teóricamente son más capaces que las GPU para la mayoría de casos), los inconvenientes son demasiados como para ser usados como la solución ‘definitiva’, siendo muchas veces dejadas de lado en favor de las menos eficientes GPU’s de propósito general.
Aquí el problema es que hace falta alguien que sepa ‘concretar’ un circuito (por muy ‘virtual’ que sea) para ejecutar un algoritmo ‘altamente abstracto’. Una persona que a la vez sea ingeniero electrónico muy metido en diseño digital concreto, y a la vez, un programador muy avanzado en algoritmos abstractos de IA y similares.
Para los friquis del Linux: Por no hablar de lo que implica en cuanto a SW el tener que hacer un Device Tree específico para cada componente (recompilando el Kernel) que encima puede cambiar en el tiempo sin necesidad de reiniciar el Linux. Ese es uno de los aspectos oscuros del SW que hace que este tipo de aplicaciones se estén abandonando.
Poco lo he padecido, ya que aún me quedan canas de la experiencia...
Vamos, que esto es algo así como mezclar agua y aceite… Y resulta ser un ‘límite humano’.
Volviendo a la problemática relativista, hay más puntos limitantes que complican el diseño electrónico propiamente dicho, en la parte concreta.
Todos los elementos que tienen que trabajar a gran velocidad y acoplados entre sí, como por ejemplo la CPU con la memoria, o con buses de comunicación de alta velocidad (o sea, video y red de comunicaciones) se encuentran con que a 1GHz el reloj apenas se desplaza 15 cm en un cable, 10 cm en un circuito impreso. Si subimos a 2 GHz, bajamos esta distancia a la mitad: 5cm en un circuito.
Eso implica que no podemos poner la CPU y la memoria donde nos den la gana. Es más, todas las señales que van de uno a otro componente tienen que tener una longitud similar, y generalmente estipulada con un máximo y un mínimo.
Y eso no es todo: la alimentación sufre al mismo ritmo, pero con una intensidad mayor, lo que genera toda una ‘ciencia esotérica’ con los ‘místicos condensadores de desacoplo’, (la foto de abajo presenta los condensadores de desacoplo -marrones - y las resistencias de adaptación de impedancias – negras - , junto a un cristal de cuarzo – plateado -, del circuito de portada, visto por debajo) debido a la inestabilidad que genera en la red de alimentación la conmutación a semejante velocidad.
Es lo mismo que pasa con las grandes redes eléctricas y las renovables, sólo que a la escala adecuada: ¼ de la longitud de onda. O sea, 750Km para los 50 Hz de la red eléctrica, 2,5cm para los 2GHz de los procesadores de nuestros teléfonos móviles u ordenadores personales.
Este ‘inconveniente’ puede producir que los rápidos y caprichosos cambios que introducen las renovables causen un gran apagón en toda Europa, razón por la que Austria, Alemania y Suiza avisan del problema.
Sin embargo, eso suele ser sólo una parte del circuito, una parte que se suele ‘repetir’ entre circuitos diferentes con funciones diferentes.
Dado que diseñar ese bloque (pongamos que ocupa como el 20 – 30% del producto final) muchas veces lleva del 70 al 90% del esfuerzo, tiene sentido el meter todo este ‘invento’ en un bloque y revenderlo.
Para hacerse una idea, son como 2 a 6 semanas de trabajo de un ingeniero, ‘tuneando’ pistas arrugadas (Warped) para poder conseguir esa velocidad. Eso es la imagen de portada de esta entrada: las pistas entre un ARM heptacore y la LPDDR3 que acompaña.
No, no hay sistemas automáticos que hagan ese trabajo.
Ese es otro nicho que está dando bastante juego al mercado, y como ejemplo podemos poner a una empresa que se llama Octavo Systems que está haciendo mucho mercado. Otro intermediario, otro ‘nicho de mercado’ que, sin embargo, no fabrica semiconductores, sino ‘bloques’ reutilizables
Otras aproximaciones son los Arduinos, las Raspberry Pi, BeagleBone varias, con el caso concreto de la Pi Compute. Pero no son los únicos.
Es lo que se conoce como SBC o Single Board Computers, y es hacia dónde se está tirando bastante el mercado. En el fondo, es justo lo contrario: ‘des – integrar’ circuitos integrados en un bloque integrado más grande, pero que no requiere de fábricas especiales.
Quitarle complejidad a la fabricación de semiconductores.
Esta, además, es la piedra angular del IoT, de muchos de los avances en sistemas actuales. Sistemas muy variados donde a partir de un núcleo común luego se sacan variantes muy diferentes y de volúmenes relativamente pequeños, lo cual implica que el coste de diseño tiene un peso muy importante frente al coste del producto, y dónde por tanto el coste de desarrollo se tiene que minimizar.
Es el caso de máquinas industriales de tiradas relativamente cortas. Por ejemplo las ‘máquinas de coser’, entendiendo a estas, por las máquinas que conectan un circuito integrado de semiconductor a las patitas metálicas del encapsulado plástico en que se mete dicho semiconductor, proceso que se suele hacer fuera de las plantas de semiconductores propiamente dichas (Filipinas es uno de los grandes ‘encapsuladores’) en lo que se llama ‘backend’, encapsulado, etc.
Aquí el gran volumen es para Octavo Systems, o para los fabricantes de RaspberryPis, o para Texas Instruments (que es quién está detrás de la familia Beagle). Pero los usuarios finales, son pequeños: estamos hablando que Octavo o TI están fabricando hasta millones de cada uno de sus productos, pero la gran mayoría de sus compradores hacemos tiradas del orden de decenas de miles a lo sumo. Cientos para el ejemplo de las ‘máquinas de coser’.
Sin embargo, los módulos de computación, o los sistemas realmente complejos, no son el único punto de avance. Hay más especialidades.
Entre estas especialidades, sin embargo, hay otros dos campos de avance grandes, curiosamente, pero que van por derroteros muy diferentes. Uno es el campo de los MEMS y sensores.
En Europa tenemos uno de los fabricantes de MEMS más relevantes, Bosch Sensortec, que hace poco que ha inaugurado otra planta de este tipo de sensores. Aunque básicamente está centrada en sensado de elementos atmosféricos (temperatura, humedad, presión absoluta y relativa, calidad del aire, gases), también tiene sensores de varios tipos.
ST también ha apostado fuerte por ahí, aunque más por la vertiente IMU o plataforma inercial, que es el conjunto de sensores relevantes para el control de movimiento de vehículos.
Este par de fabricantes y de tipos de MEMS, sin embargo, nos sirven de paradigma para la situación particular actual de escasez de componentes electrónicos.
Obviamente, la tecnología de Bosch viene de la automoción, del desarrollo de sistemas de sensado para emisiones de los vehículos y demás, de ahí su especialización en sensores medioambientales como el BME680 que utilizo en casa.
Por otra parte, ST (así como otros fabricantes) debe sus sensores al mundo de la telefonía móvil y el IoT, así como la parte de navegación y pilotaje a la que hemos hecho referencia.
De hecho, el tema del pilotaje o la navegación es el nexo de unión de estos dos campos.
Como se ha dicho, el guiado de misiles utiliza Kalman y Madgwick como algoritmos matemáticos para el control de posición de los vehículos, y así como el guiado de los mismos.
Ambos algoritmos pertenecen a la familia de sistemas de fusión de datos de diferentes sensores, empezando, ambos, en las IMU, precisamente.
Madgwick se centra sólo en IMU’s, especialmente de 9 grados de libertad (aceleración, giro y campo magnético en los tres ejes), con algunos añadidos para manejar un décimo y undécimos grado: el barómetro utilizado como altímetro, así como el sensor diferencial de presión para la medida de velocidad del aire mediante tubo pitot.
Kalman, sin embargo, mucho más genérico, permite la fusión de centenares de tipos de sensores variados (utilicé uno de estos para estimar posiciones con sensores de ultrasonidos), y eso incluye la integración del GPS, combinando la precisión de las IMU en el corto plazo (pero pésimo en el largo plazo) con la precisión del GPS en el largo plazo (pero pésimo en el corto plazo).
Así pues, todos los smartphones más o menos presentables, incluyen IMU de 9 grados además de GPS.
Por cierto, el receptor de GPS es otra especialidad de fabricantes de semiconductores, que en su momento era una parte importante de Atmel (que fabrica para el ejército noruego). Tanto el (sub) procesamiento de las señales recibidas para triangular la posición como la parte de radiofrecuencia, dos tecnologías diferentes, son cosa de fabricantes especializados, y, como es obvio, provenientes del sector militar.
Pero no sólo los smartphones llevan GPS e IMU’s.
Los controles de actitud o estabilidad de los coches, también llevan, al menos, IMU’s, aunque además suelen llevar otros sensores. Su Kalman interno integra otros valores como la velocidad de las ruedas, que es lo que proporciona también sus datos al ABS, la posición de los amortiguadores para saber qué rueda tiene más apoyo y por tanto agarre para tracción/frenado, etc.
Ahí es dónde está el solapamiento, pero también las diferencias.
Bosch fabrica en Alemania, no sólo por ser alemanes, sino también porque sus estándares de fabricación son tremendamente rígidos: la automoción es muy inmovilista, sumamente exigente en cuanto a calidad (estoy hablando de automoción seria, como es la japonesa, coreana y europea), mientras que en el otro extremo tenemos al sector del gran consumo que ejemplifica el caso de la telefonía móvil y ST, donde el precio y el volumen mandan por encima de las exigencias del guión.
Los que hemos pasado por procesos de homologación y auditorías del sector de la automoción, así como por los problemas de integración de pantallas a dicho sector, lo hemos sufrido en primera persona.
Son dos mundos antagónicos, radicalmente.
El principal punto a destacar, es que, especialmente el sector de la automoción es muy inmovilista, fijo, ‘inmutable’, reacio al cambio, lento en sus reacciones. Todo ello, fruto de la demanda de calidad extrema (sólo aceptan problemas en el orden de unas pocas partes por millón, con contratos draconianos también en ese respecto, puntos que además sueles explotar para extorsionar a sus proveedores), y de los sistemas de fabricación sumamente automatizados. Y Just In Time.
Eso hace que los cambios tecnológicos se adopten lentamente. Y eso significa que el caso que hemos comentado del uso de ‘tecnologías adecuadas o establecidas’ por no llamarlas obsoletas, tenga un peso mucho más grande aún.
Y eso es precisamente una de las razones (sólo una más de una pléyade) que hace que esta crisis afecte especialmente a los fabricantes de vehículos, pero también es la razón por la que muchos otros fabricantes tenemos (obsérvese el tiempo verbal) para con el suministro de semiconductores.
Estas tecnologías no se destacan precisamente por el desarrollo e innovación, mucho menos por nuevas fábricas (con la excepción de los MEMS) y aún menos con el desarrollo de nodos más pequeños.
De hecho estas tecnologías están muy limitadas, son marginalmente rentables, y no justifican la ampliación de producción debido al volumen relativamente constante y el precio bajo.
Ergo es otro cuello de botella, de hecho, uno de los grandes, precisamente.
Por el contrario, la electrónica de gran consumo es justo lo contrario: tiradas millonarias de productos que duran un año, van por campañas (la navideña y el ‘Black Friday’ son los grandes ejemplos), y la novedad lo es todo. La calidad, no tanto.
Hay otro conjunto de especialidades, por si esto fuese poco. Y ST vuelve a estar en el fregado.
En este caso, hay que introducir algunos términos más:
Silicon on Insulator/Silicon on Sapphire SOI, SOS. Es una tecnología de integración específica para circuitos semiconductores de grandes prestaciones. A diferencia de los semiconductores ‘normales’ que se hacen sobre el propio silicio, éstos se fabrican sobre una cerámica o cristal aislante, siendo el zafiro el más interesante por su conductividad térmica.
Eso encarece la integración, pero permite mayor disipación de calor (uno de los problemas cuando se apura al máximo la velocidad) y una mejor calidad del circuito integrado en cuanto a funcionamiento.
Nitruro de Galio GaN, Carburo de Silicio SiC. Estos dos materiales son otros semiconductores parecidos al silicio normal, pero con propiedades similares a las de los sustratos cerámicos. Sin embargo, su uso es bastante diferente aunque parten de una misma premisa.
Diamante. Si, diamante, el famoso alótropo del Carbono. En este caso, aunque hace tiempo que se sabe que es semiconductor, había limitaciones obvias. Sin embargo, hace algún tiempo que se han conseguido fabricar diamantes de tamaño importante, de forma sintética, y de precios relativamente asequibles: hay un anillo que es todo él un diamante sintético.
¿Que tienen de especial estos términos? Pues como se insinúa en el primero, que cuando hace falta según qué, la disipación de potencia se vuelve complicada.
Basta ver cómo son por dentro los ordenadores más potentes. De hecho, al Cray 2 lo apodaron ‘la pecera’ porque toda la electrónica tenía que trabajar sumergida en un líquido no conductor que disipase el calor (del orden de 100KW de potencia, ahí es nada) resultante de su funcionamiento.
Aunque la electrónica pequeña consume menos, su tamaño es también (mucho) menor comparativamente, así que hay que disipar mucho calor de sitios muy pequeños, y eso obliga a buscar sistemas integrados que permitan manejar esta circunstancia, habitualmente mediante el uso de sustratos que permitan una gran conductividad térmica para ser montados encima de algún sistema de disipación.
Ahí es dónde vino el Silicon on Sapphire, circuitos integrados típicos de silicio hechos sobre zafiro. Son bastante caros, pero para los grandes superordenadores son útiles.
Pero no todo es potencia de cálculo.
De hecho, uno de los grandes pilares del desarrollo de la electrónica en los últimos años ya no es la integración de muchos millones de transistores en un pequeño circuito integrado. Ese gran pilar es el de los GRANDES transistores… que también se quieren empequeñecer.
Se trata de las aplicaciones de electrónica de potencia, muy de moda hoy en día en dos grandes campos: las renovables y los vehículos eléctricos.
Si cada vez que bajamos de nodo de integración bajamos la tensión de funcionamiento, cuando hablamos de potencia estamos en la situación en que cada vez queremos trabajar con tensiones y corrientes más grandes, así que no nos vale la aproximación habitual.
Dado que el silicio es mal conductor térmico (por eso lo de usar el zafiro como sustrato), hacen falta transistores donde la disipación de potencia sea más eficiente, aunque su integración sea más compleja: no necesitamos meter más que uno o dos transistores (del tipo que sea) en un sólo encapsulado.
En este caso, interesa que tenga una buena conductividad eléctrica (que generalmente suele ir asociada con conductividad térmica), y una buena movilidad de cargas (es decir, que los electrones o su contrapartida, los huecos, se muevan rápidamente).
Hay dos tipos de semiconductores que pueden hacer esta función: el Nitruro de Galio (GaN) y el Carburo de Silicio (SiC).
Además, resulta que este último es un ‘viejo conocido’ de la industria química y metalúrgica, ya que es un abrasivo de uso muy común para, por ejemplo, hacer papel de lija.
Las ventajas que aportan es que son más eficientes que los sistemas basados en silicio (en jerga técnica, la Rdson es mucho más baja), además son mejores conductores del calor y de la electricidad, de tal forma que se obtienen las mismas prestaciones para un transistor de potencia ocupando tamaños (y por tanto, precios) mucho menores que si fuesen de silicio. Generalmente esto se suele traducir en mejores prestaciones (por ejemplo, los cargadores de vehículos eléctricos consiguen rendimientos del orden del 95 – 96% frente a un 92 – 93% si fuesen de silicio).
Cada una de esas tecnologías es mas adecuada para una aplicación que la otra: alta tensión/potencia para SiC, tensión media/muy alta velocidad para GaN.
Se prevé que el diamante sea una opción todavía mejor (técnicamente) que estos dos, pero aún está en fase embrionaria, y no hace falta hablar de cual será probablemente su mayor problema.
Por eso cada vez hay más fabricantes que dedican sus esfuerzos en el campo de este tipo de transistores, dándoles prioridad con respecto a otras tecnologías en las que no tienen posibilidades. Es la nueva carrera de los semiconductores.
Es en este frente donde la italofrancesa ST está dedicando gran parte de sus esfuerzos para ser líder en lo que apunta a otro ‘nicho de mercado’ con una buena tajada de millones.
El resultado de todo esto, es que cada vez hay más ‘nichos de mercado’ que se especializan en unos tipos de producto muy diferentes. Hay más ‘carreras armamentísticas’, más ‘vida más allá’ de la carrera por los nanómetros.
Y todas estas otras vías de ampliación le están quitando fuelle, cuota de mercado, y por tanto futuro, a la electrónica de miniaturización.
Y sin embargo, todas ellas tienen que trabajar en conjunto: las 5G necesitan potencia de cálculo con gran densidad de memoria (es decir, nodos pequeños), con buenos sistemas de alimentación (‘tecnologías adecuadas’), potencia en RF (GaN y GaAs), junto con procesadores particulares (microcontroladores de tamaños no muy pequeños) metidos en ‘bloques integrados’ o SBC’s.
Todo eso es un aumento de la complejidad… y de la ley del Mínimo de Liebig.
En vista de todo esto, los fabricantes de tecnología punta basados sólo en el tamaño de los nanómetros van a tener una cuota de mercado cada vez más pequeña.
Si en la década de los 90 la mayoría de semiconductores tiraban siempre por lo último en integración, dejando fuera sólo un 10 – 15% de nicho de mercado, ahora ya estamos en un 50 – 50%, y la previsión de futuro es que se estanque en un 80% del mercado reservado a ‘nichos’ con ‘tecnología apropiada’, bien sea de nodos más grandes (40 – 90 nm), bien sea de semiconductores particulares, bien tansistores bipolares o de potencia baja (fuentes de alimentación), gran potencia (SiC) o potencia con velocidad (RF mediante GaN), sin dejar de lado otras cosas como cámaras CMOS/CCD, analógica, sensores.
Por tanto, hay más ‘puntos de ruptura’, más ‘eslabones en la cadena’, que hacen que el problema que tenemos con los semiconductores sea tan complejo de abordar y difícil de solucionar.
Con todas estas cartas en la mano, es hora de empezar a explicar la partida.
(enlace a la 5ª parte).