You are on page 1of 110

Curso de Sistemas de Informao

Disciplina de Arquitetura de Computadores

Esse material tem como objetivo servir de apoio a disciplina, facilitando o acesso ao conhecimento por parte do aluno. Em hiptese alguma ele substitui a bibliografia adotada pela disciplina, no devendo jamais ser utilizado como nica fonte de pesquisa e referncia.

Prof. Arildo Snego

Bibliografia
AHO, Alfred V. Compiladores: princpios, tcnicas e ferramentas. Rio de Janeiro: Guanabara, 1995 CARDINALE, Roberto; D'UGO, Felipe. Dossi hardware. 3.ed.. So Paulo : Digeri Books, 2003. 319 p.

MONTEIRO, Mario Antonio. Introduo organizao de computadores. Rio de Janeiro: LTC, 1996. MURDOCA, Miles. Introduo arquitetura de computadores. Rio de Janeiro: Campus, 2000. STALLINGS, William. Arquitetura e organizao de computadores. So Paulo: Prentice Hall, 2002. TANENBAUM, Andrew S. Organizao estruturada de computadores. 3.ed.. So Paulo : LTC, 2000. 460 p.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 2 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

ndice
1VISO GERAL ......................................................................................................................................................... 6 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2 UMA BREVE HISTRIA ...................................................................................................................................... 6 A MQUINA DE VON NEUMANN ....................................................................................................................... 8 O MODELO DE BARRAMENTO DO SISTEMA ....................................................................................................... 9 COMPUTADORES COMERCIAIS......................................................................................................................... 10 A SEGUNDA GERAO DE COMPUTADORES .................................................................................................... 11 A TERCEIRA GERAO DE COMPUTADORES ................................................................................................... 11 QUARTA GERAO DE COMPUTADORES - VLSI ............................................................................................. 13 EVOLUO DA INFORMTICA.......................................................................................................................... 15

REPRESENTAO DAS INFORMAES ....................................................................................................... 18 2.1 BITS, CARACTERES, BYTES E PALAVRAS .......................................................................................................... 18 2.2 - NOTAO POSICIONAL..................................................................................................................................... 20 2.3 - OUTRAS BASES DE NUMERAO ..................................................................................................................... 21 2.4 - CONVERSO DE BASES .................................................................................................................................... 22 2.4.1 Converso de Base Decimal para Base Binria .................................................................................... 22 2.4.2 Converso de Base Binria para Base Decimal .................................................................................... 22

3-

CONCEITOS DA LGICA DIGITAL ................................................................................................................. 24 3.1 INTRODUO................................................................................................................................................... 24 3.2 LGEBRA BOOLEANA ...................................................................................................................................... 25 3.2.1 Operao Lgica ou Porta AND (E)...................................................................................................... 25 3.3 OPERAO LGICA OU PORTA OR (OU)......................................................................................................... 26 3.3.1 Operao Lgica NOT (Inversor) .......................................................................................................... 26 3.3.2 Operao Lgica NAND NOT AND.................................................................................................... 26 3.3.3 Operao Lgica NOR NOT OR ......................................................................................................... 27 3.3.4 Operao Lgica XOR EXCLUSIVE OR ............................................................................................ 27 3.4 EXPRESSES LGICAS ..................................................................................................................................... 27 3.5 - CIRCUITOS COMBINATRIOS ............................................................................................................................ 28 3.6 - CIRCUITOS INTEGRADOS .................................................................................................................................. 29

4-

UNIDADE CENTRAL DE PROCESSAMENTO ................................................................................................ 32 4.1 - INTRODUO ................................................................................................................................................... 32 4.2 FUNES BSICAS .......................................................................................................................................... 32 4.3 COMPONENTES ................................................................................................................................................ 33 4.3.1 Unidade de Controle .............................................................................................................................. 34 4.3.2 Unidade Lgica e Aritmtica (ULA) ...................................................................................................... 35 4.3.3 Registradores ......................................................................................................................................... 35 4.4 CLOCK............................................................................................................................................................. 36 4.5 CO-PROCESSADOR ARITMTICO....................................................................................................................... 37 4.6 SINAIS DE CONTROLE ...................................................................................................................................... 38 4.7 ARQUITETURA DOS PROCESSADORES (RISC X CISC) .................................................................................... 39 4.8 FAMLIA INTEL ................................................................................................................................................ 40 4.8.1 80286...................................................................................................................................................... 40 4.8.2 80386...................................................................................................................................................... 41 4.8.3 80486...................................................................................................................................................... 41 4.8.4 Pentium .................................................................................................................................................. 42 4.8.5 Pentium MMX ........................................................................................................................................ 43 4.8.6 Pentium Pro ........................................................................................................................................... 43 4.8.7 Pentium II ............................................................................................................................................... 44 4.8.8 Pentium II Xeon ..................................................................................................................................... 44 4.8.9 Pentium III ............................................................................................................................................. 44 4.8.10 Pentium III Xeon .................................................................................................................................... 45

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 3 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego 4.8.11 Celeron ................................................................................................................................................... 45 4.8.12 Pentium 4 ............................................................................................................................................... 45 4.8.13 Itanium ................................................................................................................................................... 46 4.9 - FAMLIA AMD ................................................................................................................................................. 46 4.9.1 AMD 286 A............................................................................................................................................. 46 4.9.2 AMD 386 ................................................................................................................................................ 47 4.9.3 AMD 486 ................................................................................................................................................ 47 4.9.4 AMD 586 ................................................................................................................................................ 47 4.9.5 AMD K5 ................................................................................................................................................. 47 4.9.6 AMD K6 ................................................................................................................................................. 48 4.9.7 AMD K6-II ............................................................................................................................................. 48 4.9.8 AMD K6-III ............................................................................................................................................ 48 4.9.9 AMD Athlon ........................................................................................................................................... 49 4.9.10 AMD Athlon Thunderbird ...................................................................................................................... 49 4.9.11 AMD Duron ............................................................................................................................................ 49 4.10 - FAMLIA CYRIX ................................................................................................................................................ 50 4.10.1 Cyrix Cx486 DX ..................................................................................................................................... 50 4.10.2 Cyrix 5x86 .............................................................................................................................................. 50 4.10.3 Cyrix 6x86 .............................................................................................................................................. 50 4.10.4 Cyrix Media GX ..................................................................................................................................... 51 4.10.5 Via Cyrix III ........................................................................................................................................... 51 5SUBSISTEMAS DE MEMRIA ........................................................................................................................... 53 5.1 - INTRODUO ................................................................................................................................................... 53 5.2 - REPRESENTAO DAS INFORMAES .............................................................................................................. 53 5.3 - LOCALIZAO DAS INFORMAES ................................................................................................................... 54 5.4 - OPERAES REALIZADAS ................................................................................................................................ 54 5.5 - HIERARQUIA .................................................................................................................................................... 54 5.5.1 - Registradores .......................................................................................................................................... 56 5.5.2 - Memria Cache....................................................................................................................................... 56 5.5.3 - Memria Principal .................................................................................................................................. 57 5.5.4 - Memria Secundria............................................................................................................................... 58 5.6 MTODOS DE ACESSO ..................................................................................................................................... 58 5.7 CORREO DE ERROS ..................................................................................................................................... 59 5.8 MEMRIA VIRTUAL......................................................................................................................................... 59 5.9 - BANCO DE MEMRIAS ..................................................................................................................................... 60 5.9.1 - Mdulo SIMM de 30 vias ........................................................................................................................ 61 5.9.2 - Mdulo SIMM de 72 vias ........................................................................................................................ 62 5.9.3 - Mdulo DIMM ........................................................................................................................................ 63 5.9.4 - Mdulo RIMM......................................................................................................................................... 63 5.10 - MEMRIAS RAM ............................................................................................................................................. 64 5.10.1 Fast Page Mode (FPM).......................................................................................................................... 64 5.10.2 - Extended Data Out (EDO) ...................................................................................................................... 65 5.10.3 - Burst Extend Data Out (BEDO).............................................................................................................. 65 5.10.4 - Synchronous Dynamic RAM (SDRAM)................................................................................................... 65 5.10.5 - Double Data Rate SDRAM (DDR-SDRAM) ........................................................................................... 66 5.10.6 - Memria Rambus .................................................................................................................................... 66 5.11 - MEMRIAS ROM ............................................................................................................................................. 67 6MEMRIA EXTERNA.......................................................................................................................................... 69 6.1 - INTRODUO ................................................................................................................................................... 69 6.2 - DISCOS MAGNTICOS....................................................................................................................................... 69 6.2.1 - Organizao e Formatao de Dados .................................................................................................... 69 6.2.2 Caractersticas Fsicas ........................................................................................................................... 70 6.2.3 Parmetros de desempenho de discos .................................................................................................... 71 6.3 - RAID ............................................................................................................................................................... 72 _______________________________________________________________________________________________ Curso de Sistemas de Informao - 4 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego 6.3.1 - RAID de Nvel 0 ...................................................................................................................................... 74 6.3.2 - RAID de Nvel 1 ...................................................................................................................................... 74 6.3.3 - RAID de Nvel 2 ...................................................................................................................................... 75 6.3.4 - RAID de Nvel 3 ...................................................................................................................................... 75 6.3.5 - RAID de Nveis 4, 5 e 6 ........................................................................................................................... 76 6.4 - INTERFACES ..................................................................................................................................................... 77 6.4.1 - IDE.......................................................................................................................................................... 77 6.4.2 - SCSI ........................................................................................................................................................ 78
6.4.2.1 6.4.2.2 6.4.2.3 - SCSI 1 .................................................................................................................................................................. 78 - SCSI 2 .................................................................................................................................................................. 78 - SCSI 3 .................................................................................................................................................................. 79

6.4.3 - Serial ATA ............................................................................................................................................... 79 6.5 - MEMRIA PTICA ............................................................................................................................................ 80 6.5.1 - CD ........................................................................................................................................................... 80 6.5.2 - DVD ........................................................................................................................................................ 81 7EXECUO DE PROGRAMAS .......................................................................................................................... 83 7.1 - INTRODUO ................................................................................................................................................... 83 7.2 - LINGUAGENS DE PROGRAMAO ..................................................................................................................... 83 7.3 - MONTAGEM E COMPILAO ............................................................................................................................ 85 7.3.1 - Montagem ............................................................................................................................................... 85 7.3.2 - Compilao ............................................................................................................................................. 86 7.3.3 - Ligao ou Linkedio............................................................................................................................ 87 7.4 - INTERPRETAO .............................................................................................................................................. 88 7.4.1 - Compilao x Interpretao ................................................................................................................... 88 7.5 LINGUAGEM ASSEMBLY .................................................................................................................................. 89 7.5.1 - Registradores .......................................................................................................................................... 90
7.5.1.1 7.5.1.2 7.5.1.3 7.5.1.4 - Registradores Gerais............................................................................................................................................. 90 - Registradores de Segmento .................................................................................................................................. 91 - Registradores de Deslocamento ........................................................................................................................... 91 - Registrador de Estado .......................................................................................................................................... 92

7.5.2
7.5.2.1

Assembly 8086 ........................................................................................................................................ 92


Exemplos de Programas em Assembly ................................................................................................................ 93

8-

GRAMTICAS ....................................................................................................................................................... 95 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 - LINGUAGENS FORMAIS..................................................................................................................................... 95 - LINGUAGEM ..................................................................................................................................................... 95 - COMPONENTES DE UMA LINGUAGEM ............................................................................................................... 95 - REPRESENTAES DE UMA LINGUAGEM .......................................................................................................... 96 - GRAMTICAS ................................................................................................................................................... 96 - DERIVAO E REDUO .................................................................................................................................. 98 - BACKUS NAUR FORM ...................................................................................................................................... 98 - LINGUAGENS DEFINIDAS POR GRAMTICAS ..................................................................................................... 99 - GRAMTICAS EQUIVALENTES .......................................................................................................................... 99 - TIPOS DE GRAMTICAS .................................................................................................................................. 100 - EXPRESSES REGULARES .............................................................................................................................. 101

9-

AUTMATOS FINITOS ..................................................................................................................................... 103 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 - INTRODUO ................................................................................................................................................. 103 - DEFINIO FORMAL....................................................................................................................................... 103 REPRESENTAO GRFICA DE AUTMATOS FINITOS .................................................................................... 104 - TABELA DE TRANSIO DE ESTADOS............................................................................................................. 104 - AUTMATOS FINITOS DETERMINSTICOS & NO DETERMINSTICOS .............................................................. 105 - CONVERSO PARA AUTMATO FINITO DETERMINSTICO ............................................................................... 106 - RECONHECIMENTO DE SENTENAS ................................................................................................................ 108 - APLICAES DE AUTMATOS FINITOS ........................................................................................................... 108

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 5 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

1- Viso Geral
1.1 Uma Breve Histria
O conceito de efetuar clculos com algum tipo de equipamento data, pelo menos, do sculo V a.C. com os babilnios e sua inveno do baco. Este dispositivo permitia a contagem de valores, tornando possvel aos comerciantes babilnicos registrar dados numricos sobre suas colheitas. Tambm os romanos se serviram muito dos bacos, para efetuar clculos aritmticos simples, registrando valores de outra forma. Ainda hoje h quem use tal tipo de dispositivo, ainda popular na China, por exemplo.

Dispositivos mecnicos para controlar operaes complexas tm sido usados desde o sculo XVI, quando cilindros rotativos eram usados em caixas de msica de forma muito semelhante a que so usados ainda hoje. Mquinas que calculam, ao contrrio de simplesmente repetir uma melodia predeterminada, se tornaram realidade no sculo seguinte. Blaise Pascal (1623-1662) desenvolveu uma calculadora mecnica (figura ao lado) para auxiliar na preparao dos impostos de seu pai. A calculadora de Pascal contm oito discos conectados a um tambor, com uma ligao inovadora que faz com que o disco rode uma posio enquanto um excedente produzido de um disco em uma posio inferior. Uma janela colocada sobre o disco permitir que sua posio atual seja observada, de forma semelhante a um odmetro de carro, com a exceo de que os discos so posicionados. Horizontalmente, como um disco de telefone rotativo. Algumas das mquinas de adio de Pascal, que comearam a ser produzidas em 1642 existem at hoje. Seria necessrio esperar at o sculo XIX, para que algum juntasse os conceitos de controle e clculo mecnico em uma mquina que hoje reconhecemos ter as partes bsicas de um computador digital. Essa pessoa foi Charles Babbage (1791-1871). Babbage viveu na Inglaterra em uma poca em que tabelas matemticas eram usadas em navegao e trabalho cientfico. As tabelas eram calculadas manualmente e os resultados continham inmeros erros.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 6 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Frustrado com as imprecises, ele projetou um mquina que podia calcular tabelas simplesmente marcando e girando engrenagens. A mquina projetada poderia at mesmo produzir um disco que poderia ser usado em uma impressora, eliminando assim erros que poderiam ser introduzidos no processo de digitao. Demorou mais de um sculo, at o incio da Segunda Guerra Mundial, antes que o prximo avano tenha sido alcanado em computao. Na Inglaterra, submarinos alemes U-boat infligiam pesadas perdas nos transportes navais aliados. Os U-boats recebiam comunicao de suas bases na Alemanha usando um cdigo criptogrfico implementado por uma mquina fabricada pela Siemens AG conhecida como ENIGMA (figura ao lado). O processo de codificar informao era conhecido h um longo tempo, e at mesmo o presidente dos Estados Unidos, Thomas Jefferson (1743-1826) projetou um predecessor da ENIGMA, muito embora ele no tenha construdo a mquina. O processo de decodificar a informao era significamente mais complexo. Foi esse problema que gerou os esforos de Alan Turing (1912-1954) e outros cientistas na Inglaterra para criar mquinas capazes de quebrar a codificao. Durante a Segunda Guerra, Turing foi o mais proeminente especialista em criptografia da Inglaterra e estava entre aqueles que transformaram a criptografia, que era um assunto para pessoas que se interessavam por lnguas antigas, em um assunto para matemticos. Aproximadamente no mesmo perodo do trabalho de Turing, J.Presper Eckert e John Mauchly projetaram uma mquina que poderia ser usada para calcular tabelas de trajetrias balsticas para o exrcito dos Estados Unidos. Os americanos queriam saber como deveriam posicionar seus canhes para acertar o alvo. Esses clculos exigiam grande esforo humano. O resultado do trabalho de EckertMauchly foi o ENIAC (Electronic Numerical Integrator and Computer). O ENIAC consistia em 18.000 tubos de vcuo que eram a seo computacional da mquina. Programas e dados eram introduzidos por meio de interruptores e troca de cabos. No existia um conceito de um programa armazenado, e no existia tambm uma unidade central de memria, mas essas no eram limitaes srias porque tudo que o ENIAC precisava fazer era calcular trajetrias balsticas. Apesar de no se tornar operacional at 1946, aps o fim da guerra foi considerado um sucesso e utilizado por nove anos. A operao dessa mquina consumia 140 quilowatts de energia eltrica. Ela era muito mais rpida do que qualquer computador eletromecnico, sendo capaz de executar 5 mil adies por segundo. O ENIAC era uma mquina decimal e no uma mquina binria, ou seja, a representao era feita na base decimal, a qual era utilizada tambm para a realizao das operaes aritmticas. A memria consistia de 20 acumuladores, cada um dos quais capaz de armazenar um nmero decimal de dez dgitos.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 7 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Cada dgito era representado por um anel de dez vlvulas. A cada instante, apenas uma vlvula ficava no estado ON (ligado), representando um dos dez dgitos. O ENIAC foi o primeiro computador desenvolvido nos Estados Unidos em um projeto bem sucedido e predecessor de computadores importantes para a evoluo dessas mquinas. O projeto inicial previa o investimento de US$ 150 mil, mas acabou custando US$ 400 mil. De acordo com o Computer History Museum, localizado na Califrnia, Estados Unidos, em uma dcada ele fez mais contas do que a humanidade inteira tinha feito at ento. Hoje, qualquer calculadora de engenharia mais rpida que ele.

1.2 A Mquina de Von Neumann


A tarefa de carregar e de modificar um programa no ENIAC era extremamente tediosa. O processo de programao poderia ser facilitado se um programa pudesse ser representado de maneira adequada, de modo que fosse armazenado na memria, juntamente com os dados. Assim, o computador poderia obter as informaes diretamente, a partir da memria, e um programa poderia ser carregado ou modificado simplesmente atribuindo valores posies de memria. Essa idia, conhecido como conceito de programa armazenado, geralmente atribuda aos projetistas do ENIAC, principalmente ao matemtico John Von Neumann, que era um dos consultores no projeto. Ela foi simultaneamente concebida por Alan Turing. A primeira publicao da idia, concretizada em uma proposta formulada por Von Neumann, ocorreu em 1945 para um novo computador, o EDVAC (Eletrocnic Discrete Variable Computer). Em 1946, Von Neumann e seus colegas comearam o projeto de um novo computdaor de programa armazenado, conhecido como IAS, no Instituto de Estudos Avanado de Princeton. O IAS, embora concludo somente em 1952, constitui o prottipo de todos os computadores de propsito geral subseqentes. No modelo de Von Neumann o dispositivo de entrada fornece instrues e dados ao sistema que so subsequentemente armazenados na unidade de memria. As instrues e os dados so processados pela unidade aritmtica e lgica (ULA) sob a superviso da unidade de controle. Os resultados so enviados para o dispositivo de sada. A ULA e a unidade de controle so frequentemente chamadas, de forma coletiva, de unidade central de processamento (central processing unit CPU). A maioria dos computadores comerciais funciona desta forma. O programa armazenado o aspecto mais importante deste modelo. Um programa armazenado na memria do computador junto com os dados a serem processados. Muito embora hoje seja considerado normal, antes do desenvolvimento do programa de computador armazenado os programas eram armazenados em memria externa, tais como placas de conexo de fios, cartes perfurados ou fita. No computador de programa armazenado, o programa pode ser manipulado como se fosse um dado. Isso possibilitou o desenvolvimento de compiladores e sistemas operacionais, e tornou possvel a grande versatilidade dos computadores modernos. Com raras excees, todos os computadores atuais possuem essas mesmas funes e estrutura geral e assim so conhecidos como mquinas com arquitetura de Von Neumann.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 8 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

1.3 O Modelo de Barramento do Sistema


Muito embora o modelo de Von Neumann esteja presente em computadores modernos, esse modelo foi modernizado (observe a figura). O modelo de barramento do sistema particiona um sistema computacional em trs sub-unidades: CPU, memria e entrada/sada (E/S). O refinamento do modelo de Von Neumann combina a ULA e a unidade de controle em uma unidade funcional, a CPU. Os dispositivos de entrada e sada so combinados em uma nica unidade de E/S. O mais importante no modelo de barramento a comunicao entre os componentes, usando um caminho compartilhado chamado barramento do sistema, que composto pelo barramento de dados (que transporta a informao sendo transmitida), o barramento de endereos (que identifica para onde a informao est sendo enviada) e o barramento de controle (que descreve os aspectos sobre como a informao est sendo transmitida, e de que forma). Existe tambm um barramento de energia para levar alimentao eltrica aos componentes. Esse barramento no mostrado, mas sua presena assumida. Algumas arquiteturas possuem os barramentos de entrada e de sada separados. Fisicamente barramentos so feitos de colees de fios que so agrupados por funo. Um barramento de dados de 32 bits tem 32 fios individuais, cada um dos quais transporta um bit de dados (ao contrrio de endereos ou informao de controle). Nesse sentido, o barramento do sistema na verdade um grupo de barramentos individuais classificados por sua funo. O barramento de dados move dados entre os componentes do sistema. Alguns sistemas tm barramentos de dados separados para mover informao para a ou da CPU, e neste caso existem um barramento de entrada de dados e outra de sada de dados. Frequentemente, contudo, um nico barramento de dados move os dados em ambas as direes, muito embora nunca nas duas direes ao mesmo tempo. Se o barramento for compartilhado por todas as unidades que se comunicam, ento elas tm de possuir identidades individuais: endereos. Em alguns computadores presume-se que todos os endereos so endereos de memria, tanto no caso de endereos de memria como no caso de dispositivos de E/S, enquanto em outros os dispositivos de E/S tm endereos separados. Um endereo de memria identifica um lugar na memria onde os dados sero armazenados de forma similar dos endereos postais que identificam o lugar onde o recipiente recebe e envia correspondncia. Durante uma operao de leitura ou escrita, o barramento de endereos contm o endereo da localizao de memria onde os dados devero ser lidos ou escritos. Note que os termos leitura e escrita dizem respeito CPU: a CPU l dados da memria e escreve dados na mesma. Se os dados forem lidos da memria ento o barramento de dados contm o valor lido daquele endereo de memria. Se os dados forem escritos na memria, ento o barramento de dados contm o valor de dados a ser escrito na memria. O barramento de controle pode ser visto como um dispositivo que coordena acesso aos barramentos de dados e endereo, e que direciona dados para componentes especficos.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 9 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

1.4 Computadores Comerciais


Os anos 50 viram o nascimento da indstria de computadores com duas companhias, a Sperry e a IBM dominando o mercado. Em 1947, Eckert e Mauchly fundaram a Eckert-Mauchly Computer Corporation para fabricar computadores comercialmente. Sua primeira mquina de sucesso foi o UNIVAC I (Universal Automatic Computer) que foi financiado pelo centro de recenseamento para o censo de 1950. A EckertMauchly Computer Corporation tornou-se parte da diviso UNIVAC da Sperry Rand Corporation, que continuou a construir uma srie de mquinas sucessoras. O UNIVAC I foi o primeiro computador comercial de sucesso. Como o nome indica, ele tinha o propsito de servir tanto para aplicaes cientficas quanto para aplicaes comerciais. O primeiro artigo que descreve esse sistema relatava como amostra das tarefas que ele era capaz de executar, computaes algbricas sobre matrizes, resoluo de problemas estatsticos, clculo de prmios de seguro para uma companhia seguradora e soluo de problemas logsticos. O UNIVAC II, que possua maior capacidade de memria e maior desempenho que o UNIVAC I, foi lanado no final dos anos 50 e ilustra tendncias que permaneceram na indstria de computadores. A primeira que os avanos da tecnologia permitiram que as companhias continuassem a desenvolver cada vez mais poderosos e maiores. A segunda que cada companhia procurava construir suas novas mquinas de modo que fossem compatveis com as mquinas anteriores. Isso significa que os programas escritos para as mquinas mais antigas podiam ser executados nas mquinas mais novas. Essa estratgia adotada na expectativa de manter os clientes; isto , quando um cliente decidisse comprar uma nova mquina, provavelmente optaria por compr-la do mesmo fabricante do seu antigo computador, para no perder o investimento j feito no desenvolvimento de programas. A diviso UNIVAC iniciou tambm o desenvolvimento da srie de computadores 1100, que seria sua linha de computadores de uso mais comum. O desenvolvimento dessa srie mostra a distino, existente anteriormente, entre computadores. O primeiro modelo, o UNIVAC 1103, e seus sucessores foram voltados para aplicaes cientficas que envolviam clculos longos e complexos. Outras companhias dispunham de computadores mais voltados para aplicaes comerciais que envolviam o processamento de grandes quantidades de textos. Essa distino tornou-se menos evidente hoje em dia, mas foi bastante clara por muitos anos. A IBM, que ajudou a construir o Mark I e era ento a maior fabricante de dispositivos de processamento de cartes perfurados, lanou seu primeiro computador eletrnico programvel, o 701, em 1953. O 701 foi, inicialmente, voltado para aplicaes cientficas (Bashe e outros, 1981). Em 1955, a IBM introduziu o modelo 702, que possua caractersticas de hardware que o tornavam adequado para aplicaes comerciais. Esses foram os primeiros uma longa srie de computadores 700/7000, que estabeleceram a IBM como o maior fabricante de computadores do mercado.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 10 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

1.5 A Segunda Gerao de Computadores


A primeira grande mudana nos computadores eletrnicos veio com a substituio da vlvula pelo transistor. O transistor menor, mais barato e dissipa menos calor do que a vlvula e, assim como a vlvula, tambm pode ser utilizado para a construo de computadores. Ao contrrio da vlvula, que requer uso de fios, placas de metal, cpsula de vidro e vcuo. O transistor um dispositivo de estado slido, feito de silcio. O transistor foi inventado na Bell Laboratories em 1947 e iniciou uma revoluo na indstria eletrnica nos anos 50. Entretanto, apenas no final da dcada de 50, computadores totalmente transistorizados tornaram-se comercialmente disponveis. Mais uma vez, a IBM no foi a primeira companhia a lanar esta nova tecnologia. A NCR e, com maior sucesso, a RCA foram as pioneiras com o lanamento de pequenas mquinas transistorizadas. A IBM as seguiu de perto, com a srie 7000. O uso de transistores criou a segunda gerao de computadores. comum classificar os computadores em geraes, de acordo com a tecnologia bsica de hardware empregada. Cada nova gerao caracterizada por computadores com maior velocidade, maior capacidade de memria e menor tamanho que os computadores da gerao anterior. Ocorreram tambm outras mudanas. Nos computadores da segunda gerao, tanto a unidade lgica e aritmtica quanto a unidade de controle eram mais complexas e os computadores j utilizavam linguagens de programao de alto nvel e incluam software de sistema. Tambm merece destaque na segunda gerao, o surgimento da Digital Equipment Corporation (DEC). A DEC foi fundada em 1957 e lanou, nesse mesmo ano, seu primeiro computador, o PDP-1. Esse computador, juntamente com seu fabricante, deu incio ao fenmeno do minicomputador, que se tornaria to importante na terceira gerao. A partir da introduo da srie 700, em 1952, at o lanamento do ltimo modelo da srie 7000, em 1964, essa linha de produtos da IBM passou por uma evoluo tpica dos produtos de computao. Os sucessivos membros da linha possuam maior desempenho e capacidade e/ou custo mais baixo. Outra caracterstica nova o multiplexador, que constitui o ponto central de conexo entre os canais de dados, a CPU e a memria. O multiplexador seleciona qual dispositivo, entre a CPU e os canais de dados, pode fazer acesso memria. Isso permite que esses dispositivos executem de maneira independente.

1.6 A Terceira Gerao de Computadores


Um nico transistor autnomo denominado um componente discreto. Durante a dcada de 50 e incio dos anos 60, os equipamentos eletrnicos eram compostos basicamente de componentes discretos transistores, resistores, capacitores e assim por diante. Esses componentes eram fabricados separadamente, encapsulados em seus prprios recipientes e soldados ou ligados com fios, por meio de uma tcnica conhecida como wire up, as placas de circuito, que eram ento instaladas nos computadores, osciloscpios e outros equipamentos eletrnicos. Quando um dispositivo eletrnico requeria um transistor, um pequeno tubo de metal com uma pea de silcio do tamanho de uma cabea de alfinete tinha de ser soldado a uma placa de circuito.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 11 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

O processo completo de fabricao, desde o transistor at a placa de circuito, era caro e incmodo.Isso comeava a criar problemas na indstria de computadores. Os computadores do incio da segunda gerao continham cerca de 10 mil transistores. Esse nmero cresceu at centenas de milhares, tornando cada vez difcil a fabricao de mquinas novas, mais poderosas. Em 1958, foi desenvolvida uma nova tcnica que revolucionou os equipamentos eletrnicos e iniciou a era da microeletrnica: a inveno do circuito integrado. Esse circuito caracteriza a terceira gerao de computadores. O desenvolvimento da tecnologia de circuitos integrados surgiu devido necessidade de se encontrar uma soluo para os problemas de acomodao dos componentes eletrnicos (transistores, capacitores e resistores) nos equipamentos medida que sua quantidade ia crescendo com o aumento da capacidade das mquinas. Das tentativas de encontrar soluo para tais problemas que se idealizou a possibilidade de acomod-los em um nico invlucro. O ponto importante no conceito de circuitos integrados que pode formar mltiplos transistores em um nico elemento de silcio, de modo que, um circuito lgico que antes ocupava uma placa de circuito impresso completa pode ser, com esta tecnologia, acomodado em uma s pastilha (chip) de silcio. E mais ainda, como se pode conectar vrios transistores diretamente na pastilha, eles podem ser incrivelmente menores em tamanho, necessitando, assim, menos energia e dissipando menos calor. Em outubro de 1958, Jack Kilby, da Texas Instruments Co, colocou dois circuitos em uma pea de germnio. O dispositivo resultante era rudimentar e as interconexes tinham que ser realizadas por fios externos, mas esse dispositivo , em geral, reconhecido como o primeiro circuito integrado fabricado no mundo. Logo em seguida, Robert Noyce, da Fairchild Semiconductor Inc., utilizou-se de tcnicas recm criadas na mesma companhia e integrou mltiplos componentes em um substrato de silcio. Os dispositivos comerciais que se sucederam mostraram a vantagem do silcio sobre o germnio e permitiram o surgimento de uma nova gerao de mquinas, mais poderoras e menores, devido integrao em larga escala (LSI Large Scale Integration) que os circuitos integrados proporcionaram. Em 1964, a IBM se utilizou das recentes inovaes tecnolgicas na rea da microeletrnica (os circuitos integrados) e lanou a sua famlia de computadores, a srie 360. Este sistema incorporou diversas inovaes, que se tornaram um marco histrico em termos de computao e consolidaram a posio j obtida pela IBM, como a primeira fabricante de computadores no mundo. Entre essas inovaes, podemos citar: O conceito de famlia de computadores, em vez de mquina individual, como at ento. Este conceito permite que o fabricante oferea o mesmo tipo de mquina com diferentes capacidades e preos, o que garante uma maior quantidade de clientes. A utilizao de unidade de controle com microprogramao em vez das tradicionais unidades de controle no hardware.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 12 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

O emprego de uma tcnica chamada de multiprogramao, pela qual vrios programas compartilham a mesma memria principal e dividem o uso da CPU, dando a impresso ao usurio de que esto sendo executados simultaneamente. A elevada capacidade de processamento (para a poca), com palavra de 32 bits e ciclo de instruo de at 250 nanosegundos, bem como a grande capacidade de armazenamento na memria principal de 16 Mbytes. Alm da famlia 360, esta poca de LSI presenciou tambm o lanamento de outro minicomputador DEC com circuitos integrados, memria principal orientada a byte e palavra de 16 bits, o PDP 11, uma das mquinas mais famosas em sua categoria. Seu sucessor, o sistema VAX-11, tambm teve o mesmo sucesso, especialmente no ambiente universitrio. Microeletrnica significa literalmente eletrnica pequena. Desde o incio da eletrnica digital e da indstria de computadores, houve uma tendncia persistente e consistente da reduo do tamanho dos circuitos eletrnicos e digitais. Inicialmente era possvel fabricar e empacotar em uma nica pastilha apenas um pequeno nmero de portas lgicas ou clulas de memria. Com o passar do tempo, foi possvel empacotar mais e mais componentes em uma mesma pastilha. Esta uma das mais notveis tendncias tecnolgicas registradas e reflete a famosa Lei de Moore, proposta por Gordon Moore, um dos fundadores da Intel. Moore observou que o nmero de transistores que podiam ser impressos em uma nica pastilha dobrava a cada ano e previu, corretamente, que esse crescimento permaneceria em um futuro prximo. Para a surpresa de muitos, inclusive de Moore, esse crescimento continuou, ano aps ano e dcada aps dcada. Nos anos 70, a taxa de crescimento diminuiu, com a duplicao ocorrendo a cada 18 meses, mas estabilizou-se desde ento.

