Funcionamento do Processador

Este arquivo descreve superficialmente como o processador funciona. Claro que o intuito aqui não é explicar a fundo e sim dar apenas uma ideia de funcionamento, até mesmo para os iniciantes na computação. Os artigos de aprofundamentos virão com tempo.

[ Hits: 42.490 ]

Por: Willians em 19/05/2009 | Blog: http://www.williansribeiro.com.br


Introdução



O processador ou como chamamos, o CPU, é o que julgamos ser o cérebro de nosso computador. É nele que são processadas as instruções e onde é realizado todo o controle de todas as outras partes do computador. A forma como estas instruções são processadas depende de programa para programa.

A grosso modo, quando executamos um programa, o mesmo é transferido para a memória, a partir daí o processador pode receber as mais variadas informações, como ter que exibir informações na tela ou poder continuar a carregar e executar o programa.
Linux: Funcionamento do Processador
Antigamente o processador controlava as transferências de informações entre memória RAM e o disco rígido. Isso mantinha o processador ocupado até todas as informações serem transferidas. O sistema era lento, já que o disco rígido era mais lento que a memória RAM, e o processador não desocupava enquanto toda a informação não fosse transferida. Porém nos dias de hoje, essa transferência é feita sem o auxilio do processador (Método DMA - Direct Memory Access).

O clock

Todas as atividades em um computador devem ser sincronizadas. Aí entra o clock, que sincroniza as tarefas do computador, sendo que a cada pulso dispositivos executam suas tarefas, param e vão para o próximo ciclo do clock. A medida do clock é feita em hertz, onde cada hertz representa número de ciclo de clock por segundo. Cada ciclo de clock passa de 0 (condição inicial) a 1 a uma taxa fixa. Se um determinado equipamento trabalha a 100 Hz, quer dizer que ele consegue executar 100 operações de ciclo de clock por segundo.
Linux: Funcionamento do Processador
Em um processador existe o Clock Interno, que é a frequência que os processadores trabalham, porém existe o clock externo, ou FSB (Front Side Bus - Barramento Frontal), que existe devido às limitações físicas. No caso o processador não pode se comunicar na mesma velocidade de seu clock interno. Assim, no caso de comunicação entre ambos, é utilizado o clock externo, que é de menor frequência.

É importante deixar claro que mesmo dois fabricantes de processadores afirmando que o clock interno de seus processadores são iguais, a arquitetura interna de cada um dos processadores é diferente, dando um rendimento diferente entre os dois processadores.

Quantidade de bits de instrução

Outra característica marcante são a quantidade de bits em que o processador opera. Quanto mais bits o processador trabalhar, melhor será o desempenho do processador. Essa quantidade de bits é a quantidade de dados que o processador consegue trabalhar por vez.

Memória cache

Nos processadores existem um tipo de memória chamada Memória Cache, um tipo de memória estática, muito mais cara, maior fisicamente e de maior consumo de energia que a memória convencional. Esta memória consegue trabalhar no mesmo clock do processador, porém são inviáveis devido aos fatores apontados anteriormente.

Quando um processador precisa ler dados da memória RAM, um circuito carrega blocos muito utilizados da memória RAM para a memória cache. Em seu próximo passo, o processador consultará primeiramente a memória cache permitindo que os dados sejam processados com maior eficiência. Caso o dado não seja encontrado na memória cache, aí sim o processador busca os dados na memória RAM, sendo este processo mais lento.
Linux: Funcionamento do Processador
Existem os caches L1 (Level 1) e L2 (Level 2). Nos processadores antigos L1 ficava no processador, e L2 na placa mãe, porém nos dias atuais, os processadores contam com os dois níveis de cache no processador, sendo muito comum L1 ser dividida em L1 para dados e L1 para instruções.

Núcleos do processador

