Si la velocidad de la carga eléctrica no ha cambiado, ¿cómo se han vuelto más rápidas las computadoras?


48

Todo el mundo sabe que la velocidad informática ha aumentado drásticamente desde su invención, y parece que continuará. Pero una cosa me desconcierta: si hiciera pasar una corriente eléctrica a través de un material hoy, viajaría a la misma velocidad que si lo hiciera con el mismo material hace 50 años.

Con eso en mente, ¿cómo es que las computadoras se han vuelto más rápidas? ¿Qué área principal del diseño del procesador es la que ha dado estos incrementos de velocidad increíbles?

Pensé que tal vez podría ser uno o más de los siguientes:

  • Procesadores más pequeños (menos distancia para que viaje la corriente, pero me parece que solo podría obtener ganancias marginales aquí).
  • Mejores materiales

44
Esa es una buena pregunta. Por supuesto, el material en sí no es tan importante: en los últimos 100 años, los automóviles se han vuelto más rápidos, pero el gas sigue siendo el mismo (más o menos), solo que el motor se volvió más eficiente. La respuesta inicial se puede encontrar aquí , pero espero que siga una respuesta más detallada.
Ran G.

El tamaño es un gran problema aquí. Pero afaik hemos llegado (o estamos cerca) a una barrera física en el diseño de chips. (No soy un experto aquí, otros sabrán más sobre esto). Por supuesto, el tamaño del procesador no es el único parámetro.
A.Schulz

La frecuencia del tacto de la CPU está limitada por la velocidad de los electrones en los materiales utilizados, pero otros factores lo han estado dominando.
Raphael

Porque no fueron óptimamente rápidos en primer lugar, y todavía no lo son. La velocidad de la luz no es el paso determinante de la velocidad.
user207421

Respuestas:


54

Si hiciera pasar una corriente eléctrica a través de un material hoy, viajaría a la misma velocidad que si lo hiciera con el mismo material hace 50 años.

Con eso en mente, ¿cómo es que las computadoras se han vuelto más rápidas? ¿Qué área principal del diseño del procesador es la que ha dado estos incrementos de velocidad increíbles?

Obtiene conclusiones erróneas porque su hipótesis inicial es incorrecta: cree que la velocidad de la CPU es equivalente a la velocidad de los electrones en la CPU.

De hecho, la CPU es una lógica digital síncrona. El límite para su velocidad es que la salida de una ecuación lógica será estable dentro de un período de reloj. Con la lógica implementada con transistores, el límite está relacionado principalmente con el tiempo requerido para hacer que los transistores cambien. Al reducir el tamaño de su canal, podemos hacer que cambien más rápido. Esta es la razón principal para mejorar la frecuencia máxima de las CPU durante 50 años. Hoy, también modificamos la forma de los transistores para aumentar su velocidad de conmutación, pero, que yo sepa , solo Intel, Global Foundries y TSMC pueden crear FinFET hoy.

Sin embargo, hay otras formas de mejorar la velocidad máxima de reloj de una CPU: si divide su ecuación lógica en varias más pequeñas, puede acelerar cada paso y obtener una mayor velocidad de reloj. También necesita más períodos de reloj para realizar la misma acción, pero, utilizando técnicas de canalización , puede hacer que la velocidad de las instrucciones por segundo siga su velocidad de reloj.

Hoy, la velocidad de los electrones se ha convertido en un límite: a 10 GHz, una señal eléctrica no se puede propagar en más de 3 cm. Esto es aproximadamente del tamaño de los procesadores actuales. Para evitar este problema, puede tener varios dominios síncronos independientes en su chip, lo que reduce las restricciones en la propagación de la señal. Pero este es solo un factor limitante, entre la velocidad de conmutación del transistor, la disipación de calor, EMC y probablemente otros (pero no estoy en la industria de la fundición de silicio).


Esta es una buena información. Nunca antes había considerado que hubiera un límite superior en la velocidad del reloj.
nick

3
Que 3 cm a 10 GHz es optimista. Los electrones en los cables tienden a ser bastante más lentos que los fotones en el vacío.
8bittree

