Entenda o que são as threads dos processadores

Entenda o que são as threads dos processadores

Se você já olhou a tabela de especificações técnicas de um processador, certamente se deparou com o termo “threads”, geralmente associado à quantidade de núcleos do chip. Mas você sabe o que são essas threads que, aparentemente, quanto mais, melhor? Eu explico.

Uma “thread” é uma série de comandos/instruções que integra um processo principal. Todos os softwares são estruturados em processos, que por sua vez são fragmentados em threads.

Leia também
Quais são as principais diferenças entre processadores de 32 bits e 64 bits?
O que é SoC? 5 pontos importantes para entender o processador do seu smartphone

Estas constituem atividades autônomas, porém interconectadas. Unidades de processamento central (CPUs) têm a capacidade de executar múltiplas threads de forma simultânea, conhecido como “Simultaneous Multithreading” (SMT), para otimizar a performance. Tudo isso ficou meio vago e complicado? Então fica comigo que nos próximos parágrafos eu vou explicar tudo bem direitinho pra você.

Como os threads em uma CPU funcionam

Explainer: What Are Processor Threads? | TechSpot

Lembra que eu disse que todo software é estruturado em processos? Isso vale também para os sistemas operacionais. Ou seja, todo sistema operacional, seja ele Windows, macOS ou Linux, separa as atividades a serem realizadas em processos, que são segmentados em uma ou várias threads.

Cada processo representa um conjunto de comandos associados a um programa específico. Quando um núcleo da CPU está gerenciando um processo, isso indica que o software correspondente está ativo. As threads, por sua vez, são subconjuntos de comandos que compõem uma atividade mais ampla.

Processadores atuais têm a capacidade de suportar multitarefa simultânea, ou seja, múltiplas threads são processadas ao mesmo tempo para otimizar o desempenho do sistema. Nesse contexto, cada thread é alocado a um núcleo específico da CPU.

Além disso, os núcleos físicos do processador podem ser subdivididos em núcleos lógicos através da técnica conhecida como Simultaneous Multithreading (SMT).

O que significa Simultaneous Multithreading (SMT)?

Simultaneous MultiThreading (SMT) and New Instructions - The AMD Zen and Ryzen 7 Review: A Deep Dive on 1800X, 1700X and 1700

Simultaneous Multithreading (SMT) é um método que habilita a execução simultânea de várias linhas de execução (threads) em um único núcleo físico da CPU.

Normalmente, um processador comum trabalha em um regime de processamento linear de informações. Ou seja, ele vai processando os dados na ordem em que eles vão chegando. Isso difere, por exemplo, das unidades de processamento gráfico (GPUs), que podem contar com milhares de núcleos para facilitar o processamento simultâneo. É por isso que muitas placas de vídeo possuem dezenas de milhares de núcleos CUDA, por exemplo. A técnica SMT chega para compensar essa restrição nas CPUs.

O SMT divide os núcleos físicos em núcleos lógicos, também conhecidos como threads. Portanto, um processador quad-core com dois threads por núcleo resultará em quatro núcleos físicos e oito threads. A mesma lógica se aplica a um processador octa-core, que terá oito núcleos físicos e dezesseis threads.

Na prática, a execução das threads não ocorre de forma verdadeiramente simultânea. Os núcleos físicos continuam operando de forma sequencial, mas alternam entre as threads com tanta rapidez que parece que estão sendo executadas ao mesmo tempo.

É válido salientar também que a proporção de threads não é necessariamente o dobro do número de núcleos. Por exemplo, nos chips Core de 12ª geração e posteriores da Intel, apenas os núcleos de alta performance têm dois threads, enquanto os núcleos voltados para eficiência energética (menos potentes) possuem um único thread.

E o Hyper-Threading?

What is Hyper-Threading? - YouTube

Hyper-Threading é o nome comercial da Intel para a técnica Simultaneous Multithreading (SMT), que explicamos no tópico anterior.

Como dito, esse recurso potencializa a eficácia do processador ao permitir que cada núcleo físico processe duas linhas de execução (threads) em paralelo, uma vantagem especialmente relevante para aplicações sofisticadas, como softwares de edição de vídeo.

O Hyper-Threading é usado em séries de CPUs como Intel Core, Intel Core vPro (com características voltadas para o ambiente empresarial) e Intel Xeon (destinados a servidores e estações de trabalho).

Vantagens do uso das threads nos processadores

A implementação de threads na computação oferece diversas vantagens, como a aceleração do processamento. Isso ocorre porque dividir tarefas em threads permite um paralelismo que otimiza a sequência de instruções, melhorando assim o desempenho da CPU.

