¿Por qué mi Intel i7-920 muestra 8 núcleos en lugar de 4 núcleos?

20

Cuando voy al administrador de tareas, veo 8 procesadores pero sé que tengo 4. ¿Por qué?

texto alternativo

Patrick Desjardins
fuente

Respuestas:

39

Hyperthreading .

Hyper-threading abstrae el cambio de tareas de los sistemas operativos. Normalmente, un sistema operativo tiene que lidiar con los procesos de programación en diferentes CPU, así como garantizar que cada tarea que se ejecuta en el sistema tenga su parte justa, pero no demasiado (si algo más lo quiere) de la CPU.

Hyper-threading es una forma de quitar ese segundo proceso de compartir tareas del sistema operativo, al menos por un momento. La razón es que el procesador puede cambiar de tarea mucho más rápido de lo que el sistema operativo puede decirle. Entonces, al presentar dos procesadores lógicos cuando en realidad solo hay uno, el sistema operativo tiene que hacer solo la mitad de las operaciones de cambio de tareas, pero más programación de CPU. Pero el resultado neto es supuestamente una máquina más rápida en operaciones multitarea.

Los beneficios reales de esto varían mucho dependiendo de la carga de trabajo que esté haciendo. Para la mayoría de las personas, no hay ningún daño en dejarlo encendido o apagado. 4 vs 8 hilos es como elegir entre un ferrari o un lamborghini para usuarios domésticos.

Sin embargo, en escenarios de servidor, puede hacer una gran diferencia. Por ejemplo, los hipervisores a menudo pueden obtener un gran aumento de la velocidad mediante el uso de hyperthreading, ya que tienen requisitos de programación de CPU muy estrictos.

Sin embargo, los servidores SQL a menudo no obtienen este aumento, porque a menudo es mejor tener cuatro hilos "grandes" que 8 hilos de tamaño "mediano".

Mark Henderson
fuente
3
Como un Súper Usuario altamente valorado, le sugiero que vuelva a visitar esta respuesta y agregue más detalles . El enlace no ayuda a explicar nada sobre qué es Hyperthreading o qué hace.
James Mertz
11

Que mi amigo es hiperhilo .

Hyperthreading es una forma de subprocesamiento múltiple simultáneo que aprovecha la arquitectura súper escalar. Múltiples instrucciones que operan en datos separados en paralelo. Aparecen en el SO como dos procesadores, por lo que el SO puede programar dos procesos a la vez . Además, dos o más procesos pueden usar los mismos recursos. Si un proceso falla, los recursos se pueden reasignar fácilmente. El sistema operativo debe admitir subprocesos múltiples simultáneos (SMT).

James Mertz
fuente
1
La "belleza" es discutible. En algunos casos, hyperthreading destruye el rendimiento.
MDMarra
Todo depende de lo que estés haciendo
prestomation
¿Chicos felices ahora? : D (no estaba tratando de provocar una guerra de trolls ni nada)
1
"¡Eso, mi amigo, es hiperhilo en toda su belleza!" :)
Iré con la versión de belleza. Si bien he escuchado informes de impactos negativos en el rendimiento en algunas circunstancias, no he podido duplicar. Hyperthreading siempre ha sido más rápido para mí. Incluso en sus formas más antiguas.
Brian Knoblauch
6

La familia i7 es un procesador de cuatro núcleos que tiene 8 hilos. Los núcleos cuádruples normales tienen 4 subprocesos, y dado que el hiperprocesamiento está habilitado, su computadora reconoce esos 8 subprocesos como procesadores.

tcables
fuente