SlideShare uma empresa Scribd logo
1 de 118
Baixar para ler offline
Computadores
Arquitetura de
Osmar Ventura
Ana Paula da Costa Cardoso
Osmar Ventura
Ana Paula da Costa Cardoso
ARQUITETURA DE COMPUTADORES
Belo Horizonte
Fevereiro de 2014
COPYRIGHT © 2014
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
Coordenação Geral
Anderson Ceolin Soares
Coordenação Pedagógica
Cláudia Silveira da Cunha
Coordenação de Produção de Materiais
Patrícia Ferreira Alves
Designer Instrucional
Carla Cristini Justino de Oliveira
Carolina Coelis Gomides
Débora Cristina Cordeiro Campos Leal
Ediane Cardoso de Araújo Fernandes
Janaína Mourão Freire Gori Felippe
Kênia da Silva Cunha Cajahiba
Laura Boaventura de Melo
Naiara Xavier de Aguiar
Diagramação
Daniele Bagno Tondato
Gleidson Franco
Capa e Ilustração
Alexandre de Souza Paz
Leonardo Antonio Aguiar
Revisão
Mariana Elizabeth da Silva Oliveira
Sandra Rocha Ribeiro
Normalização Bibliográfica
Patrícia Bárbara de Paula
CONHEÇA A
COAUTORA
CONHEÇA O
AUTOR
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,
gerenciamentodesoftwares,áreacomercial
e projetos de redes de computadores.
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.
APRESENTAÇÃO
DA DISCIPLINA
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 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!
UNIDADE 1  003
Introdução à Arquitetura de Computadores	 004
Computadores: origem e evolução 	 004
Arquitetura e organização de computadores	 010
Estrutura e função	 012
Conceitos complementares	 016
Revisão	 019
UNIDADE 2  022
Sistemas Numéricos	 023
Sistemas Posicionais 	 025
Base de um sistema numérico 	 026
Conversões entre bases	 032
Representação de dados	 040
Revisão	 063
UNIDADE 3  065
Sistemas Digitais	 066
Conceitos básicos	 067
Operadores lógicos 	 071
Circuitos lógicos	 077
Revisão	 081
UNIDADE 4  084
Unidade Central de Processamento	 085
Organização do processador	 086
Componentes 	 092
Ciclo de instrução	 096
Pipeline de instruções	 000
Principais tecnologias do mercado	 105
Revisão	 107
REFERÊNCIAS	 109
UNIDADE
ARQUITETURA DE
COMPUTADORES
unidade 1
003
INTRODUÇÃO À ARQUITETURA DE
COMPUTADORES
N
o estudo de Arquitetura de Computadores, será necessária a apresentação e o
refinamentodealgunsconceitosedefiniçõesacercadacomputação.Nestaunidade,
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.
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
ARQUITETURA DE
COMPUTADORES
unidade 1
004
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
calcularalgo,contamoscomaformalidade
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 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.
ARQUITETURA DE
COMPUTADORES
unidade 1
005
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.
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
deAdaLovelace, historicamenteconhecida
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.
ATENÇÃO!
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,
ARQUITETURA DE
COMPUTADORES
unidade 1
006
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/intercaladoraseimpressoras.
Existiam equipamentos especializados
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.
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
ARQUITETURA DE
COMPUTADORES
unidade 1
007
FIGURA 6 - ENIAC
Fonte: Site “Museu do Computador.
FIGURA 7 – Arquitetura
de John Von Neumann
Memória
Principal
Dispositivos
de entrada e
saída
UCP/CPU
Fonte: Elaborado pelo Autor.
O Professor John Von Neumann publica,
em1946,umtrabalhointitulado“Electronic
Discrete Variable Automatic Computer”,
em que apresenta uma organização lógica
otimizadaparaoprojetoedesenvolvimento
de computadores, a qual é usada até hoje
nos projetos de computadores sendo
conhecida como Arquitetura de Von
Neumann, demonstrado pela FIGURA 7.
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 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.
ARQUITETURA DE
COMPUTADORES
unidade 1
008
•	 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
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.
ARQUITETURA DE
COMPUTADORES
unidade 1
009
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 de 8 vezes maior que a do ENIAC.
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.
ARQUITETURA DE
COMPUTADORES
unidade 1
010
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”.
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.
FIGURA 12 - Apple I
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
comosatributosqueosistemacomputacional
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.
ARQUITETURA DE
COMPUTADORES
unidade 1
011
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 de linguagem de
montagem (assembly)
Nível da
microarquitetura
Nível lógico
digital
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 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.
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.
ARQUITETURA DE
COMPUTADORES
unidade 1
012
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.
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:
ARQUITETURA DE
COMPUTADORES
unidade 1
013
FIGURA 14 - Estrutura de um computador
CPU Memória Principal Dispositivos de E/S
Sistema de Interconexão
Fonte: STALLINGS, 2010, p.14.
•	 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.
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.
ARQUITETURA DE
COMPUTADORES
unidade 1
014
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.
ARQUITETURA DE
COMPUTADORES
unidade 1
015
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.
ARQUITETURA DE
COMPUTADORES
unidade 1
016
CONCEITOS
COMPLEMENTARES
A seguir, compreenda alguns conceitos
necessáriosparaoestudodestadisciplina.
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.
São exemplos de softwares básicos:
•	 ossistemasoperacionaisWindows,
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);
ARQUITETURA DE
COMPUTADORES
unidade 1
017
•	 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-secomoadescriçãodasequê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
características específicas e voltado para
uma determinada classe de problema
(financeiro, científico, manipulação de
textos etc.), bem como uma 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
ARQUITETURA DE
COMPUTADORES
unidade 1
018
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 à 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
ARQUITETURA DE
COMPUTADORES
unidade 1
019
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.
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.
PRÁTICA
APLICAÇÃO
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:
ARQUITETURA DE
COMPUTADORES
unidade 1
020
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
componentes
estruturais:
• 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.
ARQUITETURA DE
COMPUTADORES
unidade 1
021
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.
MAIS
PARA SABER
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.
APRENDAINFORMÁTICAFACIL.Disponívelem:
http://www.aprendainformaticafacil.com.
br/2013/02/componentes-do-computador.
html#.UtF4Pfv67H0. Acesso em: 06 jan. 2014
UNIDADE
unidade 2
023
ARQUITETURA DE
COMPUTADORES
SISTEMAS
NUMÉRICOS
O
s 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”.
unidade 2
024
ARQUITETURA DE
COMPUTADORES
Se escolhêssemos símbolos ao acaso e
usássemos:
# para representar uma centena,
 para representar uma dezena e
