terça-feira, 10 de julho de 2018

Como escolher um processador

O marketing da industria de computadores sempre atuou dando ênfase ao clock ao qual a CPU funciona. Porém a especificação de velocidade de um processador ( 2 Ghz ou 3 Ghz) é uma informação muito simploria, que serve apenas para leigos terem noção do desempenho de uma maquina. O desempenho depende de inumeros fatores, a arquitetura da tecnologia empregada entre outros. É necessário conhecer alguns recursos principais que influenciam na capacidade e velocidade de processamento.  Além de ter uma maquina com hardware avançado também torna se necessário conhecer recursos de software que consomem os recursos de hardware, porém nesta postagem vamos focar em configurações de hardware.

Quantidade de Núcleos de um processador

Quanto maior o número de núcleos, melhor será o desempenho de um computador multi-tarefas. Qualquer computador hoje em dia executa dezenas de funções simultaneamente para manter o sistema operacional funcionando, qualquer destes serviços consome recursos de memória e processador, portanto uma boa dica é configurar o sistema para que não execute serviços que sejam desnecesários.
Em relação a quantidade de núcleos existem processadores dual-cores, que trabalham com 2 processos, mas apenas um núcleo físico. É como se houvesse 2 nucleos mas que compartilham a mesma memória no chip. Assim, há processadores com 2 nucleos mas 4 threads (processos). Um processador com 4 nucleos individualizados é melhor que um com 4 threads mas 2 núcleos. E como foi dito, se um processador tem varios núcleos, já é obvio que se trata de uma tecnologia mais atual, portanto melhor manejo de energia e tbm no processamento de dados em si.

Memória Cache do Processador

Caminho de armazenamento de dados até o processador

A memória cache é um item de extrema importância em um processador, porém não é levado em conta pela maioria das pessoas que preocupam-se apenas com memória RAM e Armazenamento em disco.
Cache de memória é uma memória de alto desempenho localizada dentro do processador e que serve para aumentar a velocidade no acesso aos dados e instruções armazenados na memória RAM.Na maioria dos processadores de mais de um núcleo, cada núcleo pode possuir sua própria cache e alguns casos realizam acesso direto e independente à memória principal; possibilita-se, assim, que as instruções de aplicações sejam executadas em paralelo, ou seja, cada processador realiza os cálculos de que é requisitado concorrentemente com o outro, ganhando desempenho. Este, porém, depende muito dos algoritmos de software utilizados e de suas implementações.



Outra vantagem do processamento em paralelo é a capacidade de cada processador ficar responsável pela execução de um aplicativo, como por exemplo, quando o usuário está executando algum arquivo de som e ao mesmo tempo executando a varredura do antivírus.O processador não pode buscar dados diretamente do disco rígido porque os discos são muito lentos, mesmo se você considerar o disco rígido mais rápido disponível no mercado. Só para você ter uma ideia do que estamos falando, um disco rígido SATA-300 – o tipo mais rápido encontrado no mercado hoje para o usuário comum – tem uma taxa de transferência máxima teórica de 300 MB/s. Um processador trabalhando internamente a 2 GHz com caminhos de dados* internos de 64 bits consegue transferir dados internamente a 16 GB/s – ou seja, 50 vezes mais rápido.


* Traduzindo: são os caminhos entre os circuitos internos do processador. Esta é uma conta grosseira e serve apenas para te dar uma ideia, já que os processadores têm internamente vários caminhos de dados diferentes, cada um transferindo um número diferente de bits por vez. Por exemplo, nos processadores da AMD o caminho de dados entre o cache de memória L2 e o cache de memória L1 é de 128 bits, enquanto que nos atuais processadores da Intel este caminho de dados é de 256 bits. Se você está confuso, não se preocupe. Isto é só para explicar que o número mostrado no parágrafo acima não é fixo, mas o processador é sempre muito mais rápido do que os discos rígidos.


A diferença de desempenho vem do fato de que os discos rígidos são dispositivos mecânicos, que são muito mais lentos do que os dispositivos puramente eletrônicos, já que as partes mecânicas precisam ser movidas para buscar um dado (o que é muito mais lento do que mover elétrons). A memória RAM, por outro lado, é 100% eletrônica e por esse motivo ela é muito mais rápida do que os discos rígidos, e idealmente tão rápida quanto o processador.


E aqui está o problema. Mesmo a memória RAM mais rápida disponível não consegue acompanhar o processador. Se você tomar como exemplo as memórias DDR2-800, elas transferem dados a 6.400 MB/s – 12.800 MB/s no modo de dois canais. Apesar deste número se aproximar dos 16 GB/s do exemplo acima, como os processadores modernos são capazes de buscar dados do cache de memória L2 a uma taxa de 128 ou 256 bits, nós estamos falando de uma taxa de transferência de 32 GB/s ou 64 GB/s, isso se o processador trabalhar internamente a 2 GHz. Não se preocupe com o tal do “cache de memória L2” por enquanto, nós explicaremos sobre ele mais adiante. Tudo o que queremos agora é que você consiga visualizar que a memória RAM é mais lenta do que o processador.


A propósito, a taxa de transferência é calculada usando a seguinte fórmula (em todos os exemplos dados até o momento “dados por clock” era igual a “1”):


Taxa de transferência = largura (número de bits) x clock x dados por clock / 8


O problema não é apenas a taxa de transferência, ou seja, a velocidade da transferência, mas também a latência. A latência (também conhecida como tempo de acesso) é a quantidade de tempo que a memória demora em entregar um dado solicitado pelo o processador – esta entrega não é instantânea. Quando o processador solicita uma instrução (ou dado) que está armazenado em um determinado endereço, a memória demora um certo tempo para entregar esta instrução (ou dado) de volta ao processador. Nas memórias atuais, caso elas sejam rotuladas como CL de 5 (CL significa CAS Latency ou latência do CAS, que é a latência que estamos falando), isto significa que a memória entregará os dados solicitados apenas após cinco pulsos de clock – o que significa que o processador terá de esperar.



Esperas reduzem o desempenho do processador. Se o processador tiver de esperar cinco pulsos de clock para receber a instrução ou dado solicitado da memória, seu desempenho será de apenas 1/5 do desempenho que ele teria caso estivesse usando uma memória capaz de fornecer dados imediatamente. Em outras palavras, quando o processador acessa uma memória DDR2-800 com CL5, o seu desempenho é o mesmo que se ele estivesse acessando uma memória trabalhando a 160 MHz (800 MHz / 5). No mundo real o desempenho das memórias não é tão ruim assim pois elas trabalham em um modo chamado burst (rajada), onde a partir do segundo dado em diante as entregas passam a ser imediatas, desde que os dados estejam armazenados em endereços contíguos (normalmente as instruções de um programa são armazenadas em endereços sequenciais). Isto é expresso como “x-1-1-1” (por exemplo, “5-1-1-1” para a memória do nosso exemplo), significando que o primeiro dado é entregue após cinco pulsos de clock mas do segundo em diante os dados podem ser entregues em apenas um pulso de clock – desde que os dados estejam armazenados em endereços contíguos, como dissemos.


Nenhum comentário:

Postar um comentário