Entenda
como funciona essa tecnologia da Intel
Quando
vamos comprar um processador fabricado pela Intel, especialmente da linha Core
(i3, i5 ou i7), nos acostumamos a ver a denominação hyper-threading,
normalmente propagandeada como se dobrasse o número de núcleos disponíveis. Mas
será realmente isso que acontece? Para responder melhor esse tutorial explicando como o HT realmente funciona e quais são as
vantagens em ter um processador com essa tecnologia.
Mas, indo
por partes, vamos entender o que é uma thread.
Thread:
Threads
são pequenas tarefas que o computador precisa executar de forma concorrente, ou
seja, operações que um ou mais programas abertos precisam realizar e disputam
pela "atenção" do processador. Este gerencia essas requisições
utilizando um recurso chamado escalonamento, onde executa algumas operações do
programa 1, em seguida do programa 2, e assim por diante, atendendo todas as
tarefas ao mesmo tempo.
Como o
processador é capaz de realizar bilhões de cálculos por segundo, esse escalonamento
é muito rápido, então temos a noção de que todos os programas possuem uma
unidade independente de processamento.
Pra
simplificar, imagine que você possui um computador com um processador de apenas
um núcleo e goste de trabalhar escrevendo textos, escutando música e navegando
na internet ao mesmo tempo. Utilizando o Alt+Tab para navegar pelas janelas
abertas temos a ideia de que tudo está acontecendo simultaneamente, mas na
verdade o processador está distribuindo o seu processamento entre todos esses programas.
Esse
conceito de threads também pode ser aplicado a processadores com dois ou mais
núcleos, com uma pequena diferença. Como cada núcleo do computador é uma
unidade de processamento independente, as threads são distribuídas entre eles,
então menos escalonamentos são necessários para dividar a carga de trabalho, já
que cada núcleo lida com uma parcela do trabalho total.
Essa
capacidade do processador de lidar com várias threads ao mesmo tempo é chamada
multi-threading, e é devido a essa tecnologia presente na maioria dos
processadores modernos que podemos executar várias aplicações ao mesmo tempo,
necessitando apenas de um sistema operacional multitarefa, como o Windows,
Linux ou UNIX.
Abaixo
temos uma imagem com o gerenciador de tarefas do Microsoft Windows. Reparem que
que o gerenciador do Windows (Histórico de uso de CPU) não diferencia núcleos
de processamento de threads, assumindo que o processador tenha 12 núcleos ao
invés de 6.
Já no CPU-Z, programa de inventário de hardware
bastante respeitado por exibir as especificações corretamente, há uma diferenciação
entre núcleos e threads, mostrada na parte inferior da tela:
Hyper-threading:
A Intel
lançou o seu primeiro modelo com a tecnologia hyper-threading em 2002 no modelo
Xeon MP Foster, processador voltado para a linha de servidores, em seguida
incorporando ao Pentium 4 (arquitetura Northwood) e em todos os modelos que
vieram na sequência.
Embora o
sistema operacional "enxergue" o dobro de núcleos de processamento
presentes, na prática não é isso que acontece. Na verdade é que cada núcleo
físico possui duas unidades lógicas independentes, cada uma com um controlador
de interrupção programável (APIC) e conjunto de registradores próprio.
Essas
modificações na arquitetura possibilitaram um ganho de produtividade em algumas
tarefas específicas, desde que os softwares tenham suporte. Mas de quanto é
esse ganho? Segundo a própria Intel, o aumento de performance seria de 25% em
relação a um modelo de mesmo clock sem suporte à tecnologia, mas testes
posteriores provaram que esse aumento não passava de 10% na maioria dos casos.
Processadores
dual-core podem executar várias threads paralelas em um único programa, o
hyper-threading tira proveito apenas de aplicações com instruções segmentadas,
que utilizam "pipeline", e apenas poucas aplicações utilizam esse
tipo de otimzação, como por exemplo os programas gráficos.
Como a
velocidade dos processadores atualmente raramente passa dos 4 GHz por questões
de arquitetura (já que a dissipação térmica cresce exponencialmente em relação
à velocidade, ou seja, ele esquenta pra caramba com um ganho de desempenho
pequeno), tecnologias desenvolvidas para aumentar a eficiência deles são sempre
bem vindas. O hyper-threading não substitui os modelos de vários núcleos, mas
os complementa, possibilitando que eles façam melhor uso dos recursos
disponíveis.
Entendeu
como funciona essa tecnologia? Ficou com alguma dúvida? Mande para nós!
Nenhum comentário:
Postar um comentário