@ para representar uma unidade,
teríamos que ###@ representaria 321.
Fonte: Núcleo de Educação a Distância (NEaD),
Ănima, 2014.
O segundo sistema desenvolvido foi o
sistemadenumeraçãoromano,noqualsã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.
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á!
unidade 2
025
ARQUITETURA DE
COMPUTADORES
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.
Esse sistema, 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
MAIS
SAIBA
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,
•	 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.
e na solução de equações. Essa técnica
era chamada de Método do Elemento
Celestial.
unidade 2
026
ARQUITETURA DE
COMPUTADORES
EXEMPLO
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
10
1
) e
• o 5 representa 5 mesmo (5 unidades ou 5
x 10
0
).
Assim, em nossa notação, 125 = 1 x 10
2
+ 2
x 10
1
+ 5 x 10
0
.
BASE DE UM
SISTEMA NUMÉRICO
Abasedeumsistemadenumeraçãoindica
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
marcamosotempoemminutosesegundos
(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 2
4
(base 16 ou sistema
hexadecimal), ou eventualmente ainda
2
3
(base 8 ou sistema octal).
•	 Na base 10, dispomos de 10
algarismos para a 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.
Numerobase
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:
1 centena (100 ou 10
2
)
125 5 unidades (5 ou 5 x 100
)
2 dezenas (20 ou 2 x 101
)
unidade 2
027
ARQUITETURA DE
COMPUTADORES
TABELA 1 - Características das bases 2, 8, 10 e 16
TABELA 2 - Equivalências entre as bases 2, 8, 10 e 16
BASE
BASE 10 BASE 2 BASE 8 BASE 16
NOTAÇÃO QUANTIDADE DE
ALGARISMOS
ALGARISMOS
base 2	 binária
base 8	 octal
base 10	 decimal
base 16	 hexadecimal
númerob
	
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
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.
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
unidade 2
028
ARQUITETURA DE
COMPUTADORES
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
+ 2x10
1
+ 5x10
0
+ 3x10
-1
+ 8x10
-2
. 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
.bn
+ .... + a2
.b2
+ a1
.b1
+ a0
.b0
+ 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)
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 = b
n
– 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 b
n
.
unidade 2
029
ARQUITETURA DE
COMPUTADORES
EXEMPLOS
•	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.
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.
REPRESENTAÇÃO
BINÁRIA
MAIS
SAIBA
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.
unidade 2
030
ARQUITETURA DE
COMPUTADORES
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
);
•	 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
somentese,onúmeroestiverrepresentado
na base dez.
MAIS
SAIBA
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”.
ATENÇÃO!
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
unidade 2
031
ARQUITETURA DE
COMPUTADORES
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.
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).
ATENÇÃO!
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.
unidade 2
032
ARQUITETURA DE
COMPUTADORES
Você acabou de conhecer as principais características de cada base. Vamos aprender a
converter um número para outras bases? Acompanhe a seguir.
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:
Nb
= an
.bn
+ .... + a2
.b2
+ a1
.b1
+ a0
.b0
+ a-1
.b-1
+ a-2
.b-2
+ .... + a-n
.b-n
A forma mais conveniente de efetuar a 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.
EXEMPLO
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
unidade 2
033
ARQUITETURA DE
COMPUTADORES
b. Converter para decimal o número 361,458
Pela Expressão 1, temos:
3618
= 3x8
2
+ 6x8
1
+ 1x 8
0
+ 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úmero 1BC16
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:
1x16
2
+ B16x16
1
+ C16x16
0
+ 4x16
-1
= 1x16
2
+ 11x16
1
+ 12x16
0
+ 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
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:
unidade 2
034
ARQUITETURA DE
COMPUTADORES
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.
unidade 2
035
ARQUITETURA DE
COMPUTADORES
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.
unidade 2
036
ARQUITETURA DE
COMPUTADORES
EXEMPLO
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.
unidade 2
037
ARQUITETURA DE
COMPUTADORES
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
unidade 2
038
ARQUITETURA DE
COMPUTADORES
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
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 = 2
3
. 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 2
4
= 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:
110101011012
= 110.1010.11012
(separando
em grupos de 4 bits, sempre começando do
algarismo menos significativo para o mais
significativo)
EXEMPLOS
Fonte: Elaborado pelo Autor.
unidade 2
039
ARQUITETURA DE
COMPUTADORES
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 para hexa:
C16
= 1210
= 11002
A16
= 1010
= 10102
F16
= 1510
= 11112
E16
= 1410
= 11102
2. Agoraésóconcatenarcadaumdosnúmeros
em binário, obedecendo aposição relativa
de cada um deles. O número final será:
CAFE16
= 1100.1010.1111.11102
B. Converter o número 36218 para binário:
1. Como cada dígito octal corresponde a 3 dígitos
binários, então deve-se converter parcialmente
cada um dos dígitos em octal, convertendo
primeiro para decimal e depois para octal:
38
= 310
= 0112
68
= 610
= 1102
28
= 210
= 0102
18
= 110
= 0012
2. Para finalizar, é só concatenar cada um dos
números em binário, obedecendo a posição
relativa de cada um deles. O número final será:
36218
= 011.110.010.0012
CONVERSÃO DE
NÚMEROS ENTRE DUAS
BASES QUAISQUER
Para converter números de uma base
b qualquer para outra base qualquer, o
processo prático utilizado é o de converter
da base origem para a base 10 e depois da
base 10 para a base destino.
EXEMPLO
Por exemplo: converter o número 577
para a
base 9.
567
= (5x7
1
+ 6x7
0
)10
= 35 + 6 = 4110
41/9 = 4 e resto 5. Logo: 567
= 459
Observe que o processo de conversão
entre as bases 7 e 9 foi efetuado utilizando
as teorias abordadas nas sessões
anteriores, podendo ser aplicado para
qualquer processo de conversão, desde
de que envolva a base 10 como a base de
referência. Para melhorar as habilidades
de manipulação numérica, procure fazer
vários exercícios.
unidade 2
040
ARQUITETURA DE
COMPUTADORES
DICAS
Existem várias calculadoras que fazem a
conversão entre bases. Acesse o link: http://
www.calculadoraonline.com.br/conversao-
bases, pratique e utilize esta calculadora
para corrigir seus exercícios.
REPRESENTAÇÃO
DE DADOS
O computador processa instruções
que o orientam na execução de tarefas,
ou seja, o orientam nas operações
sobre valores ou dados. Estes dados
podem ser alfanuméricos, booleanos
(lógicos) ou numéricos. Estes dados são
convertidos internamente em códigos de
representação. Neste tópico estudaremos
algumas formas de representação
numérica (ponto fixo e ponto flutuante) e
de representação alfanumérica.
Iniciaremos com algumas técnicas para
representaçãonuméricadepontofixo:sinal
e magnitude e Representação de números
no formato complementar (Representação
de números positivos em complemento,
Representação de números negativos em
complemento a base, Representação de
números negativos em complemento a
(base -1)). Na representação numérica de
ponto flutuante, a técnica estudada será o
padrão IEEE 754.
As representações não numéricas
ou alfanuméricas serão tratadas
pelos padrões Código de 7 bits ASCII
(American Standard Code For Information
Interchange), O código ASCII estendido 8
bits, Código ISO 8859-1 (Latin-1), ANSI
(American National Standards Institute) e
Unicode.
REPRESENTAÇÕES
NUMÉRICAS
REPRESENTAÇÃO DE NÚMEROS
INTEIROS (PONTO FIXO)
Nos computadores digitais modernos,
a forma mais natural de representação
numérica é o sistema binário, pois o
hardware foi projetado para trabalhar
com a interpretação de somente dois
sinais elétricos distintos. Assim, para a
formação dos algarismos que compõem
os números nos computadores, devem-
se considerar somente esses dois sinais.
Essa é a forma mais adequada e eficiente
para representar e manipular números em
um computador.
Sabemos, contudo, que os números
inteiros podem ser positivos ou negativos.
Então,umaspectoprimordialaserdefinido
unidade 2
041
ARQUITETURA DE
COMPUTADORES
é como representar o sinal de um número, pois existem somente dois símbolos disponíveis,
e eles já são usados nas representações numéricas. A solução adotada utiliza um bit para
representar o sinal do número. Convencionalmente, é usado o dígito mais significativo para
indicar o sinal, comumente chamado de bit de sinal. Como um bit pode assumir somente
os valores 0 e 1, ficou convencionado ainda que, se o bit de sinal tiver valor 0, o número é
positivo; caso contrário (1), o número é negativo.
Na TABELA 4 são apresentados dois exemplos da representação de números negativos em
binário, bem como em hexadecimal e octal.
TABELA 4 - Visualização da representação de números inteiros
Observe que, nas representações na base 16 e 8, o bit de sinal é sempre considerado no processo de
conversão, e os símbolos que indicam se o número é positivo ou negativo (+ e -) só devem aparecer
nas representações em decimal.
Fonte: Elaborado pelo Autor.
Observando-se a TABELA 4, verifica-se que, em uma representação binária com n bits, é
possível representar números com (n - 1) bits, pois o bit mais significativo representa o
sinal, e somente os demais bits representam o valor numérico. Essa forma de representar
tem o nome de representação em Sinal e Magnitude (S/M).
unidade 2
042
ARQUITETURA DE
COMPUTADORES
REPRESENTAÇÕES EM SINAL E
MAGNITUDE – S/M
Nessa representação, o número deve ser
avaliado por dois campos, sendo que um
deles indica o sinal do número, e o outro, a
sua magnitude. Veja pela FIGURA 25 uma
representação gráfica desse formato.
FIGURA 25 - Visão geral do
formato Sinal e Magnitude
Fonte: Elaborado pelo Autor.
A palavra “magnitude”, nesse contexto,
significa o valor absoluto de um número.
Em outras palavras, refere-se ao
módulo de um número, que pode estar
representado tanto em decimal quanto
em binário, octal, ou mesmo no formato
hexadecimal.
Os valores dos dígitos usados para
representarem a magnitude de um
número independem do sinal desse
número, isto é, sendo o número positivo
ou negativo, a representação da
magnitude será a mesma; o que varia na
representação é apenas o dígito de sinal.
Além da magnitude do número, deve
ser avaliado o seu sinal, que é sempre
determinado pelo seu dígito mais
significativo. O valor zero (0) para esse
dígito indica que o número é positivo.
Para os números negativos, o valor
desse dígito depende da base numérica
utilizada na representação do número.
Como no sistema binário existem
somente dois símbolos disponíveis para
a formação dos números, quando o valor
do bit de sinal for 0 (zero), significa que
o número é positivo e, quando o seu
valor for 1, indica um número negativo.
Tecnicamente falando, o algarismo
usado para indicar o sinal de negativo
é sempre o último símbolo disponível
no sistema numérico. Assim como no
sistema binário o algarismo 1 indica o
sinal de negativo, o algarismo 9 é usado
no sistema decimal para indicar o sinal
de negativo.
É importante ressaltar que, nos sistemas
numéricos octal e hexadecimal, os algarismos
7eFsãousadosparaindicarosinaldenegativo
somente quando o número em questão não
está relacionado com algum número em
binário. Por outro lado, havendo uma relação,
o sinal é obrigatoriamente associado ao dígito
mais significativo do número em binário.
unidade 2
043
ARQUITETURA DE
COMPUTADORES
Observe, na FIGURA 26, que a sequência binária 0112
equivale ao valor absoluto 3, ou seja,
módulo de 3. Verifique, ainda, as representações desse mesmo número nos sistemas octal
e hexadecimal.
FIGURA 26 - Equivalência das representações positivas e negativas de um número
Fonte: Elaborado pelo Autor.
Faixa de representação
A representação na base b em Sinal e Magnitude com n bits (incluindo o bit de sinal) possui
b
n
representações, o que permite representar (b
n
-1) números distintos, uma vez que há
duas representações para o zero: uma para o + 0 e outra para o - 0. Deve-se observar
que, no contexto da Matemática, o número 0 não tem sinal, contudo, na Computação, dada
a natureza dos formatos de representações numéricas, devem ser consideradas as duas
representações, ou seja, a positiva e a negativa.
A faixa de representação de números na base 2 em Sinal e Magnitude com n bits (incluindo
o bit de sinal) possui 2
n
representações, sendo possível apresentar os números de - (2
n-1
-1)
a + (2
n-1
-1). Dessa forma, o maior valor inteiro possível é então + (2
n-1
-1), e o menor valor
inteiro é - (2
n-1
-1). Veja a aplicação das fórmulas pelos exemplos abaixo.
1. Considerando que uma determinada máquina trabalha com a representação de números inteiros
no formato S/M de 8 bits, indique, em decimal, o maior e o menor valor que pode ser representado
diretamente nessa máquina.
EXEMPLOS
unidade 2
044
ARQUITETURA DE
COMPUTADORES
Desenvolvimento:
Como o menor valor é determinado pela equação {- (2
n-1
-1)}, então:
menor valor = - (2
n-1
-1), onde n é igual a 8;
menor valor = - (2
8-1
-1) = - (128 -1) = - (127) = - 127.
O maior valor é determinado pela equação {+ (2
n-1
-1)}, então:
maior valor = + (2
n-1
-1), onde n é igual a 8;
maior valor = + (2
8-1
-1) = + (128 -1) = + (127) = + 127.
Resposta: Menor valor = - 127; maior valor = + 127.
2. É possível que uma máquina que trabalha com a representação de números inteiros no formato
S/M em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente?
Desenvolvimento:
Primeiro, deve-se considerar que a palavra “diretamente” está se referindo à possibilidade de
representação numérica sem o uso de artifícios matemáticos e computacionais que permitem
a concatenação de números. Em linhas gerais, um computador pode manipular números que vão
além da sua capacidade máxima de representação. É claro que diversos artifícios matemáticos e
computacionais devem ser empregados, mas eles estão fora do escopo inicial desta disciplina.
Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina
estudada pela equação {- (2
n-1
-1)}. Então:
menor valor = - (2
n-1
-1), onde n é igual a 13;
menor valor = - (2
13-1
-1) = - (4096 - 1) = - (4095) = - 4095.
Para finalizar, deve-se efetuar a multiplicação dos números envolvidos:
1024 x -4 = - 4096.
Resposta: Não é possível representar o resultado da multiplicação do número 1024 pelo número -4
em uma máquina que manipula números de 13 bits no formato S/M.
unidade 2
045
ARQUITETURA DE
COMPUTADORES
Sobre o processo de manipulação numérica,
observe as seguintes considerações:
A.o número de bits para a representação
é determinado no projeto do
computador;
B. em situações nas quais o número a
ser representado excede a capacidade
máxima que uma determinada
máquina pode representar,
é caracterizada um situação
denominada overflow;
C. a situação denominada underflow
é tipicamente caracterizada pela
impossibilidade de representação
de números menores que o menor
número manipulado diretamente pela
máquina;
D. em Sinal e Magnitude, existem duas
representações para o zero.
REPRESENTAÇÃO DE NÚMEROS
NO FORMATO COMPLEMENTAR
Umasegundaalternativaderepresentação
numérica que utiliza os mesmos
algarismos tanto para indicar a magnitude
quanto para indicar o sinal do número, é
a representação complementar. Nela,
deve-se considerar que o complemento
de qualquer número é a diferença entre
o valor de cada algarismo desse número
e o valor do maior número possível com
um mesmo algarismo, da base. Tomando
como exemplo o sistema decimal, no
qual o maior número possível é formado
pela repetição do algarismo 9, pode-se
considerar que o complemento do número
385 é 614, pois:
_ 999
385
614
Note que o maior algarismo da base deve
ser repetido o número de vezes igual à
quantidade de algarismos do número cujo
complemento se deseja calcular. Para
o sistema binário, é simples calcular o
complemento de um número, pois, como
só existem dois símbolos, o complemento
de 0 é 1 e o complemento de 1 é 0. O
complemento do número 1001102
é
0110012
.
Uma vantagem da utilização da
representação em complemento é que
as operações aritméticas são efetuadas
diretamente, sem a necessidade de
avaliação inicial dos operandos, e a
subtração entre dois números pode
ser substituída pela sua soma em
complemento.
unidade 2
046
ARQUITETURA DE
COMPUTADORES
REPRESENTAÇÃO DE NÚMEROS
POSITIVOS EM COMPLEMENTO
A representação de números positivos em
complemento não tem qualquer alteração,
isto é, é idêntica à representação em
Sinal e Magnitude, observando-se que o
dígito de sinal é o algarismo zero (0 indica
positivo).
REPRESENTAÇÃO DE NÚMEROS
NEGATIVOS EM COMPLEMENTO A
(BASE -1)
Nesse formato de representação, os
números inteiros negativos são obtidos
a partir da representação positiva de
cada um dos números, com o cálculo
do seu complemento. Dessa forma, ao
calcular o complemento a (base -1) de
um número positivo, encontramos a sua
representação em negativo e vice-versa.
Deve-se lembrar que o dígito de sinal
sempre será o dígito mais significativo
do número. Por convenção, o algarismo/
símbolo usado para indicar o sinal de
negativo é o último algarismo do sistema
numérico, ou seja, o algarismo/símbolo
(base -1). Para entender melhor, observe
os exemplos a seguir.
1. Calcule o complemento a (base - 1) do
número +26110 com 4 algarismos decimais.
Desenvolvimento:
• Determinar (base-1). Como a base é
10, então (base - 1) = (10 – 1) = 9 e o
complemento a (base -1) será igual a
complemento a 9, ou simplesmente C9.
• Normalizaronúmeropara4algarismos.
Como o número +26110
é positivo, então
o dígito de sinal será 0. Portanto +26110
normalizado para 4 dígitos é 026110
.
• Calcular o C9 do número 0261:
_ 9999
0261
9738
Resultado:
Complemento a 9 do número +26110
= 973810
.
2. Calcule o complemento a (base - 1) do
número 951C16, usando 4 algarismos em
hexadecimal.
Observe, na TABELA 5, a relação dos números
binários de 4 dígitos na representação em C1.
EXEMPLOS
unidade 2
047
ARQUITETURA DE
COMPUTADORES
TABELA 5 – Representação
binário em C1 com 4 bits
Fonte: Elaborada pelo Autor.
Tal como na representação em Sinal
e Magnitude, sempre que em uma
representação em complemento o
primeiro dígito binário for 1, o número
representado é negativo, sendo que o
dígito mais significativo igual a zero indica
Binário	 C1
0000
0001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
1010
1001
1000
1111
1110
1101
1100
1011
1010
1001
1000
0000
0001
0010
0011
0100
0101
0110
0111
que o número é positivo. Assim, o zero
pode ser representado tanto por 00002
quanto por 11112
.
Faixa de representação
A representação na base b em
complemento a (base -1), com n bits,
possui b
n
representações, o que permite
representar (b
n–1
) valores. O problema
de haver duas representações para o
zero não está solucionado com essa
representação. A faixa numérica da
representação na base 2 no formato
complemento a (base-1), com n bits, é a
mesma que no formato Sinal e Magnitude,
podendo ser calculada como 2 valores,
variando de -(2
n-1
-1) a +(2
n-1
-1), de
forma que o maior valor inteiro positivo
será então +( 2
n-1
-1), e o menor valor
inteiro negativo será -(2
n-1
-1). Abaixo, são
apresentados exemplos de aplicação das
fórmulas.
unidade 2
048
ARQUITETURA DE
COMPUTADORES
1. Considerando que uma determinada máquina trabalha com a representação de números inteiros
no formato C1 com 8 bits, indique em decimal o maior e o menor valor que pode ser representado
diretamente nessa máquina.
Desenvolvimento:
Como o menor valor é determinado pela equação {- (2
n-1
-1)}, então:
menor valor = - (2
n-1
-1), onde n é igual a 8;
menor valor = - (2
8-1
-1) = - (128 -1) = - (127) = - 127.
O maior valor é determinado pela equação {+ (2
n-1
-1)}, então:
maior valor = + (2
n-1
-1), onde n é igual a 8;
maior valor = + (2
8-1
-1) = + (128 -1) = + (127) = + 127.
Resposta: Menor valor = - 127; maior valor = +127.
2. É possível que uma máquina que trabalha com a representação de números inteiros no formato C1
em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente?
Desenvolvimento:
Novamente, deve-se considerar primeiro que a palavra “diretamente” está se referindo à possibilidade
de representação numérica sem o uso de artifícios matemáticos e computacionais que permitem a
concatenação de números, já que eles estão fora do escopo inicial desta disciplina.
Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina
estudada pela equação {- (2
n-1
-1)}. Então:
menor valor = - (2
n-1
-1), onde n é igual a 13;
menor valor = - (2
13-1
-1) = - (4096 - 1) = - (4095) = - 4095.
Para finalizar, deve-se efetuar a multiplicação dos números envolvidos:
1024 x -4 = - 4096.
Resposta: Não é possível representar o resultado da multiplicação do número 1024 pelo número -4
em uma máquina que manipula números de 13 bits no formato C1.
EXEMPLOS
unidade 2
049
ARQUITETURA DE
COMPUTADORES
Assim como no formato S/M, o número de bits dos números manipulados em um computador
que trabalha com o formato de representação C1 depende exclusivamente do projeto do
computador. Situações de overflow e underflow podem ocorrer em função dos números
manipulados. Apesar de continuar com duas representações para o número zero, a aritmética
desse sistema é otimizada, se comparada com a aritmética praticada no formato S/M, o que
torna a representação em C (base-1) mais interessante do que a representação em S/M.
REPRESENTAÇÃO DE NÚMEROS
NEGATIVOS EM COMPLEMENTO A BASE
A representação dos números inteiros negativos em complemento a base é uma alternativa
melhorada dos formatos anteriormente estudados, pois resolve o problema da dupla
representação para o número zero, bem como apresenta uma melhoria no algoritmo da
aritmética. Quanto ao número positivo, deve-se considerar que sua representação é igual
ao formato Sinal e Magnitude e complemento a (base-1). Para calcular o complemento a
base de um determinado número, basta obter o complemento a (base -1) desse número e
somar uma unidade. Veja pelos exemplos abaixo o procedimento de cálculo.
1. Calcule o complemento a base do número +26110 com 4 algarismos decimais.
Desenvolvimento:
•	Como a base é 10, então o complemento a base será igual ao complemento a 9 mais uma
unidade, ou seja, C10 = (C9 +1).
•	Normalizar o número para 4 algarismos. Como o número +26110 é positivo, então o dígito de
sinal será 0. Portanto, +26110, normalizado para 4 dígitos, é 026110.
•	 Calcular o C9 do número 0261:
_ 9999
0261
9738
•	 Somar uma unidade ao resultado do passo anterior, ou seja, como C10 = C9 + 1, então:
EXEMPLOS
unidade 2
050
ARQUITETURA DE
COMPUTADORES
9738
+ 1
9739
Resultado: Complemento a 10 do número +26110 = 973910.
2. Calcule o complemento a base do número 951C16
, usando 4 algarismos em hexadecimal.
Desenvolvimento:
•	Convém lembrar mais uma vez que convencionalmente, para a computação, não existe
sinal de positivo ou negativo nas representações em binário, octal e hexadecimal. Para essa
indicação, deve ser considerado o número no formato em binário e avaliar o valor do bit mais
significativo (um valor zero indica um número positivo e 1 indica um número negativo). De
toda forma, é só processar o cálculo do complemento a base diretamente.
•	 Considerando que a base é 16, então base -1 = F.
•	Para calcular o CF do número 951C, não é necessário normalizar, pois o número usado já está
com 4 dígitos. Assim, incremente uma unidade ao resultado do item anterior.
Resultado: Complemento 16 do número 951C16 = 6AE416.
Na adição realizada para calcular o complemento a base, quando houver o “vai 1” do
dígito mais significativo, devemos descartá-lo, ao contrário da operação em complemento
a (base – 1), na qual o excesso é incremento ao número restante. Essa regra faz parte
do procedimento usado para efetuar as operações aritméticas. Na FIGURA 27, é possível
visualizar o significado da regra.
FIGURA 27 - Operação aritmética em complemento a base (descartar o “vai 1”)
Fonte: Elaborado pelo Autor.
unidade 2
051
ARQUITETURA DE
COMPUTADORES
Adotando o procedimento para cálculo dos números negativos em complemento a base,
pode-se verificar que o número zero possui somente uma representação, ou seja, a
representação positiva; deixa-se a representação negativa para ser usada na representação
de mais um número negativo. Observe na TABELA 6 a relação de números em complemento
2 (C2) de 4 dígitos e o seu correspondente em decimal.
TABELA 6 – Relação de números em C2 4 bits
Faixa de representação
A representação na base b em complemento a base com n bits possui b
n
representações, o
que permite representar bn
valores. Como existe somente uma representação para o zero,
há mais um número negativo representado. Assim, a faixa numérica da representação na
base 2 no formato complemento a base, com n bits, é calculada como 2
n
valores, variando
de -(2
n-1
) a +(2
n-1
-1), de forma que o maior valor inteiro positivo será então +( 2
n-1
-1), e o
menor valor inteiro negativo será -(2
n-1
). Abaixo são apresentados exemplos de aplicação
das fórmulas.
Fonte: Elaborada pelo Autor.
Decimal	 Binário C2	 Hexadecimal	 Octal
0
+1
+2
+3
+4
+5
+6
+7
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
unidade 2
052
ARQUITETURA DE
COMPUTADORES
EXEMPLOS
1. Considerando que uma determinada máquina trabalha com a representação de números inteiros
no formato C2 com 8 bits, indique em decimal o maior e o menor valor que pode ser representado
diretamente nessa máquina.
Desenvolvimento:
Como o menor valor é determinado pela equação {- (2
n-1
)}, então:
menor valor = - (2
n-1
), onde n é igual a 8;
menor valor = - (2
8-1
) = - (128 ) = - (128) = - 128.
O maior valor é determinado pela equação {+ (2
n-1
-1)}, então:
maior valor = + (2
n-1
-1), onde n é igual a 8;
maior valor = + (2
8-1
-1) = + (128 -1) = + (127) = + 127.
Resposta: Menor valor = - 128; maior valor = +127.
2. É possível que uma máquina que trabalha com a representação de números inteiros no formato C2
em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente?
Desenvolvimento:
Novamente, considera-se, em primeiro lugar, que a palavra “diretamente” está se referindo à
possibilidade de representação numérica sem o uso de artifícios matemáticos e computacionais que
permitem a concatenação de números.
Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina
estudada pela equação {- (2
n-1
)}. Então:
menor valor = - (2
n-1
), onde n é igual a 13;
menor valor = - (2
13-1
) = - (4096) = - 4096.
Para finalizar, deve-se efetuar a multiplicação dos números envolvidos:
1024 x -4 = - 4096.
Resposta: Sim, é possível representar o resultado da multiplicação do número 1024 pelo número -4,
em uma máquina que manipula números de 13 bits no formato C2.
unidade 2
053
ARQUITETURA DE
COMPUTADORES
O número de bits dos números
manipulados em um computador que
trabalha com o formato de representação
C2 depende exclusivamente do projeto
do computador. Situações de overflow e
underflow podem ocorrer em função dos
números manipulados. O procedimento
de execução das operações aritméticas
é otimizado em relação aos demais
formatos de representação, sendo o mais
utilizado nos processadores atualmente.
REPRESENTAÇÃO
DE NÚMEROS REAIS
Por natureza, os números reais
são difíceis de ser representados
computacionalmente, pois exigem
técnicas mais refinadas para
armazenamento e processamento.
Considerando a classe de problema, os
números podem ser muito extensos ou
mesmo infinitos, como dízimas periódicas
e números irracionais. Dessa forma,
truncá-los é inevitável, o que, no final, pode
influenciar negativamente no processo de
cálculo, diminuindo a sua precisão.
Desde os primórdios da computação, duas
abordagens prevalecem para representá-
los. Uma é a técnica denominada
representação em ponto fixo e a outra
é a representação em ponto flutuante.
Explicando melhor, a palavra “ponto” pode
ser substituída pela palavra “vírgula”,
ou seja, representação em vírgula fixa
e em vírgula flutuante. Os problemas
apresentados por essas representações
estão relacionados com a maneira de
registrar a faixa de variação do número e a
sua precisão numérica.
A representação em ponto fixo é a mais
indicada para máquinas projetadas
para aplicações específicas, ou seja,
computadores projetados para uma
determinada classe de aplicações. Nesses
computadores, os limites máximos e
mínimos a serem representados são
definidos diretamente pelo hardware ao
longo do projeto. Por exemplo, se uma
máquina foi projetada para manipular
somente números de 34 dígitos à esquerda
do ponto decimal e 28 dígitos à direita
desse ponto, não será adequado trabalhar
com sistemas que necessitam manipular
números que exigem uma precisão de 40
dígitos à esquerda e 22 dígitos à direita.
Observequeaquantidadededígitosusados
nas representações é a mesma, mas existe
uma restrição específica de hardware que
não permite a variação da posição do ponto.
As representações em ponto flutuante
são mais flexíveis, se considerarmos que
é possível atender a diversas classes de
problemas com uma mesma máquina,
pois podemos, de forma dinâmica, ajustar
tanto o número de dígitos que precedem o
ponto quanto os dígitos que estão à direita
unidade 2
054
ARQUITETURA DE
COMPUTADORES
do ponto. Nessa alternativa, a faixa de variação do número está separada da sua precisão
numérica, usando-se o método de notação científica: n = i.f x 10e
, onde n é um número real
e i representa a parte inteira, sendo separado por um ponto de f. O f é conhecido como
fração ou mantissa e e é um número inteiro positivo ou negativo conhecido como expoente.
Observe abaixo alguns exemplos de números expressos nesse formato.
Esse método é conhecido como representação em ponto flutuante. Nele, a faixa de
variação dos números é determinada pela quantidade de dígitos do expoente e a precisão
é determinada pela quantidade de dígitos da mantissa. Como há mais de uma maneira
de representar números nessa notação, deve-se escolher uma delas como padrão. Para
investigar as propriedades desse método de representação de números, considere uma
representação R, com uma mantissa de três dígitos com sinal, na faixa de 0.1≤ | f |  1 ou
zero e um expoente de dois dígitos com sinal. Tais números têm uma faixa de variação que
vai de +0.100 x 10
-99
a + 0,999 x 10
+99
, que se expande por mais ou menos 199 ordens de
magnitude, apesar de ser necessário usar só cinco dígitos e dois sinais para armazenar
números expressos nessa notação.
Os números em ponto flutuante podem ser usados para representar o sistema de números
reais da matemática, apesar de haver algumas diferenças importantes. A FIGURA 28 mostra
um esquema da reta dos números reais visando apresentar essas diferenças.
unidade 2
055
ARQUITETURA DE
COMPUTADORES
FIGURA 28 - A reta real dividida em regiões
Fonte: TANENBAUM, 2006, p.405.
A reta foi dividida em sete regiões:
•	 • números negativos grandes, menores que – 0.999 x 10
99
;
•	 • números negativos entre – 0.999 x 10
99
e – 0.100 x 10
-99
;
•	 • números negativos pequenos, com magnitudes menores que 0.100 x 10
-99
;
•	 • zero;
•	 • números positivos pequenos, com magnitudes menores que 0.100 x 10
-99
;
•	 • números positivos entre 0.100 x 10-99 e 0.999 x 10
99
;
•	 • números positivos grandes, maiores que 0.999 x 10
99
.
A principal diferença entre os números representados com mantissas de três dígitos e
expoentes de dois e os números reais é que a primeira representação não pode ser usada
para expressar números nas regiões 1, 3, 5, ou 7. Se o resultado de uma operação gerar
um número na região 1 ou 7, vai ocorrer um erro de overflow. A razão dessa incorreção é
a natureza finita da representação desses números. Da mesma maneira, um resultado nas
regiões 3 e 5 vai gerar um erro de underflow.
Outra diferença importante entre os números em ponto flutuante e os números reais é a sua
densidade. Entre dois números reais quaisquer, existe outro número real, não importa quanto
um está próximo do outro, pois os números reais variam de forma contínua. Já os números
em ponto flutuante variam de forma discreta, ou seja, existe uma determinada quantidade
-10
100
10
100
-10
-100
10
-100
unidade 2
056
ARQUITETURA DE
COMPUTADORES
de números em ponto flutuante que
podem ser representados. Se o resultado
de uma operação não puder ser expresso
na representação usada, será efetuado
um arredondamento. Essa operação
consiste em escolher o número mais
próximo do resultado esperado. Em outras
palavras, usando-se a representação em
ponto flutuante, existe um erro relativo
introduzido pelo arredondamento, tanto
para números grandes quanto para
números pequenos.
REPRESENTAÇÃO IEEE 754 PARA
NÚMEROS EM PONTO FLUTUANTE
Nos computadores, é utilizada uma
variante da representação em ponto
flutuante denominada IEEE 754, podendo
ser de precisão simples ou dupla, com
32 ou 64 bits respectivamente. Por
questões de eficiência, a exponenciação
e a representação da mantissa são feitas
na base 2, em detrimento da base 10.
Deve-se considerar, ainda, que a parte
inteira da representação possui somente
um bit, e que o valor desse bit deve ser
sempre um. Para satisfazer tal condição,
é necessário que o bit mais à esquerda
da mantissa seja deslocado uma
posição à esquerda, sendo o expoente
decrementado de uma unidade, sem que
o valor do número sofra modificações,
até que a condição seja satisfeita. Essa
representação normalizada é melhor que
a não normalizada, pois garante somente
uma forma de representar o número.
Além disso, a combinação do 1 implícito
(parte inteira em binário), do ponto binário
implícito e do 23 ou 52 bits é chamada de
significante, em vez de mantissa.
Usando o conceito de significante
e visando garantir maior eficiência
computacional, a parte inteira do número,
bem como o ponto binário, não são
armazenados de acordo com o formato
IEEE 754. Na FIGURA 29, são apresentados
os formatos em precisão simples e dupla.
Perceba que é o somatório da quantidade
de bits de cada campo que define a
precisão da representação.
unidade 2
057
ARQUITETURA DE
COMPUTADORES
FIGURA 29 - Formatos IEEE 754. (a) Precisão simples - (b) Precisão dupla
Fonte: TANENBAUM, 2006, p.407
AscaracterísticasnuméricasdosnúmerosempontoflutuanteexpressosnoformatoIEEE754
são apresentadas na TABELA 7. Perceba que o expoente é representado em excesso, de 127
ou 1023, conforme o caso. Esse tipo de representação é usado para não haver necessidade
de armazenamento de números negativos no expoente, pois, se desejamos armazenar o
valor -127 como expoente de um número em ponto flutuante, devemos adicionar 127, o que
resultará no valor zero. Se o expoente é menor que -127 ou maior que +127 não, é possível
armazenar usando o padrão IEEE 754. Outra consideração sobre a TABELA 7 é sobre o valor
do bit de sinal do número. Quando o valor desse bit for zero, o número é positivo; se o valor
for 1, o número é negativo.
TABELA 7 – Características do formato IEEE 754
Fonte: TANENBAUM, 2006, p.407.
Item Precisão simples Precisão dupla
Bits do campo de sinal 1 1
Bits do campo de expoente 8 11
Bits do campo da mantissa / significante 23 52
Número total de bits 32 64
Sistema de representação do expoente Excesso 127 Excesso 1023
Faixa de variação do expoente -126 a +127 -1022 a +1023
unidade 2
058
ARQUITETURA DE
COMPUTADORES
O padrão IEEE 754 define alguns outros tipos numéricos para atender situações nas quais
os números não estão normalizados ou mesmo indicar situações críticas de operações
aritméticas. O formato especial chamado NaN (NOT a Number) indica, por exemplo, o
resultado de infinito dividido por infinito, que é indefinido. Veja a relação dos formatos IEEE
754 na TABELA 8.
TABELA 8 – Tipos de numéricos IEEE 754
EXEMPLO
Exemplo de representação do número 0,5 nos formatos de precisão simples e dupla.
Desenvolvimento:
1. Converter o número 0,5 para binário. Usando o processo descrito na Unidade 2, temos que 0,5 = 0,12.
2. Normalizar o número deixando a parte inteira valendo 1, encontrando o significante. Então, 0,5
normalizado na base 2 é igual a 1,0 x 2-1 (significante = 0).
3. Calcular o valor do expoente com excesso e converter para binário 8 ou 11 bits:
A. para precisão simples (8 bits) + 127: -1 + 127 = 126
Expoente = 011111102;
B. para precisão dupla (11 bits) + 1023: -1 + 1023 = 1022
Expoente = 011111111102.
4. Definir o sinal. Como o número 0,5 é positivo, sinal = 0.
Fonte: TANENBAUM, 2006, p.407.
unidade 2
059
ARQUITETURA DE
COMPUTADORES
5. Montar o número no padrão IEEE, concatenar as seguintes partes:
			 sinal + expoente + significante:
A. precisão simples:
0+01111110+00000000000000000000000;
B. precisão dupla:
0+01111111110+00000000000000000000000000000000000000000000000.
6. Como é trabalhoso manipular números em binário, apresentar a solução em hexadecimal. Então:
A. precisão simples:
0011.1111.0000.0000.0000.0000.0000.00002 = 3F00000016;
B. precisão dupla:
0011.1111.1110.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.00002
=
3FE000000000000016.
Deve-se registrar que, adotando o procedimento inverso, é possível converter do formato
IEEE para decimal.
Nesta unidade foram apresentados formatos de representações para números positivos
e negativos, tanto inteiros quanto reais. A escolha do formato usado em um determinado
processadoréprerrogativadosengenheirosprojetistas,quandoestãodefinindoaarquitetura
damáquina.Deve-seobservarqueosformatosapresentadosestãointimamenteassociados
aos tipos de dados das linguagens de programação.
Tomando a linguagem C como exemplo, o tipo de int está associado ao formato de
representação complemento a base. Como o computador trabalha com o sistema
binário, o tipo int representa números no formato C2 em 16 bits. Então, é possível
explicar por que o maior número armazenado em uma variável desse tipo é +32767 e o
menor é -32768. Com base nos conteúdos apresentados, também é possível entender
mensagens de erros do tipo “NaN error”, geralmente apresentadas em aplicações
Window. Quando isso acontece, certamente o resultado de uma operação resultou
em um número não identificado pela linguagem, ocasionando a mensagem e, muito
provavelmente, a parada do sistema.
unidade 2
060
ARQUITETURA DE
COMPUTADORES
REPRESENTAÇÃO DE
DADOS NÃO NUMÉRICOS
A representação interna de caracteres é o mapeamento dos caracteres em números inteiros,
ou seja, os bytes representarão caracteres, números, figuras ou qualquer coisa processada
pelo computador. Uma sequência de bytes pode expressar uma sequência de caracteres.
EXEMPLO
No código ASCII, a letra A corresponde ao número 65 em decimal, 41 em hexadecimal 0100.0001
em binário, ou seja, a sua representação é feita por um byte (8 bits).
Quer saber quais são os tipos de representação de dados não numéricos? Acompanhe a seguir.
CÓDIGO DE 7 BITS ASCII (AMERICAN STANDARD
CODE FOR INFORMATION INTERCHANGE)
É um código com sete bits, mas comumente representados por 8 bits. O primeiro bit serve
como paridade, utilizado para detecção de erros. Ele é capaz de representar 128 caracteres
(2
7
) por ser de 7 bits. Das 128 combinações 33 são caracteres de controle. São amplamente
utilizados em dispositivos de controle.
unidade 2
061
ARQUITETURA DE
COMPUTADORES
TABELA 9 – TABELA ASCII 7 bits
É o código que estende o ASCII básico, trabalhando com 8 bits.
A TABELA 10 ilustra os caracteres extras do Código ASCII de 8 bits.
TABELA 10 - Extensão do Código ASCII
Fonte: Site AsciiTable.com.
O CÓDIGO ASCII
ESTENDIDO 8 BITS
Fonte: Site AsciiTable.com.
unidade 2
062
ARQUITETURA DE
COMPUTADORES
CÓDIGO ISO 8859-1
(LATIN-1)
A ISO Latin-1 é um código de caracteres
ASCII estendido padronizada pela
ISO (Organização Internacional de
Padronização). É similar ao código ANSI
que o Window utiliza. O HTML utiliza
este código.
ANSI (AMERICAN NATIONAL
STANDARDS INSTITUTE)
Os caracteres ANSI são códigos de 8 bits
numerados de 0 a 255. Os caracteres de 0
a 127 são os mesmos do ASCII e de 128 a
255 são similares ao Latin-1.
UNICODE
É um padrão internacional para
resolução do problema das diferentes
línguas (consórcio).
Principais características:
•	 	para cada caractere é atribuído um
único valor de 16 bits;
•	 	para os valores de 0 a 255:
atribuição do código ASCII;
•	 caracteres acentuados: o software
combina o ponto de código do
acento com o ponto de código da
letra.
DICAS
Aprofunde seus conhecimentos sobre o
Unicode em http://www.unicode.org/.
Este site é do Consórcio Unicode. Nele você
encontrará informações a respeito do padrão
Unicode, parceiros, projetos e comitês,
publicações relacionadas com o Unicode,
últimas versões, entre outras.
PRÁTICA
APLICAÇÃO
É comum que, ao instalarmos um aplicativo
desenvolvido em Java, seja necessário
instalar também (ou apenas atualizar)
uma máquina virtual Java. Trata-se de
um programa que converterá os códigos
do aplicativo, tornando-os executáveis no
computador em que foi instalado. Ou seja,
permitindo que o aplicativo seja utilizado. A
representação de dados internos da máquina
virtual Java ocorre da seguinte maneira: os
números inteiros serão representados em
complemento de dois (8, 16, 32 e 64 bits),
os números reais (ponto flutuante) serão
representados pelo padrão IEEE 754 (32 e 64
bits) e os caracteres alfanuméricos estarão
no formato do Unicode de 16 bits.
unidade 2
063
ARQUITETURA DE
COMPUTADORES
Você sabia que a máquina virtual Java suporta números inteiros em complemento de dois (8, 16, 32
e 64 bits), números de ponto flutuante padrão IEEE 754 (32 e 64 bits) e Unicode de 16 bits.
REVISÃO
Nessa unidade, você percorreu os seguintes assuntos ligados ao tema de nossa disciplina:
•	 Entendeu e conheceu os sistemas numéricos posicionais, que tiveram e têm um
papel importante na evolução do processo de cálculo numérico
QUADRO 4
Sistemas numéricos posicionais: decimal, binário, octal e hexadecimal
Sistema Posicional decimal ou base 10
Sistema binário ou base 2
Sistema octal ou base 8
Sistema Hexadecimal
Base b qualquer para base 10
Base 10 para uma base b qualquer
Entre as bases 2, 8 16
10 símbolos
2 símbolos
8 símbolos
16 símbolos
0,1,2,3,4,5,6,7,8,9
0 e 1
0,1,2,3,4,5,6,7
0,1,2,3,4,5,6,7,8,9, A, B, C, D, E
Fonte: Núcleo de Educação a Distância (NEaD), Ănima, 2014.
•	 Compreendeu como calcular conversão entre bases em seus diferentes tipos. Essa
informação o ajudará a compreender como o computador manipula seus dados, já
que números binários são mais extensos e difíceis de visualizar. A conversão para
bases com maior número de representações facilita o entendimento.
•	 Conheceu as formas de representação de dados pelo computador.
QUADRO 5
Conversão entre bases
Fonte: Núcleo de Educação a Distância (NEaD),
Ănima, 2014
unidade 2
064
ARQUITETURA DE
COMPUTADORES
QUADRO 6
Representação de dados
Numéricos	 Não numéricos
Ponto fixo	 ASCII
Ponto flutuante	 ISO 8859-1 (Latin-1)
	ANSI
	 Unicode
Fonte: Núcleo de Educação a Distância (NEaD),
Ănima, 2014.
MAIS
PARA SABER
Conheça outro site que faz conversões online
entre bases em AREASEG (Site de Segurança
do Trabalho). Conversor de base numérica.
Disponível em: http://www.areaseg.com/
sinais/numeros.html.
O blog abaixo apresenta exemplos de
conversão de base decimal para binária e vice-
versa. Observe a explicação da representação
de números decimais entre 0 e 1 para números
binários.
BLOG FATOS MATEMÁTICOS. Disponível
em: http://fatosmatematicos.blogspot.
com.br/2011/02/conversao-de-numeros-
decimais-para-base.html.
UNIDADE
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução
Arquitetura Computadores Introdução

Mais conteúdo relacionado

Semelhante a Arquitetura Computadores Introdução

Apostila sistemas de conectividade
Apostila sistemas de conectividadeApostila sistemas de conectividade
Apostila sistemas de conectividadericardo17754
 
Introdução a Informatica Basica
Introdução a Informatica BasicaIntrodução a Informatica Basica
Introdução a Informatica BasicaPedro Kangombe
 
Informática básica todos os cursos
Informática básica todos os cursosInformática básica todos os cursos
Informática básica todos os cursosalexandrino02
 
Manual de apoio - 10º Ano
Manual de apoio - 10º AnoManual de apoio - 10º Ano
Manual de apoio - 10º AnoEdna Andrade
 
Apostila capitulo1 exercicio_1_site
Apostila capitulo1 exercicio_1_siteApostila capitulo1 exercicio_1_site
Apostila capitulo1 exercicio_1_siteSuperTec1
 
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1guest7d021
 
Apostila arquitetura de computadores 00
Apostila arquitetura de computadores 00Apostila arquitetura de computadores 00
Apostila arquitetura de computadores 00fernandao777
 
1.Aula1-Introducao-conceitosbasicos.ppt
1.Aula1-Introducao-conceitosbasicos.ppt1.Aula1-Introducao-conceitosbasicos.ppt
1.Aula1-Introducao-conceitosbasicos.pptMário Peixoto
 
Evolucao computadores
Evolucao computadoresEvolucao computadores
Evolucao computadoresTime0Tec
 
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVOINTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVOKaren Costa
 
historia-da-computacao.ppt
historia-da-computacao.ppthistoria-da-computacao.ppt
historia-da-computacao.pptviana9614
 
historia-da-computacao-descricaoeapresentacao.ppt
historia-da-computacao-descricaoeapresentacao.ppthistoria-da-computacao-descricaoeapresentacao.ppt
historia-da-computacao-descricaoeapresentacao.pptricardobuffa1
 
8E - Daniela Fonseca e Vitor Lourenço
8E - Daniela Fonseca e Vitor Lourenço8E - Daniela Fonseca e Vitor Lourenço
8E - Daniela Fonseca e Vitor Lourençoceliapais
 

Semelhante a Arquitetura Computadores Introdução (20)

Apostila sistemas de conectividade
Apostila sistemas de conectividadeApostila sistemas de conectividade
Apostila sistemas de conectividade
 
Computacao na 01_introdução
Computacao na 01_introduçãoComputacao na 01_introdução
Computacao na 01_introdução
 
INFORMATICA IEPB.pptx
INFORMATICA IEPB.pptxINFORMATICA IEPB.pptx
INFORMATICA IEPB.pptx
 
Introdução a Informatica Basica
Introdução a Informatica BasicaIntrodução a Informatica Basica
Introdução a Informatica Basica
 
Informática básica todos os cursos
Informática básica todos os cursosInformática básica todos os cursos
Informática básica todos os cursos
 
Manual de apoio - 10º Ano
Manual de apoio - 10º AnoManual de apoio - 10º Ano
Manual de apoio - 10º Ano
 
Apostila capitulo1 exercicio_1_site
Apostila capitulo1 exercicio_1_siteApostila capitulo1 exercicio_1_site
Apostila capitulo1 exercicio_1_site
 
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
 
Apostila arquitetura de computadores 00
Apostila arquitetura de computadores 00Apostila arquitetura de computadores 00
Apostila arquitetura de computadores 00
 
1.Aula1-Introducao-conceitosbasicos.ppt
1.Aula1-Introducao-conceitosbasicos.ppt1.Aula1-Introducao-conceitosbasicos.ppt
1.Aula1-Introducao-conceitosbasicos.ppt
 
Evolucao computadores
Evolucao computadoresEvolucao computadores
Evolucao computadores
 
Evolucao computadores
Evolucao computadoresEvolucao computadores
Evolucao computadores
 
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVOINTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
 
historia-da-computacao.ppt
historia-da-computacao.ppthistoria-da-computacao.ppt
historia-da-computacao.ppt
 
historia-da-computacao.ppt
historia-da-computacao.ppthistoria-da-computacao.ppt
historia-da-computacao.ppt
 
historia-da-computacao-descricaoeapresentacao.ppt
historia-da-computacao-descricaoeapresentacao.ppthistoria-da-computacao-descricaoeapresentacao.ppt
historia-da-computacao-descricaoeapresentacao.ppt
 
Progresso tecnológico
Progresso tecnológicoProgresso tecnológico
Progresso tecnológico
 
Aula01
Aula01Aula01
Aula01
 
8E - Daniela Fonseca e Vitor Lourenço
8E - Daniela Fonseca e Vitor Lourenço8E - Daniela Fonseca e Vitor Lourenço
8E - Daniela Fonseca e Vitor Lourenço
 
Progresso tecnológico
Progresso tecnológicoProgresso tecnológico
Progresso tecnológico
 

