O que é hyper-threading e como funciona?

30

Eu ouvi o termo hyper-threading sendo lançado recentemente, o que exatamente é o hyper-threading e por que é importante?

    
por Gordon Gustafson 22.03.2010 / 01:49

4 respostas

22

Hyper-threading é onde seu processador finge ter 2 núcleos de processador físico, mas tem apenas 1 e algum lixo extra.

O ponto de hyperthreading é que muitas vezes quando você está executando código no processador, há partes do processador que estão ociosas. Ao incluir um conjunto extra de registradores 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 apenas um componente do processador, um deles acaba aguardando, é claro. É por isso que não pode substituir dual-core e tais processadores.

    
por 22.03.2010 / 01:53
9

Hyper-Threading é o local onde dois threads podem ser executados em um único thread segmentado. Quando um encadeamento no núcleo em questão está parado ou interrompido, o hyper-threading permite que o núcleo trabalhe em um segundo encadeamento.

O Hyper-threading faz o sistema operacional pensar que o processador tem o dobro do número de núcleos e geralmente produz uma melhoria de desempenho, mas somente na região de 15-30% no geral - embora em algumas circunstâncias, realmente possa haver um desempenho acertar (= < 20%).

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

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

    
por 22.03.2010 / 03:28
2

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

Você obtém um benefício de velocidade modesta para cargas de trabalho multiencadeadas 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 de multiencadeamento sobre 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 - na verdade, para algumas cargas de trabalho, o aumento de desempenho é bastante decente.

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

Os núcleos do processador possuem um pipeline de instruções - uma fila de instruções futuras a serem executadas, que está sendo constantemente atualizada, pronta para a CPU executar a instrução na cabeça dessa fila. As CPUs as utilizam para otimizar a velocidade de execução observando essas instruções futuras e fazendo alguns pré-processamentos simples e de baixo nível, sempre que possível (tais otimizações incluem "execução fora de ordem" e "previsão de filial").

Os núcleos Hyperthreaded possuem pipelines de instruções duplas, e isso - juntamente com um segundo conjunto de registros - é onde você obtém o benefício de velocidade para cargas de trabalho multithread. Alternar entre os contextos de encadeamento não elimina o pipeline nem registra, e o pipeline e os registros para o outro encadeamento permanecem prontos e "quentes" para que possam ser alternados e usados imediatamente.

    
por 01.09.2014 / 05:38
2

When a Single Core can act as a Dual Core

é Hyperthreading

Em detalhes

Implementação da Intel de multi-threading simultâneo é conhecida como tecnologia Hyper-Threading ou tecnologia HT.

A tecnologia HT faz um único processador aparecer, a partir do software
perspectiva, como vários processadores lógicos. Isso permite que os sistemas operacionais e aplicativos para agendar vários   threads para processadores lógicos como
eles iriam em sistemas multiprocessadores.


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

O Hyperthreading não duplica o desempenho de um sistema, pode aumentar o desempenho ao utilizar melhor os recursos ociosos, levando a um maior rendimento para determinados 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 ao executar sozinho em um processador não-hyperthreaded. Os aprimoramentos de desempenho de hyperthreading são altamente dependentes do aplicativo, e alguns aplicativos podem ver a degradação do desempenho com 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

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

A Intel diz que o hyper-threading é altamente eficiente porque usa recursos que, de outra forma, estariam ociosos ou subutilizados.

Links:

Wikipedia
StackOverflow
Multi-Core Programação Digital_Edition pg # 8

    
por 03.07.2017 / 12:45