Instituto Federal de Educação, Ciência e Tecnologia de Sergipe

Programa de Bolsas de Iniciação Científica Júnior – PBICJr

Museu Web de Tecnologia
Antônio Vinícius Menezes Medeiros

Orientador: Heli Henriques Alcantara Nascimento

ARACAJU – SE

2009

Resumo
Este trabalho apresenta os processadores para computadores pessoais baseados no IBM PC, seus componentes, seu funcionamento, suas características e sua evolução. O trabalho apresentado tem como objetivo principal auxiliar a compreensão do funcionamento dos componentes do computador, em especial do processador, e esclarecer as diferenças entre as tecnologias que se encontram hoje disponíveis no mercado. São colocadas considerações referentes às características, inovações e funcionamento dos processadores, de modo que seja possível compará-los em termos de avanço tecnológico, desempenho e custo-benefício.

Sumário
1 O Computador 1.1 Hardware 1.1.1 Processador 1.1.2 Placa-mãe 1.1.3 Memória 1.1.3.1 Memória principal 1.1.3.2 Memória secundária 1.1.3.3 Bits e Bytes 1.1.3.4 Medidas de Armazenamento 1.1.4 Periféricos (Dispositivos de Entrada e/ou Saída) 1.1.4.1 Dispositivos de Entrada 1.1.4.2 Dispositivos de Saída 1.1.4.3 Dispositivos de Entrada e Saída 1.1.5 Interfaces 1.1.6 Barramentos 1.1.6.1 Outra classificação para os barramentos 1.1.7 Outros Componentes 1.1.7.1 Gabinete 1.1.7.2 Fonte de Alimentação 1.1.7.3 Cooler 1.1.7.4 Estabilizador de tensão / No-break / Filtro de Linha 1.2 Software 1.2.1 Tipos de Software 1.2.2 Arquivos e pastas 2 O Processador (Unidade Central de Processamento) 2.1 Componentes de um Processador 2.1.1 Unidade Aritmética e Lógica (UAL) 2.1.1.1 Co-processador matemático 2.1.2 Registradores 2.1.3 Unidade de Controle (UC) 2.1.4 Relógio ou Clock 2.1.5 Decodificador de Instrução (DI) 2.1.6 Registradores com função de controle 2.1.6.1 Registrador de Instrução (RI) 2.1.6.1 Contador de Instrução (CI) 2.1.6.1 Registrador de Endereços de Memória (REM) e Registrador de Dados de Memória (RDM) 2.2 Instruções de Máquina 2.3 Funcionamento da UCP (Ciclo da Instrução) 2.3.1 Exemplo de funcionamento da UCP 2.3.1.1 Ciclo da instrução LDA Op. 2.3.1.2 Ciclo da instrução ADD Op. 3 Principais Características de um Processador 3.1 Palavra 3.2 Largura do barramento de dados 1 3 3 5 6 6 8 9 11 12 12 16 18 29 30 32 32 32 34 34 35 36 37 38 40 42 44 46 46 50 51 53 54 55 55 55 58 60 61 64 67 71 71 72

3.3 Largura do barramento de endereços 3.4 Capacidade de endereçamento 3.5 Clock interno e externo 3.6 Memória cache 3.6.1 O Princípio da Localidade e o funcionamento da memória cache 3.6.2 Níveis e evolução da memória cache 3.7 Número de registradores 3.8 Co-processador matemático 3.9 Execução de instruções em paralelo 3.9.1 Metodologia Tipo Linha de Montagem ou Pipelining 3.10 Análise de desempenho (benchmark) 4 A Evolução dos Processadores Referências bibliográficas

73 73 74 76 77 78 81 81 82 82 84 86 124

Capítulo 1 – O Computador
Esta introdução se baseia no que foi visto em [LVC] e [MON01]. Como diz Monteiro [MON01], “Computar significa calcular, realizar cálculos matemáticos.” O primeiro computador foi criado para facilitar operações matemáticas, fornecendo os resultados das mesmas com rapidez e precisão. É a máquina que mais evoluiu desde a sua criação, adquirindo várias outras utilidades ao longo do seu desenvolvimento. Os computadores de hoje em dia servem não só para realizar cálculos matemáticos, eles podem fazer quase tudo que se possa imaginar para uma máquina fazer: textos, imagens, vídeos, músicas, jogos, aplicações multimídia, pesquisas, comunicação instantânea com qualquer lugar do mundo a qualquer dia e qualquer hora; tudo isso é possível fazer com um apenas um aparelho chamado computador. Pode-se definir computador como uma máquina que trabalha com grande quantidade de informações, capaz de receber, processar, armazenar e transmitir dados. Há muito tempo atrás os computadores eram feitos de grandes empresas para grandes empresas. Eram máquinas enormes, que ocupavam muito espaço (logo os primeiros ocupavam uma biblioteca inteira), tinham funcionamento complexo e custavam muito caro. Não eram máquinas que podiam ser usadas por qualquer pessoa. Ao longo da história dos computadores estes foram tornando-se menores, mais baratos e foram surgindo várias facilidades no uso, como o sistema operacional, a interface gráfica e o mouse, que possibilitaram sua popularização, principalmente após a invenção dos primeiros computadores pessoais na década de 70, como o Altair e o Macintosh.

Figura 1.1. O Altair 8800 (1975, à esquerda) foi o primeiro computador pessoal comercializado. Já o Macintosh (1984) foi o primeiro computador a usar interface gráfica e mouse. Imagens retiradas da Internet. Disponíveis em <http://diegolevis.com.ar/historia/altair.html> e <http://www.museudocomputador.com.br/enciteclado.php>. Acesso em 21/07/2007. Na década de 80 a IBM, a maior empresa de informática da época, que ainda hoje é uma das líderes de mercado, lançou seu modelo de computador pessoal, o IBM PC, que até hoje é o padrão dos computadores pessoais, com vários aperfeiçoamentos é claro. A sigla PC vem do inglês Personal Computer, que significa Computador Pessoal. 1

Figura 1.2. IBM PC (1981). Em pouco tempo ele se tornou o padrão para a criação de novos computadores pessoais. Imagem retirada da Internet. Disponível em <http://diegolevis.com.ar/historia/ PC.html>. Acesso em 27/06/2007. Há muito tempo a IBM já não é mais a única empresa a fabricar PCs. Esses computadores adotaram padrões para a fabricação de suas peças e hoje qualquer pequena empresa pode desenvolver produtos para serem utilizados nesses computadores ou mesmo fabricar computadores. Muitas pessoas que possuem conhecimento técnico sobre o assunto também montam seus próprios PCs (a expressão “montar um computador” é utilizada para indicar que uma pessoa escolheu no mercado as peças de sua preferência, comprouas, e montou seu próprio equipamento. Empresas que não fabricam computadores também podem vender computadores montados com peças de outras empresas). Diferentemente do IBM PC, o Macintosh (também chamado por seus usuários de MAC) continuou sendo fabricado e desenvolvido exclusivamente pela sua fabricante, a Apple. Somente ela fabrica hardware e software para esses computadores (ou se alguma outra empresa fabrica, faz isto sobre o controle da Apple). Assim, a Apple desenvolve uma arquitetura “fechada”, pois os usuários de seus computadores só podem comprar os produtos da fabricante e as pessoas não podem montar seus próprios computadores baseados nessa arquitetura.

Figura 1.3. Um PC e um MAC atuais. Imagens retiradas da Internet. Disponíveis em <http://www.brasilmodchip.com.br/pc.htm> e <http://www.xipmania.com/catalog/product_info.php? manufacturers_id=111&products_id=2005&osCsid=2dc36b8f0b63072048fe1588 e22dc35a>. Acesso em 21/07/2007.

2

Este trabalho se concentra exclusivamente nos computadores de arquitetura aberta, que são os mais usados atualmente, baseados no IBM PC. Nessa primeira parte, serão vistos os componentes que formam esses computadores. Eles podem ser divididos em dois grandes grupos: hardware e software.

1.1 Hardware
Hardware é um termo em inglês que não tem uma tradução específica, deriva da palavra hard em inglês, que significa duro. É usado para definir todos os componentes físicos (mecânicos, magnéticos e eletrônicos) de um computador, ou seja, a máquina propriamente dita, formada pelo microcomputador e seus periféricos (impressoras, monitores de vídeo, scanners, mouses, entre outros). [VIP], [MON01] O hardware de um computador pode ser dividido em quatro categorias funcionais: processador (ou UCP), placa-mãe, memória e periféricos (também chamados de dispositivos de entrada e saída). Existem ainda alguns componentes que não se encaixam em nenhuma dessas categorias funcionais e, no entanto, continuam sendo componentes físicos do computador. Estes serão vistos em Outros componentes.

Figura 1.4. Alguns componentes de um computador: Monitor (1), placa-mãe (2), processador (3), memória RAM (4), placas de expansão (5), fonte de alimentação (6), unidade de CD/DVD (7), disco rígido (8), teclado (9) e mouse (10). Imagem retirada da Internet. Disponível em <http://commons.wikimedia.org/wiki/Image:Personal_computer %2C_exploded_5.svg>. Acesso em 22/07/2007.

1.1.1 Processador [LVC02], [MICPROC], [MOR02], [EMER03]
Também chamado de UCP (Unidade Central de Processamento, do inglês Central Processing Unit), o processador é o principal componente eletrônico de um computador. Ele fica acoplado na placa-mãe e passa o tempo todo executando instruções e processando dados.

3

Figura 1.5. Intel 386 (1988). Esse foi o primeiro processador de 32 bits para PCs. Imagem retirada da Internet. Disponível em <http://www.museudocomputador.com.br/encipro.php >. Acesso em 01/07/2007. O processador é quem efetivamente executa todas as operações no computador, sendo considerado o “cérebro” da máquina. Essas operações são muito simples, consistem basicamente em operações matemáticas e lógicas, além de operações de busca, leitura e gravação de dados na memória. No entanto, tudo o que o computador faz (como já foi mencionado na introdução, acesso à Internet, edição de textos, imagens, jogos, etc.) se resume basicamente a essas operações (isso será explicado com mais detalhes no tópico de Software). A velocidade do processador é um fator determinante no desempenho geral do computador. Tanto é que muitas pessoas descrevem o computador que usam se referindo ao modelo e velocidade do processador que ele possui (por exemplo, “eu uso um Athlon 64” ou “eu uso um Pentium 100 MHz”). Grosso modo, pode-se dizer que um processador que opere a 100 MHz, como o Pentium do exemplo, realiza 100 milhões de operações por segundo. Essa é a forma como é medida a velocidade de um processador: através da quantidade de operações que ele consegue realizar em um segundo. A unidade utilizada para essa medida é o MHz (Megahertz ou milhões de ciclos por segundo) ou em GHz (Gigahertz ou bilhões de ciclos por segundo) nos processadores mais novos. Vale ressaltar que outro computador equipado com um processador idêntico a este pode apresentar um desempenho diferente, isso porque existem outros fatores que influenciam na velocidade do processamento, como por exemplo, a qualidade da placa-mãe ou a velocidade de acesso à memória. Essa descrição (“eu uso um Pentium 100 MHz”) não é precisa (e muito menos técnica) e não pode ser usada em situações que exijam mais precisão nos dados. Ela pode ser usada, por exemplo, por duas pessoas menos entendidas que pretendem comparar o desempenho de seus computadores, só a título de informação. Se o computador da primeira pessoa possui um processador 800 MHz e o da segunda possui um processador 400 MHz, com certeza o primeiro computador é mais rápido. Os processadores estão se tornando mais velozes a cada dia que passa. Existem no mercado diversos modelos de processadores, cada um com suas características próprias. Os dois principais fabricantes de processadores para PCs são a Intel (que ficou famosa pelos processadores Pentium 4, Pentium III e Celeron) e a AMD (K6-2, Athlon e Duron).

4

Figura 1.6. Processadores da Intel e da AMD. Imagens retiradas da Internet. Disponíveis em <http://www.3dnews.ru/UCP/athlon64fx-p4ee/>, <http://www.viabrasil.net/index.asp? secao=6&categoria=81&subcategoria=125>, <http://www.clubic.com/jourexpress-23-02-2004.html> e <http://www.infowester.com/processadores2.php >. Acesso em 01/07/2007.

1.1.2 Placa-mãe [LVC02], [MOR02], [EMER05]
A placa-mãe (do inglês Motherboard), também chamada placa de CPU por ser a placa que acomoda o processador, ou ainda mainboard, por ser a principal placa do computador, é a responsável pela interconexão de todos os dispositivos que formam o computador. Se o processador é o “cérebro” do computador, pode-se dizer que a placa-mãe é o sistema nervoso.

Figura 1.7. Placa-mãe. Imagem retirada da Internet. Disponível em <http://www.hardwareluxx.de/story.php?id=1239>. Acesso em 01/07/2007.

5

“Ela não é apenas o componente mais complexo, mas também o que mais influencia a estabilidade e as possibilidades de expansão do sistema. Portanto, usar uma placa de CPU de baixa qualidade (e em conseqüência, de baixa confiabilidade) coloca a perder toda a confiabilidade e desempenho do computador.” Na placa-mãe há encaixes para todos os componentes do computador. O processador fica encaixado em um soquete próprio para ele (nesse modelo de placamãe ele possui cor branca, está na parte superior). Os pentes de memória são encaixados ao lado do processador (nos soquetes azuis e pretos). As placas de expansão são encaixadas nos slots mais embaixo. Há também um bloco de conectores para os periféricos (todos esses componentes serão vistos com detalhes mais adiante). No mercado existem placas-mãe de várias marcas e modelos, com preços e qualidades diferentes. Algumas das marcas mais conhecidas são: Asus, Abit, Gigabyte, Soyo, PC Chips, MSI, Intel e ECS.

1.1.3 Memória
O estudo dos diferentes tipos de memória que compõem um computador se baseia em [LVC02], [EMER04], [EMER07], [MICMEMO], [INFO] e [VIP]. Em informática, fazem parte da memória de um computador todos os dispositivos que são usados para armazenar dados e instruções, seja de forma temporária ou permanente. Pode-se dizer que depois da UCP, a parte mais importante de um computador é a memória. Em um mesmo computador existem vários tipos de memórias, organizadas hierarquicamente de acordo com três características: custo, velocidade de acesso (a velocidade com que os dados armazenados na memória são acessados pelo processador) e capacidade de armazenamento (a quantidade de informações que a memória pode armazenar). Pode-se dividi-las em dois grandes grupos principais de memória: a memória principal e a memória secundária.

1.1.3.1 Memória principal
A memória principal é aquela que é acessada diretamente pelo processador e armazena os dados de forma eletrônica. É formada por diversos tipos de memórias, entre as quais as tão faladas memórias RAM e ROM. “Se o processador é o principal componente de qualquer computador, a memória RAM é a sua principal ferramenta de trabalho.” A memória RAM (do inglês Random Access Memory – Memória de Acesso Aleatório) armazena as informações que estão sendo utilizadas pelo processador. “Este tipo de memória permite tanto a leitura como a gravação e a regravação de dados.” Os módulos, também chamados de "pentes", de memória RAM são encaixados na placa-mãe por meio de conectores chamados “soquetes”, assim como o processador. “A razão da existência e importância da memória RAM está na sua velocidade de leitura dos dados, que é muito grande. Todas as informações que estão contidas nela podem ser acessadas de maneira mais rápida do que as informações que estão no disco rígido, no disquete ou no CD-ROM, que são consideradas tipos de memórias secundárias.” Os programas e os dados que estão gravados no disco (o termo disco neste caso foi usado no sentido de generalizar, pode ser um disco rígido, disquete ou outro meio de armazenamento), enquanto estão sendo utilizados pelo processador, são transferidos para a memória RAM. Com isso, consegue se agilizar o acesso aos dados e o trabalho do processador, que perde menos tempo acessando dados na memória.

6

A quantidade de memória RAM de um computador é um fator bastante importante. Quanto mais RAM o computador possuir, mais rápido será o seu funcionamento e mais facilmente ele suportará a execução de vários programas ao mesmo tempo, do mesmo jeito que quanto mais avançados (ou “pesados”, como os usuários dizem) são os programas que queremos utilizar, mais memória RAM será necessária. Outra característica da RAM é a sua volatilidade, ou seja, “ela precisa ser constantemente reenergizada para conservar os dados gravados.” Quando o computador é desligado, todos os dados armazenados na memória RAM são apagados. Por essa razão, antes de desligar o computador, se o usuário não quiser perder seus dados, é necessário que ele os guarde ("salve") em um disco, que é uma forma de memória permanente.

Figura 1.8. Pente de memória RAM. Imagem retirada da Internet. Disponível em <http://www.unifase.com/default.asp?cat=7>. Acesso em 21/07/2007. A capacidade da memória RAM é medida em megabytes (MB) ou gigabytes (GB), no caso das memórias RAM mais novas (MB e GB são duas medidas de capacidade, elas serão explicadas mais adiante). Pode-se encontrar no mercado módulos de memória com capacidades variadas, que vão de 32 MB até 2 GB. Módulos com menores capacidades estão obsoletos, sendo bastante difíceis de encontrar. “No início dos anos 80, 1 MB de memória era uma capacidade extremamente elevada para os programas simples que eram usados.” Os programas atuais são muito mais complexos e exigem computadores que possuam no mínimo 256 MB ou mais de memória. A memória ROM (Read Only Memory – memória somente para leitura) é um tipo de memória que, em uso normal, aceita apenas operações de leitura, não permitindo a realização de escritas. Ela é responsável por armazenar as instruções de inicialização do computador. A memória ROM é uma memória não volátil: ela armazena os dados de forma permanente, diferente do que acontece na memória RAM. “Suas informações são gravadas pelo fabricante uma única vez e após isso não podem ser alteradas ou apagadas, somente acessadas.“ Com a evolução da ROM, seu nome perdeu sentido, pois hoje ela já pode ser gravada e regravada. No entanto, ela não é utilizada para gravação com freqüência, como a memória RAM ou unidades de disco (disco rígido, disquete, etc.). Atualmente, usa-se um tipo diferente de memória ROM, chamada de FlashROM, que aceita operações de escrita, possibilitando a atualização da BIOS (um dos programas que estão dentro da memória ROM, que é acionado logo ao ligar o computador). 7

A atualização da BIOS é feita através de programas apropriados, usando comandos de hardware especiais, por meio de disquete ou até mesmo pelo sistema operacional, dependendo dos recursos disponibilizados pelo fabricante da placa-mãe em questão. Não é só o computador que possui memória ROM. Vários aparelhos, como leitores de DVD, tocadores de MP3, placas de computador, taxímetros, celulares também possuem memória ROM. Dentro da memória ROM destes aparelhos, é gravado um software necessário ao seu funcionamento, chamado de firmware. Ele é, para o aparelho, o que um sistema operacional é para um computador e, assim como a BIOS gravada na ROM do computador, pode ser atualizado caso seja necessário.

Figura 1.9. Um chip de memória ROM na placa-mãe. Imagem retirada da Internet. Disponível em <http://www.clubedohardware.com.br/dicionario/termo/94>. Acesso em 04/07/2007. “A placa de UCP contém quase toda a memória de um PC, mas outras placas também podem conter memórias do tipo RAM e do tipo ROM. Por exemplo, as placas de vídeo contém uma ROM com o seu próprio BIOS, e contém uma RAM chamada de memória de vídeo, que armazena os caracteres e gráficos que são mostrados na tela.” O processador também possui suas próprias memórias internas, que são os registradores e a memória cache. Estas serão apresentadas nos próximos capítulos. Por enquanto o essencial é saber apenas que elas fazem parte da memória primária e, portanto, são acessadas diretamente pelo processador e armazenam os dados de forma eletrônica, assim como as memórias ROM e RAM.

1.1.3.2 Memória secundária
Além da memória principal, existe também a memória secundária ou memória de massa, que é uma memória não volátil, tem uma alta capacidade de armazenamento e um custo muito mais baixo que o da memória principal. É usada para gravar grande quantidade de dados por um período longo de tempo. São exemplos de memória de massa o disco rígido e mídias removíveis como as unidades de fita, os disquetes, os discos óticos (CD-ROM e DVD) e os pen drives. A memória secundária não é acessada diretamente pela UCP, como a memória primária, mas sim por meio de dispositivos de entrada e saída. Os disquetes, por exemplo, são acessados pelo processador através da unidade de disquete, que é um dispositivo de entrada e saída fixado no gabinete do computador. Ele é responsável pela leitura e gravação dos disquetes. 8

A memória de massa não é formada por chips, e sim por dispositivos que utilizam outras tecnologias de armazenamento. Os discos rígidos, assim como os disquetes e as unidades de fita, usam a tecnologia magnética para armazenar dados, e por isso são classificados como discos magnéticos. Os discos óticos usam tecnologia ótica. As unidades de memória de massa, por serem também consideradas dispositivos de entrada e saída de dados, serão vistas com mais detalhes em Unidades de Armazenamento.

1.1.3.3 Bits e Bytes
Os seres humanos estão acostumados a utilizar o sistema decimal de numeração, que usa 10 algarismos para formar todos os números: 0, 1, 2, 3, 4, 5, 6, 7, 8, e 9. Esse sistema de numeração usa exatamente 10 algarismos devido ao fato dos seres humanos terem 10 dedos. “Historicamente o número 10 foi escolhido, pois os números eram usados na vida cotidiana para contar. Contar carneiros, bois, pães, pessoas, etc. Nada mais natural que contar com os dedos.” Se uma pessoa perguntar a uma criança de três anos a sua idade, ela verá que a criança responde mostrando três dedos da mão.

Figura 1.10. O sistema de numeração decimal foi adotado pelos seres humanos por facilitar a contagem. Imagem retirada da Internet. Disponível em <http://www.omerique.net/twiki/pub/Recursos/SistemaNumeracionDecimal/sist emasnumeracion.html>. Acesso em 05/07/2007. Os computadores podem receber valores decimais via teclado e mostrá-los no monitor, por exemplo. Mas internamente, os valores são trabalhados em outro sistema, mais adequado aos circuitos do computador. Trata-se do sistema binário. Enquanto no sistema decimal usa-se dez algarismos (de 0 a 9) para formar todos os números, no sistema binário, só são utilizados dois algarismos para representar qualquer valor: 0 e 1. “Por exemplo, o número 13, que no sistema decimal é representado apenas com dois dígitos (1 e 3), no sistema binário é representado com 4 dígitos, na forma: 1011.” A razão pela qual os computadores usam esse sistema é porque ele torna mais fácil a implementação da tecnologia eletrônica atual. Os computadores trabalham internamente apenas com dois níveis de tensão: ou ligado ou desligado, que são representados pelos números 1 e 0, respectivamente. Assim torna-se fácil representar qualquer informação com esses dois dígitos. A cada um desses impulsos elétricos, dá o nome de Bit (do inglês Binary digit, ou seja, dígito binário). Portanto, o bit é a menor unidade de informação. 9

Sempre que um processador, uma memória ou outro chip qualquer precisar receber ou transmitir dados, esses dados são representados na forma de bits. Entretanto, um bit é muito pouco, já que pode representar apenas dois valores. Os computadores trabalham com agrupamentos de bits. Nos PCs, os bits são transmitidos em grupos de 4, 8, 16, 32 ou 64 bits simultâneos. Quando se diz que um computador possui processador 32 bits, significa dizer que dentro dele trafegam 32 bits de uma só vez. Logo, esse processador é mais rápido que outro processador de, por exemplo, 16 bits.

Figura 1.11. Toda informação colocada dentro do computador é representada por uma seqüência de 0s e 1s. Imagem retirada da Internet. Disponível em <http://www.akademie.de/grundlagen-computer-internet/ecdl/kurse/ecdlmodul-1-grundlagen-der-informationstechnologie/die-hardware/bits-undbytes.html>. Acesso em 05/07/2007. Quanto à forma como são armazenados os dados dentro de um computador, eles não são armazenados em bits, mas em conjuntos de bits, chamados bytes (lê-se “báites”). Quando os primeiros computadores foram projetados, surgiu a necessidade de se estabelecer meios de representar os dados, as informações que seriam trabalhadas pelo computador (isso inclui todas as letras, maiúsculas e minúsculas, números, sinais de pontuação, acentos, sinais especiais e quaisquer outros tipos de dados que possam ser armazenados ou processados em um computador), através de combinações de bits. Percebeu-se que 256 diferentes combinações de bits conseguiriam representar todos esses dados. Assim, os bytes são formados por 8 bits. Basta fazer os cálculos: como um bit representa dois valores (0 ou 1) e um byte representa 8 bits, tem-se que 28 = 256. Cada caractere no computador corresponde a um código formado por 8 bits, que ficarão armazenados na memória do computador, ocupando exatamente 1 byte. A correspondência de cada byte com o símbolo que ele representa é estabelecida por uma tabela presente em todos os computadores: a tabela ASCII (sigla do inglês American Standard Code for Information Interchange). Para o teclado transmitir a letra “T” ao processador, por exemplo, ele usa a seguinte combinação de bits: 01010100. Outros exemplos de representações na tabela ASCII: 01000001 – A 01000010 – B 01001010 – L 00100011 – #

10

Por isso bytes são considerados unidades completas de informação. Com eles é possível representar uma informação completa (seja ela uma letra, um número, etc.). Com um bit ainda não é possível representar nenhuma informação. É importante ressaltar que existem outras tabelas de codificação de caracteres, como o BCD, a EBCDIC, a UNICODE, no entanto a tabela ASCII ainda é a mais utilizada nos computadores de hoje. Pode-se fazer uma analogia do conceito de bits e bytes com o conceito de letras e palavras, que são usadas pelos seres humanos. É curioso notar que na informática também surgiu o conceito de palavra, no entanto este é bastante diferente do conceito de palavra para a linguagem humana. É um conceito muito importante para o estudo dos processadores e suas características. Segundo Monteiro [MON01], pode-se definir a palavra como “um conjunto de bits que representa uma informação útil para os computadores. Desse modo, uma palavra estaria associada ao tipo de iteração entre memória principal e UCP, que é individual, informação por informação. Ou seja, a UCP processa instrução por instrução (cada uma estaria associada a uma palavra), armazena ou recupera número a número (cada um estaria associado a uma palavra), e assim por diante.” Tem-se o exemplo do processador de 32 bits citado anteriormente. A palavra desse processador é de 32 bits e, com isso, ele consegue processar 32 bits de uma vez só.

1.1.3.4 Medidas de Armazenamento
Em Informática é muito importante considerar a capacidade de armazenamento, já que quando se faz algo no computador, trabalha-se com arquivos que ocupam certo espaço em disco. Assim como a água é medida em litros ou o açúcar é medido em quilos, os dados de um computador são medidos em bits e bytes. E assim como o litro, o grama e qualquer outra medida, o byte também possui seus múltiplos. Resumidamente, tem-se: • • 1 bit (ou b) é a menor unidade de informação, que corresponde a um dígito binário (0 ou 1) 1 Byte (ou B) = 8 bits 1 Kilobyte (ou kB) = 1024 bytes = 210 bytes 1 Megabyte (ou MB) = 1024 kilobytes = 210 . 210 bytes = 220 bytes 1 Gigabyte (ou GB) = 1024 megabytes = 220 . 210 bytes = 230 bytes 1 Terabyte (ou TB) = 1024 gigabytes = 230 . 210 bytes = 240 bytes 1 Petabyte (ou PB) = 1024 terabytes = 240 . 210 bytes = 250 bytes 1 Exabyte (ou EB) = 1024 petabytes = 250 . 210 bytes = 260 bytes 1 Zettabyte (ou ZB) = 1024 exabytes = 260 . 210 bytes = 270 bytes 1 Yottabyte (ou YB) = 1024 zettabytes = 270 . 210 bytes = 280 bytes

• • • • • • • •

É importante notar que 1 kB não representa mil, mas sim 1024 bytes. Pela mesma razão que se escolheu o sistema binário ao invés do sistema decimal para ser trabalhado no computador, o número 1024 foi o escolhido para representar o “k” da computação: simplificação de hardware. Normalmente, o “k” vale 1000 (1 km = 1000 metros, 1 kg = 1000 gramas). Entretanto, na informática, como são usados múltiplos de bits, o multiplicador “k” vale 1024. A representação binária do número 1024 é muito mais simples que a representação do número 1000 (1000 em decimal = 01111101000 em binário, 1024 em decimal = 10000000000 em binário).

11

Da mesma forma, o multiplicador “M”, que normalmente vale 1.000.000, na computação vale 1.048.576. Somente para efeitos práticos, pode-se dizer que 1 kB é aproximadamente mil bytes. De qualquer forma o uso incorreto dessas medidas pode causar muita confusão. Um exemplo cotidiano ocorre quando o usuário vai comprar um HD. Está escrito na embalagem que sua capacidade é de 80 gigabytes, quando na verdade ele é um pouco menor. Isso ocorre porque os fabricantes entendem 1 gigabyte como 1 bilhão de bytes, quando o correto seria 1.073.741.824 bytes. Essa pequena diferença faz com que o disco rígido tenha uma capacidade aproximadamente 6,87% menor do que a anunciada na embalagem, ou seja, um suposto disco rígido de 80 gigabytes possui na verdade 5,5 gigabytes a menos do que a capacidade anunciada. Os bytes e seus múltiplos são associados à capacidade de armazenamento de dados (exemplo: um disco rígido com capacidade de 20 gigabytes). Já na transmissão de dados entre computadores, geralmente usa-se medições relacionadas a bits e não a bytes (as medidas de fluxo de dados). Assim, um modem 14400 bps, por exemplo, transmite dados a uma velocidade de 14400 bits por segundo. Existem também para essas medidas os múltiplos do bit: • • • 1 Kilobit (ou Kb) = 1024 bits 1 Megabit (ou Mb) = 1024 Kilobits 1 Gigabit ou (Gb) = 1024 Megabits

Notar que quando a medição é feita em bytes, o “B” da sigla é maiúsculo, como ocorre, por exemplo, em gigabytes (GB); quando a medição é feita em bits, o “B” da sigla fica em minúsculo, como em gigabits (Gb).

1.1.4 Periféricos (Dispositivos de Entrada e/ou Saída)
Para permitir a comunicação entre o processador e os demais componentes do computador, assim como entre o computador e o meio externo (entre os computadores e os usuários ou outros computadores), temos os Dispositivos de Entrada e Saída, também chamados de periféricos. O termo “Entrada e Saída” costuma ser abreviado por E/S ou, para quem preferir a língua inglesa, I/O, sigla de Input/Output. Podem ser considerados os “olhos, ouvidos e boca” do processador, pois são todos os componentes acessórios (aparelhos ou placas) que são conectados à placamãe e que enviam ou recebem informações do processador. De acordo com a função que desempenham no processamento dos dados, os periféricos podem ser classificados em: dispositivos de entrada, saída ou de entrada e saída. O estudo dos dispositivos de entrada e/ou saída se baseia em [LVC02], [MOR02], [MICES], [GIAN05], [DIM97], [VIP]

1.1.4.1 Dispositivos de Entrada
Quando um dispositivo recebe um dado e o transmite para a UCP diz-se que se trata de uma operação de entrada de dados (Input). Logo, os dispositivos de entrada são os dispositivos que dão a entrada dos dados, ou seja, eles são os dispositivos que enviam dados ao processador. Os dispositivos de entrada convertem a informação recebida do exterior (pode ser do usuário ou então de outro computador) em dados que possam ser interpretados pelo processador. São exemplos comuns de dispositivos de entrada: o teclado, o mouse, o microfone, o scanner, a webcam (ou câmera digital), o joystick (ou controle de jogo), entre outros. 12

1.1.4.1.1 Teclado
Todos os teclados modernos são derivados do IBM Enhanced Keyboard, lançado nos anos 80. Semelhante ao de uma máquina de escrever, com algumas teclas adicionais necessárias ao computador, o teclado é usado para dar a entrada manual nas informações. Possui pouco mais de 100 teclas, entre letras, números, símbolos especiais e funções, que possibilitam não só a escrita de textos, como também o controle das funções de um computador e seu sistema operacional. Alguns teclados possuem ainda botões para controle de áudio, acesso à Internet e ainda botões para ligar, desligar e ativar o modo de espera do computador. São chamados de “teclado multimídia”, ou “teclados para Internet”.

Figura 1.12. Um teclado comum (à esquerda) e um teclado multimídia (à direita). Imagens retiradas da Internet. Disponíveis em <http://www.dsystem.com.br/principal/default.asp? pasta=produtos_descricao&codigo_produto=168>, e <http://www.guiase.com.br/loja/product_info.php? cPath=41&products_id=63&osCsid=1e590e22d354da936ec4843c34e8cdb8>. Acesso em 22/07/2007. As teclas de um teclado são altamente sensíveis e respondem ao menor toque dos dedos. Elas são ligadas a um chip dentro do teclado que converte a seqüência de impulsos elétricos em sinais digitais e os transfere para o processador. O teclado vem se adaptando com a tecnologia e é um dos periféricos que mais se destacam na computação.

