aula 10: outras formas de representaçãofernanda/2016-1/fac/aulas/aula10.pdf · aula 10: outras...

33
Aula 10: Outras Formas de Representac¸˜ ao Fernanda Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Material baseado nos slides do prof. Diego Passos Fernanda Passos (UFF) Outras Formas de Representa¸ ao FAC 1 / 33

Upload: others

Post on 04-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Aula 10: Outras Formas de Representacao

Fernanda Passos

Universidade Federal Fluminense

Fundamentos de Arquiteturas de Computadores

Material baseado nos slides do prof. Diego Passos

Fernanda Passos (UFF) Outras Formas de Representacao FAC 1 / 33

Page 2: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Outros Esquemas de Representacao Numerica

Fernanda Passos (UFF) Outras Formas de Representacao FAC 2 / 33

Page 3: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Introducao

Ja vimos varios esquemas de representacao numerica.I Sinal e Magnitude.I Representacao em Excesso.I Complemento a Um.I Complemento a Dois.I Ponto Flutuante.

A grande maioria dos computadores modernos utiliza um ou mais destes esquemas.I Tipicamente, Ponto Flutuante e Complemento a Dois.

Mas existem algumas aplicacoes/arquiteturas especıficas que usam outros esquemas.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 3 / 33

Page 4: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Binary-Coded Decimal

Popularmente conhecido pela sigla BCD.Ideia e simples:

I Representar numero em base 10.I Cada algarismo da representacao decimal e traduzido para um conjunto de bits.I Numeros sao representados pela combinacao destas representacoes dos seus algarismos

decimais.

Possıvel codificacao dos algarismos.

Base 10 BCD Base 10 BCD0 0000 5 01011 0001 6 01102 0010 7 01113 0011 8 10004 0100 9 1001

Exemplo de uso:

473(10) = 0100 0111 0011

4 7 3

Fernanda Passos (UFF) Outras Formas de Representacao FAC 4 / 33

Page 5: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Binary-Coded Decimal : Vantagens e Desvantagens

Por que alguem usaria o BCD?I Em ultima instancia, estamos novamente armazenando bits.

Porque ha algumas vantagens:I Representacao finita para alguns numeros fracionarios.

F Valores tipicamente importantes para nos: e.g., dinheiro.I Facilidade de escala por potencias de 10.I Facilidade de arredondamento em casas decimais.I Facilidade de conversao para caracteres.

Mas ha tambem desvantagens:I Hardware mais complexo para operacoes aritmeticas.I Desperdıcio de bits.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 5 / 33

Page 6: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Binary-Coded Decimal : Usos

Ja foi mais popular.Mas hoje ainda encontra aplicacoes:

I ICs (circuitos integrados) que manipulamdatas.

I Varios displays recebem BCD comoentrada.

I BIOS (tambem em relacao a data).I Processamento de dados financeiros.

Um uso inusitado: relogios binarios.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 6 / 33

Page 7: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Representacao de Texto

Fernanda Passos (UFF) Outras Formas de Representacao FAC 7 / 33

Page 8: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Codificacoes de Texto

Em ultima analise, todo dado representado em um computador e formado por um conjuntode bits.Conjuntos de bits formam numeros escritos na base 2.Logo, qualquer tipo de dado precisa ser codificado como um numero.

I Ou um conjunto destes.Isto nao e diferente com dados textuais.

I Associamos caracteres a numeros.I Conjuntos de caracteres (palavras, frases, . . . ) sao representados como conjuntos destes

numeros.Ha varias codificacoes diferentes para caracteres.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 8 / 33

Page 9: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

A Codificacao ASCII

Abreviacao de American Standard Code for Information Interchange.Codificacao baseada no alfabeto ingles.Total de 128 caracteres.

I Letras maiusculas e minusculas.I Algarismos decimais.I Pontuacoes.I Caracteres de controle (e.g., quebra de linha).I . . .

Cada caracter corresponde a uma sequencia de 7 bits.I Computadores que usam bytes de 8 bits armazenam caracteres em bytes individuais.I Bit mais significativo e sempre 0.

Ate 2008, codificacao mais comum na Web.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 9 / 33

Page 10: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

A Tabela ASCII

Decimal Hex Char Decimal Hex Char Decimal Hex Char Decimal Hex Char

Fernanda Passos (UFF) Outras Formas de Representacao FAC 10 / 33

Page 11: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

A Codificacao ASCII: Propriedades

A codificacao ASCII tem algumas propriedades interessantes.I Propositais, nao resultantes do acaso.

Os algarismos correspondem a valores binarios iguais a eles proprios acrescidos do prefixo011.

I e.g., ‘0’ corresponde a 0110000.I e.g., ‘9’ corresponde a 0111001.

Letras aparecem em ordem.I Simplifica comparacao e ordenacao.

Maiusculas e minusculas diferem sempre por 32.I e.g., ‘A’ corresponde a 65, ‘a’ corresponde a 97.I Diferem apenas no sexto bit.I Simplifica comparacoes insensıveis a caixa, e transformacoes entre maiusculas e minusculas.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 11 / 33