1.7 Quarta Gerao de Computadores - VLSI


O termo VLSI (Very Large Scale Integration), integrao em larga escala, caracteriza uma classe de dispositivos eletrnicos capazes de armazenar, em um nico invlucro, milhares e at milhes de diminutos componentes. Este dispositivo, j anteriormente mencionado e denominado pastilha vem constituindo a base da estrutura de todos os principais sistemas de computao modernos. A tcnica de miniaturizao de componentes eletrnicos ou microeletrnica conduziu, por volta de 1970, ao desenvolvimento de um outro tipo de computadores at ento inexistente no mercado, os computadores pessoais ou microcomputadores. A evoluo dos microcomputadores, decorrente principalmente do avano da miniaturizao dos processadores e demais elementos, vem sendo de tal forma rpida e eficiente que os computadores de maior porte foram sendo progressivamente substitudos nas empresas, restando hoje um nicho de mercado bem pequeno e especfico para aquelas mquinas. Atualmente, pode-se afirmar que a maioria dos sistemas de computao utilizados no mundo comercial e governamental baseada em microcomputadores, assim como o imenso universo dos computadores pessoais. Em 1971, a Intel produziu a primeira CPU em uma s pastilha de circuito integrado, denominada INTEL-4004. Esta CPU que se destinava uma calculadora, possua palavra de 4 bits e tinha cerca de 2300 transistores na pastilha. Logo em seguida, a Intel lanou um novo microprocessador, desta vez com 8 bits de palavra e 16 K de memria, o INTEL 8008.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 13 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Tanto o 4004 quanto o 8008 eram CPU destinadas a uma aplicao especfica (o 8008 destinava-se Display Terminals Corporation, para servir de controlador de um monitor de vdeo). Embora a empresa solicitante da pastilha nunca tivesse usado o 8008, a Intel vendeu uma quantidade no esperada dessa pastilha, mesmo com os problemas de pouca memria e pequeno conjunto de instrues. Ento em 1973, a Intel lanou o seu grande sucesso da poca, o primeiro microprocessador de emprego geral do mundo, o Intel 8080. O 8008 possua cerca de 3500 transistores encapsulados na pastilha, enquanto o 8080 tinha em torno de 5000 transistores. Este ltimo possua tambm 8 bits de tamanho de palavra, capacidade maior de memria e um grande conjunto de instrues. O 8080 vendeu aos milhes e desde ento a Intel no parou mais de crescer e desenvolver novos produtos (o processador pentium tem cerca de 3,5 milhes de transistores) Na realidade, os computadores pessoais surgiram com o lanamento do Altair, que pode ser considerado o primeiro computador pessoal oferecido com fins comerciais, auxiliando sobremodo o incio da revoluo que os microcomputadores realizaram desde ento. Esse microcomputador, construdo pela empresa MITS, baseava-se no microprocessador INTEL 8080 e utilizava um interpretador da linguagem Basic, desenvolvido por Bill Gates e Paul Allen, que fundaram nessa ocasio a Microsoft, tornando-se o gigante atual. O Altair foi um verdadeiro sucesso comercial. Desde o surgimento dos primeiros microprocessadores fabricados pela Intel at os dias atuais a evoluo da microeletrnica e da tecnologia de fabricao e montagem de componentes e equipamentos completos tem sido constantemente e extraordinariamente rpida. A quantidade de inovaes e marcos nesse desenvolvimento enorme, contedo de livros inteiros. Para encerrar este texto, devemos mencionar algumas observaes sobre outros fabricantes, alm da Intel, que tm contribudo sobremaneira para o aperfeioamento e crescimento do mercado da microcomputao. A Motorola um desses fabricantes que a partir do lanamento de seu processador MC6800 de 8 bits, em 1974, tambm no parou de evoluir. Em 1979 a Motorola inovou, lanando o microprocessador MC68000, j de 32 bits de palavra (a Intel lanou seu primeiro processador de 32 bits, o Intel 80386, somente em 1985, seis anos depois), mas no conquistou o mercado, como era esperado. Outro fabricante de processadores e demais componentes para o mercado de microcomputadores a AMD (Advanced Micro Devices) criada em 1974 para concorrer diretamente com a Intel. Alm da AMD, pode-se mencionar como empresas relevantes na rea de equipamentos de computao a Sun MicroSystems, a Compaq, a Dell e a Gateway. Acompanhe na prxima seo um breve resumo contendo os fatos mais importantes na evoluo dos sistemas de computao.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 14 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

1.8 Evoluo da Informtica


Perodo
500 a.C. 1642 d.C. 1670 1823 1842 1889 1890 1924 1946 1946 1951 1957 1958 1958 1962 1964 1964 1965 1965 1967 1970 1971 1971 1972 1973 1975 1976 1977 1979 1981 1984 1987 1989 1992 1994 1995 1998

Evento
Inveno e utilizao do baco Blaise Pascal cria sua mquina de somar Gottfried Leibniz cria uma mquina de calcular que realiza as quatro operaes matemticas Charles Babbage cria a mquina de diferenas, por contrato com a Marinha Real Inglesa O mesmo Babbage projeta uma mquina analtica para realizar clculos Herman Hollerith inventa o carto perfurado Hollerith desenvolve um sistema para registrar e processador os dados do censo Constituio da IBM Trmino da construo do ENIAC John von Neumann prope que um programa seja armazenado no computador e projetao IAS, implementando sua proposta Termina a construo do primeiro computador comercial de propsito geral, o UNIVAC Uma equipe da IBM, liderada por John Bachus, desenvolve a primeira linguagem de alto nvel, Fortran, voltada para solucionar problemas matemticos A IBM lana o IBM-7090 Jack Kilby, na Texas Instruments, completa a construo do primeiro circuito integrado, contendo cinco componentes Douglas Engelbart, no Standford Research Institute, inventa o mouse A IBM lana o IBM 360, o primeiro computador a utilizar circuitos integrados Thomas Kurtz desenvolve a linguagem Basic no Dartmouth College Criao da Lei de Moore A IBM fabrica o primeiro floppy disk Lanamento da primeira verso do sistema operacional UNIX A linguagem Pascal projetada por Nicklaus Wirth A Intel lana o primeiro sistema de microcomputador, baseado no processador 4004 Dennis Ritchie, do Bell Labs, desenvolve a linguagem C Gary Kildall escreve um sistema operacional na linguagem PL/M e o denomina CP/M A Intel lana o processador 8080 de 2Mhz Steve Wozniak e Steve Jobs formam a Apple Computer Surge a primeira planilha eletrnica, Visicalc A IBM anuncia o IBM-PC A Apple apresenta o seu primeiro computador do tipo Macintosh A Microsoft lana sua planilha Excel A Microsoft lana seu sistema operacional Windows para IBM-PCs Lanamento do Windows 3.0 A AMD lana um clone do Intel 386 Linus Torvalds desenvolve o Linux A Iomega lana o ZIP Drive Inicia-se o contencioso entre a Microsoft e o governo dos EUA, que dura at os dias atuais A Compaq adquire a DEC.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 15 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Exerccios
01 O sculo passado foi marcado por vrias invenes que objetivavam auxiliar o homem na realizao das mais diversas tarefas. Uma destas invenes a chamada mquina ENIGMA. Qual o objetivo dos alemes ao criarem esta mquina? 02 Sobre as afirmativas a seguir, incorreto afirmar que: (assinale a alternativa incorreta) a) O conceito de efetuar clculos com algum tipo de equipamento data, pelo menos, do sculo V a.C. com os babilnios e sua inveno do baco. b) Blaise Pascal desenvolveu uma calculadora mecnica para auxiliar na preparao dos impostos de seu pai. c) Charles Babbage viveu na Espanha em uma poca em que tabelas matemticas eram usadas em navegao e trabalho cientfico. d) Durante a Segunda Guerra, Alan Turing foi o mais proeminente especialista em criptografia da Inglaterra e) O ENIAC era capaz de executar 5 mil adies por segundo 03 No modelo de Von Neumann, a unidade central de processamento (CPU) composta pela unidade lgica e aritmtica e pela unidade de controle. Explique a funo destes dois dispositivos. 04 - O programa armazenado o aspecto mais importante do modelo de Von Neumann. Um programa armazenado na memria e pode ser manipulado como se fosse um dado. Isso possibilitou o desenvolvimento de compiladores e sistemas operacionais. Dentro de um sistema de computao, qual a funo de um compilador e de um sistema operacional? 05 O barramento do sistema composto pelo barramento de dados, barramento de endereos e pelo barramento de controle. Explique a funo de cada um destes barramentos. 06 - Por que o transistor representou uma evoluo na tecnologia de construo dos computadores, quando comparado s vlvulas? 07 Considere as alternativas a seguir: I. II. III. IV. O UNIVAC I foi o primeiro computador comercial de sucesso O transistor foi inventado na Microsoft Corporation em 1974 revolucionando a indstria eletrnica Os computadores da segunda gerao utilizavam linguagens de programao de baixo nvel A Digital Equipment Corporation foi fundada em 1957 e lanou o computador PDP-1

Esto corretas as alternativas (assinale a alternativa correta) a) b) c) d) e) I e II I e III III e IV II e IV I e IV

08 Em um sistema de computao, qual a funo de um multiplexador?

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 16 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

09 Em que consiste o conceito de LSI (Large Scale Integration)? 10 - Em 1964 a IBM se utilizou das inovaes tecnolgicas na rea da microeletrnica e lanou a sua famlia de computadores, a srie 360. Este sistema incorporou diversas novidades, como por exemplo, o emprego de uma tcnica chamada de multiprogramao. Em que consiste esta tcnica? 11- Os computadores pessoais surgiram com o lanamento do Altair, que construdo pela empresa MITS e utilizava um interpretador da linguagem Basic. Em que um interpretador difere de um compilador? 12 Qual o valor final para as alternativas a seguir, relacionadas evoluo dos sistemas de computao, considerando apenas as corretas? (01) (02) (04) (08) (16) (32) Soma: 13 Cite exemplos de dispositivos de entrada e dispositivos de sada. Em 1670 Leibniz cria uma mquina de calcular que realiza as quatro operaes matemticas Em 1889 Herman Hollerith inventa o carto perfurado A linguagem Fortran foi desenvolvida em 1971 Em 1965 criada a lei de Moore O disquete criado em 1985 Steve Wozniak e Steve Jobs formam a Apple Computer em 1975

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 17 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

2- Representao das Informaes


2.1 Bits, caracteres, bytes e palavras
Toda informao introduzida em um computador (sejam dados que sero processados ou instrues de um programa) precisa ser entendida pela mquina, para que possa ser corretamente interpretada e processada. O computador, sendo um equipamento eletrnico, armazena e movimenta as informaes internamente sob forma eletrnica; esta forma pode ser um valor de voltagem ou de corrente (sabemos tambm que na memria secundria as informaes so armazenadas sob forma magntica ou ptica). Para que esta mquina pudesse representar eletricamente todos os smbolos utilizados na linguagem humana, seriam necessrios mais de 100 diferentes valores de voltagem (ou de corrente). Tal mquina certamente seria difcil de ser construda para fins comerciais e, possivelmente, teria confiabilidade muito baixa (uma das grandes desvantagens do primeiro computador eletrnico construdo, o ENIAC, foi justamente o fato de ser uma mquina decimal, o que foi imediatamente corrigido a partir da mquina seguinte, o IAS que j era um computador binrio). No caso do IAS, optou-se por uma mquina binria j que Von Neumann e sua equipe consideraram que seria muito mais simples e confivel projetar um circuito capaz de gerar e manipular o menor nmero possvel de valores distintos, isto , capaz de entender apenas dois valores diferentes: 0 e 1. Alm disso, com uma mquina binria, torna-se mais simples o emprego da lgica booleana. Dessa forma, os computadores digitais (que trabalham com valores discretos) so totalmente binrios. Toda informao introduzida em um computador convertida para a forma binria, atravs do emprego de um cdigo qualquer de armazenamento. As linguagens utilizadas pelos humanos, como o portugus, possuem uma estrutura de informao criada para permitir a construo dos elementos necessrios comunicao entre pessoas, seja no formato falado seja no escrito. Assim que nos comunicamos uns com os outros atravs de trechos do conjunto de elementos disponveis na nossa linguagem, como os caracteres e as palavras, unindo-os de acordo com as regras de construo estabelecidas (lxica e de sintaxe). A menor unidade de informao armazenvel em um computador o algarismo binrio ou dgito binrio conhecido como bit (contrao das palavras inglesas binary digit). O bit pode ento assumir somente dois valores: 0 e 1. Da mesma forma que na nossa linguagem a menor unidade de informao (o caractere) pouco ou nada significa como informao til, em computao, com possibilidades to limitadas, o bit pouco pode representar isoladamente; por essa razo, as informaes manipuladas por um computador so codificadas em grupos ordenados de bits, de modo a terem um significado til.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 18 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

O menor grupo ordenado de bits que pode representar uma informao em computador o caractere da linguagem dos humanos, justamente a menor unidade de informao das nossas linguagens. Qualquer caractere a ser armazenado em um sistema de computao convertido em um conjunto de bits previamente definido para o referido sistema (chama-se cdigo de representao de caracteres). A primeira definio formal atribuda a um grupo ordenado de bits, para efeito de manipulao interna mais eficiente, foi instituda pela IBM e , atualmente, utilizada por praticamente todos os fabricantes de computadores. Trata-se do byte, definido como um grupo ordenado de oito bits, tratados de forma individual, como unidade de armazenamento e transferncia. O byte foi definido para servir de elemento de referncia para a construo e funcionamento dos dispositivos de armazenamento e tambm como referncia para os processos de transferncia de dados entre perifricos. importante observar que na utilizao do termo byte em citaes sobre a capacidade de memria, verificamos a incluso dos termos K, M e G. Tais termos so letras indicativas de um valor numrico fixo, utilizado para reduzir a quantidade de algarismos representativos de um nmero. Nas grandezas mtricas, usa-se o K para representar mil vezes. Como os computadores so mquinas binrias, todas as indicaes numricas referem-se a potncias de 2 e no a potncias de 10 como no sistema mtrico e, por essa razo o K representa 1024 unidades (210), o M (abreviatura do termo mega) representa 1.048.576 unidades (210x210) e o giga, representado pelo caractere G, indica um valor igual a 1024 mega ou 1.073.741.824 unidades (210x210x210). Observe a tabela: 1 Kbyte 1 Mbyte 1 Gbyte 1024 bytes 1.048.576 bytes 1.073.741.824 bytes 210 210x210 210x210x210

Com o progressivo aumento da capacidade dos dispositivos de armazenamento dos computadores, criaram-se mais dois elementos para abreviar valores mais elevados: trata-se do termo tera, para representar um valor igual 240, ou 1024 Gbytes, e do peta para representar 250 ou 1024 teras (e certamente em um futuro prximo estaremos usando outras abreviaturas mais poderosas). Tambm em computao criou-se o conceito de palavra. Assim alm do bit e do byte, temos o conceito relacionado como armazenamento e a transferncia de informaes entre a memria principal e a CPU. Inicialmente podemos definir a palavra como um conjunto de bits que representa uma informao til para os computadores. A palavra nos computadores um valor fixo e constante para um processador (32 bits, por exemplo, para os processadores Pentium), diferentemente das linguagens dos humanos onde as palavras tm quantidades variveis de caracteres. De um modo geral, usam-se dois valores diferentes: um relacionado unidade de armazenamento o byte (oito bits o valor mais comum) e outro para indicar a unidade de transferncia de processamento a palavra (que na quase totalidade de computadores possui um nmero de bits mltiplos de 1 byte 16, 32 ou 64 bits). Em geral, a CPU processa valores representados por uma quantidade de bits igual da palavra, indicando assim a capacidade de processamento do sistema.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 19 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

2.2 - Notao Posicional


Desde os primrdios da civilizao, o homem vem adotando formas e mtodos especficos para representar nmeros, tornando possvel, com eles, contar objetos e efetuar operaes aritmticas. A forma mais empregada de representao numrica a chamada notao posicional. Nela, os algarismos componentes de um nmero assumem valores diferentes, dependendo de sua posio relativa no nmero. O valor total do nmero a soma dos valores relativos de cada algarismo. Assim, a posio do algarismo ou dgito que determinada o seu valor. A formao de nmeros e as operaes com eles efetuadas dependem, nos sistemas posicionais, da quantidade de algarismos diferentes disponveis no referido sistema. H muito tempo a cultura ocidental adotou um sistema de numerao que possui dez diferentes algarismos 0,1,2,3,4,5,6,7,8,9 - e por essa razo foi chamado de sistema decimal. A quantidade de algarismos disponveis em um dado sistema de numerao chamada de base; a base serve para contarmos grandezas maiores, indicando a noo de grupamento. O sistema de dez algarismos mencionado anteriormente tem base 10; outro sistema que possua apenas dois algarismos diferentes (0 e 1) de base 2, e assim por diante. Vamos exemplificar o conceito de sistema posicional. Seja o nmero 1303, representado na base 10, escrito da seguinte forma:

130310
Em base decimal, por ser mais usual, costuma-se dispensar o indicador da base, escrevendose apenas o nmero: 1303. Note que neste exemplo o nmero composto pelos algarismos 1,3,0 e 3, e cada algarismo possui um valor correspondente sua posio no nmero. Desta maneira, o primeiro 3 (algarismo mais direita) representa 3 unidades. Neste caso, o valor absoluto do algarismo igual ao seu valor relativo por se tratar da 1a posio. Considerando-se o produto trs vezes a potncia de 0 da base 10 ou 3 x 100 = 3 enquanto o segundo 3 vale trs vezes a potncia 2 na base 10 ou 3 x 102 = 300 e o ltimo esquerda vale 1 vez a potncia 3 na base 10 ou 1 x 103 = 1000 Desta maneira, o valor total do nmero seria ento: 1000 + 300 + 0 + 3 = 130310 1 x 103 + 3 x 102 + 0 x 101 + 3 x 100

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 20 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

2.3 - Outras Bases de Numerao


Entre as bases diferentes de 10, consideremos apenas as bases 2 e potncias de 2, visto que todo computador digital representa internamente as informaes em algarismos binrios, ou seja, trabalha na base 2. Como os nmeros representados em base 2 so muito extensos (quanto menor a base de numerao, maior a quantidade de algarismos necessrios para indicar um dado valor) e, portanto, de difcil manipulao visual, costuma-se representar externamente os valores binrios em outras bases de valor mais elevado. Isso permite maior compactao de algarismos e melhor visualizao dos valores. Em geral, usamse as bases octal ou hexadecimal. A base do sistema binrio 2 e, consequentemente, qualquer nmero, quando representado nesse sistema consiste exclusivamente em dgitos 0 e 1. O termo dgito binrio chamado bit, contrao do termo ingls binary digit. Por exemplo, o nmero binrio 11011 possui cinco dgitos ou algarismos binrios. Diz-se que o referido nmero constitudo de 5 bits. Em bases de valor superior a 10, usam-se letras do alfabeto para a representao de algarismos maiores que 9. Uma dessas bases especialmente importante em computao trata-se da base 16 ou hexadecimal, por ser de valor potncia de 2 (como a base 8). Nessa base, os algarismos A,B,C,D,E e F representam, respectivamente, os valores (da base 10): 10,11,12,13,14 e 15. Na base 16 (hexadecimal) dispomos de 16 algarismos (no nmeros) diferentes: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Um nmero nessa base representado como 1A7B16. O seu valor na base 10 ser obtido da 3 0 seguinte maneira: 1 x 16 + 10 x 162 + 7 x 161 + 11 x 16 = 4096 + 2560 + 112 + 11 = 677910 Em outras palavras, utilizamos valores e regras de aritmtica da base 10 e, por isso, o resultado encontrado um valor decimal. A tabela a seguir mostra a representao de nmeros nas bases 2, 8, 10 e 16.

Base 2
0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111

Base 8
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17

Base 10
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Base 16
0 1 2 3 4 5 6 7 8 9 A B C D E F

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 21 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

2.4 - Converso de Bases


Uma vez entendido como representar nmeros em notao posicional, e como esta notao aplicvel em qualquer base inteira, podemos exercitar a converso de nmeros de uma base para outra. Neste item vamos dar nfase converso entre as bases binria e decimal.

2.4.1

Converso de Base Decimal para Base Binria

A converso obtida dividindo-se o nmero decimal pelo valor da base desejada (no caso, base 2); o resto encontrado o algarismo menos significativo do valor na base 2 (mais direita). Em seguida, divide-se o quociente encontrado pela base 2; o resto o algarismo seguinte ( esquerda); e assim sucessivamente, vo-se dividindo os quocientes pelo valor da base at se obter quociente de valor zero. Em cada diviso, o resto encontrado um algarismo significativo do nmero na nova base; o primeiro resto encontrado o valor do algarismo menos significativo (mais direita), e o ltimo resto ser o algarismo mais significativo (mais esquerda). Observe: 45 22 11 05 02 01 / / / / / / 2 2 2 2 2 2 = = = = = = 22 11 05 02 01 00 resto resto resto resto resto resto = = = = = = 1 (algarismo menos significativo, mais direita) 0 1 1 0 1 (algarismo mais significativo, mais esquerda)

Desta maneira, o nmero 45 na base decimal corresponde a 101101 em binrio.

2.4.2

Converso de Base Binria para Base Decimal

O processo de converso de uma base binria para decimal consiste em multiplicar cada dgito do nmero pelo valor de sua base elevada posio que ocupa no prprio nmero. Acompanhe o processo inverso ao mostrado no item anterior:

101101 = 1 x 25 + 0 x 24 + 1 x 23 + 1 x 22 0 x 21 + 1 x 20
=

(32) (00) (08) (04) (00) (01)

45
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 22 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Exerccios
01 Converta para binrio os seguintes nmeros decimais: a) b) c) d) e) f) 120 97 234 46 39 183

02 Considerando os nmeros binrios a seguir, encontre qual o seu correspondente no sistema decimal. a) b) c) d) e) f) 10101010 10001001 11001100 10000111 11011101 10011010

03 Complete a tabela: Decimal 100 50 73 Binrio (+) (x) (:) (-) 110 11001 (=) (=) (=) (=) Decimal 130 90 40 Hexa (-) (+) (+) (x) 19 A 14 (=) (=) (=) (=) Decimal 70

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 23 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

3- Conceitos da Lgica Digital


3.1 Introduo
Conforme j comentado anteriormente, um computador digital uma mquina projetada para armazenar e manipular informaes representadas apenas por algarismos ou dgitos e que s podem assumir dois valores distintos, 0 e 1, razo por que chamado computador digital, sistema digital ou simplesmente mquina digital binria. Como na prtica no h mquinas digitais no-binrias, como, por exemplo, mquinas digitais decimais, mais usual simplificar-se o termo, usando apenas computador digital (a palavra binrio fica implcita). A informao binria representada em um sistema digital por quantidades fsicas, sinais eltricos, os quais so gerados e mantidos internamente ou recebidos de elementos externos, em dois nveis de intensidade, cada um correspondente a um valor binrio. A figura abaixo mostra um exemplo de valores eltricos de sinais binrios, sendo escolhido um sinal de +3V para representar o bit 1 e + 0,5 V para representar o valor binrio 0. Como se observa na figura, cada valor tem uma faixa de tolerncia, tendo em vista que nenhum sinal sempre absolutamente preciso em seu valor. Internamente, um computador constitudo de elementos eletrnicos, como resistores, capacitores e principalmente transistores. Nesses computadores, os transistores so, em geral, componentes de determinados circuitos eletrnicos que precisam armazenar os sinais binrios e realizar certos tipos de operaes com eles. Esses circuitos, chamados circuitos digitais, so formados de pequenos elementos capazes de manipular grandezas apenas binrias. Os pequenos elementos referidos so conhecidos como portas (gates) lgicas, por permitirem ou no a passagem desses sinais, e os circuitos que contm as portas lgicas so conhecidos como circuitos lgicos. Uma porta ento um elemento de hardware ( um circuito eletrnico) que recebe um ou mais sinais de entrada e produz um sinal de sada, cujo valor dependente do tipo de regra lgica estabelecida para a construo do referido circuito. Em resumo, um computador digital construdo contendo uma infinidade de circuitos lgicos ou portas, convenientemente distribudos e organizados, de modo que alguns serviro para armazenamento de valores, outros permitiro e controlaro o fluxo de sinais entre os componentes e outras, ainda, sero utilizadas para realizar operaes matemticas. O projeto de circuitos digitais e a anlise de seu comportamento em um computador podem ser realizados atravs do emprego de conceitos e regras estabelecidas por uma disciplina conhecida como lgebra de Chaveamentos (Switching Algebra), que um ramo da lgebra booleana.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 24 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

3.2 lgebra Booleana


Em 1854, George Boole publicou seu trabalho seminal sobre uma lgebra para representao lgica. Boole estava interessado em capturar a matemtica do pensamento e desenvolveu uma representao para informao factual como, por exempo, a porta est aberta ou a porta no est aberta. A lgebra de Boole foi estendida por Shannon at a forma que usamos hoje. Em lgebra booleana consideramos a existncia de um postulado bsico, que uma varivel binria recebe um valor nico de 0 ou 1. Este valor corresponde s voltagens mencionadas anteriormente. Com o objetivo de se entender o comportamento de circuitos digitais, podemos abstrair da correspondncia fsica as voltagens e considerar somente os valores simblicos de 0 e 1. Uma contribuio importante de Boole o desenvolvimento de tabelas-verdade que capturam os relacionamentos lgicos em uma forma tabular. Em uma tabela verdade, todas as possveis combinaes de variveis binrias so enumeradas e um valor de sada correspondente a 0 ou 1 atribudo para cada combinao das entradas. Entradas Sada A B Z 0 0 1 0 1 0 1 0 0 1 1 1 Cada operao lgica possui sua prpria tabela verdade, estabelecida de acordo com a regra que define a respectiva operao lgica. Uma tabela verdade tem tantas linhas de informao quantas so as possveis combinaes de valores de entrada, o que pode variar conforme a quantidade de diferentes valores de entrada que se tenha. Assim se tivermos apenas um valor de entrada, ento a sada s pode assumir dois valores (j que a varivel de entrada s pode assumir dois valores distintos, 0 ou 1) e, nesse caso, a tabela verdade teria duas linhas, uma para a entrada igual a 0 e outra para a entrada igual a 1. Se, por outro lado, fosse definidas duas entradas, ento haveria quatro possveis combinaes dos valores de entrada (00,01,10 e 11), pois 22 = 4 e a tabela verdade possuiria quatro linhas e assim por diante.

3.2.1

Operao Lgica ou Porta AND (E)

A porta AND definida como o elemento (ou operao lgica) que produz um resultado verdade na sada, se e somente se todas as entradas forem verdade. Essa definio por ser expressa pela tabela verdade e smbolos mostrados na figura a seguir. Entradas Sada (A . B) A B Z 0 0 0 0 1 0 1 0 0 1 1 1 Operaes lgicas AND podem ser realizadas para satisfazer um determinado requisito de hardware ou para atender a uma especificao de um programador em um programa. Para tanto, a maioria dos processadores possui uma instruo de mquina AND em seu conjunto de instrues.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 25 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

3.3 Operao Lgica ou Porta OR (OU)


A porta OR definida para produzir um resultado verdade na sua sada, se pelo menos uma das entradas for verdade. Esta definio pode ser expressa pela tabela verdade e smbolos mostrados na figura a seguir. Entradas A B 0 0 0 1 1 0 1 1 Sada (A + B) Z 0 1 1 1

Operaes lgicas OR tambm so largamente utilizadas em lgica digital ou na definio de condies em comandos de deciso de certas linguagens de programao.

3.3.1

Operao Lgica NOT (Inversor)

A operao lgica NOT tambm chamada de inversor ou funo complemento. Ela inverte o valor de um sinal binrio colocado em sua entrada, produzindo na sada o valor oposto. um circuito lgico que requer apenas um valor na entrada. A figura a seguir mostra um circuito inversor, bem como os smbolos utilizados e a respectiva tabela verdade. Entrada Sada (A) A Z 0 1 1 0 interessante observar que a conexo de dois circuitos inversores em srie produz na sada um resultado de valor igual ao da entrada. Ou seja, um duplo complemento restaura o valor original. Uma das aplicaes mais comuns do circuito inversor justamente em operaes aritmticas em ponto fixo, quando se usa aritmtica de complemento.

3.3.2

Operao Lgica NAND NOT AND

A operao lgica ou porta NAND definida como o complemento da porta AND, isto , a sada de um circuito lgico NAND obtida ao se aplicar a regra da operao lgica AND e inverter o resultado. Entradas A B 0 0 0 1 1 0 1 1 Sada (A . B) Z 1 1 1 0

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 26 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

A porta NAND produzir uma sada falsa se e somente se todas as entradas forem verdade. Do contrrio, a sada ser verdade se, pelo menos, uma entrada for falsa. muito comum encontrar esta porta em complexos circuitos lgicos, visto que possvel simplificar a fabricao de circuitos lgicos e reduzir a quantidade de componentes eletrnicos se usarmos apenas circuitos NAND.

3.3.3

Operao Lgica NOR NOT OR

Assim como a porta NAND, a porta NOR o complemento ou o inverso da porta OR. A sada de um circuito lgico NOR obtida ao se efetuar a operao lgica OR sobre as entradas e inverter o resultado. Tambm esta operao lgica (NOR) realizada em dois passos: primeiro a operao OR e, em seguida, a inverso (ou operao NOT) do resultado. Entradas A B 0 0 0 1 1 0 1 1 Sada (A+ B) Z 1 0 0 0

A porta NOR apresentar uma sada verdade se e somente se todas as entradas forem falsas. Caso contrrio, a sada ser falsa. possvel projetar circuitos lgicos mais complexos utilizando apenas portas NOR, de modo semelhante ao que j foi mostrado para o caso de portas NAND.

3.3.4

Operao Lgica XOR EXCLUSIVE OR

A operao lgica XOR pode ser considerada um caso particular da funo OR, ou seja, a sada ser verdade se exclusivamente uma ou outra entrada for verdade. Entradas A B 0 0 0 1 1 0 1 1 Sada (A B) Z 0 1 1 0

O XOR um elemento lgico bastante verstil, aparecendo em diversos locais e com diferentes utilidades em circuitos digitais. Alm disso, esta particularidade dos circuitos XOR permite que se fabrique um testador de igualdade entre valores, por exemplo, para testar de modo rpido se duas palavras de dados so iguais. Se as duas palavras forem iguais, as sadas do circuito XOR sero todas falsas.

3.4 Expresses Lgicas


Uma expresso lgica ou funo lgica pode ser definida como uma expresso algbrica formada por variveis lgicas binrias, por smbolos representativos de uma operao lgica, por parnteses e por um sinal de igualdade. Por exemplo: Z = X + Y.W
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 27 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

O valor do resultado de uma expresso lgica pode ser obtido, por uma tabela verdade construda com todas as possibilidades de entrada e as correspondentes sadas. Uma boa maneira de avaliar expresses lgicas consiste em construir a tabela verdade final da expresso atravs da obteno de todas as possibilidades de forma progressiva, operando por operando at chegarmos ao valor da funo para cada possibilidade. Observe: Entradas Sada X Y W Z 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 Expresses lgicas podem ou no conter parnteses; quando contm, eles tm a mesma prioridade para o clculo que parnteses de equaes algbricas comuns. A prioridade de clculo de uma operao AND maior do que a do clculo de uma operao OR, semelhante ao que temos na aritmtica comum, em que a multiplicao tem prioridade sobre a adio. Observe a seguir, o diagrama lgico da funo Z

3.5 - Circuitos Combinatrios


