Вы находитесь на странице: 1из 114

Arquitetura de Computadores

Osmar Ventura

Disciplina: Arquitetura de Computadores

Sumrio
UNIDADE 1  3 Introduo ao estudo da arquitetura de computadores 3 Introduo 3 Surgimento e evoluo dos computadores 6 Arquitetura de computadores 11 Conceitos complementares 13 Referncias 17 UNIDADE 2  19

Sistemas de numerao 19 Introduo 19 Sistemas de numerao posicionais 20 Base de um sistema de numerao 20 Representao binria 22 Representao em octal e em hexadecimal 24 Converses entre bases numricas 25 Referncias 32 UNIDADE 3  33

Representaes numricas 33 Representao de nmeros inteiros (ponto fixo)  33 Representao de nmeros no formato complementar 39 Representao de nmeros negativos em complemento a base 46 Representao de nmeros reais 52 Representao IEEE 754 para nmeros em ponto flutuante 54 Referncias 58 UNIDADE 4 59

Sistemas digitais 59 Circuitos lgicos  59 Porta lgica 60 Nvel lgico 61 Expresses boolianas 61 Tipos de circuitos lgicos 66 Referncias 70

Professor: Osmar Ventura

UNIDADE 5 

71

Organizao bsica de um computador 71 Modelo de mquinas 71 Bloco dos dispositivos de I/O 73 Bloco de memria principal 73 Estrutura interna da UCP e funes 76 Principais blocos lgicos que compem uma UCP 80 Funcionamento da UCP 82 Referncias 84 UNIDADE 6 85

Classificao do conjunto de instrues 85 Processamento monociclo e multiciclo 85 RISC versus CISC 90 Referncias 94 UNIDADE 7 95

Desempenho de computadores 95 Medidas de desempenho  95 Avaliando um sistema computacional 96 Uso de pipeline 102 Uso de memria cache 107 Perifricos 110 Referncias 112

Disciplina: Arquitetura de Computadores

UNIDADE 1 Introduo ao estudo da arquitetura de computadores


Objetivos: Apresentar e discutir os conceitos iniciais da computao; conhecer e entender o processo evolutivo dos computadores; compreender a necessidade e a importncia de domnio da matemtica no mbito computacional; conhecer modelos abstratos que podem representar um computador moderno; permitir anlise funcional dos modelos abstratos de computadores.

Introduo
No estudo de Arquitetura de Computadores, ser necessria a apresentao e o refinamento de alguns conceitos e definies acerca da computao. Inicialmente sero trabalhados os conceitos e definies do nosso objeto de estudo: o computador. Posteriormente, o termo arquitetura ser discutido e ento associado ao objeto computador. Provavelmente o computador um dos inventos mais maravilhosos do homem. Atualmente existem diversos tipos de computadores nas mais variadas aplicaes. Contudo, sua funo inicial era bastante primitiva, ou seja, era usado somente para efetuar clculos matemticos bsicos, como adio e subtrao. Pode-se considerar que a histria da criao e evoluo dos computadores comea na Antiguidade, juntamente com a necessidade dos homens efetuarem contas. Registros histricos do conta de que, quando os pastores buscavam uma forma de contar e armazenar o nmero de ovelhas do seu rebanho, usavam pequenas pedras, denominadas calculus, para representar cada uma de suas ovelhas. Tais calculus eram ento armazenados em uma bolsa de couro e, em um determinado momento, as pedras armazenadas nas bolsas eram comparadas com cada uma das ovelhas do rebanho. Sobrando calculus, significava que havia perda de ovelhas; faltando, indicava que o rebanho, de uma forma ou outra, crescera. Nesse contexto, podemos entender a origem da palavra calcular, que nada mais do que o simples fato de juntar pedras e compar-las com algum outro objeto. claro que hoje, ao pensarmos em calcular algo, contamos com a formalidade da matemtica para regulamentar

UNIDADE 1 - INTRODUO AO ESTUDO DO DA ARQUITETURA DE COMPUTADORES

a relao de quantidade e, mais especificamente, numrica entre elementos. Na verdade, hoje temos uma matemtica que define algo alm do que simplesmente contar e comparar. medida que a humanidade foi evoluindo, a necessidade de efetuar clculos foi aumentando em importncia e dificuldade. Gradativamente foram surgindo operaes matemticas mais complexas para suprir determinadas necessidades que somente as operaes elementares como somar, subtrair, multiplicar ou dividir no eram suficientemente capazes de atender. Nesse processo de evoluo, o homem sempre desejou usar alguma ferramenta para ajudar na execuo dos clculos. A primeira ferramenta conhecida e usada para calcular denominase baco (Figura 1) e foi criada h aproximadamente 5.500 anos, na Mesopotmia. Sua forma principal era baseada em uma tbua com marcaes especiais indicando as classes numricas (dezena, centena, milhar etc.) e um sistema de representao numrica que considerava a quantidade de calculus em cada marcao. A movimentao das pedras ou outro elemento, como botes de ossos, esferas, contas, entre cada uma das classes representa efetivamente a execuo das operaes matemticas. Ento, seguindo a tendncia de desenvolver dispositivos que auxiliassem no processo de clculos matemticos, foram projetadas e construdas diversas de mquinas com esse propsito. Tais mquinas inicialmente eram quatro chamadas operaes computadores, bsicas apesar de algumas realizarem somente as
Figura 1: baco Fonte: Disponvel em: <http://goo.gl/ZFQ9G>. Acesso em: 12 mai. 2012.

matemticas

ou somente funes muito especficas. Podem-se classificar tais mquinas como

Computadores de Propsitos Especficos. Ao longo do processo de evoluo tecnolgica e cientfica, e at mesmo seguindo uma tendncia mais revolucionria, os projetistas de computadores desenvolveram mquinas que podem ser adaptadas s mais variadas funes, o que, de certa forma, cria uma segunda classe de computadores denominada de Computadores de Propsito Geral. Atualmente, o termo Computador de Propsito Especfico foi substitudo por outros substantivos que designam uma funo primria para o dispositivo ou mquina, por exemplo, calculadora, celular, videogame, tablet. Ao longo do tempo, o termo Computador de Propsito Geral vem sendo substitudo simplesmente por computador. Assim, deve-se entender que todos os

Disciplina: Arquitetura de Computadores

sistemas que se baseiam em operaes matemticas so, na sua essncia, computadores, podendo diferir somente quanto a sua aplicao (genrica ou especfica).

Figura 2: Computador Fonte: Disponvel em: <http://goo.gl/ABequ> Acesso em: 12 mai. 2012.

Figura 3: Vdeo-Game Atari Fonte: Disponvel em: <http://goo.gl/ABequ> Acesso em: 12 mai. 2012.

Uma segunda abordagem quanto classificao dos computadores aponta para a modalidade de processamento numrico, podendo um computador ser classificado em analgico e/ou digital. Computadores analgicos operam por comparaes; normalmente utilizam aparatos mecnicos para efetuar o posicionamento de engrenagens ou ponteiros. A fim de efetuar a leitura ou o processamento dos dados em um computador analgico, o sistema dever possuir uma marca de referncia para todas as suas variveis e, na computao, considerar a sua relao com a posio do marcador/ponteiro. Pode-se tomar como exemplo de computador analgico um termmetro a mercrio, ou um relgio com ponteiros, bem como uma rgua plstica usada para efetuar medidas.

Figura 4: Termmetros digital e analgico

UNIDADE 1 - INTRODUO AO ESTUDO DO DA ARQUITETURA DE COMPUTADORES

Por outro lado, encontram-se os computadores digitais, que se caracterizam por efetuarem os processamentos sem a necessidade de referncias ou marcaes entre os elementos que envolvem uma determinada operao matemtica. Os computadores digitais necessitam somente das regras que estabelecem as relaes entre os elementos (operandos) de cada operao matemtica. Ainda, nos computadores digitais, para mostrar ou representar o valor de um determinado dado, por exemplo, o nmero 2, basta apresentar um smbolo que previamente foi associado ao algarismo em questo. Pense em um termmetro digital, pelo qual o usurio, ao efetuar a leitura da temperatura, simplesmente identifica o valor atravs do smbolo apresentado em uma unidade de sada apropriada. Nos computadores digitais, assim como nos analgicos, para indicar um determinado algarismo, ser necessrio simplesmente representar o nmero atravs da tecnologia adotada para implementao do sistema. Ao contrrio do que muitos pensam, os computadores digitais no so 100% implementados com tecnologia puramente digital, existe sempre pelo menos uma pequena unidade que opera no modelo analgico e cuja interao com o restante dos blocos que compem o computador digital depende de um processo de converso, seja de analgico para digital (A/D), seja de digital para analgico (D/A). Ainda sob essa tica, deve-se considerar que o mundo real essencialmente de natureza analgica e que, se os computadores foram desenvolvidos para facilitar ou auxiliar os homens em alguma tarefa, ao empregar um computador digital em uma tarefa especfica, deve-se adequar os sinais entre o computador e o mundo externo, o que deve passar pelo processo de converso A/D ou D/A. Como tecnologicamente os computadores digitais evoluram de forma mais significativa do que os computadores analgicos, pela facilidade de implementao e custos mais baixos, a histria da computao se fez, em sua maior parte, atravs de modelos de computadores digitais. Dessa forma, o escopo da disciplina Arquitetura de Computadores engloba somente os computadores digitais, apesar de, recentemente, modernas tecnologias, como a nanotecnologia, possibilitarem o projeto de computadores analgicos mais funcionais, de desempenho e aplicaes superiores aos digitais.

Surgimento e evoluo dos computadores


Blaise Pascal constri, em 1642, uma mquina de calcular denominada Pascaline, com engrenagens mecnicas que permitiam efetuar operaes de soma e subtrao. Era um

Disciplina: Arquitetura de Computadores

dispositivo que operava no sistema decimal e que foi construdo para auxiliar no processo de clculo de impostos para o governo francs. A mquina encontra-se exposta no Museu de Artes e Ofcios de Paris. Em 1801, Joseph Marie Jacquard inventa e constri um sistema mecnico que usa cartes perfurados (metlicos) para codificar operaes repetitivas de comando de teares, transformando parte do processo de controle das mquinas
Figura 5: Pascaline Fonte: Disponvel em: <http://goo.gl/ABequ>. Acesso em: 12 mai. 2012.

em automtico. Da surgiu a ideia de programar as mquinas de tecer para produzir padres de cores diferentes.

A ideia de Jacquard influencia o francs Charles Babbage a projetar uma mquina de calcular cujo processo de clculo pudesse ser controlado por cartes. Ento, em 1822, Babbage publica um trabalho intitulado Differential Engine, no qual apresenta os princpios para a construo de uma mquina que pudesse efetuar operaes algbricas: o programa deveria residir na prpria mquina, os resultados intermedirios de clculo deveriam ser armazenados na prpria mquina. Deveriam existir, ainda, dispositivos que permitissem a introduo dos dados e visualizao dos resultados. Tal mquina no pde ser totalmente construda por Babbage por limitaes tecnolgicas da poca. Trabalhou junto com ele Ada Byron King, tambm chamada de Ada Lovelace, historicamente conhecida como a primeira programadora, pois desenvolvia programas para a mquina que estava sendo projetada por Babbage. Ada contribuiu para a computao apresentando os conceitos de subrotina, uma sequncia de instrues que pode ser usada vrias vezes; loop, estrutura que permite a repetio de uma srie de cartes; salto condicional, que permite saltar um ou mais cartes caso uma condio seja satisfeita. Todos esses conceitos so base da computao moderna. Em 1854, George Boole prope e apresenta uma nova lgebra (lgebra Booleana), tendo por base a aplicao de operadores lgicos (E, OU, NO) a elementos algbricos. Herman Hollerit, em 1886, inventa um sistema para codificao de letras, algarismos e smbolos, sob a forma de perfuraes realizadas em um carto de papel, e constri mquinas eletromecnicas

UNIDADE 1 - INTRODUO AO ESTUDO DO DA ARQUITETURA DE COMPUTADORES


(tabuladoras) que, mediante um programa armazenado externamente, realizam a leitura dos dados dos cartes e efetuam clculos com os dados lidos, de modo a obter resultados sob formas previamente programadas. A utilizao deste tipo de mquina sofre grande expanso ao longo dos anos, quando acopladas a calculadoras eletromecnicas (mais tarde foram usadas vlvulas eletrnicas), interpretadoras, separadoras/intercaladoras e impressoras. Existiam equipamentos especializados para operaes especficas, por exemplo, a separadora/intercaladora de cartes perfurados, as quais funcionavam com programas fixos. Para agrupar em ordem crescente um conjunto de cartes com um cdigo de 5 algarismos, era necessrio repetir a operao 5 vezes: uma vez para cada coluna perfurada. A construo e comercializao de tabuladoras deu origem criao de grandes Empresas nos Estados Unidos, como, por exemplo, a IBM - International Business Machines.

Em 1936 o alemo Konrad Zuse apresenta o primeiro computador eletromecnico, denominado Z1. O computador executava clculos lidos em fitas perfuradas (Figura 6). Howard Aiken produz, em 1944, um computador baseado nos conceitos da mquina de Babbage. De codinome Harvard Mark I, era um computador totalmente eletromecnico, construdo atravs de uma parceria entre a Universidade
Figura 6: Z1 Fonte: Disponvel em: <http://goo.gl/ABequ>. Acesso em: 12 mai. 2012

de Harvard e a IBM para a Marinha Americana, que desejava uma calculadora de tabelas para uso na navegao.

Paralelamente ao desenvolvimento do Mark I, sob a liderana dos engenheiros J. Presper Eckert e John Mauchly e com o patrocnio do Exrcito Americano, em 1946 construdo o primeiro computador a vlvulas da histria, o ENIAC Eletronic Numeric Integrator and Calculator. Ele foi projetado para auxiliar no clculo de trajetrias balsticas. A programao do ENIAC era realizada atravs de reconexo dos fios de um painel principal, e os ajustes dos dados eram efetuados por botes rotativos localizados em diversos outros painis.

Disciplina: Arquitetura de Computadores

O Professor John Von Neumann publica, em 1946, um trabalho intitulado Electronic Discrete Variable Automatic Computer, em que apresenta uma organizao lgica otimizada para o projeto e desenvolvimento de computadores, a qual usada at hoje nos
Figura 7: ENIAC Fonte: Disponvel em: <http://goo.gl/SGXZl>. Acesso em: 12 mai. 2012.

projetos

de

computadores

sendo

conhecida como Arquitetura de Von Neumann. A estrutura apresentada formada pela Unidade Central de Processamento (CPU ou UCP),

que contm a Unidade Lgica e Aritmtica. Externamente a essa UCP , existe o conjunto de dispositivos denominados genericamente de perifricos e uma unidade de memria de programas e dados. Von Neumann ainda apresentou outras ideias, o que para a poca foi um salto significativo. Uma segunda ideia foi a proposta de implementar um computador que funcionava com o conceito de programa armazenado, em contraste ao modelo usado na poca, em que o programa era lido diretamente do dispositivo de entrada e sada, painis de cabos e conectores. Uma terceira proposta estava relacionada com a reduo do volume de cabos e fios usados nos computadores; a ideia era empregar o sistema numrico binrio em detrimento do decimal. A reduo est relacionada na escala de 10:1 pares de fios, ou seja, para representar nmeros de dois dgitos decimais, eram necessrios 10 pares de fios usando o sistema decimal; para o sistema binrio, necessrio usar no mximo 4 pares para representar os mesmos nmeros. E, ainda com a utilizao do sistema binrio, a implementao das propostas de Boole era tecnologicamente mais adequada. Considerando todas as propostas de Von Neumann, em 1946 iniciou a construo do computador EDVAC, que entrou em operao em 1951.

Figura 8: Arquitetura de Von Neumann

UNIDADE 1 - INTRODUO AO ESTUDO DO DA ARQUITETURA DE COMPUTADORES

Uma abordagem alternativa a proposta por Von Neumann, a chamada Arquitetura Harward, diferindo apenas na configurao e acesso a Unidade de Memria, que passa a ser tratada de forma segmentada, ou seja, uma unidade para armazenamento de dados e outra para armazenamento de programas. Esta alternativa apresenta uma melhoria no desempenho, mas incrementando o custo de produo do computador.

UCP / CPU
Memria de dados Dispositivos de ENTRADA e SADA Memria de Instrues

Figura 9: Arquitetura Harward

Em 1948, nos Laboratrios BELL, nos Estados Unidos, descoberto o transistor, que contribuir, a partir de 1960, para a miniaturizao dos circuitos eletrnicos, para a reduo do volume fsico dos computadores, para o aumento do desempenho computacional e a popularizao dos computadores. No final da dcada de 1970 e incio dos anos 1980, Clive Sinclair, no Reino Unido, concebe um computador minsculo denominado ZX81, que integra na sua mquina um interpretador para uma linguagem de programao (BASIC - Beginers All-purpose Symbolic Instruction Code), utilizando como perifricos, alm de um teclado de membrana, um receptor de TV e um gravador de cassetes musical para gravar os dados. A capacidade da memria desse computador era cerca de 8 vezes maior que a do ENIAC. Paralelamente, Steven Jobs e Steven Wozinak, nos E.U.A., concebem, segundo os mesmos princpios de miniaturizao, facilidade de utilizao e baixo preo, um computador que denominam Apple I. Vrios fabricantes iniciam, nessa poca, a produo em larga escala de computadores de uso pessoal, de fcil utilizao e baixo preo. O computador transforma-se num bem para consumo. No se pode desconsiderar que, ao longo do processo de evoluo e disseminao dos computadores, no foi somente o hardware que recebeu uma ateno especial da indstria; o desenvolvimento de softwares cresceu em nmero, grau e tecnologia. interessante observar que, no incio do sculo XIX, no existia tecnologia para a implementao da mquina de

10

Disciplina: Arquitetura de Computadores

Babbage e que vrios conceitos de desenvolvimento de software j estavam sendo cunhados, e os mesmos conceitos so utilizados at hoje. Fica um pergunta: relacionando a evoluo do software e do hardware, qual deles est mais avanado? Com o processo de evoluo do software, possvel estudar, entender e implementar um computador em camadas ou nveis.

Arquitetura de computadores
O termo Arquitetura de computadores usado para descrever todos os atributos de um computador que so visveis ao programador, por exemplo, o conjunto de instrues vlidas para uma determinada mquina, o nmero de bits usados para a representao de dados, os mecanismos de acesso aos dispositivos de entrada e sada, as tcnicas de endereamento de memria, o nmero de unidades aritmticas de um computador, entre outros atributos. Pode-se considerar que a arquitetura descreve como ser a interseo entre o hardware e o software, para ilustrar melhor este conceito, considere que um computador pode ser subdividido em partes dispostas hierarquicamente em diversos nveis, onde a complexidade em termos de implementao do nvel mais baixo no visvel para o nvel superior.
Computador de seis nveis
Nvel 5 Nvel das linguagens orientadas para soluo de problemas

Nvel 4

Nvel da linguagem do montador

Nvel 3

Nvel do sistema operacional

Nvel 2

Nvel da arquitetura do conjunto de instrues (ISA)

Nvel 1

Nvel da microarquitetura

Nvel 0

Nvel lgico digital

Figura 10: Computador de seis nveis

11

UNIDADE 1 - INTRODUO AO ESTUDO DO DA ARQUITETURA DE COMPUTADORES

Pela figura acima, apresentado um computador que estrategicamente foi subdividido em 6 nveis. O nvel mais baixo, Nvel 0, representa o verdadeiro hardware da mquina, so os circuitos eletrnicos que executam efetivamente cada instruo da mquina, neste nvel os elementos estudados/avaliados so chamados de portas lgicas e quando tratados individualmente, realizam funes elementares padro (AND, OR, NOT). O Nvel 0 comumente chamado de Nvel Lgico Digital. No Nvel de micro arquitetura, os elementos so uma combinao de portas lgica, os quais conceitualmente efetuam funes lgicas mais elaboradas. Coisa do tipo, somadores aritmticos, comparadores, registradores so exemplos dos elementos que esto presentes no Nvel 1. Como no Nvel 1 possvel encontrar blocos lgicos capazes de efetuar diversas operaes, como por exemplo, uma adio, interessante abstrair toda a complexidade que envolve a execuo desta operao, esquecendo efetivamente do circuito eletrnico, da existncia de portas lgicas e simplesmente, definir um cdigo representa toda a operao de adio. Assim formado o Nvel 2, ou seja, de cdigos que representam efetivamente cada operao que pode ser realizada pelo hardware. Neste nvel definido a linguagem de mquina de um determinado computador, sendo denominado Nvel de Arquitetura do Conjunto de Instrues (ISA Instruction Set Architecture). Deve-se observar que o projeto de qualquer computador comea pela definio do conjunto de instrues do mesmo. neste nvel que se concentra o estudo da disciplina Arquitetura de Computadores. O Nvel de Sistema Operacional da Mquina esconde a complexidade de entendimento de hardware e de funcionalidades especificas do computador, como por exemplo, como deve ser efetivamente o processo de leitura e escrita em uma unidade de armazenamento em massa. Neste nvel, Nvel 3, so tratados funcionalidades operacionais que permitem o uso dos recursos de hardware por grande parte dos usurios. Finalizando, os nveis 4 e 5, Nvel de linguagem de montagem e Nvel de linguagem orientado a problemas, respectivamente, possibilita que usurios mais avanados possam desenvolver ferramentas/aplicaes que fazem do computador uma poderosa ferramenta para a soluo de problemas. A viso do computador atravs deste nvel mais sofisticada e no apresenta toda a complexidade dos circuitos eletrnicos.

12

Disciplina: Arquitetura de Computadores

A Organizao de computadores

SOFTWARE

um como de

termo as um

usado

para

descrever arquiteturais so

caractersticas

determinado

computador

ARQUITETURA

implementadas fisicamente, em termos de sinais eltricos, interfaces entre unidades operacionais, tecnologias de memrias, entre outras. Para entender melhor esse conceito, a definio de implementao do subsistema eletrnico que efetua

HARDWARE

Figura 11: Viso geral de arquitetura

a multiplicao passa pela escolha do uso de uma unidade especializada, dedicada multiplicao, ou o processo de multiplicao efetuado atravs de somas sucessivas; a escolha da forma de implementao um problema tpico tratado em organizao de computadores. E, ainda, a escolha da tecnologia base de implementao do banco de memria principal do computador, entre memrias estticas e dinmicas, uma caracterstica organizacional e no arquitetural de um computador.

Conceitos complementares
Abaixo so apresentados alguns conceitos necessrios ao entendimento da disciplina Arquitetura de Computadores. Hardware: palavra usada para relacionar toda estrutura fsica empregada na construo de um computador. As caractersticas visuais, mecnicas e eltricas so definies encontradas no hardware de uma determinada mquina. At os anos 1980, o hardware desenvolvido para um computador no era compatvel com o hardware de outro computador, mesmo entre computadores de um mesmo fabricante. Atualmente, existem padres de desenvolvimento e compatibilidade de hardwares, sendo possvel usar um teclado fornecido pelo Fabricante X tanto no computador A quanto no computador B. Software: termo empregado para relacionar todos os elementos abstratos que envolvem o comportamento e o uso dos computadores. O software no possui caractersticas visuais definidas, ou melhor, no existe uma nica forma de ser representado fisicamente. O formato visual do software depende da experincia e envolvimento com o uso de

13

UNIDADE 1 - INTRODUO AO ESTUDO DO DA ARQUITETURA DE COMPUTADORES

