Process Adores

53
  Processadores

Transcript of Process Adores

Processadores

Caractersticas e recursos dos processadoresConhea as caractersticas e recursos dos vrios modelos de processadores, desde o 8088, usado no vov XT, at as prximas geraes de processadores de 64 bits. Tutorial dividido em 4 partes. Apesar do processador ser o componente mais importante do micro, j que ele quem processa quase todas as informaes, ele no necessariamente o maior responsvel pelo desempenho. Na verdade, dependendo da aplicao qual o micro se destina, o desempenho do processador pode ser menos importante que a quantidade de memria RAM, que o desempenho da placa de vdeo 3D, ou at mesmo que o desempenho do disco rgido. Tenha em mente que o computador um conjunto, cada componente depende dos demais para mostrar o seu potencial. Dizemos que um micro to rpido quanto seu componente mais lento. Como estamos falando de um conjunto, apenas um componente que apresente uma baixa performance ser suficiente para colocar tudo a perder. Assim como vemos em outras situaes, num carro por exemplo, onde um simples pneu furado pode deixar o carro parado na estrada. Se o micro tiver pouca memria RAM por exemplo, o sistema operacional ser obrigado a usar memria virtual, limitando a performance ao desempenho do disco rgido, que centenas de vezes mais lento que ela. Caso o micro no possua memria cache, o desempenho ficar limitado ao desempenho da memria RAM, que muito mais lenta que o processador e por a vai. Dizemos neste caso, que o componente de baixo desempenho um gargalo, pois impede que o conjunto manifeste todo o seu potencial. s vezes, simplesmente aumentar a quantidade de memria RAM, operao que custa relativamente pouco, capaz de multiplicar a velocidade do micro. Mas, apesar de tudo, o processador ainda o componente bsico de qualquer PC. Com o avano cada vez mais rpido da tecnologia, e vrias empresas disputando o mercado, os projetistas vem sendo obrigados a desenvolver projetos cada vez mais ousados a fim de produzir os processadores com o melhor desempenho. Isso excelente para ns, mas tambm pode trazer armadilhas, j que com projetos to diferentes, cada processador acaba saindo-se bem em algumas aplicaes, mas muito mal em outras. No d para julgar o desempenho do processador apenas pela frequncia de operao, como fazamos na poca do 486, os tempos mudaram. Mas, j que est aqui, que tal conhecermos os avanos pelos quais os processadores passaram at chegar aos dias de hoje? Vamos discutir primeiro algumas caractersticas bsicas dos processadores, conhecer os pioneiros da dcada de 70 e avanar pelos anos 80 e 90, at chegar nos dias de hoje. Aperte os cintos :-) Caractersticas Bsicas dos processadores modernos

2

Existem no mercado vrios modelos de processadores, que apresentam preos e desempenho bem diferentes. Este tpico inicial se destina a estabelecer os diferenciais bsicos que determinam a performance de um processador, a parte terica que vai lhe ajudar a compreender a diferena entre os processadores que vamos examinar com detalhes mais adiante. Quando vamos comprar um processador, a primeira coisa que perguntamos qual sua frequncia de operao, medida em Megahertz (MHz) ou milhes de ciclos por segundo, frequncia tambm chamada de clock. Acontece, que nem sempre um processador com uma velocidade de operao mais alta mais rpido do que outro que opera a uma frequncia um pouco mais baixa. A frequncia de operao de um processador indica apenas quantos ciclos de processamentos so realizados por segundo, o que cada processador capaz de fazer em cada ciclo j outra histria. Imagine um processador 486 de 100 MHz, ao lado de um Pentium tambm de 100 MHz. Apesar da frequncia de operao ser a mesma, o 486 perderia feio em desempenho. Na prtica, o Pentium seria pelo menos 2 vezes mais rpido. Isto acontece devido diferenas na arquitetura dos processadores e tambm no coprocessador aritmtico e cache. Coprocessador aritmtico Todos os processadores da famlia x86, usada em micros PC, so basicamente processadores de nmeros inteiros. Muitos aplicativos porm, precisam utilizar valores de maior preciso, assim como funes matemticas complexas, como Seno, Coseno, Tangente, etc., para realizar suas tarefas. Este o caso dos programas de CAD, planilhas, jogos com grficos tridimensionais e de processamento de imagens em geral. A funo do coprocessador aritmtico justamente auxiliar o processador principal no clculo destas funes complexas, cada vez mais utilizadas, principalmente em jogos. como um matemtico profissional que ajuda o processador a resolver os problemas mais complexos, que ele demoraria muito para resolver sozinho. At o 386, o coprocessador era apenas um acessrio que podia ser comprado parte e instalado num encaixe apropriado da placa me, sendo que cada modelo de processador possua um modelo equivalente de coprocessador. O 8088 utilizava o 8087, o 286 o 287, o 386SX e 386DX utilizavam respectivamente o 387SX e o 387DX e o 486SX utilizava 487DX. O problema nesta estratgia que como poucos usurios equipavam seus micros com coprocessadores aritmticos, a produo destes chips era baixa, e consequentemente os preos eram altssimos, chegando ao ponto de em alguns casos o coprocessador custar mais caro que o processador principal. Com o aumento do nmero de aplicativos que necessitavam do coprocessador, sua incorporao ao processador principal apartir do 486DX foi um passo natural. Com isso, resolveu-se tambm o problema do custo de produo dos coprocessadores, barateando o conjunto. Atualmente, o desempenho do coprocessador determina o desempenho do micro em jogos e aplicativos grficos em geral, justamente as aplicaes onde os processadores atuais so mais exigidos. Infelizmente, o desempenho do coprocessador uma caracterstica que varia muito entre os processadores atuais. Encaixe para o coprocessador aritmtico

Memria Cache Enquanto os processadores tornaram-se quase 10 mil vezes mais rpidos desde o 8088 (o processador usado no XT), a memria RAM, sua principal ferramenta de trabalho, pouco evoluiu em performance. Quando foram lanados os processadores 386, percebeu-se que as memrias no eram mais capazes de acompanhar o processador em velocidade, fazendo com que muitas vezes ele tivesse que ficar esperando os dados serem liberados pela memria RAM para poder concluir suas tarefas, perdendo muito em desempenho.

3

Se na poca do 386 a velocidade das memrias j era um fator limitante, imagine o quanto este problema no atrapalharia o desempenho dos processadores que temos atualmente. Para solucionar este problema, comeou a ser usada a memria cache, um tipo ultra-rpido de memria que serve para armazenar os dados mais frequentemente usados pelo processador, evitando na maioria das vezes que ele tenha que recorrer comparativamente lenta memria RAM. Sem ela, o desempenho do sistema ficar limitado velocidade da memria, podendo cair em at 95%!. So usados dois tipos de cache, chamados de cache primrio, ou cache L1 (level 1), e cache secundrio, ou cache L2 (level 2). O cache primrio embutido no prprio processador e rpido o bastante para acompanh-lo em velocidade. Sempre que um novo processador desenvolvido, preciso desenvolver tambm um tipo mais rpido de memria cache para acompanh-lo. Como este tipo de memria extremamente caro (chega a ser algumas centenas de vezes mais cara que a memria RAM convencional) usamos apenas uma pequena quantidade dela. O 486 traz apenas 8 KB, o Pentium traz 16 KB, enquanto o Pentium II e o Pentium III trazem 32 KB, enquanto o Athlon e o Duron da AMD trazem 128 KB. Para complementar, usamos tambm um tipo um pouco mais lento de memria cache na forma do cache secundrio, que por ser muito mais barato, permite que seja usada uma quantidade muito maior. Nos micros 486 o mais comum o uso de 128 ou 256 KB de cache L2, enquanto nos micros mais modernos o mais comum o uso de 512 KB. Dependendo do processador usado, o cache L2 pode vir embutido no prprio processador ou fazer parte da placa me. Sempre que o processador precisar ler dados, os procurar primeiro no cache L1. Caso o dado seja encontrado, o processador no perder tempo, j que o cache primrio funciona na mesma frequncia que ele. Caso o dado no esteja no cache L1, ento o prximo a ser indagado ser o cache L2. Encontrando o que procura no cache secundrio, o processador j perder algum tempo, mas no tanto quanto perderia caso precisasse acessar diretamente a memria RAM. Por outro lado, caso os dados no estejam em nenhum dos dois caches, no restar outra sada seno perder vrios ciclos de processamento esperando que eles sejam entregues pela lenta memria RAM. Para exemplificar, imagine que voc estivesse escrevendo um e-mail e derrepente precisasse de uma informao que voc havia anotado em um papel. Se o papel estivesse sobre sua mesa, voc poderia l-lo sem perder tempo. Se estivesse dentro de uma gaveta da sua mesa, j seria necessrio algum tempo para encontr-lo enquanto se ele estivesse perdido em algum lugar de um enorme fichrio do outro lado da sala, seria preciso um tempo enorme. Antigamente, era comum as placas mes virem com soquetes apropriados, que permitiam ao usurio adicionar mais memria cache caso quisesse. Os mdulos adicionais, chamados de mdulos COAST (cache on a stick) eram relativamente acessveis, levando muita gente a fazer o upgrade. Entretanto, atualmente esta possibilidade no existe mais, pois a grande maioria dos processadores j trazem o cache L2 integrado, no permitindo qualquer modificao, j que no d para abrir o processador e soldar mais cache. Mesmo no caso de processadores que ainda usam cache embutido na placa me, como o K6-2, no existe mais o encaixe para adicionar mais cache. Ou seja, atualmente a quantidade de cache que voc deseja no processador ou placa me deve ser decidida antes da compra, baseado nas opes disponveis. Uma vez adquiridos o processador e a placa me no ser possvel fazer qualquer alterao. Processadores RISC X Processadores CISC Sempre houve uma grande polmica em torno de qual dessas plataformas melhor. Talvez voc ache intil eu estar falando sobre isto aqui, mas interessante que voc compreenda a diferena entre estas duas plataformas, para entender vrios aspectos dos processadores modernos.

Um processador CISC (Complex Instruction Set Computer, ou computador com um conjunto complexo de instrues), capaz de executar vrias centenas de instrues complexas diferentes, sendo extremamente verstil. Exemplos de processadores CISC so o 386 e o 486.

4

No comeo da dcada de 80, a tendncia era construir chips com conjuntos de instrues cada vez mais complexos. Alguns fabricantes porm, resolveram seguir o caminho oposto, criando o padro RISC (Reduced Instruction Set Computer, ou computador com um conjunto reduzido de instrues). Ao contrrio dos complexos CISC, os processadores RISC so capazes de executar apenas algumas poucas instrues simples. Justamente por isso, os chips baseados nesta arquitetura so mais simples e muito mais baratos. Outra vantagem dos processadores RISC, que, por terem um menor nmero de circuitos internos, podem trabalhar a frequncias mais altas. Um exemplo so os processadores Alpha, que em 97 j operavam a 600 MHz.

