Hyperthreading já foi um recurso encontrado apenas em CPUs profissionais de ponta. No entanto, o Hyperthreading agora também é encontrado em CPUs de consumo convencionais. Então, o que exatamente é Hyperthreading e você deve procurá-lo em sua próxima CPU?
O que é um thread de software?
Um thread de software é uma sequência de instruções que são processadas por uma CPU. É a unidade básica de instruções programadas gerenciadas pelo scheduler. O agendador é um componente do sistema operacional que aloca recursos de hardware para os vários tipos de software executados em um computador.
Cada aplicativo em execução no seu computador existe como um ou mais processos. Threads são efetivamente segmentos desses processos enviados para a CPU para execução. O agendador atribui rapidamente threads de diferentes programas em execução para garantir que cada um obtenha os recursos necessários para executar em tempo real.
É assim que seu computador pode “multitarefar” e (por exemplo) executar um processador de texto enquanto também reproduz música e baixa um videogame em segundo plano. Tecnicamente, um núcleo de CPU não está fazendo todas essas tarefas ao mesmo tempo.
Portanto, se o seu sistema tiver apenas uma CPU de núcleo único, ele fará malabarismos com vários conjuntos de instruções, alternando tão rapidamente entre eles que, para nossos lentos cérebros humanos, tudo parece acontecer em paralelo.
Verdadeiro processamento paralelo em computadores domésticos
Na maior parte da história da computação pessoal, seu computador tinha apenas um núcleo de CPU. Bem, naquela época não se falava em “núcleos”, pois era apenas um e era a CPU inteira. No entanto, em meados dos anos 2000, os fabricantes de CPU tiveram a brilhante ideia de colocar duas CPUs completas em um pacote de CPU. Essas CPUs dual-core podem realmente processar dois threads de instruções ao mesmo tempo. Isso significava que, por exemplo, seu videogame poderia ter 100% de um núcleo e seu sistema operacional poderia ter o outro núcleo só para ele.
AnúncioAtualmente, as contagens de núcleos da CPU estão aumentando rapidamente. CPUs convencionais com 6, 8 e até 10 núcleos são comuns. As CPUs de ponta oferecem dezenas de núcleos e CPUs como o AMD Threadripper 3990X são recheadas com incríveis 64 núcleos.
O desenvolvimento de software também mudou para aproveitar melhor todo esse poder paralelo da CPU. Os consoles de videogame mais recentes também são equipados com oito núcleos de CPU, portanto, os videogames que podem usar tantos núcleos estão rapidamente se tornando comuns.
Processador de desktop desbloqueado AMD Ryzen Threadripper 3990X de 64 núcleos e 128 threads
Mais núcleos do que você pode imaginar, perfeito para usuários que trabalham duro o dia todo e jogam duro depois do expediente.
AmazôniaColocando núcleos de CPU em overdrive com hyperthreading
Uma CPU tradicional só pode lidar com um único thread, mas se você tiver muitos núcleos de CPU diferentes em seu sistema, poderá lidar com um número de threads igual ao número de núcleos que você tem. Isso parece bom, mas apresenta um grande problema.
Nem todos os threads requerem a mesma quantidade de poder de processamento. Por exemplo, um thread que está renderizando vídeo usará 100% da capacidade disponível de um núcleo de CPU, mas o thread que está executando seu processador de texto ou página da web de mídia social precisa apenas de uma fração do poder oferecido por um núcleo de CPU moderno.
AnúncioDa mesma forma, um videogame pode ter vários segmentos que são executados em paralelo, como um que lida com a física e outro que lida com a inteligência artificial do personagem. Esses são trabalhos importantes, mas podem não precisar de um único núcleo para funcionar bem.
Isso leva a uma situação em que todos os núcleos da CPU podem estar ocupados com threads, mas não estão fornecendo todo o poder de processamento de que são capazes. É aí que o hyperthreading entra em cena.
O nome genérico apropriado para hyperthreading é multithreading simultâneo. “Hyperthreading” é, na verdade, um nome de marketing proprietário usado pela Intel, mas, assim como “Hoover”, tornou-se uma linguagem comum para a tecnologia como um todo.
Uma CPU equipada com os circuitos internos corretos para habilitar o hyperthreading pode executar dois threads separados ao mesmo tempo. Não é alternar entre eles como na multitarefa tradicional de núcleo único. Está executando cada um em paralelo.
Para o sistema operacional, parece que cada núcleo físico da CPU é na verdade dois núcleos, o que permite que o agendador atribua dois threads a cada um. No entanto, a quantidade total de poder de processamento por núcleo permanece exatamente a mesma.
Por que você deseja o Hyperthreading
Como mencionamos acima, o hyperthreading é principalmente sobre garantir que você não está deixando o poder de processamento na mesa. Permitir que cada núcleo lide com dois threads torna mais fácil para o seu sistema operacional tirar o máximo proveito do seu hardware e evita uma situação em que cada núcleo não esteja funcionando próximo ou em plena capacidade.
AnúncioNo passado, apenas softwares profissionais, como editores de vídeo ou tarefas de processamento de dados científicos, realmente precisavam de hyperthreading. Os usuários comuns dificilmente tinham aplicativos suficientes em execução para precisar de tantos encadeamentos. Os videogames também levaram muito tempo para adotar o uso de vários threads, mas agora os sistemas de jogos de 8 núcleos são populares e a contagem de threads continuará aumentando.
Como tal, as novas CPUs convencionais agora apresentam hyperthreading e é um recurso que a maioria dos usuários deve desejar. No entanto, se você conseguir um bom negócio em uma CPU mais antiga que não tenha hyperthreading, ainda não é tão essencial que você não possa deixá-la passar.
LEIA A SEGUIR