Hyperthreading

O que é?

O Hyper-thereading, também conhecido como hiperprocessamento; é uma tecnologia que simula em um único processador físico dois processadores lógicos. Via Sistema Operacional, compatível com essa tecnologia, o precesssador é visto como um processador físico de dois núcleos.
Muitos artigos afirmam que o Hyper-thereading não passa de uma jogada de marketing, pois o desempenho obtido pela tecnologia é resultante de um aproveitamento de partes não utilizadas do processador.

cap2-11_html_10a05d17.jpg

História

Tecnologia desenvolvida pela Intel e aplicada primeiramente nos processadores Intel Xeon, que é voltado para o mercador de servidores. Mais tarde, em 2002, a tecnologia foi aplicada em alguns modelos do Pentium 4.
O Hyper-threading ficou muito conhecido pela sigla “HT” em cor laranja e atualmente boa perte da família Intel de processadores desfrutam dessa tecnologia: Atom (linha para portáteis), Core i2, Core i5, Core i7, Xeon e Itanium(linha servidor).

PV360_Task_Manager.png

Como Funciona

O processador é apresentado ao sistema operacional como um dual-core. Dessa forma, o sistema passa a dividir as tarefas entros os dois núcleos lógicos. Internamente, o objetivo é não deixar o processador ocioso.
Dentro do processador os circuitos responsáveis pela Hyper-threading representam menos de 5% dos transístores com uma pequena expansão do cache e adição de mais três circuitos adicionais, o Return Stack Predictor, Next Instruction Pointer e o Register Alias Tables para criar a “ilusão” de um processador de dois núcleos para o SO.

O ganho obtido com o Hyper-threading não é nem proximo de um processador dual-core real. Nos melhores casos há uma ganho de performace em torno dos 20%, mas na maioria dos casos o ganho é muito pequeno, não passando dos 2% e ainda em boa parte dos casos onde o HT chega a reduzir o desempenho. Isso porque o sistema operacional e os aplicativos precisam arcar com o trabalho de dividir a carga entre os dois núcleos do processador.
Em geral, o HT beneficia ambientes multitarefa, já que a grande quantidade de processos permite o adiantamento de uma operação enquanto aguada a tomada de decisão de um outro.

Relação com Compiladores

Uma das grandes vantagens do HT é seu suporte melhorado para código multi-threaded, permitindo que multiplas threads funcionem simutaneamente, consequentemente melhorando o tempo de resposta.
Em um compilador com esquema de implementação através de co-rotinas, rodando em um processador com HT ativado, o desempenho seria maior. Isso porque os três trechos que contemplam esse modelo podem ser melhor dristribuidos entres os núcleos lógicos.

Equipe:
Daniel Macieira,
Jorge Costa,
Tarcísio Araújo.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License