You are on page 1of 11

http://informatica.hsw.uol.com.br/microprocessadores.

htm

Como funcionam os microprocessadores


por Marshall Brain - traduzido por HowStuffWorks Brasil
Neste artigo
1. Introduo de Como funcionam os microprocessadores
2. A evoluo dos microprocessadores
3. A lgica do microprocessador
4. A memria do microprocessador
5. As instrues do microprocessador
6. Performance do microprocessador e tendncias
7. Mais informaes sobre Como funcionam os microprocessadores
8. Veja todos os artigos sobre Hardware

Introduo de Como funcionam os microprocessadores


O computador no qual voc est lendo esta pgina utiliza
um microprocessador para fazer este trabalho. O
microprocessador o corao de qualquer computador normal, seja um computador de
mesa, seja um servidor, seja um laptop. Possivelmente a marca do seu processador Intel
ou AMD, e o tipo, Atom, Core 2 Duo, Celeron, Phenon, Turyon ou
Athlon. Todos fazem praticamente a mesma coisa de maneira
bastante semelhante.
Um microprocessador (tambm conhecido como CPU ou unidade
central de processamento) uma mquina completa de
computao embutida em um nico chip. O primeiro
microprocessador foi o Intel 4004, lanado em 1971. O i4004 no
era muito poderoso, j que ele s podia somar e subtrair 4 bits
Chip 4004, o primeiro
por vez. Mesmo assim, era incrvel ver tudo isso em um nico
processador do
chip naquela poca. Antes do 4004, os engenheiros construram
computadores com vrios chips (transistores ligados um a um). O mundo, criado pela
Intel
4004 foi utilizado em uma das primeiras calculadoras eletrnicas
portteis (que, na verdade eram um trambolho).
Voc j se perguntou o que o microprocessador do seu computador faz? Voc sabe as
diferenas entre os tipos de microprocessadores? Neste artigo, vai compreender como as
tcnicas simples de lgica digital permitem que o
computador realize o seu trabalho, seja jogando, seja
O que um chip?
verificando a ortografia de um documento.
Um chip tambm chamado
de circuito integrado.
Geralmente um pequeno e
fino pedao de silcio no qual
A evoluo dos microprocessadores
os transistores, que formam o
O primeiro microprocessador utilizado em um computador microprocessador, foram
pessoal foi o Intel 8080. Ele era um computador de 8 bits encapsulados. Um chip do
completo dentro de um chip e foi lanado em 1974; mas o tamanho de uma polegada
primeiro microprocessador que se tornou realmente
pode conter dezenas de
popular foi o Intel 8088, lanado em 1979 e incorporado a milhes de transistores. Os
processadores simples so
um PC IBM - que apareceu em 1982. Se voc est
formados por milhares de
transistores encapsulados em
um chip cuja rea no passa
de alguns milmetros
quadrados.

familiarizado com a histria e o mercado de PCs, vai se lembrar da evoluo dos