1.1.4.1.2 Mouse
O termo mouse vem da língua inglesa, quer dizer “rato”. É uma alusão feita à sua aparência e movimento. O mouse tem como função movimentar um cursor (que geralmente possui forma de seta) na tela do computador. Ele facilita a interação do usuário com o computador, especialmente em programas com interface gráfica, onde os objetos ou comandos devem ser selecionados sem usar o teclado (escolher as funções desejadas dentro de um programa, fazer gráficos ou desenhos, etc.). O usuário desliza o mouse sobre uma superfície plana e o movimento é reproduzido na tela pelo cursor. A ativação é feita quando ele pressiona um dos botões do mouse, produzindo o que chamamos de “clique”. Existem modelos simples, custando em torno de 10 reais, e modelos sofisticados, chegando a mais de 100 reais. Mesmo os modelos simples são suficientes para o uso normal do computador. Os modelos mais caros apresentam algumas comodidades, como por exemplo, ligação ao computador por raios infravermelhos, dispensando o uso de fios. 13

Figura 1.13. Um mouse comum (à esquerda). Ele movimenta um cursor na tela do computador e permite selecionar comandos na tela (à direita). A imagem do mouse foi retirada da Internet. Disponível em <http://www.orbit.com.br/modules/rmms/prods.php?idp=104>. Acesso em 22/07/2007.

1.1.4.1.3 Microfone
O microfone converte ondas sonoras em dados digitais que o computador é capaz de processar. É utilizado, por exemplo, para gravação de documentos multimídia, em conversas on-line, e para partidas de jogos on-line. Em computadores mais modernos, os microfones são embutidos nos fones de ouvido. Nos modelos mais antigos são separados e ficam em cima da mesa, juntamente com outros dispositivos de entrada e saída.

Figura 1.14. Um microfone. Permite a entrada de dados em forma de sons. Imagem retirada da Internet. Disponível em <http://www.submarino.com.br/software_productdetails.asp? Query=ProductPage&ProdTypeId=10&ProdId=1621148&franq=122432>. Acesso em 22/07/2007.

1.1.4.1.4 Digitalizador (ou scanner)
É um dispositivo de entrada que usa sensores de luz, responsável por digitalizar (capturar) imagens, textos e fotos de qualquer material impresso para o computador, permitindo, com uso de software adequado, a manipulação e o tratamento dessas imagens e dados. 14

Figura 1.15. Um scanner. Imagem retirada da Internet. Disponível em <http://www.pcfloripa.com.br/loja/product_info.php? cPath=52&products_id=475&osCsid=65636f85447a6df0b7b9ef283c52ea5f>. Acesso em 22/07/2007. Uma fotografia em papel, por exemplo, pode ser digitalizada, passando a poder ser exibida na tela, enviada a outras pessoas pela Internet ou duplicada em uma impressora. Além disso, existem programas para scanners que têm um sistema de reconhecimento ótico de caracteres, que permite ao programa reconhecer os caracteres impressos e escritos e transferi-los para o computador na forma de texto, chamado de OCR (sigla de Optical Character Recognition).

1.1.4.1.5 Webcam
É uma câmera de vídeo simples, de baixo custo, que capta imagens, transferindo-as de modo quase instantâneo para o computador. É usada em vários aplicativos, tais como videoconferência, editores de vídeo, editores de imagem, entre outros. Ela é mais usada sobre o monitor, para captar a imagem do rosto do usuário. Geralmente possui baixa qualidade de imagem e não capta sons (embora existam alguns modelos que possuam um microfone embutido).

Figura 1.16. Uma webcam. Geralmente ela é colocada sobre o monitor. Imagem retirada da Internet. Disponível em <http://www.dsystem.com.br/DKD619>. Acesso em 22/07/2007.

15

1.1.4.1.6 Joystick
O joystick desempenha uma função semelhante a do mouse, porém é usado principalmente para melhorar o desempenho do usuário em jogos: ele permite movimentar de forma mais eficiente as imagens dos objetos na tela e acionar efeitos especiais dos jogos (giros, tiros, etc.). Faz lembrar um controle de videogame e tem o mesmo funcionamento deste. Existem joysticks especiais com formato de volante de carro e de manche de avião.

Figura 1.17. Vários tipos de joystick. Da esquerda para a direita: o joystick do videogame Playstation 2, um joystick de computador, um volante e um manche. Imagens retiradas da Internet. Disponíveis em <http://articulo.mercadolibre.com.uy/MLU-4386324-sony-playstation-2-dualshock-2-clase-a-_JM>, <http://www.cybertecnologia.com.br/produtos.php? categoria=perifericos>, <http://www.pcfloripa.com.br/loja/product_info.php? cPath=35&products_id=738&osCsid=d8c895a49243522f8738ee651f94fe49> e <http://www.pcfloripa.com.br/loja/product_info.php? cPath=35&products_id=738&osCsid=cc25b6f73a018da6b57ba64c79305ae9>. Acesso em 22/07/2007.

1.1.4.2 Dispositivos de Saída
Quando um circuito transmite um dado dizemos que se trata de uma operação de saída de dados (Output). Após o processamento dos dados, a UCP precisa enviar uma mensagem para o usuário, precisa dar a saída dos dados processados. Essa tarefa é realizada pelos dispositivos de saída. Entre eles podemos citar o monitor, a impressora, as caixas de som, os fones de ouvido, etc.

1.1.4.2.1 Monitor
Um monitor de vídeo, ou simplesmente monitor, é o dispositivo de saída de dados mais usado. Ele utiliza uma tela semelhante à de TV como meio de permitir a visualização das informações processadas pelo computador de uma forma mais visual e rápida. Existem duas tecnologias de monitores disponíveis, em relação à constituição de suas telas de imagem: CRT e LCD. A maioria dos monitores utiliza a tecnologia CRT (sigla de Cathodic Ray Tube, que significa tubo de raios catódicos, em inglês), a mesma usada nos televisores. Porém, essa tecnologia tem alguns inconvenientes, como o tamanho do tubo de imagem (que implica num tamanho maior do monitor), a perda de qualidade de imagem nas extremidades da tela e a radiação emitida. 16

Figura 1.18. Um monitor CRT (à esquerda) e um monitor LCD (à direita). Imagens retiradas da Internet. Disponíveis em <http://www.fujioka.com.br/product.aspx? idproduct=491&iddept=27&src=DEPT>, <http://www.forumpcs.com.br/viewtopic.php?t=118891>. Acesso em 22/07/2007. A tecnologia LCD (Liquid Cristal Display, tela de cristais líquidos) é mais usada em microcomputadores portáteis (laptops, notebooks, hand-helds, etc) e apresenta vantagens como uma imagem estável, que cansa menos a visão, e não emite radiação. Entretanto, a sensibilidade, o ângulo de visão, a reprodução de cores e o tempo de vida de um LCD ainda podem ser inferiores a diversos monitores CRT. Os monitores LCD ainda são muito caros, mas nos próximos anos tenderão a substituir os monitores convencionais CRT, devido ao seu design mais elegante e menor consumo de energia na maioria dos computadores de mesa. Outro fator importante quando se compara monitores é o tamanho da tela. Em um passado recente, eram comuns os monitores com telas de 14” (lê-se 14 polegadas). Atualmente os modelos de 15” têm preços bastante acessíveis, e estão substituindo os modelos de 14”. Já os modelos de 17” ainda são um pouco caros, mas são indicados para aplicações profissionais.

1.1.4.2.2 Impressora

Figura 1.19. Vários tipos de impressoras. Da esquerda para direita: Uma impressora a jato de tinta, uma impressora a laser (otimizadas para impressão de texto) e uma impressora Plotter (especializada em desenho vetorial). Imagens retiradas da Internet. Disponíveis em <http://www.frontierelectronics.co.za/pri023_hp3920.htm>, <http://produto.mercadolivre.com.br/MLB-56376883-_JM> e <http://www.teletex.com.br/index.asp? site=11&menu=35&submenu=80&nova=179>. Acesso em 22/07/2007.

17

Uma impressora ou dispositivo de impressão serve para registrar a saída dos dados de forma permanente, em papel, imprimindo textos, gráficos, fotos ou qualquer outro resultado de uma aplicação. Herdando a tecnologia das máquinas de escrever, as impressoras sofreram várias mudanças ao longo dos tempos. Também, com o evoluir da informática, as impressoras foram-se especializando, adquirindo as mais diversas funções. Assim, encontram-se impressoras de todos os tipos: especializadas em desenho vetorial (Plotters), em impressão de cupons fiscais e extratos bancários (impressoras térmicas), otimizadas para impressão de texto (impressoras laser), entre outras.

1.1.4.2.3 Caixa de Som / Fone de Ouvido
Ambos servem para dar a saída dos dados em forma de som. São dispositivos que com o passar do tempo têm se sofisticado bastante. Existem atualmente diversos tipos de caixas de som, com 2, 4, 6 ou até 8 canais de áudio. O fone de ouvido apresenta uma vantagem especial sobre a caixa de som em conversas pela Internet: ele torna a conversa mais privada. Inclusive, existem fones de ouvido que já trazem o microfone acoplado, propiciando mais conforto ao usuário, que conversa da mesma forma como se estivesse ao telefone.

Figura 1.20. Da esquerda para a direita: uma caixa de som simples, um fone de ouvido simples e um fone de ouvido com microfone embutido. Imagens retiradas da Internet. Disponíveis em <http://www.shbants.com.br/loja/product_info.php? products_id=315&lvUsid=35a4490175ab7886c233696ace125d64>, <http://www.geekchic.com.br/2006/10/fone_de_ouvido_spmj7ns_da_pion.html > e < http://www.link.estadao.com.br/index.cfm?id_conteudo=5894>. Acesso em 22/07/2007.

1.1.4.3 Dispositivos de Entrada e Saída
São os dispositivos que realizam tanto a entrada quanto a saída dos dados, ou seja, que emitem informações do usuário para o computador e do computador para o usuário, como as placas e unidades de armazenamento.

1.1.4.3.1 Placas de Expansão
O estudo das placas de expansão se baseia em [EMER4], [EMER5], [EMER6], [CLA07], [AISA99], [SOS04], além das fontes já citadas no início do tópico Periféricos. 18

A princípio, as placas de expansão são aquelas que expandem as possibilidades do computador, como o próprio nome sugere. Elas conectam os dispositivos de entrada e saída ao processador. Assim, o monitor é ligado em um conector na placa de vídeo. Quando o processador quer enviar um texto ou uma imagem para ser exibida na tela, ele envia à placa de vídeo. Esta vai processar as informações e enviá-las ao monitor que, finalmente, exibe o conteúdo desejado na tela. Elas são encaixadas nos slots na placa-mãe. Existem, no entanto, placas de expansão que já se tornaram quase indispensáveis para o funcionamento do computador, como a placa de vídeo e a placa de som. Com o passar do tempo, os circuitos dessas placas passaram a ser incorporados na placa-mãe, dispensando o uso dessas placas. Diz-se então que a placa-mãe possui dispositivos onboard (o termo onboard significa “na placa”). A vantagem de se utilizar placas-mãe onboard é a redução de custo do computador, uma vez que se deixa de comprar determinados dispositivos porque estes já estão incluídos na placa-mãe. Por outro lado, o desempenho de placas onboard é geralmente menor, uma vez que o processador acaba tendo que executar tarefas que até então eram destinadas aos dispositivos em questão. Placa de Vídeo É uma placa responsável por gerar as imagens que aparecem na tela do monitor. Normalmente possui memória e processador próprios, liberando assim o processador do trabalho relacionado com a produção de imagens. Existem placas de vídeo com diferentes graus de sofisticação. As placas de vídeo modernas são inclusive capazes de gerar imagens tridimensionais e algumas têm saída de vídeo para televisão.

Figura 1.21. Uma placa de vídeo com aceleração 3D. O conector azul é onde é conectado o monitor. Imagem retirada da Internet. Disponível em <http://www.pcfloripa.com.br/loja/product_info.php? manufacturers_id=23&products_id=585&osCsid=b04529d0e67843fcb80f258634 7e8b1d>. Acesso em 04/07/2007. Em muitos computadores de baixo custo, os circuitos de vídeo estão incorporados na placa-mãe, dispensando o uso de uma placa de vídeo. Diz-se então que a placa-mãe possui "vídeo onboard". Normalmente as placas de vídeo avulsas apresentam desempenho maior que o oferecido pelo vídeo onboard, pois o mesmo não possui memória própria, e por isso utiliza um espaço da memória RAM (inclusive, um espaço significativo) que deveria ser utilizado pelo sistema, tornando o computador mais lento. 19

Se o desempenho gráfico não for muito importante e o custo baixo for uma necessidade, o vídeo onboard é a melhor opção. Os PCs destinados a aplicações simples, como edição de texto e acesso à Internet, podem funcionar bem com circuitos de vídeo de baixo desempenho, sem comprometer a sua funcionalidade. Se o desempenho gráfico for uma necessidade, a exemplo de um computador que vai ser usado para aplicações gráficas profissionais, jogos ou qualquer tipo de programa que gere imagens complexas, é preciso usar uma placa de vídeo avulsa. Placa de Som É uma placa de circuito capaz de gerar e captar diversos tipos de sons, tornando possível assim a saída (através de caixas de som, fones de ouvido, headphones ou outros meios) e a entrada (microfone e outros) de áudio no computador. São inúmeras as suas aplicações: graças a ela podemos ouvir música pelo computador, ter jogos sonorizados, gravar nossa voz para reproduzir posteriormente, comandar um computador através de voz, ouvir e transmitir sons através da Internet. Todos os computadores atuais utilizam sons, portanto a placa de som é indispensável para que se tenha um mínimo de qualidade no som emitido e também para gravação e edição de áudio.

Figura 1.22. Uma placa de som com suporte para 2, 4 e até 6 canais de áudio. A função dos conectores varia de acordo com o número de canais utilizado. Imagem retirada da Internet. Disponível em <http://www.clone.com.br/db/detalhes_prod.asp?detalhe=15043>. Acesso em 22/07/2007. O mais comum é se utilizar alto-falantes estéreo com 2 canais. Portanto, os conectores mais usados nas placas de som a entrada de linha (conector azul, também chamado de Line IN, que recebe som de outros aparelhos, como TV, vídeo cassete e aparelhos de som), microfone (rosa), alto-falantes (verde). O conector de joystick (o maior) é opcional e não aparece em todas as placas. Existem muitas placas-mãe com “som onboard”, ou seja, circuitos de som embutidos na própria placa mãe, que dispensam o uso de uma placa de som avulsa. Hoje é até difícil encontrar uma placa-mãe nova que não tenha um circuito de som onboard. Os circuitos de som onboard têm desempenhos aceitáveis, mesmo nas placas de menor custo. Cabe ao usuário decidir se quer ou não comprar uma placa de som adicional.

20

Placa de Rede Permite que várias máquinas trabalhem interligadas, trocando dados entre si, através de um cabo apropriado, formando assim uma rede local de computadores, também chamada de LAN (sigla de Local Area Network). É muito útil interligar vários computadores próximos, principalmente em empresas ou escritórios. Desta forma os computadores podem trocar dados entre si e compartilhar recursos. Por exemplo, uma impressora cara pode ser compartilhada entre vários computadores, o que a torna economicamente viável. Para permitir a formação de redes, os computadores precisam ter uma placa de rede, que vai controlar todo o envio e recebimento de dados através da rede.

Figura 1.23. Uma placa de rede. As mais comuns apresentam somente um conector, que recebe o cabo de rede. Imagem retirada da Internet. Disponível em <http://www.viabrasil.net/index.asp? secao=6&categoria=86&subcategoria=0&id=306>. Acesso em 22/07/2007. Placa de Fax/Modem O modem permite ao computador transmitir e receber informações para outros computadores, através de uma linha telefônica ou cabo de fibra óptica. São muito usados para acessar à Internet, a rede mundial de computadores, através de linhas telefônicas, permitindo a comunicação com computadores distantes.

Figura 1.24. Uma placa de fax/modem (à esquerda) e um modem externo (à direita). As placas de fax/modem geralmente possuem, além da entrada para linha telefônica, uma saída para o telefone. Existem modems externos tanto para acesso discado quanto para acesso banda larga. Imagens retiradas do livro Hardware Total (esquerda) e da Internet (direita). Disponível em <http://produto.mercadolivre.com.br/MLB-50797750-modemadsl-d-link-500g-roteador-o-f-e-r-t-a--_JM>. Acesso em 22/07/2007.

21

A palavra modem é a junção da abreviatura de "modulator" com "demodulator", ou codificador e decodificador. O modem converte as mensagens emitidas do sinal digital (linguagem do computador), transformando-as em sinais analógicos, que podem ser transportados por um sistema de telecomunicação. Na chegada, outro modem converte os sinais analógicos, da linha telefônica, em digitais, fazendo-os retornar à sua forma original, que pode ser entendida pelo computador que os recebe. Os primeiros modems eram aparelhos externos. Hoje é mais comum encontrar os modems internos, que são na verdade placas de fax/modem, que são usadas para acesso discado. O prefixo Fax se deve ao fato de que muitos dos modems também servem para transmitir e receber fax através do computador. Ainda podemos encontrar modems externos atualmente, como os usados para acesso em banda larga. Eles diferem dos modems para acesso discado porque não precisam converter o sinal de digital para analógico e de analógico para digital, porque o sinal é transmitido sempre em digital, permitindo uma transmissão de dados mais rápida. Placa de Captura É uma placa opcional, que serve para assistir e gravar programas da TV no computador ou capturar imagens de outro dispositivo externo, como uma câmera filmadora, um vídeo cassete, etc. Depois de importado o vídeo para o computador, ele pode ser editado com um programa especial e ganhar várias aplicações, assim como a imagem digitalizada pelo scanner. Essa placa permite, por exemplo, passar vídeos de uma fita VHS para um disco de DVD.

Figura 1.25. Uma placa de captura. Imagem retirada da Internet. Disponível em <http://www.etronics.com.br/detalhes.asp?codpro=802>. Acesso em 22/07/2007.

1.1.4.3.2 Unidades de Armazenamento
O estudo das unidades de armazenamento se baseia em [DIM97], [GIAN2], [GAB97], [EMER7], [EMER8], [EMER9], [EMER10], [EMER11], [MICHD], [ALEX04], [WAL98], [ROD06], [EST06] e [IOM], além das fontes já citadas no início do tópico Periféricos. A memória principal armazena os dados resultantes de um processamento (textos, planilhas, bancos de dados, desenhos, etc.) de forma temporária, pois se trata de uma memória volátil. Para guardá-los para uma eventual consulta posterior, devese recorrer a uma unidade de armazenamento que possa guardar esses dados de forma permanente em um disco, formando um arquivo. (mais detalhes sobre arquivos serão vistos mais adiante, na parte de Software). 22

Há vários tipos de unidades de armazenamento: discos rígidos, disquetes, discos óticos (CDs e DVDs), ZIP Drives, Pen Drives e outros. Existem, portanto, diferentes métodos de armazenamento, cada um com suas próprias características. Eles diferem em relação à velocidade de leitura e gravação, portabilidade, capacidade de armazenamento, durabilidade e custo. “Essas diferenças fazem com que cada dispositivo tenha uma indicação de uso. Assim, um disquete é barato e pode ser levado a qualquer lugar, mas não possui grande capacidade de armazenamento. Por outro lado, um disco rígido (ou "winchester") pode guardar uma grande quantidade de informações, mas, por ficar conectado ao computador, perde em portabilidade. Estão começando a aparecer no mercado alternativas para facilitar o transporte de maior volume em discos, a custo mais acessível.” Agora serão vistos os principais dispositivos de armazenamento de dados. Disquetes (Discos Flexíveis) Das principais formas de armazenamento que se encontram atualmente em uso, o disquete, após o disco rígido, é a mais antiga. Também conhecido por floppy disk ou disco flexível, o disquete funciona como uma unidade de armazenamento externa. Praticamente todos os computadores possuem uma unidade de disquete fixa no gabinete, na qual os disquetes são inseridos, e são lidos por uma cabeça (ou cabeçote) que realiza tanto a leitura quanto a gravação de dados.

Figura 1.26. Um disquete e sua unidade de leitura. Imagens retiradas da Internet. Disponíveis em <http://www.misalgoritmos.com/documento25.html> e <http://www.saturtec.com.br/product_info.php? products_id=351&PHPSESSID=e97493fc61a4874c106e48ff32b7ce0e>. Acesso em 22/07/2007. Apesar de serem considerados obsoletos em meio à tecnologia atual, os disquetes ainda são muito usados devido ao seu preço e pequeno tamanho. Eles também têm a vantagem de ser removíveis e transportáveis, ou seja, o usuário pode removê-los a qualquer momento da máquina e transportar suas informações para outros computadores ou tê-las como cópia de segurança (backup). Sua principal desvantagem com relação às outras mídias é a capacidade de armazenamento. Ela é muito pequena (situa-se abaixo dos 2 MB, normalmente 1.44 MB nos disquetes mais novos) e, portanto, não permite realizar o transporte ou o backup de uma grande quantidade de dados. Outros dos inconvenientes dos disquetes são a sua flexibilidade (que oferece o risco de perda de informações gravadas no disco, caso ele seja amassado) e sua velocidade de acesso lenta. 23

Discos Rígidos (Hard Disks ou HDs) Em contraposição ao disquete (disco flexível), o disco rígido ou HD (do inglês Hard Disk) é feito de um material mais resistente, geralmente vidro ou de alumínio. Nele se encontra a maior parte da memória secundária de um computador. O disco rígido não é visível nem transportável como o disquete, pois é instalado dentro do gabinete. Em contrapartida, ele permite um acesso mais rápido às informações, possui uma grande capacidade de armazenamento (atualmente varia de dezenas até centenas de gigabytes) e pode ser regravado inúmeras vezes, sendo por isso o dispositivo de armazenamento mais usado nos computadores, destinado a armazenar tanto os arquivos do usuário e do sistema operacional como também os programas enquanto eles não estiverem sendo utilizados pelo processador.

Figura 1.27. O que se pensa ser o disco rígido (à esquerda) na verdade é uma "caixa", dentro da qual está protegido o disco rígido (à direita). Ela é rigorosamente fechada, a fim de impedir que qualquer partícula de poeira proveniente do meio externo entre em contato com os discos, já que estes são bastante sensíveis. Assim, um disco rígido nunca deve ser aberto sem o uso de equipamentos apropriados. Se uma pessoa abrir um disco rígido sem o uso dos devidos equipamentos, certamente ele já estará inutilizável. Imagem retirada da Internet. Disponível em <http://www.atera.com.br/dispprod.asp?COD=HD160JJ>. Acesso em 22/07/2007. Os discos rígidos são considerados bem mais rápidos que os demais periféricos e, juntamente do processador e da memória RAM, influenciam diretamente o desempenho do computador, pois seu desempenho determina o tempo gasto nas operações de transferência dos programas e arquivos para a memória, para poderem ser utilizados posteriormente pelo processador. Discos Óticos (Unidades de CD/DVD) Assim como os disquetes, os discos óticos são tidos como unidades de armazenamento externas e são muito usados devido ao seu preço e pequeno tamanho, mas apresentam outras vantagens, como a durabilidade e fidelidade dos dados, uma maior capacidade de armazenamento e podem ser utilizados tanto para leitura como para gravação de informações, dependendo do disco e da unidade em questão permitirem ou não operações de gravação (em outras palavras, se o usuário possui uma mídia que possa ser gravada e uma unidade que possa fazer isto). Além disso, os discos óticos possuem outra vantagem em relação aos discos magnéticos em geral: para a manipulação dos dados é utilizado um feixe de raio laser ao invés de uma cabeça. Como o dispositivo que faz as operações de leitura e 24

gravação (nesse caso, o laser) não fica muito próximo da superfície do disco, não há o risco dele tocar a superfície do disco causando danos ao mesmo. Os CDs (sigla de Compact Discs) foram desenvolvidos em conjunto pelas empresas Sony e Philips no início da década de 80 com o objetivo de substituir os antiquados discos de vinil e fitas cassete como mídia para armazenamento de música. No entanto, devido a sua grande capacidade de armazenamento (80 minutos de música ou 700 MB, uma capacidade equivalente à de mais de 400 disquetes) acabaram sendo usados também para gravar dados. Surge então o CD-ROM (Compact Disc - Read Only Memory ou Disco Compacto Somente para Leitura, em português) para armazenamento de dados. Na informática, ele ganhou várias utilidades, como por exemplo, armazenar programas, jogos, enciclopédias, livros, backups, etc. Assim como as unidades de disquete, os leitores de CD-ROM (que também reproduzem os CDs de música) são instalados no gabinete e parafusados. Rapidamente eles se tornaram indispensáveis em qualquer computador.

Figura 1.28. Da esquerda para a direita: o logo do CD, um CD-ROM e sua unidade de leitura. Imagens retiradas da Internet. Disponíveis em <http://www.orchardcottagestudio.co.uk/downloads.asp>, <http://julianfranklin.com/products1.htm> e <http://www.xmodding.com.br/advanced_search_result.php? osCsid=06aaf2d19b3981aa8aca95f091d3ca7e&keywords=CD+ROM+DRIVE&cat egories_id=&inc_subcat=1&manufacturers_id=&pfrom=&pto=&dfrom=&dto=&x =0&y=0>. Acesso em 22/07/2007. Um CD-ROM, no entanto, como o próprio nome sugere, não permite gravar dados. Esse disco é apenas para leitura, seus dados já vêm gravados pelo fabricante e, uma vez gravados, não permitem a regravação de informações. Existem outros tipos de CDs que permitem gravações, tanto de dados quanto de música, mas que necessitam de um drive próprio para isso. São eles: os discos virgens (CD-R, Compact Disc Recordable ou Disco Compacto Gravável) e os discos regraváveis (CDRW, Compact Disc Rewritable, Disco Compacto Regravável). As unidades de CD-RW, naturalmente, substituíram as unidades de CD-ROM. O que se observa atualmente, entretanto, é que, com os custos cada vez menores dos gravadores e mídias, as unidades de CD-RW estão sendo substituídas pelas unidades de DVD, que podem, além de utilizar qualquer tipo de CD, acessar também discos DVD. E já existem também drives que lêem CD-ROM, gravam CD-R e CD-RW e reproduzem DVD, mais conhecidos como drives combo. As principais diferenças entre esses tipos de CD são apresentadas na tabela a seguir.

25

Disco

Informações sobre o disco

Capacidade

Compatibilidade Todos os drives de leitura de CD.

CD-ROM Conhecido como disco somente para 650 MB leitura é o formato utilizado por programas vendidos comercialmente. Não pode ter seu conteúdo alterado. CD-R

Pode ser gravado uma única vez. 650 e 700 MB Maioria dos Pode ter várias sessões, permitindo gravadores de utilizar parte do disco e gravar outro CD. conteúdo depois, porém não pode ter seu conteúdo apagado. Pode ser gravado e apagado várias vezes. 650 e 700 MB Maioria dos gravadores de CD.

CD-RW

Tabela 1.1. Principais diferenças entre as mídias de CD. Tabela retirada da Internet. Disponível em < http://superdownloads.uol.com.br/materias/dvd-rw-dvdrw-dvdxrw/286,1.html>. Acesso em 13/09/2007

Figura 1.29. Um CD-RW (à esquerda) e uma unidade de CD-RW (à direita). Imagens retiradas da Internet. Disponíveis em <http://www.pcfloripa.com.br/loja/product_info.php?products_id=808> e <http://www.superkitb2b.com.br/v02/produto.aspx? Prod=4404&Fab=161&Fam=301&Sub=526>. Acesso em 22/07/2007. O DVD (sigla de Digital Video Disc) surgiu em meados da década de 90, mas, assim como o CD, não surgiu com a intenção de ser uma mídia para armazenamento de dados. Seus fabricantes (um grupo de grandes empresas – entre elas a Toshiba, Sony, Pioneer, Philips e Panasonic – liderado pela Warner Bros) o projetaram para que ele substituísse as fitas VHS em aplicações multimídia. Ele só começou a ser usado para armazenar dados depois, com o surgimento do DVD-ROM que, assim como o CD-ROM, já vem com seu conteúdo gravado de fábrica. Com mais essa utilidade (armazenar dados), o DVD passou então a ser chamado de Digital Versatile Disc (Disco Versátil Digital). Assim como o CD, o DVD é um disco ótico cujas operações de leitura e gravação são feitas por um laser dentro de uma unidade de leitura e/ou gravação. A grande diferença entre o CD e o DVD é a capacidade de armazenamento. Os DVDs mais simples são capazes de armazenar até 4,7 GB de dados (que equivale a um filme de 2 horas com áudio digital).

26

Figura 1.30. Da esquerda para a direita: o logo do DVD, um DVD-ROM e sua unidade de leitura. Imagens retiradas da Internet. Disponíveis em <http://www.artmosfera.com.br/dvd-video.html>, <http://pt.wikipedia.org/wiki/DVD> e <http://www.pixmania.com/pt/pt/316097/art/samsung/leitor-dvd-16x-sh-d162cb.html>. Acesso em 22/07/2007. Outra semelhança entre os CDs e os DVDs é que estes também possuem mídias graváveis. São elas: o DVD-R, que permite somente uma gravação e pode ser usado para gravar filmes ou dados, e o DVD-RW, que pode ser usado da mesma forma que o DVD-R, mas permite ser regravado.

Disco DVDROM

Informações sobre o disco

Capacidade

Compatibilidade Todos os drives de DVD. Maioria dos gravadores de DVD. Maioria dos gravadores de DVD.

Mesma coisa que o CD-ROM, porém 4,7 GB necessita hardware diferente e possui uma capacidade muito maior. 4,7 GB

DVD-R e Similar ao CD-R, porém com DVD+R capacidade superior. DVD-RW Similar ao CD-RW, porém com e capacidade superior. DVD+R W DVDRAM

4,7 GB

Pode ser gravado e apagado diversas 2.6, 4.7, 5.2 e Necessita leitor e vezes. Pode ter apenas alguns 9.4 GB gravador arquivos apagados e o espaço especializado. liberado será utilizado para novos arquivos. Num modo bem básico, se assemelha ao HD.

Tabela 1.2. Principais diferenças entre as mídias de DVD. Tabela retirada da Internet. Disponível em < http://superdownloads.uol.com.br/materias/dvd-rw-dvdrw-dvdxrw/286,1.html>. Acesso em 13/09/2007 ZIP Disks Os ZIP Disks são unidades de armazenamento externas produzidas pela Iomega desde 1995. Eles têm aproximadamente o tamanho de um disquete de 3½”, 27

possuem uma unidade de leitura e gravação e são mídias removíveis, assim como os disquetes. No entanto, sua capacidade de armazenamento é muito maior: eles foram introduzidos no mercado com uma capacidade de 100 megabytes (o equivalente a 70 disquetes). Atualmente existem também ZIP Disks de 250 MB e de 750 MB. Outra vantagem do ZIP Disk em cima do disquete é que existem modelos de sua unidade de leitura (também chamada ZIP Drive) tanto internos, instalados no interior do gabinete, quanto externos. Além disso, os ZIP Disks também são muito mais rápidos (em termos de velocidades eles só não competem com os discos rígidos) e apresentam um custo benefício bem maior. No entanto, seu custo atualmente já é considerado alto, uma vez que as mídias de CD e DVD graváveis estão bem mais acessíveis.

Figura 1.31. Um ZIP Disk (à esquerda) e um sua unidade de leitura (à direita). Imagens retiradas da Internet (direita) e do livro Hardware Total (esquerda). Disponível em <http://www.pc-prima.dyndns.org/catalog/product_info.php? cPath=3917_3932&products_id=250404&osCsid=10d9824b043c7777922fdad7f3 eb230f>. Acesso em 22/07/2007. Pen Drives Os Pen Drives, também conhecidos por USB Flash Drives, são discos removíveis conectados a porta USB de um computador. Eles foram criados nos laboratórios da IBM em 1998, como uma alternativa aos leitores de disquete. Sua principal vantagem é a facilidade que eles oferecem no transporte de dados. Eles são pequenos, do tamanho de um chaveiro ou isqueiro, e possuem um chip de memória interna com grande capacidade de armazenamento. Uma vez encaixados na porta USB, são reconhecidos pelo computador como uma nova unidade de armazenamento pronta para ser utilizada. Portanto, apresentam outra vantagem com relação às demais mídias, que é a ausência de uma unidade de leitura e gravação. Outras características que tornam os pen drives excelentes meios de transportar dados são: preço acessível, durabilidade, altas velocidades de leitura e gravação, confiabilidade dos dados, grande capacidade de armazenamento e possibilidade de serem apagados e regravados inúmeras vezes. Por isso, são usados por muitas pessoas como um “HD externo”, onde elas guardam seus arquivos pessoais e os transportam consigo, tendo em mãos seus arquivos a qualquer hora que precisarem em qualquer computador que estejam utilizando. Os modelos de pen drives mais comuns no mercado possuem capacidades de 128 MB, 256 MB, 512 MB e 1 GB. Existe também modelos de pen drives um pouco mais caros que podem reproduzir música em formato MP3, sintonizar rádio FM e gravar voz. São chamados de MP3 Player e são muito populares atualmente. 28

Figura 1.32. Um MP3 Player. Funciona também como Pen Drive. Imagem retirada da Internet. Disponível em <http://produto.mercadolivre.com.br/MLB-58323139-promoco-mp3-player512mb-gravvoz-fmpen-drive-no-brasil-_JM>. Acesso em 22/07/2007.

