Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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
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
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
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
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
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.
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.
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.
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.
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.
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
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
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.
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
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
2.4.1
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)
2.4.2
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
=
45
_______________________________________________________________________________________________ Curso de Sistemas de Informao - 22 Disciplina de Arquitetura de Computadores
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
3.2.1
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.
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
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
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
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
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
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.
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
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.
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
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?
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.
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:
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
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
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.
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
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.
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.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
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
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
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.
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.
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.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
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.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.
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.
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.
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.
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.
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.
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?
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.
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.
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.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
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.
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
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.
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.
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.
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.
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
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.
5.9.2
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.
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.
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.
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.
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.1
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.
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
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
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.
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).
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.
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.
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
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.
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
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
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
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.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.
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?
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
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.
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.
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.
Linguagem FORTRAN
Data 1957
ALGOL
1958
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.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
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.
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
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.
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.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).
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.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.
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.
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
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.
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.
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.
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> <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
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>
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)
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.).
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
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.
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
(0 | 1)* 1
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.
9.5
- Autmatos
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.
q0
a,b
q1
q2
b
q 2
q3
qo
q1 q2 * q3
a q0,q1
b q0 q2 q3
qo
q0,q1 q0,q2 * q0,q3 Onde: q0 q0q1 q0q2 q0q3 Logo: X Y W Z
b q0 q0,q2 q0,q3 q0
X
Y W *Z
a Y Y Y Y a
b X W Z X
W
a
1.1.1.1.1.1.1.1.1
Z
b b
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.
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
q0
q1 q2 * q3
a q0 q0 q3 q1
b q2 q3 q0 q3
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