Sie sind auf Seite 1von 113

MDULO DE:

ARQUITETURA DE COMPUTADORES

AUTORIA:

FILIPE DE CASTRO FERREIRA

Copyright 2009, ESAB Escola Superior Aberta do Brasil

Copyright 2009, ESAB Escola Superior Aberta do Brasil

Mdulo de: Arquitetura de Computadores Autoria: Filipe de Castro Ferreira

Primeira edio: 2009

CITAO DE MARCAS NOTRIAS Vrias marcas registradas so citadas no contedo deste Mdulo. Mais do que simplesmente listar esses nomes e informar quem possui seus direitos de explorao ou ainda imprimir logotipos, o autor declara estar utilizando tais nomes apenas para fins editoriais acadmicos. Declara ainda, que sua utilizao tem como objetivo, exclusivamente na aplicao didtica, beneficiando e divulgando a marca do detentor, sem a inteno de infringir as regras bsicas de autenticidade de sua utilizao e direitos autorais. E por fim, declara estar utilizando parte de alguns circuitos eletrnicos, os quais foram analisados em pesquisas de laboratrio e de literaturas j editadas, que se encontram expostas ao comrcio livre editorial.

Copyright 2008, ESAB Escola Superior Aberta do Brasil

Copyright 2009, ESAB Escola Superior Aberta do Brasil

presentao

Falar sobre Arquitetura de Computadores , no mnimo, uma tarefa desafiadora. Por um lado, existem muitos produtos que podem ser considerados como computadores. Por outro lado, a rpida evoluo em todos os aspectos da tecnologia de computadores mostra-se praticamente sem fronteiras, a cada dia surgem novidades. Apesar da grande variedade e da rapidez da evoluo da rea de computadores, alguns componentes bsicos so comuns aos computadores, seja um micro ou um

supercomputador. Este Mdulo visa promover uma discusso sobre os conceitos fundamentais de arquitetura de computadores

bjetivo

Proporcionar ao aluno uma viso geral do tema Arquitetura de Computadores, entendendo os principais componentes e seus conceitos. Este entendimento base para qualquer estudo no campo da informtica. Este Mdulo de estudos no pretende abordar todos os assuntos relacionados disciplina Arquitetura de Computadores. Esta uma disciplina abrangente e seria impossvel resumi-la em um nico mdulo.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

menta

Breve histrico do computador; Arquitetura da Mquina de Von Neumann; Conceito de bit, byte, caractere e palavra; Representao numrica nos computadores, relao dos nmeros reais com os nmeros binrios; Tcnicas para efetuar operaes matemticas com os nmeros binrios; Sinal e Magnitude; Complemento a um; Complemento de dois; Hierarquia das memrias, organizao e caractersticas; Classificao das Memrias quanto a leitura e escrita; Funcionamento e caractersticas da memria principal do computador;

Funcionamento da memria cache e a sua relao com a memria principal; Funcionamento dos registradores especiais do processador, responsveis por organizarem o controle da execuo das instrues; Representao da Instruo e anlise do Ciclo da Instruo; Tipos de modos de endereamento; Pipelining; Organizao da interface de E/S; O controle das conexes entre o processador, a memria e os outros dispositivos; Maneiras de comunicao da informao pelos dispositivos do computador; E/S com Polling e Interrupo; E/S com acesso direto memria; Tipos de barramentos e suas diferenas; Formas do computador executar um programa; Linguagens de Programao e Tradutores; Compilao, Ligador e Interpretao; Comparao entre Compilao e Interpretao; Mquinas Virtuais e Java Bytecode.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

obre o Autor

PMP; Ps-Graduado em Engenharia de Sistemas; MBA em Gerncia de Projetos; Bacharel em Sistemas de Informao. Gerente de Projetos e ex-Consultor Microsoft Brasil. Certificado Microsoft em SharePoint 2007, Project Server 2007 (EPM 2007) e MS Project 2007. Experincia como Gerente de Fbrica de Software, Analista em Projetos de Desenvolvimento de Sistemas e Contedos para EAD. Experincia como Projetista e Administrador de Redes Windows e Linux. Tutor na ESAB (Escola Superior Aberta do Brasil) em Cursos de Ps-Graduao.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

UMRIO

UNIDADE 1 .............................................................................................................................. 9 Breve Histrico I .................................................................................................................... 9 UNIDADE 2 ............................................................................................................................ 12 Breve Histrico II ................................................................................................................. 12 UNIDADE 3 ............................................................................................................................ 17 Componentes de um Computador Mquina de Von Neumann I ......................................17 UNIDADE 4 ............................................................................................................................ 21 Componentes de um Computador Mquina de Von Neumann II .....................................21 UNIDADE 5 ............................................................................................................................ 25 Elementos Bsicos: representao dos dados ...................................................................25 UNIDADE 6 ............................................................................................................................ 29 Representao Numrica....................................................................................................29 UNIDADE 7 ............................................................................................................................ 33 Operaes Binrias .............................................................................................................33 Overflow ou estouro do limite .............................................................................................. 34 UNIDADE 8 ............................................................................................................................ 36 Representao de Sinal Negativo I ..................................................................................... 36 Sinal e Magnitude................................................................................................................ 36 UNIDADE 9 ............................................................................................................................ 39 Representao de Sinal II ...................................................................................................39 UNIDADE 10 .......................................................................................................................... 42 Sistema de Memria ...........................................................................................................42 UNIDADE 11 .......................................................................................................................... 45 Tipos de Memrias I ............................................................................................................45 UNIDADE 12 .......................................................................................................................... 47 Tipos de Memrias II Memria Principal ..........................................................................47 Capacidade da Memria Principal....................................................................................... 48 UNIDADE 13 .......................................................................................................................... 50 Tipos de Memrias III - Memria Cache .............................................................................50
Copyright 2009, ESAB Escola Superior Aberta do Brasil 6

UNIDADE 14 .......................................................................................................................... 54 Registradores ...................................................................................................................... 54 UNIDADE 15 .......................................................................................................................... 57 Representao e Ciclo de Instruo ................................................................................... 57 Representao da Instruo ............................................................................................... 57 Formato das Instrues.......................................................................................................58 Ciclo de Instruo................................................................................................................ 59 UNIDADE 16 .......................................................................................................................... 61 Modos de Endereamento ..................................................................................................61 Modo de endereamento por registrador ............................................................................63 Modo por registrador direto .................................................................................................64 Modo por registrador indireto .............................................................................................. 64 UNIDADE 17 .......................................................................................................................... 65 Pipelining............................................................................................................................. 65 Mtodo Assncrono .............................................................................................................67 Mtodo Sncrono ................................................................................................................. 67 UNIDADE 18 .......................................................................................................................... 69 Organizao de uma Interface de E/S (Comunicao entre a Memria e UCP Barramentos) ...................................................................................................................... 69 UNIDADE 19 .......................................................................................................................... 72 Entrada/Sada ..................................................................................................................... 72 UNIDADE 20 .......................................................................................................................... 74 Formas de Comunicao ....................................................................................................74 UNIDADE 21 .......................................................................................................................... 78 Tcnicas de Transferncia de Dados I ................................................................................ 78 UNIDADE 22 .......................................................................................................................... 81 Tcnicas de Transferncia de Dados II ...............................................................................81 UNIDADE 23 .......................................................................................................................... 83 Tcnicas de Transferncia de Dados III ..............................................................................83 UNIDADE 24 .......................................................................................................................... 86 Padres de Barramento I ....................................................................................................86 UNIDADE 25 .......................................................................................................................... 88 Padres de Barramento II ...................................................................................................88 UNIDADE 26 .......................................................................................................................... 92
7

Copyright 2009, ESAB Escola Superior Aberta do Brasil

Execuo de Programas I ...................................................................................................92 UNIDADE 27 .......................................................................................................................... 96 Execuo de Programas II ..................................................................................................96 UNIDADE 28 ........................................................................................................................ 100 Execuo de Programas III ............................................................................................... 100 UNIDADE 29 ........................................................................................................................ 105 Execuo de Programas IV ............................................................................................... 105 UNIDADE 30 ........................................................................................................................ 108 Execuo de Programas V ................................................................................................ 108 GLOSSRIO ........................................................................................................................ 112 BIBLIOGRAFIA .................................................................................................................... 113

Copyright 2009, ESAB Escola Superior Aberta do Brasil

NIDADE

Breve Histrico I Objetivo: Conhecer a histria do computador.

Ao longo dos sculos foram construdas algumas mquinas com a funo de realizarem clculos aritmticos e outras operaes inteligentes. A primeira calculadora mecnica foi criada pelo alemo Wilhelm Schickard (1592-1635) em 1623. O funcionamento da mquina era baseado em rodas dentadas e ela era capaz de efetuar adies e subtraes. A inveno de Schickard, no entanto, no foi muito difundida e caiu rapidamente no esquecimento. Posteriormente, Blaise Pascal desenvolve a Pascoalina, uma mquina de calcular mecnica, tambm baseada em rodas dentadas, com o objetivo de livrar seu pai, coletor de impostos de Rouen (Frana), dos fastidiosos clculos que sua profisso lhe impunha.

Figura 1 - Pascoalina

Copyright 2009, ESAB Escola Superior Aberta do Brasil

Entre as mquinas que antecederam os modernos computadores ou processadores eletrnicos esto, principalmente, a mquina analtica projetada na primeira metade do sculo XIX pelo matemtico e inventor britnico Charles Babbage, que foi considerado o primeiro computador mecnico. Charles Babbage (1792-1871) concebeu um Computador Analtico dotado de um dispositivo a que chamou de MOINHO (uma mquina de somar com preciso de at 50 casas decimais), e um dispositivo de entrada que leria cartes perfurados contendo no somente nmeros (os dados), mas tambm INSTRUES (o que fazer com os dados). Imaginou ainda um dispositivo de memria que chamou de ARMAZM para guardar os nmeros, um banco com 1000 "registradores" cada qual capaz de armazenar um nmero de 50 dgitos - os nmeros dados pelos cartes de entrada ou ento nmeros resultados de operaes do moinho. Finalmente, incluiu um dispositivo impressor para dar sada aos resultados. As instrues (gravadas em cartes) possveis de ser implementadas pelo moinho eram: Entrar com um nmero no armazm Entrar com um nmero no moinho Mover um nmero do moinho para o armazm Mover um nmero do armazm para o moinho Comandar o moinho para executar uma operao Sair com um resultado

Para construir um dispositivo a partir destas ideias, Babbage contou com a colaborao inestimvel da matemtica Ada Augusta Byron, Lady Lovelace, filha do poeta Lord Byron. Ada desenvolveu sries de instrues para o calculador analtico, criando conceitos tais como sub-rotinas, loops e saltos condicionais. Babbage considerado o precursor do computador. Ada considerada a precursora do software.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

10

Tambm h a mquina tabuladora do americano Herman Hollerith, que trabalhava no departamento de censo dos Estados Unidos e idealizou um sistema de tratamento de informaes com o qual, mediante o uso de cartes perfurados, conseguiu aumentar de dois para duzentos o nmero de dados processados por minuto. Esses cartes, que receberam o nome do inventor, foram utilizados pelos computadores at 1970 como sistema de entrada e sada de dados. Da companhia fundada por Hollerith, a Tabulating Machine Company, surgiu mais tarde a International Business Machines Corporation (IBM).

Figura 2 - Carto Perfurado

Trs dcadas antes de Hollerith concretizar seu projeto, foi publicada a obra do matemtico britnico George Boole, An Investigation into the Laws of Thought (1854; Investigao das leis do pensamento). Boole considerava que os processos mentais do ser humano eram resultado de uma associao sucessiva de elementos simples que se podiam expressar sobre uma base de duas nicas alternativas: sim ou no. Foi essa a origem do mtodo matemtico de anlise formal conhecido como lgebra de Boole. Considerado na poca uma simples curiosidade, o mtodo viria a constituir o fundamento terico da informtica moderna.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

11

NIDADE

Breve Histrico II Objetivo: Conhecer o computador no sculo XX. Na evoluo dos equipamentos de informtica tornou-se habitual referir-se s etapas de desenvolvimento como "geraes", embora nem sempre haja acordo quanto a seu nmero ou quanto aos critrios utilizados em sua diferenciao. Neste Mdulo no sero classificados as geraes, mas o perodo em que foram criados. Os primeiros computadores eram caracterizados pelo uso de vlvulas a vcuo.

Figura 3 - Foto de vlvula usada na dcada de 40.

1943 a 1945 - ENIAC J. Presper Eckert, John V. Mauchly e Herman H. Goldstine, nos Estados Unidos, construram o ENIAC (Eletronic Numerical Integrator Computer), considerado o primeiro computador programvel universal. Durante a Segunda Guerra Mundial havia a necessidade, por parte do exrcito americano de desenvolver mtodos mais rpidos para calculo das trajetrias e alcance das novas armas. Esse trabalho era feito manualmente, utilizando-se calculadores de mesa. O Armys Ballistics
12

Copyright 2009, ESAB Escola Superior Aberta do Brasil

Research Laboratory (BRL) utilizava cerca de 200 pessoas para resolver as equaes necessrias, sendo que a preparao das tabelas para uma nica arma poderia levar vrias horas ou at mesmo dias de trabalho de uma nica pessoa. Em 1943 foi aceito pelo exrcito americano o projeto para a construo do ENIAC. O ENIAC possua aproximadamente 17.480 vlvulas de rdio, pesava 4 toneladas, media 30 metros de comprimento por 3 de largura e ocupava uma rea de 180m2, chegando a consumir 150 KW. Em contrapartida conseguia realizar 5 mil operaes por segundo.

Figura 4 - Parte do Galpo que abrigava o ENIAC.

O ENIAC era uma mquina decimal e no uma mquina binria, onde cada dgito era representado por um anel de 10 vlvulas. A cada instante, apenas uma vlvula ficava em estado ON (ligado), representando um dos dez dgitos. A principal desvantagem do ENIAC era que ele tinha que ser programado manualmente, ligando e desligando chaves e conectando e desconectando cabos. A programao do ENIAC era feita atravs de 6.000 chaves manuais. A cada novo clculo, era preciso reprogramar vrias destas chaves. Isso sem falar no resultado, que era dado de forma binria atravs de um conjunto de luzes. No foi toa que a maior parte dos programadores da poca eram mulheres, s mesmo elas para ter a pacincia necessria para programar e reprogramar esse emaranhado de chaves vrias vezes ao dia.
Copyright 2009, ESAB Escola Superior Aberta do Brasil 13