1.1.5 Interfaces
O texto a seguir é retirado de [LVC02]. “Interfaces são circuitos capazes de controlar dispositivos de hardware. O processador não consegue enviar dados diretamente para uma impressora, para o vídeo, para um disco rígido, nem consegue receber dados diretamente do teclado, do mouse ou de um disquete, por exemplo. Ele precisa contar com a ajuda das interfaces, que são circuitos que fazem este trabalho. Cada interface é especializada no tipo de dispositivo que controla. Não poderíamos, por exemplo, usar uma interface de vídeo para enviar dados para uma impressora, nem receber caracteres de um teclado através de uma interface de mouse. Algumas interfaces ficam embutidas na placa de UCP. Outras ficam embutidas em outras placas. Certas placas possuem uma única interface (ex: placa de video), outras podem possuir duas ou mais interfaces (por exemplo, as placas de som, além de todas as suas entradas e saídas sonoras, possui uma interface para joystick). Interfaces que controlam dispositivos externos possuem conectores na parte traseira do computador, para a ligação desses dispositivos. São os casos das interfaces de teclado, mouse, impressora, vídeo, joystick, alto falantes, microfone, USB, etc. Outras interfaces controlam dispositivos internos, e por isso seus conectores não ficam à vista, e sim localizados na parte interna do computador. São os casos das interfaces para drives de disquetes, disco rígido e drive de CD-ROM, por exemplo. Há muitos anos atrás, a maioria das interfaces não ficava na placa de UCP, e sim em placas de expansão. Vários motivos levaram os fabricantes a transferi-las para a placa de UCP. Redução de custos e aumento de desempenho são as principais. Uma interface IDE localizada na placa de UCP, por exemplo, tem condições de transferir dados mais rapidamente que uma interface equivalente porém localizada em uma placa de expansão. Outra questão é a simplicidade. Interfaces seriais, paralelas e a interface para drives existentes nos PCs atuais não são muito diferentes das existentes nos PCs de 10 anos atrás. Com a miniaturização dos componentes eletrônicos, tornou-se bastante viável fazê-las em pequeno tamanho, todas dentro de um único e minúsculo chip, dispensando assim o uso de uma placa de expansão.”

29

1.1.6 Barramentos
Um barramento (bus, no inglês) é um conjunto de linhas de comunicação através das quais o processador pode comunicar-se com o seu exterior, ou seja, com os demais componentes do micro, como a memória, a placa-mãe e outros periféricos. O texto que se segue é baseado em [MON01]. Um exemplo de barramento pode ser um cabo de ligação entre um periférico e um processador, constituído de diversos fios paralelos bem próximos uns dos outros, cada um conduzindo um bit da informação que está sendo transferida. Um dos aspectos fundamentais de um barramento é sua capacidade de compartilhamento pelos diversos componentes interconectados. Para entender o seu funcionamento, é preciso enfatizar esse aspecto de compartilhamento, ou seja, como um barramento interliga diversos componentes. Em um barramento que interliga CPU, memória e periféricos, por exemplo, vê-se que todos esses elementos compartilham o mesmo caminho e, por essa razão, somente um conjunto de bits pode passar de cada vez, senão haverá colisão entre os sinais elétricos e o resultado será ininteligível, qualquer que seja o destinatário. A programação e sincronização desse processo é crucial para o correto funcionamento do sistema. Em outras palavras, se a memória principal está enviando dados para a memória secundária (componente de E/S, como um disco magnético, por exemplo), os demais componentes têm que esperar a liberação do barramento para utilizá-lo. As diferentes características entre os diversos componentes, principalmente periféricos (a velocidade de uma transferência de dados de um teclado é muitas vezes menor que a velocidade de transferência de dados de um disco magnético), levaram os projetistas de computadores a criarem diversos tipos de barramento, cada um com taxas de transferência de bits diferentes e apropriadas às velocidades dos componentes interconectados. Atualmente os computadores possuem três diferentes tipos de barramento: 1. Barramento local – é o barramento de maior velocidade de transferência de dados, funcionando normalmente na mesma freqüência do processador. Este barramento costuma interligar o processador aos dispositivos de maior velocidade (para não atrasar as operações do processador), que são a memória cache e a memória principal. 2. Barramento do sistema – alguns fabricantes adotam o modelo em que o barramento local interliga o processador à memória cache e esta se interliga aos módulos de memória principal (RAM) por outro barramento denominado barramento do sistema, de modo a não permitir acesso do processador diretamente à memória principal. Uma interface de controle sincroniza o acesso entre as memórias. 3. Barramento de expansão – onde se interligam os diversos dispositivos de E/S, como discos magnéticos, vídeos, impressoras, DVDs, CD-ROMs, etc. Este barramento se conecta ao barramento do sistema por interfaces de controle (costumam ser conhecidas como pontes ou bridges), que sincronizam as diferentes velocidades dos barramentos. Devido às diferentes e acentuadas velocidades de funcionamento dos dispositivos atuais de E/S, os fabricantes de sistemas de computação têm criado alternativas para aumentar o desempenho nas transferências de dados, separando o barramento de expansão em dois, um de mais alta velocidade, para dispositivos de E/S rápidos (máquinas SCSI, redes, placas gráficas), e outro de menor velocidade para os modems e dispositivos seriais, como o teclado e mouse.

30

Figura 1.33. Modelo aperfeiçoado de barramento (mais recente e de maior desempenho). Imagem retirada do livro Introdução à Organização de Computadores. Esta característica de compartilhamento do barramento (um caminho para vários usuários) também implica a necessidade de definição de regras bem explícitas de acesso ao barramento por um usuário (quando acessar, como acessar, como terminar) e de comunicação entre eles (como interrogar um componente destinatário, que resposta deve ser enviada, quanto dura a comunicação, etc.). Estas regras costumam ser denominadas protocolos, sendo, no caso, protocolos do barramento, os quais são usualmente implementados através de sinais de controle e exata sincronização entre eles. Assim, o barramento não se constitui tão-somente na fiação já mencionada, mas também na unidade de controle do barramento, que administra o acesso e as transferências (implementação do protocolo adotado). Para evitar que cada fabricante de UCP crie seu próprio protocolo de barramento com características diferentes dos demais (e, com isso, componentes fabricados por terceiros tenham dificuldade de se conectar à UCP), os próprios fabricantes têm procurado criar uma padronização na definição de protocolos (embora o sucesso total ainda esteja longe – um só padrão em todo o mercado). Ao longo do tempo vários protocolos de barramento de expansão têm sido definidos; alguns tiveram pouca aceitação, outros não, alguns são proprietários (são definidos por uma única empresa que cobra royalties pelo seu licenciamento de uso) e outros não. Entre os mais conhecidos tem-se: • ISA – Industry Standard Adapter (definido pela IBM para o PC-AT e adotado por toda a indústria). Apesar de possuir uma taxa de transferência baixa, tem ainda sido adotado para os barramentos de periféricos de baixa velocidade. Os sistemas atuais costumam empregar algumas portas para periféricos com O modelo ISA. 31

PCI – Peripheral Component Interconnect — desenvolvido pela Intel, tornando-se quase um padrão para todo o mercado, como barramento de E/S de alta velocidade. Permite transferência de dados em 32 e 64 bits a velocidades de 33 MHz e de 66 MHz, no máximo. Interconecta-se ao barramento local e a outro barramento, tipo ISA, através de um circuito para compatibilizar as diferentes características entre eles. Estes circuitos chamam-se pontes (bridges). USB – Universal Serial Bus – tem a particular função de permitir a conexão de muitos periféricos simultaneamente (pode-se conectar até 127 dispositivos em um barramento USB) ao barramento e este, por uma única tomada, se conecta à placa-mãe. AGP – Accelerated Graphics Port – barramento desenvolvido por vários fabricantes, porém liderados pela Intel, com o propósito de acelerar as transferências de dados do vídeo para a memória, especialmente dados para 3D. Trata-se, pois, de um barramento específico (para vídeo), não genérico, porém de alta velocidade de transferência por ligar vídeo diretamente à memória principal.

1.1.6.1 Outra classificação para os barramentos
Apesar de esta classificação não ser mais usada, para fins de estudo pode-se dividir os vários barramentos existentes dentro de um computador em grupos, de acordo com o conteúdo que trafega por suas vias:

• • •

Barramento de dados: por onde trafegam dados (pode ser um número, uma instrução para a UCP, um dado para ser armazenado na memória, etc.); Barramento de endereços: por onde trafegam os endereços (um "endereço" é a localização de um dado no computador. Pode indicar uma posição de memória ou um dispositivo para o qual o processador enviará um dado); Barramento de controle: por onde trafegam sinais de controle emitidos pela UCP, que sincronizam o funcionamento dos dois barramentos anteriores. Mais informações esses barramentos serão vistas nos próximos capítulos.

1.1.7 Outros Componentes
Além de todos componentes já apresentados, há outros que, apesar de serem considerados parte física do computador, e por isso serem chamados de hardware, não se enquadram em nenhuma das outras categorias de hardware, ou seja, eles não são processador, nem memória, nem placa-mãe, nem dispositivos de entrada e saída. Portanto, eles não participam do processamento dos dados, que é a essência do funcionamento do computador. Mesmo assim, eles são indispensáveis para que o processamento dos dados aconteça e que o computador se mantenha em perfeito estado. São eles o gabinete, a fonte de alimentação, o cooler e o estabilizador de voltagem. Este último pode ser também um nobreak ou um filtro de linha e, apesar de ser um componente opcional do computador, ajuda a aumentar o seu desempenho.

1.1.7.1 Gabinete [LVC02], [MOR02], [MICGAB]
O gabinete é a caixa metálica que acomoda e protege os componentes internos do computador, como placa-mãe, processador, placas de expansão, disco rígido, unidades de disquete, CD, DVD, etc.

32

Figura 1.34. Um gabinete por dentro e por fora. Imagem retirada da Internet. Disponível em <http://www.servicioalpc.com/fotos.htm>. Acesso em 13/07/2007. Além disso, o gabinete possui mais uma função: ele deve garantir uma melhor ventilação interna. Existem gabinetes de vários tamanhos no mercado, mas o ideal é que na hora da compra a pessoa opte por um gabinete que seja grande. O tamanho do gabinete é medido pelo seu número de baias (espaços destinados ao encaixe das unidades de CD e DVD), localizadas na parte frontal do gabinete. Um gabinete considerado grande possui três ou quatro baias. Um gabinete grande torna mais fácil a montagem do computador, “permite a instalação de vários drives, e também suporta os processadores mais velozes. Um processador muito veloz normalmente esquenta muito, e um gabinete maior acaba contribuindo para a redução da temperatura do processador, já que fornece uma melhor ventilação. Gabinetes pequenos são indicados para PCs mais simples.” Quanto ao tipo, o gabinete pode ser do tipo desktop (“em cima da mesa”, em português. Logo, esse termo caracteriza um computador de mesa, que usa um gabinete “deitado”, na horizontal, semelhante a um videocassete), torre ou mini-torre (gabinetes que ficam “em pés”, na vertical). Esse último tipo é o mais comum e mais barato e em geral possui apenas duas baias. Os gabinetes desktop geralmente possuem uma ou duas baias, semelhante aos gabinetes mini-torre.

Figura 1.35. Um gabinete mini-torre (à esquerda) e outro desktop (à direita). Imagens retiradas da Internet. Disponíveis em <http://www.cymhardware.com/shop/index.php? page=shop.browse&category_id=71&option=com_virtuemart&Itemid=26> e <http://www.deremate.com.ar/accdb/ViewItem.asp?IDI=13696183>. Acesso em 13/07/2007.

33

1.1.7.2 Fonte de Alimentação [LVC02], [MOR02]
Todo aparelho eletrônico possui uma fonte de alimentação, e o mesmo se aplica a computadores. Localizada dentro do gabinete do computador, a fonte de alimentação recebe a energia da rede elétrica (que vem na tensão de 110 ou 220, volts em corrente alternada) e gera as tensões em corrente contínua para alimentar todos os componentes do computador. Assim, “a fonte também serve para atenuar pequenas variações de tensão, protegendo o equipamento.”

Figura 1.36. Uma fonte de alimentação. Imagem retirada do livro Hardware Total. “Os gabinetes são normalmente vendidos junto com a fonte de alimentação. A fonte já é fixa ao gabinete, e possui diversas conexões para alimentar a placa de UCP, drives e demais dispositivos”. Já as placas de expansão não são ligadas à fonte, recebem energia indiretamente, por meio da placa-mãe. Raramente elas precisam de um alimentador exclusivo. Outra característica importante da fonte de alimentação é a sua potência, medida em Watts. Ela deve ser adequada à capacidade dos componentes que se pretende instalar no computador. “São comuns no mercado fontes de 200, 250, 300 e 350 watts”. Quanto mais componentes se deseja instalar, e quanto mais recursos eles tiverem (por exemplo, processador veloz, placa de vídeo 3D) uma fonte de alimentação de maior potência será necessária.

1.1.7.3 Cooler [LVC02], [GAB01], [MOR02]
“Antigamente o processador e os demais componentes do micro não geravam tanto calor e, portanto, não havia uma preocupação específica com a ventilação do micro. As fontes de alimentação já vinham com uma ventoinha (um mini ventilador), que era suficiente para ventilar corretamente o interior do micro. Os processadores atuais geram muito calor, com isso é importante detalhes envolvendo a sua refrigeração, de forma que você tenha o seu PC funcionando corretamente. Os processadores passaram a necessitar de um dissipador de calor com uma ventoinha acoplada instalada sobre eles, já que os processadores começaram a gerar muito calor. Se o calor do processador não for dissipado, pode até mesmo se queimar (seus minúsculos circuitos se derretem internamente). Além disso, atualmente não é só o processador que é uma grande fonte de calor no micro, Praticamente todos os componentes internos do micro – em especial o chipset da placa-mãe, o processador da placa de vídeo e o disco rígido – geram bastante calor, fazendo com que um cuidado especial com a ventilação interna do 34

micro seja necessária, de forma que o ar quente que é gerado dentro do PC consiga sair, e o ar frio de fora do micro consiga entrar.” Como foi visto, com a expansão da capacidade dos novos processadores e de outros componentes do computador, o gabinete ganhou uma nova função que é a de dissipar o calor gerado no seu interior, evitando assim super aquecimento e prolongando a vida útil do equipamento. Um dos cuidados a serem tomados para aumentar a eficiência da refrigeração interna é a escolha de um gabinete grande. Outro cuidado é equipar os circuitos que esquentam mais com coolers (refrigeradores, em inglês), que nada mais são que pequenos ventiladores (também chamados de FAN, que significa ventilador em inglês, ou de CPU FAN, no caso do ventilador que fica sobre o processador) com um dissipador de calor acoplado (uma peça que transfere o calor de um circuito para o meio externo). Quanto menor for a temperatura na qual o processador se mantém, maior será a vida útil do mesmo. “O cooler instalado sobre o processador dissipa o ar quente gerado por ele, ar que se espalha dentro do gabinete e acaba por aquecer os demais componentes e o próprio processador. É aí que entra a capacidade do gabinete em retirar o ar quente de dentro da caixa e fazer ar frio entrar. Quanto maior for esta capacidade, mais baixa será a temperatura de funcionamento do seu processador, placa de vídeo, HD etc. e maior será a vida útil destes componentes. Outro ponto chave é o aumento da estabilidade do micro, que esta ligada diretamente à temperatura. Quanto mais baixa a temperatura, melhor.“

Figura 1.37. Um cooler. Imagem retirada da Internet. Disponível em: <http://www.delphiinformatica.com.br/product_info.php? cPath=49&products_id=64&osCsid=b28db9c5d429ab56e2fbb332a5a9cd4e>. Acesso em 22/07/2007.

1.1.7.4 Estabilizador de tensão / No-break / Filtro de Linha [LVC02], [GAB1], [MOR02]
Esses dispositivos são opcionais e servem para melhorar a qualidade da energia que chega pela rede elétrica. Como já vimos, a corrente elétrica que chega ao computador é uma corrente alternada, que precisa ser convertida em corrente contínua para que seus componentes possam ser alimentados. As fontes de alimentação já atenuam pequenas variações de tensão, mesmo assim não é dispensável o uso de pelo menos um bom estabilizador de voltagem. “O estabilizador de tensão é um equipamento responsável por manter a tensão elétrica em sua saída estável, mesmo que haja variações na rede elétrica. Assim, se a rede oferece picos ou está com a tensão acima (sobretensão) ou abaixo (subtensão) do valor ideal, esse equipamento oferece uma compensação e mantém a sua saída com um valor estável, protegendo, assim, o seu equipamento.” 35

O no-break é mais caro que o estabilizador, no entanto, fornece uma proteção extra ao seu equipamento pois, além de estabilizar a corrente elétrica, dispensando o uso de um estabilizador, continua alimentando o computador no caso de uma queda de energia. “Essa alimentação é provida por uma bateria, que fica sendo carregada enquanto a rede elétrica está funcionando corretamente.” Essa bateria normalmente mantém o computador ligado entre 10 e 15 minutos, o tempo necessário para que o usuário salve o seu trabalho, feche todas as aplicações e desligue o computador seguramente. Quanto ao computador usar um filtro de linha, isso não é necessário. “O papel desse tipo de equipamento é filtrar ruídos da rede elétrica, especialmente os gerados por motores, tais como liqüidificadores, condicionadores de ar, geladeiras, etc. Acontece que, o componente eletrônico responsável pela filtragem, chamado varistor, já está presente tanto dentro da fonte de alimentação dos micros, quanto dentro dos estabilizadores de tensão. Isso significa que você não precisa gastar dinheiro à toa com esse tipo de equipamento. A não ser que você esteja precisando de mais tomadas para ligar os seus equipamentos ao estabilizador.”

Figura 1.38. Da esquerda para a direita: um estabilizador de tensão, um nobreak e um filtro de linha. Imagens retiradas da Internet. Disponíveis em: <http://www.papelariaveni.com.br/ecomerce/php/detalhesproduto.php? cod=18922>, <http://www.pcfloripa.com.br/loja/product_info.php? products_id=757&osCsid=61e8e165958114dfaf6d8f0a994b8c41> e <http://www.tocantinsinformatica.com.br/catalog/index.php? cPath=48&osCsid=e9e688be002378b788135e55d3098d36>. Acessadas em 22/07.2007.

1.2 Software [MOR02], [MON01]
Em contraposição ao hardware, que são os equipamentos, o software, ou programa de computador, é a parte lógica do computador, ou seja, o conjunto de dados e instruções passadas para os componentes físicos de um computador para que ele possa executar uma determinada tarefa, para a qual foi projetado o software. Para que serviria todos os circuitos eletrônicos de um computador se não fosse possível fazer nada com eles? “Um computador, por mais avançado que seja, é burro; pois não é capaz de raciocinar ou fazer nada sozinho. Ele precisa ser orientado a cada passo. É justamente aí que entram os programas, ou softwares, que orientam o funcionamento dos componentes físicos do micro, fazendo com que eles executem as mais variadas tarefas, de jogos a cálculos científicos. 36

Os programas instalados determinam o que o micro “saberá” fazer. Se você quer ser um engenheiro, primeiro precisará ir a faculdade e aprender a profissão. Com um micro não é tão diferente assim, porém o “aprendizado” não é feito através de uma faculdade, mas sim através da instalação de um programa de engenharia, como o AutoCAD. Se você quer que o seu micro seja capaz de desenhar, basta “ensiná-lo” através da instalação um programa de desenho, como o Corel Draw e assim por diante. “ Portanto, o software tem a função de facilitar a interação dos usuários com os computadores, transformando-os em algo realmente útil. Ele é a capacidade de raciocínio, ao qual se refere Morimoto, que falta no computador. Como vimos, o processador só faz basicamente operações matemáticas e lógicas, operações relacionadas à busca, leitura e gravação de dados na memória. É um conjunto de operações simples quando comparado ao que o usuário espera que o seu computador faça (acessar a Internet, visualizar imagens, editar textos, etc.), mas é o suficiente para o computador atender todas as exigências de seu usuário. Isso porque o software compatibiliza as instruções enviadas ao computador pelo usuário com as instruções que o processador entende. “Computar significa calcular, realizar cálculos matemáticos. Os computadores são máquinas de computar, de realizar operações matemáticas. O primeiro computador, desenvolvido na década de 40, tinha o objetivo de acelerar cálculos balísticos para o Exército americano. E daí em diante, os computadores não pararam de evoluir tecnologicamente, mas continuaram sendo equipamentos para computar. Mesmo quando um processador está sendo usado para processar texto, ele o faz por meio de cálculos matemáticos; como também acontece quando ele realiza processamento gráfico e outros mais. “ Software, assim como Hardware, é um termo em inglês que não tem tradução (deriva da palavra soft em inglês, que significa mole). Esse termo surgiu na verdade como uma gíria da informática, sendo usado para fazer uma distinção entre os componentes físicos do computador, as “ferragens” nas quais podemos tocar (como já vimos, Hardware deriva da palavra hard, que significa duro), dos programas, os componentes lógicos do computador, os quais não podemos tocar.

1.2.1 Tipos de Software
Os softwares podem ser divididos em três grupos de acordo com a importância que eles possuem para o funcionamento da máquina e a sua utilidade: básicos, aplicativos, utilitários. Os softwares básicos de um computador são aqueles essenciais ao seu funcionamento. Estão incluídos nesse grupo os programas fornecidos pelo fabricante junto com a máquina e o software operacional (também chamado de sistema operacional) que, como o próprio nome sugere, é o software responsável por operacionalizar a máquina, ou seja, tornar a máquina operacional. Ele gerencia a comunicação entre todos os componentes do computador, hardware e software, e entre o computador e o usuário, de forma a tornar o computador uma máquina funcional, capaz de “atender as ordens” de seu usuário. Ele também dispõe de recursos para tornar mais fácil essas comunicações, como a interface gráfica. Assim como as interfaces de hardware, as interfaces gráficas também foram projetadas para facilitar uma comunicação, nesse caso entre o computador e o usuário. Elas projetam na tela um ambiente operacional, ou seja, um ambiente para que o usuário se familiarize com os programas e o sistema operacional. Isso é possível através de uma “associação de idéias”: os programas, os arquivos, os dispositivos, tudo na tela aparece associado a ícones. Para que um usuário tenha acesso a um destes itens, basta que ele clique no ícone correspondente na tela. 37

Além disso, a interface gráfica possui outros itens que facilitam essa associação, como: os botões, que executam os comandos (um botão é associado a um comando e pode conter um texto ou um ícone que demonstre essa associação. Quando o usuário dá um clique em um botão executa um comando); as janelas, que separam os programas (cada programa em execução ocupa um determinado espaço na tela, limitado acima por uma barra que mostra o seu nome, a barra de título, e pelos lados e abaixo por uma borda. Esse espaço é a janela daquele programa); o cursor, que já foi visto anteriormente, que permite a seleção dos comandos pelo mouse; etc. Os principais sistemas operacionais utilizados atualmente são o Windows e o Linux, dois sistemas antagônicos. No Windows não há distinção entre o sistema e o ambiente operacional. O Windows já é o próprio sistema e ambiente operacional. No Linux, o sistema (chamado de kernel) é executado “por baixo” do ambiente operacional, que é escolhido pelo usuário. Existem diversos ambientes operacionais no Linux, como o Gnome, o KDE, o Xfree86, e muitos outros. Os softwares aplicativos são programas desenvolvidos para auxiliar o homem na execução de alguma tarefa ou na obtenção da solução para algum problema, ou seja, são softwares desenvolvidos para uma aplicação específica, e por isso são chamados de softwares aplicativos. Quase todos os programas que não são softwares básicos são softwares aplicativos. Exemplos: editores de texto, planilhas eletrônicas, navegadores (os programas que permitem o acesso a páginas da Internet), programas para gravar CDs e DVDs, entre outros. Os softwares utilitários são programas que não são usados com muita freqüência como os aplicativos, mas desempenham papel fundamental na manutenção preventiva do computador. São exemplos de utilitários os programas antivírus, responsáveis pela segurança do sistema, e programas que realizam limpeza de disco, removendo arquivos que não são mais necessários ao sistema, proporcionando assim um aumento no desempenho do mesmo. Alguns especialistas ainda propõem uma quarta classificação para o software, que seria o grupo dos softwares integrados: programas que trabalham em conjunto com o objetivo de aumentar a produtividade de um determinado trabalho. São exemplos bastante conhecidos de softwares integrados os programas que fazem parte de um pacote para escritório, como o Office da Microsoft ou o OpenOffice da Sun. Se o usuário quer, por exemplo, inserir uma planilha dentro de um texto, ele utiliza os programas Word (editor de textos) e Excel (planilha eletrônica) do Office ou o Writer e o Calc do OpenOffice em conjunto. O resultado é um trabalho bem feito, desenvolvido em curto espaço de tempo, graças à ação conjunta desses programas.

1.2.2 Arquivos e pastas [LVC02]
Tudo no computador é armazenado sob a forma de arquivo, sejam os seus programas, o sistema operacional, os textos digitados, as imagens armazenadas etc. “Arquivo nada mais é que um conjunto de dados gravados na memória secundária (disco rígido, disquete, fita magnética, CDROM, etc). Os arquivos são uma forma de organizar os dados dentro da memória secundária. Se os dados estivessem todos espalhados, por exemplo, ao longo de um disquete, seu acesso seria extremamente complicado. Podemos fazer uma analogia entre dados, arquivos, casas e ruas. Os dados corresponderiam às casas, enquanto que os arquivos corresponderiam às ruas. Seria dificílimo localizar uma casa, sabendo apenas os nomes de seus moradores. Sabendo o nome da rua, o acesso é bem mais imediato. Por essa razão, os dados são agrupados em arquivos. Sabendo o nome do arquivo, fica mais fácil localizar os dados.” O nome de um arquivo é dividido em duas partes, separadas por um ponto. A primeira delas, antes do ponto, é o nome do arquivo, que é definido por quem o criou 38

(o usuário ou algum programa) e pode ser mudado a qualquer momento com o comando de renomear. Após o ponto, é especificado o tipo de informação encontrada dentro do arquivo, através de uma combinação de geralmente três ou quatro letras, chamada de extensão (ou também de tipo, formato ou ainda terminação de arquivo). A extensão DOC, por exemplo, indica que se trata de um documento de texto, JPEG é um arquivo gráfico, EXE é um arquivo executável (programa), MP3 é um arquivo de som, AVI é um arquivo de filme, e assim por diante. Além de informar o tipo de informação, a extensão também informa qual programa é usado para abrir o arquivo. O sistema operacional faz uma correspondência entre os programas e as extensões, de modo que, quando o usuário queira visualizar ou editar um arquivo, o sistema saiba qual programa deve usar para tal. Para se trabalhar com um arquivo que possua a extensão DOC, por exemplo, pode ser usado o programa Microsoft Word, ou então o OpenOffice Writer, a depender de qual programa esteja associado àquela extensão pelo sistema. Arquivos CDR podem ser abertos pelo Corel Draw, arquivos PPT pelo Microsoft Power Point, e assim por diante. Como um computador possui muitos os arquivos, eles são organizados em diretórios (também conhecidos como pastas). Os diretórios são somente uma forma de agrupar “arquivos afins”, de forma a facilitar a tarefa do processador e a do próprio usuário na hora de localizar um arquivo. Dentro dos diretórios, podemos ter diretórios e arquivos. Portanto, dentro de uma unidade de disco, podemos ter vários arquivos e diretórios, que podem conter mais arquivos e diretórios dentro deles, e assim por diante.

Figura 1.39. Os diretórios de uma unidade são mostrados pelo sistema como uma “árvore de diretórios” com várias ramificações. Note pelo destaque que dentro de um diretório podemos ter tanto arquivos quanto outros diretórios. Os diretórios com um sinal de “+” do lado esquerdo contêm outros diretórios. Para vê-los, expandindo a árvore de diretórios e criando uma nova ramificação, basta clicar no sinal.

39

Capítulo 2 – O Processador (Unidade Central de Processamento)
A partir de agora será estudado com mais detalhes o componente do computador que é o enfoque desta pesquisa, o processador, também chamado de UCP (Unidade Central de Processamento, do inglês Central Processing Unit). Ele fica acoplado na placa-mãe e é responsável pela execução, com auxílio dos dispositivos já vistos, tais como memórias e discos rígidos, de todas as operações no computador. Esta introdução é baseada no que foi visto em [GAB05], [MON01], [LVC02] e [MOR02]. “Apesar de cada microprocessador ter seu próprio desenho interno, todos os microprocessadores compartilham do mesmo conceito básico.” Neste capítulo serão vistos os principais componentes de um processador genérico, suas características e seu funcionamento para que se possa dar continuidade ao estudo dos processadores, se aprofundando nos processadores da Intel e da AMD, que são os dois principais fabricantes de processadores para PCs. Mas antes é bom relembrar as características já vistas dos processadores, com mais alguns detalhes. Todo processador é capaz de reconhecer e executar diretamente um conjunto limitado de instruções simples. Essas instruções representam basicamente operações matemáticas e lógicas, além de operações de busca, leitura e gravação de dados na memória. Raramente elas são mais complicadas do que “some dois números”, “verifique se um número é igual a zero”, “mova um dado de uma parte da memória do computador para outra.” Juntas, elas formam uma linguagem que torna possível a execução de tarefas pelo processador, a linguagem de máquina. As instruções dessa linguagem são denominadas instruções de máquina. Também chamada de linguagem de baixo nível, a linguagem de máquina pode ser considerada o tipo mais primitivo de linguagem de programação, pois é a linguagem “entendida” pelos componentes eletrônicos do computador. Ela deve ser uma linguagem bastante simples, uma vez que a tecnologia eletrônica atual não oferece a possibilidade de programar esses componentes para trabalhar com linguagens mais complexas, chamadas de linguagens de alto nível. A língua portuguesa, por exemplo, pode ser considerada uma linguagem bastante complexa, se comparada com a linguagem de máquina. Seria bastante caro construir (se fosse possível) um computador no qual seus componentes internos se comunicassem falando português. Enquanto a língua portuguesa pode ser entendida mais facilmente pelos seres humanos, a linguagem de máquina é a mais adequada aos circuitos do computador, devido a sua facilidade de ser implantada na corrente elétrica destes. Nessa linguagem são utilizadas apenas duas “letras” que, como foi visto anteriormente, são os bits 0 e 1, que representam os dois níveis de tensão que passam pela corrente elétrica dos componentes do computador: desligado ou ligado. Cada instrução de máquina é pois uma seqüência de 0s e 1s que indica ao processador a operação a ser realizada e os dados que serão utilizados nessa operação. Uma instrução enviada ao processador para somar dois números, por exemplo, deverá conter a seqüência de bits que identifica a operação de soma e outra seqüência de bits que indica os valores que devem ser somados, ou a posição deles na memória, se eles estiverem armazenados na memória. Apesar de serem bastante simples, quando ordenadas de forma a orientar o computador para que ele possa executar uma determinada tarefa, essas instruções formam o que chamamos de programas. Os programas que se utiliza no dia-a-dia, como processadores de texto, planilhas eletrônicas, etc. nada mais são do que um 40

conjunto de instruções de máquina seqüencialmente organizadas. “O programa pode ser uma planilha, um processador de textos ou um jogo: para o processador isso não faz a menor diferença, já que ele não entende o que o programa está realmente fazendo. Ele apenas obedece às ordens (chamadas comandos ou instruções) contidas no programa. Essas ordens podem ser para somar dois números ou para enviar uma informação para a placa de vídeo, por exemplo.” Os dados e programas necessários ao processamento podem ser adquiridos através dos dispositivos de entrada e saída (o programa pode ser lido do disco rígido e o usuário pode, depois, dar a entrada dos dados via teclado, por exemplo). Enquanto estão sendo utilizados pelo processador, eles são transferidos para a memória principal, que funciona como uma espécie de mesa de trabalho do processador. Uma vez estando na memória, ele pode executar os programas e processar os dados. O computador é uma máquina que passa o tempo todo realizando essas três operações: entrada, processamento e saída. Quando um dispositivo transmite um dado para a UCP, diz-se que este dispositivo realizou uma operação de entrada de dados (Input). Feita a entrada dos dados, o processamento das informações recebidas é então realizado pela UCP. Após isso, a UCP retorna o resultado do processamento (uma mensagem retorna na tela, por exemplo). Quando um dispositivo transmite um dado resultante de um processamento, diz-se que este dispositivo realizou uma operação de saída de dados (Output). Pode-se fazer uma analogia do conceito de entrada, processamento e saída com um exemplo que acontece na vida cotidiana: quando uma pessoa encosta o braço num objeto muito quente (uma panela com água fervendo, por exemplo), ela contrai seu braço rapidamente. A entrada seria a sensação de calor, transmitida ao cérebro pelo tato, e a saída seria a contração do braço, ordenada pelo cérebro aos músculos do braço. O processamento ocorreu na hora em que o cérebro (que nesse exemplo, seria o processador) tomou a decisão de contrair o braço. O processador é o responsável pelo processamento dos dados. Por isso ele é considerado o cérebro do computador, o seu componente mais importante. Tanto é justificada essa importância que muitas pessoas descrevem o computador que usam se referindo ao modelo e velocidade do processador (por exemplo, “eu uso um Athlon 64” ou “eu uso um Pentium 100 MHz”). A velocidade de um processador é medida através do seu ciclo de clock. Vê-se em Laércio [LVC02], resumidamente, que o ciclo é a unidade mínima de tempo usada nas operações internas do processador e determina o número de operações que ele realiza por segundo. A princípio, quanto maior é o clock de um processador, maior é o seu desempenho. A velocidade dos processadores atuais é expressa em MHz (Megahertz, milhões de ciclos por segundo) ou em GHz (Gigahertz, bilhões de ciclos por segundo). De forma simplificada, um processador que opere a 800 MHz realiza 800 milhões de operações por segundo e com certeza é mais veloz que um processador que opere a 400 MHz. Este, por sua vez, realiza 400 milhões de operações por segundo. No entanto não se deve pensar que clock e desempenho são a mesma coisa. Dois processadores que apresentam o mesmo clock podem apresentar diferentes desempenhos. Isso porque, apesar de o clock ser um fator decisivo, uma vez que mede a velocidade com que o processador executa as instruções, existem outros fatores que também influenciam o desempenho de um processador, como por exemplo, sua velocidade de acesso à memória principal. Na memória estão armazenados os programas (as instruções) e os dados necessários ao processamento. A UCP passa o tempo todo procurando na memória as instruções e os dados que serão processados, interpretando e executando essas instruções e guardando o resultado do processamento (se houver) novamente na memória. Portanto, uma memória lenta limita o desempenho de um processador bom.