66
@ 8bittree: la velocidad de los electrones no es relevante, ¿verdad? Lo que importa es la velocidad de la señal, que es mucho más rápida.
Harry Johnston el

1
@HarryJohnston Hmm ... parece que tienes razón según Wikipedia . Pero las señales mismas son aún más lentas que la luz. Y 3 cm a 10 GHz se basa en la luz en el vacío
8bittree

1
Además de que los transistores más pequeños son más rápidos, puede agregar más en un chip. Hay una compensación tiempo / espacio para los circuitos, por lo que más transistores significa circuitos más rápidos. es decir. puede hacer un sumador de 32 bits con solo unas pocas docenas de transistores, pero se necesitarían muchos tics de reloj para calcular una sola adición. Las últimas CPU de Intel pueden hacerlo en un reloj, lo que supongo que requiere 100.000 transistores.
BlueRaja - Danny Pflughoeft

15

Hay muchas variables complejas que afectan la velocidad general de la CPU, pero una de ellas es la velocidad del reloj, que aumentó a mediados de la década de 2000 y luego se desinfló debido a limitaciones físicas. El consumo de energía por chip también aumentó durante ese período para compensar las pérdidas / fugas de chips. Los chips de CPU se calientan demasiado y la tecnología de enfriamiento se vuelve más importante, y no se puede aplicar más potencia (¡sin literalmente derretirlos!).

Extremetech.com ofrece una buena encuesta que señala que se cree que la ley de Moore está impulsada principalmente por la escala de Dennard . Este último se derrumbó a mediados de la década de 2000. Hay muchos otros factores / mejoras de diseño involucrados en la "velocidad" del chip (donde la "velocidad" se mide como el tiempo general de ejecución del código y no simplemente la velocidad del reloj) que tienden a enmascarar el punto de inflexión en la capacidad del hardware, como cachés, paralelismo de CPU / multinúcleo , predicción de ramificación, etc., que se agregaron con anchos de compuerta más pequeños (y, por lo tanto, muchas más compuertas por chip para una funcionalidad adicional). Los anchos de puerta también han tendido a dejar de disminuir o al menos disminuir menos rápidamente cada generación.

¿Por qué estas tendencias limitantes no son muy conocidas? Algunas de las entidades que tienen el mayor conocimiento de estas tendencias "tienen más que perder" y en realidad son las menos propensas a publicitarlas. Por ejemplo, Intel, con un valor de miles de millones de dólares, probablemente no publicará datos internos propietarios que indiquen límites o disminuciones en el rendimiento futuro.

Hay nuevas posibilidades en el horizonte que podrían conducir a tendencias completamente nuevas (pero algunas implican tecnología / técnicas de fabricación casi completamente diferentes) que incluyen chips fotónicos, chips 3-D donde los chips se colocan en múltiples capas, computación cuántica, nanotecnología como el nanotubo transistores, etc.


vea también ley de
moores

Una cosa que siempre he deseado sería el desarrollo del sistema operativo y el soporte del lenguaje para el concepto de grupos de núcleos, con cada grupo con un sistema de memoria uniforme, y todos los núcleos también tienen acceso a un sistema de memoria común. Debería ser posible que un código diga "Quiero generar un subproceso que vea exactamente la misma memoria que yo en todo momento" y que el sistema se asegure de que todos los subprocesos que supuestamente vean la misma memoria se ejecuten en el mismos núcleos Algunos algoritmos pueden hacerse mucho más eficientes cuando tales garantías están disponibles, pero en muchos sistemas el único ...
supercat

... la forma de lograrlo es hacer que una aplicación elija un núcleo de CPU y no permita que los hilos se ejecuten en ningún otro, un enfoque que es realmente horrible.
supercat

2
Las velocidades de reloj no han aumentado significativamente en los últimos 10 años. Agregar núcleos, hacer conjuntos de instrucciones en una sola instrucción, etc. reducir los cuellos de botella en otros lugares, por ejemplo. El ancho de banda de la memoria ha sido el principal contribuyente a la "velocidad" de la CPU moderna.
JamesRyan

5

Delegación a procesadores adicionales