O ENIAC funcionava da seguinte maneira: Primeiro um grupo de cientistas desenvolvia equaes matemticas, na exata sequncia em que elas tinham que ser digeridas pelo sistema. A seguir seis especialistas programavam o computador para execut-las, girando botes de sintonia e plugando centenas de fios nas tomadas corretas. Portanto o que hoje o sistema operacional, em 1946 era uma operao completamente manual. O primeiro teste do ENIAC uma demonstrao feita para generais das Foras Armadas calculou a trajetria de uma bala de canho at um alvo determinado. Alimentado com as equaes, o computador forneceu os dados para que o canho fosse calibrado. A bala acertou o alvo, mas o que impressionou os generais foi que o tempo que o computador levou para resolver. Foi menor que o tempo da trajetria da bala. O nico problema do ENIAC era que para calcular a trajetria de outra bala, at um novo alvo, tudo tinha que ser refeito: das equaes at o (re)acerto dos fios.

1945 a 1952 EDVAC J. Presper Eckert, John V. Mauchly (engenheiros eletrnicos) e Herman H. Goldstine com a consultoria de John von Neumann, Doutor em Matemtica, pela Universidade de Budapeste, hngaro, naturalizado americano, especialista em Lgica, construram o EDVAC (Eletronic Discrete Variable Computer. Em 1945 Von Neumann, que foi um dos principais consultores do projeto ENIAC, sugeriu que o sistema binrio fosse adotado em todos os computadores, e que as instrues e dados fossem compilados e armazenados internamente no computador, na sequncia correta de utilizao. Estas sugestes tornaram-se a base filosfica para projetos de computadores.

1946 - Manchester Mark I Max Newman e a equipe da Universidade de Manchester, na Inglaterra, que teve a participao de Alan Turing, construram o Manchester Mark I, "primeiro computador que funcionou", que teve "a primeira visualizao na tela de dados contidos na memria" e o
14

Copyright 2009, ESAB Escola Superior Aberta do Brasil

primeiro programa gravado executado em 21 de junho de 1948. O Harvard Mark I, parcialmente financiado pela IBM. O Mark I tinha o nome tcnico de Calculador Automtico Sequencial Controlado, e foi construdo entre 1939 e 1944, pelo professor Howard Aiken. O Mark I talvez tenha sido a maior mquina calculadora j construda (20 metros de comprimento por 3 de altura e 750 mil componentes). Independente dessa discusso a participao da IBM nos desenvolvimentos dos computadores inegvel. A IBM tambm teria outro destaque na histria dos computadores por um acontecimento: foi em um Mark II em que ocorreu o primeiro bug. A palavra j vinha sendo usada como gria, significando qualquer complicao, desde a Revoluo Industrial. As mquinas eram instaladas em locais onde havia muitos insetos voando e havia grande chance de que algum isento pousar em um lugar errado e causar estragos era grande, e qualquer parada mecnica era atribuda, a princpio, por bug. Com os computadores realmente foi um bug: Em 1945, uma mariposa conseguiu entrar num Mark II do Centro Naval de Virgnia, nos EUA, e travou todo o sistema, a partir da o nome passaria a ser sinnimo de qualquer falha ou erro.

Vdeo Assista ao vdeo Histria dos Computadores atravs do link Estudo Complementar. Vale pena!

Copyright 2009, ESAB Escola Superior Aberta do Brasil

15

Figura 5 Imagem do inseto que ocasionou o primeiro bug.

Caso tenha interesse em ler um histrico mais detalhado sobre os computadores, no deixe de acessar o arquivo Histrico dos Computadores atravs do link Estudo Complementar.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

16

NIDADE

Componentes de um Computador Mquina de Von Neumann I Objetivo: Conhecer a estrutura da arquitetura da Mquina de Von Neumann

VDEO Ateno! Antes de dar continuidade aos seus estudos. V ao ambiente: CAMPUS ON-LINE e assista ao vdeo referente UNIDADE 3.

A mquina de Von Neumann (John von Neumann) a arquitetura base utilizada pelos computadores atuais. uma arquitetura de utilizao genrica que permite resolver qualquer problema que se possa exprimir sob a forma de um algoritmo. Permite especificar programas que indicam as desejadas sequncias de operaes que devem ser realizadas, sobre a informao representada em binrio.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

17

Figura 6 Arquitetura de Von Neumann

Caso queira saber mais sobre este importante cientista acesse o link: http://pt.wikipedia.org/wiki/John_von_Neumann Ou a biografia completa em vdeo. http://www.youtube.com/watch?v=RF_CZpmVGzw Apesar de estar em italiano, este material muito bom e de fcil compreenso.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

18

A mquina proposta por Von Neumann rene os seguintes componentes: Memria Principal, Central de Processamento (UCP), composta pela Unidade Lgica Aritmtica (ULA) e a Unidade de Controle (UC) e Dispositivos de Entrada e Sada.

Figura 7 Mquina de John Von Neumann

Memria Principal A unidade de memria central serve para guardar programas e dados, sob a forma de uma representao binria. Cada instruo da mquina codificada como uma sequncia de bits. Cada valor de certo tipo codificado por uma determinada sequncia de bits.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

19

Figura 8 Sequncia de bits armazenados na memria principal

Figura 9 Exemplos de Memria Principal

Copyright 2009, ESAB Escola Superior Aberta do Brasil

20

NIDADE

Componentes de um Computador Mquina de Von Neumann II Objetivo: Conhecer mais dados sobre a Arquitetura da Mquina de Von Neumann

Unidade Central de Processamento (UCP) A unidade de central de processamento (CPU Central Processing Unit) trata do controle global das operaes e da execuo das instrues. Para esse efeito, a UCP contm as seguintes unidades internas: Unidade Lgica e Aritmtica, ULA (ALU- arithmetic and logic unit): A ULA executa as principais operaes lgicas e aritmticas do computador. Ela soma, subtrai, divide, determina se um nmero positivo ou negativo ou se zero. Alm de executar funes aritmticas, uma ULA deve ser capaz de determinar se uma quantidade menor ou maior que outra e quando quantidades so iguais. A ULA pode executar funes lgicas com letras e com nmeros. Unidade de Controle UC: Responsvel por gerar todos os sinais que controlam as operaes no exterior do CPU, e ainda por dar todas as instrues para o correto funcionamento interno do CPU.

A unidade de controle executa trs aes bsicas intrnsecas e pr-programadas pelo prprio fabricante do processador, so elas: busca (fetch), decodificao e execuo. Assim sendo, todo processador, ao iniciar sua operao, realiza uma operao cclica, tendo como base essas trs aes. Dependendo do tipo de microprocessador, a unidade de controle pode ser fixa ou programvel.
Copyright 2009, ESAB Escola Superior Aberta do Brasil 21

Cada instruo da mquina pode envolver: Operaes aritmticas e lgicas Operaes de transferncia entre CPU e a Memria Central Operaes de transferncia entre CPU e Unidades de I/O Operaes de controle da sequncia de execuo das instrues

Figura 10 Exemplo de hardware de CPU

Entrada e Sada As unidades perifricas destinam-se a suportar as aes de comunicao da CPU e memria com o exterior, da, a sua designao de unidades de entrada e sada (ou I/O- input / output). So exemplos, o teclado, o monitor, o mouse, a impressora, as interfaces de comunicao com redes de computadores. Tambm, h unidades perifricas destinadas ao

armazenamento de dados, que, depois, so apresentados ao usurio, sob a forma de


Copyright 2009, ESAB Escola Superior Aberta do Brasil 22

arquivos, geridos pelos programas do Sistema Operacional. Exemplos: os discos rgidos, discos pticos (CD/DVD), os discos flexveis e as fitas magnticas. Exemplos de dispositivos de Entrada/Sada (Input/Output): Monitor Sada (Output) Teclado Entrada (Input) Impressora Sada (Output) Disco Rgido Entrada e Sada (Input/Output I/O) Disco Flexvel Entrada e Sada (Input/Output I/O) Mouse Entrada (Input) Interface de Rede Entrada e Sada (Input/Output)

Figura 11 Exemplos de dispositivos de E/S

Copyright 2009, ESAB Escola Superior Aberta do Brasil

23

Vdeo Assista ao vdeo Viagem dentro do computador atravs do link Estudo Complementar. Vale pena assistir!

Copyright 2009, ESAB Escola Superior Aberta do Brasil

24

NIDADE

Elementos Bsicos: representao dos dados Objetivo: Identificar os conceitos de bit, byte, caractere e palavra.

Toda informao introduzida em um computador, sejam dados que sero processados ou instruo de um programa, precisa ser entendida pela mquina, para que possa ser; corretamente, interpretada e processada. As informaes apresentadas na forma de caracteres neste mdulo de estudos, por exemplo, so entendidas porque o leitor conhece o significado dos smbolos, que representam os caracteres alfabticos e os sinais de pontuao. O computador, sendo um equipamento eletrnico, armazena e movimenta as informaes internamente sob forma eletrnica; esta pode ser um valor de voltagem ou de corrente. Para que a mquina pudesse representar eletricamente todos os smbolos utilizados na linguagem humana, seriam necessrios diferentes valores de voltagem (ou de corrente). Tal mquina certamente seria difcil de ser construda para fins comerciais e, possivelmente, teria muito baixa confiabilidade. Esta foi uma das grandes desvantagens do primeiro computador eletrnico construdo, o Eniac. Von Neumann e equipe consideravam muito mais simples e confivel projetar um circuito capaz de gerar e manipular o menor nmero possvel de valores distintos, capaz de entender apenas dois valores diferentes: 0 e 1. Dessa forma, os computadores digitais so binrios. Toda informao introduzida em um computador convertida para um algarismo binrio ou dgito binrio, conhecido como bit. O bit pode ter ento somente dois valores: 0 e 1.
25

Copyright 2009, ESAB Escola Superior Aberta do Brasil

Figura 12 Representao do bit 0 e 1

Um caractere isolado no significa nada para nosso sentindo de comunicao, razo pela qual se criam palavras. Da mesma forma, as informaes manipuladas por um computador so codificadas em grupos ordenados de bits, de modo a terem um significado til. 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 8 bits, tratados de forma individual, como unidade de armazenamento e transferncia. 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), por essa razo, a medida Kbyte representa 1.024 byte (2^10 = 1024 bytes = 8192 bits) e no 1000 bytes, o Mbyte (abreviatura do termo mega) representa 1.048.576 bytes (valor igual a 1024 x 1024 ou 210 x 210 = 220) e o giga, representado pelo caractere G, indica o valor igual a 1024 mega ou 1.048.576K ou 230.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

26

Mltiplos de bytes Prefixo binrio (IEC) Nome byte kibibyte(quilobyte) mebibyte(megabyte) gibibyte(gigabyte) tebibyte(terabyte) pebibyte(petabyte) exbibyte(exabyte) zebibyte(zettabyte) yobibyte(yottabyte) Smbolo B KiB MiB GiB TiB PiB EiB ZiB YiB Mltiplo 20 210 220 230 240 250 260 270 280 Nome byte quilobyte megabyte gigabyte terabyte petabyte exabyte zettabyte yottabyte Prefixo do SI Smbolo Mltiplo B kB MB GB TB PB EB ZB YB 100 103 106 109 1012 1015 1018 1021 1024

Figura 13 Mltimplos de bytes

Caso queira saber mais sobre bit, byte, suas potncias e converses, acessem o link: http://pt.wikipedia.org/wiki/Byte

Copyright 2009, ESAB Escola Superior Aberta do Brasil

27

Na computao tambm se criou o conceito de palavra. Assim, alm do bit e do byte, temos o conceito relacionado com o armazenamento e a transferncia de informaes.

Figura 14 Bit, Byte e Palavra.

A palavra nos computadores um valor fixo e constante para um dado processador (16, 32 ou 64 bits). De modo geral, usam-se dois valores diferentes: um relacionado unidade de armazenamento o byte; e outro para indicar a unidade de transferncia e processamento a palavra. Em geral, o computador processa valores representados por uma quantidade de bits igual palavra, indicando assim a capacidade de processamento do sistema, por exemplo, 32 bits ou 64 bits. Uma palavra deve representar um dado ou uma instruo, que pode ser processada, armazenada ou transferida em uma nica operao.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

28

NIDADE

Representao Numrica Objetivo: Representar numericamente, nos computadores, relao dos nmeros reais com os nmeros binrios.

Os sistemas numricos so sistemas de notao usados para representar quantidades abstratas denominadas nmeros. Usa-se a base para definir o sistema numrico e esta indica a quantidade de smbolos existentes. No dia a dia usa-se 10 smbolos numricos (de 0 at 9), que formam o sistema numrico decimal. O Sistema Decimal Na base decimal os nmeros expressam potncias de 10 em sua representao, como se pode observar nos exemplos abaixo:

Nmero 1758

... 103 * 1

102 * + 7

101 * + 5

100 * + 8 +

10-1 * +

10-2 *

...

O significado de cada nmero : 1758 = (1 * 103) + (7 * 102) + (5 * 101) + (8 * 100) = = 1000 + 700 + 50 + 8 = 1758

Copyright 2009, ESAB Escola Superior Aberta do Brasil

29

O Sistema Binrio Pelo fato do microcomputador ser constitudo de componentes eletrnicos digitais, torna-se necessrio o uso de um sistema numrico com 2 dgitos: o sistema binrio. O sistema binrio, ou de base 2, funciona de maneira anloga ao decimal, porm com apenas dois dgitos, 0 e 1. Neste caso, o dgito 0 representado pela no presena de tenso eltrica enquanto o 1 pela presena de tenso eltrica. Os dgitos de um sistema binrio so chamados de bit, de Binary digit (dgito binrio). A representao de nmeros em bases diferentes pode induzir confuso, portanto colocase um nmero subscrito para indicar a base de numerao adotada. Por exemplo, 7410 e 32310 so nmeros representados na base decimal; 100112 e 1012 so nmeros representados na base binria.