41

Um processador não só processa dados e realiza leituras e gravações na memória, ele também deve ser capaz de realizar operações de entrada e saída. Portanto, o desempenho de um barramento (que, como já foi visto, é o responsável por interligar o processador aos demais componentes do computador) também pode ser um fator determinante no desempenho de um processador. Citando o que já foi dito por Morimoto [MOR02]: “Apesar de o processador ser o componente mais importante do micro, já que é ele quem processa quase todas as informações, ele não é necessariamente o maior responsável pelo desempenho. Deve-se ter em mente que o computador é um conjunto, cada componente depende dos demais para mostrar o seu potencial. Diz-se que um micro é tão rápido quanto seu componente mais lento. Como se trata de um conjunto, apenas um componente que apresente uma baixa performance será suficiente para colocar tudo a perder. Assim como vemos em outras situações, num carro por exemplo, onde um simples pneu furado pode deixar o carro parado na estrada.”

Figura 2.1. Intel 8086 (1978). Todos os processadores atuais são descendentes desse processador, o primeiro de 16 bits lançado pela Intel. Imagem retirada da Internet. Disponível em <http://www.allware.info/doc/hard/UCP/testing/11/index.php>. Acesso em 14/08/2007.

2.1 Componentes de um Processador
O estudo dos componentes do processador é baseado no que foi visto em [MON01]. Para uma melhor compreensão da organização dos componentes de um processador, deve-se considerar o seu funcionamento básico, que se resume a: • • • • • • Adquirir instruções: primeiramente, a UCP busca a próxima instrução a ser executada na memória principal. As instruções são executadas uma de cada vez. Interpretar instruções: a instrução é decodificada pela UCP a fim de que ela saiba a operação que deve ser feita (se é uma operação lógica, aritmética, de entrada e saída de dados, ou de movimentação de dados na memória). Adquirir dados: a execução da instrução pode necessitar a leitura de dados da memória ou de um dispositivo de entrada e saída. Nessa etapa, os dados são enviados desses lugares para a UCP. Processar dados: a operação com os dados definida na instrução é realizada. Escrever dados: o resultado da operação é guardado no local definido na instrução (pode ser a memória ou um dispositivo de entrada e saída). Reiniciar o processo adquirindo uma nova instrução. 42

Essas etapas constituem o chamado ciclo de instrução. Enquanto o computador estiver ligado, a UCP passará o tempo todo repetindo esse ciclo, buscando, interpretando e executando as instruções definidas pelo programa, na ordem e na seqüência em que elas aparecerem. Ele só é interrompido caso o sistema seja desligado, ou ocorra algum tipo de erro, ou ainda, que seja encontrada uma instrução de parada. [MON01] A partir da análise das atividades realizadas pela UCP, conclui-se que ela possui basicamente duas funções: executar instruções (função de processamento) e controlar as operações no computador (função de controle). Assim, é possível estudar seus componentes enquadrando-os nessas duas categorias, de acordo com a função que desempenham no processamento dos dados. Os componentes com função de processamento realizam as atividades relacionadas à execução de instruções, ou seja, processam os dados. São exemplos dessas atividades: operações aritméticas e lógicas, de entrada e saída de dados, movimentação dados entre a memória e a UCP, entre outras. Nessa categoria se encaixam a UAL (Unidade Aritmética e Lógica, do inglês Arithmetic Logic Unit) que, como o próprio nome sugere, se encarrega de executar as operações matemáticas com os dados, e os registradores, que funcionam como uma pequena memória interna da UCP, onde são armazenados os dados que estão sendo usados pela UAL, embora existam também registradores com função de controle. Segundo Monteiro [MON01], os componentes com função de controle “se encarregam das atividades de busca, interpretação e controle da execução das instruções, bem como do controle dos demais componentes do computador (memória, dispositivos de entrada e saída). Em outras palavras, a área de controle é projetada para entender o que fazer, como fazer e comandar quem vai fazer no momento adequado.” Nessa categoria encontram-se vários dispositivos, dos quais o mais importante é a Unidade de Controle, responsável por controlar o fluxo de dados e de instruções dentro da UCP e por gerar os sinais que vão controlar as operações dos demais componentes do computador. Outros dispositivos responsáveis pela função de controle são:

• • •

• •

Decodificador de Instrução (DI) ou ID (Instruction Decoder) Registrador de Instrução (RI) ou IR (Instruction Register) Contador de Instrução (CI) ou PC (Program Counter), também conhecido como Ponteiro de Instruções (PI) ou IP (Instruction Pointer) Relógio ou Clock Registrador de Endereços de Memória (REM) ou MAR (Memory Address Register) Registrador de Dados de Memória (RDM) ou MBR (Memory Buffer Register)

Finalmente, a interligação entre os vários componentes é feita pelo barramento interno da UCP (como já foi visto, barramento é um conjunto de linhas de comunicação através das quais o processador pode comunicar-se com os demais componentes do computador). Pode-se fazer uma analogia, aplicando essa divisão (função de processamento e função de controle) ao corpo humano, imaginando que a área de controle é o cérebro que comanda o ato de andar, e a área de processamento são os músculos e ossos das pessoas que realizam efetivamente o ato. Os nervos são análogos ao barramento de interligação entre os diversos elementos. [MON01]

43

Figura 2.2. Esquema simplificado de uma UCP. Naturalmente que se trata de uma organização lógica, funcional e não da organização física, de como os componentes estão fisicamente organizados no interior do processador. Imagem retirada do livro Introdução à Organização de Computadores

2.1.1 Unidade Aritmética e Lógica (UAL)
O estudo da UAL se baseia em [MON01], [PIR07], [JOR05], [EMER03]. A UAL é o dispositivo da UCP que executa efetivamente as instruções. Ela é um aglomerado de circuitos lógicos e componentes eletrônicos simples que, integrados, realizam as principais operações referentes à função de processamento. Segundo Piropo [PIR07], as duas tarefas elementares da UAL são: • • “fazer contas” (realizar operações aritméticas, como a adição, a subtração, a multiplicação ou a divisão de dois valores X e Y, por exemplo) e "tomar decisões" (realizar operações lógicas com os dados e, de acordo com o resultado dessas operações, optar pela execução de uma ou outra instrução. As operações lógicas realizadas pela UAL consistem basicamente em comparar dados. Exemplo: Verificar se X é maior que Y. Caso seja, executar a instrução da linha 46 do programa. Caso contrário, executar a instrução da linha 47).

Apesar de alguns avanços, como aumento da velocidade, tamanho e complexidade, as operações realizadas pelas UAL mais atuais seguem os mesmos princípios fundamentais das UAL mais antigas. Normalmente, a UAL é esquematizada da seguinte forma, para que se possa entender seu funcionamento básico:

44

Figura 2.3. Diagrama esquemático do funcionamento da UAL. Imagem retirada do livro Introdução à Organização de Computadores A UAL recebe a instrução da Unidade de Controle através do barramento de controle. Essa instrução informa o tipo de operação a ser realizada e os valores que serão utilizados. No entanto, antes que a operação possa ser efetuada, o processador precisa trazer a instrução e os dados (operandos) necessários à sua execução para uma espécie de memória própria em seu interior, formada pelos registradores. Normalmente as operações são realizadas com dois valores, por isso a UAL possui duas entradas, mas existem também operações que trabalham com apenas um valor, como a operação aritmética de complemento. Os dados são recebidos pela UAL por essas duas entradas, percorrem o circuito dentro da UAL responsável por realizar a operação atribuída pela UC e apresentam o resultado na saída. Como se percebe pelo esquema, o resultado das operações, assim como os operandos, é armazenado nos registradores. Baseando-se no que foi dito por Jorge Cardoso em [JOR05], isso pode ser explicado pelo fato de que a UAL é um circuito projetado apenas para “realizar cálculos”, ela não possui memória. Essa ausência de uma memória própria da UAL implica a necessidade da utilização dos registradores. “Para que um dado possa ser transferido para a UAL, é necessário que ele permaneça, mesmo que por um instante, armazenado em um registrador (a memória específica da CPU).” Ainda segundo Jorge, quando os sinais de controle emitidos pela UC ativam os circuitos da UAL, os dados são lidos na entrada e logo processados e transferidos para a saída. Logo, percebe-se outra importância dos registradores: a de evitar que os dados passem diretamente para o barramento e acabem retornando para a entrada da UAL. “O resultado de uma operação aritmética ou lógica realizada na UAL deve ser armazenado temporariamente, de modo que possa ser reutilizado mais adiante (por outra instrução) ou apenas para ser, em seguida, transferido para a memória.” Alguns processadores trazem um tipo específico de UAL para realizar cálculos mais complexos, envolvendo números fracionários. O texto que se segue, baseado em [MON01] e [EMER03], explica com mais detalhes esse tipo de UAL.

45

2.1.1.1 Co-processador matemático
Os processadores mais modernos utilizam em sua arquitetura mais de uma UAL, de modo a tornar a execução das instruções mais rápida. Nos processadores mais antigos, como o 8086 e 8088, havia a possibilidade de se trabalhar em conjunto com um processador especial, que tinha a função de realizar operações aritméticas com valores fracionários, dispensando o processador principal desses cálculos mais complexos e liberando-o para realizar outras instruções. Ele era externo ao processador e recebia o nome de co-processador matemático. O 8087, usado naqueles dois processadores, é um exemplo de co-processador matemático. Atualmente, todos os processadores trazem embutidos no seu chip o coprocessador matemático, sendo seu uso considerado indispensável. Assim, tem-se num mesmo chip uma ou mais UAL responsável pelas operações com valores inteiros e uma UAL para valores fracionários. O processador Pentium, por exemplo, possui três UAL, duas delas para processar números inteiros, denominadas pela Intel de ALU (sigla do inglês Arithmetic Logic Unit), e a terceira para processar números fracionários, representados em ponto flutuante, denominada pela Intel de FPU (Floating Point Unit – Unidade de Ponto Flutuante).

2.1.2 Registradores
Os registradores são os componentes mais simples do processador, eles constituem a memória interna da UCP. Além dos registradores de dados, já vistos, para os quais são transferidos os dados que serão trabalhados pela UAL e também os resultados das operações realizadas pela mesma, existem também registradores com outras funções, os quais serão detalhados mais adiante. O estudo dos registradores baseia-se no que está escrito em [MON01], [GUI06], [VLA06], [PIR07], [REN05], [JOR05], [JOS04], [VAL05], [RUI98], [ANT] e [ALEX02]. A memória principal, como foi visto, é a “mesa de trabalho” do processador. Ela armazena os programas que estão sendo executados no momento e, conseqüentemente, as instruções e os dados que devem ser fornecidos ao processador para que ele possa realizar o processamento da informação. No entanto, o acesso do processador a memória principal se dá ainda de uma forma lenta, quando comparado com a velocidade com que ele executa as instruções dos programas presentes nessa memória. Essa diferença ocasiona atrasos (às vezes, intoleráveis) na transferência de bits entre memória e UCP, e vice versa. A velocidade de acesso à memória principal deveria ser compatível com a da UCP, de modo que esta não ficasse esperando muito tempo por um dado que estivesse sendo transferido da memória. “Explicando melhor, pode-se imaginar um sistema no qual a UCP manipula um dado em 5 nanossegundos, e a memória pode transferir um dado para a UCP em 60 nanossegundos. Grosso modo (de um modo bastante simplificado, apenas para fins de entendimento) pode-se afirmar que a UCP, em cada 60 nanossegundos, trabalharia 5 e ficaria os outros 55 nanossegundos ociosa, acarretando uma baixa produtividade do sistema. Para aumentar essa produtividade pode-se, por exemplo, desenvolver memórias com maior velocidade.” Uma maneira de compatibilizar essa diferença foi criar memórias próprias para o processador, com maior velocidade de transferência de dados, às quais ele pudesse ter acesso quase instantâneo às informações que ele precisa para exercer a sua função de processamento. Essas memórias são os registradores e as memórias cache, que serão vistas mais adiante. “Por serem construídos com a mesma tecnologia da UCP, estes dispositivos (os registradores) possuem o menor tempo de acesso do sistema, algo em torno de 1 a 5 46

nanossegundos.” A efeito de comparação, a memória principal possui tempo de acesso entre 7 e 15 ns, e discos CD-ROM trabalham com tempos de acesso ainda maiores, na faixa de 120 a 300 ns. Como se percebe, os registradores são o tipo de memória de maior velocidade de acesso. Já a capacidade de armazenamento dos registradores é muito inferior com relação à das outras memórias. Enquanto as memórias secundárias chegam a armazenar gigabytes de informações, os registradores são fabricados com capacidade de armazenar apenas um único dado, uma única instrução ou até mesmo um único endereço, ou seja, sua capacidade é de armazenar apenas uma palavra (alguns bits). Por essas características (maior velocidade de transferência, menor capacidade de armazenamento) conclui-se que os registradores são os elementos superiores na hierarquia dos diversos tipos de memória que compõem um computador.

Figura 2.4. Hierarquia de memória. Imagem retirada do livro Introdução à Organização de Computadores “O número total de registradores de uma UCP, a função de cada um deles e seu tamanho variam de processador para processador. São fatores que dependem da arquitetura da UCP e são decididos pelo seu projetista.” Normalmente, pode-se encontrar dentro de um processador entre 8 e 32 registradores. Quanto maior o número de registradores de um processador, menos consultas à memória esse processador faz. O tamanho (a capacidade) dos registradores pode variar em torno de 8 a 128 bits, dependendo do tipo de processador e, dentro deste, da aplicação dada ao registrador em si. Geralmente, o tamanho dos registradores de dados é igual ao da palavra do processador em questão. Outros registradores podem ou não seguir essa regra. O processador Intel Pentium, por exemplo, possui palavra de 32 bits e também registradores de 32 bits. Já o processador Motorola 68000, que possui palavra de 32 bits, tem registradores de dados com tamanho de 32 bits e registradores de endereços com tamanho de 24 bits. Quanto à função dos registradores, alguns têm funções específicas, como o Registrador de Instrução (RI) e o Contador de Instrução (CI), outros são de uso geral, ou seja, podem ser atribuídos a uma variedade de funções pelo programador, como o Acumulador (do inglês Accumulator, abreviado por ACC), presente apenas nos primeiros processadores. Esse registrador armazenava os dados utilizados pela UAL 47

(tanto os operandos, entradas, quanto os resultados, saídas) e servia, também, de elemento de ligação desta com os restantes dispositivos da UCP. Posteriormente, este registrador foi substituído por outros registradores, com funções específicas. Entre os registradores de funções específicas existem os registradores com função de processamento e os registradores com função de controle. Na área de processamento, enquadram-se três tipos de registradores: • • • Registradores de dados: participam diretamente das operações matemáticas, armazenando os dados enquanto estão sendo utilizados pela UAL Registradores de endereços: armazenam os endereços da memória principal que contém os operandos. Registradores especiais de estado (também chamados de flags): “auxiliam e completam a realização das operações matemáticas pela UAL, indicando o estado de vários elementos referentes à operação em si. Alguns fabricantes denominam o conjunto desses registradores de PSW (Program Status Word, que poderia ser traduzido como Palavra de Estado do Programa).”

Figura 2.5. Exemplos de organização de registradores nos processadores Motorola 68000 (a), Intel 8086 (b) e Intel 80386 (c). É importante observar que o processador 8086 ainda possuía o Acumulador. Imagem retirada da Internet. Disponível em <http://dme.uma.pt/jcardoso/Teaching/AC/Lectures/%5B9%5D%20Estrutura %20e%20Funcao%20da%20CPU.pdf>. Acesso em 14/08/2007. Na realidade, esse último tipo de registrador se comporta conceitualmente de modo diferente dos demais registradores existentes na UCP, pois o conjunto dos bits que ele armazena não representa um valor. Cada um dos bits armazenados nesse registrador possui um significado diferente e é denominado código de condição, sendo alterado pela CPU de acordo com o resultado da última operação lógica ou aritmética realizada pela UAL. 48

Os códigos de condição comumente encontrados nos processadores são: • • • • • sinal: contém o sinal resultante da última operação aritmética realizada pelo processador. overfiow: quando ativado (= 1) indica que a última operação aritmética realizada resultou em estouro do valor, um erro. zero: quando ativado (=1) indica que a última operação aritmética realizada resultou no valor zero. vai 1 (carry): indica que ocorreu “vai 1” para o bit mais à esquerda na última operação de soma realizada. Pode indicar, também, overflow em operações com números sem sinal. paridade: é ativado (=1) ou não (=0), dependendo da quantidade de bits 1 no byte recebido.

Figura 2.6. Conjunto de bits do registrador de estado dos processadores Pentium. Imagem retirada do livro Introdução à Organização de Computadores Da área de controle, que será vista mais adiante, participam o Registrador de Instrução (RI), o Contador de Instrução (CI), o Registrador de Endereços de Memória (REM) e o Registrador de Dados de Memória (RDM).

49

2.1.3 Unidade de Controle (UC)
O estudo da UC é baseado em [MON01], [PIR05], [RAI04], [EDU04], [VLA06], [REN05] e [RUI98]. “Embora a principal atividade de uma UCP, o processamento de dados, seja executada pela ULA, ela não seria possível se a instrução não houvesse sido previamente decodificada, se os operandos não tivessem sido previamente escritos nos registradores e se os sinais de controle necessários para ativar os componentes auxiliares não tivessem sido emitidos. E estas funções são desempenhadas pela unidade de controle.”

Figura 2.7. Diagrama em bloco simplificado da função de controle. Imagem retirada do livro Introdução à Organização de Computadores A Unidade de Controle é o dispositivo mais importante da área de controle e o mais complexo da UCP. Ela é responsável por controlar • O fluxo de dados e de instruções dentro e fora da UCP – a UC comanda o “tráfego” de informações no barramento interno do processador e também nos outros barramentos que mantém o processador em contato com os outros componentes do computador; As operações realizadas pelo processador – ela comanda a busca, interpretação e 50

execução das instruções, dividindo capa operação em operações menores (chamadas de microoperações) e distribuindo essas microoperações entre os diversos componentes do processador, de acordo com a especialidade de cada um. A operação de leitura de dados na memória, que será vista mais adiante, por exemplo, requer a participação de uma série de dispositivos que executam pequenas operações. Essas operações, em conjunto, constituem a desejada operação de leitura de dados. – e A atividade dos demais componentes do computador – a partir da interpretação das instruções que estão armazenadas na memória, a UC transmite sinais a outros componentes do computador atribuindo a eles tarefas para que se possa concluir a execução das instruções.

Em resumo, a UC é responsável pelo gerenciamento do "tráfego" de dados e das atividades realizadas pelo computador, dirigindo, assim, o funcionamento de todo o sistema. Ela realiza essa função através da emissão de sinais de controle no barramento de controle que acionam os dispositivos para realizar tarefas necessárias à efetivação da operação indicada na instrução em execução no momento pela UCP. Esses sinais de controle são emitidos em instantes de tempo programados e, de modo geral, todos possuem uma duração fixa e igual, controlada pelo relógio (também chamado de clock) da UCP. Logo, percebe-se outra importante função da UC, a de sincronizar as operações de todos os componentes dentro do computador. Mais detalhes do funcionamento da UC serão introduzidos aos poucos, durante o estudo dos componentes e do funcionamento do processador.

2.1.4 Relógio ou Clock
O estudo do relógio baseia-se no que está escrito em [LVC02], [MON01], [GAB05], [PIR05] e [RAI04]. O Relógio (do inglês clock), também chamado de temporizador, é o dispositivo gerador de pulsos que comanda o ritmo em que as operações são realizadas dentro do processador. Em geral, esses pulsos são gerados a partir de um cristal de quartzo, um componente capaz de emitir pulsos de tensão a intervalos notavelmente precisos. A duração de um pulso (intervalo de tempo entre o início de um pulso e o início do seguinte) emitido por esse cristal caracteriza um ciclo de relógio ou ciclo de maquina (machine clock). Pelo menos a princípio, não existe qualquer operação realizada pela UCP que dure menos que um ciclo de máquina. Portanto, este ciclo está relacionado à realização de uma operação elementar pela UCP. Existem operações mais complexas, que podem durar o tempo definido por um ou mais ciclos de relógio, mas não existem operações que durem menos tempo do que isso. Da mesma forma em que as operações são divididas em operações menores (microoperações), um ciclo também é dividido em ciclos menores (subciclos), relacionados à realização de uma microoperação por um componente da UCP. Assim, o ciclo de relógio gasto para se realizar uma operação de leitura de dados na memória, por exemplo, pode ser dividido em vários subciclos, durante os quais são realizadas as microoperações necessárias à execução da desejada operação. A quantidade de vezes em que um pulso se repete em um segundo define a unidade de medida do relógio, denominada freqüência. Quanto maior o número de pulsos que o relógio emite por segundo (ou seja, quanto maior a freqüência do relógio de uma UCP), maior será o número de operações que poderão ser executadas numa mesma unidade de tempo pela UCP e, conseqüentemente, mais rápida esta será. Portanto, a freqüência do relógio também é usada para definir a velocidade de uma UCP.

51

A unidade usada para medir a freqüência do relógio é o hertz (Hz), que significa um ciclo por segundo. Como as freqüências dos processadores são altas, seus valores são expressos não em hertz, mas em milhões de hertz (milhões de ciclos de segundo, megahertz ou simplesmente MHz) e até bilhões de hertz (gigahertz ou GHz). Assim, o relógio de um processador que opere à freqüência de 800 MHz, por exemplo, emite 800 milhões de pulsos por segundo e, conseqüentemente, esse processador realiza uma média de 800 milhões de operações por segundo (é uma média porque existem operações que podem durar mais de um ciclo). A duração de um ciclo é igual ao inverso da freqüência de operação (se a freqüência é a quantidade de pulsos que o relógio emite em um segundo, para saber a duração de um pulso basta dividir um segundo pela quantidade de pulsos que são emitidos nesse segundo). Nesse exemplo (processador de 800 MHz), a duração de um ciclo equivale ao inverso de 800.000.000, que é igual a 1/800.000.000 segundos, ou 0,00000000125 segundos.

Figura 2.8. Diagrama em bloco da UC, mostrando o relógio e um conjunto de ciclos de tempo (a). Em seguida, o ciclo básico e os cinco subciclos gerados por um retardador – exemplo dos ciclos do processador Intel 8085 (b). Imagem retirada do livro Introdução à Organização de Computadores

52

Por representar um valor muito pequeno, a duração de um pulso costuma ser expressa em nanossegundos (um nanossegundo equivale a um bilionésimo de segundo, para fazer a conversão basta andar com a vírgula nove casas decimais para a direita). Portanto, a duração do ciclo de um processador de 800 MHz é de 1,25 nanossegundos. Esse é o tempo que ele gasta para realizar uma operação. Agora se pode justificar matematicamente porque um processador de 800 MHz, como foi citado na introdução deste capítulo, é mais veloz que um processador de 400 MHz. Este último realiza uma operação em 2,5 nanossegundos, ou seja, o dobro do tempo gasto pelo primeiro processador para realizar essa mesma operação. Portanto, um processador de 400 MHz, em um segundo, pode realizar apenas a metade do número de operações que um processador de 800 MHz realiza, também em um segundo (relembrando, quanto maior a freqüência de uma UCP, maior será o número de operações que esta realiza numa mesma unidade de tempo). A freqüência do relógio de uma UCP é um parâmetro tão importante para o desempenho desta que é normalmente usado para indicar seu desempenho. Por exemplo, quando uma pessoa fala que tem um Pentium 800, na verdade está se referindo a um microprocessador Pentium, da Intel, que opera a uma freqüência de 800 MHz. Muitas pessoas, no entanto, acabam usando essa medida erroneamente para determinar o desempenho do seu computador, como foi visto na introdução. Mais uma vez, é importante falar, não se deve pensar que clock e desempenho são a mesma coisa. Dois processadores que apresentam o mesmo clock podem apresentar diferentes desempenhos. “Isto porque, se é verdade que a maior velocidade de relógio implica pulsos de duração menores, a tecnologia e a arquitetura de projeto do processador podem torná-lo mais eficiente que outro, mesmo que funcionando com velocidade de relógio menor.”

2.1.5 Decodificador de Instrução (DI)
Segundo Monteiro [MON01], o DI (Decodificador de Instrução, do inglês Instruction Decoder) é “um dispositivo utilizado para identificar que operação será realizada, correlacionada à instrução cujo código de operação foi decodificado.” Cada instrução que é enviada para a UCP é representada por um código (um conjunto de bits que representam a instrução. Isto será visto mais adiante, em Instruções de Máquina). A UC deve identificar a instrução que foi enviada à UCP em forma de código (decodificar ou interpretar a instrução) e acionar os dispositivos que executarão a instrução. A função do DI é decodificar a instrução. Ele possui uma entrada, através da qual se comunica com o RI para receber a instrução que deve ser decodificada, e várias saídas (um DI possui 2N saídas, onde N é o número de algarismos binários do valor de entrada), através das quais ele informa à UC a operação correspondente àquela instrução. A figura 9(a) na próxima página mostra um exemplo de DI com entrada de 4 bits e 16 saídas. O DI recebe o código da instrução na sua entrada e interpreta esse código de acordo com a configuração que lhe foi programada pelo projetista do processador. O resultado dessa interpretação é a ativação de uma das saídas que vai para a UC informando a ela a operação. Cada linha de saída aciona de modo diferente a UC e esta, por sua vez, emite sinais de controle por diferentes caminhos, conforme a linha de saída decodificada. A figura 9(b) mostra um exemplo de configuração do DI visto no exemplo anterior. É importante notar que somente uma saída é ativada, a saída representada na tabela verdade com o bit 1. A figura 9(c) mostra um exemplo do funcionamento do mesmo DI, como ele ativa uma das saídas de acordo com a entrada recebida do RI. O estudo do DI é baseado no que foi visto em [MON01], [REN05] e [PIR05].

53

Figura 2.9. Exemplo de um decodificador com 4 entradas e 16 saídas. As imagens 9(a) e 9(b) foram retiradas do livro Introdução à Organização de Computadores. A imagem 9(c) é adaptada também desse livro.

2.1.6 Registradores com função de controle
Nesse tópico serão estudados os registradores específicos com função de controle, utilizados pela Unidade de Controle para controlar a operação da UCP. São eles: o Registrador de Instrução (RI), o Contador de Instrução (CI), o Registrador de Endereços de Memória (REM) e o Registrador de Dados de Memória (RDM). O estudo desses registradores baseia-se no que está escrito em [GUI06], [VLA06], [PIR07], [REN05], [JOR05], [JOS04], [VAL05], [RUI98], [ANT], assim como o dos registradores já vistos.

54

2.1.6.1 Registrador de Instrução (RI)
O RI (Registrador de Instrução, do inglês Instruction Register) armazena o código binário referente à instrução que está sendo executada no momento pela UCP. Ao se iniciar um ciclo de instrução, a instrução que deverá ser executada é buscada (lida) na memória e copiada para o RI. Com a instrução armazenada nesse registrador, ela poderá a seguir ser interpretada, dando continuidade ao ciclo de instrução. Conclui-se, portanto, que o conteúdo desse registrador é modificado toda vez que uma nova instrução deve ser executada, ou seja, sempre que se começar um novo ciclo de instrução.

2.1.6.2 Contador de Instrução (CI)
O CI (Contador de Instrução, do inglês Program Counter) é o registrador que armazena o endereço de memória onde está armazenada a próxima instrução a ser executada pela UCP. Por “apontar para a próxima instrução”, este registrador também é conhecido como PI (Ponteiro de Instruções, do inglês Instruction Pointer). Ele é, ao mesmo tempo, um registrador e um contador, isto é, um registrador cujo conteúdo é incrementado (somado a um) constantemente. Cada vez que se inicia um ciclo de instrução, a UCP lê o endereço que está contido no CI e busca na memória a instrução que está armazenada naquele endereço. Logo após a leitura da instrução que será executada, o sistema automaticamente modifica o valor contido no CI, de modo que ele “aponte” para o endereço da próxima instrução. Dessa forma, quando a instrução terminar de ser executada e a UCP for iniciar um novo ciclo de instrução, buscando uma nova instrução para ser executada, o CI já estará apontando para essa instrução. Embora as instruções que formam um programa sejam armazenadas em seqüência na memória, nem sempre o processador obedecerá a essa seqüência para executar do programa. Quando o valor do CI é alterado, normalmente ele é incrementado (aumentado de 1 unidade), de modo que o novo endereço armazenado no CI seja o que vem logo após o endereço lido. No entanto, pode ocorrer uma situação em que o programa precise fazer um desvio para executar uma instrução armazenada em outro endereço de memória, que não seja a instrução seguinte àquela que acabou de ser realizada. Nesse caso, o novo valor do CI não será o valor antigo acrescido de uma unidade. Ele será definido pela instrução corrente, que deve conter o endereço da próxima instrução a ser executada. Uma instrução como essa que inibe o mecanismo de seqüenciamento automático, é chamada de instrução de desvio.

2.1.6.3 Registrador de Endereços de Memória (REM) e Registrador de Dados de Memória (RDM)
São registradores ligados às operações de leitura e escrita na memória principal (que para facilitar futuras explicações será abreviada por MP). São utilizados, portanto, durante a transferência de informações entre a UCP e a memória. O RDM (Registrador de Dados de Memória, do inglês Memory Buffer Register) armazena temporariamente a informação (pode ser um dado ou uma instrução) que será transferida da MP para a UCP (em uma operação de leitura) ou da UCP para a MP (em uma operação de escrita). Possui um tamanho (capacidade de armazenamento) igual ao do barramento de dados que, como já foi visto, tem um tamanho múltiplo do tamanho da palavra do processador. O REM (Registrador de Endereços de Memória, do inglês Memory Address Register) armazena temporariamente o endereço de acesso da posição de memória 55

que será utilizada durante a operação de leitura ou de escrita pela UCP. Possui um tamanho igual ao dos endereços de memória (e, conseqüentemente, do barramento de endereços). Além todos os dispositivos citados acima (RDM, REM, barramentos de dados e de endereços), também participam das operações de leitura e escrita na memória o controlador (também conhecido como decodificador, um componente da memória principal que decodifica o endereço colocado no barramento de endereços, localizando a célula desejada), a Unidade de Controle (UC) e o barramento de controle, que vai conduzir os sinais de controle que saem da UCP para a MP e viceversa (ambos já vistos anteriormente).

Figura 2.10. Dispositivos envolvidos na comunicação entre a memória e a UCP. Imagem retirada do livro Introdução à Organização de Computadores A fim de estudar o funcionamento desses registradores, será explicada a forma como o processador se comunica com a memória principal, através das operações de leitura e escrita. A operação de leitura na memória consiste, na verdade, em providenciar a transferência de uma cópia da informação que está armazenada na memória para o seu local de destino (que nesse caso deve ser um dos registradores da UCP). Será descrito a seguir um exemplo de operação de leitura apresentado em [MON01], onde a UCP deseja acessar (ler) um valor armazenado no endereço 1324 da MP (esse valor é representado pelo número hexadecimal 5C). Essa explicação pode ser acompanhada pela figura 2.11. 1. A UCP inicia a operação de leitura, copiando o endereço a ser lido (1324) de um dos seus registradores específicos (pode ser, por exemplo, o CI) para o REM. 2. Esse endereço passa do REM para o barramento de endereços. 3. A UC coloca o sinal de controle READ no barramento de controle, que indica à MP que a operação é de leitura. 4. O controlador da MP decodifica o endereço recebido e envia seu conteúdo (5C) para o RDM através do barramento de dados. 5. Do RDM, então, a informação desejada é copiada para o componente da UCP que é o destinatário final (normalmente um registrador). 56

Figura 2.11. Exemplo de operação de leitura. Imagem retirada do livro Introdução à Organização de Computadores

Figura 2.12. Exemplo de operação de escrita. Imagem retirada do livro Introdução à Organização de Computadores

