Fundamentos da CPU: o que são núcleos, hyper-threading e várias CPUs?


0
Uma CPU sem um dissipador de calor.
Jason Fitzpatrick / How-To Geek
Uma única CPU moderna normalmente possui vários núcleos. Cada núcleo é seu próprio processador. Multi-threading simultâneo, chamado de Hyper-Threading pela Intel, divide cada núcleo físico em dois processadores lógicos. Cada processador lógico permite que seu sistema operacional execute duas tarefas separadas. Por exemplo, uma CPU de oito núcleos aparece como uma única CPU com 8 núcleos e 16 processadores lógicos.

A unidade central de processamento (CPU) do seu computador faz o trabalho computacional — basicamente, executando programas. Mas as CPUs modernas oferecem recursos como múltiplos núcleos e hyper-threading. Alguns PCs até usam várias CPUs. Explicaremos as diferenças e como funcionam.

O que são Hyper-Threading e Multithreading Simultâneo?

Multithreading simultâneo (chamado de Hyper-Threading pela Intel) permite que uma única CPU execute várias tarefas simultaneamente, em vez de sequencialmente, o que melhora o desempenho na maioria das situações.

Hyper-threading foi a primeira tentativa da Intel de levar a computação paralela aos PCs de consumo em 2002. Os Pentium 4 da época apresentavam apenas um único núcleo de CPU, de modo que só podiam executar uma tarefa por vez – mesmo que fossem capazes de alternar entre tarefas com rapidez suficiente para parecer multitarefa. Hyper-Threading – chamado de multithreading simultâneo (SMT) na AMD e outros processadores não Intel – tentou compensar isso.

Observação: A rigor, apenas Os processadores Intel têm hyper-threading, no entanto, o termo às vezes é usado coloquialmente para se referir a qualquer tipo de multithreading simultâneo.

Um único núcleo de CPU físico com hyper-threading ou multithreading simultâneo aparece como duas CPUs lógicas para um sistema operacional. A CPU ainda é uma única CPU, então é um pouco de trapaça. Enquanto o sistema operacional vê duas CPUs para cada núcleo, o hardware real da CPU possui apenas um único conjunto de recursos de execução para cada núcleo. A CPU finge ter mais núcleos do que tem e usa sua própria lógica para acelerar a execução do programa. Em outras palavras, o sistema operacional é levado a ver duas CPUs para cada núcleo de CPU real.

Hyper-threading permite que os dois núcleos lógicos da CPU compartilhem recursos de execução física. Isso pode acelerar um pouco as coisas — se uma CPU virtual estiver paralisada e esperando, a outra CPU virtual pode emprestar seus recursos de execução. Hyper-threading pode acelerar seu sistema, mas não é tão bom quanto ter núcleos adicionais reais.

Um laptop com processador Intel.
Hannah Stryker / How-To Geek

Felizmente, o hyper-threading agora é apenas um bônus. Enquanto os processadores de consumo originais com hyper-threading tinham apenas um único núcleo que se disfarçava como vários núcleos, as CPUs modernas agora têm vários núcleos e tecnologia hyper-threading ou SMT. Sua CPU hexa-core com hyper-threading aparece como 12 núcleos em seu sistema operacional, enquanto sua CPU octa-core com hyper-threading aparece como 16 núcleos. Hyper-threading não substitui núcleos adicionais, mas uma CPU dual-core com hyper-threading deve ter um desempenho melhor do que uma CPU dual-core sem hyper-threading.

O que são núcleos de CPU?

Originalmente, as CPUs tinham um único núcleo. Isso significava que a CPU física tinha uma única unidade de processamento central. Para aumentar o desempenho, os fabricantes adicionaram “núcleos” adicionais, ou unidades centrais de processamento. Uma CPU dual-core tem duas unidades centrais de processamento, então ela aparece para o sistema operacional como duas CPUs. Uma CPU com dois núcleos, por exemplo, pode executar dois processos diferentes ao mesmo tempo. Isso acelera seu sistema porque seu computador pode fazer várias coisas ao mesmo tempo.

Ao contrário do hyper-threading, não há truques aqui – uma CPU dual-core tem literalmente duas unidades centrais de processamento no chip da CPU. Uma CPU quad-core possui quatro unidades centrais de processamento, uma CPU octa-core possui oito unidades centrais de processamento e assim por diante.

Isso ajuda a melhorar drasticamente o desempenho enquanto mantém a unidade física da CPU pequena o suficiente para caber em um único soquete. Só precisa haver um único soquete de CPU com uma única unidade de CPU inserida nele – não quatro soquetes de CPU diferentes com quatro CPUs diferentes, cada um precisando de sua própria energia, resfriamento e outro hardware. Há menos latência porque os núcleos podem se comunicar mais rapidamente, pois estão todos no mesmo chip.

O Gerenciador de Tarefas do Windows mostra isso muito bem. Aqui, por exemplo, você pode ver que este sistema possui uma CPU real (soquete) e 8 núcleos. O multithreading simultâneo faz com que cada núcleo se pareça com duas CPUs para o sistema operacional, mostrando 16 processadores lógicos.

Gerenciador de tarefas no Windows 10 com uma CPU de 8 núcleos.

Todas as configurações de CPU multi-core são iguais?

Não, nem todas as configurações de CPU multi-core são iguais. Existem duas filosofias de design distintas que você encontrará ao olhar para CPUs multi-core.

Um tipo de configuração — e o tipo que tem sido comum em PCs de consumo há anos — usa vários núcleos idênticos. Nessas configurações, se você tiver um sistema octa-core, todos os oito processadores são CPUs de alto desempenho e todos são otimizados da mesma maneira.

O outro usa uma mistura de diferentes núcleos (às vezes chamada de arquitetura de núcleo heterogênea). Normalmente, essas configurações usarão dois tipos distintos: núcleos de desempenho e núcleos de eficiência.

O esquema de nomenclatura preciso varia um pouco entre empresas e aplicativos, mas a ideia básica é a mesma. Os núcleos de eficiência são reservados para tarefas de segundo plano e de baixa demanda. Esses núcleos consomem menos energia. Os núcleos de desempenho são exatamente o oposto. Eles consomem significativamente mais energia, mas oferecem desempenho muito melhor em tarefas exigentes, como jogos. A combinação resulta em desempenho quando você precisa, mas com menor consumo de energia de segundo plano.

RELACIONADO: O que é subvoltar uma GPU ou CPU e quando você deve fazer isso?

Essa configuração multi-core heterogênea (chamada de big.LITTLE pela ARM) tornou-se popular entre os telefones celulares e outros dispositivos móveis por causa da economia de energia que eles ofereciam. Quando você precisa que seu telefone dure o dia todo, não faz sentido esgotar a bateria desnecessariamente executando um núcleo de alta potência o tempo todo. A Intel também introduziu a ideia em CPUs de desktop convencionais, começando com seus processadores Alder Lake.

E quanto a várias CPUs?

A maioria dos computadores tem apenas uma única CPU. Essa única CPU pode ter vários núcleos ou tecnologia hyper-threading – mas ainda é apenas uma unidade de CPU física inserida em um único soquete de CPU na placa-mãe.

RELACIONADO: Por que você não pode usar a velocidade do clock da CPU para comparar o desempenho do computador

Antes do surgimento de CPUs hyper-threading e multi-core, as pessoas tentavam adicionar poder de processamento adicional aos computadores adicionando CPUs adicionais. Isso requer uma placa-mãe com vários soquetes de CPU. A placa-mãe também precisa de hardware adicional para conectar esses soquetes de CPU à RAM e outros recursos. Há muita sobrecarga nesse tipo de configuração. Há latência adicional se as CPUs precisarem se comunicar umas com as outras, sistemas com várias CPUs consomem mais energia e a placa-mãe precisa de mais soquetes e hardware.

Um servidor com várias CPUs.
Justin Duino / How-To Geek

Sistemas com várias CPUs não são muito comuns entre os PCs de usuários domésticos atualmente. Mesmo um desktop de jogos de alta potência com várias placas gráficas geralmente terá apenas uma única CPU. Você encontrará vários sistemas de CPU entre supercomputadores, servidores, algumas estações de trabalho e sistemas de ponta semelhantes que precisam do máximo de poder de processamento de números possível.

Quanto mais CPUs ou núcleos um computador tiver, mais coisas ele poderá fazer ao mesmo tempo, ajudando a melhorar o desempenho na maioria das tarefas. A maioria dos computadores agora tem CPUs com vários núcleos — a opção mais eficiente que discutimos. Você até encontrará CPUs com vários núcleos em smartphones e tablets modernos.

A velocidade do clock de uma CPU e seu IPC (instruções por ciclo) costumava ser suficiente ao comparar o desempenho. As coisas não são mais tão simples. Uma CPU que oferece vários núcleos e hyper-threading pode ter um desempenho significativamente melhor do que uma CPU com a mesma velocidade que não possui hyper-threading. E os PCs com várias CPUs podem ter uma vantagem ainda maior. Todos esses recursos são projetados para permitir que os PCs executem vários processos ao mesmo tempo com mais facilidade, aumentando seu desempenho ao realizar multitarefas ou sob as demandas de aplicativos poderosos, como codificadores de vídeo e jogos modernos.

Obviamente, uma contagem de núcleos mais alta não é tão importante em todas as situações. Os sistemas operacionais modernos são muito inteligentes em dividir suas tarefas entre vários núcleos, mas nem todos os programas são tão bem otimizados. Em muitos casos (especialmente em jogos), o desempenho é limitado principalmente pela velocidade máxima de um núcleo individual, e não pelo número total de núcleos que você possui. Portanto, não saia correndo para comprar uma CPU Threadripper de 64 núcleos pensando que ela renderá um bilhão de FPS em Chamada à ação — não vai.


Like it? Share with your friends!

0

0 Comments

Your email address will not be published. Required fields are marked *