Pode parecer estranho que um chip que capaz de executar algumas poucas instrues, possa ser considerado por muitos, mais rpido do que outro que executa centenas delas, seria como comparar um professor de matemtica com algum que sabe apenas as quatro operaes. Mas, um processador RISC capaz de executar tais instrues muito mais rapidamente. A idia principal, que apesar de um processador CISC ser capaz de executar centenas de instrues diferentes, apenas algumas so usadas frequentemente. Poderamos ento criar um processador otimizado para executar apenas estas instrues simples que so mais usadas. Como de qualquer forma, pouca gente programa diretamente em Assembly, bastaria alterar os compiladores, para que os programas fossem compatveis com os novos processadores.

indiscutvel, porm, que em muitas tarefas os processadores CISC saem-se melhor, principalmente pelo seu grande nmero de recursos. Por isso, ao invs da vitria de uma das duas tecnologias, atualmente vemos processadores hbridos, que so essencialmente processadores CISC, mas incorporam muitos recursos encontrados nos processadores RISC (ou vice-versa).

Apesar de por questes de Marketing, muitos fabricantes ainda venderem seus chips, como sendo Processadores RISC, no existe praticamente nenhum processador atualmente que siga estritamente uma das duas filosofias. Tanto processadores da famlia x86, como o Pentium II, Pentium III e AMD Athlon, quanto processadores supostamente RISC, como o MIPS R10000 e o HP PA-8000 misturam caractersticas das duas arquiteturas, por simples questo de performance. Por que ficar de um lado ou de outro, se possvel juntar o melhor dos dois mundos? A ltima coisa que os fabricantes de processadores so teimosos, sempre que aparece uma soluo melhor, a antiga e abandonada.

Examinando de um ponto de vista um pouco mais prtico, a vantagem de uma arquitetura CISC que j temos muitas das instrues guardadas no prprio processador, o que facilita o trabalho dos programadores, que j dispe de praticamente todas as instrues que sero usadas em seus programas. No caso de um chip estritamente RISC, o programador j teria um pouco mais de trabalho, pois como disporia apenas de instrues simples, teria sempre que combinar vrias instrues sempre que precisasse executar alguma tarefa mais complexa. Seria mais ou menos como se voc tivesse duas pessoas, uma utilizando uma calculadora comum, e outra utilizando uma calculadora cientifica. Enquanto estivessem sendo resolvidos apenas clculos simples, de soma, subtrao, etc. quem estivesse com a calculadora simples poderia at se sair melhor, mas ao executar clculos mais complicados, a pessoa com a calculadora cientfica disporia de mais recursos.

Nos chips atuais, que so na verdade misturas das duas arquiteturas, juntamos as duas coisas. Internamente, o processador processa apenas instrues simples. Estas instrues internas, variam de processador para processador, so como uma luva, que se adapta ao projeto do chip. As instrues internas de um K6 so diferentes das de um Pentium por exemplo. Sobre estas instrues internas, temos um circuito decodificador, que converte as instrues complexas utilizadas pelos programas em vrias instrues simples que podem ser entendidas pelo processador. Estas instrues complexas sim, so iguais em todos os processadores usados em micros PC. isso que permite que um K6 e um Pentium sejam compatveis entre s.

O conjunto bsico de instrues usadas em micros PC chamado de conjunto x86. Este conjunto composto por um total de 187 instrues, que so as utilizadas por todos os programas. Alm deste

5

conjunto principal, alguns processadores trazem tambm instrues alternativas, que permitem aos programas executar algumas tarefas mais rapidamente do que seria possvel usando as instrues x86 padro. Alguns exemplos de conjuntos alternativos de instrues so o MMX (usado apartir do Pentium MMX), o 3D-NOW! (usado pelos processadores da AMD, apartir do K6-2), e o SSE (suportado pelo Pentium III). PCs x Macs Continuando na discusso de processadores RISC e CISC, vamos estudar um pouco sobre a arquitetura de dois processadores atuais, o G4, utilizado nos micros Macintosh e o AMD Athlon, usado em micros PC. Existe uma idia geral de que o G4, usado nos Macs um processador RISC, enquanto os processadores usados em micros PC, incluindo o Pentium III e o Athlon so todos CISC. Ambas as afirmaes esto erradas. Na verdade, tanto o G4, quanto o Athlon e o Pentium III so considerados processadores Post-RISC, processadores que possuem um conjunto de instrues gigantesco, maior do que o conjunto de instrues de um processador CISC tpico. A diferena que toda essa gigantesca gama de instrues diferentes, podem ser decodificadas em instrues RISC simples, estas sim que sero processadas. A converso das instrues feita por um componente especial do processador, chamado de Hardware Decoder, encontrado tanto no G4 quanto no Athlon. O G4 possui um enorme conjunto de instrues, assim como os processadores x86, mas todas instrues que podem ser convertidas pelo Hardware decoder e em seguida processadas. O Hardware Decoder extremamente rpido, por isso no compromete o desempenho do processador. De fato, a perda de desempenho por usar este grande conjunto de instrues que precisam ser quebradas em instrues menores de menos de 1%. por isso que os processadores atuais abandonaram a idia RISC original: a perda de desempenho nfima perto do ganho de flexibilidade. O Athlon por sua vez, tem que poderia ser usado em micros PC. As instrues simples, que podem ser tempo, e as instrues complexas, chamado Microcode decoder. ser compatvel com o conjunto de instrues x86, caso contrrio no instrues x86 consistem em basicamente dois tipos de instrues, as diretamente processadas pelo Hardware decoder, sem perda de que so quebradas em instrues simples por outro componente,

As instrues simples, que podem ser diretamente processadas, so as mais frequentemente usadas nos programas. De fato, num programa atual tpico, composto de entre 95 e 97% destas instrues simples. O restante so as instrues complexas, que apesar de raramente usadas so as que do mais trabalho, pois precisam passar por um processo de decodificao muito mais lento, feito pelo Microcode Decoder. Para amenizar este problema, a AMD incluiu um buffer de pr extrao no Athlon, que funciona como uma espcie de fila por onde as instrues j decodificadas passam antes de ser processadas. Graas a isto, o processador pode processar outras instrues enquanto aguarda o Microcode Decoder decodificar cada instruo complexa, sem perder muito tempo. Com isto, mesmo mantendo compatibilidade com o conjunto de instrues x86, o Athlon perde muito pouco em desempenho em relao ao G4, isto naturalmente comparando dois processadores de mesma frequncia. O IPC, ou seja, o nmero de instrues processadas por ciclo de ambos muito prximo, o que garante que um Athlon de 500 MHz apresente um desempenho muito parecido com um G4 tambm de 500 MHz. Front End e Back End Qualquer processador atual pode ser dividido em dois blocos bsicos, o Front End e o Back End. O Front End corresponde aos circuitos que decodificam as instrues, no caso o Hardware decoder, Microcode decoder e buffer de pr extrao que acabei de explicar, junto com mais alguns componentes, como os circuitos de Branch Prediction (que ordenam as instrues de forma que o

6

processador possa processador o maior nmero possvel de instrues por ciclo e o cache L1. Estes componentes so a porta de entrada do processador, tendo a funo de preparar as instrues para serem processadas. O Back End a parte do processador que finalmente processa as instrues, sendo composto basicamente pelas unidades de execuo. Como vimos, o fato como ambos os processadores decodificam as instrues, contando com o Hardware decoder bastante semelhante, mas o Athlon possui alguns componentes a mais para garantir compatibilidade com as instrues x86. Isto no atrapalha o desempenho do processador, mas o torna um projeto mais complexo. Em termos de unidades de execuo, ou seja, o Back End, que os processadores mostram mais algumas diferenas na forma como processam as instrues j decodificadas. O Athlon possui um total de 9 unidades de execuo, enquanto o G4 possui apenas 6. A diferena parece grande, mas na prtica o desempenho quase o mesmo, veja por que: O Athlon possui 3 unidades de execuo para leitura/gravao de dados na memria, enquanto o G4 possui apenas uma. O ponto que todas as instrues, tanto de inteiros, quanto de ponto flutuante no Athlon, vem com um espao reservado para uma instruo de leitura/gravao, espao que nem sempre preenchido, fazendo com que as 3 unidades fiquem ociosas na maior parte do tempo, apesar de agilizarem algo de vez em quando. No G4, s existe uma unidade de leitura/gravao, mas que em compensao fica ocupada na maior parte do tempo. Na prtica, esta nica unidade acaba fazendo o mesmo volume de trabalho das trs do Athlon, que ficam boa parte do tempo ociosas. Sem dvida, o G4 perde alguma coisa em termos de desempenho, mas muito pouco.

Em termos de unidades de execuo de inteiros e de ponto flutuante, que so as mais importantes, temos especificaes parecidas em ambos: O Athlon possui trs unidades de ponto flutuante (que formam o coprocessador aritmtico), o mesmo nmero encontrado no G4. Apenas para efeito de comparao, o Pentium 3 possui apenas duas. Com o mesmo nmero de unidades, o desempenho dos dois processadores no quesito ponto flutuante quase igual. J em termos de unidades de processamento de inteiros, o cenrio muda um pouco de figura, pois o Athlon possui trs unidades de execuo contra apenas duas do G4. Isto garante que o Athlon tenha um desempenho um pouco melhor que o G4 em aplicativos de escritrios, mas a diferena pequena, pois o desempenho real tambm depende do cache, velocidade de acesso memria, etc. Em termos de instrues 3D, o Athlon conta com o 3D-Now, o famoso conjunto de instrues, embutido nos processadores AMD que permite melhorar o desempenho do processador em jogos e aplicativos 3D. O Athlon traz tambm o velho MMX, que garante algum ganho em aplicativos multimdia. O G4 por sua vez traz um conjunto unificado, o Altivec, que inclui tanto instrues 3D (como no 3DNow!), quanto instrues multimdia (como no MMX), isto garante que tanto o Athlon quanto o G4 possuam armas semelhantes neste quesito, o resto fica por conta dos programadores. Do 8086 ao Pentium MMX O primeiro microprocessador foi lanado pela Intel em 1971 e se chamava i4004. Este era um processador extremamente simples, formado por pouco mais de 2000 transstores, mas que foi o precursor dos processadores que temos atualmente. A chamada lei de Moore, que leva o nome do fundador da Intel, Gordon Moore, prega que a potncia dos processadores dobra a cada 18 meses. Apesar desta previso ter sido feita no final da dcada de 70, continuou mantendo-se verdadeira at os dias de hoje, com uma preciso notvel.

7

De l pra c, foi um longo caminho. Enormes investimentos foram feitos e muitos dos maiores gnios do planeta trabalharam em busca de solues para questes cada vez mais complexas. Vamos agora examinar os avanos feitos desde o 8088, usado no XT, at o Pentium, onde estudaremos quando e porque recursos como o modo protegido e a multiplicao de clock foram introduzidos, e no que eles afetam o funcionamento do processador. Entendendo estes conceitos, voc poder facilmente entender as diferenas entre os processadores Pentium III, Athlon, K6-3 etc. que temos atualmente e veremos com mais detalhes adiante, assim como dos processadores que vierem a ser lanados futuramente que, pode ter certeza, continuaro utilizando os mesmos conceitos bsicos. 8088 O 8088 era na verdade uma verso econmica do processador 8086, que havia sido lanado pela Intel em 78. Quando a IBM estava desenvolvendo seu computador pessoal, chegou a ser cogitado o uso do 8086, mas acabou sendo escolhido o 8088 devido ao seu baixo custo. Tanto o 8086 quanto o 8088 so processadores de 16 bits e eram considerados avanadssimos para a poca, apesar de serem extremamente simples para os padres atuais. A diferena entre eles que o 8088, apesar de internamente trabalhar com palavras binrias de 16 bits, usava um barramento de apenas 8 bits, o que permitiu IBM utilizar os mesmos componentes usados nos computadores de 8 bits da poca, que eram muito mais baratos do que os perifricos de 16 bits. Esta arquitetura permitiu ao primeiro PC competir na mesma faixa de preo dos computadores de 8 bits mais populares e, ao mesmo tempo, possuir um desempenho bem superior devido ao seu processador de 16 bits. O 8088 capaz de acessar at 1 MB de memria RAM, e funciona a 4.77 MHz, recursos incrveis para a poca, j que estamos falando de um processador lanado no final de 1979. Falando em recursos, s para matar sua curiosidade, o PC original da IBM, lanado em Agosto de 1981 possua apenas 64 KB de memria RAM (a verso mais simples vinha com apenas 16 KB), monitor MDA mono de 12 polegadas, usava uma unidade de disquetes de 5 1/4 de apenas 160 KB e vinha sem disco rgido. O sistema operacional usado era o MS-DOS 1.0 (na poca ainda chamado de PC-DOS), que foi desenvolvido pela Microsoft com base num sistema operacional mais simples, chamado QDOS, comprado da Seattle Computers, uma pequena empresa desenvolvedora de sistemas. Na verdade, a Microsoft foi a segunda opo da IBM, depois de ter sua proposta de licena recusada pela Digital Research, que na poca desenvolvia verses do seu CP/M para vrias arquiteturas diferentes. Dois anos depois, foi lanado o PC XT, que apesar de continuar usando o 8088 de 4.77 MHz, vinha bem mais incrementado, com 256 KB de RAM, disco rgido de 10 MB, monitor CGA e o MS-DOS 2.0. Mesmo com o surgimento dos micros 286, o XT ainda continuou sendo bastante vendido, pois era mais barato. Fabricantes de clones criaram projetos de micros XTs mais avanados, equipados com processadores 8088 de 8 MHz, discos rgidos maiores e at 640 KB de memria RAM. Segmentao de Endereos Um recurso bem interessante, usado no 8088, a segmentao de endereos, que permitiu aumentar a quantidade de memria RAM suportada pelo processador. Para que o processador possa acessar a memria RAM, preciso que a memria seja dividida em endereos. Cada byte depositado na memria recebe um endereo nico, assim como cada rua do Brasil tem um CEP diferente. Como o 8088 pode lidar apenas com palavras binrias de 16 bits, a princpio no seria possvel para ele acessar mais do que 64 Kbytes de memria RAM, j que 16 bits permitem apenas 65,536 combinaes diferentes (2 elevado 16 potncia). Se o 8088 pudesse acessar apenas 64 KB de memria RAM, os micros baseados nele seriam muito limitados e poderiam apenas rodar programas muito simples. Para voc ter uma idia, 64 KB no dariam nem mesmo para carregar o DOS 3.0. Para solucionar este problema, foi adotada uma soluo bastante engenhosa: apesar do processador continuar podendo acessar apenas 64 KB de memria de cada vez, foram criados mais 4 bits de endereamento, que permitem o acesso a 16 blocos de memria. Como cada bloco possui 64 KB,

8

chegamos a 1 MB inteiro de capacidade total. Basicamente criamos 16 reas diferentes de memria, cada uma com 64 KB, que o mximo que o 8088 pode enderear. O processador pode acessar uma nica rea de cada vez. Se por exemplo, est sendo usado o bloco 1, e de repente preciso ler um dado gravado no bloco 2, preciso limpar todos os endereos relativos ao bloco 1 e carregar os endereos do bloco 2. Neste momento, o processador perde o acesso ao bloco 1 e passa a enxergar apenas o segundo bloco. Quando novamente for preciso ler ou gravar dados no bloco 1 (ou qualquer outro bloco), novamente so carregados os endereos relativos a ele, e o acesso ao bloco 2 ser perdido. mais ou menos como se voc precisasse fazer anotaes em vrias pginas de um caderno. Como s possvel ler ou escrever em uma pgina de cada vez, voc precisaria ficar continuamente virando as pginas. 286 O processador 286 foi lanado em Fevereiro de 1982, apenas 6 meses aps a IBM ter lanado o seu primeiro PC. Porm, o 286 passou a ser utilizado apenas em 1984, quando a IBM lanou o seu PC AT. Esta demora justificvel, pois, para lanar um computador usando o novo processador da Intel, foi preciso desenvolver toda uma nova arquitetura. Da placa de vdeo ao gabinete, praticamente tudo foi mudado, o que somado burocracia e a longos perodos de testes antes do lanamento, demandou um certo tempo. Atualmente, o perodo de desenvolvimentos dos perifricos muito mais curto. Quase sempre quando um novo processador lanado, j temos placas me para ele disponveis quase que imediatamente, pois o desenvolvimento feito de forma simultnea. O 286 trouxe vrios avanos sobre o 8088. Ele utilizava palavras binrias de 16 bits tanto interna quanto externamente, o que permitia o uso de perifricos de 16 bits, muito mais avanados do que os usados no PC original e no XT. O custo destes perifricos desta vez no chegou a ser um grande obstculo, pois enquanto o PC AT estava sendo desenvolvido, eles j podiam ser encontrados com preos mais acessveis. O principal avano trazido pelo 286 so seus dois modos de operao, batizados de Modo Real e Modo Protegido. No modo real, o 286 se comporta exatamente como um 8086 (apesar de mais rpido), oferecendo total compatibilidade com os programas j existentes. J no modo protegido, ele manifesta todo o seu potencial, incorporando funes mais avanadas, como a capacidade de acessar at 16 Megabytes de memria RAM (usando os 24 bits de endereamento do 286), multitarefa, memria virtual em disco e proteo de memria. Assim que ligado, o processador opera em modo real, e com uma certa instruo, passa para o modo protegido. O problema que trabalhando em modo protegido, o 286 deixava de ser compatvel com os programas escritos para o modo real, inclusive com o prprio MS-DOS. Para piorar, o 286 no possua nenhuma instruo que fizesse o processador voltar ao modo real, isto era possvel apenas resetando o micro. Isso significa que um programa escrito para rodar em modo protegido, no poderia usar nenhuma das rotinas de acesso a dispositivos do MS-DOS, tornando inacessveis o disco rgido, placa de vdeo, drive de disquetes memria, etc., a menos que fossem desenvolvidas e incorporadas ao programa todas as rotinas de acesso a dispositivos necessrias. Isso era completamente invivel para os desenvolvedores, pois para projetar um simples jogo, seria praticamente preciso desenvolver todo um novo sistema operacional. Alm disso, o programa desenvolvido rodaria apenas em micros equipados com processadores 286, que ainda eram minoria na poca, tendo um pblico alvo muito menor. De fato, apenas algumas verses do UNIX e uma verso do OS/2 foram desenvolvidas para utilizar o modo protegido do 286. Basicamente, os micros baseados no 286 eram usados para rodar aplicativos de modo real, que tambm podiam ser executados em um XT, aproveitando apenas a maior velocidade do 286. Falando em velocidade, a primeira verso do 286 funcionava a apenas 6 MHz, sendo lanada logo depois uma nova verso de 8 MHz, que foi usada no PC AT. Posteriormente, foram desenvolvidas verses de at 20 MHz. Devido s vrias mudanas na arquitetura, destacando o acesso mais rpido memria e alteraes no conjunto de instrues do processador, que permitiam realizar muitas operaes de

9

maneira mais rpida e eficiente, um 286 consegue ser quase 4 vezes mais rpido que um 8088 do mesmo clock. 386 O 386 foi lanado apenas em Outubro de 85, trs anos e meio depois do 286. Desta vez, a diretoria da IBM demorou muito para chegar um acordo e desenvolver um sistema baseado no 386, dando tempo para a Compaq sair na frente. Este foi um verdadeiro marco pois, de repente, as companhias perceberam que no eram mais obrigadas a seguir a IBM. Qualquer um que tivesse tecnologia suficiente poderia sair na frente, como fez a Compaq. A partir da, a IBM comeou a gradualmente perder a liderana do mercado, tornando-se apenas mais um entre inmeros fabricantes de PCs. O 386 trouxe vrios recursos novos. Para comear, o 386 trabalha tanto interna quanto externamente com palavras de 32 bits e capaz de acessar a memria usando um barramento de 32 bits, permitindo uma transferncia de dados duas vezes maior. Como o 386 pode trabalhar com palavras binrias de 32 bits, possvel acessar at 4 GB de memria (2 elevado 32 potncia), mesmo sem usar a segmentao de endereos, como no 8088 e no 286. Assim como o 286, o 386 continua possuindo os dois modos de operao. A diferena que no 386 j possvel alternar entre o modo real e o modo protegido livremente. Um programa que rode sobre DOS, pode chavear o processador para o modo protegido, para beneficiar-se de suas vantagens, e voltar ao modo real sempre que precisar usar alguma sub-rotina do DOS, de maneira transparente ao usurio. Neste caso, usado um programa de DPMI (DOS Protected Mode Interface, ou interface DOS de modo protegido) para fazer o chaveamento entre os dois modos. Toda vez que o programa precisa usar alguma sub-rotina do DOS, ele passa o comando ao chaveador e fica esperando. O chaveador por sua vez, passa o processador para o modo real, executa o comando, chaveia o processador para o modo protegido e entrega o resultado ao aplicativo, que continua trabalhando como se nada tivesse acontecido. Um bom exemplo de programa de DPMI o DOS4GW, que usado por muitos jogos que rodam sobre o MS-DOS, como o Doom, Sim City 2000 e vrios emuladores de vdeo-games. O esquema de chaveamento tambm utilizado pelo Windows 3.x, que j inclui todas as rotinas necessrias, dispensando qualquer programa de DPMI. O Windows 95/98 tambm pode chavear para o modo real caso precise carregar algum driver de dispositivo de modo real. Porm, devido ao modo virtual 8086, que veremos logo a seguir, no preciso colocar o processador em modo real para executar aplicativos MS-DOS dentro do Windows 95/98 Ter um processador 386 o requisito mnimo para rodar qualquer sistema operacional ou aplicativo de modo protegido moderno. Com um 386, um mnimo de memria RAM e espao em disco suficiente, voc pode rodar o Windows 95 e a maioria dos aplicativos para ele, embora bem lentamente devido pouca potncia do processador. Com um simples 286, no mximo voc poder rodar o DOS e aplicativos mais simples, que trabalhem somente com o modo real. Tambm possvel rodar o Windows 3.0, porm em modo Standard, onde possvel acessar todos os 16 MB de memria permitidos pelo 286, mas sem memria virtual nem multitarefa. A Introduo do Cache Os processadores 386 acima de 20 MHz eram muito rpidos para as memrias RAM existentes na poca. Por isso, a cada acesso, o processador tinha que ficar esperando os dados serem liberados pela memria RAM para poder concluir suas tarefas, perdendo muito em desempenho. Para solucionar esse problema, passaram a ser usadas pequenas quantidades de memria cache na grande maioria das placas me para micros 386 e superiores. A memria cache um tipo de memria ultra-rpida, que armazena os dados mais usados pelo processador, evitando na grande maioria dos casos, que ele precise perder tempo buscando dados diretamente na lenta memria RAM. Mesmo uma pequena quantidade de memria cache capaz de melhorar bastante a velocidade da troca de dados entre o processador e a RAM.

10

Apesar de j ser bem mais rpido que a memria RAM, o 386 ainda no era um processador muito rpido, justamente por isso, ainda no era to dependente do desempenho da memria cache quanto os processadores atuais. Um 386 equipado com memria cache de 20 a 30% mais rpido que um 386 da mesma frequncia, mas sem memria cache, enquanto um processador moderno pode ficar at 20 vezes mais lento caso sejam desabilitados tanto o cache L1 quanto o cache L2. 386SX Como o 386 era um processador de 32 bits, foi preciso desenvolver toda uma nova categoria de chipsets e circuitos de apoio para trabalhar com ele, o que acabou encarecendo bastante os sistemas baseados no 386 e afastando muitos compradores em potencial. Para contornar este problema, a Intel optou por lanar uma verso de baixo custo do 386, batizada de 386SX, que apesar de continuar funcionando internamente com palavras de 32 bits, comunicava-se com a memria RAM e os demais perifricos usando palavras de 16 bits (como o 286). Apenas para diferenciar os dois processadores, a Intel passou a chamar o 386 original de 386DX. Esta arquitetura permitiu que fossem aproveitados os mesmos perifricos usados em placas de micros 286, tornando as mquinas baseadas no 386SX muito mais acessveis. Pra voc uma idia, um PC bsico equipado com um 386SX, chegava a custar menos de 1,000 dlares, quase metade de um equipamento com uma configurao parecida baseado no 386DX. Apesar de, devido ao preo, o 386SX ter tornado-se uma boa opo em termos de custo-beneficio, em termos de performance ele fica bem atrs de um 386DX da mesma frequncia, pois apesar de internamente os processadores serem idnticos, o SX usa praticamente os mesmos componentes usados nos micros 286, acessa a memria usando palavras de 16 bits e, para completar, as placas me para ele no possuem memria cache. Modo Real x Modo Protegido Operando em modo real, o processador funciona exatamente como um 8086, apenas trabalhando com uma velocidade maior. No somente o 386, mas todos os processadores atuais podem alternar entre o modo real e o modo protegido livremente, sempre que necessrio. No modo real, rodamos o MS-DOS e outros aplicativos de modo real mais antigos, enquanto no modo protegido rodamos o Windows e seus programas. Com certeza, alguma vez ao tentar rodar um programa antigo, voc j se deparou com uma enigmtica mensagem de falta de memria, apesar dos manuais do programa dizerem que ele precisa apenas de 500 ou 600 KB de memria e voc ter instalado bem mais do que isso. Estas mensagens surgem por que estes programas rodam com o processador operando em modo real onde, como o 8086, ele capaz de reconhecer apenas o primeiro Megabyte da memria RAM. Este primeiro Megabyte por sua vez, subdividido em dois blocos, chamados de memria convencional e memria estendida. A memria convencional corresponde aos primeiros 640 Kbytes da memria, e a rea de memria usada pelos programas que operam em modo real. Os 384 Kbytes restantes so chamados de memria superior, e so reservados para armazenar uma cpia do BIOS, que passa a ser executado mais rapidamente, j que a memria RAM muito mais rpida do que o chip de memria ROM ou Flash onde ele originalmente armazenado. Esta cpia do BIOS chamada de Shadow, ou sombra, e serve para aumentar o desempenho geral do sistema. A memria superior tambm usada para armazenar sombras dos BIOS de outros dispositivos, como placas de vdeo, aumentando tambm a velocidade de operao destes perifricos. Apesar de existirem 640 Kbytes de memria convencional, protos para ser usada por qualquer programa que opere em modo real, nem toda esta memria fica disponvel, j que parte dela usada pelo MS-DOS e drivers de dispositivos de modo real. possvel liberar mais memria convencional, editando os arquivos de inicializao do DOS, conseguindo assim rodar estes programas. Quando o computador ligado, o processador est operando em modo real. Quem d o comando para que ele mude para o modo protegido o sistema operacional. No caso do Windows, este comando dado durante o carregamento do sistema.

11

Em modo protegido, o processador capaz de reconhecer toda a RAM instalada no sistema, alm de incorporar recursos como a multitarefa e a memria virtual em disco. neste modo que usamos a interface grfica do Windows e rodamos seus aplicativos.

Recursos do Modo Protegido Apesar de, em nome da compatibilidade retroativa com programas desenvolvidos para micros PC XT e 286, tanto o 386 como todos os processadores atuais poderem operar em modo real, apenas no modo protegido eles incorporam os recursos mais avanados, que permitem a existncia dos softwares que temos atualmente. A partir do 386, poucas funes novas foram incorporadas aos novos processadores. Basicamente, evolumos apenas em termos de velocidade. Tanto que, com um simples 386, possvel rodar praticamente qualquer aplicativo mais atual, apenas com uma velocidade menor. O modo protegido traz basicamente quatro novos recursos: memria virtual, multitarefa, proteo de memria e o modo virtual 8086. Memria Virtual A capacidade do 386 de trabalhar com vrios aplicativos ao mesmo tempo (multitarefa) realmente muito til, mas esta caracterstica traz um pequeno problema: abrindo vrios aplicativos sucessivamente, logo a memria RAM do sistema se esgota. Para corrigir este problema, o modo protegido traz tambm a memria virtual, que permite criar um arquivo temporrio no disco rgido, chamado de Swap File, ou arquivo de troca, que funciona como uma extenso da memria RAM, permitindo abrir quantos aplicativos forem necessrios, at que o espao do disco rgido se esgote. Por exemplo, s o Windows 2000 Professional, junto com os servios bsicos ocupa cerca de 40 MB de memria. Se voc abrir o Word 97, sero necessrios mais 10 Megabytes, um total de quase 50 MB. Caso o micro em questo possua apenas 32 MB de memria, seria criado um arquivo temporrio de 18 MB no disco rgido, que armazenaria os dados que no couberam na memria RAM. O problema em usar memria virtual que o disco rgido centenas de vezes mais lento do que a memria RAM. Um disco rgido razovel possui um tempo de acesso em torno de 10 milessegundos (milsimos de segundo) enquanto um mdulo de memria PC-100 possui um tempo de acesso inferior a 10 nanossegundos (bilionsimos de segundo) ou seja, um tempo de acesso um milho de vezes menor!Em termos de taxa de transferncia, novamente temos um contraste marcante: 800 MB para o mdulo de memria e de 5 a 20 MB (dependendo do modelo) para o disco rgido. Graas a este abismo, apesar dos programas funcionarem normalmente usando memria virtual, o sistema vai ficando cada vez mais lento. Experimente, por exemplo, tentar trabalhar em um PC com apenas 4 MB de RAM (seja qual for o processador) rodando o Windows 95. A lentido insuportvel. No Windows 3.x, era necessrio reservar uma quantidade espao do disco rgido para a memria virtual, quantidade que podia ser configurada livremente atravs do Painel de Controle. O problema que este espao ficava indisponvel. Se voc possusse um disco de 800 MB, e reservasse 200 para a memria virtual, ficaria com apenas 600 MB para instalar programas e guardar arquivos. Se por outro lado, voc reservasse pouco espao para a memria virtual, ficaria com pouca memria para abrir vrios programas e trabalhar com arquivos grandes. Apartir do Windows 95 este problema foi resolvido com a adoo de um arquivo de troca dinmico, que vai aumentando ou diminuindo de tamanho conforme a necessidade de memria, evitando o desperdcio de espao em disco que tnhamos no Windows 3.x. Apartir do Windows 95, existe tambm uma administrao mais racional dos recursos do sistema, movendo os arquivos mais importantes, acessados com mais frequncia para memria RAM (ou memria cache, dependendo da importncia do arquivo), e deixando apenas arquivos usados mais raramente no arquivo de troca. Esta simples medida diminui bastante a perda de performance causada pelo uso da memria virtual.

12

No Windows 2000 possvel determinar um valor inicial e um valor mximo para um arquivo de troca. No caso do Linux, a fim de melhorar o desempenho, os desenvolvedores optaram por criar um sistema de arquivos prprio para a memria virtual. Multitarefa Multitarefa significa executar mais de uma tarefa de cada vez, como assobiar e chupar cana ao mesmo tempo :-). Apesar de na vida real no ser muito fcil fazer duas coisas ao mesmo tempo, do ponto de vista de um computador este processo relativamente simples. Todos os aplicativos so carregados na memria e o processador passa a executar algumas instrues de cada aplicativo por vez. Como o processador capaz de executar vrios milhes de instrues por segundo, esta troca feita de maneira transparente, como se os aplicativos estivessem realmente sendo executados ao mesmo tempo. Enquanto o processador d ateno para um aplicativo, todos os demais ficam paralisados, esperando sua vez. Memria Protegida Usando a multitarefa, quase sempre teremos vrios aplicativos carregados na memria, seja na memria RAM ou no arquivo de troca. Se no houvesse nenhum controle por parte do processador, um aplicativo poderia expandir sua rea de memria, invadindo reas de outros aplicativos e causando travamentos no micro. Um editor de imagens, por exemplo, precisa ocupar mais memria conforme as imagens vo sendo abertas ou criadas. Sem nenhuma orientao por parte do processador, simplesmente seriam ocupadas as reas adjacentes, que poderiam tanto estar vazias, quanto estar ocupadas pelo processador de textos, por exemplo. Para colocar ordem na casa, foi desenvolvido o recurso de proteo de memria, que consiste no processador isolar a rea de memria ocupada por cada aplicativo, impedindo que ele ocupe outras reas ao seu bel prazer. Se, por acaso, o programa precisar de mais memria, o prprio processador ir procurar uma rea vazia de memria e ordenar ao aplicativo que ocupe a rea reservada. Existem basicamente dois tipos de multitarefa, denominadas multitarefa preemptiva e multitarefa cooperativa, que diferem justamente pelo uso ou no da proteo de memria. O Windows 3.x, apesar de ser considerado um sistema operacional multitarefa, no capaz de usar o recurso de proteo de memria, nele usada a multitarefa cooperativa, que consiste em cada aplicativo usar os recursos do processador por um certo tempo, passar para outro programa e esperar novamente chegar sua vez para continuar executando suas tarefas. A alternncia entre os programas neste caso no comandada pelo sistema e sim pelos prprios aplicativos. Neste cenrio, um aplicativo mal comportado poderia facilmente monopolizar o sistema, consumindo todos os recursos do processador por um longo perodo, ou mesmo invadir reas de memria ocupadas por outros aplicativos, causando em qualquer um dos casos o famoso GPF, (General Protection Falt, ou falha geral de proteo) que tanto atormentava os usurios do Windows 3.x. Experimente tentar fazer dois irmos dividirem os mesmo brinquedo; pode funcionar durante um certo tempo, mas uma hora um no vai querer deixar o outro brincar e vai sair briga, exatamente como acontece com os aplicativos dentro da multitarefa cooperativa :-) O Windows 95/98 por sua vez, usa a multitarefa preemptiva, isolando as reas de memria ocupadas pelos aplicativos. Isto garante uma estabilidade bem maior do que a que temos no Windows 3.11. Porm, o modo como a multitarefa preemptiva implementada no Windows 95 assim como do Windows 98 e do Windows Millennium, que so baseados no mesmo kernel (ncleo) do Windows 95, ainda possui dois problemas graves: O primeiro que, quando executado um programa de 16 bits, o Windows 95 cai em multitarefa cooperativa para poder rodar o programa, deixando de proteger as reas de memria e tornando-se to vulnervel quanto o Windows 3.11. Porm, mesmo usando apenas aplicativos de 32 bits os travamentos ainda so comuns, pois o Windows 95 os servios do sistema no tem prioridade sobre os aplicativos. Isto significa que caso um

13

aplicativo qualquer entre em loop, poder consumir todos os recursos do processador, neste caso o sistema operacional ficar paralisado, simplesmente sem ter como fechar o aplicativo e restaurar o sistema, obrigando o usurio a resetar o micro e perder qualquer trabalho que no tenha sido salvo. Na verdade costuma-se dizer que o Windows 95/98 utiliza multitarefa semi-preemptiva, pois no utiliza todos os recursos de uma verdadeira multitarefa. A soluo para este problema veio com o Windows NT. Desde suas primeiras verses, o Windows NT bem estvel neste aspecto, pois implementa a multitarefa preemptiva de forma completa. As tarefas executadas pelo sistema operacional, so priorizadas sobre as de qualquer outro aplicativo. Isto significa que em nenhuma situao, um aplicativo ter como passar por cima do sistema operacional e consumir todos os recursos do processador como acontece no Windows 95/98. Na prtica, significa que o sistema at pode travar devido a algum bug, mas se algum aplicativo travar ou tentar invadir uma rea de memria no designada para ele, simplesmente ser fechado, permitindo que todos os demais aplicativos continuem trabalhando sem problemas. Voc logo notar quais aplicativos costumam dar problemas, bastando substitu-los por verses mais recentes que corrijam seus bugs ou mesmo passar a usar um programa concorrente. Tanto o Windows 2000, quanto o XP so baseados no kernel do Windows NT e mantm o mesmo sistema de funcionamento. Por ter sido inspirado no Unix, o Linux utiliza multitarefa preemptiva desde suas primeiras verses, por isso que o Linux considerado um dos sistemas mais estveis, a ponto de ser usado em vrios dos mais importantes servidores do planeta. O MacOS por sua vez, utilizou a multitarefa cooperativa durante muito mais tempo, at a verso 9.x. Os usurios dos Mac s passaram a ter disponvel um sistema com multitarefa preemptiva apartir do MacOS X, que baseado no FreeBSD, um sistema Unix de cdigo aberto, semelhante ao Linux em vrios aspectos. A Apple usou o FreeBSD para construir o Darwin, que a base do sistema e completou a obra com a interface Aqua, que mantm a idia de facilidade de uso das verses anteriores do MacOS. Modo Virtual 8086 Apesar de, operando em modo real, o processador ser totalmente compatvel com qualquer programa antigo, seria impossvel executar um aplicativo de modo real dentro do Windows 95 ou qualquer outro sistema operacional que utilize o modo protegido. Seria preciso fechar o Windows e fazer o processador voltar para o modo real para poder executar o aplicativo. Pensando nesta possvel limitao, os projetistas da Intel desenvolveram o modo virtual 8086 onde o processador, operando em modo protegido, capaz de simular vrios ambientes de modo real, cada um com 1 MB de memria e total acesso ao hardware do micro, chamados de mquinas virtuais. como se dentro do 386 fossem abertos vrios XTs completos, um para cada programa de modo real a ser executado. justamente o modo virtual 8086 que permite abrir janelas DOS dentro do Windows 95/98. Como o processador continua em modo protegido, cada mquina virtual tem sua rea isolada na memria. O programa roda sem prejudicar a estabilidade do sistema. 486 O 386 foi o grande marco dos processadores para micros PC, pois foi o primeiro processador a trazer o conjunto de instrues x86, que so suportadas por todos os processadores modernos. Apartir dele, surgiram vrios melhoramentos, mas apenas em termos de desempenho. Apesar de no trazer instrues novas, o 486 conquistou seu lugar na histria, por trazer vrios recursos que continuam sendo usados at os processadores atuais. Em primeiro lugar, o 486 foi o primeiro processador a trazer cache integrado. Eram 8 Kbytes, mas que eram capazes de entregar dados a cada ciclo do processador. Como os fabricantes continuaram incluindo cache na placa me, um pouco mais lentos, mas em maior quantidade, surgiu tambm a distino entre o cache L1 e o L2. Outra evoluo foi o coprocessador aritmtico. Ao invs do carssimo componente que deveria ser adquirido separadamente, o coprocessador passou a ser um item de srie. Este foi o impulso que faltava para a popularizao de vrios programas e o surgimento de jogos bem mais elaborados.

14

Com tudo isso, um 486 quase duas vezes mais rpido do que um 386 da mesma frequncia. Em alguns aplicativos, que dependem do coprocessador aritmtico, um 486 chega a ser 10 vezes mais rpido. Como fez anteriormente com o 386, a Intel criou um 486 de baixo custo chamado de 486SX. A diferena entre o SX e o 486 original, que passou a ser chamado de 486DX. Os dois compartilhavam a mesma arquitetura, mas o SX vinha sem o coprocessador aritmtico, o que o tornava muito mais lento em aplicativos grficos e cientficos. Para os proprietrios, existia a opo de posteriormente comprar um 80487SX, um coprocessador aritmtico que era vendido separadamente. O problema era que comprado separadamente, o coprocessador custava quase tanto quanto um processador 486DX que j vinha com o coprocessador embutido, definitivamente um pssimo negcio. Para evitar confuso, o 486 original passou a ser chamado de 486DX.

Foram lanadas verses do 486 rodando 25 MHz, 33 MHz e 40 MHz, porm, criou-se uma barreira, pois no haviam na poca circuitos de apoio capazes de trabalhar a mais de 40 MHz. Para solucionar esse problema, foi criado o recurso de Multiplicao de Clock, atravs do qual o processador trabalha internamente uma velocidade maior do que a da placa me. Foram lanados ento os processadores 486DX2 (que trabalhavam ao dobro da frequncia da placa me) e logo depois os 486DX4 (que trabalhavam ao triplo da frequncia da placa me):

Com isso, surgiram tambm as placas me upgradable, que permitem atualizar o processador, apenas configurando alguns jumpers da placa. Os processadores 486, apartir do DX-33 foram os primeiros a utilizar cooler, que naquela poca eram dissipadores com menos de um centmetro de altura, com exaustores minsculos. Conforme os processadores passaram a dissipar cada vez mais calor, os coolers foram crescendo na mesma proporo, at chegar nos exageros que vemos atualmente :-) Multiplicao de Clock Dentro de qualquer computador, os dados so transmitidos e processados na forma de sinais eltricos. O processador muito pequeno, no mede mais do que 1, ou 1,2 centmetros quadrados. A placa me por sua vez muito maior que isso. Graas a esta diferena de propores, acaba sendo muito mais fcil desenvolver um processador capaz de operar a, digamos, 2 gigahertz, do que uma placa me capaz de acompanha-lo. Apesar dos sinais eltricos percorrerem os circuitos a uma velocidade prxima da da luz, estamos falando de bilhes de transmisses por segundo. O recuso de multiplicao de clock surgiu para evitar que os processadores ficassem limitados frequncia da placa me. Num Pentium III de 800 MHz por exemplo, a placa me opera a apenas 100 MHz. O multiplicador de 8x. Hoje em dia os processadores trazem tanto cache L1, quanto cache L2 integrados, operando na mesma frequncia do restante do processador, o que diminui muito a dependncia da velocidade da memria RAM, que sempre opera na mesma frequncia de a placa me, meros 100 ou 133 MHz. Mesmo assim, quanto maior for o multiplicador, maior ser a perda de desempenho. Um bom exemplo disso, uma comparao entre o Celeron 766 (que usa bus de 66 MHz) e o Celeron 800 (que j usa bus de 100 MHz). Apesar da frequncia de operao ser quase a mesma, o Celeron 800 chega a ser 20% mais rpido, graas ao acesso mais rpido memria. Apesar das limitaes, o recurso de multiplicao de clock indispensvel atualmente, pois sem ele seria impossvel desenvolver processadores muito rpidos, j que no possvel aumentar a frequncia das placas me e dos demais perifricos na mesma proporo do aumento do clock nos processadores. Se o Pentium III, por exemplo, tivesse que trabalhar na mesma frequncia da placa me, no passaramos de 100 ou 133 MHz.

15

Nos PCs 486, Pentium, MMX e K6 necessrio configurar o multiplicador manualmente, atravs de alguns jumpers da placa me. uma maravilha, principalmente quando voc no tm o manual da placa em mos. Mas, apartir do Pentium II, a placa capaz de detectar automaticamente o multiplicador. Na verdade, apartir do Pentium II, todos os processadores Intel tm o seu multiplicador travado ainda na fbrica. No possvel alter-lo mesmo que queira. Pipeline At o 386, os processadores da famlia x86 eram capazes de processar apenas uma instruo de cada vez. Uma instruo simples podia ser executada em apenas um ciclo de clock, enquanto instrues mais complexas demoravam vrios ciclos de clock para serem concludas. Seria mais ou menos como montar um carro de maneira artesanal, pea por pea. Para melhorar o desempenho do 486, a Intel resolveu usar o pipeline, uma tcnica inicialmente usada em processadores RISC, que consiste em dividir o processador em vrios estgios distintos. O 486, possui um pipeline de 5 nveis, ou seja, dividido em 5 estgios. Quando carregada uma nova instruo, ela primeiramente passa pelo primeiro estgio, que trabalha nela durante apenas um ciclo de clock, passando-a adiante para o segundo estgio. A instruo continua ento sendo processada sucessivamente pelo segundo, terceiro, quarto e quinto estgios do processador. A vantagem desta tcnica, que o primeiro estgio no precisa ficar esperando a instruo passar por todos os demais para carregar a prxima, e sim carregar uma nova instruo assim que se livra da primeira, ou seja, depois do primeiro pulso de clock. As instrues trafegam dentro do processador na ordem em que so processadas. Mesmo que a instruo j tenha sido processada ao passar pelo primeiro ou segundo estgio, ter que continuar seu caminho e passar por todos os demais. Se por acaso a instruo no tenha sido completada mesmo aps passar pelos 5, voltar para o primeiro e ser novamente processada, at que tenha sido concluda. Desta maneira, conseguimos que o processador seja capaz de processar simultaneamente, em um nico ciclo de clock, vrias instrues que normalmente demorariam vrios ciclos para serem processadas. Voltando ao exemplo do carro, seria como se trocssemos a produo artesanal por uma linha de produo, onde cada departamento cuida de uma parte da montagem, permitindo montar vrios carros simultaneamente. O uso dos 5 estgios de pipeline no 486 no chega a multiplicar por cinco a performance do processador, na verdade a performance no chega nem mesmo a dobrar, mas o ganho bem significativo. Pentium Assim como o 486, o Pentium um processador de 32 bits, capaz de acessar at 4 GB de memria RAM. Mas, novamente o processador trouxe vrias melhorias que o tornaram muito mais rpido que a gerao anterior. No toa que o primeiro Pentium operava a apenas 60 MHz, e era, na poca do lanamento, muito mais caro que um 486DX4-100. O Pentium de 65 a 100% mais rpido que um 486 do mesmo clock. Como o processador aritmtico tambm foi completamente remodelado, o Pentium acaba sendo ainda mais rpido em aplicativos que demandam um grande nmero de clculos. Os processadores Pentium existiram em verses de 60 a 200 MHz, sempre utilizando multiplicao de clock (com exceo apenas para as verses de 60 e 66 MHz):

Como na poca dos micros 486, as placas me para processadores Pentium (com excesso de placas muito antigas) suportam vrias frequncias de barramento e vrios multiplicadores distintos. Na maioria dos casos possvel configurar a placa me para utilizar qualquer processador da famlia. Melhorias no Cache L1

16

A primeira mudana trazida pelo Pentium foi o aumento da quantidade de cache L1, que passou a ser de 16 KB, o dobro do 486. Alm do aumento da capacidade, foram implementados trs novos recursos, que tornaram o cache ainda mais eficiente: A primeira medida foi a diviso do cache em dois blocos de 8 KB, um dedicado a armazenar dados e outro dedicado a armazenar instrues. Esta diviso permite que tanto as instrues a serem executadas pelo processador (comparao, multiplicao, soma, deciso, etc.) quanto os dados a serem processados, possam ser acessados simultaneamente no cache, aumentando sua eficincia. Se, por exemplo, um programa qualquer ordena que o processador leia um nmero gravado na memria e verifique se ele maior ou menor que 10, temos duas instrues (ler o nmero e compar-lo com o nmero 10) e duas variveis (o nmero 10 e o nmero a ser lido). Com um cache unificado, como no 486, primeiro seriam lidas as instrues e em seguida as variveis. No cache dividido do Pentium, ambos podem ser lidos no mesmo ciclo de clock, poupando tempo. Outra modificao foi a ampliao do barramento de dados entre o processador e o cache. Enquanto no 486 podem ser lidos ou gravados at 128 bits de dados por ciclo de clock, no Pentium podem ser lidos ou gravados at 256 bits no cache de instrues e mais 256 no cache de dados. Como ambos os caches podem ser acessados simultaneamente, temos um barramento total de 512 bits, o qudruplo do que tnhamos no 486! Este barramento mais largo permite que quantidades maiores de dados possam ser lidos a partir do cache no mesmo espao de tempo, permitindo ao cache acompanhar a maior velocidade de processamento do Pentium. A ltima medida foi a adoo de um cache Write Back, que capaz de cachear tanto as operaes de leitura de dados na memria RAM, quanto as operaes de escrita. O cache usado no 486, cacheia apenas as operaes de leitura, o que permite ao processador ganhar tempo ao ler dados, mas no ajuda na hora de gravar dados, quando so perdidos vrios ciclos at que a memria RAM torne-se disponvel. Previso de desvio dinmico Aps concluda uma instruo do programa, para que o processador no perca um nico ciclo de clock aguardando que o cache ou a memria RAM enviem a prxima instruo a ser processada, foi includo no Pentium um buffer de pr extrao. Este pequeno circuito armazena as prximas instrues a serem processadas, formando uma espcie de fila. Na verdade, o buffer de pr extrao funciona como uma espcie de cache L0, ficando entre o processador e o cache L1. A maior utilidade deste buffer prever o resultado de operaes de tomada de deciso. Se chega ao processador uma instruo como Se X > Y ento Z = K, seno Z = Q o buffer ir carregar tanto a instruo seguinte para X < Y quanto para X > Y, fazendo com que seja qual for o resultado da operao anterior, a prxima instruo j esteja carregada no buffer. O buffer de pr extrao tambm ajuda a memria cache a carregar antecipadamente os dados que o processador possa precisar. No caso do exemplo anterior, seriam carregados na memria cache tanto o valor de K quanto de Q. Coprocessador Aritmtico mais rpido O coprocessador aritmtico do Pentium foi completamente remodelado. Foram alteradas algumas das instrues, que passaram a ser executadas muito mais rapidamente e, como o processador principal, o coprocessador do Pentium tambm passou a utilizar um pipeline para aumentar a velocidade de execuo das instrues. Somadas com as brutais melhorias na arquitetura, o coprocessador do Pentium tornou-se cerca de 5 vezes mais rpido do que o utilizado no 486, tornando o processador muito mais rpido em aplicativos que demandem um grande nmero de clculos. Arquitetura Superescalar Mais um aperfeioamento do Pentium e um dos principais motivos de seu maior desempenho, a adoo de uma arquitetura superescalar.

17

Internamente, o Pentium trabalha como dois processadores de 32 bits distintos (chamados de canaleta U e canaleta V), sendo capaz de processar duas instrues por ciclo de clock (uma em cada processador). Cada processador possui acesso total ao cache, memria RAM, e aos demais componentes do micro. Foi includa tambm, uma unidade de controle, com a funo de comandar o funcionamento dos dois processadores e dividir as tarefas entre eles. Teoricamente, o uso de dois processadores distintos dobraria o desempenho do Pentium, j que ao invs de uma, poderiam ser executadas duas instrues por ciclo de clock. Mas, na prtica existem algumas limitaes. Se por exemplo, um programa ordena que o processador some 4 nmeros, X + Y + W + K, o processador poderia no primeiro ciclo de clock usar a canaleta U para somar X e Y e a canaleta V para somar W, mas no segundo ciclo, haveria apenas mais um clculo para ser executado, o resultado das duas somas. Neste caso, apenas uma das canaletas poderia ser usada; a segunda ficaria ociosa. No final das contas, houve um ganho de 33%, j que ao invs do processador demorar 3 ciclos para executar o clculo, demorou apenas 2. Caso a continuao do clculo dependesse da concluso do clculo anterior, como em (X + Y) x 3, a segunda canaleta novamente no poderia ser usada, pois o processador teria primeiro que somar X e Y para depois multiplicar o resultado por 3. Neste caso, no haveria ganho algum, pois o processador demoraria os mesmos dois ciclos que seriam necessrios com apenas uma canalizao. Em mdia, a segunda canalizao permite um desempenho 30 ou 40% superior ao desempenho obtido com apenas uma canalizao. Caso o software seja alterado e otimizado para rodar em um processador com duas canalizaes, ordenando as instrues de modo a deixar a segunda canaleta ocupada durante a maior parte do tempo, podemos conseguir mais 10 ou 15% de desempenho, chegando a algo entre 40 e 50%, mas, jamais ser possvel conseguir o dobro de desempenho. Isto pode ser notado por exemplo ao recompilar o kernel do Linux. possvel orientar o utilitrio a otimizar o cdigo para qualquer processador, de um 486 a um Pentium III. Esta otimizao permite que o Linux utilize todos os recursos do processador, obtendo um desempenho bastante superior. Otimizar um programa para rodar em um processador Pentium, no o torna incompatvel com processadores com apenas uma canalizao (como o 486), nem torna seu desempenho menor nestes processadores, j que as mesmas instrues sero executadas, apenas em ordem diferente. Execuo Especulativa Se o processador tivesse que processar uma instruo de tomada de deciso, como em Se X > 0 ento Y = 30, seno Y = 20, enquanto a primeira canaleta do processador verifica se X maior ou menor que 0, a segunda ao invs de ficar ociosa, pode executar uma das duas opes seguintes (atribuir o valor 30 ou atribuir o valor 20 a Y). No prximo ciclo, quando a primeira canaleta tivesse terminado de processar sua instruo, teramos 50% de chance da segunda canaleta ter adivinhado qual seria a instruo seguinte e j t-la executado. O nome execuo especulativa foi dado por que a segunda canaleta escolhe aleatoriamente a instruo a executar, entre as duas possveis. Acesso mais rpido Memria O Pentium capaz de acessar a memria usando palavras binrias de 64 bits, o dobro do 486, que a acessa a 32 bits. Este recurso permite que sejam lidos 8 bytes por ciclo, ao invs de apenas 4, dobrando a velocidade de acesso memria. Isto diminuiu bastante o antigo problema de lentido das memrias, mas apenas provisoriamente, pois logo surgiram processadores Pentium utilizando multiplicadores de clock cada vez mais altos. Como a maioria das placas para processadores Pentium utiliza mdulos de memria de 72 vias, que so mdulos de 32 bits, preciso usa-los em pares. O processador acessa cada dupla como se fosse um nico mdulo, chegando aos 64 bits necessrios.

18

Mesmo com a capacidade de acessar a memria a 64 bits e sendo composto internamente por dois processadores de 32 bits, o Pentium continua sendo um processador de 32 bits. Estes novos recursos servem apenas para melhorar o desempenho do processador. Multiprocessamento Visando o mercado de Workstations (mquinas muito rpidas, destinadas a aplicaes pesadas como processamento de imagens 3D ou vdeo) e servidores de rede, a Intel incluiu no Pentium o recurso de multiprocessamento simtrico, que permite o uso de dois processadores na mesma placa me. Neste caso, preciso adquirir uma placa me especial, com encaixe para dois processadores e um chipset com suporte ao multiprocessamento. Como a diviso das tarefas entre os dois processadores no feita automaticamente pelo chipset, preciso que o sistema operacional seja capaz de reconhecer os dois processadores e acess-los individualmente, dividindo as tarefas entre eles da melhor maneira possvel. Caso o sistema operacional no oferea suporte ao multiprocessamento, como o caso do Windows 95 e do Windows 98, apenas um dos processadores ser usado pelo sistema, ficando o outro inativo. Neste caso, ser como se tivssemos apenas um processador instalado. A maioria dos sistemas operacionais, incluindo o Windows NT, 2000 e XP, Linux e a maioria das verses do Unix suportam multiprocessamento, as excesses mais notveis ficam por conta do Windows 95,98 e ME. Apesar de, pela lgica, o desempenho dobrar com dois processadores trabalhando em paralelo, na prtica o ganho dificilmente passa de 40 ou 60%, pois dificilmente ser possvel organizar a execuo das tarefas de modo a deixar ambos os processadores ocupados todo o tempo, assim como difcil manter as duas canaletas do Pentium cheias 100% do tempo. At pouco tempo atrs, o recurso de multiprocessamento foi exclusividade dos processadores Intel. Tanto o Pentium, quanto o MMX, o Pentium II e o Pentium III suportam o uso de at dois processadores simultaneamente, enquanto o Xeon suporta o uso de at quatro processadores (8 com a adio de um circuito especial na placa me). Com exceo do Athlon MP, todos os demais processadores da AMD e Cyrix no suportam multiprocessamento, o que no chega a ser uma grande desvantagem para um usurio domstico, j que fora do ramo dos servidores de alto desempenho, este recurso raramente usado. Clock e Overclock Ao contrrio do que muitos pensam, velocidade de operao dos processadores no fixa, mas sim determinada pela placa me. Na placa me temos um pequeno cristal de Quartzo, chamado gerador de clock, que vibra alguns milhes de vezes por segundo, com uma preciso quase absoluta. As vibraes deste cristal so usadas para sincronizar os ciclos da placa me, que sabe que a cada vibrao do cristal deve gerar um certo nmero de ciclos de processamento. mais ou menos como um farol, que abre e fecha algumas vezes por minuto. Quando o farol est fechado, o trnsito fica parado, voltando a fluir quando a farol abre. Um pulso de clock justamente a abertura do farol, um j! que faz todos os perifricos trabalharem simultaneamente e de forma sincronizada. O funcionamento de todos os perifricos, da placa de vdeo ao disco rgido, coordenado por este relgio. O processador no possui um gerador de clock, e por isso trabalha usando o sinal recebido da placa me. Num Pentium MMX de 200 MHz, por exemplo, a placa me funciona a 66 MHz, e o multiplicador 3x, o que significa que para cada ciclo da placa me, o processador gerar 3 ciclos. Justamente por estar limitada frequncia indicada pela placa me, a frequncia do processador no fixa; pode ser maior ou menor do que o especificado, dependendo de como a placa me estiver configurada.

19

Como as placas me atuais, para manter compatibilidade com vrios processadores podem operar a vrias frequncias diferentes, possvel fazer o processador trabalhar mais rpido simplesmente configurando a placa me para trabalhar a uma frequncia maior. Esta tcnica chamada de Overclock, uma gria que significa acima do clock numa traduo livre. Um Pentium 120 por exemplo, usa bus 60 MHz e multiplicador de 2x. Se configurssemos a placa me para trabalhar a 66 MHz, mantendo o multiplicador em 2x, o processador passaria a trabalhar a 133 MHz. Se a freqncia da placa me fosse aumentada para 75 MHz, o processador funcionaria a 150 MHz. Em muitos casos, o processador tambm aceita um multiplicador maior. Um AMD K6 de 266 MHz por exemplo, trabalha com a placa me funcionando a 66 MHz e usando multiplicador de 4x. Se aumentssemos o multiplicador para 4.5x, mantendo a placa me funcionando a 66 MHz, faramos o processador funcionar a 300 MHz. A performance de um processador trabalhando em overclock idntica de um processador normal funcionando a essa velocidade. Um Pentium 120 overclocado para 133 MHz por exemplo, apresenta exatamente a mesma performance de um Pentium 133 de verdade. Quando um fabricante desenvolve um projeto de processador, testa-o a vrias frequncias diferentes, a fim de determinar sua freqncia ideal de operao. Geralmente, os fabricantes adotam uma certa margem de segurana, vendendo o processador com uma freqncia ligeiramente inferior freqncia mxima. justamente esta margem de segurana que permite o overclock; estaramos ento simplesmente fazendo o processador funcionar na sua frequncia mxima. Esta margem muda de fabricante para fabricante e de processador para processador. Por isso, alguns processadores aceitam overclocks maiores que outros. Existem casos de processadores que aceitam trabalhar sem problemas a uma freqncia 50% maior que a original, assim como existem casos de processadores que apresentam instabilidade operando a uma freqncia apenas 10% maior que a original. Obviamente, o overclock tambm traz algumas desvantagens. Fazendo o processador trabalhar a uma freqncia maior do que a ideal, podemos ter problemas de travamentos, superaquecimento e sempre haver alguma diminuio de sua vida til. Outros processadores Alm dos processadores principais que vimos at agora, existiram alguns modelos lanados como processadores de baixo custo, alternativa de upgrade para quem tinha um processador antigo e no queria gastar muito. 486DLC e 486SLC Estes dois processadores foram a tentativa da Cyrix de entrar no mercado de processadores de baixo custo, oferecendo uma opo barata de upgrade para usurios de micros 386 e tambm uma opo de processador para micros de baixo custo, especialmente micros de menos de 1.000 dlares. Estes processadores so basicamente processadores 386 (respectivamente o DX e o SX), que incorporam um pequeno cache L1 de apenas 1 KB. O cache no fazia milagres, mas j era o suficiente para aumentar um pouco o desempenho do processador, o que somado ao baixo preo de venda, foi suficiente para vrios usurios investirem no upgrade, j que os 486DLC e SLC eram totalmente compatveis com as placas para micros 386. Vale lembrar que, como o 386 padro, estes processadores no possuem coprocessador aritmtico, podendo ser acoplados a eles o 387DCL ou o 387SLC, que deviam ser comprados separadamente. Sob licena da Cyrix, a Texas Instruments desenvolveu verses prprias do 486DLC e SLC, preservando a mesma arquitetura, mas aumentando a quantidade de cache L1 para 8KB. AMD 5x86 No incio, a AMD produzia clones de processadores Intel, utilizando os projetos desenvolvidos pela Intel e pagando royalties em troca. Porm, devido a vrias divergncias, a aliana acabou sendo desfeita

20

e a AMD passou a batalhar seus prprios projetos de processadores. Apesar de, durante muito tempo, a AMD ter tido que se contentar com um distante segundo lugar, produzindo basicamente processadores de baixo custo, atualmente ela vem competindo diretamente com a Intel tambm no ramo de processadores de alto desempenho com seu Athlon, conseguindo na maioria das vezes manter preos mais baixos que a concorrente. Mas, voltando nossa aula de histria, depois que a Intel lanou o 486DX4-100, abandonou o desenvolvimento de processadores 486 para se dedicar somente ao desenvolvimento do Pentium. Com a inteno de apresentar um processador que possusse um desempenho semelhante a um Pentium low end (os modelos mais lentos e baratos), mas que ao mesmo tempo tivesse um preo competitivo, a AMD continuou o desenvolvimento do seu processador 486, lanando uma verso de 120 MHz (que opera usando barramento de 40 MHz e multiplicador de 3x),e logo em seguida tambm uma verso de 133 MHz. Por questes de Marketing, a AMD batizou este 486 de 133 MHz de AMD 5x86 o que confundiu alguns usurios, que pensaram tratar-se de um processador semelhante ao Pentium. O AMD 5x86 utiliza placas me para 486, necessita apenas que a placa seja capaz de sinalizar o multiplicador de 4x. O clock fica em 33 MHz, totalizando seus 133 MHz. Como o AMD 5x86 no passa de um 486 funcionando a 133 MHz, seu desempenho pouco menos de 33% superior a um 486DX4-100, sendo mais ou menos equivalente ao de um Pentium de 75 MHz. Alis, outra medida de marketing tomada pela AMD na poca, foi criar um ndice Pr, ou Pentium Rating, comparando o desempenho do 5x86 ao do Pentium. O 5x86 de 133 MHz recebeu o ndice Pr 75, indicando possuir um desempenho semelhante ao apresentado por um Pentium de 75 MHz. A AMD conseguiu fazer um razovel sucesso com este processador, j que alm de ser sido muito usado em micros de baixo custo, o 5x86 passou a ser uma alternativa barata de upgrade para usurios de micros 486 com processadores mais lentos. Cyrix Cx5x86 Alm de desenvolver projetos de processadores 486, que foram fabricados pela Texas Instruments, a Cyrix lanou um processador que mistura recursos do 486 e do Pentium, oferecendo um desempenho bastante superior a um 486 padro. Este processador foi batizado como Cx5x86, e apresenta um cache L1 de 16 KB, alm de algumas outras melhorias que tornam seu desempenho cerca de 35% superior ao de um 486 do mesmo clock. A verso de 100 MHz do Cx5x86 possui um desempenho equivalente ao 5x86 de 133 MHz da AMD e ao Pentium 75, enquanto a verso de 120 MHz rivaliza em desempenho com um Pentium 90. Como o 5x86 da AMD, Cx5x86 totalmente compatvel com as placas me para 486, bastando configurar a placa com multiplicador de 3x e bus de 33 MHz para instalar a verso de 100 MHz e, 3x 40 MHz para utilizar a verso de 120 MHz. AMD K5 Depois de muitos atrasos, a AMD finalmente conseguiu lanar um processador que pudesse concorrer diretamente com o Pentium. O K5, porm, no chegou a tornar-se muito popular devido ao seu lanamento atrasado. Quando finalmente saram as verses Pr 120 e Pr 133 do K5, a Intel j havia lanado as verses de 166 e 200 MHz do Pentium, ficando difcil a concorrncia. Ao invs de simplesmente tentar copiar o projeto da Intel, a AMD optou por desenvolver um processador completamente novo, tecnicamente superior ao Pentium. O K5 tambm utiliza uma arquitetura superescalar, mas ao invs de duas, possui quatro canalizaes. O cache L1 tambm foi ampliado, passando a ser de 24 KB, dividido em dois blocos, um de 16 KB para instrues e outro de 8 KB para dados. O coprocessador aritmtico porm no foi muito melhorado, apresentando um desempenho quase 50% inferior ao apresentado pelo coprocessador do Pentium, devido principalmente ausncia de Pipeline. Este acabou sendo o calcanhar de Aquiles do K5, que a AMD sempre fez o possvel para tentar esconder. Mas, como na maioria das aplicaes o K5 era bem mais rpido que o Pentium, a AMD optou

21

novamente por vender seu processador segundo um ndice Pr, que compara seu desempenho com o dos processadores Pentium:

Pentium Overdrive Como fez com os antigos 386 SX, a Intel lanou (ou pelo menos tentou, pois este processador nunca chegou a ser muito vendido) tambm um Pentium low cost. Este processador, apesar de internamente ter um funcionamento idntico a um Pentium, utiliza placas me para processadores 486, sendo por isso chamando de Overdrive. A Intel lanou o Overdrive em verses de 63 MHz (25 MHz x 2.5) e 83 MHz (33 MHz x 2.5) mas, por utilizarem placas de 486, que operam a frequncias muito mais baixas e acessam a memria a apenas 32 bits, estes processadores perdem feio em performance se comparados com um Pentium de verdade. O Overdrive de 63 MHz apresenta performance idntica ao 486DX4-100, enquanto o de 83 MHz empata com o 5x86 de 133 MHz da AMD. Alm da baixa performance, o Overdrive era extremamente caro (por isso usei o low cost entre aspas no pargrafo anterior :-), e acabou sendo uma pssima opo de compra. Em termos de custobeneficio, o 5x86 da AMD foi uma opo muito melhor. Mesmo aps este primeiro fracasso, a Intel continuou tentando lanar sucessivamente vrios processadores Overdrive, entre eles uma verso do MMX que funciona em placas soquete 7 antigas e uma verso do Pentium II que funciona em placas me para Pentium Pro. Apesar da propaganda feita por alguns especialistas nenhum destes modelos de Overdrive foi uma opo de compra que sequer merecesse ser considerada, pois devido baixa procura e consequentemente baixa produo, sempre custaram muito mais caro do que processadores equivalentes. A nica vantagem de se utilizar um processador Overdrive seria continuar utilizando a mesma placa me, trocando apenas o processador. Porm, na maioria vezes, por causa da baixa produo o processador Overdrive custa mais caro que um processador normal mais uma placa me para ele, tornando-se uma opo lusitana de upgrade. bem possvel que no futuro sejam lanados outros modelos de processadores Overdrive, mas no espere ver boas opes. Adianta muito pouco trocar apenas o processador, mantendo a mesma velha e ultrapassada placa me, a mesma quantidade de memria de RAM, o mesmo velho e lento disco rgido etc. e vale menos pena ainda pagar caro por isso. Seria como comprar uma Braslia e trocar o motor, voc vai continuar com o mesmo carro velho. Na maioria das vezes, mais sensato gastar em mais memria RAM, num disco rgido maior e mais rpido, ou numa placa 3D, caso o micro seja utilizado para jogos. Um tal de 186 O 8086 foi o pai do 8088, que equipou os primeiros PCs. Depois vieram os processadores 286, que tambm conhecemos bem. Mas, entre as duas geraes, existiu um modelo intermedirio, pouco conhecido, mas igualmente importante. O 80186 uma evoluo do 8086, que trouxe algumas instrues novas e um sistema de tolerncia falhas. Apesar de no ter sido usado como processador em micros PC, o 80186 tornou-se um componente bastante popular, sendo usado em controladores de HDs, controladores de interrupo entre vrios outros perifricos. Nestas aplicaes, o 80186 continua em uso at hoje.

