Core vs Thread

Uma situação que causa alguma confusão aos utilizadores é a diferença entre cores e threads. Na Figura 1 são mostradas algumas especificações técnicas do Processador Intel Core i7 3960X, entre as quais o número de cores e o número de Threads, que são 6 e 12 respetivamente.

Core i7, Cores e Threads

A tradução de core é núcleo, que é o que realmente se trata. Os processadores mais antigos tinham apenas 1 núcleo e os atuais têm, por norma, mais que um. A tradução para Thread é “fio”, o que nos diz pouco sobre a questão. Vamos abordar com um pouco de detalhe.

1 - Execução de uma Aplicação / Processos

Basicamente, a execução de uma aplicação dá-se, inicia com uma ação do sistema operativo. Quando o utilizador abre uma aplicação, o sistema operativo interpreta a ação e solicita os arquivos relacionados com esse software para que sejam executados.

É óbvio que qualquer atividade do sistema operativo está sujeita a processamento, ou seja, tem relação com o processador. Todavia, antes que uma aplicação esteja aberta e solicite o trabalho ao processador, ela é apenas carregada na memória RAM, o que não exige uma atividade do processador.

Ao efetuar o carregamento da aplicação, o sistema operativo trabalha com processos. Cada software possui um processo (alguns utilizam árvores de processos), cada qual com as respetivas instruções para o processador saber como proceder para efetuar os cálculos.

Os “processos” são módulos executáveis que contêm linhas de código para a execução do programa. Neste contexto, um Processo é uma lista de instruções (linhas de código) que informa o processador quais as que devem ser executadas e em que momentos.

2 - O Core / Núcleo

O que normalmente denominamos de processador é na realidade um conjunto de chips encapsulados que contém contatos metálicos para comunicação com os componentes restantes componentes da máquina.

O core é uma pequena pastilha de silício a qual tem milhares (ou milhões) de transístores e tem uma unidade aritmética lógica, diversos barramentos, um clock interno e um externo (FSB), memória cache embutida, etc., ou seja, o Core / Núcleo reúne as principais funções do Processador.

Os processadores podem ter um ou mais núcleos, sendo a ultima situação a mais comum na atualidade.

Processador com 4 núcleos, Intel Core 2 Quad

Na maioria dos processadores de mais de um núcleo, cada núcleo pode possuir a sua própria cache e realiza acesso direto e independente à memória principal. Possibilita-se, assim, que as instruções das aplicações sejam executadas em paralelo, ou seja, cada núcleo realiza os cálculos de que é requisitado concorrentemente com o outro, ganhando desempenho.

A origem de processadores com vários núcleos deveu-se ao facto de estarem a atingir clocks muito elevados, logo gerando muito calor. Esta situação estava a exigir sistemas de arrefecimento mais complexos. Para contornar o referido, optou-se por se manter (ou baixar) o clock e acrescentar mais “pastilhas de silício”.

3 - O Thread

Anteriormente, a existência de um núcleo era suficiente. Todavia, a evolução das aplicações e dos componentes de hardware exigiu uma melhor divisão de tarefas, surgindo as tecnologias MultiThreading e HyperThreading.

Posteriormente surgiram os processadores com 2 ou mais núcleos que resultou uma completa reconfigurarão das linhas de instruções nos processos, cujo objetivo foi separá-las para execuções em diferentes núcleos

As linhas de instruções (threads) constituem a divisão do processo principal de uma aplicação.

Desta forma, o(s) core(s) do processador vão lidar com linhas de instruções de diversos processos, enquanto que anteriormente lidavam com um só processo (ou com as linhas de um só processo) num único core.

4 - O Hyper Threading

A Intel desenvolveu a tecnologia HyperTreading, que passou a aplicar nos processadores a partir de 2002. O primeiro processador a utilizar esta tecnologia, foi o Pentium IV.

A HyperThreading tem um núcleo de processamento físico e dois núcleos lógicos. Permite que as threads sejam executadas em paralelo (paralelismo) em cada núcleo de processador. Este tipo de processamento aproveita de forma mais eficiente o uso dos recursos dos processadores e melhora a performance multithread das aplicações.

Threads de CPU com 4 Cores

Os processadores mais recentes têm especificações quanto aos núcleos e quanto às threads. Por exemplo o processador da Figura 1 (Core i7-3960X) tem 6 núcleos e 12 Threads, o que implica que pode trabalhar com 6 processos indivisíveis simultaneamente (um em cada núcleo), com até 12 linhas de execução (threads), as quais podem ou não ser de um mesmo processo.

5 - O Multi Threading

Multihreading é a capacidade que o sistema operativo possui de executar várias threads simultaneamente sem que uma interfira na outra.

Estas threads partilham os recursos do processo, mas são capazes de ser executadas de forma independente. Para possuir processamento MultiThread, os processadores têm de permitir duas ou mais threads em simultâneo (o hyperthreading simula este efeito) atendendo-as uma por vez num determinado período de tempo.

A vantagem da execução MultiThread é permitir que os computadores com múltiplos núcleos de processamento possam aproveitar todo o seu potencial e operar de forma mais rápida.

 

Autor: José JR Crispim
Publicado em: Junho de 2013

Nota: se verificar alguma incorreção no presente artigo ou pretender acrescentar algo mais, pode enviar-me um e-Mail. Publicarei a correção e colocarei o autor da mesma.

 

Fechar Janela