Até um período não tão distante, usuários conseguiam medir a velocidade de um processador por seu clock, porém isso se tornou um problema, pois conforme aumentavam o clock dos processador, mais este gerava calor, e um desgaste acontecia nos processadores. Para solucionar o problema do aumento de desempenho dos processadores, foi adotada uma característica.
Linux: Funcionamento do Processador
Lançar processadores com 1 ou mais núcleos, isto é, cada processador é como se tivesse dois processadores em um só. No caso do funcionamento, o mesmo ao invés de lidar com apenas 1 processo, realiza 2 processos, 1 para cada núcleo, melhorando consideravelmente o desempenho. Até hoje foram lançados processadores com 4 núcleos, e já existem rumores de um processador de 8 núcleos sendo preparado pelas empresas.

Bibliografia


   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Sistemas Operacionais, Kernel e Shell

Redes, Modelos de Referência, suas Camadas e seus Protocolos

Memórias

Leitura recomendada

Leitor de impressão digital Futronic FS80 no Linux

Como Instalar Seu Adaptador WiFi RTL8821 No GNU-Linux

Configurando a PixelView PlayTV STBVD Hybrid no Ubuntu 11.04

Multiterminais e Userful Multiplier nas escolas públicas: Uma solução barata que sai caro

Dispositivos no Linux

  
Comentários
[1] Comentário enviado por renato.leite em 19/05/2009 - 16:01h

Muito bom o Artigo,,

[2] Comentário enviado por marcelo.unix em 19/05/2009 - 18:09h

Hum.... um tanto defasado tendo em vista que temos processadores com 8 núcleos a três anos.
Vide: IBM PowerXCell 3.2GHZ e o Sun Niagara2 ==> http://www.sun.com/processors/UltraSPARC-T2/datasheet.pdf
Outra coisa interessante é falar dos processadores mais modernos do mercado como a linha Power6 da IBM que já chega nos 5GHz, Power7 que deve ser lançado ano que vem com até 7GHz e 8 núcleos e o CMOS 4.4GHZ da linha zServer que é o processadore mais forte do mercado (e mais caro tb).

[ ]'s

[3] Comentário enviado por icefusion em 19/05/2009 - 18:14h

Como falei..isso é apenas uma introdução que darei continuidade em outros artigos e também naum darei enfase a marcas de processadores...o quis expor é um pouco de como eles trabalham!!!

[4] Comentário enviado por marcelo.unix em 19/05/2009 - 18:20h

Ahhh sim! Perfeito. O Seu artigo está bom sim... é que na última linha vc fala de rumores de coisas que já aconteceram a muitos. Só isso mesmo. Pra constar, o Victoria Falls da Sun tem 16 cores.

Abração.

[5] Comentário enviado por icefusion em 19/05/2009 - 18:25h

Entendo.....é realmente eu me baseiei tb em livros que ja possuem algum tempo rsrs...mas como disse meu foco era mais pelo funcionamento...mas no próximo artigo tentarei explorar mais além do que explorei e tentarei aprofundar mais.....
valeu pelos comentários :D e pelo chamado de atenção qto à qtd de cores existentes :D

[6] Comentário enviado por stremer em 19/05/2009 - 18:58h

Entender como funcionam processadores não é uma tarefa somente para quem trabalha com hardwares ou mesmo curiosos...
Entender processadores pode ser essencial para escrever alguma rotina em ASM ou ainda escrever um emulador (de video game por exemplo).
Seria interessante começar citando exemplos de processadores mais antigos (acho que um dos mais comuns é o Z80).
Inclusive para quem tem interesse em estudar emuladores, existem alguns emuladores open source (inclusive tem alguns de Master System feitos em java que é muito mais facil que C), que implementam o Z80. É interessante para entender não só o funcionamento do processador, mas simular através de um software aquele hardware, suas interrupções e dispositivos de entrada/saida.

Legal a iniciativa... mas acho que ainda esta muito para iniciantes... estou aguardando os próximos...

[7] Comentário enviado por asdf2 em 19/05/2009 - 19:25h

muito fraco o artigo, merecia ser mais aprofundado o tema, espero que melhore na proxima vez.

[8] Comentário enviado por dbahiaz em 19/05/2009 - 23:02h