Converso de base binria para decimal Para se converter um nmero, na base binria para a base decimal, deve-se escrever cada nmero que compe (o bit), multiplicado pela base2 (base do sistema), elevado posio que ocupa. Uma posio esquerda da vrgula representa uma potncia e direita, uma potncia negativa. A soma de cada multiplicao de cada dgito binrio pelo valor das potncias resulta no nmero real representado. Por exemplo: 1 0 1 12 = (1 * 23) + ( 0 * 22) + ( 1 * 21) + ( 1 * 20) = 1110 1 0 02 = (1 * 22) + (0 * 21) + (0 * 20) = 410

Copyright 2009, ESAB Escola Superior Aberta do Brasil

30

Converso de base decimal para binria Para converter nmeros decimais em binrios, deve-se tratar o quociente e a parte fracionaria separadamente. Por exemplo, para converter 5310 em binrio faz-se: Operao 53/2 26/2 13/2 6/2 3/2 Quociente 26 13 6 3 1 0 Resto 1 0 1 0 1 1

O resultado a montagem do nmero a partir do ltimo resto da diviso para o primeiro, ou seja, 5310 = 1 1 0 1 0 12.

O Sistema Hexadecimal Embora o sistema binrio seja conveniente para os computadores, excessivamente inconveniente para os seres humanos. Por isto a notao hexadecimal preferida pelos profissionais de computao. A base decimal, embora mais compacta que a binria, desconfortvel devido tediosa converso entre as bases. Neste caso, adotou-se uma notao conhecida como hexadecimal, onde os dgitos binrios so agrupados em conjuntos de quatro. A cada combinao possvel de quatro dgitos binrios atribudo um smbolo.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

31

0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7

1000 = 8 1001 = 9 1010 = A 1011 = B 1100 = C 1101 = D 1110 = E 1111 = F

Converso de base binria para hexadecimal Para converter nmeros binrios em hexadecimal deve-se agrupar os dgitos binrios quatro a quatro, a partir da vrgula binria e substituir cada grupo pelo seu equivalente hexadecimal. 0100 1111 11002 = 4FC16 Converso de base hexadecimal para binria Para converter hexadecimal em binrio, deve-se substituir cada dgito hexadecimal pelo binrio equivalente de quatro dgitos. DEA16 = 1101 1110 10102

Copyright 2009, ESAB Escola Superior Aberta do Brasil

32

NIDADE

7
tcnicas para efetuar operaes matemticas com os nmeros

Operaes Binrias Objetivo:Conhecer as binrios.

As operaes em base 2 podem ser feitas utilizando-se as mesmas tcnicas empregadas na aritmtica em base 10 - o raciocnio exatamente o mesmo. O mtodo apresentado o mais fcil para os seres humanos resolverem problemas envolvendo nmeros binrios. Para os computadores, a adio e multiplicao so implementadas utilizando-se circuitos que so anlogos s tcnicas utilizadas pelos seres humanos. A operao de soma de dois nmeros em base 2 efetuada levando-se em conta que s h dois algarismos disponveis (0 e 1). Abaixo, todas as possibilidades: 0+0=0 1+0=1 0+1=1 1 + 1 = 0, e vai um ou 1 02 Um exemplo da soma de dois nmeros na base binria: 10012 + 01012: 1 0 0 1 Transporte do Bit (vai 1) 910 510 1410

1 0 1

0 1 1

1 1 0

Copyright 2009, ESAB Escola Superior Aberta do Brasil

33

Um mais um igual a zero e vai um. O resultado corresponde exatamente ao valor esperado da base. A subtrao em base 2 mais complexa por dispormos somente dos algarismos 0 e 1 e, com isso, 0 1; necessita de pedir emprestado, de um valor igual base, no nosso caso 2, obtido do prximo algarismo diferente de zero esquerda. A operao exatamente a mesma de uma subtrao na base decimal. Exemplo: -1 110110 1100 (vai um)

101010

Overflow ou estouro do limite Nos exemplos acima no levado em considerao qualquer limite ou quantidade mxima de algarismos permitida para um dado registrador. Quando uma operao aritmtica resulta em um valor acima do limite mximo possvel, trata-se do problema denominado overflow ou estouro do limite. Quando resultado de uma adio pode ter um nmero de bits maior que o da palavra utilizada esta condio denominada overflow. Quando ocorre um overflow, o processador deve sinalizar este fato, para que o resultado no seja usado. Exemplo: Somar os nmeros 1510 + 4910 num registrador de 6 bits:

Copyright 2009, ESAB Escola Superior Aberta do Brasil

34

111111 15 = (0 0 1 1 1 1)2 49 = (1 1 0 0 0 1)2 64 = (0 0 0 0 0 0)2

(vai um)

Neste caso o valor esperado (64) no pode ser representado em um registrador de 6 bits.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

35

NIDADE

Representao de Sinal Negativo I Objetivo: Entender Sinal e Magnitude; Complemento a um.

Todos os exemplos citados nas unidades anteriores se referenciam a nmeros positivos. Os nmeros positivos possuem sempre a mesma representao (conforme descrito nas unidades anteriores). Para representar nmeros negativos, h trs formas convencionadas:

Sinal e Magnitude Na representao sinal e magnitude o bit mais esquerda de um nmero binrio reservado para indicar se o nmero positivo ou negativo e conhecido como bit de sinal, onde, convencionalmente, 0 indica um nmero positivo e 1 um nmero negativo. O restante indica a magnitude do nmero (ou seu valor absoluto).

Figura 15 Representao de Nmeros Inteiros em Sinal e Magnitude

Por exemplo, para representar o nmero - 7 em um registrador de 6 bits: -7=100111 O primeiro bit foi usado para representar o sinal (negativo) e apenas 5 bits foram usados para representar o valor absoluto (7).
Copyright 2009, ESAB Escola Superior Aberta do Brasil 36

De forma geral pode-se expressar a faixa de um nmero da seguinte forma:

n 1

1 X

n 1

1 , onde n a quantidade de bits do nmero.

Como exemplo, para um registrador de 6 bits (n = 6), os limites de representao sero: de (26-1 -1) a +(26-1 -1) de (25 -1) a +(25 -1)

Faixa: de -31 a +31 A representao sinal-magnitude apresenta vantagens em relao inverso de um nmero (basta inverter o bit de sinal) e em relao determinar se o nmero positivo ou negativo (basta verificar o bit de sinal). Esta representao apresenta algumas desvantagens. O nmero zero pode ser representado de duas maneiras distintas: +010 = 00002 -010 = 10002 Por conta desta desvantagem, a representao sinal/magnitude normalmente no usada na implementao da ULA (Unidade Lgica Aritmtica). H tambm a possibilidade de ocorrer overflow sem a ocorrncia do vai um para fora do limite do registrador. Sem que haja um estouro do limite mximo do registrador. Por exemplo, se quisermos representar a soma de 15 + 17 = 32 com um registrador de 6 bits ocorrer um overflow, pois como visto, no primeiro exemplo desta unidade, a faixa de valores possveis para 6 bits de -31 a +31.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

37

+15 = 0 0 1 1 1 1 +17 = 0 1 0 0 0 1 100000

Ocorreu overflow, pois os bits da magnitude no foram suficientes para representar o valor desejado. Mas no houve estouro da capacidade do registrador, apenas mudou o bit do sinal.

Representao em complemento a um Para se achar a representao em complemento a um, deve-se inverter todos os bits do nmero, incluindo o do sinal. Por exemplo, o nmero +3 para -3, representado em complemento a um em um registrador de 6 bits: +3 = 0 0 0 0 1 1 -3 = 1 1 1 1 0 0 -> (complemento a um todos os bits invertidos) Esta representao possui vantagem sobre o sinal e a magnitude, pois h apenas um componente para soma e subtrao, diminuindo custo e o tempo de execuo. Entretanto, assim como em sinal e magnitude, h duas representaes para o nmero zero.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

38

NIDADE

Representao de Sinal II Objetivo: :Entender: Complemento de dois.

Representao em complemento de dois Nesta representao, o nmero negativo (ou a negao de um nmero) obtido em dois passos: Primeiro passo: Obtm-se o complemento de todos os bits do nmero positivo (trocando 0 por 1 e vice-versa) incluindo o bit do sinal (complemento a um) Segundo passo: Ao resultado obtido no primeiro passo soma-se 1 (em binrio), desprezando-se o ltimo transporte, se existir.

Por exemplo: Abaixo a representao em Complemento de 2 do nmero +10 para -10 em um registrador de 8 bits:

+10 = Primeiro passo Segundo passo Resultado -10 -10 = + =

0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0

Copyright 2009, ESAB Escola Superior Aberta do Brasil

39

As propriedades importantes da representao em complemento de 2 so: O sinal determinado pelo bit mais significativo; Negar um nmero duas vezes produz o nmero original; O nmero zero tem apenas uma representao; Somar as representaes em complemento de 2 de um nmero positivo e de um negativo (descartando-se o transbordo) fornece o resultado correto na representao em complemento de 2. Alm disto, a subtrao tratada como uma adio.

Um nmero representado em complemento de 2 pode assumir a seguinte faixa de valores:

2 X 2
n 1

n 1

1 , onde n a quantidade de bits do nmero.

A faixa de representao neste caso assimtrica: Para o caso de 8 bits (byte), a faixa : 128 X 127 Para 16 bits (Word), a faixa : 32768 X 32767 Para 32 bits (double word), a faixa : 2147483648 X 2147483647

Copyright 2009, ESAB Escola Superior Aberta do Brasil

40

A principal vantagem ter uma nica representao para o nmero 0. Por exemplo, para representar o nmero zero em um registrador de 6 bits: 0 = 0 0 0 0 0 0

Primeiro passo Segundo passo Resultado

-0

= +

1 1 1 1 1 1 1 1 0 0 0 0 0 0

-0

O ltimo transporte ou transbordo (1) desprezado. Portanto, o 0 e o -0 tem uma mesma representao. O mtodo de representao em complemento de dois o mais utilizado para representar nmeros negativos.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

41

NIDADE

10

Sistema de Memria Objetivo:Reconhecer a hierarquia das memrias: organizao e caractersticas.

Memria tem papel crtico no desempenho de um sistema computacional. Ela recebe dados e transfere para processador, e vice-versa. Como a cada ciclo de instruo em uma mquina Von Neumann requer que o processador obtenha o cdigo da instruo e seus operandos, a velocidade de transferncia de itens da memria para o processador , de fato, crtica. Devido a grande variedade de caractersticas desejadas e dos diferentes tipos de memria no possvel implementar um sistema de computao com uma nica memria. Na realidade, h muitas memrias no computador, as quais se interligam de forma bem estruturada; constituindo um sistema em si, parte do sistema global e podendo ser denominada subsistema de memria. As principais caractersticas tecnolgicas que diferenciam os vrios tipos de dispositivos de memria incluem: custo, tempo e modo de acesso e persistncia do armazenamento.

Hierarquia de Memrias Para um funcionamento correto e eficaz da manipulao das informaes (instrues e dados de um programa) de e para a memria de um computador, verifica-se necessidade de diferentes tipos de memria. Para certas atividades, a transferncia de informaes a mais rpida possvel (Como por exemplo, execuo das instrues no processador), em outros casos, a rapidez no fator fundamental, mas sim a capacidade de armazenamento.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

42

No sentido de atender as diferentes caractersticas necessrias a um sistema de armazenamento, com uma relao custo/benefcio atraente, as diferentes tecnologias de fabricao e armazenamento de dados so utilizadas e organizadas de forma hierrquica.

Figura 16 - Hierarquia de sistemas de memrias.

Os principais parmetros de anlise das caractersticas das memrias sero apresentados como segue: Tempo de acesso: indica quanto tempo memria gasta no barramento de dados aps uma determinada posio ter sido endereada. o perodo de tempo decorrido desde o instante em que foi iniciada a operao, at que a informao seja disponibilizada. Tempo de ciclo de memria: perodo de tempo decorrido entre duas operaes sucessivas de acesso de leitura ou escrita na memria. Capacidade: a quantidade de informao que pode ser armazenada na memria; a unidade de medida mais comum o byte, embora tambm possam ser usadas outras unidades como clulas, setores, etc. O tamanho da memria (sua capacidade) indica

Copyright 2009, ESAB Escola Superior Aberta do Brasil

43

o valor numrico total de elementos de forma simplificada, atravs da incluso de K (kilo), M (mega), ou T (tera). Volatilidade: memrias podem ser do tipo voltil ou no voltil. Uma memria no voltil a que retm a informao armazenada quando a energia eltrica desligada. Memria voltil aquela que perde a informao armazenada, quando a energia eltrica desligada. Registradores e memria RAM so memrias volteis. Memrias magnticas, ticas e tambm as do tipo ROM, EPROM so memrias do tipo no voltil. Tecnologia de fabricao: ao longo do tempo diversas tecnologias vm sendo desenvolvidas para fabricao de memrias. Entre as mais conhecidas temos as memrias de semicondutores, as memrias de meio magntico as memrias de meio tico. Temporariedade: diz respeito ao tempo de permanncia da informao em um dado tipo de memria. Custo: o custo de fabricao de uma memria bastante variado em funo de diversos fatores, entre os quais se pode mencionar, principalmente: tecnologia de fabricao, que resulta em um maior ou menor tempo de acesso, ciclo de memria, etc. Uma boa unidade de medida de custo preo por byte armazenado, em vez do custo total da memria em si. Isto porque, devido s diferentes capacidades de armazenamento, seria irreal considerar, para comparao, custo pelo preo da memria em si.

Ateno! No d continuidade aos seus estudos sem antes acessar sua SALA DE AULA e fazer a Atividade 1 atravs do link ATIVIDADES.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

44

NIDADE

11

Tipos de Memrias I Objetivo: Classificar as Memrias quanto leitura e escrita.

