Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Arquitetura de Computadores-UAB, Notas de estudo de Matemática

Disciplina Arquitetura de Computadores

Tipologia: Notas de estudo

2010
Em oferta
30 Pontos
Discount

Oferta por tempo limitado


Compartilhado em 17/12/2010

leonardo-delgado-11
leonardo-delgado-11 🇧🇷

4.8

(12)

18 documentos

Pré-visualização parcial do texto

Baixe Arquitetura de Computadores-UAB e outras Notas de estudo em PDF para Matemática, somente na Docsity! UNIVERSIDADE ABERTA DO BRASIL Arquitetura de Computadores Mauro Lopes Carvalho Silva 5 Evolução e Arquitetura de Computadores 1. EVOLUÇÃO E ARQUITETURAS DOS COMPUTADORES Este capítulo mostra um breve histórico da evolução dos computadores. Também serão estudadas as arquiteturas que serviram de base para dá origem a maioria das arquiteturas dos computadores atuais. 1.1- Evolução dos computadores A evolução dos computadores tem sido caracterizada pelo aumento da velocidade dos processadores, pela diminuição do tamanho dos componentes, pelo aumento da capacidade de memória e pelo aumento da capacidade e da velocidade dos dispositivos de entrada e saída (E/S). Um dos fatores responsáveis pelo grande aumento da velocidade dos processadores é a diminuição do tamanho dos componentes dos microprocessadores; isso acarreta a redução da distância entre os componen- tes e, consequentemente, o aumento da velocidade. Entretanto, os ganhos reais de velocidade obtidos nos úl- timos anos são devido, principalmente, a mudanças na organização do processador, incluindo o uso intensivo de pipeline1 e de técnicas de execução paralelas de instruções2. É comum classi car os computadores em geração, de acordo com a tecnologia básica de hardware empregada. Cada nova geração é caracterizada por computadores com maior velocidade, maior capacidade de memória e menor tamanho que os computadores da geração anterior. Nas subseções seguintes serão apre- sentadas as características e computadores que marcaram as principais gerações de computadores. 1.1.1- Computadores eletrônicos – 1ª Geração Essa geração é caracterizada pelo uso da tecnologia a válvula O Projeto ENIAC (Computador e integrador Numérico Eletrônico – Electronic Numerator, Integrator, Analyzer, and Computer), desenvolvido na Universidade da Pensilvânia entre 1943 e 1946 foi o primeiro com- putador eletrônico de propósito geral. O projeto foi uma resposta às necessidades dos Estados Unidos diante da guerra. O Laboratório de Pesquisas Balísticas do Exército Americano, órgão responsável por desenvolver tabelas de trajetória e alcance para as novas armas, vinha encontrando di culdades em obter essas tabelas com precisão e tempo hábil. Sem elas as novas armas de artilharia seriam inúteis. O Laboratório empregava mais de 200 pessoas que, utilizando calculadoras de mesa, resolviam as equações de balísticas. A preparação das tabelas para uma única arma consumia várias horas de trabalho de uma pessoa, até mesmo dias. Esse computador, desenvolvido por John W. Mauchly, J. Presper Eckert e equipe. Pesava cerca de 30 toneladas, ocupava o espaço de aproximadamente 140 metros quadrados, continha mais de 18 mil válvulas3 e apresentava um consumo de 140 quilowatts de energia elétrica. Essa máquina era muito mais rápida 1 Técnica de hardware na qual o ciclo de busca-decodi cação-execução de instruções é dividido em etapas processadas simultaneamente. Essas instruções são colocadas em uma  la de memória (dentro da CPU) onde aguardam o momento de serem executadas. Essa técnica é utilizada para acelerar a velocidade de operação da CPU, uma vez que a próxima instrução a ser executada está normalmente armazenada dentro da CPU e não precisa ser buscada da memória, normalmente muito mais lenta que a CPU. 2 Computação paralela é uma forma de computação em que vários cálculos são realizados simultaneamente, operando sob o princípio de que grandes problemas geralmente podem ser divididos em problemas menores, que então são resolvidos concorrentemente (em paralelo). 3 Válvula é um tubo de vidro do qual foi praticamente tirado todo o gás, criando um ambiente de vácuo, contendo eletrodos e grades metálicas, cuja  nalidade é controlar o  uxo de elétrons. As válvulas transformam sinais elétricos em zeros e uns. É um dispositivo que conduz corrente elétrica em um só sentido 6 Evolução e Arquitetura de Computadores que qualquer computador eletromecânico, sendo capaz de executar 5 mil adições por segundo. Dados podiam ser inseridos através de cartões perfurados, que também eram utilizados para saída. A máqui- na operava a 100 quilohertzs. Em Fevereiro de 1946, o ENIAC (Figura 1.1) foi revelado para o público, e no verão daquele mesmo ano foi oferecido o curso Theory and Techniques for Design of Electronic Computers, com aulas por Eckert, Mauchly, Stibitz, von Neumann, e Aiken, entre outros. Vários novos projetos surgiram a partir desse curso. Figura 1.1 - O ENIAC (preenchia esta sala) O ENIAC era uma máquina decimal e não uma máquina binária; ou seja, a representação dos números era feita na base decimal, a qual era utili zada também para a realização das operações aritméticas. A memória consistia em 20 acumuladores, cada um dos quais capazes de armazenar um número decimal de 10 dígitos. Os computadores eletrônicos, apesar de representar grande avanço em relação a seus similares eletromecânicos, apresentavam duas grandes limitações: baixa capacidade de memória e longo tempo de programação. A principal desvantagem do ENIAC era a programação manual através do ligamento e desligamento de chaves e conexão e desconexão de cabos, o que exigia dias de trabalho. O processo de programação poderia ser extremamente facilitado se o programa pudesse ser representado de maneira adequada, de modo que fosse armazenado na memória, juntamente com os dados. Assim, o computador poderia obter as instruções diretamente, a partir da memória, e um programa poderia ser carregado ou modi cado simplesmente atri- buindo valores a posições de memória. O marco para quebrar essa barreira foi a concepção do conceito de programa armazenado, associada ao projeto EDVAC (Computador Variável Discreto Eletrônico – Eletronic Discrete Variable Automatic Computer), um sucessor do ENIAC com “ampla” capacidade de memória e que utilizava aritmética binária. A construção do EDVAC foi concluída em 1952, com cerca de 4000 válvulas, 10000 diodos a cristal, e 1024 palavras de 44 bits em memória com uma velocidade de relógio de 1 Mega Hertz. Atribui-se normalmente a autoria do conceito de programa armazenado a von Neumann, exclusiva- mente. O motivo é que von Neumann escreveu um relatório de 101 páginas sobre o projeto EDVAC, em junho de 1945, onde o conceito é formalmente descrito pela primeira vez. Embora o EDVAC tenha sido concluído apenas em 1952, algumas sugestões sobre o conceito de progra- ma armazenado foram apresentadas durante a escola de verão do ENIAC. Isso permitiu que alguns participan- tes dessa escola, trabalhando em projetos mais modestos, viessem a construir computadores com programa 7 Evolução e Arquitetura de Computadores armazenado antes da conclusão do EDVAC. Tais máquinas incluem: • Manchester Baby Machine, da Universidade de Manchester (Inglaterra), de junho de 1948, por M. Newman e F.C.Williams; • EDSAC (Electronic Delay Storage Automatic Calculator), da Universidade de Cambridge (Inglaterra), de maio de 1949, por Maurice Wilkes; • BINAC (Binary Automatic Computer), da Eckert-Mauchly Computer Corporation (EMCC), operacional em Setembro de 1949; • UNIVAC (Universal Automatic Computer), da Remington Rand Co. (que incorporou a EMCC), com a primeira unidade operacional em março de 1951; • Whirlwind, do MIT por Jay Forrester, projetado como o primeiro computador para aplicações tempo- real. O Whirlwind tornou-se a base para projetos de minicomputadores; • IBM 701, voltado para aplicações cientí cas, foi o primeiro computador eletrônico da IBM (dezembro 1952); • IBM 650 Magnetic Drum Computer, apresentado como o modelo barato da IBM, anunciado em 1953. Essa máquina foi a base para o modelo IBM 1401 (transistorizado, anúncio em outubro de 1959, entrega no início de 1960). 1.1.2 - Computadores transistorizados – 2ª Geração A primeira mudança nos computadores veio com a substituição da válvula pelo transistor. O transistor é menor, mais barato e dissipa menos calor do que a válvula e, assim como uma válvula, também pode ser utilizado para a construção de computadores. Ao contrário da válvula, que requer o uso de  os, placas de metal, cápsula de vidro e vácuo, o transistor é um dispositivo de estado sólido feito de silício. O transistor foi desenvolvido no Bell Labs em 1947, e iniciou uma revolução na indústria eletrônica nos anos 50. Entretanto, apenas no  nal da década de 50, computadores totalmente transistorizados tornaram-se comercialmente disponíveis. Os computadores dessa geração tornaram-se con áveis o su ciente para serem fabricados e vendidos para clientes com a expectativa de que continuariam a funcionar por tempo su ciente para realizar algum tra- balho útil. Essas máquinas eram guardadas em salas especiais com ar condicionado. Somente grandes corpo- rações ou importantes órgãos do governo ou universidades podiam arcar com seu preço (na casa dos milhões de dólares). Sem sistema operacional muito tempo era perdido entre o término de uma tarefa e o início de outra. Quando em execução, uma tarefa detinha todo o controle da máquina. As funções de um Sistema Operacional de primeira geração evoluíram da necessidade de liberar o programador dos aspectos físicos da máquina. A série IBM7000 marcou a entrada da IBM no mercado de computadores transistorizados. Uma das ca- racterísticas inovadoras nesses produtos era a utilização de processadores de entrada e saída (I/O Processors). As características genéricas destes primeiros computadores transistorizados incluíam memórias a núcleo de ferrite e tambores magnéticos, linguagens de programação de alto nível, o FORTRAN, e o conceito de sistemas de computadores. O desenvolvimento de várias dessas máquinas contribuiu para a organização do sistema que hoje es- tão presentes em muitos computadores. Memória virtual foi introduzida no sistema Atlas (Inglaterra, 1962); o conceito de uma família de sistemas com periféricos compatíveis foi introduzido com o IBM System360 (1964). 10 Evolução e Arquitetura de Computadores A CPU (unidade central de processamento), por sua vez, tem três blocos principais: unidade de controle (UC), unidade lógico-aritmética (ALU) e registradores, incluindo-se aí um registrador contador de programa (PC) que indica a posição da instrução a executar. São características das máquinas von Neumann a utilização do conceito de programa armazenado, a execução seqüencial de instruções e a existência de um caminho único entre memória e unidade de controle (Figura 1.3). Figura 1.3- Arquitetura de máq uinas von Neumann. Durante sua operação, a execução de um programa é uma seqüência de ciclos de máquina von Neu- mann, compostos 2 subciclos: 1. Busca da instrução (fetch): transfere instrução da posição de memória apontada por PC para a CPU. 2. Execução da instrução: a unidade de controle decodi ca a instrução e gerencia os passos para sua execução pela ALU. O computador IAS tinha um total de 21 instruções que podem ser agrupadas como a seguir: • Transferência de dados: os dados são transferidos entre a memória e os registradores da ULA ou entre dois registradores da ULA. • Desvio incondicional: normalmente a unidade de controle executa as instruções na sequência em que se encontram na memória. Essa sequencia de instruções pode ser alterada por uma instrução de desvio. Isto é usado para executar sequências de instruções repetidamente. • Desvio condicional: o desvio é efetuado dependendo do teste de uma condição, o que permite a introdução de pontos de decisão. • Aritmética: operações executadas pela ULA. • Alteração de endereço: possibilita calcular endereços, utilizando a ULA, para então inseri-los em instruções armazenadas na memória. Isto permite ao programa uma considerável  exibilidade de endereçamento. 11 Evolução e Arquitetura de Computadores 2. Problemas com a Arquitetura de Von Neumann: • Há apenas um barramento de dados e um de endereço. • As Instruções e os dados ocupam o mesmo endereçamento de memória. • As Instruções e os dados trafegam pelo mesmo barramento (barramento de Dados). A UNIDADE CENTRAL DE PROCESSAMENTO - CPU 2.1 - Estrutura e funcionamento da CPU Um equívoco ocorre ao chamar o gabinete do microcomputador, seja ele em formato vertical ou hori- zontal, de CPU. O mais correto é chamá-lo mesmo de gabinete. A sigla CPU vem do inglês Central Prossessing Unit – Unidade Central de Processamento, para designar o componente ou o conjunto de componentes do computador responsável pela execução das instruções dos programas. Nas máquinas de primeira e segunda geração, as CPUs eram implementadas em circuitos de grandes dimensões, utilizando milhares de válvulas ou transistores. A partir dos anos 70, com o aparecimento do circui- to integrado, as CPUs puderam ser implementadas completamente num chip, denominado a partir de então de microprocessador, nome até hoje utilizado e que incorpora, em sua família, exemplares como o Pentium e o Power PC entre outros menos populares, mas nem por isso menos poderosos. Para entender a organização da CPU, devemos considerar as ações que ela deve executar: Busca de instrução: a CPU lê uma instrução da memória. Interpretação de instrução: a instrução é decodi cada para determinar a ação requerida. Busca de dados: a execução de uma instrução pode requerer leitura de dados da memória ou de um módulo de E/S. Processamento de dados: a execução de uma instrução pode requerer efetuar uma operação aritmé- tica ou lógica sobre os dados. Escrita de dados: os resultados da execução podem requerer escrever dados na memória ou em um módulo de E/S. 12 Evolução e Arquitetura de Computadores Figura 2.1- Estrutura interna da CPU. Na maior parte dos estudos dos microprocessadores, encontra-se uma divisão clássica de sua estrutura interna co nsiderando três grandes unidades (como pode ser visualizado na Figura 2.1): • Unidade Lógica e Aritmética ou ALU (Aritmethic and Logic Unit), que assume todas as tarefas relacionadas às operações lógicas (Ou, E, negação, etc.) e aritméticas (adições, subtrações, etc.), ou seja, efetua o processamento de dados; • Unidade de Controle (UC) a responsável pela interpretação das instruções de máquina a serem executadas pelo computador, pela transferência de dados e instruções para dentro e para fora da CPU; a sincronização destas instruções. Esta unidade assume toda a tarefa de controle das ações a serem realizadas pelo computador, comandando todos os demais componentes de sua arquitetura, garantindo a correta execução dos programas e a utilização dos dados corretos nas operações que as manipulam. A UC contém as instruções da CPU para executar comandos. O conjunto de instruções, embutido nos circuitos da UC, é uma lista de todas as operações que a CPU é capaz de executar. Cada instrução é acompanhada de um microcódigo – instruções bem básicas que dizem à CPU como executar a instrução. Quando o computador roda um programa, ele procura os comandos que deve executar no conjunto de instruções da CPU e executa-os na ordem indicada. • Registradores: para executar operações, a CPU necessita armazenar alguns dados temporariamente. Ela deve manter a posição de memória da última instrução, para sabe aonde obter a próxima instrução e precisa também armazenar instruções e dados temporariamente, enquanto uma instrução está sendo executada. Em outras palavras, a CPU necessita de uma pequena área de armazenamento que é constituída de um conjunto de posições de armazenamento denominadas registradores. Os registradores podem ser: • De propósito geral: utilizado, por exemplo, para as operações de movimentação de dados e operações lógicas e aritméticas. • Especiais: são registradores com funções especí cas para determinados  ns. São exemplos de registradores especiais: • Acumulador (ACC): localizado na UC, é o principal registrador dentro de um processador, participando da maioria das operações lógicas e aritméticas, sendo em geral fonte de um dos operandos, e destino dos resultados das operações, além de participar das operações de entrada e saída de dados. O acumulador é um dos principais elementos que de nem o tamanho da palavra do computador - o tamanho da palavra é igual ao tamanho do acumulador. 15 Evolução e Arquitetura de Computadores Só para que se tenha um parâmetro, o Intel 4004 possuía 23000 transistores integrados no mesmo chip, enquanto dos chips da linha Pentium abrigam cerca de 6 milhões de transistores. 2.3 - Coprocessador aritmético e memória cache A função do coprocessador aritmético é justamente auxiliar o processador principal no cálculo de fun- ções complexas, cada vez mais utilizadas, principalmente em jogos. É como um matemático pro ssional que ajuda o processador a resolver os problemas mais complexos, que ele demoraria muito para resolver sozinho. Até o 386, o coprocessador era apenas um acessório que podia ser comprado à parte e instalado num encaixe apropriado da placa mãe, sendo que cada modelo de processador possuía um modelo equivalente de coprocessador. O problema nesta estratégia é que como poucos usuários equipavam seus micros com co- processadores aritméticos, a produção destes chips era baixa, e consequentemente os preços eram altíssimos, chegando ao ponto de em alguns casos o coprocessador custar mais caro que o processador principal. Com o aumento do número de aplicativos que necessitavam do coprocessador, sua incorporação ao processador principal a partir do 486DX foi um passo natural. Com isso, resolveu-se também o problema do custo de pro- dução dos coprocessadores, barateando o conjunto. Atualmente, o desempenho do coprocessador determina o desempenho do micro em jogos e aplicati- vos grá cos em geral, justamente as aplicações onde os processadores atuais são mais exigidos. O desempe- nho do coprocessador é uma característica que varia muito entre os processadores atuais. Enquanto os processadores tornaram-se quase 10 mil vezes mais rápidos desde o 8088 (o processador usado no XT), a memória RAM, sua principal ferramenta de trabalho, pouco evoluiu em performance. Quando foram lançados os processadores 386, percebeu-se que as memórias não eram mais capazes de acompanhar o processador em velocidade, fazendo com que muitas vezes ele tivesse que  car “esperando” os dados serem liberados pela memória RAM para poder concluir suas tarefas, perdendo muito em desempenho. Se na época do 386 a velocidade das memórias já era um fator limitante, imagine o quanto este proble- ma não atrapalharia o desempenho dos processadores que temos atualmente. Para solucionar este problema, começou a ser usada a memória cache, um tipo ultra-rápido de memória que serve para armazenar os dados mais frequentemente usados pelo processador, evitando na maioria das vezes que ele tenha que recorrer à comparativamente lenta memória RAM. Sem ela, o desempenho do sistema  cará limitado à velocidade da memória, podendo cair em até 95%!. São usados dois tipos de cache, chamados de cache primário, ou cache L1 (level 1), e cache secundário, ou cache L2 (level 2). Veja mais detalhes sobre memória cachê na seção 3.1.2. 2.4 - Modo Real x Modo Protegido Todos os processadores atuais podem alternar entre o modo real e o modo protegido livremente, sem- pre que necessário. No modo real, rodamos o MS-DOS e outros aplicativos de modo real mais antigos, enquan- to no modo protegido rodamos o Windows e seus programas. Com certeza, alguma vez ao tentar rodar um programa antigo, você já se deparou com uma enigmática mensagem de falta de memória, apesar dos manuais do programa dizer que ele precisa apenas de 500 ou 600 KB de memória e você ter instalado bem mais do que isso. Estas mensagens surgem por que estes programas rodam com o processador operando em modo real onde, como o 8086, ele é capaz de reconhecer apenas o primeiro Megabyte da memória RAM. Este primeiro Megabyte por sua vez, é subdividido em dois blocos, cha- mados de memória convencional e memória estendida. A memória convencional corresponde aos primeiros 640 Kbytes da memória, e é a área de memória usa- da pelos programas que operam em modo real. Os 384 Kbytes restantes são chamados de memória superior, e são reservados para armazenar uma cópia do BIOS, que passa a ser executado mais rapidamente, já que a memória RAM é muito mais rápida do que o chip de memória ROM ou Flash onde ele é originalmente armaze- 16 Evolução e Arquitetura de Computadores nado. Esta cópia do BIOS é chamada de “Shadow”, ou sombra, e serve para aumentar o desempenho geral do sistema. A memória superior também é usada para armazenar sombras dos BIOS de outros dispositivos, como placas de vídeo, aumentando também a velocidade de operação destes periféricos. Apesar de existirem 640 Kbytes de memória convencional, pronta para ser usada por qualquer progra- ma que opere em modo real, nem toda esta memória  ca disponível, já que parte dela é usada pelo MS-DOS e drivers de dispositivos de modo real. É possível liberar mais memória convencional, editando os arquivos de inicialização do DOS, conseguindo assim rodar estes programas. Quando o computador é ligado, o processador está operando em modo real. Quem dá o comando para que ele mude para o modo protegido é o sistema operacional. No caso do Windows, este comando é dado durante o carregamento do sistema. Em modo protegido, o processador é capaz de reconhecer toda a RAM instalada no sistema, além de incorporar recursos como a multitarefa e a memória virtual em disco. É neste modo que usamos a interface grá ca do Windows e rodamos seus aplicativos. O modo protegido traz basicamente três novos recursos: memória virtual, multitarefa, proteção de me- mória. 2.4.1 Memória Virtual A capacidade de trabalhar com vários aplicativos ao mesmo tempo (multitarefa) é realmente muito útil, mas esta característica traz um pequeno problema: abrindo vários aplicativos sucessivamente, logo a memória RAM do sistema se esgota. Para corrigir este problema, o modo protegido traz também a Memória Virtual A memória virtual, que permite criar um arquivo temporário no disco rígido, chamado de Swap File, ou arquivo de troca, que funciona como uma extensão da memória RAM, permitindo abrir quantos aplicativos forem necessários, até que o espaço do disco rígido se esgote. Por exemplo, só o Windows 2000 Professional, junto com os serviços básicos ocupa cerca de 40 MB de memória. Se você abrir o Word 97, serão necessários mais 10 Megabytes, um total de quase 50 MB. Caso o micro em questão possua apenas 32 MB de memória, seria criado um arquivo temporário de 18 MB no disco rígido, que armazenaria os dados que não couberam na memória RAM. O problema em usar memória virtual é que o disco rígido é centenas de vezes mais lento do que a me- mória RAM. Um disco rígido razoável possui um tempo de acesso em torno de 10 milessegundos (milésimos de segundo) enquanto um módulo de memória PC-100 possui um tempo de acesso inferior a 10 nanossegundos (bilionésimos de segundo), ou seja, um tempo de acesso um milhão de vezes menor. Em termos de taxa de transferência, novamente temos um contraste marcante: 800 MB para o módulo de memória e de 5 a 20 MB (dependendo do modelo) para o disco rígido. No Windows 3.x, era necessário reservar uma quantidade espaço do disco rígido para a memória virtual, quantidade que podia ser con gurada livremente através do Painel de Controle. O problema é que este espaço  cava indisponível. Se você possuísse um disco de 800 MB, e reservasse 200 para a memória virtual,  caria com apenas 600 MB para instalar programas e guardar arquivos. Se por outro lado, você reservasse pouco espaço para a memória virtual,  caria com pouca memória para abrir vários programas e trabalhar com arquivos gran- des. A partir do Windows 95 este problema foi resolvido com a adoção de um arquivo de troca dinâmico, que vai aumentando ou diminuindo de tamanho conforme a necessidade de memória, evitando o desperdício de espaço em disco que tínhamos no Windows 3.x. A partir do Windows 95, existe também uma administração mais racional dos recursos do sistema, movendo os arquivos mais importantes, acessados com mais frequência para memória RAM (ou memória cache, dependendo da importância do arquivo), e deixando apenas arquivos 17 Evolução e Arquitetura de Computadores usados mais raramente no arquivo de troca. Esta simples medida diminui bastante a perda de desempenho causada pelo uso da memória virtual. 2.4.2 - Multitarefa Multitarefa signi ca executar mais de uma tarefa de cada vez. Do ponto de vista de um computador este processo é relativamente simples. Todos os aplicativos são carregados na memória e o processador passa a executar algumas instruções de cada aplicativo por vez. Como o processador é capaz de executar vários mi- lhões de instruções por segundo, esta troca é feita de maneira transparente, como se os aplicativos estivessem realmente sendo executados ao mesmo tempo. Enquanto o processador dá atenção para um aplicativo, todos os demais  cam paralisados, esperando sua vez. 2.4.3 -Memória Protegida Usando a multitarefa, quase sempre teremos vários aplicativos carregados na memória, seja na memó- ria RAM ou no arquivo de troca. Se não houvesse nenhum controle por parte do processador, um aplicativo po- deria expandir sua área de memória, invadindo áreas de outros aplicativos e causando travamentos no micro. Um editor de imagens, por exemplo, precisa ocupar mais memória conforme as imagens vão sendo abertas ou criadas. Sem nenhuma orientação por parte do processador, simplesmente seriam ocupadas as áreas adjacentes, que poderiam tanto estar vazias, quanto estar ocupadas pelo processador de textos, por exemplo. Para colocar ordem na casa, foi desenvolvido o recurso de proteção de memória, que consiste no pro- cessador isolar a área de memória ocupada por cada aplicativo, impedindo que ele ocupe outras áreas ao seu bel prazer. Se, por acaso, o programa precisar de mais memória, o próprio processador irá procurar uma área vazia de memória e ordenar ao aplicativo que ocupe a área reservada. 2.5 - Clock Clock é um sinal usado para sincronizar coisas dentro do computador. Observe a Figura 2.3, onde mos- tramos um típico sinal de clock: é uma onda quadrada passando de “0” a “1” a uma taxa  xa. Na Figura 2.3 você pode ver três ciclos de clock (“pulsos”) completos. O início de cada ciclo é quando o sinal de clock passa de “0” a “1”; nós marcamos isso com uma seta. O sinal de clock é medido em uma unidade chamada Hertz (Hz), que é o número de ciclos de clock por segundo. Um clock de 100 MHz signi ca que em um segundo existem 100 milhões de ciclos de clock. Figura 2.3 - Sinal de clock No computador, todas as medidas de tempo são feitas em termos de ciclos de clock. Por exemplo, uma memória RAM com l atência “5” signi ca que vai levar cinco ciclos de clock completos para começar a transferência de dados. Dentro da CPU, todas as instruções precisam de um certo número de ciclos de clock para serem executadas. Por exemplo, uma determinada instrução pode levar sete ciclos de clock para ser completamente executada. No que diz respeito ao processador, o interessante é que ele sabe quantos ciclos de clock cada instrução vai demorar, porque ele tem uma tabela que lista essas informações. Então se há duas instruções para serem executadas e ele sabe que a primeira vai levar sete ciclos de clock para ser executada, ele vai automaticamente começar a execução da próxima instrução no 8º pulso de clock. É claro que esta é uma explicação genérica 20 Evolução e Arquitetura de Computadores • S1: Unidade de busca de instrução; • S2: Unidade de decodi cação de instrução; • S3: Unidade de busca de operando; • S4: Unidade de execução de instrução; • S5: Unidade de gravação. Figura 2.5 – Pipeline de cinco estágios executando 9 instruções Um pipeline de cinco estágios, conforme Figura 2.5, pode reduzir o tempo de execução de 9 instruções de 45 para 13 unidades de tempo. Suponhamos que o tempo de ciclo desta máquina é de 2 ns (nano segun- dos), sendo assim uma instrução levaria 10 ns para percorrer todos os 5 estági os do pipeline. Como uma ins- trução demora 10 ns, parece máquina poderia funcionar em 100 MIPS (milhões de instruções por segundo). Como a cada 2 ns uma instrução é concluída, temos então uma velocidade real de processamento de 500 MIPS (tempo do ciclo X quantidade de estágios que executam simultaneamente). São características dos pipelines de instrução: • O tempo do ciclo do relógio do processador deve ser igual ou maior que o tempo de execução do estágio mais lento do “pipeline”. • Deve-se procurar dividir a execução da instrução em estágios com o mesmo tempo. • O pipeline deve ser mantido sempre “cheio” para que o desempenho máximo seja alcançado. • De um modo geral, com o uso do pipeline, cada instrução ainda leva o mesmo tempo para ser executada. • Algumas instruções, contudo, podem ter o seu tempo de execução aumentado, pois atravessam estágios em que não realizam nenhuma operação útil. • Problemas no uso de pipelines 21 Evolução e Arquitetura de Computadores • Estágios podem ter tempos de execução diferentes • O sistema de memória é incapaz de manter o  uxo de instruções no pipeline • Con itos estruturais: pode haver acessos simultâneos à memória feitos por 2 ou mais estágios • Dependências de dados: as instruções dependem de resultados de instruções anteriores. • Dependências de controle: a próxima instrução não está no endereço subseqüente ao da instrução anterior. Tempo de ciclo Ʈ(tau) de uma pipeline Ʈm: atraso máximo de estágio (atraso por meio do estágio de maior atraso); k: número de estágio da pipeline de instrução; d: tempo necessário para propagar sinais e dados de um estágio para o próximo; O tempo de atraso d é equivalente ao pulso de um relógio e Ʈm>>d. O tempo total Tk requerido para executar as n instruções, sem desvio, é: Tk= [k + (n-1)] Ʈ Aplicando à Figura 2.4, temos: Tk =[5+(9-1)] = 13. 2.7 - Arquiteturas CISC e RISC Quando um novo microprocessador é criado, aumenta-se o seu conjunto de instruções, para que se torne mais poderoso. Por outro lado, quanto mais instruções o microprocessador contém, mais lento ele  cará, pois será maior sua tabela geral onde estão listados todos os tipos de instrução que o processador pode executar (conjunto de instruções) e a procura de uma determinada instrução e a sua efetiva execução dentro do micro-código demora mais tempo para  nalizar. Quando uma instrução é dada ao microprocessador, uma parte existente dentro dele – chamada deco- di cador de instruções – trata de veri car se aquela é válida (conferindo conjunto de instruções) e, em caso po- sitivo, ele executa o subprograma referente a tal instrução dentro do micro-código (área do microprocessador encarregado por armazenar pequenos programas). Microprocessadores com essas características são denomi- nadas CISC - Complex Instruction Set Computer - Computação utilizando um conjunto Complexo de instruções. Com o aumento do conjunto de instruções e do micro-código, o processador  ca  sicamente maior e mais lento e novos recursos de aumento de desempenho devem ser criados para ultrapassar esta lentidão. Para compensar essa demora, novos recursos (como o cache de memória, integração dos circuitos de apoio dentro do microprocessador, entre outros) são utilizados para aumento de desempenho. Surpreendentemente, apesar de existir um conjunto de instruções grande, apenas 20% delas são usa- das por programas e sistemas operacionais. 22 Evolução e Arquitetura de Computadores Com isso, surgiu uma nova idéia: a construção de microprocessadores com um conjunto reduzido de instruções e a sua padronização (instruções CISC não são padronizadas), a completa eliminação do decodi ca- dor de instruções e, principalmente, do micro-código. Microprocessadores construídos com a idéia acima mencionada são classi cados como RISC (Reduced Instruction Set Computing – Computação utilizando um conjunto Reduzido de instruções). No entanto micro- processadores RISC são incompatíveis com os CISC. Então para que sejam compatíveis foi utilizada uma arqui- tetura híbrida CISC/RISC, que consiste em adicionar um decodi cador CISC na entrada do núcleo RISC. Ao contrário dos complexos CISC, os processadores RISC são capazes de executar apenas algumas poucas instruções simples. Justamente por isso, os chips baseados nesta arquitetura são mais simples e muito mais baratos. É indiscutível que em instruções complexas os processadores CISC saem-se melhor. Por isso, ao invés da vitória de uma das duas tecnologias, atualmente vemos processadores híbridos, que são essencialmente processadores CISC, mas incorporam muitos recursos encontrados nos processadores RISC (ou vice-versa). Filoso a da arquitetura RISC: transferir complexidade das operações para software, mantendo em hardware apenas as operações primitiva Por questões de Marketing, muitos fabricantes ainda vendem seus chips, como sendo “Processadores RISC”, porém não existe praticamente nenhum processador atualmente que siga estritamente uma das duas  loso as. Tanto processadores da família x86, como o Pentium II, Pentium III e AMD Athlon, quanto proces- sadores supostamente RISC, como o MIPS R10000 e o HP PA-8000, ou mesmo o G4, utilizado nos Macintoshs misturam características das duas arquiteturas, por simples questão de desempenho. Examinando de um ponto de vista um pouco mais prático, a vantagem de uma arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores, que já dispõem de praticamente todas as instruções que serão usadas em seus programas. No caso de um chip estritamente RISC, o programador já teria um pouco mais de trabalho, pois como disporia apenas de instru- ções simples, teria sempre que combinar várias instruções sempre que precisasse executar alguma tarefa mais complexa. Seria mais ou menos como se você tivesse duas pessoas, uma utilizando uma calculadora comum, e outra utilizando uma calculadora cientí ca. Enquanto estivessem sendo resolvidos apenas cálculos simples, de soma, subtração, etc. quem estivesse com a calculadora simples poderia até se sair melhor, mas ao executar cálculos mais complicados, a pessoa com a calculadora cientí ca disporia de mais recursos. Nos chips atuais, que são na verdade misturas das duas arquiteturas, juntamos as duas coisas. Interna- mente, o processador processa apenas instruções simples. Estas instruções internas variam de processador para processador, são como uma luva, que se adapta ao projeto do chip. As instruções internas de um K6 são diferentes das de um Pentium por exemplo. Sobre estas instruções internas, temos um circuito decodi cador, que converte as instruções complexas utilizadas pelos programas em várias instruções simples que podem ser entendidas pelo processador. Estas instruções complexas são iguais em todos os processadores usados em micros PC. É isso que permite que um Athlon e um Pentium III sejam compatíveis entre si. O conjunto básico de instruções usadas em micros PC é chamado de conjunto x86. Este conjunto é composto por um total de 187 instruções, que são as utilizadas por todos os programas. Além deste conjunto principal, alguns processadores trazem também instruções alternativas, que permitem aos programas execu- tar algumas tarefas mais rapidamente do que seria possível usando as instruções x86 padrão. Alguns exemplos de conjuntos alternativos de instruções são o MMX (usado a partir do Pentium MMX), o 3D-NOW! (usado pelos processadores da AMD, a partir do K6-2), e o SSE (suportado pelo Pentium III) 25 Evolução e Arquitetura de Computadores Tabela 3.1 – características fundamentais de sistemas de memória de computadores Localização Desempenho Processador Tempo de acesso Interna (principal) Tempo d e ciclo Externa (secundária) Taxa de transferência Capacidade Tecnologia Tamanho da palavra De semicondutores Número de palavras Magnética Unidade de transferência Ótica Palavra Magneto-ótica Bloco Características físicas Método de acesso Volátil/não volátil Seqüencial Apagável/não apagável Direto Organização Aleatório Associativo 3.1- Memórias primárias As memórias de armazenamento primário, também denominadas memórias internas são pequenas áreas de armazenamento que estão incorporadas ao hardware do computador. Fisicamente, essas memórias consistem em alguns chips na placa-mãe ou em pequenas placas de circuitos ligadas à placa-mãe ou estão localizadas dentro do processador. São memórias que o processador pode endereçar diretamente, sem as quais o computador não pode funcionar. Estas fornecem geralmente uma ponte para as secundárias, mas a sua função principal é a de conter a informação necessária para o processador num determinado momento; esta informação pode ser, por exemplo, os programas em execução. Alguns chips de memória retêm os dados neles armazenados, mesmo quando o computador é desli- gado, essa memória é chamada de não-volátil. Outros chips perdem seu conteúdo quando o computador é desligado, essa memória é chamada de volátil. Entre as memórias primárias estão: RAM (volátil), ROM (não-volátil), CACHE, memória CMOS e registra- dores. 3.1.1 - Memória RAM A memória RAM (Random Access Memory) é a principal memória na qual são gravados os dados para o processamento. A RAM é uma memória volátil. A tecnologia das memórias RAM pode ser dividida em estática (SRAM) e dinâmica (DRAM). Uma me- mória RAM dinâmica é feita de células que armazenam dados com carga de capacitores. A presença ou ausên- cia de carga em um capacitor é interpretada como representação do dígito binário 1 ou 0. Como um capacitor tem tendência natural para se descarregar, a RAM dinâmica requer uma regeneração de carga periódica para manter os dados armazenados. Na memória RAM estática, os valores binários são armazenados usando con-  gurações tradicionais de  ip- ops 4 com portas lógicas. A memória RAM estática mantém seus dados enquanto houver fornecimento de energia. Tanto a memória RAM estática quanto a dinâmica são voláteis. A DRAM é mais simples e, portanto, me- nor do que a SDRAM. Dessa maneira, uma RAM dinâmica é mais densa (células menores implicam mais células por unidade de área) e mais barata do que uma RAM estática correspondente. Por outro lado, ela requer um circuito de regeneração. No caso de memórias de grande capacidade, o custo  xo do circuito de regeneração é compensado pelo custo menor das células da RAM dinâmica. Portanto, as RAMs dinâmicas tendem a ser mais 4 O  ip- op ou multivibrador biestável é um circuito digital pulsado capaz de servir como uma memória de um bit. 26 Evolução e Arquitetura de Computadores vantajosas quando a capacidade de memória requerida é maior. Uma observação  nal é que as RAMs estáticas são, em geral, mais rápidas do que as dinâmicas. O grande desenvolvimento ocorrido na área de software, particularmente no que diz respeito ao uso de interfaces grá cas e, mais recentemente, das aplicações multimídias, tem forçado os fabricantes de compo- nentes de computador a produzirem circuitos de memória cada vez mais poderosos. Em termos de hardware são pequenos pentes que são encaixados nos slots de memória das placas-mãe. A capacidade total de memória depende do pente e do número de slots na placa-mãe. A velocidade de funcionamento de uma memória é medida em Hz e seus múltiplos. Este valor está rela- cionado com a quantidade de blocos de dados que podem ser transferidos durante um segundo. Existem, no entanto algumas memórias RAM que podem efetuar duas transferências de dados no mesmo ciclo de relógio, duplicando a taxa de transferência de informação para a mesma freqüência de trabalho. A Figura 3.2 ilustra dois modelos distintos de memória RAM. Figura 3.2 - Memória DDR – OCZ e memória SDR – Value Selet, mostradas da esquerda para a direita 3.1.2 - Memória cache O processador é muito mais rápido d o que a memória RAM. Isso faz com que  que subutilizado quando ele precisa enviar muitos dados con secutivamente. Ou seja, durante grande parte do tempo não processa nada, apenas esperando que a memória  que pronta para enviar novamente os dados. Para fazer com que o processador não  que subutilizado quando envia muitos dados para RAM, é utili- zada uma mais rápida, chamada memória cache, que é outro tipo de memória, chamada de memória estática ou simplesmente SRAM (Static RAM). Um circuito controlador lê os dados da memória RAM e os copia para a memória cache. Se o processador precisar de alguns dados, estes estarão no cache ou na RAM. Com a utilização da memória cache, o computador  ca mais rápido, pois não há espera ao receber e enviar dados do processador com a RAM e vice-versa A memória cache é encontrada em dois tipos: • Memória cache L1 - Presente dentro do microprocessador ou cache interno. É dividida em duas partes, uma para dados outra para instruções. • Memória cache L2 - Presente na placa-mãe ou até dentro do processador, no caso de processadores mais novos. Quando é externo, o seu tamanho depende do chipset presente na placa-mãe. Sempre que o processador precisar ler dados, os procurará primeiro no cache L1. Caso o dado seja encontrado, o processador não perderá tempo, já que o cache primário funciona na mesma frequência que ele. Caso o dado não esteja no cache L1, então o próximo a ser indagado será o cache L2. Encontrando o que procura no cache secundário, o processador já perderá algum tempo, mas não tanto quanto perderia caso precisasse acessar diretamente a memória RAM. 27 Evolução e Arquitetura de Computadores Por outro lado, caso os dados não estejam em nenhum dos dois caches, não restará outra saída senão perder vários ciclos de processamento esperando que eles sejam entregues pela lenta memória RAM. Para exempli car, imagine que você estivesse escrevendo um e-mail e que precisasse de uma informação que você havia anotado em um papel. Se o papel estivesse sobre sua mesa, você poderia lê-lo sem perder tempo. Se estivesse dentro de uma gaveta da sua mesa, já seria necessário algum tempo para encontrá-lo enquanto se ele estivesse perdido em algum lugar de um enorme  chário do outro lado da sala, seria preciso um tempo enorme. Antigamente, era comum as placas mães virem com soquetes apropriados, que permitiam ao usuário adicionar mais memória cache caso quisesse. Os módulos adicionais, chamados de módulos COAST (cache on a stick) eram relativamente acessíveis, levando muita gente a fazer o upgrade. Entretanto, atualmente esta possibilidade não existe mais, pois a grande maioria dos processadores já trazem o cache L2 integrado, não permitindo qualquer modi cação, já que não dá para abrir o processador e soldar mais cache. Mesmo no caso de processadores que ainda usam cache embutido na placa mãe, como o K6-2, não existe mais o encaixe para adicionar mais cache. Ou seja, atualmente a quantidade de cache que você deseja no processador ou placa mãe deve ser decidida antes da compra, baseado nas opções disponíveis. Uma vez adquiridos o processador e a placa mãe não será possível fazer qualquer alteração. Sempre que um novo processador é desenvolvido, é preciso desenvolver também um tipo mais rápido de memória cache para acompanhá-lo. Como este tipo de memória é extremamente caro (chega a ser algumas centenas de vezes mais cara que a memória RAM convencional) usa-se apenas uma pequena quantidade dela. 3.1.3 - Memória ROM A memória ROM (acrônimo para a expressão inglesa Read-Only Memory) é um tipo de memória que per- mite apenas a leitura, ou seja, as suas informações são gravadas pelo fabricante uma única vez e após isso não podem ser alteradas ou apagadas, somente acessadas. São memórias cujo conteúdo é gravado permanente- mente. Uma memória ROM (Figura 3.3) propriamente dita tem o seu conteúdo gravado durante a fabricação. Atualmente, o termo Memória ROM é usado informalmente para indicar uma gama de tipos de memória que são usadas apenas para a leitura na operação principal de dispositivos eletrônicos digitais, mas possivelmente podem ser escritas por meio de mecanismos especiais. Os principais tipos de memória ROM são: PROM (Programmable Read-Only Memory): esse é um dos primeiros tipos de memória ROM. A gravação de dados neste tipo é realizada por meio de aparelhos que trabalham através de uma reação física com elementos elétricos. Uma vez que isso ocorre, os dados gravados na memória PROM não podem ser apagados ou alterados; EPROM (Erasable Programmable Read-Only Memory): as memórias EPROM têm como principal característica a capacidade de permitir que dados sejam regravados no dispositivo. Isso é feito com o auxílio de um componente que emite luz ultravioleta. Nesse processo, os dados gravados precisam ser apagados por completo. Somente depois disso é que uma nova gravação pode ser feita; EEPROM (Electrically-Erasable Programmable Read-Only Memory): este tipo de memória ROM também permite a regravação de dados, no entanto, ao contrário do que acontece com as memórias EPROM, os processos para apagar e gravar dados são feitos eletricamente, fazendo com que não seja necessário mover o dispositivo de seu lugar para um aparelho especial para que a regravação ocorra; EAROM (Electrically-Alterable Programmable Read-Only Memory): as memórias EAROM podem ser vistas como um tipo de EEPROM. Sua principal característica é o fato de que os dados gravados podem ser alterados aos poucos, razão pela qual esse tipo é geralmente utilizado em aplicações que exigem apenas reescrita parcial de informações; Flash: as memórias Flash também podem ser vistas como um tipo de EEPROM, no entanto, o processo de gravação (e regravação) é muito mais rápido. Além disso, memórias Flash são mais duráveis e podem guardar um volume elevado de dados; 30 Evolução e Arquitetura de Computadores computador onde são armazenadas as informações, ou seja, é a “memória permanente” propriamente dita (não confundir com “memória RAM”). É caracterizado como memória física, não-volátil, que é aquela na qual as informações não são perdidas quando o computador é desligado. Este sistema é necessário porque o conteúdo da memória RAM é apagado quando o computador é desligado. Desta forma, temos um meio de executar novamente programas e carregar arquivos contendo os dados da próxima vez em que o computador for ligado. Nos sistemas operacionais mais recentes, o disco rígido é também utilizado para expandir a memória RAM, através da gestão de memória virtual5. A Figura 3.5 mostra a parte interna de um HD. Note que há indicativos que descrevem os componentes mais importantes. Estes são detalhados logo abaixo: • Pratos e motor: esse é o componente que mais chama a atenção. Os pratos são os discos onde os dados são armazenados. Eles são feitos de alumínio (ou de um tipo de cristal) recoberto por um material magnético e por uma camada de material protetor. Quanto mais trabalhado for o material magnético (ou seja, quanto mais denso), maior é a capacidade de armazenamento do disco. Note que os HDs com grande capacidade contam com mais de um prato, um sobre o outro. Eles  cam posicionados sob um motor responsável por fazê-los girar; • Cabeça e braço: os HDs contam com um dispositivo muito pequeno chamado cabeça (ou cabeçote) de leitura e gravação. Trata-se de um item de tamanho reduzido que contém uma bobina que utiliza impulsos magnéticos para manipular as moléculas da superfície do disco, e assim gravar dados. Há uma cabeça para cada lado dos discos. Esse item é localizado na ponta de um dispositivo denominado braço, que tem a função de posicionar os cabeçotes sob a superfície dos pratos. Olhando por cima, tem-se a impressão de que a cabeça de leitura e gravação toca nos discos, mas isso não ocorre. Na verdade, a distância entre ambos é extremamente pequena. A “comunicação” ocorre por impulsos magnéticos; • Atuador: também chamado de voice coil, o atuador é o responsável por mover o braço sob a superfície dos pratos, e assim permitir que as cabeças façam o seu trabalho. Para que a movimentação ocorra, o atuador contém em seu interior uma bobina que é “induzida” por imãs. Figura 3.5 - Vista Interna do HD A superfície de gravação dos pratos é composta de materiais sensíveis ao magnetismo (geralmente, óxido de ferro). O cabeçote de leitura e gravação manipula as moléculas desse material através de seus pólos. Para isso, a polaridade das cabeças muda numa freqüência muito alta: quando está positiva, atrai o pólo nega- tivo das moléculas e vice-versa. De acordo com essa polaridade é que são gravados os bits (0 e 1). No processo de leitura de dados, o cabeçote simplesmente “lê” o campo magnético gerado pelas moléculas e gera uma 5 O sistema operacional através de um software especializado (memória virtual) cria a ”ilusão” ao usuário que a memória principal é do tamanho da memória secundária. A técnica de memória virtual realiza transferência de blocos de informação entre a memória primária e secundária automaticamente sem a intervenção do usuário comum. Assim, o tempo de acesso à memória principal aumenta um pouco mais, o usuário ganha em capacidade de armazenamento. 31 Evolução e Arquitetura de Computadores corrente elétrica correspondente, cuja variação é analisada pela controladora do HD para determinar os bits. Para armazenar e localizar dados em um HD, um dis positivo chamado controlador (ou controladora) se utiliza de informações conhecidas por número de trilhas, setores e cilindros. O conjunto dessas informações é denominado “geometria de disco”. No processo de fabricação do HD existe uma formatação (formatação pode ser entendida como mapeamento) que de ne a forma de armazenamento, dividindo cada disco em trilhas e setores. Os cilindros são trilhas concêntricas na superfície dos discos e estas trilhas são divididas em setores. Estes, por sua vez, são “pedaços” do HD. Observe na Figura 3.6 para entender melhor sua estrutura. Figura 3.6 - Trilha e Setores do HD Existem vários tipos de discos rígidos: IDE/ATA, Serial ATA, SCSI. ATA, um acrônimo para a expressão inglesa Advanced Technology Attachment, também conhecido como IDE (a Figura 3.7 ilustra um conector IDE na placa-mãe) ou Integrated Drive Electronics é um padrão para inter- ligar dispositivos de armazenamento, como discos rígidos e drives de CD-ROMs, no interior de computadores pessoais. A evolução do padrão fez com que fossem reunidas várias tecnologias antecessoras, como: (E)IDE - (Extended) Integrated Drive Electronics; ATAPI - Advanced Technology Attachment Packet Interface; UDMA - Ultra DMA. Figura 3.7 – Conector IDE em uma placa-mãe Serial ATA, SATA ou S-ATA (acrônimo para Serial Advanced Technology Attachment) é uma tecn ologia de transferência de dados entre um computador e dispositivos de armazenamento em massa como unidades de disco rígido e drives ópticos. É o sucessor da tecnologia ATA que foi renomeada para PATA (Parallel ATA) para se diferenciar de SATA. Diferentemente dos discos rígidos IDE, que transmitem os dados através de cabos de quarenta ou oi- tenta  os paralelos, o que resulta num cabo enorme, os discos rígidos SATA transferem os dados em série. Os cabos do tipo Serial ATA (Figura 3.8) são formados por dois pares de  os (um par para transmissão e outro par para recepção) usando transmissão diferencial, e mais três  os terra, totalizando sete  os , o que permite usar 32 Evolução e Arquitetura de Computadores cabos com menor diâmetro que não interferem na ventilação do gabinete. Fi gura 3.8 - Slot Serial ATA em uma placa-mãe e Cabo de alimentação para drives Serial ATA, vistos da esquerda para direita As principais vantagens sobre a interface do parallel ATA é uma maior rapidez na transferência dos da- dos (embora a taxa de transferência anunciada pelos fabricantes - 66 MB/s, 100 MB/s, 133 MB/s - raramente é alcançada); e o uso de cabos de conexão mais  nos que permitem um resfriamento mais e ciente do gabinete. SCSI (pronuncia-se “scuzi”), sigla de Small Computer System Interface, trata-se de uma tecnologia criada para acelerar a taxa de transferência de dados entre dispositivos de um computador, desde que tais periféricos sejam compatíveis com a tecnologia. Essa tecnologia permite ao usuário conectar uma larga gama de periféri- cos, tais como discos rígidos, unidades CD-ROM, impressoras e scanners. As vantagens do SCSI não se resumem apenas à questão da velocidade, mas também da compatibi- lidade e estabilidade. Sendo o processador o dispositivo mais rápido do computador, o uso do padrão SCSI permite que essa velocidade seja aproveitada e assim, aumentar de forma considerável o desempenho do computador. Essa interface é mais é voltada para o mercado de servidores de rede e raramente utilizada em computadores para usuários  nais. Existe também o HD externo que é simplesmente um HD portátil que você conecta ao computador apenas quando precisa. Para isso, pode-se usar, por exemplo, portas USB e até SATA externo, tudo depende do modelo que você escolher. O HD externo é útil para quando se tem grandes quantidades de dados para trans- portar ou para fazer backup (cópia de segurança de seus arquivos). Do contrário, é preferível utilizar pen drives, DVDs regraváveis ou outro dispositivo de armazenamento com melhor relação custo-benefício. Isso porque os HDs externos são mais caros e costumam ser pesados (exceto os modelos de tamanho reduzido). Além disso, devem ser transportados com cuidado, para evitar danos. 3.2.2 - Disquetes Os disquetes possuem a mesma estrutura de um disco rígido, tendo como diferenças o fato de serem removíveis e serem compostos de um único disco magnético. Os disquetes possuem vida útil que varia de 5 a 6 anos (pouco, se for comparado ao CD, que dura 20 anos). O disquete já foi considerado um dispositivo com grande capacidade de armazenamento, especialmen- te devido ao pequeno tamanho dos arquivos. Atualmente, devido ao tamanho cada vez maior dos arquivos e, devido à existência de mídias de armazenamento não-voláteis de maior capacidade, como zip drivers, cartões de memória CDs, DVDs; além de existir outras maneiras de guardar arquivos, como armazenamento distribuí- do em redes locais, e-mail e disco virtual, o disquete se tornou um utilitário obsoleto. A Figura 3.9 ilustra as partes que compõem um disquete. 35 Evolução e Arquitetura de Computadores USB de um computador. A velocidade de transferência de dados pode variar dependendo do tipo de entrada. Eles oferecem vantagens potenciais com relação a outros dispositivos de armazenamento portáteis, particularmente os disquetes. São mais compactos, rápidos, têm maior capacidade de armazenamento, são mais resistentes devido à ausência de peças móveis. Adicionalmente, tornou-se comum computadores sem drives de disquete. Portas USB por outro lado, estão disponíveis em praticamente todos os computadores pes- soais e notebooks. Os drives  ash utilizam o padrão USB, nativamente compatível com os principais sistemas operacionais modernos como Windows, Mac OS X, Linux, entre outros. Em condições ideais, as memórias  ash podem armazenar informação durante 10 anos. Para ter acesso aos dados armazenados no drive  ash, este deve estar conectado ao computador. O dri- ve  ca ativo apenas quando ligado à porta USB e obtém toda a energia necessária através da corrente elétrica fornecida pela conexão. Figura 3.11 – Pen drive 3.2.6 - Cartões de memória Cartão de memória ou cartão de memória  ash é um dispositivo de armazenamento de dados com memória  ash utilizado em videogames, câmeras digitais, telefones celulares, palms/PDAs, MP3 players, com- putadores e outros aparelhos eletrônicos. Podem ser regra vados várias vezes, não necessitam de eletricidade para manter os dados armazenados, são portáteis e suportam condições de uso e armazenamento mais rigo- rosos que outros dispositivos móveis. No mercado, há uma grande variedade de formatos de memória  ash, como pode ser visualizado na Figura 3.12. Figura 3.12 - Modelos diversos de cartões de memória em sentido horário a partir do topo: CompactFlash, xD-Picture Card, MultiMediaCard e Secure Digital Card. 36 Evolução e Arquitetura de Computadores PERIFÉRICOS DO COMPUTADOR Os dispositivos de entrada e os de saída a são também denominados periféricos do computador. Exis- tem também os dispositivos que podem s er utilizados tanto para a entrada como para a saída de dados: os dis- positivos de armazenamento (HD, disquete,  ta magnética), modems, placas de rede e telas sensíveis ao toque. 4.1 - Dispositivos de entrada Os periféricos de entrada são dispositivos que servem para a entrada de dados em um computador. Como exemplo, temos: teclado, mouse, canetas eletrônicas, telas sensíveis ao toque, entre outros. Os subitens seguintes irão detalhar alguns desses dispositivos. 4.1.1 - Teclado É usado para entrada de dados através da digitação. O teclado (Figura 4.1) é dividido em 3 partes: tecla- do alfanumérico (semelhante ao de uma máquina de escrever), teclado numérico (semelhante à uma calcula- dora) e teclado de controle (formado por um grupo de teclas, que isoladamente ou em conjunto com outras teclas, executam comandos ou funções especí cas, como as teclas <Shift>, <Ctrl>, <Alt>, entre outras). Figura 4.1 - Teclado 4.1.2 - Mouse Também conhecido como dispositivo apontador. Serve para apontar e selecionar uma das opções pos- síveis que aparecem na tela. Existem diversos tipos de mouse, mas o modelo mais comum tem o formato de um ratinho, por isso o nome em inglês: “mouse”. Como dispositivo apontador, também encontramos o track- ball, que é uma espécie de m ouse invertido, ou seja, ao invés de rolarmos o mouse pela mesa, simplesmente, giramos sua bolinha com a mão movimentando o cursor na tela; o track point, que é composto de um ponto no meio do teclado (geralmente em notebooks); o touch pad ou mouse de toque, onde ao movimentarmos o dedo sobre uma “pequena placa”, movimentamos o cursor na tela; e os mouses em forma de caneta que tem o mesmo formato de uma caneta, geralmente encontrado em palmtops. Figura 4.2 – Mouse ótico, trackBall e caneta eletrônica, vistos da esquerda para a direita O mouse é um dispositivo simples e o tipo mais comum tem uma bola sob a carcaça do mouse propria- 4. 37 Evolução e Arquitetura de Computadores mente dito. O mouse ótico não tem parte móvel alguma. Em vez da bola, ele tem um fotodetector que percebe o movimento do mouse sobre uma superfície. O movimento é transformado em informação que é enviada ao computador, como faz o mouse mecânico. 4.1.3 - Scanner Trata-se de um dispositivo que serve para transferir desenhos, fotos e textos para o computador. O scanner (Figura 4.3) pode ser de dois tipos: scanner de mão, o qual é parecido com um mouse bem grande e que devemos passar por cima do desenho/texto a ser transferido para o computador e scanner de mesa, muito parecido com uma fotocopiadora, onde devemos colocar o papel e abaixar a tampa para que o desenho seja então transferido para o computador. Figura 4.3 – Scanner . 4.1.4 - Leitor Ótico É um dispositivo que serve para evitar os enormes tempos gastos com digitação de dados. Ele é como um scanner, só que é utilizado, geralmente, para ler códigos de barra. O leitor de código de barras (Figura 4.4) converte um padrão de barras impressas nos produtos em in- formações sobre o produto por meio da emissão de raio de luz – freqüentemente um raio laser – que re ete a imagem do código de barra. Um detector sensível à luz identi ca a imagem do código de barra por intermédio das barras especiais em ambas as extremidades da imagem. Figura 4.4 – Leitor ótico 4.1.5 - Microfone Também é um dispositivo de entrada, pois através dele podemos gravar sons, transmitir a nossa voz pela internet ou mesmo “ditar” um texto para o computador, utilizando um dos programas de reconhecimento de voz. 4.2 - Dispositivos de saída As unidades de saída convertem impulsos elétricos, permitindo a saída de informações para meios ex- ternos e possibilitando sua visualização de uma m aneira que se torne compreensível para o usuário, ou seja, servem para que possamos obter os resultados dos dados processados pelo computador. Existem diversos periféricos de saída, vejam alguns deles nas subseções que seguem. 40 Evolução e Arquitetura de Computadores OUTROS COMPONENTES DO COMPUTADOR 5.1 - Barramentos Barramentos são basicamente um conjunto de sinais digitais com os quais o processador comunica-se com o seu exterior, ou seja, com a memória, chips da placa-mãe, periféricos. Um barramento do sistema con- tém, tipicamente, de 50 a 100 linhas distintas. Cada linha possui uma fun ção ou signi cado particular. Embora existam diferentes projetos de barramentos, as linhas de um barramento podem ser classi cadas em três gru- pos funcionais (Figura 5.1): Figura 5.1 – Esquema de interconexão de barramento Barramento de dados – linhas por onde circulam os dados. Contém 8,16 ou 32 linhas; o número de linhas é conhecido como largura do barramento de dados. A largura do barramento de dados constitui um parâmetro fundamental para o desempenho global do sistema Barramento de endereços – linhas por onde a informação de um dado endereço é fornecida. Por exemplo, quando o processador deseja ler uma palavra (8, 16 ou 32 bits) na memória, ele coloca o endereço da palavra desejada nas linhas de endereço. A largura do barramento de endereço determina a capacidade máxima da memória do sistema, quanto maior a largura do barramento de endereço, maior é o número de posições de memória que podem ser endereçadas. Barramento de controle – as linhas de controle são usadas para controlar o acesso e a utilização das linhas de dados e endereço. C omo as linhas de dados e endereço são compartilhadas por todos os componen- tes, deve existir uma maneira de controlar a sua utilização. No computador, normalmente, encontramos três tipos barramento: barramento local; barramento do sistema; barramento de expansão (veja Figura 5.2). 5. 41 Evolução e Arquitetura de Computadores F igura 5.2 – Arquitetura de barramento tradicional Barramento local: é o principal barramento do micro, e nele estão conectados os principais circuitos da placa-mãe, tais como: memória RAM, chipsets, processadores, memória cache. Barramento do sistema: barramento onde estão conectados os periféricos on board, ou seja, periféri- cos integrados á placa-mãe, como placa de som, vídeo, fax-modem e rede. Barramento de expansão: onde estão conectadas as placas de expansão como as placas de vídeo, fax modem, som, rede, IDE, e demais placas. Estas placas são conectadas ao barramento através de conectores denominados slots. Vamos conhecer alguns barramentos de expansão: barramento ISA (Figura 5.5), que apesar de não ser mais utilizado com freqüência, esteve presente na maior parte dos computadores, o barramento PCI (Figura 5.4) e o AGP (Figura 5.3), que é usado exclusivamente para vídeo. Para que os periféricos (placas em geral) pos- sam usar esses barramentos, é necessário que cada placa (de vídeo, de som, modem) seja compatível com um determinado tipo de barramento. Sendo assim, para que haja o uso do mesmo, é necessário encaixar a placa num conector presente na placa-mãe, conhecido por slot. Cada barramento possui uma forma de slot diferen- te, que será mostrado nas próximas subseções. 5.1.1- Barramento AGP O slot AGP (Accelerated Graphics Port) foi criado para otimizar a performance das placa de vídeo. A en- trada AGP só pode ser usada por placas de vídeo de aceleração 3D. Existem diferentes velocidades que uma placa AGP pode alcançar, tudo depende de qual a velocidade que a entrada AGP tem. Quando for comprar uma placa-mãe veja se ela consegue acompanhar a velocidade da placa de vídeo que você tem, ou vice-versa. Figura 5.3 – Slot de barramento AGP 42 Evolução e Arquitetura de Computadores 5.1.2 - Barramento PCI O b arramento PCI (Peripheral Component Interconnect) é geralmente usado para expansão. Esses slots são os mais usados e uma placa mãe sempre tem mais de 5 entradas PCI, algumas placas que são vendidas mais baratas geralmente aquelas combos com placa-mãe e processador embutido tem menos entradas PCI e às vezes nenhuma AGP, então antes de comprar uma boa placa-mãe é sempre bom ver esse tipo de informa- ção. Figura 5.4 – Slot de barramento PCI 5.1.3 - Barramento ISA Os slots ISA (Indus try Standard Architecture) são os que vieram antes dos slots PCI, mesmo assim ainda existem placas-mãe que são fabricadas com esses slots. Ela é bem mais lenta que a entrada PCI. Figura 5.5- Slot de barramento ISA 5.1.4 - Barramento USB Universal Serial Bus (USB) é um tipo de conexão Plug and Play que permite a conexão de periféricos sem a necessidade de desligar o computador. A Figura 5.6 ilustra um conector padrão USB. Antigamente instalar periféricos em um computador obrigava o usuário a abrir a máquina, o que para a maioria das pessoas era uma tarefa quase impossível pela quantidade de conexões internas, sem falar que na maioria das vezes era preciso con gurar jumpers 6 e interrupções IRQs 7, tarefa difícil até para profi ssionais da área. A proposta do padrão USB é substituir a in nidade de conectores diferentes empregados nos compu- tadores atuais. Uma rápida olhada em um micro típico revela não menos que cinco encaixes diferentes, entre portas seriais, paralelas, ligações para teclado, mouse, joystick e outros acessórios. 6 Jumper é uma ligação móvel entre dois pontos de um circuito eletrônico. É uma pequena peça plástica que contém um metal, responsável pela condução de eletricidade. São pequenos contatos elétricos, envolvidos por um encapsulamento plástico, que servem para programar opções de funcionamento de placas e dispositivos, no que diz respeito ao hardware. 7 Uma IRQ (abreviação para Interrupt Request) é a forma pela qual os componentes de hardware requisitam tempo computacional da CPU. Uma IRQ é a sinalização de um pedido de interrupção de hardware (o processador para de fazer o que está fazendo para atender o dispositivo que pediu a interrupção) 45 Evolução e Arquitetura de Computadores Exemplos de dispositivos seriais: mouse, trackball e dispositivos apontadores em geral; impressoras (ra- ramente); modems externos. Exemplos de dispositivos paralelos: u nidades óticas externas, impressoras (matriciais); plotters; zip dri- ve8. 5.2.2 - Portas PS/2 PS/2 (Personal System/2) foi um sistema de computador pessoal criado pela IBM em 1987 com um con- junto de interfaces próprias. Um “computador PS/2” tinha inúmeras vantagens em relação ao PC tradicional, como equipamento (hardware) homologado e todos os drivers escritos pela IBM e um sistema operacional próprio rodando nele, o OS/2. O PS/2 desapareceu do mercado em poucos anos, mas o OS/2 foi continuado para PCs comuns até meados de 1996. Porém, muitas das interfaces de hardware do PS/2 (Figura 5.9) são utilizadas até hoje, por ocuparem menos espaço e serem mais rápidas. Por exemplo, quando você compra uma placa-mãe, mouse ou teclado “PS2” signi ca que você está usando as interfaces herdadas deste sistema ao invés das portas de comunicação COM usadas na maioria dos PCs. Figura 5.9 – Portas PS/2 5.2.3- Comunicação com transmissão sem  o Infrared: Infrared Data Association (IrDA) é um padrão de comunicação sem  o para transmissão de dados entre dispositivos. Esse padrão permite a conexão de dispositivos se m  o ao microcomputador (ou equipamento com tecnologia apropriada), tais como impressoras, telefones celulares, notebooks e PDAs. Para computadores que não possuem infravermelho (IRDA) é necessário um adaptador ligado a porta USB do com- putador, desta maneira este computador poderá trocar arquivos com qualquer outro equipamento que pos- sua infravermelho (IRDA). Bluetooth: é um padrão global de comunicação sem  o e de baixo consumo de energia que permi- te a transmissão de dados entre dispositivos compatíveis com a tecnologia. Para isso, uma combinação de hardware e software é utilizada para permitir que essa comunicação ocorra entre os mais diferentes tipos de aparelhos. A transmissão de dados é feita através de radiofreqüência, permitindo que um dispositivo detecte o outro independente de suas posições, desde que estejam dentro do limite de proximidade. Para que seja possível atender aos mais variados tipos de dispositivos, o alcance máximo do Bluetooth foi dividido em três classes: • Classe 1: potência máxima de 100 mW, alcance de até 100 metros; • Classe 2: potência máxima de 2,5 mW, alcance de até 10 metros; • Classe 3: potência máxima de 1 mW, alcance de até 1 metro. A velocidade de transmissão de dados no Bluetooth é baixa: até a versão 1.2, a taxa pode alcançar, no máximo, 1 Mbps. Na versão 2.0, esse valor passou para até 3 Mbps. Embora essas taxas sejam curtas, são su cientes para uma conexão satisfatória entre a maioria dos dispositivos. Existem vários produtos ativados 8 Disco removível de capacidade 100 MB, aproximadamente do tamanho de um disquete 3.5”. 46 Evolução e Arquitetura de Computadores por Bluetooth, como celulares, impressoras, modems e fones de ouvido sem  o. A tecnologia é útil quando é necessária transferência de informações entre dois ou mais dispositivos que estão perto um do outro ou em outras situações onde não é necessária alta taxa de transferência. 5.3 Cooler Com o avanço da tecnologia dos processadores, manter sua temperatura de funcionamento sob contro- le e dentro de certos limites tornou-se um fator crítico. Por isso, os dissipadores de calor ou coolers tornaram-se fundamentais para o perfeito funcionamento do computador e para a maior durabilidade da CPU. A principal função do cooler é evitar um super aquecimento e um possível travamento da máquina. A Figura 5.10, mostra um tipo de cooler que é utilizado no processo de resfriamento interno das CPU’s. Figura 5.10 - Cooler 5.4 - Placa – Mãe A placa-mãe, também denominada mainboard ou motherboard, é uma placa de circuito impresso eletrônico que tem como função permitir que o processador se comunique com todos os periféricos instalados. Na placa-mãe encontramos não só o processador, mas também a memória RAM, os circuitos de apoio, as placas controladoras, os conectores de barramentos e os chipset, que são os principais circuitos integrados da placa-mãe e são responsáveis pelas comunicações entre o processador e os demais comp onentes. Veja na Figura 5.11, um modelo ilustrado de placa–mãe. Figura 5.11 - Placa - Mãe (motherboard ) 5.5 - Chipset Chipset são circuitos de apoio ao processador que gerenciam praticamente todo o funcionamento da placa-mãe (controle de memória cache, DRAM, controle do bu er de dados, interface com a CPU). É respon- sável pelas informações necessárias ao reconhecimento de hardware (armazenadas na sua memória RO M). 47 Evolução e Arquitetura de Computadores A arquitetura da placa-mãe depende do tipo de chipset presente nesta. Entender o seu funcionamento e a sua importância, tornará melhor a compreensão do funcionamento do microcomputador. A grande maioria dos chipsets segue o projeto tradicional, onde as funções são divididas em dois chips, chamados de porte norte (north bridge) e ponte sul (south bridge) (ilustrados na Figura 5.12 e na Figura 5.13): Controlador de sistema (também chamada ponte norte) – é o chip mais complexo, que  ca  sicamen- te mais próximo do processador. Ele incorpora os barramentos “rápidos” e funções mais complexas, incluindo o controlador de memória, as linhas do barramento PCI Express, ou o barramento AGP, além do chipset de vídeo onboard, quando presente. Controlador de periféricos (também chamada ponte sul) – é invariavelmente um chip menor e mais simples que o primeiro. Nas placas atuais ele incorpora os barramentos mais lentos, como o barramento PCI, portas USB, SATA e IDE, controladores de som e rede e também o controlador Super I/O, que agrupa portas “de legado”, como as portas seriais e paralelas, porta para o drive de disquete e portas do teclado e mouse (PS/2). É importante notar que o controlador de periféricos não irá controlar periféricos integrados on board (eles têm controladores próprios). Figura 5.12 – Ponte norte de um chipset Figura 5.13 – Ponte sul de um chipset A conexão entre a ponte norte e a ponte sul é feita através de um barramento. No início, o barramento utilizado para conectar a ponte norte à ponte sul era o barramento PCI. Atualmente, o barramento PCI não é mais usado para esse tipo de conexão e foi substituído por um barramento dedicado. 50 Evolução e Arquitetura de Computadores SISTEMAS NUMÉRICOS Sistemas de numeração são formas de representação de valores. Existem os sistemas não-posicionais e os posicionais. Nos não-posicionais o símbolo não depende da posição. Por exemplo, os numerais romanos: o símbolo X vale 10 em qualquer posição que estiver no número, seja IX ou LXV. Já nos posicionais, o valor do símbolo muda com a posição. Por exemplo: o símbolo 6 dentro do número 625 signi ca o valor 600, mas no número 461 signi ca 60. Diariamente trabalhamos com o sistema posicional dec imal, assim chamado por ter dez símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Como tem dez símbolos, dizemos também que possui base 10. O computador funciona em binário, ou seja, representa os números somente com os símbolos 0 e 1. Este é um sistema de numeração com base 2 ou binário. Na eletrônica ainda é comum trabalhar-se com o sistema octal, que possui base 8, cujos símbolos são: 0, 1, 2, 3, 4, 5, 6, 7. Para o endereçamento da memória do computador é utilizado o sistema de numeração hexadecimal, de base 16, formado pelos símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. São estes quatro sistemas de numeração que serão o fundamento do estudo da computação, sendo necessários para compreensão da organização de sua arquitetura. Para compreendermos melhor a relação entre eles, devemos estudar a conversão de uma base para outra. 6.1 - Sistema numérico decimal A designação de decimal para este sistema numérico advém do uso de dez algarismos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. A posição de cada um destes algarismos dentro do número está associada um determinado valor. Assim, caminhando da direita para a esquerda, o algarismo mais à direita, deve ser multiplicado por 1, o algarismo situado imediatamente à esquerda deste, é multiplicado por 10, o que vem a seguir por 100, etc. Exemplo mostrado na Expressão 6.1. Expressão 6.1– Sistema numérico decimal 6.2 - Sistema num érico binário O sistema numérico binário difere em vários aspectos do sistema decimal que é o que nós utilizamos na vida diária. Este sistema numérico é de base igual a 2 e só contém dois algarismos, que são ’1’ e ‘0’, que corres- pondem aos sinais elétricos ligado e desligado. O computador trabalha com essa base de numeração binária. Essa decisão de projeto deve-se à maior facilidade de representação interna no computador, que é obtida através de dois diferentes níveis de tensão. No sistema binário os dados são representados por : – Bit (1 digito binário) ou Binary Digit: valor 0 ou 1 6. 51 Evolução e Arquitetura de Computadores – Byte = 8 bits – Palavra (word), conforme a arquitetura ocupará n bytes. – Caracter: conjunto de n bits que de ne 2n caracteres Exemplo: 10011011 é um número binário com 8 dígitos Para converter um número binário em decimal, ou seja extrair um valor numérico decimal de uma série de zeros e uns, basta seguir o exemplo abaixo. Exemplo mostrado na Expressão 6.2 Expressão 6.2 – conversão binário para decimal O maior valor decimal, que pode ser representado por um determinado número de símbolos binários, coincide com 2 elevado a um expoente igual ao número de símbolos binários utilizados, subtraído de uma uni- dade: 24 -1 = 16- 1= 15. Isto signi ca que é possível representar os números decimais de 0 a 15, apenas com 4 algarismos binários (incluem-se portanto os números ‘0’ e ‘15’), ou seja, 16 valores diferentes. As operações que se executam no sistema decimal, também podem ser executadas no sistema binário. Um over ow acontece sempre que o resultado de uma operação não puder ser armazenado no número de bits disponíveis. 62.1 - Representação de Números Inteiros Existe diversas formas para representar um número inteiro no computador. Uma delas é através do sinal-magnitude. Em uma palavra de n bits, os n-1 bits mais à direita representam a magnitude do número inteiro, como mostrado na Expressão 6.3 Expressão 6.3 – Regras para adição em binário As desvantagens apresentadas pela representação de sinal-magnitude são: • Duas representações para 0: +010 = 00000000 -010 = 10000000 (sinal-magnitude) • Para efetuar operações de adição e subtração é preciso considerar tanto a magnitude quanto o sinal dos operandos; 52 Evolução e Arquitetura de Computadores Em conseqüência, o esquema mais utilizado é a representação em complemento de dois que assim como a representação sinal-magnitude, a representação em complemento de dois usa o bit mais signi cativo como bit de sinal, porém, os demais bits são interpretados de maneira diferente. A Tabela 6.1 relaciona as características-chave da representação e da aritmética em complemento de dois. Tabela 6.1 – Características da representação e aritmética em complemento de dois Faixa de valores representáveis -2n-1 a 2n-1 -1 Número de representações para o zero 1 Expansão do número de bits Acrescente posições de bit à esquer- da e preencha esses bits com o valor do bit de sinal original Regra de over ow Se dois números com mesmo sinal (ambos positivos ou ambos negativos) fo- rem somados, ocorrerá over ow apenas se o resultado tiver sinal oposto Regra de subtração Para subtrair B de A, pegue o comple- mento de dois de B e some-o com A Vejamos a aplicação do complemento de dois no inteiro positivo 4 (01002) na Expressão 6.4: Expr essão 6.4 – Complemento de dois do número 01002 Vejamos a representação vetorial do complemento de dois na Expressão 6.5 e na Expressão 6.6. Expressão 6 .5 – Conversão do valor binário 100000011 para um valor em decimal 55 Evolução e Arquitetura de Computadores 6.2.4 - Subtração em binário A subtração , tal como a adição, obedece ao mesmo princípio. O resultado de subtrairmos dois zeros ou dois uns, é zero. Se quisermos subtrair ‘1’ a ‘0’, temos que pedir emprestado ‘1’ ao dígito binário imediatamente à esquerda no número. Exemplo mostrado na Expressão 6.12. Expressão 6.12 – Subtração em binário Para subtrair S de M, em complemento de dois, pegue o compl emento de dois de M e acrescente esse valor a S. Veja os exemplos ilustrados na Expressão 6.13 e na Expressão 6.14. Expressão 6.13 – Subtração em complemento de dois Expressão 6.14 – Subtração em complemento de dois com over ow 6.2.5 - Multiplicação em binário A multiplicação bin ária de números inteiros sem sinal segue os mesmos princípios gerais da multipli- cação decimal. Entretanto, com apenas dois possíveis bits multiplicadores (1 ou 0), multiplicação binária é um processo muito mais simples: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1 Como exemplo, vamos multiplicar 10012 (9d) por 11002 (12d) cujo produto resulta em 1101100 (108d), ilustrado na Expressão 6.15. 56 Evolução e Arquitetura de Computadores Expressão 6.15 – Multiplicação de números inteiros binário sem sinal Infelizmente, o esquema anterior não funciona para multiplic ação com sinal, veja nos exemplos abaixo: Existem diversas soluções possíveis para esse e outros dilemas gerados na multiplicação com sinal. Um dos algoritmos mais usados é o de Booth. Usando-se o algoritmo de Booth, gera-se um produto parcial para cada bit no multiplicador. Se o valor do bit do multiplicador é 0, seu produto parcial correspondente consiste apenas de zeros, se o valor do bit é 1, seu produto parcial correspondente é uma cópia do multiplicando. Adi- cionalmente, cada produto parcial é deslocado à esquerda um número de bits que é função do bit do multi- plicador com o qual está associado; por exemplo, o produto parcial associado com o bit 0 no multiplicador é deslocado a esquerda zero bits, o produto parcial associado com o bit 1 é deslocado a esquerda de um bit, e assim por diante. Todos os produtos parciais são então somados para gerar o resultado, cujo número de bits é a soma do número de bits dos dois valores que estão sendo multiplicados (veja Expressão 6.13). Expressão 6.16 – Multiplicação de números binários utilizando o algoritmo de Booth Infelizmente, o algoritmo de Booth funciona apenas com números binários sem bit de sinal. Entretanto, esse problema pode ser resolvido tomando-se o complemento de dois de qualquer número negativo antes de 57 Evolução e Arquitetura de Computadores colocá-lo no multiplicador. Se os sinais dos dois valores forem os mesmos, ambos positivos ou ambos negati- vos, então não é necessário efetuar nenhuma outra ação, porém, se os sinais são diferentes, então o resultado retornado pelo multiplicador precisa ser negado efetuando-se seu complemento de dois. 6.2.6 - Divisão em binário Como nas demais operações aritméticas, a divisão binária é efetuada de modo semelhante à divisão decimal, considerando-se apenas que: 0 / 1 = 0 1 / 1 = 1 e que a divisão por zero acarreta erro. O algoritmo a seguir apresentado, é utilizado para executar a divisão em binário: 1- a partir da esquerda, avançam-se tantos algarismos quantos necessários para obter-se um valor igual ou maior que o divisor; encon- trado esse valor, registra-se 1 para o quociente; 2- subtrai-se do valor obtido no dividendo o valor do divisor (na divisão, como o quociente somente pode ser de valor igual a 1, a subtração é sempre com o próprio valor do divisor); 3- ao resultado acrescentam-se mais algarismos do dividendo (se ainda houver algum), até obter-se um valor igual ou maior que o divisor (como no item 1). Se o(s) algarismo(s) for(em) zero, acrescenta-se zero(s) ao quociente; repete-se o processo a partir do item 1, até que se esgotem os algarismos do dividendo (Veja exemplo os exemplos abaixo). Dividir 11011 e 101. Dividir 11011 e 101. 60 Evolução e Arquitetura de Computadores Exemplo (Tabela 6.3): converter: 11011010100112 em hexa Tabela 6.3 – Conversão binário-hexa 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 1 B 5 3 Resultado: 1B53h 6.4.4 - Qualquer base para a decimal Generalizando, para a conversão de um número em uma base qualquer para a base decimal usa-se a seguinte fórmula: N=dn-1 x bn-1 + dn-2 x b n-2 + ... + d1 x b 1 + d0 x b 0 Onde: • d: Indica cada algarismo do número • n-1, n-2, 1,0: Indicam a posição de cada algarismo • b: Indica a base de numeração • n: Indica o número de dígitos inteiros 6.4.5 - Decimal - Hexadecimal Para converter decimal em hexadecimal : 1) Divida o número pela base, o resto é o primeiro dígito, da *direita* para a *esquerda* 2) O resultado da divisão anterior você divide novamente e adiciona o dígito à *esquerda* do dígito anterior 3) Repita esse processo até a divisão for igual a zero (o dividendo é menor que a base) Lembrando que na base 16, os dígitos vão de 0 a 15, sendo os dígitos de ordem 10 a 15 representados pelas letras A a F, respectivamente. Exemplo: 66610 = 29A16, pois: 666 / 16 = 41, resto 10 (A) 1. 41 / 16 = 2, resto 9 2. 2 / 16 = 0, resto 2 (o próprio divisor) A Tabela 6.4 apresenta os números em decimal e sua representação correspondente em binário, octal e hexadecimal 61 Evolução e Arquitetura de Computadores Tabela 6.4 – Números em decimal, b inário, octal e hexadecimal
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved