¿Cuáles son los factores que determinan la velocidad de un procesador?

Cuando dice “velocidad”, ¿se refiere a la velocidad del reloj, el rendimiento (IPC), la latencia o qué?

Si te refieres a la velocidad del reloj, eso tiene que ver con el consumo de energía y la litografía. Cuanto más pequeños son los transistores dentro de una CPU (el tamaño del nodo litográfico), más rápido pueden encenderse y apagarse porque disminuye la distancia que tienen que moverse los electrones. Cuanto mayor sea la Potencia de diseño térmico (TDP), mejor podrá aplicar el overclock (siempre que tenga una refrigeración adecuada).


El rendimiento se incrementa utilizando varios métodos. La canalización y la arquitectura superescalar son 2 de los principales aspectos de diseño utilizados en las CPU modernas que ayudan a aumentar las instrucciones por reloj (IPC).

Explicaré Pipelining con una analogía. Imagine que tiene que lavar 10 cargas de ropa y tiene 1 lavadora y una secadora. Una forma de hacerlo es 1) poner la primera carga en la lavadora, 2) esperar a que la máquina termine de lavar, 3) luego poner la carga en la secadora y esperar a que termine de secarse, vuelva al paso 1. Esto resulta 20 ciclos para terminar 10 cargas. La siguiente imagen explica esto.

La otra forma de hacerlo es 1) poner la primera carga en la lavadora, 2) esperar a que la máquina termine de lavar, 3) luego poner la carga en la secadora y poner una nueva carga en la lavadora mientras la otra está secado, luego vaya al paso 2. Esto da como resultado 10 ciclos para 10 cargas. La siguiente imagen explica esto.

Ahora imagine en lugar de cargas de ropa, estamos enviando las instrucciones de la CPU, y la CPU se divide en varias etapas. Búsqueda de instrucciones, decodificación de instrucciones, ejecución de instrucciones y reescritura de datos. En lugar de enviar una instrucción hasta el final, esperando una reescritura antes de enviar la siguiente instrucción, podemos cargar todas las etapas de la tubería con una instrucción. Sin embargo, hay casos en los que intenta acceder a un recurso que aún no se ha actualizado correctamente porque la etapa de reescritura no ha terminado (por ejemplo, una rama), esto se denomina burbuja, y la tubería debe detenerse y luego Una vez que los datos que necesita están en el lugar correcto, la tubería puede reanudarse. Cuanto más grande sea la tubería, más tiempo pasará esperando (las CPU modernas tienen una arquitectura de tubería profunda de 10-25 etapas).

La solución a este problema es usar un predictor de rama, que puede ser un circuito extremadamente complicado. Las CPU modernas, como la nueva arquitectura Ryzen de AMD, utilizan una ANN (red neuronal artificial) para predecir las ramas con una tasa de precisión de hasta el 95%, en comparación con una tasa de precisión del 70% al 85% de los predictores estándar.


Otra forma de aumentar el rendimiento es obtener los bloques de datos e instrucciones más útiles en una memoria caché, de modo que cuando la CPU necesite esos recursos no tenga que esperar al Ram. Cuanto más exactamente pueda reemplazar los bloques de caché, más rápido se ejecutará la CPU porque Ram tarda aproximadamente 100ns cuando Cache tarda aproximadamente 10ns en acceder. Una vez más, se puede usar un ANN aquí para llenar con mayor precisión el caché con los datos y las instrucciones que probablemente necesitará a continuación.


A continuación tenemos lo que se llama una arquitectura SuperScalar. Imagínese si puede cargar 10 instrucciones en una CPU en lugar de solo una. Algunas instrucciones requieren una unidad de coma flotante, otras solo para la unidad de enteros y otras solo están accediendo a IO. Lo que puede hacer es decodificar varias instrucciones de antemano y dividir los recursos de la CPU en varias instrucciones a la vez.

Es importante tener en cuenta que muchas CPU utilizan ALU de tamaño de byte encadenadas para formar una ALU de 64 bits, esto significa que se pueden realizar 8 operaciones de ALU individuales de 8 bits en un ciclo, 4 operaciones individuales de 16 bits en un ciclo, 2 individuales 32 operaciones de bit en un ciclo o una única operación de 64 bits en un ciclo.