Quanto leitura e escrita, as memrias podem ser classificadas como: R/W - Read and Write (memria de leitura e escrita), comumente chamada de RAM (Random Access Memory ou memria de acesso aleatrio). Esta memria permite operaes de escrita e leitura pelo usurio e pelos programas. Seu tempo de acesso da ordem de poucos nano segundos (ns) e independe do endereo acessado. construda com tecnologia de semicondutores (bipolar, CCD), pode ser esttica (SRAM) ou dinmica (DRAM) e voltil. A MP construda com memria R/W. ROM - Read Only Memory ou memria apenas de leitura. Esta memria permite apenas a leitura e uma vez gravada no pode mais ser alterada. Tambm de acesso aleatrio e no voltil, portanto tambm uma RAM. utilizada geralmente por fabricantes para gravar programas que no se deseja permitir que o usurio possa alterar ou apagar acidentalmente (por ex: a BIOS - Basic Input Output System e microprogramas de memrias de controle). Quando se liga uma mquina, da ROM que vem os programas que so carregados e processados no "boot" (na inicializao o hardware aponta automaticamente para o primeiro endereo da ROM). Desta forma, parte do espao de endereamento da MP ocupada pela ROM. A ROM mais lenta que a R/W e barata, porm o processo produtivo depende de ser programada por mscara ("mask programmed") em fbrica

Copyright 2009, ESAB Escola Superior Aberta do Brasil

45

e devido ao alto custo da mscara somente se torna econmica em grandes quantidades. PROM - Programmable Read Only Memory ou memria apenas de leitura, programvel. Esta memria uma ROM programvel (em condies e com mquinas adequadas, chamadas queimadores de PROM) e geralmente comprada "virgem" (sem nada gravado), sendo muito utilizada no processo de testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas. Uma vez programada (em fbrica ou no), no pode mais ser alterada. EPROM - Erasable Programmable Read Only Memory ou memria apenas de leitura, programvel (com queimadores de PROM) e apagvel (com mquinas adequadas, base de raio ultravioleta). Esta memria uma PROM apagvel. Tem utilizao semelhante da PROM, para testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas, com a vantagem de poder ser apagada e reutilizada. EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory ou memria apenas de leitura, programvel e eletronicamente altervel. Tambm chamada EAROM (Electrically Alterable ROM). Esta memria uma EPROM apagvel por processo eletrnico, sob controle da UCP, com equipamento e programas adequados. mais cara e, geralmente, utilizada em dispositivos nos quais se deseja permitir a alterao, via modem; possibilitando a carga de novas verses de programas distncia ou ento, para possibilitar a reprogramao dinmica de funes especficas de um determinado programa, geralmente relativas ao hardware (p.ex., a reconfigurao de teclado ou de modem, programao de um terminal, etc.).

Copyright 2009, ESAB Escola Superior Aberta do Brasil

46

NIDADE

12

Tipos de Memrias II Memria Principal Objetivo:Conhecer o funcionamento e as caractersticas da Memria Principal do computador.

Memria Principal a parte do computador onde programas e dados so armazenados para processamento. A informao permanece na Memria Principal apenas enquanto for necessrio para seu emprego pela UCP, sendo ento a rea da MP liberada para ser posteriormente utilizada por outra informao. Quem controla a utilizao da Memria Principal o Sistema Operacional. Uma das principais caractersticas definidas no projeto de arquitetura de Von Neuman consistia no fato de ser uma mquina de programa armazenado. O fato das instrues, uma aps a outra, poderem ser imediatamente acessadas pela UCP que garante o automotismo do sistema e aumenta a velocidade de execuo dos programas. A memria precisa ter uma organizao que permita ao computador guardar e recuperar informaes quando necessrio. No teria nenhum sentido armazenar informaes que no fosse possvel recuperar depois. Portanto, no basta transferir informaes para a memria. preciso ter como encontrar essa informao mais tarde, quando ela for necessria, e para isso preciso haver um mecanismo que registre exatamente onde a informao foi armazenada, este mecanismo conhecido como Clula. Clula a unidade de armazenamento do computador. A Memria Principal organizada em clulas que a menor unidade da memria que pode ser endereada (no possvel buscar uma "parte" da clula) e tem um tamanho fixo (varia conforme a arquitetura da mquina). As memrias so compostas de um determinado nmero de clulas ou posies e cada clula composta de um determinado nmero de bits.
Copyright 2009, ESAB Escola Superior Aberta do Brasil 47

Cada clula identificada por um endereo nico, pela qual referenciada pelo sistema e pelos programas. As clulas so numeradas sequencialmente, uma a uma, de 0 a (N-1), chamado o endereo da clula. A estrutura da Memria Principal um problema do projeto de hardware: - mais endereos com clulas menores ou - menos endereos com clulas maiores?

O tamanho mais comum de clula era 8 bits (1 byte); hoje so comuns clulas contendo vrios bytes. Endereo da clula 0 1 2 3 4 5 ... N Clula de dados (8 bits) 01100010 10111001 01100010 01100010 10111001 01100010 ... N

Capacidade da Memria Principal A capacidade da MP em bits igual ao produto do n de clulas pelo total de bits por clula. T=NxM T = capacidade da memria em bits N = n de endereos M = n de bits de cada clula

Copyright 2009, ESAB Escola Superior Aberta do Brasil

48

Para encontrar a capacidade em bytes, bastaria encontrar a capacidade em bits e depois dividir por 8 (cada byte contm 8 bits) ou ento converter o tamanho da clula para bytes e depois multiplicar pelo nmero de clulas. O ltimo endereo na memria o endereo N-1 (os endereos comeam em zero e vo at N-1).

Copyright 2009, ESAB Escola Superior Aberta do Brasil

49

NIDADE

13

Tipos de Memrias III - Memria Cache Objetivo: Conhecer o funcionamento da memria cache e a sua relao com a memria principal.

Cache uma memria especial de alta velocidade projetada para acelerar o processamento das instrues dadas Memria Principal pela CPU. A CPU pode acessar instrues e dados localizados na memria cache muito mais rapidamente do que na memria principal. Para a CPU processar uma instruo necessrio que esta seja carregada no registrador de instruo e seus operandos sejam trazidos da memria para os demais registradores. Enquanto estes acessos Memria Principal (MP) so feitos, a CPU tem que ficar esperando que os dados sejam disponibilizados. Para que a MP no seja um gargalo que limite a velocidade de processamento da CPU; foi criado um esquema de utilizao de memria Cache, que muito mais rpida que a principal, com tempos de acesso compatveis com a velocidade da CPU, e que serve para guardar as ltimas posies de memria acessadas.

Figura 17 - Memria cache e memria principal.

Como a experincia nos mostra que a reutilizao dos mesmos dados ou instrues muito intensa, este processo aumenta o desempenho do sistema de computao.
Copyright 2009, ESAB Escola Superior Aberta do Brasil 50

O chamado princpio da localidade est por trs da maneira como os programas operam. Este princpio estabelece que os programas acessem uma parte relativamente pequena do seu espao de endereamento em um instante qualquer. Existem dois diferentes tipos de localidade: Localidade temporal: se um item referenciado, ele tende a ser referenciado novamente dentro de um curto espao de tempo. Localidade espacial: se um item referenciado, itens cujos endereos sejam prximos a eles tendem a ser logo referenciados.

No exemplo abaixo, certo programa constitudo de um grupo de instrues iniciais realizadas em sequncia (Sequncia1) dois loops e o resto do cdigo (Sequncia 2). Assim, quando o programa iniciado as instrues da sequncia1 so consecutivamente executadas uma aps a outra at que a regio de cdigo constituda pelo loop 1 seja executada. A localidade espacial aparece explicitamente na execuo de cada uma das sequncias. A localidade temporal, por sua vez, pode ser percebida quando da execuo de qualquer um dos loops, cuja sequncia de instrues nele contidas ser executada de tempos em tempos (a cada repetio do lao).

Copyright 2009, ESAB Escola Superior Aberta do Brasil

51

Figura 18 Exemplo de Princpio de localidade.

Exemplo dos princpios de localidade espacial e temporal Quando o processador solicita um item de dado gerando uma referncia para seu endereo, que pode ser fsico ou virtual, o gerenciador de memria requisita este item do cache. Duas situaes podem ocorrer: 1. cache hit - Acerto: o item est presente no cache, retornado para o processador praticamente sem perodo de latncia; 2. cache miss - Falta ou Falha: o item no est presente no cache e o processador deve aguardar item ser buscado da memria principal.

A taxa de acertos, ou razo de acertos, corresponde frao dos acessos memria encontrados no nvel superior, e com frequncia usada como medida de performance da
Copyright 2009, ESAB Escola Superior Aberta do Brasil 52

hierarquia de memria. A taxa de faltas a frao de acessos memria no encontrados no nvel superior (na cache). Define-se como tempo de acerto o tempo necessrio para acessar o nvel superior da hierarquia (cache), que inclui o tempo necessrio para determinar se o acesso a informao vai gerar um acerto ou uma falta. A penalidade por falta o tempo necessrio para substituir um dos blocos do nvel superior, pelo bloco do nvel inferior contendo a informao desejada, mais o tempo para enviar a informao ao processador. Em razo do nvel superior (cache) ser menor e de ser constitudo de memrias mais rpidas, o tempo de acerto muito menor que o tempo necessrio ao nvel mais baixo da hierarquia (MP). Justamente este tempo de acesso o maior tempo dentro da penalidade por falta. Para que haja aumento de desempenho, com a incluso da memria cache, necessrio que exista mais acertos do que faltas. Isto implica no dimensionamento adequado da memria cache como um todo e principalmente do tamanho de cada bloco.

Vdeo Assista aos vdeos Como um computador funciona (parte 1 e 2) atravs do link Estudo Complementar. Este vdeo uma animao com humor sobre o funcionamento de um computador. Vale pena assistir!

Copyright 2009, ESAB Escola Superior Aberta do Brasil

53

NIDADE

14

Registradores Objetivo: Conhecer o funcionamento dos registradores especiais do processador, responsveis por organizarem o controle da execuo das instrues.

Dentro da UCP existe um conjunto de registradores que tem duas funes: Possibilitar ao programador de linguagem de montagem ou de mquina minimizar referncias memria. So os registradores visveis para o usurio. Controlar as operaes da CPU. So usados por programas privilegiados do sistema operacional e pela unidade de controle, para controlar a execuo de programas. So os Registradores de controle e estado.

Registradores visveis para o usurio Registradores visveis ao usurio so aqueles que armazenam as informaes que esto sendo processadas em um determinado instante e podem ser referenciados pela linguagem de mquina que a CPU executa. Podem ser classificados nas seguintes categorias: Registradores de Uso Geral Registradores de Dados Registradores de Endereos

Copyright 2009, ESAB Escola Superior Aberta do Brasil

54

A quantidade e funo de registradores existentes variam de acordo com o modelo do processador e de acordo com o fabricante. Os registradores de uso geral podem ser usados para uma variedade de funes, em alguns casos, podem ser usados para endereamentos. Em outros, existe uma separao clara ou parcial entre registradores de dados e registradores de endereos. Registradores de dados podem ser usados apenas para conter dados e no podem ser usados no clculo de endereamentos dos operandos. Registradores de endereos podem ser empregados, at certo ponto, como registradores de: Propsito Geral ou podem ser dedicados para um determinado modo de endereamentos. Alguns exemplos so: Registradores de Segmento: tem como finalidade indicar ao processador o endereo de um determinado segmento. Registradores de ndices: so usados para endereamento indexado, possivelmente com autoindexao. Apontador de topo de pilha: se houver endereamento de operandos na pilha visvel para o usurio, ento a pilha ser alocada na memria e existir um registrador dedicado que aponta para o topo da pilha. Com isso, as operaes de empilhar e desempilhar no requer um operando explcito.

Uma questo importante de projeto do conjunto de registradores decidir se sero de uso geral ou se tero uso especfico. Com o uso de registradores especializados, o tipo de registrador referenciado como operando de uma instruo geralmente implcito, sendo determinado pelo cdigo de operao. Com isso o campo do operando apenas identifica um registrador de um conjunto de registradores especializados, com economia de alguns bits de instruo. O outro lado desta questo que a especializao limita a flexibilidade de programao.
55

Copyright 2009, ESAB Escola Superior Aberta do Brasil

Outra questo importante a quantidade de registradores a serem disponibilizados, seja para uso geral, seja para registradores de dados e de endereos. Um nmero muito pequeno de registradores resulta em mais referncias memria. Um nmero muito grande, por outro lado, no reduz significativamente o nmero de referncias memria. O nmero adequado parece estar entre 8 e 32 registradores (STALLINGS, 2002). O tamanho do registrador deve ser suficiente para acomodar o maior endereo usando no sistema, no caso de registrador de endereos. No caso de registrador de dados, deve ser capaz de conter a maioria dos tipos de dados.

Registradores de Controle e Estado So registradores empregados para controlar a operao da CPU e so usados para a transferncia de dados entre a CPU e a memria. Quatro registradores so essenciais para a execuo das instrues: Contador de Instruo (CI): tem a finalidade de indicar a prxima instruo a ser executada, sendo automaticamente atualizado pelo processador aps a busca da instruo. A instruo buscada carregada no RI. Registrador de Instruo (RI): contm a ltima instruo buscada. onde o cdigo de operao e as referncias a operando so analisadas. Registrador de Endereamento Memria (MAR): contm o endereo de uma posio de memria. A troca de dados com a memria feita usando o MAR e o MBR. Em um sistema com barramento, o MAR conectado diretamente ao barramento de endereo. Registrador de armazenamento temporrio de dados (MBR): contm uma palavra de dados a ser escrita na memria ou a palavra lida mais recentemente.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

56

NIDADE

15

Representao e Ciclo de Instruo Objetivo: Identificar a Representao da Instruo e a anlise do Ciclo da Instruo.

Representao da Instruo Quem executa um programa o hardware e o que ele espera encontrar um programa em linguagem de mquina (uma sequncia de instrues de mquina em cdigo binrio). Um programa em linguagem de alto nvel no pode ser executado diretamente pelo hardware, pois ele tem que ser transformado (traduzido) para linguagem de mquina, antes de ser carregada para memria, para que o hardware possa execut-lo. A linguagem de mquina composta de cdigos binrios, representando instrues, endereos, dados e est totalmente vinculada ao conjunto (set) de instrues da mquina.

Funcionalmente, as operaes do computador so:

Matemticas (aritmticas, lgicas, de complemento, de deslocamento.) Movimentao de dados (entre memria e registrador) Entrada-sada (leitura e escrita em dispositivos externos - dispositivos de Entrada / Sada)

Controle (desvio da sequncia de execuo, parar, entre outros)

Copyright 2009, ESAB Escola Superior Aberta do Brasil

57

Cada uma das instrues tem um cdigo binrio associado, que o Cdigo da Operao.

Formato das Instrues A instruo composta de Cdigo de Operao e zero, um ou mais Operandos:

Cdigo de operao (OPCODE) Operando 1 (OP1) OP 2 OP 3...

Cdigo de Operao ou OPCODE - identifica a operao a ser realizada pelo processador. o campo da instruo cujo valor binrio identifica a operao a ser realizada. Cada instruo dever ter um cdigo nico que a identifique.

Operando(s) - o campo da instruo cujo valor binrio sinaliza a localizao do dado (ou o prprio dado) que ser manipulado (processado) pela instruo durante a operao. Em geral, um operando identifica o endereo de memria onde est contido o dado que ser manipulado. Um operando pode tambm indicar um Registrador (que conter o dado propriamente dito ou um endereo de memria onde est armazenado o dado). Os operandos fornecem os dados da instruo. Obs.: Existem instrues que no tm operando. Ex.: Instruo HALT (PARE).

H diversos formatos de instrues, com caractersticas particulares, vantagens e desvantagens. O conjunto de instrues de uma mquina pode ser constitudo por instrues de diversos formatos. Esta flexibilidade permite a escolha da instruo adequada para aplicao em cada caso.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

58

Conjunto de instrues que pode ser analisado sob alguns aspectos, por exemplo: - quantidade de instrues - quantidade de operandos - modo de endereamento ( a forma de sinalizar a localizao de um dado, conhecido como Modos de Endereamento).

Ciclo de Instruo O processamento necessrio para a execuo de uma instruo chamado de ciclo de instruo. De forma simplificada pode-se entender o ciclo de instruo como composto de dois passos bsicos: ciclo de busca e o ciclo de execuo. De forma mais geral, o ciclo de instruo formado pelos seguintes passos: Busca da prxima instruo no endereo da memria principal apontado pelo CI e armazenamento da mesma no RI. Atualizao do CI, fazendo-o apontar para a instruo seguinte (CI= CI +1). Determinao do tipo de instruo armazenada no RI. Se a instruo precisa de operandos armazenados na memria principal, os seus endereos devem ser determinados. Caso necessrio, busca os operandos na memria principal. Execuo da instruo. Retorno ao primeiro passo, para iniciar a execuo da instruo seguinte.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

59

Figura 19 - Ciclo de instruo bsico.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

60

NIDADE

16

Modos de Endereamento Objetivo: Conhecer os tipos de modos de endereamento.

Na unidade anterior foi descrito o formato bsico de instrues de mquina e o ciclo de execuo de cada instruo, concluindo que: 1) O endereamento de uma instruo sempre realizado atravs do valor armazenado no Contador de Instruo (CI). Todo o ciclo de instruo iniciado pela transferncia da instruo para o Registrador de Instruo (RI); 2) Toda instruo consiste em uma ordem codificada (cdigo de operao), para o processador executar uma operao qualquer sobre os dados; 3) A localizao do(s) dado(s) pode estar explicitamente indicada na prpria instruo por um ou mais conjuntos de bits, denominados campo do operando. Todos os exemplos apresentados, at esse ponto, definiram o campo operando da instruo como sendo um endereo da MP onde est localizado o dado; no entanto, essa no a nica maneira de indicar a localizao dos dados, havendo outros modos de endereamento. Dentre os diversos modos de endereamento desenvolvidos para processadores, os principais so:

Modo Imediato O mtodo mais simples e rpido de obter um dado indicar seu prprio valor no campo operando da instruo, em vez de busc-lo na memria. A vantagem desse mtodo reside
Copyright 2009, ESAB Escola Superior Aberta do Brasil 61

no curto tempo de execuo da instruo, pois no gasta ciclo de memria para sua execuo, exceto o nico requerido para a sua busca.

Desvantagens - O tamanho do dado fica limitado ao nmero de bits do operando (campo operando da instruo). A limitao de tamanho do campo operando reduz o valor mximo do dado que pode ser armazenado. - Este modo de endereamento no permite flexibilidade para alterar dados que variam a cada execuo do programa, portanto no adequado para variveis repetidamente operadas com diferentes valores a cada execuo do programa.

Modo Direto Nesse mtodo, o valor binrio contido no campo operando da instruo indica o endereo de memria onde se localiza o dado.

Vantagens - aplicado em mais situaes que o modo imediato; - Requer apenas uma referncia memria para busca do dado (alm de uma para a busca da instruo), sendo mais rpido que o modo indireto.

Desvantagens - Limitao do endereo da MP que pode ser indicado pelo tamanho do campo operando. - mais lento que o modo imediato.
Copyright 2009, ESAB Escola Superior Aberta do Brasil 62

Modo Indireto Nesse mtodo, o valor binrio contido do campo operando representa o endereo de uma clula, mas o contedo da referida clula no o valor de um dado (como no modo direto), outro endereo de memria, cujo contedo o valor do dado. A grande desvantagem desse mtodo , obviamente, a maior quantidade de ciclos de memria requerida para completar o ciclo de instruo, pois para se acessar um dado, no modo indireto, necessrio efetuar dois acessos memria. Um para buscar o endereo do dado e outro para, efetivamente, buscar o dado.

Vantagens - Permite implementar estruturas de organizao de dados mais complexas, mais sofisticadas. - Elimina a limitao de clulas endereveis.

Modo de endereamento por registrador Esse mtodo tem caracterstica semelhante aos modos direto e indireto, exceto que a clula de memria referenciada na instruo substituda por um dos registradores do processador. Com isso, o endereamento mencionado na instruo passa a ser o de um registrador, e no mais de uma clula da MP. A primeira vantagem, logo observada, consiste no menor nmero de bits necessrios para enderear os registradores, visto que estes existem em muito menor quantidade que as clulas de memria. registrador: H duas maneiras de empregar o modo de endereamento por

Copyright 2009, ESAB Escola Superior Aberta do Brasil

63

Modo por registrador direto O registrador endereado na instruo contm o dado a ser manipulado.

Modo por registrador indireto O registrador referenciado armazena o endereo de uma clula de memria onde se encontra o dado.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

64

NIDADE

17

Pipelining Objetivo: Entender o que significa Pipelining.

VDEO Ateno! Antes de dar continuidade aos seus estudos. V ao ambiente CAMPUS ON-LINE e assista ao vdeo referente UNIDADE 17.

Pipelining uma tcnica desenvolvida para melhorar o desempenho de processadores. O pipelining permite que um processador sobreponha a execuo de diversas instrues de modo que mais instrues possam ser executadas no mesmo perodo de tempo. Uma pipelining de instrues semelhante a uma linha de montagem, de uma indstria. Na linha de montagem pode-se comear a fazer o segundo produto antes do primeiro estar concludo. De forma anloga, em uma pipelining de instrues, novas entradas so aceitas em uma extremidade, antes que entradas aceitas previamente apaream como sadas na outra extremidade. Por exemplo: Em uma lavanderia, onde cada sacola de roupa a ser limpa equivalente a uma instruo, cada etapa do processo de limpar a roupa (lavar, secar e dobrar) equivale a um ciclo de processamento; e a quantidade de sacolas de roupa limpas num determinado
65

Copyright 2009, ESAB Escola Superior Aberta do Brasil

perodo de tempo era equivalente ao throughput do processador. Em uma lavanderia, sem pipeline, embora tenha uma mquina de lavar, uma de secar e uma pessoa para dobrar a roupa; somente uma sacola de roupa limpa de cada vez. Enquanto no lavar, secar e dobrar as roupas desta sacola, nenhuma outra sacola de roupa pode ser limpa. Nada ocorre simultaneamente. Se esta lavanderia utilizasse um processo em pipeline, logo que as roupas da primeira sacola estivessem lavadas, elas passariam para a secadora liberando a mquina de lavar para uma nova sacola de roupas. Assim que as roupas da primeira sacola estivessem secas, ento elas passariam a ser dobradas, as da segunda sacola que estavam sendo lavadas passariam para a o secador e uma nova sacola poderia ser posta na mquina de lavar.

Figura 20 - Fluxo de instrues em um processador com pipeline

Na execuo em pipeline, cada tarefa individualmente ainda requer n segundos e o tempo total para a execuo de uma operao em pipeline , em geral, ligeiramente maior que o tempo para executar a mesma operao monoliticamente (sem pipeline).
Copyright 2009, ESAB Escola Superior Aberta do Brasil 66

Um dos overheads associados operao de um pipeline decorrente da necessidade de se transferir dados entre os estgios. H duas estratgias bsicas para controlar a transferncia de dados entre os estgios de um pipeline: o mtodo assncrono e o mtodo sncrono.

Mtodo Assncrono No mtodo assncrono, os estgios do pipeline comunicam-se atravs de sinais de handshaking, indicando a disponibilidade de dados do estgio corrente para o prximo estgio (RDY); indicando a liberao do estgio corrente para o estgio anterior (ACK).

Figura 21 Mtodo assncrono

Mtodo Sncrono No mtodo sncrono, os estgios do pipeline so interconectados por latches (registradores cujo objetivo armazenar dados) que armazenam os dados intermedirios durante a transferncia entre estgios, que controlada por um sinal de relgio. Neste caso, o estgio com operao mais lenta determina a taxa de operao do pipeline.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

67

Um ciclo de relgio

S1
Busca de Instrues

S2
Decodificao de Instrues

S3
Leitura de Registradores Processador sem Pipeline

S4
Execuo de Instrues

S5
Escrita de Resultados

Um ciclo de relgio L a t c h

Um ciclo de relgio L a t c h

Um ciclo de relgio L a t c h

Um ciclo de relgio L a t c h

Um ciclo de relgio

S1
Busca de Instrues

S2
Decodificao de Instrues

S3
Leitura de Registradores

S4
Execuo de Instrues

S5
Escrita de Resultados

Processador com Pipeline

Figura 22 Mtodo sncrono

O mtodo assncrono o que permite maior velocidade de operao do pipeline. Entretanto, o mtodo sncrono o mais adotado devido sua simplicidade de projeto e operao.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

68

NIDADE

18

Organizao de uma Interface de E/S (Comunicao entre a Memria e UCP Barramentos) Objetivo: Conhecer a organizao da interface de E/S.

A funo primordial de uma interface de E/S realizar controles adequados sobre os dispositivos perifricos, de modo que o processador possa se relacionar com estes perifricos de forma transparente. A organizao de uma interface de E/S pode ser entendida em duas partes, conforme mostrado na figura a seguir.

Figura 23 - Organizao tpica de uma interface de E/S.

Qualquer que seja o tipo de interface, a parte genrica muito semelhante. Nesta parte so encontrados, usualmente, alguns registradores que variam em quantidade de acordo com o tipo de perifrico acoplado. Pelo menos um registrador de dados, um registrador de

Copyright 2009, ESAB Escola Superior Aberta do Brasil

69

controle e um registrador de estado esto inclusos, sendo o acesso a estes registradores feitos atravs de endereos de E/S diferentes. Para operao de sada, o processador escreve um dado no registrador de dados e a interface procede o envio ao perifrico. Na operao de entrada, a interface armazena o dado recebido do perifrico no registrador de dados, que por sua vez lido pelo processador. Na operao de sada, o processador envia comandos atravs do registrador de controle, para que a interface possa interpretar e executar a operao solicitada; esta operao pode ser interna interface ou sobre o perifrico a ela conectado. O registrador de estado usado para veicular informaes gerais sobre uma operao de E/S. Tipicamente, este registrador possui bits para indicar o trmino de uma operao e para indicar condies de erro que eventualmente possam acontecer durante a operao. A parte especfica tem interao direta com o perifrico, sendo desta forma muito diferente de um perifrico para outro. Apesar das diferenas, geralmente na parte especfica temos dois conjuntos de sinais, um a via atravs da qual os dados so transferidos; outro so os sinais de controle com o perifrico.

Barramento de E/S Um barramento, ou bus, nada mais do que um caminho comum pelo qual os dados trafegam dentro do computador. Este caminho usado para comunicaes e pode ser estabelecido entre dois ou mais elementos do computador. O tamanho de um barramento importante, pois ele determina quantos dados podem ser transmitidos em uma nica vez. Por exemplo, um barramento de 16 bits pode transmitir 16 bits de dado, e um barramento de 32 bits pode transmitir 32 bits de dados a cada vez. A grande vantagem do uso do barramento de E/S ser um padro de comunicao entre o dispositivo e o processador, ou seja, uma interface. Isso faz com que sistemas que utilizem barramentos de E/S sejam muito flexveis, em oposio a conexes diretas entre o
Copyright 2009, ESAB Escola Superior Aberta do Brasil 70

processador e cada dispositivo de E/S, permitindo que um sistema suporte muitos dispositivos de E/S diferentes; dependendo das necessidades dos seus usurios, e permitindo que estes mudem os dispositivos de E/S, que esto conectados em seus sistemas, medida que as suas necessidades mudam. A principal desvantagem dos barramentos em geral (e tambm dos barramentos de E/S) que tem uma largura de banda fixa que precisa ser compartilhada por todos os dispositivos que esto sobre ele. O barramento pode ser dividido em trs conjuntos: 1. Barramento de endereos: por onde trafegam os endereos de memria ou dispositivos de E/S. Este barramento unidirecional: somente o processador fornece endereos. Tem como funo conduzir um endereo fornecido pelo processador para que este endereo possa ser acessado. 2. Barramento de dados: por onde trafegam os dados do processador para memria e dispositivos de E/S e vice-versa. Portanto, tal barramento bidirecional: o processador tanto envia como recebe dados. 3. Barramento de controle: bidirecional. Por tal barramento trafegam os sinais de controle do microprocessador para memria e dispositivos, bem como da memria e dispositivos para o processador. Tem como funo indicar que o processador quer executar determinada ao (como por exemplo, ler ou gravar de um endereo de memria) ou receber um sinal indicando determinado estado (por exemplo, dado j disponvel no barramento de dados).

Copyright 2009, ESAB Escola Superior Aberta do Brasil

71

NIDADE

19

Entrada/Sada Objetivo:Identificar ocontrole das conexes entre o processador, a memria e os outros dispositivos.