processadores. O 8088 evoluiu para o 80286, depois para o 80386, 80486, Pentium,
Pentium II, Pentium III e Pentium 4, Celeron, Xeon, Itanium, Core, Core Duo, Quad...
Todos estes microprocessadores foram produzidos pela Intel e so melhorias do design
bsico do 8088. Isso falando s de Intel. Seu principal concorrente, a AMD, evoluiu
paralelamente, com o 286A, o 386, 486, 586, K5, K6-3, Athlon, Duron, Sempron, Athlon
MX, AMD64, Phenom e Turion.
Um pouco de histria
A maioria dos computadores existentes no mercado vem com processador Intel ou AMD.
As duas empresas, rivais neste mercado desde meados da dcada de 90, oferecem vrias
linhas de processadores, como Core, Pentium, Celeron e Atom, da Intel, e Turion,
Sempron, Phenom e Athlon, da AMD. Cada uma dessas linhas voltada para uma tipo de
mquina e um tipo de pblico.
Fundada em 1968 pelos norte-americanos Gordon Moore e Robert Noyce, a Intel (sigla de
Integrated Electronics) comeou fabricando memrias para computadores de grande
porte antes de entrar no mercado de microprocessadores (o primeiro processador Intel foi
feito para calaculadoras digitais da Texas Instruments). Quarenta anos depois, a empresa
domina o mercado, produzindo processadores especficos para notebooks e desktops.
Para notebooks, a Intel produz as linhas Core2 Duo e Core2 Solo, que tm dois ncleos de
processamento e baixo consumo de energia graas tecnologia de fabricao de 65 nm
(nanometros) e 45 nm, e Core Solo e Core Duo, processador com um nico ncleo
fabricado em 65 nm.
Criada em 1969 para atender s necessidades da Intel produzir chip de memria para a
empresa de Mooore e Noyce a Advanced Micro Device resolveu fabricar sua prpria
linha de produtos e concorrer com o ex-cliente. Apesar de estar mais centrada na
produo de processadores para desktops, a empresa tambm tem suas linhas para
notebooks, fabricadas com tecnologias de 65 nm (Turion X2 Ultra e Mobile Sempron) e 90
nm (Turion64 X2).
Recentemente, os processadores Intel ganharam uma nova famlia, a Core i7, baseada na
arquitetura Nehalem, com novo desenho interno do processador e fabricao de 45 nm. O
que coloca o i7 no topo da cadeia dos processadores a quantidade de transistores
existentes em uma microrea de 263 nanometros quadrados so 731 milhes. Para se
ter uma idia, o top de linha da AMD, o Phenom, tem 463 milhes de transistores em uma
rea de 283 nanometros quadrados. Com tudo isso de transistor nesse espao minsculo,
os i7 so poderosos e podem simular at 8 ncleos ao mesmo tempo o dobro do nmero
real.
A tabela a seguir vai ajudar voc a entender as diferenas entre os processadores que a
Intel lanou nos ltimos anos.
Mcron
s

Velocidade
do clock

6.000

2 MHz

8 bits

0,64

1979

29.000

5 MHz

16 bits
8 bits

0,33

80286

1982

134.000

1,5

6 MHz

16 bits

80386

1985

275.000

1,5

16 MHz

32 bits

80486

1989

1.200.000

25 MHz

32 bits

20

Pentium

1993

3.100.000

0,8

60 MHz

32 bits
64 bits

100

Nome

Data Transistores

8080

1974

8088

Largura
MIPS
de dados

1997

7.500.000

0,35

233 MHz

32 bits
64 bits

300

Pentium III 1999

9.500.000

0,25

450 MHz

32 bits
64 bits

510

Pentium 4

2000

42.000.000

0,18

1,5 GHz

32 bits
64 bits

1,700

Pentium 4
"Prescott"

2004 125.000.000

0,09

3,6 GHz

32 bits
64 bits

7,000

Pentium D 2005 230.000.000

90nm

2,8 GHz
3,2 GHz

32 bits

2006 152.000.000

65nm

1,33
2,33 GHz

32 bits

26,000

Core 2 Duo 2007 820.000.000

45nm

3 GHz

64 bits

53,000

45nm

2,66 GHz
3,2 GHz

64 bits

76,000

Pentium II

Core2

Core i7

2008 731.000.000

Fonte: The Intel Microprocessor Quick Reference Guide (em ingls)

Informaes sobre esta tabela

A data o ano em que o processador foi lanado. Muitos processadores so


relanados com maiores velocidades de clock anos depois do lanamento
original.
Transistores o nmero de transstores no chip. Nos ltimos anos, o nmero
de transistores em um chip cresceu bastante.
Mcrons a largura, em mcrons, do menor fio do chip. Para voc ter uma
idia, o fio de cabelo humano tem a espessura de 100 mcrons. Os chips
diminuem de tamanho e o nmero de transistores aumenta.
Velocidade do clock a taxa mxima do clock do chip. A velocidade do clock
ser explicada na prxima seo.
Largura de dados a largura da Unidade Lgico-Aritmtica (ALU). Uma ALU
de 8 bits pode somar/subtrair/multiplicar/etc dois nmeros de 8 bits. Uma ALU
de 32-bit pode manipular nmeros de 32 bits. Uma ALU de 8 bits teria que
executar quatro instrues para somar dois nmeros de 32 bits, enquanto
que uma ALU de 32 bits precisa de apenas uma instruo. Em muitos casos, o
barramento externo de dados da mesma largura que a ALU. O 8088 tinha
uma ALU de 16 bits e um barramento de 8 bits. Os cips mais recentes buscam
dados de 64 bits de uma vez para as suas ALUs de 32 bits.

A partir dessa tabela, voc pode perceber que existe uma relao entre a velocidade do
clock e o MIPS. A velocidade mxima do clock uma funo do processo de fabricao
e dos atrasos internos. Tambm existe uma relao entre o nmero de transistores e o
MIPS. Por exemplo, o 8088 tinha um clock de 5 MHz, mas tinha MIPS de 0,33 (cerca de
uma instruo para cada 15 ciclos do clock). Os processadores modernos executam
milhes instrues por ciclo. Essa melhoria est
diretamente relacionada ao nmero de transistores no
chip. Vamos falar sobre isso na prxima seo.

A lgica do microprocessador
Para entender o funcionamento de um microprocessador,
vamos entender a lgica utilizada para se criar um. Neste
processo, voc tambm vai aprender um pouco de

Foto cedida por Intel Corporation

Processador Intel Pentium 4

linguagem assembly (a lngua nativa de um microprocessador) e muitas outras coisas


que os engenheiros fazem para aumentar a velocidade do computador.
Um microprocessador executa uma srie de instrues de mquina que dizem a ele o que
fazer. As trs funes bsicas de um processador so:

utilizando sua ALU (Unidade Lgico-Aritmtica), o microprocessador pode


executar operaes matemticas como adio, subtrao, multiplicao e
diviso. Os microprocessadores modernos contm processadores de ponto
flutuante que podem executar operaes extremamente sofisticadas com
nmero grandes em pontos flutuantes;
um microprocessador pode mover dados de um endereo de memria para
outro;
um microprocessador pode tomar decises e desviar para um outro conjunto de
instrues baseado nestas decises.
O microprocessador pode fazer coisas muito complicadas, mas as trs atividades citadas
acima so as suas principais aes. O diagrama a seguir mostra um microprocessador
extremamente simples que capaz de fazer estas trs coisas:

Este microprocessador simples possui:

um barramento de endereos (pode ser de 8, 16 ou 32 bits) que envia um


endereo para a memria;
um barramento de dados (pode ser de 8, 16 ou 32 bits) que envia e recebe
dados da memria;
uma linha RD (Read ou Leitura) e WR (Write ou Escrita) que diz memria se
ela deve gravar ou ler o contedo da posio de memria endereada;
um sinal de clock que fornece uma seqncia de pulsos de relgio para o
processador;
um sinal de reset que reinicia o contador do programa para zero (ou outro
valor) e recomea a execuo do programa.