Aps analisarmos cada porta individualmente (sua definio e os resultados obtidos com o emprego da tabela verdade de cada uma) e termos conhecido as regras que servem de alicerce lgebra booleana e seu emprego para simplificao de expresses lgicas, podemos verificar como possvel interligar as diversas portas, de modo a construir redes lgicas, tambm chamadas de circuitos combinatrios. Um circuito combinatrio consiste em uma interconexo de portas lgicas, cujo sinal de sada , em qualquer instante, funo apenas de sinais de entrada naquele instante. Assim como em uma porta simples, a alterao de sinais de entrada quase imediatamente seguida pela alterao correspondente no sinal de sada, apenas como retardo devido transmisso de sinais por meio das portas do circuito. Em termos gerais, um circuito combinatrio consiste de n entradas binrias e m sadas binrias. Assim como uma porta, um circuito combinatrio pode ser definido de trs formas:

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 28 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Tabela verdade: para cada uma das possveis combinaes dos n sinais de entrada, listado o valor binrio de cada um dos m sinais de sada. Smbolos grficos: esquema de conexo das portas lgicas. Equaes booleanas: cada sinal de sada expresso como uma funo booleana dos sinais de entrada. Na verdade, se estivermos perante um circuito lgico combinatrio, poderemos sempre fazer a sua tabela verdade, relacionando assim as suas entradas com as suas sadas. Sendo assim, todas as portas lgicas e funes lgicas que foram anteriormente estudadas so circuitos combinatrios. Note que a figura ao lado representa o circuito combinatrio do diagrama lgico apresentado no item anterior. A CPU de um computador composta por vrios circuitos combinatrios. Circuitos combinatrios so a base para muitos dos componentes de um sistema de computao bsico. Podemos construir circuitos para soma, subtrao, comparao, multiplicao, diviso e muitas outras operaes usando a lgica combinatria.

3.6 - Circuitos Integrados


Aps a primeira parte do processo, o projeto de um circuito combinatrio, completa-se esta tarefa com a implementao fsica do circuito atravs da fabricao dos elementos e integrando-os em um s dispositivo (encapsulando-o), com o propsito de reduo de espao e custo, isto , construindo um circuito integrado. Um circuito integrado um pequeno dispositivo, denominado pastilha (chip) que contm em seu interior centenas e atualmente milhares de componentes eletrnicos: transistores, diodos, resistores, capacitores e suas interligaes. Estes componentes so os formadores das portas lgicas que, interligadas, formam um determinado circuito combinatrio. A pastilha encapsulada em um pacote de cermica ou plstico e as conexes com o exterior so soldadas aos pinos externos para completar o dispositivo. possvel se construir pastilhas com pequena quantidade de portas lgicas at pastilhas de uma CPU contendo milhes de transistores. Pastilhas de CI podem ser fabricadas com diferentes quantidades de pinos. Os fabricantes de CI costumam identificar cada um por um nmero, alm da funo qual se destinam, e os fabricantes de sistemas de computao adquirem ento estes CI de acordo com suas necessidades, para serem inseridos nas placas de circuito impresso. Este processo tira um pouco da flexibilidade do fabricante de sistemas de computao, visto que ele deve projetar seu sistema usando as pastilhas que j existem no mercado e no fazendo, talvez tudo o que desejaria para o referido sistema.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 29 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

No entanto, apesar deste inconveniente, isso ainda mais vantajoso do que o prprio fabricante do computador ter que verticalizar, projetando e construindo todas as pastilhas necessrias. comum classificar pastilhas pela quantidade de integrao que elas suportam, isto , a quantidade de portas lgicas. SSI (Small Scale Integration) Integrao em pequena escala constituda de 1 a 10 portas. Poucos pinos. MSI (Medium Scale Integration) Integrao em mdia escala constituda de at 100 portas. Tem tambm poucos pinos. Circuitos desse tipo costumam ser usados para a construo de pequenos dispositivos, como multiplicadores e contadores. LSI (Large Scale Integration) Integrao em larga escala, constituda de at 100.000 portas. Normalmente so processadores completos. VLSI (Very Large Scale Integration) Integrao em muito larga escala. costume classificar pastilhas com at 100.000 portas como LSI e, acima desta quantidade, como VLSI. Para se ter uma idia, o processador Intel 80486 possua cerca de 1,2 milho de transistores em uma nica pastilha, com 168 pinos, enquanto o processador Pentium possua cerca de 3,1 milhes de transistores. Note que este valor era para as primeiras verses do processador, pois os atuais modelos possuem muito mais transistores na pastilha com cerca de 273 pinos.

Exerccios
01 Considerando as alternativas a seguir, assinale a alternativa incorreta: a) Um computador digital uma mquina projetada para manipular informaes representadas apenas por dgitos que s podem assumir dois valores distintos 0 e 1 b) Internamente, um computador constitudo de resistores, capacitores e transistores c) A informao binria representada em um sistema digital por sinais eltricos em dois nveis de intensidade d) Um computador contm uma infinidade de circuitos lgicos ou portas, convenientemente distribudos e organizados e) Nenhuma das alternativas anteriores
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 30 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

02 A sada de uma porta AND com quatro entradas ser verdade apenas se: (assinale a alternativa correta) a) b) c) d) e) Pelo menos duas portas forem verdade Nenhuma porta for verdade Pelo menos uma porta for verdade Todas as portas forem verdade Trs portas forem verdade e uma porta for falsa

03 Considerando uma porta com duas entradas, sua sada ser verdade apenas quando os valores de suas portas de entrada forem diferentes. Estamos falando da funo: (assinale a alternativa correta) a) b) c) d) e) AND OR NAND XOR NOR

04 Em que consiste um circuito integrado? 05 Calcule a tabela verdade para as seguintes operaes: a) (A + B) . C b) (A . B) C c) (A . B) . ( C + D) d) ( ( A . B ) + C ) e) ( A B ) . C 06 - Represente, atravs de desenho, as expresses algbricas do item anterior. 07 - Qual a funo e sua respectiva tabela verdade que representam cada um dos diagramas a seguir?

08 Em que consiste a tecnologia VLSI?

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 31 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

4- Unidade Central de Processamento


4.1 - Introduo
No captulo 01 apresentamos uma viso global da estrutura sistmica de um computador e uma breve descrio de cada um de seus principais componentes. Neste captulo analisaremos o processador central ou Unidade Central de Processamento (CPU), que desempenha um papel crucial no funcionamento do sistema de computao. O processador responsvel pela atividade fim do sistema, isto computar, calcular e processar. Como j mencionamos, os processadores atuais so fabricados de modo que em um nico invlucro (pastilha, chip) so inseridos todos os elementos necessrios realizao de suas funes. Cada vez mais, a tecnologia tem avanado nessa rea, de modo a se fabricar processadores mais complexos e poderosos contendo milhes de transistores.

4.2 Funes Bsicas


O processador central o componente vital do sistema de computao. Na realidade, a CPU responsvel pela realizao de qualquer operao realizada por um computador. Isto quer dizer que a CPU comanda no somente as aes efetuadas internamente, como tambm, em decorrncia da interpretao de uma determinada instruo, ela emite os sinais de controle para os demais componentes do computador agirem e realizarem alguma tarefa. Um processador tem por propsito, realizar operaes com os dados (chamadas de processamento) normalmente numricos. Para realizar essas operaes, o processador necessita, em primeiro lugar interpretar que tipo de operao a que ele ir executar (pode ser a soma de dois nmeros, pode ser a subtrao de dois valores e assim por diante). Em seguida, antes da realizao propriamente dita da operao necessrio que os dados estejam armazenados no dispositivo que ir executar a operao. Portanto a CPU no somente realiza o processamento (executa a operao com os dados), como tambm controla todo o funcionamento do sistema (busca a descrio da operao a ser realizada chamada instruo; interpreta que tipo de operao dever ser realizada; localiza e busca os dados que sero processados e assim por diante). Todo processador construdo de modo a ser capaz de realizar algumas operaes, denominadas primitivas, tais como: somar, subtrair, mover um dado de um local de armazenamento para outro, transferir um valor para um dispositivo de sada etc. Essas operaes e a localizao dos dados que elas manipulam tm que estar representadas na nica forma compreensvel pelo sistema, que uma sequncia de sinais eltricos, cuja intensidade corresponde a 0s e 1s (uma sequncia de bits). A sequncia de 0s e 1s que formaliza uma determinada operao a ser realizada pelo processador denomina-se instruo de mquina. Uma instruo de mquina a identificao formal do tipo de operao a ser realizado, contendo um grupo de bits que identifica a operao a ser realizada e outro grupo de bits que permite a localizao e acesso aos dados que sero manipulados na referida operao. Ou seja, se a operao desejada uma soma, a instruo de mquina correspondente deve conter os bits necessrios para indicar que se trata de soma e onde esto armazenados os valores que devero ser somados.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 32 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Um programa executvel constitudo de um conjunto de instrues de mquina sequencialmente organizadas. Para que a execuo do referido programa tenha incio, necessrio que: 1. As instrues a serem executadas estejam armazenadas em clulas sucessivas na memria principal; 2. O endereo da primeira instruo do programa esteja armazenado na CPU para que o processador possa buscar essa primeira instruo. A funo do processador consiste ento em: a) Buscar uma instruo na memria (operao de leitura) uma de cada vez, cujo endereo deve estar armazenado no registrador existente na CPU e especfico para este fim b) Interpretar que operao a instruo est explicitando (soma, subtrao, diviso...) c) Buscar os dados onde estiverem armazenados d) Executar efetivamente a operao com os dados, guardar o resultado (se houver algum) no local definido na instruo; e finalmente, e) Reiniciar o processo buscando uma nova instruo. Estas etapas compem o que se denomina um ciclo de instruo. Este ciclo se repete indefinidamente at que o sistema seja desligado, ou ocorra algum tipo de erro, ou ainda, que seja encontrada uma instruo de parada. Em outras palavras, a CPU projetada e fabricada com o propsito nico de executar sucessivamente pequenas operaes matemticas (ou outras manipulaes simples com dados), na ordem e na sequncia definida pela organizao do programa. Os sistemas de computao modernos so montados em torno de processadores que buscam maior velocidade na realizao de suas atividades. Um dos processos mais usados para o aumento de velocidade o que conhecemos na indstria como linha de montagem (pipeline), no qual a CPU se divide em vrias partes funcionais distintas (estgios), cada uma correspondendo a uma determinada atividade. Dessa forma, vrias instrues so realizadas de forma simultnea, embora em estgios diferentes, exatamente como ocorre em uma linha de montagem de uma montadora de automveis.

4.3 Componentes
Uma CPU possui, pelo menos, duas partes bsicas: a Unidade de Controle (UC) e a Unidade Lgica e Aritmtica (ULA). A UC responsvel por gerenciar todos os recursos do sistema, de acordo com o solicitado pelos programas. ela que vai buscar cada uma das instrues da memria e a passa para a ULA ou para as interfaces e circuitos externos. Quando a instruo terminar de ser interpretada, a UC busca a prxima na memria. J a ULA responsvel pelos clculos e operaes simples, como a soma e a comparao de nmeros.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 33 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

A velocidade do processador, em termos de tarefas realizadas e em funo do tempo, medida em MIPS milhes de instrues por segundo. No h uma padronizao, mas utiliza-se comumente MIPS ou MFLOPS (milhes de instrues de ponto flutuante por segundo). Veja por exemplo a tabela com alguns processadores antigos da Intel:

Processador Intel 386 Velocidade 5 MIPS

Intel 486 20 MIPS

Pentium 100 MIPS

Pentium Pro 250 MIPS

A medio de desempenho pretende verificar a quantidade de trabalho que um computador consegue realizar por unidade de tempo. Assim, possvel comparar o desempenho de vrias mquinas e selecionar a mais adequada para uma determinada funo.

4.3.1

Unidade de Controle

A Unidade de Controle responsvel pelo gerenciamento de todos os recursos do computador, coordenando todas as suas atividades. Imagine a unidade de controle como se fosse um guarda de trnsito, que orienta e organiza o fluxo das informaes. Essa unidade contm uma lista de todas as operaes que a CPU pode executar. Tal lista chamada de conjunto de instrues e fica embutida nos circuitos da unidade de controle. Cada instruo contm tarefas simples (micro-cdigos) que dizem CPU como executar determinada instruo. Assim, quando um computador executa um programa, ele procura alguns comandos que devem ser executados, na ordem indicada, pelo conjunto de instrues da CPU. As atividades da unidade de controle podem ser resumidas nas etapas: 1. 2. 3. 4. 5. 6. 7. Apanhar a instruo na memria primria Estabelecer as operaes a serem executadas Se necessrio, ir buscar dados na memria ou arquivo magntico para serem processados Acessar os componentes apropriados do processador conforme solicita a instruo Identificar o final da operao Armazenar o resultado no local indicado (memria ou arquivo magntico) Por meio do contador de instrues, determinar o endereo da prxima instruo. A maioria das CPUs existentes executa os programas repetindo uma srie de trs ciclos: A. Ciclo de Busca Identificao, recuperao e anlise da prxima instruo do programa (itens 1,2 e 7) B. Ciclo de Memria Localizao, leitura ou escrita de operando na memria (itens 3 e 6) C. Ciclo de Execuo Processamento dos operandos (itens 4 e 5) O tempo gasto em cada ciclo muito variado e depende do tipo de operao que est sendo executada. Uma operao de adio, por exemplo, mais rpida que uma multiplicao a qual, no fundo, engloba vrias adies encadeadas. As CPUs so fabricadas por empresas diferentes, contendo, consequentemente, conjuntos de instrues diferentes. Em uma nica empresa podem ser fabricados tambm diversos modelos de CPU com variados conjuntos de instrues. Assim, as CPUs so divididas em famlias, cada uma possuindo um conjunto de instrues semelhantes, mas no idnticas. Quando uma nova CPU desenvolvida, ela recebe todo o conjunto de instrues de sua antecessora, com adio de algumas instrues prprias.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 34 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Isso permite que programas para algumas CPUs antigas funcionem com processadores mais novos da mesma famlia. Dessa forma, os processadores, mesmo com toda a nova tecnologia includa, quase sempre so compatveis com hardwares e softwares antigos o que se costuma chamar de legado.

4.3.2

Unidade Lgica e Aritmtica (ULA)

A ULA responsvel pela execuo de uma instruo que envolve operaes aritmticas (somas e subtraes) e lgicas (testes e comparaes) entre valores. Ela possui um grupo de registradores pequenas posies de memria dentro do prprio processador para o armazenamento dos dados sendo processados no momento. Para facilitar a sua compreenso imagine uma operao em que a unidade de controle carrega dois nmeros na memria do computador para os registradores da ULA. A unidade de controle pede a ULA para dividir os dois nmeros (operao aritmtica) e verificar se o resto da diviso igual a zero (operao lgica). Percebemos ento, que a ULA na verdade uma espcie de grande calculadora eletrnica. Qualquer ULA um aglomerado de circuitos lgicos e componentes eletrnicos que integrados realizam as operaes j mencionadas. Ela pode ser uma parte pequena da pastilha do processador, usada em pequenos sistemas, ou pode compreender um considervel conjunto de componentes lgicos de alta velocidade, sendo que os processadores mais modernos utilizam em sua arquitetura mais de uma ULA de modo a tornar a execuo das instrues mais rpida.

4.3.3

Registradores

Para que um dado possa ser manipulado pela ULA, necessrio que ele fique brevemente armazenado em um registrador. O registrador armazena, temporariamente, o resultado de uma operao lgica ou aritmtica feita pela ULA para que essa informao possa ser utilizada e/ou transferida para a memria. Os registradores a seguir pertencem tecnologia Intel x86 (ou seja, esto presentes nos processadores dos computadores PC) e so chamados de uso geral, pois so utilizados por praticamente todas as operaes que envolvam dados do usurio. Para operaes de aritmtica ou de lgica, qualquer um desses registradores pode ser utilizado, mas existem certos tipos de instrues que os utilizam com funes especializadas: Registrador Acumulador (Acumulation, AX): est envolvido com operaes de entrada e sada de dados; traduo de cdigos entre sistemas; operaes de multiplicao ou diviso que necessitam de 32 bits; ajuste de decimais e operaes com decimais codificados em binrio. Registrador Base (Base, BX): frequentemente usado para referenciar posies de memria, tanto diretamente quanto por meio de tabelas ou vetores.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 35 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Registrador Contador (Counter, CX): utilizado em operaes de contagem ou em laos de repetio (como a rotao de um contedo do registrador por n bits) do nmero de bytes ou palavras de uma string, de controle de looping etc Registrador de Dados (Data, DX): usado em operaes de multiplicao para armazenar parte de um produto de 32 bits ou em operaes de diviso para armazenar o resto da operao. tambm usado nas operaes de entrada e sada (I/O) para especificar o endereo da porta serial ou paralela. Esses registradores so posies de memria armazenadas no processador e que comportam dados de 16 bits, sendo tambm chamados word. Dependendo da aplicao, eles podem ser divididos em duas partes iguais de um byte cada. Esses registradores possuem uma parte alta H (high) e uma parte baixa L (low). Por exemplo, o registrador BX (de 16 bits) formado pelos registradores BH e BL, de 8 bits cada, sendo BH o byte mais significativo e BL o menos significativo. Se BH contiver o valor hexadecimal AF e BL contiver C3, o valor de BX ser AFC3. J a manipulao desses registradores ocorre por meio de uma linguagem de hardware chamada assembly, que ser vista nos prximos captulos. Nos processadores Pentium os registradores podem ser de 32 bits. Seus nomes so os mesmos com a adio da letra E, por exemplo: BH e BL so registradores de 8 bits BX um registrador de 16 bits formado por BH e BL EBX um registrador de 32 bits formado por BX mais uma palavra de 16 bits de mais alta ordem H ainda os registradores de segmento: CS (registrador de segmento de cdigo), DS (registrador de segmento de dados), ES, FS, GS (registradores de segmento extras) e SS (registrador de segmento de pilha); bem como os ndices de ponteiros SI, DI, BP, IP e SP. Os registradores e sua disposio afetam a velocidade geral do equipamento. Nos primrdios da famlia x86, cada registrador podia armazenar dois bytes (16 bits). Atualmente sua capacidade de armazenamento mudou. O tamanho dos registradores determina a quantidade de dados que o computador pode processar informaes. Assim, a rapidez do processamento depende do tamanho desses registradores, isso porque no ser preciso quebrar dados de 32 bits em duas ou mais operaes de 16 bits, sendo possvel processar dois nmeros de 16 bits (ou quatro de oito bits) simultaneamente. Acompanhando esse raciocnio, podemos deduzir que uma CPU com registradores de 32 bits capaz de processar duas vezes mais rpido do que uma CPU com registradores de 16 bits.

4.4 Clock
Em muitos equipamentos digitais, a ordem em que os eventos ocorrem crtica. s vezes, um evento deve preceder outro, s vezes dois eventos devem ocorrer simultaneamente. Para permitir que os projetistas consigam as relaes de temporizao requeridas, muitos circuitos digitais usam relgios para providenciar sincronizao. Neste contexto, um relgio (clock) um circuito que emite uma srie de pulsos com uma largura de pulsos precisa e intervalos precisos entre pulsos consecutivos. O clock um dispositivo externo ao processador (observe que alguns processadores j possuem clock interno), localizado normalmente na placame, gerador de pulsos eltricos de freqncia constante.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 36 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Para conseguir esta preciso, a freqncia do clock normalmente controlada por um oscilador de cristal. A durao de um pulso chamada de ciclo. A freqncia de sada desse cristal define a velocidade do processador e do sistema como um todo, alm de sincronizar todos os componentes da mquina. A freqncia do clock medida em hertz (Hz) que significa ciclos por segundo. Como se tratam de freqncias elevadas abrevia-se os valores usando milhes de hertz, ou de ciclos por segundo (gigahertz ou simplesmente GHz). Essa freqncia tambm utilizada como uma espcie de parmetro de desempenho entre diferentes processadores. E quanto maior a freqncia, maior a quantidade de instrues que uma CPU pode executar em um mesmo intervalo de tempo. Por exemplo, se um processador trabalha com seu clock pulsando 50 milhes de vezes por segundo, sua freqncia de operao de 50 MHz. A durao de cada ciclo o inverso da freqncia, ento cada ciclo neste exemplo ser igual ao inverso de 50.000.000: 1 / 50.000.000 = 0,00000002 ou 20 nano segundos. Outros fatores, como arquitetura do sistema, existncia de cache, tamanho da memria so tambm importantes para o desempenho do computador. Um computador com um clock duas vezes mais rpido no necessariamente duas vezes mais veloz. Muitos eventos podem ocorrer dentro de um computador durante um nico ciclo de relgio. Se esses eventos devem ocorrer em uma ordem especfica, o ciclo de relgio deve ser dividido em subciclos. Uma maneira comum de prover resoluo superior do relgio bsico aproveitar a linha de relgio primria e inserir um circuito com um atraso conhecido, gerando assim um sinal secundrio deslocado de certa fase em relao ao primeiro. Vinculando diferentes eventos s vrias fases, pode-se conseguir a sequencia requerida. Se forem necessrias mais do que quatro referncias de tempo dentro de um ciclo de relgio, podem-se puxar mais linhas da linha primria, com diferentes atrasos. Alm do processador, existem outros dispositivos que necessitaro do sinal de clock como um sinal de entrada; outros no. Os que necessitam do sinal para trabalhar so chamados de dispositivos sncronos. Do contrrio, eles so classificados como dispositivos assncronos.

4.5 Co-processador aritmtico


tambm chamado de Unidade de Ponto Flutuante (FPU Floating Point Unit). Os processadores da famlia x86 eram processadores de nmero inteiro. Mas alguns aplicativos (como planilhas, CAD e jogos) tinham a necessidade de utilizar nmeros fracionrios e funes matemticas complexas para realizar algumas tarefas, como o clculo de seno, raiz cbica, logaritmos etc. Era possvel emular tais clculos matemticos via software, mas com baixo desempenho. O co-processador aritmtico um componente essencial que tem como funo auxiliar o processador na realizao de clculos complexos. Por possuir instrues especficas para esse tipo de clculo, consegue ser, em mdia, 50 vezes mais rpido que o processador principal executando o mesmo clculo.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 37 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

At os PCs de 3 gerao (386), o co-processador era um circuito parte e opcional. Considerado como um acessrio era instalado em um soquete especial localizado na placa me. Na poca da produo desses processadores, poucos usurios instalavam o co-processador em seus computadores e, como a produo era baixa, e o preo alto, alguns co-processadores ultrapassavam o preo dos processadores. A partir dos processadores de 4 gerao (486) esse circuito passou a estar internamente incorporado ao processador, resolvendo tambm o problema de seu custo.

4.6 Sinais de Controle


Os processadores atuais possuem vrios pinos (no mnimo, 400). Somente analisando friamente a arquitetura de cada tipo de processador existente possvel saber qual a funo de cada um. Os processadores, no entanto, possuem algumas funes-padro, ou seja, encontradas em praticamente todos os processadores, independente do fabricante. Estas so conhecidas como "sinais de controle" (ou "sinais digitais"), tambm correspondem a pinos no chip do processador e algumas delas so citadas abaixo: MIO: sinal para indicar se a operao em questo de acesso a memria ou de E/S; RW: sinal para indicar se a operao em questo de leitura ou gravao; INT: sinal para que dispositivos externos possam interromper o processador para que ele efetue uma operao que no pode esperar. Por exemplo, quando o HD interrompe o processador para avisar o trmino de uma operao de leitura. Como existe somente um sinal INT, o processador opera em conjunto com um mecanismo denominado "Controlador de Interrupes" (que trabalha com as conhecidas IRQs). Como vrios dispositivos podem requisitar o processador num mesmo instante, atravs deste controlador possvel realizar todas as operaes de forma organizada; NMI: sinal de interrupo especial, usado em emergncias, onde a interrupo enviada por este sinal deve ser atendida prontamente. O NMI geralmente usado informar erros relacionados a dados na memria; INT A: sinal usado para que o processador informe que aceitou uma interrupo e que est aguardando que o dispositivo que a gerou passe as instrues; VCC: entrada de corrente eltrica que alimenta os circuitos internos do processador (pode haver vrios VCC no processador); GND: sinal usado para controle de energia (como se fosse um fio-terra). Tambm pode ser encontrados vrios deste sinal no processador; RESET: sinal ligado ao boto RESET do gabinete do computador. Ao ser ativado, o processador pra o que est fazendo e inicia as operaes novamente, como se o usurio tivesse acabado de ligar a mquina; CLOCK: este recebe um sinal digital usado internamente para sincronizar todo o funcionamento do processador.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 38 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

4.7 Arquitetura dos Processadores (RISC X CISC)


Desde os primeiros momentos da indstria de computadores que os cientistas dos principais fabricantes tm estudado mtodos e tcnicas que possam aperfeioar o desempenho e a capacidade dos sistemas de computao. O nome CISC (Complex Instruction Set Computer) advm do fato de se considerar complexo um conjunto constitudo de grande quantidade de instrues, com mltiplos modos de endereamento, entre outras crticas. Em uma poca inicial da computao em que a memria era cara e pequena e, por isso, os cdigos gerados pelos compiladores deveriam ser compactos e eficientes na execuo. Dessa forma, os projetistas precisavam obter boa densidade do cdigo de mquina, ou seja, cada instruo deveria fazer muito, de modo que o programa completo tivesse poucas instrues.O surgimento, em 1951, do conceito de micro-programao facilitou o trabalho de projetar instrues complexas, implementado-as em micro-cdigo. O primeiro sistema de computao lanado com micro-cdigo e que originou, tambm, o conceito de famlia de computadores foi introduzido pela IBM em 1964, o Sistema IBM/360. Posteriormente, a DEC (Digital Equipament Corporation) introduziu sua famlia de PDP, mais tarde substituda pelo sistema VAX, um dos melhores exemplos de mquina CISC. Como usual acontecer em qualquer rea da atividade humana, raro que algum conceito ou tecnologia importante, obtenha unanimidade entre pesquisadores, tcnicos, projetistas e administradores. Este o caso da arquitetura CISC, a qual sempre foi alvo de crticas e comentrios sobre desvantagens e problemas. Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instrues (RISC) uma linha de arquitetura de processadores que favorece um conjunto simples e pequeno de instrues que levam aproximadamente a mesma quantidade de tempo para serem executadas. Os processadores baseados na computao de conjunto de instrues reduzidos no tm micro-programao, sendo que as instrues so executadas diretamente pelo hardware. Como caracterstica, esta arquitetura, alm de no ter micro-cdigo, tem o conjunto de instrues reduzido, bem como baixo nvel de complexidade. A idia foi inspirada pela descoberta de que muitas das caractersticas includas na arquitetura tradicional de processadores para ganho de desempenho foram ignoradas pelos programas que foram executados neles. Mas o desempenho do processador em relao memria que ele acessava era crescente. Isto resultou num nmero de tcnicas para otimizao do processo dentro do processador, enquanto ao mesmo tempo tentando reduzir o nmero total de acessos memria. Exemplos de processadores que adotam a tecnologia RISC so o DEC Alpha, SPARC, MIPS, e PowerPC. O tipo de microprocessador mais largamente usado em desktops, o x86, mais CISC do que RISC, embora chips mais novos traduzam instrues x86 baseadas em arquitetura CISC em formas baseadas em arquitetura RISC mais simples, utilizando prioridade de execuo. RISC tambm a arquitetura adotada para os processadores dos videogames modernos, que proporcionam um hardware extremamente dedicado somente execuo do jogo, tornando-o muito mais rpido em relao micro computadores com mais recursos, embora com processador x86.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 39 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

4.8 Famlia Intel


A Intel surgiu da unio de vrios empresrios e engenheiros provenientes de outras companhias, com idias novas e dispostos, com a ajuda de alguns investidores, a iniciar uma nova era no mundo do circuito integrado. Em 1969, a Intel foi escolhida para criar 12 circuitos integrados (chips) para a construo de uma calculadora eletrnica para a empresa japonesa Busicom. A partir dessa idia, o engenheiro Ted Hoff desenvolveu a criao de um nico chip com a funo dos 12 pretendidos. Logo, uma equipe de engenheiros apresentou o primeiro chip integrado bem sucedido com capacidade de clculo; esse era o primognito processador da Intel: o 4004. Esse circuito integrado continha as funes dos 12 circuitos encomendados, com uma preciso de quatro bits. Com o sucesso dessas inovaes, a Intel manteve a filosofia de integrao apresentando solues muito importantes para o mercado mundial na rea dos microprocessadores com a integrao de circuitos simples. Isso fez com que a empresa conquistasse clientes de grande peso comercial, como a IBM, para a qual produziu processadores quase que por encomenda, pavimentando assim o caminho para o slido futuro que a jovem empresa buscava. Na rea dos computadores pessoais, a Intel criou mais tarde o 8088, com preciso de oito bits. Depois dele veio o 8080, com grande sucesso comercial. Nessa poca, dissidentes da Intel criaram a empresa Zilog e o processador Z80 (um clone aprimorado e mais barato que o 8080) que fez sucesso nas dcadas de 70 e 80, tendo sido considerado o corao dos computadores domsticos marcas como a Sinclair (TRS-80) e MSX nos vm cabea. No incio dos anos 80, a IBM precisava de um processador barato para um novo computador domstico que estava sendo desenvolvido. Pensou-se em usar o Intel 8086, de 16 bits, mas os perifricos da poca eram todos de 8 bits. Sob encomenda, a Intel aprimorou o 8086 para que ele externamente trabalhasse a 8 bits, embora em suas entranhas o processamento fosse todo a 16 bits. Era criado assim o 8088, crebro do IBM-PC original e das expanses PC-XT. Nessa poca surgiu um clone para o 8088, sendo muito mais barato e rpido: o clebre NEC V20 enquanto o 8088 era oferecido nas velocidades 4,77 e 8 MHz, o processador da Nippon Electric Company era vendido (mais barato) apenas para 12 MHz. Era a primeira vez que a Intel teria concorrncia no de processadores apenas similares, mas de um componente compatvel, intercambivel, mais barato e rpido.

4.8.1

80286

Sucessor do 8086/8088, o processador 80286 podia enderear 16 MB de memria com 24 bits de endereamento interno, com suporte multitarefa e memria virtual. Ele vinha nas velocidades 6 MHz, 8MHz, 10 MHz e 12 MHz. Esse modelo possua uma arquitetura com total suporte a 16 bits, e vinha com uma novidade: o modo protegido. Esse modo de proteo permitia que vrios programas utilizassem a mesma memria sem ter a preocupao de invadir o quinho de memria dos outros (travar o computador). Infelizmente, quando se utilizava o modo protegido, no havia volta era impossvel voltar ao modo normal. Isso deu ao 286 o apelido de crebro morto.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 40 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Quando o 80286 entrava em modo protegido, ele deixava de ser compatvel com programas de modo real (como por exemplo, o MS-DOS), assim seu comportamento no era igual ao de um 8088. Quando um programador precisava criar um jogo simples que usasse o modo protegido do 80286, era necessrio construir um sistema operacional praticamente novo. Isso porque havia a necessidade de incluir nesse jogo, vrias rotinas para acessar os dispositivos do computador, como memria, HD etc. Seis anos depois do lanamento, as vendas estimadas desse processador equivaliam a 15 milhes de mquinas em todo o mundo. Outro passo importante desse processador foi a introduo da filosofia de compatibilidade de software: uma vez que esse foi o primeiro processador a proporcionar compatibilidade com o software do modelo anterior.

4.8.2

80386

Este modelo de processador deu um salto significativo em relao ao desempenho, trazendo novas perspectivas aos servidores baseados na tecnologia Intel. Ele j contm todas as instrues do conjunto x86 utilizadas por programas atuais. Isso aconteceu porque uma novidade tambm havia sido introduzida nesse novo produto: o modo virtual. Esse modo permitia criar mquinas x86 virtuais, que fazia com que cada programa dividisse ciclo de processamento entre eles. O processador j vinha com um sistema integrado de diviso de memria para multitarefa, o que evitava o problema que ocorria com o 80286. Esse novo processador revolucionou toda famlia de processador Intel, criando novos objetivos para o futuro. Esse foi o primeiro processador de 32 bits, com a capacidade de realizar tarefas de processamento mltiplo e com capacidade de acessar at 4 GB de memria RAM. Introduzido em computadores de mesa, esse processador traz um novo alento aos diversos fabricantes de software que vem nele uma oportunidade de expandir o seu mercado de programas de caractersticas pesadas. No final da dcada de 80, com o decorrer dos meses, sua velocidade foi evoluindo de 20 MHz at 33 MHz. A Intel resolveu tambm lanar no mercado uma verso econmica, o 386 SX, com o objetivo de aumentar as vendas. O modelo SX utilizava os mesmos perifricos de 16 bits do 286, o que fazia com que os computadores ficassem mais baratos diminuindo sua performance. Na poca, os computadores com processador 386 SX custavam quase a metade do que os que vinham com o modelo 386 DX. Alm do barramento pela metade, a diferena entre ambos os modelos que o DX possua o co-processador matemtico integrado.

4.8.3

80486

