Las cosas son mucho más complejas de lo que eran en los días de una instrucción de CPU por ciclo de reloj.
Ahora hay una canalización para cada instrucción que consta de una serie de pasos. He escuchado hasta 41, aunque eso fue hace un tiempo y no tengo idea de cómo son las tuberías actuales de la CPU. Sé que si la tubería es lo suficientemente larga, puede comenzar una nueva instrucción en la tubería antes de que termine la última instrucción, a veces en el mismo ciclo de reloj, de modo que su núcleo único esté haciendo efectivamente dos cosas a la vez.
Sin embargo, hay un truco aquí. No puede usar esto para acelerar la velocidad a la que su procesador mastica las instrucciones de un programa específico. Hay un problema de corrección: la siguiente instrucción puede depender del resultado aún no determinado de la instrucción anterior. Para aprovechar la larga tubería de manera segura , el chip presentará dos núcleos de procesador separados al planificador del sistema operativo y se enviarán instrucciones alternativas a cada núcleo para que dos instrucciones al mismo "núcleo" nunca estén en la tubería al mismo tiempo. De esta manera, podemos estar seguros de que las instrucciones ejecutadas simultáneamente no interferirán entre sí. Esto se llama hyperthreading .
Vale la pena señalar aquí que, si bien el hyperthreading puede aumentar significativamente la cantidad de trabajo que obtiene de su CPU, no es tan bueno como tener tantos núcleos físicos. Dependiendo de su carga de trabajo, puede significar una mejora mínima del 15% o una mejora del 40%. En algunas circunstancias, es posible que desee deshabilitar la función para que los núcleos restantes tengan acceso exclusivo exclusivo a la caché L1 / L2 para ese núcleo (esto a veces se hace con servidores de bases de datos dedicados).
Cuando su chip anuncia que tiene 2 núcleos con 4 hilos, eso significa que es un procesador de doble núcleo que admite hyperthreading.