Vamos supor que os barramentos de endereos e de dados tenham 8 bits neste exemplo.
Os componentes deste microprocessador simples so:
os registradores A, B e C so simples latches simples formados de flip-flops
(para obter mais informaes, consulte a seo sobre "latches disparados por
borda", em Como funciona a lgica booleana;
o latch de endereos igual aos registradores A, B e C;
o contador do programa um latch com as habilidades extras de
incrementar de 1, quando solicitado e de ser zerado, quando solicitado;
a ALU pode ser um simples somador de 8 bits (para obter mais informaes,
consulte a seo sobre somadores em Como funciona a lgica booleana) ou
pode somar, subtrair, multiplicar e dividir valores de 8 bits. Vamos supor que ela
faa parte do segundo grupo;
oregistrador de teste um latch especial que armazena valores das
comparaes realizadas na ALU. A ALU pode comparar dois nmeros e
determinar se eles so iguais ou se um maior do que o outro. O registrador de
teste tambm pode armazenar um bit de carry (carry-out) do ltimo estgio do
somador. Ele armazena esses valores em flip-flops e o decodificador de
instrues pode usar os valores para tomar decises;
existem seis caixas no diagrama com a indicao "3-state". Estes so os
buffers tri-state. Um buffer tri-state pode deixar passar 1, 0 ou pode se
desconectar da sada (imagine uma chave que se desconecta totalmente da
linha de sada). Um buffer tri-state permite mltiplas sadas conectadas a um
fio, mas somente uma delas leva 1 ou 0 para a linha;
o registrador de instruo e o decodificador de instruo so responsveis pelo
controle de todos os outros componentes.
Voc no v neste diagrama, mas existem linhas de controle do decodificador de
instrues que:
mandam o registrador A colocar o seu valor atual no barramento de dados;
mandam o registrador B colocar o seu valor atual no barramento de dados;
mandam o registrador C armazenar o valor atual da sida da ALU;
mandam o registrador de contador de programa colocar o valor atual no
barramento de dados;
mandam o registrador de endereos travar o seu valor atual no barramento de
dados;
mandam o registrador de instruo colocar o seu valor atual no barramento de
dados;
mandam o contador de programa incrementar;
mandam o contador de programa resetar (ir para zero);
ativam qualquer um dos seis buffers tri-state (seis linhas separadas);
informam a ULA sobre qual operao ela deve executar;
mandam o registrador de teste armazenar os bits de teste da ULA;
ativam a linha RD;
ativam a linha WR.
Dentro do decodificador de instrues entram os bits do registrador de teste e do sinal
de clock line, alm dos bits do registrador de instrues.

A memria do microprocessador
Na pgina anterior falamos sobre endereamentos e barramentos de dados, assim como
as linhas RD e WR. Esses barramentos e linhas se conectam com as memrias RAM e
ROM. No nosso microprocessador de exemplo, ns temos um barramento de
endereos de 8 bits e um barramento de dados de 8 bits. Isso significa que o

microprocessador pode enderear (28) 256 bytes de memria e ler ou escrever 8 bits da
memria por vez. Vamos supor que este microprocessador simples tenha 128 bytes de
ROM que comea no endereo 0 e 128 bytes de RAM que comea no endereo 128.

Memria ROM

ROM significa memria apenas para leitura (read-only memory). Um chip ROM
programado com uma coleo permanente de bytes pr-definidos. O barramento de
endereamento diz ao chip ROM qual byte pegar e
colocar no barramento da dados. Quando a linha RD
muda o estado, o chip ROM apresenta o byte
selecionado ao barramento de dados.
RAM significa memria de acesso aleatrio (random
access memory). A memria RAM contm bytes de
informao e o microprocessador pode ler ou escrever
nestes bytes, dependendo da linha de comando utilizada:
RD ou WR. Um dos problemas dos chips RAM que eles
esquecem tudo uma vez que a energia desligada. por
isso que o computador precisa de ROM.

Memria RAM

Todos os computadores tm alguma memria ROM, e possvel criar um computador


simples que no tenha memria RAM. Muitos microcontroladores (ver
http://eletronicos.hsw.uol.com.br/microcontroladores.htm) fazem isso, colocando um pouco
de memria RAM no prprio chip do processador. Porm, impossvel criar um
computador que no tenha memria ROM. Em um PC, a memria ROM conhecida como
BIOS (sistema bsico de entrada/sada) ver http://informatica.hsw.uol.com.br/bios.htm .
Quando um microprocessador comea a funcionar, ele executa primeiro as instrues
contidas na BIOS. As instrues da BIOS realizam testes no hardware e depois vo para
o disco rgido para buscar o boot sector (para obter mais informaes, consulte Como
funcionam os discos rgidos). O boot sector outro pequeno programa e a BIOS o
armazena na RAM depois de l-lo no disco. O microprocessador ento comea a executar
as instrues do boot sector a partir da memria RAM. O programa de boot sector manda
o microprocessador copiar algo mais do disco rgido para a memria RAM, que o
microprocessador executa posteriormente. Esta a maneira pela qual o microprocessador
carrega e executa todo o sistema operacional.

As instrues do microprocessador
Mesmo o mais simples dos microprocessadores pode executar uma grande variedade de
instrues. As instrues so implementadas como padres binrios; cada uma delas
significa algo diferente quando so carregadas pelo registrador de instrues. Como

pessoas no so to boas em lembrar padres binrios, um conjunto de pequenas


palavras foi definido para representar os diferentes padres binrios. Esta coleo de
palavras conhecida como a linguagem assembly do processador. Um assembler
(montador) pode traduzir as palavras para o seu padro binrio e a informao de sada do
assembler alocada na memria para ser executada pelo microprocessador.
Aqui est uma srie de instrues assembly que um projetista poderia criar para este
microprocessador simples:
LOADB mem - carrega o registrador B do endereamento de memria
CONB con - carrega um valor constante no registrador B
SAVEB mem - armazena o registrador B no endereamento de memria
SAVEC mem - armazena o registrador C no endereamento de memria
ADD - soma A com B e armazena o resultado em C
SUB - subtrai A de B e armazena o resultado em C
MUL - multiplica A por B e armazena o resulado em C
DIV - divide A por B e armazena o resultado em C
COM - compara A com B e armazena o resultado no registrador teste
JUMP addr - desvia para um endereamento
JEQ addr - desvia, se igual, para o endereamento
JNEQ addr - desvia, se no igual, para o endereamento
JG addr - desvia, se maior que, para o endereamento
JGE addr - desvia, se maior que ou igual, para o endereamento
JL addr - desvia, se menor que, para o endereamento
JLE addr - desvia, se menor que ou igual, para o endereamento
STOP - pra a execuo
LOADA mem - carrega o registrador A do endereamento de memria
Se voc leu o artigo Como funciona a programao em C voc sabe que este pequeno
cdigo em C vai calcular o fatorial de 5 (onde o fatorial de 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120):
a=1;
f=1;
while (a <= 5)
{
f = f * a;
a = a + 1;
}
Ao fim da execuo do programa, a varivel f conter o fatorial de 5.
Linguagem Assembly
Um compilador C traduz o cdigo em C para a linguagem assembly. Se considerarmos
que a RAM comea no endereo 128 deste processador e a ROM (que contm o
programa em linguagem assembly) comea no endereamento 0, ento a linguagem do
nosso simples microprocessador seria assim:
// Suponha que a est no endereamento 128
// Suponha que f est no endereamento 129
0
CONB 1
// a=1;
1
SAVEB 128
2
CONB 1
// f=1;
3
SAVEB 129
4
LOADA 128
// if a > 5 desvia para 17
5 CONB 5
6
COM
7
JG 17
8
LOADA 129
// f=f*a;
9
LOADB 128
10 MUL

11
12
13
14
15
16
17

SAVEC 129
LOADA 128
CONB 1
ADD
SAVEC 128
JUMP 4
STOP

// a=a+1;

// volta para o if

Memria ROM
Agora vem a pergunta: "Como essas instrues vo ser exibidas na ROM?" Cada uma
dessas instrues de linguagem assembly tem de ser representadas por um nmero
binrio. Para simplificar as coisas, vamos supor que cada instruo de linguagem
assembly equivale a um nico nmero:
LOADA - 1
LOADB - 2
CONB - 3
SAVEB - 4
SAVEC mem - 5
ADD - 6
SUB - 7
MUL - 8
DIV - 9
COM - 10
JUMP addr - 11
JEQ addr - 12
JNEQ addr - 13
JG addr - 14
JGE addr - 15
JL addr - 16
JLE addr - 17
STOP - 18
Esses nmeros so conhecidos como opcodes (cdigos de operao). Na ROM, nosso
pequeno programa estaria assim:
// Suponha que a est no endereamento 128
// Suponha que f est no endereamento 129
Addr opcode/value
0
3
// CONB 1
1
1
2
4
// SAVEB 128
3
128
4
3
// CONB 1
5
1
6
4
// SAVEB 129
7
129
8
1
// LOADA 128
9
128
10
3
// CONB 5
11
5
12
10
// COM
13
14
// JG 17
14
31
15
1
// LOADA 129
16
129
17
2
// LOADB 128
18
128
19
8
// MUL
20
5
// SAVEC 129

21
22
23
24
25
26
27
28
29
30
31

129
1
128
3
1
6
5
128
11
8
18

// LOADA 128
// CONB 1
// ADD
// SAVEC 128
// JUMP 4
// STOP

Como voc pode ver, sete linhas de cdigo em C se transformaram em 18 linhas de


linguagem assembly e isso se transforma em 32 bytes na ROM.
Decodificao
O decodificador de instruo precisa transformar cada um dos opcodes em um conjunto de
sinais que guiam os diferentes componentes dentro do microprocessador. Vamos pegar a
instruo ADD como exemplo e ver o que ela precisa fazer.
1.

Durante o primeiro ciclo do clock, ns precisamos carregar a instruo; depois, o


decodificador de instruo precisa:

ativar o buffer tri-state para o contador de programa;

ativar a linha RD;

ativar a entrada de dados no buffer tri-state;

armazenar a instruo no registrador de instrues;


2. Durante o segundo ciclo do clock, a instruo ADD decodificada. No necessrio
muito trabalho:

configure a operao do ULA para adio;

trave a sada do ULA no registrador C;


2.
Durante o terceiro ciclo de clock, o contador de programa incrementado
(em teoria, esse processo poderia estar acontecendo ao mesmo tempo que o
segundo ciclo).
Cada instruo pode ser separada em um conjunto de operaes em seqncia, como
essas. Elas manipulam os componentes do microprocessador na ordem adequada.
Algumas instrues, como a ADD, podem levar dois ou trs ciclos de clock, outras podem
durar cinco ou seis ciclos de clock.

Performance do microprocessador e tendncias


O nmero de transistores disponvel tem forte influncia sobre a performance de um
processador. Como vimos anteriormente, uma mera instruo em um processador 8088
era executada em 15 ciclos de clock. O 8088 levava aproximadamente 80 ciclos para
realizar uma multiplicao de nmeros de 16 bits, devido ao projeto do multiplicador, com o
aumento do nmero de transistores, multiplicadores mais potentes tornaram-se possveis e
os processadores conseguiram realizar esta tarefa mais rapidamente.
O aumento da quantidade de transistores permitiu a criao de uma tecnologia chamada
pipelining. Em uma arquitetura pipeline, as instrues de execuo so realizadas
simultaneamente. Mesmo que o processador leve cinco ciclos de clock para executar cada
instruo, podem existir cinco instrues simultneas em diferentes estgios de execuo.
Por esta razo, a impresso que temos que cada instruo leva um ciclo de clock para
ser realizada.
Muitos processadores modernos possuem mltiplos decodificadores de instruo, cada um
com seu prprio pipeline, permite mltplos canais de execuo de instrues. Dessa

forma, mais de uma instruo realizada durante cada ciclo de clock. Esta tcnica pode
ser de difcil implementao e requer muitos transstores.
Novas tendncias
A tendncia inicial em projeto de processadores era: ULA com 32 bits, processadores
rpidos de pontos flutuantes e execuo pipeline com mltiplos canais de execuo de
instruo. A novidade so os processadores de 64 bits, de com at quatro ncleos de
processamento e trs nveis de memria cache (L1, L2 e L3). Outra tendncia a
miniaturizao do processo de fabricaos dos processadores, obtida com a evoluo da
nanotecnologia. Hoje o processo est em 45 nm, mas em breve os chips sero fabricados
em 22nm. Quanto menor esse nmero, maior o nmero de transistoresexistentes em um
processador.

Foto cedida por AMD

Processador de 64 bits
Uma das razes pela qual o mundo precisa de processadores de 64 bits o seu grande
espao de endereamentos. O limite mximo de acesso memria RAM em
processadores de 32 bits de 2 ou 4 GB. Parece ser bastante, j que a maioria dos
computadores domsticos usa de 512 MB a 1 GB de memria RAM. Entretanto, um limite
de 4 GB pode ser um grave problema para servidores e mquinas que gerenciam grandes
bancos de dados. Em breve, at os computadores caseiros vo precisar de mais memria
do que 2GB ou 4 GB. Um chip de 64 bits no tem restries pelo fato de um
endereamento de espao de memria RAM em 64 bits ser praticamente infinito para um
futuro prximo. 2 elevado a 64 bytes de RAM algo em torno de 1 bilho de gigabytes de
RAM.
Com um barramento de endereamento e um barramento de dados em alta velocidade
operando em placas-me de 64 bits, as mquinas tambm tero maior velocidade de
entrada/sada e isso vai acelerar os discos rgidos e as placas de vdeo. Estes recursos
vo aumentar drasticamente a performance dos computadores.
Os servidores certamente sero beneficiados com os 64 bits, mas e os usurios comuns?
As pessoas que trabalham com edio de vdeos e com grandes imagens sero
beneficiadas por este tipo de computador. Os jogos modernos tambm iro melhorar,
desde que sejam recodificados para tirar proveito dos recursos de 64 bits; mas o usurio
comum que l e-mails, navega na Internet e edita documentos de texto no precisa
realmente deste tipo de processador.
Para obter mais informaes sobre microprocessadores e assuntos relacionados, verifique
os links na prxima pgina.

http://informatica.hsw.uol.com.br/hardware-canal.htm