Em sistemas como computadores pessoais e estaes de trabalho as interfaces de E/S esto ligadas ao processador atravs de barramentos de endereo, dados e controle, de maneira semelhante conexo entre memria principal e processador. A organizao tpica de um computador incluindo o subsistema de E/S mostrada na figura a seguir.

Figura 24 - Arquitetura de um computador incluindo o subsistema de E/S.

O que todos os dispositivos de entrada tm em comum que eles precisam codificar (converter) a informao de algum tipo em dados que podem ser processados pelo sistema digital do computador. Dispositivos de sada por outro lado, decodificam os dados em
Copyright 2009, ESAB Escola Superior Aberta do Brasil 72

informao que entendida pelo usurio do computador. Neste sentido, um sistema de computadores digital um exemplo de um sistema de processamento de dados. O processador realiza acessos de leitura ou de escrita a uma interface de E/S. Em um acesso de leitura, o processador obtm um dado recebido do dispositivo perifrico conectado interface, ou ento uma informao de estado sobre uma operao de E/S em andamento ou recm-completada. Em um acesso de escrita, o processador fornece interface um dado que deve ser enviado ao dispositivo perifrico, ou ento o cdigo de um comando que inicia uma operao de E/S ou uma operao de controle sobre o dispositivo perifrico. Nos acessos s interfaces, o processador executa ciclos de barramento semelhantes aos descritos no captulo anterior. Cada interface de E/S identificada por um endereo nico. Em um acesso de leitura, o processador coloca o endereo da interface no barramento de endereo e ativa um sinal de leitura. Aps certo intervalo de tempo, a interface coloca a informao desejada no barramento de dados. O processador finaliza o ciclo de barramento lendo a informao presente no barramento de dados e retirando o endereo e o sinal de controle. Em um acesso de escrita, o processador coloca o endereo da interface e o dado nos respectivos barramentos, e ativa um sinal de escrita. A interface selecionada armazena a informao presente no barramento de dados. No final do ciclo de barramento, o processador retira o endereo e o dado e desativa o sinal de controle. Assim como nos ciclos de barramento com a memria, todos estes eventos so comandados pelo processador e ocorrem em sincronismo com o sinal de clock.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

73

NIDADE

20

Formas de Comunicao Objetivo: Conhecer as diferentes formas de Comunicao da Informao, pelos dispositivos do computador.

As portas de comunicao de um microcomputador permitem a interligao fsica dele com os diversos perifricos como: impressoras, modem, mouse, scanners, etc. H duas maneiras bsicas de comunicao de dados entre o computador e outros equipamentos. Temos a comunicao paralela e a comunicao serial.

Comunicao Serial Na comunicao Serial, o byte enviado por apenas uma via ou fio. Para que isso seja possvel, o byte desmembrado em bits e cada um enviado separadamente, um aps o outro. No local da recepo, os bits so "montados" novamente, recompondo o byte. Os sinais de controle so enviados separadamente.

Figura 25 - Esquema de comunicao serial.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

74

A porta serial contm um chip UART (Universal Asyncbronous Reciver/Transmiter) e alguns componentes de apoio. Como o nome indica, este chip recebe dados provenientes do barramento do PC e os traduz para o formato utilizado nas transmisses seriais. O chip tambm executa o procedimento inverso: receber uma string de dados, remover os caracteres de enquadramento e transferir os bytes de dados para o PC. Como os bits so transmitidos sequencialmente um a um, sua utilizao normalmente indicada apenas para perifricos mais lentos, como por exemplo, teclado, mouse, etc. ou quando o problema da distncia for mandatrio, como nas comunicaes a distncias mdias (tal como em redes locais) ou longas (comunicao via linha telefnica usando modem). A transmisso serial tem recebido aperfeioamentos importantes (seja de protocolo, de interface e de meio de transmisso) que vem permitindo o aumento da velocidade de transmisso por um nico par de fios, cabo coaxial ou de fibra tica. Como o aumento da velocidade de transmisso em interfaces paralelas ocasiona mais skew, a tendncia tem sido no sentido do aperfeioamento das interfaces seriais que hoje permitem taxas de transferncia muito altas com relativamente poucas restries de distncia. Em

microcomputadores, a interface USB - Universal Serial Bus permite hoje ligar at 128 dispositivos a taxas muito altas (centenas de kbps).

Comunicao Paralela Comunicao Paralela aquela em que os bits, que compem um byte ou palavra de dados, so enviados ou recebidos simultaneamente bem como os sinais de controle de comunicao. Para que isso seja possvel, faz-se necessrio um meio fsico (fio) para cada informao, seja ele de dado ou de controle.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

75

Figura 26 - Esquema de comunicao paralela.

O processo de transferncia em paralelo envolve um controle sofisticado e razoavelmente complexo, o que o torna mais caro. A propagao dos sinais no meio fsico um dos problemas mais importantes neste tipo de comunicao. A propagao dos sinais deve ser tal que todos os bits cheguem juntos outra extremidade do cabo. Cada condutor que compe o cabo tem pequenas diferenas fsicas, o que pode tornar a velocidade de propagao dos sinais ligeiramente diferente para cada condutor. Para cabos mais longos, um bit pode chegar a um determinado condutor pode chegar mais adiantado ou atrasado em relao aos demais, tornando a informao irreconhecvel. Este fenmeno chama-se skew. Em face deste problema, h limites para o comprimento do cabo que interliga um dispositivo ao computador, quando se usa o modo paralelo. As restries citadas contribuem para que a utilizao da comunicao em paralelo se limite a aplicaes que demandem altas taxas de transferncia; normalmente associadas a dispositivos mais velozes tais como, unidades de disco, ou que demandem altas taxas de transferncia, como CD-ROM, DVD, ou mesmo impressoras, e que se situem muito prximo do ncleo do computador. Em geral, o comprimento dos cabos paralelos limitado a at um mximo de 1,5 metros. O conector de uma interface paralela do tipo DB-25 e contm 25 pinos.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

76

Figura 27 - conector de uma interface paralela do tipo DB-25

Antes de dar continuidade aos seus estudos fundamental que voc acesse sua SALA DE AULA e faa a Atividade 2 no link ATIVIDADES.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

77

NIDADE

21

Tcnicas de Transferncia de Dados I Objetivo Saber utilizar as E/S com Polling e Interrupo.

Em geral, uma operao de E/S envolve a transferncia de dados entre a memria e a interface de E/S. Existem basicamente trs tcnicas para realizar a transferncia de dados: polling, interrupo e acesso direto memria. Descrio a seguir: E/S com Polling Na E/S com polling, o processador controla toda a transferncia de dados entre a memria e a interface de E/S. Para entender como o procedimento desta tcnica, considere o exemplo de uma operao de escrita em um setor de disco. Suponha que a interface controladora de disco semelhante quela mostrada na abaixo. Normalmente, o registrador de estado possui um bit, chamado done bit, que desativado quando um dado escrito no registrador de dados, sendo ativado quando este dado escrito no setor do disco. O diagrama abaixo mostra como acontece escrita de um setor de disco usando-se E/S com polling.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

78

Figura 28 - Exemplo de E/S com polling.

Aps escrever um dado no registrador de dados, o processador l o registrador de estado e testa o done bit, para verificar se o mesmo j foi escrito no setor do disco. Este teste do bit de estado chamado polling. O processador continua realizando o polling at encontrar o done bit ativado, o que indica que o dado j foi escrito no setor do disco. Quando isto acontece, e se ainda existe algum dado a ser enviado, o processador escreve o novo dado no registrador de dados e reinicia o polling. Este ciclo repetido at que todos os dados tenham sido escritos no setor do disco. A principal vantagem da E/S com polling a sua simplicidade. No entanto, esta tcnica possui a desvantagem de que o processador fica dedicado operao de E/S. Isto pode ser extremamente ineficiente, sob o ponto de vista da utilizao do processador. Considere uma operao de envio de um bloco de caracteres para uma impressora. O tempo de impresso de um caracter infinitamente maior que o tempo de execuo de uma instruo. Manter o
Copyright 2009, ESAB Escola Superior Aberta do Brasil 79

processador em polling durante o tempo de impresso de cada caracter um desperdcio, j que durante este intervalo de tempo o processador poderia executar alguns milhes de instrues de outro programa. Devido ao fato que o processador fica dedicado operao de E/S at o seu trmino, o uso da tcnica de E/S com polling restrito apenas a sistemas onde apenas um programa pode se encontrar em execuo a cada instante.

E/S com Interrupo Na E/S com polling, o processador fica dedicado operao de E/S porque ele o responsvel por determinar quando um novo dado pode ser transferido entre a memria e a interface de E/S. O mesmo no acontece na E/S com interrupo. Nesta tcnica, a interface responsvel por notificar o processador quando um novo dado pode ser transferido. Enquanto a E/S com polling uma tcnica puramente de software, a E/S com interrupo requer um suporte de hardware. A interface deve gerar um sinal de interrupo, atravs do qual ela notifica o processador quando uma operao de E/S foi concluda.

Figura 29 - Exemplo de E/S com interrupo.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

80

NIDADE

22

Tcnicas de Transferncia de Dados II Objetivo: Conhecer as tcnicas E/S com Interrupo e influncias no funcionamento do computador.

Considerando o exemplo da operao de escrita de um setor de disco. O diagrama na Figura 29 mostra como esta operao realizada atravs de E/S com interrupo. A operao dividida em duas fases. Na fase de disparo da operao, o processador envia para a interface o comando, o nmero da trilha e do setor. Ao final da fase de disparo, o processador passa a executar outra atividade qualquer, por exemplo, parte de outro programa. A interface inicia a fase de transferncia de dados fazendo um pedido de interrupo ao processador, atravs do sinal de interrupo. Ao receber o pedido de interrupo, o processador suspende a execuo do programa corrente e passa a executar uma rotina especial, chamada rotina de servio de interrupo (tambm chamada device driver ou device handler). Nesta rotina, o processador verifica inicialmente se o ltimo dado j foi enviado. Se este o caso, o processador conclui a escrita do setor do disco lendo o registrador de estado da interface. Caso contrrio, o processador envia um novo dado e retorna para o programa que se encontrava em execuo. Durante a fase de transferncia de dados, a interface faz um pedido de interrupo a cada dado escrito no setor do disco. O processador responde ao pedido de interrupo executando a rotina de servio e enviando um novo dado. Isto se repete at que todos os dados tenham sido escritos no setor do disco. Normalmente, a interface de disco conhece o tamanho do setor e mantm uma contagem dos dados j recebidos, de forma que ela pode determinar quando deve encerrar a sequncia de pedidos de interrupo.
Copyright 2009, ESAB Escola Superior Aberta do Brasil 81

Em um sistema comum existirem vrias interfaces diferentes que fazem pedidos de interrupo ao processador. Cada interface deve ser atendida por uma rotina de servio de interrupo especfica para aquela interface. Assim, ao receber um pedido de interrupo, o processador deve determinar qual a rotina de servio a ser executada. Alm disso, quando duas ou mais interfaces fazem pedidos de interrupo simultneos, necessrio decidir qual o pedido de interrupo que ser atendido. Estas duas funes so suportadas por um componente do subsistema de E/S, chamado controlador de interrupo (interrupt controller). Como mostra a figura abaixo, o sinal de interrupo de cada interface ligado ao controlador de interrupo. O controlador de interrupo atribui um nmero e uma prioridade a cada um destes sinais. Quando um pedido de interrupo acontece, o controlador de interrupo envia para o processador, atravs do barramento de dados, o nmero do pedido. No caso de dois ou mais pedidos simultneos, o controlador decide qual o pedido com maior prioridade e envia para o processador o nmero correspondente.

Figura 30 - O controlador de interrupo.

O processador usa o nmero recebido do controlador para indexar uma tabela armazenada na memria, chamada tabela de vetores de interrupo (interrupt vector table). Cada entrada desta tabela contm o ponteiro, ou vetor, para uma rotina de servio. Ao receber um nmero de interrupo n, o processador l o vetor contido na posio n da tabela e passa a executar a rotina de servio de interrupo apontada por este vetor.
Copyright 2009, ESAB Escola Superior Aberta do Brasil 82

NIDADE

23

Tcnicas de Transferncia de Dados III Objetivo: Saber utilizar as tcnicas E/S com acesso direto memria.

Na E/S com interrupo, o processador no fica dedicado operao de E/S. O processador alocado somente quando realmente deve ser transferido um dado entre a memria e a interface, resultando em uma utilizao mais eficiente do processador. No entanto, esta tcnica apresenta uma desvantagem quanto velocidade de transferncia dos dados. Note que a transferncia de um dado envolve a arbitrao pelo controlador de interrupo, a comunicao entre o controlador e o processador, o acesso memria para a leitura do vetor de interrupo e finalmente o desvio para a rotina de servio. Todas estas etapas acrescentam um retardo antes que o dado seja realmente transferido. Este retardo chamado de tempo de latncia de interrupo (interrupt latency time). Em alguns tipos de perifricos, a taxa de transferncia de dados entre o perifrico e a interface muito alta, ou em outras palavras, o intervalo de tempo entre a transferncia de dois dados consecutivos entre o perifrico e a interface muito pequeno. Devido ao tempo de latncia, o intervalo de tempo entre acessos do processador interface pode tornar-se maior que o intervalo de tempo com que os dados chegam interface. Se isto acontece, um novo dado chega interface antes que o processador leia o dado anterior, e assim o dado anterior perdido. Na realidade, o que contribui para aumentar o tempo de latncia o fato de que o processador ainda o responsvel por controlar a transferncia de dados. Para atender perifricos com alta taxa de transferncia, usa-se a tcnica de E/S com acesso direto memria, onde o processador no participa da fase de transferncia de dados. Esta tcnica analisada a seguir.
Copyright 2009, ESAB Escola Superior Aberta do Brasil 83

E/S com Acesso Direto Memria Na E/S com DMA (Direct Memory Access) um componente do subsistema de E/S, chamado controlador de DMA, responsvel por transferir os dados entre a memria e a interface de E/S. A Figura 5.6 mostra como o controlador de DMA ligado ao resto do sistema.

Figura 31 - Sistema com controlador de DMA.