Otra consideración (además de las otras excelentes respuestas) es la delegación de tareas a otros procesadores. En los primeros días de la informática, solo había un procesador. Para los gráficos, el cálculo se compartió con otro cálculo en la misma CPU. Ahora, tenemos procesadores separados para el procesamiento de gráficos.

Múltiples núcleos

Muchos de los procesadores modernos tienen múltiples núcleos, en la misma pieza de silicio. Debido a que comparten la misma pieza de silicio, no se ven tan afectados por la desaceleración de pasar del chip a otro núcleo / procesador. Ejemplo: procesadores gráficos.

Expansión de memoria y dirección

Los primeros microprocesadores de 8 bits tenían un rango de direccionamiento más pequeño que los procesadores actuales de 32 bits y 64 bits. Los procesadores modernos tienen un mayor rango de memoria, lo que significa que se pueden realizar más cálculos en la memoria en lugar de tener que acceder al almacenamiento externo.

Esto también se aplica a la memoria en chip también. El espacio de direcciones más grande permite memorias más grandes más cerca del núcleo central, al tiempo que deja un gran espacio de direcciones fuera del silicio.

Tuberías y cachés

Con la memoria cada vez más barata, las computadoras modernas ahora están implementando canales de datos e instrucciones más sofisticados, así como cachés de datos e instrucciones. Esto acelera la ejecución al reducir la necesidad de ir de la memoria más lenta (fuera del silicio) a la memoria caché interna. Algunos procesadores tienen la capacidad de contener forbucles en sus cachés de instrucciones.

Resumen

Las computadoras actuales son mucho más rápidas, no solo por los avances en las tecnologías de transistores y silicio, sino también por la delegación de tareas a otros procesadores / núcleos. La memoria cada vez más rápida y económica permite a los procesadores tener mucha memoria cerca de la CPU. Los rangos de direccionamiento permiten más memoria, lo que significa menos recuperaciones al almacenamiento externo. Los tamaños de registro más grandes permiten obtener más datos por ciclo (4 bytes con un sistema de 32 bits, 1 byte con un sistema de 8 bits). Múltiples núcleos permiten operaciones en paralelo en lugar de serializarlos.


4

Casi todos los avances en la velocidad de la computadora provienen de una de estas áreas:

Transistores más pequeños

Dos cosas resultan de hacer los transistores más pequeños:

  1. Están físicamente más juntos, por lo que el tiempo que tarda una señal eléctrica en viajar de origen a destino es menor. Entonces, aunque las señales eléctricas no viajan más rápido que hace 50 años, a menudo viajan distancias más cortas ahora .
  2. Se pueden incluir más transistores en un chip, lo que significa que se puede hacer más "trabajo" al mismo tiempo. Cuantos más transistores se agreguen, más difícil será encontrar trabajo útil para ellos, pero se utilizan muchos trucos ingeniosos (ver más abajo).

Más "trabajo útil" por instrucción

Por ejemplo, algunos procesadores carecen de instrucciones para multiplicar o dividir enteros; en cambio, esta tarea debe realizarse con rutinas de software lentas. Agregar instrucciones de multiplicar y dividir acelera considerablemente las cosas. Agregar instrucciones de punto flotante puede acelerar el software que requiere números de punto flotante.

Una forma importante de hacer más "trabajo útil" por instrucción es aumentar el tamaño de la palabra . Las CPU que pueden realizar operaciones en números de 32 bits a menudo requieren muchas menos instrucciones para realizar la misma tarea que las CPU de 16 u 8 bits.

Algunos procesadores admiten instrucciones que hacen varias cosas a la vez, en particular instrucciones que realizan la misma operación en múltiples elementos de datos ( SIMD ).

Más instrucciones por ciclo.

El "ciclo de reloj" es cómo el procesador pasa de su estado actual al siguiente. En cierto sentido, es la unidad de trabajo más pequeña que el procesador puede hacer a la vez. Sin embargo, el número de ciclos de reloj que toma una instrucción particular depende del diseño del procesador.

Con la llegada de los procesadores canalizados , fue posible que las instrucciones separadas se "superpusieran", es decir, una comenzaría antes de que la anterior terminara. Sin embargo, ciertas instrucciones pueden invalidar la siguiente instrucción, que no se conocerá hasta que la próxima instrucción se haya ejecutado parcialmente, por lo que las cosas pueden complicarse. (Los procesadores canalizados incluyen lógica para asegurarse de que todo salga bien, pero las características de rendimiento son más complejas).

