Pietra Marques Lancastre
1 MÓDULO DE: ARQUITETURA DE COMPUTADORES AUTORIA: FILIPE DE CASTRO FERREIRA 1
2 Módulo de: Arquitetura de Computadores Autoria: Filipe de Castro Ferreira Primeira edição: 2009 CITAÇÃO DE MARCAS NOTÓRIAS Várias marcas registradas são citadas no conteúdo deste módulo. Mais do que simplesmente listar esses nomes e informar quem possui seus direitos de exploração ou ainda imprimir logotipos, o autor declara estar utilizando tais nomes apenas para fins editoriais acadêmicos. Declara ainda, que sua utilização tem como objetivo, exclusivamente na aplicação didática, beneficiando e divulgando a marca do detentor, sem a intenção de infringir as regras básicas de autenticidade de sua utilização e direitos autorais. E por fim, declara estar utilizando parte de alguns circuitos eletrônicos, os quais foram analisados em pesquisas de laboratório e de literaturas já editadas, que se encontram expostas ao comércio livre editorial. Copyright 2008, ESAB Escola Superior Aberta do Brasil 2
3 Apresentação Falar sobre arquitetura de computadores é, no mínimo, uma tarefa desafiadora. Por um lado, existem muitos produtos que podem ser considerados como computadores. Por outro lado, a rápida evolução em todos os aspectos da tecnologia de computadores mostra-se praticamente sem fronteiras, a cada dia surgem novidades. Apesar da grande variedade e da rapidez da evolução da área de computadores, alguns componentes básicos são comuns aos computadores, seja um micro ou um supercomputador. Pretendemos neste curso promover uma discussão sobre os conceitos fundamentais de arquitetura de computadores Objetivo Proporcionar ao aluno uma visão geral do tema Arquitetura de Computadores, entendendo os principais componentes e seus conceitos. Este entendimento é base para qualquer estudo futuro no campo da informática. Este módulo de estudos não pretende abordar todos os assuntos relacionados à disciplina arquitetura de computadores. Esta é uma disciplina abrangente e seria impossível resumi-la em um único módulo. 3
4 Ementa Breve histórico do computador; Arquitetura da Máquina de Von Neumann; Conceito de bit, byte, caractere e palavra; Representação numérica nos computadores, relação dos números reais com os números binários; Técnicas para efetuar operações matemáticas com os números binários; Sinal e Magnitude; Complemento a um; Complemento de dois; Hierarquia das memórias, organização e características; Classificação das Memórias quanto a leitura e escrita; Funcionamento e características da memória principal do computador; Funcionamento da memória cache e a sua relação com a memória principal; Funcionamento dos registradores especiais do processador, responsáveis por organizarem o controle da execução das instruções; Representação da Instrução e análise do Ciclo da Instrução; Tipos de modos de endereçamento; Pipelining; Organização da interface de E/S; O controle das conexões entre o processador, a memória e os outros dispositivos; Maneiras de comunicação da informação pelos dispositivos do computador; E/S com Polling e Interrupção; E/S com acesso direto à memória; Tipos de barramentos e suas diferenças; Formas do computador executar um programa; Linguagens de Programação e Tradutores; Compilação, Ligador e Interpretação; Comparação entre Compilação e Interpretação; Máquinas Virtuais e Java Bytecode. 4
5 Sobre o Autor PMP; Pós-Graduado em Engenharia de Sistemas; MBA em Gerência de Projetos; Bacharel em Sistemas de Informação. Gerente de Projetos e ex-consultor Microsoft Brasil. Certificado Microsoft em SharePoint 2007, Project Server 2007 (EPM 2007) e MS Project Experiência como Gerente de Fábrica de Software, Analista em Projetos de desenvolvimento de Sistemas e conteúdos para EAD. Experiência como projetista e administrador de redes Windows e Linux. Tutor na ESAB (Escola Superior Aberta do Brasil) em Cursos de Pós-Graduação. 5
6 SUMÁRIO UNIDADE Breve Histórico... 9 UNIDADE Breve Histórico - continuação UNIDADE Componentes de um Computador Máquina de Von Neumann UNIDADE Componentes de um Computador Máquina de Von Neumann - continuação UNIDADE Elementos Básicos: Representação dos dados UNIDADE Representação Numérica UNIDADE Operações Binárias Overflow ou estouro do limite UNIDADE Representação de Sinal Negativo Sinal e Magnitude UNIDADE Representação de Sinal - continuação UNIDADE Sistema de Memória UNIDADE
7 Tipos de Memória Continuação da classificação das memórias UNIDADE Tipos de Memória Memória Principal Capacidade da Memória Principal UNIDADE Tipo de Memória - Memória Cache UNIDADE Registradores UNIDADE Representação e Ciclo de Instrução Representação da Instrução Formato das Instruções Ciclo de Instrução UNIDADE Modos de endereçamento Modo Imediato Modo Direto Modo Indireto Modo de endereçamento por registrador Modo por registrador direto Modo por registrador indireto UNIDADE Pipelining Método Assíncrono Método Síncrono UNIDADE Organização De Uma Interface de E/S (Comunicação entre a Memória e UCP Barramentos) UNIDADE Entrada/Saída UNIDADE Formas De Comunicação
8 UNIDADE Técnicas de Transferência de Dados UNIDADE Técnicas de Transferência de Dados - continuação UNIDADE Técnicas de Transferência de Dados - continuação UNIDADE Padrões De Barramento UNIDADE Padrões De Barramento - continuação UNIDADE Execução de Programas UNIDADE Execução de Programas - continuação UNIDADE Execução de Programas - continuação UNIDADE Execução de Programas - continuação UNIDADE Execução de Programas - continuação GLOSSÁRIO BIBLIOGRAFIA
9 UNIDADE 1 Breve Histórico Objetivo: Conhecer o breve histórico do computador. Ao longo dos séculos foram construídas algumas máquinas com a função de realizarem cálculos aritméticos e outras operações inteligentes. A primeira calculadora mecânica foi criada pelo alemão Wilhelm Schickard ( ) em O funcionamento da máquina era baseado em rodas dentadas e ela era capaz de efetuar adições e subtrações. A invenção de Schickard, no entanto, não foi muito difundida e caiu rapidamente no esquecimento. Posteriormente, Blaise Pascal desenvolve a Pascoalina, uma máquina de calcular mecânica, também baseada em rodas dentadas, com o objetivo de livrar seu pai, coletor de impostos de Rouen (França), dos fastidiosos cálculos que sua profissão lhe impunha. Figura 1 - Pascoalina 9
10 Entre as máquinas que antecederam os modernos computadores ou processadores eletrônicos estão, principalmente, a máquina analítica projetada na primeira metade do século XIX pelo matemático e inventor britânico Charles Babbage, que foi considerado o primeiro computador mecânico. Charles Babbage ( ) concebeu um Computador Analítico dotado de um dispositivo a que chamou de MOINHO (uma máquina de somar com precisão de até 50 casas decimais), e um dispositivo de entrada que leria cartões perfurados contendo não somente números (os dados), mas também INSTRUÇÕES (o que fazer com os dados). Imaginou ainda um dispositivo de memória que chamou de ARMAZÉM para guardar os números, um banco com 1000 "registradores" cada qual capaz de armazenar um número de 50 dígitos - os números dados pelos cartões de entrada ou então números resultados de operações do moinho. Finalmente, incluiu um dispositivo impressor para dar saída aos resultados. As instruções (gravadas em cartões) possíveis de ser implementadas pelo moinho eram: entrar com um número no armazém entrar com um número no moinho mover um número do moinho para o armazém mover um número do armazém para o moinho comandar o moinho para executar uma operação sair com um resultado Para construir um dispositivo a partir destas idéias, Babbage contou com a colaboração inestimável da matemática Ada Augusta Byron, Lady Lovelace, filha do poeta Lord Byron. Ada desenvolveu séries de instruções para o calculador analítico, criando conceitos tais como sub-rotinas, loops e saltos condicionais. Babbage é considerado o precursor do computador. Ada é considerada a precursora do software. 10
11 Também há a máquina tabuladora do americano Herman Hollerith, que trabalhava no departamento de censo dos Estados Unidos e idealizou um sistema de tratamento de informações com o qual, mediante o uso de cartões perfurados, conseguiu aumentar de dois para duzentos o número de dados processados por minuto. Esses cartões, que receberam o nome do inventor, foram utilizados pelos computadores até 1970 como sistema de entrada e saída de dados. Da companhia fundada por Hollerith, a Tabulating Machine Company, surgiu mais tarde a International Business Machines Corporation (IBM). Figura 2 - Cartão Perfurado Três décadas antes de Hollerith concretizar seu projeto, foi publicada a obra do matemático britânico George Boole, An Investigation into the Laws of Thought (1854; Investigação das leis do pensamento). Boole considerava que os processos mentais do ser humano eram resultado de uma associação sucessiva de elementos simples que se podiam expressar sobre uma base de duas únicas alternativas: sim ou não. Foi essa a origem do método matemático de análise formal conhecido como álgebra de Boole. Considerado na época uma simples curiosidade, o método viria a constituir o fundamento teórico da informática moderna. 11
12 UNIDADE 2 Breve Histórico - continuação Objetivo: Conhecer o breve histórico do computador século XX. Na evolução dos equipamentos de informática tornou-se habitual referir-se às etapas de desenvolvimento como "gerações", embora nem sempre haja acordo quanto a seu número ou quanto aos critérios utilizados em sua diferenciação. Neste módulo de estudos não serão classificados como gerações, mas o período que foram criados. Os primeiros computadores eram caracterizados pelo uso de válvulas à vácuo. Figura 3 - Foto de válvula usada na década de a ENIAC J. Presper Eckert, John V. Mauchly e Herman H. Goldstine, nos Estados Unidos, construíram o ENIAC (Eletronic Numerical Integrator Computer), considerado o primeiro computador programável universal. Durante a Segunda Guerra havia a necessidade, por parte do exército americano de desenvolver métodos mais rápidos para calculo das trajetórias e alcance das novas armas. Este trabalho era feito manualmente, utilizando-se calculadores de mesa. O Army s Ballistics Research Laboratory (BRL) utilizava cerca de 200 pessoas para 12
13 resolver as equações necessárias, sendo que a preparação das tabelas para uma única arma poderia levar várias horas ou até mesmo dias de trabalho de uma única pessoa. Em 1943 foi aceito pelo exército americano o projeto para a construção do ENIAC. O ENIAC possuía aproximadamente válvulas de rádio, pesava 4 toneladas, media 30 metros de comprimento por 3 de largura e ocupava uma área de 180m 2, chegando a consumir 150 KW. Em contrapartida conseguia realizar 5 mil operações por segundo. Figura 4 - Parte do Galpão que abrigava o ENIAC. O ENIAC era uma máquina decimal e não uma máquina binária, onde cada dígito era representado por um anel de 10 válvulas. A cada instante, apenas uma válvula ficava em estado ON (ligado), representando um dos dez dígitos. A principal desvantagem do ENIAC era que ele tinha que ser programado manualmente, ligando e desligando chaves e conectando e desconectando cabos. A programação do ENIAC era feita através de chaves manuais. A cada novo cálculo, era preciso reprogramar várias destas chaves. Isso sem falar no resultado, que era dado de forma binária através de um conjunto de luzes. Não é à toa que a maior parte dos programadores da época eram mulheres, só mesmo elas para ter a paciência necessária para programar e reprogramar esse emaranhado de chaves várias vezes ao dia. 13
14 O ENIAC funcionava da seguinte maneira: Primeiro um grupo de cientistas desenvolvia equações matemáticas na exata seqüência em que elas tinham que ser digeridas pelo sistema. A seguir seis especialistas programavam o computador para executá-las, girando botões de sintonia e plugando centenas de fios nas tomadas corretas. Portanto o que hoje é o sistema operacional, em 1946 era uma operação completamente manual. O primeiro teste do ENIAC uma demonstração feita para generais das Forças Armadas calculou a trajetória de uma bala de canhão até um alvo determinado. Alimentado com as equações, o computador forneceu os dados para que o canhão fosse calibrado. A bala acertou o alvo, mas o que mais impressionou os generais, foi que o tempo que o computador levou para resolver, foi menor que o tempo da trajetória da bala. O único problema do ENIAC era que para calcular a trajetória de outra bala, até um novo alvo, tudo tinha que ser refeito: das equações até o reacerto dos fios a 1952 EDVAC J. Presper Eckert, John V. Mauchly (engenheiros eletrônicos) e Herman H. Goldstine com a consultoria de John von Neumann, doutor em Matemática, pela Universidade de Budapeste, húngaro, naturalizado americano, especialista em lógica, construíram o EDVAC (Eletronic Discrete Variable Computer. Em 1945 Von Neumann, que foi um dos principais consultores do projeto ENIAC, sugeriu que o sistema binário fosse adotado em todos os computadores, e que as instruções e dados fossem compilados e armazenados internamente no computador, na seqüência correta de utilização. Estas sugestões tornaram-se a base filosófica para projetos de computadores Manchester Mark I Max Newman e a equipe da Universidade de Manchester, na Inglaterra, que teve a participação de Alan Turing, construíram o Manchester Mark I, "primeiro computador que funcionou", que teve "a primeira visualização na tela de dados contidos na memória" e que 14
15 teve o primeiro programa gravado executado em 21 de junho de O Harvard Mark I, parcialmente financiado pela IBM. O Mark I tinha o nome técnico de Calculador Automático Seqüencial Controlado, e foi construído entre 1939 e 1944, pelo professor Howard Aiken. O Mark I talvez tenha sido a maior máquina calculadora já construída (20 metros de comprimento por 3 de altura e 750 mil componentes). Independente dessa discussão a participação da IBM nos desenvolvimentos dos computadores é inegável. A IBM também teria outro destaque na história dos computadores por um acontecimento: foi em um Mark II em que ocorreu o primeiro bug. A palavra já vinha sendo usada como gíria para significar qualquer complicação desde a Revolução Industrial, as máquinas eram instaladas em locais onde havia muitos insetos voando e havia grande chance de que algum isento pousar em um lugar errado e causar estragos era grande, e qualquer parada mecânica era atribuída a principio por bug. Com os computadores realmente foi um bug: em 1945, uma mariposa conseguiu entrar num Mark II do Centro Naval de Virgínia, nos EUA, e travou todo o sistema, a partir daí o nome passaria a ser sinônimo de qualquer falha ou erro. Vídeo Assista ao vídeo História dos Computadores através do link Estudo Complementar. Vale a pena assistir este super interessante vídeo. 15
16 Figura 5 Imagem do inseto que ocasionou o primeiro bug. Caso tenha interesse em ler um histórico mais detalhado sobre os computadores, não deixe de acessar o arquivo Histórico dos Computadores através do link Estudo Complementar. 16
17 UNIDADE 3 Componentes de um Computador Máquina de Von Neumann Objetivo: Conhecer a estrutura da arquitetura da Máquina de Von Neumann VÍDEO Atenção! Antes de dar continuidade aos seus estudos. Vá ao ambientes CAMPUS ON-LINE e assista o vídeo referente à UNIDADE 3. A máquina de Von Neumann (John von Neumann) é a arquitetura base utilizada pelos computadores atuais. É uma arquitetura de utilização genérica que permite resolver qualquer problema que se possa exprimir sob a forma de um algoritmo. Permite-nos especificar programas que indicam as desejadas seqüências de operações que se devem realizar sobre a informação representada em binário. 17
18 Figura 6 John Von Neumann Caso queira saber mais sobre este importante cientista acesse o link: ou a biografia completa em vídeo. OBS este vídeo está em italiano e hospedado no site youtube. A máquina proposta por Von Neumann reúne os seguintes componentes: Memória Principal, Central de Processamento (UCP), composta pela Unidade Lógica Aritmética (ULA) e a Unidade de Controle (UC) e Dispositivos de Entrada e Saída. 18
19 Figura 7 Máquina de John Von Neumann Memória Principal A unidade de memória central serve para guardar programas e dados, sob a forma de uma representação binária. Cada instrução da máquina é codificada como uma seqüência de bits. Cada valor de certo tipo é codificado por uma determinada seqüência de bits. Figura 8 Seqüência de bits armazenados na memória principal 19
20 Figura 9 Exemplos de Memória Principal 20
21 UNIDADE 4 Componentes de um Computador Máquina de Von Neumann - continuação Objetivo: Saber mais dados sobre a Arquitetura da Máquina de Von Neumann Unidade Central de Processamento (UCP) A unidade de central de processamento (CPU Central Processing Unit) trata do controle global das operações e da execução das instruções. Para esse efeito, a UCP contém as seguintes unidades internas: Unidade Lógica e Aritimética, ULA (ALU- arithmetic and logic unit): A ULA executa as principais operações lógicas e aritméticas do computador. Ela soma, subtrai, divide, determina se um número é positivo ou negativo ou se é zero. Além de executar funções aritméticas, uma ULA deve ser capaz de determinar se uma quantidade é menor ou maior que outra e quando quantidades são iguais. A ULA pode executar funções lógicas com letras e com números. Unidade de Controle UC: Responsável por gerar todos os sinais que controlam as operações no exterior do CPU, e ainda por dar todas as instruções para o correto funcionamento interno do CPU. A unidade de controle executa três ações básicas intrínsecas e pré-programadas pelo próprio fabricante do processador, são elas: busca (fetch), decodificação e execução. Assim sendo, todo processador, ao iniciar sua operação, realiza uma operação cíclica, tendo como base essas três ações. Dependendo do tipo de microprocessador, a unidade de controle pode ser fixa ou programável. 21
22 Cada instrução da máquina pode envolver: operações aritméticas e lógicas operações de transferência entre CPU e a Memória Central operações de transferência entre CPU e Unidades de I/O operações de controle da seqüência de execução das instruções Figura 10 Exemplo de hardware de CPU Entrada e Saída As unidades periféricas destinam-se a suportar as ações de comunicação da CPU e memória com o exterior, daí a sua designação de unidades de entrada e saída (ou I/O- input / output). São exemplos, o teclado, o monitor, o mouse, a impressora, as interfaces de comunicação com redes de computadores. Também há unidades periféricas destinadas ao armazenamento de dados, que são depois apresentados ao usuário, sob a forma de 22
23 arquivos, geridos pelos programas do Sistema Operacional. Exemplos são os discos rígidos, discos ópticos (CD/DVD), os discos flexíveis e as fitas magnéticas. Exemplos de dispositivos de Entrada/Saída (Input/Output): Monitor Saída (Output) Teclado Entrada (Input) Impressora Saída (Output) Disco Rígido Entrada e Saída (Input/Output I/O) Disco Flexível Entrada e Saída (Input/Output I/O) Mouse Entrada (Input) Interface de Rede Entrada e Saída (Input/Output) Figura 11 Exemplos de dispositivos de E/S 23
24 Vídeo Assista ao vídeo Viagem dentro do computador através do link Estudo Complementar. Vale a pena assistir este interessante vídeo. 24
25 UNIDADE 5 Elementos Básicos: Representação dos dados Objetivo: Identificar os conceitos de bit, byte, caractere e palavra. Toda informação introduzida em um computador, sejam dados que serão processados ou instrução de um programa, precisa ser entendida pela máquina, para que possa corretamente interpretá-la e processá-la. As informações apresentadas na forma de caracteres neste módulo de estudos, por exemplo, são entendidas porque você conhece o significado dos símbolos que representam os caracteres alfabéticos e os sinais de pontuação. O computador, sendo um equipamento eletrônico, armazena e movimenta as informações internamente sob forma eletrônica; esta pode ser um valor de voltagem ou de corrente. Para que a máquina pudesse representar eletricamente todos os símbolos utilizados na linguagem humana, seriam necessários diferentes valores de voltagem (ou de corrente). Tal máquina certamente seria difícil de ser construída para fins comerciais e, possivelmente, teria muito baixa confiabilidade. Esta foi uma das grandes desvantagens do primeiro computador eletrônico construído, o Eniac. Von Neumann e equipe consideravam muito mais simples e confiável projetar um circuito capaz de gerar e manipular o menor número possível de valores distintos, capaz de entender apenas dois valores diferentes: 0 e 1. Dessa forma, os computadores digitais são binários. Toda informação introduzida em um computador é convertida para um algarismo binário ou dígito binário, conhecido como bit. O bit pode ter então somente dois valores: 0 e 1. 25
26 Figura 12 Representação do bit 0 e 1 Um caractere isolado não significa nada para nosso sentindo de comunicação, razão pela qual se criam palavras. Da mesma forma, as informações manipuladas por um computador são codificadas em grupos ordenados de bits, de modo a terem um significado útil. A primeira definição formal atribuída a um grupo ordenado de bits, para efeito de manipulação interna mais eficiente, foi instituída pela IBM e é, atualmente, utilizada por praticamente todos os fabricantes de computadores. Trata-se do byte, definido como um grupo ordenado de 8 bits, tratados de forma individual, como unidade de armazenamento e transferência. Como os computadores são máquinas binárias, todas as indicações numéricas referem-se a potências de 2 e não a potências de 10 (como no sistema métrico), por essa razão, a medida Kbyte representa byte (210 = 1024 bytes = 8192 bits) e não 1000 bytes, o Mbyte (abreviatura do termo mega) representa bytes (valor igual a 1024 x 1024 ou 210 x 210 = 220) e o giga, representado pelo caractere G, indica o valor igual a 1024 mega ou K ou 230. Múltiplos de bytes Prefixo binário (IEC) Prefixo do SI 26
27 Nome Símbolo Múltiplo Nome Símbolo Múltiplo byte B 20 byte B 100 kibibyte(quilobyte) KiB 210 quilobyte kb 103 mebibyte(megabyte) MiB 220 megabyte MB 106 gibibyte(gigabyte) GiB 230 gigabyte GB 109 tebibyte(terabyte) TiB 240 terabyte TB 1012 pebibyte(petabyte) PiB 250 petabyte PB 1015 exbibyte(exabyte) EiB 260 exabyte EB 1018 zebibyte(zettabyte) ZiB 270 zettabyte ZB 1021 yobibyte(yottabyte) YiB 280 yottabyte YB 1024 Figura 13 Múltimplos de bytes Caso queira saber mais sobre bit, byte, suas potências e conversões, acessem o link: Na computação também se criou o conceito de palavra. Assim, além do bit e do byte, temos o conceito relacionado com o armazenamento e a transferência de informações. 27
28 Figura 14 Bit, Byte e Palavra. A palavra nos computadores é um valor fixo e constante para um dado processador (16, 32 ou 64 bits). De modo geral, usam-se dois valores diferentes: um relacionado à unidade de armazenamento o byte; e outro para indicar a unidade de transferência e processamento a palavra. Em geral, o computador processa valores representados por uma quantidade de bits igual à palavra, indicando assim a capacidade de processamento do sistema, por exemplo, 32 bits ou 64 bits. Uma palavra deve representar um dado ou uma instrução, que pode ser processada, armazenada ou transferida em uma única operação. 28
29 UNIDADE 6 Representação Numérica Objetivo: Representar numericamente nos computadores, relação dos números reais com os números binários. Os sistemas numéricos são sistemas de notação usados para representar quantidades abstratas denominadas números. Usa-se a base para definir o sistema numérico e esta indica a quantidade de símbolos existentes. Em nosso dia a-dia usamos 10 símbolos numéricos (de 0 até 9), que formam o sistema numérico decimal. O Sistema Decimal Na base decimal os números expressam potências de 10 em sua representação, como podemos observar nos exemplos abaixo: Número * 10 2 * 10 1 * 10 0 * 10-1 * 10-2 * O significado de cada número é: 1758 = (1 * 10 3 ) + (7 * 10 2 ) + (5 * 10 1 ) + (8 * 10 0 ) = = =
30 O Sistema Binário Pelo fato do microcomputador ser constituído de componentes eletrônicos digitais, torna-se necessário o uso de um sistema numérico com 2 dígitos: o sistema binário. O sistema binário, ou de base 2, funciona de maneira análoga ao decimal, porém com apenas dois dígitos, 0 e 1. Neste caso, o dígito 0 é representado pela não presença de tensão elétrica enquanto o 1 pela presença de tensão elétrica. Os dígitos de um sistema binário são chamados de bit, de Binary digit (dígito binário). A representação de números em bases diferentes pode induzir à confusão, portanto colocase um número subscrito para indicar a base de numeração adotada. Por exemplo, e são números representados na base decimal; e são números representados na base binária. Conversão de base binária para decimal Para se converter um número na base binária para a base decimal deve-se escrever cada número que compõe (o bit), multiplicado pela base do sistema (base 2), elevado à posição que ocupa. Uma posição à esquerda da vírgula representa uma potência e à direita, uma potência negativa. A soma de cada multiplicação de cada dígito binário pelo valor das potências resulta no número real representado. Por exemplo: = (1 * 2 3 ) + ( 0 * 2 2 ) + ( 1 * 2 1 ) + ( 1 * 2 0 ) = = (1 * 2 2 ) + (0 * 2 1 ) + (0 * 2 0 ) =
31 Conversão de base decimal para binária Para converter números decimais em binários, deve-se tratar o quociente e a parte fracionaria separadamente. Por exemplo, para converter 5310 em binário faz-se: Operação Quociente Resto 53/ / / / /2 1 1 ½ 0 1 O resultado é a montagem do número à partir do último resto da divisão para o primeiro, ou seja, = O Sistema Hexadecimal Embora o sistema binário seja conveniente para os computadores, é excessivamente inconveniente para os seres humanos. Por isto a notação hexadecimal é preferida pelos profissionais de computação. A base decimal, embora mais compacta que a binária, é desconfortável devido à tediosa conversão entre as bases. Neste caso, adotou-se uma notação conhecida como hexadecimal, onde os dígitos binários são agrupados em conjuntos de quatro. A cada combinação possível de quatro dígitos binários é atribuído um símbolo. 31
32 0000 = = = = = = A 0011 = = B 0100 = = C 0101 = = D 0110 = = E 0111 = = F Conversão de base binária para hexadecimal Para converter números binários em hexadecimal deve-se agrupar os dígitos binários quatro a quatro, a partir da vírgula binária e substituir cada grupo pelo seu equivalente hexadecimal = 4FC 16 Conversão de base hexadecimal para binária Para converter hexadecimal em binário, deve-se substituir cada dígito hexadecimal pelo binário equivalente de quatro dígitos. DEA 16 =
33 UNIDADE 7 Operações Binárias Objetivo:Conhecer as binários. técnicas para efetuar operações matemáticas com os números As operações em base 2 podem ser feitas utilizando-se as mesmas técnicas empregadas na aritmética em base 10 - o raciocínio é exatamente o mesmo. O método apresentado é o mais fácil para os seres humanos resolverem problemas envolvendo números binários. Para os computadores, a adição e multiplicação são implementadas utilizando-se circuitos que são análogos às técnicas utilizadas pelos seres humanos. A operação de soma de dois números em base 2 é efetuada levando-se em conta que só há dois algarismos disponíveis (0 e 1). Veja todas as possibilidades: = = = = 0, e vai um ou Agora veja um exemplo da soma de dois números na base binária: : Transporte do Bit (vai 1)
34 Um mais um é igual a zero e vai um. Note que o resultado corresponde exatamente ao valor esperado da base. A subtração em base 2 é mais complexa por dispormos somente dos algarismos 0 e 1 e, com isso, 0 1, necessita de pedir emprestado, de um valor igual a base, no nosso caso 2, obtido do próximo algarismo diferente de zero à esquerda. Note que a operação é exatamente a mesma de uma subtração na base decimal. Exemplo: -1 ( vai um ) Overflow ou estouro do limite Nos exemplos acima não é levado em consideração qualquer limite ou quantidade máxima de algarismos permitida para um dado registrador. Quando uma operação aritmética resulta em um valor acima do limite máximo possível, trata-se do problema denominado overflow ou estouro do limite. Quando resultado de uma adição pode ter um número de bits maior que o da palavra utilizada esta condição é denominada overflow. Quando ocorre um overflow, o processador deve sinalizar este fato, para que o resultado não seja usado. Exemplo: Somar os números num registrador de 6 bits: 34
35 ( vai um ) 15 = ( ) 2 49 = ( ) 2 64 = ( ) 2 Neste caso o valor esperado (64) não pode ser representado em um registrador de 6 bits. 35
36 UNIDADE 8 Representação de Sinal Negativo Objetivo:Saber sobre Sinal e Magnitude; Complemnto a um. Todos os exemplos citados nas unidades anteriores se referenciam a números positivos. Os números positivos possuem sempre a mesma representação (conforme descrito nas unidades anteriores). Para representar números negativos, há três formas convencionadas: Sinal e Magnitude Na representação sinal e magnitude o bit mais à esquerda de um número binário é reservado para indicar se o número é positivo ou negativo e é conhecido como bit de sinal, onde, convencionalmente, 0 indica um número positivo e 1 um número negativo. O restante indica a magnitude do número (ou seu valor absoluto), como já vimos nas unidades anteriores. Figura 15 Representação de Números Inteiros em Sinal e Magnitude Por exemplo, para representar o número - 7 em um registrador de 6 bits: - 7 =
Resumão de Arquitetura de Computadores Página 1 de 7 Autor: Adonai Estrela Medrado (adonaimedrado@hotmail.com) Construído tendo como referência FERREIRA, Filipe de Castro. Módulo de arquitetura de computadores.