Considerando novamente o exemplo da operao de escrita de um setor de disco. Na fase de disparo da operao, o processador informa ao controlador de DMA o nmero de dados a ser transferido; o endereo do primeiro dado e o sentido da transferncia (no caso do exemplo, o sentido de transferncia da memria para a interface de E/S). Em seguida, o processador envia para a interface controladora de disco o nmero de trilha, o nmero de setor e o comando da operao. O processador participa apenas da fase de disparo. Na fase de transferncia de dados, o controlador de DMA assume o controle dos barramentos para realizar a transferncia entre a memria e a interface. Para tanto, o controlador de DMA coloca o processador em um estado, chamado hold state, no qual o processador fica impedido de iniciar ciclos de barramento. Mais detalhadamente, a fase de transferncia de dados envolve os seguintes passos: Aps receber o comando do processador, a interface de disco faz um pedido de DMA ao controlador de DMA atravs do sinal PDMA. Por sua vez, o controlador faz um pedido de
Copyright 2009, ESAB Escola Superior Aberta do Brasil 84

barramento ao processador, atravs do sinal PBAR. Ao liberar os barramentos, o processador responde ativando o sinal LIVRE, indicando ao controlador de DMA que este j pode usar os barramentos. O controlador de DMA coloca no barramento de dados o endereo do primeiro dado e ativa o sinal de leitura de memria. A memria responde colocando o dado endereado no barramento de dados. O controlador de DMA ativa o sinal de escrita em interface de E/S, fazendo com que a interface de disco capture o dado presente no barramento de dados. Ao escrever o dado no setor do disco, a interface faz um novo pedido de DMA. O controlador de DMA inicia uma nova transferncia, colocando o endereo do prximo dado no barramento de endereo e ativando os sinais de controle apropriados. Este passo se repete at que todos os dados tenham sido transferidos. Ao concluir a ltima transferncia, o controlador de DMA retira o pedido de barramento, permitindo que o processador volte operao normal. Note que na E/S com DMA a transferncia de cada dado envolve apenas uma leitura de memria e uma escrita de interface de E/S, realizadas pelo prprio controlador de DMA. A E/S com DMA efetivamente elimina o tempo de latncia associado a cada dado transferido, que existe na E/S com interrupo. Isto permite que a E/S com DMA atinja taxas de transferncia bem maiores que as tcnicas de E/S que envolvem o controle do processador. Em geral, possvel ter vrias interfaces de E/S operando com a tcnica de acesso direto memria. Para tanto, o controlador de DMA possui vrias entradas para pedido de DMA. O controlador de DMA associa a cada uma destas entradas um conjunto independente de registradores para armazenar o nmero de dados a serem transferidos, o endereo inicial e o sentido da transferncia. Um grupo de sinais de controle com seus respectivos registradores formam o chamado canal de DMA. O controlador de DMA se encarrega de arbitrar entre interfaces que fazem pedidos de DMA simultneos, usando um esquema de prioridades atribudas aos canais de DMA.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

85

NIDADE

24

Padres de Barramento I Objetivo:Identificar os tipos de barramentos e suas diferenas.

Com o desenvolvimento de CPUs mais rpidas, com a maior demanda de software e maiores requisitos de vdeo, necessita-se de barramentos que atendam essas exigncias. Por outro lado, os barramentos devem ser padronizados e, ainda assim, ter um custo compatvel com o bolso dos usurios.

Os principais barramentos ISA Industry Standard Architecture: Criado em 1984 para os micros IBM PC/AT. capaz de executar transferncias de dados de 8 ou 16 bits operando a 8 MHz. Apesar de estar ultrapassado, este padro ainda suficiente para a conexo de placas de udio, modems e outros dispositivos que no demandam grandes pr-requisitos de desempenho.

Figura 32 - Slot ISA.


Copyright 2009, ESAB Escola Superior Aberta do Brasil 86

EISA Extended Industry Standard Architecture: Padro de barramento que amplia o barramento tradicional (ISA) de 16 bits para 32 bits. Alm disso, este padro permite que mais de um processador compartilhe o barramento. Projetado como resposta ao MCA, o EISA aceita as placas de expanso ISA. MCA MicroChannel Architecture: Barramento proprietrio de 32 bits lanado pela IBM em 1987 para os computadores da linha PS/2. Projetado visando multiprocessamento, este barramento permite que as placas de expanso se identifiquem para o sistema, evitando, desta forma, os conflitos que surgem nas configuraes manuais necessrias nos barramentos convencionais. Diferente do EISA, o MCA no compatvel com as placas de expanso ISA. VESA Local Bus: O padro VESA foi desenvolvido por um grupo de fabricantes denominado Video Electronic Standards Association. Surgiu como uma opo para acomodar perifricos (principalmente as placas controladoras de vdeo e de disco) capazes de executar transferncias de dados de 32 bits. Permaneceu durante alguns anos como uma alternativa boa e barata para viabilizar a melhoria da performance do sistema computacional como um todo. Um slot VLB (VESA Local Bus) um slot ISA 16 bits com um terceiro e quarto slots no final. Desta maneira, uma placa ISA pode ser conectada no VLB.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

87

NIDADE

25

Padres de Barramento II Objetivo: Identificar os tipos de barramentos e suas diferenas.

PCI - Peripheral Component Interconnect: Este padro permite transferncias de dados de 32 ou 64 bits. Foi desenvolvido com o objetivo de maximizar a performance das placas-me equipadas com os microprocessadores Pentium. Trabalha com clock de 25 a 33 Mhz e permite taxas de transferncias de at 132 MB/s. A vantagem chave do PCI sobre seu predecessor, o VLB, a existncia de um circuito no chipset que controla o barramento. Enquanto o VLB era basicamente uma extenso do barramento do processador 486. O PCI e seu chipset fornecem funcionalidades para controle, que habilitam o PCI a fazer mais coisas que o VLB poderia fazer.

Figura 33 - Slot PCI.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

88

O barramento PCI opera concorrentemente com o barramento do processador. A CPU pode processar os dados como um cache externo enquanto o barramento PCI est ocupado transferindo informao entre outras partes do sistema. Alm de ser mais eficiente, o barramento PCI incorpora o recurso Plug and Play, no necessitando que o usurio configure as placas adaptadoras. As taxas de transferncia chegam a 132 MB/s para 32 bits e 264 MB/s para 64 bits, para um clock de 33 Mhertz. AGP: Accelerated Graphic Port: Criado pela Intel para acelerar o trabalho das placas de vdeo, fazendo com que elas se comuniquem direto com a memria RAM atravs da Ponte barramento local barramento PCI. utilizado exclusivamente para placas de vdeo 3D. Pode trabalhar com trs taxas de transferncia: x 1, 266 MB/s, x 2, com taxa de transferncia de 533 MB/s e x 4, com taxa de transferncia de 1 GB/s. Tais taxas dependem da placa de vdeo e da frequncia FSB da placa-me.

Figura 34 - Slot AGP.

USB: Universal Serial Bus: A interface externa USB fornece uma comunicao serial de 12 Mbps, apenas sobre uma conexo de 4 fios. Um nico porto USB pode ser usado para conectar at 127 perifricos, tal como mouse, modems, teclados, scanners, cmeras. E A
Copyright 2009, ESAB Escola Superior Aberta do Brasil 89

USB tambm atende s especificaes Plug and Play da Intel, inclusive de poder conectar os dispositivos com a mquina ligada e sem precisar reinici-las. Simplesmente se conecta o dispositivo e a USB ir detectar automaticamente e alocar os recursos necessrios para o seu funcionamento. Entre os sinais transportados pelo cabo USB, existe uma corrente de alimentao auxiliar de 5 V que permite energizar pequenos dispositivos USB.

Figura 35 - USB.

Firewire (IEEE 1394): O firewire um barramento serial padro externamente rpido que suporta taxas de transferncias de dados de at 400 MBps. Um nico porto 1394 pode ser usado para conectar at 63 dispositivos externos. Alm da alta velocidade, o firewire tambm suporta dados iscronos, transmitindo dados com uma taxa garantida. Isto ideal para dispositivos que necessitam altas taxas de transferncias em tempo real, tal como dispositivos de vdeo. Embora muito rpido, o firewire muito caro. Tal como o USB, o firewire suporta Plug and Play, e tambm fornece potncias aos perifricos.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

90

Figura 36 - Firewire.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

91

NIDADE

26

Execuo de Programas I Objetivo: conhecer as diversas formas do computador executar um programa.

VDEO Ateno! Antes de dar continuidade aos seus estudos. V ao ambiente CAMPUS ON-LINE e assista ao vdeo referente UNIDADE 26.

Programa em Linguagem de Mquina Para executar qualquer tarefa, um computador precisa receber instrues precisas sobre o que fazer. Uma sequncia adequada de instrues de computador, para a realizao de uma determinada tarefa, se constitui num PROGRAMA de computador. Uma linguagem de programao um conjunto de ferramentas, regras de sintaxe e smbolos ou cdigos que nos permitem escrever programas de computador, destinados a instruir o computador para a realizao de suas tarefas. A primeira e mais primitiva linguagem de computador a prpria linguagem de mquina, aquela que o computador entende diretamente e pode ser diretamente executada pelos circuitos do processador (pelo hardware). No incio da era da computao, os programas

Copyright 2009, ESAB Escola Superior Aberta do Brasil

92

eram escritos em linguagem de mquina. As instrues eram escritas diretamente na linguagem do computador (formada apenas com 1 e 0). Um programa em linguagem de mquina uma longa srie de 0 e 1, ordenados de forma que alguns representam cdigos de instrues e outros representam os dados que sero processados (ou indicam onde esses dados esto armazenados). Em um programa escrito em linguagem de mquina, cada instruo escrita pelo programador ser individualmente executada - cada instruo do programa corresponder uma ao do computador. A relao , portanto 1 para 1 - uma instruo do programa corresponde a uma operao do computador. Ento, um programa extenso escrito apenas usando 1 e 0; imagine que para cada diferente marca ou modelo de computador as regras para entender esses cdigos sero totalmente diferentes e, finalmente. Se as instrues tivessem que ser escritas uma a uma; os dados adequadamente codificados e ordenados, perfurar todos os programas em cartes e submeter toda a massa de cartes ao computador, para finalmente receber algumas horas depois o seu programa de volta com uma mensagem de erro tipo "erro no carto X" (e mais nada!). Um programa escrito nessa linguagem era difcil de ser escrito sem que se cometessem muitos erros, processo esse longo, difcil, entediante e principalmente caro.

Figura 37 Carto em branco.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

93

Um programa em linguagem de mquina era tambm extremamente difcil de ser entendido por outros programadores que futuramente viessem a trabalhar na manuteno do programa. Essa complexidade levou necessidade de se desenvolverem tcnicas e ferramentas para tornar a escrita e manuteno de programas mais fcil, mais rpida e principalmente mais barata. Cada famlia de computadores possui sua prpria linguagem de mquina. Um programa em linguagem de mquina escrito para um determinado computador e somente poder ser executado em computadores da mesma famlia, que lhe sejam 100% compatveis.

Linguagem de Montagem A primeira tentativa bem-sucedida para resolver o problema acima descrito foi criao de uma linguagem em que os cdigos numricos foram substitudos por mnemnicos (palavras ou smbolos), como por exemplo, LOAD = carregar e ADD = somar. As localizaes dos dados foram substitudas por referncias simblicas. Foram tambm definidas regras de sintaxe, de fcil memorizao; de forma a tornar a escrita de programas, e sua posterior manuteno, uma tcnica de complexidade relativamente menor. Essa linguagem simblica recebeu o nome de Assembly Language (Linguagem de Montagem). Assim, o programador no mais precisava decorar os cdigos numricos que representavam as diferentes instrues e os endereos reais de armazenamento, bastando decorar mnemnicos para as instrues e definir nomes para as referncias dos endereos. Por exemplo: NOME para o local onde seriam armazenados os nomes e SALRIO para o local onde seriam armazenados os salrios, etc., o que sem dvida facilita enormemente o trabalho.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

94

importante lembrar que um computador entende nica e exclusivamente a sua prpria linguagem de mquina. Portanto, para escrever um programa em outra linguagem (mnemnicos), e ela ser entendido e processado no computador (linguagem de mquina); preciso haver algum outro programa que leia o programa escrito nessa linguagem alternativa e o traduza para a linguagem nativa do computador. O processo de traduo da linguagem de montagem para a linguagem de mquina realizado por um programa chamado Assembler (Montador). O programa Assembler l cada instruo escrita em linguagem Assembly e a converte em uma instruo equivalente em linguagem de mquina, e tambm converte cada uma das referncias simblicas de memria em endereos reais (resolve as referncias de memria). A criao de programas Montadores facilitou muito o trabalho dos programadores. Outra vantagem foi possibilitar o desenvolvimento de programas de crtica de sintaxe (os debuggers), facilitando o processo de depurao de erros de programao. No entanto, o processo continuava lento e complexo, exigindo do programador uma grande compreenso do processo e profundo conhecimento da mquina que ele estava programando. Um programa de computador ainda era difcil de ser escrito, caro, e dependente do computador para o qual foi escrito, j que um programa escrito em linguagem de mquina para um determinado computador s poder ser processado em computadores 100% compatveis com ele.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

95

NIDADE

27

Execuo de Programas II Objetivo:Conhecer as linguagens de Programao e Tradutores.

Linguagens de Programao Esses problemas de complexidade no desenvolvimento de softwares e compatibilidade com hardware levaram a uma busca por linguagens que fossem mais simples de programar e entender; mais rpidas e eficientes, levando a programas mais enxutos, com menos instrues, menos dependente do computador-alvo, mas que processassem com boa eficincia (no acarretando processamento lento no computador). Foram desenvolvidas diversas linguagens de programao, buscando afastar-se do modelo centrado no computador. Essas linguagens foram estruturadas buscando refletir melhor os processos humanos de soluo de problemas. Essas linguagens orientadas a problema so tambm chamadas linguagens de alto nvel, por serem afastadas do nvel de mquina. As primeiras linguagens foram FORTRAN (1957), usada basicamente para manipulao de frmulas; ALGOL (1958), para manipulao de algoritmos; COBOL (1959), para processamento comercial e ainda hoje bastante usada, especialmente em computadores de grande porte (mainframes) em bancos. Nas dcadas de 60 e 70, podemos citar Pascal, a primeira linguagem de alto nvel estruturada; BASIC, linguagem criada para facilitar a programao por no-profissionais; e ADA, linguagem para processamento em tempo real criada sob encomenda do DoD (Department of Defense norte-americano).