Arquitetura Computadores Introdução

  • 2. Osmar Ventura Ana Paula da Costa Cardoso ARQUITETURA DE COMPUTADORES Belo Horizonte Fevereiro de 2014
  • 3. COPYRIGHT © 2014 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 Coordenação Geral Anderson Ceolin Soares Coordenação Pedagógica Cláudia Silveira da Cunha Coordenação de Produção de Materiais Patrícia Ferreira Alves Designer Instrucional Carla Cristini Justino de Oliveira Carolina Coelis Gomides Débora Cristina Cordeiro Campos Leal Ediane Cardoso de Araújo Fernandes Janaína Mourão Freire Gori Felippe Kênia da Silva Cunha Cajahiba Laura Boaventura de Melo Naiara Xavier de Aguiar Diagramação Daniele Bagno Tondato Gleidson Franco Capa e Ilustração Alexandre de Souza Paz Leonardo Antonio Aguiar Revisão Mariana Elizabeth da Silva Oliveira Sandra Rocha Ribeiro Normalização Bibliográfica Patrícia Bárbara de Paula
  • 4. CONHEÇA A COAUTORA CONHEÇA O AUTOR 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, gerenciamentodesoftwares,áreacomercial e projetos de redes de computadores. 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.
  • 5. APRESENTAÇÃO DA DISCIPLINA 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 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!
  • 6. UNIDADE 1 003 Introdução à Arquitetura de Computadores 004 Computadores: origem e evolução 004 Arquitetura e organização de computadores 010 Estrutura e função 012 Conceitos complementares 016 Revisão 019 UNIDADE 2 022 Sistemas Numéricos 023 Sistemas Posicionais 025 Base de um sistema numérico 026 Conversões entre bases 032 Representação de dados 040 Revisão 063 UNIDADE 3 065 Sistemas Digitais 066 Conceitos básicos 067 Operadores lógicos 071 Circuitos lógicos 077 Revisão 081 UNIDADE 4 084 Unidade Central de Processamento 085 Organização do processador 086 Componentes 092 Ciclo de instrução 096 Pipeline de instruções 000 Principais tecnologias do mercado 105 Revisão 107 REFERÊNCIAS 109
  • 8. ARQUITETURA DE COMPUTADORES unidade 1 003 INTRODUÇÃO À ARQUITETURA DE COMPUTADORES N o estudo de Arquitetura de Computadores, será necessária a apresentação e o refinamentodealgunsconceitosedefiniçõesacercadacomputação.Nestaunidade, 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. 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
  • 9. ARQUITETURA DE COMPUTADORES unidade 1 004 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 calcularalgo,contamoscomaformalidade 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 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.
  • 10. ARQUITETURA DE COMPUTADORES unidade 1 005 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. 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 deAdaLovelace, historicamenteconhecida 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. ATENÇÃO! 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,
  • 11. ARQUITETURA DE COMPUTADORES unidade 1 006 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/intercaladoraseimpressoras. Existiam equipamentos especializados 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. 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
  • 12. ARQUITETURA DE COMPUTADORES unidade 1 007 FIGURA 6 - ENIAC Fonte: Site “Museu do Computador. FIGURA 7 – Arquitetura de John Von Neumann Memória Principal Dispositivos de entrada e saída UCP/CPU Fonte: Elaborado pelo Autor. O Professor John Von Neumann publica, em1946,umtrabalhointitulado“Electronic Discrete Variable Automatic Computer”, em que apresenta uma organização lógica otimizadaparaoprojetoedesenvolvimento de computadores, a qual é usada até hoje nos projetos de computadores sendo conhecida como Arquitetura de Von Neumann, demonstrado pela FIGURA 7. 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 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.
  • 13. ARQUITETURA DE COMPUTADORES unidade 1 008 • 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 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.
  • 14. ARQUITETURA DE COMPUTADORES unidade 1 009 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 de 8 vezes maior que a do ENIAC. 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.
  • 15. ARQUITETURA DE COMPUTADORES unidade 1 010 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”. 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. FIGURA 12 - Apple I 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 comosatributosqueosistemacomputacional 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.
  • 16. ARQUITETURA DE COMPUTADORES unidade 1 011 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 de linguagem de montagem (assembly) Nível da microarquitetura Nível lógico digital 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 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. 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.
  • 17. ARQUITETURA DE COMPUTADORES unidade 1 012 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. 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:
  • 18. ARQUITETURA DE COMPUTADORES unidade 1 013 FIGURA 14 - Estrutura de um computador CPU Memória Principal Dispositivos de E/S Sistema de Interconexão Fonte: STALLINGS, 2010, p.14. • 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. 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.
  • 19. ARQUITETURA DE COMPUTADORES unidade 1 014 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.
  • 20. ARQUITETURA DE COMPUTADORES unidade 1 015 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.
  • 21. ARQUITETURA DE COMPUTADORES unidade 1 016 CONCEITOS COMPLEMENTARES A seguir, compreenda alguns conceitos necessáriosparaoestudodestadisciplina. 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. São exemplos de softwares básicos: • ossistemasoperacionaisWindows, 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);
  • 22. ARQUITETURA DE COMPUTADORES unidade 1 017 • 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-secomoadescriçãodasequê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 características específicas e voltado para uma determinada classe de problema (financeiro, científico, manipulação de textos etc.), bem como uma 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
  • 23. ARQUITETURA DE COMPUTADORES unidade 1 018 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 à 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
  • 24. ARQUITETURA DE COMPUTADORES unidade 1 019 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. 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. PRÁTICA APLICAÇÃO 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:
  • 25. ARQUITETURA DE COMPUTADORES unidade 1 020 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 componentes estruturais: • 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.
  • 26. ARQUITETURA DE COMPUTADORES unidade 1 021 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. MAIS PARA SABER 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. APRENDAINFORMÁTICAFACIL.Disponívelem: http://www.aprendainformaticafacil.com. br/2013/02/componentes-do-computador. html#.UtF4Pfv67H0. Acesso em: 06 jan. 2014
  • 28. unidade 2 023 ARQUITETURA DE COMPUTADORES SISTEMAS NUMÉRICOS O s 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”.
  • 29. unidade 2 024 ARQUITETURA DE COMPUTADORES Se escolhêssemos símbolos ao acaso e usássemos: # para representar uma centena, para representar uma dezena e @ para representar uma unidade, teríamos que ###@ representaria 321. Fonte: Núcleo de Educação a Distância (NEaD), Ănima, 2014. O segundo sistema desenvolvido foi o sistemadenumeraçãoromano,noqualsã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. 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á!
  • 30. unidade 2 025 ARQUITETURA DE COMPUTADORES 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. Esse sistema, 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 MAIS SAIBA 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, • 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. e na solução de equações. Essa técnica era chamada de Método do Elemento Celestial.
  • 31. unidade 2 026 ARQUITETURA DE COMPUTADORES EXEMPLO 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 10 1 ) e • o 5 representa 5 mesmo (5 unidades ou 5 x 10 0 ). Assim, em nossa notação, 125 = 1 x 10 2 + 2 x 10 1 + 5 x 10 0 . BASE DE UM SISTEMA NUMÉRICO Abasedeumsistemadenumeraçãoindica 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 marcamosotempoemminutosesegundos (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 2 4 (base 16 ou sistema hexadecimal), ou eventualmente ainda 2 3 (base 8 ou sistema octal). • Na base 10, dispomos de 10 algarismos para a 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. Numerobase 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: 1 centena (100 ou 10 2 ) 125 5 unidades (5 ou 5 x 100 ) 2 dezenas (20 ou 2 x 101 )
  • 32. unidade 2 027 ARQUITETURA DE COMPUTADORES TABELA 1 - Características das bases 2, 8, 10 e 16 TABELA 2 - Equivalências entre as bases 2, 8, 10 e 16 BASE BASE 10 BASE 2 BASE 8 BASE 16 NOTAÇÃO QUANTIDADE DE ALGARISMOS ALGARISMOS base 2 binária base 8 octal base 10 decimal base 16 hexadecimal númerob 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 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. 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
  • 33. unidade 2 028 ARQUITETURA DE COMPUTADORES 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 + 2x10 1 + 5x10 0 + 3x10 -1 + 8x10 -2 . 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 .bn + .... + a2 .b2 + a1 .b1 + a0 .b0 + 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) 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 = b n – 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 b n .
  • 34. unidade 2 029 ARQUITETURA DE COMPUTADORES EXEMPLOS • 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. 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. REPRESENTAÇÃO BINÁRIA MAIS SAIBA 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.
  • 35. unidade 2 030 ARQUITETURA DE COMPUTADORES 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 ); • 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 somentese,onúmeroestiverrepresentado na base dez. MAIS SAIBA 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”. ATENÇÃO! 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
  • 36. unidade 2 031 ARQUITETURA DE COMPUTADORES 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. 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). ATENÇÃO! 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.
  • 37. unidade 2 032 ARQUITETURA DE COMPUTADORES Você acabou de conhecer as principais características de cada base. Vamos aprender a converter um número para outras bases? Acompanhe a seguir. 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: Nb = an .bn + .... + a2 .b2 + a1 .b1 + a0 .b0 + a-1 .b-1 + a-2 .b-2 + .... + a-n .b-n A forma mais conveniente de efetuar a 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. EXEMPLO 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
  • 38. unidade 2 033 ARQUITETURA DE COMPUTADORES b. Converter para decimal o número 361,458 Pela Expressão 1, temos: 3618 = 3x8 2 + 6x8 1 + 1x 8 0 + 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úmero 1BC16 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: 1x16 2 + B16x16 1 + C16x16 0 + 4x16 -1 = 1x16 2 + 11x16 1 + 12x16 0 + 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 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:
  • 39. unidade 2 034 ARQUITETURA DE COMPUTADORES 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.
  • 40. unidade 2 035 ARQUITETURA DE COMPUTADORES 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.
  • 41. unidade 2 036 ARQUITETURA DE COMPUTADORES EXEMPLO 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.
  • 42. unidade 2 037 ARQUITETURA DE COMPUTADORES 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
  • 43. unidade 2 038 ARQUITETURA DE COMPUTADORES 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 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 = 2 3 . 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 2 4 = 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: 110101011012 = 110.1010.11012 (separando em grupos de 4 bits, sempre começando do algarismo menos significativo para o mais significativo) EXEMPLOS Fonte: Elaborado pelo Autor.
  • 44. unidade 2 039 ARQUITETURA DE COMPUTADORES 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 para hexa: C16 = 1210 = 11002 A16 = 1010 = 10102 F16 = 1510 = 11112 E16 = 1410 = 11102 2. Agoraésóconcatenarcadaumdosnúmeros em binário, obedecendo aposição relativa de cada um deles. O número final será: CAFE16 = 1100.1010.1111.11102 B. Converter o número 36218 para binário: 1. Como cada dígito octal corresponde a 3 dígitos binários, então deve-se converter parcialmente cada um dos dígitos em octal, convertendo primeiro para decimal e depois para octal: 38 = 310 = 0112 68 = 610 = 1102 28 = 210 = 0102 18 = 110 = 0012 2. Para finalizar, é só concatenar cada um dos números em binário, obedecendo a posição relativa de cada um deles. O número final será: 36218 = 011.110.010.0012 CONVERSÃO DE NÚMEROS ENTRE DUAS BASES QUAISQUER Para converter números de uma base b qualquer para outra base qualquer, o processo prático utilizado é o de converter da base origem para a base 10 e depois da base 10 para a base destino. EXEMPLO Por exemplo: converter o número 577 para a base 9. 567 = (5x7 1 + 6x7 0 )10 = 35 + 6 = 4110 41/9 = 4 e resto 5. Logo: 567 = 459 Observe que o processo de conversão entre as bases 7 e 9 foi efetuado utilizando as teorias abordadas nas sessões anteriores, podendo ser aplicado para qualquer processo de conversão, desde de que envolva a base 10 como a base de referência. Para melhorar as habilidades de manipulação numérica, procure fazer vários exercícios.
  • 45. unidade 2 040 ARQUITETURA DE COMPUTADORES DICAS Existem várias calculadoras que fazem a conversão entre bases. Acesse o link: http:// www.calculadoraonline.com.br/conversao- bases, pratique e utilize esta calculadora para corrigir seus exercícios. REPRESENTAÇÃO DE DADOS O computador processa instruções que o orientam na execução de tarefas, ou seja, o orientam nas operações sobre valores ou dados. Estes dados podem ser alfanuméricos, booleanos (lógicos) ou numéricos. Estes dados são convertidos internamente em códigos de representação. Neste tópico estudaremos algumas formas de representação numérica (ponto fixo e ponto flutuante) e de representação alfanumérica. Iniciaremos com algumas técnicas para representaçãonuméricadepontofixo:sinal e magnitude e Representação de números no formato complementar (Representação de números positivos em complemento, Representação de números negativos em complemento a base, Representação de números negativos em complemento a (base -1)). Na representação numérica de ponto flutuante, a técnica estudada será o padrão IEEE 754. As representações não numéricas ou alfanuméricas serão tratadas pelos padrões Código de 7 bits ASCII (American Standard Code For Information Interchange), O código ASCII estendido 8 bits, Código ISO 8859-1 (Latin-1), ANSI (American National Standards Institute) e Unicode. REPRESENTAÇÕES NUMÉRICAS REPRESENTAÇÃO DE NÚMEROS INTEIROS (PONTO FIXO) Nos computadores digitais modernos, a forma mais natural de representação numérica é o sistema binário, pois o hardware foi projetado para trabalhar com a interpretação de somente dois sinais elétricos distintos. Assim, para a formação dos algarismos que compõem os números nos computadores, devem- se considerar somente esses dois sinais. Essa é a forma mais adequada e eficiente para representar e manipular números em um computador. Sabemos, contudo, que os números inteiros podem ser positivos ou negativos. Então,umaspectoprimordialaserdefinido
  • 46. unidade 2 041 ARQUITETURA DE COMPUTADORES é como representar o sinal de um número, pois existem somente dois símbolos disponíveis, e eles já são usados nas representações numéricas. A solução adotada utiliza um bit para representar o sinal do número. Convencionalmente, é usado o dígito mais significativo para indicar o sinal, comumente chamado de bit de sinal. Como um bit pode assumir somente os valores 0 e 1, ficou convencionado ainda que, se o bit de sinal tiver valor 0, o número é positivo; caso contrário (1), o número é negativo. Na TABELA 4 são apresentados dois exemplos da representação de números negativos em binário, bem como em hexadecimal e octal. TABELA 4 - Visualização da representação de números inteiros Observe que, nas representações na base 16 e 8, o bit de sinal é sempre considerado no processo de conversão, e os símbolos que indicam se o número é positivo ou negativo (+ e -) só devem aparecer nas representações em decimal. Fonte: Elaborado pelo Autor. Observando-se a TABELA 4, verifica-se que, em uma representação binária com n bits, é possível representar números com (n - 1) bits, pois o bit mais significativo representa o sinal, e somente os demais bits representam o valor numérico. Essa forma de representar tem o nome de representação em Sinal e Magnitude (S/M).
  • 47. unidade 2 042 ARQUITETURA DE COMPUTADORES REPRESENTAÇÕES EM SINAL E MAGNITUDE – S/M Nessa representação, o número deve ser avaliado por dois campos, sendo que um deles indica o sinal do número, e o outro, a sua magnitude. Veja pela FIGURA 25 uma representação gráfica desse formato. FIGURA 25 - Visão geral do formato Sinal e Magnitude Fonte: Elaborado pelo Autor. A palavra “magnitude”, nesse contexto, significa o valor absoluto de um número. Em outras palavras, refere-se ao módulo de um número, que pode estar representado tanto em decimal quanto em binário, octal, ou mesmo no formato hexadecimal. Os valores dos dígitos usados para representarem a magnitude de um número independem do sinal desse número, isto é, sendo o número positivo ou negativo, a representação da magnitude será a mesma; o que varia na representação é apenas o dígito de sinal. Além da magnitude do número, deve ser avaliado o seu sinal, que é sempre determinado pelo seu dígito mais significativo. O valor zero (0) para esse dígito indica que o número é positivo. Para os números negativos, o valor desse dígito depende da base numérica utilizada na representação do número. Como no sistema binário existem somente dois símbolos disponíveis para a formação dos números, quando o valor do bit de sinal for 0 (zero), significa que o número é positivo e, quando o seu valor for 1, indica um número negativo. Tecnicamente falando, o algarismo usado para indicar o sinal de negativo é sempre o último símbolo disponível no sistema numérico. Assim como no sistema binário o algarismo 1 indica o sinal de negativo, o algarismo 9 é usado no sistema decimal para indicar o sinal de negativo. É importante ressaltar que, nos sistemas numéricos octal e hexadecimal, os algarismos 7eFsãousadosparaindicarosinaldenegativo somente quando o número em questão não está relacionado com algum número em binário. Por outro lado, havendo uma relação, o sinal é obrigatoriamente associado ao dígito mais significativo do número em binário.
  • 48. unidade 2 043 ARQUITETURA DE COMPUTADORES Observe, na FIGURA 26, que a sequência binária 0112 equivale ao valor absoluto 3, ou seja, módulo de 3. Verifique, ainda, as representações desse mesmo número nos sistemas octal e hexadecimal. FIGURA 26 - Equivalência das representações positivas e negativas de um número Fonte: Elaborado pelo Autor. Faixa de representação A representação na base b em Sinal e Magnitude com n bits (incluindo o bit de sinal) possui b n representações, o que permite representar (b n -1) números distintos, uma vez que há duas representações para o zero: uma para o + 0 e outra para o - 0. Deve-se observar que, no contexto da Matemática, o número 0 não tem sinal, contudo, na Computação, dada a natureza dos formatos de representações numéricas, devem ser consideradas as duas representações, ou seja, a positiva e a negativa. A faixa de representação de números na base 2 em Sinal e Magnitude com n bits (incluindo o bit de sinal) possui 2 n representações, sendo possível apresentar os números de - (2 n-1 -1) a + (2 n-1 -1). Dessa forma, o maior valor inteiro possível é então + (2 n-1 -1), e o menor valor inteiro é - (2 n-1 -1). Veja a aplicação das fórmulas pelos exemplos abaixo. 1. Considerando que uma determinada máquina trabalha com a representação de números inteiros no formato S/M de 8 bits, indique, em decimal, o maior e o menor valor que pode ser representado diretamente nessa máquina. EXEMPLOS
  • 49. unidade 2 044 ARQUITETURA DE COMPUTADORES Desenvolvimento: Como o menor valor é determinado pela equação {- (2 n-1 -1)}, então: menor valor = - (2 n-1 -1), onde n é igual a 8; menor valor = - (2 8-1 -1) = - (128 -1) = - (127) = - 127. O maior valor é determinado pela equação {+ (2 n-1 -1)}, então: maior valor = + (2 n-1 -1), onde n é igual a 8; maior valor = + (2 8-1 -1) = + (128 -1) = + (127) = + 127. Resposta: Menor valor = - 127; maior valor = + 127. 2. É possível que uma máquina que trabalha com a representação de números inteiros no formato S/M em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente? Desenvolvimento: Primeiro, deve-se considerar que a palavra “diretamente” está se referindo à possibilidade de representação numérica sem o uso de artifícios matemáticos e computacionais que permitem a concatenação de números. Em linhas gerais, um computador pode manipular números que vão além da sua capacidade máxima de representação. É claro que diversos artifícios matemáticos e computacionais devem ser empregados, mas eles estão fora do escopo inicial desta disciplina. Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina estudada pela equação {- (2 n-1 -1)}. Então: menor valor = - (2 n-1 -1), onde n é igual a 13; menor valor = - (2 13-1 -1) = - (4096 - 1) = - (4095) = - 4095. Para finalizar, deve-se efetuar a multiplicação dos números envolvidos: 1024 x -4 = - 4096. Resposta: Não é possível representar o resultado da multiplicação do número 1024 pelo número -4 em uma máquina que manipula números de 13 bits no formato S/M.
  • 50. unidade 2 045 ARQUITETURA DE COMPUTADORES Sobre o processo de manipulação numérica, observe as seguintes considerações: A.o número de bits para a representação é determinado no projeto do computador; B. em situações nas quais o número a ser representado excede a capacidade máxima que uma determinada máquina pode representar, é caracterizada um situação denominada overflow; C. a situação denominada underflow é tipicamente caracterizada pela impossibilidade de representação de números menores que o menor número manipulado diretamente pela máquina; D. em Sinal e Magnitude, existem duas representações para o zero. REPRESENTAÇÃO DE NÚMEROS NO FORMATO COMPLEMENTAR Umasegundaalternativaderepresentação numérica que utiliza os mesmos algarismos tanto para indicar a magnitude quanto para indicar o sinal do número, é a representação complementar. Nela, deve-se considerar que o complemento de qualquer número é a diferença entre o valor de cada algarismo desse número e o valor do maior número possível com um mesmo algarismo, da base. Tomando como exemplo o sistema decimal, no qual o maior número possível é formado pela repetição do algarismo 9, pode-se considerar que o complemento do número 385 é 614, pois: _ 999 385 614 Note que o maior algarismo da base deve ser repetido o número de vezes igual à quantidade de algarismos do número cujo complemento se deseja calcular. Para o sistema binário, é simples calcular o complemento de um número, pois, como só existem dois símbolos, o complemento de 0 é 1 e o complemento de 1 é 0. O complemento do número 1001102 é 0110012 . Uma vantagem da utilização da representação em complemento é que as operações aritméticas são efetuadas diretamente, sem a necessidade de avaliação inicial dos operandos, e a subtração entre dois números pode ser substituída pela sua soma em complemento.
  • 51. unidade 2 046 ARQUITETURA DE COMPUTADORES REPRESENTAÇÃO DE NÚMEROS POSITIVOS EM COMPLEMENTO A representação de números positivos em complemento não tem qualquer alteração, isto é, é idêntica à representação em Sinal e Magnitude, observando-se que o dígito de sinal é o algarismo zero (0 indica positivo). REPRESENTAÇÃO DE NÚMEROS NEGATIVOS EM COMPLEMENTO A (BASE -1) Nesse formato de representação, os números inteiros negativos são obtidos a partir da representação positiva de cada um dos números, com o cálculo do seu complemento. Dessa forma, ao calcular o complemento a (base -1) de um número positivo, encontramos a sua representação em negativo e vice-versa. Deve-se lembrar que o dígito de sinal sempre será o dígito mais significativo do número. Por convenção, o algarismo/ símbolo usado para indicar o sinal de negativo é o último algarismo do sistema numérico, ou seja, o algarismo/símbolo (base -1). Para entender melhor, observe os exemplos a seguir. 1. Calcule o complemento a (base - 1) do número +26110 com 4 algarismos decimais. Desenvolvimento: • Determinar (base-1). Como a base é 10, então (base - 1) = (10 – 1) = 9 e o complemento a (base -1) será igual a complemento a 9, ou simplesmente C9. • Normalizaronúmeropara4algarismos. Como o número +26110 é positivo, então o dígito de sinal será 0. Portanto +26110 normalizado para 4 dígitos é 026110 . • Calcular o C9 do número 0261: _ 9999 0261 9738 Resultado: Complemento a 9 do número +26110 = 973810 . 2. Calcule o complemento a (base - 1) do número 951C16, usando 4 algarismos em hexadecimal. Observe, na TABELA 5, a relação dos números binários de 4 dígitos na representação em C1. EXEMPLOS
  • 52. unidade 2 047 ARQUITETURA DE COMPUTADORES TABELA 5 – Representação binário em C1 com 4 bits Fonte: Elaborada pelo Autor. Tal como na representação em Sinal e Magnitude, sempre que em uma representação em complemento o primeiro dígito binário for 1, o número representado é negativo, sendo que o dígito mais significativo igual a zero indica Binário C1 0000 0001 0010 0011 0100 0101 0110 0111 1111 1110 1101 1100 1011 1010 1001 1000 1111 1110 1101 1100 1011 1010 1001 1000 0000 0001 0010 0011 0100 0101 0110 0111 que o número é positivo. Assim, o zero pode ser representado tanto por 00002 quanto por 11112 . Faixa de representação A representação na base b em complemento a (base -1), com n bits, possui b n representações, o que permite representar (b n–1 ) valores. O problema de haver duas representações para o zero não está solucionado com essa representação. A faixa numérica da representação na base 2 no formato complemento a (base-1), com n bits, é a mesma que no formato Sinal e Magnitude, podendo ser calculada como 2 valores, variando de -(2 n-1 -1) a +(2 n-1 -1), de forma que o maior valor inteiro positivo será então +( 2 n-1 -1), e o menor valor inteiro negativo será -(2 n-1 -1). Abaixo, são apresentados exemplos de aplicação das fórmulas.
  • 53. unidade 2 048 ARQUITETURA DE COMPUTADORES 1. Considerando que uma determinada máquina trabalha com a representação de números inteiros no formato C1 com 8 bits, indique em decimal o maior e o menor valor que pode ser representado diretamente nessa máquina. Desenvolvimento: Como o menor valor é determinado pela equação {- (2 n-1 -1)}, então: menor valor = - (2 n-1 -1), onde n é igual a 8; menor valor = - (2 8-1 -1) = - (128 -1) = - (127) = - 127. O maior valor é determinado pela equação {+ (2 n-1 -1)}, então: maior valor = + (2 n-1 -1), onde n é igual a 8; maior valor = + (2 8-1 -1) = + (128 -1) = + (127) = + 127. Resposta: Menor valor = - 127; maior valor = +127. 2. É possível que uma máquina que trabalha com a representação de números inteiros no formato C1 em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente? Desenvolvimento: Novamente, deve-se considerar primeiro que a palavra “diretamente” está se referindo à possibilidade de representação numérica sem o uso de artifícios matemáticos e computacionais que permitem a concatenação de números, já que eles estão fora do escopo inicial desta disciplina. Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina estudada pela equação {- (2 n-1 -1)}. Então: menor valor = - (2 n-1 -1), onde n é igual a 13; menor valor = - (2 13-1 -1) = - (4096 - 1) = - (4095) = - 4095. Para finalizar, deve-se efetuar a multiplicação dos números envolvidos: 1024 x -4 = - 4096. Resposta: Não é possível representar o resultado da multiplicação do número 1024 pelo número -4 em uma máquina que manipula números de 13 bits no formato C1. EXEMPLOS
  • 54. unidade 2 049 ARQUITETURA DE COMPUTADORES Assim como no formato S/M, o número de bits dos números manipulados em um computador que trabalha com o formato de representação C1 depende exclusivamente do projeto do computador. Situações de overflow e underflow podem ocorrer em função dos números manipulados. Apesar de continuar com duas representações para o número zero, a aritmética desse sistema é otimizada, se comparada com a aritmética praticada no formato S/M, o que torna a representação em C (base-1) mais interessante do que a representação em S/M. REPRESENTAÇÃO DE NÚMEROS NEGATIVOS EM COMPLEMENTO A BASE A representação dos números inteiros negativos em complemento a base é uma alternativa melhorada dos formatos anteriormente estudados, pois resolve o problema da dupla representação para o número zero, bem como apresenta uma melhoria no algoritmo da aritmética. Quanto ao número positivo, deve-se considerar que sua representação é igual ao formato Sinal e Magnitude e complemento a (base-1). Para calcular o complemento a base de um determinado número, basta obter o complemento a (base -1) desse número e somar uma unidade. Veja pelos exemplos abaixo o procedimento de cálculo. 1. Calcule o complemento a base do número +26110 com 4 algarismos decimais. Desenvolvimento: • Como a base é 10, então o complemento a base será igual ao complemento a 9 mais uma unidade, ou seja, C10 = (C9 +1). • Normalizar o número para 4 algarismos. Como o número +26110 é positivo, então o dígito de sinal será 0. Portanto, +26110, normalizado para 4 dígitos, é 026110. • Calcular o C9 do número 0261: _ 9999 0261 9738 • Somar uma unidade ao resultado do passo anterior, ou seja, como C10 = C9 + 1, então: EXEMPLOS
  • 55. unidade 2 050 ARQUITETURA DE COMPUTADORES 9738 + 1 9739 Resultado: Complemento a 10 do número +26110 = 973910. 2. Calcule o complemento a base do número 951C16 , usando 4 algarismos em hexadecimal. Desenvolvimento: • Convém lembrar mais uma vez que convencionalmente, para a computação, não existe sinal de positivo ou negativo nas representações em binário, octal e hexadecimal. Para essa indicação, deve ser considerado o número no formato em binário e avaliar o valor do bit mais significativo (um valor zero indica um número positivo e 1 indica um número negativo). De toda forma, é só processar o cálculo do complemento a base diretamente. • Considerando que a base é 16, então base -1 = F. • Para calcular o CF do número 951C, não é necessário normalizar, pois o número usado já está com 4 dígitos. Assim, incremente uma unidade ao resultado do item anterior. Resultado: Complemento 16 do número 951C16 = 6AE416. Na adição realizada para calcular o complemento a base, quando houver o “vai 1” do dígito mais significativo, devemos descartá-lo, ao contrário da operação em complemento a (base – 1), na qual o excesso é incremento ao número restante. Essa regra faz parte do procedimento usado para efetuar as operações aritméticas. Na FIGURA 27, é possível visualizar o significado da regra. FIGURA 27 - Operação aritmética em complemento a base (descartar o “vai 1”) Fonte: Elaborado pelo Autor.
  • 56. unidade 2 051 ARQUITETURA DE COMPUTADORES Adotando o procedimento para cálculo dos números negativos em complemento a base, pode-se verificar que o número zero possui somente uma representação, ou seja, a representação positiva; deixa-se a representação negativa para ser usada na representação de mais um número negativo. Observe na TABELA 6 a relação de números em complemento 2 (C2) de 4 dígitos e o seu correspondente em decimal. TABELA 6 – Relação de números em C2 4 bits Faixa de representação A representação na base b em complemento a base com n bits possui b n representações, o que permite representar bn valores. Como existe somente uma representação para o zero, há mais um número negativo representado. Assim, a faixa numérica da representação na base 2 no formato complemento a base, com n bits, é calculada como 2 n valores, variando de -(2 n-1 ) a +(2 n-1 -1), de forma que o maior valor inteiro positivo será então +( 2 n-1 -1), e o menor valor inteiro negativo será -(2 n-1 ). Abaixo são apresentados exemplos de aplicação das fórmulas. Fonte: Elaborada pelo Autor. Decimal Binário C2 Hexadecimal Octal 0 +1 +2 +3 +4 +5 +6 +7 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
  • 57. unidade 2 052 ARQUITETURA DE COMPUTADORES EXEMPLOS 1. Considerando que uma determinada máquina trabalha com a representação de números inteiros no formato C2 com 8 bits, indique em decimal o maior e o menor valor que pode ser representado diretamente nessa máquina. Desenvolvimento: Como o menor valor é determinado pela equação {- (2 n-1 )}, então: menor valor = - (2 n-1 ), onde n é igual a 8; menor valor = - (2 8-1 ) = - (128 ) = - (128) = - 128. O maior valor é determinado pela equação {+ (2 n-1 -1)}, então: maior valor = + (2 n-1 -1), onde n é igual a 8; maior valor = + (2 8-1 -1) = + (128 -1) = + (127) = + 127. Resposta: Menor valor = - 128; maior valor = +127. 2. É possível que uma máquina que trabalha com a representação de números inteiros no formato C2 em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente? Desenvolvimento: Novamente, considera-se, em primeiro lugar, que a palavra “diretamente” está se referindo à possibilidade de representação numérica sem o uso de artifícios matemáticos e computacionais que permitem a concatenação de números. Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina estudada pela equação {- (2 n-1 )}. Então: menor valor = - (2 n-1 ), onde n é igual a 13; menor valor = - (2 13-1 ) = - (4096) = - 4096. Para finalizar, deve-se efetuar a multiplicação dos números envolvidos: 1024 x -4 = - 4096. Resposta: Sim, é possível representar o resultado da multiplicação do número 1024 pelo número -4, em uma máquina que manipula números de 13 bits no formato C2.
  • 58. unidade 2 053 ARQUITETURA DE COMPUTADORES O número de bits dos números manipulados em um computador que trabalha com o formato de representação C2 depende exclusivamente do projeto do computador. Situações de overflow e underflow podem ocorrer em função dos números manipulados. O procedimento de execução das operações aritméticas é otimizado em relação aos demais formatos de representação, sendo o mais utilizado nos processadores atualmente. REPRESENTAÇÃO DE NÚMEROS REAIS Por natureza, os números reais são difíceis de ser representados computacionalmente, pois exigem técnicas mais refinadas para armazenamento e processamento. Considerando a classe de problema, os números podem ser muito extensos ou mesmo infinitos, como dízimas periódicas e números irracionais. Dessa forma, truncá-los é inevitável, o que, no final, pode influenciar negativamente no processo de cálculo, diminuindo a sua precisão. Desde os primórdios da computação, duas abordagens prevalecem para representá- los. Uma é a técnica denominada representação em ponto fixo e a outra é a representação em ponto flutuante. Explicando melhor, a palavra “ponto” pode ser substituída pela palavra “vírgula”, ou seja, representação em vírgula fixa e em vírgula flutuante. Os problemas apresentados por essas representações estão relacionados com a maneira de registrar a faixa de variação do número e a sua precisão numérica. A representação em ponto fixo é a mais indicada para máquinas projetadas para aplicações específicas, ou seja, computadores projetados para uma determinada classe de aplicações. Nesses computadores, os limites máximos e mínimos a serem representados são definidos diretamente pelo hardware ao longo do projeto. Por exemplo, se uma máquina foi projetada para manipular somente números de 34 dígitos à esquerda do ponto decimal e 28 dígitos à direita desse ponto, não será adequado trabalhar com sistemas que necessitam manipular números que exigem uma precisão de 40 dígitos à esquerda e 22 dígitos à direita. Observequeaquantidadededígitosusados nas representações é a mesma, mas existe uma restrição específica de hardware que não permite a variação da posição do ponto. As representações em ponto flutuante são mais flexíveis, se considerarmos que é possível atender a diversas classes de problemas com uma mesma máquina, pois podemos, de forma dinâmica, ajustar tanto o número de dígitos que precedem o ponto quanto os dígitos que estão à direita
  • 59. unidade 2 054 ARQUITETURA DE COMPUTADORES do ponto. Nessa alternativa, a faixa de variação do número está separada da sua precisão numérica, usando-se o método de notação científica: n = i.f x 10e , onde n é um número real e i representa a parte inteira, sendo separado por um ponto de f. O f é conhecido como fração ou mantissa e e é um número inteiro positivo ou negativo conhecido como expoente. Observe abaixo alguns exemplos de números expressos nesse formato. Esse método é conhecido como representação em ponto flutuante. Nele, a faixa de variação dos números é determinada pela quantidade de dígitos do expoente e a precisão é determinada pela quantidade de dígitos da mantissa. Como há mais de uma maneira de representar números nessa notação, deve-se escolher uma delas como padrão. Para investigar as propriedades desse método de representação de números, considere uma representação R, com uma mantissa de três dígitos com sinal, na faixa de 0.1≤ | f | 1 ou zero e um expoente de dois dígitos com sinal. Tais números têm uma faixa de variação que vai de +0.100 x 10 -99 a + 0,999 x 10 +99 , que se expande por mais ou menos 199 ordens de magnitude, apesar de ser necessário usar só cinco dígitos e dois sinais para armazenar números expressos nessa notação. Os números em ponto flutuante podem ser usados para representar o sistema de números reais da matemática, apesar de haver algumas diferenças importantes. A FIGURA 28 mostra um esquema da reta dos números reais visando apresentar essas diferenças.
  • 60. unidade 2 055 ARQUITETURA DE COMPUTADORES FIGURA 28 - A reta real dividida em regiões Fonte: TANENBAUM, 2006, p.405. A reta foi dividida em sete regiões: • • números negativos grandes, menores que – 0.999 x 10 99 ; • • números negativos entre – 0.999 x 10 99 e – 0.100 x 10 -99 ; • • números negativos pequenos, com magnitudes menores que 0.100 x 10 -99 ; • • zero; • • números positivos pequenos, com magnitudes menores que 0.100 x 10 -99 ; • • números positivos entre 0.100 x 10-99 e 0.999 x 10 99 ; • • números positivos grandes, maiores que 0.999 x 10 99 . A principal diferença entre os números representados com mantissas de três dígitos e expoentes de dois e os números reais é que a primeira representação não pode ser usada para expressar números nas regiões 1, 3, 5, ou 7. Se o resultado de uma operação gerar um número na região 1 ou 7, vai ocorrer um erro de overflow. A razão dessa incorreção é a natureza finita da representação desses números. Da mesma maneira, um resultado nas regiões 3 e 5 vai gerar um erro de underflow. Outra diferença importante entre os números em ponto flutuante e os números reais é a sua densidade. Entre dois números reais quaisquer, existe outro número real, não importa quanto um está próximo do outro, pois os números reais variam de forma contínua. Já os números em ponto flutuante variam de forma discreta, ou seja, existe uma determinada quantidade -10 100 10 100 -10 -100 10 -100
  • 61. unidade 2 056 ARQUITETURA DE COMPUTADORES de números em ponto flutuante que podem ser representados. Se o resultado de uma operação não puder ser expresso na representação usada, será efetuado um arredondamento. Essa operação consiste em escolher o número mais próximo do resultado esperado. Em outras palavras, usando-se a representação em ponto flutuante, existe um erro relativo introduzido pelo arredondamento, tanto para números grandes quanto para números pequenos. REPRESENTAÇÃO IEEE 754 PARA NÚMEROS EM PONTO FLUTUANTE Nos computadores, é utilizada uma variante da representação em ponto flutuante denominada IEEE 754, podendo ser de precisão simples ou dupla, com 32 ou 64 bits respectivamente. Por questões de eficiência, a exponenciação e a representação da mantissa são feitas na base 2, em detrimento da base 10. Deve-se considerar, ainda, que a parte inteira da representação possui somente um bit, e que o valor desse bit deve ser sempre um. Para satisfazer tal condição, é necessário que o bit mais à esquerda da mantissa seja deslocado uma posição à esquerda, sendo o expoente decrementado de uma unidade, sem que o valor do número sofra modificações, até que a condição seja satisfeita. Essa representação normalizada é melhor que a não normalizada, pois garante somente uma forma de representar o número. Além disso, a combinação do 1 implícito (parte inteira em binário), do ponto binário implícito e do 23 ou 52 bits é chamada de significante, em vez de mantissa. Usando o conceito de significante e visando garantir maior eficiência computacional, a parte inteira do número, bem como o ponto binário, não são armazenados de acordo com o formato IEEE 754. Na FIGURA 29, são apresentados os formatos em precisão simples e dupla. Perceba que é o somatório da quantidade de bits de cada campo que define a precisão da representação.
  • 62. unidade 2 057 ARQUITETURA DE COMPUTADORES FIGURA 29 - Formatos IEEE 754. (a) Precisão simples - (b) Precisão dupla Fonte: TANENBAUM, 2006, p.407 AscaracterísticasnuméricasdosnúmerosempontoflutuanteexpressosnoformatoIEEE754 são apresentadas na TABELA 7. Perceba que o expoente é representado em excesso, de 127 ou 1023, conforme o caso. Esse tipo de representação é usado para não haver necessidade de armazenamento de números negativos no expoente, pois, se desejamos armazenar o valor -127 como expoente de um número em ponto flutuante, devemos adicionar 127, o que resultará no valor zero. Se o expoente é menor que -127 ou maior que +127 não, é possível armazenar usando o padrão IEEE 754. Outra consideração sobre a TABELA 7 é sobre o valor do bit de sinal do número. Quando o valor desse bit for zero, o número é positivo; se o valor for 1, o número é negativo. TABELA 7 – Características do formato IEEE 754 Fonte: TANENBAUM, 2006, p.407. Item Precisão simples Precisão dupla Bits do campo de sinal 1 1 Bits do campo de expoente 8 11 Bits do campo da mantissa / significante 23 52 Número total de bits 32 64 Sistema de representação do expoente Excesso 127 Excesso 1023 Faixa de variação do expoente -126 a +127 -1022 a +1023
  • 63. unidade 2 058 ARQUITETURA DE COMPUTADORES O padrão IEEE 754 define alguns outros tipos numéricos para atender situações nas quais os números não estão normalizados ou mesmo indicar situações críticas de operações aritméticas. O formato especial chamado NaN (NOT a Number) indica, por exemplo, o resultado de infinito dividido por infinito, que é indefinido. Veja a relação dos formatos IEEE 754 na TABELA 8. TABELA 8 – Tipos de numéricos IEEE 754 EXEMPLO Exemplo de representação do número 0,5 nos formatos de precisão simples e dupla. Desenvolvimento: 1. Converter o número 0,5 para binário. Usando o processo descrito na Unidade 2, temos que 0,5 = 0,12. 2. Normalizar o número deixando a parte inteira valendo 1, encontrando o significante. Então, 0,5 normalizado na base 2 é igual a 1,0 x 2-1 (significante = 0). 3. Calcular o valor do expoente com excesso e converter para binário 8 ou 11 bits: A. para precisão simples (8 bits) + 127: -1 + 127 = 126 Expoente = 011111102; B. para precisão dupla (11 bits) + 1023: -1 + 1023 = 1022 Expoente = 011111111102. 4. Definir o sinal. Como o número 0,5 é positivo, sinal = 0. Fonte: TANENBAUM, 2006, p.407.
  • 64. unidade 2 059 ARQUITETURA DE COMPUTADORES 5. Montar o número no padrão IEEE, concatenar as seguintes partes: sinal + expoente + significante: A. precisão simples: 0+01111110+00000000000000000000000; B. precisão dupla: 0+01111111110+00000000000000000000000000000000000000000000000. 6. Como é trabalhoso manipular números em binário, apresentar a solução em hexadecimal. Então: A. precisão simples: 0011.1111.0000.0000.0000.0000.0000.00002 = 3F00000016; B. precisão dupla: 0011.1111.1110.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.00002 = 3FE000000000000016. Deve-se registrar que, adotando o procedimento inverso, é possível converter do formato IEEE para decimal. Nesta unidade foram apresentados formatos de representações para números positivos e negativos, tanto inteiros quanto reais. A escolha do formato usado em um determinado processadoréprerrogativadosengenheirosprojetistas,quandoestãodefinindoaarquitetura damáquina.Deve-seobservarqueosformatosapresentadosestãointimamenteassociados aos tipos de dados das linguagens de programação. Tomando a linguagem C como exemplo, o tipo de int está associado ao formato de representação complemento a base. Como o computador trabalha com o sistema binário, o tipo int representa números no formato C2 em 16 bits. Então, é possível explicar por que o maior número armazenado em uma variável desse tipo é +32767 e o menor é -32768. Com base nos conteúdos apresentados, também é possível entender mensagens de erros do tipo “NaN error”, geralmente apresentadas em aplicações Window. Quando isso acontece, certamente o resultado de uma operação resultou em um número não identificado pela linguagem, ocasionando a mensagem e, muito provavelmente, a parada do sistema.
  • 65. unidade 2 060 ARQUITETURA DE COMPUTADORES REPRESENTAÇÃO DE DADOS NÃO NUMÉRICOS A representação interna de caracteres é o mapeamento dos caracteres em números inteiros, ou seja, os bytes representarão caracteres, números, figuras ou qualquer coisa processada pelo computador. Uma sequência de bytes pode expressar uma sequência de caracteres. EXEMPLO No código ASCII, a letra A corresponde ao número 65 em decimal, 41 em hexadecimal 0100.0001 em binário, ou seja, a sua representação é feita por um byte (8 bits). Quer saber quais são os tipos de representação de dados não numéricos? Acompanhe a seguir. CÓDIGO DE 7 BITS ASCII (AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE) É um código com sete bits, mas comumente representados por 8 bits. O primeiro bit serve como paridade, utilizado para detecção de erros. Ele é capaz de representar 128 caracteres (2 7 ) por ser de 7 bits. Das 128 combinações 33 são caracteres de controle. São amplamente utilizados em dispositivos de controle.
  • 66. unidade 2 061 ARQUITETURA DE COMPUTADORES TABELA 9 – TABELA ASCII 7 bits É o código que estende o ASCII básico, trabalhando com 8 bits. A TABELA 10 ilustra os caracteres extras do Código ASCII de 8 bits. TABELA 10 - Extensão do Código ASCII Fonte: Site AsciiTable.com. O CÓDIGO ASCII ESTENDIDO 8 BITS Fonte: Site AsciiTable.com.
  • 67. unidade 2 062 ARQUITETURA DE COMPUTADORES CÓDIGO ISO 8859-1 (LATIN-1) A ISO Latin-1 é um código de caracteres ASCII estendido padronizada pela ISO (Organização Internacional de Padronização). É similar ao código ANSI que o Window utiliza. O HTML utiliza este código. ANSI (AMERICAN NATIONAL STANDARDS INSTITUTE) Os caracteres ANSI são códigos de 8 bits numerados de 0 a 255. Os caracteres de 0 a 127 são os mesmos do ASCII e de 128 a 255 são similares ao Latin-1. UNICODE É um padrão internacional para resolução do problema das diferentes línguas (consórcio). Principais características: • para cada caractere é atribuído um único valor de 16 bits; • para os valores de 0 a 255: atribuição do código ASCII; • caracteres acentuados: o software combina o ponto de código do acento com o ponto de código da letra. DICAS Aprofunde seus conhecimentos sobre o Unicode em http://www.unicode.org/. Este site é do Consórcio Unicode. Nele você encontrará informações a respeito do padrão Unicode, parceiros, projetos e comitês, publicações relacionadas com o Unicode, últimas versões, entre outras. PRÁTICA APLICAÇÃO É comum que, ao instalarmos um aplicativo desenvolvido em Java, seja necessário instalar também (ou apenas atualizar) uma máquina virtual Java. Trata-se de um programa que converterá os códigos do aplicativo, tornando-os executáveis no computador em que foi instalado. Ou seja, permitindo que o aplicativo seja utilizado. A representação de dados internos da máquina virtual Java ocorre da seguinte maneira: os números inteiros serão representados em complemento de dois (8, 16, 32 e 64 bits), os números reais (ponto flutuante) serão representados pelo padrão IEEE 754 (32 e 64 bits) e os caracteres alfanuméricos estarão no formato do Unicode de 16 bits.
  • 68. unidade 2 063 ARQUITETURA DE COMPUTADORES Você sabia que a máquina virtual Java suporta números inteiros em complemento de dois (8, 16, 32 e 64 bits), números de ponto flutuante padrão IEEE 754 (32 e 64 bits) e Unicode de 16 bits. REVISÃO Nessa unidade, você percorreu os seguintes assuntos ligados ao tema de nossa disciplina: • Entendeu e conheceu os sistemas numéricos posicionais, que tiveram e têm um papel importante na evolução do processo de cálculo numérico QUADRO 4 Sistemas numéricos posicionais: decimal, binário, octal e hexadecimal Sistema Posicional decimal ou base 10 Sistema binário ou base 2 Sistema octal ou base 8 Sistema Hexadecimal Base b qualquer para base 10 Base 10 para uma base b qualquer Entre as bases 2, 8 16 10 símbolos 2 símbolos 8 símbolos 16 símbolos 0,1,2,3,4,5,6,7,8,9 0 e 1 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E Fonte: Núcleo de Educação a Distância (NEaD), Ănima, 2014. • Compreendeu como calcular conversão entre bases em seus diferentes tipos. Essa informação o ajudará a compreender como o computador manipula seus dados, já que números binários são mais extensos e difíceis de visualizar. A conversão para bases com maior número de representações facilita o entendimento. • Conheceu as formas de representação de dados pelo computador. QUADRO 5 Conversão entre bases Fonte: Núcleo de Educação a Distância (NEaD), Ănima, 2014
  • 69. unidade 2 064 ARQUITETURA DE COMPUTADORES QUADRO 6 Representação de dados Numéricos Não numéricos Ponto fixo ASCII Ponto flutuante ISO 8859-1 (Latin-1) ANSI Unicode Fonte: Núcleo de Educação a Distância (NEaD), Ănima, 2014. MAIS PARA SABER Conheça outro site que faz conversões online entre bases em AREASEG (Site de Segurança do Trabalho). Conversor de base numérica. Disponível em: http://www.areaseg.com/ sinais/numeros.html. O blog abaixo apresenta exemplos de conversão de base decimal para binária e vice- versa. Observe a explicação da representação de números decimais entre 0 e 1 para números binários. BLOG FATOS MATEMÁTICOS. Disponível em: http://fatosmatematicos.blogspot. com.br/2011/02/conversao-de-numeros- decimais-para-base.html.