57

A operação de escrita segue procedimento semelhante ao da operação de leitura, exceto, é claro, pelo sentido da cópia, que é inverso, isto é, da UCP para a MP. Novamente um exemplo da operação será apresentado conforme [MON01]: a UCP deseja armazenar (escrever) no endereço 21C8 da MP o valor F7. Ela realiza as seguintes etapas: 1. A UCP inicia a operação de escrita, copiando o endereço destino da informação (21C8) de um dos seus registradores para o REM. 2. Esse endereço passa do REM para o barramento de endereços. 3. A UC coloca o sinal de controle WRITE no barramento de controle, que indica à MP que a operação é de escrita. 4. O dado a ser copiado para o endereço (F7) é transferido de um dos registradores da UCP para o RDM. 5. Esse dado passa do RDM para o barramento de dados. 6. O controlador da MP decodifica o endereço recebido e copia o valor na célula de memória desejada. Para finalizar, vale ressaltar que o endereço contido no REM é modificado pela UCP sempre que ela for acessar a memória, ou seja, esse endereço é modificado sempre que for realizada uma nova operação de leitura ou escrita na memória.

2.2 Instruções de Máquina
O que será visto a seguir sobre Instruções de Máquina é baseado em [MON01], [VLA06], [PIR07], [RUI98], [JOR05] e [PIR05]. Os componentes de um computador podem ser agrupados, como já foi visto, em dois grandes grupos: o hardware, que reúne os componentes físicos do computador, ou seja, a máquina propriamente dita; e o software, a parte lógica do computador, quem vai instruir o hardware a realizar uma determinada atividade. O dispositivo que recebe, interpreta e executa as instruções do software, como se sabe, é o processador. A execução dessas instruções requer dele a realização de pequenas operações, que podem ser operações lógicas, aritméticas ou de movimentação de dados (transferir um dado para a memória, enviar informações a um dispositivo de saída, etc.). São operações bastante simples que, no entanto, quando somadas, resultam na atividade-fim para a qual foi construído o programa (relembrando, a execução de um programa consiste basicamente na execução dessas operações simples. Não importando qual é o objetivo do programa, se é criar uma planilha, um texto, etc. a execução dessas operações alcançará objetivo desejado). Cada instrução na verdade está associada à realização de uma dessas operações. A UCP ao receber uma instrução para ser executada, decodifica (interpreta) essa instrução, identifica a operação (ou a seqüência de operações) que será realizada e divide a execução desta entre seus componentes, de modo que cada um fique encarregado de executar uma (ou mais) microoperações. Segundo Monteiro [MON01], “a programação da seqüência de passos para realizar uma das mencionadas operações é inserida no processador durante o processo de sua fabricação, caracterizando a instrução de máquina.” A instrução de máquina é, portanto, “a formalização da operação em si”. De acordo com a definição de instrução dada pelo dicionário Aurélio (“explicação dada para um determinado fim”), pode-se também definir instrução de máquina como a explicação dada para a UCP de como realizar determinada tarefa.

58

O termo “de máquina” acrescenta outro detalhe importante nessa definição: a representação em linguagem de máquina, ou seja, cada instrução de máquina é uma seqüência de 0s e 1s que indica ao processador a operação a ser realizada. A instrução de máquina não só indica ao processador a operação a ser realizada, ela também precisa indicar os dados que serão utilizados nessa operação, chamados de operandos. Portanto, uma instrução de máquina possui dois elementos:


o que indica ao processador o que é a instrução e como será executada – o chamado de código de operação ou C.Op. (do inglês operation code, abreviado por OPCODE) – e o que indica ao processador a localização do(s) dado(s) que será(ão) manipulado(s) na operação – denominado operando (Op.).

“Esses elementos são identificados para o processador por um grupo de bits específico, os quais, em conjunto, formam a instrução completa.” Assim, uma instrução enviada ao processador para somar dois números, por exemplo, deverá conter a seqüência de bits que identifica a operação de soma e outra seqüência de bits que indica os valores que devem ser somados, ou a posição deles na memória, se eles estiverem armazenados na memória. Cada instrução possui um C.Op. específico e único para ela. Esse código, após ser decodificado, permitirá a UC emitir os sinais de controle que acionam os diversos dispositivos para realizar as microoperações a eles cabíveis. Quanto aos operandos, existem instruções que necessitam de um ou mais operandos e também instruções que não necessitam de operandos. Assim, uma instrução que possui apenas um operando contém o endereço desse operando; se uma instrução possui dois ou mais operandos, ela deve conter o endereço de cada um dos operandos; se uma instrução não possui operandos, é representada apenas pelo seu código de operação. A pouco foi visto um exemplo de instrução de dois operandos (instrução de soma). Piropo em [PIR05] cita outros exemplos de instruções: • A instrução usada para informar ao processador que o programa acabou e que o controle deve ser retornado ao sistema operacional é um exemplo de instrução que não necessita de operandos. “Ela se completa por si mesma, não precisa de mais nenhum parâmetro.” A instrução inteira consiste apenas no seu C.Op. Uma instrução de desvio (que muda a seqüência da execução do programa, como já foi visto anteriormente) possui apenas um operando: o endereço da posição de memória que contém a próxima instrução a ser executada. Uma instrução deste tipo será formada, portanto, do C.Op. seguido deste único operando. Há instruções razoavelmente complexas que necessitam de três operandos como, por exemplo, uma instrução que copia dados de um trecho da memória para outro. Seus operandos são: “o endereço da primeira posição de memória do trecho cujo conteúdo deverá ser copiado, o endereço da primeira posição de memória do trecho para onde os valores serão copiados e o número de posições de memória cujos conteúdos serão copiados para o outro trecho.” Uma instrução deste tipo consistirá do C.Op. seguido de três operandos.

Conclui-se com estes exemplos que em muitos processadores o tamanho das instruções é variável, dependendo do número e tamanho dos operandos. O número de bits usados para o C.Op. é fixo para cada processador. No entanto, ele pode variar de acordo com o número de instruções que o processador é capaz de executar (quanto maior for esse número, mais bits são necessários para representar todos os códigos de operação, aumentando o tamanho do C.Op.). O conjunto das diferentes instruções que um processador é capaz de executar é conhecido como conjunto de instruções (do inglês instruction set). 59

“A base do projeto de uma UCP é a escolha do conjunto de instruções que ela irá executar (trata-se de definir que operações o hardware será capaz de realizar diretamente através de seus circuitos), para em seguida definir e especificar os demais componentes da arquitetura e da organização, os quais contribuirão para o processo de interpretar e executar cada instrução.” Deve-se ter em mente que quanto mais complexo for este conjunto, ou seja, quanto mais instruções um processador possui (quanto mais “coisas” ele pode fazer) mais complexa será sua implementação. “Quanto menor e mais simples o conjunto de instruções, mais rápido é o ciclo de tempo de processador.” Quanto à complexidade do conjunto de instruções, pode-se definir dois tipos de arquiteturas de processadores:

arquitetura CISC (do inglês Complex Instruction Set Computer, que quer dizer Computador com Conjunto de Instruções Complexo) – utilizada em microcomputadores, como o PC e o Macintosh. Baseia-se num numeroso conjunto de instruções complexas, achando que com isto o microprocessador torna-se mais flexível e poderoso e torna mais fácil a tarefa de quem programa em linguagem de máquina, que passa a dispor de maior número de instruções de grande alcance; e arquitetura RISC (Reduced Instruction Set Computer – Computador com Conjunto de Instruções Reduzido) – utilizada por fabricantes que preferem implementar um conjunto de instruções menor e mais simples, implicando num processador mais simples, com ciclo de processamento rápido. São exemplos de computadores que seguem esta arquitetura: Power PC, Alpha e Sparc. E para finalizar a explicação sobre instruções de máquina, é importante ressaltar

que: • “Dentro de um mesmo conjunto de instruções, podem existir diferentes tipos de instruções, inclusive para a realização de uma mesma operação. Cada formato tem características próprias, com suas vantagens e desvantagens, podendo ser eficaz em certas aplicações e desaconselhável em outras.” Em processadores mais antigos que possuíam apenas um registrador de dados (o ACC), existia também a operação de soma com apenas um operando. Ela será explicada mais adiante, em Funcionamento da UCP. É difícil para o programador lidar com representações binárias de instruções máquina. Por isso, tornou-se prática comum usar uma representação simbólica para instruções máquina. Exemplos: ADD (adição), SUB (subtração), LOAD (carregar dados da memória), STORE (armazenar dados da memória), etc.

Para finalizar, vale ressaltar que o endereço contido no REM é modificado pela UCP sempre que ela for acessar a memória, ou seja, esse endereço é modificado sempre que for realizada uma nova operação de leitura ou escrita na memória.

2.3 Funcionamento da UCP (Ciclo da Instrução)
Após o estudo dos componentes e do conjunto de instruções de uma UCP é possível estabelecer os princípios básicos de seu funcionamento, ou as etapas necessárias para que o processador realize uma instrução, que caracterizam o ciclo de instrução. Como visto anteriormente, enquanto o computador estiver ligado, a UCP passará o tempo todo repetindo esse ciclo, que consiste basicamente na busca, interpretação e execução das instruções.

60

Um ciclo de instrução pode ser dividido em outros dois ciclos: o ciclo em que ocorre a busca na memória da instrução a ser executada e a interpretação dessa instrução (a identificação da operação que deverá será realizada pela UCP para que a instrução seja efetivada), chamado de ciclo de busca da instrução (ou fetch cycle, em inglês); e o ciclo em que os dispositivos executam a operação identificada no ciclo anterior, chamado de ciclo de execução da instrução (execute cycle). Este último compreende a emissão dos sinais de controle pela UC aos dispositivos responsáveis pela realização da operação e a efetiva execução desta. A área de processamento se encarrega somente da execução da instrução durante o ciclo de execução. Todas as outras etapas do ciclo de instrução (busca e interpretação da instrução – ciclo de busca – e emissão dos sinais de controle para a execução das instruções, durante o ciclo de execução) são realizadas pela área de controle.

Figura 2.13. Fluxograma de um ciclo de instrução. Imagem retirada do livro Introdução à Organização de Computadores

2.3.1 Exemplo de funcionamento da UCP
Para compreender melhor como todos os componentes da UCP trabalham em conjunto para a realização de um ciclo de instrução, será utilizado um modelo de processador hipotético bastante simples, apresentado em [MON01], com todos os componentes já vistos e mais algumas características (mais detalhes sobre as características de um processador serão vistas no próximo capítulo), a saber: • • Palavra: 12 bits Endereços: 8 bits (consegue endereçar 256 células de memória) 61

• • • •

Células de 12 bits Instruções de 1 operando apenas, com C. Op. = 4 bits e campo operando = 8 bits Campo operando sempre indica o endereço de memória do dado, exceto em instruções de desvio A UCP possui apenas um registrador de dados, o ACC, com 12 bits de tamanho, o RI, também com 12 bits de tamanho, o CI e o REM com 8 bits cada um e o RDM com 12 bits também.

O conjunto de instruções disponíveis nesse processador é apresentado na tabela a seguir. Serão executadas duas instruções pelo processador hipotético descrito acima: LDA Op. ADD Op. O exemplo apresentado em [MON01] também traz alguns valores iniciais, existentes na MP e na UCP antes de iniciar a execução da primeira instrução:

• • • • • • • •

A instrução LDA está armazenada na MP no endereço 000000102, que é igual a 0216 (como já foi visto, os valores são trabalhados em binário dentro da máquina. No entanto, para fins de simplificação e de entendimento, eles estão representados nas figuras por números em hexadecimal. Portanto serão apresentados o valor binário e o hexadecimal correspondente). Sua representação em binário é 000110110100 (ou 1B4, em hexadecimal). É importante lembrar que os 4 primeiros dígitos da instrução são o código da operação e os 8 restantes são o endereço do operando a ser utilizado. Então, o código dessa operação é 00012 (1 em decimal, conforme definido na tabela 2.1 para a instrução LDA) e seu operando está armazenado no endereço 101101002 da memória (hexadecimal B416). O valor do dado armazenado na célula de endereço B416 (operando da instrução LDA) é igual a 423 (hexadecimal 1A716). A instrução ADD está armazenada na MP no endereço 000000112 (ou 0316). Sua representação em binário é 0011101101012 (ou 3B516). Então, o código dessa operação é 00112 e seu operando está armazenado no endereço 101101012 (ou B516). O valor do dado armazenado na célula de endereço B516 (operando da instrução ADD) é igual a 125 (ou 07D16). O valor armazenado no CI é igual a 000000102 ou 0216 (este valor é considerado no exemplo como tendo sido atribuído pelo sistema operacional). O valor armazenado no RI é igual a 0011000101112 ou 31716 (provavelmente é o valor da instrução anteriormente executada). O valor armazenado no ACC é igual a 0010000010112 ou 20B16 (também é um valor obtido em operação anterior). O valor armazenado no REM é igual a 101100112 ou B316 e no RDM é igual a 0111101111002 ou 7BC16.

62

C. Op. Sigla 0 1 2 3 4 5 6 7 8 9 A HLT

Descrição Parar a execução do programa

Observação Halt, em inglês Load, em inglês Store, em inglês

LDA Op. ACC ← (Op.) STR Op. (Op.) ← ACC ADD Op. ACC ← ACC + (Op.) SUB Op. ACC ← ACC - (Op.) JZ Op. JP Op. JN Op. Se ACC = 0, então CI ← Op. Se ACC > 0, então CI ← Op. Se ACC < 0, então CI ← Op.

Instruções de desvio

JMP Op. CI ← Op. GET Op. Ler dado da porta de entrada e armazená-lo em (Op.) PRT Op. Colocar na porta referente à impressora o valor armazenado em (Op.)

Tabela 2.1. Conjunto de instruções do processador hipotético. Tabela retirada do livro Introdução à Organização de Computadores

Figura 2.14. Valores iniciais existentes ao iniciar a execução das instruções. Imagem retirada do livro Introdução à Organização de Computadores Finalmente, com todos estes dados (características do processador, conjunto de instruções e os valores existentes ao iniciar a execução das instruções), pode-se prosseguir com a descrição do ciclo da instrução LDA Op.

63

2.3.1.1 Ciclo da instrução LDA Op.
Após a conclusão do ciclo da instrução anterior, a UC reinicia o processo através da execução do ciclo de uma nova instrução (no caso, será a instrução LDA do exemplo), conforme o fluxo da figura 2.13. Essa instrução consiste em uma operação de busca de dados na memória (ver a tabela 2.1, trazer um operando para o ACC). Como já foi visto, a execução de uma operação pelo processador é dividida entre seus componentes, de modo que cada um fique encarregado de executar outras operações menores, que em conjunto constituem a operação desejada. Essas operações menores são denominadas microoperações. A realização da operação de busca de dados consiste, na verdade, na execução de microoperações pelos componentes do processador, a começar pela busca da próxima instrução a ser executada na memória (lembrando que neste momento da explicação o processador ainda não começou o ciclo de instrução tratado neste item. Ele terminou de executar a instrução anterior e agora buscará a instrução LDA). Seguindo as etapas indicadas na figura 2.13 e observando as figuras a seguir, tem-se: 1. Busca da próxima instrução Essa etapa consiste basicamente numa operação de leitura na memória principal, já descrita anteriormente. É transferida uma cópia da instrução que será executada no momento da MP para a UCP, mais especificamente para o RI. O endereço da instrução que será buscada na memória está contido no CI e, como já foi visto, as operações de leitura e escrita na memória principal são feitas por intermédio de dois registradores específicos: o REM e o RDM. Assim, a descrição passo a passo desta primeira etapa é: a. A UC aciona a transferência (cópia) do endereço a ser lido (0216) do CI para o REM, através do barramento interno na UCP. b. Esse endereço passa do REM para o barramento de endereços. c. A UC coloca o sinal de controle READ no barramento de controle, que indica à MP que a operação é de leitura. d. O controlador da MP decodifica o endereço recebido e envia seu conteúdo (1B416) para o RDM através do barramento de dados. e. O valor 1B416 (que representa instrução) é copiado do RDM para o RI. Com a instrução armazenada no RI, ela poderá a seguir ser interpretada, dando continuidade ao ciclo de instrução. Antes disso, no entanto, o CI deve ser incrementado de modo que ele “aponte” para o endereço da próxima instrução que será executada após essa (o endereço da instrução ADD Op.). 2. Incremento do CI Como no exemplo adotado as instruções estão armazenadas em seqüência na memória, e serão executadas nessa seqüência, o valor do CI é incrementado, de modo que o novo endereço armazenado seja o que vem logo após o endereço lido na etapa anterior. Portanto, o novo valor do CI é 0316, que é o endereço seguinte da instrução LDA Op., que contém a instrução ADD Op. No entanto, vale lembrar que, como já foi mencionado, nem sempre o valor do CI é incrementado. Pode ocorrer uma situação em que a próxima instrução a ser executada não seja a instrução seguinte àquela que acabou de ser realizada, nesse caso ela será definida pela instrução corrente, chamada de instrução de desvio.

64

Além disso, nesse exemplo foi considerado que a instrução ocupa apenas uma célula de memória (o tamanho das instruções é fixo em 12 bits, o mesmo tamanho de uma célula de memória e, portanto, cada instrução ocupa uma célula). Na maioria dos processadores atuais o tamanho das instruções não é fixo em uma célula. Existem instruções que podem ocupar até duas ou três células de memória. Esta diferença entre os processadores atuais e o processador hipotético também pode levar a uma alteração “forçada” no CI (o valor do CI não é incrementado). O que ocorre na maioria dos processadores atuais é: CI ← (CI) + n, sendo n igual à quantidade de células ocupadas por uma única instrução. Existem também sistemas (e não são poucos hoje em dia) em que o tamanho das instruções é variável. Portanto, nesses sistemas o valor de n também é variável e a UC deve ser preparada para isso. Pode-se citar dois exemplos de processadores onde ocorre esta situação, apresentados em [MON01]: “Nos microprocessadores 8080/8085, cujas instruções podiam ocupar 1, 2 ou 3 células de memória (cada célula tinha 8 bits de largura), as instruções eram lidas para a UCP um byte de cada vez (tamanho da célula) e o CI era incrementado de 1 em 1, porém mais de uma vez durante o ciclo da mesma instrução (se a instrução ocupasse 2 ou 3 bytes). Nos sistemas IBM/370, os 2 primeiros bits do código de operação indicavam o tamanho da instrução, sendo 00 para instruções de 2 bytes, 01 para instruções de 4 bytes e 11 para instruções de 6 bytes de tamanho, de modo que o CI era incrementado de acordo.” As duas etapas que foram realizadas até o momento constituem do ciclo de busca da instrução LDA, que pode ser esquematizado na figura 2.15 (para um melhor entendimento do fluxo de dados nos exemplos, se ocorrer uma operação de escrita em célula de MP ou registrador, a figura mostrará os dois valores: o anterior à esquerda, com um barra diagonal atravessada; e o novo valor à direita).

Figura 2.15. Fluxo de dados e de endereços durante a realização do ciclo de busca da instrução LDA. Imagem retirada do livro Introdução à Organização de Computadores

65

3. Decodificação da instrução Como já foi visto, a decodificação da instrução é realizada pelo DI. a. A UC emite um sinal de controle para o RI, para que ele transfira para o DI os primeiros 4 bits que representam o código da instrução (o C.Op.). b. O DI interpreta esse código de acordo com a configuração que lhe foi programada pelo projetista do processador e ativa uma das saídas que vai para a UC informando a ela a operação. “Esta, por sua vez, emitirá os sinais adequados e na seqüência preestabelecida que conduzirão a execução da operação definida pela instrução.“ 4. Execução da instrução (nessa instrução não há operando a ser buscado, portanto a quarta etapa apresentada na figura 2.13 – busca de operandos – é ignorada) Assim como a primeira etapa, a quarta etapa também é uma operação de leitura na memória principal, uma vez que se trata da execução da operação propriamente dita, que é trazer um operando da MP para o ACC. Esse operando está armazenado no endereço 101101002 (hexadecimal B416), como definido na representação binária da instrução. O passo a passo desta etapa é bem parecido com o da primeira etapa: a. A UC emite o sinal para que o endereço a ser lido (B416) seja transferido para o REM, através do barramento interno na UCP. b. Esse endereço passa do REM para o barramento de endereços. c. A UC coloca o sinal de controle READ no barramento de controle, que indica à MP que a operação é de leitura. d. O controlador da MP decodifica o endereço recebido e envia seu conteúdo (1A716) para o RDM através do barramento de dados. e. O valor 1A716 (que representa instrução) é copiado do RDM para o ACC. Estes últimos dois passos constituem o ciclo de execução da instrução LDA, que pode ser esquematizado na figura 2.16.

Figura 2.16. Fluxo de dados e de endereços durante a realização do ciclo de execução da instrução LDA. Imagem retirada do livro Introdução à Organização de Computadores

66

Portanto, concluído o ciclo da instrução LDA, a UC iniciará o ciclo de uma nova instrução (desta vez, a instrução ADD).

2.3.1.2 Ciclo da instrução ADD Op.
A seguir, será descrito o ciclo da instrução ADD Op., que consiste somar dois operandos. Um deles já está armazenado no ACC (ele foi transferido no ciclo da instrução LDA) e o outro será buscado (lido) na memória nesse ciclo de instrução. Nesta instrução será usado o passo 4 do fluxograma de um ciclo de instrução apresentado na figura 2.13 (buscar operando) e haverá efetivamente a realização de uma operação no passo 5 (operação aritmética de adição), com a conseqüente ação da UAL. Nos demais passos a execução dessa instrução é semelhante à anterior. Como o objetivo deste tópico é apenas de explicar de forma simplificada o funcionamento da UCP, esses passos serão apenas comentados. Dados a serem considerados, referentes ao término da instrução anterior:

• • • •

O valor armazenado no CI é igual a 000000112 ou 0316. O valor armazenado no RI é igual a 0001101101002 ou 1B416 (provavelmente é o valor da instrução anteriormente executada). O valor armazenado no ACC é igual a 0001101001112 ou 1A716 (também é um valor obtido em operação anterior). O valor armazenado no REM é igual a 101101002 ou B416 e no RDM é igual a 0001101001112 ou 1A716.

1. Busca da próxima instrução Esta etapa é em tudo semelhante à etapa 1 do ciclo da instrução LDA Op. mas é importante comentar o fato de que o CI, durante a maioria do ciclo de instrução anterior, já continha o endereço da instrução seguinte. Ele foi modificado durante o ciclo de busca da instrução LDA Op. para 0316. Este é o endereço da instrução ADD Op., que será executada neste ciclo de instrução. Dessa forma, antes do início de um ciclo de instrução, o CI já contém o endereço da instrução que deve ser executada. A descrição passo a passo, resumida, desta etapa é: a. b. c. d. e. REM ← CI O endereço armazenado no REM para o barramento de endereços. A UC coloca o sinal de controle READ no barramento de controle RDM ← (M(REM)) RI ← (RDM)

2. Incremento do CI CI ← (CI) + 1 Essas duas etapas encerram o ciclo de busca da instrução ADD. Como se percebe, ele é bastante semelhante ao ciclo de busca da instrução anterior. Já o ciclo de execução da instrução ADD será um pouco diferente nas etapas 4 e 5. 3. Decodificação da instrução a. Decodificador ← (RI(C.Op.)) b. A interpretação desse código resulta na ativação da saída que vai para a UC informando a ela que se trata da operação ADD. Esta, por sua vez, emite os sinais apropriados para a execução da operação. 67

Figura 2.17. Fluxo de dados e de endereços durante a realização do ciclo de busca da instrução ADD. Imagem retirada do livro Introdução à Organização de Computadores 4. Busca de operandos na MP Como já foi visto, a instrução ADD consiste em uma operação aritmética de soma, realizada com dois valores. Esses dois valores são previamente transferidos da memória para os registradores da UCP, a fim de agilizar a execução da operação. A UAL, que efetivamente realizará a operação de soma, possui duas entradas, que são ligadas aos registradores de dados, e uma saída, também ligada a um registrador. Ela receberá os valores armazenados nos registradores pelas suas duas entradas, somará esses dois valores e informará o resultado na saída. Ele é transferido para outro registrador de dados, podendo em seguida ser reutilizado por outra instrução ou transferido para a memória. No entanto, nesse processador hipotético, bastante semelhante aos processadores dos primeiros computadores, só há um registrador de dados (que é o ACC) e a UAL continua tendo duas entradas. O que acontece nesse caso é: o ACC já contém um dos termos da operação (o valor 1A716, trazido para ele no ciclo da instrução LDA Op.). O operando que resta será buscado (lido) na memória e ficará armazenado temporariamente no RDM, esperando que o operando armazenado no ACC seja transferido para a UAL, para que ele possa em seguida ser transferido para o ACC, e depois para a UAL. a. A UC emite o sinal para que o REM receba o endereço do operando a ser buscado na memória (B516). b. Esse endereço passa do REM para o barramento de endereços. c. A UC coloca o sinal de controle READ no barramento de controle, que indica à MP que a operação é de leitura. 68

d. O controlador da MP decodifica o endereço recebido e envia seu conteúdo (07D16) para o RDM através do barramento de dados. e. O valor 1A716, que está armazenado no ACC e é o primeiro operando, é enviado para a UAL. f. O valor 07D16 (que é o segundo operando) é copiado do RDM para o ACC, e deste é enviado para a UAL. Dessa forma é possível que se utilize apenas um registrador de uso geral para transferir os operandos para a UAL, um de cada vez. Isso também possibilita uma redução no número de várias instruções, fazendo com que elas tragam consigo o endereço de apenas um operando (o outro operando já está armazenado no ACC e não precisa ser trazido na MP para a UCP). Nos processadores atuais, no entanto, os dados não são transferidos para a UAL dessa forma. Eles possuem dois registradores temporários para armazenar os dois operadores imediatamente antes de serem transferidos para a UAL. 5. Execução da instrução Nesta etapa ocorre a efetiva execução da instrução. O processador já passou anteriormente por todo um “preparo” (buscou a instrução e os dados na memória, incrementou o CI para que ele já indicasse a próxima instrução), já sabe o que fazer (interpretou a instrução), e quem (qual o dispositivo) vai fazer a operação indicada pela instrução previamente interpretada. Como se trata de uma operação aritmética, dessa vez o dispositivo responsável pela execução da instrução será a UAL. Os operandos já estão nas suas entradas, apenas esperando a emissão do sinal de controle pela UC para a realização da operação de soma. Feito isso, os valores percorrem o circuito lógico dentro da UAL responsável pela operação de soma e o resultado aparece na saída. 1A716 + 07D16 = 22416 (essa conta em decimal ficaria assim: 423 + 125 = 548) O resultado é transferido para o ACC, podendo ser em seguida utilizado por outra instrução (tem-se o exemplo dessa instrução, que se utilizou de um valor que já estava armazenado no ACC) ou armazenado na memória. Encerra-se então o ciclo de execução e, conseqüentemente, o ciclo da instrução ADD. Se esse tópico continuasse mostrando a atividade do processador após o término deste ciclo de instrução, neste momento ele iniciaria o ciclo de instrução correspondente à instrução armazenada no endereço 0416 da memória, o endereço armazenado no CI, e portanto o da próxima instrução a ser executada.

69

Figura 2.18. Fluxo de dados e de endereços durante a realização do ciclo de execução da instrução ADD. Imagem retirada do livro Introdução à Organização de Computadores

70

Capítulo 3 – Principais Características de um Processador
“Ao compararmos processadores novos e antigos, simples e sofisticados, vemos que eles possuem muitas características comuns, e as diferenças estão no nível dessas características. Um exemplo simples é o clock[...]. No ano 2000 já existiam processadores com clocks superiores a 1000 MHz. Em 1980, os modelos típicos operavam na faixa dos 5 MHz. Mesmo com esta diferença tão grande, o significado do clock é exatamente o mesmo nos dois casos. Passemos então a apresentar as principais características de um processador genérico, e vejamos como se aplicam aos modelos atuais.” [LVC02]

3.1 Palavra [MON01], [LVC02], [NUN06]
De modo bastante resumido, pode-se definir a palavra de um processador como o tamanho da informação que ele consegue processar de uma só vez. Assim, tem-se o exemplo de Monteiro [MON01], citado no capítulo 1: “a UCP processa instrução por instrução (cada uma estaria associada a uma palavra), armazena ou recupera número a número (cada um estaria associado a uma palavra), e assim por diante.” É muito comum ouvir expressões do tipo “computador de 32 bits”, “processador de 64 bits”. Estas expressões se referem justamente ao tamanho das palavras desses processadores. A maioria dos processadores atuais possui palavra de 32 bits, ou seja, seus circuitos operam com 32 bits de cada vez, mas os processadores de 64 bits estão se tornando cada dia mais comuns no mercado. O aumento do tamanho da palavra trata-se de uma evolução natural dos processadores. “Os antigos processadores dos anos 70 operavam com 4 ou 8 bits. Os processadores 8086, 8088 e 80286, usados nos PCs do início dos anos 80 e ainda encontrados no mercado até o início dos anos 90, operavam com 16 bits. A partir do 80386, os processadores usados nos PCs passaram a operar com 32 bits.” Atualmente existem no mercado processadores de 32 bits (como o Pentium 4 e o Athlon) e de 64 bits (como o Itanium e o Athlon 64), sendo que estes últimos substituirão os processadores de 32 bits num futuro próximo. “Quanto maior é o número de bits de um processador, mais veloz poderá realizar cálculos e processamento de instruções em geral.” Uma operação de soma em um processador de 16 bits, por exemplo, pode chegar a ser duas vezes mais rápida do que a operação de soma em um processador de 8 bits, a depender dos valores que deverão ser somados. Se a operação requer que sejam somados dois valores com 16 bits de tamanho, um processador de 8 bits deverá executá-la em etapas, uma vez que ele trabalha com 8 bits de cada vez. Já o processador de 16 bits, capaz de representar e operar tais valores de forma direta, fará esse cálculo de uma vez só. E não é só na operação de soma que se observa a vantagem do maior tamanho da palavra: é em praticamente todas as operações realizadas pela UCP. O tamanho da palavra é um fator determinante no desempenho da UCP: ele determina não só o menor tempo gasto nas operações matemáticas, como visto anteriormente, mas também o tamanho dos elementos ligados à área de processamento (a UAL e os registradores de dados), do barramento de dados e, conseqüentemente, a velocidade de transferência de dados entre o processador e a memória, como será visto no próximo tópico, Largura do barramento de dados. 71

3.2 Largura do barramento de dados [MON01], [LVC02], [NUN05], [NUN06], [PIR1]
“A largura (ou tamanho) de um barramento é uma unidade de medida que caracteriza a quantidade de informações (bits em geral) que pode fluir simultaneamente pelo barramento. Esta largura, maior ou menor, se constitui também em um dos elementos que afetam a medida de desempenho de um sistema.” A largura do barramento de dados determina, portanto, a quantidade de informação que o processador recebe do exterior. A velocidade com que a UCP se comunica com os demais componentes do computador depende fundamentalmente da largura do barramento de dados pois, quanto maior for o barramento de dados, mais informações podem passar de uma só vez pelo barramento, e maior será a velocidade com que os dados são transferidos para o processador. Pode-se perceber a vantagem de um barramento de dados maior em uma operação de busca de dados na memória, por exemplo. Se cada célula de memória armazena um byte, “processadores com barramento de dados de 16 bits podem acessar duas células de uma só vez. Aqueles com barramentos de dados com 32 e 64 bits podem acessar até 4 e 8 células, respectivamente.” Logo, em um processador com barramento de dados maior, a transferência dos dados se dará mais rapidamente.

Processador 8086 8088 286 386SX 366DX 486 486DLC / SLC Pentium, Pentium MMX Pentium Pro Cyrix 5x86 e AMD 5x86 Cyrix 6x86 AMD K5, K6, K6-II, K6-III Pentium II, Pentium III Celeron Pentium 4 AMD Athlon, Duron

Palavra 16 16 16 32 32 32 32 32 32 32 32 32 32 32 32 32

Largura do barramento de dados 16 8 16 16 32 32 32 64 64 32 64 64 64 64 64 64

Tamanho dos registradores de dados 16 16 16 32 32 32 32 32 32 32 32 32 32 32 32 32

Tabela 3.1. Palavra, largura do barramento de dados e dos registradores de dados dos processadores usados nos PCs. Tabela retirada do livro Hardware Total.

Normalmente, a largura do barramento de dados corresponde ao tamanho da palavra do processador, mas isto nem sempre ocorre. Os processadores de 8 bits, como o 8080 e o 8085, utilizavam um barramento de dados de 8 bits. O mesmo vale 72

para o processador 8086, com palavra de 16 bits e barramento de dados também de 16 bits. Existem casos raros onde a largura do barramento de dados é menor que o tamanho da palavra, como o processador 8088, usado nos primeiros PCs, onde a palavra era de 16 bits e o barramento de dados era apenas 8. Nos processadores modernos, a partir do Pentium e do K6, ocorre o inverso: a largura do barramento de dados é maior do que o tamanho da palavra (normalmente múltipla desta). Isso ocorre porque, “com a inserção de uma memória cache interna nesses processadores, tornou-se mais vantajoso buscar mais dados de cada vez das memórias externas ao processador, acelerando a velocidade do processamento.” O processador Pentium II, por exemplo, possui palavra de 32 bits e barramento de dados de 64 bits. A largura do barramento de dados também vai determinar o tamanho do registrador de dados de memória (RDM) e este, em geral, tem a mesma largura dos registradores de dados da UCP e, portanto, o mesmo tamanho da palavra. No entanto, como já foi visto, toda regra tem a sua exceção. Isso pode ser observado na tabela abaixo, baseada em [NUN06] e [LVC02].