O 80486 podia acessar at 4 GB de memria RAM e foi o primeiro a oferecer um coprocessador aritmtico construdo parcialmente com funes matemticas. Isso resultava em uma maior velocidade de processamento: havia acesso a complexas funes matemticas a partir do processador central ambos dentro da mesma pastilha de silcio. O 486 introduzia pela primeira vez um co-processador matemtico integrado. Isso eliminava a necessidade de ter de compr-lo separado. Quando o 486 apareceu, ele trabalhava a 25 MHz. O ltimo deles chegou a ter 100 MHz de velocidade.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 41 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Na poca, as placas-me no podiam trabalhar acima de 40 MHz, o que resultou na criao de um recurso que fez com que o processador trabalhasse a uma velocidade maior do que a placa-me. Esse recurso foi chamado de Multiplicao do Clock. Processador 486 DX2 50 MHz 486 DX2 66 MHz 486 DX4 75 MHz 486 DX4 100 MHz Barramento da placa me 25 MHz 33 MHz 25 MHz 33 MHz Multiplicador 2 vezes 2 vezes 3 vezes 3 vezes

A partir do 80486 comeou a surgir o problema de superaquecimento do processador. Com isso, houve a necessidade de usar um ventilador (cooler) que, at hoje, obrigatrio em todos os processadores. Nessa poca comeou a onda do overclock: sendo que um DX4 100 podia ter seu clock multiplicado por trs e meio ou por quatro, resultando em velocidades de 125 e 132 MHz. Quando o 486 no fritava, funcionava muito mais rpido. No entanto, era preciso ter muita sorte. Tambm havia uma linha mais barata de 486: os famigerados 486 SX. Desprovidos de coprocessadores aritmticos, eles eram, na verdade, 486 DX completos com a unidade FPU (float point unit) queimada ou defeituosa. A Intel vendia co-processadores externos para o 486 SX, os chamados i487. A pde ser percebida uma estratgia adotada pela Intel: os 487 eram, na verdade, 486DX completos, mas com a pinagem incompatvel com o 486 DX original. Prova disso que, com o 487 instalado na mquina, era possvel retirar o 486 SX original sem que a mquina parasse de funcionar.

4.8.4

Pentium

A Intel, ao lanar no mercado o Pentium, quebrou a seqncia dos processadores de nome x86 e deu incio corrida pelos MHz. Assim, logo o seu nome era intensamente divulgado at mesmo em publicaes fora da rea de informtica, o que permitiu com que Pentium fosse uma palavra bastante conhecida em todos os lares logo aps o seu lanamento. Como o seu antecessor, o Pentium tinha tambm 32 bits, com capacidade de acessar at 4 GB de memria RAM e com algumas melhorias. Seu co-processador, por exemplo, passou a ser cinco vezes mais rpido que o 486. Com essa nova designao, a Intel pretendia, entre outras coisas, obter uma exclusividade quanto ao nome do seu processador. O baixo preo e alto desempenho do Pentium fizeram com que eles despontassem como novas opes para a implementao de sistemas empresariais. Muitas empresas trocaram as grandes plataformas baseadas em mainframes (computadores de grande porte), extremamente caras, por plataformas de menor preo, baseadas no Pentium. O Pentium era composto por um conjunto de dois processadores de 32 bits trabalhando em paralelo, o que permitia o acesso memria de 64 bits e diminua o problema de lentido da memria. Por fazer um processamento paralelo, duas instrues podiam ser executadas simultaneamente. Aps o seu lanamento foram detectados inmeros problemas, como o aquecimento excessivo (uma vez que ele tambm utilizava a multiplicao de clock) e a dificuldade do clculo aritmtico com o ponto flutuante. Decorrente disso houve certo embarao quando o erro foi descoberto, pois um engenheiro (prontamente demitido) da Intel chegou a afirmar que o erro de arredondamento desprezvel para usurios no tcnicos.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 42 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Depois do vexame, a Intel, assumiu os custos efetuando trocas de processadores sem custo adicional aos consumidores.

4.8.5

Pentium MMX

O que seria uma revoluo anunciada acabou decepcionando. Notas divulgadas oficialmente para a imprensa especializada apontavam que a Intel estava desenvolvendo um processador que no precisava de chipsets externos e que iria possuir todos os perifricos multimdia (na poca, som e vdeo) internamente. O lanamento do novo processador, o Pentium MMX (MultiMedia eXtensions) provou no ser nada do anunciado. Em vez de perifricos multimdia integrados, esse era um processador com funes para manipulao direta de dados multimdia. Foi, sem dvida, um avano muito grande, pois com uma velocidade maior, o desempenho era impressionante. Porm, isso estava muito aqum do que se esperava em termos de integrao. A tecnologia MMX incorporada aos novos chips da linha Pentium, proporcionou ganhos de velocidade que trouxeram para o computador pessoal capacidades inditas na rea de multimdia. Tecnicamente, esse salto MMX em direo multimdia constitui a evoluo mais importante da famlia Intel desde o lanamento do 80386. O processador Pentium MMX era internamente composto por 4.300.000 transistores. A aritmtica de saturao, que muito usada na manipulao de grficos foi uma das maiores caractersticas da tecnologia MMX. Na prtica, observa-se que o paralelismo e a aritmtica de saturao da tecnologia MMX so usados em formas de transmisso de vdeo e compresso de dados. Todas as placas me que suportam o processador Pentium tambm suportam o MMX, para isso, basta configurar os jumpers da placa, os quais determinam a tenso eltrica de operao. Posteriormente, a Intel abandonaria a fabricao do Pentium MMX com o lanamento do Pentium II que j inclui todas as tecnologias MMX.

4.8.6

Pentium Pro

Este processador foi lanado antes do Pentium MMX, e foi utilizado como arquitetura base para os demais processadores da Intel. Entretanto, diferentemente dos seus descendentes, o Pentium Pro no possui nenhuma instruo MMX. Lanado no final de 1995, o Pentium Pro tem um desenho de 32 bits. Destinado principalmente aos servidores, ele possua um desempenho melhor que os modelos anteriores em aplicaes e sistemas operacionais de 32 bits. Esse modelo possua tambm suporte ao multiprocessamento, possibilitando a montagem de sistemas com at quatro processadores trabalhando em paralelo, encaixados na mesma placa me. O processador Pentium Pro utilizava a tecnologia RISC com um conjunto de instrues CISC, tendo internamente 5,5 milhes de transistores.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 43 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Esse processador funciona como se fosse trs processadores em paralelo, sendo capaz de executar at trs instrues por pulso de clock interno.

4.8.7

Pentium II

O Pentium II foi considerado na poca e com razo como uma continuidade do Pentium Pro, com algumas melhorias. Enquanto alguns recursos eram postos de lado como o suporte ao multiprocessamento com quatro processadores, ele apresentava um novo formato de caixa, que era protegido por uma capa plstica e com um novo encaixe. Pela primeira vez, o clssico modelo quadrado de soquete havia sido abandonado. A tecnologia RISC permitiu que os processadores Pentium II fossem mais rpidos, porm incompatveis com a tecnologia CISC (arquitetura utilizada at o Pentium), o que significa que no se poderia utilizar nenhum dos programas que tinham sido feitos para os processadores anteriores. A Intel, para solucionar este tipo de problema, introduziu internamente um decodificador CISC. Assim, quando um programa for executado, esse decodificador traduz as instrues CISC recebidas pelo processador em instrues RISC equivalentes para o processador. Sem isso, o prprio Windows deixaria de funcionar e a Microsoft teria de desenvolver uma verso especial para o Pentium II. Graas aos 7,5 milhes de transistores internos, o uso do decodificador CISC e de outras funcionalidades, o Pentium II conseguir chegar a velocidades de at 450 MHz. Em termos de velocidade de barramento, as verses do Pentium II de at 333 MHz utilizam o bus de 66 MHz, enquanto as verses a partir de 350 MHz usam bus de 100 MHz, o que acelera a troca de dados entre o processador e a memria RAM.

4.8.8

Pentium II Xeon

Utilizando a mesma arquitetura do Pentium II, o Xeon um processador desenhado para grandes servidores e estaes de trabalho grfico, substituindo o uso do Pentium Pro. Um outro motivo da preferncia em trabalhar com servidores, que alm de suportar multiprocessamento com quatro processadores na mesma placa, ele permitia o uso de 8 processadores em sistemas cluster (grades de mquinas interligadas). Este processador possui quatro funes de gesto inditas, como um sensor de temperatura interno, uma funo ECC (error checking and correction), uma funo de redundncia e uma gesto integrada ao processador. Ele tambm utilizava um novo tipo de encaixe na placa me, chamado de slot 2.

4.8.9

Pentium III

Com 70 novas instrues, o Pentium III introduzia tecnologias inovadoras desde os processos de produo em fbrica. Ele possui verses de encaixe para soquete 370 e slot 1, bem como barramento nas verses de 100 Mhz e 133 MHz.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 44 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

As verses de 600 MHz e posteriores utilizavam uma arquitetura mais avanada: seus transistores eram menores, fazendo com que gerassem menos calor, e possibilitando, assim, o surgimento de processadores mais velozes. As novas verses comearam a utilizar um barramento de 133 MHz que faz a ponte somente entre a placa-me e o processador. Os demais dispositivos (HD, modem, vdeo) utilizavam barramentos entre 66 MHz e 100 MHz. Assim, para que a memria e a placa-me possam acompanhar a velocidade do Pentium III, necessria uma placa-me que utilize barramento de 133 MHz e mdulos de memria PC-133. A Intel resolveu lanar verses do Pentium III para encaixar no formato PPGA (paralell pin grid array, que encaixa no soquete 370) a fim de cortar alguns custos e resolver os problemas eternos de mau-contato e encaixe impreciso no slot 1. Para alguns usurios, isso foi muito ruim, pois obrigava a compra de um adaptador caso tenham um placa-me com slot 1. Nesse processador h tambm a introduo de condies de baixo consumo de corrente (lower power state) e instrues novas como autohalt, stop-grant, deep sleep, sleep, que criam situaes de baixo consumo em perodos de inatividade ou programados pelo usurio.

4.8.10 Pentium III Xeon


De caractersticas muito idnticas ao Pentium III, ele promove solues para uma grande variedade de aplicaes da internet e perfeito para rodar aplicaes pesadas destinadas a servidores de misso crtica, com necessidade de desempenho mximo. Fabricado com velocidades de clock a partir de 550 MHz, esse processador acabou saindo de linha muito cedo, pois a Intel tinha dificuldades em fabricar verses mais rpidas.

4.8.11 Celeron
O Celeron pode ser visto como uma verso mais barata do Pentium II, que era praticamente um processador pelado, sem cache L2 integrado nem invlucro de plstico. O fato desse processador no possuir um cache L2 afetava seu desempenho: sua performance diminua em quase 40%. Um Celeron 266 MHz apanhava feio do Pentium Pro 233 MHz em certas aplicaes. Com isso, a partir do Celeron 300 MHz, a Intel resolveu colocar um cache L2 (chamado de 300 A) de 128 KB no ncleo desse processador. Tal cache funcionava duas vezes mais rpido em algumas aplicaes, chegando a empatar com o Pentium II. Uma outra vantagem foi em relao ao seu co-processador aritmtico, idntico ao do Pentium II, proporcionando um timo desempenho grfico.

4.8.12 Pentium 4
Disponvel com velocidades a partir de 1.3 GHz, o desenho interno totalmente novo desse chip inclui tecnologia hyper pipelined, que divide o processador em vrios estgios. Cada um deles processa as informaes simultaneamente em uma frao de segundos. Quanto mais estgios, menos processamento se exigir de cada um e, com isso, o chip ganha em velocidade.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 45 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Alm do hyper pipelined, o Pentium 4 possui um barramento equivalente a 400 MHz para proporcionar um alto desempenho para programas grficos 3D games, vdeo, udio e multimdia. Na verdade, esse barramento de 100 MHz, mas como o processador trabalha com quatro transferncias por ciclo, ento temos 4 x 100 MHz = 400 MHz. Ele tambm contm uma nova e avanada tecnologia de cache L1 e L2. O processador Pentium 4 trabalha com dois canais de acesso memria RAM, com taxa de transferncia de 3.2 GB por segundo. Esse canal duplo multiplica por dois o ganho de performance conseguido pela maior velocidade do processador. Posteriormente a Intel apresentou uma tecnologia para o Pentium 4 chamada de HT hyper threading. Com isto, a Intel deu mais poder de fogo aos processadores com um barramento de sistema de 800 MHz, outras surpreendentes tecnologias como o suporte a RAM DDR 400 e discos IDE ATA seriais.

4.8.13 Itanium
Itanium foi o nome dado a uma nova plataforma de construo de processadores da Intel. Baseado em um arquitetura de 64 bits, o Itanium trabalha com o processamento de dados no dobro da velocidade de seus antecessores de 32 bits, incluindo o Pentium 4. O processador Itanium usa a tecnologia EPIC (explicity paralell instruction computing) para alcanar novos nveis de performance, executando mltiplas instrues simultaneamente. A EPIC tambm traz novas caractersticas, como a anlise prvia e preveno de problemas de processamento, examinando anteriormente as instrues e prevendo o resultado. Alm disso, o bus de dados de um Itanium de 286 MHz, gerando uma largura de banda de 2.1 GB por segundo.

4.9 - Famlia AMD


Fundada em 1969, a AMD (Advanced Micro Devices), em seu incio, chegou a produzir chips sob encomenda para a prpria Intel, mas depois resolveu produzir seus prprios produtos. Para ganhar popularidade no mercado quase monopolista da Intel, a AMD ofereceu produtos de baixo custo, o que acabou se tornando a sua principal referncia. Sediada em Sunnyvale, Califrnia, hoje a AMD fornecedora mundial de circuitos integrados para os mercados de computadores pessoais e de rede, bem como para o mercado de comunicao, com fbricas nos Estados Unidos, Europa, Japo e sia. Tanto a Intel como a AMD tem uma histria bem parecida em relao ao desenvolvimento tecnolgico de seus produtos. Na verdade, seus primeiros chips sempre utilizavam tecnologias que a Intel j havia implementado meses antes. Isso deixou a AMD a um passo atrs de sua concorrente durante muito tempo.

4.9.1

AMD 286 A

Em 1982, a AMD lanou no mercado um dos seus primeiros processadores, o 286A. Ele vinha nas velocidades 12 MHz e 16 MHz, e no representava um grande avano tecnolgico, porm tinha alguns recursos muito interessantes. Um deles era o emulador SEM, que possibilitava ao programa sair do modo de proteo, coisa que o Intel 286 no podia fazer.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 46 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

4.9.2

AMD 386

No incio de 1985, a AMD lanou uma verso do antigo 286 com algumas melhorias, o processador 386. Assim como o 386 da Intel, esse novo processador possua suporte de 32 bits e vinha com velocidades entre 16 MHz a 40 MHz. A exemplo da Intel, a AMD fez duas verses desse produto. Uma com o novo suporte de 32 bits (DX) e outra apenas com o antigo 16 bits (SX).

4.9.3

AMD 486

Depois que a Intel lanou o modelo 80486, a AMD lanava sua verso desse processador, o que pode ser considerado o incio da popularidade da AMD. Ele vinha nas velocidades de 22 MHz a 50 MHz e com co-processador matemtico integrado. Em uma grande variedade de testes realizados, o 486 da Intel perdia para o 486 da AMD. Isso por causa do bus interno do 486 da AMD, que era de 40 MHz, enquanto o da Intel era de apenas 33 MHz. Posteriormente, a AMD lanou uma verso com o dobro da velocidade do bus interno de 80 MHz. Em resposta (tardia), a Intel lanou a verso DX4 do 486. Com essa verso, que tinha o triplo de barramento interno do 486 original, a Intel voltou a ser mais rpida, e o 486 da AMD ficou para trs. Entretanto, o mercado nunca mais seria o mesmo: as pessoas comearam a olhar a AMD como fabricante de circuitos rpidos e no s como alternativa barata Intel.

4.9.4

AMD 586

Aps ter assistido ao lanamento e ao sucesso do novo processador Pentium da Intel, os executivos da AMD sabiam que deveriam lanar um produto altura em breve. Em assim o fizeram. O novo processador 5x86 da AMD nada mais era que um 486 com barramento de 133 MHz, com a placa me funcionando a 33 MHz, usando multiplicador de quatro vezes. Ou seja: no passava de um 486 um pouquinho mais rpido. Como perdia feio para o Pentium, esse processador no foi bem aceito entre os consumidores e passou quase que despercebido.

4.9.5

AMD K5

Sabendo que precisaria ter um produto que competisse com o Pentium, e em meio s duras crticas, a AMD lanou um projeto prprio de processador, o K5. Curiosidade: a letra K aludia Kriptonita, a nica arma eficaz contra o Super Homem da Intel. Ao contrrio dos seus antecessores, no era um clone de sua contrapartida da Intel, mas um projeto novo. Sua estrutura interna era completamente diferente, sendo semelhante apenas nos pontos em que interfaceava com o software: conjunto de instrues, registradores e cache. Com isso a AMD conseguiu um produto prprio e 100% compatvel com o software para PC produzido at ento. Esse processador deu um pouco de dor de cabea a AMD, pois no se conseguia produzir uma verso acima dos 116 MHz, enquanto o seu concorrente chegava fcil aos 150 MHz.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 47 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

O mais engraado dessa histria ocorreu quando, depois de queimar muitos neurnios, a AMD conseguiu lanar uma verso de 133 MHz. Com isso, a Intel lanou tambm uma nova verso do seu processador, o Pentium 200 MHz. Parece que essa Kriptonita, em vez de derrotar a Intel, teve o mesmo efeito que o espinafre tem para o marinheiro Popeye.

4.9.6

AMD K6

Os engenheiros e cientistas da AMD, com srios problemas em relao a sua competio particular com os da Intel, acabaram encontrando uma empresa querendo vender sua tecnologia. Essa empresa era a Next-Gen, uma fabricante de processadores que possua o projeto de um processador 6x86, mas com algumas melhorias. Muitos softwares de teste ainda hoje identificam os K6 como 6x86. Todos os testes mostravam o K6 como sendo mais rpido que o Pentium, e chegando perto do Pentium Pro (s que por um preo mais baixo). Ao saber do sucesso do K6, a Intel adiantou o lanamento do seu novo processador Pentium II e mais uma vez, e empresa retomava a frente na corrida tecnolgica.

4.9.7

AMD K6-II

Com o surgimento do Pentium MMX cuja tecnologia era um fator importante para os consumidores a AMD tentou encontrar um jeito de concorrer com essa nova tecnologia da Intel. A incorporao de 27 instrues ao seu K6-II, chamada tecnologia 3DNow! fazia com que o processamento de grficos tridimensionais por meio de placas aceleradoras se tornasse mais rpido. Alm disso, o novo K6-II vinha com velocidade a partir de 300 MHz e com um barramento de 100 MHz. Essa nova tecnologia, quando suportada pelos programas/aplicativos, apresentava resultados fantsticos at mesmo em comparao ao todo poderoso Pentium II. Isso tornou o K6-II o processador mais famoso e mais vendido da histria da AMD. A princpio, a nova tecnologia 3DNow! no foi muito bem aceita pelos projetistas de softwares que aos poucos foram perdendo o interesse por ela, o que resultou na produo de poucos programas que a suportavam. Mas a Microsoft, querendo ampliar a base instalada do seu sistema operacional Windows, colocou suporte total ao 3DNow! nas extenses DirectX, juntamente com as instrues MMX do Pentium. Resultado: se o programa usasse DirectX, no importaria a tecnologia do processador, pois, qualquer que fosse, sua capacidade seria maximizada. Pouco depois, a Intel aumentou o cache de seu Pentium II,e a AMD mais uma vez no conseguiu acompanhar o desenvolvimento da rival.

4.9.8

AMD K6-III

O K6-III foi uma resposta da AMD ao Pentium III da Intel. Lanado em 1999, ele foi produzido em velocidades a partir de 400 MHz. Na verdade, o K6-III no passava de uma verso do K6-II que trazia embutido um cache L2 de 256 KB.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 48 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Durante algum tempo, vrios testes mostravam que o K6-III vencia facilmente um Pentium III de mesmo clock. Porm o mtodo de fabricao adotado fazia com que o processador gerasse muito calor e tambm no apresentava um preo atrativo. Mais tarde, com o lanamento do Athlon, a AMD abandonou a produo do K6-III. O Athlon, alm de ser um processador mais rpido, tinha menor custo de produo.

4.9.9

AMD Athlon

No ano de 2000, a AMD mostraria ao mundo seu novo produto, que prometia revolucionar a indstria de processadores e virar a corrida tecnolgica a seu favor. Seu nome: K7, mais conhecido popularmente como Athlon. Ele fez com que a AMD mostrasse que poderia se tornar lder no mercado com um processador simplesmente excepcional. Os dois processadores concorrentes Athlon e Pentium III eram de certa forma equivalentes, pois cada um apresentava algum tipo de vantagem sobre o outro. O Athlon foi fabricado tambm no formato Slot A, bem parecido fisicamente com o Slot 1 da Intel, porm incompatvel logicamente. Um dos problemas do Athlon era seu superaquecimento, o que ocorria porque o processador ainda utilizava o antigo processo de fabricao de 0.25 mcron uma desvantagem em relao ao Pentium III, que produzia menos calor. Em compensao era ligeiramente mais barato. Assim, a AMD resolveu modificar o processo de fabricao desse processador, passando a utilizar o 0.18 mcron, o que resolveu, ento, esse problema. Isso fez com o Athlon alcanasse vendagens excelentes, impulsionadas pelo seu menor preo em comparao ao Pentium III e tambm por seu desempenho em alguns casos muito melhor que o Pentium III.

4.9.10 AMD Athlon Thunderbird


Da mesma maneira que a Intel, a AMD tambm incorporou o cache L2 ao ncleo do seu processador, sob o nome de Athlon Thunderbird. Essa nova verso possua menos cache (256 Kb) que o Athlon original. No entanto consumia bem menos energia e produzia menos calor. O cache integrado ao processador oferece um grande ganho de performance, pois trabalha na mesma velocidade. Assim, a AMD deixou de estar prxima da Intel, para finalmente igualar-se a ela. Logo, foi introduzido um novo soquete de encaixe chamado Soquete A (ou soquete 462). Enquanto os modelos antigos do Athlon utilizavam o slot A, esse novo soquete era parecido com o soquete 370.

4.9.11 AMD Duron


A AMD queria controlar ambos os mercados de alto e baixo custo. Simultaneamente ao lanamento do Athlon Thunderbird, foi lanado o processador Duron, que tambm veio para disputar o mercado de baixo custo com o seu principal concorrente, o Celeron. Descobriu-se depois que essa concorrncia era muito fcil de ser vencida.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 49 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Na verdade, o Duron uma verso do Thunderbird com menos cache L2. E enquanto um Athlon Thunderbird vem com cache L2 (full-speed) de 256 Kb, o Duron vem com cache L2 de apenas 64 Kb (tambm full-speed), mas apresentando um cache L1 de 128 KB, totalizando 192 Kb de cache, superando, com isso, o Celeron, seu processador rival.

4.10 - Famlia Cyrix


A Cyrix est no mercado de processador h muito tempo. Seus processadores sempre foram razoavelmente bons se comparados aos processadores da Intel e da AMD. Mesmo na poca do Pentium, tanto a AMD como a Cyrix j trabalhavam em seu processador de 5 gerao com o objetivo de ultrapassar, ou simplesmente se igualar, ao Pentium. Apesar de ser uma empresa pequena, a Cyrix sempre desenvolveu processadores aritmticos de bom desempenho, mesmo sem possuir um parque fabril suficiente para atender demanda.

4.10.1 Cyrix Cx486 DX


Lanado em 1993, o processador Cx486DX foi a primeira investida da Cyrix no mercado. Com uma velocidade de at 100 MHz, diversos testes apontavam que esse processador era bastante rpido e chegava a ser superior ao modelo 80486 da Intel. A exemplo da Intel, mais tarde seria lanada a verso DX2 e DX4 do Cx486DX. O DX2 apresentava o dobro de velocidade interna do barramento em relao ao original, e o DX4 o triplo. A Cyrix tambm possua um 386 turbinado chamado Cx486DLC. Ele era compatvel pino a pino com o 80386 e apresentava um ganho de desempenho de aproximadamente 20%. Para substituir o 386XC, havia o 486SLC, que era um verdadeiro frankenstein, com barramentos do 286, circuitos do 386 e instrues do 486.

4.10.2 Cyrix 5x86


Depois de uma boa vendagem do Cx486DX, a Cyrix lanou em 1995 o processador 5x86, ou apenas 586. Ele vinha com uma velocidade de at 133 MHz e com uma novidade, o dissipador embutido. Esse processador era uma mistura de 486 com Pentium, oferecendo um desempenho superior a um 486 padro e mesmo ao 586 da AMD. Apesar de aceitvel, seu desempenho geral era bem inferior ao do Pentium da Intel.

4.10.3 Cyrix 6x86


Empolgada com os seus dois ltimos processadores, a Cyrix anunciava um novo conceito em processadores, e em 1996 lanaria o 6x86. Este processador foi uma tentativa da empresa de concorrer com o MMX da Intel, prometendo que o 6x86 seria to rpido quanto qualquer processador da Intel ou da AMD. O mercado, no entanto, considerou o 6x86 medocre, ignorando a lista de bons recursos apresentada pelo processador com, por exemplo, suporte tecnologia MMX, uma velocidade considervel e um preo mais acessvel que os da concorrncia.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 50 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Mais tarde, o lanamento da verso MX desse produto apresentava somente algumas mudanas, tais como a implantao de cache L1. Porm, isso no era o bastante, e a Cyrix deixara de ser uma ameaa Intel ou AMD.

4.10.4 Cyrix Media GX


Pouco depois de lanar o 6x86, a Cyrix tentava introduzir um produto que pudesse realizar o controle de todas as funes controladoras no prprio processador (som, vdeo PCI e memria). A idia era boa, mas no havia como um processador de apenas 200 MHz realizar tais funes sozinho.

4.10.5 Via Cyrix III


Aps ser comprada pela National Semiconductor, a Cyrix deixara de produzir qualquer produto que tivesse expresso. Porm, em 2000, ao ser comprada pela VIA, a Cyrix apresentou um novo processador: o VIA Cyrix III. Disponvel a partir de 500 MHz. Ele consumia pouca eletricidade, o que o tornava atraente para o mercado de notebooks. Apesar de parecer um bom concorrente, o VIA Cyrix III simplesmente no consegue render tanto quanto os produtos da Intel e da AMD de mesmo clock.

Exerccios
01 Considerando as funes de um processador, incorreto afirmar que: a) b) c) d) e) O processador o componente vital do sistema de computao Um processador tem por propsito realizar operaes com os dados Todo processador construdo de modo a ser capaz de realizar algumas operaes denominadas primitivas A seqncia de 0s e 1s que formaliza uma determinada operao a ser realizada pelo processador denomina-se instruo de mquina Todas as alternativas esto incorretas

02 Explique o funcionamento dos ciclos de busca, memria e execuo existentes na CPU. 03 Qual a funo do registrador CX? 04 Explique qual a funo do clock de um computador. 05 Por que a utilizao de um co-processador matemtico aumenta a performance de um processador? 06 Qual a diferena de funcionamento existente entre os processadores 8088 e 8086 da Intel? 07 Em que consiste o modo protegido, implementado pela primeira vez nos processadores 80286? 08 Em que o processador 80386 DX era diferente quando comparado ao processador 80386 SX?

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 51 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

09 Explique o funcionamento da tcnica denominada overclock (multiplicao de clock). Qual o inconveniente da utilizao deste mtodo? 10 Por que existe a necessidade da utilizao de um cooler nos processadores atuais? 11 Explique o funcionamento da tecnologia MMX, implementada pela primeira vez nos processadores Pentium. 12 Alguns processadores foram projetados para serem utilizados em sistemas de cluster. Em que consiste este sistema? 13 O processador Pentium 4 introduziu a tecnologia denominada hyper pipelined. Explique como funciona esta tecnologia.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 52 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

5- Subsistemas de Memria
5.1 - Introduo
A memria o componente de um sistema de computao cuja funo armazenar as informaes que so ou sero manipuladas por esse sistema, para que elas possam ser prontamente recuperadas, quando necessrio.Conceitualmente, a memria um componente muito simples: um depsito onde so guardados certos elementos (as informaes) para serem usados quando desejado. No entanto, na prtica, em um sistema de computao no possvel construir e utilizar apenas um tipo de memria. Na verdade, a memria de um computador tambm em si um sistema, ou melhor, um subsistema, tendo em vista que constituda de vrios componentes interligados e integrados, com o objetivo j definido acima: armazenar informaes e permitir sua recuperao quando requerido. A necessidade da existncia de vrios tipos de memria ocorre em virtude de vrios fatores concorrentes. Em primeiro lugar, o aumento sempre crescente, da velocidade da CPU, muito maior que o tempo de acesso da memria, ocasiona atrasos na transferncia de bits entre memria e CPU. Outro fator relaciona-se com a capacidade de armazenamento de informaes que os sistemas de computao precisam ter, cada vez maior, em face do aumento do tamanho dos programas, bem como do aumento do volume dos dados que devem ser armazenados e manipulados nos sistemas atuais. Se existisse apenas um tipo de memria, sua velocidade (tempo de acesso) deveria ser compatvel com a da CPU, de modo que esta no ficasse esperando muito tempo por um dado que estivesse sendo transferido da memria. Na realidade, o avano da tecnologia na construo de processadores e memrias de semicondutores no tem sido uniforme, isto , o aumento da velocidade das CPUs tem sido bem maior que o aumento da velocidade de acesso das memrias. Enquanto a quantidade de instrues executadas por segundo por um processador tem dobrado a cada 18 meses mantendo o mesmo preo, a velocidade de acesso das memrias tem aumentado cerca de 10% ao ano, embora sua capacidade de armazenamento venha quadruplicando a cada 36 meses (mantendo o mesmo preo). Em resumo, os dois fatores citados, velocidade e capacidade, indicam a necessidade de se projetar no um nico tipo de memria (com elevada velocidade e grande capacidade, mas com custo altssimo), mas sim um conjunto de memrias com diferentes caractersticas, o que leva a uma hierarquia de funcionamento a que denominamos de subsistema de memria.

5.2 - Representao das Informaes


A memria de um sistema de computao tem como elemento bsico de armazenamento fsico o bit. Ou seja, fisicamente ela construda de modo a representar individualmente bit por bit. O modo pelo qual cada bit identificado na memria variado: pode ser um sinal eltrico, um campo magntico ou ainda pela presena/ausncia de um ponto de luz. Como um bit pode apenas indicar dois valores distintos, sua utilidade individual bastante restrita. Na prtica, precisamos passar para o computador as informaes que conhecemos na vida cotidiana, normalmente em forma de caracteres ou smbolos grficos, que visualmente conseguimos distinguir. Assim, claramente distinguimos o caractere a do caractere b, porque todos eles tm formato visual diferente e o ser humano, atravs do sentido da viso, consegue distingui-los.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 53 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Como computadores no possuem esses sentidos, eles conseguem apenas distinguir sinais eltricos diferentes, isto , se o valor representa 0 ou 1. Nesse caso, para introduzir todos os smbolos bsicos que usamos em nosso dia a dia precisaramos mais do que um bit, visto que com apenas um bit poderamos apenas representar dois smbolos distintos. Por isso, os sistemas de computao costumam agrupar uma determinada quantidade de bits, identificando este grupo como uma unidade de armazenamento, denominada clula. Uma clula um grupo de bits tratado em conjunto pelo sistema, isto , esse grupo movido em bloco como se fosse um nico elemento, sendo assim, identificado para efeitos de armazenamento e transferncia, como uma unidade.

5.3 - Localizao das Informaes


Como uma memria constituda de vrios desses grupos de bits, necessrio que seja definido um mtodo para identificar univocamente cada uma dessas clulas, de modo que possa ser distintamente identificado o grupo de bits desejado para o processamento. Em um sistema de computao as clulas so identificadas por um nmero denominado endereo. A memria organizada em grupos de bits seqencialmente dispostos a partir do grupo de endereo 0 at o ltimo grupo, de endereo (n 1). O sistema de controle das memrias construdo de modo a localizar certo grupo de bits a partir do seu endereo.

5.4 - Operaes Realizadas


J foi mencionado que uma memria um dispositivo de armazenamento (depsito) de informaes. Quando se organiza um depsito, tem-se por objetivo permitir que elementos possam ser armazenados de maneira organizada, que possibilite sua identificao e localizao, quando se deseja recuper-los. Desta maneira, na memria de um computador podemos realizar basicamente duas aes: Escrita ou gravao Leitura ou recuperao Ambas as operaes so possveis graas tcnica utilizada para identificar cada elemento (ou grupo de bits) por um nmero, seu endereo, que permite identificar o local de armazenamento para escrita ou leitura. A operao de escrita naturalmente destrutiva, ou seja, ao armazenar-se um dado em uma clula o contedo anterior destrudo, visto que os bits que chegam so gravados por cima dos que estavam no local. A operao de leitura no deve ser destrutiva. Ela , na realidade, uma ao de copiar um valor em outro local, permanecendo o mesmo valor no local de origem.

