¿Por qué las velocidades de reloj de la CPU no han aumentado en los últimos 5 años?

Hay muchas razones en diferentes categorías y trataré de mencionarlas todas.


Poder :

Al diseñar la microarquitectura de una CPU, una de las decisiones clave de diseño es cómo lograr un mayor rendimiento. Durante los días del Pentium 4, Intel (compañía) eligió ir con velocidades de reloj muy altas con una tubería relativamente estrecha. Este enfoque tiene muchas ventajas: una es que es fácil acelerar el código de serie de un solo subproceso. No se necesitaba hacer mucho en el software para paralelizar las instrucciones y la mayoría del software vería beneficios de inmediato.

Sin embargo, este enfoque también tiene sus fallas: ignorando las fallas de implementación del Pentium 4, solo hablaremos de las fallas en el concepto mismo. Principalmente que las CPU estaban golpeando una pared de energía y que las microarquitecturas de alta frecuencia no son muy adecuadas para muchas de las técnicas de diseño de baja potencia que se habían inventado para tratar el problema de la energía. Me referiré a los dos principales enfoques de diseño de baja potencia aquí.

Uno es de reloj.

La activación de reloj inserta una activación de reloj antes de cada elemento de estado (registro, retención, etc.) de modo que el elemento no se sincronice si no se van a escribir nuevos datos. Esto ahorra una cantidad significativa de carga / descarga que se desperdiciaría escribiendo el mismo bit en la celda. Sin embargo, esto también inserta un retraso adicional (la función de activación) en la ruta del reloj. Los diseños de alta frecuencia generalmente se ejecutan en márgenes muy bajos y simplemente no son muy adecuados para insertar un retardo variable adicional en la señal más crítica (el reloj).

Otra técnica común es la activación de energía.

Esto implica colocar transistores grandes y gordos en la fuente de voltaje para varias secciones del chip, generalmente bloques funcionales diferentes, y apagar esas secciones cuando no se usan. Nuevamente, a los diseños de alta frecuencia no les gusta esto. Los transistores de activación de potencia no solo agregan una caída de voltaje adicional, disminuyendo así la velocidad de conmutación del transistor, sino que un procesador de tubería muy estrecho simplemente no tiene muchas secciones que se puedan apagar en un momento dado.

Por lo tanto, desde un punto de vista micro-arquitectónico, los diseños estrechos de alta frecuencia simplemente no son inteligentes en cuanto a potencia.


Transistor Scaling :

Otra razón importante por la que la frecuencia del procesador no ha aumentado es simplemente que los transistores en sí mismos no se han vuelto mucho más rápidos.

Los otros han mencionado el tamaño del ancho del transistor, pero eso ha estado disminuyendo constantemente y continúa haciéndolo. La Ley de Moore a este respecto todavía está en juego.

Intel está fabricando actualmente en HKMG de 32 nm, tras pasar de 45 nm. Dos años antes de eso, era de 65 nm y antes de eso de 90 nm. TSMC, IBM (compañía) y GlobalFoundries comenzarán a fabricar chips de 28 nm este año e Intel está programando el cambio a 22 nm pronto. (actualización: 14nm está fuera):


Sin embargo, el problema es que mientras los transistores se hacen más pequeños, no se vuelven más rápidos . Y para entender esto, es necesario un poco de antecedentes sobre los MOSFET:

http://en.wikipedia.org/wiki/Mosfet

Verá, la velocidad de conmutación de un transistor depende de muchos factores. Uno de los factores principales es la intensidad del campo eléctrico creado en la puerta (el control del interruptor). Esta intensidad del campo eléctrico depende tanto del área de la compuerta (que se hace más pequeña a medida que se encogen los transistores) como del grosor de esa compuerta.

A medida que los transistores se reducen, el área de la puerta disminuye. En el pasado, esta reducción en el área significaba que la puerta de un transistor también podía hacerse más delgada. Si conoce los conceptos básicos de cómo funciona un condensador, cuanto más delgada es la separación entre dos placas conductoras, más fuerte es el campo eléctrico entre ellas. Este es el mismo principio que funciona en un MOSFET. Un dieléctrico de puerta más delgado conduce a un campo eléctrico más fuerte a través del canal del transistor, lo que significa que el transistor cambiará más rápido. Una reducción en el área de la puerta del transistor significa que la puerta podría hacerse más delgada sin aumentar negativamente la capacidad de carga (cuánto se necesita para cargar el nodo de control para crear el campo eléctrico).

Sin embargo, a partir de 45 nm, el dieléctrico de la puerta tiene ahora un grosor aproximado de 0.9 nm, aproximadamente del tamaño de una molécula de dióxido de silicio. Es simplemente imposible hacer esto más delgado.

Con high-k, Intel cambió el material del que está hecho este dieléctrico de compuerta de dióxido de silicio a un material a base de hafnio (muchos sospechan silicato de hafnio). También cambiaron el material de conexión de la puerta de polisilicio a metal.

Esto ayudó en la velocidad del transistor, pero era costoso y en gran medida una solución de curita. El asunto simple es que la escala fácil que hemos tenido en el pasado donde cada reducción en el tamaño del transistor también conduciría a transistores más rápidos ha terminado.


Escalado de chips:

Otra razón importante para una ralentización de la rampa de frecuencia es que los transistores ya no son el único factor, y en algunos casos incluso el más importante, en la velocidad con la que un procesador puede funcionar más. Los cables que conectan estos transistores ahora se convierten en el factor de retraso dominante.