computadores. Ao falar sobre o software Windows a uma pessoa que no trabalha diretamente com computadores, ela pode imaginar a tela padro desse software que freqentemente mostrada pelos agentes de marketing, como sendo o Windows. Por outro lado, se a pessoa envolvida trabalha com vendas de produtos de informtica, pode imaginar, por exemplo, a caixa que contm o produto e que entregue aos compradores. No obstante tudo isso, uma pessoa que trabalha com o desenvolvimento do software Windows, ao falar sobre ele, pode imaginar uma tela de computador com uma seqncia grande de frases apresentadas em um editor de textos. O que se quer dizer com tudo isso que o software no possui uma identidade visual padro, no possvel visualizar a sua estrutura fsica, nem mesmo toc-lo, contudo possvel desenvolver um software e simplesmente us-lo. Assim, o software pode ser classificado conforme o seu relacionamento direto com o hardware ou com o usurio do computador. Os softwares so classificados como bsico, quando foram desenvolvidos para controlar diretamente um determinado hardware. Por outro lado, o software que foi concebido para relacionar ou facilitar a operao do computador pelo usurio classificado como software utilitrio. So exemplos de softwares bsicos os sistemas operacionais Windows, Linux, Mac OS, Android; os drivers de dispositivos como impressoras, scanners, cmeras fotogrficas, pendrive; tradutores e compiladores de linguagens para desenvolvimento de softwares; firmwares, softwares que vm gravados em alguns dispositivos eletrnicos (Ipod, televiso, micro-ondas etc.) e que so comumente denominados de BIOS. Os softwares usado para navegar pela Internet (Firefox, Chrome, Internet Explorer), copiar um arquivo em um pendrive, ouvir msicas no computador so exemplos de softwares utilitrios. Programa: denominao tcnica mais especfica de software, que representa os elementos usados para descrever o comportamento esperado de um computador, ou seja, o que efetivamente o computador dever executar em funo do tempo e das variveis de controle do prprio programa. Num nvel mais baixo, entende-se como a descrio da sequncia de operaes matemticas, instrues, que um determinado computador dever executar para desempenhar uma tarefa. Essa descrio dever seguir uma ordem lgica e uma formalidade em suas sentenas, o que por sua vez caracteriza uma linguagem de programao de computadores. A linguagem nativa de um computador chamada de Linguagem de Mquina, a qual pode ser representada por um sequncia de zeros e uns (0s e 1s) ou mesmo um grfico de sinais eltricos. Essa linguagem considerada a linguagem de mais baixo nvel, por estar relacionada diretamente com o hardware do computador. Visando facilitar o desenvolvimento

14

Disciplina: Arquitetura de Computadores

de softwares, diversos outros nveis e tipos de linguagens foram desenvolvidos, cada um com caractersticas especficas e voltado para uma determinada classe de problema (financeiro, cientfico, manipulao de textos etc.), bem como uma maior facilidade de manipulao por parte do programador, j que programar pensando somente em uma seqncia de zeros e uns bastante tedioso e demorado. Como na verdade o computador s entende/executa instrues na linguagem de mquina, necessrio transformar um programa descrito em uma linguagem diferente da linguagem nativa de um computador na linguagem de mquina prpria do computador que ir executar o programa (linguagem de mquina). Para efetuar essa transformao, so utilizados programas tradutores e/ou interpretadores de linguagens de programao de computadores, o que, de certa forma, permite mudar o nvel ou tipo de linguagem de um programa, bem como adequar um software linguagem nativa de um determinado computador. Tradutor: transforma ou converte o programa descrito na Linguagem X para a Linguagem Y. A traduo no executada parcialmente, o programa descrito na nova linguagem s gerado aps a traduo de todo o programa na linguagem origem. Assim, para executar o programa na nova linguagem, o processo de traduo dever ter sido encerrado com sucesso, sendo que, de outra forma, o novo programa no criado. Somente aps a criao do programa na nova linguagem que ele poder ser executado pelo computador. Como exemplo de tradutor, podem-se destacar os compiladores da Linguagem C (Dev-C++). Deve-se observar que o processo de compilao mais complexo do que parece, e no assunto abordado no contexto de arquitetura de computadores. Interpretador: processo que pode ser implementado por software ou diretamente por hardware. O interpretador no gera um novo programa, ele simplesmente transforma e imediatamente executa cada instruo do programa na linguagem origem diretamente na linguagem destino. Erros no processo de interpretao podem ocorrer, ocasionando ou no a parada do processo; isso depende exclusivamente da implementao do interpretador. Diferentemente do tradutor, o interpretador no gera um novo programa para que futuramente possa ser executado. Como exemplo de interpretador, podem-se citar os navegadores da Internet, os quais recebem programas na linguagem HTML, interpretando-a e executando cada um dos seus comandos. Havendo erros de interpretao, o processo no interrompido e, por opo dos desenvolvedores dos interpretadores, os erros, s vezes, no so mostrados, e os resultados referentes execuo do programa so exibidos na tela do computador. Um segundo exemplo so os interpretadores da Linguagem Basic, que, por sua vez, ao encontrarem

15

UNIDADE 1 - INTRODUO AO ESTUDO DO DA ARQUITETURA DE COMPUTADORES

um erro, param a execuo do programa no ponto especfico do erro, reportando a classe do erro ao usurio. Atualmente usado um tipo de interpretador muito interessante e que vem mudando significativamente o uso de recursos computacionais: so chamados de mquinas virtuais, implementadas por softwares como Virtual PC e VMware. Esse tipo de interpretador permite que um computador/hardware possa simular a existncia de outros computadores; algo como se um nico computador pudesse virar vrios outros, executando aplicaes variadas e se comunicando como se fossem computadores fsicos distintos. Memria: dispositivo usado para armazenar contedos no formato digital. Pode ser classificado de acordo com a sua proximidade Unidade Central de Processamento - CPU. Normalmente seu volume de armazenamento medido em bytes, o que define a unidade mnima de armazenamento. Tipicamente so denominados de Memria Principal os dispositivos externos que esto ligados diretamente CPU e que armazenam o programa e os dados que esto em execuo/processamento. Os dados e programas que no esto em execuo normalmente so armazenados na memria secundria ou memria de armazenamento em massa, a qual est ligada CPU indiretamente atravs dos dispositivos de entrada/sada (I/O - Input/Output). importante observar que necessrio sempre copiar os programas e dados da memria secundria para a principal a fim de execut-los. As memrias so agrupamentos de clulas de tamanho padro, normalmente bytes, sendo que cada das clulas possui uma identificao/endereo exclusivo. Registrador: tipo especial de memria formada por uma nica clula, localizado na parte interna da CPU. O acesso ao registrador exclusivo da CPU, e ele possui um tempo de resposta muito superior ao desempenho da Memria Principal. O termo Palavra est associado ao tamanho ou a largura da clula que forma cada um dos registradores de uma CPU; expressa o nmero de bits da clula de cada registrador. Quando se fala de uma CPU ou Processador de 32 bits, por exemplo, entre outras caractersticas, est sendo informado que normalmente os registradores da CPU possuem 32 bits de largura. Nesta unidade foram apresentados os conceitos bsicos de computao, bem como a motivao para o surgimento dos computadores. Um modelo clssico de implementao de computador chamado Arquitetura de Von Neumann, foi mostrado de forma sucinta, sendo que na Unidade 5, este modelo ser discutido de forma mais detalhada. A necessidade de entendimentos sobre operaes e representaes numricas so importantes a medida em que entendemos que os computadores atuais nada mais so do que complexas mquinas de calcular. Esta unidade servir de base de consulta para o andamento da disciplina.

16

Disciplina: Arquitetura de Computadores

Referncias
LORIN, Harold. Introduo arquitetura e organizao de computadores. ISBN 8570011911 Rio de Janeiro: Campus, 1985. 362p. MURDOCCA, Miles; HEURING, Vicent. Introduo a Arquitetura de Computadores. Rio de Janeiro: Ed. Campus, 2000. PATTERSON, David A.; HENESSY, Jonh L. Organizao e Projeto de Computadores. 2. ed. Rio de Janeiro : LTC Editora S/A, 1998. STALLINGS, W. Arquitetura e Organizao de Computadores. 5. ed. So Paulo: Pearson Education do Brasil, 2002. STALLINGS, William. Arquitetura e organizao de computadores: projeto para o desempenho. 5. ed. ISBN 85-87918-53-2. So Paulo: Prentice-Hall, 2002. 786 p. TANENBAUM, A. Organizao Estruturada de Computadores. 4. ed. So Paulo:

Prentice-Hall, 2006. TORRES, Gabriel. Hardware: curso completo. 4. ed. ISBN 85-7323-165-3. Rio de Janeiro: Axcel Books, 2001. 1398 p. WEBER, Raul Fernando. Fundamentos de Arquitetura de Computadores. Srie Livros Didticos. 2.ed. ISBN 8524106352. Porto Alegre: Sagra Luzzatto, 2001. 299p.

Links:
COMPUTER HISTORY. The First Mainframes. Disponvel em: <http://www.computerhistory.org/ revolution/mainframe-computers/7/166>. Acesso em: 12 mai. 2012. COMPUTER HISTORY. Timeline - CHM Revolution. Disponvel em: <http://www.computerhistory. org/revolution/timeline>. Acesso em: 12 mai. 2012. MUSEU DO COMPUTADOR. Disponvel em: <http://www.museudocomputador.com.br/>. Acesso em: 12 mai. 2012. OLHAR DIGITAL. Museu do Computador. Disponvel em: <http://olhardigital.uol.com.br/ produtos/central_de_videos/museu-do-computador>. Acesso em: 12 mai. 2012.

17

UNIDADE 1 - INTRODUO AO ESTUDO DO DA ARQUITETURA DE COMPUTADORES

WIKIPDIA. baco. Disponvel em: <http://pt.wikipedia.org/wiki/%C3%81baco#.C3.81baco_ mesopot.C3.A2mico>. Acesso em: 12 mai. 2012. YOUTUBE. Historia de la computadora para nios. Disponvel em: <http://www.youtube.com/ watch?v=OTwqEnrZSQY&feature=related>. Acesso em: 12 mai. 2012. YOUTUBE. Intro to Computer Architecture. Disponvel em: <http://www.youtube.com/ watch?NR=1&v=HEjPop-aK_w&feature=endscreen>. Acesso em: 12 mai. 2012. YOUTUBE. John Von Neumann (biografia). Disponvel em: <http://www.youtube.com/watch?fea ture=endscreen&NR=1&v=RF_CZpmVGzw>. Acesso em: 12 mai. 2012. YOUTUBE. Von Neumann architecture and modern PCs. Disponvel em: <http://www.youtube. com/watch?v=eWhnMNjxYDQ&feature=fvwrel>. Acesso em: 12 mai. 2012.

18

Disciplina: Arquitetura de Computadores

UNIDADE 2 Sistemas de numerao


Objetivos:
Rever e discutir os conceitos dos sistemas numricos usados na computao. Desenvolver habilidades para converso numrica entre os sistemas numricos decimal, binrio, octal e hexadecimal.

Introduo
Os sistemas de numerao so mecanismos que definem os smbolos numricos e as regras para a manipulao e representao dos valores a serem registrados. Na Antiguidade, duas formas de representar quantidades foram inventadas. Inicialmente, os egpcios criaram um sistema em que cada conjunto de 10 unidades era representado por um smbolo diferente. Por exemplo, se escolhssemos smbolos ao acaso e usssemos # para representar uma centena, & para representar uma dezena e @ para representar uma unidade, teramos que ###&&@ representaria 321. O segundo sistema desenvolvido foi o sistema de numerao romano, no qual so usados smbolos (letras) que representam as quantidades, por exemplo: I (valendo 1), V (valendo 5), X (valendo 10), C (valendo 100) etc. A regra de posicionamento determina que as letras que representam quantidades menores e precedem as que representam quantidades maiores sejam somadas; se o inverso ocorre, o menor valor deve ser subtrado do maior (e no somado). Assim, o nmero 128 representado em algarismos romanos por CXXVIII (= 100 + 10 + 10 + 5 + 1 + 1 + 1 = 128). Por outro lado, o valor 94 representado por XCIV (= (-10 + 100) + (-1 + 5) = 94). Nesses sistemas, os smbolos tinham um valor intrnseco, independente da posio que ocupavam na representao (sistema numrico no-posicional). Um grande problema desse sistema a dificuldade de realizar operaes com essa representao. Experimente multiplicar CXXVIII por XCIV! Assim, posteriormente foram criados sistemas em que a posio dos algarismos no nmero passou a alterar seu valor.

19

UNIDADE 2: SISTEMAS DE NUMERAO

Sistemas de numerao posicionais


Nos sistemas de numerao posicionais, o valor representado pelo algarismo no nmero depende da posio em que ele aparece na representao. O primeiro sistema desse tipo foi inventado pelos chineses. Eram usados palitos: 1 a 5 palitos dispostos na vertical representavam os nmeros 1 a 5; 6 a 9 eram representados por 1 a 4 palitos na vertical, mais um palito na horizontal (valendo 5) sobre os demais. Cada nmero era ento representado por uma pilha de palitos, sendo uma pilha para as unidades, outra para as dezenas, outra para as centenas etc. Esse sistema, com as pilhas de palitos dispostas em um tabuleiro, permitia a realizao das quatro operaes aritmticas bsicas. No existia representao para o zero (o espao relativo ficava vazio). O tabuleiro aritmtico (chamado swan-pan), alm das quatro operaes, era usado na lgebra e na soluo de equaes. Essa tcnica era chamada de Mtodo do Elemento Celestial. Atualmente usamos o sistema de numerao posicional para representar todos os valores numricos em nosso cotidiano, por exemplo, a quantidade de carros que passam por uma via, o valor em reais de uma televiso, a idade de uma pessoa etc. O uso do sistema posicional significa que a posio ocupada por um algarismo em um nmero altera seu valor em uma potncia de 10 (em sistema decimal) para cada casa esquerda. Por exemplo, no sistema decimal (base 10), no nmero 125, o algarismo 1 representa 100 (uma centena ou 102), o 2 representa 20 (duas dezenas ou 1 x 101) e o 5 representa 5 mesmo (5 unidades ou 5 x 100). Assim, em nossa notao, 125 = 1 x 102 + 2 x 101 + 5 x 100.

Base de um sistema de numerao


A base de um sistema de numerao indica a quantidade de algarismos disponveis para a representao/formao numrica. A base 10 hoje a mais comum, embora no seja a nica utilizada. No comrcio pedimos uma dzia de rosas ou uma grosa de parafusos (base 12) e tambm marcamos o tempo em minutos e segundos (base 60). Os computadores, por sua vez, utilizam a base 2 (sistema binrio), e os programadores em linguagem de baixo nvel, por facilidade, usam em geral uma base que seja uma potncia de 2, tal como 2 4 (base 16 ou sistema hexadecimal), ou eventualmente ainda 2 3 (base 8 ou sistema octal). Na base 10, dispomos de 10 algarismos para a representao do nmero: {0, 1, 2, 3, 4, 5, 6, 7, 8 e 9}. Na base 2, so apenas 2 algarismos: 0 e 1. Na base 16, utilizamos 16: os 10 algarismos aos quais estamos acostumados, mais os smbolos A, B, C, D, E e F, representando respectivamente 10, 11, 12, 13, 14 e 15 unidades.

20

Disciplina: Arquitetura de Computadores

Generalizando, temos que uma base b qualquer dispor de b algarismos, variando entre 0 e (b-1) algarismos. A representao do nmero 125,3810 (base 10) significa 1x102 + 2x101 + 5x100 + 3x10-1 + 8x10-2. Assim, para representar uma quantidade N qualquer, numa dada base b, com um nmero tal como segue, temos: Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n (Expresso 1) Sendo que: an.bn + .... + a2.b2 + a1.b1 + a0.b0 a parte inteira e a-1.b-1 + a-2.b-2 + .... + a-n.b-n a parte fracionria. (Expresso 3) (Expresso 2)

Intuitivamente, sabemos que o maior nmero que podemos representar com n algarismos, na base b, ser o nmero composto n vezes pelo maior algarismo disponvel naquela base (ou seja, b-1). Por exemplo, o maior nmero que pode ser representado na base 10 usando 3 algarismos ser 999 (ou seja, 103 - 1 = 999). Genericamente falando, podemos ver que o maior nmero inteiro N que pode ser representado, em uma dada base b, com n algarismos (n casas), ser N = bn 1, assim como o menor nmero inteiro com n algarismos ser formado por n vezes o primeiro algarismo da base em questo, ou seja, o algarismo 0 (zero). Ainda, a quantidade de nmeros distintos a serem representados em uma base numrica b est relacionada com a quantidade de algarismos/dgitos ou casas numricas usadas para a representao numrica. Ento, a quantidade de nmeros distintos a serem representados na base b com n algarismos determinada pela equao bn. Nos sistemas de numerao, usamos o termo algarismo/dgito mais significativo para referenciarmos o algarismo ou dgito mais esquerda de uma dada representao numrica. Por outro lado, o termo algarismo/dgito menos significativo est associado ao dgito mais direita de um nmero. Tomando como exemplo o nmero 8672, temos como dgito mais significativo o algarismo 8, e o 2 como o menos significativo. Podemos dizer que o algarismo 7 o segundo dgito menos significativo, bem como o terceiro mais significativo e assim por diante.

21

UNIDADE 2: SISTEMAS DE NUMERAO

Representao binria
Os computadores modernos utilizam o sistema binrio, isto , todas as informaes armazenadas ou processadas no computador so representadas usando apenas DUAS grandezas fsicas, que matematicamente so representadas pelos algarismos 0 e 1. Essa deciso de projeto deve-se maior facilidade de representao interna no computador, que obtida atravs de dois diferentes nveis de tenso ou mesmo corrente. Havendo apenas dois algarismos, portanto dgitos binrios, o elemento mnimo de informao nos computadores foi denominado bit, que o acrnimo de binary digit. Na base 2 o nmero representado pela sequncia 10 correspondente ao nmero dois na base 10, ou seja, 102 = 210. Ento podemos afirmar que dez igual a dois? No, dez no e nunca ser igual a dois! Na verdade, a sequncia dos algarismos 1 e 0, ou seja, 10, no significa necessariamente o nmero dez. Como estamos acostumados a associar 10 a dez, pois sempre pensamos no sistema de numerao decimal, achamos estranho falar que 10 igual a 2. Considere as observaes abaixo: -- O nmero 102 deve ser lido como um-zero na base 2 e equivale ao nmero 2 na base 10 (210). -- O nmero 105 deve ser lido com um-zero na base 5 e equivale ao nmero 5 na base 10 (510). -- O nmero 1010 pode ser lido como um-zero na base 10 ou ento como dez na base dez. -- 1016, lido como um-zero na base 16, equivale ao nmero 1610. Portanto, 10 s ser igual a dez se, e somente se, o nmero estiver representado na base dez.

Uma curiosidade: O nmero 10b sempre igual base, porque, em uma dada base b, os algarismos possveis vo ser sempre de 0 a (b - 1). Como o maior algarismo possvel em uma dada base b igual a (b-1), o prximo nmero ser (b - 1 + 1 = b) e, portanto, ser sempre 10. Assim, numa dada base qualquer, o valor da base ser sempre representado por 10.

22

Disciplina: Arquitetura de Computadores

Obs.: Toda vez que um nmero for apresentado sem que seja indicado em qual sistema de numerao ele est representado, entenderemos que a base dez. Sempre que outra base for utilizada, a base ser obrigatoriamente indicada por um ndice na sequncia do nmero.

TABELA 1 Relao dos pesos de uma sequncia binria


Representao Binria 1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000 ... Potncia 20 21 22 23 24 25 26 27 28 29 2... Representao decimal 1 2 4 8 16 32 64 128 256 512 ...

Pela TABELA 1, pode-se identificar a equivalncia de cada sequncia binria com o seu correspondente decimal. Considerando que a representao numrica binria um sistema de numerao posicional, o algarismo 1 representa valores (pesos) diferentes e compatveis com a sua posio relativa no nmero. Como o algarismo 0 indica um valor nulo, o valor representado por ele sempre ser zero, independentemente de sua posio no nmero. Assim, possvel representar todos os demais nmeros decimais no sistema binrio, atravs da soma dos pesos dos algarismos 1 na representao numrica binria. Observe pela TABELA 2 como so formados os nmeros em binrio e seus correspondentes em decimal.

TABELA 2 Exemplos de representao em binrio


Representao Binria 11 1010 10011 111111 1000110 Potncia 20+21 23+0+21+0 24+0+0+21+20 25+24+23+22+21+20 26+0+0+0+22+21+0 Representao decimal 3 10 19 63 70

23

UNIDADE 2: SISTEMAS DE NUMERAO

Representao em octal e em hexadecimal


Em ambientes computacionais, comum representar nmeros usando sistemas numricos em potncias de dois, como o sistema octal e o sistema hexadecimal. Essa tcnica visa reduzir o nmero de algarismos da representao numrica e, consequentemente, facilitar a compreenso da grandeza e evitar erros. No sistema octal (base 8), cada trs algarismos do sistema binrio so representados por apenas um algarismo octal (de 0 a 7). No sistema hexadecimal (base 16), cada quatro bits so representados por apenas um algarismo hexadecimal (de 0 a F). A seguir, a TABELA 3 apresenta os nmeros em decimal e sua representao correspondente em binrio, octal e hexadecimal:

TABELA 3 Equivalncia entre as bases numricas


BASE 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 BASE 2 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 BASE 8 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 BASE 16 0 1 2 3 4 5 6 7 8 9 A B C D E F

Obs.: Convencionalmente, em algumas linguagens de programao, os nmeros na base 16 ou sistema hexadecimal so grafados com a letra H ou h aps o nmero. Por exemplo: FFH significa que o nmero FF est em hexadecimal. No confundir o H ou h com mais um dgito, mesmo porque em hexadecimal s temos algarismos at F e, portanto, no existe um algarismo H. Os nmeros na base 8 ou octal so grafados com o algarismo zero na parte mais significativa do nmero; por exemplo: 0326.

24

Disciplina: Arquitetura de Computadores

Converses entre bases numricas


262.1 Converso de nmeros de uma base b qualquer para a base 10 De um modo geral, o processo de converso de nmeros reais em qualquer base numrica para a base 10 deve considerar a Expresso 1: Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n A forma mais conveniente de efetuar a converso reescrevendo o nmero a ser convertido na sua forma de potncia usando o formato dado pela Expresso 1 e resolvendo a expresso final. Exemplos: a. Converter para a base 10 o nmero binrio 10001110 Usando a Expresso 1, temos: 10001110,012 = 1x27 + 0x26 + 0x25 + 0x24 + 1x23 + 1x22 + 1x21 + 0x20 + 0x2-1 + 1x2-2 = 1x128 + 0x64 + 0x32 + 0x16 + 1x8 + 1x4 + 1x2 + 0x1 + 0x0,5 + 1x0,25 = 128 + 0 + 0 + 0 + 8 + 4 + 2 + 0 + 0 + 0,25 = 142,25

b. Converter para decimal o nmero 361,458 Pela Expresso 1, temos: 3618 = 3x82 + 6x81 + 1x 80 + 4x8-1 + 5x8-2 = 3x64 + 6x8 + 1x1 + 4x0,125 + 5x0,015625 = 192 + 48 + 1 + 0,5 + 0,078125 = 241,578125

25

UNIDADE 2: SISTEMAS DE NUMERAO

c. Converter para decimal o nmero 1BC16 Com a Expresso 1, temos:

1BC,416 = 1x162 + B16x161 + C16x160 + 4x16-1

Para o processo de converso, deve-se considerar que os algarismos da base 16 de A a F correspondem aos nmeros decimais de 10 a 15, respectivamente. Ento, reescrevendo a expresso, temos: 1x162 + B16x161 + C16x160 + 4x16-1 = 1x162 + 11x161 + 12x160 + 4x16-1 = 1x256 + 11x16 + 12x1+ 4x0,0625 = 256 + 176 + 12 + 0,25 = 444,25

Converso de nmeros da base 10 para uma base b qualquer


A converso de nmeros da base dez para uma base qualquer segue um processo inverso ao descrito acima. O processo dividido em duas etapas, sendo uma para a parte inteira e outra para a parte fracionria. No final, os nmeros encontrados em cada etapa devero ser concatenados com o separador vrgula.

Processo para a parte inteira do nmero: O nmero decimal dever ser dividido sucessivas vezes pela base, sendo que o resto de cada diviso dever ocupar sucessivamente as posies de ordem menos significativas do nmero, at que o resto da ltima diviso, que resulta em quociente zero, ocupe a posio de ordem mais significativa. Tome como exemplo a converso do nmero 326 para a base 2, base 8 e base 16:

26

Disciplina: Arquitetura de Computadores

Dgito menos signicativo

326 - 163 0

2 163 -162 1

2 81 - 40 1

2 40 - 20 0

2 20 - 20 0

2 10 - 10 0

2 5 -2 1

2 2 2 0

Dgito mais signicativo

2 1 0 1

2 0

32610 =

Figura 12: Processo de converso de decimal para binrio

Dgito menos signicativo

326 - 320 6

8 40 - 40 0

Dgito mais signicativo

8 5 -0 5

8 0

32610 =

Figura 13: Processo de converso de decimal para octal

Dgito menos signicativo

326 - 320 6

8 20 - 16 4

Dgito mais signicativo

16 1 -0 1

16 0

32610 =

Figura 14: Processo de converso de decimal para hexadecimal

27

UNIDADE 2: SISTEMAS DE NUMERAO

Pelas figuras 12, 13 e 14, possvel verificar o procedimento de converso de um nmero inteiro na base 10 para os sistemas binrio, octal e hexadecimal. Deve-se observar que os restos das divises so escritos na forma inversa, ou seja, do algarismo menos significativo para o mais significativo. Ainda, considerando o processo de converso para a base 16, quando o resto for maior que 9, deve-se utilizar os respectivos algarismos hexadecimais A, B, C, D, E ou F conforme o caso. Processo para a parte fracionria do nmero: O procedimento para encontrar a parte fracionria de um nmero na nova base consiste em um processo de multiplicao sucessiva da parte fracionria do nmero em decimal pela base destino. A parte inteira do resultado da primeira multiplicao ser o valor da primeira casa fracionria, e a parte fracionria desse nmero ser de novo multiplicada pela base e assim por diante, at o resultado ser zero ou at encontrarmos o nmero de casas fracionrias desejado. Por exemplo, vamos converter 326,651 para a base 2, 8 e 16, com 5 algarismos fracionrios: 1. A parte inteira ser convertida pelo procedimento descrito no item anterior. 2. A parte fracionria ser determinada pelo processo de multiplicaes sucessivas, conforme verificamos nas figuras 15, 16 e 17.
Passo 1 2 3 4 5 6 0,651 0,302 0,64 0,208 0,416 0,832 0,651 = x x x x x x 1 0 2 2 2 2 2 2 1 = = = = = = 0 1.302 0,604 1,208 0,416 0,832 1,662 0 1 Algarismo da parte fracionria 1 0 1 0 0 1

Figura 15: Converso de decimal fracionrio para binrio fracionrio


Passo 1 2 3 4 5 6 0,651 0,208 0,664 0,312 0,496 0,968 0,651 = x x x x x x 5 1 8 8 8 8 8 8 5 = = = = = = 2 5,208 1,664 5,312 2,496 3,968 7,744 3 7 Algarismo da parte fracionria 5 1 5 2 3 7

Figura 16: Converso de decimal fracionrio para octal fracionrio

28

Disciplina: Arquitetura de Computadores

Passo 1 2 3 4 5 6 0,651 0,416 0,656 0,496 0,936 0,976 0,651 = x x x x x x A 16 16 16 16 16 16 6 A = = = = = = 7 10,416 6,656 10,496 7,936 14,976 15,616 E F

Algarismo da parte fracionria 10 6 10 7 14 15 E F A A

Figura 17: Converso de decimal fracionrio para hexadecimal fracionrio

3. Cada nmero ser montado atravs da concatenao da parte inteira com a parte fracionria, separadas por vrgula:

Binrio Octal Octal

326,651 326,651 326,651

= = =

101000110, 10100 506, 51523 146, A6A7E

Figura 18: Formatao final dos nmeros

Em todos os casos, a converso foi interrompida quando encontramos o nmero de algarismos fracionrios solicitado no enunciado. No entanto, como no encontramos resultado 0 em nenhuma das multiplicaes, poderamos continuar efetuando multiplicaes indefinidamente at encontrar (se encontrarmos) resultado zero. No caso de interrupo por chegarmos ao nmero de dgitos especificado sem encontramos resultado zero, o resultado encontrado aproximado, e essa aproximao ser funo do nmero de algarismos que calcularmos. Assim, se convertermos os nmeros da Figura 18 em decimal, chegaremos a um valor aproximado.

Converses entre as bases 2, 8 e 16


As converses mais simples so as que envolvem bases que so potncias entre si. Para converter da base 2 para a base 8, considere que 8 = 23. Ento, deve-se separar os bits de um nmero binrio em grupos de trs bits, comeando sempre do menos significativo para o mais significativo, e depois converter cada grupo de trs bits para seu equivalente em octal. Ao final, tem-se a representao do nmero binrio em octal. Por exemplo:

29

UNIDADE 2: SISTEMAS DE NUMERAO

101010012 = 10.101.0012 (separando em grupos de 3, sempre comeando da direita para a esquerda) Considerando que: 0102 = 28 1012 = 58 0012 = 18 Portanto: 101010012 = 2518 Nas converses entre as bases 2 e 16, deve ser considerado que 24 = 16. Assim, basta separar o nmero binrio em grupos de 4 bits e converter parcialmente cada um dos grupos de 4 bits para hexadecimal. Observe no exemplo abaixo o processo:

110101011012 = 110.1010.11012 (separando em grupos de 4 bits, sempre comeando do algarismo menos significativo para o mais significativo) Considerando que: 1102 = 616 10102 = A16 11012 = D16 Portanto: 110101011012 = 6AD16 Para convertermos nmeros escritos em hexadecimal ou octal para binrio, devemos efetuar a operao inversa ao processo de binrio para as bases 8 e 16. Perceba pelos exemplos abaixo como operar nesse processo de converso: a. Converter o nmero CAFE16 para binrio: 1. Como cada dgito hexadecimal corresponde a 4 dgitos binrios, ento deve-se converter parcialmente cada um dos dgitos em hexadecimal: C16 = 1210 = 11002 A16 = 1010 = 10102

30

Disciplina: Arquitetura de Computadores

F16 = 1510 = 11112 E16 = 1410 = 11102 2. Agora s concatenar cada um dos nmeros em binrio, obedecendo posio relativa de cada um deles. O nmero final ser: CAFE16 = 1100.1010.1111.11102 b. Converter o nmero 36218 para binrio: 1. Como cada dgito octal corresponde a 3 dgitos binrios, ento deve-se converter parcialmente cada um dos dgitos em hexadecimal: 38 = 310 = 0112 68 = 610 = 1102 28 = 210 = 0102 18 = 110 = 0012 2. Para finalizar, s concatenar cada um dos nmeros em binrio, obedecendo posio relativa de cada um deles. O nmero final ser: 36218 = 011.110.010.0012

Converso de nmeros entre duas bases quaisquer


Para converter nmeros de uma base b qualquer para outra base qualquer, o processo prtico utilizado o de converter da base origem para a base 10 e depois da base 10 para a base destino. Por exemplo: converter o nmero 567 (base 7) para a base 9. 567 = (5x71 + 6x70)10 = 35 + 6 = 4110 41/9 = 4 e resto 5. Logo: 567 = 459 Observe que o processo de converso entre as bases 7 e 9 foi efetuado utilizando as teorias abordadas nas sesses anteriores, podendo ser aplicado para qualquer processo de converso, desde de que envolva a base 10 como a base de referncia. Para melhorar as habilidades de manipulao numrica, procure fazer vrios exerccios.

31

UNIDADE 2: SISTEMAS DE NUMERAO

Referncias
GONICK, Larry. Introduo Ilustrada Computao. Rio de Janeiro: Ed. Harper & Row do Brasil, 1984. MONTEIRO, Mrio. Introduo Organizao de Computadores. 2 ed. So Paulo: Editora LTC. STALLINGS, W. Arquitetura e Organizao de Computadores. 5. ed. So Paulo: Pearson Education do Brasil, 2002. TANENBAUM, A. Organizao Estruturada de Computadores. 4. ed. So Paulo: Prentice-Hall, 2006.

Links:
AREASEG (Site de Segurana do Trabalho). Disponvel em: <http://www.areaseg.com/sinais/numeros.html>. Acesso em: 20 mai. 2012. CALCULADORA ONLINE. Disponvel em: <http://www.calculadoraonline.com.br/conversao-bases>. Acesso em: 15 mai. 2012. LINHARES, Robson Ribeiro. Bases numricas. UTPR (Universidade Tecnolgica Federal do Paran). Disponvel em: <http://www.dainf.ct.utfpr.edu.br/~robson/prof/aulas/common/bases. htm#exerc>. Acesso em: 18 mai. 2012. CONVERSO DE BASES. 2008. Disponvel em: <http://bitsebites-sistemasnumericos.blogspot.com.br/2008/05/converso-de-bases.html>. Acesso em: 18 mai. 2012.

32

Disciplina: Arquitetura de Computadores

UNIDADE 3 Representaes numricas


OBJETIVOS

Desenvolver habilidades para a manipulao e interpretao de nmeros binrios inteiros e reais, tanto positivos quanto negativos. Apresentar o processo aritmtico binrio visando o entendimento de desempenho computacional. Entender o processo de representao e armazenamento de dados numricos nos computadores modernos. Facilitar o entendimento para diferenciao dos tipos de dados de uma linguagem de programao de computadores.

Representao de nmeros inteiros (ponto fixo)


Nos computadores digitais modernos, a forma mais natural de representao numrica o sistema binrio, pois o hardware foi projetado para trabalhar com a interpretao de somente dois sinais eltricos distintos. Assim, para a formao dos algarismos que compem os nmeros nos computadores, devem-se considerar somente esses dois sinais. Essa a forma mais adequada e eficiente para representar e manipular nmeros em um computador. Sabemos, contudo, que os nmeros inteiros podem ser positivos ou negativos. Ento, um aspecto primordial a ser definido como representar o sinal de um nmero, pois existem somente dois smbolos disponveis, e eles j so usados nas representaes numricas. A soluo adotada utiliza um bit para representar o sinal do nmero. Convencionalmente, usado o dgito mais significativo para indicar o sinal, comumente chamado de bit de sinal. Como um bit pode assumir somente os valores 0 e 1, ficou convencionado ainda que, se o bit de sinal tiver valor 0, o nmero positivo; caso contrrio (1), o nmero negativo. Na Tabela 4 so apresentados dois exemplos da representao de nmeros negativos em binrio, bem como em hexadecimal e octal. importante observar que, nas representaes na base 16 e 8, o bit de sinal sempre considerado no processo de converso, e os smbolos que indicam se o nmero positivo ou negativo (+ e -) s devem aparecer nas representaes em decimal.

33

UNIDADE 3: REPRESENTAES NUMRICAS

TABELA 4 Visualizao da representao de nmeros inteiros

DECIMAL +9 -9 127 -127

BINRIO 00001001 10001001 01111111 11111111

HEXADECIMAL 09 89 7F FF

OCTAL 011 211 177 377

0 Bit com valor 0 indica nmero positivo 1 Bit com valor 1 indica nmero negativo

Observando-se a Tabela 4, verifica-se que, em uma representao binria com n bits, possvel representar nmeros com (n - 1) bits, pois o bit mais significativo representa o sinal, e somente os demais bits representam o valor numrico. Essa forma de representar tem o nome de representao em Sinal e Magnitude (S/M).

Representaes em Sinal e Magnitude S/M


Nessa representao, o nmero deve ser avaliado por dois campos, sendo que um deles indica o sinal do nmero, e o outro, a sua magnitude. Veja pela Figura 19 uma representao grfica desse formato.

NMERO Sinal Magnitude


34
FIGURA 19: Viso geral do formato Sinal e Magnitude

Disciplina: Arquitetura de Computadores

A palavra magnitude, nesse contexto, significa o valor absoluto de um nmero. Em outras palavras, refere-se ao mdulo de um nmero, que pode estar representado tanto em decimal quanto em binrio, octal, ou mesmo no formato hexadecimal. Os valores dos dgitos usados para representarem a magnitude de um nmero independem do sinal desse nmero, isto , sendo o nmero positivo ou negativo, a representao da magnitude ser a mesma; o que varia na representao apenas o dgito de sinal. Alm da magnitude do nmero, deve ser avaliado o seu sinal, que sempre determinado pelo seu dgito mais significativo. O valor zero (0) para esse dgito indica que o nmero positivo. Para os nmeros negativos, o valor desse dgito depende da base numrica utilizada na representao do nmero. Como no sistema binrio existem somente dois smbolos disponveis para a formao dos nmeros, quando o valor do bit de sinal for 0 (zero), significa que o nmero positivo e, quando o seu valor for 1, indica um nmero negativo. Tecnicamente falando, o algarismo usado para indicar o sinal de negativo sempre o ltimo smbolo disponvel no sistema numrico. Assim como no sistema binrio o algarismo 1 indica o sinal de negativo, o algarismo 9 usado no sistema decimal para indicar o sinal de negativo.

importante ressaltar que, nos sistemas numricos octal e hexadecimal, os algarismos 7 e F so usados para indicar o sinal de negativo somente quando o nmero em questo no est relacionado com algum nmero em binrio. Por outro lado, havendo uma relao, o sinal obrigatoriamente associado ao dgito mais signicativo do nmero em binrio.

Observe, na Figura 20, que a sequncia binria 0112 equivale ao valor absoluto 3, ou seja, mdulo de 3. Verifique, ainda, as representaes desse mesmo nmero nos sistemas octal e hexadecimal.

Binrio 0011 1011

Representao em Sinal e Magnitude Decimal Octal Decimal 03 03 03 93 13 93

Representao Hexadecimal Convencional 3 +3 B -3

Figura 20: Equivalncia das representaes positivas e negativas de um nmero

35

UNIDADE 3: REPRESENTAES NUMRICAS

Faixa de representao
A representao na base b em Sinal e Magnitude com n bits (incluindo o bit de sinal) possui bn representaes, o que permite representar (bn-1) nmeros distintos, uma vez que h duas representaes para o zero: uma para o + 0 e outra para o - 0. Deve-se observar que, no contexto da matemtica, o nmero 0 no tem sinal, contudo, na computao, dada a natureza dos formatos de representaes numricas, devem ser consideradas as duas representaes, ou seja, a positiva e a negativa. A faixa de representao de nmeros na base 2 em Sinal e Magnitude com n bits (incluindo o bit de sinal) possui 2n representaes, sendo possvel apresentar os nmeros de - (2n-1-1) a + (2n-1-1). Dessa forma, o maior valor inteiro possvel ento + (2n-1-1), e o menor valor inteiro (2n-1-1). Veja a aplicao das frmulas pelos exemplos abaixo: 1. Considerando que uma determinada mquina trabalha com a representao de nmeros inteiros no formato S/M de 8 bits, indique, em decimal, o maior e o menor valor que pode ser representado diretamente nessa mquina. Desenvolvimento: Como o menor valor determinado pela equao {- (2n-1-1)}, ento: Menor valor = - (2n-1-1), onde n igual a 8 Menor valor = - (28-1-1) = - (128 -1) = - (127) = - 127 O maior valor determinado pela equao {+ (2n-1-1)}, ento: Maior valor = + (2n-1-1), onde n igual a 8 Maior valor = + (28-1-1) = + (128 -1) = + (127) = + 127 Resposta: menor valor = - 127; maior valor = + 127 2. possvel que em uma mquina que trabalha com a representao de nmeros inteiros no formato S/M em 13 bits represente o resultado da multiplicao dos nmeros 1024 e -4 diretamente? Desenvolvimento: Primeiro deve-se considerar que a palavra diretamente est se referindo possibilidade de representao numrica sem o uso de artifcios matemticos e computacionais que permitem a concatenao de nmeros. Em linhas gerais, um computador pode

36

Disciplina: Arquitetura de Computadores

manipular nmeros que vo alm da sua capacidade mxima de representao. claro que diversos artifcios matemticos e computacionais devem ser empregados, mas eles esto fora do escopo inicial desta disciplina. Num segundo momento, deve-se calcular o limite mnimo de representao numrica na mquina estudada pela equao {- (2n-1-1)}. Ento: Menor valor = - (2n-1-1), onde n igual a 13 Menor valor = - (213-1-1) = - (4096 - 1) = - (4095) = - 4095 Para finalizar, deve-se efetuar a multiplicao dos nmeros envolvidos: 1024 x -4 = - 4096. Resposta: No possvel representar o resultado da multiplicao do nmero 1024 pelo nmero -4 em uma mquina que manipula nmeros de 13 bits no formato S/M. Sobre o processo de manipulao numrica, observe as seguintes consideraes: a. O nmero de bits para a representao determinado no projeto do computador. b. Em situaes nas quais o nmero a ser representado excede a capacidade mxima que uma determinada mquina pode representar, caracterizada um situao denominada overflow. c. A situao denominada underflow tipicamente caracterizada pela impossibilidade de representao de nmeros menores que o menor nmero manipulado diretamente pela mquina. d. Em Sinal e Magnitude, existem duas representaes para o zero.

Aritmtica em Sinal e Magnitude


Algoritmo da soma 1. Verificar o sinal das parcelas. 2. Se os sinais forem iguais: -- repetir o sinal; -- somar as magnitudes.

37

UNIDADE 3: REPRESENTAES NUMRICAS

3. Se os sinais forem diferentes: -- verificar qual parcela tem maior magnitude; -- repetir o sinal da maior magnitude; -- subtrair a menor magnitude da maior magnitude. 4. Verificar se o resultado final est dentro dos limites possveis (situaes de underflow e overflow). 5. Apresentar o resultado da operao. Algoritmo da subtrao 1. Processar a subtrao: -- verificar qual parcela tem maior magnitude; -- repetir o sinal da maior magnitude; -- subtrair a menor magnitude da maior magnitude. 2. Verificar se o resultado final est dentro dos limites possveis (situaes de underflow e overflow). 3. Apresentar o resultado da operao. O algoritmo da subtrao o mesmo da soma nos casos em que as parcelas possuem sinais diferentes. Nesses casos, a subtrao feita como se fosse uma soma de dois nmeros que tm sinais diferentes. Observa-se que, no processo aritmtico na representao S/M, existe custo adicional, pois ele exige um grande nmero de comparaes para realizar uma simples soma ou subtrao de dois nmeros inteiros. Os algoritmos acima descritos so mais onerosos de serem realizados no computador, pois resultam em uma baixa eficincia computacional (execuo lenta), tendo em vista a necessidade de comparaes entre os operandos. Outro ponto negativo dessa representao est associado ao fato de que existem duas representaes para o nmero zero, o que torna mais trabalhoso o desenvolvimento de programas numa linguagem de alto nvel, pois, ao comparar o contedo de uma varivel com o zero, devem-se considerar os dois formatos do zero. Assim, uma simples comparao com o nmero zero leva o programador seguinte estrutura: if ( (Cont == 0) or (Cont == +0) ).

38

Disciplina: Arquitetura de Computadores

Diante das dificuldades apresentadas pela representao S/M, os engenheiros passaram a usar a representao complementar de nmeros negativos no projeto de sistemas digitais. claro que ainda existem mquinas que manipulam nmeros no formato S/M, como os processadores de sinais da Motorola (XC5630P) ou da Texas (TMS320C62x).

Representao de nmeros no formato complementar


Uma segunda alternativa de representao numrica que utiliza os mesmos algarismos tanto para indicar a magnitude quanto para indicar o sinal do nmero a representao complementar. Nela, deve-se considerar que o complemento de qualquer nmero a diferena entre o valor de cada algarismo desse nmero e o valor do maior nmero possvel com um mesmo algarismo, da base. Tomando como exemplo o sistema decimal, no qual o maior nmero possvel formado pela repetio do algarismo 9, pode-se considerar que o complemento do nmero 385 614, pois:

999 385 614


Note que o maior algarismo da base deve ser repetido o nmero de vezes igual quantidade de algarismos do nmero cujo complemento se deseja calcular. Para o sistema binrio, simples calcular o complemento de um nmero, pois, como s existem dois smbolos, o complemento de 0 1 e o complemento de 1 0. O complemento do nmero 1001102 0110012. Uma vantagem da utilizao da representao em complemento que as operaes aritmticas so efetuadas diretamente, sem a necessidade de avaliao inicial dos operandos, e a subtrao entre dois nmeros pode ser substituda pela sua soma em complemento.

Representao de nmeros positivos em complemento


A representao de nmeros positivos em complemento no tem qualquer alterao, isto , idntica representao em Sinal e Magnitude, observando-se que o dgito de sinal o algarismo zero (0 indica positivo).

39

UNIDADE 3: REPRESENTAES NUMRICAS

Representao de nmeros negativos em complemento a (base -1)


Nesse formato de representao, os nmeros inteiros negativos so obtidos a partir da representao positiva de cada um dos nmeros, com o clculo do seu complemento. Dessa forma, ao calcular o complemento a (base -1) de um nmero positivo, encontramos a sua representao em negativo e vice-versa. Deve-se lembrar que o dgito de sinal sempre ser o dgito mais significativo do nmero. Por conveno, o algarismo/smbolo usado para indicar o sinal de negativo o ultimo algarismo do sistema numrico, ou seja, o algarismo/smbolo (base -1). Para entender melhor, observe os exemplos abaixo: 1. Calcule o complemento a (base - 1) do nmero +26110 com 4 algarismos decimais. Desenvolvimento: -- Determinar (base-1). Como a base 10, ento (base - 1) = (10 1) = 9 e o complemento a (base -1) ser igual a complemento a 9, ou simplesmente C9. -- Normalizar o nmero para 4 algarismos. Como o nmero +26110 positivo, ento o dgito de sinal ser 0. Portanto +26110 normalizado para 4 dgitos 026110 -- Calcular o C9 do nmero 0261:

9999 0261 9738


Resultado: -- Complemento a 9 do nmero +26110 = 973810 2. Calcule o complemento a (base - 1) do nmero 951C16, usando 4 algarismos em hexadecimal. Desenvolvimento: -- Convencionalmente, para a computao, no existe sinal de positivo ou negativo nas representaes em binrio, octal e hexadecimal. Para essa indicao, deve ser considerado o nmero no formato em binrio e avaliar o valor do bit mais significativo (um valor zero indica um nmero positivo e 1 indica um nmero negativo). De toda forma, s processar o clculo do complemento a (base-1) diretamente.

40

Disciplina: Arquitetura de Computadores

-- Considerando que a base 1610 e o nmero 1610 igual ao nmero 1016, ento (base 1) = (1016 1) = F16 e o complemento a (base -1) ser igual a complemento a F. -- Assim, o CF do nmero 951C:

FFFF 951C 6AE3


Resultado: -- Complemento a F do nmero 951C16 = 6AE316 Considerando os exemplos apresentados, possvel inferir que, para obter o complemento a 1 de um nmero binrio, deve-se subtrair cada algarismo do nmero de 1. Uma particularidade dos nmeros binrios que, para efetuar essa operao, basta inverter todos os bits. Observe, na Tabela 5, a relao dos nmeros binrios de 4 dgitos na representao em C1.

TABELA 5 Representao binrio em C1 com 4 bits Binrio 0000 0001 0010 0011 0100 0101 0110 0111 1111 1110 1101 1100 1011 1010 1001 1000 C1 1111 1110 1101 1100 1011 1010 1001 1000 0000 0001 0010 0011 0100 0101 0110 0111

41

UNIDADE 3: REPRESENTAES NUMRICAS

Tal como na representao em Sinal e Magnitude, sempre que em uma representao em complemento o primeiro dgito binrio for 1, o nmero representado negativo, sendo que o dgito mais significativo igual a zero indica que o nmero positivo. Assim, o zero pode ser representado tanto por 00002 quanto por 11112.

Faixa de representao
A representao na base b em complemento a (base -1), com n bits, possui bn representaes, o que permite representar (bn1) valores. O problema de haver duas representaes para o zero no est solucionado com essa representao. A faixa numrica da representao na base 2 no formato complemento a (base-1), com n bits, a mesma que no formato Sinal e Magnitude, podendo ser calculada como 2n valores, variando de -(2n-1-1) a +(2n-1-1), de forma que o maior valor inteiro positivo ser ento +( 2n-1-1), e o menor valor inteiro negativo ser -(2n-1-1). Abaixo, so apresentados exemplos de aplicao das frmulas: 1. Considerando que uma determinada mquina trabalha com a representao de nmeros inteiros no formato C1 com 8 bits, indique em decimal o maior e o menor valor que pode ser representado diretamente nessa mquina. Desenvolvimento: Como o menor valor determinado pela equao {- (2n-1-1)}, ento: Menor valor = - (2n-1-1), onde n igual a 8 Menor valor = - (28-1-1) = - (128 -1) = - (127) = - 127 O maior valor determinado pela equao {+ (2n-1-1)}, ento: Maior valor = + (2n-1-1), onde n igual a 8 Maior valor = + (28-1-1) = + (128 -1) = + (127) = + 127 Resposta: menor valor = - 127; maior valor = +127 2. possvel que uma mquina que trabalha com a representao de nmeros inteiros no formato C1 em 13 bits represente o resultado da multiplicao dos nmeros 1024 e -4 diretamente? Desenvolvimento: Novamente, deve-se considerar primeiro que a palavra diretamente est se referindo possibilidade de representao numrica sem o uso de artifcios matemticos e

42

Disciplina: Arquitetura de Computadores

computacionais que permitem a concatenao de nmeros, j que eles esto fora do escopo inicial desta disciplina. Num segundo momento, deve-se calcular o limite mnimo de representao numrica na mquina estudada pela equao {- (2n-1-1)}. Ento: Menor valor = - (2n-1-1), onde n igual a 13 Menor valor = - (213-1-1) = - (4096 - 1) = - (4095) = - 4095 Para finalizar, deve-se efetuar a multiplicao dos nmeros envolvidos: 1024 x -4 = - 4096. Resposta: No possvel representar o resultado da multiplicao do nmero 1024 pelo nmero -4 em uma mquina que manipula nmeros de 13 bits no formato C1. Assim como no formato S/M, o nmero de bits dos nmeros manipulados em um computador que trabalha com o formato de representao C1 depende exclusivamente do projeto do computador. Situaes de overflow e underflow podem ocorrer em funo dos nmeros manipulados. Apesar de continuar com duas representaes para o nmero zero, a aritmtica desse sistema otimizada, se comparada com a aritmtica praticada no formato S/M, o que torna a representao em C (base-1) mais interessante do que a representao em S/M.

Aritmtica em complemento a (base -1)


Na aritmtica em complemento a (base-1), as operaes de adio e subtrao so efetuadas diretamente, sem a necessidade de comparaes iniciais, como na aritmtica em S/M, pois deve-se levar em conta que os nmeros negativos so representados pelo complemento do mesmo nmero em positivo. Dessa forma, no existe um procedimento para adio e outro distinto para a subtrao; essas operaes so realizadas diretamente pelo processo de adio complementar de um nmero. A nica regra diferente daquelas a que estamos habituados que, quando existe o chamado vai um do dgito mais significativo, esse transbordo deve ser adicionado ao nmero final. Com relao anlise do resultado final, deve-se observar o dgito de sinal, pois, se estamos somando nmeros positivos, o resultado s pode ser positivo; da mesma forma, quando estamos

43

UNIDADE 3: REPRESENTAES NUMRICAS

somando nmeros negativos, temos como resultado esperado somente um nmero negativo. Caso ocorra um resultado diferente do esperado, o nmero final est sendo considerado um erro de overflow ou underflow, conforme o caso. Analise os exemplos abaixo. 1. Efetue a adio do nmero +32610 com o nmero -13610. A operao dever ser realizada em complemento a (base -1) com 4 algarismos. Desenvolvimento: -- Primeiro passo: determinar (base-1). Considerando que a base 10, ento (base - 1) = (10 1) = 9. -- Segundo passo: normalizar os nmeros para 4 dgitos em C9 e representar no formato complementar, conforme o caso. O nmero positivo representado com um zero na casa mais significativa. Assim, +32610 = 032610 em C9 4 dgitos. Para representar o complemento a (base-1) de um nmero em decimal negativo, calcula-se o complemento a (base-1) do mdulo normalizado do referido nmero. Ento, para -136, temos o mdulo normalizado em 4 dgitos igual a 0136. Na sequncia determina-se o complemento do mdulo obtido no passo anterior. Assim:

9999 0136 9863


Agora, basta somar os nmeros obtidos aps a normalizao, ou seja, 0326 + 9863.

11 0326 9863 0189 1 0190

O vai 1 final deve ser adicionado ao resultado final

44

Disciplina: Arquitetura de Computadores

Resultado: 2. O resultado final da operao aritmtica de adio realizada entre os nmeros +32610 e -13610 0190, ou seja, +190 na interpretao decimal pura. Analisando o resultado final, como estamos subtraindo um nmero negativo de um positivo, pode-se esperar um resultado tanto positivo quanto negativo, dependendo somente da magnitude dos nmeros envolvidos. 3. Efetue a subtrao entre o nmero +32610 e o nmero -13610. A operao deve ser realizada em complemento a (base -1) com 4 algarismos. Desenvolvimento: -- Primeiro passo: avaliar o que deve ser feito. 326 ( 136 ), o que de certa forma igual soma 326 + 136. Em outras palavras, ao calcular o complemento do complemento de um nmero, estamos voltando ao nmero original. Verifique os dois sinais negativos na expresso inicial. -- Segundo passo: normalizar os nmeros para 4 dgitos em C9 e representar no formato complementar, conforme o caso. 4. O nmero positivo representado com um zero na casa mais significativa. Assim, +32610 = 032610 em C9 4 dgitos e o nmero 13610 = 013610 em C9 4 dgitos. Agora, basta somar os nmeros obtidos aps a normalizao, ou seja, 0326 + 0136.

1 0326 0136 0462 0 0462

Resultado: O resultado final da operao aritmtica de subtrao entre os nmeros +32610 e -13610 0462, ou seja +462 na interpretao decimal pura.

45

UNIDADE 3: REPRESENTAES NUMRICAS

Deve-se observar que, com a representao em complemento a (base-1), os problemas computacionais da representao em S/M foram parcialmente resolvidos. Na verdade, a complexidade inicial da aritmtica foi diminuda consideravelmente, mantendo-se somente o problema das duas representaes para o nmero zero. A maioria dos processadores do mercado possui instrues de compatibilidade com os formatos em complemento a (base -1), ou melhor, em complemento a 1, pois os sistemas computacionais operam com o sistema binrio (base 2).

Representao de nmeros negativos em complemento a base


A representao dos nmeros inteiros negativos em complemento a base uma alternativa melhorada dos formatos anteriormente estudados, pois resolve o problema da dupla representao para o nmero zero, bem como apresenta uma melhoria no algoritmo da aritmtica. Quanto ao nmero positivo, deve-se considerar que sua representao igual ao formato Sinal e Magnitude e complemento a (base-1). Para calcular o complemento a base de um determinado nmero, basta obter o complemento a (base -1) desse nmero e somar uma unidade. Veja pelos exemplos abaixo o procedimento de clculo: 1. Calcule o complemento a base do nmero +26110 com 4 algarismos decimais. Desenvolvimento: -- Como a base 10, ento o complemento a base ser igual ao complemento a 9 mais uma unidade, ou seja, C10 = (C9 +1). -- Normalizar o nmero para 4 algarismos. Como o nmero +26110 positivo, ento o dgito de sinal ser 0. Portanto, +26110, normalizado para 4 dgitos, 026110. -- Calcular o C9 do nmero 0261:

9999 0261 9738


-- Somar uma unidade ao resultado do passo anterior, ou seja, como C10 = C9 + 1, ento:

9738 1 9739
46

Disciplina: Arquitetura de Computadores

Resultado: -- Complemento a 10 do nmero +26110 = 973910 2. Calcule o complemento a base do nmero 951C16, usando 4 algarismos em hexadecimal. Desenvolvimento: -- Convm lembrar mais uma vez que convencionalmente, para a computao, no existe sinal de positivo ou negativo nas representaes em binrio, octal e hexadecimal. Para essa indicao, deve ser considerado o nmero no formato em binrio e avaliar o valor do bit mais significativo (um valor zero indica um nmero positivo e 1 indica um nmero negativo). De toda forma, s processar o clculo do complemento a base diretamente. -- Considerando que a base 1610, ento base -1 = F. -- Para calcular o CF do nmero 951C, no necessrio normalizar, pois o nmero usado j est com 4 dgitos. Assim: -Incrementar uma unidade ao resultado do item anterior:

Resultado: -- Complemento 16 do nmero 951C16 = 6AE416 Na adio realizada para calcular o complemento a base, quando houver o vai 1 do dgito mais significativo, devemos descart-lo, ao contrrio da operao em complemento a (base 1), na qual o excesso incremento ao nmero restante. Essa regra faz parte do procedimento usado para efetuar as operaes aritmticas. Na Figura 21, possvel visualizar o significado da regra.

O vai 1 final deve ser desconsiderado

11 1 0726 9336 0062

FIGURA 21: Operao aritmtica em complemento a base (descartar o vai 1)

Adotando o procedimento para clculo dos nmeros negativos em complemento a base, podese verificar que o nmero zero possui somente uma representao, ou seja, a representao

47

UNIDADE 3: REPRESENTAES NUMRICAS

positiva; deixa-se a representao negativa para ser usada na representao de mais um nmero negativo. Observe na Tabela 6 a relao de nmeros em complemento 2 (C2) de 4 dgitos e o seu correspondente em decimal.

TABELA 6 Relao de nmeros em C2 4 bits Decimal 0 +1 +2 +3 +4 +5 +6 +7 -8 -7 -6 -5 -4 -3 -2 -1 Binrio C2 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17

Faixa de representao
A representao na base b em complemento a base com n bits possui bn representaes, o que permite representar bn valores. Como existe somente uma representao para o zero, h mais um nmero negativo representado. Assim, a faixa numrica da representao na base 2 no formato complemento a base, com n bits, calculada como 2n valores, variando de -(2n-1) a +(2n-1-1), de forma que o maior valor inteiro positivo ser ento +( 2n-1-1), e o menor valor inteiro negativo ser -(2n-1). Abaixo so apresentados exemplos de aplicao das frmulas: 1. Considerando que uma determinada mquina trabalha com a representao de nmeros inteiros no formato C2 com 8 bits, indique em decimal o maior e o menor valor que pode ser representado diretamente nessa mquina.

48

Disciplina: Arquitetura de Computadores

Desenvolvimento: Como o menor valor determinado pela equao {- (2n-1)}, ento: Menor valor = - (2n-1), onde n igual a 8 Menor valor = - (28-1) = - (128 ) = - (128) = - 128 O maior valor determinado pela equao {+ (2n-1-1)}, ento: Maior valor = + (2n-1-1), onde n igual a 8 Maior valor = + (28-1-1) = + (128 -1) = + (127) = + 127 Resposta: menor valor = - 128; maior valor = +127 2. possvel que em uma mquina que trabalha com a representao de nmeros inteiros no formato C2 em 13 bits represente o resultado da multiplicao dos nmeros 1024 e -4 diretamente? Desenvolvimento: Novamente, considera-se, em primeiro lugar, que a palavra diretamente est se referindo possibilidade de representao numrica sem o uso de artifcios matemticos e computacionais que permitem a concatenao de nmeros. Num segundo momento, deve-se calcular o limite mnimo de representao numrica na mquina estudada pela equao {- (2n-1)}. Ento: Menor valor = - (2n-1), onde n igual a 13 Menor valor = - (213-1) = - (4096) = - 4096 Para finalizar, deve-se efetuar a multiplicao dos nmeros envolvidos: 1024 x -4 = - 4096. Resposta: Sim, possvel representar o resultado da multiplicao do nmero 1024 pelo nmero -4, em uma mquina que manipula nmeros de 13 bits no formato C2. O nmero de bits dos nmeros manipulados em um computador que trabalha com o formato de representao C2 depende exclusivamente do projeto do computador. Situaes de overflow e underflow podem ocorrer em funo dos nmeros manipulados. O procedimento de execuo das operaes aritmticas otimizado em relao aos demais formatos de representao, sendo o mais utilizado nos processadores atualmente.

49

UNIDADE 3: REPRESENTAES NUMRICAS

Aritmtica em complemento a base


Na aritmtica em complemento a base, as operaes de adio e subtrao so efetuadas diretamente, sem a necessidade de comparaes iniciais, como na aritmtica em S/M, pois deve-se levar em conta que os nmeros negativos so representados pelo complemento do mesmo nmero em positivo. Dessa forma, no existe um procedimento para adio e outro distinto para a subtrao. Essas operaes so realizadas diretamente pelo processo de adio complementar de um nmero. A nica regra diferente daquelas a que estamos habituados que, quando existe o chamado vai um do dgito mais significativo, esse transbordo deve ser ignorado, no sendo adicionado ao nmero final. Com relao anlise do resultado final, deve-se observar o dgito de sinal, pois, se estamos somando nmeros positivos, o resultado s pode ser positivo; da mesma forma, quando somamos nmeros negativos, temos como resultado esperado somente um nmero negativo. Caso ocorra um resultado diferente do esperado, o nmero final est sendo considerado um erro de overflow ou underflow, conforme o caso. Analise os exemplos abaixo: 1. Efetue a adio do nmero +32610 com o nmero -13610. A operao dever ser realizada em complemento a base com 4 algarismos. Desenvolvimento: -- Primeiro passo: determinar base. Considerando que a representao dos nmeros est no sistema decimal, ento base = 10. -- Segundo passo: normalizar os nmeros para 4 dgitos em C10 e representar no formato complementar, conforme o caso. O nmero positivo representado com um zero na casa mais significativa. Assim, +32610 = 032610 em C10 4 dgitos. Para representar o complemento a base de um nmero em decimal negativo, calculase o complemento (base-1) do mdulo normalizado do referido nmero e soma-se uma unidade. Ento, para -136, temos o mdulo normalizado em 4 dgitos igual a 0136. Na sequncia, determina-se o complemento do mdulo obtido no passo anterior. Assim:

9999 0136 9863

50

UNIDADE 3: REPRESENTAES NUMRICAS

Soma-se uma unidade ao resultado obtido: 9863 + 1 = 9864 Agora, basta somar os nmeros obtidos aps a normalizao, ou seja, 0326 + 9864. Resultado: O resultado final da operao aritmtica de adio realizada entre os nmeros +32610 e -13610 0190, ou seja, +190 na interpretao decimal pura. Analisando o resultado final, como estamos subtraindo um nmero negativo de um positivo, pode-se esperar um resultado tanto positivo quanto negativo, dependendo somente da magnitude dos nmeros envolvidos. 2. Efetue a subtrao entre o nmero +32610 e o nmero -13610. A operao deve ser realizada em complemento a base com 4 algarismos. Desenvolvimento: -- Primeiro passo: avaliar o que deve ser feito. 326 ( 136 ), o que de certa forma igual soma 326 + 136. Em outras palavras, ao calcular o complemento do complemento de um nmero, estamos voltando ao nmero original. Verifique os dois sinais negativos na expresso inicial. -- Segundo passo: normalizar os nmeros para 4 dgitos em C10 e representar no formato complementar, conforme o caso. O nmero positivo representado com um zero na casa mais significativa. Assim, +32610 = 032610 em C10 4 dgitos e o nmero 13610 = 013610 em C10 4 dgitos. Agora, basta somar os nmeros obtidos aps a normalizao, ou seja, 0326 + 0136.

1 0326 0136 0462


Resultado: O resultado final da operao aritmtica de subtrao entre os nmeros +32610 e -13610 0462, ou seja, +462 na interpretao decimal pura. Deve-se observar que, com a representao em complemento a base, os problemas computacionais com relao aritmtica e representao ambgua para o zero

51

UNIDADE 3: REPRESENTAES NUMRICAS

foram resolvidos, mantendo-se somente o inconveniente do desbalanceamento na representao numrica, ou seja, no formato de representao em complemento a base, a quantidade de nmeros positivos representados menor que a de nmeros negativos.

Representao de nmeros reais


Por natureza, os nmeros reais so difceis de serem representados computacionalmente, pois exigem tcnicas mais refinadas para armazenamento e processamento. Considerando a classe de problema, os nmeros podem ser muito extensos ou mesmo infinitos, como dzimas peridicas e nmeros irracionais. Dessa forma, trunc-los inevitvel, o que, no final, pode influenciar negativamente no processo de clculo, diminuindo a sua preciso. Desde os primrdios da computao, duas abordagens prevalecem para represent-los. Uma a tcnica denominada representao em ponto fixo e outra a representao em ponto flutuante. Explicando melhor, a palavra ponto pode ser substituda pela palavra vrgula, ou seja, representao em vrgula fixa e em vrgula flutuante. Os problemas apresentados por essas representaes esto relacionados com a maneira de registrar a faixa de variao do nmero e a sua preciso numrica. A representao em ponto fixo a mais indicada para mquinas projetadas para aplicaes especficas, ou seja, computadores projetados para uma determinada classe de aplicaes. Nesses computadores, os limites mximos e mnimos a serem representados so definidos diretamente pelo hardware ao longo do projeto. Por exemplo, se uma mquina foi projetada para manipular somente nmeros de 34 dgitos esquerda do ponto decimal e 28 dgitos direita desse ponto, no ser adequado trabalhar com sistemas que necessitam manipular nmeros que exigem uma preciso de 40 dgitos esquerda e 22 dgitos direita. Observe que a quantidade de dgitos usados nas representaes a mesma, mas existe uma restrio especfica de hardware que no permite a variao da posio do ponto. As representaes em ponto flutuante so mais flexveis, se considerarmos que possvel atender a diversas classes de problemas com uma mesma mquina, pois podemos, de forma dinmica, ajustar tanto o nmero de dgitos que precedem o ponto quanto os dgitos que esto direita do ponto. Nessa alternativa, a faixa de variao do nmero est separada da sua preciso numrica, usando-se o mtodo de notao cientfica: n = i.f x 10e, onde n um nmero real e i representa a parte inteira, sendo separado por um ponto de f. O f

52

UNIDADE 3: REPRESENTAES NUMRICAS

conhecido como frao ou mantissa e e um nmero inteiro positivo ou negativo conhecido como expoente. A Figura 22 apresenta alguns exemplos de nmeros expressos nesse formato.

3,14 0,000001 1941

= = =

0,314 x 101 0,1 x 10-5 0,1941 x 104

= = =

3,14 x 100 1,0 x 10-6 1,941 x 103

FIGURA 22: Representao em ponto flutuante

Esse mtodo conhecido como representao em ponto flutuante. Nele, a faixa de variao dos nmeros determinada pela quantidade de dgitos do expoente e a preciso determinada pela quantidade de dgitos da mantissa. Como h mais de uma maneira de representar nmeros nessa notao, deve-se escolher uma delas como padro. Para investigar as propriedades desse mtodo de representao de nmeros, considere uma representao R, com uma mantissa de trs dgitos com sinal, na faixa de 0.1 | f | < 1 ou zero e um expoente de dois dgitos com sinal. Tais nmeros tm uma faixa de variao que vai de +0.100 x 10-99 a + 0,999 x 10+99, que se expande por mais ou menos 199 ordens de magnitude, apesar de ser necessrio usar s cinco dgitos e dois sinais para armazenar nmeros expressos nessa notao. Os nmeros em ponto flutuante podem ser usados para representar o sistema de nmeros reais da matemtica, apesar de haver algumas diferenas importantes. A Figura 23 mostra um esquema da reta dos nmeros reais visando apresentar essas diferenas.

3 Under ow negativo 1 Over ow negativo 2 Nmeros negativos expressveis 4 Zero

5 Under ow positivo 6 Nmeros positivos expressveis 7 Over ow positivo

-100

100

-100

100

-100

100

-100

100

FIGURA 23: A reta real dividida em regies

53

UNIDADE 3: REPRESENTAES NUMRICAS

A reta foi dividida em sete regies: Nmeros negativos grandes, menores que 0.999 x 1099 Nmeros negativos entre 0.999 x 1099 e 0.100 x 10-99 Nmeros negativos pequenos, com magnitudes menores que 0.100 x 10-99 Zero Nmeros positivos pequenos, com magnitudes menores que 0.100 x 10-99 Nmeros positivos entre 0.100 x 10-99 e 0.999 x 1099 Nmeros positivos grandes, maiores que 0.999 x 1099 A principal diferena entre os nmeros representados com mantissas de trs dgitos e expoentes de dois e os nmeros reais que a primeira representao no pode ser usada para expressar nmeros nas regies 1, 3, 5, ou 7. Se o resultado de uma operao gerar um nmero na regio 1 ou 7, vai ocorrer um erro de overflow. A razo dessa incorreo a natureza finita da representao desses nmeros. Da mesma maneira, um resultado nas regies 3 e 5 vai gerar um erro de underflow. Outra diferena importante entre os nmeros em ponto flutuante e os nmeros reais a sua densidade. Entre dois nmeros reais quaisquer, existe outro nmero real, no importa quanto um est prximo do outro, pois os nmeros reais variam de forma contnua. J os nmeros em ponto flutuante variam de forma discreta, ou seja, existe uma determinada quantidade de nmeros em ponto flutuante que podem ser representados. Se o resultado de uma operao no puder ser expresso na representao usada, ser efetuado um arredondamento. Essa operao consiste em escolher o nmero mais prximo do resultado esperado. Em outras palavras, usando-se a representao em ponto flutuante, existe um erro relativo introduzido pelo arredondamento, tanto para nmeros grandes quanto para nmeros pequenos.

Representao IEEE 754 para nmeros em ponto flutuante


Nos computadores, utilizada uma variante da representao em ponto flutuante denominada IEEE 754, podendo ser de preciso simples ou dupla, com 32 ou 64 bits respectivamente. Por questes de eficincia, a exponenciao e a representao da mantissa so feitas na base 2, em detrimento da base 10. Deve-se considerar, ainda, que a parte inteira da representao possui somente um bit, e que o valor desse bit deve ser sempre um. Para satisfazer tal condio, necessrio que o bit mais esquerda da mantissa seja deslocado uma posio esquerda, sendo o expoente decrementado de uma unidade, sem que o valor do nmero sofra modificaes, at que a condio seja satisfeita. Essa representao normalizada melhor que

54

Disciplina: Arquitetura de Computadores

a no normalizada, pois garante somente uma forma de representar o nmero. Alm disso, a combinao do 1 implcito (parte inteira em binrio), do ponto binrio implcito e do 23 ou 52 bits chamada de significante, em vez de mantissa. Usando o conceito de significante e visando garantir maior eficincia computacional, a parte inteira do nmero, bem como o ponto binrio, no so armazenados de acordo com o formato IEEE 754. Na Figura 24, so apresentados os formatos em preciso simples e dupla. Perceba que o somatrio da quantidade de bits de cada campo que define a preciso da representao.
Bits Bits Sinal Bits Sinal 1 8 Expoente 23 Significante (a) 1 11 Expoente 52 Significante (b)
FIGURA 24: Formatos IEEE 754. (a) Preciso simples. (b) Preciso dupla

As caractersticas numricas dos nmeros em ponto flutuante expressos no formato IEEE 754 so apresentadas na Tabela 7. Perceba que o expoente representado em excesso, de 127 ou 1023, conforme o caso. Esse tipo de representao usado para no haver necessidade de armazenamento de nmeros negativos no expoente, pois, se desejamos armazenar o valor -127 como expoente de um nmero em ponto flutuante, devemos adicionar 127, o que resultar no valor zero. Expoente menor que -127 ou maior que +127 no possvel armazenar usando o padro IEEE 754. Outra considerao sobre a Tabela 7 sobre o valor do bit de sinal do nmero. Quando o valor desse bit for zero, o nmero positivo; se o valor for 1, o nmero negativo.

TABELA 7 Caractersticas do formato IEEE 754 tem Bits do campo de sinal Bits do campo de expoente Bits do campo da mantissa / significante Nmero total de bits Sistema de representao do expoente Faixa de variao do expoente Preciso simples 1 8 23 32 Excesso 127 -126 a +127 Preciso dupla 1 11 52 64 Excesso 1023 -1022 a +1023

55

UNIDADE 3: REPRESENTAES NUMRICAS

O padro IEEE 754 define alguns outros tipos numricos para atender situaes nas quais os nmeros no esto normalizados ou mesmo indicar situaes crticas de operaes aritmticas. O formato especial chamado NaN (Not a Number) indica, por exemplo, o resultado de infinito dividido por infinito, que indefinido. Veja a relao dos formatos IEEE 754 na Tabela 8.

TABELA 8 Tipos numricos IEEE 754

Normalizado No-Normalizado Zero Infinito Not a number

+ - 0<Exp< Max + + + + 0 0 111.... 1 111.... 1

Qualquer configurao de bits Qualquer configurao de bits 0 0 Qualquer configurao de bits

Exemplo de representao do nmero 0,5 nos formatos de preciso simples e dupla. Desenvolvimento: 1. Converter o nmero 0,5 para binrio. Usando o processo descrito na Unidade 2, temos que 0,5 = 0,12. 2. Normalizar o nmero deixando a parte inteira valendo 1, encontrando o significante. Ento, 0,5 normalizado na base 2 igual a 1,0 x 2-1 (significante = 0). 3. Calcular o valor do expoente com excesso e converter para binrio 8 ou 11 bits: a. Para preciso simples (8 bits) + 127: -1 + 127 = 126 Expoente = 011111102 b. Para preciso dupla (11 bits) + 1023: -1 + 1023 = 1022 Expoente = 011111111102 4. Definir o sinal. Como o nmero 0,5 positivo, sinal = 0 5. Montar o nmero no padro IEEE, concatenar as seguintes partes: sinal+expoente+significante:

56

Disciplina: Arquitetura de Computadores

a. Preciso simples: 0+01111110+00000000000000000000000 b. Preciso dupla: 0+01111111110+00000000000000000000000000000000000000000000000 6. Como trabalhoso manipular nmeros em binrio, apresentar a soluo em hexadecimal. Ento: a. Preciso simples: 0011.1111.0000.0000.0000.0000.0000.00002 = 3F00000016 b. Preciso dupla: 0011.1111.1110.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000. 00002 = 3FE000000000000016 Deve-se registrar que, adotando o procedimento inverso, possvel converter do formato IEEE para decimal. Nesta unidade foram apresentados formatos de representaes para nmeros positivos e negativos, tanto inteiros quanto reais. A escolha do formato usado em um determinado processador prerrogativa dos engenheiros projetistas, quando esto definindo a arquitetura da mquina. Deve-se observar que os formatos apresentados esto intimamente associados aos tipos de dados das linguagens de programao. Tomando a linguagem C como exemplo, o tipo de int est associado ao formato de representao complemento a base. Como o computador trabalha com o sistema binrio, o tipo int representa nmeros no formato C2 em 16 bits. Ento, possvel explicar por que o maior nmero armazenado em uma varivel desse tipo +32767 e o menor -32768. Com base nos contedos apresentados, tambm possvel entender mensagens de erros do tipo NaN error, geralmente apresentadas em aplicaes Windows. Quando isso acontece, certamente o resultado de uma operao resultou em um nmero no identificado pela linguagem, ocasionando a mensagem e, muito provavelmente, a parada do sistema.

57

UNIDADE 3: REPRESENTAES NUMRICAS

Referncias
STALLINGS, W. Arquitetura e Organizao de Computadores. 5. ed. So Paulo: Pearson Education do Brasil, 2002. TANENBAUM, A. Organizao Estruturada de Computadores. 4. ed. So Paulo:

Prentice-Hall, 2006.

58

Disciplina: Arquitetura de Computadores

UNIDADE 4 Sistemas digitais


OBJETIVOS

Conhecer e aplicar as propriedades da lgebra booliana no modelamento matemtico de problemas computacionais; desenvolver habilidades para solucionar problemas matemticos usando circuitos lgicos; interpretar o funcionamento de circuitos digitais; reconhecer e construir blocos lgicos usados na Organizao de Computadores.

Circuitos lgicos
Todos os dispositivos digitais so implementados por circuitos eletrnicos denominados circuitos digitais. Como os circuitos eletrnicos so mais complexos e, portanto, mais difceis de serem analisados e entendidos por pessoas que no possuem uma formao especfica em eletrnica, comum encontrar representaes grficas de circuitos digitais organizadas em diagramas de blocos lgicos, estruturados de forma que cada um dos blocos apresenta uma funcionalidade, sendo, na maioria das vezes, diferente dos demais blocos. Deve-se considerar, ainda, que cada bloco est projetado para receber sinais de entrada, process-los e apresentar os resultados nos seus terminais de sada. A maneira como um circuito digital responde a um estmulo de entrada denominada de lgica do circuito; da surge o nome circuito lgico. Matematicamente, a lgica do circuito totalmente baseada na lgebra booliana, pela qual possvel expressar a relao entre as entradas e sadas de um circuito lgico. De acordo com as bases da lgebra booliana, os resultados de uma expresso lgica, bem como o valor de cada uma das variveis que formam uma expresso lgica, podem assumir apenas um de dois valores distintos, por exemplo, falso ou verdadeiro, ligado ou desligado, sendo o mais comum 0 ou 1. Na prtica, esses valores lgicos estaro associados a grandezas fsicas como a tenso ou a corrente eltrica. Por meio da Figura 25, possvel visualizar as diferenas entre o circuito digital e a representao do bloco lgico de um circuito somador de 2 bits. Note que toda a complexidade da organizao do circuito eletrnico foi abstrada a partir do uso de smbolos grficos para descrever a

59

UNIDADE 4: SISTEMAS DIGITAIS

funcionalidade do bloco. Veja pelo sinal de adio e pelos nomes das linhas de entrada e sada, bem como pela equao matemtica que define o comportamento lgico do bloco.
+ 5v + 5v + 5v

1130 k

1,6 k

4 k

A B

Q4 Q2

S0
Q3 1 k

A0 B0

S0 C0

Diagrama Circuito Eletrnico


Figura 25: Representaes de um circuito digital

Diagrama Circuito em Bloco

Porta lgica
O termo porta surge da necessidade de controlar a passagem de sinais lgicos ao longo do circuito. O controle efetuado pelas operaes de habilitar/desabilitar, na medida em que cada porta lgica pode ser utilizada para controlar a passagem de sinal lgico da entrada para a sada. O valor/nvel lgico da entrada de controle determina se o sinal de entrada est habilitado a alcanar a sada ou impedido (desabilitado) de alcan-la. Admite-se que as portas lgicas tambm so dispositivos, ou circuitos lgicos, que operam um ou mais sinais lgicos de entrada para produzir uma sada, que depende da funo implantada no circuito. Tais dispositivos implementam fisicamente as funes da lgebra booliana (soma, produto e complementao).

60

Disciplina: Arquitetura de Computadores

Nvel lgico
O nvel lgico, tambm denominado valor lgico, que cada uma das entradas e sadas de um bloco ou porta lgica pode assumir, bem como os valores das variveis das expresses boolianas, o 0 ou o 1, que no representam necessariamente os nmeros, mas os estados possveis na lgica booliana. Nos circuitos digitais, esses nveis so representados, na maioria das vezes, pelo nvel de tenso eltrica. A Figura 26 apresenta um grfico associando a tenso do circuito eltrico com o nvel lgico adotado para os circuitos digitais implementados usando a tecnologia TTL (Transistor-Transistor Logic) padro. De acordo com a tecnologia de implementao, a relao nvel lgico e tenso tende a mudar. As diferentes tecnologias de implementao no so excludentes e nem mesmo concorrentes. Deve-se considerar que so complementares para circuitos lgicos que necessitam de alta velocidade de comutao dos sinais lgicos. Ou seja, para portas lgicas mais rpidas, deve ser usada uma tecnologia. Por outro lado, se o consumo de energia eltrica mais importante no projeto de hardware do dispositivo digital, emprega-se outra tecnologia.

5v

Nvel lgico 1

2v Faixa de tenso invlida 0,8v 0v Nvel lgico 0

Figura 26: Nveis lgicos x nveis de tenso para dispositivos TTL

Expresses boolianas
Como mencionado anteriormente, o comportamento dos circuitos lgicos descrito aplicandose as regras da lgebra booliana, que, por sua vez, fundamentada por expresses lgicas ou

61

UNIDADE 4: SISTEMAS DIGITAIS

expresses boolianas. Cada expresso formada por um conjunto de variveis lgicas e de operadores lgicos. Como regra bsica, o valor que cada varivel pode armazenar somente um, de um grupo de dois valores possveis. Por conveno, sero utilizados somente os valores 0 e 1, mas podem ser quaisquer outros dois valores distintos. Por outro lado, os operadores boolianos definem as regras de relacionamento entre as variveis, e so divididos em classes, conforme sua complexidade. A classe denominada de operadores bsicos caracterizada pela implementao em uma nica porta lgica. J a classe chamada de operadores compostos formada por operadores implementados por duas ou mais portas lgicas. Ainda sobre operadores, eles tambm se caracterizam pelo nmero de variveis que esto associadas na operao, podendo ser chamados de unrios, quando admitem somente uma varivel na operao, e binrios, na medida em que admitem duas variveis para a operao.

Operador bsico unrio


Existe somente um operador unrio definido na lgebra booliana: o operador NOT ou operador inversor, que efetua a operao de complementao dos valores boolianos, ou seja, o valor 0, ao ser processado pelo operador NOT, resulta no valor lgico 1, assim como o valor 1, ao ser processado pelo operador NOT, resulta no valor lgico 0. Na Tabela 9 so apresentados o smbolo lgico definido para a operao NOT, a regra matemtica que define a operao atravs da tabela verdade e um exemplo de expresso lgica usando o operador NOT. Nesse exemplo, a varivel X armazena o resultado da operao e a varivel A, o valor inicial usado para processamento da operao.

Tabela 9: Apresentao do operador NOT Tabela verdade Representao grfica Expresso Booliana

Operadores bsicos binrios


A classe de operadores binrios caracterizada pelo envolvimento de duas variveis na operao, podendo-se considerar um nmero maior de variveis com a utilizao de mais operadores, diferentemente do que acontece com o operador unrio.

62

Disciplina: Arquitetura de Computadores

Na Tabela 10 so apresentadas as caractersticas do operador OR. Como pode ser observado pela tabela verdade da operao, o resultado 1 quando o valor de pelo menos uma varivel de entrada for tambm 1. Deve-se considerar que as variveis A e B determinam as condies iniciais de execuo da operao, e a varivel X armazena o resultado final da operao.

Tabela 10: Apresentao do operador OR Tabela verdade


A 0 0 1 1 B 0 1 0 1 X=A+B 0 1 1 1

Representao grfica

Expresso Booliana

O operador AND define uma operao na qual o resultado 1 s ser possvel quando o valor de todas as variveis de entrada for igual a 1. Observe na Tabela 11 as caractersticas do operador AND. Assim como usado nos demais operadores, a varivel X est associada ao resultado da operao, e as demais variveis esto associadas s variveis que determinam a condio inicial da operao.

Tabela 11: Apresentao do operador AND Tabela verdade


A 0 0 1 1 B 0 1 0 1 0 0 0 1

Representao grfica

Expresso Booliana

O circuito lgico de qualquer dispositivo digital pode ser descrito usando-se as trs operaes boolianas bsicas apresentadas. Com a utilizao das expresses boolianas de cada porta lgica, possvel determinar a expresso lgica geral da sada de um circuito lgico f o r m a d o por mais operadores lgicos. Contudo, deve-se considerar a precedncia da o p e r a o AND sobre a operao OR nas expresses algbricas, a menos que existam parnteses na

63

UNIDADE 4: SISTEMAS DIGITAIS

expresso definindo a ordem contrria. Nos exemplos a seguir, so apresentadas as combinaes dos operadores lgicos AND e OR e como tratar os casos de prioridades entre eles.

Exemplos: a. Considere a expresso lgica X = A + B . C. Nessa expresso, a operao AND tem precedncia sobre a operao OR, representada pela soma lgica. Assim, o circuito/ diagrama lgico formado pela expresso igual ao apresentado pela Figura 27.

A A B
Figura 27: Diagrama lgico da expresso X = A + B . C

x=A+B.C B.C

b. Neste exemplo, a expresso considerada X = (A + B) . C. Como existem os parnteses, na operao OR deve-se realizar primeiro essa operao e depois a operao AND. Pela figura 28 possvel avaliar o diagrama lgico correspondente expresso dada.

A B

A+B C

x = (A + B) . C

Figura 28: Diagrama lgico da expresso X = (A + B) . C

Ainda sobre a combinao dos operadores bsicos, veja, na Figura 29, mais exemplos da combinao usando-se o operador NOT.

64

Disciplina: Arquitetura de Computadores

A x=A+B B

A B

A+B

x=A+B

Figura 29: Combinaes lgicas usando-se o operador NOT

Operadores compostos binrios


Todas as expresses boolianas consistem em vrias operaes AND, OR e NOT combinadas de diversas formas. Porm, existem outros dois operadores lgicos capazes de implementar qualquer operao booliana. So os operadores lgicos NAND e NOR, classificados como compostos, pois so constitudos por dois ou mais operadores bsicos. Questionar sobre a utilizao de tais operadores no lugar das j conhecidas operaes AND, OR e NOT bastante comum, porm pode-se citar um importante motivo para se fazer tal troca: a mxima utilizao das portas de um CI (circuito integrado). Os CIs TTL normalmente possuem 4 (quatro) portas lgicas idnticas em um mesmo chip, conforme se pode verificar pela Figura 30. Suponha um circuito lgico com uma porta lgica AND, duas OR e uma NOT. Precisaramos de 3 CIs diferentes e todos eles ficariam subutilizados, aumentando, assim, o custo e a rea da implementao.

Figura 30: Vises internas de um circuito integrado Fonte: WIDMER; TOCCI, 2011.

65

UNIDADE 4: SISTEMAS DIGITAIS

O operador NOR funciona de forma complementar ao operador OR, ou seja, para que a sada dessa porta seja 1, necessrio que todas as variveis de entrada sejam 0. Na Tabela 12 so apresentadas as caractersticas do operador NOR.

Tabela 12: Apresentao do operador NOR Tabela verdade


A 0 0 1 1 B 0 1 0 1 1 0 0 0

Representao grfica

Expresso Booliana

O operador NAND complementar ao operador AND, apresentando em sua sada o valor lgico 1, sempre que pelo menos uma varivel de entrada possua o valor lgico 0. Conhea mais caractersticas dessa operao pela Tabela 13.

Tabela 13: Apresentao do operador NAND Tabela verdade


A 0 0 1 1 B 0 1 0 1 1 1 1 0

Representao grfica

Expresso Booliana

Tipos de circuitos lgicos


Como foi apresentado nas sees anteriores, os circuitos lgicos digitais so arranjos de operadores lgicos capazes de realizar uma determinada tarefa. Esses arranjos trabalham de acordo com as regras da lgebra booliana, podendo-se construir dois tipos de circuitos lgicos distintos: os combinacionais e os sequenciais.

66

Disciplina: Arquitetura de Computadores

Circuitos combinacionais
So circuitos que apresentam os resultados de sada to logo os valores de entrada sejam alterados; no possuem referncia de tempo, sendo denominados circuitos assncronos. Assim, medida que os valores de entrada mudam, automaticamente os valores de sada dos circuitos lgicos mudam, refletindo imediatamente as condies de entrada. Existem diversos exemplos de circuitos combinacionais, como os circuitos lgicos apresentados pelas Figuras 27, 28 e 29. Outro exemplo importante, dada sua constante utilizao em projetos e diagramas lgicos, so os circuitos multiplexadores, ou simplesmente MUX. Os multiplexadores possuem diversas aplicaes em sistemas digitais de todos os tipos, tais como: Seleo de Dados Roteamento de Dados Sequenciamento de Operaes Converses Paralelo-Srie O MUX um circuito lgico capaz de trabalhar com n fontes de dados, sendo que, atravs de outro conjunto de variveis de entrada, possvel selecionar uma das n fontes de dados de entrada e transmitir o dado selecionado para um nico canal de sada. Ou seja, ele funciona como um seletor de dados, transferindo um dado de uma entrada E para a sada S de acordo com as entradas de controle C. Veja pela Figura 31 o diagrama esquemtico do MUX.

ENTRADA

Os circuitos lgicos que efetuam a operao inversa multiplexao so os demultiplexadores. Assim, os demultiplexadores so capazes de selecionar uma sada para o sinal de entrada atravs das entradas de controle. Observe pela Figura 32.

ENTRADA
CONTROLE

ENTRADA

SADA
CONTROLE

Figura 31: Representao geral de um multiplexador

SADA

SADA

CONTROLE

67

UNIDADE 4: SISTEMAS DIGITAIS

SADA

ENTRADA

CONTROLE

Figura 32: Viso geral de um demultiplexador

Circuitos sequenciais
So circuitos lgicos que apresentam ou atualizam os valores de sada de um determinado bloco, assim que uma entrada especial, denominada entrada de clock, estiver mudando o seu valor, seja de 1 para 0 ou de 0 para 1, tudo conforme o projeto de hardware. So circuitos classificados como sncronos, ou seja, possuem uma forte relao/referncia de tempo e sincronismo entre os diversos blocos. Caracterizam-se por necessitarem de um circuito analgico especial, chamado de circuito de clock. Esse circuito especial est presente em todos os computadores digitais e responsvel por gerar um sinal peridico regular, denominado sinal de clock, distribudo por toda a parte eletrnica e usado como referncia de tempo para os circuitos sequenciais, promovendo, de certa forma, o sincronismo dos diversos blocos lgicos. Atualmente o valor do sinal de clock usado como referncia para o a divulgao dos produtos no comrcio de computadores. O sinal de clock um sinal eltrico que varia em intervalos de tempo regulares e peridicos. Possui as seguintes caractersticas: Amplitude: Propriedade que define/indica o valor mximo da tenso ou corrente eltrica de um sinal peridico regular, normalmente expressa em volt. Frequncia (F): Grandeza eltrica que indica a velocidade na qual o sinal peridico se repete por unidade de tempo, sendo expressa em Hertz (Hz), ou seja, vezes por segundo.

68

Disciplina: Arquitetura de Computadores

Perodo (T): Intervalo de tempo de durao de um ciclo, expresso em segundos. Relao matemtica entre frequncia (F) e perodo (T): F = 1 / T. Ciclo: a caracterstica de um sinal peridico, a qual determina o incio da repetio desse sinal. Os termos tamanho do ciclo e perodo possuem o mesmo significado, ou seja, o tempo que dura um ciclo. Pela equao matemtica, pode-se concluir que a frequncia inversamente proporcional ao perodo. Veja pelo exemplo abaixo: Considerando que a frequncia de clock de um determinado computador de 800MHz, determine o seu perodo de clock.

Soluo: Como F = 1/T e F=800MHz, ento T = 1/F, assim:

Como M = 106

Os contedos apresentados nesta unidade no esgotam o tema sistemas digitais, mais especificamente circuitos lgicos. O que foi trabalhado, entretanto, servir de base para o entendimento das demais unidades e seus respectivos contedos. Se voc se interessar pelo tema, busque mais detalhes nas obras indicadas nas referncias.

69

UNIDADE 4: SISTEMAS DIGITAIS

Referncias
STALLINGS, W. Arquitetura e organizao de computadores. 5. ed. So Paulo: Pearson Education do Brasil, 2002. TANENBAUM, A. Organizao estruturada de computadores. 4. ed. So Paulo:

Prentice Hall, 2006. WIDMER, Neal S.; TOCCI, Ronald J. Sistemas Digitais: princpios e aplicaes. 11. ed. So Paulo: Prentice Hall, 2011.

70

Disciplina: Arquitetura de Computadores

UNIDADE 5 Organizao bsica de um computador


OBJETIVOS

Compreender detalhes tcnicos das diferentes implementaes de computadores digitais; identificar os elementos que compem uma Unidade Central de Processamento (UCP); compreender as relaes entre os blocos internos da UCP e o seu funcionamento; conhecer o ciclo de busca de instrues; interpretar o processo de execuo de uma instruo.

Modelo de mquinas
No projeto e na construo de computadores digitais, so considerados basicamente dois modelos ou arquiteturas de referncia: o modelo de Von Neumann e o modelo Harward. No primeiro, observa-se o uso de um nico canal de comunicao entre os blocos lgicos que compem a mquina. O acesso a esse canal compartilhado entre os blocos. No segundo, a unidade de memria subdividida em funo do tipo de dado que armazenado, forando um acesso diferenciado por parte da UCP (Unidade Central de Processamento). Essas organizaes podem ser visualizadas pela Figura 33.

Von Neumann

Harvard
UCP / CPU

Memria Principal

CPU

Dispositivos de ENTRADA e SADA

Memria de dados Dispositivos de ENTRADA e SADA

Memria de Instrues

FIGURA 33: Viso geral das arquiteturas de Von Neumman e Harward

A diferena funcional entre os modelos apresentados est associada forma como a UCP troca dados com os demais blocos lgicos que compem o sistema, o que impacta diretamente o custo e o desempenho geral do sistema, conforme j mencionado na Unidade 1. Contudo,

71

UNIDADE 5: ORGANIZAO BSICA DE UM COMPUTADOR

independentemente do modelo implementado, todos os computadores funcionam de forma similar, exigindo os mesmos recursos, que so distribudos por trs grandes blocos lgicos: Unidade Central de Processamento (UCP), memria principal e dispositivos de entrada e sada (I/O). Tomando como referncia a classe de computadores pessoais, genericamente chamados de PC, os blocos lgicos possuem uma denominao particular: o bloco que representa a memria principal chamado de Ponte Norte; o bloco responsvel pelo acesso e controle dos dispositivos de entrada e sada chamando de Ponte Sul; por ltimo, mas no menos importante, a UCP , que representada fisicamente pelo Processador. A ttulo de curiosidade, no mercado, quando buscamos identificar as caractersticas da placa me de um PC, na verdade estamos nos referindo s caractersticas dos blocos memria principal e Dispositivos de Entrada e Sada, comumente chamados de chipset. O processador, ou tecnicamente falando, a UCP , pode ser adquirida conforme a nossa necessidade e disponibilidade financeira. Deve-se observar que o desempenho de um sistema computacional no est associado somente ao modelo e tipo de UCP , mas s caractersticas tcnicas dos trs grande blocos de um computador. No mercado existem dois grandes fornecedores de UCP para computadores pessoais: a Intel e a AMD (Advanced Micro Devices). Em termos arquiteturais, os processadores para PC desses fabricantes so compatveis, diferindo somente quanto implementao da arquitetura. Historicamente, a Intel sempre esteve na vanguarda tecnolgica para processadores de PCs, o que se justificou por muitos anos devido parceria firmada com a IBM, no final dos anos 1970, para a produo exclusiva de processadores para os seus computadores. Atualmente, o status de vanguarda tecnolgica alterna com a AMD, tendo em vista que a empresa mudou sua estratgia comercial e tecnolgica, deixando de efetuar clonagens dos processadores Intel, e passou a investir pesadamente em pesquisas para a implementao de sua verso da Arquitetura x86. Como caracterstica da implementao de processadores da AMD, a parte de controle da memria principal est integrada na mesma pastilha (chip) do processador (UCP), o que, de certa forma, proporciona melhoria no desempenho geral do sistema e diminuio do custo da placa me, fato que chamou a ateno da Intel, que passou a produzir processadores com a mesma caracterstica, como o caso dos modernos processadores das sries i5 e i7. Em linhas gerais, todos os computadores so compostos pelos trs blocos lgicos j mencionados. A seguir sero apresentadas as funcionalidades bsicas de cada um dos blocos, com destaque especial para a UCP , tendo em vista que os blocos referentes ao controle dos dispositivos de entrada e sada, bem como a unidade de memria, tm sua implementao padronizada.

72

Disciplina: Arquitetura de Computadores

Bloco dos dispositivos de I/O


O princpio de funcionamento do bloco de controle e acesso aos dispositivos de entrada e sada igual para todos os computadores. A ideia bsica possibilitar a entrada de dados para processamento pela UCP , e a sada de dados, seja para armazenamento externo, seja para apresentao de resultados de operaes de processamento pela UCP . Atualmente forte a padronizao no processo de comunicao entre o dispositivo de entrada e/ou sada e o sistema computacional. Existem padres e protocolos de comunicao que estabelecem as regras de comunicao, por exemplo, a interface de comunicao USB (Universal Serial Bus), Fireware, o padro de conexo de placas denominado PCI, PCI Express, entre outros. Como existe um padro para a comunicao com os mais diversos dispositivos de entrada e sada, ao implementar o bloco denominado Dispositivos de I/O, o fabricante de um determinado computador utiliza circuitos integrados especficos para essa funo, no necessitando de investimentos em pesquisa e desenvolvimento de novas tecnologias para a implementao de um dado padro de comunicao. Existem diversos fabricantes de circuitos integrados que se dedicam exclusivamente ao desenvolvimento de circuitos especializados em protocolos de comunicao, disponibilizando-os em forma de pacotes ou conjunto de circuitos integrados, denominados chipset. Cabe ao engenheiro de computao escolher o chipset mais indicado para implementao.

Bloco de memria principal


A unidade de armazenamento mais prxima UCP denominada memria principal. Conforme proposto por Von Neumann, os dados e instrues que esto sendo processados pela UCP devem obrigatoriamente estar armazenados no bloco memria principal. Essa unidade de memria armazena dados e programas em formato digital, ou seja, somente nmeros, que so copiados e enviados UCP ou para os dispositivos de entrada e sada, com o propsito de armazenamento secundrio (em massa) ou uso pelos diversos dispositivos de sada. O bloco de memria principal, conforme sua implementao fsica, pode ser subdividido em memria ROM e memria RAM.

73

UNIDADE 5: ORGANIZAO BSICA DE UM COMPUTADOR

A palavra RAM o acrnimo de Random Access Memory, ou seja, memria de acesso aleatrio. So memrias que permitem o acesso a qualquer dado armazenado, na ordem desejada, diferentemente dos primeiros modelos de memria, nos quais o acesso era sequencial, ou seja, para acessar o ltimo dado armazenado, era necessrio efetuar a leitura de todos os outros dados armazenados at chegar posio do dado requerido. Na verdade, as memrias do tipo ROM (Read Only Memory ou memria somente para leitura) tambm possuem acesso aleatrio. Atualmente a distino entre RAM e ROM diz respeito ao tempo de reteno do dado armazenado. As memrias do tipo RAM so caracterizadas pela volatilidade do contedo armazenado, ou seja, os dados armazenados nesse tipo de memria no so perenes, esto vulnerveis ao fornecimento de energia eltrica ao mdulo de memria. Todas as vezes que a energia do bloco desligada, os dados por ela armazenados so perdidos, necessitando ser reescritos todas as vezes que a energia for restabelecida. Por outro lado, as memrias do tipo ROM no perdem facilmente os dados armazenados, mas necessitam de um processo tcnico especial para a gravao de seus dados. Nesse tipo de memria, mesmo com a falta de energia eltrica por um perodo muito longo por exemplo, 30 anos , os dados so mantidos. Como se pode constatar pelo uso de um computador convencional, quando o usurio edita um texto e no o salva, o contedo trabalhado perdido sempre que houver falta de energia eltrica. Por outro lado, todas as vezes que ligamos um computador, ele executa a contagem e testes de memria, a inicializao de alguns perifricos e, por fim, a carga do sistema operacional. Na verdade estamos, no primeiro exemplo, usando a memria RAM e, no segundo, a memria ROM.

Organizao bsica das memrias


A memria principal organizada como um conjunto de n clulas, ou posies de memria, capazes de armazenar, em cada uma das posies, m bits. Por sua vez, cada clula identificada por um nico nmero, chamado de endereo de memria, que nada mais do que um cdigo binrio de k bits, atravs do qual cada clula referenciada. Os endereos de memria so numerados de zero a n-1 e, como existem 2k possveis endereos, ento a quantidade mxima de clulas de memria 2k. Observe pela Figura 34 a estruturao visual de um bloco de memria.

74

Disciplina: Arquitetura de Computadores

Conjunto de M bits = clula

0 1 2

Conjunto de N clulas = MEMRIA

n-1

Endereo de cada clula


FIGURA 34: Representao visual da organizao de memria

A clula a menor unidade de memria enderevel, sendo que uma clula pode armazenar qualquer uma das 2m possveis combinaes diferentes dos seus m bits. Ento, os m bits de uma clula so acessados simultaneamente. A varivel m pode ser qualquer nmero inteiro, mas, nos ltimos anos, os fabricantes padronizaram um tamanho de 8 bits (1 byte). A maioria das instrues e dados manipulados em um computador so maiores que 1 byte, o que, de certa forma, sugere a necessidade de usar mais de uma clula de memria para armazenar a mesma instruo ou dado. Ento, para adequar o modelo de armazenamento ao modelo de execuo, os bytes de memria so agrupados em unidades mltiplas de bytes, que so chamadas de Palavras. Os computadores, por sua vez, so conhecidos pela forma como ordenam as palavras na memria principal. Quando a ordenao dos bytes de uma palavra feita da parte mais significativa para a menos significativa, temos a chamada ordenao big endian. De outra forma, quando primeiro efetuado o armazenamento da parte menos significativa e depois o da parte mais significativa, temos a ordenao little endian. Cabe destacar que no existe problema em armazenar num ou noutro formato. O problema est no processo de comunicao entre uma mquina big endian e uma little endian. Veja pela Figura 35 a diferena entre os dois formatos no armazenamento da palavra 3CB416.

75

UNIDADE 5: ORGANIZAO BSICA DE UM COMPUTADOR

0 1 2

3C B4 ?

n-1

BIG ENDIAN

0 1 2

B4 3C ?

n-1

LITTLE ENDIAN

FIGURA 35: Armazenamento no formato big endian e little endian

Estrutura interna da UCP e funes


O bloco lgico referente Unidade Central de Processamento o mais importante dos sistemas computacionais, pois ele quem define as caractersticas funcionais do computador, atravs da organizao lgica dos seus diversos blocos internos, bem como a implementao da arquitetura do seu conjunto de instrues. Tipicamente, as UCP so compostas por uma unidade lgica e aritmtica e uma unidade de controle e, dependendo da arquitetura implementada, existe uma unidade destinada a armazenamento especial, denominada Banco de Registradores. O princpio de funcionamento da UCP leva em considerao a existncia de diversos blocos lgicos capazes de executar pequenas operaes. Estruturalmente, a UCP possui circuitos lgicos capazes de executar as operaes apresentadas a seguir. Busca de instrues: para isso, existem mecanismos dedicados ao controle de execuo de programas, que so responsveis por identificar a prxima instruo a ser executada e promover a busca dessa instruo na memria principal. Essa operao cclica e acontece antes da efetiva execuo de cada instruo.

76

Disciplina: Arquitetura de Computadores

Interpretao de instrues: como no poderia ser diferente, existem internamente na UCP circuitos digitais responsveis por decodificar e interpretar o que deve ser efetuado em cada instruo. Ainda faz parte do processo de interpretao de instrues definir quais dados fazem parte da instruo e como acess-los. Busca de dados: considerando que os dados esto armazenados na memria principal e que os circuitos de interpretao de instrues j localizaram o endereo de cada dado, um outro circuito lgico adicional capaz de efetuar a busca dos dados que fazem parte de uma determinada instruo na memria principal, tecnicamente chamados de operandos. Eles podem ser classificados como operando fonte e operando destino. Por exemplo, a operao de adio de dois nmeros suscita a existncia de dois operandos fontes, que so as parcelas da soma, e um operando destino, o qual dever armazenar o resultado da operao. Processar dados: como no poderia ser diferente, a principal operao efetuada pela UCP sobre os dados (operandos) de uma determinada operao. Todas as operaes efetuadas so de ordem matemtica, podendo ser aritmtica, lgica, movimentao ou deslocamento de bits. Cada uma dessas instrues ser apresentada formalmente na prxima unidade. Escrever dados: os resultados de cada operao devero ser armazenados em um local especfico (posio de memria), conforme estabelecido em cada instruo. O circuito lgico especializado na busca de dados possui uma segunda funcionalidade, que permite o acesso memria principal para a escrita dos dados. As operaes de leitura de dados dessa unidade fazem somente uma cpia do contedo da clula de memria. Por outro lado, a operao de escrita altera instantaneamente o contedo da clula, sobrepondo-se ao valor anteriormente armazenado. Ainda sobre as caractersticas da UCP , deve-se destacar que ela possui um espao de trabalho temporrio, como rea de rascunho, para a execuo das instrues chamadas de registradores. O nmero e a funo de cada registrador existente em uma mquina dependem do projeto dessa mquina e, mais especificamente, de sua arquitetura, que varia de processador para processador. O registrador pode ser comparado com uma clula de memria, porm localizada internamente na UCP , com baixa latncia na resposta a solicitaes de leitura e escrita, diferentemente da memria principal, na qual existe uma demora para a resposta s operaes de leitura e escrita. Uma das maiores decises a serem tomadas no projeto de uma UCP est relacionada com o nmero e a funo de cada um dos registradores. Como os registradores so unidades de armazenamento implementadas internamente UCP e considerando uma hierarquia do sistema

77

UNIDADE 5: ORGANIZAO BSICA DE UM COMPUTADOR

de memria, os registradores ocupam o topo da pirmide hierrquica. Convm destacar que o custo de implementao de cada registrador elevadssimo se comparado com o custo de implementao de cada clula de memria. Os registradores, de acordo com sua especialidade, so classificados em: Registradores de propsito geral (RPG): todos os registradores que podem ser usados para qualquer finalidade que envolva uma operao executada na UCP por exemplo, operando fonte, operando destino ou como unidade de rascunho para a movimentao de dados. Registradores de propsito especfico (RPE): como o prprio nome indica, esses registradores no podem ser usados em qualquer operao de forma arbitrria. Eles tm sua funcionalidade definida no projeto da mquina e no podem ser mudados dinamicamente. O uso dessa classe de registradores torna as operaes da UCP mais simples e rpidas, se comparado com o uso de registradores de propsito geral. O uso de registradores de propsito geral aumenta a flexibilidade e as opes para os programadores desenvolverem seus programas, podendo significar um aumento do tamanho do programa e da complexidade das instrues disponveis em uma determinada UCP . Por outro lado, a implementao de unidades centrais de processamento somente com registradores especializados torna as instrues mais rpidas e menos flexveis, do ponto de vista do programador, com um custo operacional e de implementao mais baixo do que o das UCP baseadas em RPG. O projeto ideal de uma mquina equilibra o uso desses registradores com base nas caractersticas principais desejveis para a nova UCP . Na verdade, o projeto de computadores que visa alto desempenho computacional faz uso intenso de RPE e, por outro l a d o , computadores de propsito geral podem fazer uso somente de registradores de propsito geral, o que compromete o desempenho da mquina. O nmero de registradores e o tamanho das palavras manipuladas pela UCP so decises tomadas pelos projetistas ainda na fase de levantamento de requisitos. So exemplos de registradores usados nos projetos de UCP: Registrador de dados, normalmente usado como operando, fonte ou destino, de operaes aritmticas ou lgicas. Registrador de endereo, que, como o prprio nome sugere, usado para facilitar o acesso da UCP memria principal, armazenando endereo de dados ou instrues. Registrador de status (SR), que indica a condio atual da mquina. Em todas as

78

Disciplina: Arquitetura de Computadores

operaes executadas pela UCP , so registradas as condies finais de execuo, ou seja, se uma operao de adio executada, o resultado da operao armazenado no operando destino, e as condies finais da operao so registradas pelo registrador de status. As condies finais podem indicar se o resultado da operao foi zero, se existe uma condio de overflow ou underflow, se o nmero final par ou mpar, positivo ou negativo, entre outras informaes que o arquiteto do computador quiser registrar. Esse registrador usado em operaes que exigem a tomada de deciso quanto a alterar o fluxo de execuo de um determinado programa. Registradores no visveis aos usurios e/ou programadores. Para que a UCP mantenha funcionamento perfeito aps a execuo de cada instruo, devem ser disponibilizadas internamente unidades de memria adicional, que no podem ser acessadas diretamente pelos programadores ou usurios do sistema computacional. Como exemplo dessa classe de registradores, pode-se destacar o Registrador de Instrues (IR), registradores de endereos como o Registrador de Retorno (RR), usado para permitir a volta do programa aps a chamada a uma funo, procedimento ou interrupo , ou mesmo o registrador de pilha (SP stack pointer). Os mecanismos de pilha sero apresentados na unidade referente s arquiteturas do conjunto de instrues. Acumuladores so registradores especiais normalmente usados como operando destino das operaes aritmticas ou lgicas. A implementao dos acumuladores depende exclusivamente da arquitetura usada no projeto da UCP . Contadores de programa (PC) so registradores de uso especfico, e seu contedo controlado diretamente pelo hardware, podendo existir situaes especficas que requeiram a alterao de seu contedo dinamicamente atravs de software, por exemplo, instrues de controle de fluxo do programa, para implementar uma estrutura de repetio ou mesmo uma estrutura condicional. Esse um tipo especial de registrador de endereo, que sempre indica qual ser a prxima instruo a ser executada. Quando uma mquina inicializada (ligada) ou reinicializada atravs do boto de reset, o contedo desse registrador zerado e, assim, ele aponta para a instruo da posio zero de memria. O processo de zerar o valor do PC no momento em que ele ligado tecnicamente chamado cold boot ou hard reset. J o processo que usa um boto especfico denominado warm boot ou soft reset. claro que, em algumas mquinas, o valor de inicializao desse registrador poder ser diferente de zero, mas, na verdade, o efeito operacional o mesmo, ou seja, inicializar uma nova instncia de execuo de instrues.

79

UNIDADE 5: ORGANIZAO BSICA DE UM COMPUTADOR

Registradores de instrues (IR), que foram projetados exclusivamente para armazenar a instruo que est sendo executada pela UCP e permitir a decodificao da instruo pelo bloco lgico responsvel. Lembre-se de que a instruo em execuo foi buscada na memria principal em um momento anterior ao incio da sua execuo. Os registradores so elementos muito importantes para a formao de unidade de processamento, contudo existem outros blocos lgicos que devem ser projetados para organizar o uso e implementar as funes de cada registrador.

Principais blocos lgicos que compem uma UCP


Unidade Lgica e Aritmtica - ULA
A Unidade Lgica e Aritmtica, comumente conhecida como ULA, uma unidade exclusiva para fins de execuo de operaes lgicas e aritmticas. a alma do processador (UCP), sendo que suas caractersticas funcionais definem a rea de aplicao do computador. Se uma determinada UCP possui uma ULA que efetua somente operaes com nmeros inteiros, ento no ser vivel executar programas que necessitam efetuar operaes em ponto flutuante, por exemplo, o clculo da temperatura de um determinado ambiente, ou mesmo o processamento de uma folha de pagamento de uma empresa. Tipicamente, a ULA possui suporte a somente dois operandos de entrada e um operando de sada. O tamanho ou a largura, em nmero de bits, do seu operando de sada usado como referncia do processador no mercado. Assim, quando anunciado um processador de 64 bits, normalmente a sada da ULA desse processador possui a largura de 64 bits, bem como dever existir um ou mais registradores com essa largura ou tamanho. Pela Figura 36, possvel identificar os principais sinais de entrada e sada da ULA. Um destaque deve ser dado ordem dos operandos de entrada, que influenciar efetivamente a ordem de execuo das operaes. Percebe-se, ainda, que exstem duas sadas: uma identificada como operando de sada, que sempre possui o resultado da operao executada pela ULA, e outra que possui os sinais que indicam o estado final de cada operao. Esses sinais sero armazenados no registrador de status. Uma terceira entrada indica o cdigo da operao a ser realizada.

80

Disciplina: Arquitetura de Computadores

1 Operando
OPERANDO FONTE 1

ULA
2 Operando
OPERANDO FONTE 2

Operao Destino Status da ULA


SADA DE CONTROLE

Operao
FIGURA 36: Unidade Lgica e Aritmtica (ULA)

Unidade de Controle UCON


A Unidade de Controle projetada para efetuar a busca e a decodificao das instrues de uma determinada UCP . Os cdigos de cada instruo, bem como seu formato e modos de endereamento, fazem parte do projeto inicial da UCP . Alm da decodificao das instrues, essa unidade responsvel por efetuar os acessos memria principal, a fim de ler instrues e ler ou gravar dados. Para executar todas as instrues definidas pelo arquiteto do computador, necessrio o emprego de vrios registradores de uso especfico. Na Figura 37, so apresentados alguns registradores comumente usados na implementao das unidades de controle, bem como a relao da UCON com os demais blocos. Deve-se destacar que o acesso externo UCP efetuado pela UCON, e ela quem controla o fluxo de dados para a ULA. A organizao geral de comunicao entre a UCON e a ULA define a arquitetura geral da mquina.

Controle interno

SP RR UCON

PC IR SR

Dados

Endereo Controle externo

FIGURA 37: Estrutura bsica da Unidade de Controle (UCON)

81

UNIDADE 5: ORGANIZAO BSICA DE UM COMPUTADOR

Funcionamento da UCP
Qualquer que seja a implementao de Unidade Central de Processamento (UCP), que tambm pode ser chamada de CPU ou mesmo Processador, dependendo da literatura estudada, ela possui o modus operandi igual, estabelecido em trs ciclos bem definidos e executados sequencialmente. Quando uma mquina inicializada, a frio ou a quente cold boot, warm boot respectivamente , ela sempre vai executar o ciclo de busca de uma instruo, independentemente do modelo, marca e tipo de computador. Aps a busca da instruo, iniciado o processo de decodificao e interpretao, bem como so estabelecidas todas as condies necessrias para a execuo da referida instruo. Na sequncia, iniciado o processo de execuo, que normalmente utiliza a ULA, finalizando com a escrita do resultado no operando destino da instruo executada. Aps o encerramento da escrita do resultado, a UCON inicia automaticamente um novo ciclo de busca de instruo, a menos que a ltima instruo executada determine a parada da UCP . Um exemplo tpico desse tipo de instruo a HALT, que implementada pela maioria dos processadores. A nica forma iniciar um novo ciclo de busca de instrues atravs do soft reset ou hard reset. Veja os detalhes sobre os ciclos de trabalho de uma UCP:

1. Ciclo de busca de instruo (Instruction Fetch)


Neste momento a UCON inicia a busca (cpia) da instruo localizada na posio de memria indicada pelo registrador PC. Assim que uma cpia da instruo armazenada no registrador IR, o registrador PC incrementado em uma unidade de palavra da mquina. Para processadores de 8 bits, o PC incrementado em um byte; para processadores de 16 bits, o PC incrementado em dois bytes, e assim sucessivamente. Aps o incremento do PC, encerrado o ciclo de busca e inicializado o ciclo de decodificao de instruo.

2. Ciclo de decodificao de instruo


Como a instruo a ser executada est armazenada no registrador IR, circuitos lgicos esto ligados a esse registrador, com a finalidade de identificar as caractersticas da instruo, bem como verificar a origem dos operandos da instruo e efetuar o clculo do endereo de cada um dos operandos.

82

Disciplina: Arquitetura de Computadores

3. Ciclo de busca do operando (Operand Fetch)


Nessa etapa todos os operandos so buscados e encaminhados s respectivas entradas da ULA. possvel que determinadas operaes no necessitem da busca dos operandos, pois eles j esto embutidos no cdigo da prpria instruo, ou a instruo no necessita carregar os operandos.

4. Ciclo de execuo da operao


nesse momento que a instruo realmente efetuada, ou seja, a ULA dever ser usada nesse instante para efetuar uma operao lgica ou aritmtica. Tambm existem operaes que no utilizam a ULA, mas nesse momento que a ao indicada pelo programador efetuada.

5. Ciclo de armazenamento do resultado


Havendo necessidade de armazenamento do operando destino, somente nesse momento efetuada a escrita do resultado da operao na memria principal ou em outro elemento. Ao finalizar a passagem pelo quinto ciclo, a UCP comanda automaticamente o incio de outro ciclo de busca, continuando sistematicamente a execuo sequencial de cada um dos ciclos apresentados. A parada desse processo pode ser feita por software, com o uso de uma instruo especfica que determine essa condio, ou por hardware, com o desligamento do sistema, na incidncia de erro interno UCP , ou mesmo com o desligamento ou acionamento. Nesta unidade foram apresentadas as caractersticas funcionais da Unidade Central de Processamento (UCP) e seu funcionamento, atravs da apresentao dos seus ciclos de trabalho. importante conhecer esses detalhes tcnicos para entender, futuramente, as particularidades de cada instruo de mquina, bem como conhecer as diferentes implementaes de UCP

83

UNIDADE 5: ORGANIZAO BSICA DE UM COMPUTADOR

Referncias
STALLINGS, W. Arquitetura e organizao de computadores. 5. ed. So Paulo: Pearson Education do Brasil, 2002. TANENBAUM, A. Organizao estruturada de computadores. 4. ed. So Paulo: Prentice-Hall, 2006.

84

Disciplina: Arquitetura de Computadores

UNIDADE 6 Classificao do conjunto de instrues


Objetivos:
Conhecer as alternativas de implementaes de UCP, bem como as suas vantagens e desvantagens; relacionar os modelos de programao com as mquinas disponveis no mercado; compreender as diferenas tcnicas entre os modelos de mquinas RISC e CISC; classicar um conjunto de instrues em funo do modelo de implementao da UCP.

Processamento monociclo e multiciclo


Em Arquitetura de Computadores, o termo processamento usado para designar, de forma geral, todo o processo de execuo efetiva de uma nica instruo. Conforme mencionado na Unidade 5, mais especificamente quando foi apresentado o princpio bsico de funcionamento de uma UCP , existem pelo menos cinco ciclos de trabalho bem definidos para a efetiva execuo de uma instruo, ou melhor, para o processamento de uma instruo. Para relembrar, os nomes de cada um dos ciclos so Busca de Instruo, Decodificao, Busca dos Operandos, Execuo e Armazenamento de Resultados. Associando as tarefas desenvolvidas em cada um dos ciclos aos conceitos de cada arquitetura do conjunto de instrues, mais especificamente no que tange manipulao dos operandos, possvel concluir que, conforme o nmero de operandos e o modo de endereamento usado em cada instruo, o processamento das instrues demanda tempos distintos para processar cada instruo. Por exemplo, na operao de adio na Arquitetura Pilha, a busca dos operandos e o armazenamento do resultado demandam um tempo maior, em comparao com a Arquitetura Acumulador. Se comparada Arquitetura RUG, a execuo da mesma operao leva um tempo maior ainda. Isso se deve ao fato de que na Arquitetura Pilha, no ciclo de busca dos operandos fontes, a UCP dever efetuar dois acessos memria principal (pilha); j com a Arquitetura Acumulador, far somente um acesso e, na arquitetura RUG, nenhum acesso.

85

UNIDADE 6: CLASSIFICAO DO CONJUNTO DE INSTRUES

O que devemos entender nessa situao que, independentemente da arquitetura, a execuo efetiva de cada uma das instrues que formam o nvel ISA demanda tempos diferentes para a sua concluso. Como as UCPs so constitudas por vrios blocos lgicos, implementando funes diversas e necessrias ao processamento de instrues, deve haver sincronismo para a troca de dados entre os blocos, evitando-se que eles trabalhem com dados contaminados, ou seja, com valores que ainda no fazem parte da instruo corrente. A Figura 45 ilustra uma situao na qual a falta de sincronismo entre os blocos pode ocasionar um erro no armazenamento do resultado. Considere a possibilidade de a ULA efetuar uma soma, por exemplo, 5+3, enquanto o bloco da UCON, responsvel pela busca de operando, ainda est carregando o segundo operando na entrada da ULA e, no mesmo momento, o bloco da UCON projetado para armazenamento de resultados j est processando a escrita do dado, na memria principal, de um valor qualquer que est presente na sada da ULA. Se as mquinas digitais trabalhassem dessa forma, no serviriam para nada.

ULA
5

Grava: 10 L: 3

UCON

Dados

Endereo Controle externo

Figura 45: Escrita de resultado anetecipadamente pode ocasionar erros de processamento

Para evitar esse e outros tipos de erros, os blocos lgicos dos computadores trabalham com um tipo de circuito lgico que necessita de uma referncia de tempo para estabelecer o sincronismo entre os blocos. So os chamados Circuitos Combinacionais, apresentados na Unidade 4. Sua referncia de tempo determinada por sinal especial chamado de Sinal de Clock. O perodo

86

Disciplina: Arquitetura de Computadores

desse sinal est intimamente associado ao tempo de processamento de cada instruo, que pode ser chamando de Ciclo de Mquina, por ser um sinal que eletricamente estabelece um padro de comportamento da mquina. Fica ento um dilema: qual deve ser o tamanho do ciclo, ou perodo do Sinal de Clock? Para responder a essa pergunta, os projetistas de hardware usam dois critrios distintos e excludentes, ou seja, ao adotar um critrio no projeto de uma mquina, o outro no ser usado no mesmo projeto. Eles so conhecidos como Monociclo e Multiciclo.

Monociclo
No modelo de processamento Monociclo, o tempo de execuo de cada instruo o mesmo, independentemente da instruo. Parece que algo no est de acordo com tudo que j foi apresentado ao longo desta disciplina, mas verdade, os projetistas avaliam o comportamento das instrues isoladamente e calculam o tempo necessrio para processar totalmente cada uma delas. Ao final de tudo, estabelecem o tamanho do Ciclo de Mquina (sinal que controla a execuo de instrues), pelo critrio de tempo de execuo da instruo mais demorada. Por exemplo, considere a Tabela 30, na qual esto relacionadas as classes de instrues empregadas em um determinado projeto, e os respectivos tempos de execuo. importante observar que, para o clculo do tempo de execuo das instrues, j foi considerada a tecnologia para a fabricao das pastilhas de circuito integrado, bem como os recursos financeiros a serem investidos. Os clculos so efetuados ainda na fase de projeto. Em outras situaes, so usadas ferramentas que permitem a simulao do circuito. Pela referida tabela, identifica-se que as instrues da classe de Movimentao de Dados demoram 1,25 nS (1,25 nanossegundos = 1,25 x 10-9 segundos = 0,00000000125 segundos) e, assim, define-se o tamanho do Ciclo de Mquina. Ainda sobre esse exemplo, como o Ciclo de Mquina de 1,25 nS, a frequncia de operao do processador igual ao inverso do Ciclo de Mquina. Ento, nesse caso, o clock de 800 MHz.

Tabela 30: Tempo de execuo por classe de instrues


Classe de instrues Aritmtica 1,16 Controle 0,35 Lgica 0,98 Movimentao de dados Tempo em nS 1,16 0,35 0,98 1,25

87

UNIDADE 6: CLASSIFICAO DO CONJUNTO DE INSTRUES

No modelo Monociclo, mesmo instrues mais simples como a NOP , por exemplo, gastam o mesmo tempo de execuo de instrues que fazem uso intensivo de acesso memria dedados, com instrues de Movimentao de Dados. As mquinas implementadas usando esse modelo so conhecidas como mquinas que possuem uma baixa frequncia de clock, tipicamente na ordem de 800 MHz. Por assim se apresentarem, no dissipam tanto calor como as mquinas de clocks bem mais altos, por exemplo, 2GHz e, consequentemente, tendem a consumir menos energia eltrica. claro que esses dados so relativos, pois os demais dispositivos fsicos que compem o hardware podem impactar diretamente a relao entre calor dissipado e energia eltrica consumida. Dispositivos mveis normalmente utilizam esse modelo pelas suas caractersticas fsicas e eltricas (calor e consumo). Entre os processadores que fazem uso desse modelo mais comuns no mercado, destacam-se MIPS RS2000, RS3000, Qualcomm MSM7225 do Motorola Spice do Smart Phone Motorola, que roda o sistema operacional Android, o Samsung Exynos Quad-Core, entre outros. Multiciclo Nas implementaes Multiciclo, a metodologia para escolha do tamanho do Ciclo de Mquina possui uma abordagem contrria do modelo Monociclo, ou seja, a escolha considera o tempo de execuo da instruo mais rpida. Nesse contexto, para executar instrues mais demoradas, so demandadas mltiplas unidades do Ciclo de Mquina, da o nome modelo Multiciclo. Para entender melhor, observe a Tabela 31. Note que o tempo mnimo gasto para executar uma instruo de 0,36 nS. Assim, de acordo com o modelo Multiciclo, o tamanho do Ciclo de Mquina igual ao tempo de execuo da instruo mais rpida. Na terceira coluna da Tabela 31, so apresentadas as relaes entre o tempo de execuo de uma instruo de uma das classes e o tempo da instruo mais rpida. Perceba que o tempo para executar as demais instrues passa a ser fraes de tempo do Ciclo de Mquina. Na primeira linha da tabela, por exemplo, o tempo mnimo necessrio para a execuo de uma instruo da classe Aritmtica de 1,16 nS, necessitando de 3,22 ciclos de clock. Como tecnicamente so mais onerosas implementaes de fraes de ciclos de mquina/ clock, criou-se o conceito de Ciclos por Instruo (CPI), apresentado na quarta coluna da tabela. Para calcular os CPI de uma determinada classe de instrues, basta efetuar o arredondamento do valor encontrado na terceira coluna para um valor inteiro da quantidade de ciclos de clock, o qual permite a execuo completa da instruo.

88

Disciplina: Arquitetura de Computadores

Tabela 31: Relao Tempo de execuo x CPI, modelo Multiciclo


Classe de instrues Aritmtica Controle Lgica Movimentao de dados Tempo em nS 1,16 0,36 0,98 1,25 t / ciclo de mquina 3,32 1 2,72 3,47 CPI 4 1 3 4

Pode-se perceber que, ao estabelecer o tempo base para execuo das instrues em 0,36 nS, como no caso da Tabela 31, a frequncia de clock alta, na ordem de 2,7 GHz (2,7 gigahertz = 2,7 x 109 = 2.700.000.000 vezes por segundo). Isso significa que as mquinas que operam no modelo Multiciclo geralmente possuem uma frequncia de clock muito maior que as mquinas do modelo Monociclo. Dessa forma, natural um consumo de energia eltrica maior e a necessidade de um sistema de arrefecimento mais eficiente, devido s altas temperaturas apresentadas pelos processadores desse modelo. Comercialmente existem mquinas com essa implementao disponveis para uso pessoal e computao de baixo rendimento, como as encontradas em escritrios, lojas e empresas de mdio e pequeno porte. Os processadores da Intel Xenon 3500, Core i7, bem como o AMD FX-8320, so exemplos de processadores implementados segundo o modelo Multiciclo. Como foi apresentado, os dois modelos de implementao de UCP so usados regularmente para a produo de computadores comerciais. Existem vantagens e desvantagens no uso de um ou de outro modelo. Do ponto de vista de implementao fsica da UCP , o modelo Monociclo mais interessante, pois mais simples de ser construdo, uma vez que no necessrio um bloco digital de controle de nmero de ciclos para cada classe de instrues. Assim, ocupase menos espao na rea interna da pastilha de circuito integrado (chip), o que contribui ainda mais para a menor dissipao de calor e, consequentemente, para um consumo de energia eltrica mais baixo, o que torna esse modelo mais indicado para aplicaes usando dispositivos mveis. Por outro lado, dependendo do programa a ser executado, o seu desempenho poder ser pior no modelo Monociclo. No possvel afirmar que um modelo melhor ou pior que o outro, no que se refere a desempenho computacional, pois tudo est diretamente relacionado com o programa a ser executado, mais especificamente com o conjunto de instrues que formam o programa. Quando um projetista de hardware tem que escolher um modelo para a implementao de uma UCP , ele considera inicialmente a classe de problema com que o novo processador ir trabalhar. Por exemplo, se os clculos iniciais de tempo de execuo de instrues apontaram para os valores das Tabelas

89

UNIDADE 6: CLASSIFICAO DO CONJUNTO DE INSTRUES

30 e 31 e se a natureza dos problemas a serem tratados com o novo processador aponta para a gerao de programas que possuem uma quantidade muito grande de instrues da classe de Controle e Lgica, possvel que ele tenha um desempenho satisfatrio sendo executado em uma mquina cujo modelo de implementao de UCP Multiciclo. Por outro lado, se os programas possuem um conjunto maior de instrues da classe de Aritmtica e Movimentao de Dados, o mais indicado rodar em um processador que possui a implementao Monociclo. A escolha do modelo de implementao de processamento envolve outras variveis que ainda no foram apresentadas, e que vo alm de quesitos tcnicos. Envolve questes financeiras,pois o custo final tambm influencia o projeto, mas por ora esses aspectos no sero discutidos.

RISC versus CISC


At ao final da dcada de 1970, os projetos de novas UCPs eram focados na reduo do intervalo semntico entre as linguagens utilizadas para programar computadores e as linguagens de mquina. Acreditava-se que tornar as linguagens de mquina mais parecidas com as linguagens de alto nvel resultaria num melhor desempenho, pela reduo do nmero de instrues exigidas para implementar um programa, bem como tornaria mais fcil traduzir um programa em linguagem de alto nvel para a linguagem de mquina. O resultado desse movimento culminou em projetos de conjuntos de instrues que possuam instrues muito complexas. medida que a tecnologia usada no processo de traduo entre as linguagens (compiladores) se aperfeioou, os arquitetos de computadores comearam a questionar se os sistemas com instrues complexas, conhecidos como Computadores com Conjunto de Instrues Complexas CISC (Complex Instruction Set Computer), realmente apresentavam melhor desempenho que os sistemas baseados em conjuntos de instrues mais simples. Essa nova proposta deabordagem ficou conhecida como Computadores de Conjunto de Instrues Reduzidas RISC (Reduced Instruction Set Computer). O argumento principal a favor dos computadores CISC que, para executar uma dada operao, eles geralmente exigem menos instrues que os computadores RISC, de modo que um computador CISC teria desempenho melhor que um computador RISC que executasse instrues mesma velocidade. Alm disso, programas escritos para mquinas CISC tendem

90

Disciplina: Arquitetura de Computadores

a tomar menos espao na memria que os programas escritos para mquinas RISC. Por outro lado, os projetistas que acreditavam no projeto RISC alegavam que, com frequncia de relgio maior, um processador RISC permite que ele execute programas em menos tempo do que um processador CISC. Ao longo da dcada de 1980 e no incio dos anos 1990, houve muita controvrsia na comunidade de Arquitetura de Computadores sobre qual das duas abordagens era a melhor e, dependendo do ponto de vista, qualquer uma das duas pode ser considerada melhor. Nos ltimos anos, tem havido certa convergncia entre as duas propostas, o que torna difcil determinar se uma implementao segue o modelo RISC ou CISC. Os projetos RISC incorporaram algumas instrues complexas que so bastante teis em um programa. Por outro lado, nos projetos CISC, foram abandonadas instrues complexas, que no eram utilizadas com frequncia suficiente para justificar a sua implementao. Uma diferena clara entre os modelos CISC e RISC refere-se ao acesso memria. Em muitas implementaes CISC, instrues Lgicas e Aritmticas podem usar operandos diretamente namemria principal, ao invs de usar somente os registradores de uso geral, como a proposta do modelo RISC. Por exemplo, comum encontrar instrues em uma mquina CISC que podem permitir uma operao de adio na forma ADD R1, R1, [#36], onde o segundo operando um dado oriundo diretamente da posio de memria 36. Ao passo que nas mquinas RISC, primeiro o operando dever ser carregado em um registrador de uso geral por uma instruo especfica para movimentao de dados com a instruo LOAD, para depois o operando ser envolvido na operao de adio, sendo necessrio o uso de uma instruo de movimentao de dados antes da operao de adio. Devemos entender que, no projeto RISC, cada instruo deve realizar operaes mais especficas, como somente somar, ou somente movimentar dados. No modelo CISC de implementar instrues, uma operao de adio pode envolver mais aes que o simples fato de somar, como movimentar dados e somar em uma mesma instruo. Atualmente, encontram-se processadores hbridos, que so essencialmente processadores CISC, mas que possuem internamente ncleos RISC. Assim, a parte CISC do processador pode cuidar das instrues mais complexas, enquanto que o ncleo RISC pode cuidar das mais simples, nas quais mais rpido. Parece que o futuro nos reserva uma fuso dessas duas tecnologias. Um bom exemplo de processador hbrido o Pentium Pro, processadores I3, I5, I7, todos da Intel.

91

UNIDADE 6: CLASSIFICAO DO CONJUNTO DE INSTRUES

A Tabela 32 apresenta uma comparao entre os modelos de RISC e CISC. Considere que, como os processadores atuais apresentam uma implementao hbrida em sua arquitetura, possuem caractersticas de um modelo e de outro simultaneamente. Em geral, a arquitetura do conjunto de instrues se refere a qualquer aspecto da arquitetura que visvel por um programador em linguagem assembly e que, de forma direta, impacta o desempenho do sistema computacional. Assim, devemos tomar cuidado ao classificar as mquinas novas quanto ao seu conjunto de instrues. A tabela mostra somente as caractersticas que, ao longo da histria, apresentaramse como as principais diferenas entre os modelos RISC e CISC.

Tabela 32: Comparaes entre RISC e CISC


RISC
Poucas instrues, podendo chegar em torno de 100. Instrues simples - efetuam operaes elementares. Instrues rpidas, com o tempo de execuo padronizado em um ciclo por instruo (CPI =1) Todos os cdigos de mquina possuem o mesmo tamanho, pouca variao no formato. Implementao Big-Endian. Pouca ou nenhuma variao nos modos de endereamento de uma instruo. Nmero razovel de registradores de propsito geral. Tipicamente 32, havendo implementaes com mais de 200. Acesso memria somente atravs das instrues LOAD e STORE. Operaes Lgicas e Aritmticas somente entre registradores. Implementao tipicamente Monociclo

CISC
Muitas instrues, variando de 100 a 300 (tipicamente). Instrues mais elaboradas - podem efetuar diversas sub-operaes. Possui instrues que so executadas em termos distintos (CPI varia de acordo com a classe da instruo). Os cdigos possuem tamanhos diferentes, com uma diversidade no formato das instrues. Implementao Little Endian. Uma mesma operao possui muitos modos de endereamento. Poucos registradores de uso geral. Tipicamente 16. Acesso memria livre, dependendo somente do modo de endereamento. Operaes Lgicas e Aritmticas livre, controlada pelo modo de endereamento. Implementao tipicamente Multiciclo.

Nesta unidade foram apresentados os modelos de processamento Monociclo e Multiciclo, que de certa forma impactam o desempenho computacional, o que exige, por parte do projetista de computador, uma anlise detalhada da classe de problemas a serem tratados pelo novo processador, para a definio do modelo de processamento a ser implementado.

92

Disciplina: Arquitetura de Computadores

A diferena funcional bsica entre os modelos encontra-se no tamanho do Ciclo de Mquina, ou perodo de clock, que o projetista determina em funo do tempo de execuo da instruo mais rpida ou mais lenta, estabelecendo-se, assim, o modelo Multiciclo ou Monociclo, respectivamente. Nesta unidade, tambm foram discutidas e apresentadas as caractersticas das mquinas RISC e CISC.

93

UNIDADE 6: CLASSIFICAO DO CONJUNTO DE INSTRUES

Referncias
CARTER, Nicolas. Teoria e problemas de arquitetura de computadores. Porto Alegre: Bookman, 2003. STALLINGS, W. Arquitetura e organizao de computadores. 5. ed. So Paulo: Pearson Education do Brasil, 2002. TANENBAUM, A. Organizao estruturada de computadores. 4. ed. So Paulo: Prentice-Hall, 2006.

94

Disciplina: Arquitetura de Computadores

UNIDADE 7 Desempenho de computadores


Objetivos:
Conhecer tcnicas para clculo de tempo de execuo de um programa; entender o que performance de computadores; resolver problemas de desempenho de computadores; entender o conceito e o uso de memria cache.

Medidas de desempenho
A partir dos anos 1980, o desempenho dos computadores foi impulsionado por melhorias significativas nas capacidades dos circuitos integrados utilizados para implementar a UCP: os circuitos integrados de memria e de outros componentes de computadores. Com o passar do tempo, o processo de fabricao de circuitos integrados incorporou tecnologias que permitiram o aumento de densidade das pastilhas de circuito integrado, ou seja, o aumento da quantidade de transistores e conexes por centmetro quadrado em uma pastilha de silcio (material bsico para a produo de circuitos integrados). Houve tambm uma melhoria no tempo de resposta dos circuitos, permitindo que cada porta lgica bsica e dispositivos de memria tivessem aumento de velocidade de resposta; j o espao usado para acomodar todo o circuito eletrnico ficou cada vez menor, consumindo menos energia e com mais eficincia computacional. A vertiginosa evoluo no desempenho dos computadores ao longo das ltimas dcadas foi alavancada pelo aumento da velocidade de operao e da densidade de integrao dos chips, que foram aperfeioadas em uma escala geomtrica, e no linearmente. Isso significa que, quando se compara a melhoria no desempenho obtida em um determinado ano com a melhoria alcanada no ano seguinte, a diferena entre o ganho em desempenho se mostra relativamente constante, em vez de um valor absoluto constante. Em mdia, o nmero de transistores que podem ser produzidos sobre uma pastilha padro de silcio aumenta cerca de 50% ao ano, e a velocidade de comutao dos transistores aumentou tanto que o atraso no tempo de resposta de uma porta lgica, que formada por um conjunto de transistores, diminui 13% ao ano. Na literatura tcnica, a observao de que o desempenho dos computadores melhora geometricamente e no linearmente conhecida como a Lei de Moore (Gordon Moore, um dos fundadores da Intel).

95

UNIDADE 7: DESEMPENHO DE COMPUTADORES

Observadas as caractersticas dos produtos disponibilizados pela indstria do silcio, o volume de dados que pode ser armazenado em um circuito integrado de memria, por exemplo, a RAM dinmica (DRAM), aumentou em quatro vezes a cada trs anos, considerando os dispositivos comercializados desde o incio da dcada de 1980, gerando uma taxa de crescimento anual prxima de 60%. Considerando somente o perodo compreendido entre o final da dcada de 1970 e o final da dcada de 1980, o desempenho das UCPs (processadores) teve como mola propulsora o aperfeioamento da tecnologia de fabricao de circuitos integrados, o que se refletiu num crescimento anual de 35%. Da em diante, a taxa de aperfeioamento efetivamente cresceu para mais de 50% ao ano, embora a taxa do progresso de fabricao de semicondutores tenha permanecido relativamente a mesma no perodo. O aumento na taxa de desempenho dos computadores vem crescendo, tendo em vista tambm as diversas melhorias na arquitetura e na organizao de computadores. Os arquitetos tm se mostrado cada vez mais capazes de tirar proveito da crescente evoluo da densidade de integrao aplicada sobre os circuitos integrados, acrescentando recursos s UCPs, bem como aos sistemas de memria, os quais proporcionam um ganho no desempenho acima do aumento da velocidade dos transistores que os implementam. Para ilustrar isso, pode-se destacar o uso de estruturas lgicas como o pipeline, que ser apresentado mais adiante, o uso de memrias do tipo DDR (Double Data Rate), tcnicas como o overclock, implementao de memrias cache, entre outras.

Avaliando um sistema computacional


Na seo 8.1, foram apresentadas justificativas para o aumento do desempenho dos computadores, contudo o conceito de desempenho de computadores no foi apresentado formalmente, pois o termo desempenho vago quando utilizado no contexto de sistemas computacionais. Geralmente, o desempenho descreve a rapidez com a qual um determinado sistema pode executar um programa ou um conjunto de programas. Tipicamente, sistemas que executam programas em menor tempo so considerados como de melhor desempenho. Assim, melhor medida para definir o desempenho de um computador o tempo de execuo de um programa que o usurio deseja executar. Geralmente impraticvel testar todos os

96

Disciplina: Arquitetura de Computadores

programas que sero executados em um dado sistema antes de decidir qual computador comprar, ou mesmo quando necessrio tomar decises durante a fase de projeto da mquina. Assim, os engenheiros e cientistas da computao criaram algumas mtricas para avaliar o desempenho, e definiram certas unidades de medida para descrever o desempenho de computadores. Tambm foram criadas unidades de medida para registrar o desempenho de alguns subsistemas dos computadores. Deve-se observar que, alm do desempenho, diversos fatores podem influenciar decises de projetos ou de compra de computadores, como a facilidade para o desenvolvimento de sistemas, pois o tempo e os custos necessrios para desenvolver programas que sejam efetivamente teis podem ser mais significativos do que o benefcio com o uso do programa; ou mesmo a questo da compatibilidade dos programas entre as diversas mquinas disponveis no mercado, pois a maioria dos programas comercializada no formato binrio, ou seja, o programa foi desenvolvido em uma linguagem de alto nvel e posteriormente foi traduzido para uma linguagem de mquina especfica e pode ser executado somente por uma famlia de UCP em particular. Se um determinado programa de que voc necessita no pode ser executado no computador que voc tem, no importa a rapidez com que outro sistema pode executar o mesmo programa.

Unidades de medidas de desempenho


MIPS
Uma das unidades de medida mais antigas para avaliar o desempenho de computadores a taxa pela qual a mquina executa instrues. Isso calculado dividindo-se o nmero de instrues executadas em benefcio de um programa pelo tempo necessrio para execut-lo, e tipicamente expresso em Milhes de Instrues Por Segundo (MIPS). Essa medida caiu em desuso porque no leva em conta o fato de que diferentes sistemas, frequentemente, precisam de nmeros diferentes de instrues para implementar um dado programa. Compare os programas apresentados ao longo da Unidade 6, e observe que, para as diferentes arquiteturas, o nmero de instrues de um mesmo programa sofre variao. A taxa de MIPS de um computador nada diz a respeito de quantas instrues so necessrias para executar uma data tarefa, tornando-a menos til do que outras unidades para comparar o desempenho de diferentes sistemas.

97

UNIDADE 7: DESEMPENHO DE COMPUTADORES

CPI
Outra unidade utilizada para descrever o desempenho de computadores est relacionada com o nmero de ciclos de clock necessrios para executar cada instruo, conhecida como Ciclos Por Instruo (CPI). O CPI de um programa a ser executado em um sistema calculado dividindo-se o nmero de ciclos de clock usados na execuo do programa pelo nmero de instrues executadas.

IPC
Em sistemas que podem executar mais de uma instruo por ciclo, o nmero de Instrues Por Ciclo, ou IPC, frequentemente utilizado em detrimento da unidade CPI. O IPC calculado dividindo-se o nmero de instrues executadas pelo nmero de ciclos de clock necessrios para a execuo do programa. Essa unidade est relacionada indiretamente com o CPI. De certa forma, tanto o CPI quanto o IPC fornecem a mesma informao, e a escolha de qual unidade deve ser usada geralmente relacionada com os resultados obtidos usando cada mtrica. Quando se utiliza o IPC e o CPI para comparar sistemas, importante lembrar que valores altos de IPC indicam que o programa de referncia demorou menos ciclos para ser executado do que valores baixos de IPC, enquanto que valores altos de CPI indicam que foram necessrios mais ciclos do que valores baixos de CPI. Assim, um IPC alto tende a indicar bom desempenho; um CPI alto indica um desempenho fraco. Exemplo: Um determinado programa formado somente por uma estrutura de repetio constituda por um conjunto de 100 instrues, as quais so executadas 42 vezes. Considerando que so necessrios 16.000 ciclos de clock para executar o referido programa em uma determinada mquina, quais so os valores de CPI e de IPC do sistema para esse programa? Resposta: A estrutura de repetio possui 100 instrues e executada 42 vezes, de modo que o nmero total de instrues executadas 100 x 42 = 4200. So gastos 16.000 ciclos para executar o programa, de modo que o CPI 16.000/4200 = 3,81. Para calcular o IPC, basta dividir 4200 instrues por 16.000 ciclos, perfazendo um IPC de 0,26.

98

Disciplina: Arquitetura de Computadores

Em geral, o IPC e o CPI so medidas ainda menos teis de desempenho para os sistemas atuais do que o MIPS, porque eles no contm qualquer informao a respeito da frequncia de clock da mquina ou de quantas instrues o sistema exige para executar uma tarefa. Sabendo qual a taxa de MIPS de um sistema para um determinado programa, possvel multiplic-la pelo nmero de instrues executadas no sistema para determinar quanto tempo levou para o programa ser executado. Por outro lado, conhecendo-se a taxa CPI de um sistema para um dado programa e multiplicando-se pelo nmero de instrues executadas, encontrase o nmero de ciclos que foram gastos para completar o programa, contudo, usando-se essa unidade de medida, deve-se conhecer a frequncia de clock do sistema para se determinar o tempo de execuo do programa. Como resultado, o CPI e o IPC raramente so utilizados para comparar sistemas computacionais atuais. No entanto, so unidades muito comuns na pesquisa de Arquitetura de Computadores, porque a maior parte desse tipo de pesquisa feita com programas que simulam uma arquitetura em especial, para estimar quantos ciclos um dado programa ir utilizar para ser executado naquela arquitetura. Esses simuladores geralmente so incapazes de prever o ciclo de tempo dos sistemas que eles simulam, de modo que o CPI / IPC a melhor estimativa de desempenho disponvel.

FLOPS
Computadores modernos e desenvolvidos com foco em aplicaes cientficas, ou que necessitam manipular uma massa muito grande de dados numricos, possuem unidades operacionais especficas para clculos numricos que empregam nmero em ponto flutuante, como o caso dos processadores Pentium, i3, i5 entre outros, que possuem uma ULA dedicada execuo de instrues que envolvem nmeros em ponto flutuante. Considerando essa especificidade, foi criada uma mtrica que avalia o desempenho dessas unidades, chamada de FLOPS (Floatingpoint Operations Per Second), que expressa a quantidade de operaes com ponto flutuante realizadas em um segundo. importante observar que essa unidade de medida deve ser usada somente para comparar mquinas que possuem uma ULA especfica para esse tipo de operao, ou quando se deseja saber quanto ser o ganho, em termos de desempenho, ao comparar mquinas com implementao que no possuem essas unidades especializadas. Ou seja, a unidade FLOPS no deve ser usada de forma geral como as unidades de medidas CPI, IPC ou MIPS.

99

UNIDADE 7: DESEMPENHO DE COMPUTADORES

Como os computadores so capazes de realizar milhes de operaes por segundo, podem ser adotados os mltiplos da unidade de medida FLOPS. A Tabela 33 apresenta a relao entre a unidade bsica FLOPS e seus mltiplos, considerando os prefixos oficiais do Sistema Internacional de Unidades.

Tabela 33: Mltiplos de FLOPS


Prefixo M G T P E Z Y Ordem de grandeza MFLOPS (megaflops) GFLOPS (gigaflops) TFLOPS (teraflps) PFLOPS (petaflops) EFLOPS (exaflops) ZFLOPS (zettaflops) YFLOPS (yottaflops) Escala curta milho de operaes em ponto flutuante por segundo bito de operaes em ponto flutuante por segundo trilho de operaes em ponto flutuante por segundo quadrilho de operaes em ponto flutuante por segundo quintilho de operaes em ponto flutuante por segundos sextilho de operaes em ponto flutuante por segundo septilho de operaes em ponto flutuante por segundo Relao com a unidade bsica 1 x106 1 x109 1 x1012 1 x1015 1 x1018 1 x1022 1 x1024

Conjunto de Benchmark
Como foi apresentado, tanto o MIPS quanto o CPI ou mesmo o IPC possuem limitaes significativas como medidas de desempenho de computadores, principalmente quando se deseja comparar dois sistemas computacionais distintos. Os Conjuntos de Benchmark (ferramentas de referncia para medio de desempenho) so alternativas para efetuar medidas e avaliaes de desempenho de computadores que foram desenvolvidas para resolver as limitaes apresentadas pelas mtricas MIPS, CPI e IPC. Observa-se que o FLOPS possui uma aplicao especfica e usado pelas ferramentas de Benchmark. Uma ferramenta de Benchmark formada por uma srie de programas semelhantes a diversos tipos de programas que sero executados pelos sistemas computacionais. A pontuao de um sistema na ferramenta de Benchmark baseada em quanto tempo o sistema leva para executar todos os programas que compem a ferramenta. Existem muitas ferramentas de Benchmark

100

Disciplina: Arquitetura de Computadores

diferentes, que geram estimativas do desempenho de um sistema com diferentes tipos de aplicaes. Uma das ferramentas de Benchmark mais conhecidas a sute SPEC, produzida pela Standatd Performace Evaluation Corporation. As ferramentas de Benchmark apresentam diversas vantagens sobre MIPS e CPI e IPC. Primeiro, seus resultados de desempenho so baseados em tempos totais de execuo, no na taxa de execuo de instrues. Segundo, elas fazem uma mdia do desempenho do sistema por vrios programas, de modo a gerar uma estimativa de sua velocidade mdia. Isso torna a avaliao geral do sistema por uma ferramenta de Benchmark um indicador melhor do seu desempenho geral do que a avaliao MIPS em qualquer programa isolado. Alm disso, muitas ferramentas de Benchmark exigem que os fabricantes de computadores publiquem os resultados dos seus sistemas usando programas individuais do Benchmark, bem como a pontuao geral do sistema no conjunto de Benchmark, tornando possvel fazer uma comparao direta de resultados individuais dessas ferramentas. Assim, possvel identificar que um sistema ser utilizado para uma aplicao em especial. Mdia geomtrica versus mdia aritmtica Muitas ferramentas de Benchmark utilizam a mdia geomtrica, em vez de mdia aritmtica, para calcular a mdia dos resultados dos programas contidos no conjunto de Benchmark, porque um nico valor extremo tem impacto menor sobre a mdia geomtrica de uma srie do que sobre a mdia aritmtica. Utilizar a mdia geomtrica torna mais difcil que um sistema atinja uma pontuao alta no Benchmark, ao atingir um bom desempenho em apenas um dos programas do conjunto, fazendo com que a pontuao geral do sistema seja um indicador melhor do seu desempenho com a maioria dos programas. A mdia geomtrica de n valores calculada multiplicando-se os n valores e tirando-se raiz ensima do produto. A mdia aritmtica, ou mdia de um conjunto de valores, calculada somando-se todos os valores e dividindo-se o resultado pelo nmero de valores.

Acelerao
Frequentemente, os projetistas de computadores utilizam o termo acelerao para descrever como o desempenho de uma arquitetura muda medida que diferentes melhoramentos so feitos nela. A acelerao simplesmente a razo entre os tempos de execuo antes e depois que mudana feita, de modo que:

101

UNIDADE 7: DESEMPENHO DE COMPUTADORES

Acelerao = Tempo de execuoantes / Tempo de execuodepois Por exemplo, se um programa demora 12 segundos para ser executado em uma verso de uma arquitetura e 7 segundos para ser executado em uma nova verso, a acelerao geral de 12 segundos / 15 segundos = 1,714.

Lei de AMDAHL
a regra mais importante para projetar sistemas de computadores de alto desempenho e fazer com que a instruo mais comum seja a mais rpida. Qualitativamente, isso significa que o impacto de um dado aperfeioamento sobre o desempenho geral do sistema depende tanto de quanto o aperfeioamento melhora o desempenho quando ele utilizado, como de com que frequncia esse aperfeioamento utilizado. Quantitativamente, essa regra foi expressa pela Lei de Amdahl, que define: Tempo de execuonovo = Tempo de execuoantigo x [Parcelano_usada + (Parcelausada/Aceleraousada)] Na equao, Parcelano_usada a parcela de tempo (no instrues) na qual o aperfeioamento no est em uso; Parcelausada a parcela de tempo na qual o aperfeioamento est em uso e Aceleraousada a acelerao que acontece quando o aperfeioamento usado (isto , a acelerao geral se o aperfeioamento fosse utilizado o tempo todo). Note que Parcelausada e Parcelano_usada so calculadas utilizando o tempo de execuo antes que as modificaes sejam aplicadas.

Uso de pipeline
Os processadores mais antigos executam as instrues de modo muito direto, ou seja, a UCON busca uma instruo na memria principal e a armazena no IR (ciclo de busca de instruo - BI). Na sequncia, a instruo avaliada e decodificada, permitindo identificar qual operao efetivamente dever ser executada e quais operandos esto envolvidos na operao (ciclo de decodificao da instruo - DI). O prximo estgio do processo de execuo referente leitura dos operandos (ciclo de busca do operando - BO), seguido pela fase de execuo da operao (EX) e finalizando com a escrita/armazenamento do resultado (ER). Essa sequncia ilustrada pela Figura 46:

102

Disciplina: Arquitetura de Computadores

1 BI

2 DI

3 BO

4 EX

5 ER

Figura 46: Estgios de execuo de uma instruo

Considerando-se o diagrama funcional apresentado pela Figura 46, pode-se imaginar que as unidades lgicas usadas para implementar cada um dos ciclos de execuo de uma instruo so teoricamente diferentes, pois envolvem operaes lgicas distintas, podendo-se concluir que, medida que uma determinada instruo vai sendo executada, as unidades funcionais j utilizadas ficam ociosas, havendo, de certa forma, um desperdcio momentneo de hardware. Em analogia ao processo de execuo de instrues por parte dos processadores mais antigos, imagine uma lavanderia que possui os seguintes estgios no seu processo de lavagem: 1. Receber a trouxa de roupa 2. Lavar 3. Secar 4. Passar 5. Entregar

Ainda sobre o funcionamento da lavanderia, considere que ela possui a capacidade de efetuar todo o processo em somente uma trouxa de roupa por vez, demorando cerca de 10 minutos em cada estgio. Dessa forma, so necessrios 50 minutos para atender cada cliente que chegar com uma trouxa de roupa. No difcil imaginar uma melhora nos processos dessa lavanderia, pois, havendo um investimento em pessoal e sincronismo entre os processos, possvel atender a mais de um cliente por vez. claro que o tempo de lavagem da trouxa no muda, mas a vazo nos processos da lavanderia melhoraria significativamente. O que est sendo proposto a otimizao de todas as unidades funcionais da lavanderia, com pelo menos um funcionrio responsvel em cada estgio, e a sincronizao entre os processos. Assim, o primeiro estgio s poder receber uma nova trouxa de roupa quando finalizar a recepo da trouxa j iniciada. Por sua vez, o estgio de lavagem das roupas no poder iniciar uma nova lavagem antes de terminar e entregar a lavagem

103

UNIDADE 7: DESEMPENHO DE COMPUTADORES

corrente. Assim dever ser a poltica de trabalho em todos os estgios dessa lavanderia. A Figura 47 ilustra o funcionamento aps a recepo da primeira trouxa de roupa, seguida pelas demais trouxas. Observe que a primeira trouxa ser entregue 50 minutos depois de recebida, assim como as demais; o que melhorou no processo que, a cada 10 minutos, uma trouxa de roupa est pronta para ser entregue, o que aumenta a vazo do sistema de 1 para 5 trouxas a cada 50 minutos. claro que a melhoria aparece aps a entrega da primeira trouxa.

Receber

Lavar

Secar

Passar

Entregar

Trouxa 1 Trouxa 2 Trouxa 3 Trouxa 4 Trouxa 5 ... ... ... ... Trouxa 1 Trouxa 2 Trouxa 3 Trouxa 4 Trouxa 5 ... ... ... Trouxa 1 Trouxa 2 Trouxa 3 Trouxa 4 Trouxa 5 ... ... Processo
Figura 47: Temporizao do processo de lavagem de roupas

Trouxa 1 Trouxa 2 Trouxa 3 Trouxa 4 Trouxa 5 ...

Trouxa 1 Trouxa 2 Trouxa 3 Trouxa 4 Trouxa 5

10` 20` 30` 40` 50` 60` 70` 80` 90`

Se a mesma metodologia usada na lavanderia for aplicada para a otimizao da execuo das instrues em um processador, ser usada uma tcnica denominada Pipelining, que na verdade usada para sobrepor a execuo de diversas instrues, visando reduzir o tempo de execuo de um programa e no de uma instruo propriamente dita. O pipeline uma estrutura eletrnica usada para implementar uma lgica adicional de controle de execuo de instrues pela UCON, que permite a utilizao de unidades operacionais ociosas em benefcio de um programa. O uso dessa estrutura pode melhorar o tempo de execuo de um programa desde que no ocorram conflitos no pipeline. A Figura 48 apresenta uma implementao de pipeline em forma de blocos lgicos e o uso de registradores entre cada os blocos da unidade de controle, o que permite a implementao da metodologia de sobreposio de instruo, em que cada um dos registradores internos isolam as unidades operacionais envolvidas.

Tempo

104

Disciplina: Arquitetura de Computadores

Registrador EX/ER

Registrador Bo/EX

Registrador DI/BO

O uso de pipeline no a soluo definitiva para o aumento de desempenho em sistemas computacionais. Existem diversos problemas com o uso de pipeline que definitivamente diminuem o seu rendimento geral. A maioria dos problemas pode ser resolvida pelo programador ou pelo aplicativo tradutor (compilador), seja alterando a ordem de execuo de algumas instrues do programa ou mesmo eliminando estrutura condicionais e/ou de repetio em um programa. Tipicamente os problemas encontrados com o uso de pipeline podem ser:

Registrador BI/DI

Figura 48: Uso de registradores para implementar um pipeline de 5 estgios

Estruturais
So problemas oriundos da impossibilidade de uso de alguma unidade operacional da UCP; por exemplo, a unidade lgica responsvel pela busca de instrues conflita com a unidade de busca do operando, no instante da execuo de instrues que necessitam efetuar acesso memria principal para buscar um operando. Normalmente esse tipo de conflito no pode ser controlado pelos programadores, sendo possvel a soluo somente ao longo do projeto do pipeline, ou seja, uma soluo de implementao fsica.

Dependncia de dados
Frequentemente necessrio executar em um programa uma sequncia de operaes lgicas e/ou aritmticas. Estatisticamente, provvel que o resultado de uma instruo seja usado pelas instrues seguintes. Assim, o problema aparece quando, dependendo do nmero de estgios de um pipeline, a instruo imediatamente seguinte ou mesmo a segunda instruo necessita usar esse resultado como fonte de sua operao, ou seja, o operando destino de uma instruo ser usado como operando fonte de uma operao subsequente.

105

UNIDADE 7: DESEMPENHO DE COMPUTADORES

Observe, na Figura 49, que o resultado da operao de adio ainda no foi gravado pela unidade de escrita de resultado, e a instruo imediatamente posterior est efetuando a leitura do valor do operando, ou seja, o dado usado pela operao de multiplicao est contaminado, pois possui um valor que no pode ser considerado verdade para a operao. Esse tipo de problema pode ser facilmente resolvido pelo programador/compilador com uma simples troca da ordem das instrues ou mesmo inserindo-se uma instruo NOP para estabelecer a distncia necessria entre as instrues conflitantes.

Desvio
So raros os programas que no fazem uso de instrues de desvio, como as instrues JMP , JZ, JNZ. O que deve ser avaliado com o uso de pipeline que, sempre que houver um desvio, o pipeline dever ser esvaziado e carregado com o alvo da instruo de desvio, bem como as instrues que a seguem, de certa forma, inserindo um atraso significativo no tempo de execuo do programa. Uma proposta de soluo para esse conflito passa pela diminuio do uso de estruturas que efetuam desvios, bem como uma anlise detalhada do programa pelo programador para alocar o trecho de programa que possui a menor probabilidade de execuo como alvo da instruo de desvio. Para anlise de desempenho dos computadores que utilizam pipeline, deve-se considerar a latncia e a taxa de vazo ou throughput. A latncia indica o tempo necessrio para a execuo de uma nica operao. O througput indica a velocidade na qual um conjunto de instrues executado, ou taxa de rendimento, que tipicamente so expressas como instrues\segundo ou instrues\ciclo). Nos processadores que no utilizam pipeline, o throughput igual ao inverso da latncia (1\ latncia), uma vez que cada operao executada atomicamente (indivisivelmente). Nos processadores com pipeline, o throughput deve ser maior que o inverso da latncia, uma vez que existe uma sobreposio de instrues. No entanto, a latncia de um processador com pipeline igualmente importante, na medida em que a latncia determina a frequncia com que instrues que geram conflitos podem ser executadas.

106

Disciplina: Arquitetura de Computadores

MOV R1, 0

ADD R1, R2, R3 MUL R4, R3, R1 SUB R5, R6, R7 SUB R5, R6, R7 ... ... ... ...

MOV R1, 0

ADD R1, R2, R3 MUL R4, R3, R1 SUB R5, R6, R7 SUB R5, R6, R7 ... ... ...

MOV R1, 0

ADD R1, R2, R3 MUL R4, R3, R1 SUB R5, R6, R7 SUB R5, R6, R7 ... ...

MOV R1, 0

ADD R1, R2, R3 MUL R4, R3, R1 SUB R5, R6, R7 SUB R5, R6, R7 ...

MOV R1, 0

ADD R1, R2, R3 MUL R4, R3, R1 SUB R5, R6, R7 SUB R5, R6, R7

Figura 49: Conflito de dados no pipeline R1 usado com destino e fonte

Uso de memria cache


Os dispositivos de armazenamento dos sistemas computacionais so hierarquizados em funo da sua proximidade com a ULA. Os elementos mais prximos possuem um tempo de resposta extremamente rpido se comparados com os mais distantes, e at mesmo com a latncia da prpria ULA. Por outro lado, o custo de implementao inversamente proporcional ao tempo de resposta de cada um dos elementos, o que de certa forma contrasta com o volume de dados armazenado em cada nvel hierrquico, pois, medida que aumenta a distncia em relao ULA, o volume para armazenamento aumenta. A Figura 50 ilustra a relao entre tempo de resposta, distncia e volume armazenado.

< volume armazenado

REGISTRADORES MEMRIA CACHE MEMRIA PRINCIPAL MEMRIA SECUNDRIA

Acesso mais rpido

> volume armazenado

Acesso mais lento

Figura 50: Hierarquia do sistema de memria dos dispositivos computacionais

Sob o ponto de vista de desempenho computacional, os dispositivos de armazenamento mais indicados so os registradores, mas, devido ao custo de implementao muito alto, os processadores/UCP possuem um conjunto limitado desse tipo de dispositivo de armazenamento,

107

UNIDADE 7: DESEMPENHO DE COMPUTADORES

que no suficiente para armazenar um programa completo. Por outro lado, a memria principal um subconjunto do sistema de memria com caractersticas operacionais que devem permitir o acesso leitura e escrita de dados e programas em um volume razoavelmente considervel, mas possui um tempo de resposta alto, o que impacta negativamente o desempenho do sistema computacional. Para otimizar o desempenho sem aumentar significativamente o custo dos computadores, os engenheiros projetaram um subsistema de memria intermedirio entre a UCP e a memria principal, denominado memria cache. A ideia bsica na utilizao de memria cache esconder o baixo rendimento da memria principal com a utilizao de um pequeno banco de memria, constitudo de dispositivos com tecnologia similar dos registradores, que de certa forma se apresenta como um espelho de parte da memria principal (Figura 51). Para tanto, necessrio utilizar um sistema auxiliar de controle de cache, que ir registrar quais endereos de memria esto espelhados e atualizar os dados na memria principal sempre que necessrio.

UCP

Memria Principal

CACHE

Figura 51: Espelhamento da memria principal (memria cache)

Assim sendo, todas as vezes que a UCON efetuar um acesso memria principal, dever verificar, primeiro, se o endereo acessado est na memria cache. Caso o endereo acessado esteja na memria cache, o contedo rapidamente lido pela UCON, no sendo necessrio efetuar acesso memria principal. Nesse caso, dizemos que houve um acerto de cache. Caso contrrio, haver uma falha de cache, obrigando a UCON a efetuar um acesso memria principal, e o sistema auxiliar de cache a copiar o contedo do endereo acessado, bem como alguns outros endereos de memria da vizinhana, conforme o comprimento da linha de cache, para atender a UCON em um futuro prximo e evitar acesso

108

Disciplina: Arquitetura de Computadores

memria principal, ganhando em desempenho. Na verdade, o sistema de controle de cache considera o princpio computacional da localidade para copiar dados da memria principal na cache, pois a probabilidade de acessos a endereos prximos a um endereo j acessado muito alta. O comprimento de linha de uma cache est relacionado com o tamanho do grupo de dados que nela so copiados ou dela so eliminados, em resposta a uma falha na cache. Por exemplo, se uma cache tem o comprimento de linha igual a 32 bytes, todas as vezes que buscar um novo dado na memria, ser copiado um bloco de 32 bytes de dados contendo o endereo de falta e descartando outros 32 bytes para liberar espao na cache. Com relao ao processo de escrita de dados na memria principal, possvel seguir uma de duas polticas bsicas de escrita. A primeira, conhecida como write-through, orienta que, todas as vezes que um dado for gravado na cache pela UCON, ele dever ser gravado imediatamente na memria principal. A segunda chamada de write-back, pela qual a atualizao de um dado na memria principal se d somente quando o sistema de controle de cache encontrar uma falha de cache. Pode-se notar que a primeira poltica tende a diminuir o desempenho do sistema, pois, sempre que um nico dado for gravado pela UCON, ser necessrio esperar o encerramento do processo de escrita na memria principal para efetuar um novo acesso memria. Sob a tica da segunda poltica, pode ocorrer a gravao de mais de um dado na memria principal e, dependendo do programa, essa poltica ser mais eficiente. Como regra geral de uso de memria cache, programas que fazem acessos de escrita a memria principal com muita frequncia devem utilizar a poltica write-back, com, por exemplo, programas de processamento de imagens. Por outro lado, para programas que fazem uso de poucas variveis e com uma frequncia de atualizao baixa mais indicada a poltica writethrough. Na verdade, como no conhecemos a fundo a estrutura interna das aplicaes, o recomendado efetuar testes de funcionamento das duas polticas. A ttulo de curiosidade, a troca da poltica de escrita de cache normalmente efetuada pelo programa de configurao do hardware (Setup do computador).

109

UNIDADE 7: DESEMPENHO DE COMPUTADORES

Perifricos
Ainda sobre desempenho computacional, deve-se levar em conta as caractersticas e a tecnologia dos dispositivos de entrada e sada, pois, sempre que for necessrio ler ou gravar um dado que est associado a um determinado dispositivo, a UCP dever aguardar o envio ou o recebimento dos dados por parte do perifrico. Como os perifricos normalmente utilizam sistemas mecnicos, ou dependem da manipulao direta do homem para o seu funcionamento, h de se considerar que eles so muito mais lentos que a UCP , contribuindo negativamente para o desempenho geral do sistema. Perifricos mais modernos utilizam sistemas de memria cache para aumentar a sua performance, mas deve-se lembrar que o custo de produo desses dispositivos mais alto que o dos demais. Outra alternativa para melhorar o desempenho geral dos sistemas a utilizao de uma tcnica conhecida como DMA (Acesso Direto Memria), como ilustra a Figura 52. Essa tcnica faz uso da comunicao direta com a memria principal, gravando ou lendo uma massa de dados nos momentos em que a UCP no est fazendo uso do barramento de comunicao externo, lembrando o modelo de Von Neumman, e assim evita que a UCP faa acessos diretos aos perifricos para manipulao de dados.

Processando ou acessando a cache

UCP

CACHE

Memria Principal

Dispositivos de Entrada e Sada

Perifrico efetuando acesso direto a memria

Figura 52: DMA Acesso Direto Memria

110

Disciplina: Arquitetura de Computadores

Esta unidade apresentou alguns conceitos e tecnologias que impulsionam o desempenho de computadores e forneceu um arcabouo de recursos para a discusso e a avaliao do desempenho de sistema. Como foi apresentado, h vrios modos de medir o desempenho de computadores, e as medidas mais efetivas do desempenho geral so baseadas no desempenho de um sistema com uma ampla variedade de aplicao. Para prever o desempenho de um sistema em uma determinada aplicao, importante entender como uma dada unidade de desempenho foi concebida, de modo que se entenda tambm qual a sua utilidade. Vimos que o uso de tcnicas de adiantamento de instrues (pipeline) pode contribuir positivamente para o desempenho, mas cuidados devem ser tomados para evitar os conflitos no pipeline. Vimos, ainda, como o uso de memrias espelho e tcnicas de DMA podem melhorar o desempenho de um sistema.

111

UNIDADE 7: DESEMPENHO DE COMPUTADORES

Referncias
CARTER, Nicolas. Teoria e problemas de arquitetura de computadores. Porto Alegre: Bookman, 2003. STALLINGS, W. Arquitetura e organizao de computadores. 5. ed. So Paulo: Pearson Education do Brasil, 2002. TANENBAUM, A. Organizao estruturada de computadores. 4. ed. So Paulo: Prentice-Hall, 2006.

112