5.5 - Hierarquia
No item anterior mencionamos a necessidade de se projetar sistemas de computao que adotassem uma memria constituda de um conjunto de diferentes tipos, organizados de forma hierrquica.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 54 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Na realidade h muitas memrias no computador, as quais se interligam de forma estruturada, constituindo um sistema em si, fazendo parte do sistema global de computao.

A pirmide da figura anterior projetada com uma base larga, que simboliza a elevada capacidade, o tempo de uso e o custo do componente que a representa. A seguir sero definidos os principais parmetros para anlise das caractersticas de cada tipo de memria que faz parte da pirmide: Tempo de acesso indica quanto tempo a memria gasta para colocar uma informao no barramento de dados aps uma determinada posio ter sido endereada. um dos parmetros que pode medir o desempenho da memria. O valor do tempo de acesso de uma memria dependente da sua tecnologia de construo e da velocidade de seus circuitos. Ele varia bastante para cada tipo, de alguns poucos nanossegundos, no caso de memrias tipo RAM (DRAM, SRAM) at dezenas ou centenas de milissegundos, no caso de memria secundria (discos magnticos). Capacidade a quantidade de informao que pode ser armazenada em uma memria. A unidade mais comum o byte, indicando sua capacidade total. Volatilidade uma memria no voltil a que retm a informao armazenada quando a energia eltrica desligada. Memria voltil aquela que perde a informao armazenada quando o equipamento desligado. Custo - o custo de fabricao de uma memria bastante variado em funo de diversos fatores, entre os quais se pode mencionar principalmente a tecnologia de fabricao, que redunda em maior ou menor tempo de acesso, ciclo de memria, quantidade de bits em certo espao fsico e outros.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 55 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

5.5.1

- Registradores

Em um sistema de computao, a destinao final do contedo de qualquer tipo de memria o processador. Assim, o objetivo final de cada uma das memrias armazenar informaes destinadas a serem utilizadas pelo processador. Ele o responsvel pela execuo das instrues, pela manipulao dos dados e pela produo dos resultados das operaes. As aes do processador so realizadas nas suas unidades funcionais: na unidade aritmtica e lgica (ULA), na unidade de ponto flutuante (UFP) ou talvez em uma unidade de processamento vetorial. No entanto, antes que a instruo seja interpretada e os dispositivos da CPU sejam acionados, o processador necessita buscar a instruo de onde ela estiver armazenada e armazen-la em seu prprio interior, em um dispositivo de memria denominado registrador de instruo. Em seguida a este armazenamento da instruo, o processador dever, na maioria das vezes, buscar dados da memria para serem manipulados na ULA. Esses dados tambm precisam ser armazenados em algum local na CPU at serem efetivamente utilizados. Os resultados de um processamento tambm precisam s vezes ser guardados temporariamente na CPU, ou para serem novamente manipulados na ULA por outra instruo, ou para serem transferidos para uma memria externa CPU. Esses dados so armazenados na CPU em pequenas unidades de memria, denominadas registradores. Um registrador , portanto, o elemento superior da pirmide de memria, por possuir a maior velocidade de transferncia dentro do sistema (menor tempo de acesso), menor capacidade de armazenamento e maior custo.

5.5.2

- Memria Cache

Na pirmide de memria, encontra-se a memria cache. Em sistemas de computao mais antigos, a pirmide no possua memria cache e, desse modo, os registradores eram ligados diretamente memria principal. Em toda execuo de uma instruo, CPU acessa a memria principal (sem cache), pelo menos uma vez, para buscar a instruo (uma cpia dela) e transferi-la para um dos registradores da CPU. Muitas instrues requerem outros acessos memria, seja para transferncia de dados para a CPU, seja para transferncia do resultado de uma operao para a memria. Em resumo, para a realizao do ciclo de uma instruo h sempre a necessidade de ser realizado um ou mais ciclos de memria. Considerando-se que um ciclo de memria atualmente bem mais demorado do que o perodo de tempo que a CPU gasta para realizar uma operao na ULA, fica claro que a durao da execuo de um ciclo de instruo bastante afetada pela demora dos ciclos de memria. Desde h muito, ento, esta interface entre o processador e a memria principal vem sendo um ponto frgil no que se refere performance do sistema. Na tentativa de melhorar o desempenho dos sistemas de computao, os projetistas das CPUs vm constantemente obtendo velocidades cada vez maiores nas operaes dessas unidade, o que no est acontecendo na mesma proporo com o aperfeioamento tecnolgico das memrias utilizadas como memria principal. Assim, atualmente a diferena de velocidade entre a CPU e a memria principal talvez maior do que j foi no passado.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 56 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Na busca de uma soluo para este problema, foi desenvolvida uma tcnica que consiste na incluso de um dispositivo de memria entre a CPU e a memria principal, denominado memria cache, cuja funo acelerar a velocidade de transferncia das informaes e com isso aumentar o desempenho dos sistemas de computao. Para tanto, este tipo de memria fabricado com tecnologia semelhante CPU e, em conseqncia possui tempos de acesso compatveis com a mesma, resultando em uma considervel reduo de espera da CPU para receber dados e instrues da cache, ao contrrio do que acontece em sistemas sem cache. O conceito de localidade justifica a existncia da cache por prever vrios acessos mesma memria num breve espao de tempo. Baseado neste conceito, a memria cache trabalha seguindo o seguinte algoritmo: 1. Sempre que a CPU vai buscar uma nova instruo, ela acessa a memria cache. 2. Se a instruo ou dado estiver na cache, ela transferida em alta velocidade para a CPU. 3. Se a instruo ou dado no estiver na cache, ento o sistema est programado para interromper a execuo do programa e transferir a instruo desejada da memria principal para a CPU. A CPU entra em estado de espera (WAIT STATE) enquanto ocorre a demorada transferncia do dado vindo da memria principal. Simultaneamente transferida uma cpia da instruo desejada mais o contedo de alguns endereos de memria subseqentes para a memria cach prevendo novo acesso baseado no princpio da localidade. Atualmente h diversos tipos de memria cache, utilizados em sistemas de computao modernos: RAM cache ou cache para a memria principal e cache para disco. Alm disso, importante mencionar que as memrias RAM cache podem ser inseridas em dois nveis. O primeiro nvel denominado L1 e consiste de uma memria inserida internamente no processador, encapsulada na mesma pastilha, enquanto a de nvel 2, L2 ou cache externa, consiste em um pastilha separada e prpria, instalada na placa me do computador.

5.5.3

- Memria Principal

Uma das principais caractersticas definidas no projeto de arquitetura do sistema de Von Neumann, o qual se constitui na primeira gerao dos computadores, consistia no fato de ser uma mquina de programa armazenado. O fato das instrues, uma aps a outra, poderem ser imediatamente acessadas pela CPU que garante o automatismo do sistema e aumenta a velocidade de execuo dos programas. A CPU pode acessar imediatamente uma instruo aps a outra porque elas esto armazenadas internamente no computador. Esta a importncia da memria. E, desde o princpio, a memria especificada para armazenar o programa (e seus dados) a ser executado a memria que atualmente chamamos de principal (ou memria real), para distingui-la da memria de discos (memria secundria) A memria principal , ento, a memria bsica de um sistema de computao desde seus primrdios. o dispositivo onde o programa (e seus dados) que vai ser executado armazenado para que a CPU busque instruo por instruo, para execut-las.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 57 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Atualmente a memria principal fabricada com tecnologia de semicondutores, o que lhes permite elevada velocidade de acesso e transferncia de bits, j que so circuitos apenas eltricos em funcionamento (no h partes mecnicas ou magnticas). A velocidade de propagao de um sinal eltrico cerca de 300.000 km/s (velocidade de luz). A memria principal permite o acesso a qualquer uma das clulas de memria a qualquer tempo, se diferenciando das memrias chamadas seqenciais (como as fitas magnticas), nas quais necessrio acesso a todos os registros at a identificao da clula desejada. Uma vez que esta memria voltil h necessidade deste programa e seus dados estarem armazenados em alguma forma de memria secundria (HD, CD-ROM) antes de serem chamados para a memria principal (RAM). Na realidade, o programa no precisa mais estar inteiro na memria RAM, bastando que o mesmo seja dividido em pedaos chamados de pginas, executadas em seqncia. Assim sendo, a memria principal composta por locais onde podem ser armazenados dados na forma de bits. Estes locais podem ser acessados pelo seu endereo.

5.5.4

- Memria Secundria

Na base da pirmide que representa a hierarquia de memria em um sistema de computao encontra-se um tipo de memria com maior capacidade de armazenamento do que os outros tipos j descritos, menor custo por byte armazenado e com tempos de acesso tambm superiores aos outros tipos. Esta memria, denominada memria secundria, tem por objetivo garantir um armazenamento mais permanente aos dados e programas do usurio, razo por que deve naturalmente possuir maior capacidade que a memria principal. A memria secundria de um sistema de computao pode ser constituda por diferentes tipos de dispositivos, alguns diretamente ligados ao sistema para acesso imediato (discos rgidos, por exemplo) e outros que podem ser conectados quando desejados (DVD, pen drives) cuja informao armazenada se torna diretamente conectada e disponvel quando o DVD ou pen drive estiver inserido no elemento de leitura/escrita. Observe que uma das principais caractersticas destes dispositivos sua no volatilidade, podendo armazenar informaes mesmo com a falta de energia. A memria secundria mais barata e mais lenta, sendo utilizada para armazenar informao por longos perodos de tempo. Sua lentido, quando comparada s demais memrias, advm do fato da mesma ser constituda de elementos eletro-mecnicos, alm dos tradicionais componentes eletrnicos. Desta maneira, o tempo para localizar-se uma informao fica condicionado aos tempos de busca e posicionamento dos elementos mecnicos do dispositivo. Outro fator importante neste contexto diz respeito aos algoritmos utilizados pelo sistema operacional para recuperar e gravar as informaes nestes dispositivos.

5.6 Mtodos de Acesso


Acesso seqencial: Os dados so organizados na memria em unidades chamadas de registros. O acesso feito segundo uma seqncia especfica. O tempo de acesso depende da posio relativa do registro, variando significativamente. Exemplo: Fita magntica. Acesso direto: Por meio de uma pesquisa seqencial em uma vizinhana do registro obtido o seu endereo fsico, sendo ento possvel a leitura ou gravao. O tempo de acesso tambm varivel. Exemplo: Disco magntico (HD).
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 58 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Acesso aleatrio: Cada posio de memria possui mecanismo de endereamento fisicamente conectado a ela. O tempo de acesso o mesmo para todos os endereos. Exemplo: RAM. Acesso associativo: Um dado buscado na memria com base em uma parte de seu contedo, e no de acordo com seu endereo. Exemplo: Memria CACHE.

5.7 Correo de Erros


Um sistema de memria semicondutora est sujeito a erros. Estes podem ser categorizados como falhas permanentes e erros no permanentes. Uma falha permanente um defeito fsico permanente, de modo que a clula ou clulas de memria afetadas no podem armazenar dados de modo confivel, mas ficam presas em 0 ou 1, ou alternam erroneamente entre 0 e 1. Os erros permanentes podem ser causados por uso intenso em ambiente imprprio, defeitos de fabricao ou desgaste. Um erro no permanente um evento aleatrio, no destrutivo, que altera o contedo de uma ou mais clulas de memria sem danificar a memria principal. Os erros permanentes podem ser causados por problemas de fonte de alimentao ou partculas alfa. Essas partculas resultam do declnio radioativo e so terrivelmente comuns, pois os ncleos radioativos so encontrados em pequenas quantidades em quase todos os materiais. Erros permanentes e no permanentes certamente so indesejveis, e a maioria dos sistemas de memria modernos inclui lgica para detectar e corrigir erros. Os cdigos que operam nesse padro so conhecidos como cdigos de correo de erro. Um cdigo caracterizado pelo nmero de erros de bit em uma palavra que ele pode corrigir e detectar. O mais simples dos cdigos de correo de erro o cdigo de Hamming, criado por Richard Hamming. Est tcnica consiste em adicionar um bloco de paridade a um bloco de dados, sendo possvel detectar e corrigir erros que possam vir a ocorrer. Alm de eficientes, estas tcnicas devem ser implementadas de maneira que a sua utilizao no comprometa o desempenho do sistema e influenciando a taxa de throughput.

5.8 Memria Virtual


No incio da histria dos computadores, as memrias eram pequenas e caras. Naquela poca o programador gastava muito tempo tentando comprimir programas na minscula memria. Muitas vezes era necessrio usar um algoritmo cuja execuo era muito mais lenta do que a de outro algoritmo melhor, simplesmente porque o algoritmo melhor era muito grande isto , um programa que o utilizasse no poderia ser comprimido na memria do computador. A soluo tradicional para esse problema era usar uma memria secundria, como um disco por exemplo. O programador dividia o programa em um certo nmero de pores, denominadas overlays; cada uma das quais podia caber na memria. O programador era responsvel por fragmentar o programa em overlays, decidir em que lugar da memria secundria cada overlay seria mantida, resolver o transporte de overlays entre a memria principal e a memria secundria e, em geral, gerenciar todo o processo de sobreposio sem nenhum auxlio do computador. Embora tenha sido muito utilizada durante anos, essa tcnica envolvia muito trabalho para o gerenciamento das overlays. Foi desenvolvido ento um mtodo para executar o processo de sobreposio automaticamente, sem que o programador soubesse o que estava acontecendo. Esse mtodo, chamado de memria virtual, tinha a bvia vantagem de livrar o programador de grande parte de uma irritante contabilidade.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 59 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

A idia bsica da memria virtual permitir que programas muito maiores que a memria disponvel possam ser executados. Com o uso dessa memria o sistema operacional mantm as partes ativas do programa na memria e o restante em disco, sendo carregadas ou removidas da memria de acordo com as necessidades. Essa tcnica no depende do tamanho da memria principal. A memria secundria (normalmente um disco rgido) passa a servir como uma espcie de extenso da memria principal, armazenando a maior parte dos programas e dados carregados para execuo. memria principal so transferidas por vez apenas algumas partes destes programas e dados, essenciais ao momento pontual da execuo. Este recurso disponibilizado, principalmente graas ao suporte dado pelo processador que contribui com o controle de acesso a memria, permitindo ao sistema operacional transportar temporariamente o contedo de blocos para o disco, liberando assim espao na memria principal. Na famlia de processadores x86 da Intel, o recurso de memria virtual suportado quando trabalhamos no modo chamado de "protegido" do processador. Este modo determina a utilizao de uma tabela chamada de tabela de descritores, que armazena informaes de como est sendo utilizada a memria do equipamento. Um programa no ambiente de memria virtual no faz referncia a endereos fsicos de memria (endereos reais), mas apenas a endereos virtuais. No momento da execuo de uma instruo, o endereo virtual referenciado traduzido para um endereo fsico, pois o processador manipula apenas posies da memria principal. O mecanismo de traduo do endereo virtual para endereo fsico denominado mapeamento. Como o espao de endereamento virtual no tem nenhuma relao direta com os endereos no espao real, um programa pode fazer a referncia a endereos virtuais que estejam fora dos limites da memria principal, ou seja, os programas e suas estruturas de dados no esto mais limitados ao tamanho da memria fsica disponvel. Para que isso seja possvel, o sistema operacional utiliza a memria secundria como extenso da memria principal. Quando um programa executado, somente uma parte do seu cdigo fica residente na memria principal, permanecendo o restante na memria secundria at o momento de ser referenciado. No desenvolvimento de aplicaes, a existncia dos endereos virtuais ignorada pelo programador. Os compiladores e linkers se encarregam de gerar o cdigo executvel em funo do espao de endereamento virtual, e o sistema operacional cuida dos detalhes durante sua execuo.

5.9 - Banco de Memrias


Nos PCs comuns, a memria RAM que guarda toda e qualquer informao que o usurio esteja manipulando, bem como os programas que ele esteja usando para tal. As memrias normalmente so organizadas em pequenas placas de circuito impresso, com chips de memria e contatos. Essas placas so chamadas de mdulos de memria ou em linguagem coloquial pentes de memria. Qualquer que seja a arquitetura ou o processador empregado, o PC acessa a memria organizada em bancos. Um banco pode possuir um ou mais mdulos, dependendo da arquitetura do processador. Para que os processadores possam trabalhar com qualquer quantidade de memria, preciso que exista um barramento de endereos com tamanho suficiente para atender mxima capacidade de memria enderevel pelo processador. A largura desse barramento e sua diviso em grupos de chips so chamadas de banco de memria. Antigamente, em processadores das linhas 386 e 486 era necessrio um barramento de 32 bits para formar um banco de memria. J em computadores da linha Pentium, o acesso ao banco feito a 64 bits de dados por vez. Para formar um banco de memria nos 386, eram necessrios 4 mdulos SIMM de 30 vias (8 bits em cada mdulo).

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 60 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Dentro de um banco, todos os mdulos so acessados ao mesmo tempo, como se fossem um s. Por isso, necessrio que todos os mdulos sejam capazes de responder aos chamados do controlador de memria de maneira sincronizada, como uma orquestra. A mnima falta de sincronia entre os mdulos ir causar instabilidade no sistema, que poder levar a travamentos. Por isso, altamente recomendvel que sejam utilizados sempre mdulos idnticos dentro de um mesmo banco (mesma marca, mesma capacidade, mesmo tempo de acesso, etc.), preferencialmente adquiridos juntos. Memrias de computador podem cometer erros de vez em quando, devido a picos de tenso na linha eltrica ou outras causas. Para se resguardar contra esses erros, algumas memrias usem cdigos de deteco de erros ou cdigos de correo de erros. Quando esses cdigos so usados, bits extras so adicionados a cada palavra de memria de modo especial. Quando uma palavra lida na memria, os bits extras so verificados para ver se ocorreu um erro.

5.9.1

- Mdulo SIMM de 30 vias

Os mdulos SIMM (Single In Line Memory Module) foram os primeiros a serem criados. Os contatos ficavam todos do mesmo lado da placa da seu nome e no total eram 30, sendo chamados de vias. Cada mdulo transferia 8 bits por ciclo. Naquela poca, foram fabricados mdulos de diversas capacidades, sendo que os mais comuns eram os mdulos de 256 Kb, 1 Mb e 4 Mb, embora houvessem mdulos de 512 Kb, 8 Mb e 16 Mb, tambm.

Esses mdulos eram muito comuns em computadores 386 e 486. Seus processadores tinham a necessidade de combinar quatro mdulos de 30 vias para formar cada banco de memria, uma vez que o barramento de dados possua uma largura de 32 bits. Os 386 SX e mesmo alguns 286, com seus barramentos de 16 bits, precisavam apenas de dois mdulos SIMM para preencher um banco. Os mdulos SIMM de 30 vias eram bastante inconvenientes, j que era preciso usar 4 mdulos idnticos para formar cada banco de memria. Eles foram desenvolvidos pensando mais na questo da simplicidade e economia de custos do que na praticidade.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 61 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

5.9.2

- Mdulo SIMM de 72 vias

Em computadores mais antigos, para formar cada banco de memria, era preciso usar quatro mdulos SIMM de 30 vias idnticos. Para resolver esse inconveniente, os fabricantes desenvolveram um novo tipo de mdulo de memria SIMM com, 72 vias e 32 bits. Esses mdulos eram bastante usados em alguns modelos de computadores 486. Assim, em vez de quatro mdulos, era necessrio apenas um mdulo SIMM de 72 vias para formar cada banco de memria. Era possvel, inclusive, misturar memrias de tamanho e procedncia diferentes, j que cada uma ocuparia um banco separado. Os mdulos SIMM de 72 vias eram o padro nos primeiros computadores Pentium. Apesar de o Pentium II e III, Celeron, Athlon, Duron e outros serem todos processadores de 32 bits, eles acessam 64 bits por vez na memria. Com isso, dobra-se virtualmente a taxa de transferncia entre a CPU e a memria: em uma nica requisio, carregam-se duas posies de memria. Como o Pentium II e posteriores acessam a memria usando palavras de 64 bits, so necessrios 2 mdulos em cada banco o que acarreta a necessidade de se ter mdulos idnticos em um mesmo banco para evitar problemas. O acesso de 64 bits memria foi introduzido para permitir que o processador conseguisse acessar grandes quantidades de dados mais rapidamente. O processador to mais rpido que a memria RAM, que depois de esperar vrios ciclos para poder acess-la, o melhor a fazer pegar a maior quantidade de dados possvel e guardar tudo no cache. Naturalmente os dados sero processados em blocos de 32 bits, mas a economia ajuda bastante. Dentro de um banco, todos os mdulos so acessados ao mesmo tempo, como se fossem um s, por isso era sempre recomendvel usar dois mdulos iguais. Ao usar quatro mdulos, o importante era que cada par fosse composto por dois mdulos iguais. No existia problema em usar dois pares de mdulos diferentes, como ao usar dois de 16 MB e mais dois de 8 MB para totalizar 48 MB, por exemplo.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 62 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

5.9.3

- Mdulo DIMM

Ao contrrio dos mdulos SIMM de 30 e 72 vias, os mdulos DIMM possuem contatos em ambos os lados do pente, o que justifica seu nome, Double In Line Memory Module ou mdulo de memria com duas linhas de contato. Como os mdulos DIMM trabalham com palavras binrias de 64 bits, um nico mdulo suficiente para preencher um banco de memria. Existem memrias DIMM de 168, 184 e de 240 vias. Sua utilizao depende do padro adotado pela placa me.

Apesar do nmero diferente de contatos (ou vias), os mdulos de memria so todos no mesmo tamanho. Desta maneira, existem diferenas entre as arquiteturas no que diz respeito posio do encaixe, evitando assim que mdulos diferentes possam ser encaixados na placa me. Isto se faz necessrio devido a vrios motivos, entre eles as diferenas de tenso. Enquanto os mdulos de 240 vias usam tenso de 1.8 v, os mdulos de 184 vias trabalham com tenses em torno de 2.5 v. Com certeza, a instalao de um mdulo de 240 vias, se assim fosse possvel, em uma placa me que trabalha com mdulos de 184 vias acabaria por queimar o mdulo rapidamente.

5.9.4

- Mdulo RIMM

Padronizado pela empresa Rambus, este mdulo de memria (Rambus In Line Memory Module) foi desenvolvido para a utilizao de memrias RDRAM (veremos os diferentes chips de memria mais adiante neste captulo). O mdulo RIMM fisicamente muito parecido com o DIMM, mas os tipos de encaixes (soquetes) para memria so diferentes.

Os mdulos de memria RIMM em geral vm com uma proteo de metal, que objetiva facilitar a dissipao de calor, uma vez que os mesmos aquecem bastante devido alta freqncia de operao. Cada mdulo s capaz de transferir 16 bits de cada vez, mas o controlador de memria agrupa 4 acessos memria antes de entregar os dados para a CPU, formando assim os 64 bits necessrios. Desta forma os bancos de memria podem ser compostos de apenas 1 mdulo. Curiosamente, as memrias Rambus trabalham em pares com "mdulos vazios" ou "pentes cegos". Isso significa que, para cada mdulo Rambus instalado, um "mdulo vazio" tem que ser instalado em outro slot.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 63 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

5.10 - Memrias RAM


Os mdulos de memria que acabamos de ver nada mais so do que pequenas placas de circuito impresso com chips de memria RAM (Random Access Memory) soldados nos respectivos pentes. As memrias RAM sempre foram um componente muito importante na computao. O chip de memria armazena temporariamente a informao, perdendo todo o seu contedo quando o computador desligado, porm enquanto o computador estiver ligado, a informao poder ser escrita e lida novamente neste chip. Este tipo de memria utilizado em computadores para armazenamento temporrio de programas em execuo e dados. Algumas delas podem ser alimentadas por baterias a maioria consome pouca energia operando em standby. Um exemplo a pequena RAM que guarda as informaes e ajustes do computador (Bios Setup). O sistema operacional, os programas em execuo e os documentos abertos ficam armazenados na memria RAM enquanto o computador est ligado, fazendo com que ela seja acessada pelo processador constantemente. Quando a memria RAM se esgota, o processador transfere o seu contedo para uma memria virtual na verdade, um arquivo no disco rgido liberando espao na memria RAM real. H dois tipos principais de memria RAM: estticos e dinmicos. Cada um deles se comporta de maneira diferente e presta-se a aplicaes diferentes. As memrias dinmicas (DRAM) so extremamente baratas e fisicamente pequenas, viabilizando a construo de chips com grande capacidade de memria. Seu consumo de energia tambm extremamente baixo, a ponto de ser alimentada por uma bateria durante anos. Entretanto, as memrias dinmicas precisam constantemente de um sinal, chamado refresh, para manter o contedo em todas as clulas da seu nome dinmico. Sem o refresh, a memria perde seu contedo em alguns milissegundos. necessrio usar, portanto um controlador de memria especial que providencie esse sinal de refresh. Devido a isto, as memrias dinmicas so muito mais lentas do que as estticas. As memrias estticas (Static RAM ou SRAM), por outro lado tem um tempo de acesso muito pequeno, sendo mais rpidas. So empregadas em situaes em que no pode haver atrasos no processamento. Elas tm ainda a vantagem de no precisarem do pulso de refresh, por isso mesmo so chamadas de estticas. A seguir apresentamos algumas tecnologias de memrias RAM.

5.10.1 Fast Page Mode (FPM)


A primeira melhora significativa na arquitetura das memrias veio com o FPM, ou modo de acesso rpido. A idia que, ao ler um arquivo qualquer gravado na memria, os dados esto na maioria das vezes gravados seqencialmente. Desta forma, a memria FPM retm o valor da ltima linha acessada. Assim, nas prximas vezes em que essa linha for acessada, seu valor no precisar mais ser enviado para a memria pelo controlador de memria. O resultado disso que o acesso fica mais rpido. As memrias FPM so de tecnologia mais antiga, apesar de serem encontradas nos 486 e nos primeiros Pentium. Possuem tempo de acesso de 80, 70 e 60 ns e suportam velocidades de barramento de at 66 MHz. possvel encontr-las em forma de mdulos SIMM de 30 ou 72 vias.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 64 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

5.10.2 - Extended Data Out (EDO)


A memria EDO surgiu em meados de 1994 (poca do Pentium), como resultado de uma pequena modificao na estrutura da memria FPM. Um acesso a dados pode ser iniciado antes que o anterior termine. Assim, o prximo endereo pode comear a ser enviado memria enquanto os dados ainda esto em sua sada. O resultado acaba sendo exatamente o mesmo, mas passa a ser feito de forma mais rpida. Os chips de memria EDO foram usados predominantemente na forma de mdulos de 72 vias, usados nos micros 486 e Pentium fabricados a partir do ano de 1995. Existiram ainda alguns mdulos DIMM de 168 com memria EDO. Eles foram bastante raros, pois foram logo substitudos pelos pentes de memria SDRAM (comentados no item 5.10.4). Basicamente, apenas as placas para processadores Pentium e algumas placas me para 486 aceitam trabalhar com memrias EDO. O ganho de desempenho nominal da memria EDO sobre a FPM de 20%. Na prtica, esse ganho de 8% para as operaes de leitura em memria. Sua utilizao ir depender do chipset da placame, que deve suportar a tecnologia EDO.

5.10.3 - Burst Extend Data Out (BEDO)


Este tipo de memria bastante raro. Na verdade, elas nunca foram utilizadas em larga escala. A nica diferena entre as memrias BEDO e EDO que a primeira possui controlador de endereos integrado, fazendo com que a prpria memria coloque os prximos trs dados automaticamente no barramento de dados. O desempenho para leitura de dados consecutivos aumenta drasticamente, embora, na escrita, seu desempenho seja idntico ao da memria EDO. As placas-me da Intel na poca no ofereciam suporte memria BEDO, sendo este o provvel motivo pelo qual esta tecnologia no se popularizou. Foi ofuscada pelo lanamento das memrias SDRAM, que apesar de um pouco mais caras, ofereciam uma performance levemente superior s BEDO e desfrutavam de compatibilidade com todos os chipsets modernos.

5.10.4 - Synchronous Dynamic RAM (SDRAM)


As tecnologias apresentadas at agora so chamadas assncronas, pois no dependem da freqncia de clock da mquina para trabalhar. Assim, a CPU tem de ficar esperando enquanto a memria no resolve entregar o dado solicitado. Por isso mesmo, as assncronas no permitem funcionamento acima de 66 MHz sem o uso de overclock. Ao contrrio dessas tecnologias, a memria SDRAM como o nome diz sncrona: utiliza o clock do barramento local para comandar os seus circuitos internos. Por isso, capaz de trabalhar em sincronia com a freqncia da placa me. Como a memria SDRAM comandada pelo clock do sistema, o processador pode se programar para buscar dados aps uma determinada quantidade de pulsos de seu prprio clock. A partir da memria SDRAM, tornou-se desnecessrio falar em tempos de acesso, j que a memria trabalha de forma sincronizada em relao aos ciclos da placa-me. As memrias passaram ento a ser rotuladas de acordo com a freqncia em que so capazes de operar. (PC-66, PC-100, PC-133 etc.). A velocidade do acesso memria foi aumentada conforme a evoluo dos processadores.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 65 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Outra caracterstica importante da SDRAM diz respeito ao registrador de modo e a lgica associada. O registrador de modo especifica o tamanho da seqncia de dados, ou seja, o nmero de unidades de dados a serem transferidas sincronamente por meio do barramento. Esse registrador tambm permite ao programador ajustar o tempo de latncia entre o recebimento de um requisito de leitura e o incio da transferncia de dados.

5.10.5 - Double Data Rate SDRAM (DDR-SDRAM)


As memrias DDR-SDRAM conseguem obter o dobro do desempenho das memrias SDRAM tradicionais, operando com o mesmo clock. Em vez de transferirem um dado por pulso de clock, como usual, elas transferem dois dados por pulso de clock. Note que o fato da memria DDR-SDRAM possuir o dobro do desempenho da memria SDRAM no significa que um micro equipado com memria DDR-SDRAM ter o dobro do desempenho de um micro com mesma configurao usando memrias SDRAM tradicionais. Afinal, a tecnologia de memria RAM utilizada somente um dos fatores que influenciam no desempenho geral da mquina. As memrias DDR so vendidas em mdulos DDR-DIMM, oficialmente conhecidos como DIMM/184. Esses mdulos possuem um desenho diferenciado, justamente para impedir que os mdulos DDR sejam encaixados em bancos SDRAM. Note que o mdulo SDRAM possui dois encaixes horizontais, ao contrrio do DDR, que possui apenas um. Embora muito parecidas com as memrias SDR SDRAM, as memrias DDR possuem um diferencial considervel: trabalham com 2,5 V, contra 3,3 V da primeira. Assim sendo, reduzem o consumo de energia, aspecto especialmente importante em dispositivos portteis, como notebooks.

5.10.6 - Memria Rambus


Os mdulos de memrias Rambus so chamados de "Rambus Inline Memory Modules" ou RIMMs. Os mdulos RIMM so bem semelhantes aos mdulos DIMM, mas em geral eles vm com uma proteo de metal sobre os chips de memria, que tambm serve para facilitar a dissipao de calor, j que os mdulos RIMM aquecem bastante devido alta freqncia de operao. Esta memria usa um barramento prprio, desenvolvido pela empresa, que lhe permite altssimas velocidades de transferncia de dados. Entretanto, ele transfere 16 bits de cada vez, o que no chega a ser um problema em razo das elevadas taxas de transferncia, que suprem a diferena de largura de bits do barramento. Por possuir uma tecnologia proprietria da empresa Rambus, fabricantes de memrias e chips que queiram utilizar a memria Rambus so obrigados a pagar direitos autorais empresa. As placasme que aceitam este tipo de memria so mais caras; em compensao, essas memrias conseguem conversar na mesma velocidade externa do processador com um desempenho superior ao das DDR. Diferentemente das memrias DDR SDRAM, que so apenas evolues das memrias SDR SDRAM, as memrias Rambus trazem uma arquitetura completamente nova, que exige modificaes muito maiores nos chipsets destinados a suport-la, significando maiores custos de desenvolvimento e produo. Por este motivo que o padro DDR SDRAM "venceu" a batalha e tornou-se padro desde o ano 2000.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 66 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

5.11 - Memrias ROM