3.3 Largura do barramento de endereços [LVC02], [MAC02]
Como já foi visto anteriormente, a memória é dividida em unidades de acesso, as células, cada uma representada por um endereço, através do qual o processador pode acessá-la, e composta por um determinado número de bits (o que caracteriza o tamanho da célula, que geralmente é de 8 bits, ou seja, 1 byte). A largura do barramento de endereços determina o número máximo de células de memória que um processador pode endereçar. Para descobrir esse número, basta calcular 2n, sendo que n corresponde à largura (em bits) do barramento de endereços do processador em questão. Assim, “a memória poderá no máximo endereçar 2n células, isto é, do endereço 0 ao endereço (2n-1).” O processador hipotético apresentado no capítulo 2, por exemplo, possuía um barramento de endereços de largura 8 bits. Por isso foi afirmado que ele conseguia endereçar 256 células de memória (28 células). Pode-se observar ainda pelo exemplo do processador hipotético que a largura do barramento de endereços também vai determinar o tamanho do registrador de endereços de memória (REM), que, no exemplo, também é de 8 bits.

3.4 Capacidade de endereçamento [LVC02], [MAC02], [EMER03], [WBC]
A capacidade de endereçamento de um processador nada mais é que a quantidade máxima de memória com a qual um processador consegue trabalhar, determinada pelo número máximo de células de memória que ele pode endereçar. Considerando que para a maioria dos processadores atuais o tamanho da célula é de 1 byte, obtém-se a capacidade de endereçamento de um processador a partir da multiplicação de 1 byte pela quantidade de células de memória que ele pode endereçar. Se o resultado for um número grande, ele pode ser expresso através de um dos múltiplos do byte, já vistos no capítulo 1 (kB, MB ou GB).

73

A fim de exemplificar esse cálculo, será demonstrado como se obter a capacidade de endereçamento do processador 8086. Sabe-se que ele possui barramento de endereços de largura 20 bits e, portanto, consegue endereçar 220 células, ou seja, 1.048.576 células. Se cada célula possui o tamanho de 1 byte, conseqüentemente o 8086 pode acessar até 1 MB de memória. É importante ressaltar que os processadores não chegam a usar toda a sua capacidade de endereçamento. “Para a época do 8086 e do 8088 (em torno de 1980), a capacidade de endereçar 1 MB era considerada bem elevada. Eram comuns modelos com 64 kB, 128 kB e 256 kB de memória RAM.” Processadores atuais, como o Pentium IV, possuem, em sua maioria, barramento de endereços de 32 bits, possibilitando endereçar até 4 GB de memória. Um computador com Pentium IV e 512 MB de memória RAM, como é comum hoje em dia, por exemplo, não chega a usar 13% da capacidade de endereçamento do processador. “Por isto, mesmo os processadores mais modernos, em sua maioria, ainda utilizam barramentos de endereços com 32 bits”, assim como o 386, de 1985. Largura do barramento de endereços 20 20 24 24 32 32 32 24 32 36

Processador 8086 8088 286 386SX 386DX 486 486DLC 486SLC Pentium e similares Pentium Pro e superiores

Capacidade de endereçamento 1 MB 1 MB 16 MB 16 MB 4 GB 4 GB 4 GB 16 MB 4 GB 64 GB

Tabela 3.2. Capacidade de endereçamento de diversos processadores. Tabela retirada do livro Hardware Total.

3.5 Clock interno e externo [LVC02], [MON01], [MOR02], [EMER03], [EMER12], [GAB05], [WBC]
No capítulo 2, viu-se que há um dispositivo gerador de pulsos que comanda o ritmo em que as operações são realizadas dentro do processador, o relógio ou clock. Viu-se também que a duração de um pulso emitido por esse dispositivo vai determinar o ciclo de maquina, e que a quantidade de vezes em que um pulso se repete em um segundo caracteriza a freqüência do processador, medida em MHz ou GHz. Acontece que dentro do computador o processador não é o único dispositivo que opera a partir de um clock. Para que o sistema funcione corretamente, os barramentos, a memória e vários outros circuitos do computador também devem sincronizar suas operações através de um clock. Em processadores antigos (até o 486DX-50), o clock do processador sincronizava tanto as operações internas quanto externas (comunicação com a memória, dispositivos de entrada e saída, etc.). 74

No entanto, com o passar do tempo, a velocidade do processador passou a evoluir (crescer) num ritmo muito mais rápido que a velocidade dos demais dispositivos do computador (atualmente existem processadores capazes de operar a até 3,6 GHz, no entanto não existem modelos de placa-mãe capazes de acompanhálos, por exemplo), e o clock do processador não poderia continuar crescendo se ele tivesse que sincronizar também os dispositivos externos ao processador. Graças a esta diferença, a partir do 486DX2 os processadores passaram a operar com dois tipos de clock: o clock interno e o clock externo. O clock interno já foi visto no capítulo 2: é a partir dele que é feita a sincronização das operações dos componentes internos do processador. “Ele está relacionado com o número de operações que o processador realiza por segundo” e é normalmente usado para indicar seu desempenho. Quando se ouve a expressão “Pentium 4 de 2,8 GHz”, por exemplo, logo entende-se que seu clock interno é de 2,8 GHz e que ele realiza 2,8 bilhões de operações por segundo. O clock externo é o clock do barramento local, também chamado de Front Side Bus. “O intervalo de tempo requerido para mover um grupo de bits (tantos quanto a quantidade de bits definida pela largura do barramento) ao longo do barramento é denominado ciclo de tempo do barramento ou simplesmente ciclo do barramento (bus cycle), modo análogo ao que se define para o ciclo do processador e para o ciclo de memória.” O clock externo tem um valor bem menor que o clock interno e é usado para sincronizar as operações de comunicação entre o processador e os demais dispositivos do computador, como a memória RAM. Quanto maior for o clock externo do processador, maior será o seu desempenho, pois a transferência de informações entre ele e os outros dispositivos se dará mais rapidamente. O processador 486DX2, por exemplo, possuía clock interno de 50 MHz, enquanto seu clock externo era de 25 MHz. Isso quer dizer que ele operava internamente a 50 MHz, no entanto, quando era necessário acessar algum dispositivo externo, ele o fazia a 25 MHz. A essa diferença de velocidade entre os clocks interno e externo dá-se o nome de fator multiplicador. “Foram lançadas versões do 486 rodando à 25 MHz, 33 MHz e 40 MHz, porém, criou-se uma barreira, pois não haviam na época circuitos de apoio capazes de trabalhar a mais de 40 MHz. Para solucionar esse problema, foi criado o recurso de Multiplicação de Clock, através do qual o processador trabalha internamente à uma velocidade maior do que a da placa mãe.” Nos processadores atuais, “o clock interno geralmente é obtido através de um multiplicador do clock externo. Por exemplo, se o clock externo for de 66 MHz, o multiplicador terá de ser de 3x para fazer com o que processador funcione a 200 MHz.” Assim, tem-se o exemplo do Pentium-200, que opera com clock externo de 66 MHz e multiplicador 3x. A tabela que se segue mostra valores de clocks internos e externos, bem como os multiplicadores, de alguns processadores. Por essa tabela é possível justificar porque processadores que apresentam o mesmo clock podem apresentar diferentes desempenhos, como foi dito no capítulo 2. Tome-se três modelos de processadores: o 486 DX4 100, o Pentium 100 e o Cyrix 6x86-PR120+. Todos eles apresentam o mesmo clock interno (100 MHz), no entanto acessam a memória em velocidades diferentes (possuem clocks externos diferentes) o que quer dizer que esses processadores apresentam diferentes desempenhos. A título de comparação, utilizando apenas esses critérios (clock interno e externo), pode-se dizer que entre os processadores escolhidos para esse exemplo, o de maior desempenho é o Pentium 100, pois ele possui o acesso mais rápido à memória (66 MHz). Em seguida viria o Cyrix 6x86-PR120+ (50 MHz) e o 486 DX4 100 (33 MHz). “A grande diferença entre o clock interno e o clock externo em processadores 75

modernos é uma grande barreira a ser transposta visando aumentar o desempenho do computador”, como se observa pelo exemplo do 486DX2, que opera internamente a 50 MHz e acessa outros dispositivos a 25 MHz, e também pela tabela. E esse problema cresce juntamente com o clock interno dos processadores: um Pentium III de 600 MHz, por exemplo, tem que reduzir sua velocidade em 6x quando tem que consultar algum dispositivo externo. Durante esse processo, ele funciona como se fosse um processador de 100 MHz. “Diversas técnicas são usadas para minimizar o impacto dessa diferença de clock. Um deles é o uso de memória cache dentro do processador.” Processador 486 SX 25 486 DX2 50 486 DX4 100 Pentium 100 Pentium 133 Pentium 166 Pentium 200 Cyrix 6x86-PR120+ Cyrix 6x86MX-PR233 Cyrix 6x86MII-PR300 AMD-K5-PR75 AMD-K5-PR133 AMD-K6-PR166 AMD-K6-PR200 AMD-K6-2-PR350 AMD-K6-2-PR400 AMD-K6-3-PR450 Pentium II 233 Pentium II/Celeron 266 Pentium II/Celeron 300 Pentium II/Celeron 333 Pentium III 500 Pentium III 550 Pentium III 600 Clock Interno 25 MHz 50 MHz 100 MHz 100 MHz 133 MHz 166 MHz 200 MHz 100 MHz 200 MHz 300 MHz 75 MHz 100 MHz 166 MHz 200 MHz 350 MHz 400 MHz 450 MHz 233 MHz 266 MHz 300 MHz 333 MHz 500 MHz 550 MHz 600 MHz Clock Externo 25 MHz 25 MHz 33 MHz 66 MHz 66 MHz 66 MHz 66 MHz 50 MHz 66 MHz 66 MHz 50 MHz 66 MHz 66 MHz 66 MHz 100 MHz 100 MHz 100 MHz 66 MHz 66 MHz 66 MHz 66 MHz 100 MHz 100 MHz 100 MHz Fator Multiplicador 1,0 x 2,0 x 3,0 x 1,5 x 2,0 x 2,5 x 3,0 x 2,0 x 3,0 x 3,5 x 1,5 x 1,5 x 2,5 x 3,0 x 3,5 x 4,0 x 4,5 x 3,5 x 4,0 x 4,5 x 5,0 x 5,0 x 5,5 x 6,0 x

Tabela 3.3. Clocks internos e externos de alguns processadores. Tabela adaptada do site http://br.geocities.com/washinbueno/processadortutorial.html. Acesso em 09/10/2007.

3.6 Memória cache [LVC02], [MON01], [MAC02]
Assim como aconteceu com a comunicação entre o processador e os dispositivos de entrada e saída, a comunicação entre o processador e a memória também passou a ser afetada pelo aumento da velocidade dos processadores com o passar dos anos. “Um já ultrapassado Pentium II de 300 MHz, por exemplo, é mais de 1000 vezes mais veloz que o velho 8088 usado no IBM PC XT. As memórias também 76

experimentaram avanços significativos, porém mais modestos. No início dos anos 80, eram comuns as memórias DRAM com 250 ns de tempo de acesso. Em meados dos anos 80, este tempo de acesso chegou à casa dos 60 ns, e no final dos anos 90, aos 10 ns. Portanto essas memórias são apenas cerca de 25 vezes mais rápidas que há 20 anos atrás, enquanto os processadores são no mínimo 1000 vezes mais rápidos. O resultado disso é um grande desequilíbrio entre a velocidade do processador e a velocidade da memória.” Como já foi dito no capítulo 2, uma maneira de reduzir a diferença de velocidade entre o processador e a memória principal foi criar memórias próprias para o processador, com maior velocidade de transferência de dados, que são os registradores, que estão no topo da hierarquia de memória (apresentada na figura 2.4), e as memórias cache, que estão situadas na hierarquia de memória logo abaixo dos registradores. Uma vez estando situadas no topo da hierarquia de memória, sabese que estas memórias são voláteis, possuem alta velocidade, apresentam alto custo e baixa capacidade de armazenamento. “O propósito do uso da memória cache é minimizar a disparidade existente entre a velocidade com que o processador executa instruções e a velocidade com que dados são acessados na memória principal.” A memória cache possui tempos de acesso menores que 5 a 7 ns, inferiores aos da memória principal (esta possui tempo de acesso entre 7 e 15 ns), e atua como memória intermediária na transferência de dados entre a memória principal e o processador. As memórias cache passaram a ser utilizadas a partir do processador 486, lançado em 1989. Os processadores anteriores a esse não as utilizavam. Isso porque, apesar de as memórias dessa época serem relativamente lentas, os processadores também o eram, e a transferência de dados entre esses dois dispositivos se dava de forma sincronizada, sem a necessidade de uma memória intermediária. “Os processadores 386 não tinham cache interna, e nem precisavam dela, enquanto operavam com até 20 MHz. Com o lançamento de versões de 25, 33 e 40 MHz, o baixo desempenho da memória DRAM obrigou os fabricantes a acrescentarem memória cache.” “Em 1989 surgiu o processador Intel 80486, o primeiro a utilizar cache. Com clock de 25 MHz e ciclos de 80 ns, necessitava de memórias com menor tempo de acesso, porém na época as mais rápidas eram de 100 ns, tempo muito grande para aquele processador. Os 8 kB de cache, localizadas dentro do próprio processador (cache interna) permitiam o funcionamento do processador com bom desempenho, mesmo com a memória DRAM mais lenta que o necessário.” Se um processador não possui memória cache, a cada ciclo de instrução realizado, ele vai sempre acessar, pelo menos uma vez, a memória principal. Considerando-se que o acesso à memória ocorre atualmente de forma bem mais lenta que a execução de uma instrução, fica claro que o processador permanece ocioso enquanto espera a conclusão de um acesso à memória, comprometendo assim o desempenho do sistema. O processador tem acesso à memória cache de forma quase instantânea, reduzindo o tempo que ele fica ocioso esperando uma transferência de dados da memória e aumentando, assim, o desempenho do sistema. O funcionamento dessa memória baseia-se no princípio da localidade, que será explicado a seguir.

3.6.1 O Princípio da Localidade e o funcionamento da memória cache
“Pesquisas e amostragens realizadas por diversos cientistas concluíram que a execução dos programas se realiza, na média, em pequenos grupos de instruções. [...] Assim, os programas não são executados de modo que a MP seja acessada randomicamente, como seu nome sugere (RAM). Se um programa acessa uma 77

palavra da memória [...], há uma boa probabilidade de que o programa acesse proximamente uma palavra subseqüente ou de endereço adjacente àquela palavra que ele acabou de acessar”, ou mesmo que o programa acesse essa palavra novamente em um curto espaço de tempo. Esse é o chamado princípio da localidade. O funcionamento da memória cache se baseia nesse princípio. Ela armazena uma pequena parte dos programas e dados que estão na memória principal e que estão sendo utilizados pelo processador. Sempre que ele for acessar a memória principal, primeiramente ele verifica se a informação (dado ou instrução) que procura se encontra na memória cache. Caso seja encontrada (chama-se de acerto ou cache hit), o processador faz o acesso à memória cache, dispensando o acesso à memória principal. Se a informação desejada não estiver na cache (falta ou cache miss), então o processador acessa a memória principal e transfere a informação que procura e mais um bloco de informações subseqüente para a memória cache, considerando que as informações contidas nesse bloco serão utilizadas logo em seguida (princípio da localidade). “O resultado é que na maior parte do tempo, o processador encontra dentro da cache os dados que procura”, diminuindo assim o tempo de acesso à memória e aumentando o desempenho do sistema. “Apesar de existir neste mecanismo um tempo adicional para a transferência de dados entre as memórias, este tempo é compensado pela melhora do desempenho, justificado pelo alto percentual de referências a endereços que são resolvidos na cache.” “A taxa de acertos (hits) mais comum varia entre 80% e 99%, isto é, na pior das hipóteses, em cerca de 80% das vezes em que a UCP procura uma instrução ou dado ela os encontra na memória cache.”

3.6.2 Níveis e evolução da memória cache
Assim como toda a memória de um computador é dividida em vários dispositivos, que funcionam obedecendo um sistema hierárquico dividido em níveis, também a memória cache é dividida em níveis de forma a otimizar a transferência de dados dentro do sistema. Os processadores atualmente possuem dois ou até três diferentes níveis de memória cache, cada um com diferentes características: cache L1 (do inglês Level 1, que quer dizer Nível 1) ou primária, cache L2 ou secundária e cache L3 ou terciária. Antigamente a cache não era classificada quanto ao seu nível, mas sim quanto à sua localização, se ela era interna ou externa ao processador. Fazendo uma analogia, a cache interna seria a cache L1 que se tem hoje e a externa, a cache L2. É importante ressaltar mais um detalhe do funcionamento das memórias cache antes de prosseguir com a explicação sobre a sua evolução: a utilização de mais de uma memória cache não altera o funcionamento do sistema. Permanecem os mesmos princípios explicados nos capítulos anteriores. As memórias de níveis mais baixos possuem maior custo e menor capacidade que as memórias de níveis mais altos. No entanto, elas possuem os menores tempos de acesso (maior velocidade) e, por isso, são as memórias “preferidas” do processador. Assim, quando necessita de um dado que está armazenado na memória, o processador o procura primeiramente na cache L1. Se ele não o encontrar na L1, buscará na L2 (se houver uma). Estando o dado na cache L2, ele o transferirá, junto a mais um bloco de dados, para a cache L1, e passará a acessar esta. Se o dado procurado também não estiver na cache L2, ele procurará na L3 (se houver), se não encontrar, na memória principal e, finalmente, se o dado ainda não for encontrado, na memória secundária. A cache L1 é localizada no interior do processador e possui velocidade de acesso igual à deste, pois ambos são fabricados com os mesmos elementos. Ela é a 78

que tem maior velocidade (possui menor tempo de acesso e, conseqüentemente, maior custo) e menor capacidade dentre as memórias cache. “Apesar de as memórias cache L1 serem sempre internas, isto é, construídas com os mesmos elementos do processador, pode haver diferenças de arquitetura entre elas, que modificam seu desempenho. É o caso, por exemplo, de um processador com cache de maior tamanho que outro ou se um processador possui ou não a cache dividida, cache L1 de instruções e cache L1 de dados; a maior capacidade e/ou a divisão da cache interna, L1, podem tornar um processador mais rápido que outro, até mesmo se esse outro processador possui um processador mais rápido. Por exemplo, o processador Pentium MMX possui cache dividida de 32 kB (16 kB para dados e 16 kB para instruções, sendo normalmente especificado assim: cache 16 + 16), enquanto o Pentium I original possui cache de 16 kB (8 + 8), sendo, assim, o primeiro mais rápido que o Pentium original devido à diferença de capacidade da cache L1.” A primeira memória cache L1 surgiu com o lançamento do 486. Este, graças a implementação de uma memória cache de 8 kB e de outras melhorias na sua arquitetura (que serão vistas mais adiante, em Evolução dos Processadores), possuía um desempenho significativamente maior que o seu antecessor, o 386, que vigorava na época e que não possuía memória cache. Percebendo que, utilizando uma memória cache, poderia-se aumentar o desempenho do processador, as empresas fabricantes de placas-mãe passaram a desenvolver modelos de placas para o 386 que traziam embutida uma memória cache. Surgiram, então, as primeiras memórias cache L2, embora elas só ganhassem essa denominação após o surgimento do Pentium Pro. Nessa época elas eram chamadas de cache externa. “Um processador 386 de 40 MHz e 128 kB de cache externa era praticamente tão veloz quanto um 486 de 25 MHz e 8 kB de cache interna, mas a opção do 386 era muito mais barata.” E tanto era perceptível a melhoria de desempenho com a simples adição de uma cache externa ao processador que logo surgiram placas-mãe com cache externa também para o 486. “Eram comuns placas para 486 com 256 kB de cache externa, além dos 8 kB de cache interna existentes no processador.” Os processadores seguintes continuaram a utilizar duas memórias cache, sendo uma interna e outra externa, assim como o 486. O próximo avanço das memórias cache ocorreu com o lançamento do Pentium Pro, que trouxe ambas as caches localizadas internamente. Como não fazia mais sentido classificar as memórias cache de acordo com sua localização (interna e externa), a partir desse processador elas passaram a ser classificadas de acordo com seu nível (L1, L2 e, mais adiante, L3). A cache L2 então pode estar localizada tanto no exterior do processador (que é o caso de processadores mais antigos, como o Pentium e o Pentium MMX) quanto no interior deste (o que acontece nos processadores atuais a partir do Pentium Pro). Ela opera na velocidade do barramento de dados, sendo por isso mais lenta que a cache L1. Sua capacidade de armazenamento, no entanto, é bem maior. A primeira cache L2, usada no Pentium Pro, possuía capacidade de armazenamento de 256 kB, enquanto que a cache L1 desse mesmo processador era de 16 kB. O tamanho da cache L2, assim como o tamanho da cache L1, também influencia no desempenho do processador. “Processadores Athlon e Duron são idênticos, exceto pelo tamanho da cache L2 (256 kB para o Athlon e 64 kB para o Duron).” Ao comparar o desempenho desses dois processadores, o Athlon leva vantagem, mesmo se ele tiver o mesmo clock do Duron, o que mais uma vez prova que clock não é sinônimo de desempenho. Prosseguindo com a evolução das memórias cache, a cache L2 recebeu dois melhoramentos que aumentaram consideravelmente o seu desempenho e o do sistema como um todo. Foram eles: a utilização da cache L2 integrada no núcleo e o conseqüente aumento de sua velocidade. 79

“Integrar a cache L2 no núcleo significa produzir um processador contendo na mesma base de silício, com uma única cavidade, o núcleo e a cache L2.“ Isso foi possível graças à miniaturização dos circuitos que compõem os processadores. “Além do menor custo, a cache L2 integrada ao núcleo do processador resulta em maior desempenho, já que os acessos à cache podem ser feitos com maior velocidade.” “O primeiro processador a integrar a cache L2 no seu núcleo foi o Celeron. Posteriormente a mesma técnica passou a ser usada pelo Pentium III”. Para se ter uma idéia de como a inserção da cache L2 no núcleo aumenta o desempenho, podese comparar duas versões do Pentium III: Katmai e Coppermine. A cache L2 da versão Katmai, que era o Pentium III original, tinha capacidade de 512 kB e era externa ao núcleo. A versão Coppermine integrou a cache L2 no núcleo e, mesmo tendo apenas metade do tamanho da cache do Katmai, 256 kB, sua cache L2 oferecia melhor desempenho, pois operava com um clock duas vezes maior. A utilização da cache L2 integrada no núcleo foi o que permitiu o seu aumento de velocidade. Finalmente, terminando a história da evolução das memórias cache, a inserção da cache L2 no núcleo acabou dando margem ao surgimento da cache L3 nos processadores K6-3 da AMD, de forma semelhante ao que aconteceu com o 486, que já possuía uma cache interna como cache L1 e aproveitava a cache que vinha na placa-mãe como cache L2. O K6-III já possuía em seu núcleo as caches L1 e L2, ambas operando na mesma freqüência do processador, e podia ser instalado em placas-mãe para K6-2, que já tinham cache externa. A cache da placa-mãe passava a ser então a cache L3. “Estando o núcleo operando a 400 MHz, as transferências feitas entre o processador, a cache L1 e a cache L2 (internas) são feitas na mesma freqüência. Para o modelo de 450 MHz, essas transferências são feitas a 450 MHz. Em ambos os modelos, as transferências entre a cache L2 e a L3 (externa), e entre a cache L3 e a DRAM são feitas a 100 MHz.” Processador 386 486 Pentium Pentium MMX Pentium Pro Pentium II Celeron Pentium III AMD Duron AMD Athlon Pentium 4 Athlon XP Pentium M Athlon XP-M Itanium I Itanium II Athlon 64 L1 8 kB 8+8 16 + 16 8+8 16 + 16 16 + 16 64 + 64 64 + 64 8 64 + 64 64 64 + 64 ? 16 + 16 64 + 64 Tamanho da Cache L2 L3 externa externa externa 256 kB a 1 MB 256 a 512 kB 0 a 128 kB 256 a 512 kB 64 kB 256 kB 256 a 512 kB 256 a 512 kB 1 a 2 MB 2MB 256 a 512 kB ? 2 a 4 MB 256 kB 1,5 a 9 MB 512 kB a 1 MB -

Tabela 3.4. Evolução das memórias cache. Tabela adaptada de [NUN06] e [LVC02]

80

3.7 Número de registradores [ALEX02]
O número de registradores é mais uma variável que influencia no desempenho de um processador. “Pelo fato dos registradores armazenarem dados que serão requisitados pela CPU, e possuírem o menor tempo de acesso, a quantidade de registradores influenciam no desempenho do processador, pois uma arquitetura que possui uma vasta quantidade de registradores pode armazenar vários dados e evita que a CPU fique ociosa durante o seu processamento.” Pode-se encontrar dentro de um processador, normalmente, entre 8 e 32 registradores, como foi visto no capítulo 2.

3.8 Co-processador matemático [LVC02], [MON01], [EMER03]
O co-processador matemático, visto no capítulo 2, é o componente do processador responsável pela realização dos cálculos que envolvem números reais, dispensando a UAL desses cálculos mais complexos e liberando-a para realizar cálculos mais simples, com números inteiros, e outras instruções. Os primeiros co-processadores matemáticos eram externos ao processador. Nessa época, sempre que a Intel lançava um novo processador, ela também lançava um co-processador matemático compatível para ele. Quem quisesse utilizá-lo (normalmente, as pessoas que precisavam de um co-processador matemático eram apenas engenheiros, arquitetos e cientistas), deveria comprá-lo (ele era vendido separadamente) e encaixá-lo em um local específico na placa-mãe. Um exemplo conhecido de co-processador matemático é o 8087, usado em conjunto com os processadores 8086 e 8088. “Enquanto o 8086 e o 8088 faziam apenas adição, subtração, multiplicação e divisão de números inteiros de 32 bits, o 8087 podia realizar essas mesmas operações, e ainda uma grande quantidade de funções algébricas (raiz quadrada, logaritmo, exponencial, etc), trigonométricas (seno, tangente, arco tangente, etc) e hiperbólicas (seno hiperbólico, cosseno hiperbólico, etc), com números reais de 80 bits. Programas que utilizam grandes quantidades de cálculos deste tipo ficavam incrivelmente mais velozes quando usavam o 8087. Normalmente, os softwares eram fornecidos simultaneamente em duas versões, uma para operar através do 8086/8088, e outra para usar o 8087. Quando o PC não tinha o 8087 instalado, mesmo assim podia realizar esses cálculos, mas estes eram feitos por etapas, o que era muito mais demorado.” Processador 8086 / 8088 80286 80386SX 80386DX Co-processador matemático 8087 80287 80387SX 80387DX

Tabela 3.5. Co-processadores matemáticos dos primeiros processadores. Tabela retirada do livro Hardware Total.

81

Até o processador 80386DX, o co-processador matemático era externo ao processador. A partir do 486DX, praticamente todos os processadores (existem pouquíssimas exceções, que datam da época desse mesmo processador) trouxeram embutidos em seu chip o co-processador matemático. Atualmente, ele é chamado de Unidade de Ponto Flutuante ou FPU (do inglês, Float Point Unit), devido ao fato de os números reais serem representados pelo computador em ponto flutuante. “Hoje em dia, além das aplicações sérias já citadas, existe uma categoria de programas que faz uso intensivo da unidade de ponto flutuante: os jogos tridimensionais. A geração de imagens tridimensionais demanda uma grande quantidade de cálculos, portanto a unidade de ponto flutuante passou a ser um item essencial, mesmo para os usuários domésticos.”

3.9 Execução de instruções em paralelo [MON01], [MAC02], [AND00], [MOR02]
Ao descrever o funcionamento de um processador genérico no capítulo 2, foi observado que a execução do ciclo de instrução é composta por várias etapas, realizadas em seqüência, e que as instruções também são executadas em seqüência, isto é, uma se inicia após o término da anterior. Quanto ao primeiro aspecto, os processadores atuais permanecem semelhantes ao processador genérico descrito no capítulo 2: cada ciclo de instrução é composto por várias etapas, realizadas em seqüência. No entanto, os processadores atuais diferem do genérico quanto ao segundo aspecto (instruções executadas em seqüência, uma após o término da outra). Esta diferença surgiu no decorrer da evolução dos processadores, quando o pipelining foi introduzido na arquitetura destes. O pipelining é apenas uma das diferentes formas de processamento paralelo existentes atualmente. Nesse capítulo, o estudo sobre execução de instruções em paralelo se concentrará no pipelining. As outras formas de processamento paralelo serão vistas no capítulo 4, no decorrer do estudo sobre a evolução dos processadores.

3.9.1 Metodologia Tipo Linha de Montagem ou Pipelining
Grosso modo, pipelining (esse termo será usado ao invés do seu correspondente em português, dada a sua popularidade na área de Informática) é “a capacidade que o processador tem de fazer o processamento através de fases, tornando-se, assim, muito mais otimizado e rápido”. Esse conceito “se assemelha muito ao de uma linha de montagem, onde uma tarefa é dividida em uma seqüência de subtarefas, executadas dentro da linha de produção.” Tome-se o exemplo de uma linha de montagem de carros. Ela é dividida em vários setores, cada um responsável por fabricar um componente do automóvel: carroceria, motor, rodas, parte elétrica, bancos, espelhos e acabamento final. Cada carro fabricado nessa linha de montagem passa por cada um desses setores. O setor que inicia a produção de um carro (o primeiro setor, que fabrica a carroceria) não precisa esperar que ele fique pronto para iniciar a produção de outro carro. Ele passa o carro que havia iniciado a produzir para o segundo setor e, enquanto este se encarrega de fabricar o motor desse carro, inicia a produção de um segundo carro, fabricando a sua carroceria. Isso acontece com todos os setores da linha de montagem. Assim, quando o primeiro setor estiver fabricando a carroceria para o terceiro carro, o segundo setor 82

estará fabricando o motor para o segundo carro e o terceiro setor estará produzindo as rodas para o primeiro carro. “Essa produção funciona em paralelo para diferentes tipos de carro.” O processo de pipelining pode ser caracterizado, segundo Monteiro [MON01], por dois fundamentos básicos: • • a divisão do processo em estágios de realização independentes um do outro; e um novo produto inicia seu processo de fabricação ou execução antes do anterior concluir seu processo.

“Da mesma forma que em uma linha de montagem, a execução de uma instrução pode ser dividida em subtarefas, como as fases de busca da instrução e dos operandos, execução e armazenamento dos resultados. O processador, através de suas várias unidades funcionais pipeline, funciona de forma a permitir que, enquanto uma instrução se encontra na fase de execução, uma outra instrução possa estar na fase de busca simultaneamente.”

Figura 3.1. Exemplo de arquitetura pipeline com quatro estágios. Imagem retirada do livro Arquitetura de Sistemas Operacionais. Analisando a figura 3.1, percebe-se como o pipelining aumenta consideravelmente o desempenho dos processadores: se cada estágio (ou unidade) gastar o mesmo período de tempo para ser realizado (o que, na prática, nem sempre vai ocorrer), uma instrução será executada em 4 unidades de tempo. No processador da figura, com pipelining, a execução de 4 instruções consome 7 unidades de tempo. A execução dessas mesmas 4 instruções em um processador sem pipelining (execução seqüencial) levaria um tempo total de 16 unidades de tempo. Ambos processadores terminariam a primeira instrução no mesmo intervalo de tempo. No entanto, enquanto o processador sem pipelining iria começar a segunda instrução, no processador da figura, com pipelining, ela já estaria em fase final, e assim ocorreria com o restante das instruções. 83

A presença do pipelining em um processador faz com que ele “seja capaz de processar simultaneamente, em um único ciclo de clock, várias instruções que normalmente demorariam vários ciclos para serem processadas.” A arquitetura pipeline de cada processador pode ser diferente com relação ao número de estágios e a outras implementações presentes no processamento. Mais informações sobre processamento pipelining serão vistas ao longo do estudo da evolução dos processadores. Por enquanto, o que interessa saber são os seus fundamentos básicos e que “quanto maior a quantidade de estágios, mais superposição e aumento de velocidade” do processador.

