Baixe o app para aproveitar ainda mais
Prévia do material em texto
Osmar Ventura Ana Paula da Costa Cardoso Arquitetura de Computadores 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 OSMAR VENTURA ANA PAULA DA COSTA CARDOSO ARQUITETURA DE COMPUTADORES Belo Horizonte Novembro de 2015 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 COPYRIGHT © 2015 GRUPO ĂNIMA EDUCAÇÃO Todos os direitos reservados ao: Grupo Ănima Educação Todos os direitos reservados e protegidos pela Lei 9.610/98. Nenhuma parte deste livro, sem prévia autorização por escrito da detentora dos direitos, poderá ser reproduzida ou transmitida, sejam quais forem os meios empregados: eletrônicos, mecânicos, fotográficos, gravações ou quaisquer outros. Edição Grupo Ănima Educação Vice Presidência Arthur Sperandeo de Macedo Coordenação de Produção Gislene Garcia Nora de Oliveira Ilustração e Capa Alexandre de Souza Paz Monsserrate Leonardo Antonio Aguiar Equipe EaD 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 Conheça o Autor Osmar Ventura é mestrando em Engenharia Elétrica, especialista em Administração de Redes de Computadores e Tecnologias em Educação a Distância e graduado em Tecnologia em Processamento de Dados. Atualmente, é professor-assistente do Centro Universitário UNA e do Centro Universitário de Belo Horizonte (Uni-BH) e coordenador de operações do Núcleo de Educação a Distância do Grupo Ănima Educação. Possui experiência na área de Engenharia de Computação, em projetos de sistemas digitais, segurança de redes computacionais e tecnologia para a educação. É professor convidado nos cursos de especialização do IEC - PUC Minas. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 Conheça a Coautora Ana Paula da Costa Cardoso é engenheira eletricista com ênfase em Eletrônica pela Escola de Engenharia de Lins/SP, especialista em Educação e mestre em Redes de Computadores pela Universidade Federal de Uberlândia/ MG. Cursando especialização em Engenharia de Produção. Profissional com 15 anos de experiência docente nos cursos de Computação (Processamento de Dados, Sistemas de Informação, Ciência da Computação, Engenharia da Computação, entre outros) e engenharias. Consultora do MEC (Ministério da Educação e Cultura) do Governo Federal, exercendo as atividades de avaliadora de cursos de graduação presenciais e EaD, desde 2006. Experiência profissional, fora da docência, com consultorias nas áreas de desenvolvimento de sistemas, gerenciamento de softwares, área comercial e projetos de redes de computadores. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 Prezado(a) aluno(a), um momento de dificuldade que todos já passamos ou com certeza iremos passar é no ato da compra de um computador. Uma pergunta simples a um vendedor, do tipo “eu gostaria de comprar um notebook, qual modelo você tem?”, deveria ser seguida também por uma resposta simples, mas não é. A resposta vem incorporada de uma lista de dados técnicos, como por exemplo: Marca: Positivo, Processador - Intel Celeron Dual Core, Modelo Processador: 847, Cache 2M Cache, Chipset Intel NM70, Memória RAM 4GB, Placa Mãe Positivo, HD 750GB, Drives Leitor e Gravador de CD/DVD (Gravador de CD 24x, Gravador de DVD 8x), Tamanho da tela 14”, Rede 10/100/1000 Mbps Gigabit Ethernet. Diante de tantas informações, o usuário opta por uma característica e praticamente escolhe às escuras. Na grande maioria, a frequência do processador e o tamanho do HD determinam a qualidade do equipamento, o que na realidade pouco pode-se afirmar com poucas informações. O computador funciona como uma indústria e sua linha de produção. Cada elemento possui uma função na linha de produção, causando influência direta no custo e desempenho. A disciplina Arquitetura de Computadores tem como objetivo apresentar uma base teórica para um entendimento de todas estas características que envolvem os equipamentos eletrônicos, principalmente os computadores, fornecendo explicações amplas sobre os principais elementos que compõem a estrutura de um computador, permitindo desenvolver um pensamento analítico e coerente diante das constantes evoluções tecnológicas. Nela, você verá noções básicas de sistemas de numeração e sistemas digitais; o funcionamento e as principais características da Unidade Central de Processamento, memórias, barramentos e os dispositivos Apresentação da disciplina 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 de entrada e saída; comparativo entre arquiteturas RISC e SISC; desempenho de computadores e tecnologias emergentes. Assim, ao final da disciplina, você será capaz de entender o funcionamento dos principais elementos que compõem a Arquitetura de Computadores, a interação entre si e as diversas aplicações nas organizações. Bons estudos! 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 UNIDADE 1 003 Introdução à Arquitetura de Computadores 004 Computadores: origem e evolução 005 Arquitetura e organização de computadores 015 Estrutura e função 018 Conceitos complementares 022 Revisão 026 UNIDADE 2 029 Sistemas Numéricos 030 Sistemas Posicionais 033 Base de um sistema numérico 034 Conversões entre bases 041 Representação de dados 050 Revisão 075 UNIDADE 3 077 Sistemas Digitais 078 Conceitos básicos 079 Operadores lógicos 085 Circuitos lógicos 091 Revisão 096 UNIDADE 4 098 Unidade Central de Processamento 099 Organização do processador 101 Componentes 107 Ciclo de instrução 111 Pipeline de instruções 120 Principais tecnologias do mercado 122 Revisão 124 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 UNIDADE 5 126 Dispositivos de Memória 127 Sistema de memórias 128 Memória Principal 133 Memória Secundária 136 Registradores 143 Cache 143 Principais tecnologias do mercado 147 Revisão 149 UNIDADE 6 151 Barramentos 152 Estruturas de interconexão 153 Estruturas de barramento 156 Elementos de projeto 160 Principais tecnologias do mercado 161 Revisão 144 UNIDADE 7 167 Dispositivos de Entrada e Saída 168 Interface/Módulo de entrada e saída 169 Dispositivos externos 172 Métodos de Operação de E/S 173 Principaistecnologias do mercado 178 Revisão 179 UNIDADE 8 181 Novas Tecnologias 182 Processamento paralelo 183 Arquitetura de 64 bits 186 Desempenho 187 Revisão 195 REFERÊNCIAS 197 5 6 7 8 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 Introdução à Arquitetura de Computadores • Computadores: origem e evolução • Arquitetura e organização de computadores • Estrutura e função • Conceitos complementares • Revisão Introdução No estudo de Arquitetura de Computadores, será necessária a apresentação e o refinamento de alguns conceitos e definições acerca da computação. Nesta unidade, inicialmente, serão apresentadas a origem e a evolução dos computadores. Posteriormente, serão trabalhadas as diferenças entre arquitetura e organização de computadores, bem como as suas funções e estruturas. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 005 Computadores: origem e evolução Provavelmente, o computador é um dos inventos mais maravilhosos do homem. Atualmente existem diversos tipos de computadores nas mais variadas aplicações. Contudo, sua função inicial era bastante primitiva, ou seja, era usado somente para efetuar cálculos matemáticos básicos, como adição e subtração. Pode-se considerar que a história da criação e evolução dos computadores começa na Antiguidade, juntamente com a necessidade dos homens efetuarem contas. Há registros históricos sobre quando os pastores que buscavam uma forma de contar e armazenar o número de ovelhas do seu rebanho, usavam pequenas pedras, denominadas “calculus”, para representar cada uma de suas ovelhas. Tais “calculus” eram então armazenados em uma bolsa de couro e, em um determinado momento, as pedras armazenadas nas bolsas eram comparadas com cada uma das ovelhas do rebanho. Sobrando “calculus”, significava que havia perda de ovelhas; faltando, indicava que o rebanho, de uma forma ou outra, crescera. Nesse contexto, podemos entender a origem da palavra “calcular”, que nada mais é do que o simples fato de juntar pedras e compará- las com algum outro objeto. Nos dias de hoje, ao pensarmos em calcular algo, contamos com a formalidade da matemática para regulamentar a relação de quantidade numérica entre elementos. Na verdade, hoje temos uma matemática que define algo além do que simplesmente contar e comparar. À medida que a humanidade foi evoluindo, a necessidade de efetuar cálculos foi aumentando em importância e dificuldade. Gradativamente, foram surgindo operações matemáticas mais complexas para suprir determinadas necessidades que somente as operações elementares como somar, subtrair, multiplicar ou dividir Contudo, sua função inicial era bastante primitiva, ou seja, era usado somente para efetuar cálculos matemáticos básicos, como adição e subtração. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 006 A movimentação das pedras ou outro elemento, como botões de ossos, esferas, contas, entre cada uma das classes representa efetivamente a execução das operações matemáticas. não eram suficientemente capazes de atender. Nesse processo de evolução, o homem sempre desejou usar alguma ferramenta para ajudar na execução dos cálculos. A primeira ferramenta conhecida e usada para calcular denomina- se ábaco (FIGURA 1) e foi criada há aproximadamente 5.500 anos, na Mesopotâmia. Sua forma principal era baseada em uma tábua com marcações especiais indicando as classes numéricas (dezena, centena, milhar etc.) e um sistema de representação numérica que considerava a quantidade de “calculus” em cada marcação. A movimentação das pedras ou outro elemento, como botões de ossos, esferas, contas, entre cada uma das classes representa efetivamente a execução das operações matemáticas. FIGURA 1 - Ábaco Fonte: Site “Wikimedia Commons”. Abacus. E assim se inicia o surgimento do computador. Vamos entender um pouco mais? Acompanhe a seguir a história e evolução dos computadores. Blaise Pascal constrói, em 1642, uma máquina de calcular denominada Pascaline, com engrenagens mecânicas que permitiam efetuar operações de soma e subtração. Era um dispositivo que operava no sistema decimal e que foi construído para auxiliar no processo de cálculo de impostos para o governo francês. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 007 A ideia de Jacquard influencia o francês Charles Babbage a projetar uma máquina de calcular cujo processo de cálculo pudesse ser controlado por cartões. Fonte: Site “Wikimedia Commons”. Pascaline. FIGURA 2 - Pascaline Em 1801, Joseph Marie Jacquard inventa e constrói um sistema mecânico que usa cartões perfurados (metálicos) para codificar operações repetitivas de comando de teares, transformando parte do processo de controle das máquinas em automático. Daí surgiu a ideia de programar as máquinas de tecer para produzir padrões de cores diferentes. A ideia de Jacquard influencia o francês Charles Babbage a projetar uma máquina de calcular cujo processo de cálculo pudesse ser controlado por cartões. Em 1822, Babbage publica um trabalho intitulado “Differential Engine” com os princípios pelos quais uma máquina deveria se basear para efetuar operações algébricas. FIGURA 3 - Differential Engine Fonte: Site “Wikipedia”. Babbage Difference Engine. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 008 Em 1854, George Boole propõe e apresenta uma nova Álgebra (Álgebra Booleana), tendo por base a aplicação de operadores lógicos (E, OU, NÃO) a elementos algébricos. Todos esses conceitos são base da computação moderna. Em 1854, George Boole propõe e apresenta uma nova Álgebra (Álgebra Booleana), tendo por base a aplicação de operadores lógicos (E, OU, NÃO) a elementos algébricos. Herman Hollerit, em 1886, inventa um sistema para codificação de letras, algarismos e símbolos, sob a forma de perfurações realizadas em um cartão de papel, e constrói máquinas eletromecânicas (tabuladoras) que, mediante um programa armazenado externamente, realizam a leitura dos dados dos cartões e efetuam cálculos com os dados lidos, de modo a obter resultados sob formas previamente programadas. A utilização deste tipo de máquina sofre grande expansão ao longo dos anos, quando são acopladas às calculadoras eletromecânicas (mais tarde foram usadas válvulas eletrônicas)interpretadoras, separadoras/ intercaladoras e impressoras. Existiam equipamentos especializados Tal máquina não pôde ser totalmente construída por Babbage por limitações tecnológicas da época. Trabalhou junto com ele Ada Byron King, também chamada de Ada Lovelace, historicamente conhecida como a primeira programadora, pois desenvolvia programas para a máquina que estava sendo projetada por Babbage. Ada contribuiu para a computação apresentando os conceitos de: • subrotina: uma sequência de instruções que pode ser usada várias vezes; • loop: estrutura que permite a repetição de uma série de cartões; • salto condicional: permite saltar um ou mais cartões caso uma condição seja satisfeita. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 009 Howard Aiken produz, em 1944, um computador baseado nos conceitos da máquina de Babbage. para operações específicas, por exemplo, a separadora/intercaladora de cartões perfurados, as quais funcionavam com programas fixos. Para agrupar em ordem crescente um conjunto de cartões com um código de 5 algarismos, era necessário repetir a operação 5 vezes: uma vez para cada coluna perfurada. A construção e comercialização de tabuladoras deu origem à criação de grandes empresas nos Estados Unidos, como, por exemplo, a IBM - International Business Machines. Em 1936 o alemão Konrad Zuse apresenta o primeiro computador eletromecânico, denominado Z1. O computador executava cálculos lidos em fitas perfuradas (FIGURA 4). FIGURA 4 - Z1 Fonte: Site "Wikimedia Commons". Zuse. Howard Aiken produz, em 1944, um computador baseado nos conceitos da máquina de Babbage. De codinome Harvard Mark I, era um computador totalmente eletromecânico, construído através de uma parceria entre a Universidade de Harvard e a IBM para a Marinha Americana, que desejava uma calculadora de tabelas para uso na navegação. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 010 Ele foi projetado para auxiliar no cálculo de trajetórias balísticas. FIGURA 5 - Harvard Mark I Fonte: Site “Wikimedia Commons”. Harvard Mark I Computer – Right Segment. Paralelamente ao desenvolvimento do Mark I, sob a liderança dos engenheiros J. Presper Eckert e John Mauchly e com o patrocínio do Exército Americano, em 1946 é construído o primeiro computador a válvulas da história, o ENIAC – Eletronic Numeric Integrator and Calculator. Ele foi projetado para auxiliar no cálculo de trajetórias balísticas. A programação do ENIAC era realizada através de reconexão dos fios de um painel principal, e os ajustes dos dados eram efetuados por botões rotativos localizados em diversos outros painéis. FIGURA 6 - ENIAC Fonte: Site “Museu do Computador. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 011 A implementação de um computador que funcionava com o programa armazenado, em contraste ao modelo usado na época, em que o programa era lido diretamente do dispositivo de entrada e saída. O Professor John Von Neumann publica, em 1946, um trabalho intitulado “Electronic Discrete Variable Automatic Computer”, em que apresenta uma organização lógica otimizada para o projeto e desenvolvimento de computadores, a qual é usada até hoje nos projetos de computadores sendo conhecida como Arquitetura de Von Neumann, demonstrado pela FIGURA 7. FIGURA 7 – Arquitetura de John Von Neumann Memória Principal Dispositivos de entrada e saída UCP/CPU Fonte: Elaborado pelo Autor. A estrutura apresentada é formada pela Unidade Central de Processamento (CPU ou UCP), responsável pelo processamento de dados e controle das operações do computador, que contém a Unidade Lógica e Aritmética. Externamente a essa UCP, existe o conjunto de dispositivos denominados genericamente de periféricos e uma unidade de memória que é responsável pelo armazenamento de dados. Von Neumann também apresentou as ideias a seguir. • A implementação de um computador que funcionava com o programa armazenado, em contraste ao modelo usado na época, em que o programa era lido diretamente do dispositivo de entrada e saída. • A redução do volume de cabos e fios, empregando o sistema numérico binário em detrimento ao decimal utilizando a escala de 10:1 pares de fios, ou seja, para representar números de dois dígitos decimais, eram necessários 10 pares de fios usando o sistema decimal; para o sistema binário, é necessário usar no máximo 4 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 012 Esta alternativa apresenta uma melhoria no desempenho, mas incrementando o custo de produção do computador. pares para representar os mesmos números. • A implementação da proposta de Boole, quanto à utilização do sistema binário, era tecnologicamente mais adequada. Considerando todas as propostas de Von Neumann, em 1946 iniciou a construção do computador EDVAC, que entrou em operação em 1951. FIGURA 8 - EDVAC Fonte: BLOG INFORMÁTICA SIMPLES E FÁCIL, 2013. Uma abordagem alternativa a proposta por Von Neumann (FIGURA 9), é a chamada Arquitetura Harvard, diferindo apenas na configuração e acesso à unidade de memória, que passa a ser tratada de forma segmentada, ou seja, uma unidade para armazenamento de dados e outra para armazenamento de programas. Esta alternativa apresenta uma melhoria no desempenho, mas incrementando o custo de produção do computador. Esta arquitetura foi idealizada por Howard Aiken, com o apoio da IBM e da Marinha Americana, originando do computador Havard Mark, durante o período da Segunda Guerra Mundial. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 013 FIGURA 9 - Arquitetura Harvard Memória de Dados Memória de Instruções Dispositivos de entrada e saída UCP/CPU Fonte: Elaborado pelo Autor. Em 1948, nos Laboratórios BELL, nos Estados Unidos, é inventado o transistor, que contribuirá, a partir de 1960, para: • a miniaturização dos circuitos eletrônicos; • a redução do volume físico dos computadores; • o aumento do desempenho computacional; • a popularização dos computadores. FIGURA 10 - Transistor Fonte: HAUTSCH, 2010. No final da década de 1970 e início dos anos 1980, Clive Sinclair, no Reino Unido, concebe um computador minúsculo denominado ZX81, que integra na sua máquina um interpretador para uma linguagem de programação (BASIC - Beginers All-purpose Symbolic Instruction Code), utilizando como periféricos, além de um teclado de membrana, um receptor de TV e um gravador de “cassetes” musical para gravar os dados. A capacidade da memória desse computador era cerca de8 vezes maior que a do ENIAC. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 014 Paralelamente, Steven Jobs e Steven Wozinak, nos EUA, concebem, segundo os mesmos princípios de miniaturização, facilidade de utilização e baixo preço, um computador que denominam Apple I. FIGURA 11 - ZX81 Fonte: Site “Wikimedia Commons”. Sinclair ZX81. Paralelamente, Steven Jobs e Steven Wozinak, nos EUA, concebem, segundo os mesmos princípios de miniaturização, facilidade de utilização e baixo preço, um computador que denominam Apple I. Vários fabricantes iniciam, nessa época, a produção em larga escala de computadores de uso pessoal, de fácil utilização e baixo preço. Fonte: Site “Planeta Gadget”. FIGURA 12 - Apple I 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 015 São estudos sobre comportamento funcional de um computador, do ponto de vista do programador, com impacto direto sobre a execução lógica de um programa. Após esta viagem do tempo na computação aprendendo sobre a origem dos computadores atuais, iremos entender um pouco mais sobre a arquitetura e a organização dos computadores. Arquitetura e organização de computadores Arquitetura de Computador São estudos sobre comportamento funcional de um computador, do ponto de vista do programador, com impacto direto sobre a execução lógica de um programa. Trabalham com os atributos que o sistema computacional possui e que são visíveis aos programadores. A arquitetura de um computador pode sobreviver por muito tempo. Exemplos: • o conjunto de instruções válidas para uma determinada máquina; • o número de bits usados para a representação de dados; • os mecanismos de E/S (Entrada e Saída); • técnicas de endereçamento de memória. A arquitetura descreve como será a interseção entre o hardware e o software. Para ilustrar melhor este conceito, considere que um computador pode ser subdividido em partes dispostas hierarquicamente em diversos níveis, onde a complexidade em termos de implementação do nível mais baixo não é visível para o nível superior. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 016 São os circuitos eletrônicos que executam efetivamente cada instrução da máquina. FIGURA 13 - Computador de seis níveis Computador de 6 níveis Nível de linguagem orientada para solução de problemasNÍVEL 5 Nível da arquitetura do conjunto de instruções (ISA)NÍVEL 2 Nível da microarquitetura Nível lógico digital Nível de linguagem de montagem (assembly) NÍVEL 4 NÍVEL 1 NÍVEL 0 Nível do sistema operacional da máquinaNÍVEL 3 Fonte: TANENBAUM, 2006, p.3. Pela figura anterior, é apresentado um computador que estrategicamente foi subdividido em 6 níveis. Veja cada um deles a seguir: Nível 0 – Nível lógico digital: é o nível mais baixo. Representa o verdadeiro hardware da máquina. São os circuitos eletrônicos que executam efetivamente cada instrução da máquina. Neste nível, os elementos estudados/avaliados são chamados de portas lógicas e quando tratados individualmente, realizam funções elementares padrão (AND, OR, NOT). Nível 1 - Nível de microarquitetura: os elementos são uma combinação 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 017 Deve-se observar que o projeto de qualquer computador começa pela definição do conjunto de instruções do mesmo. de portas lógicas, os quais conceitualmente efetuam funções lógicas mais elaboradas. Somadores aritméticos, comparadores, registradores são exemplos de elementos presentes neste nível. Neste nível é possível encontrar blocos lógicos capazes de efetuar diversas operações, como por exemplo, uma adição. É interessante abstrair toda a complexidade que envolve a execução desta operação, esquecendo efetivamente do circuito eletrônico, da existência de portas lógicas e simplesmente, definir um código que representa toda a operação de adição. Assim é formado o Nível 2 apresentado a seguir. Nível 2 - Nível de arquitetura do conjunto de instruções (ISA – Instruction Set Architecture): apresentam-se os códigos que representam efetivamente cada operação que pode ser realizada pelo hardware. Neste nível é definida a linguagem de máquina de um determinado computador. Deve-se observar que o projeto de qualquer computador começa pela definição do conjunto de instruções do mesmo. É neste nível que se concentra o estudo desta disciplina. Nível 3 - Nível de sistema operacional da máquina: esconde a complexidade de entendimento de hardware e de funcionalidades específicas do computador, como por exemplo, como deve ser efetivamente o processo de leitura e escrita em uma unidade de armazenamento em massa. Neste nível são tratadas funcionalidades operacionais que permitem o uso dos recursos de hardware por grande parte dos usuários. Nível 4 - Nível de linguagem de montagem (assembly) e Nível 5 - Nível de linguagem orientada para solução de problemas: respectivamente, possibilitam que usuários mais avançados possam desenvolver ferramentas/aplicações que fazem do computador uma poderosa ferramenta para a solução de problemas. A visão do computador através deste nível é mais sofisticada e não apresenta toda a complexidade dos circuitos eletrônicos. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 018 A estrutura de um computador representa como os componentes estão ligados Organização de computador Trata dos aspectos que são transparentes aos programadores. Refere-se às unidades físicas operacionais e suas interconexões, as quais implementam uma determinada arquitetura. Temos como exemplo de objetos tratados em organização de computadores: • Sinais de controle • Interfaces entre o computador e os periféricos • Tecnologia de memória • Tamanho da memória física • Frequência de clock A organização de um computador muda com a evolução tecnológica. Estrutura e função Estrutura A estrutura de um computador representa como os componentes estão ligados. Podem-se citar quatro componentes estruturais principais: • Unidade Central de Processamento – CPU; • Memória Principal; • Entrada e Saída – E/S; • Sistema de Interconexão. A FIGURA 14 ilustra a relação entre estes componentes. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 019 FIGURA 14 - Estrutura de um computadorCPU Memória Principal Dispositivos de E/S Sistema de Interconexão Fonte: STALLINGS, 2010, p.14. STALLINGS (2010), apresenta os principais componentes estruturais e suas funções como: • Unidade Central de Processamento - CPU: possui as funções de controlar a operação do computador e processar os dados. • Memória Principal: responsável pelo armazenamento dos dados. • Entrada e Saída – E/S: Transfere dados entre o computador e o ambiente externo. • Sistema de Interconexão: Estabelece a comunicação entre CPU, memória principal e E/S. Os principais componentes da Unidade Central de Processamento (CPU) são unidade de controle, Unidade Aritmética e Lógica (ULA), registradores e interconexão da CPU (FIGURA 15). FIGURA 15 - Estrutura interna da CPU ULA Barramento Interno do CPU Registradores Unidade de Controle Fonte: STALLINGS, 2010, p.14. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 020 As principais funções de cada componente da CPU são: • Unidade de Controle: controla a operação da CPU. • Unidade Lógica e Aritmética (ULA): processamento de dados. • Registradores: armazenamento interno de dados para a CPU. • Interconexão da CPU: estabelece a comunicação entre a unidade de controle, ULA e registradores. Função A função de um computador é a descrição da operação de cada componente individualmente como parte da estrutura. O computador possui quatro funções básicas: • Processamento de dados • Armazenamento de dados • Transferência de dados • Controle Estas funções se relacionam compondo a visão funcional de um computador. Veja a FIGURA 16. FIGURA 16 - Visão funcional de um computador Mecanismo de Transferência de Dados Mecanismo de Controle Recurso de Armazenamento de Dados Recurso de Processamento de Dados Fonte: STALLINGS, 2010, p.8. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 021 Transferência Controle Memória Processamento Com estas quatro funções o computador é capaz de realizar poucos tipos de operações, na verdade, apenas quatro, sendo transferência de dados, armazenamento de dados e duas de processamento de dados. O QUADRO 1 ilustra estas operações. QUADRO 1 Operações desempenhadas pelo computador Operação Descrição Esquema Transferência de dados Armazenamento de Dados Processamento de dados Processamento de dados Transferindo dados de um periférico ou linha de comunicação para outra Transferindo dados do ambiente externo para a memória (leitura) ou vice- versa (escrita) Dados na memória Dados transferidos entre a memória e o ambiente externo Transferência Controle Memória Processamento Transferência Controle Memória Processamento Transferência Controle Memória Processamento Fonte: STALLINGS, 2010, p.9. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 022 Conceitos complementares A seguir, compreenda alguns conceitos necessários para o estudo desta disciplina. São eles: Computador: Atualmente trata-se de um dispositivo eletrônico capaz de tratar informações através de processamento numérico. São construídos para atender necessidades específicas ou para uso geral. O seu surgimento foi motivado pela necessidade de efetuar cálculos matemáticos com mais agilidade. Os modernos computadores são máquinas digitais, em contraste com os primeiros modelos de máquinas que usavam tecnologias e dispositivos analógicos para processamento. Hardware: Estrutura física empregada na construção de um computador considerando as características visuais, mecânicas e elétricas. Até os anos 1980, o hardware desenvolvido para um computador não era compatível com o hardware de outro computador, mesmo entre computadores de um mesmo fabricante. Atualmente, existem padrões de desenvolvimento e compatibilidade de hardwares, sendo possível usar um teclado fornecido pelo “fabricante X” tanto no “computador A” quanto no “computador B”. Software: Termo empregado para relacionar todos os elementos abstratos que envolvem o comportamento e o uso dos computadores. O software pode ser classificado conforme o seu relacionamento direto com o hardware ou com o usuário do computador, sendo básico, quando foram desenvolvidos para controlar diretamente um determinado hardware. Por outro lado, o software que foi concebido para relacionar ou facilitar a operação do computador pelo usuário é classificado como software utilitário. O seu surgimento foi motivado pela necessidade de efetuar cálculos matemáticos com mais agilidade. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 023 São exemplos de softwares básicos: • os sistemas operacionais Windows, Linux, Mac OS, Android; • os drivers de dispositivos como impressoras, scanners, câmeras fotográficas, pendrives; • tradutores e compiladores de linguagens para desenvolvimento de softwares; • firmwares, softwares que vêm gravados em alguns dispositivos eletrônicos (Ipod, televisão, micro-ondas etc.) e que são comumente denominados de BIOS. São exemplos de softwares utilitários: • softwares usados para navegar pela internet (Firefox, Chrome, Internet Explorer); • softwares para copiar um arquivo em um pendrive, ouvir músicas no computador, entre outros. Programa: Software que representa os elementos usados para descrever o comportamento esperado de um computador, ou seja, o que efetivamente o computador deverá executar em função do tempo e das variáveis de controle do próprio programa. Num nível mais baixo, entende-se como a descrição da sequência de operações matemáticas, instruções que um determinado computador deverá executar para desempenhar uma tarefa. Essa descrição deverá seguir uma ordem lógica e uma formalidade em suas sentenças, o que por sua vez caracteriza uma linguagem de programação de computadores. Linguagem de máquina: É a linguagem nativa de um computador a qual pode ser representada por um sequência de zeros e uns (0’s e 1’s) ou mesmo um gráfico de sinais elétricos. São as instruções básicas do computador. Essa linguagem é considerada a linguagem de mais baixo nível, por estar relacionada diretamente com o hardware do computador. Visando facilitar o desenvolvimento de softwares, diversos outros níveis e tipos de linguagens foram desenvolvidos, cada um com O seu surgimento foi motivado pela necessidade de efetuar cálculos matemáticos com mais agilidade. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 024 características específicas e voltado para uma determinada classe de problema (financeiro, científico, manipulação de textos etc.), bem comouma maior facilidade de manipulação por parte do programador. Tradução (compilação): Como na verdade o computador só entende/executa instruções na linguagem de máquina, é necessário transformar um programa descrito em uma linguagem diferente da linguagem nativa de um computador na linguagem de máquina própria do computador, que irá executar o programa (linguagem de máquina). Para efetuar essa transformação, são utilizados programas tradutores e/ou interpretadores de linguagens de programação de computadores. O Tradutor transforma ou converte o programa descrito da “Linguagem X” para a “Linguagem Y”. A tradução não é executada parcialmente, o programa descrito na nova linguagem só é gerado após a tradução de todo o programa na linguagem origem. Assim, para executar o programa na nova linguagem, o processo de tradução deverá ter sido encerrado com sucesso, sendo que, de outra forma, o novo programa não é criado. Somente após a criação do programa na nova linguagem é que ele poderá ser executado pelo computador. Exemplo: compiladores da “Linguagem C” (Dev-C++). Interpretação: É o processo que pode ser implementado por software ou diretamente por hardware. O interpretador não gera um novo programa, ele simplesmente transforma e imediatamente executa cada instrução do programa na linguagem origem diretamente na linguagem destino. Erros no processo de interpretação podem ocorrer ocasionando ou não a parada do processo; isso depende exclusivamente da implementação do interpretador. Diferentemente do tradutor, o interpretador não gera um novo programa para que futuramente possa ser executado. Como exemplo de interpretador, podem-se citar os navegadores da internet, os quais recebem programas na linguagem HTML, interpretando-a e executando cada um dos seus comandos. Havendo erros de interpretação, o processo não é interrompido e, por opção dos desenvolvedores dos interpretadores, os erros, às vezes, não são mostrados, e os resultados referentes à Interpretação: É o processo que pode ser implementado por software ou diretamente por hardware. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 025 execução do programa são exibidos na tela do computador. Memória: Dispositivo usado para armazenar conteúdos no formato digital. Pode ser classificado de acordo com a sua proximidade à Unidade Central de Processamento - CPU. Normalmente, seu volume de armazenamento é medido em bytes, o que define a unidade mínima de armazenamento. Tipicamente são denominados de Memória Principal os dispositivos externos que estão ligados diretamente à CPU e que armazenam o programa e os dados que estão em execução/processamento. Os dados e programas que não estão em execução normalmente são armazenados na memória secundária ou memória de armazenamento em massa, a qual está ligada à CPU indiretamente através dos dispositivos de Entrada/ Saída (I/O - Input/Output). É importante observar que é necessário sempre copiar os programas e dados da memória secundária para a principal a fim de executá-los. Exemplos: registradores, cache, HD, pendrive, DVD etc. Microprogramação: É um programa para controlar a operação do caminho de dados em computadores de três níveis. O auge da microprogramação foi nas décadas de 60 e 70. Com o crescimento do uso da microprogramação, os programas ficaram extensos e consequentemente mais lentos. Registrador: Tipo especial de memória formada por uma única célula, localizado na parte interna da CPU. O acesso ao registrador é exclusivo da CPU, e ele possui um tempo de resposta muito superior ao desempenho da Memória Principal. Palavra: O termo “Palavra” está associado ao tamanho ou à largura da célula que forma cada um dos registradores de uma CPU. Expressa o número de bits da célula de cada registrador. Quando se fala de uma CPU ou Processador de 32 bits, por exemplo, entre outras características, está sendo informado que normalmente os registradores da CPU possuem 32 bits de largura. Pode ser classificado de acordo com a sua proximidade à Unidade Central de Processamento - CPU. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 026 Nesta unidade foram apresentados os conceitos básicos de computação, bem como a motivação para o surgimento dos computadores. Um modelo clássico de implementação de computador chamado Arquitetura de Von Neumann, foi mostrado de forma sucinta. A necessidade de entendimentos sobre operações e representações numéricas são importantes à medida em que entendemos que os computadores atuais nada mais são do que complexas máquinas de calcular. Esta unidade servirá de base de consulta para o andamento da disciplina. Os computadores começaram com um tamanho físico enorme e uma capacidade de armazenamento mínimo se comparados aos padrões atuais. Renan Hamann em seu artigo intitulado “A evolução dos computadores”, comenta sobre a quarta geração como a “Geração dos notebooks” e indaga se a quinta geração será a dos múltiplos núcleos (processadores). Em seguida aponta para uma questão cada vez mais discutida na sociedade: Processamento Verde. Hoje, temos notebooks ultrafinos e com 8 núcleos representando altos índices de capacidade de processamento e consequentemente de desempenho, o que mostra que evoluímos em tamanho e capacidade de processamento. Infelizmente, pouco se comenta a respeito do Processamento Verde. Leia o artigo na integra disponível em: <http://www.tecmundo.com.br/ infografico/9421-a-evolucao-dos-computadores.htm> Revisão Nesta unidade, você conheceu as gerações de computadores, conforme apresentado a seguir: 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 http://www.tecmundo.com.br/infografico/9421-a-evolucao-dos-computadores.htm http://www.tecmundo.com.br/infografico/9421-a-evolucao-dos-computadores.htm ARQUITETURA DE COMPUTADORES unidade 1 027 QUADRO 2 Resumo das gerações de computadores Geração Datas Tecnologia Velocidade (operações por segundo) 1 1946-1957 Válvula 40.000 2 1958-1964 Transistor 200.000 3 1965-1971 Circuitos integrados em baixa (SSI) e média escala 1.000.000 4 1972-1977 Circuitos integrados em grande escala (LSI) 10.000.000 5 1978 Circuitos integrados em alta escala (VLSI) 100.000.000 Também foram abordados os seguintes assuntos: Fonte: TANENBAUM, 2007 [Adaptado]. QUADRO 3 Resumo dos assuntos abordados Arquitetura de um computador Refere-se aos atributos visíveis ao programador com impacto direto sobre a execução lógica de um programa. Atributos: conjunto de instruções, número de bits usados para a representação de dados, mecanismos de E/S e técnicas de endereçamento de memória. Como a arquitetura é implementada, ou seja, unidades operacionais e suas interconexões. Atributos: sinais de controle, interfaces entre computador e os periféricos e a tecnologia de memória. É a descrição da operação de cada componente individualmente como parte da estrutura. Funções Básicas de um computador: • Processamento de dados • Armazenamento de dados • Transferência de dados • Controle Representa como os componentes estão ligados. Principais componentesestruturais: • Central de Processamento - CPU: controla a operação do computador e processamento de dados. Principal: armazena dados. Entrada e Saída – E/S: transfere dados entre o computador e o ambiente externo. • Sistema de Interconexão: estabelece a comunicação entre CPU, memória principal e E/S. Família de modelos de Computadores: • mesma arquitetura e diferentes organizações. • Preços e características de desempenho diferentes. A Arquitetura de um computador pode sobreviver por muito tempo. A organização muda com a evolução tecnológica. • Microcomputadores: relação de arquitetura e organização muito estreita. Organização de um computador Arquitetura x Organização Função de um computador Estrutura de um computador Fonte: Elaborado pelo Autor. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 1 028 A necessidade de entendimentos sobre operações e representações numéricas são importantes à medida em que entendemos que os computadores atuais nada mais são do que complexas máquinas de calcular. A próxima unidade (Sistemas Numéricos) servirá de base de consulta para rever e discutir os conceitos dos sistemas numéricos usados na computação. O Museu do Computador é um espaço físico localizado em São Paulo/ SP composto de vários equipamentos que remontam a história da computação. O seu site tenta promover, às pessoas que não podem fazer visitações, a mesma riqueza de detalhes e curiosidades. Conhecer o passado da computação é criar bases para entender suas tendências atuais e futuras. Site “Museu do computador”. Disponível em: <http://www. museudocomputador.com.br/>. Acesso em: 06 jan. 2014. O vídeo a seguir retrata muito bem a história e o acervo do Museu do Computador. MUSEU DO COMPUTADOR. Olhar digital. (4min. 4seg.): son. color. Port. Disponível em: <http://olhardigital.uol.com.br/video/museu-do- computador/11962>. Acesso em: 06 jan. 2014. A matéria disponível no link a seguir explica de forma simples os componentes do computador com foco no hardware. Na verdade, são as características mais divulgadas dos computadores. É interessante observar os detalhes e anotar os itens que você não entendeu a funcionalidade. Ao final desta disciplina você terá condições de compreender o significado de cada componente descrito pelo autor. APRENDA INFORMÁTICA FACIL. Disponível em: <http://www. aprendainformaticafaci l .com.br/2013/02/componentes-do- computador.html#.UtF4Pfv67H0>. Acesso em: 06 jan. 2014 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 http://www.museudocomputador.com.br http://www.museudocomputador.com.br http://olhardigital.uol.com.br/video/museu-do-computador/11962 http://olhardigital.uol.com.br/video/museu-do-computador/11962 http://www.aprendainformaticafacil.com.br/2013/02/componentes-do-computador.html#.UtF4Pfv67H0 http://www.aprendainformaticafacil.com.br/2013/02/componentes-do-computador.html#.UtF4Pfv67H0 http://www.aprendainformaticafacil.com.br/2013/02/componentes-do-computador.html#.UtF4Pfv67H0 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 Sistemas Numéricos • Sistemas posicionais • Base de um sistema numérico • Conversões entre bases • Representação de dados • Revisão Introdução Os sistemas numéricos são mecanismos que definem os símbolos numéricos e as regras para a manipulação e representação dos valores a serem registrados. Na Antiguidade, duas formas de representar quantidades foram inventadas. Nesses sistemas, independentemente da posição que ocupavam na representação numérica, os símbolos/algarismos tinham um valor inerente a ele, “predefinido” (sistema numérico não-posicional). Inicialmente, os egípcios criaram um sistema em que cada conjunto de 10 unidades era representado por um símbolo diferente. FIGURA 17 - Sistema Numérico egípcio Fonte: Site "Free Math Worksheets”. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 Se escolhêssemos símbolos ao acaso e usássemos: Fonte: Núcleo de Educação a Distância (NEaD), Ănima, 2014. # para representar uma centena, & para representar uma dezena e @ para representar uma unidade, teríamos que ###&&@ representaria 321. O segundo sistema desenvolvido foi o sistema de numeração romano, no qual são usados símbolos (letras) que representam as quantidades. Por exemplo: • I (valendo 1), • V (valendo 5), • X (valendo 10), • C (valendo 100) etc. A regra de posicionamento determina que as letras que representam quantidades menores e precedem as que representam quantidades maiores sejam somadas; se o inverso ocorre, o menor valor deve ser subtraído do maior (e não somado). Assim, o número 128 é representado em algarismos romanos por CXXVIII (= 100 + 10 + 10 + 5 + 1 + 1 + 1 = 128). Por outro lado, o valor 94 é representado por XCIV (= (-10 + 100) + (-1 + 5) = 94). Nesses sistemas, os símbolos tinham um valor intrínseco, independentemente da posição que ocupavam na representação (sistema numérico não-posicional). Um grande problema desse sistema é a dificuldade de realizar operações com essa representação. Experimente multiplicar CXXVIII por XCIV! Assim, posteriormente, foram criados sistemas em que a posição dos algarismos no número passou a alterar seu valor. São os sistemas numéricos posicionais, ponto de partida para o estudo desta unidade. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 Nesta unidade, iremos rever e discutir os conceitos de sistemas numéricos usados na computação. Desenvolver habilidades para conversão numérica entre os sistemas numéricos decimal, binário, octal e hexadecimal. Entender o processo de representação e armazenamento de dados numéricos nos computadores modernos. Facilitar o entendimento para diferenciação dos tipos de dados de uma linguagem de programação de computadores. Vamos lá! 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 033 Sistemas posicionais Nos sistemas de numeração posicionais, o valor representado pelo algarismo no número depende da posição em que ele aparece na representação. O primeiro sistema desse tipo foi inventado pelos chineses. Eram usados palitos: • 1 a 5 palitos dispostos na vertical representavam os números 1 a 5; • 6 a 9 eram representados por 1 a 4 palitos na vertical, mais um palito na horizontal (valendo 5) sobre os demais. Cada número era então representado por uma pilha de palitos, sendo uma pilha para as unidades, outra para as dezenas, outra para as centenas etc. Essesistema, com as pilhas de palitos dispostas em um tabuleiro, permitia a realização das quatro operações aritméticas básicas. Não existia representação para o zero (o espaço relativo ficava vazio). O tabuleiro aritmético (chamado swan-pan), além das quatro operações, era usado na álgebra e na solução de equações. Essa técnica era chamada de Método do Elemento Celestial. Cada número era então representado por uma pilha de palitos, sendo uma pilha para as unidades, outra para as dezenas, outra para as centenas etc. Quer saber mais? Acesse o link: <http://pessoal.sercomtel.com.br/ matematica/fundam/numeros/numeros.htm> e fique por dentro sobre a origem dos números. Atualmente, usamos o sistema de numeração posicional para representar todos os valores numéricos em nosso cotidiano, por exemplo: • a quantidade de carros que passa por uma via, • o valor em reais de uma televisão, 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 http://pessoal.sercomtel.com.br/matematica/fundam/numeros/numeros.htm http://pessoal.sercomtel.com.br/matematica/fundam/numeros/numeros.htm ARQUITETURA DE COMPUTADORES unidade 2 034 • a idade de uma pessoa etc. O uso do sistema posicional significa que a posição ocupada por um algarismo em um número altera seu valor em uma potência de 10 (em sistema decimal) para cada casa à esquerda. Por exemplo, no sistema decimal (base 10), no número 125: • • o algarismo 1 representa 100 (uma centena ou 102), • • o 2 representa 20 (duas dezenas ou 1 x 101) e • • o 5 representa 5 mesmo (5 unidades ou 5 x 100). Assim, em nossa notação, 125 = 1 x 102 + 2 x 101 + 5 x 100. 1 centena (100 ou 102) 125 5 unidades (5 ou 5 x 100) 2 dezenas (20 ou 2 x 101) Base de um sistema numérico A base de um sistema de numeração indica a quantidade de algarismos disponíveis para a representação/formação numérica. A base 10 é hoje a mais comum, embora não seja a única utilizada. No comércio pedimos uma dúzia de rosas ou uma grosa de parafusos (base 12) e também marcamos o tempo em minutos e segundos (base 60). Os computadores, por sua vez, utilizam a base 2 (sistema binário), e os programadores em linguagem de baixo nível, por facilidade, usam em geral uma base que seja uma potência de 2, tal como 24 (base 16 ou sistema hexadecimal), ou eventualmente ainda 23 (base 8 ou sistema octal). A base 10 é hoje a mais comum, embora não seja a única utilizada. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 035 • Na base 10, dispomos de 10 algarismos para a representação do número: {0, 1, 2, 3, 4, 5, 6, 7, 8 e 9}. • Na base 2, são apenas 2 algarismos: 0 e 1. • Na base 16, utilizamos 16: os 10 algarismos aos quais estamos acostumados, mais os símbolos A, B, C, D, E e F, representando respectivamente 10, 11, 12, 13, 14 e 15 unidades. Notação: Para identificar a base que em que o número está, coloca-se o número da base no canto inferior direito do número. Numero base Por exemplo, o número 2 na base 8 será escrito como 28. A TABELA 1 ilustra as características: notação, quantidade de algarismos e os algarismos das diversas bases: TABELA 1 - Características das bases 2, 8, 10 e 16 BASE NOTAÇÃO QUANTIDADE DE ALGARISMOS ALGARISMOS base 2 binária base 8 octal base 10 decimal base 16 hexadecimal númerob Número2 Número 8 Número10 Número16 2 algarismos 8 algarismos 10 algarismos 16 algarismos b algarismos 0 e 1 0, 1, 2, 3, 4, 5, 6 e 7 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. O algarismo A representa o 10 na base 10, o B representa 11, até o F que representa o 15. Variando entre 0 e b-1 Fonte: Elaborada pelo Autor. A tabela a seguir ilustra a equivalência entre as bases. Por exemplo, o número 12 na base 10, equivale ao número 1100 na base 2, 14 na base 8 e C na base 16, Assim, 1210 = 11002 = 148 = C16 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 036 TABELA 2 - Equivalências entre as bases 2, 8, 10 e 16 BASE 10 BASE 2 BASE 8 BASE 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 A B C D E F Fonte: Elaborada pelo Autor. Generalizando, temos que uma base b qualquer disporá de b algarismos, variando entre 0 e (b-1). A representação do número 125,3810 (base 10) significa 1x10 2 + 2x101 + 5x100 + 3x10-1 + 8x102. Assim, para representar uma quantidade N qualquer, numa dada base b, com um número tal como segue, temos: Parte fracionáriaParte inteira Nb= an.b n + .... + a2.b 2 + a1.b 1 + a0.b 0 + a-1.b -1 + a-2.b -2 + .... + a-n.b -n (Expressão 1) Sendo que: an.b n + .... + a2.b 2 + a1.b 1 + a0.b 0 é a parte inteira (Expressão 2) e a-1.b -1 + a-2.b -2 + .... + a-n.b -n é a parte fracionária. (Expressão 3) 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 037 O maior número que pode ser representado na base 10 usando 3 algarismos será 999 (ou seja, 103 - 1 = 999). Genericamente falando, podemos ver que o maior número inteiro N que pode ser representado, em uma dada base b, com n algarismos (n “casas”), será N = bn – 1, assim como o menor número inteiro com n algarismos será formado por n vezes o primeiro algarismo da base em questão, ou seja, o algarismo 0 (zero). Ainda, a quantidade de números distintos a serem representados em uma base numérica b está relacionada com a quantidade de algarismos/dígitos ou casas numéricas usadas para a representação numérica. Então, a quantidade de números distintos a serem representados na base b com n algarismos é determinada pela equação bn. • Base 10 com dois dígitos (n=2 e b=10): é possível representar 102 = 100 números distintos, variando de 0 a 99. • Base 2 com dois dígitos (n=2 e b=2): é possível representar 22 = 4 números distintos, variando de 00 a 11. • Base 10 com três dígitos (n=3 e b=10): é possível representar 103 = 1000 números distintos, variando de 0 a 999. • Base 2 com dois dígitos (n=3 e b=2): é possível representar 23 = 8 números distintos, variando de 000 a 111. Nos sistemas de numeração, usamos o termo algarismo/dígito mais significativo para referenciarmos o algarismo ou dígito mais à esquerda de uma dada representação numérica. Por outro lado, o termo algarismo/ dígito menos significativo está associado ao dígito mais à direita de um número. Tomando como exemplo o número 8672, temos como dígito mais significativo o algarismo 8, e o 2 como o menos significativo. Podemos dizer que o algarismo 7 é o segundo dígito menos significativo, bem como o terceiro mais significativo e assim por diante. Nos sistemas de numeração, usamos o termo algarismo/dígito mais significativo para referenciarmos o algarismoou dígito mais à esquerda de uma dada representação numérica. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 038 Representação binária Os computadores modernos utilizam o sistema binário, isto é, todas as informações armazenadas ou processadas no computador são representadas usando apenas duas grandezas físicas, que matematicamente são representadas pelos algarismos 0 e 1. 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 ou mesmo corrente. Havendo apenas dois algarismos, portanto dígitos binários, o elemento mínimo de informação nos computadores foi denominado bit, que é o acrônimo de binary digit. Acesse o link: <http://www.aprendainformaticafacil.com.br/2013/01/bit-e- byte-sistema-ou-linguagem-binaria.html#.UtGuo_v67H0> e aprenda um pouco mais sobre números binários. Na base 2, o número representado pela sequência “10” é correspondente ao número dois na base 10, ou seja, 102 = 210. Então podemos afirmar que dez é igual a dois? – Não, dez não é e nunca será igual a dois! Na verdade, a sequência dos algarismos 1 e 0, ou seja, “10”, não significa necessariamente o número “dez”. Como estamos acostumados a associar “10” a “dez”, pois sempre pensamos no sistema de numeração decimal, achamos estranho falar que “10” é igual a 2. Considere as observações abaixo: • o número 102 deve ser lido como “um-zero” na base 2 e equivale ao número 2 na base 10 (210); • o número 105 deve ser lido com “um-zero” na base 5 e equivale ao número 5 na base 10 (510); 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 ou mesmo corrente. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 http://www.aprendainformaticafacil.com.br/2013/01/bit-e-byte-sistema-ou-linguagem-binaria.html#.UtGuo_v67H0 http://www.aprendainformaticafacil.com.br/2013/01/bit-e-byte-sistema-ou-linguagem-binaria.html#.UtGuo_v67H0 ARQUITETURA DE COMPUTADORES unidade 2 039 • o número 1010 pode ser lido como “um-zero” na base 10, ou como “dez” na base dez. • 1016, lido como “um-zero” na base 16, equivale ao número 1610. Portanto, “10” só será igual a “dez” se, e somente se, o número estiver representado na base dez. O número “10b” é sempre igual à base, porque, em uma dada base b, os algarismos possíveis vão ser sempre de 0 a (b - 1). Como o maior algarismo possível em uma dada base b é igual a (b-1), o próximo número será (b - 1 + 1 = b) e, portanto, será sempre 10. Assim, numa dada base qualquer, o valor da base será sempre representado por “10”. Toda vez que um número for apresentado sem que seja indicado em qual sistema de numeração ele está representado, entenderemos que a base é dez. Sempre que outra base for utilizada, a base será obrigatoriamente indicada por um índice na sequência do número. Considerando que a representação numérica binária é um sistema de numeração posicional, o algarismo 1 representa valores (pesos) diferentes e compatíveis com a sua posição relativa no número. Como o algarismo 0 indica um valor nulo, o valor representado por ele sempre será zero, independentemente de sua posição no número. Assim, é possível representar todos os demais números decimais no sistema binário, através da soma dos pesos dos algarismos 1 na representação numérica binária. Observe pela TABELA 3 como são formados os números em binário e seus correspondentes em decimal. Toda vez que um número for apresentado sem que seja indicado em qual sistema de numeração ele está representado, entenderemos que a base é dez. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 040 TABELA 3 – Exemplos de representação em binário Fonte: Elaborado pelo Autor. Representação em octal e em hexadecimal Em ambientes computacionais, é comum representar números usando sistemas numéricos em potências de dois, como o sistema octal e o sistema hexadecimal. Essa técnica visa reduzir o número de algarismos da representação numérica e, consequentemente, facilitar a compreensão da grandeza e evitar erros. No sistema octal (base 8), cada três algarismos do sistema binário são representados por apenas um algarismo octal (de 0 a 7). No sistema hexadecimal (base 16), cada quatro bits são representados por apenas um algarismo hexadecimal (de 0 a F). Convencionalmente, em algumas linguagens de programação, os números na base 16 ou sistema hexadecimal são grafados com a letra “H” ou “h” após o número. Por exemplo: FFH significa que o número FF está em hexadecimal. Não confundir o “H” ou “h” com mais um dígito, mesmo porque em hexadecimal só temos algarismos até “F” e, portanto, não existe um algarismo “H”. Os números na base 8 ou octal são grafados com o algarismo zero na parte mais significativa do número; por exemplo: 0326. Você acabou de conhecer as principais características de cada base. Vamos aprender a converter um número para outras bases? Acompanhe a seguir. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 041 Conversões entre bases Como é comum representarmos um número em bases diferentes, dependendo da sua aplicação, também será necessário aprendermos as regras para esta conversão de bases. A seguir, apresentaremos as regras para a conversão entre bases. Conversão de números de uma base b qualquer para a base 10 De um modo geral, o processo de conversão de números reais em qualquer base numérica para a base 10 deve considerar a Expressão 1 vista anteriormente: A forma mais conveniente de efetuar a conversão é reescrevendo o número a ser convertido na sua forma de potência, usando o formato dado pela Expressão 1 e resolvendo a expressão final. Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n A. Converter para a base 10 o número binário 10001110,012 Usando a Expressão 1, temos: 10001110,012 = 1x27 + 0x26 + 0x25 + 0x24 + 1x23 + 1x22 + 1x21 + 0x20 + 0x2-1 + 1x2-2 = 1x128 + 0x64 + 0x32 + 0x16 + 1x8 + 1x4 + 1x2 + 0x1 + 0x0,5 + 1x0,25 = 128 + 0 + 0 + 0 + 8 + 4 + 2 + 0 + 0 + 0,25 = 142,25 b. Converter para decimal o número 361,458 De um modo geral, o processo de conversão de números reais em qualquer base numérica para a base 10 deve considerar a Expressão 1 vista anteriormente. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 042 Pela Expressão 1, temos: 3618 = 3x82 + 6x81 + 1x 80 + 4x8-1 + 5x8-2 = 3x64 + 6x8 + 1x1 + 4x0,125 + 5x0,015625 = 192 + 48 + 1 + 0,5 + 0,078125 = 241,578125 c. Converter para decimal o número1BC16 Com a Expressão 1, temos: 1BC,416 = 1x16 2 + B16x16 1 + C16x16 0 + 4x16-1 Para o processo de conversão, deve-se considerar que os algarismos da base 16 de A à F correspondam aos números decimais de 10 a 15, respectivamente. Então, reescrevendo a expressão, temos: 1x162 + B16x16 1 + C16x16 0 + 4x16-1 = 1x162 + 11x161 + 12x160 + 4x16-1 = 1x256 + 11x16 + 12x1+ 4x0,0625 = 256 + 176 + 12 + 0,25 = 444,25 Conversão de números da base 10 para uma base b qualquer A conversão de números da base dez para uma base qualquer segue um processo inverso ao descrito acima. O processo é dividido em duas etapas, sendo uma para a parte inteira e outra para a parte fracionária. No final, os números encontrados em cada etapa deverão ser concatenados com o separador vírgula. Processo para a parte inteira do número A conversão de números da base dez para uma base qualquer segue um processo inverso ao descrito acima. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 043 O número decimal deverá ser dividido sucessivas vezes pela base, sendo que o resto de cada divisão deverá ocupar sucessivamente as posições de ordem menos significativas do número, até que o resto da última divisão, que resulta em quociente zero, ocupe a posição de ordem mais significativa. Tome como exemplo a conversão do número 326 para a base 2, base 8 e base 16: FIGURA 18 - Processo de conversão de decimal para binário FIGURA 19 - Processo de conversão de decimal para octal Fonte: Elaborado pelo Autor. Fonte: Elaborado pelo Autor. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 044 Fonte: Elaborado pelo Autor. FIGURA 20 - Processo de conversão de decimal para hexadecimal Pelas FIGURAS 18, 19 e 20, é possível verificar o procedimento de conversão de um número inteiro na base 10 para os sistemas binário, octal e hexadecimal. Deve-se observar que os restos das divisões são escritos na forma inversa, ou seja, do algarismo menos significativo para o mais significativo. Ainda, considerando o processo de conversão para a base 16, quando o resto for maior que 9, deve-se utilizar os respectivos algarismos hexadecimais – A, B, C, D, E ou F – conforme o caso. Processo para a parte fracionária do número O procedimento para encontrar a parte fracionária de um número na nova base consiste em um processo de multiplicação sucessiva da parte fracionária do número em decimal pela base destino. A parte inteira do resultado da primeira multiplicação será o valor da primeira casa fracionária, e a parte fracionária desse número será de novo multiplicada pela base e assim por diante, até o resultado ser zero ou até encontrarmos o número de casas fracionárias desejado. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 045 Vamos converter 326,651 para a base 2, 8 e 16, com 5 algarismos fracionários: 1. A parte inteira será convertida pelo procedimento descrito no item anterior. 2. A parte fracionária será determinada pelo processo de multiplicações sucessivas, conforme verificamos nas FIGURAS 21, 22 e 23. FIGURA 21 - Conversão de decimal fracionário para binário fracionário Fonte: Elaborado pelo Autor. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 046 FIGURA 22 - Conversão de decimal fracionário para octal fracionário Fonte: Elaborado pelo Autor. Fonte: Elaborado pelo Autor. FIGURA 23 - Conversão de decimal fracionário para hexadecimal fracionário 3. Cada número será montado através da concatenação da parte inteira com a parte fracionária, separadas por vírgula: FIGURA 24 - Formatação final dos números Binário 326,651 = 101000110, 10100 Octal 326,651 = 506, 51523 Hexadecimal 326,651 = 146, A6A7E Fonte: Elaborado pelo Autor. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 047 Em todos os casos, a conversão foi interrompida quando encontramos o número de algarismos fracionários solicitado no enunciado. No entanto, como não encontramos resultado 0 em nenhuma das multiplicações, poderíamos continuar efetuando multiplicações indefinidamente até encontrar (se encontrarmos) resultado zero. No caso de interrupção por chegarmos ao número de dígitos especificado sem encontrarmos resultado zero, o resultado encontrado é aproximado, e essa aproximação será função do número de algarismos que calcularmos. Assim, se convertermos os números da FIGURA 24 em decimal, chegaremos a um valor aproximado. Conversões entre as bases 2, 8 e 16 As conversões mais simples são as que envolvem bases que são potências entre si. Para converter da base 2 para a base 8, considere que 8 = 23. Então, deve-se separar os bits de um número binário em grupos de três bits, começando sempre do menos significativo para o mais significativo, e depois converter cada grupo de três bits para seu equivalente em octal. Ao final, tem-se a representação do número binário em octal. 101010012 = 10.101.0012 (separando em grupos de 3, sempre começando da direita para a esquerda) Considerando que: 0102 = 28 1012 = 58 0012 = 18 Portanto: 101010012 = 2518 Nas conversões entre as bases 2 e 16, deve ser considerado que 24 = 16. Assim, basta separar o número binário em grupos de 4 bits e converter parcialmente cada um dos grupos de 4 bits para hexadecimal. Observe no exemplo abaixo o processo: As conversões mais simples são as que envolvem bases que são potências entre si. Para converter da base 2 para a base 8, considere que 8 = 23. 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 02 24 63 75 68 1 ARQUITETURA DE COMPUTADORES unidade 2 048 110101011012 = 110.1010.11012 (separando em grupos de 4 bits, sempre começando do algarismo menos significativo para o mais significativo) 110101011012 = 110.1010.11012 (separando em grupos de 4 bits, sempre começando do algarismo menos significativo para o mais significativo) Considerando que: 1102 = 616 10102 = A16 11012 = D16 Portanto: 110101011012 = 6AD16 Para convertermos números escritos em hexadecimal ou octal para binário, devemos efetuar a operação inversa ao processo de binário para as bases 8 e 16. Perceba pelos exemplos abaixo como operar nesse processo de conversão: A. Converter o número CAFE16 para binário: 1. Como cada dígito hexadecimal corresponde a 4 dígitos binários, então deve-se converter parcialmente cada um dos dígitos em hexadecimal, convertendo primeiro para decimal e depois
Compartilhar