Processadores

O processador é o principal componente de um computador, sendo muitas vezes chamado de "cérebro da máquina". Isso porque é o processador que executa, com auxílio de dispositivos como memórias e discos rígidos, todas as operações no computador. Quando você ouve uma música em MP3, acessa a internet, escreve um texto, tudo é feito pelo processador. Este é o primeiro de três artigos, que mostrarão os principais conceitos envolvendo o processador e explicarão um pouco de seu funcionamento.

O processador em si

O processador é um chip responsável por buscar e executar instruções presentes na memória do computador. Ele também é conhecido por CPU (Central Processing Unit - Unidade Central de Processamento). As instruções (processos) que ele executa consistem em operações matemáticas e lógicas, além de operações de busca, leitura e gravação de dados. Um conjunto organizado de instruções forma um programa. Todas essas operações são executadas na linguagem de máquina.

Barramentos

Para que o computador possa oferecer recursos e possibilidades diversas de uso ao usuário, é necessária a utilização de dispositivos adicionais, como placas de vídeo e de som, modem, disco rígido, teclado, etc. Estes componentes são conhecidos como Dispositivos de Entrada (teclado e mouse, por exemplo) e Saída (placa de vídeo e som, por exemplo). Em inglês, utiliza-se a sigla I/O, de Input/Output.

Para que o processador possa trabalhar com esses dispositivos, ele usa um barramento para se comunicar. Assim é possível que o processador envie informações (por exemplo, os dados para uma impressora, quando você pede para imprimir um arquivo) e receba (por exemplo, quando você digita algo no teclado). Esse barramento é conhecido como "barramento de dados" (ou data bus).

No entanto, quando o processador trabalha com a memória, ele faz uso de um "barramento de endereços" (também chamado de "clock externo"), pois através de um "endereço" é que o processador localizará os dados que precisa e que estão armazenados na memória do computador. É também por este barramento que o processador consegue determinar para qual dispositivo serão enviados os dados tratados. Seu valor é medido em Hz.

Bits internos e externos, endereçamento e clock

    Bits internos

O número de bits é uma das principais características dos processadores e tem grande influência no desempenho. Os processadores mais comuns (Pentium II, III e 4, Athlon XP, Duron, etc) operam a 32 bits, enquanto chips antigos, como o 286, operavam com 16 bits. Repare que estes valores correspondem ao trabalho dos circuitos do processador, por isso são chamados de bits internos. Já existe nos mercados processadores que trabalham a 64 bits por vez, como o Athlon 64, da AMD.

Quan

to mais bits internos o processador trabalhar, mais rapidamente ele poderá fazer cálculos e processar dados em geral (conseqüentemente, ele será mais caro). Só para dar uma noção, um processador de 32 bits pode manipular números de valor até 4.294.967.296. Processadores de 16 bits não conseguem trabalhar com este valor, de forma que é necessário dividi-lo em valores menores e possíveis de serem manipulados com 16 bits. Assim, a tarefa leva várias etapas. Com 32 bits, a tarefa pode ser realizada numa etapa só.

    Bits externos

Acima você viu que bits internos medem a capacidade do processador trabalhar internamente, ou seja, sozinho, "dentro dele mesmo". O processador sozinho não é nada e precisa se comunicar com os dispositivos periféricos. Como as instruções que o processador executa ficam armazenadas na memória, é preciso que ela seja acessada de forma rápida e precisa. Essa velocidade depende da quantidade de bits que o barramento de dados consegue manipular simultaneamente. Tais bits são chamados de bits externos. Esse valor aumenta com o avanço da tecnologia. Na época do auge do processador Pentium, por exemplo, esse barramento poderia ser encontrado em 32 e 64 bits.

    Endereçamento

O endereçamento consiste na capacidade que o processador tem de acessar um número máximo de células da memória. Para acessar uma célula, o processador precisa saber o endereço dela. Cada célula armazena um byte. Assim, um processador com o barramento de dados com 16 bits, pode acessar duas células por vez. Isso porque um byte equivale a 8 bits e 16 divididos por 8 é igual a 2, portanto, duas células. Um processador com 32 bits pode acessar até 4 células. Para descobrir o valor máximo de memória que o processador consegue acessar, basta fazer um cálculo: elevar a 2 o número de bits do barramento de endereços. Por exemplo, 2 elevados a 32:

232 = 4.294.967.296 bytes => 4 GB

A maioria dos processadores usa esse valor atualmente.

Clock interno e externo

Daqui que vem termos como processadores K6 II de 500 MHz, Pentium III de 800 MHz, Athlon XP de 2 GHz, etc. O clock é uma forma de indicar o número de instruções que podem ser executadas a cada segundo (ciclo). Sua medição é feita em Hz (sendo que KHz corresponde a mil ciclos, MHz corresponde a 1000 KHz e GHz corresponde a 1000 MHz). Assim, um processador Pentium II 800 MHz, indica que o mesmo pode realizar 800 milhões de ciclos por segundo. Algumas instruções podem precisar de vários ciclos para ser executadas, enquanto outras, um ciclo só. A seguir, as diferenças entre clock interno e clock externo:

Clock interno: o clock interno indica a freqüência na qual o processador trabalha. Portanto, num Pentium 4 de 2,8 GHz, o "2,8 GHz" indicam o clock interno. Este geralmente é obtido através de um multiplicador do clock externo. Por exemplo, se o clock externo for de 66 MHz, o multiplicador terá de ser de 3x para fazer com o que processador funcione a 200 MHz (66 x 3).

Clock externo: também conhecido como FSB (Front Side Bus), o clock externo, por sua vez, é o que indica a freqüência de trabalho do barramento (conhecido como barramento externo) de comunicação com a placa-mãe (na verdade, chipset, memória, etc). Por exemplo, o processador AMD Sempron 2200+ trabalha com clock externo de 333 MHz.

Nos processadores da linha Athlon 64, a AMD (fabricante) passou a adotar a tecnologia HyperTransport que, basicamente, usa dois barramentos para comunicação externa: um para acesso à memória e outro para acesso ao chipset. Na verdade, é este último que recebe o nome de HyperTransport. Até então, os processadores usavam apenas o barramento externo para os dois tipos de acesso. Com o HyperTransport, a AMD passou a indicar a velocidade de trabalho deste ao invés do clock externo.

Um detalhe de extrema importância, é que esses ciclos de clock diferem de fabricante para fabricante. Por isso, um Pentium 4 de 2.4 GHz (2400 MHz), não é igual ao Athlon XP de 2.4 GHz. Este último, na verdade, trabalha a 2.0 GHz, mas sua velocidade é semelhante ao de um Pentium 4 de 2.4 GHz. Por isso, a AMD informa a velocidade que é semelhante ao do processador do fabricante concorrente.

Memória cache

Os processadores, evidentemente, sofreram grandes aperfeiçoamentos ao longo dos anos. No entanto, chegou-se a um ponto em que estes evoluíram de forma tão rápida que o acesso à memória do computador ficou comprometida, pois apesar de também ter sofrido boas mudanças, a memória é mais lenta para ser acessada, fazendo com que o processador não conseguisse trabalhar com toda sua velocidade, devido a sua dependência da velocidade de acesso aos dados da memória. Esse problema ficou notável a partir do ano de 1990, quando os processadores passaram a trabalhar acima de 25 MHz.

Uma solução para este problema seria usar memórias rápidas, como a SRAM, mas estas eram muito caras e inviabilizariam a compra de computadores. Além disso, tais memórias eram complexas e grandes, o que exigiria mais espaço interno no gabinete da máquina. Mesmo assim, a idéia não foi totalmente descartada, pois serviu de base para uma solução eficiente: a memória cache.

A memória cache consiste numa pequena quantidade de memória SRAM, incluída no chip do processador. Quando este precisa ler dados na memória RAM, um circuito especial, chamado de controlador de Cache, transfere os dados mais requisitados da RAM para a memória cache. Assim, no próximo acesso do processador, este consultará a memória cache, que é bem mais rápida, permitindo o processamento de dados de maneira mais eficiente. Enquanto o processador lê os dados na cache, o controlador acessa mais informações na RAM, transferindo-as para a memória cache. De grosso modo, pode-se dizer que a cache fica entre o processador e a memória RAM. Veja a ilustração abaixo:

 

 