Além disso, essa técnica minimiza a probabilidade de núcleos do processador ficarem inativos enquanto aguardam dados ou comandos. Outro benefício é o compartilhamento de recursos entre threads correlacionados, incluindo endereços de memória e informações específicas.

Finalmente, a estratégia de utilizar threads pode ser uma forma eficaz de controlar os custos associados ao desenvolvimento de um chip, já que a otimização do fluxo de execução pode eliminar a necessidade de adicionar mais núcleos físicos ao processador.

Os 9 Melhores Processadores para PC de 2023 | Geek 360

Então quanto mais threads melhor, né?

De fato, ter mais threads realmente melhora a eficiência na execução de tarefas. Porém, isso não garante automaticamente que um processador seja superior a outro. Um excesso na quantidade de threads pode levar a um consumo elevado de energia ou necessitar de uma revisão completa da arquitetura do chip.

A performance geral de um processador é influenciada por diversos outros fatores, incluindo a frequência de clock, o tamanho da memória cache, o processo de litografia empregado na fabricação do chip e, evidentemente, o número de núcleos físicos.

É possível descobrir o número de threads de um processador?

Sim, é possível. Para descobrir quantos threads um processador possui, os sistemas operacionais mais comuns em desktops e servidores oferecem ferramentas integradas. No caso do Windows, essa informação está disponível no Gerenciador de Tarefas, enquanto no macOS e no Linux, comandos específicos podem ser usados para obter esse dado.

Dig Deeper Into Windows 11 With These 7 Task Manager Tips | PCMag

No caso do Windows 10 ou 11, simplesmente digite “Gerenciador de Tarefas” no campo de pesquisa da barra de tarefas. Você também pode acessar essa ferramenta a partir da tela de bloqueio do sistema, usando o atalho de teclado Ctrl + Shift + Esc ou clicando com o botão direito do mouse na barra de tarefas.

Uma vez que o Gerenciador de Tarefas esteja aberto, selecione a aba “Desempenho” e depois clique em “CPU”. O número de threads será exibido sob o gráfico de desempenho, na seção denominada “Processadores lógicos”.

Para usuários de macOS, a maneira mais direta de descobrir a contagem de threads é abrir o terminal e inserir o comando: sysctl -n hw.logicalcpu. O valor será exibido imediatamente abaixo da linha de comando.

Para aqueles que utilizam sistemas Linux, o comando para obter informações sobre threads e outros aspectos da CPU é: lscpu.

O dado sobre o número de threads estará na linha que diz “Thread(s) por núcleo”, enquanto o número de núcleos físicos será mostrado na linha “Núcleos por soquete”. Para obter o número total de threads, basta multiplicar esses dois números. Por exemplo, em um processador dual-core com dois threads por núcleo, o total de threads será 4 (2 x 2).

Multithreading é a mesma coisa que multi-core?

Cores vs Threads – What are the key differences? | Temok Hosting Blog

Não. O termo multithreading se refere à habilidade de um processador em gerenciar diversas sequências de instruções, conhecidas como threads, simultaneamente. Por outro lado, multi-core se aplica a chips que possuem mais de um núcleo físico. “Core” significa “núcleo”, portanto, multi-core são múltiplos núcleos.

Essa distinção é crucial porque um núcleo físico é uma unidade de execução autônoma, que inclui uma Unidade Lógica e Aritmética (ULA), registradores e outros elementos. Em contrapartida, os threads atuam como núcleos virtuais, permitindo que os núcleos físicos alternem entre eles de forma veloz para maximizar a eficácia do fluxo de instruções.

É importante saber diferenciar também “processo” de “thread”. Um processo representa um conjunto ordenado de comandos que está associado a um software em funcionamento. Cada processo tem seu próprio espaço de memória reservado, que armazena as informações necessárias para sua execução. Um único software pode originar múltiplos processos, todos ligados a um processo mestre.

Por sua vez, um thread é uma fração de um processo, atuando como uma mini-tarefa. Em sistemas operacionais padrão, um processo sempre contém um ou mais threads. Esse método aprimora a utilização dos recursos do processador e melhora a eficiência do fluxo de comandos, tornando a operação mais eficaz.

Sobre o Autor

Cearense. 34 anos. Apaixonado por tecnologia e cultura. Trabalho como redator tech desde 2011. Já passei pelos maiores sites do país, como TechTudo e TudoCelular. E hoje cubro este fantástico mundo da tecnologia aqui para o HARDWARE.
Leia mais
Redes Sociais:

Deixe seu comentário

X