o que significa 2 core 4 threads em CPU?

22

Eu queria saber o que significa 2 núcleos e 4 threads sobre uma CPU? Eu estou falando sobre esta CPU que eu tenho

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

Inicialmente, pensei que o i5 tinha 4 núcleos, mas acho que estou errado. Meu entendimento de um thread é que é um pedaço de código que pode ser executado simultaneamente (simultaneamente) com outros threads. Então, o que 4 threads significam nessa folha de especificações? É diferente dos threads programáticos. O número de threads lá é diferente do thread do programa que criamos. Se tiver apenas 2 núcleos, é correto que você possa executar apenas 2 programas paralelos, mesmo que possua 4 threads?

user734861
fonte
2
Depois de fazer uma pesquisa de fundo em en.wikipedia.org/wiki/Hyper-threading , deve fazer mais sentido para você. O processador que você possui realmente tem a capacidade de executar 4 instruções por vez. Você deve entender que mesmo uma CPU de núcleo único tem a capacidade de executar vários programas. Apenas NÃO tem a capacidade de executar 2 instruções por vez. Você não parece claro como um programa realmente funciona.
Ramhound 12/01
@ Ramhound Você provavelmente quis dizer 4 fluxos de instruções . Como o i5 é superescalar, ele pode executar várias instruções em paralelo, mesmo a partir de um único fluxo de instruções. O multithreading simultâneo permite que o paralelismo em nível de encadeamento seja convertido em paralelismo em nível de instrução, aumentando a utilização dos recursos de execução.
Paul A. Clayton
I minimizado minha declaração o número de instruções por ciclo de clock é a diferença entre um Pentium D e 4 Core i5 menos o tamanho do die, e os requisitos de energia do curso (de novo simplificado)
Ramhound
11
Possível duplicata de Hyper-Threading e Dual-Core, qual é a diferença?
Ciro Santilli escreveu
Esta resposta pode fornecer uma edificação: superuser.com/questions/1198459/…
Jamie Hanrahan

Respostas:

15

Seu i5 possui dois núcleos, cada núcleo pode executar dois threads por causa do hyperthreading da intel , criando 4 threads, além do que ele alterna em alta velocidade entre processos. Aqui está uma boa explicação do multithreading, se você quiser saber mais, mas em essência sua CPU pode executar 4 processos simultaneamente e alternar em alta velocidade entre processos.


fonte
> "além disso, ele alterna em alta velocidade entre processos." O que torna o processo de comutação b / w mais rápido?
Talespin_Kit 13/09/16
@Talespin_Kit Eu acho que @ Slowki estava se referindo à maneira como uma CPU é usada para trabalhar em vários processos, por isso não se limita a quatro coisas. São 4 tópicos de muitas coisas.
precisa saber é o seguinte
3

Não tenho certeza do seu nível de conhecimento em arquitetura de computadores, no entanto, o Core i5 que você mencionou aqui implementa uma forma de multiencadeamento conhecida como multithreading simultâneo (SMT). A marca registrada da Intel para a implementação do SMT é hyperthreading.

Além do SMT, existem outras formas de multiencadeamento, sendo o multiencadeamento temporal. Por exemplo, multithreading temporal de baixa granularidade, onde o processador pode alternar entre threads diferentes a cada ciclo e, assim, permitir a execução pseudo-paralela de vários programas. Da mesma forma, pode haver multithreading temporal de granulação grossa, em que um processador pode alternar entre threads quando atinge uma operação de alta latência, como um acesso à memória principal no thread atual. Os pontos de comutação exatos podem variar com base na implementação e nos requisitos, como imparcialidade ou prazos em tempo real.

O SMT se desvia da filosofia de comutação de contexto para multiencadeamento, na medida em que na verdade possui dois ou mais encadeamentos sendo executados em um processador ao mesmo tempo. Embora a implementação possa variar, o objetivo principal é explorar as unidades funcionais do processador que estão ociosas se apenas um encadeamento estiver em execução e também explorar a natureza superescalar do amplo problema. Você pode imaginar a multithread temporal como o tempo que divide os recursos do processador, enquanto o SMT como o corte espacial dos recursos.

Uma análise detalhada pode ser encontrada no artigo de Tullsen, de 1995:

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

Rev
fonte
0

"Se ele possui apenas 2 núcleos, é correto que você possa executar apenas 2 programas paralelos, mesmo que possua 4 threads?" Se ele possui 2 núcleos, o cálculo é dividido por 2 = paralelismo. No entanto, se o sistema possui um hyperthreading, ele pode fazer o cálculo 2 no mesmo núcleo, por que o mesmo núcleo é exibido no sistema operacional como 2 núcleos ... núcleos lógicos.

tizoc
fonte
0

Pegue o número de threads e divida-o pelo número de núcleos, o que fornecerá o número de threads que podem ser executados simultaneamente por núcleo do processador.

Em épocas anteriores [nos modelos anteriores da Intel], o hyperthreading era limitado a 1 núcleo executando 2 threads simultaneamente OU múltiplos núcleos executando 1 conjunto de instruções (também conhecido como thread) por núcleo (bastante ineficiente, se você me perguntar). Mas com melhor poder computacional e desenvolvimentos posteriores, como o processador i5, você tem o que eu gosto de chamar, um processador hyperthread de vários núcleos, com vários núcleos executando vários conjuntos de instruções (também conhecidos como threads) por núcleo.

No seu caso, 1 núcleo recebe 2 threads, portanto, quando você faz as contas, possui um total de = 4 conjuntos de instruções (threads).

Outro exemplo: Nº de núcleos = 4, Nº de threads = 8 | 8/4 = 2, então cada núcleo processa 2 threads simultaneamente (não tenho certeza de qual modelo de processador faz isso, mas tenho quase certeza de que existe).

Espero que isso ajude meu amigo! Computação feliz!

Fonte: Certificação PEARSON IT CompTIA A + Examp Cram Cert. Manual

khoreyrs
fonte