Evolução e Arquitetura de Computadores
3
Sumário pág.
1. EVOLUÇÃO E ARQUITETURAS DOS COMPUT COMPUTADORES ADORES ..................................................... ....................................................................... ..................9 9 1.1- Evolução dos computadores ......................................... ............................................................ ...................................... ...................................... ...................................... ...................................... ....................... .... 9 1.1.1- Computadores eletrônicos – 1ª Geração ............................ ............................................... ...................................... ...................................... ...................................... ............................. .......... 9 1.1.2 - Computadores transistorizados – 2ª Geração.................. Geração ..................................... ...................................... ...................................... ...................................... ............................. .......... 11 1.1.3 - Computadores com circuitos integrados – 3ª Geração ................... ...................................... ...................................... ...................................... ............................. .......... 12 1.1.4 - Últimas gerações .................................................. ..................................................................... ...................................... ...................................... ..................................... ..................................... ................................. .............. 12 1.2 -Arquiteturas de computadores ................. .................................... ...................................... ...................................... ...................................... ...................................... ...................................... ....................... .... 13 1.2.1 - Máquinas von Neumann ............................................ ............................................................... ...................................... ...................................... ...................................... ...................................... ....................... .... 13 2. A Unidade Central de Processamento - CPU ....................... ........................................... ....................................... ....................................... ......................... ..... 15 2.1 - Estrutura e funcionamento da CPU................... ...................................... ...................................... ...................................... ..................................... ..................................... ................................. .............. 15 2.2 - Evolução da CPU ................................................... ...................................................................... ...................................... ...................................... ...................................... ..................................... ................................... .................17 17 2.3 - Coprocessador aritmético e memória cache ................................... ...................................................... ...................................... ...................................... .................................... .................19 19 2.4 - Modo Real x Modo Protegi Protegido do ................................................... ...................................................................... ...................................... ...................................... ...................................... ............................. .......... 19 2.4.1 Memória Virtual ................. .................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ................................ ............. 20 2.4.2 - Multitarefa......... Multitarefa............................ ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ............................. .......... 21 2.4.3 -Memória Protegida............................................... .................................................................. ...................................... ...................................... ..................................... ..................................... ................................. .............. 21 2.5 - Clock ................. .................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ..................................... ................................... .................21 21 2.6 - Pipeline de instruções .................................. ..................................................... ...................................... ...................................... ...................................... ...................................... ...................................... ....................... .... 22 2.7 - Arquiteturas CISC e RISC ................................................... ...................................................................... ...................................... ...................................... ...................................... ...................................... ..................... 25 3. Memórias................... ....................................... ........................................ ........................................ ........................................ ....................................... ....................................... ......................... ..... 27 3.1- Memórias primárias ................. .................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... .......................... ....... 29 3.1.1 - Memória RAM .................................................. ..................................................................... ...................................... ..................................... ..................................... ...................................... ...................................... ..................... 29 3.1.2 - Memória cache...................................... ......................................................... ...................................... ...................................... ...................................... ...................................... ...................................... ............................. .......... 30 3.1.3 - Memória ROM ................. .................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ................................ ............. 31 3.1.4 - Memória de conguração CMOS.......................................... CMOS............................................................. ...................................... ...................................... ...................................... ............................. .......... 32 3.1.5 - Registradores ................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ................................ ............. 33 3.2 - Memórias secundárias ................................................. .................................................................... ...................................... ...................................... ...................................... ...................................... .......................... ....... 33 3.1.2 - Disco rígido................................. .................................................... ..................................... ..................................... ...................................... ...................................... ...................................... ...................................... ....................... .... 33 3.2.2 - Disquetes ................. .................................... ...................................... ..................................... ..................................... ...................................... ...................................... ...................................... ...................................... ....................... .... 36 3.2.3 - Fita magnética....................................... .......................................................... ...................................... ...................................... ...................................... ...................................... ...................................... ............................. .......... 37 3.2.4 - Discos óticos........... óticos.............................. ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ....................... .... 38 3.2.5 - Pen drives................................................ ................................................................... ...................................... ...................................... ...................................... ...................................... ...................................... ............................. .......... 38 3.2.6 - Cartões de memória ............................ ............................................... ...................................... ...................................... ...................................... ...................................... ...................................... ............................. .......... 39 4. Periféricos do computador .................... ........................................ ........................................ ........................................ ....................................... .................................. ............... 40 4.1 - Dispositivos de entrada ............................... .................................................. ...................................... ...................................... ...................................... ...................................... ...................................... ....................... .... 40 4.1.1 - Teclado ................... ..................................... ..................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... .......................... ....... 40 4.1.2 - Mouse ................. .................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... ............................. .......... 40 4.1.3 - Scanner ................. ................................... ..................................... ...................................... ...................................... ...................................... ...................................... ...................................... ...................................... .......................... ....... 41
4.1.4 - Leitor Ótico ........................................................................................................................................................................41 4.1.5 - Microfone ........................................................................................................................................................................... 41 4.2 - Dispositivos de saída ..........................................................................................................................................................41 4.2.1 - Monitor de Vídeo ..............................................................................................................................................................42 4.2.2 - Impressoras ........................................................................................................................................................................42 4.2.3 - Plotters ................................................................................................................................................................................. 43 4.2.4 - Speakers............................................................................................................................................................................... 43 5. Outros componentes do computador ................................................................................................44 5.1 - Barramentos .......................................................................................................................................................................... 44 5.1.1- Barramento AGP ................................................................................................................................................................ 45 5.1.2 - Barramento PCI ................................................................................................................................................................. 46 5.1.3 - Barramento ISA ................................................................................................................................................................. 46 5.1.4 - Barramento USB................................................................................................................................................................ 46 5.1.5 - Barramento Firewire........................................................................................................................................................ 47 5.1.6 - Slots de expansão e adaptadores............................................................................................................................... 47 5.2 - Portas de comunicação ..................................................................................................................................................... 48 5.2.1 - Portas seriais e paralelas ................................................................................................................................................48 5.2.2 - Portas PS/2.......................................................................................................................................................................... 49 5.2.3- Comunicação com transmissão sem o.................................................................................................................... 49 5.3 Cooler .........................................................................................................................................................................................50 5.4 - Placa – Mãe ............................................................................................................................................................................ 50 5.5 - Chipset ..................................................................................................................................................................................... 50 5.6 - Fonte de Alimentação ........................................................................................................................................................ 52 6. Sistemas numéricos.............................................................................................................................. 54 6.1 - Sistema numérico decimal ...............................................................................................................................................54 6.2 - Sistema numérico binário ................................................................................................................................................. 54 62.1 - Representação de Números Inteiros .......................................................................................................................... 55 6.2.2 - Negação em complemento de dois .......................................................................................................................... 57 6.2.3 - Adição em binário ........................................................................................................................................................... 58 6.2.4 - Subtração em binário ..................................................................................................................................................... 59 6.2.5 - Multiplicação em binário .............................................................................................................................................. 59 6.2.6 - Divisão em binário ...........................................................................................................................................................61 6.3 - Sistema numérico hexadecimal ..................................................................................................................................... 62 6.4 - Conversão de bases ............................................................................................................................................................ 63 6.4.1 - Decimal-binário ................................................................................................................................................................ 63 6.4.2 - Hexadecimal – Binário .................................................................................................................................................... 63 6.4.3 - Binário - Hexadecimal ....................................................................................................................................................63 6.4.4 - Qualquer base para a decimal ..................................................................................................................................... 64 6.4.5 - Decimal - Hexadecimal................................................................................................................................................... 64
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 componentes e, consequentemente, o aumento da velocidade. Entretanto, os ganhos reais de velocidade obtidos nos últimos anos são devido, principalmente, a mudanças na organização do processador, incluindo o uso intensivo de pipeline e de técnicas de execução paralelas de instruções . 1
2
É comum classicar 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 apresentadas 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 computador 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 diculdades 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 p essoas 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álvulas 3 e apresentava um consumo de 140 quilowatts de energia elétrica. Essa máquina era muito mais rápida Técnica de hardware na qual o ciclo de busca-decodicaçã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 1
5
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áquina 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 utilizada 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 modicado simplesmente atribuindo 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, exclusivamente. 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 programa armazenado foram apresentadas durante a escola de verão do ENIAC. Isso permitiu que alguns participantes dessa escola, trabalhando em projetos mais modestos, viessem a construir computadores com programa
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 temporeal. 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 suciente para serem fabricados e vendidos para clientes com a expectativa de que continuariam a funcionar por tempo suciente para realizar algum trabalho útil. Essas máquinas eram guardadas em salas especiais com ar condicionado. Somente grandes corporaçõ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 caracterí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 estã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).
7
Evolução e Arquitetura de Computadores
8
O uso de transistores criou a segunda geração de computadores.
1.1.3 - Computadores com circuitos integrados – 3ª Geração Durante a década de 50 e início dos anos 60, os equipamentos eletrônicos eram compostos basicamente de componentes discretos – transistores, resistores, capacitores e assim por diante. Esses componentes eram fabricados separadamente, encapsulados em seus próprios recipientes e soldados ou ligados com os, por meio de uma técnica conhecida como wire-up, às placas de circuito, que eram então instaladas nos computadores, osciloscópios e outros equipamentos eletrônicos. Quando um dispositivo eletrônico requeria um transistor,, um pequeno tubo de metal com uma peça de silício tinha de ser soldado a uma placa de circuito. O transistor processo completo de fabricação, desde o transistor até a placa de circuito era caro e incômodo. Isso começava a criar problemas na indústria de computadores. Os computadores do início da segunda geração continham cerca de 10 mil transistores. Esse número cresceu até centenas de milhares, tornando cada vez mais difícil a fabricação de máquinas novas, mais poderosas.
Em 1958, foi desenvolvida uma nova técnica que revolucionou os equipamentos eletrônicos e iniciou a era da microeletrônica: a invenção do circuito integrado. integrado. Esse circuito caracteriza a terceira geração de computadores. Por volta de 1965, a IBM anunciou o computador IBM 360, construído nos USA, totalmente transistorizado e tinha uma capacidade de memória base de 32K bytes. O IBM 360 era uma série de máquinas compatíveis ao nível de software. Como todas as máquinas tinham a mesma arquitetura e conjunto de instruções, programas escritos para uma máquina podiam executar em todas as outras (pelo menos na teoria). A memória era construída com toros de ferrite (óxido de ferro). É o primeiro computador IBM a utilizar 8 bits para codicação de caracteres e a palavra byte assume então o signicado que ainda hoje tem. Com 8 bit era possível codicar 256 estados diferentes o que era suciente para a codicação dos 10 algarismos, 52 letras (maiúsculas e minúscula) do alfabeto, o espaço, 27 símbolos e 166 caracteres especiais. É o primeiro computador IBM que podia ser comandado a partir da digitação de caracteres numa máquina de escrever. Ao IBM 360 podiam ser acoplados leitores/perfuradores de cartões de 80 colunas, unidades de ta magnética, e uma impressora de caracteres que dispunha de uma cadeia metálica. A década de 1970 foi marcada pela utilização de circuitos integrados em larga escala; pelo minicomputador, com extenso uso de circuitos em chips; pelos dispositivos de memória dinâmica de 1 Kbit e 4 Kbit (1974) e pelos microprocessadores Intel 8086 (1978), de 16 bits e Motorola 68000 (1979), de 16/32 bits. Algumas funções especícas, como unidades de gerência de memória (MMU) e co-processadores aritméticos, passaram também a ser implementados em hardware. Em 1971 a IBM lança o “disco exível” um disco plástico de oito polegadas recoberto com óxido de ferro. Niklaus Wirth cria, em 1971, uma linguagem simbólica, o PASCAL PASCAL tendo em vista o ensino das técnicas de programação e dá origem à técnica de Programação Estruturada. Basic foi uma linguagem originalmente criada para o aprendizado e teve seu uso bastante reduzido já na década de 70.
1.1.4 - Últimas gerações A partir da terceira geração de computadores, existe um menor consenso sobre a denição das demais gerações de computadores. Com a introdução de integração em grande escala ( Large-Scale Integration - LSI), mais de mil componentes podem ser colocados em uma única pastilha de circuito integrado. integrado. A integração em escala muito grande (Very ( Very -Large-Scale Integration - VLSI) atingiu mais de 10 mil componentes por pastilha, e as pastilhas VLSI atuais podem conter mais de 100 mil componentes. Com o rápido avanço da tecnologia, a introdução signicativa de novos produtos e a importância do
Evolução e Arquitetura de Computadores
software e das comunicações, tanto quanto do hardware, a classicação em gerações torna-se menos clara e menos signicativa. Pode-se dizer que a aplicação comercial dos novos desenvolvimentos representou uma grande mudança no início dos anos 70 e que os resultados dessas mudanças ainda estão sendo sentidos.
Em 1984, a companhia Apple lançou uma máquina que introduziria novamente uma revolução: o Macintosh. Este era o sucessor de um modelo chamado “Lisa” “Lisa” (1º computador com interface totalmente gráca)– mas que não teve aceitação devido seus custo e sua escassa capacidade - introduzia pela primeira vez o conceito de interface gráca, a analogia de um escritório e um novo periférico: o mouse.
1.2 -Arquiteturas de computadores Apesar da existência de uma grande diversidade em termos de arquiteturas de computador, é possível enumerar num ponto de vista mais genérico, os componentes básicos desta classe de equipamentos. A Figura 1.2 apresenta um esquema de um computador, destacando os elementos que o compõem. Apesar da grande evolução ocorrida na área de informática desde o aparecimento dos primeiros computadores, o esquema apresentado na gura pode ser utilizado tanto para descrever um sistema computacional atual como as máquinas de John Von Neuman.
Figura 1.2- Organização básica de um computador
No projeto de sistemas computacionais os principais componentes considerados são: processadores, memórias, dispositivos de entrada e saída, e meios de interconexão interconexão..
Processadores: controlam a operação do computador e desempenham funções de processamento de dados.
Memórias: armazenam dados e são divididas em memória principal e memória secundária. Dispositivos de entrada e saída (E/S): transferem dados entre o computador e o ambiente externo. Em geral, são lentos quando comparados com o processador. Meios de interconexão: mecanismos que estabelecem a comunicação entre a CPU, memória principal e dispositivos E/S. Um problema crítico na n a utilização dos meios de interconexão é a contenção, a disputa pelo uso simultâneo de recursos compartilhados.
1.2.1 - Máquinas von Neumann Johann von Neumann, matemático húngaro, e seus colegas começaram um projeto de programa armazenado, conhecido como IAS. O IAS, concluído em 1952, constitui os princípios de funcionamento de todos os computadores de propósito geral subsequentes.
A característica de máquinas von Neumann é a composição do sistema a partir de três subsistemas básicos: CPU, memória principal e sistema de entrada e saída.
9
Evolução e Arquitetura de Computadores
10
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áquinas máquinas von Neumann. Neumann.
Durante sua operação, a execução de um programa é uma seqüência de ciclos de máquina von Neumann, 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 decodica 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 Transferência 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.
Evolução e Arquitetura de Computadores
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).
2.
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 horizontal, 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 circuito 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 é decodicada 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.
11
Evolução e Arquitetura de Computadores
12
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 considerando 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 g eral 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 denem o tamanho da palavra do computador - o tamanho da palavra é igual ao tamanho do acumulador.
Evolução e Arquitetura de Computadores
•
O Registrador de instrução (IR): contém a última instrução buscada.
•
O Contador do Programa: (“Program Counter” - PC) : é um registrador que armazena o endereço de memória do início da próxima instrução a ser executada.
•
O Registrador de endereçamento à memória (MAR): contém o endereço de uma posição de memória.
•
Registrador de armazenamento temporário de dados (MBR) : contém uma palavra de dados a ser escrita na memória ou a palavra lida mais recentemente.
A Figura 2.1 ilustra os caminhos de transferência de dados e sinais de controle, o que inclui um elemento denominado barramento interno da CPU . Esse elemento é necessário para transferir dados entre os vários registradores e a ULA, uma vez que esta última apenas opera sobre dados localizados na memória interna da CPU. A gura mostra ainda os elementos básicos típicos de uma ULA.
Note a semelhança entre a estrutura interna do computador como um todo e a estrutura interna da CPU. Em ambos os casos, existe uma pequena coleção de elementos importantes (computador: CPU, E/S, memória; CPU: unidade de controle, ULA, registradores), conectados por caminhos de dados.
2.2 - Evolução da CPU Apesar de o processador ser o componente mais importante do micro, já que é ele quem processa quase todas as informações, ele não é necessariamente o maior responsável pelo desempenho. Na verdade, dependendo da aplicação à qual o micro se destina, o desempenho do processador pode ser menos importante que a quantidade de memória RAM, que o desempenho da placa de vídeo 3D, ou até mesmo que o desempenho do disco rígido. Tenha em mente que o computador é um conjunto, cada componente depende dos demais para mostrar o seu potencial. Dizemos que um micro é tão rápido quanto seu componente mais lento. Como estamos falando de um conjunto, apenas um componente que apresente um baixo desempenho será suciente para colocar tudo a perder. Assim como vemos em outras situações, em um carro, por exemplo, onde um simples pneu furado pode deixar o carro parado na estrada. Se o micro tiver pouca memória RAM, por exemplo, o sistema operacional será obrigado a usar memória virtual, limitando a performance ao desempenho do disco rígido, que é centenas de vezes mais lento que ela. Caso o micro não possua memória cache, o desempenho cará limitado ao desempenho da memória RAM, que é muito mais lenta que o processador e por aí vai. Dizemos neste caso, que o componente de baixo desempenho é um gargalo, pois impede que o conjunto manifeste todo o seu potencial. Às vezes, simplesmente aumentar a quantidade de memória RAM, operação que custa relativamente pouco, é capaz de multiplicar a velocidade do micro. Mas, apesar de tudo, o processador ainda é o componente básico de qualquer computador. Com o avanço cada vez mais rápido da tecnologia, e várias empresas disputando o mercado, os projetistas vem sendo obrigados a desenvolver projetos cada vez mais ousados a m de produzir os processadores com o melhor desempenho. Isso é excelente para nós, mas também pode trazer armadilhas, já que com projetos tão diferentes, cada processador acaba saindo-se bem em algumas aplicações, mas muito mal em outras. Não dá para julgar o desempenho do processador apenas pela frequência de operação, como fazíamos na época do 486. Quando vamos comprar um processador, a primeira coisa que perguntamos é qual sua frequência de operação, medida em Megahertz (MHz) ou milhões de ciclos por segundo, frequência também chamada de clock. Acontece, que nem sempre um processador com uma velocidade de operação mais alta é mais rápido
13
Evolução e Arquitetura de Computadores
14
do que outro que opera a uma frequência um pouco mais baixa. A frequência de operação de um processador indica apenas quantos ciclos de processamentos são realizados por segundo, o que cada processador é capaz de fazer em cada ciclo já é outra história. Imagine um processador 486 de 100 MHz, ao lado de um Pentium também de 100 MHz. Apesar da frequência de operação ser a mesma, o 486 perderia feio em desempenho. Na prática, o Pentium seria pelo menos 2 vezes mais rápido. Isto acontece devido a diferenças na arquitetura dos processadores e também no coprocessador aritmético e cache. Existem muitos tipos de microprocessadores no mercado, podendo-se encontrar grandes variações tanto no custo como no desempenho de cada um. As principais diferenças entre os tipos de microprocessadores estão relacionadas ao: •
Tamanho da palavra;
•
Velocidade;
•
Quantidade operações que ele suporta
Um parâmetro importante é o tamanho da palavra processada pela unidade lógica e aritmética, lembrando que o sistema de numeração adotado nas arquiteturas de computadores é o binário, o qual tem como unidade básica de informação o bit, que pode assumir os valores 0 ou 1. Quanto maior o tamanho da palavra manipulada pelo microprocessador, maior é o seu potencial de cálculo e maior a precisão das operações realizadas. As primeiras CPUs integradas num único chip, como por exemplo, o 4004 fabricado pela Intel em 1971 manipulava palavras (dados e instruções) expressas por 4 dígitos binários. Os microprocessadores mais recentes são capazes de manipular palavras entre 32 bits (caso dos 486) e 64 bits (Pentium e Power PC). A Figura 2.2 ilustra exemplos de microprocessadores.
Figura 2.2 - Processadores: Pentium III, Pentium 4 (Socket 423), Pentium 4(Socket 478), Athlon.
A velocidade de cálculo está diretamente relacionada com a freqüência do relógio que pilota o circuito da CPU como um todo. O microprocessador Intel 4004 era movido por um clock de freqüência igual a 108 KHz, enquanto hoje fala-se em microprocessadores com clocks de GHz. Ainda relacionada com a ULA, é possível destacar a quantidade de operações que ela suporta. Os primeiros processadores suportavam um conjunto relativamente modesto de operações lógicas e aritméticas. Em particular, no que diz respeito às operações aritméticas, os primeiros processadores suportavam apenas operações de adição e subtração, sendo que as demais operações tinham de ser implementadas através de seqüências destas operações básicas. Os processadores suportando um conjunto mais complexo de instruções surgiram graças à adoção da tecnologia CISC (Complex Instruction Set Computer ).
Embora não seja um aspecto visível ou perceptível internamente, é importante destacar que o aumento do potencial de cálculo de um computador só foi incrementado devido à evolução da microeletrônica que tem oferecido técnicas de integração capazes de encapsular uma quantidade cada vez maior de transistores por unidade de área.
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 prossional 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 coprocessadores 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 produção dos coprocessadores, barateando o conjunto. Atualmente, o desempenho do coprocessador determina o desempenho do micro em jogos e aplicativos grácos em geral, justamente as aplicações onde os processadores atuais são mais exigidos. O desempenho 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 problema 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, sempre que necessário. No modo real, rodamos o MS-DOS e outros aplicativos de modo real mais antigos, enquanto 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, chamados 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 usada 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-
15
Evolução e Arquitetura de Computadores
16
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 programa 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 memó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 memó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 congurada 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 grandes. 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
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 signica 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 milhõ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 poderia 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 processador 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 mostramos 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 signica 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 latência “5” signica 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
17
Evolução e Arquitetura de Computadores
18
para um processador com apenas uma unidade de execução – processadores modernos possuem várias unidades de execução trabalhando em paralelo e podem executar a segunda instrução ao mesmo tempo em que a primeira, em paralelo. A isso é chamado de arquitetura superescalar.
Se você comparar dois processadores completamente idênticos, o que estiver rodando a uma taxa de clock mais alta será o mais rápido. Neste caso, com uma taxa de clock mais alta, o tempo entre cada ciclo de clock será menor, então as tarefas serão desempenhadas em menos tempo e o desempenho será mais alto. Mas quando você compara dois processadores diferentes, isso não é necessariamente verdadeiro. Como dissemos, cada instrução demora um certo número de ciclos de clock para ser executada. Digamos que o processador “A” demore sete ciclos de clock para executar uma determinada instrução, e que o processador “B” leve cinco ciclos de clock para executar essa mesma instrução. Se eles estiverem rodando com a mesma taxa de clock, o processador “B” será mais rápido, porque pode processar essa instrução em menos tempo. Os fabricantes de processadores começaram a usar um novo conceito, chamado multiplicação de clock, que começou com o processador 486DX2. Com esse esquema, que é usado em todos os processadores atualmente, o processador tem um clock externo também conhecido como FSB ( Front Side Bus), que é usado quando dados são transferidos de e para a memória RAM (usando o chip da ponte norte), e um clock interno mais alto, que indica a frequência na qual o processador trabalha.
A grande diferença entre o clock interno e o clock externo em processadores modernos é uma grande barreira a ser transposta visando aumentar o desempenho do computador. Diversas técnicas são usadas para minimizar o impacto dessa diferença de clock. Um deles é o uso de memória cache dentro do processador. Outra é transferir mais de um dado por pulso de clock. Apesar das limitações, o recurso de multiplicação de clock é indispensável atualmente, pois sem ele seria impossível desenvolver processadores muito rápidos, já que não é possível aumentar a frequência das placas mãe e dos demais periféricos na mesma proporção do aumento do clock nos processadores. Se o Pentium III, por exemplo, tivesse que trabalhar na mesma frequência da placa mãe, não passaríamos de 100 ou 133 MHz.
2.6 - Pipeline de instruções Uma pipeline (paralelismo) de instruções é técnica de implementação de processadores que permite a sobreposição temporal das diversas fases de execução das instruções.
O pipeline aumenta o número de instruções executadas simultaneamente e a taxa de instruções iniciadas e terminadas por unidade de tempo. Mas, não reduz o tempo gasto para completar cada instrução individualmente. Por exemplo: vamos supor uma lavanderia, em que cada etapa possa ser realizada em 30 minutos: 1. Colocar a roupa na máquina de lavar 2. Depois de lavada, colocá-la na máquina de secar roupa 3. Depois de seca, passar a ferro 4. Depois de passada, arrumá-la no armário
Supondo-se que cada uma destas etapas leve 30 minutos para ser realizada, a lavagem de um cesto de
Evolução e Arquitetura de Computadores
roupas continuará levando 2 horas para ser realizada. Entretanto, podemos iniciar a lavagem de um cesto de roupas a cada 30 minutos, até que tenhamos 4 cestos sendo lavados simultaneamente, um em cada etapa do “ pipeline”. Depois das primeiras 2 horas, teremos um cesto de roupa lavada a cada 30 minutos. Ao nal do dia teremos lavado muito mais cestos de roupa do que sem o uso de “ pipeline”.
(a) Visão simplicada
(b) Visão expandida Figura 2.4 – Pipeline de instruções de dois estágios
Suponha que o processamento de uma instrução é dividido em dois estágios: busca e execução de instrução. Existem momentos durante a execução de uma instrução em que a memória principal não está sendo usada. Esse instante pode ser usado para buscar a próxima instrução, em paralelo com a execução da instrução corrente. A Figura 2.4(a) representa essa abordagem. A pipeline tem dois estágios independentes. O estágio busca uma instrução e armazena em uma área de armazenamento temporário. Quando o segundo estágio está livre, o primeiro passa para ele a instrução. Isso é chamado de busca antecipada de instrução ou superposição de busca. Note que o processo acelera a execução da instrução. Se os estágios de busca e de execução tiverem a mesma duração, o número de instruções executadas por unidade de tempo será dobrado. Entretanto se examinarmos essa pipeline, Figura 2.4(b), veremos que essa duplicação da taxa de execução de instruções será pouco provável por duas razões: •
•
O tempo de execução geralmente é maior que o tempo de busca, pois a execução de uma instrução geralmente envolve leitura e armazenamento de operandos e execução de algumas operações. A ocorrência de instrução de desvio condicional faz com que o endereço da próxima instrução a ser buscada seja desconhecido. Nesse caso, o estágio de busca teria de esperar até receber o endereço da próxima instrução do estágio de execução. O estágio de execução poderia, então, ter que esperar enquanto a próxima instrução é buscada.
Para reduzir o tempo perdido com a ocorrência de instruções de desvio, o tempo perdido pode ser reduzido pela seguinte regra: quando uma instrução de desvio condicional é passada do estágio de busca para o de execução, o estágio de busca obtém na memória a instrução imediatamente seguinte à instrução de desvio. Então se não ocorrer desvio, nenhum tempo será perdido. Se ocorrer desvio, a instrução buscada deve ser descartada, sendo buscada uma nova instrução. Para conseguir maior desempenho, um pipeline deve ter maior número de estágios, como:
19
Evolução e Arquitetura de Computadores
20
•
S1: Unidade de busca de instrução;
•
S2: Unidade de decodicaçã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 segundos), sendo assim uma instrução levaria 10 ns para percorrer todos os 5 estágios do pipeline. Como uma instruçã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
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
•
Conitos 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 decodicador de instruções – trata de vericar se aquela é válida (conferindo conjunto de instruções) e, em caso positivo, 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 denominadas 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 usadas por programas e sistemas operacionais.
21
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 decodicador de instruções e, principalmente, do micro-código. Microprocessadores construídos com a idéia acima mencionada são classicados como RISC (Reduced Instruction Set Computing – Computação utilizando um conjunto Reduzido de instruções). No entanto microprocessadores RISC são incompatíveis com os CISC. Então para que sejam compatíveis foi utilizada uma arquitetura híbrida CISC/RISC, que consiste em adicionar um decodicador 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).
Filosoa 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 losoas. Tanto processadores da família x86, como o Pentium II, Pentium III e AMD Athlon, quanto processadores 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. Internamente, 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 decodicador, 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 executar 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)
Evolução e Arquitetura de Computadores
3.
MEMÓRIAS Todo computador é dotado de uma quantidade (que pode variar de máquina para máquina) de memória a qual se constitui de um conjunto de circuitos capazes de armazenar (por períodos mais curtos ou mais longos de tempo) as unidades de dados e os programas a serem executados pela máquina. Nos computadores de uso geral, é possível encontrar diferentes denominações para as diferentes categorias de memória que neles são encontradas. As memórias são classicadas em dois grandes grupos: memórias primárias e memórias secundárias. Do ponto de vista do usuário, as duas características mais importantes da memória são sua capacidade e seu desempenho. Os parâmetros empregados para medir o desempenho são: •
•
•
Tempo de Acesso: é o período de tempo gasto decorrido desde o instante em que foi iniciada a operação de acesso até que a informação requerida (instrução ou dado) tenha sido efetivamente transferida. Pode ser chamado tempo de acesso para leitura ou simplesmente tempo de leitura. Tempo de ciclo de memória: esse conceito é aplicável principalmente a memórias de acesso aleatório e compreende o tempo de acesso e o tempo adicional requerido antes que um segundo acesso possa ser iniciado. Taxa de transferência: é a taxa na qual os dados podem ser transferidos de ou para a unidade de memória.
A capacidade diz respeito à quantidade de informação que pode ser armazenada em uma memória; a unidade de medida mais comum é o byte, embora também possam ser usadas outras unidades como células (no caso da memória RAM e cache), setores (no caso de discos) e bits (no caso de registradores). As Unidades de medida mais usadas para quanticar a memória e indicar a capacidade de armazenamento são os múltiplos do byte: •
1MB (Megabyte) ≈1024KB = 1.048.576 bytes
•
1GB (Gigabyte) ≈ 1024MB = 1.073.741.824 bytes
•
1TB (Terabyte) ≈ 1024GB = 1.099.511.627.776 bytes
Devido a variedade de tipos de memória, não é possível implementar um sistema de computação com uma única memória. Na realidade, há muitas memórias no computador, as quais se interligam de forma bem estruturada, constituindo um sistema em si, par te do sistema global de computação, podendo ser denominado subsistema de memória, como mostrado na Figura 3.1.
Figura 3.1 – Hierarquia de memória
23
Evolução e Arquitetura de Computadores
24
A Figura 3.1 mostra a hierarquia de memórias. À medida que descemos na hierarquia, as relações a seguir são válidas: •
O custo por bit diminui
•
A capacidade aumenta
•
O tempo de acesso aumenta
•
A freqüência de acesso à memória pelo processador diminui
Outra forma de diferenciação entre os tipos de memória é o método de acesso aos dados, podendo ser: •
•
•
•
Acesso seqüencial: aquele em que conjuntos de dados e informações dispostos seqüencialmente na memória em unidades denominadas “registros” são acessados linearmente, um após o outro. O acesso seqüencial é tipicamente usado em dispositivos de armazenamento que utilizam ta magnética. Em toda memória que admite acesso seqüencial existe um o mecanismo de leitura (geralmente também usado para a escrita) que percorre a memória linearmente, passando seqüencialmente de registro em registro, identicando cada um deles, até localizar o registro que se deseja consultar ou alterar. Acesso direto: é feito em dois passos. O primeiro é um acesso aleatório a uma vizinhança genérica do bloco de bytes a ser lido (geralmente, um setor). O segundo é um acesso seqüencial (em geral por contagem de blocos) até identicar aquele que deve ser lido. Acesso aleatório: signica que qualquer posição de memória principal, ou unidade endereçável, pode ser acessada diretamente, selecionada por seu endereço, seja ele qual for. O acesso independe da ordem, da posição relativa ou de qualquer outro fator. Dessa maneira, qualquer posição pode ser selecionada de modo aleatório, sendo endereçada e acessada diretamente. A memória principal e alguns sistemas de memória cache utilizam esse tipo de acesso. Acesso associativo: consiste em um tipo de acesso aleatório que possibilita comparar simultaneamente certo número de bits de uma palavra com todas as palavras da memória, determinando quais dessas palavras contêm o mesmo padrão de bits. Uma palavra é buscada na memória com base em uma parte do seu conteúdo, e não de acordo com o seu endereço. Assim como no aleatório, cada posição da memória possui seu mecanismo de endereçamento próprio e o tempo de busca é constante e independente da posição ou do padrão dos acessos anteriores. As memórias cache podem empregar acesso associativo.
Os conceitos a seguir dizem respeito às características das memórias: •
•
Palavra: unidade natural de organização da memória. O tamanho de uma palavra é tipicamente igual ao número de bits usados para representar um número inteiro e ao tamanho da instrução. Unidade endereçável: em muitos sistemas a unidade endereçável é a palavra. Entretanto, alguns sistemas permitem o endereçamento de bytes. Em qualquer um dos casos, a relação entre o tamanho em bits A de um endereço e o número de unidades endereçáveis N é: 2A = N.
O sistema de memória de computadores pode ser mais facilmente compreendido por meio da sua classicação, de acordo com suas características fundamentais. As características mais importantes estão relacionadas na Tabela 3.1.
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 Tempo de ciclo Taxa de transferência
Interna (principal) Externa (secundária)
Capacidade
Tecnologia
Tamanho da palavra
De semicondutores Magnética Ótica Magneto-ótica
Número de palavras
Unidade de transferência Palavra Bloco
Método de acesso Seqüencial Direto
Características físicas Volátil/não volátil Apagável/não apagável
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 é desligado, 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 registradores.
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 memória RAM dinâmica é feita de células que armazenam dados com carga de capacitores. A presença ou ausência 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 conguraçõ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, menor 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.
25
Evolução e Arquitetura de Computadores
26
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 componentes 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á relacionado com a quantidade de blocos de dados que podem ser t ransferidos 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 do que a memória RAM. Isso faz com que que subutilizado quando ele precisa enviar muitos dados consecutivamente. 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, é utilizada 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.
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 exemplicar, 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 modicaçã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 permite 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 permanentemente. 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 P ROM 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;
27
Evolução e Arquitetura de Computadores
28
CD-ROM, DVD-ROM e ans: essa é uma categoria de discos ópticos onde os dados são gravados apenas uma vez, seja de fábrica, como os CDs de músicas, ou com dados próprios do usuário, quando o próprio efetua a gravação. Há também uma categoria que pode ser comparada ao tipo EEPROM, pois permite a regravação de dados: CD-RW e DVD-RW e ans
Figura 3.3 – Chip de memória ROM
Na memória ROM do computador estão armazenados os software: BIOS, Setup e Post. •
BIOS (Basic Input Output System, Sistema Básico de Entrada e Saída), que é responsável por “ensinar” ao processador da máquina a operar com dispositivos básicos, como a unidade de disquete, o disco rígido.
•
Setup é o programa responsável por alterar os parâmetros armazenados na memória de conguração (CMOS), normalmente para chamarmos esse programa pressionamos a tecla “Del” durante a contagem de memória. No setup nós alteramos parâmetros que são armazenados na memória de conguração. Como o setup é gravado dentro da memória ROM do micro, muita gente pensa que setup e BIOS são sinônimos, o que não é verdade. Outra confusão comum é achar que as conguração alteradas no setup são armazenadas no BIOS. Como o BIOS está numa memória do tipo ROM, ela não permite que seus dados sejam alterados. Todas as informações manipuladas e alteradas no setup são armazenadas única e exclusivamente na memória de conguração (CMOS) do micro.
•
POST (Power On Self Test, Auto-teste) é o programa responsável pelo auto-teste que é executado toda a vez em que ligamos o micro (contagem de memória, por exemplo).
3.1.4 - Memória de conguração CMOS A memória CMOS (Complementary Metal Oxide Semiconductor ) é como uma memória RAM, pois permite que os dados sejam lidos e gravados, como é uma memória que pode ser apagada, existe uma bateria de lítio especicamente para alimentá-la quando o computador está desligado. Essa bateria também é responsável por alimentar o circuito de relógio de tempo real do micro (RTC, Real Time Clock ), pelo mesmo motivo. Todo micro tem esse relógio e ele é o responsável por manter a data e a hora atualizadas. A Figura 3.4 ilustra o chip CMOS e a bateria que alimenta essa memória
Figura 3.4 - Chip onde a memória CMOS está embutida e bateria que alimenta a memória CMOS, respectivamente.
Evolução e Arquitetura de Computadores
3.1.5 - Registradores O registrador ou registro é um tipo de memória de pequena capacidade, porém muito rápida contida no processador, utilizada no armazenamento temporário durante o processamento. Os registradores estão no topo da hierarquia de memória, sendo assim o meio mais rápido e caro de se armazenar um dado. Os registradores são utilizados na execução de programas de computadores, disponibilizando um local para armazenar dados. Na maioria dos computadores modernos, quando da execução das instruções de um programa, os dados são movidos da memória principal para os registradores, então as instruções que utilizam estes dados são executadas pelo processador, e nalmente, os dados são movidos de volta para a memória principal.
3.2 - Memórias secundárias •
São memórias que não podem ser endereçadas diretamente, por exemplo, a informação
precisa ser carregada em memória primária antes de poder ser tratada pelo processador •
Não são estritamente necessárias para a operação do computador
•
São geralmente não-voláteis, permitindo guardar os dados permanentemente
As memórias secundárias podem ser classicadas segundo material no qual os dados são armazenados, ou seja, o tipo de mídia de armazenamento. Segundo as mídias de armazenamento, essas memórias são classicadas em: •
•
•
Memórias de mídia magnética : os dispositivos de armazenamento mais comuns são o disquete, discos rígidos e unidade de ta. A superfície desses dispositivos é revestida de um material com sensibilidade magnética (em geral, óxido de ferro), que reage a um campo magnético. Assim como o transistor representa dados binários como “ligado” ou “desligado”, a força de um campo magnético pode ser usada para representar dados. Mas o ímã tem uma vantagem importante sobre o transistor: ele retém a polaridade sem uma fonte contínua de eletricidade. Memórias de mídia ótica : as técnicas de armazenamento ótico fazem uso de precisão altíssima, possível graças aos raios laser. O laser usa um feixe de l uz estreito e concentrado. A única diferença entre a luz do laser e a luz comum é que no raio laser, a luz é coerente – toda energia da luz está perfeitamente alinhada na mesma direção, permitindo que seja focalizada com precisão em uma área extremamente pequena. Os dispositivos de armazenamento ótico focalizam um raio laser no meio de gravação, que é um disco em constante rotação. Algumas áreas do meio reetem a luz pelo laser e pelo sensor, o ponto que reete o raio laser no sensor é interpretado como um e a ausência de reexão é interpretada como zero. Os principais dispositivos que utilizam essa mídia são os CDs e DVDs. Memórias de mídia ash : é uma memória de computador do tipo EEPROM (Electrically-Erasable Programmable Read-Only Memory), desenvolvida na década de 1980 pela Toshiba, cujos chips são semelhantes ao da memória RAM, permitindo que múltiplos endereços sejam apagados ou escritos numa só operação. Em termos leigos, trata-se de um chip que, ao contrário de uma memória RAM convencional, é do tipo não volátil. Esta memória é comumente usada em cartões de memória, ash drives USB (pen drives), MP3 Players, dispositivos como os iPods com suporte a vídeo, PDAs, armazenamento interno de câmeras digitais e celulares. A memória ash oferece um tempo de acesso (embora não tão rápido como a memória volátil DRAM utilizadas para a memória principal em PCs) e melhor resistência do que discos rígidos. Estas características explicam a popularidade da memória ash em dispositivos portáteis. Outra característica da memória ash é que quando embalado em um “cartão de memória” são extremamente duráveis, sendo capaz de resistir a uma pressão intensa, variações extremas de temperatura, e até mesmo imersão em água.
3.1.2 - Disco rígido Disco rígido, disco duro, (popularmente também winchester) ou HD (do inglês Hard Disk ) é a parte do
29
Evolução e Arquitetura de Computadores
30
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 virtual 5. 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 super fí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 negativo 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 vir tual 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.
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 dene 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 interligar 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 tecnologia 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 oitenta 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
31
Evolução e Arquitetura de Computadores
32
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 dados (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 eciente 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éricos, 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 compatibilidade 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 transportar 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, especialmente 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.
Evolução e Arquitetura de Computadores
Figura 3.9 – Disquete 3 1/2”
Legenda: 1 - Trava de proteção contra escrita. 2 - Base central. 3 - Cobertura móvel. 4 - Chassi (corpo) plástico. 5 - Disco de papel. 6 - Disco magnético. 7 - Setor do disco.
3.2.3 - Fita magnética A ta magnética (ou banda magnética) é uma mídia de armazenamento não-volátil que consiste em uma ta plástica coberta de material magnetizável. A ta pode ser utilizada para armazenar informações analógicas ou digitais, incluindo áudio, vídeo e dados de computador. A Figura 3.10 ilustra uma ta magnética para dados de computador. As tas estão disponíveis em rolos, cassetes ou cartuchos e sofreram diversas evoluções desde seu advento, no início da década de 1950. Elas são talvez, a mídia de armazenamento mais antiga ainda amplamente utilizada em sistemas de informação. Quando comparadas aos discos óticos e ótico-magnéticos, as vantagens das tas são a grande capacidade de armazenamento, o baixo custo por unidade armazenada, a longa expectativa de vida e a conabilidade na retenção dos dados ao longo de sua vida útil. Suas desvantagens são: o acesso sequencial (as tas requerem um moroso avanço e retrocesso para que sejam acessados os dados desejados), a necessidade de treinar o operador ou usuário para sua manipulação correta e o elevado custo dos dispositivos de leitura/gravação.
Qual é o meio de armazenamento digital mais duradouro? Não se assuste, mas são as tas magnéticas, que têm uma vida útil estimada em um século. Poucos fabricantes de CDs e DVDs garantem a manutenção de dados gravados em seus produtos por mais do que 10 anos. Não é à toa que todos os dados nanceiros e empresariais continuam sendo arquivados nas conáveis tas magnéticas.
Figura 3.10 - Fita de dados para computador
33
Evolução e Arquitetura de Computadores
34
3.2.4 - Discos óticos O CD-ROM foi desenvolvido em 1985 e traduz-se aproximadamente em língua portuguesa para Disco Compacto - memória apenas para leitura. O termo “compacto” deve-se ao seu pequeno tamanho para os padrões vigentes, quando do seu lançamento. E “memória apenas para leitura” deve-se ao fato de o seu conteúdo poder apenas ser lido, e nunca alterado. O termo foi herdado da memória ROM, que contrasta com tipos de memória RW, como a memória ash. A gravação é feita pelo seu fabricante. Existem outros tipos desses discos, como o CD-R e o CD-RW, que permitem ao utilizador fazer a suas próprias gravações uma, ou várias vezes, respectivamente, caso possua o hardware e software necessários. Os CD-ROMs com capacidade para 650 megabytes, foram substituídos pelos de 700 megabytes, passando então estes a serem os mais comuns, existindo, no entanto, outros formatos superiores. O DVD (abreviação de Digital Video Disc ou Digital Versatile Disc , em português, Disco Digital de Vídeo ou Disco Digital Versátil). Contém informações digitais, tendo uma maior capacidade de armazenamento que o CD, devido a uma tecnologia ótica superior, além de padrões melhorados de compressão de dados. O DVD foi criado no ano de 1995. Os DVDs possuem por padrão a capacidade de armazenar 4,7 GB de dados, enquanto que um CD armazena em média 700 MB. Os chamados DVDs de dual-layer (dupla camada) podem armazenar até 8,5 GB. O tamanho máximo de arquivo varia conforme o tipo de gravação: UDF, ISO normal, DVD-video, etc. O disco magnético–ótico (MO) combina algumas das melhores características das tecnologias de gravação magnética e ótica. Uma unidade de disco MO usa um laser ótico para aumentar a capacidade do sistema de disco magnético convencional. A tecnologia de gravação é fundamentalmente magnética. Entretanto, um laser ótico é usado para focalizar o cabeçote de gravação magnética, possibilitando obter maior capacidade. Os discos MO podem ser encontrados em vários tamanhos e capacidades. A principal vantagem do disco MO para o CD puramente ótico é a sua longevidade. Repetidas regravações no disco ótico resultam em degradação gradual do meio. O disco MO não apresenta essa degradação e, portanto p ode ser usado para um número muito maior de operações de regravação. Outra vantagem da tecnologia MO é seu custo por megabyte, consideravelmente mais baixo do que no caso do disco magnético. Uma tecnologia recente de discos óticos são os discos Blu-ray e HD DVD. Na verdade, um disco Blu-Ray ou HD-DVD nada mais é do que um disco de DVD com capacidade de armazenamento mais elevada, permitindo a gravação de conteúdo de alta denição. É importante salientar que a principal motivação para a criação de um sucessor para o DVD foi o surgimento da TV de alta denição, que exige maior espaço de armazenamento em disco, coisa que o DVD não pode oferecer. O ponto chave das tecnologias Blu-Ray e HD-DVD é a utilização de um laser azul-violeta usado para ler e gravar dados no disco. Este laser tem um comprimento de onda menor do que o laser vermelho usado pelos aparelhos de DVD, o que permite uma maior densidade de gravação. Tecnologicamente falando, Blu-Ray e HD-DVD são parecidos. A diferença principal entre essas duas tecnologias está na capacidade de armazenamento, devido a distância da camada de gravação em relação à camada protetora, que no Blu-Ray é de 0,1 mm e no HD-DVD esta distância é de 0,6 mm, a mesma do DVD. Um disco Blu-Ray de uma única camada permite a gravação de até 25 GB, enquanto que o mesmo disco na tecnologia HD-DVD permite a gravação de apenas 15 GB. Já um disco Blu-Ray de dupla camada permite a gravação de até 54 GB, enquanto que o mesmo disco na tecnologia HD-DVD permite apenas a gravação de 30 GB.
3.2.5 - Pen drives Memória USB Flash Drive, também designado como pen drive (Figura 3.11) é um dispositivo de armazenamento constituído por uma memória ash e uma ligação USB tipo A permitindo a sua conexão a uma porta
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 pessoais 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 drive 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, computadores e outros aparelhos eletrônicos. Podem ser regravados várias vezes, não necessitam de eletricidade para manter os dados armazenados, são portáteis e supor tam condições de uso e armazenamento mais rigorosos 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.
35
Evolução e Arquitetura de Computadores
36
4.
PERIFÉRICOS DO COMPUTADOR Os dispositivos de entrada e os de saída a são também denominados periféricos do computador. Existem também os dispositivos que podem ser utilizados tanto para a entrada como para a saída de dados: os dispositivos 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: teclado alfanumérico (semelhante ao de uma máquina de escrever), teclado numérico (semelhante à uma calculadora) 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
, , , 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 possí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 trackball , que é uma espécie de mouse 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-
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 informações sobre o produto por meio da emissão de raio de luz – freqüentemente um raio laser – que reete a imagem do código de barra. Um detector sensível à luz identica 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 externos 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.
37
Evolução e Arquitetura de Computadores
38
4.2.1 - Monitor de Vídeo Semelhante a um aparelho receptor de televisão, onde são apresentados os dados ou informações solicitadas pelo usuário (ver Figura 4.5).
Figura 4.5 – Monitores CRT e LCD, vistos da esquerda para direita
Dois tipos básicos de monitor são usados com os computadores. O primeiro é o típico monitor que você ver nos computadores de mesa; ele se parece muito com uma tela de televisão e funciona da mesma maneira. Esse tipo usa um tubo grande de vácuo, chamado CRT (Cathode Ray Tube- tubo de raios catódicos). O segundo tipo, conhecido como monitor de tela plana é comumente usado em not ebooks. A maioria deles emprega LCDs (Liquid Crystal Displays – vídeos de cristal liquido) para converter as imagens.
4.2.2 - Impressoras Impressora é um equipamento que permite criar cópias em papel de grácos, textos, desenhos, planilhas e outros trabalhos criados no computador. A resolução da impressora é medida em pontos de tinta por polegada, também conhecida como dpi. Geralmente, quanto mais pontos por polegada, melhor será o resultado impresso. Existem vários tipos de impressoras. Cada uma delas possui características especícas para valorizar a qualidade de imagem produzida. As impressoras (Figura 4.6) podem ser classicadas em: Impressoras com impacto: utilizam “martelos” que pressionam uma ta carbono contra o papel de impressão (geralmente os chamados “formulários contínuos”), e podem ser de dois tipos: •
•
Impressora serial ou matricial : possuem agulhas ou pinos na cabeça de impressão, que percorrem toda a extensão da página e que são responsáveis pela transferência da tinta da ta para o papel. (Obs.: quanto maior o número de pontos impresso pelas agulhas, melhor será a denição do caracter do documento). A impressão é feita caracter por caracter; Impressora de linha : que imprime os caracteres de uma linha completa de uma só vez.
As impressoras sem impacto são impressoras silenciosas e são classicadas em: •
•
•
Jato de tinta - têm processo semelhante ao das matriciais, pois também possuem cabeça de impressão que percorre toda a extensão da página, só que esta cabeça de impressão possui pequenos orifícios, através dos quais a tinta do cartucho é lançada sobre o papel. Algumas têm uma ótima qualidade de impressão quase se igualando às de L aser. São as impressoras mais utilizadas. Fusão térmica ou também conhecidas como “dye sublimation” - usadas em empresas onde a qualidade prossional dos documentos, panetos e apresentações é mais importante que o custo dos consumíveis. Possuem uma qualidade prossional nas cópias efetuadas, mas o seu custo é muito maior do que o das impressoras jato de tinta. Térmicas - embora sejam mais rápidas, mais econômicas e mais silenciosas do que outros modelos de impressoras, as impressoras térmicas praticamente só são utilizadas hoje em dia em aparelhos de fax e máquinas que impr imem cupons scais e extratos bancários. O grande problema com este método de impressão é que o papel térmico utilizado desbota com o tempo.
Evolução e Arquitetura de Computadores
•
Laser - são impressoras com baixíssimo nível de ruído, possui um processo de impressão idêntico ao das fotocopiadoras. Produzem resultados de grande qualidade para quem quer desenho gráco ou texto, utilizando a tecnologia do laser.
Figura 4.6 – impressoras lazer, jato de tinta e matricial de recibos, vistas da esquerda para direita
4.2.3 - Plotters Plotter ou plotadora (Figura 4.7) é um tipo especial de dispositivo de saída. Parece uma impressora, porque produz imagens sobre uma folha de papel, mas o processo utilizado é diferente. As plotadoras destinam-se a produzir grandes desenhos ou imagens, como plantas para a construção de prédios ou anteprojetos de objetos mecânicos. A plotadora usa um braço robótico para desenhar com canetas coloridas sobre uma folha de papel.
Figura 4.7 - Plotter
4.2.4 - Speakers Os speakers ou caixas de som servem para transmitir sons através do micro, sejam músicas ou sons de voz. São ecazes para usuários com deciência visual e para soft ware especializados nesse tipo de usuário.
39
Evolução e Arquitetura de Computadores
40
5.
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 contém, tipicamente, de 50 a 100 linhas distintas. Cada linha possui uma função ou signicado particular. Embora existam diferentes projetos de barramentos, as linhas de um b arramento podem ser classicadas em três grupos 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. Como as linhas de dados e endereço são compartilhadas por todos os componentes, 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).
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éricos 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) possam 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 diferente, 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 entrada 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
41
Evolução e Arquitetura de Computadores
42
5.1.2 - Barramento PCI O barramento 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 (Industry 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 congurar jumpers 6 e interrupções IRQs 7, tarefa difícil até para profissionais da área.
A proposta do padrão USB é substituir a innidade de conectores diferentes empregados nos computadores 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)
Evolução e Arquitetura de Computadores
Figura 5.6 - Conector USB
5.1.5 - Barramento Firewire O barramento Firewire (também conhecido por IEEE 1394) é um barramento externo ao micro, similar ao USB. Ou seja, você pode instalar periféricos Firewire ao micro mesmo com ele ligado. O sistema operacional detecta que um novo periférico foi adicionado e trata de instalar os drivers necessários. A grande diferença entre o Firewire e o USB é o desempenho. Enquanto que no USB os dados são transferidos a, no máximo, 12 Mbps, na versão atual do Firewire os dados são transferidos a 400 Mbps, ou seja, o Firewire é 33 vezes mais rápido do que o USB. O Firewire foi desenvolvido, inclusive, tendo em mente a transferência de dados grandes, como lmes sendo transferidos em formato digital entre câmeras digitais e o PC, por exemplo. Enquanto que o USB é atualmente suportado por todos os chipsets (circuitos de apoio da placa-mãe) - fazendo com que todas as placas-mãe do mercado possuam portas USB, quase nenhum chipset para placas-mãe de PCs suporta o Firewire O cabos que permitem a conexão de dispositivos em uma interface FireWire 400 podem ser compostos por até 6 vias. Já no caso do FireWire 800, o cabo pode conter até 9 vias. A Figura 5.7 mostra os conectores e as entradas FireWire que são padrão de mercado.
Figura 5.7 – Conectores e entradas padrão Firewire
5.1.6 - Slots de expansão e adaptadores Os computadores mais recentes foram projetados para serem abertos e adaptados ou congurados, de acordo com a necessidade particular de cada usuário. A maioria das placas-mãe dos computadores tem oito slots de expansão, que servem como extensões do barramento do computador. Esses slots permitem que os componentes que não estão sicamente ligados ou soldados na placa-mãe obtenham acesso ao barramento do computador. Geralmente, as únicas exceções são o teclado e, as vezes o mouse; o soquete do teclado está rmemente soldado na placa-mãe e alguns computadores também têm portas especiais para o mouse na própria placa-mãe. A maioria dos PCs vem com dois ou mais slots de expansão ocupados com placas de circuito que têm várias nalidades. Essas placas são chamadas de adaptadores, cartões ou às vezes simplesmente placas. Os slots de expansão na placa-mãe são usados pra três nalidades: 1) Para dar aos dispositivos internos, como discos rígidos e as unidades de disquete, acesso ao barramento do computador via placas controladoras.
43
Evolução e Arquitetura de Computadores
44
2) Para oferecer placas de E/S, na par te traseira do computador, para dispositivos externos como monitores de vídeo, modems, placas de redes externas, impressoras e mouses (para computadores que não tenham uma porta interna própria para esse dispositivo). 3) Para dar aos dispositivos de uso especial acesso ao computador. Por exemplo. A placa de acelerador de clock, que aumenta a velocidade de processamento, é um dispositivo independente que obtém acesso à CPU e à memória do computador por meio do barramento.
Os dois primeiros são funções de E/S. Eles não apenas oferecem uma porta à qual os dispositivos podem ser conectados – servem de tradutores entre o barramento e o dispositivo em si.
O que fazer com um slot de expansão vago? Talvez você queira instalar uma placa de som que produza áudio de alta qualidade. Essas placas adicionais conguram seu micro para aplicativos de multimídia. Se você preferir um modem interno em vez do tipo externo (que requer uma porta serial), ele ocupará um slot, e muitos outros dispositivos podem vir com adaptadores que precisam de slots – por exemplo, controladores para unidades de ta, scanners requerem um slot para a sua instalação.
5.2 - Portas de comunicação 5.2.1 - Portas seriais e paralelas Internamente, os componentes do computador comunicam-se em paralelo. A Interface paralela, também denominada LPT (Figura 5.8), é aquela na qual há oito os ou mais por meio dos quais os bits que representam dados podem uir simultaneamente, como no barramento. O barramento do computador geralmente transfere 16 ou 32 bits simultaneamente; entretanto a interface paralela padrão para dispositivos externos, como as impressoras, transfere 8 bits de cada vez em oito os separados. Como a porta paralela é muito lenta todos os fabricantes migraram estes periféricos para a porta USB. Na interface serial, também denominada COM (Figura 5.8), os bits de dados uem um de cada vez em um único arquivo. Um chip chamado UART ( Universal Assynchronous Receiver-Transmitter – receptor-transmissor assíncrono universal) na placa de entrada/saída do computador converte os dados paralelos do barramento em dados seriais que podem uir através de um cabo serial ou o telefônico. Como é de se esperar, a interface paralela pode manipular um volume muito maior de dados do que a interface serial. As portas paralelas têm um conector de 25 pinos do lado do computador. No lado da impressora o cabo paralelo tem um conector especial chamado interface Centronics, que impede que os usuários liguem, inadvertidamente, a extremidade errada do cabo na impressora.
Figura 5.8 – interface paralela e serial
Evolução e Arquitetura de Computadores
Exemplos de dispositivos seriais: mouse, trackball e dispositivos apontadores em geral; impressoras (raramente); modems externos. Exemplos de dispositivos paralelos: unidades óticas externas, impressoras (matriciais); plotters; zip drive . 8
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” signica 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 sem 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 computador, desta maneira este computador poderá trocar arquivos com qualquer outro equipamento que possua infravermelho (IRDA). Bluetooth: é um padrão global de comunicação sem o e de baixo consumo de energia que permite 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 sucientes 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”.
45
Evolução e Arquitetura de Computadores
46
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 controle 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 componentes. 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 buer de dados, interface com a CPU). É responsável pelas informações necessárias ao reconhecimento de hardware (armazenadas na sua memória ROM).
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 sicamente 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.
47
Evolução e Arquitetura de Computadores
48
5.6 - Fonte de Alimentação Por se tratar de um dispositivo elétrico o computador precisa de eletricidade para que todos os seus componentes funcionem de forma adequada. O dispositivo responsável por prover eletricidade ao computador é a de fonte de alimentação. De forma bastante sucinta poderíamos dizer que a principal função da fonte de alimentação é converter a tensão alternada fornecida pela rede elétrica presente na tomada de sua casa ou escritório (também chamada CA ou AC) em tensão contínua (também chamada CC ou DC). Em outras palavras, a fonte de alimentação converte os 110 V ou 220 V alternados da rede elétrica convencional para as tensões contínuas utilizadas pelos componentes eletrônicos do computador, que são: +3,3 V, +5 V, +12 V e -12 V (tensões alternadas variam pelo mundo e mesmo no Brasil variam de cidade a cidade. A fonte de alimentação (Veja Figura 5.14) talvez seja o componente mais negligenciado do computador. Normalmente na hora de comprar um computador, só levamos em consideração o clock do processador, o modelo da placa-mãe, o modelo da placa de vídeo, a quantidade de memória instalada, a capacidade de armazenamento do disco rígido, e esquecemo-nos da fonte de alimentação, que na verdade é quem fornece o “combustível” para que as peças de um computador funcionem corretamente A maioria das fontes de alimentação tem uma chave 110 V/220 V ou então pode ser do tipo “automática”, “bivolt” ou “auto range”, o que signica que a fonte pode funcionar em qualquer tensão CA (normalmente entre 100 V e 240 V; a faixa de operação suportada está impressa na etiqueta da fonte de alimentação em um campo chamado “AC Input” ou “Entrada CA”. Uma fonte de alimentação de boa qualidade e com capacidade suciente pode aumentar a vida útil do seu equipamento e reduzir sua conta de energia. Para se ter uma idéia, uma fonte de alimentação de qualidade custa menos de 5% do preço total de um micro. Já uma fonte de alimentação de baixa qualidade pode causar uma série de problemas intermitentes, que na maioria das vezes são de difícil resolução.
Uma fonte de alimentação defeituosa ou mal dimensionada pode fazer com que o computador trave, pode resultar no aparecimento de setores defeituosos (“bad blocks”) no disco rígido, pode resultar no aparecimento da famosa “tela azul” e resets aleatórios, além de vários outros problemas. Existem vários diferentes padrões de fontes de alimentação para PCs. Esses padrões denem não apenas o tamanho físico, mas também o tipo de conectores de uma fonte de alimentação. Os dois principais são:
AT: Este padrão foi introduzido pelo IBM PC AT em 1984 e foi usado até o padrão ATX ganhar popularidade em meados dos anos 90. Fontes de alimentação AT fornecem quatro tensões, +5 V, +12 V, -5 V e -12 V, e o cabo principal da placa-mãe usa um conector de 12 pinos. ATX: em 1996 a Intel introduziu um novo formato de placa-mãe chamado ATX para substituir o antigo formato AT. Como a placa-mãe ATX tinha dimensões físicas completamente diferentes, novos gabinete foram necessários (“gabinetes ATX”, ao contrário dos “gabinetes AT” usados até então). Com este novo formato de placa-mãe a Intel também propôs um novo tipo de fonte de alimentação com novos recursos, tais como o uso de um conector da placa-mãe de 20 pinos e a introdução de novas tensões, +3,3 V e +5VSB, também conhecida como “tensão de standby”.
Evolução e Arquitetura de Computadores
Figura 5.14 - Fonte Alimentação 450W
Um dos fatos que contribuíram para que o padrão AT deixasse de ser usado (e o ATX fosse criado), é o espaço interno reduzido, que com a instalação dos vários cabos do computador (cabo at, alimentação), dicultavam a circulação de ar, acarretando, em alguns casos, danos permanentes à máquina, devido ao super aquecimento. Isso exigia grande habilidade do técnico montador para aproveitar o espaço disponível da me lhor maneira. Além disso, o conector de alimentação da fonte AT, que é ligado à placa-mãe, é composto por dois plugs semelhantes (cada um com seis pinos), que devem ser encaixados lado a lado, sendo que os os de cor preta de cada um devem car localizados no meio. Caso esses conectores sejam invertidos e a fonte de alimentação seja ligada, a placa-mãe será fatalmente queimada. Com o padrão AT, é necessário desligar o computador pelo sistema operacional, aguardar um aviso de que o computador já pode ser desligado e clicar no botão “Power” presente na parte frontal do gabinete. Somente assim o equipamento é desligado. Isso se deve a uma limitação das fontes AT, que não foram projetadas para fazer uso do recurso de desligamento automático. Os conectores das fontes AT e ATX são mostrados na Figura 5.15. Repare que o único que muda entre um padrão e outro é o conector que alimenta a placa-mãe. No caso do padrão AT, esse conector possui 12 os. No padrão ATX, esse conector possui 20 vias (há modelos com 24 vias). Além disso, o encaixe do conector ATX é diferente, pois seus orifícios possuem formatos distintos para impedir sua conexão de forma invertida. No padrão AT, é comum haver erros, pois o conector é dividido em duas partes e pode-se colocá-los em ordem errada. A seqüência correta é encaixar os conectores deixando os os pretos voltados ao centro.
Figura 5.15 - Conector da Fonte ATX e Conector da fonte AT, respectivamente
49
Evolução e Arquitetura de Computadores
50
6.
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 signica o valor 600, mas no número 461 signica 60. Diariamente trabalhamos com o sistema posicional decimal, 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 correspondem 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
Evolução e Arquitetura de Computadores
– Byte = 8 bits – Palavra (word ), conforme a arquitetura ocupará n bytes. – Caracter: conjunto de n bits que dene 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 unidade: 24 -1 = 16- 1= 15. Isto signica 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 overow 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;
51
Evolução e Arquitetura de Computadores
52
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 signicativo 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
Regra de overow
Regra de subtração
Acrescente posições de bit à esquerda e preencha esses bits com o valor do bit de sinal original Se dois números com mesmo sinal (ambos positivos ou ambos negativos) forem somados, ocorrerá overow apenas se o resultado tiver sinal oposto Para subtrair B de A, pegue o complemento de dois de B e some-o com A
Vejamos a aplicação do complemento de dois no inteiro positivo 4 (0100 2) 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
Evolução e Arquitetura de Computadores
Expressão 6.6 – Conversão do valor decimal -120 para seu valor binário
Vejamos a conversão entre representação de um número inteiro com n bits para sua representação com m bits, onde m > n: •
•
Notação sinal-magnitude:
+10 = 00001010 (8 bits)
0000000000001010 (16 bits)
-10 = 10001010 (8 bits)
1000000000001010 (16 bits)
Notação complemento de dois:
+10 = 00001010 (8 bits)
0000000000001010 (16 bits)
-10 = 11110110 (8 bits)
1111111111110110 (16 bits)
6.2.2 - Negação em complemento de dois Na regra para a negação, basta aplicar o complemento de 2 ao inteiro original, como exemplicado na Tabela 6.4. Há casos especiais para a negação em complemento de dois: •
Se o número for 0, para uma representação em 8 bits, o bit “vai um” (carry-in) com o valor obtido na posição mais a esquerda é ignorado, como pode ser visualizado na Expressão 6.7.
•
Se negarmos o padrão de bits constituído de um bit com valor 1 seguido de n-1 bits de valor 0, obteremos esse mesmo número. Como exemplo, para uma palavra de 8 bits, ilustrado Expressão 6.8.
Expressão 6.7 – Complemento de dois de 0
53
Evolução e Arquitetura de Computadores
54
Expressão 6.8 – Complemento de dois de -128
Caso especial: sempre que o número com sinal tiver um 1 no bit de sinal e zero em todos os outros bits, seu equivalente decimal será -2n sendo n número magnitude, como mostrado no exemplo abaixo: 1000 = -23 = - 8
01000 = + 8
10000 = -24 = - 16
010000 = + 16.
6.2.3 - Adição em binário As regras básicas para a adição em binário são mostradas na Expressão 6.9:
Expressão 6.9 – Regras para adição em binário
Para executar a adição em complemento de dois, basta somar e quando ocorrer um “vai-um” para fora do bit mais signicativo da palavra, que é ignorado. Exemplo mostrado na Expressão 6.10 e na Expressão 6.11
Expressão 6.10 – Adição em binário
Expressão 6.11 – Soma em binário com overow
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 complemento 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 overow
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 multiplicaçã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 0x1=0 1x0=0 1x1=1 Como exemplo, vamos multiplicar 1001 2 (9d) por 11002 (12d) cujo produto resulta em 1101100 (108d), ilustrado na Expressão 6.15.
55
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 multiplicaçã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. Adicionalmente, cada produto parcial é deslocado à esquerda um número de bits que é função do bit do multiplicador 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
Evolução e Arquitetura de Computadores
colocá-lo no multiplicador. Se os sinais dos dois valores forem os mesmos, ambos positivos ou ambos negativos, 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; encontrado 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.
57
58
Evolução e Arquitetura de Computadores
6.3 - Sistema numérico hexadecimal O sistema numérico hexadecimal tem base igual a 16. Se a base é 16, vamos precisar de 16 símbolos diferentes para algarismos. No sistema hexadecimal, os algarismos são: “0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F”. As letras A, B, C, D, E e F correspondem respectivamente aos decimais 10, 11, 12, 13, 14 e 15. Foram escolhidos esses símbolos, a m de tornar a escrita dos números mais fácil. Tal como para o caso do sistema binário, também aqui, nós podemos determinar, através da mesma fórmula, qual o maior número decimal que é possível representar com um determinado número de algarismos hexadecimais. Geralmente, os números hexadecimais são escritos com um prexo “$” ou “0x”, ou com o suxo “h”, para realçar o sistema numérico que estamos a utilizar. Assim, o número hexadecimal A37E, pode ainda ser mais corretamente escrito como $A37E, 0xA37E ou A37Eh. Para traduzirmos um número hexadecimal para o sistema numérico binário, não é necessário executar qualquer cálculo mas, simplesmente, substituir cada algarismo do número pelos dígitos binários que o representam. Como o valor máximo representado por um algarismo no sistema hexadecimal é 15, isso signica que são precisos 4 dígitos binários, para cada algarismo hexadecimal. Exemplo mostrado na Expressão 6.17.
Expressão 6.17 – Conversão de hexadecimal para binário
Se convertermos ambos os membros da identidade para o sistema numérico decimal, obtemos, em ambos os casos, o número decimal 228, o que comprova que não nos enganamos. Para obter o equivalente decimal a um número hexadecimal, precisamos multiplicar cada algarismo do número, por uma potência de 16, cujo expoente, deve corresponder à posição desse algarismo, no número hexadecimal. Em seguida, deve-se adicionar todos os resultados obtidos. Exemplo mostrado na Expressão 6.18
Expressão 6.18 – conversão de hexadecimal para decimal
A adição, também é executada, tal como nos dois exemplos precedentes. Exemplo mostrado na Expressão 6.19.
Expressão 6.19 – Adição em hexadecimal
Quando adicionamos dois algarismos hexadecimais, se a respectiva soma for igual a 1 6, escrevemos ‘0’ na posição respectiva e adicionamos uma unidade á soma dos dois algarismos que se seguem. Quer dizer, se a soma dos dois algarismos for, por exemplo, 19 (19 = 16 +3) escrevemos ‘3’ nessa posição e, transferimos o ‘1’ para o algarismo imediatamente a seguir. Se vericarmos, a primeira parcela é o número 14891 e a segunda parcela da soma é 43457. A soma das duas parcelas é 58348, que coincide com o equivalente decimal do
Evolução e Arquitetura de Computadores
número hexadecimal $E3EC. A subtração, também segue um processo idêntico ao dos dois outros sistemas. Se o algarismo do subtraendo for menor que o do subtrator, é necessário decrementar em uma unidade, o algarismo seguinte no subtraendo. Um exemplo de subtração em hexa é mostrado na Expressão 6.20.
Expressão 6.20- Subtração em hexa
Analisando o resultado, vericamos que o subtraendo e o subtrator, correspondem, respectivamente, aos decimais 11590 e 5970, a diferença é 5620, que é o número que obtemos se zermos a conversão de $15F4, para o sistema numérico decimal.
6.4 - Conversão de bases 6.4.1 - Decimal-binário A conversão consiste em dividir o número representado na base 10 sucessivamente pela nova base em que se deseja representá-lo, até que o quociente da divisão seja menor que a base em questão. Em seguida toma-se o último quociente e os restos das sucessivas divisões em ordem inversa e obtém-se, assim, a representação do número na nova base. Exemplo mostrado na Expressão 6.21: converter 27 10 para a base 2.
Expressão 6.21 - Conversão decimal-binário
Portanto 2710 = 110112
6.4.2 - Hexadecimal – Binário Na conversão HEX-BIN, convertemos cada digito Hexadecimal separadamente em quatro dígitos, fazendo uso da tabela Hexadecimal (Tabela 6.2) . Tabela 6.2 – Conversão hexa-binário
F
6
A
9
1111
0110
1010
1001
6.4.3 - Binário - Hexadecimal Para a conversão de binário em hexadecimal faremos o processo inverso ao Hexadecimal - Binário. Se o número Binário não for divisível por 4, adicionamos os zeros necessários à esquerda.
59
Evolução e Arquitetura de Computadores
60
Exemplo (Tabela 6.3): converter: 1101101010011 2 em hexa Tabela 6.3 – Conversão binário-hexa
0001
1011
0101
0011
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 bn-2 + ... + d1 x b1 + d0 x b0 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
Evolução e Arquitetura de Computadores
Tabela 6.4 – Números em decimal, binário, octal e hexadecimal
61