La ley de Moore ha alcanzado el límite

Nota Fecha de publicación del artículo: 26/12/2015. En el pasado, algunas de las tesis del autor han sido confirmadas por hechos reales, y algunas resultaron ser erróneas: aprox. trans.

En los últimos 40 años, hemos visto cómo la velocidad de las computadoras ha crecido exponencialmente. Las CPU de hoy tienen una velocidad de reloj mil veces más rápida que las primeras computadoras personales a principios de la década de 1980. La cantidad de RAM en la computadora ha crecido diez mil veces, y la capacidad del disco duro ha aumentado más de cien mil veces. Estamos tan acostumbrados a este crecimiento continuo que casi lo consideramos una ley de la naturaleza y la llamamos la ley de Moore. Pero hay límites para este crecimiento, que el mismo Gordon Moore señaló . Ahora nos estamos acercando al límite físico, donde la velocidad de los cálculos está limitada por el tamaño del átomo y la velocidad de la luz.

El reloj de control de canon de Intel comenzó a saltar barras aquí y allá. Cada "tic" corresponde a una disminución en el tamaño de los transistores, y cada "así" - una mejora en la microarquitectura. La generación actual de procesadores, llamada Skylake, es así con un proceso de 14 nanómetros. Lógicamente, el siguiente debería ser un "tic" con una tecnología de proceso de 10 nanómetros, pero Intel ahora emite "ciclos de actualización" después de cada "así". El próximo procesador, anunciado para 2016, será una actualización de Skylake, todavía con una tecnología de proceso de 14 nanómetros . Retardar un reloj Tic-Tac es una necesidad física, porque nos estamos acercando a un límite en el que el tamaño del transistor es de solo unos pocos átomos (el tamaño de un átomo de silicio es de 0.2 nanómetros).

Otra limitación física es la velocidad de datos, que no puede exceder la velocidad de la luz. Se necesitan varios ciclos de reloj para obtener datos de un extremo de la CPU al otro extremo. A medida que los microchips se hacen más grandes con más y más transistores, la velocidad comienza a verse limitada por la transferencia de datos en el propio microchip.

Las limitaciones tecnológicas no son lo único que frena la evolución de los procesadores. Otro factor es el debilitamiento de la competencia en el mercado. El mayor competidor de Intel, AMD, ahora se está centrando más en lo que llama las Unidades de Procesamiento Acelerado (APU), que son procesadores más pequeños con gráficos integrados para mini PC, tabletas y otros dispositivos ultramóviles. Intel ahora se ha hecho cargo de la vasta cuota de mercado de procesadores para PC y servidores de gama alta. La feroz competencia entre Intel y AMD, que impulsó el desarrollo de procesadores x86 durante varias décadas, prácticamente ha desaparecido.

El crecimiento de la potencia de la computadora en los últimos años no se debe tanto a un aumento en la velocidad informática, sino a un aumento en el paralelismo. Los microprocesadores modernos usan tres tipos de paralelismo:

  1. Ejecución simultánea de varios equipos con un cambio en su orden.
  2. Operaciones de operación única-datos múltiples (SIMD) en registros vectoriales.
  3. Múltiples núcleos de CPU en un solo chip.

Estos tipos de concurrencia no tienen límites teóricos, pero existen límites prácticos reales. La ejecución de comandos con un cambio en su orden está limitada por el número de equipos independientes en el código del programa. No puede ejecutar dos comandos al mismo tiempo si el segundo comando está esperando el resultado del primero. Las CPU actuales generalmente pueden ejecutar cuatro comandos al mismo tiempo. Aumentar este número no traerá muchos beneficios, porque será difícil o imposible para el procesador encontrar instrucciones más independientes en el código que puedan ejecutarse simultáneamente.

Los procesadores AVX2 actuales tienen 16 registros de vector de 256 bits. El próximo conjunto de instrucciones AVX-512 nos dará 32 registros de 512 bits, y podemos esperar en el futuro extensiones a vectores de 1024 o 2048 bits. Pero estos aumentos en los registros de vectores tendrán cada vez menos efecto. Pocas tareas computacionales tienen suficiente paralelismo incorporado para beneficiarse de estos vectores más grandes. Los registros vectoriales de 512 bits están conectados por un conjunto de registros de máscara que tienen un límite de tamaño de 64 bits. Los registros vectoriales de 2048 bits pueden almacenar 64 números de precisión simple de 32 bits cada uno. Se puede suponer que Intel no planea hacer registros vectoriales de más de 2048 bits, ya que superarán las limitaciones de los registros de máscara de 64 bits.