Copyright 2009, ESAB Escola Superior Aberta do Brasil

96

Na dcada de 80, surgiu o C e depois o C++ (com suporte a objetos), que esto entre as linguagens mais utilizadas hoje. Cada nova linguagem criada visa atingir nveis de abstrao mais altos, pois afastam cada vez mais o programador do nvel de mquina. Se por um lado essas novas linguagens facilitam muito o trabalho dos programadores, pois reduzem a necessidade de conhecer o hardware da mquina; elas cobram um alto preo em termos de desempenho, pois so cada vez mais lentas, ao consumir cada vez mais ciclos de mquina e espao em memria. Esse aumento de exigncia ao poder de processamento dos computadores compensado pelo aumento acelerado do poder de processamento dos novos chips (exemplificado pela chamada Lei de Moore, que afirma que o poder de processamento dos chips dobra a cada 18 meses) e pelos avanos na arquitetura dos computadores.

Caso queira saber mais sobre a Lei de Moore no deixe de acessar o link: http://pt.wikipedia.org/wiki/Lei_de_Moore

Tal como na linguagem humana, as linguagens de computadores proliferam e sempre h problemas que ainda persistem, continuando a busca por uma linguagem ideal - a soluo "definitiva". A duas tecnologias mais utilizadas atualmente so Java e o NET da Microsoft.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

97

Caso queira saber mais sobre .NET, acesse: http://msdn.microsoft.com/pt-br/default.aspx ou http://pt.wikipedia.org/wiki/.NET Caso queira saber mais sobre JAVA, acesse: http://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

Traduo Programas em linguagem de alto nvel, a exemplo dos programas escritos em linguagem de Montagem, precisam ser traduzidos para linguagem de mquina para poderem ser entendidos e processados pelo computador. O processo de traduo do programa pode ser classificado como Montagem, Compilao e Interpretao, conforme detalhado a seguir.

Montagem O processo de montagem traduz um programa escrito em linguagem Assembly em um programa equivalente em linguagem de mquina, possvel de ser executado pelo computador. No processo de montagem, o cdigo fonte (programa em linguagem simblica escrito pelo programador) examinado, instruo por instruo e feita a traduo, gerando o cdigo que ser executado (cdigo objeto). Os passos executados pelo programa Montador so:
98

Copyright 2009, ESAB Escola Superior Aberta do Brasil

a) Verificar a correo do cdigo de instruo (se o mnemnico corresponde a uma instruo vlida para o computador, se os campos definidos na estrutura da linguagem e a sintaxe esto corretos) e substituir os mnemnicos pelos cdigos numricos binrios equivalentes. Qualquer erro no cdigo acarreta a interrupo do processo e a emisso de mensagem de erro. b) Resolver as referncias de memria: os nomes simblicos adotados pelo programador so convertidos para endereos reais de memria (valores numricos binrios de endereos). c) Reservar espao em memria para o armazenamento das instrues e dados. d) Converter valores de constantes em binrio.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

99

NIDADE

28

Execuo de Programas III Objetivo:Conhecer o significado de Compilao, Ligador e Interpretao.

Compilao Compilao o processo de traduo de um programa escrito em linguagem de alto nvel para cdigo em linguagem de mquina. Compilao um processo anlogo ao da montagem (verificao / anlise do cdigo fonte, resoluo das referncias de memria, reserva de espao em memria e converso para cdigo de mquina binrio). O que diferencia a compilao do processo de montagem sua maior complexidade. No processo de montagem, h uma relao de 1:1, ou seja, cada instruo do cdigo fonte resulta em uma instruo de mquina, enquanto na compilao a relao mltipla, cada instruo do cdigo fonte gerando vrias instrues de mquina. Durante a compilao, o cdigo fonte analisado (anlise lxica, sinttica e semntica), gerado um cdigo intermedirio e so construdas tabelas de smbolos. Alocam-se as reas de memria para variveis e atribui-se os registradores a serem utilizados, e finalmente gerado o cdigo objeto em linguagem binria de mquina. Em alguns compiladores, gerado um cdigo intermedirio em Assembly (que pode ser visualizado pelo programador) e que em seguida passa pelo montador para gerar finalmente o cdigo objeto em linguagem de mquina.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

100

Figura 38 Processo de Compilao.

Bibliotecas O desenvolvimento de um programa certamente utilizar diversas operaes que so comuns a muitos outros programas. Por exemplo, a execuo de uma instruo de entrada e sada, a classificao dos dados de um arquivo, o clculo de funes matemticas, etc. Uma linguagem de alto nvel geralmente incorpora diversas rotinas prontas (que fazem parte da linguagem) e que compem bibliotecas (libraries) de funes pr-programadas que podero ser utilizadas pelo programador, poupando tempo, aumentando a eficincia e evitando erros. Dessa forma, um programa em alto nvel possivelmente conter diversas chamadas de biblioteca.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

101

Ligao (Linkedio) O cdigo objeto preparado pelo compilador em geral no imediatamente executvel, pois ainda existe cdigo (as rotinas de biblioteca) a ser incorporado ao programa. A cada chamada de biblioteca encontrada no cdigo fonte, o compilador precisar incluir uma chamada para a rotina e o endereo dos dados que devam ser passados para a rotina. A tarefa de examinar o cdigo objeto; procurar as referncias a rotinas de biblioteca (que constituem referncias externas no resolvidas), buscar a rotina da biblioteca, substituir a chamada pelo cdigo ("resolver as referncias externas") e obter os parmetros para inclulos no cdigo objeto executada por um programa chamado Ligador (Link Editor). O resultado da execuo do Ligador o Cdigo Final pronto para ser executado pelo computador, chamado mdulo de carga ou cdigo executvel.

Figura 39 Lingador ou linkedio.

O mdulo de carga aps ser testado e depurado armazenado em memria de massa para ser executado quando necessrio. O processo de compilao e ligao executado apenas pelo programador na fase de desenvolvimento e no mais precisar ser executado pelo usurio, quando da execuo do programa.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

102

Interpretao Com o processo de execuo de um programa em fases distintas (compilao / ligao / execuo) apresentado, um programa para ser executado precisa primeiro ter sido convertido para cdigo objeto pelo compilador e depois ter passado pelo ligador. Esse processo o mais largamente utilizado, porm no o nico. O mtodo alternativo chama-se de interpretao e, a partir do programa fonte, realiza as trs fases (compilao, ligao e execuo), comando por comando, em tempo de execuo. No existem fases distintas nem se produzem cdigos intermedirios. Todo o processo de converso efetuado em tempo de execuo e imediatamente executado. Cada comando lido, verificado, convertido em cdigo executvel e imediatamente executado, antes que o comando seguinte seja sequer lido. As linguagens voltadas para Web (como ASP, PHP, ColdFusion, etc) so interpretadas. A imagem a seguir exemplifica o processo de interpretao.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

103

Figura 40 Processo Interpretao.

Linguagens como C, Pascal, COBOL, etc., so linguagens tipicamente compiladas, enquanto o BASIC foi desenvolvido como linguagem interpretada (hoje tambm existem linguagens BASIC compiladas e o programador pode optar).

Copyright 2009, ESAB Escola Superior Aberta do Brasil

104

NIDADE

29

Execuo de Programas IV Objetivo:Identificar com clareza Comparao entre Compilao e Interpretao.

Compilao e Interpretao - comparao Sempre que houver duas opes, haver vantagens e desvantagens para cada uma delas, pois se assim no fosse, a que apresentasse sempre desvantagem seria abandonada. A seguir uma comparao entre os dois mtodos:

Tempo de execuo No mtodo de interpretao, cada vez que o programa for executado, haver compilao, ligao e execuo de cada um dos comandos. No mtodo de Compilao, o tempo de execuo do programa reduzido, porque todos os passos preliminares (compilao e ligao) foram previamente cumpridos.

Consumo de memria No mtodo de interpretao, o interpretador um programa geralmente grande e que precisa permanecer na memria durante todo o tempo que durar a execuo do programa, pois um programa necessita do interpretador para ter traduzidos cada um dos seus comandos; um a um, at o trmino de sua execuo (o interpretador somente descarregado depois do trmino da execuo do programa).

Copyright 2009, ESAB Escola Superior Aberta do Brasil

105

No mtodo de compilao, o compilador carregado e fica na memria apenas durante o tempo de compilao, depois descarregado; o ligador carregado e fica na memria apenas durante o tempo de ligao, depois descarregado. Essas so funes realizadas pelo programador e executadas apenas durante o desenvolvimento do programa. Quando o usurio for executar o programa, apenas o mdulo de carga (cdigo executvel) carregado e fica na memria durante a execuo. Desta forma, o mtodo de interpretao acarreta um consumo de memria muito mais elevado durante a execuo do programa.

Repetio de interpretao No mtodo de compilao, um programa compilado e ligado apenas uma vez, e na hora da execuo carregado apenas o mdulo de carga, que diretamente executvel. No mtodo de interpretao, cada programa ter que ser interpretado toda vez que for ser executado. Outro aspecto que, em programas contendo loops, no mtodo de interpretao as partes de cdigo pertencentes ao loop sero vrias vezes repetidas e tero que ser interpretadas tantas vezes quantas o loop tiver que ser percorrido. No mtodo de compilao, a traduo do cdigo do loop se faz uma nica vez, em tempo de compilao e ligao. Estas caractersticas levam a um maior consumo de tempo no mtodo de interpretao, que , portanto mais lento.

Desenvolvimento de programas e depurao de erros No mtodo de compilao, a identificao de erros durante a fase de execuo fica sempre difcil, pois no h mais relao entre comandos do cdigo fonte e instrues do executvel. No mtodo de interpretao, cada comando interpretado e executado individualmente, a relao entre cdigo fonte e executvel mais direta e o efeito da execuo (certa ou errada)
106

Copyright 2009, ESAB Escola Superior Aberta do Brasil

direta e imediatamente sentido. Quando a execuo de um comando acarreta erro, quase sempre o erro pode ser encontrado no comando que acabou de ser executado. Assim, o interpretador pode informar o erro, indicando o comando ou varivel causadora do problema.

Plataforma Cliente Um computador somente capaz de executar programas compilados que tenham sido desenvolvidos para ele. Assim, um programa desenvolvido para rodar em PC's rodando Windows no funciona em PC's com UNIX ou em Macintosh. Imagine ento uma pgina na Internet, com textos, imagens e programas que podem ser visualizados e processados por quase qualquer computador. Pginas WEB utilizam linguagens padronizadas, tais como HTML - para a escrita das pginas - e linguagens interpretadas como ASP, PHP, ColdFusion, entre outras para codificao dos aplicativos. Assim, cada uma das plataformas atravs dos programas visualizadores de pginas Internet, conhecidos como browsers ou mesmo atravs de seus respectivos sistemas operacionais, pode interpretar corretamente qualquer pgina feita e hospedada em qualquer computador.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

107

NIDADE

30

Execuo de Programas V Objetivo: Identificar Mquinas Virtuais e Java Bytecode

Mquinas Virtuais Levando o conceito de interpretao um pouco mais adiante, imagine desenvolver um programa conversor que pegasse qualquer programa escrito para uma determinada mquina e interpretasse seu cdigo executvel traduzindo-o em tempo de execuo para instrues de outro computador. Esse programa criaria uma camada de emulao em que uma mquina se comportaria como outra mquina. Um PC "virtual" emulado em um Macintosh, que estaria assim apto a rodar qualquer programa escrito para PC. Esse programa emulador criaria um ambiente chamado de Mquina Virtual, isto , uma mquina que se comporta como outra mquina diferente, no compatvel. Desta forma, possvel ter no PC domstico uma mquina virtual com Linux, Windows 2008 Server, ou qualquer outro sistema operacional que desejar.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

108

Caso queira saber mais sobre mquinas virtuais acesse o link: http://pt.wikipedia.org/wiki/M%C3%A1quina_virtual O Virtual PC um aplicativo gratuito e de fcil manuseio para quem quiser fazer os primeiros testes com mquinas virtuais. Voc pode fazer o download atravs do link: http://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402-3199-48A3-AFA22DC0B40A73B6&displaylang=en

Bytecode Java O cdigo de um programa de computador escrito na linguagem Java compilado para uma forma intermediria de cdigo denominada bytecode, que interpretada pelas Mquinas Virtuais Java (JVMs). essa caracterstica que faz com que os programas Java sejam independentes de plataforma, executando em qualquer sistema que possua uma JVM. Cada opcode tem o tamanho de um byte da o seu nome e assim o nmero de diferentes cdigos de operao est limitado a 256. Os 256 possveis valores para cdigos de operao no so todos utilizados. Na verdade, alguns dos cdigos foram inclusive reservados para nunca serem implementados. Um programador Java no precisa entender e nem tomar conhecimento dos bytecodes Java para ser proficiente na linguagem, da mesma forma que um programador de qualquer linguagem de alto nvel, compilada para linguagem de mquina, no precisa conhecer a linguagem de montagem do computador hospedeiro, para escrever bons programas naquela linguagem.
109

Copyright 2009, ESAB Escola Superior Aberta do Brasil

Figura 41 Java Bytecode.

Caso queira saber mais sobre Java Bytecode acesse o link: http://en.wikipedia.org/wiki/Java_bytecode

Copyright 2009, ESAB Escola Superior Aberta do Brasil

110

Antes de iniciar sua Avaliao Online, fundamental que voc acesse sua SALA DE AULA e faa a Atividade 3 no link ATIVIDADES.

Atividades dissertativas Acesse sua sala de aula, no link Atividade Dissertativa e faa o exerccio proposto. Bons Estudos!

Copyright 2009, ESAB Escola Superior Aberta do Brasil

111

LOSSRIO

Caso haja dvidas sobre algum termo ou sigla utilizada, consulte o link Glossrio em sua sala de aula, no site da ESAB.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

112

IBLIOGRAFIA

Caso haja dvidas sobre algum termo ou sigla utilizada, consulte o link Bibliografia em sua sala de aula, no site da ESAB.

Copyright 2009, ESAB Escola Superior Aberta do Brasil

113