Com o uso da memória cache, na maior parte do tempo, o processador encontra nela os dados que precisa. Prova disso, é que se a cache de um processador atual for desabilitada, o computador pode ter queda de desempenho de mais de 30%.

Tipos de memória cache

Atualmente, existem 3 tipos de memória cache, que serão mostrados a seguir:

Cache L1 (Leve 1 - Nível 1 ou cache interno): trata-se de um tipo de cache em uso desde o processador 486. É chamado de cache interno porque se localiza dentro do procesador. O cache L1 é tão importante para o processador, que este, mesmo tendo clock inferior, pode ser mais rápido que um processador de clock superior, mas sem cache. O tamanho deste cache pode ir de 16 KB (como o Pentium) a 512 KB (como o Pentium 4). Os processadores 486 tinham cache de 8 KB.

Cache L2 (Level 2 - Nível 2 ou cache externo): o cache L1 não era totalmente perfeito, pois tinha tamanho pequeno e apresentava alguns erros, que obrigavam o processador a buscar os dados na memória RAM. Uma solução foi a implantação de uma memória cache fora do processador. Eis a cache L2, que para ser usada, necessita de um controlador, que geralmente é imbutido no chipset da placa-mãe. É este chip que também determina o tamanho máximo do cache L2. Os tamanhos mais comuns são os de 256 KB e 512 KB, mas é perfeitamente possível a existência de caches maiores. Um fato importante a ser citado, é que diversos processadores trazem o cache L2 embutido dentro de si, fazendo com que as terminologias Interno e Externo perderem o sentido.

Cache L3 (Level 3 - Nível 3): trata-se de um tipo incomum, usado pelo processador AMD K6-III. Este possui o cache L2 embutido em si, de forma que o cache L2 existente na placa-mãe pudesse ser usado como uma terceira cache. Daí o nome L3. Tal fato fez do K6-III um processador muito rápido em sua época.

Co-processador aritmético

Dois dos primeiros processadores existentes, o 8086 e 8088, poderiam trabalhar em conjunto com um processador especial, chamado 8087. A função deste processador era a de realizar cálculos matemáticos complexos. O processador, quando muito, passaria então a executar cálculos mais simples e a se preocupar com outras instruções. O 8087 é o que conhecemos hoje como "Co-processador aritmético" ou "Co-processador matemático". Seu nome em inglês é FPU (Floating Point Unit - Unidade de de Ponto Flutuante).

Esse recurso, hoje em dia, é embutido no processador, e seu uso é considerado indispensável, pois ele é projetado para realizar os mais diversos tipos de cálculo. Só para dar uma noção da importância do co-processador, uma operação matemática, que no processador necessita de várias instruções para ser concluída, pode ser realizada em uma única instrução pelo co-processador.

Overclock

Fazer com que o processador trabalhe com maior velocidade do que com a qual ele foi testado e aprovado. Esta técnica consiste em configurar os jumpers da placa-mãe para alterar o barramento do sistema ou o multiplicador de clock do processador. Recomenda-se conhecer os prós e contras do overclock antes que se tente fazê-lo. É a tecnica que permite ao microprocessador operar em velocidade acima da de projeto, através do emprego de jumperse outros artifícios. Entretanto, esta solução não é recomendável, pois pode causar superaquecimento, travamento do equipamento, ou outros problemas. - [Topo].

 


Associação SoftwareLivre

A Associação SoftwareLivre.org (ASL) é uma associação civil sem fins-lucrativos, com sede em Porto Alegre/RS que reúne empresários, profissionais liberais, estudantes e servidores públicos, estabelecendo relações com os mais diversos setores da sociedade como o poder público, universidades, empresas, grupos de usuários, hackers e ONGs. A ASL tem por principal objetivo tornar o software livre amplamente incluído na sociedade, propiciando espaço de discussão, apoio, fomento e organização de iniciativas nas mais diversas áreas relacionadas. - Site oficial da associação