Los procesadores superescalares llevan esto al siguiente nivel, literalmente permitiendo que dos instrucciones se ejecuten al mismo tiempo, y la ejecución fuera de orden lo lleva un paso más allá, permitiendo que las instrucciones se ejecuten fuera de orden. Estas características requieren un análisis del flujo de instrucciones, determinando qué instrucciones no chocan entre sí.

Aunque hay otros trucos similares (por ejemplo , predicción de rama , ejecución especulativa ), lo más importante es la imagen general:

  • cada instrucción toma un cierto número de ciclos de reloj para completarse (no necesariamente constante)
  • pero varias instrucciones pueden estar en progreso a la vez
  • así que hay " instrucciones por ciclo " medibles que es> 1 para procesadores de alta gama
  • pero depende mucho de la carga de trabajo

Más ciclos por segundo.

En otras palabras, mayor velocidad de reloj . El aumento de la velocidad del reloj no solo aumenta el calor generado, sino que también requiere un diseño de chip mucho más disciplinado, porque hay un límite de tiempo menor para que el circuito se estabilice. Obtuvimos mucho kilometraje de este hasta la década de 2000 cuando alcanzamos algunos límites prácticos.

Datos en el lugar correcto en el momento correcto

Aunque los componentes dentro de la CPU se han ido acercando cada vez más debido a la reducción de los transistores, la CPU y la RAM todavía están a una distancia de 5-10 cm. Si una instrucción necesita algo de RAM, esa instrucción no tomará 5 o 6 ciclos para completarse, tomará alrededor de 200. Este es el problema del cuello de botella de von Neumann .

Nuestra arma principal contra esto es el caché . Es más probable que se acceda nuevamente a los datos a los que se accedió recientemente, por lo que se guardan en una memoria especial (llamada caché) que está dentro del chip de la CPU, lo que hace que el acceso sea mucho más rápido.

Sin embargo, otras técnicas (como la canalización y la predicción de ramificaciones ) ayudan al procesador a realizar un trabajo útil mientras espera que lleguen los datos, y también predicen qué datos podrían necesitarse pronto.

Procesadores múltiples y / o especializados.

Es mucho más fácil escribir software para un único procesador que para múltiples procesadores. Sin embargo, a veces los beneficios de rendimiento / costo / consumo de energía hacen que valga la pena.

Además, ciertos procesadores son particularmente adecuados para ciertas tareas. Por ejemplo, las GPU están específicamente diseñadas para los cálculos necesarios para renderizar gráficos y efectos 2D y 3D.

Los procesadores multinúcleo son esencialmente procesadores múltiples en un solo chip.


3

Cuando las computadoras pueden hacer más cálculos por unidad de tiempo, se las considera más rápidas. Es posible que cada cálculo no se realice más rápido que antes, pero se están realizando más cálculos. Una buena analogía sería la cantidad de pasos que da un corredor. Si un corredor se comportó de acuerdo con la ley de Moore, el corredor podría dar el doble de pasos cada dos años. En esencia, el corredor estaría cubriendo el doble de distancia en la misma cantidad de tiempo que el corredor hace dos años. La distancia dividida por el tiempo es igual a la velocidad. 2 X Distancia es igual a 2 X Velocidad.


3

El poder de procesamiento de una computadora / CPU es realmente qué tan rápido viaja la electricidad, sino qué tan rápido se puede encender y apagar. Cuanto más rápido pueda cambiar entre la corriente que fluye y la que no fluye, más información puede procesar dentro de una CPU o transmitir por la línea.


2

Para los procesadores típicos utilizados en las PC, la disipación de calor ha sido un factor limitante durante más de una década, donde los procesadores enfriados por aire en las PC se han limitado a aproximadamente 4 ghz. El enfriamiento con agua aumenta esto a aproximadamente 5 ghz, y el enfriamiento con nitrógeno se ha utilizado para aumentar las velocidades del reloj a alrededor de 6 ghz a 6.5 ghz.

