Como mencionado, você tem um sistema de núcleo duplo, com 2 threads por núcleo.
Isso é comercializado pela Intel como hyperthreading e foi feito de várias maneiras ao longo dos anos por vários fabricantes diferentes.
Para explicá-lo em sua forma mais simples, cada núcleo da CPU consiste em um "núcleo" e várias arquiteturas em torno desse núcleo, que mantêm informações de estado e processo para cada encadeamento. Um único núcleo encadeado possui a arquitetura para manter um valor de um encadeamento de informações de estado retidas por vez, um núcleo hiperencadeado mantém dois conjuntos distintos de informações de estado, permitindo que dois processos separados sejam executados ao mesmo tempo, desde que exijam partes diferentes do núcleo ( o que é razoavelmente provável de acontecer, pois o núcleo consiste em várias unidades de vários tipos diferentes de unidade de processamento).
Para simplificar como a CPU é vista no sistema, cada hyperthread é visto como uma CPU separada; portanto, um processador dual core de 2 threads por núcleo aparece como um processador quad core.
Também é possível que o sistema operacional use o Core-parking (um recurso nos processadores Intel mais recentes) permite que o sistema operacional suspenda metade de um núcleo hyperthread, para que, quando a capacidade extra de processamento do hyperthreading não seja necessária, o desempenho do thread único é aumentado porque o núcleo não está mais compartilhando seu cache em dois segmentos e agora pode dedicar totalmente o cache no núcleo a um único segmento.
O motivo é o hyperthreading , suportado pelo seu processador. Hyperthreading não é o equivalente a um processador extra, mas pode realmente aumentar o desempenho em aplicativos multithread. Para cada núcleo de processador fisicamente presente, o sistema operacional endereça dois processadores virtuais e compartilha a carga de trabalho entre eles quando possível.
fonte
As coisas são muito mais complexas do que eram nos dias de uma instrução de CPU por um ciclo de clock.
Agora há um pipeline para cada instrução que consiste em várias etapas. Ouvi até 41, embora isso tenha sido um tempo atrás e não tenho idéia de como são os pipelines de CPU atuais. Sei que se o pipeline for longo o suficiente, você poderá iniciar uma nova instrução no pipeline antes que a última instrução termine, às vezes no mesmo ciclo de clock, para que seu núcleo único esteja efetivamente fazendo duas coisas ao mesmo tempo.
Há um truque aqui, no entanto. Você não pode simplesmente usar isso para acelerar a taxa na qual o processador processa as instruções de um programa específico. Há um problema de correção envolvido: a próxima instrução pode depender do resultado ainda não determinado da instrução anterior. Para tirar proveito do longo pipeline com segurança , o chip apresentará dois núcleos de processador separados ao agendador do sistema operacional e instruções alternativas enviadas a cada núcleo, para que duas instruções para o mesmo "núcleo" nunca estejam no pipeline ao mesmo tempo. Dessa forma, podemos ter certeza de que quaisquer instruções executadas simultaneamente não interferem entre si. Isso é chamado de hyperthreading .
Vale a pena notar aqui que, embora o hyperthreading possa aumentar significativamente a quantidade de trabalho que você obtém do seu processador, ele não chega nem perto de ter tantos núcleos físicos. Dependendo da sua carga de trabalho, pode significar uma melhoria de 15% ou 40%. Em algumas circunstâncias, convém desabilitar o recurso para que os núcleos restantes tenham acesso exclusivo total ao cache L1 / L2 desse núcleo (às vezes isso é feito com servidores de banco de dados dedicados).
Quando seu chip se anuncia como tendo 2 núcleos com 4 threads, isso significa que é um processador de núcleo duplo que suporta hyperthreading.
fonte
Dê uma olhada nesta página da Intel - ela contém muitas animações mostrando como o hyperthreading acelera suas tarefas.
A
Utilization of Processor Resources
é a melhor animação, olhe para ela e clique no botão "avançar".fonte
Simplificando, a resposta é sim. Cada núcleo do seu processador pode suportar dois threads independentes, ou seja, 4 no total. Mas isso não significa que ele tenha o mesmo desempenho que uma CPU de núcleo único de quatro núcleos. praticamente o desempenho de uma CPU de dois núcleos de rosca dupla é menor que o de uma CPU de rosca única de quatro núcleos. Como o AMD Phenom X4.
fonte