Você está na página 1de 10

Como funcionam os microprocessadores

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.

Chip 4004, o primeiro processador do mundo, criado pela Intel 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 por vez. Mesmo assim, era incrvel ver tudo isso em um nico chip naquela poca. Antes do 4004, os engenheiros construram computadores com vrios chips (transistores ligados um a um). O 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 verificando a ortografia de um documento. A evoluo dos microprocessadores O que um chip?Um chip tambm chamado de circuito integrado. Geralmente um pequeno e fino pedao de silcio no qual os transistores, que formam o microprocessador, foram encapsulados. Um chip do tamanho de uma polegada pode conter dezenas de milhes de transistores. Os processadores simples so formados por milhares de transistores encapsulados em um chip cuja rea no passa de alguns milmetros quadrados. O primeiro microprocessador utilizado em um computador pessoal foi o Intel 8080. Ele era um computador de 8 bits completo dentro de um chip e foi lanado em 1974; mas o primeiro microprocessador que se tornou realmente popular foi o Intel 8088, lanado em 1979 e incorporado a um PC IBM - que apareceu em 1982. Se voc est 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. Nome 8080 8088 80286 80386 80486 Pentium Pentium II Pentium III Pentium 4 Pentium 4 "Prescott" Pentium D Core2 Core 2 Duo Core i7 Data Transistores Mcrons Velocidade do clock Largura de dados 1974 6.000 6 2 MHz 8 bits 16 bits 1979 29.000 3 5 MHz 8 bits 1982 134.000 1,5 6 MHz 16 bits 1985 275.000 1,5 16 MHz 32 bits 1989 1.200.000 1 25 MHz 32 bits 32 bits 1993 3.100.000 0,8 60 MHz 64 bits 32 bits 1997 7.500.000 0,35 233 MHz 64 bits 32 bits 1999 9.500.000 0,25 450 MHz 64 bits 32 bits 2000 42.000.000 0,18 1,5 GHz 64 bits 32 bits 2004 125.000.000 0,09 3,6 GHz 64 bits 2,8 GHz 2005 230.000.000 90nm 32 bits 3,2 GHz 1,33 2006 152.000.000 65nm 32 bits 2,33 GHz 2007 820.000.000 45nm 3 GHz 64 bits 2,66 GHz 2008 731.000.000 45nm 64 bits 3,2 GHz MIPS 0,64 0,33 1 5 20 100 300 510 1,700 7,000

26,000 53,000 76,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

Foto cedida por Intel Corporation Processador Intel Pentium 4 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 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.

Memria RAM 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. Todos os computadores tm alguma memria ROM, e possvel criar um computador simples que no tenha memria RAM. Muitos microcontroladores 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). 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 SAVEC 129 12 LOADA 128 // a=a+1; 13 CONB 1 14 ADD 15 SAVEC 128 16 JUMP 4 // volta para o if 17 STOP

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 // Suponha que f est Addr opcode/value 0 3 // 1 1 2 4 // 3 128 4 3 // 5 1 6 4 // 7 129 8 1 // 9 128 10 3 // 11 5 12 10 // 13 14 // 14 31 15 1 // 16 129 17 2 // 18 128 19 8 // 20 5 // 21 129 22 1 // 23 128 24 3 // 25 1 26 6 // 27 5 // 28 128 29 11 // 30 8 31 18 // no endereamento 128 no endereamento 129 CONB 1 SAVEB 128 CONB 1 SAVEB 129 LOADA 128 CONB 5 COM JG 17 LOADA 129 LOADB 128 MUL SAVEC 129 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; 3. 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 placasme 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. http://informatica.hsw.uol.com.br/microprocessadores.htm