A medida que los transistores se hacen más pequeños, los cables que los conectan se vuelven más delgados. Los cables más delgados significan mayor resistencia y menor corriente. Combine eso con el hecho de que los transistores más pequeños pueden conducir menos corriente y es fácil ver que el retardo de la ruta del circuito estará determinado solo en parte por la velocidad del cambio de los transistores.

Por supuesto, hay muchos trucos que se pueden usar durante el diseño de chips para contrarrestar esto. Un buen ingeniero de ubicación y ruta intentará enrutar su reloj y su señal de datos en rutas similares, haciendo que las dos señales viajen juntas y lleguen a su destino al mismo tiempo. Para un diseño con muchos datos y control ligero, como un motor de códec de video de función fija o un procesador de red, esta puede ser una solución muy efectiva.

Sin embargo, un microprocesador es un diseño muy complejo con una red de interacción que no es muy regular, los datos viajan a múltiples ubicaciones que no siempre siguen el reloj. Hay caminos de retroalimentación y bucles. Existen recursos centralizados como el seguimiento de riesgos, la programación, la predicción de ramas, los archivos de registro, etc. Estos diseños pesados ​​de control se copian fácilmente en más núcleos, pero se complican por los cables más delgados necesarios al aumentar las frecuencias del procesador a través del método estándar.

La respuesta de Jonathan Kang está bien escrita e ilustrada, pero pensé que la escala del cable podría explicarse mejor.

En general, las velocidades de señalización en el chip están limitadas por la resistencia y la capacitancia de los cables. Cuando una puerta cambia su salida, por ejemplo, de baja a alta, es cierto que el borde ascendente viaja por el cable a la velocidad de la luz (en este caso, la velocidad de la luz modificada por la impedancia del cable, aproximadamente 150 mm por nanosegundo ) En particular, el retardo de onda es lineal en la longitud del cable.

Pero la mayoría de la señalización en chip es sensible al nivel, en lugar de a la onda incidente. Por lo tanto, las puertas lógicas solo reaccionarán una vez que el voltaje en el condensador, que es el cable, haya cambiado la mayor parte del camino hacia el otro riel. Esto es algo bueno, porque los niveles de ruido en el chip en las señales lógicas son enormes, pero también significa que el retraso de tiempo para un cable depende de lo que se llama la “constante de tiempo RC”, que es la resistencia multiplicada por la capacitancia. ¡La mayoría de los ingenieros no eléctricos se sorprenden al saber que ohmios por faradios son segundos! Dado que tanto la resistencia como la capacitancia aumentan con la longitud del cable, los retrasos del cable lógico aumentan con el cuadrado de la longitud del cable. Los cables largos son malos.

Para considerar la escala del cable, es útil considerar escalar un diseño fijo a un proceso de semiconductores de nueva generación (más pequeño) y, por lo tanto, reglas de diseño más estrictas:

  • Escalado lateral del cable: la capacitancia del cable no cambia con un cambio en la escala lateral, porque la separación del cable disminuye tanto como la longitud del cable. La resistencia del cable no cambia con un cambio en la escala lateral, porque los cables se vuelven más delgados (mayor resistencia) y más cortos (menor resistencia), por lo que el efecto general es un lavado.
  • Escalado vertical del cable: la capacitancia se reduce linealmente con la altura del cable, pero la resistencia del cable aumenta en el mismo factor, de modo que la resistencia * constante de tiempo de capacitancia no se escala con la altura del cable.

Lo único que ha hecho que los cables sean más rápidos durante muchos años son más capas de cables (para la misma funcionalidad). Al extender los cables verticalmente, cada capa se vuelve menos densa, los espacios entre los cables aumentan y la capacitancia disminuye. La longitud puede aumentar un poco, pero en este momento la dimensión vertical es mucho más pequeña que la dimensión horizontal que los aumentos de longitud se ven afectados, por lo que más capas de metal hacen que el diseño sea más rápido.

Hay un montón de trucos que han hecho mejoras únicas en la velocidad del cable:

  • Cambio de aluminio a cobre para reducir la resistencia y la electromigración.
  • Cambiar a dieléctricos de cable de baja K, del dióxido de silicio que alguna vez se usó entre cables. Esto disminuyó la capacitancia del cable.
  • Romper cables largos en dos o más segmentos e insertar amplificadores (inversores) entre los segmentos. Esto agrega retrasos al inversor, pero reduce el retraso de RC, y en cables largos es una victoria.
  • Hace 10 años hubo una propuesta para enrutar un par de capas de cable en diagonal, lo que habría reducido la longitud del cable y la congestión. Sé que hubo muchos problemas con el manejo de la geometría que no es Manhattan, pero aun así, me sorprende que esta técnica no se haya convertido en estándar.

La conclusión es que los retrasos en los cables se han atascado durante mucho tiempo. Las ganancias que se han logrado en la frecuencia de operación provienen principalmente de transistores más rápidos, pero ahora las velocidades de los transistores no pueden aumentar mucho más, y los retrasos en los cables dominan de todos modos.

Depende de lo que quieras decir con velocidades, pero hay una gran confluencia de razones por las que los procesadores están donde están hoy.

Si se refiere específicamente a la velocidad del reloj, se debe en gran medida a la incapacidad de fabricar anchos de compuerta más pequeños en silicio. La arquitectura Core 2 de Intel, por ejemplo, utiliza un ancho de puerta de 45 nanómetros para los transistores en cada núcleo. Core 2 era parte de la familia Penryn. La última familia es Nehalem, y también utiliza anchos de puerta de 45 nanómetros. Core i5 e i7 pertenecen a esta familia, entre otros.

Dado que el ancho de la puerta no se redujo de la familia Penryn a la familia Nehalem, el consumo de energía de un solo cambio de estado en un transistor dado no disminuyó. Dado que la disipación de calor (y, por lo tanto, el consumo de energía) es proporcional tanto al ancho de la puerta como a la velocidad del reloj, esta nueva arquitectura no podría cambiar el estado de los transistores más rápido que el anterior. Por lo tanto, las velocidades centrales del reloj se mantuvieron bastante constantes.

Llegar a 45 nm fue realmente difícil. Ir a la próxima frontera, que probablemente será de 32 nm, será aún más difícil. Tan difícil, de hecho, que STMicroelectronics, Freescale Semiconductor, NXP Semiconductor y Texas Instruments han decidido detener su investigación de procesos. Un artículo publicado en 2007 afirmaba que Intel, IBM y Matsushita, AMD y Renesas serían las únicas organizaciones que aún se dedican a la I + D en esta área. Ese es un conjunto muy reducido de cerebros y dólares en el problema del ancho de la puerta.

Si su pregunta sobre la “velocidad” es más general, bueno, entonces hay otra discusión sobre arquitecturas multinúcleo que también es fascinante. Los principales avances técnicos en las familias de Nehalem frente a las predecesoras son sus esquemas de administración de memoria, almacenamiento en caché y multiproceso. Si mantiene cada núcleo a 3 GHz, ¿cómo puede usar eficientemente dos núcleos de 3 GHz para obtener, digamos, 1.5 veces la velocidad de un solo núcleo? ¿Cómo puede usar eficientemente cuatro núcleos de 3 GHz para obtener, digamos, 1.5 veces la velocidad de dos núcleos? a este respecto, las velocidades del procesador han aumentado significativamente en los últimos 5 años, y continuarán haciéndolo a medida que el software se escriba para aprovechar estas nuevas arquitecturas.

Pero, de nuevo, ¿cuándo fue la última vez que realmente te encontraste esperando tu procesador? Probablemente fue su disco, su red o su cerebro que fue el cuello de botella en primer lugar. 🙂

Solo me gustaría agregar una perspectiva más. Creo que si a los diseñadores se les diera el objetivo de aumentar aún más la velocidad del reloj, se podría lograr algún progreso adicional en esta dirección. Este aumento en la frecuencia del reloj probablemente podría proporcionar un rendimiento adicional del procesador de un solo subproceso, pero este progreso se produciría a expensas del consumo excesivo de energía. Sin embargo, incluso si el rendimiento del procesador de un solo subproceso pudiera mejorarse de alguna manera, eso no significa que necesariamente se mejoraría el rendimiento general del sistema.

Además de todos los problemas técnicos asociados con el aumento de la frecuencia de reloj enumerados por los otros respondedores, creo que hay 3 razones importantes del mercado que hacen que sea menos deseable molestarse en enfocarse en una mayor frecuencia de reloj. Estos son:

  1. El mayor crecimiento del mercado de microprocesadores en la actualidad es en el segmento móvil, donde el bajo consumo de energía es mucho más importante que la frecuencia de reloj. Entonces, si hay una compensación de diseño a favor de la baja potencia frente a la frecuencia de reloj, la baja potencia va a ganar. Esto no solo es cierto en el nivel de diseño del circuito (consulte las otras respuestas sobre la activación del reloj y la administración de energía), sino que también es cierto en el nivel físico del dispositivo. Los diseñadores de dispositivos pueden elegir un diseño de transistor un poco más lento si pueden obtener una reducción dramática en la corriente de fuga en estado apagado, que puede dominar el consumo de energía de los circuitos que pueden no estar operando activamente, por ejemplo.
  2. El espacio del servidor hoy está dominado por sistemas masivamente paralelos como servidores web, servidores SQL, etc., cuyo rendimiento está limitado en última instancia por el rendimiento de E / S en el disco o en Internet, pero cuyo rendimiento se puede escalar agregando más procesadores, pero no necesariamente Los increíblemente rápidos. Por lo tanto, si puede instalar más procesadores en un solo chip, los sistemas de servidor podrían obtener un mejor rendimiento que si tuviera un procesador más rápido. Y hoy, el límite de la cantidad de procesadores que puede colocar en un chip no está tan limitado por el tamaño del procesador relacionado con el tamaño máximo del chip, sino más bien por la cantidad total de energía que puede disipar de un solo chip. Y, por lo tanto, si desea vender más procesadores en un solo chip (y, por lo tanto, más rendimiento del sistema), uno se esfuerza por diseñar procesadores que consuman menos energía, que es un requisito sorprendentemente similar del espacio móvil.
  3. El espacio medio de las computadoras de escritorio donde un procesador más rápido puede ofrecer un rendimiento de la aplicación más rápido ha aterrizado en un espacio donde muchas de las aplicaciones que realmente pueden usar ese rendimiento más rápido son los videojuegos y la mayor parte de ese rendimiento se utiliza para la representación 3D. Como tal, el enfoque para ofrecer este rendimiento se ha alejado un poco del rendimiento más rápido de la CPU y se ha centrado más en las Unidades de procesamiento de gráficos de alto rendimiento que tienen una arquitectura diferente. Estos chips dependen más del flujo de datos y del paralelismo de datos y, aunque la frecuencia de reloj es una estrategia para un mayor rendimiento, también tienen otras estrategias de diseño disponibles. Al final, se puede construir una máquina de escritorio de alto rendimiento con un excelente coprocesador de gráficos y un procesador convencional similar a los que se están construyendo para el mercado móvil o de servidores.

Así que, al final, gran parte de la dirección de inversión y diseño actual es ofrecer un rendimiento del sistema cada vez mayor con potencias más bajas y ya no centrarse en la frecuencia del reloj (lo que algunos podrían argumentar que era más una estrategia de marketing (mi frecuencia de reloj es mejor que su frecuencia de reloj) que una verdadera medida del rendimiento del sistema).

Esta es una excelente pregunta! Las respuestas se pueden dividir en 2 aspectos principales. Trataré de lidiar con los dos.

Lo primero y probablemente lo más importante para entender es esto: una mayor velocidad de reloj de la CPU no necesariamente significa computadoras más rápidas o más potentes.

Pero, ¿cómo podría obtener cada vez más dispositivos más potentes con cada año? Esta es una de las respuestas a la pregunta original: la industria ideó muchas soluciones diferentes para crear mejores computadoras sin (o casi sin) aumentar la velocidad del reloj. Los más extendidos son las CPU multinúcleo, los dispositivos periféricos más rápidos y disponibles (memoria, controladores, etc.) y un diseño de CPU mucho mejor. Ahora hablemos en detalles sobre los 2 aspectos principales de la velocidad del reloj.

Parte 1: diseño y demanda del producto.

Como ya mencionamos, podemos lograr mejores CPU sin aumentar la velocidad del reloj. Pero, ¿por qué no simplemente aumentar la frecuencia de reloj en lugar de entrar en complejos desarrollos técnicos e inventos? Hay algunas razones para ello, pero me detendré en la más importante: aumentar la velocidad del reloj de la CPU aumentará el consumo de energía de la CPU. Y el consumo de energía de la CPU en palabras simples es cuánto tiempo podemos usar Quora / Facebook / Twitter o YouTube en nuestros dispositivos móviles.

Con un aumento dramático en la demanda de dispositivos móviles (teléfonos inteligentes, tabletas y computadoras portátiles), el consumo de energía (o TDP en nuestro caso) se convirtió en la consideración número uno en el diseño de CPU. Por lo tanto, aumentar la velocidad del reloj está fuera de discusión para esta cuota de mercado.

Hágase la siguiente pregunta: ¿cuánta potencia de cálculo necesita realmente para su tableta o teléfono inteligente? Pero, ¿cuánto tiempo le gustaría que la batería dure sin recargar su dispositivo mibile?

Parte 2 – desafíos tecnológicos.

Fuera del mercado móvil todavía hay muchas aplicaciones HPC: centros de datos, computadoras de escritorio y servidores. ¿Qué pasa con el aumento de la potencia de cálculo donde no tenemos consideraciones de TDP?

Aquí la industria enfrenta desafíos tecnológicos muy duros: no es fácil aumentar la velocidad del reloj con una escala agresiva para cumplir con las demandas de la ley de Moore y tener un producto competitivo en el mercado a tiempo.

Teóricamente supimos cómo hacer transistores ultra rápidos basados ​​en Si hace una década. La matriz básica de dispositivos puede funcionar a velocidades superiores a 200 GHz, pero cuando convierte todas estas matrices en un producto completo, la velocidad disminuye drásticamente.

El problema surge de 3 sectores principales: demora BEOL RC, consideración térmica y confiabilidad del producto.

BEOL se ha convertido en el principal cuello de botella en el rendimiento de la CPU, una vez que pasamos el nodo de 22 nm. Básicamente tenemos transistores de última generación que no obtienen suficiente “jugo” porque las interconexiones son lentas (combinación de resistividad y capacidad parasitaria).

Y aunque inventar y crear mejores y mejores transistores (FEOL) es un proceso tedioso, costoso y que demanda mucho tiempo, los desafíos de mejora del rendimiento en BEOL son 10 veces más difíciles.

La consideración térmica es otra ‘penalidad’ que paga la industria debido a la loca persecución después de la ley de Moore. Densamente empacando miles de millones de transistores y pequeños cables que se conectan entre ellos limitando la temperatura de funcionamiento del producto final.

Por último, pero no menos importante, es la fiabilidad. Para que nuestros productos funcionen correctamente y durante mucho tiempo, el proceso de diseño y fabricación debe tomar las medidas adecuadas, que en la mayoría de los casos “compiten” con el rendimiento del producto.

Para resumir la parte 2, con una escala más agresiva (debido a la ley de Moore), el BEOL se convirtió en la parte más cambiante en el diseño y la fabricación de CPU. Se presentan nuevos materiales y procesos, así como nuevas características de diseño, pero aún así el rendimiento está limitado no por los transistores sino por los cables que suministran la energía y los datos a los transistores.

Tenga en cuenta que he hecho algunas generalizaciones para que mi respuesta sea menos técnica.

Lea más sobre los problemas relacionados aquí:

La respuesta de Daniel Fishman a ¿Cuándo veremos una nueva tecnología de semiconductores?

La respuesta de Daniel Fishman a la ley de Moore está cerca de su final, ¿qué pasará con la industria de los semiconductores y la economía mundial?

¿La respuesta de Daniel Fishman a los procesadores de 10 GHz será posible para 2020?

Las CPU comenzaron a alcanzar los límites de densidad de potencia.

La potencia dinámica es proporcional al cuadrado de voltaje multiplicado por la frecuencia de operación. Para cronometrar un procesador a una frecuencia alta se requiere un alto voltaje. Así, la potencia dinámica aumenta sustancialmente a altas frecuencias. También la potencia estática (es decir, la potencia consumida cuando el circuito está inactivo) comenzó a aumentar a medida que los transistores se hicieron más pequeños. En este momento, tanto la energía dinámica como la estática son casi igualmente importantes en términos de consumo total de energía. La potencia estática aumenta con el número de transistores en el chip.

Dado que un número absurdo (¡alrededor de mil millones!) De Transistores están empaquetados en el chip, la densidad de potencia se disparó. Hay un gráfico famoso que proyectaba que la densidad de temperatura de la CPU de Intel rivalizaría con la densidad de temperatura del sol en el futuro. Es imposible enfriar esto, especialmente en una computadora portátil / Ultrabook.

Además, una mayor frecuencia no necesariamente se traduce en un mayor rendimiento. Por lo tanto, el signo d de la CPU pasó a tratar de extraer un mejor rendimiento al hacer cosas inteligentes dentro de la microarquitectura del procesador mientras se reduce la potencia disipada.

Cuando las dimensiones de IC se reducen, la mayoría de las cosas se escalan a su favor, excepto la resistencia del cable. La activación o desactivación de un transistor requiere cargar o descargar su capacitancia de puerta. Eso significa que la potencia tiende a aumentar (I ^ 2 * R) si otras cosas se dejan iguales, y también reduce lo que se conoce como “alcance del reloj” (con cuántas puertas lógicas puede comunicarse en un ciclo de reloj), lo que significa necesitas más etapas de lógica para hacer el trabajo. Agregue a esto que los dispositivos más nuevos pueden optimizarse para fugas bajas o alta velocidad, pero no para ambas, por lo que se debe agregar más lógica para administrar la energía (aunque Intel se mudó a FinFET para mitigar eso). De todos modos, todo eso se suma al límite de lo rápido que puede funcionar un solo núcleo:

Una mirada retrospectiva al rendimiento de la CPU de un solo hilo

Si necesita desesperadamente más velocidad, puede sumergir el silicio en nitrógeno líquido para mantenerlo fresco cuando suba el voltaje para que pueda conducir más corriente, pero eso solo es útil para ciertas aplicaciones.

Parte del problema es que las CPU están diseñadas con una metodología llamada RTL que requiere relojes, y otra es que están diseñadas para admitir una metodología de programación de la década de 1970. Es decir, nuestra capacidad para poner circuitos en Silicon ha mejorado en muchos órdenes de magnitud (química y física), pero nuestra capacidad para usarlos no ha mejorado mucho (software). Eso podría cambiar a medida que comenzamos a usar más máquinas de IA que prefieren un modelo de programación reactiva con PiM y procesadores asíncronos.

Creo que por varias razones no hemos visto un aumento importante en las velocidades de reloj, pero notará que el rendimiento de la CPU ha seguido aumentando. La razón es que los fabricantes de chips han elegido mejorar el rendimiento en el camino de menor resistencia. Eso puede significar que el aumento de la velocidad del reloj creó más problemas de los que resolvió. Obtuvieron un rendimiento significativo de los reductores de matriz que redujeron la potencia y el tamaño que aumentaron el paralelismo y aumentaron el tamaño y el rendimiento de la caché, así que eso es lo que han hecho.

La velocidad del reloj ya no es un indicador lineal del rendimiento de la CPU.

La tendencia es hacia un procesamiento paralelo heterogéneo con múltiples núcleos (núcleo dual, núcleo cuádruple, núcleo octo …) en una sola unidad central de procesamiento (CPU), en lugar de un solo núcleo en una sola CPU, funcionando a una frecuencia máxima absoluta. Este enfoque de subprocesos múltiples reduce el consumo de energía (TDP, potencia de diseño térmico) y el calor resultante, en relación con un solo núcleo que funciona en serie.

El modelo tradicional de procesamiento era como datos acumulados en una sola cola larga, esperando ser procesados, con una gran utilización de otros recursos compartimentados. Estos recursos incluyen memoria muy rápida, como caché L1 y L2 que realizan operaciones de recuperación previa de datos, la unidad de lógica aritmética (ALU) realiza cálculos, y así sucesivamente, para seguir agregando a la cola para procesar y mantener el flujo.

El procesamiento en paralelo sería como abrir muchas líneas para el servicio, en lugar de una sola línea larga donde los recursos se asignan en una sola ubicación y funcionan lo más rápido posible, como un cliente atendido a la vez. Ilustrar con analogía es tener varios o muchos registros en un mercado de compras, o en un restaurante de comida rápida, en una estación de servicio; en el DMV (esto puede ayudar a acelerar las cosas, pero puede no parecer así). Cuando la línea crece más y más, en la caja registradora, el individuo no trabaja más rápido, piden que se abra otra caja registradora. “Puedo ayudar a quien sea el próximo”.

Lo contrario de las operaciones paralelas y el subprocesamiento múltiple sería el procesamiento tradicional de un solo núcleo, más parecido a la línea para un viaje en Disneyland, que se alarga cada vez más y luego se pliega en un laberinto enrevenado. Esto puede hacer que la línea parezca más corta y compacta, sin embargo, el cuello de botella para el servicio (o el procesamiento de datos) todavía está allí. No importa qué tan rápido se sirva cada marcador de posición en la línea, en última instancia, hay un punto en el que las cosas alcanzan un límite teórico y se atascan en eficiencia.