A ROM (Read Only Memory ou memria somente de leitura) armazena permanentemente as informaes gravadas, mesmo que o computador seja desligado. Mesmo memrias que foram retiradas de seus equipamentos ainda mantm os dados armazenados. Por outro lado, esse tipo de memria apenas de leitura, no permitindo que os dados sejam alterados ou sobrescritos. As memrias ROM recebem esse nome porque os dados so gravados nelas apenas uma vez. Depois disso, essas informaes no podem ser apagadas ou alteradas, apenas lidas pelo computador exceto por meio de procedimentos especiais. Outra caracterstica das memrias ROM que elas so do tipo no voltil, isto , os dados gravados no so perdidos na ausncia de energia eltrica ao dispositivo. Em computadores, as ROMs so usadas para armazenar programas que devem ser lidos no momento em que a mquina for ligada. No caso do PC, o programa de que a CPU precisa para funcionar e algumas rotinas de sistema freqentemente usadas so gravadas em uma ROM. O nome desse programa BIOS Basic Input/Output System. Os circuitos de memria ROM podem ser construdos utilizando-se uma das seguintes tecnologias bsicas: Mask-ROM: uma ROM cujos programas ou dados j vm gravados de fbrica. No h a possibilidade de apagar ou regravar o seu contedo. PROM (Programmable ROM): vendida limpa; o usurio se encarrega de fazer a gravao do seu contedo. Uma vez gravada, no h como apagar ou alterar seu contedo. Enquanto a ROM gravada durante a fabricao, a PROM gravada pelo fabricante do equipamento que a utilizar. EPROM (Erasable Programable ROM): da mesma forma que a PROM, a EPROM tambm vendida virgem, devendo ser gravada pelo comprador. Esta memria possui uma janela transparente que apaga o que est gravado mediante exposio a raios ultravioleta. A programao pode ser feita com o auxlio de um equipamento especial, o programador de EPROM. Apesar de, em uso normal, o dispositivo ser apenas de leitura, a EPROM pode ser regravada inmeras vezes. EEPROM (Electronic Erasable Programable ROM): a EEPROM uma EPROM sem a janela transparente. O apagamento feito por impulsos eltricos. A vantagem a de permitir a reprogramao de circuitos sem a necessidade de remov-los FlashROM: a memria Flash o resultado da evoluo das memrias EEPROM. Este tipo de memria utiliza baixas tenses de apagamento e apresenta um tempo de reprogramao bem mais curto. usada com sucesso em substituio a discos rgidos em sistemas embarcados.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 67 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Exerccios
01 Considere as afirmativas a seguir: I. A memria o componente de um sistema de computao cuja funo armazenar informaes. II. Um sistema de computao normalmente possui apenas um tipo de memria. III. O aumento da velocidade das CPUs tem sido bem maior que o aumento da velocidade de acesso das memrias Esto corretas as afirmativas: a) b) c) d) e) Todas as alternativas esto erradas. I e II I e III II e III Todas as alternativas esto corretas

02 - A necessidade da existncia de vrios tipos de memria ocorre em virtude de vrios fatores concorrentes. Explique um destes fatores. 03 Um dos parmetros utilizados para analisar as caractersticas de um tipo de memria sua volatilidade. Em que consiste este parmetro? 04 Qual a funo da memria cache? A mesma pode ser classificada como L1 e L2. Explique essa classificao. 05 Por que se indica a utilizao de mdulos idnticos na composio de um banco de memrias? 06 Em qu os mdulos de memria DIMM diferem dos mdulos de memria SIMM? 07 - Os programas em execuo ficam armazenados na memria principal. Quando ela se esgota, o processador transfere o seu contedo para a memria virtual. Em que consiste o conceito de memria virtual? 08 Existem dois tipos principais de memria RAM: estticos e dinmicos. Cada um deles se comporta de maneira diferente e presta-se a aplicaes distintas. Explique o funcionamento destes dois tipos. 09 A memria Flash substitui com sucesso discos rgidos em sistemas embarcados. O que um sistema embarcado? Exemplifique.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 68 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

6- Memria Externa
6.1 - Introduo
Este captulo aborda uma variedade de dispositivos e sistemas de memria externa. Comeamos pelo dispositivo mais importante, o disco magntico. Os discos magnticos constituem a base da memria externa de quase todos os sistemas de computao. Em seguida, discutimos o uso de vrios discos para obteno de maior desempenho, tratando especificamente da famlia conhecida como RAID (redundant array of independent disks). Um componente de importncia crescente em muitos sistemas de computao a memria externa ptica, que abordada na terceira seo. A seo final trata das fitas magnticas.

6.2 - Discos Magnticos


Somos uma sociedade dependente da informao. Consumimos cada vez mais espao para armazenar nossos dados. A demanda por capacidade de armazenamento vem crescendo exponencialmente, dando origem a muitas novas tecnologias e dispositivos. E, sem dvida alguma, o dispositivo mais usado atualmente para armazenamento de informaes o disco rgido, que possui inmeros apelidos, como winchester, hard disk ou simplesmente HD. O termo winchester foi originalmente usado pela IBM como um codinome para o modelo de disco 3340, antes do seu lanamento no mercado. O 3340 era composto de um pacote de discos removveis, com cabeotes lacrados dentro da cpsula. O termo empregado atualmente para qualquer unidade de discos lacrada, que utiliza cabeote aerodinmico. O disco magntico constitudo de um prato circular de metal ou de plstico, coberto com um material que pode ser magnetizado. Os dados so gravados e posteriormente lidos do disco por meio de uma bobina condutora denominada cabeote, conhecida tambm como cabea de leitura/gravao. Durante uma operao de escrita ou de leitura, o cabeote permanece esttico, enquanto o prato gira embaixo dele. O mecanismo de escrita baseado no fato de que o fluxo de corrente eltrica por meio de uma bobina produz um campo magntico. So enviados pulsos de corrente para o cabeote, que resultam na gravao de padres magnticos na superfcie abaixo dele; correntes positivas e negativas geram padres magnticos distintos. O mecanismo de leitura baseado no fato de que um campo magntico que se move em relao a uma bobina produz uma corrente eltrica nessa bobina. Quando a superfcie do disco passa sob o cabeote, ela gera uma corrente de polaridade igual da corrente utilizada na gravao.

6.2.1

- Organizao e Formatao de Dados

O cabeote um dispositivo relativamente pequeno, capaz de ler ou escrever sobre uma regio do prato que gira embaixo dele. Isso resulta em uma organizao dos dados no prato em forma de anis concntricos, denominados trilhas. Cada trilha tem a mesma largura do cabeote. Existem tipicamente, 500 a 2000 trilhas por superfcie. Trilhas adjacentes so separadas por espaos (gaps). Isso evita, ou pelo menos diminui, a ocorrncia de erros devido falta de alinhamento do cabeote ou interferncia de campos magnticos.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 69 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Para simplificar o circuito eletrnico envolvido, um mesmo nmero de bits armazenado em cada trilha. Desta maneira, a densidade, em nmero de bits por centmetro linear, aumenta a partir da trilha mais externa para a mais interna. Os dados so transferidos em blocos. Normalmente um bloco tem tamanho menor do que a capacidade de uma trilha. Os dados so armazenados em regies do mesmo tamanho de um bloco, denominadas setores. Existem tipicamente, entre 10 e 100 setores por trilha, que podem ser de tamanho fixo ou varivel. Para evitar impor requisitos de preciso exagerados ao sistema, setores adjacentes so separados por espaos internos trilha (ou espao entre setores). O sistema requer a existncia de algum mecanismo para localizar um setor dentro de uma trilha. Naturalmente, devem existir um ponto de incio da trilha e uma maneira de identificar o incio e o fim de cada setor. Essas informaes so fornecidas por dados de controle gravados no disco. Desse modo, um disco formatado com alguns dados extras, usados apenas pela unidade de disco e so invisveis para o usurio. A geometria de um disco significa a forma como ele est dividido (em trilhas, setores etc) e somente pode ser definida durante a formatao fsica de um disco. No que diz respeito sua formatao lgica, esta somente poder ser feita pelo sistema operacional, possibilitando criar um ambiente no disco, para armazenar tabelas de diretrios, arquivos etc.

6.2.2

Caractersticas Fsicas

Abaixo so listadas as caractersticas mais importantes que diferenciam os diversos tipos de discos magnticos: Movimento do Cabeote Cabeote fixo (um por trilha) Cabeote mvel (um por superfcie) Transportabilidade do disco Disco no removvel Disco removvel Lados Lado nico Duplo lado Primeiramente, o cabeote pode ser fixo ou mvel em relao radial do prato. Em um disco de cabeote fixo existe um cabeote de leitura e escrita para cada trilha. Os cabeotes so montados em um brao rgido que se estende por todas as trilhas. Em um disco de cabeote mvel existe apenas um cabeote de leitura e escrita. Esse cabeote tambm montado em um brao. Como o cabeote deve poder ser posicionado sobre qualquer trilha, o brao pode ser estendido ou retrado. Pratos Prato nico Mltiplos pratos Mecanismo do cabeote Contato Espao fixo Espao aerodinmico

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 70 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

O disco propriamente dito montado em uma unidade de disco, que consiste em um brao, um eixo para girar o disco e circuitos eletrnicos para a entrada e sada de dados binrios. Um disco no removvel montado permanentemente na unidade de disco. Um disco removvel pode ser removido e substitudo por outro disco. A vantagem dos discos removveis possibilitar o armazenamento de uma quantidade ilimitada de dados usando um nmero limitado de unidades de disco e um nmero ilimitado de discos. Alm disso, esse disco pode ser transportado de um computador para outro. Na maioria dos discos, a cobertura magnetizvel aplicada nos dois lados do prato, sendo assim denominado de duplo lado. Alguns sistemas de disco mais baratos usam discos de um nico lado. Algumas unidades de disco acomodam mltiplos pratos, empilhados verticalmente e separados por cerca de 2,5 cm. So usados braos mltiplos. Os pratos so agrupados em unidades denominadas pacotes de disco. Os discos so classificados em trs tipos de acordo com o mecanismo de cabeote utilizado. Tradicionalmente, o cabeote de leitura e escrita posicionado a uma distncia fixa acima do prato, existindo uma fina camada de ar entre o cabeote e o prato. Outro mecanismo utiliza cabeotes que de fato tocam o prato durante uma operao de leitura ou escrita. Esse tipo de mecanismo utilizado no disquete. Para entender o terceiro tipo de disco, necessrio conhecer a relao entre a densidade dos dados e a altura da camada de ar entre o cabeote e o prato. Para ler ou escrever um dado, o cabeote tem de gerar ou sentir um campo eletromagntico de magnitude suficiente. Quanto mais estreito o cabeote, mais prximo ele deve estar da superfcie do prato para funcionar corretamente. Um cabeote mais estreito possibilita trilhas mais estreitas e, portanto, maior densidade de dados, o que desejvel. Entretanto, quanto mais prximo o cabeote estiver do disco, maior ser o risco de ocorrncia de erros devido a impurezas ou imperfeies. Um avano na tecnologia de discos foi obtido com o desenvolvimento dos discos Winchester. Os cabeotes do winchester so montados em unidades de disco lacradas, quase livres de contaminaes. So projetados para operar mais perto da superfcie do disco do que os cabeotes dos discos rgidos convencionais, possibilitando assim maior densidade de dados. So, de fato, uma lmina aerodinmica que descansa levemente sobre a superfcie do prato quando o disco est imvel. A presso do ar gerada pelo disco ao girar suficiente para fazer a lmina erguer-se acima da superfcie. O sistema sem contato resultante pode ser projetado para usar cabeotes mais estreitos, que podem operar mis prximos da superfcie do prato do que os cabeotes dos discos rgidos convencionais.

6.2.3

Parmetros de desempenho de discos

Os detalhes de uma operao de E/S em um disco dependem do sistema de computao, do sistema operacional e do hardware usado no canal de E/S e no controlador de disco. Quando uma unidade de disco est em operao, o disco gira a uma velocidade constante.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 71 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Para ler ou escrever um valor, o cabeote deve ser posicionado sobre a trilha desejada e no incio do setor desejado da trilha. A seleo da trilha requer a movimentao do cabeote, em um sistema de cabeote mvel, ou a seleo eletrnica de um dos cabeotes, em um sistema de cabeote fixo. Em um sistema de cabeote mvel, o tempo para posicionar o cabeote na trilha denominado tempo de busca (seek time). Em ambos os sistemas, uma vez selecionada a trilha, o controlador de disco espera que o disco gire at que o setor desejado esteja alinhado com o cabeote. O tempo decorrido at que o incio do setor esteja sob o cabeote denominado atraso rotacional ou latncia rotacional. A soma do tempo de busca se houver, com o atraso rotacional denominada tempo de acesso, isto , o tempo requerido para atingir a posio em que deve ser feita a leitura ou a escrita. Uma vez que o cabeote esteja na posio correta, a operao de leitura ou escrita feita medida que o setor se move sob o cabeote; essa parte da operao corresponde transferncia de dados. Alm do tempo de acesso e do tempo de transferncia, existem normalmente vrios atrasos associados a uma operao de E/S em um disco. Quando um processo faz uma requisio de E/S, ela deve primeiro esperar em uma fila at que o dispositivo esteja disponvel. O dispositivo ento alocado para o processo. Se o dispositivo compartilha um canal de E/S ou um conjunto de canais de E/S com outras unidades de disco, pode haver uma espera adicional para que o canal fique disponvel. Quando isso ocorre, a operao de busca da trilha pode ser iniciada. Em alguns sistemas de grande porte, usada uma tcnica conhecida como deteco de posio de rotao (rotational positional sensing RPS). Quando uma operao de busca no disco iniciada, o canal liberado para atender a outras operaes de E/S. Ao finalizar a busca, o dispositivo determina quando os dados estaro posicionados sob o cabeote. Assim que o setor requerido se aproxima do cabeote, o dispositivo tenta restabelecer a comunicao com o sistema. Se a unidade de controle ou o canal estiverem ocupados com outra operao de E/S, a tentativa de conexo falhar e o dispositivo ter de girar um ciclo inteiro antes de tentar uma nova conexo.

6.3 - RAID
Como foi discutido anteriormente, a melhoria no desempenho de memrias secundrias tem sido consideravelmente menor do que a de processadores e da memria principal. Essa diferena fez dos sistemas de armazenamento em discos o principal foco de preocupao para melhoria do desempenho global de sistemas de computao. Assim, como em outras reas, os projetistas de armazenamento de disco sabem que, se um dispositivo pode ser melhorado apenas at certo ponto, ganhos adicionais de desempenho podem ser obtidos utilizando vrios componentes em paralelo. No caso de armazenamento de disco, essa idia levou ao desenvolvimento de um agrupamento de discos que operam independentemente e em paralelo, desde que os dados requeridos residam em discos separados. Mais do que isso, uma nica requisio de E/S poder tambm ser executada em paralelo, se o bloco de dados a ser acessado for distribudo em vrios discos. Com o uso de mltiplos discos, os dados podem ser organizados de diversas maneiras, podendo ser empregada alguma redundncia para melhorar a confiabilidade. A possibilidade de organizar os dados de vrios modos poderia tornar difcil o desenvolvimento de bancos de dados compatveis com diferentes plataformas e sistemas operacionais. Felizmente, a indstria decidiu adotar um padro para o projeto de banco de dados de vrios discos conhecido como RAID (agrupamento redundante de discos independentes).

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 72 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

O esquema RAID consiste em sete nveis (nveis adicionais de RAID foram definidos por alguns pesquisadores e algumas companhias, mas os sete nveis descritos nesta seo so os nicos aceitos universalmente), de zero a seis. Esses nveis no implicam em uma relao hierrquica, mas designam diferentes arquiteturas de projeto que compartilham trs caractersticas comuns: 1. O RAID consiste em um agrupamento de unidades de discos fsicos, visto pelo sistema operacional como uma nica unidade de disco lgico. 2. Os dados so distribudos pelas unidades de discos fsicos do agrupamento. 3. A capacidade de armazenamento redundante utilizada para armazenar informao de paridade, garantindo a recuperao dos dados em casa de falha de algum disco. Os detalhes da segunda e da terceira caractersticas diferem para os diferentes nveis de RAID. O RAID 0 no oferece a terceira caracterstica. O termo RAID foi originalmente empregado em um artigo de um grupo de pesquisadores da Universidade da Califrnia, em Berkeley. Esse artigo esboava vrias configuraes e aplicaes de RAID e introduzia as definies dos nveis de RAID usados at hoje. A estratgia RAID substitui as unidades de disco de grande capacidade por vrias unidades de capacidade menor, distribuindo os dados para possibilitar acessos simultneos nas vrias unidades e, desse modo, melhorar o desempenho de E/S e facilitar o aumento significativo de capacidade da memria secundria. Uma caracterstica nica da tecnologia RAID se refere ao uso eficaz de redundncia de dados. Embora o uso simultneo de vrios cabeotes e discos possibilitem obter taxas de transferncia de E/S mais altas, isso aumenta tambm a probabilidade de falhas. Para compensar essa diminuio de confiabilidade, o RAID usa a informao de paridade armazenada que possibilita a recuperao dos dados perdidos devido a uma falha de disco.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 73 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

6.3.1

- RAID de Nvel 0

O RAID de nvel 0 no constitui de fato um membro da famlia RAID, uma vez que no inclui redundncia para a melhoria do desempenho. Contudo, ele utilizado em poucas aplicaes, como em supercomputadores, nos quais o desempenho e a capacidade constituem requisitos primordiais e o baixo custo mais importante do que maior confiabilidade. No RAID 0, os dados de usurio e de sistema so distribudos em todos os discos do agrupamento. Essa distribuio dos dados tem enorme vantagem em relao ao uso de um nico disco grande:se existirem duas requisies de E/S pendentes para dois blocos de dados distintos, haver grande probabilidade de que esses blocos estejam em discos diferentes. Portanto, as duas requisies podem ser atendidas em paralelo, reduzindo o tempo de espera na fila de E/S. Assim como os demais nveis de RAID, o RAID 0 no se limita a distribuir os dados pelo agrupamento de discos. Os dados so intercalados em tiras (strips) por meio dos discos disponveis. Em qualquer dos nveis RAID, o desempenho depende fundamentalmente do padro das requisies de E/S e da organizao dos dados. Essas questes so tratadas mais facilmente no RAID 0, onde a anlise no sofre interferncia da redundncia dos dados.

6.3.2

- RAID de Nvel 1

O RAID 1 difere dos RAIDs de nvel 2 a 6 pela maneira como a redundncia obtida. Nesses outros nveis, utilizado algum tipo de clculo de paridade para introduzir redundncia. No RAID 1, a redundncia obtida pela simples duplicao dos dados. Os dados so intercalados em tiras, como no RAID 0, entretanto, nesse caso, cada tira lgica mapeada em dois discos fsicos separados, de modo que cada disco do agrupamento tenha como espelho um outro disco que contm os mesmos dados. A organizao RAID 1 tem diversos aspectos positivos: 1. Uma requisio de leitura pode ser servida por qualquer dos dois discos que contenha os dados requeridos, preferencialmente por aquele no qual o tempo de busca somado latncia rotacional seja menor. 2. Uma requisio de escrita requer a atualizao das duas tiras correspondentes, mas isso pode ser feito em paralelo. Dessa maneira, o desempenho da requisio de escrita determinado pela operao de escrita mais lenta. 3. A recuperao de uma falha simples. Quando ocorre uma falha em uma unidade de disco, os dados ainda podem ser obtidos a partir da segunda unidade.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 74 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

A principal desvantagem do RAID 1 o custo; ele requer uma espao de disco fsico igual a duas vezes o do disco rgido. Por isso, uma configurao RAID 1 geralmente utilizada apenas em unidades de disco que armazenem software e dados do sistema e outros arquivos altamente crticos. Nesses casos, o RAID 1 oferece uma cpia de segurana de todos os dados em tempo real, de modo que, mesmo ocorrendo uma falha em um disco, todos os dados crticos permaneam disponveis.

6.3.3

- RAID de Nvel 2

Os RAIDs de nvel 2 e 3 usam a tcnica de acesso paralelo. Em um agrupamento com acesso paralelo, todos os discos participam da execuo de qualquer requisio de E/S. Tipicamente os eixos das unidades de disco so sincronizados, de modo que, em qualquer instante, os cabeotes de todos os discos estejam na mesma posio.

Assim como nos demais esquemas RAID, usada intercalao de dados em tiras. Nos RAIDs de nveis 2 e 3, as tiras so muito pequenas, freqentemente do tamanho de um byte ou uma palavra. No RAID 2, um cdigo de correo de erros calculado para os bits correspondentes de cada disco de dados e os bits do cdigo so armazenados em posies de bit correspondentes nos vrios discos de paridade. Embora o RAID 2 exija um nmero de discos menor que o RAID 1, ele ainda muito caro. O nmero de discos redundantes necessrios proporcional ao logaritmo do nmero de discos de dados. Em uma requisio de leitura ou escrita , todos os discos so acessados simultaneamente. Ele constitui uma boa escolha apenas em ambientes nos quais podem ocorrer muitos erros de disco. Dada a alta confiabilidade de discos individuais e de controladores de disco, o esquema RAID 2 excessivo e por isso no implementado.

6.3.4

- RAID de Nvel 3

O RAID 3 organizado de maneira similar ao RAID 2. A diferena que o RAID 3 requer apenas um disco redundante, independentemente do tamanho do agrupamento de discos. O RAID 3 emprega acesso paralelo, com os dados distribudos em pequenas tiras. Em vez de um cdigo de correo de erros, apenas um bit de paridade simples utilizado para cada conjunto de bits localizados na mesma posio em todos os discos de dados.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 75 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

No caso de falha de uma unidade de disco, o disco de paridade acesso e os dados so reconstrudos a partir dos dados dos dispositivos restantes. Quando a unidade defeituosa for substituda, os dados que faltam podem ser restaurados no disco e a nova unidade pode entrar em operao. Como os dados so distribudos em tiras bem pequenas, o RAID 3 pode alcanar taxas de transferncia de dados bastante altas. Qualquer requisio de E/S envolve a transferncia paralela de dados de todos os discos de dados. A melhora de desempenho pode ser especialmente notada no caso de grandes transferncias de dados. Por outro lado, apenas uma requisio pode ser executada a cada vez. Dessa maneira, em um ambiente orientado para transaes, o desempenho relativamente baixo.

6.3.5

- RAID de Nveis 4, 5 e 6

Os RAIDs de nvel 4 a 6 usam a tcnica de acesso independente. Em um agrupamento com acesso independente, cada disco opera independentemente, permitindo que requisies de E/S distintas possam ser satisfeitas em paralelo. Por isso, agrupamentos com acesso independente so mais adequados para aplicaes que requerem altas taxas de requisies de E/S, no sendo apropriados para aplicaes que necessitam de altas taxas de transferncia de dados. Como nos demais esquemas RAID, usada a intercalao de dados em tiras. Nos RAIDs de nvel 4 a 6, as tiras so relativamente grandes. No RAID 4, uma tira de paridade calculada bit a bit sobre as tiras correspondentes em cada disco de dados e os bits de paridade so armazenados na tira correspondente do disco de paridade. No RAID 4, a escrita de pequenas quantidades de dados envolve certa penalidade. Para cada escrita, o software de gerenciamento do agrupamento tem de atualizar no apenas os dados de usurio, mas tambm os bits de paridade correspondentes.

O RAID 5 organizado de modo semelhante ao RAID 4. A diferena que o RAID 5 distribui as tiras de paridade por todos os discos. Uma alocao tpica consiste em um esquema circular. Para um agrupamento de n discos, a tira de paridade das n primeiras tiras de dados armazenada em um disco diferente e esse padro ento se repete. A distribuio das tiras de paridade em todos os discos evita a possibilidade de formao de gargalos no desempenho do sistema existentes no RAID 4. No RAID 6, so usados dois clculos de paridade diferentes e os resultados so armazenados em blocos separados em discos distintos. Dessa maneira, um agrupamento de RAID 6 no qual os dados de usurio requerem N discos constitudo de N + 2 discos. A vantagem do RAID 6 que apresenta uma disponibilidade de dados extremamente alta, reduzindo-se assim a possibilidade de os dados armazenados serem perdidos. No entanto, o RAID 6 envolve uma penalidade substancial em operaes de escrita, pois cada rea escrita afeta dois blocos de paridade.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 76 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

6.4 - Interfaces
Um disco magntico um dispositivo para armazenar informao que possui uma grande densidade e um tempo de acesso relativamente rpido. De nada adianta um disco rgido muito rpido, se a interface no permite que ele se comunique com o restante do sistema usando toda a sua velocidade. Entende-se por interface a conexo fsica e funcional entre dois aparelhos ou sistemas independentes. No nosso caso os discos interagem com o equipamento ao qual esto conectados por diferentes sistemas. Utilizar um ou outro depender da aplicao para a qual est destinado tal disco. H dois grandes padres que normalizam as interfaces dos discos; o padro IDE/ATA e o Standard SCSI. Vamos falar um pouco sobre estas tecnologias.

6.4.1

- IDE

A tecnologia IDE surgiu quando a Compaq, projetando o seu Compaq/385, decidiu criar um tipo de disco rgido que, alm de ser mais barato que o padro SCSI, tambm tivesse uma capacidade de armazenamento superior dos padres dos discos rgidos existentes na poca. Mas o aumento da capacidade acarretava problemas de rudo entre o disco rgido e a interface controladora, o que impedia algumas transmisses por causa da divergncia do sinal, e fazia com que o disco rgido solicitasse novamente a retransmisso dos dados controladora. No ano de 1986, a empresa Westem Digital e a Compaq apresentaram uma soluo para eliminar os problemas ocasionados pelos rudos. Foi criado um disco rgido que possua uma interface controladora integrada na placa de circuitos de controle do prprio disco, eliminando o cabo de comunicao entre o disco e a interface. Dessa forma, os rudos foram eliminados, e esse tipo de tecnologia passou a ser chamado de IDE (Integrated Drive Electronics), j que a interface controladora estava integrada no prprio disco rgido. Tambm chamada de ATA (Advanced Technology Attachment). Embora a tecnologia IDE demonstrasse melhorias, a tecnologia do motor de passo responsvel pela movimentao das cabeas de leitura continuava imprecisa e lenta. Seria necessrio um motor inteligente o suficiente para auxiliar no sistema de localizao de dados no disco.Com o surgimento dos discos rgidos IDE, passou a ser utilizado um tipo de motor para as cabeas de leitura denominado voice coil. O desenvolvimento do atuador voice coil foi muito importante para o desenvolvimento de discos rgidos cada vez mais rpidos. Com o uso desse tipo de atuador, houve um grande ganho de desempenho, pois ele demora entre 10 e 40 ms entre uma trilha e outra, enquanto que em motores antigos, este tempo variava entre 65 e 100 ms. Outra novidade foi que, para agilizar o processo de movimentao das cabeas de leitura, acrescentou-se, entre um cilindro e outro do disco, um sinal analgico denominado servo, que orientava as cabeas de leitura a localizar um determinado cilindro no IDE. Nos discos antigos, quando uma cabea de leitura estava no cilindro 0 e precisava movimentar-se at o cilindro 3, eram necessrios 3 comandos, pois a cabea de leitura pulava de cilindro em cilindro a cada comando, um passo por vez.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 77 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

J nos discos IDE, quando um cabea de leitura est no cilindro 0 e precisa acessar um dado que est no cilindro 3, necessria apenas uma instruo inteligente do tipo acesse o cilindro 3. Isso acontece porque o sinal de servo, que est localizado na face do disco, responsvel por localizar um dado e mandar o sinal para que o atuador acesse imediatamente o cilindro com o dado desejado.

6.4.2

- SCSI

O padro SCSI foi criado nos anos 80 pela Apple Computer, para uso nos Macintosh. O nome SCSI significa Small Computer System Interface, sendo uma interface controladora de alta tecnologia, usada para conectar dispositivos como discos rgidos, scanners, unidade de CD/RW, unidades de fitas magnticas e outros dispositivos sem a utilizao de portas especiais. Esse padro define as caractersticas fsicas e eltricas de uma interface de entrada e sada projetada para se conectar e se comunicar com dispositivos perifricos. Ele foi pensado originalmente como uma porta de comunicao universal possvel, em um conector SCSI, conectar indistintamente um disco rgido ou um scanner. A grande vantagem do SCSI a sua velocidade de transferncia de dados, superior dos outros mtodos de conexo de perifricos. O SCSI possui diversas vantagens sobre o IDE: Os discos rgidos SCSI so mais velozes e oferecem maior capacidade de armazenamento. Possui capacidade de controlar 7,15 ou 30 dispositivos usando uma IRQ. (interrupo) Os dispositivos SCSI externos possuem sua prpria fonte de alimentao. Os dispositivos SCSI permitem acessos simultneos

Outro fato interessante que cada um dos dispositivos SCSI interligados necessita de um nmero de unidade lgica, um identificador para distinguir os dispositivos. Para que estes dispositivos sejam conectados em conjunto em uma nica porta SCSI, necessrio definir nmeros entre 0 e 7, 15 ou 30, que devem ser configurados com um valor diferente para cada dispositivos do barramento. Entre os padres mais conhecidos esto:

6.4.2.1 - SCSI 1
Esse foi o primeiro padro SCSI, aprovado em 1986. Suporta taxas de transferncia de baixo desempenho (5Mbit/s) e tem capacidade de conectar at 7 dispositivos SCSI em um barramento de 8 bits. Essa interface nada mais do que uma interface ISA de 8 bits, com uma taxa de transferncia de 5 Mbit/s. A comunicao SCSI com outros dispositivos feita a 8 bits por um conector de 50 pinos. Em sua primeira verso, havia problemas quanto comunicao entre perifricos SCSI, por causa da falta de padronizao, ou seja, a incompatibilidade entre perifricos de fabricantes diferentes.

6.4.2.2 - SCSI 2
Quando foi aprovado, esse padro trouxe novas taxas de transferncia, consideradas opcionais. Para aumentar o desempenho, foram introduzidos dois novos padres: Fast SCSI e Wire SCSI.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 78 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Fast SCSI: permite que a taxa padro de transferncia dobre de 5 para 10 Mbits/s, usando a mesma comunicao de 8 bits e um conector SCSI padro de 50 pinos. Ele tambm pode ser facilmente combinado com o Wire SCSI de 16 bits para dobrar seu desempenho; Wire SCSI: permite a transferncia usando 16 ou 32 bits entre placas e perifricos SCSI embora a comunicao a 32 bits nunca tenha sido usada realmente. Com esse novo padro, a taxa de transferncia tambm passou de 5 para 10 Mbit/s. O Wire SCSI utiliza um conector de 68 pinos, diferentemente do conector de 50 pinos do SCSI padro

6.4.2.3 - SCSI 3
Para padronizar os conectores SCSI, foi lanado o padro SCSI 3, permitindo a comunicao de at 15 dispositivos por porta. Essa padronizao utiliza uma forma de comunicao serial e se baseia no padro IEEE 1394. Na verdade, o SCSI 3 utiliza quatro tipos diferentes de padro: SCSI Parallel Interface (SPI): padroniza as comunicaes paralelas, conhecidas como Ultra SCSI; P1394: utiliza um novo conceito de barramento, denominado FireWire, com a idia principal de futuramente substituir o padro SCSI; Serial Storage Architecture (SSA): criado pela IBM possui taxa de transferncia de 20 Mbit/s. Por utilizar quatro canais de comunicao, faz com que essa taxa chegue a 80 Mbit/s (denominado SSA 80). Fiber Channel Arbitrated Loop (FC-AL): com taxa de at 100 Mbit/s, esse padro utiliza, como meio de comunicao, um cabo de fibra ptica de at 10 km, ou um cabo coaxial de at 24 metros de comprimento.

6.4.3

- Serial ATA

O padro Serial ATA (ou simplesmente SATA) surgiu em 1997, a partir de um consrcio entre a Intel e mais de 70 empresas de computao. O nome no surgiu por acaso o padro deriva das tecnologias ATA usadas nos drives IDE, mas com comunicao serial em vez de paralela. A idia nasceu da previso de que as prximas arquiteturas de computadores por motivos ecolgicos, de desempenho e de custo no sero compatveis com os atuais padres de comunicao e consumo de energia. O Serial ATA, teoricamente, permitiria transferncia de dados de at 800 Mbit/s, muitos mais do que o necessrio para qualquer disco rgido que venha a ser lanado nos prximos anos. Alm disso, essa nova interface seria muito mais barata que as interfaces SCSI e IDE. As verdadeiras razes para o desenvolvimento do padro serial ATA podem ser resumidas em dois pontos:
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 79 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

