Solución:
Hyper-threading es donde su procesador pretende tener 2 núcleos de procesador físicos, pero solo tiene 1 y algo de basura adicional.
El punto del hyperthreading es que muchas veces, cuando está ejecutando código en el procesador, hay partes del procesador que están inactivas. Al incluir un conjunto adicional de registros de CPU, el procesador puede actuar como si tuviera dos núcleos y, por lo tanto, utilizar todas las partes del procesador en paralelo. Cuando los 2 núcleos necesitan usar un componente del procesador, entonces un núcleo termina esperando, por supuesto. Es por eso que no puede reemplazar a los procesadores de doble núcleo y similares.
Hyper-Threading es donde dos subprocesos pueden ejecutarse en un núcleo de un solo subproceso. Cuando un hilo en el núcleo en cuestión está estancado o en un estado detenido, el hiperproceso permite que el núcleo trabaje en un segundo hilo en su lugar.
Hyper-threading hace que el sistema operativo piense que el procesador tiene el doble de núcleos y, a menudo, produce una mejora del rendimiento, pero solo en la región del 15-30% en general, aunque en algunas circunstancias, puede haber un impacto en el rendimiento (= <20%).
Actualmente, la mayoría de los chips Atom y todos los i7 (y los chips equivalentes a Xeon) tienen hiperprocesamiento, al igual que algunos P4 más antiguos. En el caso de los Atoms, es un intento desesperado por mejorar el rendimiento sin aumentar mucho el consumo de energía; en el caso de i7s, los diferencia de la gama de chips i5.
El trabajo de procesamiento complejo no se beneficiará mucho de HT, pero ciertas tareas (simples, con muchos subprocesos múltiples), como la codificación de video, se benefician de HT. En realidad, no hay mucho en él …
Para ampliar lo que ya se ha dicho, hyperthreading significa que un solo núcleo de CPU puede mantener dos contextos de ejecución separados y cambiar rápidamente entre ellos, emulando efectivamente dos núcleos a nivel de hardware.
Obtiene un beneficio de velocidad modesto para cargas de trabajo de subprocesos múltiples en comparación con un núcleo único normal. Sin embargo, no se acerca al beneficio de tener dos núcleos independientes. En términos de rendimiento, es mejor pensar en ello como un pequeño impulso en el rendimiento de subprocesos múltiples en un solo núcleo en lugar de tener un rendimiento cercano a los dos núcleos. El tamaño del aumento de velocidad varía según la carga de trabajo; de hecho, para algunas cargas de trabajo, el aumento de rendimiento es bastante decente.
El núcleo con hiperproceso solo tiene una unidad de ejecución principal, pero algunas otras partes de una CPU asociadas con la preparación de instrucciones para procesar y mantener un estado de ejecución están duplicadas.
Los núcleos de procesador tienen una canalización de instrucciones, una cola de instrucciones futuras que se ejecutarán, que se actualiza constantemente, lista para que la CPU ejecute la instrucción en la cabecera de esa cola. Las CPU las usan para optimizar la velocidad de ejecución al observar estas instrucciones futuras y realizar un preprocesamiento simple de bajo nivel en ellas cuando sea posible (tales optimizaciones incluyen “ejecución fuera de orden” y “predicción de rama”).
Los núcleos con subprocesos múltiples tienen canalizaciones de instrucciones duales, y esto, junto con un segundo conjunto de registros, es donde obtiene el beneficio de velocidad para cargas de trabajo de subprocesos múltiples.
Digamos que su sistema está ejecutando varios subprocesos diferentes a la vez. Su sistema asigna cada subproceso a un procesador virtual, y ese subproceso compartirá el procesador virtual con otros subprocesos, pero cada vez que el procesador virtual cambia entre estos subprocesos, básicamente tiene que descartar todo el contexto de ejecución de ese subproceso y cargar otro subproceso.
Pero con el hiperproceso, en lugar de que su núcleo solo pueda retener el estado de un hilo en un momento dado, obtiene la capacidad de que ese núcleo retenga los estados de ejecución de dos hilos a la vez, por lo que puede cambiar entre esos dos con mucho menos penalización porque no descarta la canalización o los registros, y la canalización y los registros del otro subproceso permanecen listos y “activos” para que puedan cambiarse y utilizarse de inmediato. Si está ejecutando más subprocesos que procesadores virtuales, aún necesita realizar cambios duros, pero con menos frecuencia, ya que tiene una mayor cantidad de subprocesos en un momento dado cuyo estado de ejecución se conserva.