La frecuencia de reloj es básicamente una función del voltaje frente al tamaño lógico del circuito (cuánto tiempo tarda un interruptor en cambiar de estado) Cuanto mayor sea el voltaje o menor sea la lógica del circuito, más rápida será la velocidad, pero esto presenta un problema de disipación de calor ya que las densidades generalmente aumentan junto con la reducción en el tamaño de la lógica del circuito. Con la alta densidad, no queda mucho espacio para que el material conductor del calor disipe el calor. La reducción de la densidad aumenta el costo y también aumenta los retrasos de propagación debido a la mayor longitud de los circuitos.

Las CPU no han sido mucho más rápidas en los últimos años, el Intel i7 4790K actual (4.0 ghz, 4.4 ghz turbo) no es mucho más rápido que el Intel i7 2700K de segunda generación (3.5 ghz, 3.9 ghz turbo), otros que su velocidad de reloj más rápida (aproximadamente 14.3% más rápido). Por otro lado, dado que los gráficos en 3D pueden aprovechar las operaciones paralelas, las tarjetas de video han aumentado su rendimiento en un factor de alrededor de 3 en los últimos 4 o 5 años, algunas tienen el equivalente de más de 3.000 núcleos.


2

Aunque las respuestas ya dadas son buenas, ¡todas parecen muy complicadas!

La respuesta rápida "TLDR" es "número de puertas lógicas" y "qué tan rápido pueden disparar esas puertas lógicas". Piense en las puertas lógicas como 1s y 0s. Esto es solo un transistor / tubo de vacío / lo que se enciende o apaga. 1 está encendido 0 está apagado.

La electricidad no se mueve más rápido o más lento, pero puede meter más unos y ceros en su chip porque los unos y los ceros son más pequeños. Y puedes hacerlos voltear más rápido con el tiempo. ¿Eso hace una respuesta un poco más simple?


2

Los dos factores más importantes son el hecho de que los transistores se han reducido en un grado ridículo y, por lo tanto, ahora tenemos teléfonos inteligentes con más de mil millones de transistores, y el hecho de que cambiar un transistor de un estado a otro se ha vuelto mucho más rápido. El cambio más rápido se traduce directamente en más velocidad. El mayor número de transistores aumenta la velocidad indirectamente porque permite muchas otras mejoras mencionadas: tenemos cachés porque tenemos más transistores. Tenemos más y más registros porque tenemos más transistores. Tenemos instrucciones vectoriales porque tenemos más transistores. Tenemos procesadores duales, cuádruples o de diez núcleos porque tenemos más transistores.

En un grado mucho menor, tenemos mejoras de velocidad debido a un mejor diseño. Por ejemplo, un multiplicador no solo es más rápido porque tenemos más transistores, sino porque usamos mejores métodos. La predicción de rama ha mejorado más allá de tener más transistores disponibles. Pero en general, este es un pequeño efecto en comparación con el poder bruto de mil millones de transistores.

(El procesador en la primera Mac se llamaba procesador Motorola 68000 porque tenía 68000 transistores. Un nuevo iPad tiene aproximadamente 20,000 veces más).


0

Soy ingeniero mecánico, por lo que no estoy familiarizado con cuánto afecta esto a la velocidad de un procesador o si se ha convertido en un factor limitante o no, pero la física detrás de esto es sólida. La inductancia y la capacitancia del circuito afectarán la rapidez con que las señales de voltaje digital pueden subir y bajar, lo que afecta la velocidad de conmutación. Idealmente, las señales de conmutación serían buenas ondas cuadradas. En realidad, están ligeramente deformados e inclinados en los bordes. Las señales deben ser altas y ser lo suficientemente altas como para ser leídas antes del próximo ciclo de reloj. Esencialmente, la onda de señal necesita un "punto plano" en la parte superior. Si cambia demasiado rápido, obtendrá una señal de onda más puntiaguda. Aquellos de ustedes que estén más familiarizados con las señales digitales pueden aclarar si es necesario, pero la idea es correcta.


2
¡Bienvenidos! Que yo sepa, todo lo que dices es verdad. Pero no veo cómo responde a la pregunta de cómo las computadoras han podido ser más rápidas a lo largo de los años.
David Richerby
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.