A necessidade de criar um padro que acompanhasse a evoluo do computador, para que o disco rgido deixasse de ser um limitador, um gargalo. A produo do disco rgido Serial ATA, segundo seu fabricante, mais barata, possibilitando um maior lucro e fazendo com que no futuro, os preos desses discos rgidos possam ser menores do que os discos IDE. O Serial ATA, como o prprio nome diz, traz novamente tona a tecnologia de transferncia serial. O estranho que conexes baseadas nesta tecnologia, como as portas seriais comuns, normalmente so lentas em comparao com as interfaces paralelas. Entretanto, como a interferncia entre vias (crosstalk) aumenta medida que a velocidade sobre, a partir de certo limite as interfaces seriais so a nica alternativa. Depois do lanamento do USB (Universal Serial Bus), a nova tecnologia serial comeou a ganhar fora, mostrando que a estrutura era eficiente s no estava sendo utilizada como deveria.

6.5 - Memria ptica


O lanamento do CD (Compact Disc) causou uma revoluo na indstria do entretenimento e da computao. Finalmente seria possvel o armazenamento de uma enorme quantidade de dados e msicas em um tipo de mdia confivel e de baixo custo. Com o passar do tempo, o CD foi se tornando obsoleto por causa da necessidade crescente de espao de armazenamento. Os cerca de 74 minutos de udio, equivalentes a 650 MB de dados, que antes pareciam algo gigantesco, tornaram-se insuficientes. O DVD (Digital Versatile Disc) ficou em fase de desenvolvimento por um longo tempo. Projetado para conter udio e vdeo de alta resoluo digital, o DVD pode ser visto como um CD-ROM que armazena pelo menos 4,7 GB de informao, o que resulta em vrias horas de msica ou quase trs horas de vdeo de alta qualidade. O surgimento de gravadores, tanto para CD como para DVD, foi outra revoluo tecnolgica, permitindo ao usurio fazer sua prpria seleo de msicas, dados e programas.

6.5.1

- CD

Tudo comeou por volta de 1978, quando duas empresas, a Sony e a Philips se uniram para produzir o CD. A Sony fazia pesquisas em gravao digital havia uma dcada e aPhilips j havia desenvolvido reprodutores de discos a laser comerciais. Ambas acabaram chegando a um acordo para a formulao de uma nica tecnologia de udio. No ano de 1982, elas anunciaram o seu padro de CD, com 5 polegadas (12 centmetros) de dimetro. Esse tamanho foi escolhido por ser capaz de armazenar a Nona Sinfonia de Beethoven cerca de 70 minutos de msica. Ao longo dos anos 80, com a cooperao entre a Sony e a Philips, foram anunciadas especificaes na tecnologia dos CDs para dados computacionais. Isso levou ao surgimento dos drives de CD-ROM. Enquanto os engenheiros estavam preocupados em conseguir fazer com que o CD pudesse suportar uma maior capacidade de armazenamento, os fabricantes de software estavam abarrotando esses discos com dados e programas. At ento, era possvel armazenar apenas 1.44 MB em disquetes; de repente, o usurio passou a ter acesso a mais de 640 MB de informao. Foi uma febre, alavancando o surgimento de programas, games, msicas e vdeos.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 80 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Antigamente, quando existia apenas o CD de udio, o desempenho no era considerado to importante. Um aparelho de som costuma trabalhar a uma taxa de transferncia de 172,27 Kb/s aproximadamente. Mas para o CD-ROM, a unidade de leitura acabou mostrando-se muito lenta. O surgimento de novas aplicaes multimdia trouxe a necessidade de elevar essa taxa. Geralmente, a taxa de transferncia informada pelo fabricante, estampada na frente da unidade leitora. Os gravadores de CD foram inventados em 1984, mas s se tornaram acessveis populao em geral por volta de 1990. Alm de caros, os gravadores eram complicados de usar, necessitavam de placas especiais e computadores isolados de qualquer tipo de vibrao para gravarem corretamente. A gravao de um CD demorava mais de uma hora, e o sucesso no era garantido. Atualmente esse processo bem mais barato, fcil e rpido.

6.5.2

- DVD

O DVD pode ser visto como uma nova e fantstica tecnologia, pela qual o setor de home vdeo esperava desde o surgimento do VHS, no final dos anos 70. Projetado para conter udio e vdeo de alta resoluo, ele verdadeiramente digital, alm de oferecer uma srie de recursos extras. O DVD pode ser visto como um CD-ROM que armazena no mnimo 4.7 GB de informaes o suficiente para um filme de longa metragem normal. Uma das vantagens do DVD sua compatibilidade com o CD-ROM. Isso significa que um leitor de DVD l CD comuns (musicais ou de dados). A capacidade de armazenamento deve-se variedade de tipos de estrutura para DVDs. H cinco formatos diferentes, variando conforme a quantidade de lados que podem ser gravados e a quantidade de camadas presentes. Assim, um disco de duas camadas e dupla face pode atingir algo em torno de 17 GB de capacidade. Um DVD muito semelhante ao CD; alm de ambos possurem o mesmo dimetro, tambm usam os mesmos materiais. Um DVD possui 1,2 milmetros de espessura, e composto por diversas camadas de plstico. Cada uma delas criada pela injeo de plstico de policarbonato em moldes. Formase assim, um disco com minsculos degraus, reunidos em uma longa trilha espiral de dados.

Exerccios
01 O disco magntico constitudo de um prato circular de metal ou plstico. Ele organizado em regies formadas por anis concntricos, denominados trilhas. O nmero de trilhas por superfcie do disco varia de: a) b) c) d) e) f) 8000 a 10000 500 a 2000 12000 a 15000 35 a 438 20000 a 30000 Nenhuma das alternativas anteriores

02 - Em que consiste a geometria de um disco rgido? 03 Explique o que a latncia rotacional de um disco rgido. 04 O padro RAID utiliza os conceitos de espelhamento e stripping. Em que consistem estas tcnicas? 05 Por que a criao dos CDs e DVDs revolucionou a indstria do entretenimento?

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 81 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

06 Considere as afirmativas sobre o padro RAID: I. II. III. O RAID consiste em um agrupamento de unidades de discos lgicos e virtuais Os dados so distribudos pelas unidades de discos fsicos do agrupamento A capacidade de armazenamento redundante utilizada para armazenar informao de paridade

Esto corretas: a) b) c) d) e) f) I e II I e III II e III Somente a I Todas esto corretas Nenhuma est correta

07 O padro que consiste de uma interface controladora de alta tecnologia e que foi criado para conectar discos rgidos e outros dispositivos sem a utilizao de portas especiais denomina-se: a) b) c) d) e) f) RAID ATA SATA SCSI IDE Nenhuma das alternativas anteriores

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 82 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

7- Execuo de Programas
7.1 - Introduo
Conforme j foi mencionado nos captulos anteriores, um computador, para realizar uma tarefa especfica, precisa ser instrudo, passo a passo, para efetivamente realizar a tarefa. Necessita que seja projetado com a capacidade de realizar (interpretar e executar) um determinado conjunto de operaes, cada uma sendo constituda de uma instruo especfica (instruo de mquina). Atualmente, raro escrever-se um programa diretamente na linguagem da mquina em virtude da enorme dificuldade de se organizar as instrues sem erros e dos problemas de entendimento e manuteno do programa tanto por parte de outros programadores como at mesmo por quem criou o referido programa. Vamos apresentar um resumo das etapas que definem o processo de execuo de um programa escrito em uma linguagem qualquer, de nvel acima da linguagem de mquina, descrevendo cada uma dessas etapas. Ao final, apresentam-se alguns exemplos de programas feito em linguagem de montagem Assembly.

7.2 - Linguagens de Programao


Uma linguagem de programao uma linguagem criada para instruir um computador a realizar suas tarefas. Um programa completo, escrito em uma linguagem de programao, frequentemente denominado cdigo. Deste modo, codificar um algoritmo significa converter suas declaraes em um comando ou instruo especfica de certa linguagem de programao. O tipo mais primitivo de linguagem de programao a linguagem que o computador entende diretamente, ou seja, as instrues que podem ser diretamente executadas pelo hardware. a chamada linguagem de mquina, que foi utilizada pela primeira gerao de programadores. Uma instruo de mquina um conjunto de bits, dividido em subconjuntos ou campos, com funes determinadas: um subconjunto estabelece o cdigo de operao e o outro define a localizao dos dados. Um programa em linguagem de mquina , em consequncia, uma longa sequncia de algarismos binrios, alguns dos quais representam instrues e outros os dados a serem manipulados pelas instrues.

0010 0100 0100 1111 0000

0100 0100 0100 0100 0000

1001 1001 1001 1001 0000

0001 1111 0011 1010 0000

Para criar um programa em linguagem de mquina, o programador deve conhecer todas as instrues disponveis para quela mquina e seus respectivos cdigos de operao e formatos, assim como os registradores disponveis e os endereos das clulas de memria onde sero armazenadas as instrues e os dados. Um programa real, em linguagem de mquina, pode conter milhares de instrues, o que uma tarefa extremamente tediosa e difcil, pelos detalhes que precisam ser observados pelo programador.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 83 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Para tentar minimizar esta dificuldade de entendimento do significado dos nmeros, foi desenvolvida, ainda para a primeira gerao de computadores, uma linguagem que representasse as instrues por smbolos e no por nmeros. Esta linguagem simblica foi denominada Linguagem de Montagem (Assembly Language), popularmente conhecida como assembly. Cdigos de operao, como 0101, so mais fceis de serem lembrados se representados como ADD (somar) do que pelo nmero 0101. Alm disso, o programador ao escrever um programa em linguagem de montagem, no precisa guardar os endereos reais de memria onde dados e instrues estaro armazenados. Ele pode usar smbolos como MATRICULA, NOME, SALARIO para indicar os dados que so usados em um programa. Uma instruo em linguagem de mquina do tipo 1110 0100 1001 1001

pode ser mais facilmente entendida se representada na forma simblica: ADD SALARIO Para se usar linguagem de montagem em um computador necessrio que haja um meio de converter os smbolos alfabticos utilizados no programa em cdigo de mquina, de modo a poder ser compreendido pela CPU. O processo de converso chamado de montagem e realizado por um programa denominado montador. O montador l cada instruo em linguagem de montagem e cria uma instruo equivalente em linguagem de mquina. Observe a seguir um exemplo de um programa em linguagem de montagem: ORG LDA ADD ADD SUB STA HLT DAD DAD DAD ORIGEM SALARIO-1 SALARIO-2 SALARIO-3 ENCARGO TOTAL SALARIO-1 SALARIO-2 SALARIO-3

Um passo mais significativo no sentido de criar uma linguagem de comunicao com o computador, mais simples e com menos instrues do que a linguagem de montagem foi o desenvolvimento de linguagens que refletissem mais os procedimentos utilizados na soluo de um problema, sem a preocupao com o tipo de CPU ou de memria onde o programa ser executado. Tais linguagens por serem estruturadas de acordo com a compreenso e a inteno do programador, so usualmente denominadas linguagens de alto nvel, nvel afastado da mquina. Uma linguagem de alto nvel, ou orientada ao problema, permite que o programador especifique a realizao de aes do computador com muito menos instrues. Desde o aparecimento de linguagens como FORTRAN e ALGOL, na dcada de 50, dezenas de outras linguagens de alto nvel foram desenvolvidas, seja para uso geral seja para resolver tipos mais especficos de problemas. A tabela a seguir apresenta algumas das mais conhecidas linguagens de programao de alto nvel, indicando-se a poca de seu surgimento no mercado.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 84 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Linguagem FORTRAN

Data 1957

ALGOL

1958

COBOL LISP PL/I BASIC

1959 1960 1964 1964

PASCAL C ADA DELPHI JAVA

1968 1967 1980 1994 1996

Observaes FORmula TRANslation primeira linguagem de alto nvel. Desenvolvida para a realizao de clculos numricos ALGOrithm Language linguagem desenvolvida para uso em pesquisa e desenvolvimento, possuindo uma estrutura algortmica Common Business Oriented Language primeira linguagem desenvolvida para fins comerciais Linguagem par manipulao de smbolos e listas Linguagem desenvolvida com o propsito de servir para emprego geral (comercial e cientfico). Fora de uso Desenvolvida em Universidade, tornou-se conhecida quando do lanamento do IBM-PC, que veio com um interpretador da linguagem, escrito po Bill Gates e Paul Allen Primeira linguagem estruturada designao em homenagem ao matemtico francs Blaise Pascal Linguagem para programao de sistemas operacionais e compiladores Desenvolvida para o departamento de defesa dos EUA Baseada na linguagem Object Pascal, uma verso do Pascal orientada a objetos Desenvolvida pela Sun, sendo independente da plataforma onde executada. Muito usada para sistemas Web

7.3 - Montagem e Compilao


No item anterior verificamos que programas de computador no so escritos na linguagem que a mquina entende, mas sim em outras formas simblicas de representar as instrues que o programador deseja que sejam realizadas. No entanto, verificamos que as mquinas continuam entendendo somente em binrio e, por isso, sempre h a necessidade de converso ou traduo de um programa em linguagem simblica para outro equivalente, em linguagem numrica binria.

7.3.1

- Montagem

A traduo mais rpida e simples que existe denomina-se montagem e realizada por um programa denominado montador (Assembler). Como o nome j explica, a montagem realizada para traduzir um programa em linguagem de montagem para seu equivalente em linguagem binria executvel. Basicamente, as funes de um montador so: Substituir cdigos de operao simblicos por valores numricos Substituir nomes simblicos de endereos por valores numricos dos endereos Reservar espao de memria para o armazenamento das instrues e dados Converter valores de constantes para cdigo binrio Examinar a correo de cada instruo

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 85 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Em um montador de dois passos, o programa examinado, instruo por instruo, duas vezes. Na primeira vez, o montador verifica a correo da instruo, ou seja, se ela est corretamente escrita e se possui os campos definidos na estrutura da linguagem de montagem. Se encontrar incorreo, o montador registra, de modo a poder relacionar os erros no final da verificao, interrompendo o processo. Se o cdigo fonte da instruo estiver correto, ele inicia a descrio de uma tabela, denominada tabela de smbolos, em que cada entrada corresponde a um smbolo. Em geral, temos uma tabela de smbolos de cdigos de operao e uma tabela de smbolos de endereos. No segundo passo, o montador realiza a criao do cdigo objeto, completando todas as entradas das tabelas. Para tanto, ele passa novamente por cada instruo e a localizar na tabela correspondente. Esta tarefa requer procedimentos otimizados de busca nas tabelas para que o processo de montagem seja rpido. O montador de dois passos o mais usado atualmente, visto que apesar de consumir certo tempo devido ao fato de que o montador precisa examinar duas vezes todo o programa, ele produz um cdigo de mquina direto no final da montagem, sendo, portanto conceitualmente mais simples. Por essa razo, ele permite que possam ser criados vrios programas independentes, sendo todos finalmente interligados para constituir um nico programa executvel.

7.3.2

- Compilao

Quando se pretende converter para linguagem de mquina um programa escrito em linguagem de alto nvel, ento se usa um processo chamado compilao. Compilao o processo de anlise de um programa escrito em linguagem de alto nvel, o programa-fonte e sua converso em um programa equivalente, porm descrito em linguagem binria de mquina, denominado programa-objeto. O programa que realiza esta tarefa denominado compilador. A compilao um processo semelhante ao de montagem, porm mais complexo e demorado. Na montagem, h uma relao de 1:1 entre as instrues de linguagem de montagem e as instrues de mquina, enquanto na compilao isto no acontece, pois um nico comando em Pascal, por exemplo, pode gerar vrias instrues de mquina. Durante a compilao, o cdigo-fonte analisado, comando por comando; o programa compilador realiza vrias tarefas, dependendo do tipo de comando que ele esteja analisando. Se, por exemplo, ele estiver analisando um comando que esteja declarando uma varivel, ele criar a respectiva entrada em sua tabela de smbolos. Inicialmente, o compilador realizar uma anlise do cdigo-fonte, dividido em trs partes distintas: Anlise lxica Anlise sinttica Anlise semntica Aps esta tripla anlise, gerado um cdigo intermedirio e so construdas vrias tabelas, como a tabela de smbolos, que auxiliar a realizao da segunda fase, que a fase de efetiva criao do cdigo binrio de mquina, o cdigo objeto. Nesta segunda fase, o compilador aloca memria para as variveis e realiza a atribuio dos registradores a serem utilizados, alm da gerao do cdigo-objeto final.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 86 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

A funo de anlise lxica do compilador consiste em decompor o programa-fonte em seus elementos individuais distintos (comandos, operadores, variveis etc.), os quais so verificados de acordo com as regras da linguagem, gerando mensagem de erro se for encontrada alguma incorreo. Cada operador ou palavra-chave identificado com um nmero pelo analisador lxico. A funo do analisador sinttico de um compilador consiste basicamente na criao das estruturas de cada comando, na verificao da correo dessas estruturas e na alimentao da tabela de smbolos com as informaes geradas. Ele realiza esta tarefa a partir de cada elemento obtido na anlise lxica, montando a estrutura apropriada (em geral, uma rvore) de acordo com as regras gramaticais da linguagem. A anlise semntica realizada pelo compilador verifica as regras semnticas estticas da linguagem, produzindo, da mesma forma que os demais analisadores, mensagens de erro para as incorrees ou inconsistncias semnticas.

7.3.3

- Ligao ou Linkedio

Quando um programador escreve um programa, ele no se preocupa em codificar determinadas operaes, porque o cdigo binrio necessrio para realizar aquelas tarefas j existe armazenado no sistema. preciso apenas que o cdigo em questo seja localizado e buscado onde estiver e incorporado ao sistema. Assim, o cdigo objeto gerado por um compilador no imediatamente executvel, visto que ainda h cdigo binrio a ser includo no programa. A maioria das aplicaes de qualquer tamanho tem um nmero de mdulos compilados ou montados separadamente. Estes mdulos podem ser gerados por linguagens de programao diferentes ou estar presentes nas bibliotecas da linguagem de programao ou do sistema operacional. Cada mdulo deve prover a informao descrita anteriormente, para que possa ser ligado, carregado e executado. Um editor de ligao ou ligador (linker) um programa que combina mdulos montados separadamente (mdulos objeto) em um nico programa, que chamado de mdulo de carregamento. O ligador resolve todas as referncias globais e externas e realoca endereos dos mdulos separados. O mdulo de carregamento pode ento ser carregado na memria pelo carregador, que pode tambm modificar endereos se o programa for carregado em uma posio diferente da original usada pelo ligador. Uma tcnica relativamente nova chamada de bibliotecas ligadas dinamicamente (Dynamic Link Libraries DLLs), popularizada pela Microsoft no sistema operacional Windows, est presente em formas semelhantes em vrios outros sistemas operacionais; adia a ligao de alguns componentes at que eles sejam usados durante a execuo. Para combinar mdulos montados ou compilados separadamente em um nico modo de carregamento, o ligador precisa: Resolver referncias de endereos que so externos aos mdulos que esto sendo ligados Realocar cada mdulo combinando-os como apropriado. Durante este processo de realocao, muitos dos endereos de um mdulo podem ser modificados para refletir sua nova localizao Especificar o smbolo inicial do mdulo de carregamento Detalhar as identidades e os contedos dos vrios segmentos, se o modelo de memria inclui mais de um segmento de memria

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 87 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

7.4 - Interpretao
Com o mtodo de compilao/ligao/execuo, para que um programa possa efetivamente ser executado necessrio que todos os comandos do cdigo-fonte desse programa sejam previamente convertidos para cdigo-objeto e este tenha tido todas as referncias externas resolvidas (etapa de ligao). A compilao no compreende execuo; ela apenas uma fase de traduo, de converso. Alm disso, o mtodo gera produtos bem distintos, como o cdigo-objeto e, mais tarde, o cdigo executvel. Em contrapartida, o mtodo de interpretao se caracteriza por realizar as trs fases (compilao, ligao e execuo), comando a comando, do programa-fonte. No h, pois, um processo explcito de compilao e ligao. Na realidade, um programa-fonte diretamente executado (interpretado) por outro programa (o interpretador) e produz o resultado. No h produtos intermedirios, como o cdigoobjeto ou cdigo executvel como acontece com o mtodo anterior. Em resumo, pelo mtodo de interpretao, cada comando do cdigo-fonte lido pelo interpretador, convertido em cdigo executvel e imediatamente executado, antes que o comando seguinte seja lido. H linguagens de programao cujas caractersticas estruturais so tpicas de mtodos de compilao, possuindo apenas compiladores. So exemplos deste tipo: Cobol, Fortran, C e Pascal. H outras que possuem apenas interpretadores. A linguagem Java interpretativa.

7.4.1

- Compilao x Interpretao

Ambos os mtodos possuem vantagens e desvantagens, oriundas do modo prprio de funcionamento de cada um. A principal vantagem da interpretao sobre a compilao sua capacidade de identificar e indicar um erro no programa-fonte, seja na etapa de converso da fonte para executvel (esttica), seja na execuo do cdigo binrio (dinmica), isto , erro na lgica do algoritmo ou na inconsistncia entre o valor do dado e o tipo de dado definido, por exemplo. Uma razovel desvantagem da interpretao o consumo de memria. No que se refere ao consumo de memria, verificamos que o mtodo de compilao usa memria apenas por perodos definidos de tempo. Ou seja, o compilador s permanece na memria durante a fase de compilao; ao terminar esta fase, o compilador cede espao para o ligador e este, em seguida, cede espao para o carregador executar o cdigo binrio. Em compensao, o programa interpretador deve permanecer na memria durante toda a execuo do programa, porque cada comando necessita do interpretador. E estes so programas grandes, que ocupam uma rea considervel de memria. Outra desvantagem da interpretao sobre a compilao consiste na possibilidade de certas partes do cdigo de um programa-fonte (um loop, por exemplo) terem que ser interpretadas tantas vezes quantas definidas no loop, no mtodo de compilao, isso sempre acontece uma nica vez. Os interpretadores so, no entanto, bastante vantajosos quando se trata de desenvolvimento de programas e correo de erros nesta fase. Quando se utiliza o mtodo de compilao, a identificao de erros no programa se torna mais problemtica medida que o cdigo executvel entra em fase de execuo. O programador ter de identificar que comando do cdigo-fonte gerou o referido erro.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 88 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Por outro lado, quando se emprega o mtodo de interpretao, mais simples a relao entre o cdigo-fonte e o executvel, porque cada comando-fonte imediatamente traduzido e executado. Assim, se ocorrer um erro, o responsvel deve ser o comando que est sendo executado e, portanto, j est identificado. O interpretador pode informar o erro, indicando diretamente o comando, ou varivel, causador da ocorrncia, pelo seu nome simblico e no por um endereo numrico de memria.

7.5 Linguagem Assembly


Este item objetiva apresentar conceitos relativos linguagem Assembly. oportuno esclarecer um ponto de grande confuso por parte de pessoas leigas no assunto. O termo Assembly significa montagem, ou seja, linguagem de montagem, a qual utilizada para programar um computador em baixo nvel, sendo necessrio montar o programa dentro do processador. Assembly no uma linguagem de mquina (como muitos afirmam), mas a linguagem de programao que est mais prxima disso. A linguagem de mquina a utilizada por um microprocessador para controlar as funes de um computador digital. O microprocessador utilizado em um computador um circuito que possui a capacidade de executar diversos tipos de funes distintas. A linguagem de mquina s aceita e manipula informaes numricas expressas em notao de cdigos binrios, os quais matematicamente representam os estados de tenso alta 1 ou tenso baixa 0 para os circuitos eletrnicos de um computador. Por questes de facilidade operacional, os nmeros binrios podem e devem ser representados no formato hexadecimal. A programao de computadores digitais em linguagem de mquina foi muito utilizada, principalmente durante a dcada de 1940, aps o surgimento do primeiro computador eletrnico, o ENIAC. Entre o final da dcada de 1940 e incio da dcada de 1950, foi desenvolvida a linguagem de programao Assembly com o objetivo de facilitar o trabalho de codificao de um programa de computador. Nessa ocasio os cdigos numricos (binrios ou hexadecimais) da linguagem de mquina foram substitudos por um cdigo alfabtico que era muito mais fcil de ser utilizado. A linguagem de programao de computadores Assembly possui uma estrutura sinttica particular. Ela formada por um conjunto de instrues que, por meio de cdigos mais legveis, representam as instrues do cdigo de mquina. As instrues da linguagem Assembly so conhecidas pelo nome de mnemnicos. muito mais fcil olhar para um mnemnico e lembrar o que ele faz do que seu equivalente em cdigo binrio ou hexadecimal, legvel apenas pelo microprocessador do computador. A linguagem de programao de computadores Assembly tem ainda uma grande vantagem sobre a linguagem de mquina, que o fato de requerer menos ateno a detalhes que so exigidos para programar em linguagem de mquina. Desta forma, uma linguagem de fcil alterao se comparada com a linguagem de mquina. O termo Assembler significa o programa montador, ou seja, o programa utilizado para compilar um programa escrito em linguagem de montagem, tornando-o executvel em um computador. Assembler basicamente o ambiente de programao. a ferramenta responsvel por traduzir o programafonte escrito em linguagem Assembly para o programa objeto em cdigo de mquina a ser interpretado por um processador. O programa Assembler uma ferramenta que tem caractersticas semelhantes em alguns aspectos aos compiladores para uma determinada linguagem de alto nvel.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 89 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

7.5.1

- Registradores

A linguagem de programao Assembly utiliza registradores para armazenar em memria os valores que sero manipulados por um programa. Grosso modo, os registradores so semelhantes s variveis encontradas nas linguagens de programao de computadores de alto nvel para tratar a maior parte dos dados em memria. O registrador est intimamente relacionado com a estrutura do microprocessador em uso. Para cada tipo de processador existe uma forma peculiar de tratar este conceito. Ser apresentada e considerada a estrutura de registradores para computadores digitais baseada no microprocessador 8086 da empresa Intel. A estrutura formada por 14 registradores, cada um com 16 bits, divididos em quatro grupos funcionais denominados: registradores gerais (AX,BX,CX,DX), registradores de segmento (CS,DS,ES,SS), registradores de ponteiros (SI,DI,SP,BP,IP) e registradores de estado (F).

7.5.1.1 - Registradores Gerais


Os registradores gerais AX (Accumulator eXtend), BX (Base eXtend), CX (Counter eXtend) e DX (Data eXtend) tm 16 bits de dados, e cada registrador pode ser dividido em duas partes, cada uma com 8 bits. Quando divididos, cada registrador tratado com 8 bits mais significativos (alto) e 8 bits menos significativos (baixo). Desta forma, o registrador de 8 bits AH (Accumulator High) e o registrador de 8 bits AL (Accumulator Low) so, respectivamente, divises do registrador AX de 16 bits. Para os demais registradores considera-se a mesma estrutura, BH-BL, CH-CL e DH-DL no sentido de determinar registradores de 8 bits mais e menos significativos pertencentes respectivamente a cada um de seus registradores de 16 bits BX, CX e DX. O registrador geral AX pode ser utilizado em operaes aritmticas, acessos de portas de entrada e sada, chamadas de interrupes, transferncia de dados, entre outras possibilidades. O registrador geral BX pode ser utilizado como ponteiro para acessar a memria no sentido de obter algum valor de retorno ou mesmo definir valores que sero usados para auxiliar operaes aritmticas efetuadas com o registrador AX. O registrador geral CX tambm usado para receber alguns valores de interrupes, mas sua principal finalidade servir como contador de laos de repetio e operaes de deslocamento. O registrador geral DX usado em operaes aritmticas (mais precisamente em operaes de multiplicao para armazenamento da parte de um produto de 32 bits e tambm em operaes de diviso para o armazenamento do resto da diviso), acessos de portas de entrada e sada e tambm em algumas chamadas de interrupes.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 90 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

7.5.1.2 - Registradores de Segmento


Os registradores de segmento CS (Code Segment), DS (Data Segment), ES (Extra data Segment) e SS (Stack Segment) tm 16 bits e so utilizados para acessar uma determinada rea de memria denominada offset (segmento), ou seja, so utilizados para auxiliar o microprocessador a encontrar o caminho pela memria do computador. Observe que eles no podem ser divididos em registradores de 8 bits. O registrador de segmento CS utilizado para apontar para uma rea de memria que contm o segmento de cdigo de programa que se encontra em execuo. A mudana do valor existente nesse registrador de segmento pode resultar em travamento do computador. O registrador de segmento DS utilizado para apontar para uma rea de memria que estiver sendo utilizada no armazenamento dos dados do programa em execuo. A mudana do valor existente nesse registrador de segmento pode ocasionar a obteno de dados incorretos. O registrador de segmento ES utilizado para determinar um segmento extra de endereos de dados (um novo segmento, ou seja, um segmento far pointer) distante da rea em que se est operando. Normalmente utilizado quando h necessidade de acessar, por exemplo, a memria de vdeo. O registrador de segmento SS utilizado para identificar a rea de memria que ser usada como pilha (stack), com o objetivo de armazenar dados temporrios para a execuo de um determinado programa. Esse registrador de segmento pode algumas vezes conter o mesmo valor encontrado no registrador de segmento DS. A mudana do valor existente nesse registrador de segmento pode trazer resultados imprevisveis, normalmente relacionados aos dados.

7.5.1.3 - Registradores de Deslocamento


Os registradores de apontamento ou deslocamento, tambm denominados registradores de ndice, esto associados ao acesso de uma determinada posio de memria previamente conhecida, com a utilizao dos registradores de segmento. Os registradores de ponteiro so cinco de 16 bits. Diferentemente dos registradores gerais, eles no podem divididos em registradores de 8 bits. Dos cinco registradores de apontamento, quatro so manipulveis, sendo SI (Source Index), DI (Destination Index), SP (Stack Pointer) e BP (Base Pointer). O registrador de apontamento (deslocamento) IP (Instruction Pointer), conhecido como apontador da prxima instruo, possui o valor de deslocamento (offset) do cdigo da prxima instruo a ser executada. O registrador de apontamento IP de uso interno do microprocessador e tem por finalidade guardar o deslocamento (offset) da prxima instruo de um programa. O valor existente nesse registrador de apontamento s pode ser lido. Os registradores de apontamento SI e DI so utilizados para manipular ndices de uma tabela, sendo o registrador de apontamento SI usado para a leitura de dados do tipo string de uma tabela e o registrador de apontamento DI usado para a escrita de dados do tipo string em uma tabela Em especial o registrador de apontamento DI tambm utilizado na definio de endereamento distante associado ao registrador de segmento ES.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 91 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Os registradores de apontamento SP e BP permitem o acesso pilha de programa (memria para armazenamento de dados). A pilha possibilita armazenar dados em memria, sem utilizar registradores gerais. Uma pilha um mecanismo que armazena dados de cima para baixo. Imagine uma pilha como uma matriz de uma dimenso (vetor). O registrador de apontamento BP armazena o endereo da base da pilha, enquanto o registrador de apontamento SP armazena o endereo do topo da pilha.

7.5.1.4 - Registrador de Estado


Os registradores de estado so considerados os mais importantes meios para a sinalizao da efetivao de operaes lgicas, aritmticas, manipulao de blocos e interrupes, pois indicam o estado de comportamento do microprocessador quando da execuo de alguma instruo da linguagem de programao assembly. O registrador de estados (Flags) tem 16 bits que agrupa um conjunto de flags de 1 bit, e cada flag define ou sinaliza um estado de comportamento particular do computador. Se o valor de cada bit estiver sinalizado como 1, indica que o flag em questo est setado (acionado), caso esteja sinalizado com o valor 0, significa que o flag no est setado (desabilitado). O flag est vinculado ao fato de uma ao ser ou no executada, ou seja, o tipo booleano. Se uma determinada ao executada, o flag (bandeira) levantado, indicando que a ao ocorreu (valor 1). Quando a bandeira est abaixada, sinal de que a ao em questo no sofreu nenhum tipo de alterao (valor 0) Os flags do registrador de estado so independentes, mas por questes de convenincia so agrupados no mesmo conjunto de registrador de estado.

7.5.2

Assembly 8086

