¿Qué significa 2 hilos 4 hilos en la CPU?

22

Quería saber qué significan 2 núcleos y 4 hilos sobre una CPU. Estoy hablando de esta CPU que tengo

http://ark.intel.com/products/47341/Intel-Core-i5-520M-Processor-3M-Cache-2_40-GHz

Inicialmente pensé que i5 tenía 4 núcleos, pero creo que estoy equivocado. Entiendo que un hilo es un fragmento de código que puede ejecutarse simultáneamente (concurrentemente) con otros hilos. Entonces, ¿qué significa 4 hilos en esa hoja de especificaciones? ¿Es diferente de los hilos programáticos? Es el número de hilos allí diferente del hilo del programa que creamos. Si solo tiene 2 núcleos, ¿es correcto que solo pueda ejecutar 2 programas paralelos aunque tenga 4 hilos?

usuario734861
fuente
2
Una vez que haga una investigación de antecedentes en en.wikipedia.org/wiki/Hyper-threading , debería tener más sentido para usted. El procesador que tiene tiene la capacidad de hacer 4 instrucciones a la vez. Debe comprender que incluso una CPU de un solo núcleo tiene la capacidad de ejecutar múltiples programas. Simplemente NO tiene la capacidad de hacer 2 instrucciones a la vez. No parece claro cómo funciona realmente un programa.
Ramhound
@Ramhound Probablemente quisiste decir 4 secuencias de instrucciones . Dado que el i5 es superescalar, puede ejecutar múltiples instrucciones en paralelo, incluso desde una sola secuencia de instrucciones. El subprocesamiento múltiple simultáneo permite que el paralelismo a nivel de hilo se convierta en paralelismo a nivel de instrucción, aumentando la utilización de los recursos de ejecución.
Paul A. Clayton
Minimicé mi declaración de que el número de instrucciones por ciclo de reloj es la diferencia entre un Pentium D y 4th Core i5 menos el tamaño del dado, y los requisitos de potencia, por supuesto (nuevamente simplificado)
Ramhound
1
Posible duplicado de Hyper-Threading y Dual-Core, ¿Cuál es la diferencia?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
Esta respuesta puede proporcionar edificación: superuser.com/questions/1198459/…
Jamie Hanrahan

Respuestas:

15

Su i5 tiene dos núcleos, cada núcleo puede ejecutar dos subprocesos debido al hyperthreading de Intel , haciendo 4 subprocesos, más allá de eso cambia a altas velocidades entre procesos. Aquí hay una buena explicación de subprocesos múltiples si desea saber más, pero en esencia su CPU puede ejecutar 4 procesos simultáneamente y cambiar a alta velocidad entre procesos.


fuente
> "más allá de eso, cambia a altas velocidades entre procesos". ¿Qué hace que el proceso de conmutación b / w sea más rápido?
Talespin_Kit
@Talespin_Kit Creo que @ Slowki se refería a la forma en que se usa una CPU para trabajar en múltiples procesos, por lo que no se limita a 4 cosas. Son 4 hilos de muchas cosas.
Matt Sephton
3

No estoy seguro de su nivel de experiencia en Arquitectura de Computadores, sin embargo, el Core i5 que ha mencionado aquí implementa una forma de subprocesamiento múltiple conocida como subprocesamiento múltiple simultáneo (SMT). La marca registrada de Intel para su implementación de SMT es hyperthreading.

Además de SMT, hay otras formas de subprocesamiento múltiple, siendo el subprocesamiento múltiple temporal uno. Por ejemplo, multi-threading temporal de grano fino donde el procesador puede cambiar entre diferentes subprocesos cada ciclo y así permitir la ejecución pseudo-paralela de varios programas. De manera similar, puede haber múltiples subprocesos temporales de grano grueso donde un procesador puede cambiar entre subprocesos cuando alcanza una operación de alta latencia, como un acceso a la memoria principal en el subproceso actual. Los puntos de cambio exactos pueden variar según la implementación y los requisitos, como la imparcialidad o los plazos en tiempo real.

SMT se desvía de la filosofía de cambio de contexto para subprocesos múltiples, ya que en realidad tiene dos o más subprocesos ejecutándose en un procesador al mismo tiempo. Si bien la implementación puede variar, el objetivo principal es explotar las unidades funcionales en el procesador que están inactivas si solo se estaba ejecutando un subproceso, y también explotar la naturaleza superescalar del procesador. Puede imaginar múltiples subprocesos temporales como el tiempo que corta los recursos de los procesadores, mientras que SMT como el corte espacial de los recursos.

Se puede encontrar un análisis detallado en el artículo de Tullsen de 1995:

http://dl.acm.org/citation.cfm?id=224449

Rvdo
fuente
0

"Si tiene solo 2 núcleos, ¿es correcto que solo pueda ejecutar 2 programas paralelos aunque tenga 4 hilos?" Si tiene 2 núcleos, el cálculo se divide por 2 = paralelismo. Sin embargo, si su sistema tiene hiperprocesamiento, puede hacer el cálculo 2 en el mismo núcleo, por qué, el mismo núcleo muestra al sistema operativo como 2 núcleos ... núcleos lógicos.

tizoc
fuente
0

Tome el número de subprocesos y divídalo por el número de núcleos y eso le dará el número de subprocesos que se pueden ejecutar simultáneamente por núcleo de procesador.

En épocas anteriores [en modelos anteriores de Intel], hyperthreading se limitaba a 1 núcleo que ejecutaba 2 hilos simultáneamente O múltiples núcleos que ejecutaban 1 conjunto de instrucciones (también conocido como hilo) por núcleo (bastante ineficiente si me preguntas). Pero con una mejor potencia de cómputo y desarrollos posteriores, como su procesador i5, tiene lo que me gusta llamar, un procesador de múltiples núcleos hipertronchado, que tiene múltiples núcleos que ejecutan múltiples conjuntos de instrucciones (también conocidos como hilos) por núcleo.

En su caso, 1 núcleo obtiene 2 subprocesos, por lo que cuando hace los cálculos tiene un total de = 4 conjuntos de instrucciones (subprocesos).

Otro ejemplo: # de núcleos = 4, # de hilos = 8 | 8/4 = 2, por lo que cada núcleo procesa 2 subprocesos simultáneamente (no estoy seguro de qué modelo de procesador hace esto, pero estoy casi seguro de que existe uno).

Espero que esto ayude a mi amigo! ¡Computación feliz!

Fuente: PEARSON IT Certification CompTIA A + Examp Cram Cert. Manual

khoreyrs
fuente