¿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?
cpu
computer-architecture
Tyler
fuente
fuente
Respuestas:
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
fuente
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.
fuente
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).
fuente
Ken ya resumió algunas de las razones en su respuesta . Para ampliar eso aún más
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)
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.
Estos son bastante claros
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:
Se realiza una palanca de cambios simple conectando en serie las chanclas.
Eso solo necesita un flip-flop por bit, por lo tanto, extremadamente compacto. Pero necesita un reloj para desplazarse un poco hacia la izquierda o hacia la derecha. Es por eso que los microcontroladores y las pequeñas CPU integradas solo tienen instrucciones para cambiar por uno. Ver
Cuando tenga más transistores para gastar, puede cambiar a una palanca de cambio de barril . Ahora una CPU puede cambiar bits en un solo reloj con el costo de cientos o miles de transistores
Adición:
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:
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.
fuente
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.
fuente