Post on 29-Jun-2015
Arquitetura de Computadores 1
Conceitos BásicosConceitos Básicos• Representação dos dados• Bases Numéricas• Conversão de bases
Arquitetura de Computadores 2
Organização de um ComputadorOrganização de um Computador
• O computador é uma máquina capaz de sistemicamentecoletar, manipular e fornecer resultados.
• Processamento de dados consiste em uma série de atividades ordenadamente realizadas com o objetivo de produzir um arranjo determinado de informações e resultados.
• Um computador digital é um conjunto de componentes integrados segundo uma estrutura de sistema que manipula dados na forma digital (0s e 1s).– Unidade Central de Processamento (CPU)– Memória– Unidades de E/S
Arquitetura de Computadores 3
Representação dos Valores LógicosRepresentação dos Valores Lógicos
• O computador trabalha com a base de numeração binária onde os números são representados por um conjunto de 0s e 1s.
....001010101011010101101010101010100001111111110000000000....
Nível de tensãoVolts(V)
Nível lógico 1
Nível lógico 0
t
Arquitetura de Computadores 4
Representação dos dadosRepresentação dos dados
• A informação é – armazenada, transferida e manipulada em grupos de bits
• Num mesmo computador podem ser empregadas grupos de bits de tamanhos diferentes.
• Os dados em um computador são representados na forma binária :– Bit (1 digito binário) ou Binary Digit: valor 0 ou 1– Byte = 8 bits– Palavra (word), conforme a arquitetura ocupará n bytes.– Caracter: conjunto de n bits que define 2n caracteres
Arquitetura de Computadores 5
Revisão de Bases NuméricasRevisão de Bases Numéricas• Na base decimal são usados 10 dígitos (ou algarismos) diferentes
{0,1,2,3,4,5,6,7,8,9}, formando números em base 10.• Cada algarismo N de um número possui um valor que depende de
sua posição. (N * Bpos)Exemplo:1999 • O dígito mais a direita (9) representa a quantidade de unidades,
pois está na posição 0. O dígito 9 mais a esquerda ,pode ser interpretado como sendo 9 * 100
O valor completo do número pode ser calculado como sendo1*103 + 9 *102 + 9*101 + 9*100
1*1000 + 9*100 + 9*10 + 9*11000 + 900 + 90 + 91999
Base Decimal
Arquitetura de Computadores 6
Revisão de Bases NuméricasRevisão de Bases Numéricas
• Na base hexadecimal dispomos de 16 algarismos {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, onde os dígitos de 0 a 9 são idênticos as decimais, e os dígitos de A a F, correspondem aos valores decimais de 10 a 15, sucessivamente.
Exemplo:10AC16
1*163 + 0*162 + 10*161 + 12*160
1*4096 + 0*256 + 10*16 + 12*14096 + 0 + 160 + 12426810
Base Hexadecimal
Arquitetura de Computadores 7
Revisão de Bases NuméricasRevisão de Bases Numéricas
• Na base octal temos 8 algarismos {0,1,2,3,4,5,6,7}Exemplo:5218
5*82 + 2*81 + 1*80
5*64 + 2*8 +1*1320 + 16 + 133710
Base Octal
Arquitetura de Computadores 8
Revisão de Bases NuméricasRevisão de Bases Numéricas• A base binária ou base 2 é a maneira usual de representação de
números em computadores eletrônicos.• Nesta forma de representação temos apenas dois algarismos
disponíveis {0,1} que correspondem aos sinais elétricos ligado edesligado.
100112
1*24 + 0*23 + 0*22 + 1*21 + 1*20
1*16 + 0*8 + 0*4 +1*2 +1*116+0+0+2+11910
• Cada algarismo de uma representação numérica binária é denominados de bit, que corresponde à abreviatura de binary digit.
• Outras denominações usadas com freqüência:• byte = conjunto de 8 bits • nibble = conjunto de quatro bits ou meio byte
Base Binária
Arquitetura de Computadores 9
Tabela ResumoTabela Resumo
15F171111
14E161110
13D151101
12C141100
11B131011
10A121010
99111001
88101000
7770111
6660110
5550101
4440100
3330011
2220010
1110001
0000000
DecimalHexadecimalOctalBinario
Arquitetura de Computadores 10
Revisão Conversão de BasesRevisão Conversão de Bases
• Para a conversão de um número em uma base qualquer para a base decimal usa-se a seguinte fórmula:
N=dn-1 x bn-1 + dn-2 x bn-2 + ... + d1 x b1 + d0 x b0
Onde:• d : Indica cada algarismo do número• n-1, n-2, 1,0 : Indicam a posição de cada algarismo• b : Indica a base de numeração• n : Indica o número de dígitos inteiros
Arquitetura de Computadores 11
Revisão Conversão de BasesRevisão Conversão de Bases
• Este procedimento consiste em dividir o número representado na base 10 sucessivamente pela nova base em que se deseja representá-lo, até que o quociente da divisão seja menor que a base em questão.
• Em seguida toma-se o último quociente e os restos das sucessivas divisões em ordem inversa e obtém-se, assim, a representação do número na nova base.
Exemplo:Converter 2710 para base 2:
Portanto 2710 = 110112
Arquitetura de Computadores 12
Representação dos dadosRepresentação dos dados
• Quando representamos números em papel temos quantos dígitos forem necessários para representar um número.
• Isto não acontece quando um computador armazena um número. Ele utiliza um número fixo de dígitos binários, ou bits, para a representação em base 2. Portanto se estamos utilizando um byte para armazenamento, todos os 8 bits, e no máximo 8 bits, serão usados.
• Por exemplo, 2710, armazenado em um byte:• 00011011
27 26 25 24 23 22 21 20
Inteiros Binários sem Sinal
Arquitetura de Computadores 13
Operações com Inteiros sem Sinal Operações com Inteiros sem Sinal
• Para somar dois números em binário efetuamos a adição de cada dígito das duas parcelas da direita para a esquerda.
• Assim como na aritmética decimal, precisamos estar atento ao "vai um" (carry), isto é, se estamos somando dois dígitos e o resultado for maior do que pode ser representado em um único dígito, devemos somar o excesso na próxima coluna.
Adição
0+0=01+0=10+1=11+1=0 e "vai 1"Exemplo:
11001 : 9
+0101 : 51110 : 14
Arquitetura de Computadores 14
Operações com Inteiros sem Sinal Operações com Inteiros sem Sinal
• Um overflow acontece sempre que o resultado de uma soma não puder ser armazenado no número de bits disponíveis.
• Por exemplo, se estamos trabalhando com números de 4 bits e vamos somar 10+13, o resultado (23) não pode ser armazenado em apenas 4 bits. Isto é um overflow.
11010 : 10
+ 1101 : 130111 : 7 (overflow)
• Pode-se detectar uma situação de overflow se tivermos "vai um" (Carry Out) saindo da última coluna (carry out).
Adição
Arquitetura de Computadores 15
Operações com Inteiros sem Sinal Operações com Inteiros sem Sinal
• A subtração de dois números inteiros sem sinal em binário é feita de forma análoga como em decimal.
• As regras são:
Subtração
0-0=00-1=1, pede emprestado 1 (10 – 1)1-0=1 1-1=0
Exemplo:1
1001 : 9- 0101 : 5
0100 : 4
Arquitetura de Computadores 16
Representação dos dadosRepresentação dos dados
• Para representarmos números de n bits usamos 1 bit para o sinal e n-1 para o valor ou magnitude.
Exemplo com números de 5 bits:5: 00101 15: 01111 1: 00001
-5: 10101 -15: 11111 -1: 10001
27 26 25 24 23 22 21 20
Inteiros Binários com Sinal
sinal magnitude
Sinal:0 -> positivo1 -> negativo
Arquitetura de Computadores 17
Operações com Inteiros com sinalOperações com Inteiros com sinal
• Devemos comparar os sinais• Se os sinais são iguais: realizar como uma adição ou
subtração normal, sem o sinal.
0011 : +3+ 0100 : +4
0111 : +7
1010 : -2+ 1101 : -5
1111 : -7
Adição
sinal sinal
Arquitetura de Computadores 18
Operações com Inteiros com sinalOperações com Inteiros com sinal
• Se os sinais são diferentes: – realizar uma subtração entre o maior valor absoluto e o menor.– O sinal final corresponde ao sinal do maior valor absoluto.
-7 +2 = 7 - 2 1111 : -7
+ 0010 : +21101 : -5
-2 +5 = 5 - 20101 : +5
- 1010 : -20011 : +3
Problema: Muito “complicado” para identificar a operação correta, uso de comparadores
Arquitetura de Computadores 19
Operações com Inteiros com Sinal Operações com Inteiros com Sinal
Determinação do Overflow a partir do Sinal
• Se forem somados 2 números com o mesmo sinal e o resultado tiver o mesmo sinal, então não há overflow.
• Se forem somados dois números com mesmo sinal e o resultado tiver sinal contrário, então há overflow.
• Se forem somados dois números com sinais opostos, nunca há overflow.
Arquitetura de Computadores 20
RepresentaçõaRepresentaçõa dos dadosdos dados
• O que falta para completar 1 em cada um dos bits do número. É facilmente conseguido negando-se os dígitos binários.
Exemplo com números de 5 bits:
5: 00101 15: 01111 1: 00001-5: 11010 -15: 10000 -1: 11110
Complemento de 1
Arquitetura de Computadores 21
RepresentaçõaRepresentaçõa dos dadosdos dados
• Adiciona-se 1 ao complemento de 1 do número. • É, sem dúvida, o método mais usado atualmente para
representação de números inteiros com sinal na grande maioria dos sistemas de computadores.
Exemplo com números de 5 bits:
5: 00101 15: 01111 1: 00001-5: 11011 -15: 10001 -1: 11111
Complemento de 2
Arquitetura de Computadores 22
Tabela ResumoTabela Resumo
-1-0-7151111
-2-1-6141110
-3-2-5131101
-4-3-4121100
-5-4-3111011
-6-5-2101010
-7-6-191001
-8-7-081000
77770111
66660110
55550101
44440100
33330011
22220010
11110001
00+000000
Complemento de 2Complemento de 1Sinal MagnitudeInteiro PositivoBinário
Arquitetura de Computadores 23
RepresentaçõaRepresentaçõa dos dadosdos dados
Sinal e Magnitude:• Duas representações para o zero• Simetria de Positivos e Negativos• Dificuldade em fazer operaçõesComplemento de Um• Duas representações para o zero• Simetria de Positivos e Negativos• Dificuldade em fazer operaçõesComplemento de Dois• Uma única representação para zero• Um negativo a mais que os positivos
Análise dos Modos de Representação
Arquitetura de Computadores 24
Operações com Inteiros em Operações com Inteiros em Complemento de 2 Complemento de 2 Soma de dois números positivos
1 111+5 000101 +20 010100+1 000001 +14 001110+6 000110 +34 100010 (-30)Nenhum Carry Carry InSem Overflow Overflow
Arquitetura de Computadores 25
Operações com Inteiros em Operações com Inteiros em Complemento de 2 Complemento de 2 Soma de Números com sinais opostos
111 1 1 -5 111011 -10 110110
+10 001010 +5 000101+5 000101 -5 111011
Carry In e Carry Out Nenhum CarrySem Overflow Sem Overflow
Arquitetura de Computadores 26
Operações com Inteiros em Operações com Inteiros em Complemento de 2 Complemento de 2 Soma de Números com sinais negativos
111 11 1-5 111011 -10 110110-5 111011 -24 101000
-10 110110 -34 011110 (+30)Carry In e Carry Out Carry OutSem Overflow Overflow
Arquitetura de Computadores 27
Operações com Inteiros em Operações com Inteiros em Complemento de 2 Complemento de 2 Análise do Overflow pelo carry in e carry out
• Se houver número par de carry não há overflow.• Se houver número impar de carry então há overflow.
NãoSimSim
SimNãoSim
SimSimNão
NãoNãoNão
OverflowCarry OutCarry In
Arquitetura de Computadores 28
Representação BCDRepresentação BCD
• Codificação onde um número é representado como uma seqüência de dígito decimais e cada dígito é codificado como um número binário de 4 bits.
0: 00001: 00012: 00103: 0011 4: 0100 5: 01016: 01107: 01118: 10009: 1001Exemplo:
– 7458: 0111 0100 0101 1000
BCD - Decimal Compactado em Binário
Arquitetura de Computadores 29
Representação de CaracteresRepresentação de Caracteres
• Os caracteres são representados nos computadores através de códigos numéricos, onde cada combinação de bits representa uma letra ou símbolo diferente.
• Principais Conjuntos de Caracteres:– BCD - Binary Code Decimal: 6 bits por caracter permitindo 64
caracteres diferentes. Não é mais usado atualmente.– EBCDIC - Extended Binary Coded Decimal Interchange Code:
Codificação exclusiva da IBM, ainda em uso em mainframes. Caracteres de 8 bits, permitindo 256 símbolos.
– ASCII - American Standard Code for Information Interchange - 7 bits para representar os caracteres mais um de paridade. permitindo 128 caracteres. Há uma versão extendida (ANSI) com 8 bits, sem paridade, onde estão disponíveis 256 caracteres.
– UNICODE - Novo padrão proposto. Caracteres com 16 bits.
Arquitetura de Computadores 30
Representação dos DadosRepresentação dos Dados
• Como os computadores são binários, todas as indicações núméricas referenciam a potência de 2.– K representa 1.024 unidades (210) – M representa 1.048.576 unidades (220)
• Logo:• 64K bytes = 64 x 1.024 bytes = 65.536 bytes,• 2 M bytes = 2 x 1.048.576 bytes = 2.097.152 bytes
Arquitetura de Computadores 31
Representação dos DadosRepresentação dos Dados
• 64K bytes = 64 x 1.024 bytes = 65.536 bytes,– Quantos bits deverá ter a palavra para acessar uma memória de
64 K bytes?• Resposta:• 64 K = 26 x 210 = 216
• A palavra deve ter no mínimo 16 bits
• 2 M bytes = 2 x 1.048.576 bytes = 2.097.152 bytes– Quantos bits deverá ter a palavra para acessar uma memória de
2 M bytes?• Resposta:• 2 M = 21 x 220 = 221
• A palavra deve ter no mínimo 21 bits
Arquitetura de Computadores 32
Palavras na MemóriaPalavras na Memória• A memória principal armazena
palavras de um tamanho fixo, as quais recebem o nome específico de palavra de memória.
• Um tamanho típico para palavra de memória é 8 bits (1 byte).
• O tamanho da palavra utilizada para endereçar a memória depende do número de endereços disponíveis.
• Assim, para uma memória com 1.024 endereços, por exemplo, o tamanho da palavra para endereçamento da memória será 10 bits (pois 210 = 1024).
MemóriaDados
MemóriaPrograma
00h01h02h...
...
...
N bits
M bits
Arquitetura de Computadores 33
Palavras na CPUPalavras na CPU
• A palavra interna à CPU, por sua vez, geralmente tem tamanho distinto do das demais.
• Uma CPU projetada para trabalhar com n bits é dita ser um processador de n bits. Existem processadores de 1 a 64 bits (ou até mais).
• Nos computadores pessoais tipo IBM/PC compatíveis, são empregados processadores de 16, 32, 64 e 128 bits, conforme o modelo.
Arquitetura de Computadores 34
Palavras na CPUPalavras na CPU