Entonces, lo que realmente limita la forma en que funciona una arquitectura superescalar es el diseño del mecanismo de búsqueda y decodificación de instrucciones. Cuanto más avanzada sea la lógica, mejor será dividir los recursos de la CPU. Sin mencionar que las CPU modernas tienen múltiples núcleos, lo que requiere una lógica adicional para mantenerlos alimentados correctamente.

También la arquitectura Superscalar es una forma de lo que puede haber escuchado llamado Hyperthreading. Sin embargo, cada fabricante de CPU tiene sus propias formas de implementar esto realmente.


La latencia podría considerarse como ping o tiempo de respuesta. Cuando le doy instrucciones a la CPU, ¿cuánto tiempo lleva recuperar un resultado? Este tipo de problemas se pueden resolver con diferentes técnicas de programación. Hay FCFS (primero en llegar), RR (round robin), SJF (primero el trabajo más corto), que son solo algunas técnicas de programación no preventivas y, por supuesto, puede tener un programador preventivo como SRJTN (tiempo de trabajo restante más corto) siguiente).

Al elegir el algoritmo de programación correcto, debe tener en cuenta el tipo de condiciones que puede encontrar. Si no lo hace, puede terminar con un proceso muerto de hambre o en un bloqueo muerto / vivo. Esos son malos

¡Hay tanto para escribir y poco tiempo para hacerlo, si tiene alguna otra pregunta, comentario o edición, por favor dígame!

Lea esto para obtener más información, es donde obtuve las imágenes de la lavadora de tuberías: tuberías

  • Arquitectura del procesador (ARM, 8086, microcódigo, instrucciones disponibles, por ejemplo, AES)
  • Cantidad y tipos de caché (L1, L2, L3, amt por núcleo físico)
  • Número de núcleos físicos (núcleos)
  • Número de núcleos lógicos (hyperthreading)
  • Capacidad para trabajar con múltiples chips de CPU (por ejemplo, Xeon)
  • Fiabilidad (usa memoria ECC o no)
  • Cantidad de memoria direccionable
  • Velocidad / tipo de interconexiones internas
  • Probablemente todavía faltan algunas cosas.

Una de mis computadoras favoritas era la Dell T5500, que podía tomar 2 Xeon’s, hasta 6 núcleos cada una + hypertheading, por lo que 24 núcleos para su oferta. Conjunto de instrucciones AES y hasta 72 GB de memoria ECC.

Puede comparar las características de la CPU en las especificaciones del producto Intel®

Luego está AMD, ARM y otros tipos de CPU, pero hay algo de información.

La velocidad de un procesador depende solo del reloj (y, por lo tanto, de la velocidad de cambio de nivel del transistor y, por lo tanto, de la tecnología de fabricación utilizada). Esta es la velocidad (o generalmente un múltiplo de la misma) a la que es capaz de ejecutar instrucciones obtenidas por ella.
Esto es válido para un chip procesador genérico. Si estaba preguntando sobre el procesador en una computadora, entonces esto sigue siendo cierto, pero ahora viene una gran cantidad de otras dependencias. El almacenamiento en caché, las colas y el revestimiento de tuberías son comunes en los procesadores modernos y, por lo tanto, sus velocidades, tamaños y algoritmos también pueden influir en la velocidad neta del procesador. Pero estos solo determinan la velocidad “visible” del procesador, es decir, en su hogar, el procesador todavía se está sincronizando a su propia velocidad máxima permitida.

Si por “velocidad” también quiere decir cosas como el rendimiento, entonces factores como el tamaño de la ALU y los anchos de bus correspondientes también tienen una contribución importante: un procesador que puede trabajar en 16 bits de datos a la vez es probable que sea más rápido que el que funciona en 8 bits a la vez. Lo que esto significa “a la vez” es: ¡el viejo reloj de nuevo!

Si desea una respuesta breve, el factor más importante es la velocidad del reloj. Aparte de esto, hay muchos factores que afectan la velocidad de los procesadores, pero pueden no contribuir mucho a mejorar, pero también son importantes. Todos dependen de alguna manera de la velocidad del reloj como el bus, la velocidad de registro, el diseño del conjunto de instrucciones (puede ser independiente del reloj). Si está interesado, puede ir a los siguientes enlaces.

Factores que afectan la velocidad del procesador
Factores que afectan la velocidad de procesamiento
Factores que afectan el rendimiento de la CPU

Espero haber ayudado 😀