A denominao da linguagem de programao de computadores Assembly para computadores IBM-PC feita normalmente com algumas siglas de identificao, tais como ASM86, x86, ASM8086, entre outras. Esta denominao refere-se ao uso da linguagem de programao Assembly para o processador Intel ou equivalentes de mercado, como por exemplos os processadores fabricados pela AMD. Os demais lanamentos de processadores da famlia Intel, tais como do 80286, 80386, 80486 e tambm a srie Pentium, possuem basicamente o mesmo conjunto de instrues existentes no padro do processador 8086 e 8088, alm de cada um possuir em sua evoluo novas instrues e recursos. Os recursos desses outros processadores no sero abordados nesta disciplina, limitando-se s instrues bsicas e caractersticas para os processadores 8086 e 8088. A linguagem de programao de computadores Assembly 8086 tem 116 instrues (mnemnicos) diferentes destinadas ao controle do microprocessador. Os demais processadores da famlia Intel possuem a cada srie um nmero maior de novas instrues. Para quem est comeando a estudar a linguagem Assembly, aconselhvel primeiro conhecer basicamente as instrues para o microprocessador 8086. As instrues da linguagem Assembly esto divididas basicamente em seis grupos funcionais, a saber: Transferncia de dados instrues destinadas movimentao de dados. Os dados podem ser movimentados entre registradores, entre registradores e posies de memria e entre registradores e unidades de entrada e de sada.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 92 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Aritmticas instrues destinadas aos clculos matemticos bsicos, como adio, subtrao, multiplicao e diviso. Manipulao de bits instrues que fazem o deslocamento de bits em um registrador ou posio de memria. As funes de operaes lgicas de conjuno, disjuno e negao so includas nesse grupo. Manipulao de strings elas fazem o controle (comparao, anlise e movimentao) de grupos de sequncias de caracteres Controle de programa instrues que controlam a execuo do cdigo de programa. O controle pode ser uma execuo seqencial, com laos (loopings) e com sub-rotinas ou subprogramas. As instrues podem manipular as interrupes de um programa em execuo. A ao de interromper um programa durante sua execuo pode ocorrer por vrios motivos, como, por exemplo, aceitar uma entrada de dados via teclado. Para que o dado possa ser digitado, necessrio fazer uma interrupo no programa que aps aceitar o dado continua sua execuo. Controle do microprocessador instrues que possibilitam o acesso dos registradores de controle do microprocessador, com o objetivo de mudar seu estado de comportamento.

7.5.2.1 Exemplos de Programas em Assembly


Seguem a seguir, alguns exemplos de programas em linguagem assembly. I Programa que calcula a soma de dois nmeros: MOV AH, 01 INT 21 SUB AL, 30 MOV BL, AL INT 21 SUB AL, 30 ADD AL, BL MOV DL, AL ADD DL, 30 MOV AH, 02 INT 21 INT 20 ; programa operao de leitura ; executa interrupo que solicita leitura ; extrai o nmero lido ; salva o primeiro nmero lido ; executa interrupo que solicita leitura ; extrai o nmero lido ; soma os nmeros ; copia para posterior exibio ; converte para o caracter correspondente em hexadecimal ; programa operao de escrita ; executa interrupo de escrita ; termina o programa

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 93 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

II Programa que l um valor numrico e caso esse valor seja menor ou igual a 5, soma-se a ele 10. Caso contrrio, atribui-se a ele o valor 0. Ao final o nmero escrito na tela. MOV AH, 01 INT 21 SUB AL, 30 CMP AL, 5 JG zera ADD AL, A JG final zera: MOV AL, 0 final: ADD AL, 30 MOV AH, 02 MOV DL, AL INT 21 INT 20 ; programa operao de leitura ; executa interrupo que solicita leitura ; extrai o nmero lido ; compara o nmero com 5 ; caso seja maior que 5, zera o valor ; soma ao nmero, o valor 10

; zera o valor

; converte para o caracter correspondente em hexadecimal ; programa operao de escrita ; copia para posterior exibio ; executa interrupo de escrita ; termina o programa

III Programa que l um caracter do teclado e o escreve 15 vezes na tela. MOV AH, 01 INT 21 MOV DL, AL MOV AH, 02 MOV BL, F escreve: INT 21 SUB BL,1 JNZ escreve INT 20 ; programa operao de leitura ; executa interrupo que solicita leitura ; copia para posterior exibio ; programa operao de escrita ; atribui 15 ao contador

; executa interrupo de escrita ; decrementa o contador ; retorna escrita caso seja menor que 0 ; termina o programa

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 94 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

8- Gramticas
8.1 - Linguagens Formais
Podemos definir a Teoria das Linguagens Formais como o estudo de modelos matemticos que possibilitam a especificao e o reconhecimento de linguagens, suas classificaes, estruturas, caractersticas, propriedades e relacionamentos. Os primeiros estudos realizados em busca da definio de linguagens formais foram em torno de linguagens naturais. Estes estudos no foram bem sucedidos, pois as linguagens naturais possuem propriedades que as tornam difceis de serem representadas de maneira formal. As linguagens naturais, normalmente so muito extensas, complexas, com sintaxe flexvel, alm de no possurem semntica bem determinada, sendo ricas em ambiguidade. Desta forma, o tratamento computacional para linguagens naturais no obteve xito, e resultados significativos somente foram alcanados na descrio de linguagens computacionais, principalmente nos processos de anlise lxica e sinttica dos compiladores. Isto se deve ao fato de as linguagens computacionais possurem sintaxe muito mais simples e uma semntica bem definida.

8.2 - Linguagem
Como definio inicial, podemos dizer que uma linguagem uma forma de comunicao. Sofisticando um pouco mais essa definio, uma linguagem pode ser descrita como um conjunto de smbolos e regras, combinados e compreendidos por uma comunidade. Por exemplo, a lingua portuguesa.

8.3 - Componentes de uma Linguagem


Smbolo Entidade bsica a qual no possui uma definio formal. Letras e dgitos so exemplos de smbolos frequentemente utilizados. Ex : a b 9 0 L Alfabeto um conjunto finito de smbolos. Portanto, um conjunto vazio tambm considerado um alfabeto. Ex : V = {a,b,c,d,e,...,x,y,z} Cadeia (string ou palavra) - uma sequncia finita de smbolos do alfabeto, sem espaos em branco. Por exemplo, para o alfabeto : V = {a,b} Seriam exemplos de cadeia para o alfabeto: a,b,ab,ba,aab,aaa ... O tamanho de uma cadeia x, ou seja, o nmero de smbolos que compe uma cadeia, denotado por | x |. x = abbbba <=> |x| = 6
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 95 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Uma cadeia vazia possui tamanho 0, | x | = 0, sendo representada pelo smbolo . Se x e y so cadeias, ento x.y representa a concatenao das duas cadeias formada pelos smbolos de x imediatamente seguidos pelos smbolos de y. x = abc y=def x.y = abcdef

Sentena (frase) - um conjunto finito de cadeias com um separador entre elas, normalmente um espao em branco. Fechamento de um Alfabeto o conjunto de todas as cadeias possveis que podem ser geradas a partir do alfabeto. O fechamento reflexivo inclui todas as cadeias, inclusive a vazia. J o fechamento transitivo ou positivo, inclui todas as cadeias com exceo da cadeia vazia.

8.4 - Representaes de uma Linguagem


Uma linguagem L sobre um alfabeto V um subconjunto de V:

L V
O estudo de linguagens est intimamente relacionado ao estudo das formas de representao dessas linguagens. O problema de representao de uma linguagem, por sua vez, est relacionado com o fato dela ser finita ou infinita. Uma linguagem dita finita, quando ela pode ser representada por enumerao, como por exemplo a linguagem definida como sendo o conjunto dos inteiros positivos pares maiores que 0 e menores que 20, pode ser representado por: L = {2, 4, 6, 8, 10, 12, 14, 16, 18}. J numa linguagem infinita, existe a impossibilidade de usarmos enumerao.A linguagem definida como sendo o conjunto dos inteiros pares poderia ser representada por V ={2, 4, 6, 8, 10,...} que apesar de intuitiva, no finita e nem precisa. Iremos considerar apenas as linguagens finitas. No que diz respeito a sua representao, as linguagens classificam-se em reconhecedores e sistemas geradores. Reconhecedores so dispositivos formais que permitem verificar se uma determinada sentena pertence ou no a uma linguagem. Esses dispositivos so chamados de autmatos. J os sistemas geradores so dispositivos que possuem meios formais de gerar as sentenas de uma linguagem. Os principais sistemas geradores so as gramticas.

8.5 - Gramticas
Sabemos que uma linguagem pode ser vista como um conjunto de cadeias (palavras) formado com os smbolos de um alfabeto. Assim, devemos nos preocupar em definir esse conjunto. Essa a finalidade de uma gramtica. Ela define uma estrutura sobre um alfabeto de forma a permitir que apenas determinadas combinaes sejam vlidas, ou seja, sejam consideradas sentenas, definindo assim a linguagem que ela representa.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 96 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

De uma maneira informal, podemos dizer que uma gramtica um sistema gerador de linguagens, ou ainda, uma maneira finita de representar uma linguagem. No contexto da teoria das linguagens formais, gramticas devem ser entendidas como uma espcie de dispositivo de natureza computacional que serve para gerar as palavras (cadeias) de uma linguagem. Como um dispositivo desta natureza, gramticas tem uma definio formal importante, no somente para estabelecer de maneira precisa sua forma de uso, como tambm para caracterizar formalmente certas classes de linguagem que podem ser definidas gramaticalmente. O que importante perceber, que gramticas so como esquemas de programas para listar palavras que pertenam a uma dada linguagem e por isso dizemos que uma gramtica um dispositivo de gerao de linguagens. Podemos dizer ento que uma gramtica um mecanismo que nos permite definir formalmente de uma maneira precisa e finita uma linguagem. Observe o exemplo a seguir, de uma gramtica da lingua portuguesa :

<sentena>

:: = <sujeito> :: = <predicado> :: = <substantivo> :: = <artigo> :: = <adjetivo> :: = <verbo> :: = <objeto> :: =

<sujeito> <predicado> <substantivo> | <artigo> <substantivo> | <artigo> <adjetivo> <substantivo> <verbo> <objeto> Joo | Maria | cachorro | livro | po o|a pequeno | bom | bela morde | le | olha <substantivo> | <artigo> <substantivo> | <artigo> <adjetivo> <substantivo>

Voc seria capaz de escrever todas as frases ou sentenas geradas por essa gramtica? Uma gramtica G um mecanismo para gerar sentenas, formalmente definida por: G = (Vn, Vt, P, S) onde :

Vn um conjunto finito de smbolos denominados no-terminais. So os smbolos utilizados na descrio da linguagem. Vt um conjunto finito de smbolos denominados terminais. So os smbolos da linguagem propriamente ditos, ou seja, os smbolos que podem ser usados na formao das sentenas da linguagem. Note que : Vn Vt = e Vn Vt = V P um conjunto finito de pares ( , ) denominado produes (ou regras gramaticais ou regras de sintaxe). Uma produo representada por :: = , e significa que definido por , ou ainda que produz ou equivalentemente que gerado a partir de . S o smbolo inicial da gramtica; deve pertencer a Vn. O smbolo inicial de uma gramtica o no-terminal a partir do qual as sentenas de uma linguagem sero geradas. Utilizando o exemplo descrito anteriormente, teriamos:
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 97 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Gportugues = (Vn, Vt, P, S) Vn = { <sentena> , <sujeito> , <predicado> , <substantivo> , <artigo> , <adjetivo> , <verbo> , <objeto> } Vt = { joo, maria , cachorro, livro , po, o , a , pequeno, bom , bela , morde , le , olha } P = o conjunto das regras gramaticais apresentado S = <sentena>

8.6 - Derivao e Reduo


So operaes de substituio que formalizam a utilizao de gramticas. Derivao a operao que consiste em substituir uma sentena (ou parte dela) por outra, de acordo com as produes das gramticas em questo, no sentido smbolo inicial sentena; Reduo a operao que consiste na substituio de uma sentena (ou parte dela) por outro, de acordo com as produes da gramtica, no sentido sentena smbolo inicial. Derivao a operao adequada para gerao de sentenas; enquanto que a operao de reduo adequada ao reconhecimento de sentenas.

8.7 - Backus Naur Form


A forma normal de Backus ou notao BNF bastante utilizada na definio de linguagens de programao, sendo introduzida na dcada de 60 na descrio do ALGOL. Consiste de uma metalinguagem capaz de descrever produes gramaticais recursivamente, onde cada produo possui uma regra de substituio, que permite a associao de uma ou mais cadeias a outra cadeia de smbolos. Como conveno notacional, pode-se admitir que smbolos no-terminais (N) sero sempre representados por letras maisculas, e smbolos terminais (T) por letras minsculas. Dgitos sero sempre considerados simbolos terminais da gramtica. Por conveno, o smbolo inicial S ser sempre o smbolo no-terminal que aparecer do lado esquerdo da 1a produo da gramtica. Assim basta listar as regras de produo para se obter a gramtica, como por exemplo: S::=AB A::= a | aA B::= b | Que tipo (s) de sentena (s) gerada pela gramtica acima?

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 98 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Exerccios
01 Defina as regras de produo que gerem as sentenas solicitadas abaixo: a) b) c) d) e) f) g) h) i) j) Qualquer nmero inteiro maior ou igual a zero Palavras do alfabeto V= {a,b,c,d,e} que tenham tamanho par Qualquer nmero binrio que possa ser representado por um byte Nmeros impares entre 100 e 999 Palavras do alfabeto V = {a,e,i,o,u} que comecem com a e terminem com o n n Sequncias na forma a b , com n 0 Qualquer nmero hexadecimal que seja 255 decimal Palavras do alfabeto V = {k,x,w,y,z} que comecem e terminem com a mesma letra Palavras do alfabeto V = {a,b,c} que sejam palndromes Sequncias no formato 0n 1m, onde n > 0 e m=2n Palavras do alfabeto V = {0,1,2,3,4,a,b,c,d,e,f} intercalando sempre uma letra e um dgito Qualquer nmero inteiro positivo que intercale dgitos pares com dgitos impares. Palavras do alfabeto V = {a,b} que tenham tamanho mpar e comecem e terminem com letras diferentes Sequncias de 0s e 1s que comecem com 0 e terminem com 1 e tenham tamanho par Palavras do alfabeto V = {a,b,c,0,1} que comecem com uma letra e terminem com um nmero Palavras do alfabeto V = {a,e,i,o,u } que contenham apenas dois as Sequncias da forma 0n1m, onde n par e m impar Sequncias (abc)n, onde n impar Sequncias do tipo axbycz onde y=1 e z=x, sendo que x > 0 Palavras do alfabeto V = {a,e,i,o,u,0,1} cujo ultimo caracter seja um nmero

k)
l) m) n) o) p) q) r) s) t)

8.8 - Linguagens Definidas por Gramticas


Consiste no conjunto de sentenas de terminais que esta gramtica pode gerar. Uma cadeia ou palavra pertence a uma linguagem L(G) se e somente se ela consiste somente de smbolos terminais, inclusive a sentena vazia ( ), podendo ser produzida a partir de S. Logo, L o conjunto de todas as cadeias terminais geradas a partir do smbolo inicial.

8.9 - Gramticas Equivalentes


Duas gramticas G1 e G2 so equivalentes entre si, se e somente se L(G1) = L(G2). Para mostrar a equivalncia entre duas gramticas, basta apenas mostrar que de forma diferente, ambas geram exatamente as mesmas cadeias. Por exemplo: Gramtica G1 S::= aHa | bHb H::= aH | bH |

Note que as gramticas so equivalentes e no iguais !!!


Gramtica G2 S::= aA | bB A::= aA | bA | a B::= aB | bB | b

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 99 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

8.10 - Tipos de Gramticas


At este ponto no foi imposta qualquer restrio sobre a gramtica ou sobre as produes que denotam as leis de formao da linguagem que est sendo definida. As gramticas gerais tm limitaes em relao sua aplicabilidade no contexto do estudo dos compiladores, devido s dificuldades que acarretam em seu tratamento, sendo que as linguagens de programao de interesse no exigem toda a generalidade que as gramticas gerais definidas acima so capazes de oferecer. Torna-se atraente o estudo de casos particulares, de aplicao mais restrita, porm suficiente para resolver os problemas levantados ao se projetar compiladores para linguagens de interesse. Restringindo o tipo de produes que podem aparecer em uma gramtica, possvel definir classes especiais de gramticas, tal como proposto na hierarquia de Chomsky descrita a seguir: Gramtica Tipo 0 (ou gramtica sem restries) So aquelas s quais nenhuma limitao imposta. Obviamente, todo o universo das linguagens que se pode definir atravs dos mecanismos generativos definidos pelas gramticas corresponde exatamente ao conjunto das linguagens que esta classe de gramticas capaz de gerar. As regras de uma gramtica do tipo 0 so da forma , com e quaisquer. Ou seja, do lado esquerdo da produo pode haver uma seqncia de quaisquer smbolos, desde que, entre eles, haja um no-terminal. Do lado direito da produo pode haver qualquer seqncia de smbolos, inclusive a sentena vazia Gramtica Tipo 1 (ou gramtica sensvel ao contexto G.S.C.) As gramticas do tipo 1 possuem regras da forma , em que se exige || ||. entretanto permitida uma regra que viola esta restrio : uma gramtica do tipo 1 pode possuir a regra S , se S no aparecer do lado direito de nenhuma regra e S for o smbolo inicial da gramtica. Essa regra vlida tambm para as gramticas seguintes. S ::= aABC aA ::= aaa B ::= b C ::= ccc Gramtica Tipo 2 ( ou Gramtica Livre de Contexto G.L.C. ) As gramticas do tipo 2 so as gramticas com regras da forma , onde um smbolo no terminal nico e uma sequncia qualquer composta de terminais e no terminais. Ou seja, do lado esquerdo da produo deve sempre ocorrer um e apenas um no-terminal. Gramtica Tipo 3 ( ou Gramtica Regular G.R. ) As gramticas do tipo 3 s podem ter regras dos trs tipos descritos a seguir : A ::= aB A ::= a A ::= onde A e B so no terminais e a um terminal onde A um no terminal e a um terminal onde A um no terminal

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 100 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

As gramticas do tipo 3 so chamadas regulares pela simplicidade da estrutura de suas linguagens, garantida pelos rgidos formatos de suas regras. Note que o lado direito de uma produo constitudo por no mximo um smbolo no terminal (ou varivel). Se essa varivel existir, sempre antecede ou sucede qualquer smbolo terminal. Observao: As linguagens representadas (geradas) por G.S.C., G.L.C. e G.R. so denominadas, respectivamente, Linguagens Sensveis ao Contexto (L.S.C.) Linguagens Livres de Contexto (L.L.C.) e Linguagens Regulares (L.R.).

8.11 - Expresses Regulares


Toda linguagem regular pode se descrita por uma expresso simples, denominada expresso regular. Uma expresso regular definida a partir de conjuntos bsicos e operaes de concatenao e unio. As expresses regulares so consideradas adequadas para a comunicao homem x homem e, principalmente, para a comunicao homem x mquina. Gramticas de tipo 3 so adequadas para representar algumas ``caractersticas locais'' de linguagens de programao, tais como definio de formatos de constantes, identificadores e palavras da linguagem. Em Pascal, um identificador uma letra seguida por zero ou mais letras ou dgitos. Isso poderia ser expresso, em uma gramtica, da seguinte forma : IDENTIFICADOR ::= letra | letra COMPLEMENTO COMPLEMENTO ::= letra | digito | letra COMPLEMENTO | digito COMPLEMENTO A representao gramatical anterior, poderia ser escrita da seguinte forma como uma expresso regular : letra ( letra | digito )* Aqui, a barra vertical significa ou, os parnteses so usados para agrupar subexpresses, o asteristico significa zero ou mais instncias da expresso parentetizada e a justaposio de letra com o resto da expresso significam concatenao. Uma expresso regular constituda de expresses regulares mais simples usando-se um conjunto de regras de definio. Cada expresso regular r denota uma linguagem L (r). As regras de definio especificam como L (r) formada atravs da combinao, em vrias formas, das linguagens denotadas pelas subexpresses de r. Uma expresso regular r, sobre um conjunto de smbolos T, representa uma linguagem L (r), a qual pode ser definida indutivamente a partir de expresses bsicas, como segue : 1. representa a linguagem vazia (conjunto contendo zero palavras) 2. { } representa a linguagem cuja nica palavra a palavra vazia 3. { x | x T } representa a linguagem cuja nica palavra x

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 101 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

4. se r1 e r2 so expresses regulares definindo as linguagens L(r1) e L(r2), tem-se que : r1 | r2 a linguagem cujas palavras constituem o conjunto L(r1) L(r2) r1 r2 a linguagem cujas palavras so formadas pela concatenao de uma palavra de L(r1) com uma palavra de L(r2) nesta ordem r1* representa o conjunto L*(r1), isto , o conjunto de palavras que podem ser formadas concatenando-se zero ou mais palavras de L(r1). Exemplos de expresses regulares: (0+1)* - palavras de 0s e 1s (0+1)*00(0+1)* - palavras de 0s e 1s com pelo menos 2 zeros consecutivos. a+b* - palavras com qualquer quantidade de as (no mnimo 1) seguido de qualquer quantidade de bs , inclusive nenhum. ba* - todas as palavras que comecam com a letra b e contem um numero qualquer de as a*ba*ba* - todas as palavras que contem dois bs e um numero qualquer de as Note que: (a | b)* diferente de (a + b)*, pois : (a | b)* => (a+b)* => {, ab,abab,ababab,ababababab,...} {,a,b,ab,ba,abb,aaab,bbbbba,...}

Exerccios
1- Defina expresses regulares para: a) b) c) d) e) Nmeros binrios que comecem com 0 e terminem com 1 Palavras do alfabeto V = {a,e,i,o,u} que tenham sempre pelo menos uma letra i Sequncias do tipo abc Nmeros decimais mpares Palavras do alfabeto V = {k,x,y,w,z} que comecem sempre com k

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 102 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

9- Autmatos Finitos
9.1 - Introduo
A anlise lxica considerada como a primeira etapa do processo de compilao. Nesta etapa, o programa fonte encarado como uma seqncia de caracteres que devero ser agrupados e identificados como palavras reservadas da linguagem, constantes e identificadores. Os smbolos que devero ser reconhecidos na anlise lxica so representveis por expresses regulares ou equivalentemente por gramticas regulares. Um reconhecedor para uma linguagem um programa que toma como entrada uma cadeia x e responde sim se x for uma sentena da linguagem e no em caso contrrio. Compilamos expresses regulares num reconhecedor atravs da construo de um diagrama de transies generalizado chamado de autmato finito.

9.2 - Definio Formal


Um autmato finito M, uma quntupla, definida da seguinte forma: M=(E,V,f,q0,F), onde : E V f q0 F um conjunto finito no vazio de estados do autmato finito. o alfabeto dos smbolos da linguagem a funo de transio de estados do autmato denominado estado inicial do autmato finito o conjunto de estados finais

Exemplo: M = ({q0, q1}, {0, 1}, f, q0, {q1}) f= (q0 ,0) q0 (q0, 1) q1 (q1, 1) q1 (q1, 0) q0 Para este autmato finito, reconhecem-se os seguintes elementos: Estados do autmato: q0 e q1 Smbolos do alfabeto de entrada: 0 e 1 Estado final: q1 Estado inicial: q0 Linguagem reconhecida : cadeias de dgitos binrios terminadas obrigatoriamente por um dgito 1. A gramtica correspondente para esse autmato seria:

S::= 0S | 1S | 1
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 103 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

A expresso regular para esse autmato seria:

(0 | 1)* 1

9.3 Representao Grfica de Autmatos Finitos


Um autmato finito pode ser representado atravs de um diagrama de transio de estados, que um grafo, no qual os nodos representam os estados, e os arcos representam as transies entre estados. O estado inicial indicado por uma seta, e os estados finais so distinguidos por circunferncias concntricas. A seguir, mostrada a representao do autmato descrito no item anterior.

0 1 q0 0 9.4 - Tabela de Transio de Estados q1

Outra forma de representar um autmato, mais apropriada para fins de processamento automtico, atravs de tabelas de transio. Uma tabela de transio uma matriz na qual as linhas representam os estados do autmato e as colunas os smbolos do alfabeto. Cada entrada na matriz indica qual o estado final de uma transio a partir do estado indicado na linha atravs do smbolo indicado na coluna.

q0
* q1

0 q0 q0

1 q1 q1

A tabela de transio acima representa o autmato definido no item 4.2. Assim, linhas da tabela de transio representam o estado corrente e as colunas, o smbolo corrente. O estado inicial indicado por uma seta e os finais por asterstico. Uma entrada na tabela (cruzamento entre linha e coluna) pode ser vazia, indicando que no h transio possvel, ou ter o prximo estado que atingido pela transio corrente. Autmatos finitos podem ser determinsticos, quando para cada combinao de estado de entrada existe uma nica transio aplicvel, ou no-determinsticos em caso contrrio. possvel mostrar que a cada autmato finito no-determinstico corresponde um autmato finito determinstico que aceita a mesma linguagem.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 104 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

9.5

- Autmatos

Finitos Determinsticos & No Determinsticos

Autmato Finito Determinstico aquele em que, dado um estado e uma transio, leva a um nico estado, ou seja a funo de transio mapeia para apenas um nico estado. Alm disso, um AFD, possui apenas um estado inicial.

a a b q0 b q1

q0
* q1

a q0 q1

b q1 q0

Autmato Finito no Determinstico aquele em que, dado um estado e uma transio, pode levar a mais de um estado, ou seja, a funo de transio de um AFND mapeia para um conjunto de estado, formado por zero ou mais estados. Um AFND pode possuir mais de um estado inicial (sistema de mltiplas entradas).

b a q0 a b q2 q1

q0
* q1 q2

a q1 q0 -

b q2 q1

Note que no existe nenhuma entrada na tabela para (q0,b) e (q2,a), ilustrando assim o no determinismo.

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 105 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

9.6 - Converso para Autmato Finito Determinstico


Autmatos finitos no-determinsticos precisam lidar com situaes de ambigidade, como no caso de um estado a partir do qual parte mais de uma transio vazia. possvel eliminar essas ambigidades atravs da construo de um autmato finito determinstico que equivalente a um autmato finito no-determinstico. O procedimento aqui apresentado freqentemente denominado de construo de subconjuntos. Na descrio a seguir, o termo estado original refere-se a um estado do autmato nodeterminstico, enquanto o termo novo estado refere-se a estados do autmato determinstico. A base desse procedimento criar novos estados que representem todas as possibilidades de estados originais em um dado momento da anlise da sentena em processo de reconhecimento. Para tal, define-se o conjunto associado a um conjunto de estados de um autmato no determinstico. A (l-se psilon-clausura) o conjunto que inclui cada um dos estados indicados e todos os estados alcanveis a partir dele atravs de transies por strings vazias. O resultado um conjunto de estados que ir representar um novo estado no autmato determinstico. O procedimento da construo de subconjuntos comea pela computao da do conjunto que contm o estado inicial original. Neste caso, obtm-se um conjunto de estados que ir representar o novo estado inicial, pois o conjunto resultante inclui o estado inicial original. Cada estado novo que criado precisa ser posteriormente analisado. Para tanto, constri-se uma lista de estados no-analisados que, inicialmente, contm apenas o novo estado inicial. O procedimento prossegue com a anlise dos novos estados ainda no analisados. Para cada novo estado s nessa lista, preciso analisar o que acontece quando o prximo smbolo da sentena for um dos smbolos do alfabeto sob considerao na expresso regular. Por exemplo, se 1 um dos smbolos que pode ocorrer na sentena, ento analisa-se, para cada um dos estados originais em s, quais seriam os estados originais resultantes pela transio pelo smbolo 1 . A desse conjunto de estados resultantes gera um novo estado t (que eventualmente j pode ser um estado novo j existente). O autmato finito determinstico ir conter a transio s t. A anlise dos novos estados ainda no analisados deve prosseguir at que essa lista torne-se vazia. Quando isso ocorre, o procedimento est encerrado e o autmato finito determinstico est definido. Seja o seguinte AFND:

q0
a,b

q1

q2

b
q 2

q3

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 106 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Possuindo a seguinte tabela de transio de estados :

qo
q1 q2 * q3

a q0,q1

b q0 q2 q3

Fazendo a transformao para um AFD, teramos a seguinte tabela de transio :

qo
q0,q1 q0,q2 * q0,q3 Onde: q0 q0q1 q0q2 q0q3 Logo: X Y W Z

a q0,q1 q0,q1 q0,q1 q0,q1

b q0 q0,q2 q0,q3 q0

X
Y W *Z

a Y Y Y Y a

b X W Z X

W
a

E que resultaria no seguinte AFD :

1.1.1.1.1.1.1.1.1

Z
b b

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 107 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

9.7

- Reconhecimento

de Sentenas

Autmatos so sistemas formais capazes de aceitar todas as sentenas que pertencem a uma particular linguagem, rejeitando as demais. So chamados de reconhecedores. Para uma sentena ser considerada reconhecida pelo autmato, ao chegar no final da mesma, o autmato dever encontrar-se em um estado final. Caso contrrio, a sentena ser rejeitada. Durante o processo de reconhecimento de sentenas possvel que ocorram configuraes para as quais se apresentem apenas uma, mais de uma ou eventualmente nenhuma possibilidade de movimentao. No caso de apenas uma movimentao, diz-se que a transio efetuada determinstica, dado que no existem outras opes de evoluo para o autmato. Isso ocorre quando o autmato determinstico. No caso de mais de uma possibilidade de movimentao, ou mesmo nenhuma, todas elas so vlidas e legitmas, caracterizando uma operao no determinstica do autmato. Diz-se ento que o autmato no determinstico. Um autmato no determinstico reconhece a cadeia de entrada, se pelo menos uma das alternativas conduzi-lo a alguma configurao final. Por exemplo, para o primeiro autmato definido no item 4.5, vamos verificar a sentena ababb : q0 ababb => a q0 babb => ab q1 abb => aba q1 bb => abab q0 b => ababb q1 Como ao terminar a sentena, o autmato encontra-se em um estado final, conclui-se que a mesma foi reconhecida pelo autmato. Agora, vamos verificar a sentena abbaa : q0 abbaa => a q0 bbaa => ab q1 baa => abb q0 aa => abba q0 a => abbaa q0 Como ao terminar a sentena, o autmato no encontra-se em um estado final, conclui-se que a mesma no foi reconhecida pelo autmato.

9.8 - Aplicaes de Autmatos Finitos


Apesar da simplicidade desta ferramenta, existe uma grande variedade de softwares cuja especificao e/ou implementao pode ser bastante simplificada se realizada em termos de A.F., resultando em maior eficincia. Dentre as diversas aplicaes que fazem uso de autmatos, podemos citar: Analisador Lxico: Os tokens (smbolos bsicos) de uma linguagem de programao geralmente podem ser especificados eficientemente atravs de E.R., as quais podem ser automaticamente convertidas para A.F.D. equivalentes, cuja implementao (o analisador lxico propriamente dito) trivial. Editores de Texto: As operaes de busca e substituio de cadeias de caracteres em um texto, podem ser eficientemente realizadas de forma transparente ao usurio.
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 108 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

Alm das aplicaes acima (tidas como as principais) podemos tambm destacar o uso destas ferramentas nas seguintes reas: Protocolos de comunicao Projeto (modelagem) de sistemas operacionais Problemas especfico tais como: segurana de arquivos, desorientao em sistemas de hipertexto, modelagem de redes neurais e compresso de dados.

Exerccios
1 Represente graficamente e atravs da tabela de transio, os autmatos que reconheam as sentenas das linguagens abaixo : a) b) c) d) e) f) g) h) i) j) k) l) m) n) o) p) q) r) s) Sequncias que contenham bs com tamanho mpar Sequncias de nmeros binrios que comecem com 0 e terminem com 1 Sequncias ab, contendo um nmero impar de as e um nmero par de bs Qualquer nmero decimal entre 0 e 999 Sequncias do tipo xyz, com um nmero qualquer de xs, um nmero impar de ys e um nmero par de zs Placas de veculos Nmeros de ceps Palavras do alfabeto V={a,b,c,d,e} que tenham tamanho par Qualquer nmero binrio que possa ser representado por um byte Palavras do alfabeto V={a,e,i,o,u} que comecem com a e terminem com o Sequncias na forma (ab)n, com n > 0 Palavras do alfabeto V= {x,y,z} que comecem e terminem com a mesma letra Qualquer nmero inteiro positivo que intercale dgitos pares com dgitos impares. Sequncias de 0s e 1s que comecem com 0 e terminem com 1 e tenham tamanho par Palavras do alfabeto V = {a,b,c,0,1} que comecem com uma letra e terminem com um nmero Palavras do alfabeto V = {a,e,i,o,u } que contenham apenas dois as Sequncias da forma 0n1m, onde n par e m impar Sequncias (abc)n, onde n impar Palavras do alfabeto V = {a,e,i,o,u,0,1} cujo ultimo caracter seja um nmero

2 Represente graficamente a seguinte tabela de transio:

q0
q1 q2 * q3

a q0 q0 q3 q1

b q2 q3 q0 q3

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 109 Disciplina de Arquitetura de Computadores

Prof. Arildo Snego

3 Transforme o AFND a seguir em um AFD :

q1
a b

a,b

qo
a,b

a,b

q3

q2

4 Verifique se as sentenas abaixo so reconhecidas por ele : a) b) c) d) e) abab bbaba bbbbb aaabbbb babab

_______________________________________________________________________________________________ Curso de Sistemas de Informao - 110 Disciplina de Arquitetura de Computadores

You might also like