Numerosos núcleos de CPU ofrecen una ventaja solo si hay muchos programas críticos para la velocidad que se ejecutan simultáneamente, o si la tarea se divide en numerosos hilos independientes. El número de hilos en los que puede dividir la tarea de manera rentable siempre es limitado.

Los fabricantes sin duda intentarán fabricar computadoras cada vez más potentes, pero ¿cuál es la probabilidad de que esta potencia de computadora se pueda utilizar en la práctica?

Existe una cuarta posibilidad de concurrencia que aún no se utiliza. Los programas generalmente tienen muchas ramas if-else, por lo que si la CPU aprende a predecir qué rama funcionará, entonces podríamos ponerla en ejecución. Puede ejecutar varias ramas de código a la vez para evitar perder tiempo si la predicción es incorrecta. Por supuesto, tendrá que pagar por esto con un mayor consumo de energía.

Otra posible mejora es colocar un dispositivo lógico programable en el chip del procesador. Una combinación similar es ahora común para los llamados FPGA, que se utilizan en equipos avanzados. Dichos dispositivos lógicos programables en computadoras personales se pueden usar para implementar funciones específicas de aplicaciones específicas, para tareas tales como procesamiento de imágenes, cifrado, compresión de datos y redes neuronales.

La industria de los semiconductores está experimentando con materiales que pueden usarse en lugar de silicio. Algunos materiales semiconductores III-V pueden operar a voltajes más bajos y a frecuencias más altas que el silicio , pero no hacen que los átomos sean más pequeños o más lentos. Todavía se aplican restricciones físicas.

Algún día podremos ver chips tridimensionales multicapa. Esto permitirá apretar el circuito, reducir la distancia y, en consecuencia, el retraso. Pero, ¿cómo enfriar efectivamente un chip de este tipo cuando la energía se distribuye a través de él? Se requerirán nuevas tecnologías de enfriamiento. El microcircuito no podrá transferir energía a todos los circuitos simultáneamente sin sobrecalentamiento. Tendrá que mantener la mayor parte de sus partes desconectadas la mayor parte del tiempo y suministrar energía a cada parte solo durante el uso.

En los últimos años, la velocidad de la CPU ha aumentado más rápido que la velocidad de la RAM, que a menudo se convierte en un serio cuello de botella. Sin duda, en el futuro veremos muchos intentos de aumentar la velocidad de la RAM. Un desarrollo probable sería colocar la RAM en un solo chip con una CPU (o al menos un caso) para reducir la distancia para la transferencia de datos. Este será un uso útil de chips tridimensionales. La RAM probablemente será de tipo estático, es decir, se suministrará energía a cada celda de memoria solo cuando se acceda a ella.

Intel también abastece el mercado de supercomputadoras para uso científico. El procesador Knight's Corner tiene hasta 61 núcleos en un solo chip. Tiene una relación rendimiento / precio débil, pero su sucesor esperado de Knight's Landing debería ser mejor en este sentido. Acomodará hasta 72 núcleos en un chip y podrá ejecutar comandos con un cambio en su orden. Este es un pequeño nicho de mercado, pero Intel puede aumentar su credibilidad.

Ahora las mejores oportunidades para mejorar el rendimiento, según creo, desde el lado del software. Los desarrolladores de software encontraron rápidamente una aplicación para el crecimiento exponencial de la productividad de las computadoras modernas, que se produjo gracias a la ley de Moore. La industria del software comenzó a usarlo, y también comenzó a usar herramientas de desarrollo y marcos de software cada vez más avanzados. Estas herramientas y marcos de desarrollo de alto nivel hicieron posible acelerar el desarrollo de software, pero a costa de consumir más recursos informáticos como producto final. Muchos de los programas actuales son bastante derrochadores en su consumo excesivo de potencia de cómputo de hardware.

A lo largo de los años, hemos observado una simbiosis entre las industrias de hardware y software, donde esta última producía productos cada vez más avanzados y de uso intensivo de recursos que alentaban a los usuarios a comprar equipos cada vez más potentes. A medida que la tasa de crecimiento de la tecnología de hardware se desaceleró, y los usuarios cambiaron a pequeños dispositivos portátiles donde la capacidad de la batería es más importante que el rendimiento, la industria del software ahora tendrá que cambiar de rumbo. Tendrá que reducir las herramientas de desarrollo intensivas en recursos y el software multinivel y desarrollar programas que no estén tan llenos de funciones. Los tiempos de desarrollo aumentarán, pero los programas consumirán menos recursos de hardware y funcionarán más rápido en dispositivos portátiles pequeños con una duración limitada de la batería. Si la industria del software comercial no cambia de rumbo ahora, entonces puede renunciar a la cuota de mercado para productos de código abierto más ascéticos.

Source: https://habr.com/ru/post/es405723/


All Articles