Page 12: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

ASCII Estendido

A disponibilidade de um bit na codificacao ASCII e a falta de certos caracteres resultaramem extensoes.

I Ha varias.I Algumas padronizadas, outras proprietarias.

Uma bastante utilizada e a ISO 8859-1.I Popularmente chamada de Latin-1.I Contem letras acentuadas usadas em lınguas da Europa Ocidental.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 12 / 33

Page 13: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

A Codificacao UTF-8

Universal Character Set + Transformation Format – 8-bit.Uma das codificacoes propostas no padrao Unicode

I Representa “todos” os caracteres/sımbolos usados em sistemas de escrita no mundo.Usa um numero variavel de bytes.

I De 1 a 4, dependendo do caractere.I ASCII: 1 byte;I Caracteres diacrıticos (que possuem sinais que modificam o sımbolo, e.g. acentos) como

latino, grego, cirılico, armenio e hebraico: 2 bytes.I Outras lınguas: 3 bytes.I Existem ainda outros caracteres que necessitam de 4 bytes.

Superconjunto da ASCII.Codificacao dominante hoje na Web.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 13 / 33

Page 14: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Codificacao de Outros Tipos de Dados

Fernanda Passos (UFF) Outras Formas de Representacao FAC 14 / 33

Page 15: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Codificacao de Imagens

Outro tipo de dados muito comum hoje sao as imagens.Assim como fazemos com texto, imagens sao quebradas em uma unidade especıfica.

I O pixel : um ponto na imagem.Cada pixel contem uma cor.

I Ou uma intensidade de cinza.Atraves da composicao de pixels (pontos relativamente pequenos), obtemos imagenscomplexas.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 15 / 33

Page 16: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Codificacao de Imagens: Representando um Pixel

Ha varios esquemas de representacao de pixels.Para imagens em tons de cinza, uma abordagem simples e utilizar um byte para arepresentacao.

I Valores inteiros de 0 (preto) ate 255 (branco).I Valores intermediarios representam tons de cinza.

F Quanto mais proximos de 255, mais claros.Para imagens coloridas, e comum usar o modelo RGB com tres bytes.

I Cor e dividida em tres componentes: vermelho, verde e azul.I Intensidades de cada componente sao representadas por valores de 0 a 255.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 16 / 33

Page 17: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Codificacao de Imagens: Compressao

Imagens tendem a ser arquivos relativamente grandes.Por isso, e comum que estas nao sejam armazenadas simplesmente como uma sequencia depixels.Mais comumente, algum metodo de compressao e aplicado.Imagens sao colocadas em algum formato que determina como pixels sao comprimidos.

I JPEG.I PNG.I . . .

Fernanda Passos (UFF) Outras Formas de Representacao FAC 17 / 33

Page 18: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Outros Tipos de Dados

Outros tipos de dados comumente manipulados por computadores incluem:I Audio.I Vıdeo.I Datas e horarios.I . . .

Em ultima analise, estes dados sao representados como numeros em base 2.A partir das representacoes basicas ja vistas, e possıvel construir estruturas de dadoscomplexas.

I e.g., cadastro pessoal em uma empresa.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 18 / 33

Page 19: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Arquivos e Registros

E comum precisarmos trabalhar com conjuntos de dados de um mesmo tipo.I Ao inves de um unico exemplar.

Exemplos:I Conjunto de empregados de uma empresa.I Conjunto de operacoes em uma conta bancaria.I Conjunto de instrucoes em um programa.

Por isso, muitas vezes deseja-se agrupar estes dados em uma mesma unidade.I Para armazenamento ou processamento.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 19 / 33

Page 20: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Arquivos e Registros (II)

Neste contexto, surge o conceito de um arquivo.

DefinicaoConjunto de dados (ou informacoes) de um mesmo tipo para uma mesma aplicacao.

Arquivos normalmente estao associados a uma determinada aplicacao ou um determinadotipo de dado.Exemplos:

I Arquivo de cadastro de alunos.I Arquivo de imagem.I Arquivo executavel.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 20 / 33

Page 21: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Arquivos e Registros (III)

Arquivos sao organizados em registros.I Unidade do tipo de informacao armazenado.I e.g., alunos individuais em base de alunos.

Registros podem ter tamanho fixo ou variavel.

...

Registro 0

Registro 1

Registro 2

Registro (n-2)

Registro (n-1)

Registro n

Fernanda Passos (UFF) Outras Formas de Representacao FAC 21 / 33

Page 22: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Arquivos e Registros (IV)

Muitos arquivos contem tambem um cabecalho.I Conjunto de informacoes que explicam o arquivo.

F Em alguns contextos, chamado de metadados.I Podem informar, por exemplo, o numero de

registros, variacoes do formato, . . .Exemplos de arquivos com cabecalho:

I Arquivos .doc.I Arquivos .jpg.I Arquivos .mp3.I . . .

...

Cabeçalho

Registro 0

Registro (n-2)

Registro (n-1)

Registro n

Fernanda Passos (UFF) Outras Formas de Representacao FAC 22 / 33

