VOCÊ SABIA?
Veja como funciona um chip
Simples conta de somar envolve
complexas operações
Quem
não pode ir até o Museu Intel, situado em Santa Clara, no
estado norte-americano da Califórnia, tem pela Internet acesso ao
museu virtual dessa empresa, que entre outras informações
(em inglês), apresenta em animação Shockwave e em páginas
hipertexto uma seqüência de imagens, demonstrando o funcionamento
passo a passo de um microprocessador. Confira na Web ou a seguir.
Lembra a Intel que um microprocessador
- ou chip, como é conhecido - é uma pequena
placa de silício, menor que a unha do dedo mínimo, em que
foram gravados, com produtos químicos, caminhos para condução
e troca de sinais elétricos contendo informações.
E o chip há muito não é mais exclusividade
do computador, ele aparece nos mais diferentes aparelhos, como forno microondas,
telefone celular, veículos, brinquedos etc.
Cada parte do processador tem uma
função especial. Assim, suponhamos a simples adição
2+3=5 e vejamos como ela é processada pelo chip, acompanhando
estas dez imagens e as cores citadas no texto:
|
1 – Quando você
pressiona a tecla 2, o microprocessador é alertado e instrui a unidade
de pré-solicitação de dados (Prefetch Unit) para perguntar
à memória principal do computador por uma instrução
específica para lidar com o novo dado, uma vez que não há
nada ainda no cachê de instruções (Instruction Cache)
(veja
a seqüência no caminho em amarelo).
A nova instrução entra
no chip através da unidade de transporte de dados (Bus Unit)
da memória principal do computador e é armazenada no Instruction
Cache, onde recebe o código "2=X" (veja em
azul). |
2 – A Prefetch Unit
então solicita ao Instruction Cache uma cópia do código
"2=X" e o envia à unidade de decodificação (Decode
Unit) para posterior processamento (veja em amarelo).
Na Decode Unit, a instrução
"2=X" é traduzida ou decodificada em uma seqüência de
códigos binários que vai para a unidade de controle (Control
Unit); o cachê de dados (Data Cache) pergunta a eles o que deve fazer
com a instrução (veja em azul escuro).
Como a Decode Unit tinha a informação
de que o número 2 deveria ser armazenado para uso futuro no Data
Cache, a Control Unit agora produz a instrução para "2=X".
Isso faz com que o número 2 seja enviado a um endereço no
Data Cache chamado "X", onde você o vê aguardando futuras instruções
(em
azul claro). |
|
|
3 – Agora, quando
você pressiona a tecla 3, a Prefetch Unit repete o processo, perguntando
à memória principal do computador e ao Instruction Cache
por instruções específicas para este novo dado. Não
encontra ainda nenhuma instrução no Instruction Cache,
então a instrução deve vir da memória principal
(veja em amarelo).
Como você vê no caminho
em azul, o novo dado entra no microprocessador procedente da memória
principal e é armazenado em outro endereço do Instruction
Cache, com o código "3=Y". |
4 – Mais uma vez,
a Prefetch Unit obtém uma cópia do código "3=Y" do
Instruction Cache e o envia à Decode Unit para posterior processamento
(veja em amarelo)
Na Decode Unit, a instrução
"3=Y" é traduzida ou decodificada em uma seqüência de
código binário que é emitida para a Control Unit e
o Data Cache pergunta o que fazer com a instrução (veja
em azul escuro).
Como a Decode Unit tinha instruído
que o número 3 deveria ser armazenado para uso futuro no Data Cache,
a Control Unit agora monta a instrução "3=Y". Isso faz com
que o número 3 seja enviado para um endereço no Data Cache
chamado "Y", onde fica esperando por novas ordens, da mesma forma como
havia sido feito com o número 2 (veja em azul
claro). |
|
|
5 – Quando você
pressiona a tecla de [+], a Prefetch Unit pergunta à memória
principal do computador e ao Instruction Cache sobre o novo dado, que deve
ser obtido da memória principal (veja em amarelo).
Por ser uma nova instrução,
o [+] chega ao chip procedente da memória principal, sendo
armazenado em um endereço no Instruction Cache como um código
"X+Y=Z", mostrando que o ato de adicionar vai ser então realizado
ali (veja em azul escuro). |
6
– A Prefetch Unit então requisita ao Instruction Cache
uma cópia do código "X+Y=Z" e o envia para ser processado
na Decode Unit (veja em amarelo).
Na Decode Unit (veja
em azul escuro), "X+Y=Z" é traduzido ou decodificado e então
enviado à Control Unit e o Data Cache pergunta o que fazer com a
instrução.
A Unidade Lógico-Aritmética
(ALU - Aritmetic Logic Unit) envia mensagem de que a função
de adição deve ser realizada (veja
em azul escuro). |
|
|
7 – Na Control Unit,
o código é desmontado e o comando de adição
é enviado para a ALU, onde X e Y são somados, depois de enviados
pelo Data Cache.
A ALU então envia o resultado
(5) para a área dos registradores, e esse valor é armazenado
num dos endereços ali disponíveis (veja
em azul claro). |
8 – Bem, agora você
quer o resultado, então pressiona a tecla [=]. Nesse momento, a
Prefetch Unit verifica o Instruction Cache para ver se há algum
dado novo, e não o encontra (veja em amarelo).
A instrução para [=]
segue da memória principal do computador para o chip através
da Bus Unit, sendo armazenada num endereço do Instruction Cache
como o código "imprima Z" (veja em azul escuro). |
|
|
9 – A Prefetch Unit
então pergunta ao Instruction Cache por uma cópia do código
"Imprima Z" e a envia à Decode Unit para posterior processamento
(veja em amarelo).
Na Decode Unit, essa instrução
"Imprima Z" é traduzida como uma seqüência de código
binário e emitida para a Control Unit, que pergunta o que fazer
com a instrução (veja em azul escuro). |
10 – Agora que o valor
de Z foi computado e está residindo na entrada #5 do registrador,
o comando de impressão tem apenas de recuperar o conteúdo
do registro 5 e mostrá-lo na tela, para que você finalmente
possa ver a soma de 2+3 (siga o caminho em azul claro).
O microprocessador completou o trabalho
e aguarda sua próxima tarefa. |
|
|