¿Cómo aumenta el número de transistores en un chip aumentar su velocidad?

8

¿El único propósito de los transistores en una CPU es actuar como los interruptores que definen su conjunto de instrucciones? Y si es así, ¿por qué aumentar el número de transistores aumenta su velocidad?

Tyler
fuente
Esta pregunta se responde con más detalle en esta pregunta de Intercambio de pila de ingeniería eléctrica: electronics.stackexchange.com/questions/5592/… (No está claro si ese tipo de detalle es apropiado aquí.)
Paul A. Clayton

Respuestas:

9

La parte superior de mi cabeza:

  • Más caché , que es más rápido que RAM

  • Más instrucciones SIMD , que se procesan más rápido que las instrucciones de datos individuales

  • Más núcleos , para que pueda hacer dos o más cosas a la vez

  • Más unidades funcionales, como una función de la FPU s, y múltiples ALU s

  • Tuberías , por lo que cada núcleo puede hacer más cosas a la vez

  • Mejor lógica de procesamiento, como una lógica de predicción de rama más sofisticada

Conocer
fuente
2

Si tiene curiosidad sobre este tipo de cosas, le recomiendo el libro The Elements of Computing de Noam Nisan y Shimon Schocken (al menos la primera mitad). Después de analizarlo, podrá responder su propia pregunta en gran detalle con una apreciación completa de las partes involucradas.

El sitio web complementario en realidad tiene algunos capítulos y notas de muestra. Es un libro muy accesible. Lo supe por mi cuenta sin ningún problema y luego tomé una clase nueva en mi universidad que la usó como texto principal.

colitio
fuente
2

La respuesta simple es que más transistores no hacen que el resto de ellos vaya más rápido , pero en lugar de hacer una cosa por período de tiempo, ahora podemos hacer dos (con algunas limitaciones).

Darth Android
fuente
2

Ken ya resumió algunas de las razones en su respuesta . Para ampliar eso aún más

  • Más caché , que es más rápido que RAM

Obviamente, los cachés más grandes necesitan más transistores. Pero con más transistores también tenemos la opción de usar cachés más rápidos . Los cachés de la CPU son solo SRAM, que generalmente está hecho de 6 transistores (AKA 6T SRAM). Sin embargo, cuando hay suficientes transistores, puede valer la pena usar celdas SRAM más rápidas pero más grandes hechas de más de 6 transistores (como 8T, 10T SRAM)

  • Más instrucciones SIMD , que se procesan más rápido que las instrucciones de datos individuales

No solo SIMD sino cualquier tipo de instrucciones de aceleración. Por ejemplo, las arquitecturas modernas a menudo tienen una unidad AES para un cifrado / descifrado más rápido, FMA para un mejor cálculo matemático (especialmente procesamiento de señales digitales) o virtualización para máquinas virtuales más rápidas. Apoyar más instrucciones significa que se necesitan más recursos para decodificarlas y ejecutarlas.

  • Más núcleos , para que pueda hacer dos o más cosas a la vez
  • Tuberías , por lo que cada núcleo puede hacer más cosas a la vez

Estos son bastante claros

  • Más unidades funcionales, como una función de la FPU s, y múltiples ALU s

En el pasado, no había suficiente área de matriz para la FPU, por lo que las personas deben comprar una separada si tienen altos requisitos de aritmética de punto flotante. Con significativamente más transistores, es posible tener la FPU incorporada, lo que acelera mucho las matemáticas de punto flotante

Además, las CPU modernas son superescalares y tratarán de hacer varias cosas a la vez al encontrar piezas de datos independientes y calcularlas antes, aunque el flujo de instrucciones sea lineal y serial. Cuantas más cosas puedan hacer en paralelo, más rápido serán. Para hacer eso, una CPU puede tener múltiples ALU y una ALU puede tener múltiples unidades de ejecución. Si, por ejemplo, una CPU tiene 5 sumadores en comparación con 4 en la generación anterior, entonces ya está funcionando un 25% más rápido en la situación más optimista sin ningún cambio de reloj. Las CPU más sofisticadas incluso emplean la ejecución fuera de orden (que es el caso de la mayoría de las CPU modernas de alto rendimiento)

Las operaciones generalmente se pueden realizar de varias maneras. Si tiene más transistores, tendrá más recursos para usar una técnica más rápida. Algunos ejemplos simples:

  • Cambio de bit:

  • Adición:

    • También se crea un sumador simple conectando sumadores completos en serie. De esta manera, un sumador de N bits necesita N relojes para terminar su trabajo, que ciertamente no es lo que la gente espera en una CPU Sumador de 4 bits
    • Con más transistores podemos acelerar la adición calculando previamente los transportes con carry-lookahead o sumador de carry-save . Todavía se usan los sumadores completos, pero se necesita mucho más espacio para la unidad de precalculación de transporte

Lo mismo se aplica a otras unidades como multiplicadores, divisores, planificador ... Por ejemplo, podemos hacer una multiplicación extremadamente rápida en un solo reloj usando lógica combinacional . Puede ver algunos ejemplos simples en la pregunta Multiplicadores de 3 bits: ¿cómo funcionan? . Pero los transistores necesarios crecerán hasta el cuadrado de los anchos de entrada, por lo tanto, las CPU pequeñas con un multiplicador usan lógica secuencial para ahorrar mucho espacio para el multiplicador:

Las arquitecturas multiplicadoras más antiguas empleaban una palanca de cambios y un acumulador para sumar cada producto parcial, a menudo un producto parcial por ciclo, cambiando la velocidad por el área del dado. Las arquitecturas modernas de multiplicadores utilizan el algoritmo Baugh – Wooley (modificado), los árboles Wallace o los multiplicadores Dadda para agregar los productos parciales en un solo ciclo. El rendimiento de la implementación del árbol de Wallace a veces se mejora mediante la codificación Booth modificada de uno de los dos multiplicandos, lo que reduce la cantidad de productos parciales que deben sumarse

https://en.wikipedia.org/wiki/Binary_multiplier#Implementations

Una vez que tenga un gran grupo de transistores, incluso puede usar la lógica combinacional para hacer un FMA que requiere muchos más recursos que un multiplicador.

Las computadoras modernas pueden contener un MAC dedicado, que consiste en un multiplicador implementado en lógica combinacional seguido de un sumador y un registro acumulador que almacena el resultado. La salida del registro se retroalimenta a una entrada del sumador, de modo que en cada ciclo de reloj, la salida del multiplicador se agrega al registro. Los multiplicadores combinacionales requieren una gran cantidad de lógica, pero pueden calcular un producto mucho más rápido que el método de cambio y adición típico de las computadoras anteriores.

Operación multiplicar-acumular

phuclv
fuente
1

El aumento del número de transistores generalmente se hace haciéndolos más pequeños, lo que los acerca más, lo que reduce el tiempo de propagación de la señal.

pjc50
fuente