Page 23: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Arquivos e Registros (V)

Arquivos normalmente tem por objetivo o armazenamento nao-volatil.I Dados nao devem ser perdidos depois que um programa os processa.I Dados de um arquivo devem ser disponıveis para outros programas ou para outras execucoes

de um mesmo programa.Por este motivo, arquivos costumam ser armazenados em memoria secundaria.

I Tipicamente nao-volatil.I HDs, pendrives, cartoes de memoria, fitas magneticas,. . .

Arquivos tambem sao trocados entre computadores.I Transmitidos por rede.I Lidos ou escritos de dispositivos portateis.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 23 / 33

Page 24: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Endianness

Fernanda Passos (UFF) Outras Formas de Representacao FAC 24 / 33

Page 25: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Motivacao

Imagine a seguinte tarefa:I Alguem lhe da um conjunto de blocos de madeira com

algarismos.I Pede para que voce escreva o numero 4237 na vertical.I Como voce o escreve?

Fernanda Passos (UFF) Outras Formas de Representacao FAC 25 / 33

Page 26: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Motivacao (II)

A analogia, embora simploria, se aplica aos computadores.I Neste caso, os blocos sao celulas de memoria.I Os algarismos sao os numeros (conjuntos de bits) escritos nestas celulas.

Considere um computador que armazena dados em celulas de um byte, por exemplo.Deseja-se escrever um numero composto por 4 bytes.

I Precisamos de quatro celulas contıguas.I Digamos, as celulas n, n + 1, n + 2 e n + 3.

Em que ordem colocamos os bytes nestas posicoes?

Fernanda Passos (UFF) Outras Formas de Representacao FAC 26 / 33

Page 27: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Motivacao (III)

Embora pareca uma decisao irrelevante, hoje esta ordem e bastante importante.I Com a facilidade da Internet, transferir dados entre computadores diferentes se tornou comum.I Para interpretar corretamente estes dados, ambos os lados precisam estar de acordo em relacao

a esta ordem de bytes.A questao poderia ser trivialmente resolvida se todos os computadores adotassem a mesmaordem.

I Mas por razoes historicas, arquiteturas diferentes empregam ordens diferentes.I Algumas, inclusive, suportam mais de uma ordem.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 27 / 33

Page 28: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Endianness: Definicao

A esta ordem de escrita dos dados em memoria, damos o nome de Endianness.Ha dois tipos de endianness comumente adotados:

I Big-endian: partes mais significativas do dado sao armazenadas em posicoes de memoriamenores.

F i.e., comecamos pela parte mais significativa.I Little-endian: partes menos significativas do dado sao armazenadas em posicoes de

memoria menores.F i.e., comecamos pela parte menos significativa.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 28 / 33

Page 29: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Endianness: Exemplo

Suponha que desejemos escrever o numero 0A0B0C0D.I Sequencia de 4 bytes descrita em hexadecimal.

Suponha que cada celula do nosso computador armazena um byte.

Big-endian:

... 0A 0B 0C 0D ...

Endereços Crescem

n n+1 n+2 n+3

Little-endian:

... 0D 0C 0B 0A ...

Endereços Crescem

n n+1 n+2 n+3

Fernanda Passos (UFF) Outras Formas de Representacao FAC 29 / 33

Page 30: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Endianness: Exemplo (II)

Mesma situacao, mas cada celula guarda dois bytes.

Big-endian:

... 0A 0B 0C 0D ...

Endereços Crescem

n n+1

Little-endian:

... 0D0C 0B0A ...

Endereços Crescem

n n+1

Fernanda Passos (UFF) Outras Formas de Representacao FAC 30 / 33

Page 31: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Endianness: Garantindo Compatibilidade

Como garantir que maquinas com endianness diferentes possam trocar informacoescorretamente?Se a troca e feita por arquivos, em geral ha uma padronizacao do endianness.Exemplos:

I Arquivos JPEG usam Big-endian.I Arquivos .zip usam Little-endian.

Se a troca de dados e feita atraves de rede, o padrao e padrao e usar Big-endian.I Por este motivo, o Big-endian e tambem conhecido como Network Byte Order.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 31 / 33

Page 32: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Endianness: Garantindo Compatibilidade (II)

O endianness acordado deve ser usado independente do endianness do computador.I Se forem igual, nada precisa ser feito.I Mas se forem diferentes, dados precisam ser “traduzidos” para o endianness acordado.I Ordem de bytes e trocada para cada dado.

Incompatibilidade de endianness e uma razao comum de bugs em software.I Aplicacoes que utilizam arquivos ou comunicacao em rede.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 32 / 33

Page 33: Aula 10: Outras Formas de Representaçãofernanda/2016-1/FAC/aulas/aula10.pdf · Aula 10: Outras Formas de Representac¸˜ao Fernanda Passos Universidade Federal Fluminense Fundamentos

Exercıcio

Consulte a tabela ASCII e escreva seu nome completo convertendo letras e espacos para osbytes correspondentes.

Fernanda Passos (UFF) Outras Formas de Representacao FAC 33 / 33