O que é hiper-threading e como funciona?


Respostas:


38

O Hyper-threading é onde seu processador finge ter 2 núcleos físicos, mas possui apenas 1 e mais lixo.

O objetivo do hyperthreading é que, muitas vezes, quando você está executando um código no processador, há partes do processador que estão ociosas. Ao incluir um conjunto extra de registros da CPU, o processador pode agir como se tivesse dois núcleos e, assim, usar todas as partes do processador em paralelo. Quando os dois núcleos precisam usar um componente do processador, um deles acaba esperando, é claro. É por isso que não pode substituir processadores dual-core e esses.


6
+1 deve acrescentar que o hyper-threading é específico para a implementação do SMT da Intel, por exemplo, o processador SPARC possui uma forma diferente de SMT implementada, mas com objetivos semelhantes.
sybreon

@Earlz, você está sugerindo que o processador está executando dois threads dividindo os núcleos em dois? ou parece que o paralelismo feito na realidade o hyperthreading está fazendo com que o processador alterne de um thread para outro?
Doopy Doo 13/10/12

4
@DoopyDoo também. Basicamente, o processador possui dois "núcleos de execução", que é o pipeline de instruções e outras coisas, além de dois conjuntos de registros e outras coisas essenciais. A diferença entre o hyperthreading e o dual core normal é que algumas coisas NÃO são duplicado. Por exemplo, pode haver apenas uma ALU. Portanto, isso significa que enquanto um processador de núcleo duplo pode adicionar dois conjuntos separados de números ao mesmo tempo, um processador de hiperencadeamento precisará fazer com que um dos núcleos virtuais espere até a vez com a ALU. naturalmente, este é um exemplo simplificado
Earlz

12

O Hyper-Threading é o local em que dois threads podem ser executados em um núcleo de thread único. Quando um encadeamento no núcleo em questão está parado ou em um estado de parada, o hyperthreading permite que o núcleo trabalhe em um segundo encadeamento.

O hyperthreading faz com que o sistema operacional pense que o processador tem o dobro do número de núcleos e geralmente produz uma melhoria de desempenho, mas apenas na região de 15 a 30% do total - embora, em algumas circunstâncias, possa haver um impacto no desempenho (= <20%).

Atualmente, a maioria dos chips Atom e todos os i7 (e chips equivalentes ao Xeon) possuem hyper-threading, assim como alguns P4s mais antigos. No caso dos átomos, é uma tentativa desesperada de melhorar o desempenho sem aumentar muito o consumo de energia; no caso dos i7s, os diferencia da gama de chips i5.

O trabalho de processamento complexo não se beneficiará muito do HT, mas certas tarefas (simples, altamente multiencadeadas), como a codificação de vídeo, se beneficiam do HT. Na realidade, não há muito nele ...


95% correto. Se um núcleo normais = A + B, em seguida, um núcleo hiper-threading é mais como A + 2 x B. Eles podem executar dois fios simultaneamente, desde que ambas as roscas não precisa A.
Vincent Vancalbergh

5

Quando um núcleo único pode atuar como núcleo duplo

é Hyperthreading

Em detalhe

A implementação da Intel de Multi-Threading Simultâneo é conhecida como Tecnologia Hyper-Threading ou Tecnologia HT.

A HT Technology faz com que um único processador apareça, da
perspectiva do software , como vários processadores lógicos. Isso permite que os sistemas operacionais e aplicativos planejem vários encadeamentos para processadores lógicos, como
faria nos sistemas multiprocessadores.


O Hyperthreading permite que um único processador execute dois threads simultaneamente, mas não em todas as condições.

O Hyperthreading não duplica o desempenho de um sistema, pode aumentar o desempenho utilizando melhor os recursos inativos, resultando em maior taxa de transferência para certos tipos importantes de carga de trabalho. Um aplicativo em execução em um processador lógico de um núcleo ocupado pode esperar um pouco mais da metade da taxa de transferência obtida durante a execução sozinha em um processador não com hyperthread. As melhorias no desempenho do hyperthreading são altamente dependentes dos aplicativos, e alguns aplicativos podem sofrer degradação no desempenho com o hyperthreading, porque muitos recursos do processador (como o cache) são compartilhados entre processadores lógicos.

A tecnologia Intel Hyper-Threading faz com que cada núcleo possa ter dois processadores lógicos que compartilham a maioria dos recursos do núcleo, como caches de memória e unidades funcionais

Função principal

Hyperthreading é aumentar o número de instruções independentes no pipeline; tira proveito da arquitetura superescalar, na qual várias instruções operam em dados separados em paralelo

A Intel diz que o hiperencadeamento é altamente eficiente porque utiliza recursos que, de outra forma, seriam inativos ou subutilizados.

Ligações:

Wikipedia
StackOverflow
Multi-Core Programming Edição Digital pg # 8

insira a descrição da imagem aqui

Imagem Intel


3

Para expandir o que já foi dito, o hyperthreading significa que um único núcleo da CPU pode manter dois contextos de execução separados e alternar rapidamente entre eles, emulando efetivamente dois núcleos no nível do hardware.

Você obtém um benefício de velocidade modesto para cargas de trabalho multithread quando comparado a um núcleo único normal. No entanto, não chega nem perto do benefício de ter dois núcleos independentes. Em termos de desempenho, é melhor pensar nisso como um pequeno aumento no desempenho multithread em um único núcleo, em vez de ter um desempenho que se aproxima de dois núcleos. O tamanho do aumento de velocidade varia de acordo com a carga de trabalho - de fato, para algumas cargas de trabalho, o aumento de desempenho é bastante decente.

O núcleo hyperthreaded possui apenas uma unidade de execução principal, mas algumas outras partes de uma CPU associadas às instruções de preparação para processamento e manutenção de um estado de execução são duplicadas.

Os núcleos do processador têm um pipeline de instruções - uma fila de instruções futuras a serem executadas, que estão sendo constantemente atualizadas, prontas para a CPU executar a instrução no início dessa fila. As CPUs as utilizam para otimizar a velocidade de execução, observando essas instruções futuras e realizando pré-processamento simples e de baixo nível, sempre que possível (essas otimizações incluem "execução fora de ordem" e "previsão de ramificação").

Os núcleos hyperthreaded possuem pipelines de instruções duplas e, junto com um segundo conjunto de registros, é onde você obtém o benefício de velocidade para cargas de trabalho multithread. A alternância entre contextos de encadeamento não descarta o pipeline ou os registros, e o pipeline e os registros para o outro encadeamento permanecem prontos e "quentes" para que possam ser alternados e usados ​​imediatamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.