Na minha opinão deveria ter aprofundado um pouco mais, porque tem coisas que se muito simplificada acaba deixando muita informação útil para traz, além de ler o seu artigo dei uma lida nas referências porque achei um pouco "vago", e elas mostraram isso...Então como complemento ao seu artigo é bom o pessoal ler as referencias, de qualquer forma parabéns pela iniciativa e por colocar referencias :).

[9] Comentário enviado por Teixeira em 19/05/2009 - 23:25h

Concordo plenamente com o stremer, porque por mais que os processadores se transformem, sempre será importante entender como o mais simples deles realmente funciona. É o caso do antigo Z80 fabricado pela Zilog e que, devido ao seu baixo preço de fabricação, poder e facilidade de implementação, realmente permitiu a existência dos MICRO computadores.
Os micros da TRS (Radio Schack) tornaram-se muito populares em sua época, usando aqueles processadores da Zilog.
(Aqui no Brasil tinha o CP-500 fabricado pela Prológica, compatível "a nivel de papel-carbono" com os tais TRS-80)
Mas quem se lembra dos micros ZX80 e ZX81 da linha Sinclair (Aqui seus clones eram o tk82 e o tk85)
Eles exploravam ao máximo as características daquele processador, ou seja, era o processador que fazia realmente tudo: controlava memória, video, entrada de teclado, tudo mesmo.
Apenas um gostinho da sintaxe e do poder de seu inteligentíssimo Basic residente:

130 GOTO 130+ (70 AND INKEY$="C") + (50 AND INKEY$="H") + (INKEY$="L")
...
...

Apenas para saber, essa linha executa um desvio condicional para as linhas 200, 180 ou para a própia linha 130, testando em um só comando
três condições de entrada de teclado.

É importante observar que o processador aceita esse tipo de instrução, desde que convenientemente implementado.
Se não houver uma implementação inteligente, não há processador (nem que seja "de 512 bits") que dê jeito...

Muito embora a saída de video fosse por um modulador de radio frequência, sempre havia os "hackers do bem" que implementavam saídas diretas para monitores no padrão CGA; outros desenvolviam circuitos próprios para saída de impressoras no padrão Centronics, e por aí vai.
Apenas como comentário, o 8088 é um aperfeiçoamento do Z80, bem como os 8086, 80286, 80386, 80486 são sucessivos aperfeiçoamentos dos que os antecederam.
A partir daí, com o advento dos "586" e dos "686", a indústria foi obrigada a adotar outras nomenclaturas.
Tanto "586" quanto "686" eram apenas versões velozes do 80486, produzidas respectivamente pela AMD e pela Cyrix.
Mas de uma certa forma, todos os processadores modernos tem em seu coração o 8086, que no frigir dos ovos é um 8088 preparado para ler dois bytes de cada vez.
Portanto acho que o icefusion posteriormente poderia demonstrar "as entranhas" do Z80 ou do 8086 - por exemplo - mostrando a divisão das áreas distintas de um processador.
Você está indo bem, icefusion. Parabéns pela iniciativa!

[10] Comentário enviado por stremer em 20/05/2009 - 10:39h

Concordo Teixeira!

Acho que algo detalhado sobre o Z80 ou 8086 seria ótimo...

E antes que me perguntem... não sou especialista em hardware e muito menos processadores (sou um trocador de peças nesta area)... apenas aprendi alguns conceitos basicos no curso técnico de eletronica que fiz... na faculdade de ciencia da computação... e lendo um pouco por hobby...
Entendo muito pouco de Processadores, ASM e até mesmo do Z80... apenas estudei estes emuladores algumas epocas atras por pura curiosidade mas não sei se conseguiria implementar do zero nem mesmo um emulador de Atari, embora seja programador Java e C/C++ acabo tendo como foco no dia a dia outros tipos de problemas, mais relacionados a sistemas de gestão de negócios (tipico de programador do Brasil).

[11] Comentário enviado por cleitonapsouza em 20/05/2009 - 11:09h

Curti cara....
Você já disse no começo que era para atingir principalmente os que estão iniciando agora dentro da computação.
Então ficou ótimo parabéns!A idéia geral foi boa.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts