08/11/2009 Processadores de Múltiplos núcleos

Ao utilizarmos um computador, a impressão passada é a de que o mesmo realiza centenas de tarefas ao mesmo tempo. Quantas vezes não nos flagramos redigindo um texto, ao mesmo tempo em que escutamos algumas músicas, enquanto o antivírus varre o computador em busca de ameaças?

Esse aparente paralelismo de tarefas não era algo que poderia ser considerado real até há poucos anos atrás em computadores domésticos. Afinal, contendo apenas um único núcleo, um processador pode executar somente uma tarefa por vez. Mas, devido à velocidade com que um processador alterna entre as requisições de programas, o sistema aparenta estar executando diversas tarefas simultaneamente.

O maior problema enfrentado pelos fabricantes foi o limite físico imposto com o aumento gradativo da velocidade (chamada de clock). Como a tecnologia atual ainda inviabiliza um acréscimo maior sob esse quesito (aumento considerável de calor gerado, além de circuitos ainda mais minúsculos e frágeis), era necessário fazer uso de métodos que ultrapassassem os obstáculos delegados pela física.

Múltiplos processadores x múltiplos núcleos

A utilização de dois ou mais processadores não é novidade, ao menos em servidores. Podemos encontrar presentes no mercado computadores destinados especificamente para gerenciamento de grandes redes, uma função que exige alto poder de processamento. Para tanto, fabricantes de placas-mães lançaram modelos com suporte a mais de um processador, fugindo assim do limite encontrado na maioria dos equipamentos.
Um dos maiores empecilhos de levar a técnica apresentada acima para ambientes domésticos era o custo que deveria ser repassado ao usuário final. Além disso, os sistemas operacionais utilizados em computadores residenciais e pequenas empresas não saberiam utilizar com eficiência a arquitetura, originalmente desenvolvida para servidores. Adiante, exemplificarei melhor esse ponto.

Fazendo uso do conceito encontrado em servidores de múltiplos processadores, mas levando-se em consideração o custo que deveria ser repassado a usuários finais, empresas como a AMD e Intel desenvolveram produtos que abrigavam dentro de um único chip a tecnologia de dois ou mais processadores. Esse método consiste basicamente em manter dois ou mais núcleos principais de processadores dentro de uma peça de silício, cada um possuindo suas respectivas memórias caches.

Com o surgimento e popularização da nova tecnologia, os sistemas operacionais modernos consideram uma arquitetura de múltiplos núcleos como realmente sendo dois ou mais processadores presentes. Se o ambiente reconhece (e permite) o uso de mais de um núcleo, “threads” (processos) são criados para processamentos simultâneos, gerando assim o almejado paralelismo real (também chamado de multiprocessamento simétrico).

Perceba que, apesar dos conceitos se apresentarem praticamente idênticos, múltiplos núcleos não são equivalentes a múltiplos processadores. Embora um processador com mais de um núcleo realmente apresente uma arquitetura múltipla, e não somente uma simulação, estruturas separadas (como as encontradas em sistemas com processadores distintos) possuirão um desempenho relativamente superior.

O que tem sido empregado nos últimos anos em arquiteturas de servidores é a mescla das tecnologias descritas. Um computador pode possuir dois ou mais encaixes para processadores de múltiplos núcleos. Com isso, um servidor que comporta 4 chips de 4 núcleos, por exemplo, apresentaria o equivalente a 16 processadores.

Como funciona o processamento múltiplo?

Imagine, por exemplo, que você tenha em mãos um acervo de 1.000 fichas de clientes. Você precisa encontrar uma determinada pessoa nesta pilha de papel, mas infelizmente a mesma não apresenta nenhum método de ordenação plausível (não está em ordem alfabética, ou por código do cliente).

Se você está sozinho, sua única alternativa será de passar ficha por ficha, até encontrar o cliente que está buscando, uma árdua tarefa para apenas uma pessoa.

Agora, supondo que há outro funcionário da empresa no recinto. Para facilitar a busca, você entrega metade do acervo que tem em mãos para ele. Assim, ambos irão buscar o cliente nas fichas quem possuem em mãos; o primeiro que encontrar irá avisar o outro, possibilitando que ambos parem a tarefa que está sendo executada, pois o objetivo foi alcançado.

Essa analogia é justamente para apresentar as vantagens de um sistema com suporte a multiprocessamento. Não houve necessariamente um aumento de velocidade no fluxo de trabalho, mas sim uma divisão de tarefas, a qual influenciou diretamente no desempenho do processo em si.

Mas tenha em mente que, além do hardware, o sistema operacional também deverá oferecer suporte à tecnologia; ambientes computacionais antigos não iriam usufruir com eficiência os recursos de um hardware que apresente mais de um núcleo. Seria o mesmo que, no exemplo apresentado anteriormente, mesmo com a presença de outro funcionário da empresa, você continuar realizando a tarefa sozinho, não repassando metade das fichas para o colega de trabalho. Ele ficaria parado, sem ter absolutamente nada para fazer, exatamente como aconteceria em um processador com dois núcleos.

Considerações finais

O objetivo deste artigo não foi o de abranger demasiadamente a parte técnica dos processadores de múltiplos núcleos, mas sim a de esclarecer de forma plausível as vantagens da tecnologia aos que a desconheciam. Deixei de lado alguns termos específicos, bem como determinados jargões, com o principal intuito de não sobrecarregar a leitura para aqueles que apenas buscavam um esclarecimento de fácil assimilação sobre o assunto abordado.




Digg it StumbleUpon del.icio.us

0 comentários:

Postar um comentário

poste aqui seus comentarios

 
Copyright 2010 Hacking The World