A pesar de las continuas mejoras y el progreso gradual en cada nueva generación, los cambios fundamentales no se han producido en la industria del procesador durante mucho tiempo. Un gran paso adelante fue la transición del vacío a los transistores, así como la transición de componentes individuales a circuitos integrados. Sin embargo, después de ellos, no ocurrieron cambios serios de paradigma de la misma magnitud.
Sí, los transistores se han vuelto más pequeños, los chips se aceleran y el rendimiento ha aumentado cientos de veces, pero estamos comenzando a ver un estancamiento ...
Esta es la cuarta y última parte de una serie de artículos sobre desarrollo de CPU que habla sobre el diseño y la fabricación de procesadores. Comenzando en un nivel alto, aprendimos cómo se compila el código de la computadora en lenguaje ensamblador, y luego en instrucciones binarias que la CPU interpreta. Discutimos cómo se diseña la arquitectura del procesador y procesan las instrucciones. Luego observamos las diversas estructuras que componen el procesador.
Un poco más profundo en este tema, vimos cómo se crean estas estructuras y cómo miles de millones de transistores trabajan juntos dentro del procesador. Examinamos el proceso de fabricación física de procesadores a partir de silicio en bruto. Aprendimos sobre las propiedades de los semiconductores y cómo se ve el interior de un chip. Si se perdió alguno de los temas, aquí hay una lista de artículos de la serie:
Parte 1: Conceptos básicos de arquitectura informática (arquitecturas de conjuntos de instrucciones, almacenamiento en caché, canalizaciones, hyperthreading)
Parte 2: proceso de diseño de la CPU (circuitos eléctricos, transistores, elementos lógicos, sincronización)
Parte 3: Diseño y fabricación física del chip (VLSI y fabricación de silicio)
Parte 4: Tendencias actuales e importantes direcciones futuras en la arquitectura de computadoras (mar de aceleradores, integración tridimensional, FPGA, Near Memory Computing)
Pasemos a la cuarta parte. Las empresas de desarrollo no comparten con el público su investigación o los detalles de las tecnologías modernas, por lo que nos resulta difícil imaginar claramente qué hay exactamente dentro de la CPU de la computadora. Sin embargo, podemos echar un vistazo a la investigación moderna y descubrir en qué dirección se está moviendo la industria.
Una de las imágenes famosas de la industria de procesadores es la Ley de Moore. Dice que la cantidad de transistores en un chip se duplica cada 18 meses. Durante mucho tiempo, esta regla general fue justa, pero el crecimiento comienza a disminuir. Los transistores se vuelven tan pequeños que comenzamos a acercarnos al límite de tamaños físicamente alcanzables. Sin una nueva tecnología revolucionaria, tendremos que explorar otras posibilidades para el crecimiento de la productividad en el futuro.
Ley de Moore por 120 años. Este gráfico se vuelve aún más interesante si aprende que los últimos 7 puntos están relacionados con la GPU Nvidia, y no con procesadores de propósito general. Ilustración de Steve JarvetsonDe este análisis se desprende una conclusión: para aumentar la productividad, las empresas comenzaron a aumentar el número de núcleos en lugar de la frecuencia. Por esta razón, estamos observando cómo se utilizan ampliamente los procesadores de ocho núcleos, en lugar de los procesadores de doble núcleo con una frecuencia de 10 GHz. Simplemente no tenemos mucho espacio para el crecimiento, excepto la adición de nuevos núcleos.
Por otro lado, el campo de
la computación cuántica promete un gran espacio para el crecimiento futuro. No soy un especialista, y dado que sus tecnologías aún se están desarrollando, todavía hay pocos "especialistas" reales en esta área. Para disipar los mitos, diré que la computación cuántica no podrá proporcionarle 1000 cuadros por segundo en un render realista, o algo así. Hasta ahora, la principal ventaja de las computadoras cuánticas es que permiten el uso de algoritmos más complejos que antes eran inalcanzables.
Uno de los prototipos de computadoras cuánticas IBMEn las computadoras tradicionales, el transistor está activado o desactivado, lo que corresponde a 0 o 1. En una computadora cuántica, la
superposición es posible, es decir, un bit puede estar simultáneamente en los estados 0 y 1. Gracias a esta nueva característica, los científicos pueden desarrollar nuevos métodos de cálculo para Podrán resolver problemas para los que todavía no tenemos suficiente potencia informática. El punto no es tanto que las computadoras cuánticas sean más rápidas, sino que son un nuevo modelo de computación que nos permitirá resolver otros tipos de problemas.
Todavía quedan una o dos décadas antes de la introducción masiva de esta tecnología, entonces, ¿qué tendencias estamos comenzando a ver en los procesadores reales hoy? Se están llevando a cabo docenas de investigaciones activas, pero solo tocaré algunas áreas que, en mi opinión, tendrán el mayor impacto.
Una tendencia creciente es la influencia de
la computación heterogénea . Esta técnica consiste en incorporar muchos elementos informáticos diferentes en un solo sistema. La mayoría de nosotros aprovechamos este enfoque como GPU separadas en las computadoras. El procesador central es muy flexible y con una velocidad decente puede realizar una amplia gama de tareas informáticas. Por otro lado, las GPU están diseñadas específicamente para la computación gráfica, como la multiplicación de matrices. Enfrentan muy bien esto y son órdenes de magnitud más rápido que la CPU en este tipo de instrucciones. Transfiriendo parte de los cálculos gráficos de la CPU a la GPU, podemos acelerar los cálculos. Cualquier programador puede optimizar el software cambiando el algoritmo, pero optimizar el equipo es mucho más difícil.
Pero la GPU no es la única área en la que los aceleradores se están volviendo más populares. La mayoría de los teléfonos inteligentes tienen docenas de aceleradores de hardware diseñados para acelerar tareas muy específicas. Este estilo de computación se llama
Sea of Accelerators , cuyos ejemplos son procesadores criptográficos, procesadores de imágenes, aceleradores de aprendizaje automático, codificadores / decodificadores de video, procesadores biométricos y mucho más.
Las cargas se están volviendo cada vez más especializadas, por lo que los diseñadores están incluyendo más aceleradores en sus chips. Los proveedores de servicios en la nube, como AWS, han comenzado a proporcionar a los desarrolladores tarjetas FPGA para acelerar su computación en la nube. A diferencia de los elementos informáticos tradicionales como CPU y GPU, que tienen una arquitectura interna fija, los FPGA son flexibles. Este es un equipo casi programable que se puede personalizar para adaptarse a las necesidades de la empresa.
Si alguien necesita reconocimiento de imagen, entonces implementa estos algoritmos en el hardware. Si alguien quiere simular el trabajo de una nueva arquitectura de hardware, antes de fabricarla se puede probar en FPGA. FPGA proporciona un mayor rendimiento y eficiencia energética que la GPU, pero aún menos que el ASIC (circuito integrado específico de la aplicación: un circuito integrado de propósito especial). Otras compañías, como Google y Nvidia, están desarrollando ASIC de aprendizaje automático por separado para acelerar el reconocimiento y análisis de imágenes.
Fotos de cristal de procesadores móviles populares que muestran su estructura.Al observar las imágenes de cristal en relación con los procesadores modernos, puede ver que el núcleo en sí no ocupa la mayor parte del área de la CPU. Varios aceleradores ocupan una parte mayor. Esto hizo posible acelerar cálculos muy especializados, así como reducir significativamente el consumo de energía.
Anteriormente, cuando era necesario agregar al sistema de procesamiento de video, los desarrolladores tenían que instalar un nuevo chip en él. Sin embargo, es muy ineficiente en términos de consumo de energía. Cada vez que una señal necesita salir de un chip a través de un conductor físico a otro chip, se requiere una gran cantidad de energía por bit. La pequeña fracción del joule en sí misma no parece ser un desperdicio particularmente grande, pero transferir datos dentro y no fuera del chip puede ser de 3 a 4 órdenes de magnitud más eficientes. Gracias a la integración de dichos aceleradores con la CPU, recientemente hemos visto un aumento en el número de chips con un consumo de energía ultra bajo.
Sin embargo, los aceleradores no son ideales. Cuanto más los agregamos al circuito, menos flexible se vuelve el chip y comenzamos a sacrificar el rendimiento general en favor del máximo rendimiento de los tipos especializados de informática. En algún momento, todo el chip simplemente se convierte en un conjunto de aceleradores y deja de ser una CPU útil. El equilibrio entre el rendimiento informático especializado y el rendimiento general siempre se ajusta con mucho cuidado. Esta discrepancia entre los equipos de uso general y las cargas especializadas se denomina
brecha de especialización .
Aunque algunas personas piensan. Dado que estamos en la cima de la burbuja de GPU / Machine Learning, lo más probable es que podamos esperar que más y más informática se transfiera a aceleradores especializados. La computación en la nube y la IA continúan evolucionando, por lo que las GPU parecen la mejor solución para lograr el nivel de computación volumétrica requerido.
Otra área en la que los diseñadores buscan formas de aumentar la productividad es la memoria. Tradicionalmente, leer y escribir valores siempre ha sido uno de los cuellos de botella más graves en los procesadores. Las memorias caché rápidas y grandes pueden ayudarnos, pero leer desde RAM o SSD puede llevar decenas de miles de ciclos de reloj. Por lo tanto, los ingenieros a menudo ven el acceso a la memoria como más costoso que los cálculos mismos. Si el procesador desea agregar dos números, primero necesita calcular las direcciones de memoria en las que se almacenan los números, averiguar en qué nivel de la jerarquía de memoria hay estos datos, leer los datos en registros, realizar cálculos, calcular la dirección del receptor y escribir el valor en el lugar correcto. Para instrucciones simples, que pueden tomar uno o dos ciclos, esto es extremadamente ineficiente.
Una nueva idea que se está explorando activamente es una técnica llamada
Near Memory Computing . En lugar de recuperar pequeños datos de la memoria y computarlos con un procesador rápido, los investigadores ponen el trabajo al revés. Experimentan con la creación de pequeños procesadores directamente en controladores de memoria RAM o SSD. Debido al hecho de que los cálculos se están acercando a la memoria, existe el potencial de grandes ahorros en energía y tiempo, ya que los datos ya no necesitan transmitirse tan a menudo. Los módulos de computación tienen acceso directo a los datos que necesitan, ya que están directamente en la memoria. Esta idea aún está en pañales, pero los resultados parecen prometedores.
Uno de los obstáculos a superar para la computación de memoria cercana son las limitaciones del proceso de fabricación. Como se indicó en la
tercera parte , el proceso de producción de silicio es muy complejo e involucra docenas de etapas. Estos procesos generalmente están especializados para la fabricación de elementos lógicos rápidos o elementos de almacenamiento densamente espaciados. Si intenta crear un chip de memoria utilizando un proceso de fabricación optimizado para la informática, obtendrá un chip con una densidad de elementos extremadamente baja. Si tratamos de crear un procesador utilizando el proceso de fabricación del disco, obtenemos un rendimiento muy bajo y grandes tiempos.
Ejemplo de integración 3D que muestra conexiones verticales entre capas de transistores.Una posible solución a este problema es
la integración 3D . Los procesadores tradicionales tienen una capa muy amplia de transistores, pero esto tiene sus limitaciones. Como su nombre lo indica, la integración tridimensional es el proceso de organizar varias capas de transistores uno encima del otro para aumentar la densidad y reducir los retrasos. Las columnas verticales producidas en diferentes procesos de fabricación se pueden utilizar para la unión entre capas. Esta idea fue propuesta hace mucho tiempo, pero la industria ha perdido interés en ella debido a serias dificultades en su implementación. Recientemente, estamos presenciando el surgimiento de la tecnología de almacenamiento 3D NAND y el renacimiento de esta área de investigación.
Además de los cambios físicos y arquitectónicos, otra tendencia afectará fuertemente a toda la industria de semiconductores: un mayor énfasis en la seguridad. Hasta hace poco, se pensaba la seguridad del procesador casi en el último momento. Esto es similar a cómo se desarrollaron Internet, el correo electrónico y muchos otros sistemas que utilizamos hoy en día casi sin tener en cuenta la seguridad. Todas las medidas de protección existentes se "arruinaron" a medida que ocurrían los incidentes, por lo que nos sentimos seguros. En el campo de los procesadores, tales tácticas han perjudicado a las empresas, y especialmente a Intel.
Bugs Specter y Meltdown son probablemente los ejemplos más famosos de cómo los diseñadores agregan funciones que aceleran significativamente el procesador, sin ser conscientes de los riesgos de seguridad asociados con esto. En el desarrollo de procesadores modernos, se presta mucha más atención a la seguridad como parte clave de la arquitectura. Cuando se mejora la seguridad, el rendimiento a menudo sufre, pero dado el daño que pueden causar serios errores de seguridad, se puede decir con seguridad que es mejor centrarse en la seguridad en la misma medida que en el rendimiento.
En las partes anteriores de la serie, abordamos técnicas como la síntesis de alto nivel, que permite a los diseñadores describir primero la estructura en un lenguaje de alto nivel, y luego permitir algoritmos complejos para determinar la configuración de hardware óptima para la función. Con cada generación, los ciclos de diseño son cada vez más caros, por lo que los ingenieros buscan formas de acelerar el desarrollo. Cabe esperar que en el futuro esta tendencia en el diseño de hardware con software solo se intensifique.
Por supuesto, no podemos predecir el futuro, pero las ideas innovadoras y las áreas de investigación consideradas por nosotros en el artículo pueden servir como pautas para las expectativas en el diseño de futuros procesadores. Podemos decir con confianza que nos estamos acercando al final de las mejoras habituales en el proceso de fabricación. Para continuar aumentando la productividad en cada generación, los ingenieros tendrán que inventar soluciones aún más complejas.
Esperamos que nuestra serie de cuatro artículos haya despertado su interés en estudiar el diseño, la verificación y la producción de procesadores. Hay un número infinito de materiales sobre este tema, y si tratamos de revelarlos todos, cada uno de los artículos podría convertirse en un curso universitario completo. Espero que hayas aprendido algo nuevo y ahora entiendas mejor lo sofisticadas que son las computadoras en cada nivel.