Em uma conversa com um amigo do trabalho sobre celulares, ele fez um comentário sobre o processador de um celular ser de 4 núcleo de 1.2GHz, o que totalizaria numa velocidade (Clock) de 4.8GHz, comentei no momento que não era assim e que o "clock" do processador era divido entre os 4 núcleos e não multiplicado por cada núcleo, pois, assim era com os processadores de PC (x86), mas o ele não se convenceu muito.
Como diria o professor Girafales: "somente os idiotas tem certeza do que dizem". E na conversa a primeira dúvida que tive foi: será que a arquitetura ARM (mais difundida entre celulares e tablets) mantiveram similaridade com a dos processadores de PC? Fiquei quieto e fui pesquisar e verifiquei que sim, são similares, ou seja, a frequência ou "clock" informada do processador não deve ser multiplicada por cada núcleo. Porém, durante a conversa mesmo sabendo o funcionamento utilizei uma frase que leva a uma compreensão errônea, pois, afirmei que a frequência era divida entre os núcleos, o que não caso, por exemplo um processador de 4 núcleos de 1.2 Ghz, significaria que cada núcleo tem uma frequência independente de apenas 300 MHz ou 0.3 GHz, o que também está incorreto. Que são os dois mitos que rondam os processadores multi core, alguns multiplicam e outros dividem a frequência informada.
Diante disto surgem mais perguntas do que respostas e estas perguntas seriam:
1) Como então devo entender a frequência de um processador de múltiplos núcleos?
2) Qual a vantagem de possuir mais do que um núcleo, já que processadores de um único núcleo poderiam ter a mesma frequência?
Se não estiver interessado em informações técnicas, recomendo pular para o Resumo.
Para iniciar a compreensão vou explicar de maneira simplificada o que é o Clock: que é um sinal utilizado para sincronizar os ciclos dentro do processador e os ciclos são medidos em Hz e esta frequência indica a quantidade de ciclos que o processador consegue realizar a cada segundo. Uma vez entendido isto, tudo que está no mesmo involucro do processador é um só processador, mesmo tendo mais de um núcleo, portanto, toda a estrutura faz parte desta frequência, ou seja, não se multiplica ou divide a frequência.
Um ciclo de instrução (também chamado de ciclo de busca e execução ou ciclo busca-execução) é o período de tempo no qual um processador lê e processa instruções, ou seja, a sequencia de ações que é realizado para executar as instruções em código de máquina. Segue um esquema básico de um ciclo:
Um ciclo de instrução (também chamado de ciclo de busca e execução ou ciclo busca-execução) é o período de tempo no qual um processador lê e processa instruções, ou seja, a sequencia de ações que é realizado para executar as instruções em código de máquina. Segue um esquema básico de um ciclo:
Neste cenário há outra coisa muito importante para entender o desempenho de um processador, que seria o que ele é capaz de fazer por ciclo, ou seja, quantas instruções ele pode fazer por ciclo. Cada processador tem um capacidade diferente de quantas atividades pode executar por ciclo, isto possibilita que processadores de frequência inferior possam ser mais rápidos.
Um processador é composto por diversos componentes, inclusive o Núcleo (core) tem seus próprios componentes. Cada fabricante, família e arquitetura podem possuir componentes diferentes, apesar de terem uma estrutura lógica base. Abaixo está o diagrama do Processador AMD FX-8150 (clique na imagem para ampliar):
Verifique no diagrama que este modelo que possui 8 núcleos, mas que cada par de núcleos compartilham alguns componentes e outros componentes (incluindo o barramento de comunicação com a placa-mãe) são compartilhados pelos 8 núcleos. Apesar de possuir 8 núcleos não significa que são 8 processadores completos, mas núcleos que compartilham uma mesma estrutura e isto se aplica a todos processadores de múltiplo núcleos.
Juntando todas estas informações podemos responder as duas perguntas. A frequência não deve ser somada e nem dividida, a frequência informada é o valor que o conjunto opera e o beneficio de possuir mais de um núcleo é a possibilidade de ter várias execuções sendo executadas simultaneamente, o que pode tornar a execução de múltiplas tarefas mais rápida.
Mas agora vamos voltar a complicar. Como dito cada processador tem uma capacidade de efetuar determinada quantidade de atividades por ciclo, ou seja, a frequência só vale para equiparar desempenho de processadores do mesmo fabricante e da mesma família. Vamos dar um exemplo com carros, por exemplo um Fusca que possui um motor padrão de 1.6 é inferior a um motor 1.4 de um Fit, pois são tecnologias diferentes, mas comparamos tecnologias diferentes de épocas diferentes. Mas se comparássemos os motores 1.4 de um Fit e de um HB20, ambos fabricados em 2015, poderíamos afirmar que ambos tem exatamente o mesmo desempenho em todos aspectos? É exatamente o mesmo que ocorre com os processadores, onde por exemplo um Processador de I7 de 4 núcleos é superior um FX-81xx de mesma frequência, mesmo com metade dos núcleos.
Resumo:
Em resumo a frequência de processadores de múltiplos núcleos não deve ser somada, multiplicada ou dividida por núcleo, a frequência informada é a frequência do conjunto e não se engane achando que cada núcleo equivale a um processador completo, pois, os mesmos tem uma estrutura que compartilha seus componentes internos.
e quantidade de núcleos fornecidos, como características isoladas, pouco pode nos dizer sobre desempenho sem uma análise e muitas vezes são fornecidos como jogadas de Marketing. O desempenho pode ser melhor medido por profissionais da área e/ou entusiastas, gammers, porém, para o público em geral, muito mais vale como jogada de Marketing.
e quantidade de núcleos fornecidos, como características isoladas, pouco pode nos dizer sobre desempenho sem uma análise e muitas vezes são fornecidos como jogadas de Marketing. O desempenho pode ser melhor medido por profissionais da área e/ou entusiastas, gammers, porém, para o público em geral, muito mais vale como jogada de Marketing.
Isto é ainda mais complicado para os processadores da arquitetura ARM. Pois não há organizações que projetam e constroem o processador, mas uma que projeta a arquitetura e licencia para que outras empresas o produzam e vendam livremente. A empresa que obtêm a licença pode usar a arquitetura, porém, com os componentes que quiserem e alguns casos até com algumas modificações. O seja um processador ARM Cortex-9 de 1.2 produzido pela empresa X, não quer dizer que possui mesmo desempenho da empresa Y. Para se diferenciar as empresas que licenciam as vezes alteram a nomenclatura para uma própria como é o caso da SnapDragon, o que dificulta ainda mais a comparação. Então cuidado, ao ver estes dados, principalmente para tablets e celulares, pois, trata-se de uma terra quase sem lei, onde as vezes é melhor confiar no fabricante que monta o dispositivo completo.
Para a linha de PCs há uma solução mais simples, que já foi publicada aqui no blog onde um site faz o comparativo, caso tenha interesse: Processador! Qual o melhor? Eis a questão...
Este artigo ficou extenso, apesar do objetivo de explicar a parte técnica para os interessados ou curiosos, mas alertar aos golpes de Marketing na divulgação destes dados. Fico no compromisso de fazer outro post falando de desempenho geral (pois, o processador não é o único responsável pelo desempenho), dando dicas de pesquisa e outras informações.


Seu artigo me ajudou bastante, muito interessante. Valeu!
ResponderExcluir