22

Caractersticas e recursos dos processadores Do MMX ao Pentium II: Na segunda parte deste super-tutorial, conhea os processadores Pentium MMX, K6, K6-2, K6-2, Cyrix 6x86, Media GX, IDT C6, Pentium Pro, Pentium II, Celeron e Xeon.Carlos E. Morimoto 30/10/2002 O 8086 foi lanado em 79, doze anos antes do Pentium MMX, lanado em 97. Doze anos na indstria de semicondutores, corresponde a 3 ou 4 geraes de processadores, uma eternidade. Mas, de 97 pra c, as coisas comearam a avanar ainda mais rpido. Em parte por causa da concorrncia entre a Intel, AMD, Cyrix, a novata Transmeta e at empresas como a IBM e a Motorola, que tambm fabricam chips, apesar de no diretamente para o mercado de PCs. Outro fator importante o aumento no nmero de processadores vendidos. Na dcada de 70, os poucos computadores pessoais que podiam ser encontrados venda, eram produzidos quase que artesanalmente e vendiam algumas centenas de unidades por ms. Hoje em dia, empresas como a Dell vendem milhes de PCs todos os anos. Com este crescimento astronmico, foi natural que os investimentos no desenvolvimento de novos processadores aumentassem na mesma proporo. Durante a dcada de 70, uma fbrica de microchips no custava mais do que alguns milhes de dlares. Hoje em dia, uma fbrica capaz de produzir processadores de ponta, no sai por menos de 3 bilhes de dlares. mais do que o PIB de muitos pases. Apesar tudo, o preo dos processadores vem caindo. Hoje em dia, processadores como o Duron e o Celeron custam menos de 100 dlares por unidade. O desempenho claro, inferior ao dos processadores topo de linha, que custam 300 ou 400 dlares, mas muito maior do que tudo o que vimos at agora. No futuro, os processadores se tornaro cada vez mais baratos e tero incorporadas cada vez mais funcionalidades. s ver o caso do coprocessador aritmtico e da memria cache. Na poca do 386, ambos eram espetados na placa me, enquanto hoje em dia so componentes de fbrica mesmo nos processadores mais simples. Componentes que hoje so adicionados na forma de placas de expanso ou fazem parte do chipset da placa me, como vdeo, som, rede, etc. mais cedo ou mais tarde tambm sero incorporados aos processadores. Continuaro existindo placas de alto desempenho para quem tiver interesse, mas graas integrao, ser possvel montar PCs bsicos muito mais baratos do que os atuais. Mesmo um processador de baixo custo, como todos estes componentes integrados, ser muito mais rpido que um atual. No estou falando de mais 12 anos, mas de apenas mais 2 ou 3 anos. As coisas agora esto avanando mais rpido lembra-se? :-) Mas, vamos encerrar nosso exerccio de futurologia por enquanto. Mais adiante teremos vrias outras oportunidades para exercitar nossa imaginao.

Pentium MMX No existem muitas diferenas entre o Pentium 1 e o MMX. Como o nome j sugere, a principal modificao foram as instrues MMX, que segundo o marketing feito pela Intel na poca, seriam suficientes para aumentar de forma considervel o desempenho do processador em aplicativos que envolvem multimdia. O problema que as instrues MMX ajudam apenas em aplicativos otimizados. necessrio que o desenvolvedor altere o cdigo do programa, substituindo as instrues x86 padro por instrues MMX, recompile e redistribua o programa, um processo que exige muito trabalho e custa dinheiro. Mesmo os programas lanados depois do MMX, nem sempre so otimizados para as novas instrues.

23

Para no depender apenas das novas instrues, a Intel aumentou o cache L1 do processador, de 16 para 32 KB. Com isto, o MMX passou a ser um pouco mais rpido do que um Pentium 1 da mesma frequncia, mesmo nos aplicativos sem otimizao. Lembre-se que naquela poca o cache L2 do processador ainda fazia parte da placa me e operava a apenas 66 MHz. Um cache L1 competente era essencial. A Intel lanou tambm, modelos de processadores MMX Overdrive, que podem substituir antigos processadores Pentium de 75, 100 ou 120 MHz com a simples troca do processador. O problema que estes processadores eram mais caros e difceis de encontrar, assim como os overdrives anteriores. Novamente uma pssima opo de upgrade, j o overdrive chegava a custar mais caro que um MMX normal junto com uma nova placa me.

Como funcionam as instrues MMX O Pentium um processador que trabalha com palavras binrias de 32 bits. O problema que muitas vezes preciso realizar clculos utilizando dados de 8 ou 16 bits, que so utilizados principalmente por programas de edio de imagem ou som. Pela lgica, seria possvel processar quatro palavras de 8 bits ou duas de 16 de cada vez, mas na prtica, o processador capaz de processar apenas um valor de cada de cada vez, independentemente do nmero de bits. A soma de dois nmeros de 8 bits demora tanto quanto a soma de dois nmeros de 32 bits, simplesmente os bits adicionais do processador no so utilizados. As instrues MMX, permitem juntar vrias palavras binrias de 8 ou 16 bits e transform-las em uma nica palavra maior, que pode ser processada (da mesma maneira que seria processada separadamente utilizando as instrues padro) usando instrues especficas do conjunto MMX. Para tornar mais fcil a tarefa de adaptar os programas para utilizar as instrues MMX, a Intel optou por adicion-las ao processador na forma de uma extenso do coprocessador aritmtico. Esta arquitetura traz a vantagem de no exigir praticamente nenhuma alterao no projeto do processador, pois seu funcionamento continua sendo idntico, apenas sendo remendado com as novas instrues. Um programa antigo, simplesmente ignorar as instrues MMX, e acabar no apresentando nenhum ganho de performance. Para tirar proveito das novas instrues, preciso que o programador altere o cdigo do programa, alterando suas rotinas para que as instrues MMX sejam utilizadas no lugar das instrues x86 padro. O ganho de performance real depende da habilidade do programador em detectar onde e como o MMX pode ser usado para tornar a execuo do programa mais rpida.

Um golpe de Marketing Teoricamente, as instrues MMX podem tornar a execuo de aplicativos grficos at 400% mais rpida, j que at 4 palavras de 16 bits poderiam ser processadas de cada vez. Outros aplicativos tambm poderiam ser muito beneficiados. Na prtica porm, os ganhos trazidos pelas instrues MMX so muito menores. Para comear, apenas algumas das rotinas utilizadas pelos programas podem ser otimizadas, j que a nica vantagem trazida pelas instrues MMX o processamento mais rpido de palavras de 8 ou 16 bits. A maioria das instrues continuam sendo executadas atravs das instrues x86 padro. Na prtica, apenas 30 ou 40% das instrues executadas pelos processadores de imagens poderiam ser executadas mais rpido, resultando em um ganho de performance em torno de 20 ou 30%. Trinta por cento de ganho real j no seria uma ganho to ruim, porm, mais um pequeno problema com as instrues MMX tornam o ganho de desempenho ainda menor. Como o acesso s instrues MMX feito atravs do mesmo barramento utilizado pelo coprocessador aritmtico, no possvel acessar ao mesmo tempo ambos os dispositivos. Ou seja, o programa pode ou executar uma instruo MMX ou uma instruo de ponto flutuante, nunca fazer as duas coisas ao mesmo tempo.

24

Para piorar um pouco mais a situao, um certo tempo perdido para alternar entre o acesso s instrues MMX e o uso do coprocessador aritmtico. Como os programas grficos so muito dependentes do coprocessador aritmtico, preciso constantemente alternar entre as instrues MMX e as instrues de FPU (do coprocessador aritmtico) fazendo com que o ganho de performance conseguido atravs do uso das instrues MMX seja em mdia de apenas 10 ou 12%. Vendo o pequeno ganho de desempenho que poderia ser conseguido atravs do MMX, poucas softwarehouses se interessaram em otimizar seus programas para as novas instrues. A adeso s instrues MMX foi to pequena que mesmo hoje, vrios anos depois do lanamento do MMX, praticamente pode-se contar nos dedos os programas realmente otimizados para as novas instrues, sendo que os programas otimizados rodam em mdia apenas 10% mais rpido. O MMX muito mais um golpe de Marketing, do que realmente um melhoramento nos processadores. Apesar dos ganhos anmicos de performance, as campanhas publicitrias da Intel foram to fortes que obrigaram concorrentes como a AMD e a Cyrix a tambm adotar o MMX em seus processadores, pois caso contrrio, simplesmente no conseguiriam vend-los. Infelizmente, apesar do estardalhao, as instrues MMX tornaram-se apenas um elefante branco da informtica.

AMD K6 Depois do fiasco do K5, a AMD trabalhou duro para atualizar seu projeto e lanar o K6 a tempo de competir com o MMX da Intel. Em termos de recursos, o K6 trazia 64 KB de cache L1 integrado ao processador e compatibilidade com as instrues MMX. Uma grande sacada da AMD com o K6 foi mant-lo compatvel com as placas me soquete 7 usadas pelo Pentium e Pentium MMX, facilitando bastante a vida dos usurios. Por causa de sua arquitetura mais avanada, o K6 supera em desempenho no somente o Pentium clssico, mas tambm o Pentium MMX, chegando perto at mesmo do Pentium II em muitos aplicativos. O calcanhar de Aquiles do K6 porm, seu coprocessador aritmtico, que possui uma arquitetura muito mais simples do que os modelos utilizados pela Intel no Pentium MMX e no Pentium II, sendo por isso bem mais lento. Apesar deste defeito no atrapalhar o desempenho do K6 em aplicativos de escritrio, faz com que seu desempenho em aplicativos grficos, como processamento de imagens ou vdeos, jogos com grficos tridimensionais (como o Quake II) fique bastante prejudicado. Nestes aplicativos o K6 chega a ser mais de 20% mais lento que um Pentium MMX do mesmo clock e uma porcentagem ainda maior se comparado com processadores Pentium II ou Pentium III. Na poca do lanamento, o K6 no era exatamente um processador de baixo custo, pelo contrrio, o mais enfatizado pela AMD era o seu bom desempenho em inteiros e sua arquitetura mais avanada. Na verdade, o K6 j um processador de sexta gerao