El procesamiento paralelo heterogéneo, que ha sido utilizado por las GPU (unidades de procesamiento gráfico) como en las tarjetas gráficas de escritorio, ha sido durante mucho tiempo una forma más eficiente de administrar múltiples tareas (cálculos) muy rápidamente, con muchos núcleos (más de 2, 4, 8, como en una CPU), pero miles de núcleos como la arquitectura central CUDA de Nvidia. De esta manera, a medida que aumenta el número de núcleos , no el número total de transistores como se menciona en la Ley de Moore y los límites de la velocidad de conmutación del transistor.

Los transistores funcionan en las computadoras como interruptores, ya sea encendidos o apagados, lógica 1 o lógica 0. Antes del advenimiento de los transistores, los tubos de vacío solían realizar esta tarea de conmutación. Ver: computadora SAGE (IBM-SAGE-computer).

El cuello de botella para la eficiencia total del procesamiento de múltiples núcleos se convierte en el ancho de banda de memoria para los núcleos, ya que su número continúa aumentando, como en miles de ellos, procesando en paralelo simultáneamente.

Por esta razón, muchas de las supercomputadoras más rápidas del mundo se componen de muchas GPU (tarjetas gráficas) y no de CPU. (Titán (supercomputadora))

Esta es también la razón por la cual muchos recurrieron a múltiples tarjetas gráficas para procesar soluciones para Bitcoin de manera más eficiente, en lugar de ejecutar múltiples computadoras, cada una con múltiples CPU. Se sabe que la minería de Bitcoin tiene un algoritmo de hash computacional con un “problema” inherente de complejidad gradual (dificultad incorporada). Como producto basado en el trabajo, es necesario que la prueba de trabajo proporcione validez como tal.

Cada bloque de 2016 (aproximadamente 14 días), el objetivo de dificultad se ajusta en función del rendimiento reciente de la red, con el objetivo de mantener el tiempo promedio entre los nuevos bloques en diez minutos. De esta manera, el sistema se adapta automáticamente a la cantidad total de energía minera en la red. [9]: cap. 8

Por ejemplo, entre el 1 de marzo de 2014 y el 1 de marzo de 2015, el número promedio de mineros nonces tuvo que intentar antes de crear un nuevo bloque aumentado de 16.4 quintillones a 200.5 quintillones. [45]

El sistema de prueba de trabajo, junto con el encadenamiento de bloques, hace que las modificaciones de la cadena de bloques sean extremadamente difíciles, ya que un atacante debe modificar todos los bloques posteriores para que se acepten las modificaciones de un bloque. A medida que se extraen nuevos bloques todo el tiempo, la dificultad de modificar un bloque aumenta a medida que pasa el tiempo y aumenta el número de bloques posteriores (también llamados confirmaciones del bloque dado). [46]

En cierto punto, la complejidad se hizo tan grande (continuará haciéndolo) y entonces surgió el uso de múltiples GPU en matrices para calcular las soluciones de Bitcoin, luego rápidamente se volvió prohibitivo y luego obsoleto, reemplazado por sistemas que contenían circuito impreso placas cargadas con conjuntos de chips ASIC [Circuito integrado específico de la aplicación], que funcionan como pequeñas microcomputadoras en una sola placa, hechas a medida para servir funciones específicas, en comparación con innumerables núcleos, cada uno con funciones más genéricas (y mayores recursos desperdiciados), para poner Es muy simple. Este enfoque basado en ASIC finalmente se volverá obsoleto.

De esta manera, el número de núcleos y su eficiencia individual, posiblemente, han reemplazado el número de transistores , y la frecuencia o velocidad máxima de un solo núcleo, y en algún momento, el procesamiento multinúcleo también alcanzará un límite teórico. Quizás para entonces, se habrá avanzado mucho en la investigación de la computación cuántica * a medida que las tecnologías actuales alcancen sus límites teóricos y, por lo tanto, la obsolescencia.

* https://en.wikipedia.org/wiki/Qu

Estamos en una etapa similar a las transiciones de base de código de 16 a 32 bits y de 32 a 64 bits. El desarrollo del hardware dio un salto que la base de código de software necesita alcanzar. Esta vez es un doble golpe, todavía estamos en la etapa inicial de hacer la transición de 64 bits y también necesitamos convertir todos los compiladores para aprovechar el procesamiento de subprocesos múltiples o multinúcleo. Tardará una década en completarse estos procesos y para entonces ya los habremos dejado obsoletos.

Solo para actualizar los datos de estas preguntas ya que muchas de las respuestas son bastante antiguas. Intel ha dado a conocer que las CPU Ivy Bridge se diseñaron para tomar el lugar de la venerable arquitectura Nehalem, y es un encogimiento de 22 nm de Sandy Bridge que solo aporta algunas mejoras menores desde el punto de vista arquitectónico.
La hoja de ruta de Intel se extiende hasta el nombre en clave Chip Skylake con un tamaño de matriz de 10 nm.

Wikipedia tiene esto que decir:
“Sandy Bridge es el nombre en clave para una microarquitectura de procesador de segunda generación desarrollada por Intel . El objetivo del proceso de 32 nm comenzó en 2005 en el Centro de Desarrollo Israel de Intel en Haifa. El nombre en clave para esta arquitectura pasó a llamarse” Gesher “(que significa” puente “en hebreo).

Los procesadores basados ​​en esta arquitectura se anunciaron el 3 de enero de 2011 y se lanzaron por primera vez el 9 de enero de 2011. Durante el Foro de desarrolladores de Intel en 2009, se mostró una vista previa de un procesador Sandy Bridge con A1 que pasa a 2 GHz.
El encogimiento de matriz de 22 nm de Sandy Bridge, que aún no se ha lanzado, tiene el nombre en clave Ivy Bridge “.

Un problema con obsesionarse con la velocidad del reloj es que no solo no siempre produce un aumento asociado en el rendimiento de la aplicación, a menudo el retorno es plano o incluso una disminución. Hay numerosas razones para esto.

Como señala Gary Stein, los cambios en la arquitectura o la velocidad del reloj pueden requerir todo tipo de cambios en la infraestructura antes de que aumente el rendimiento. Las primeras aplicaciones de 32 bits fueron impresionantes solo por su capacidad de ejecutarse en una plataforma de 32 bits, no por su rendimiento deslumbrante. Muchos fueron inicialmente más lentos.

Los desarrolladores de software, particularmente Microsoft (compañía), hinchan su software para que crezca lo suficientemente rápido como para consumir cualquier nueva eficiencia que pueda ofrecer una CPU de alto rendimiento. Un diseñador de CPU me dijo que hay un efecto llamado retraso de memoria, en el que la memoria disponible no es lo suficientemente rápida para nuevas velocidades de reloj, por lo que el mayor rendimiento de la CPU se pierde instantáneamente.

Si bien Microsoft Windows continúa abultado e hinchado, me pregunto si la disponibilidad de sistemas operativos alternativos como Linux y los movimientos simultáneos a Cloud Computing y la informática móvil han reducido la demanda del mercado para una carrera continua de microprocesadores. Todavía hay muchas aplicaciones como el modelado 3D, la simulación, los juegos y la animación que siempre exigirán CPU de mayor rendimiento, pero tal vez la demanda general de los consumidores esté disminuyendo.

Actualización: ahora veo que Jason Crawford mencionó anteriormente el problema del retraso de memoria. Mis disculpas por duplicar esta información.

mayor velocidad de reloj => mayor disipación de energía => el chip se calienta => quema / explota / derrite (pared de energía), muy mal

Además, una mayor velocidad de reloj no necesariamente se traduce en un mayor rendimiento del sistema, la CPU es rápida, la memoria es lenta (cuello de botella de memoria / pared de memoria)

Por lo tanto, NO podemos tener velocidades de reloj más altas (pared de energía), y NO necesitamos velocidades de reloj más altas (pared de memoria)

Estoy completamente de acuerdo con las otras respuestas publicadas y me gustaría agregar dos temas a la discusión: Paralelización y Voltaje de la CPU.

Si bien no me siento técnicamente competente como para dar discusiones detalladas de los temas (acabo de terminar mi segundo año), sé que generalmente son dos áreas que se están explorando e investigando para obtener avances en la reducción de energía y la eficiencia de la tubería. Sin embargo, encontré un documento que aborda ambos problemas. * Puedes leerlo en:

Para un ejemplo del mundo real de cómo se ha utilizado la paralelización (el tema con el que estoy más familiarizado) en el diseño moderno, considere la arquitectura Cell Processor utilizada para conducir la PlayStation 3 (consola de videojuegos). El microprocesador contiene un total de 9 núcleos, 1 controlador y 8 “unidades de procesamiento”. Los 8 sub núcleos están optimizados para las operaciones aritméticas que acompañan las necesidades intensivas de 3D A / V de juegos y películas, mientras que el núcleo primario maneja el sistema operativo y la delegación de tareas. La ventaja aquí es que las tareas de bajo consumo, como el control de la GUI del sistema operativo y la carga del programa, se producen en un solo núcleo, mientras que las tareas intensivas se solicitan a pedido.

Esto reduce el consumo general de energía de la unidad, al tiempo que aumenta la eficiencia general y el potencial de procesamiento. También es una explicación parcial de por qué las velocidades de reloj no han aumentado en los últimos 5 años. Al dividir las tareas en subrutinas paralelas y programarlas en hardware específico de la tarea, los diseñadores de chips reconocen que se pueden lograr grandes ganancias en velocidad y potencia, sin instalar más transistores más pequeños y de mayor potencia en los chips.

* Casualmente, mi Búsqueda de Google en busca de documentos sobre este tema fue creada por mi discreto profesor de matemáticas.

Un ejemplo real de esto es Intel Ivy Bridge, que creo que el x86 más pequeño es Die shrink disponible en el mercado http://en.wikipedia.org/wiki/Die … usando el proceso de 22nm, sin embargo, según los investigadores, solo hay muchos encogimientos de troquel con los que puede ir, indican que el proceso por debajo de 10 nm será demasiado bajo para funcionar correctamente, y el calor no se transferirá correctamente, tenga en cuenta que la disipación de calor del puente de hiedra fue peor que el encogimiento de troquel del puente arenoso permite meter más piezas la CPU, por lo que Intel y AMD claramente decidieron no mejorar la CPU con más componentes (bueno, tal vez no mucha AMD debido a su política de MOAR COARES), pero comenzaron a agregar GPU o caché Intel Haswell (próxima generación) tendrá solo 10 % De aumento del rendimiento de la CPU pero 50% de arranque interno de la GPU también lea este artículo de toms hardware
detallando cómo Moore Law no es precisa
y Wright Law es más precisa http://www.tomshardware.com/news

Creo que lo último que dijo Matt M. es bastante importante: hemos llegado al punto en que la velocidad del reloj del procesador no es el cuello de botella. Matt mencionó el disco y la red, pero * memoria * también es clave. Si su reloj funciona 3 veces por nanosegundo, pero tarda 10 ns en llegar a la RAM, entonces ha perdido 30 ciclos cada vez que pierde un caché.

El siguiente enlace proporciona una explicación intuitiva:
Need For Speed ​​(Qué tan rápido puede funcionar un dispositivo informático)

La CPU procesa los datos que se le proporcionan muy rápidamente. Pero necesita datos válidos proporcionados desde el mundo externo. Estos datos generalmente residen en la memoria. Ahora, el acceso a la memoria de la CPU tarda mucho más (aproximadamente 10 veces más que el tiempo de procesamiento del procesador) para recibir los datos en los que puede trabajar.

Todo este tiempo la poderosa CPU permanece inactiva. Ahora, aumentar la velocidad interna no tiene ningún efecto si este factor externo es el factor limitante real.

Se están ideando muchas estrategias complejas para enfrentar el segundo desafío. Esto incluye el uso de caché multicapa, la creación de interfaces de memoria más rápidas, etc.

Hace un tiempo leí esta respuesta sobre el tamaño del circuito,

Sonaba interesante, pero todavía no entiendo por qué el autor supone que las señales eléctricas en los chips se propagan a la velocidad de la luz (un artículo de New Scientist [http://www.newscientist.com/arti…] afirma que incluso en los electrones de grafeno viajar a alrededor de 0.003 veces la velocidad de la luz) o su limitación de tamaño 1/10.

Quizás ustedes entiendan su punto.

Es difícil hablar de un límite de frecuencia absoluto, ya que existen muchas limitaciones diferentes en la velocidad del reloj, algunas de las cuales son técnicas y otras son puramente físicas.

Una suposición importante en el diseño de circuitos es que todos los elementos del circuito están “agrupados”. Esto significa que el tiempo de propagación de la señal de un elemento a otro es insignificante. ‘Insignificante’ significa que el tiempo que tarda la señal producida en un punto del circuito en propagarse al resto del circuito es (muy) pequeño en comparación con los tiempos involucrados en la operación del circuito.

A todos los efectos prácticos, las señales eléctricas viajan a la velocidad de la luz. Tomemos un ejemplo: supongamos un procesador que funciona a 1 GHz. Esto significa mil millones de ciclos de reloj por segundo. Esto también significa que un ciclo de reloj toma una billonésima de segundo, o un nanosegundo. La luz viaja unos 30 cm (aproximadamente un pie) en un nanosegundo. Por lo tanto, el tamaño de los circuitos involucrados a tales velocidades de reloj será mucho mejor que (al menos 1/10 de) 30 cm. Entonces, su tamaño máximo de circuito es de 3 cm. Teniendo en cuenta que el tamaño real del núcleo de la CPU es inferior a 1 cm por lado, todavía estamos en aguas seguras.

Recuerde que esto fue para 1 GHz. Si la velocidad del reloj aumenta a 100 GHz, un ciclo será de 0.01 nanosegundos, y las señales solo se propagarán 3 mm en este tiempo. Por lo tanto, su núcleo de CPU idealmente tendrá que tener un tamaño de aproximadamente 0.3 mm. Es bastante difícil meter un núcleo de CPU en un espacio tan pequeño. Entonces, todavía estamos en aguas seguras, pero en algún lugar entre ahora y 100 GHz, vamos a llegar a esta barrera física.

¿Qué sucede cuando se viola esta limitación de tamaño? Lo que sucede es que ciertas partes de su circuito están en el ciclo ‘actual’, y otras partes están en el ciclo
ciclo ‘anterior’. Se vuelve realmente difícil manejar tales sistemas distribuidos. Entonces
en el diseño, tendrá que manejar los retrasos en la propagación de la señal, la forma del circuito
comienza a jugar un papel importante en el diseño. De hecho, se vuelve más como separado
procesadores que un solo procesador.

Fui a un seminario a fines de 2011 (noviembre / diciembre … no puedo recordar) donde la investigación del orador encontró una manera inteligente de superar algunos problemas de velocidad de la CPU. Utilizó excelentes trucos de cálculo de matrices para el análisis del método de elementos finitos (FEM) de ciertas geometrías complejas. Si bien la charla se basó en sus ingeniosos trucos para hacer esto, mencionó que la velocidad límite superior de una sola CPU era de alrededor de 5 GHz. Nos estamos acercando a eso ahora, y aunque no estoy seguro de poder encontrar dónde obtuvo esta información, me sorprendería si pudiéramos obtener más de 5 GHz de 1 CPU en el futuro. Como se mencionó anteriormente, la idea ha cambiado de una CPU extremadamente rápida a múltiples que trabajan juntas, así como a la computación basada en la nube.

¿Te gustaría aumentar la frecuencia de reloj de tu CPU?

Dentro de algunos límites, Fmax escala linealmente con Vdd e inversamente con Tj. En términos prácticos, esto se puede lograr fácilmente en un baño de nitrógeno líquido. Si eso suena demasiado molesto, simplemente escriba “overclocking extremo” en YouTube y podrá ver a alguien más hacerlo.

Las CPU realmente han alcanzado el límite donde el flujo de electrones a través de toda la CPU ya no es posible dentro de un ciclo de reloj. Si simplemente aumentamos los Hz, entonces la entrada del reloj ha comenzado en un nuevo conjunto de instrucciones antes de que el lado lejano del chip se haya completado y genere el resultado de las instrucciones anteriores. Si los electrones fueran autos, ¡eso sería un montón de pilas!

Es por eso que MHz y GHz ya no son números válidos para calificar una CPU, y deberíamos usar MFLOPS o GFLOPS en su lugar (Mega Operaciones flotantes por segundo). También es la razón por la cual las máquinas se están diversificando en multi-core y multiprocesador. Cada núcleo puede estar trabajando en una “tarea” diferente entre sí, compartiendo así la carga de trabajo.