3.10 Análise de desempenho (benchmark) [LVC02], [MAC02], [ALEX02]
“Uma forma de avaliar o desempenho de um sistema computacional é através de ferramentas capazes de quantificar em dados o desempenho de um computador. Essas ferramentas são conhecidas como Benchmarks, e são programas desenvolvidos especialmente para trabalhar na medida de desempenho.” “Existem várias medidas para quantificar o desempenho de um sistema computacional.” Uma delas, bastante usada desde os primeiros processadores, é “o intervalo de tempo entre os pulsos de um sinal de clock, conhecido como ciclo de clock.” Já foi visto, no capítulo anterior, que um ciclo de clock está relacionado com a execução de uma instrução pelo processador. “A princípio, quanto maior é o clock de um processador, maior é o seu desempenho”, uma vez que quanto maior o clock, maior a quantidade de instruções processadas em um mesmo intervalo de tempo. Logo, comparando o tempo que dois processadores levam para executar uma mesma quantidade de instruções, é possível avaliar seu desempenho. Um programa de benchmark executa um conjunto de programas em diferentes tipos de sistemas e compara o tempo que cada sistema levou para executar os mesmos programas. “A escolha dos programas deve ser criteriosa para refletir os diferentes tipos de aplicação.” Dois conjuntos diferentes de programas executados em um mesmo processador podem apresentar índices de desempenho diferentes, pois foram avaliados diferentes critérios do mesmo processador. Por esse motivo os programas executados pela maioria dos benchmarks realizam operações envolvendo apenas o processador e a memória, sem incluir operações com dispositivos de entrada e saída. Assim, o tempo que o processador fica ocioso esperando pela conclusão de uma operação externa não é levado em conta na avaliação de desempenho do processador, o que a torna a mais precisa possível. É importante ressaltar que as medidas utilizadas para avaliar o desempenho do processador variam não só em função do programa de benchmark utilizado, como também em função da evolução dos processadores, ou seja, à medida que os processadores vão evoluindo e novas tecnologias vão sendo incorporadas à sua arquitetura, determinadas medidas vão se tornando inadequadas para medir seu desempenho com precisão e vão sendo substituídas por outras. “No tempo do PC XT, quando apenas o processador 8088 era usado, bastava indicar o seu clock, e automaticamente poderia se ter uma idéia da sua velocidade de processamento. Por exemplo, um XT de 10 MHz era duas vezes mais veloz que um XT de 5 MHz.” Isso pode ser afirmado porque, como já foi visto, a freqüência do relógio define a quantidade de instruções executadas pela UCP. Então, o processador de 10 MHz executa uma média de 10 milhões de instruções por segundo (é uma média porque a 84

maioria das instruções leva um ciclo de relógio para serem executadas, mas existem instruções que podem levar mais de um ciclo, como por exemplo, um acesso à memória) e o processador de 5 MHz, 5 milhões de instruções por segundo. Em um segundo, o processador de 10 MHz executa o dobro de instruções que o processador de 5 MHz executa nesse mesmo intervalo de tempo e por isso ele é duas vezes mais rápido. No entanto, percebeu-se que o clock não era uma medida muito precisa. Durante muitos anos, o desempenho dos processadores usados nos PCs foi estimado através de comparações com o IBM PC XT. Por exemplo, o 80286 de 6 MHz usado no IBM PC AT era cerca de 5,7 vezes mais rápido que o IBM PC XT. O primeiro PC XT não operava com 5 MHz, e sim, com 4,77 MHz. Portanto, um XT de 10 MHz era cerca de 2,09 vezes mais veloz que o XT original.

85

Capítulo 4 – A Evolução dos Processadores
A primeira geração da arquitetura Intel para PCs
Processadores: Intel 8086 e Intel 8088 Intel 8086 Descrição: este processador deu início a arquitetura x86 dos processadores desenvolvidos para computadores pessoais, fabricados pela Intel, e foi lançado em 1978. Era o primeiro processador de 16 bits. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Foram fabricados modelos com clocks internos de 4,77, 8 e 10 MHz e o clock interno foi a única diferença entre os modelos desse processador. Informações adicionais: Faz parte da primeira geração da atual arquitetura concebida pela Intel e que, naturalmente, foi evoluindo ao longo do tempo até os dias atuais. Intel 8086 Intel 1ª 1978 29.000 3µ 16 bits 16 bits 20 bits 1 MB 4.77, 8 e 10 MHz 1x 4.77, 8 e 10 MHz Externo (8087) 2 DIP DIP 2,5 W

86

Intel 8088 Descrição: era internamente quase idêntico ao 8086, a diferença consistia no seu barramento de dados que operava a 8 bits. Foi desenvolvido às pressas pela Intel, para que este fosse usado no computador pessoal da IBM: o IBM PC. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Foram fabricados modelos com clocks internos de 4,77, 8 e 10 MHz e o clock interno foi a única diferença entre os modelos desse processador. Intel 8088 Intel 1ª 1979 29.000 3µ 16 bits 8 bits 20 bits 1 MB 4.77, 8 e 10 MHz 1x 4.77, 8 e 10 MHz Externo (8087) 2 DIP DIP 2,5 W

Figura 4.1. Os processadores 8086 (à esquerda) e 8088 (à direita). Imagens retiradas da Internet. Disponíveis em <http://www.cpuworld.com/CPUs/8086/index.html> e <http://www.cpuworld.com/CPUs/8088/index.html>. Acesso em 19/10/2008.

87

Informações adicionais: É considerada uma versão “piorada”, econômica ou júnior do 8086. Mas mesmo assim era favorável o uso do 8088 porque não existiam circuitos de apoio de 16 bits no mercado, e sobretudo, os que existiam eram muito mais caros. O 8088 possibilitou o uso de componentes de 8 bits que já eram usados nos computadores da época, e fazendo aumentar o desempenho e competir na mesma faixa de preços.

A segunda geração da arquitetura Intel para PCs
Processador: Intel 286. Intel 286 Descrição: este processador resgatou o projeto original do 8086 (é um processador inteiramente de 16 bits) e trouxe vários recursos adicionais. Tinha um aumento apreciável de desempenho e foi usado no IBM PC AT, que foi lançado em 1984. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Foram fabricados modelos com clocks internos de 6, 8, 10, 12 e 20 MHz. Como nessa época ainda não havia multiplicação de clock (o fator multiplicador é igual a 1x), o clock externo do processador era igual ao seu clock interno. O clock interno e o clock externo foram as únicas diferenças entre os modelos desse processador. Informações adicionais: A principal inovação desse processador foi a definição de dois modos de operação: o modo real e o modo protegido. 88 Intel 286 Intel 2ª 1982 134.000 1,5µ 16 bits 16 bits 24 bits 16 MB 6, 8, 10, 12 e 20 MHz 1x 6, 8, 10, 12 e 20 MHz Externo (80287) 4 PGA PGA 3,3 W

Figura 4.2. O processador 286 (à esquerda) e o PC AT (à direita). Imagens retiradas da Internet. Disponíveis em <http://www.cpu-collection.de/? l0=i&i=1685> e <http://www.gdhpress.com.br/hardware/leia/index.php?p=cap18>. Acesso em 23/10/2008.

A terceira geração da arquitetura Intel para PCs
Processador: Intel 386 (fabricado em duas versões: 386DX e 386SX) Intel 386DX Descrição: versão original do processador 386, lançado em outubro de 1985. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático 89 Intel 386DX Intel 3ª 1985 275.000 1,5µ e 1µ 32 bits 32 bits 32 bits 4 GB 16, 20, 25, 33 e 40 MHz 1x 16, 20, 25, 33 e 40 MHz Externo (80387DX)

Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo

6 PGA PGA 2,5 W

Figura 4.3. O processador 386. Imagem retirada da Internet. Disponível em <http://www.cpu-collection.de/? l0=i&i=1212>. Acesso em 19/10/2008. Modelos: Foram lançados modelos desse processador com diferentes clocks internos, clocks externos e intervalos internos. Com relação aos clocks interno e externo (que eram iguais, já que nessa época ainda não havia multiplicação de clock), foram fabricados modelos com clocks de 6, 8, 10, 12 e 20 MHz. Já com relação ao intervalo interno, foram fabricados modelos com intervalos internos de 1,5µ e de 1µ. Informações adicionais: Considerado um dos mais importantes lançamentos da Intel, porque foi o primeiro processador de 32 bits da história e seu conjunto de instruções, conhecido como conjunto de instruções x86, permanece em uso até os dias atuais, com apenas algumas alterações. Nesse processador, os modos real e protegido receberam diversos aperfeiçoamentos, entre os quais a adição de uma instrução para voltar do modo protegido para o modo real, e foi acrescentado o modo virtual 8086. Seu custo era caro porque tinha diversos aperfeiçoamentos substanciais e porque era preciso que todos os circuitos de apoio trabalhassem a 32 bits. Intel 386SX Descrição: para baixar o custo, a Intel lançou uma versão de desempenho inferior, que funcionava internamente com palavras de 32 bits, mas enviava dados de 16 bits externamente. Para diferenciar a versão mais simples da versão “mais potente”, o sufixo “SX” foi acrescentado na versão de 16 bits (barramento externo). Resumo: Características Fabricante Geração Ano de lançamento Intel 386SX Intel 3ª 1988

90

Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos:

275.000 1,5µ 32 bits 16 bits 24 bits 16 MB 16, 20, 25, 33 e 40 MHz 1x 16, 20, 25, 33 e 40 MHz Externo (80387SX) 6 PGA PGA 2,5 W

Foram fabricados modelos com clocks internos de 16, 20, 25, 33 e 40 MHz. Como nessa época ainda não havia multiplicação de clock (o fator multiplicador é igual a 1x), o clock externo do processador era igual ao seu clock interno. O clock interno e o clock externo foram as únicas diferenças entre os modelos desse processador. Informações adicionais: Esta arquitetura permitiu que fossem aproveitados os mesmos periféricos usados em placas de micros 286, tornando as máquinas baseadas no 386SX muito mais acessíveis.

A quarta geração da arquitetura Intel para PCs
Processador: Intel 486 (fabricado em quatro versões: 486DX, 486SX, 486DX2 e 486DX4). Intel 486DX Descrição: versão original do processador 486, lançado em abril de 1989. Este processador não apresentou muitos melhoramentos em relação ao 386. A principal diferença foi a inclusão do cache L1 e do coprocessador aritmético como um item de série, o que o tornou quase 2x mais rápido que um 386 de mesma freqüência. Esses componentes até hoje vêm incluídos nos processadores.

91

Figura 4.4. O processador 486. Imagem retirada da Internet. Disponível em <http://www.tomshardware.com/reviews/mother-cpu-charts-part-1,943-4.html>. Acesso em 31/03/2009. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Foram lançados diferentes modelos desse processador, que diferem entre si pelo intervalo interno, pelos clocks interno e externo, pelo tipo de soquete e pelo consumo. Essas diferenças são citadas na tabela acima. Informações adicionais: Curioso notar que os tamanhos da palavra e dos barramentos de dados, interno e externo, e de endereços permaneceram os mesmos para todas as versões do 486, mesmo nas versões de baixo custo, diferente do que ocorreu com o 386. Intel 486SX Descrição: essa é a versão de baixo custo do 486, diferenciada pelo sufixo “SX”. Vinha sem o coprocessador matemático e possuía freqüências de operação menores, mas trabalhava com dados de 32 bits. Resumo: Características Fabricante Geração 92 Intel 486SX Intel 4ª Intel 486DX Intel 4ª 1989 1,2 milhões 1µ e 0,8µ 32 bits 32 bits 32 bits 4 GB 25, 33 e 50 MHz 1x 25, 33 e 50 MHz 8 kB Unificada Interno 5 PGA Soquetes 1, 2 e 3 3a6W

Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos:

1991 0,9 milhões 1µ e 0,8µ 32 bits 32 bits 32 bits 4 GB 16, 20, 25 e 33 MHz 1x 16, 20, 25 e 33 MHz 8 kB Unificada Externo (80487SX) 5 PGA Soquetes 1, 2 e 3 3a6W

Foram lançados diferentes modelos desse processador, que diferem entre si pelo intervalo interno, pelos clocks interno e externo, pelo tipo de soquete e pelo consumo. Essas diferenças são citadas na tabela acima. Informações adicionais: Por não ter o co-processador aritmético, o 486SX era muito mais lento em aplicativos gráficos e científicos. Para os proprietários restava a opção de comprar o 487SX, que era um co-processador aritmético que era vendido separadamente e que custava quase o mesmo preço de um 486DX. Intel 486DX2 Descrição: versão do 486 que introduziu o recurso da multiplicação de clock. Trabalhava internamente com o dobro da freqüência de operação da placa-mãe ( fator multiplicador de 2x). Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Intel 486SX Intel 4ª 1992 1,2 milhões 0,8µ 32 bits 32 bits 32 bits 4 GB 20, 25 e 33 MHz 2x

93

Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos:

40, 50 e 66 MHz 8 kB Unificada Interno 5 PGA Soquetes 1, 2 e 3 3a6W

Foram lançados diferentes modelos desse processador, que diferem entre si pelos clocks interno e externo, pelo tipo de soquete e pelo consumo. Essas diferenças são citadas na tabela acima. Informações adicionais: O recurso da multiplicação de clock é usado nos processadores até hoje. Intel 486DX4 Descrição: versão do 486 que trabalhava internamente com o triplo da freqüência de operação da placa-mãe (fator multiplicador de 3x) e possuía L1 de 16 kB. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Foram lançados diferentes modelos desse processador, que diferem entre si pelos 94 Intel 486DX4 Intel 4ª 1994 1,6 milhões 0,6µ 32 bits 32 bits 32 bits 4 GB 25 e 33 MHz 3x 75 e 100 MHz 16 kB Unificada Interno 5 PGA Soquetes 1, 2 e 3 3a6W

clocks interno e externo, pelo tipo de soquete e pelo consumo. Essas diferenças são citadas na tabela acima.

A quinta geração da arquitetura Intel para PCs
Processadores: Intel Pentium e Intel Pentium MMX. Intel Pentium

Figura 4.5. Um processador Pentium. Imagem retirada da Internet. Disponível em <http://www.cpuworld.com/CPUs/Pentium/index.html>. Acesso em 27/10/2008. Descrição: primeiro processador Intel de 5ª geração, lançado em 1993. É, em termos de software, igual ao 386 e ao 486, porém apresentou aperfeiçoamentos que o permitiram ser bem mais rápido, como arquitetura superescalar, previsão de instrução de desvio e possibilidade de multiprocessamento. Os primeiros modelos desse processador tinham clocks internos de 60 e 66 MHz e suas principais características se encontram resumidas na tabela a seguir. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 95 Intel Pentium Intel 5ª 1993 3,1 milhões 0,8µ 32 bits 64 bits 32 bits 4 GB 60 e 66 MHz 1x 60 e 66 MHz 16 kB Dividida (8 + 8) 256 a 512 kB Externa

Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Intervalo interno Quantidade de transistores 0,8µ 0,8µ 0,6µ 0,6µ 0,6µ 0,6µ e 0,35µ 0,35µ 0,35µ 0,35µ 0,35µ 3,1 milhões 3,1 milhões 3,2 milhões 3,2 milhões 3,2 milhões 3,2 milhões 3,3 milhões 3,3 milhões 3,3 milhões 3,3 milhões

Interno 5 PGA Soquetes 4, 5 e 7 14,6 W e 16 W

Clock Fator Clock externo multiplicador interno 60 MHz 1x 66 MHz 1x 50 MHz 1,5x 60 MHz 1,5x 66 MHz 1,5x 60 MHz 2x 66 MHz 2x 60 MHz 2,5x 66 MHz 2,5x 66 MHz 3x 60 MHz 66 MHz 75 MHz 90 MHz

Consumo 14,6 W 16 W 8W 9W

100 MHz 10,1 W 120 MHz 12,8 W 133 MHz 11,2 W 150 MHz 11,6 W 166 MHz 14,5 W 200 MHz 15,5 W

Informações adicionais: Esse processador também trouxe como novidade a inclusão de uma instrução de identificação, que permite que os programas saibam qual processador está instalado no computador. Ela não contribuiu para o aumento do desempenho do processador, mas passou a fazer parte dos conjuntos de instruções de todos os processadores fabricados pela Intel a partir dele. Intel Pentium MMX Descrição: processador que foi lançado em 1996 para suceder o Pentium. Apresenta como principal diferença com relação ao seu antecessor o acréscimo de 57 novas instruções que visam aumentar o desempenho de aplicativos que envolvem multimídia, as instruções MMX.

Figura 4.6. Um processador Pentium MMX. Imagem retirada da Internet. Disponível em <http://www.cpu96

world.com/CPUs/Pentium/TYPE-Desktop%20Pentium%20MMX.html>. Acesso em 27/10/2008.

Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Foram fabricados modelos com clocks internos de 166, 200 e 233 MHz. O clock interno (e, conseqüentemente, o fator multiplicador, já que o clock externo se manteve) foram as únicas diferenças entre os modelos desse processador. Informações adicionais: Além das instruções MMX, outra diferença entre o Pentium e o Pentium MMX é a cache interna, que é maior no Pentium MMX, tornando-o um pouco mais rápido que o Pentium mesmo nas aplicações que não utilizam as novas instruções MMX. Intel Pentium MMX Intel 5ª 1996 4,5 milhões 0,35µ 32 bits 64 bits 32 bits 4 GB 66 MHz 2,5x, 3x e 3,5x 166, 200 e 233 MHz 32 kB Dividida (16 + 16) 256 a 512 kB Externa Interno 5 PGA Soquete 7 13,1 W, 15,7 W e 17 W

A sexta geração da arquitetura Intel para PCs
Processadores: Intel Pentium Pro, Intel Pentium II (que foi fabricado em duas versões: Klamath e Deschutes), Intel Pentium II Xeon, Intel Celeron (que, além da versão original, teve mais três versões: A, Coppermine e Tualarin), Intel Pentium III (que foi fabricado em três versões: Katmai, Coppermine e Tualatin) e Intel Pentium III Xeon (que foi fabricado em duas versões: Tanner e Cascades). Apesar dos nomes serem diferentes, esses processadores foram construídos utilizando a mesma arquitetura, batizada pela Intel de arquitetura P6, que apresenta como principais características: arquitetura híbrida CISC/RISC, execução de instruções fora de ordem, renomeamento de registradores, execução especulativa e 97

superpipeline. Obviamente, vários melhoramentos foram introduzidos a essa arquitetura à medida que novos processadores foram sendo lançados.

Intel Pentium Pro Descrição: primeiro processador Intel de sexta geração, lançado em novembro de 1995. Além de introduzir a arquitetura P6, trouxe ambas as memórias cache localizadas dentro da sua pastilha. Por isso, a partir desse processador elas passaram a ser classificadas em níveis (cache L1 e cache L2). A tabela a seguir resume em linhas gerais as principais características dos modelos de Pentium Pro. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 60 MHz 66 MHz 60 MHz 66 MHz 66 MHz 66 MHz Fator multiplicador 2,5x 2,5x 3x 3x 3x 3x Clock interno 150 MHz 166 MHz 180 MHz 200 MHz 200 MHz 200 MHz Cache L2 Consumo 256 kB 512 kB 256 kB 256 kB 512 kB 1 MB 29,2 W 35 W 31,7 W 35 W 37,9 W 43 W Intel Pentium Pro Intel 6ª 1995 5,5 milhões 0,6µ e 0,35µ 32 bits 64 bits 36 bits 64 GB 60 e 66 MHz 2,5x e 3x 150, 166, 180 e 200 MHz 16 kB Dividida (8 + 8) 256 kB a 1 MB Integrada, full-speed Interno 11 SPGA Soquete 8 29 a 38 W

Informações adicionais: Como este processador foi lançado antes do Pentium MMX, ele não possui em seu 98

conjunto de instruções as instruções MMX. Elas só foram introduzidas nos processadores de sexta geração a partir do Pentium II, que foi lançado depois do Pentium MMX.

Figura 4.7. Um processador Pentium Pro. Imagem retirada da Internet. Disponível em <http://www.cpuworld.com/CPUs/Pentium-II/TYPE-Pentium%20Pro.html>. Acesso em 27/10/2008. Intel Pentium II Klamath Descrição: versão original do Pentium II, segundo representante da sexta geração de processadores Intel para PCs, lançado em maio de 1997. As mudanças mais visíveis com relação aos seus antecessores são o novo encaixe e o novo encapsulamento, em formato de cartucho. Além disso, a cache L2 no Pentium II está na placa de circuito (discreta) e opera à metade da freqüência do processador (half-speed). Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete 99 Intel Pentium II Klamath Intel 6ª 1997 7,5 milhões 0,35µ 32 bits 64 bits 36 bits 64 GB 66 MHz 3,5x, 4x e 4,5x 233, 266 e 300 MHz 32 kB Dividida (16 + 16) 512 kB Discreta, half-speed Interno 11 SECC Slot 1

Consumo

34,8, 38,2 e 43 W

Modelos: Clock externo 66 MHz 66 MHz 66 MHz Fator multiplicador 3,5x 4x 4,5x Clock interno 233 MHz 266 MHz 300 MHz Consumo 34,8 W 38,2 W 43 W

Informações adicionais: Como este processador foi lançado depois do Pentium MMX, ele possui em seu conjunto de instruções as instruções MMX. Todos os processadores Intel de sexta geração lançados a partir dele apresentam as instruções MMX em seu conjunto de instruções.

Figura 4.8. Um processador Pentium II. Imagem retirada da Internet. Disponível em <http://www.pacificgeek.com/product.asp?ID=21934&C=201&S=-1>. Acesso em 27/10/2008. Intel Pentium II Deschutes Descrição: segunda versão do Pentium II, lançada em janeiro de 1998. Conserva as mesmas características da versão anterior, com exceção do intervalo interno, que passou a ser de 0,25µ, e dos clocks interno e externo, que são maiores nos modelos dessa versão. A tabela a seguir resume em linhas gerais as principais características do primeiro modelo de Pentium II Deschutes. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra 100 Intel Pentium II Deschutes Intel 6ª 1998 7,5 milhões 0,25µ 32 bits

Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 66 MHz 66 MHz 100 MHz 100 MHz 100 MHz Fator multiplicador 4x 5x 3,5x 4x 4,5x

64 bits 36 bits 64 GB 66 MHz 5x 333 MHz 32 kB Dividida (16 + 16) 512 kB Discreta, half-speed Interno 11 SECC Slot 1 23,7 W

Clock interno 266 MHz 333 MHz 350 MHz 400 MHz 450 MHz

Consumo 19,5 W 23,7 W 24,5 W 27,9 W 31,4 W

Intel Celeron (versão original, nome-código Covington) Descrição: para fazer concorrência à Cyrix e à AMD no mercado de computadores de baixo custo, a Intel decidiu fabricar uma versão econômica do Pentium II e assim lançou o processador Celeron. Essa é a primeira versão do Celeron, lançada em abril de 1998, nome-código Covington. Tem praticamente todas as características de um Pentium II, porém não possui nem memória cache L2 integrada nem invólucro plástico e apresenta clock externo menor. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 101 Intel Celeron Intel 6ª 1998 7,5 milhões 0,25µ 32 bits 64 bits 32 bits 4 GB 66 MHz 4x e 4,5x 266 e 300 MHz 32 kB Dividida (16 + 16)

Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos:

Interno 11 SEPP Slot 1 16,6 e 18,4 W

Foram fabricados modelos com clocks internos de 266 e 300 MHz. O clock interno (e, conseqüentemente, o fator multiplicador, já que o clock externo se manteve) foram as únicas diferenças entre os modelos desse processador. Informações adicionais: A retirada da memória cache L2 custou muito caro em termos de desempenho aos usuários dos primeiros processadores Celeron. Havia nessa época um quadro paradoxal: o Celeron era mais caro que o Pentium MMX e, no entanto, apresentava desempenho muito inferior.

Figura 4.9. Um processador Celeron com encapsulamento SEPP. Imagem retirada da Internet. Disponível em <http://www.cpuworld.com/CPUs/Celeron/index.html>. Acesso em 11/10/2008. Intel Celeron A (nome-código Mendocino) Descrição: segunda versão do Celeron, lançada em agosto de 1998, nome-código Mendocino. Conservou todas as características do Celeron original e trouxe uma memória cache L2 de 128 kB, que, ao contrário da encontrada no Pentium II, se localiza embutida dentro da pastilha do processador (integrada) e funciona na mesma frequência do processador (full-speed). As principais características do primeiro modelo dessa versão se encontram resumidas na tabela a seguir. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra 102 Intel Celeron A Intel 6ª 1998 19 milhões 0,35µ 32 bits

Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo

64 bits 32 bits 4 GB 66 MHz 4,5x 300 MHz 32 kB Dividida (16 + 16) 128 kB Integrada, full-speed Interno 11 SEPP Slot 1 19,05 W

Figura 4.10. Um processador Celeron com encapsulamento PPGA. Imagem retirada da Internet. Disponível em <http://www.cpuworld.com/CPUs/Celeron/index.html>. Acesso em 11/10/2008. Modelos: Clock externo 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz Fator multiplicador 4,5x 5x 5,5x 6x 6,5x 7x 7,5x 8x Clock interno 300 MHz 333 MHz 366 MHz 400 MHz 433 MHz 466 MHz 500 MHz 533 MHz Cache L2 Consumo 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 18,4 W 19,7 W 21,7 W 23,7 W 24,1 W 25,6 W 27,0 W 28,3 W

Informações Adicionais: Os primeiros modelos desse processador foram produzidos no mesmo formato do Pentium II, ou seja, o processador vinha soldado em uma placa de circuito e era encaixado na placa-mãe através de um slot. Depois, com a integração do cache L2 à 103

pastilha do processador, a placa de circuito tornou-se desnecessária e o Celeron A passou a ser fabricado com um novo formato de encapsulamento, chamado de PPGA, e um novo encaixe, o soquete 370, ficando muito parecido com os antigos processadores da Intel que utilizavam o soquete 7 (o Pentium e o Pentium MMX). Intel Pentium II Xeon Descrição: pensando no mercado de servidores e estações de trabalho, a Intel desenvolveu em 1998 um processador de alto desempenho baseado no Pentium II Deschutes e o chamou de Pentium II Xeon. Várias características do Pentium II foram mantidas. No entanto, a memória cache L2 do Pentium II Xeon é maior, é discreta (assim como a do Pentium II, não está integrada na pastilha do processador) e opera na mesma frequência do processador (full-speed). Além disso, a capacidade de multiprocessamento do Pentium II Xeon é maior. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 100 MHz 100 MHz 100 MHz 100 MHz 100 MHz Fator multiplicador 4x 4x 4,5x 4,5x 4,5x Clock interno 400 MHz 400 MHz 450 MHz 450 MHz 450 MHz Cache L2 Consumo 512 kB 1 MB 512 kB 1 MB 2 MB 30,8 W 38,1 W 34,5 W 42,8 W 46,7 W Intel Pentium II Xeon Intel 6ª 1998 7,5 milhões 0,25µ 32 bits 64 bits 36 bits 64 GB 100 MHz 4x e 4,5x 400 e 450 MHz 32 kB Dividida (16 + 16) 512 kB, 1 MB ou 2 MB Discreta, full-speed Interno 11 SECC Slot 2 30 a 47 W

Informações adicionais: A Intel até hoje usa o termo “Xeon” (pronuncia-se “zíon”) para diferenciar os 104

processadores de alto desempenho, desenvolvidos para o mercado de servidores e estações de trabalho, dos demais processadores, voltados para o mercado de computadores domésticos.

Figura 4.11. Um processador Pentium II Xeon. Imagem retirada da Internet. Disponível em <http://pc.watch.impress.co.jp/docs/article/980630/intel.htm>. Acesso em 11/10/2008. Intel Pentium III Katmai Descrição: primeira versão do Pentium III, que foi lançada em fevereiro de 1999. Apresenta várias semelhanças com relação ao Pentium II Deschutes, considerado seu antecessor. As principais diferenças com relação ao seu antecessor foram a introdução de 70 novas instruções ao conjunto de instruções (as instruções SSE) e a inclusão de um número de identificação, único para cada processador. As demais diferenças podem ser observadas na tabela a seguir.

Figura 4.12. Um processador Pentium III Katmai com encapsulamento SECC2. Imagem retirada da Internet. Disponível em <http://www.quietpc.ca/slot1.html>. Acesso em 27/10/2008.

105

Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Modelo Clock externo 450 500 533B 550 600 600B Fator Clock multiplicador interno Cache L2 Consumo 26,6 W 29,3 W 31,1 W 32,2 W 36,1 W 36,1 W Intel Pentium III Katmai Intel 6ª 1999 9,5 milhões 0,25µ 32 bits 64 bits 36 bits 64 GB 100 ou 133 MHz 4x e 4,5x 450 a 600 MHz 32 kB Dividida (16 + 16) 512 kB Discreta, full-speed Interno 11 SECC2 Slot 1 e 2 26 a 36 W

100 MHz 4,5x 100 MHz 5x 133 MHz 4x 100 MHz 5,5x 100 MHz 6x 133 MHz 4,5x

450 MHz 512 kB 500 MHz 512 kB 533 MHz 512 kB 550 MHz 512 kB 600 MHz 512 kB 600 MHz 512 kB

Informações adicionais: O sufixo B é acrescentado aos nomes dos modelos de Pentium III para diferenciar os modelos que possuem clock externo de 133 MHz dos modelos que possuem clock externo de 100 MHz de mesmo clock interno. Intel Pentium III Coppermine Descrição: segunda versão do Pentium III, lançada em outubro de 1999. Apresenta alguns aperfeiçoamentos com relação à versão anterior, como menor intervalo interno, memória cache L2 integrada operando à mesma freqüência do processador (full106

speed) e maiores freqüências de operação.

Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Modelo Clock externo 500E 533EB 550E 600E 600EB 650 667 700 733 750 800 800EB 850 Fator Clock multiplicador interno Cache L2 Consumo 13,2 W 14 W 14,5 W 15,8 W 15,8 W 17 W 17,5 W 18,3 W 19,1 W 19,5 W 20,8 W 24,5 W 25,7 W Intel Pentium III Coppermine Intel 6ª 1999 28 milhões 0,18µ 32 bits 64 bits 36 bits 64 GB 100 ou 133 MHz 4x a 10x 500 a 1,13 GHz 32 kB Dividida (16 + 16) 256 kB Integrada, full-speed Interno 11 SECC2 e FC-PGA Slot 1 e Soquete 370 13 a 33 W

100 MHz 5x 133 MHz 4x 100 MHz 5,5x 100 MHz 6x 133 MHz 4,5x 100 MHz 6,5x 133 MHz 5x 100 MHz 7x 133 MHz 5,5x 100 MHz 7,5x 100 MHz 8x 133 MHz 6x 100 MHz 8,5x

500 MHz 256 kB 533 MHz 256 kB 550 MHz 256 kB 600 MHz 256 kB 600 MHz 256 kB 650 MHz 256 kB 667 MHz 256 kB 700 MHz 256 kB 733 MHz 256 kB 750 MHz 256 kB 800 MHz 256 kB 800 MHz 256 kB 850 MHz 256 kB

107

866 900 933 1,0 1,0B 1,13

133 MHz 6,5x 100 MHz 9x 133 MHz 7x 100 MHz 10x 133 MHz 7,5x 133 MHz 8,5x

866 MHz 256 kB 900 MHz 256 kB 933 MHz 256 kB 1,0 GHz 1,0 GHz 256 kB 256 kB

26,1 W 26,7 W 27,5 W 29 W 29,6 W 33 W

1,13 GHz 256 kB

Informações adicionais: O sufixo B é acrescentado aos nomes dos modelos de Pentium III para diferenciar os modelos que possuem clock externo de 133 MHz dos modelos que possuem clock externo de 100 MHz de mesmo clock interno. Já o sufixo E é acrescentado para diferenciar os modelos de Pentium III Coppermine dos modelos de Pentium III Katmai de mesmo clock interno. Assim, o Pentium III-500, por exemplo, possui núcleo Katmai, enquanto o Pentium III-500E possui núcleo Coppermine. Os primeiros modelos desse processador foram produzidos no mesmo formato do Pentium II. Posteriormente, o Pentium III Coppermine passou a ser fabricado com um novo encapsulamento, chamado FC-PGA, semelhante ao PPGA do Celeron A, e com um encaixe diferente, o soquete 370, que já era utilizado pelo Celeron A.

Figura 4.13. Um processador Pentium III Coppermine com encapsulamento FCPGA. Imagem retirada da Internet. Disponível em <http://www.cpuworld.com/CPUs/Pentium-III/TYPE-Coppermine%20Socket%20370.html>. Acesso em 27/10/2008. Intel Pentium III Tualatin Descrição: terceira e última versão do Pentium III, lançada em janeiro de 2002. Apresenta como principal aperfeiçoamento com relação à versão anterior a diminuição do intervalo interno, que possibilitou a fabricação de processadores com maiores freqüências de operação e a inserção de mais transístores na pastilha do processador, o que resultou no aumento da memória cache L2 de 256 kB para 512 kB. Resumo: 108

Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos:

Intel Pentium III Tualatin Intel 6ª 2001 44 milhões 0,13µ 32 bits 64 bits 36 bits 64 GB 133 MHz 7,5x a 10,5x 1,0 a 1,4 GHz 32 kB Dividida (16 + 16) 256 ou 512 kB Integrada, full-speed Interno 11 FC-PGA2 Soquete 370 27 a 31 W

Modelo Clock externo Fator multiplicador Clock interno 1,0A 1,13A 1,13 1,20 1,26 1,33 1,40 133 MHz 133 MHz 133 MHz 133 MHz 133 MHz 133 MHz 133 MHz 7,5x 8,5x 8,5x 9x 9,5x 10x 10,5x 1,0 GHz 1,13 GHz 1,13 GHz 1,20 GHz 1,26 GHz 1,33 GHz 1,40 GHz

Cache L2 256 kB 256 kB 512 kB 256 kB 512 kB 256 kB 512 kB

Consumo 27,6 W 29,1 W 27,9 W 29,9 W 29,5 W 29,9 W 31,2 W

Figura 4.14. Um processador Pentium III Tualatin. 109

Imagem retirada da Internet. Disponível em <http://www.cpu-collection.de/? l0=i&i=2699>. Acesso em 27/10/2008. Informações adicionais: O sufixo A é acrescentado para diferenciar os modelos de Pentium III Tualatin dos modelos de Pentium III Coppermine de mesmo clock interno. Assim, o Pentium III1,13, por exemplo, possui núcleo Coppermine, enquanto o Pentium III-1,13A possui núcleo Tualatin. Intel Pentium III Xeon Tanner Descrição: primeira versão do Pentium III Xeon, processador de alto desempenho, voltado para o mercado de servidores e estações de trabalho, baseado no Pentium III. A diferença entre esse processador e o seu antecessor, o Pentium II Xeon, é que ele possui as melhorias que foram feitas no Pentium III, como, por exemplo, a adição das instruções SSE e do número de série. Essa versão possui intervalo interno de 0,25µ, clock externo de 100 MHz e memória cache L2 discreta, que opera com a mesma freqüência do processador (full-speed) e pode ser de 512 kB, 1 MB ou 2 MB. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 100 MHz 100 MHz Fator multiplicador 5x 5x Clock interno 500 MHz 500 MHz Cache L2 Consumo 512 kB 1 MB 40 W 47 W Intel Pentium III Xeon Tanner Intel 6ª 1999 9,5 milhões 0,25µ 32 bits 64 bits 36 bits 64 GB 100 MHz 5x e 5,5x 500 e 550 MHz 32 kB Dividida (16 + 16) 512 kB, 1 MB ou 2 MB Discreta, full-speed Interno 11 SECC Slot 2 37 a 43 W

110

100 MHz 100 MHz 100 MHz 100 MHz

5x 5,5x 5,5x 5,5x

500 MHz 550 MHz 550 MHz 550 MHz

2 MB 512 kB 1 MB 2 MB

39,6 W 37,8 W 37,8 W 43,2 W

Intel Pentium III Xeon Cascades Descrição: segunda versão do Intel Pentium III Xeon, que possui intervalo interno de 0,18µ e possui memória cache L2 integrada, que opera com a mesma freqüência do processador (full-speed) e pode ser de 256 kB, 1 MB ou 2 MB. Para esta versão foram lançados modelos com clocks externos de 100 e 133 MHz. A tabela a seguir resume as principais características dos primeiros modelos desse processador. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 133 MHz 133 MHz 133 MHz 133 MHz 133 MHz 133 MHz 133 MHz Fator multiplicador 4,5x 5x 5,5x 6x 6,5x 7x 7,5x Clock interno 600 MHz 666 MHz 733 MHz 800 MHz 866 MHz 933 MHz 1 GHz 111 Cache L2 Consumo 256 kB 256 kB 256 kB 256 kB 256 kB 256 kB 256 kB 21,6 W 23,9 W 26,2 W 28,5 W 30,8 W 33,2 W 34,6 W Intel Pentium III Xeon Cascades Intel 6ª 1999 28 milhões 0,18µ 32 bits 64 bits 36 bits 64 GB 133 MHz 4,5x a 6,5x 600 a 866 MHz 32 kB Dividida (16 + 16) 256 kB Integrada, full-speed Interno 11 SECC Slot 2 21 a 30 W

100 MHz 100 MHz 100 MHz

7x 7x 9x

700 MHz 700 MHz 900 MHz

1 MB 2 MB 2 MB

33,2 W 33,2 W 40,8 W

Figura 4.15. Um processador Pentium III Xeon. Imagem retirada do livro Hardware Total. Intel Celeron Coppermine Descrição: terceira versão do Celeron, lançada em março de 2000, foi baseada no Pentium III Coppermine. Conservou algumas características da versão anterior (o Celeron A), como o encaixe e a memória cache L2 integrada de 128 kB trabalhando na mesma frequência do processador (full-speed), porém herdou as novas tecnologias incorporadas ao Pentium III, como o conjunto de instruções SSE, o encapsulamento FC-PGA e o intervalo interno de 0,18µ, que permitiu a fabricação de processadores que atingissem frequências de operação maiores. A tabela a seguir resume as principais características do primeiro modelo de Celeron Coppermine lançado. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático 112 Intel Celeron Coppermine Intel 6ª 2000 28 milhões 0,18µ 32 bits 64 bits 32 bits 4 GB 66 MHz 8x 533 MHz 32 kB Dividida (16 + 16) 128 kB Integrada, full-speed Interno

Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz 100 MHz 100 MHz 100 MHz 100 MHz 100 MHz 100 MHz Fator multiplicador 8x 8,5x 9x 9,5x 10x 10,5x 11x 11,5x 8x 8,5x 9x 9,5x 10x 11x

11 FC-PGA Soquete 370 14 W

Clock interno 533 MHz 366 MHz 600 MHz 633 MHz 666 MHz 700 MHz 733 MHz 766 MHz 800 MHz 850 MHz 900 MHz 950 MHz 1 GHz 1,1 GHz

Cache L2 Consumo 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 128 kB 14,0 W 14,9 W 19,6 W 20,2 W 21,1 W 21,9 W 22,8 W 23,6 W 24,5 W 25,7 W 26,7 W 32 W 29 W 33 W

Figura 4.16. Um processador Celeron Coppermine. Imagem retirada da Internet. Disponível em <http://www.cpuworld.com/CPUs/Celeron/index.html>. Acesso em 11/10/2008. Intel Celeron Tualatin Descrição: quarta versão do Celeron, baseada no Pentium III Tualatin. Herdou as principais inovações incorporadas a este processador, como o intervalo interno de 0,13µ e o encapsulamento FC-PGA2. Apresenta, no entanto, clock externo e memória cache L2 menores. As principais características do primeiro modelo de Celeron Tualatin se encontram resumidas na tabela a seguir.

113

Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Intel Celeron Tualatin Intel 6ª 2001 44 milhões 0,13µ 32 bits 64 bits 32 bits 4 GB 100 MHz 9x 900 MHz 32 kB Dividida (16 + 16) 256 kB Integrada, full-speed Interno 11 FC-PGA2 Soquete 370 26,7 W

Figura 4.17. Um processador Celeron Tualatin. Imagem retirada da Internet. Disponível em <http://www.fabiware.com/product_info.php?products_id=33>. Acesso em 13/10/2008. Modelos: Clock externo 100 MHz 100 MHz 100 MHz 100 MHz Fator multiplicador 9x 10x 11x 12x Clock interno 900 MHz 1 GHz 1,1 GHz 1,2 GHz 114 Cache L2 Consumo 256 kB 256 kB 256 kB 256 kB 26,7 W 29,5 W 30,8 W 32,1 W

100 MHz 100 MHz

13x 14x

1,3 GHz 1,4 GHz

256 kB 256 kB

33,4 W 34,8 W

A sétima geração da arquitetura Intel para PCs
Processadores: Intel Pentium 4 (lançado em cinco versões: Willamette, Northwood, Prescott, Prescott-2M e Cedar Mill), Intel Pentium 4 Extreme Edition (lançado em duas versões: Gallatin e Prescott-2M), Intel Celeron, Intel Pentium D, Intel Celeron D, Intel Pentium Extreme Edition e Intel Xeon. Assim como todos os processadores Intel de sexta geração compartilhavam de uma mesma arquitetura, denominada genericamente de arquitetura P6, todos os processadores Intel de sétima geração foram construídos com base em uma mesma arquitetura, denominada pela Intel de arquitetura NetBurst. A arquitetura NetBurst apresenta como principais características: hiperpipeline, transferência de quatro dados por pulso de clock (Quad Data Rate), presença do cache de microinstruções (Execution Trace Cache), que substitui a memória cache L1 de instruções, e unidade de execução operando ao dobro da frequência de operação do processador. Vale ressaltar que o número de identificação introduzido no Pentium III não foi incluído nos processadores baseados nessa arquitetura. Intel Pentium 4 Willamette Descrição: primeira versão do Pentium 4, primeiro processador Intel de sexta geração, lançada em novembro de 2000. Além da arquitetura NetBurst, trouxe outra novidade, que foi a inclusão de 144 novas instruções ao conjunto de instruções, as instruções SSE2. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo 115 Intel Pentium 4 Willamette Intel 7ª 2000 42 milhões 0,18µ 32 bits 64 bits 36 bits 64 GB 400 MHz 13x a 20x 1,3 a 2 GHz 158 kB Dividida (8 + 150) 256 kB Integrada, full-speed Interno 20 OLGA e FC-PGA2 Soquete 423 e soquete 478 51 a 75 W

Figura 4.18. Um processador Pentium 4 Willamette. Imagem retirada da Internet. Disponível em <http://www.intel.com/support/pt/processors/sb/cs-009863.htm>. Acesso em 30/03/2009. Modelos: Clock externo 400 MHz 400 MHz 400 MHz 400 MHz 400 MHz 400 MHz 400 MHz 400 MHz Fator multiplicador 13x 14x 15x 16x 17x 18x 19x 20x Clock interno 1,3 GHz 1,4 GHz 1,5 GHz 1,6 GHz 1,7 GHz 1,8 GHz 1,9 GHz 2,0 GHz Cache L2 Consumo 256 kB 256 kB 256 kB 256 kB 256 kB 256 kB 256 kB 256 kB 51,6 55,3 W 57,9 W 61 W 64 W 66,7 W 72,8 W 75,3 W

Informações adicionais: Na verdade, o clock externo do Pentium 4 é 100 MHz, mas como são transferidos quatro dados por pulso de clock, nota-se seu clock externo como sendo 400 MHz, apenas para efeito de comparação de desempenho. O fator multiplicador, no entanto, continua sendo calculado com base no clock externo efetivo de 100 MHz. Outra observação é que no Pentium 4 há uma memória cache L1 de dados de 8 kB, porém não há uma memória cache L1 de instruções. Ao invés disso, há uma cache de microinstruções, que pode armazenar até 12k (o equivalente a 12.288) microinstruções. Como cada microinstrução possui o tamanho de 100 bits, a capacidade real da cache de microinstruções é de 150 kB. Intel Pentium 4 Northwood

116

Descrição: segunda versão do Pentium 4, lançada em agosto de 2001. Trouxe como principal aperfeiçoamento com relação à versão anterior o recurso de HyperThreading, através do qual o processador se apresenta ao sistema operacional como se houvessem dois processadores instalados na placa-mãe. Além disso, houve uma diminuição do intervalo interno, uma aumento da memória cache L2 e foram lançados modelos com clocks externos maiores. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 400 MHz 400 MHz 400 MHz 400 MHz 533 MHz 400 MHz 533 MHz 800 MHz 400 MHz 533 MHz 400 MHz 800 MHz 533 MHz Fator multiplicador 16x 18x 20x 22x 17x 24x 18x 12x 25x 19x 26x 13x 20x Clock interno 1,6 GHz 1,8 GHz 2,0 GHz 2,2 GHz 2,26 GHz 2,4 GHz 2,4 GHz 2,4 GHz 2,5 GHz 2,53 GHz 2,6 GHz 2,6 GHz 2,66 GHz 117 Cache L2 Consumo 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 46,8 W 49,6 W 54,3 W 57,1 W 58 W 59,8 W 59,8 W 66,2 W 61 W 61,5 W 62,6 W 69 W 66,1 W Intel Pentium 4 Northwood Intel 7ª 2001 55 milhões 0,13µ 32 bits 64 bits 36 bits 64 GB 400 MHz 16x a 26x 1,6 a 2,6 GHz 158 kB Dividida (8 + 150) 512 kB Integrada, full-speed Interno 20 FC-PGA2 Soquete 478 46 a 62 W

400 MHz 533 MHz 800 MHz 800 MHz 533 MHz 800 MHz 800 MHz

28x 21x 14x 15x 23x 16x 17x

2,8 GHz 2,8 GHz 2,8 GHz 3,0 GHz 3,06 GHz 3,2 GHz 3,4 GHz

512 kB 512 kB 512 kB 512 kB 512 kB 512 kB 512 kB

68,4 W 68,4 W 68,7 W 81,8 W 81,8 W 82 W 89 W

Figura 4.19. Um processador Pentium 4 Northwood. Imagem retirada da Internet. Disponível em <http://techreport.com/article_redir.x/2002q1/northwood-vs-2000/>. Acesso em 07/03/2009. Intel Pentium 4 Prescott Descrição: terceira versão do Pentium 4, lançada em fevereiro de 2004. Trouxe vários aperfeiçoamentos em relação ao Pentium 4 Northwood: inclusão de 13 novas instruções ao conjunto de instruções, as instruções SSE3; menor intervalo interno; maior cache de microinstruções; adição de 11 estágios pipeline; novo encapsulamento e melhoria em diversos circuitos do processador. Além disso, foram fabricados modelos com memórias cache L2 maiores. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) 118 Intel Pentium 4 Prescott Intel 7ª 2004 125 milhões 90 nm 32 bits 64 bits 36 bits 64 GB 533 e 800 MHz 14x a 23x 2,26 a 3,8 GHz

Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 533 MHz 533 MHz 533 MHz 533 MHz 800 MHz 800 MHz 533 MHz 800 MHz 800 MHz 533 MHz 800 MHz 800 MHz 800 MHz 800 MHz 800 MHz 800 MHz 800 MHz 800 MHz Fator multiplicador 17x 18x 20x 21x 14x 14x 22x 15x 15x 23x 16x 16x 17x 17x 18x 18x 19x 19x

166 kB Dividida (16 + 150) 512 KB, 1 MB e 2 MB Integrada, full-speed Interno 31 FC-PGA2 e FC-LGA4 Soquete 478 e soquete 775 84 a 115 W

Clock interno 2,26 GHz 2,4 GHz 2,66 GHz 2,8 GHz 2,8 GHz 2,8 GHz 2,93 GHz 3 GHz 3 GHz 3,06 GHz 3,2 GHz 3,2 GHz 3,4 GHz 3,4 GHz 3,6 GHz 3,6 GHz 3,8 GHz 3,8 GHz

Cache L2 Consumo 512 kB 1 MB 1 MB 1 MB 1 MB 2 MB 1 MB 1 MB 2 MB 1 MB 1 MB 2 MB 1 MB 2 MB 1 MB 2 MB 1 MB 2 MB 89 W 89 W 89 W 89 W 84 W 84 W 89 W 84 W 84 W 84 W 103 W 84 W 103 W 84 W 115 W 115 W 115 W 115 W

Figura 4.20. Um processador Pentium 4 Prescott. Imagem retirada da Internet. Disponível em 119

<http://www.theregister.co.uk/2004/02/02/intel_prescott_90nm_pentium/>. Acesso em 07/03/2009. Intel Pentium 4 Prescott-2M Descrição: quarta versão do Pentium 4, lançada em fevereiro de 2005. Foi o primeiro processador x64 lançado pela Intel, apresentando, além do conjunto de instruções x86, o conjunto de instruções EM64T (Extended Memory 64 Technology), que é compatível com o conjunto de instruções x64 originalmente desenvolvido pela AMD. Outra novidade trazida por esse processador foi o recurso Execute Disable Bit. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 800 MHz 800 MHz 800 MHz 800 MHz 800 MHz 800 MHz Fator multiplicador 14x 15x 16x 17x 18x 19x Clock interno 2,8 GHz 3 GHz 3,2 GHz 3,4 GHz 3,6 GHz 3,8 GHz Cache L2 Consumo 2 MB 2 MB 2 MB 2 MB 2 MB 2 MB 84 W 84 W 84 W 84 W 115 W 115 W Intel Pentium 4 Prescott-2M Intel 7ª 2005 169 milhões 90 nm 64 bits 64 bits 36 bits 64 GB 800 MHz 14x a 19x 2,8 a 3,8 GHz 166 kB Dividida (16 + 150) 2 MB Integrada, full-speed Interno 31 FC-LGA4 Soquete 775 84 a 115 W

Intel Pentium 4 Cedar Mill Descrição: quinta e última versão do Pentium 4, lançada em janeiro de 2006. A única diferença com relação à versão anterior é o intervalo interno menor, que possibilitou uma redução no consumo de energia e na dissipação de calor. O desempenho de um 120

Pentium 4 Cedar Mill é igual ao desempenho de um Pentium 4 Prescott-2M de mesmo clock. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 800 MHz 800 MHz 800 MHz 800 MHz Fator multiplicador 15x 16x 17x 18x Clock interno 3 GHz 3,2 GHz 3,4 GHz 3,6 GHz Cache L2 Consumo 2 MB 2 MB 2 MB 2 MB 85 W 85 W 85 W 85 W Intel Pentium 4 Cedar Mill Intel 7ª 2006 118 milhões 65 nm 64 bits 64 bits 36 bits 64 GB 800 MHz 15x a 18x 3 a 3,6 GHz 166 kB Dividida (16 + 150) 2 MB Integrada, full-speed Interno 31 FC-LGA4 Soquete 775 85 W

Pentium 4 Extreme Edition Gallatin Descrição: primeira versão do Intel Pentium 4 Extreme Edition, o processador de maior performance da família do Pentium 4, lançada em novembro de 2003. Foi o primeiro processador da Intel a apresentar uma memória cache L3 integrada. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Intel Pentium 4 Extreme Edition Gallatin Intel 7ª 2003 178 milhões 0,13µ

121

Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Cache L3 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Clock externo 800 MHz 800 MHz 1066 MHz Fator multiplicador 16x 17x 13x

32 bits 64 bits 36 bits 64 GB 800 MHz 16x e 17x 3,2 e 3,4 GHz 158 kB Dividida (8 + 150) 512 kB Integrada, full-speed 2 MB Interno 20 FC-PGA2 e FC-LGA4 Soquete 423 e soquete 478 89 W

Clock interno 3,2 GHz 3,4 GHz 3,46 GHz

Cache L2 Consumo 512 kB 512 kB 512 kB 89 W 89 W 89 W

Figura 4.21. Um processador Pentium 4 Extreme Edition. Imagem retirada da Internet. Disponível em <http://techreport.com/article_redir.x/2004q4/pentium4-xe-3.46/index.x?pg=1>. Acesso em 07/03/2009. Pentium 4 Extreme Edition Prescott-2M Descrição: segunda versão do Pentium 4 Extreme Edition, lançada em fevereiro de 2005, baseada no Pentium 4 Prescott-2M. Apresenta todas as características desse processador, inclusive o conjunto de instruções EM64T e o Execute Disable Bit. A única diferença, responsável pelo seu maior desempenho, é o clock externo, que é 122

maior, possibilitando a obtenção de um clock interno igualmente maior. Resumo: Características Fabricante Geração Ano de lançamento Quantidade de transistores Intervalo interno Palavra Largura do barramento de dados Largura do barramento de endereços Capacidade de endereçamento Clock externo (velocidade do barramento) Fator multiplicador Clock interno (velocidade do processador) Cache L1 Tipo da cache L1 Cache L2 Tipo da cache L2 Co-processador matemático Estágios Pipeline Tipo do encapsulamento Tipo do soquete Consumo Modelos: Foi lançado apenas um modelo desse processador. Suas características se encontram resumidas na tabela acima. Intel Pentium 4 Extreme Edition Gallatin Intel 7ª 2003 169 milhões 90 nm 64 bits 64 bits 36 bits 64 GB 1066 MHz 14x 3,73 GHz 166 kB Dividida (16 + 150) 2 MB Integrada, full-speed Interno 31 FC-LGA4 Soquete 775 115 W

123

Referências bibliográficas
[MON01] MONTEIRO, Mário A. Introdução à Organização de Computadores. 4ª Edição. Rio de Janeiro: LTC Editora, 2001. [LVC02] VASCONCELOS, Laércio. Hardware Total. 1ª Edição. Editora Makron Books, 2002. [GAB01] TORRES, Gabriel. HARDWARE Curso Completo. 4ª Edição. Editora Axcel Books, 2001. [MOR02] MORIMOTO, Carlos E. “Manual de Hardware Completo”. 3ª Edição. Junho de 2002. Disponível na Internet em: <http://www.guiadohardware.net/livros/hardware/>. Acessado em: 11/07/2007. [CAS07] http://www.clubedohardware.com.br/artigos/1325 [GAB1] http://www.clubedohardware.com.br/artigos/455 [GAB2] http://www.clubedohardware.com.br/artigos/456 [GAB97] http://www.clubedohardware.com.br/artigos/924/ [DIM97] http://med.fm.usp.br/dim/apostila/infbas/infbas.htm [VIP] Vip Host System - Glossário de Informática - Hospedagem de Sites http://www.viphostsystem.com/glossario/glossario.html Acessado pela última vez em 27/06/2007 [MICPROC] Microinformática – Hardware – Processador http://www2.ufpa.br/dicas/mic/mic-proc.htm Acessado pela última vez em 27/06/2007 [EMER03] Emerson Alecrim - Publicado em 30/06/2003 - Atualizado em 23/03/2005 http://www.infowester.com/processadores1.php Acessado pela última vez em 27/06/2007 [MOR02] MORIMOTO, Carlos E. “Manual de Hardware Completo” http://www.guiadohardware.net/tutoriais/placa-mae-componentes-formatos/ Publicado em 23/04/2007 Acessado pela última vez em 27/06/2007 [EMER1] Emerson Alecrim - Publicado em 03/04/2005 - Atualizado em 03/04/2005 http://www.infowester.com/motherboard.php [INFO] Infomatik http://info.matik.com.br/content/view/7/9/ Acessado pela última vez em 27/06/2007 [EMER2] Emerson Alecrim - Publicado em 23/11/2003 - Atualizado em 20/11/2004 http://www.infowester.com/memoria.php Acessado pela última vez em 27/06/2007 [EMER3] Emerson Alecrim - Publicado em 30/06/2003 - Atualizado em 17/02/2007 124

http://www.infowester.com/bit.php Acessado pela última vez em 27/06/2007 [MICMEMO] Microinformática – Hardware – Memória http://www2.ufpa.br/dicas/mic/mic-memo.htm Acessado pela última vez em 27/06/2007 [MICES] Microinformática – Hardware – Dispositivos de entrada e/ou saída http://www2.ufpa.br/dicas/mic/mic-e-s.htm Acessado pela última vez em 27/06/2007 [GIAN1] Giancarlo M. Braga. Guia de hardware para iniciantes. http://www.infowester.com/guiahdinic.php Publicado em 27/03/2005. Acesso em 15/07/2007 [GIAN05] Giancarlo M. Braga e Emerson Alecrim. Dicas para a compra de PCs. http://www.infowester.com/dicascomprapc.php Publicado em 11/04/2005. Acesso em 11/07/2007 [EMER4] http://www.infowester.com/placavideo.php Escrito por Emerson Alecrim - Publicado em 30/06/2003 - Atualizado em 23/03/2005. Acessado em 03/07/2007. [CLA07] Claudio Alegria. Dicas para escolher uma placa de vídeo. http://www.terra.com.br/informatica/especial/guiadecompras/placavideo.htm Acessado em 03/07/2007. [EMER5] http://www.infowester.com/placadesom.php Escrito por Emerson Alecrim - Publicado em 08/02/2007 - Acessado em 03/07/2007. [AISA99] http://www.aisa.com.br/diciona.html Acessado em 17/07/2007. [SOS04] SOS INFORMÁTICA http://www.ufscar.br/~suporte/faq00.php. Acesso em 03/07/2007. [EMER6] http://www.infowester.com/adsl.php Acessado em 10/07/2007. Escrito por Emerson Alecrim - Publicado em 05/10/2003 - Atualizado em 15/01/2006 [EMER7] Conhecendo o disco rígido (HD) - Parte 1. http://www.infowester.com/hds1.php Escrito por Emerson Alecrim - Publicado em 02/05/2007 - Atualizado em 11/05/2007. [EMER8] Drive de CD-ROM. http://www.infowester.com/cdrom.php Escrito por Emerson Alecrim, com participação de Blade - Publicado em 23/11/2003. Acesso em 10/07/2007 [MICHD] http://cultura.ufpa.br/dicas/mic/mic-hd.htm Acessado em 10/07/2007 [EMER9] Emerson Alecrim - Mídias CD-R e CD-RW: como funcionam. http://www.infowester.com/midiacdrcdrw.php Publicado em 30/06/2003 - Atualizado em 20/01/2004 - Acessado em 11/07/2007. [EMER10] Emerson Alecrim. Tipos de DVD. http://www.infowester.com/tiposdvd.php Publicado em 08/11/2006 - Atualizado em 08/11/2006 - Acessado em 12/07/2007. 125

[EMER11] Emerson Alecrim. DVD (Digital Video Disc). http://www.infowester.com/dvd.php Publicado em 30/06/2003 - Atualizado em 10/11/2006 - Acessado em 12/07/2007. [ALEX04] Alexandre Faria. Dispositivos de Armazenamento. http://www.prof2000.pt/users/afaria2004/armazenamento.htm Acessado em 10/07/2007 [WAL98] Walter José Cintra Júnior. Tecnologia de Discos Óticos. http://www.geocities.com/TheTropics/2518/cdrom.htm Atualizada em 12/09/1998. Acessado em 11/07/2007. [ROD06] Rodrigo Marcos Antonio Rodrigues. O que é pen drive? http://www.pendrivenet.com.br/sobre_pen.asp Última atualização: 27/06/2006. Acessado em 17/07/2007. [EST06] Estadão - MEMORY O QUÊ? http://www.link.estadao.com.br/index.cfm?id_conteudo=6026 Publicado em 02/01/2006. Acessado em 17/07/2007. [IOM] Drives Zip Iomega http://www.iomega.com/la/po/products/product_family.jsp?FOLDER%3C %3Efolder_id=10738007&ASSORTMENT%3C %3East_id=10737889&bmUID=1184510554426 Acessado em 15/07/2007. [MICGAB] Microinformática – Hardware – Gabinete http://www2.ufpa.br/dicas/mic/mic-hage.htm Acessado pela última vez em 27/06/2007 [GAB05] http://www.clubedohardware.com.br/artigos/1145 (Acesso em 13/07/2007)

[PIR07] B.Piropo. http://www.bpiropo.com.br/CPU.Htm (Acesso em 20/08/2007. Última atualização: 12/08/2007) [PIR05] B.Piropo. http://www.forumpcs.com.br/coluna.php?b=149303 (Acesso em 11/09/2007) [JOR05] Jorge Cardoso. Arquitetura de Computadores. http://dme.uma.pt/jcardoso/Teaching/AC/Arquitectura%20Computadores.htm. (Acesso em 14/08/2007) [EMER03] Emerson Alecrim http://www.infowester.com/processadores3.php (Acesso em 13/08/2007. Publicado em 30/06/2003. Atualizado em 23/03/2005) [GUI06] Guilherme Bittencourt. http://www.das.ufsc.br/gia/computer/breve.html. (Acesso em 22/08/2007) [VLA06] Vladimir Barbosa. http://www.ceset.unicamp.br/~vladimir/ST164B/barramento.ppt. (Acesso em 14/08/2007)

126

[REN05] Renata Vilas Boas. http://twiki.im.ufba.br/bin/viewfile/MAT150/Apresenta %e7%f5esDeSala?rev=1.1;filename=Aula02-UCP.ppt (Acesso em 13/08/2007) [JOS04] José Mario De Martino e Leandro Ledel. Micro e Minicomputadores: Hardware. http://www.dca.fee.unicamp.br/courses/EA078/1s2004/arquivos/turma_ab/cap3.pdf (Acesso em 22/08/2007) [VAL05] Valdemar W.Setzer. http://www.ime.usp.br/~vwsetzer/comp-papel.html (Publicação em 4/12/05. Acesso em 22/08/2007) [RUI98] Rui Mano. http://wwwusers.rdc.puc-rio.br/rmano/index.html. (Última atualização: 06/08/98. Acesso em 22/08/2007) [ANT] Antonio J. Netto. http://www.professores.unirg.edu.br/netto/ArquiteturasComputadores/OAC_NA12.ppt (acesso em 22/08/2007) [RAI04] Raimundo G. Nóbrega Filho. Introdução ao Computador. http://www.di.ufpb.br/raimundo/pagedeIC.html (Acesso em 26/08/2007) [EDU04] Eduardo Chaves. Informática: Microrevelações. "http://www.chaves.com.br/TEXTSELF/MICROREV/mrcap3.htm” (Acesso em 24/08/2007. Atualizado em 02/05/2004) [NUN06] Nuno Silva. Comparação de características entre processadores da Família Intel x86. <http://www.dei.isep.ipp.pt/~nsilva/ensino/ArqC/arqc2004-2005/Familia %20x86.htm>. Acesso em 26/09/2007. Última atualização: 22/02/2006. [NUN05] Nuno Silva. Processador. <http://www.dei.isep.ipp.pt/~nsilva/ensino/ti/ti19981999/processador/processador.htm>. Acesso em 26/09/2007. Última atualização: 02/05/2005. [PIR1] B.Piropo. Computadores XXXVI: Unidade de transferência. <http://www.bpiropo.com.br/fpc20070801.htm>. Acesso em 20/08/2007. Publicado em: 01/08/2007. [MAC02] MACHADO, Francis Berenger, MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais. 3ª Edição. Rio de Janeiro: LTC Editora, 2002. [WBC] Washington Bueno Cardoso. Microprocessador. <http://br.geocities.com/washinbueno/processador-tutorial.html>. Acesso em 02/10/2007. [AND00] André Marzulo. Você Sabe o que é Pipeline???. <http://www.pr.gov.br/batebyte/edicoes/2000/bb101/estagiario.htm>. Acesso em 03/10/2007. Publicado em: 09/2000. [EMER12] Emerson Alecrim. Número de processadores: a nova nomenclatura da Intel. <http://www.infowester.com/nomenintel.php>. Publicado em 15/05/2005 - Acessado em 09/10/2007. [ALEX02] Autores (alunos): Alexandre Nicolau Saraty e Priscila Gisely Paes Lima Orientador: José Augusto Furtado Real Título: Análise de Desempenho de CPU 127

Unama Belém/PA 2002 http://www.cci.unama.br/margalho/portaltcc/tcc2002/desempenhodeCPU.pdf Acessado em 17/10/2007 [INT1] <http://www.intel.com/museum/online/hist_micro/hof/index.htm? iid=intelmuseum+home_behof&>. Acesso em 13/11/2007. [INT2] <http://download.intel.com/pressroom/kits/IntelProcessorHistory.pdf>. Acesso em 13/11/2007. [INT3] <http://www.intel.com/pressroom/kits/quickref.htm>. Acesso em 13/11/2007. [INT4] <http://www.intel.com/museum/archives/4004.htm>. Acesso em 13/11/2007. [INT5] <http://www.intel.com/museum/archives/4004facts.htm>. Acesso em 13/11/2007. [FEL05] Felipe Tusset. Evolução dos Processadores. <http://equipe.nce.ufrj.br/gabriel/arqcomp2/Hist%F3rico.pdf>. Acesso em 13/11/2007. Última atualização: 28/06/2005. [GEN03] Gennadiy Shvets. http://www.cpu-world.com/CPUs/ [MUS04] http://www.museudocomputador.com.br/encipro.php [PIR2] B.Piropo. Computadores XV: O que é uma UCP. <http://www.bpiropo.com.br/fpc20051121.htm>. Acesso em 13/11/2007. Publicado em: 21/11/2005. [EWA] Ewaldo L. M. Mehl. Do Transistor ao Microprocessador. <http://www.eletr.ufpr.br/mehl/te040/historia_transistor.pdf>. Acesso em 14/11/2007. [GDH] Guia do Hardware. Termos técnicos GdH. <http://www.guiadohardware.net/termos>. Acesso em 22/11/2007. [GIL] Steve Gilheany. Evolution of Intel Microprocessors: 1971 to 2007. <http://www.cs.rpi.edu/~chrisc/COURSES/CSCI-4250/SPRING-2004/slides/cpu.pdf>. Acesso em 27/11/2007. [PIR95] B.Piropo. Acessos em 32 bits - Parte V: O Modo 86 Virtual. <http://www.bpiropo.com.br/tz950109.htm>. Acesso em 03/12/2007. Publicado em: 09/01/1995. [GAB06] http://www.clubedohardware.com.br/artigos/387 (Acesso em 06/10/2008) [GAB07] http://www.clubedohardware.com.br/artigos/1014 (Acesso em 06/10/2008) [GAB08] http://www.clubedohardware.com.br/artigos/1162 (Acesso em 11/10/2008) [UEDAI06] http://www.jtw.zaq.ne.jp/cfacs200/uedai/pcparts/TDP.htm (Acesso em 12/11/2008) [MOR07] MORIMOTO, Carlos E. Hardware, o Guia Definitivo. 1ª Edição. GDH Press e 128

Sul Editores, 2007. [GAB09] http://www.clubedohardware.com.br/artigos/1122 (Acesso em 07/03/2009) [GAB10] http://www.clubedohardware.com.br/artigos/1201 (Acesso em 07/03/2009)

129

Sign up to vote on this title
UsefulNot useful