25/02/ Organização de Computadores: Uma Introdução aos Componentes Fundamentais Lógica Digital Introdução a Arquitetura Prof. Dr. Ronaldo Gonçalves Prof. Leandro Magno
25/02/ Algumas Verdades Escondidas As portas lógicas são ativadas por uma entrada especial, a qual deve ser considerada como um sinal de ativação e não como uma entrada que sofrerá as transformações do circuito lógico. A finalidade deste sinal de ativação é fazer com que o dado (entradas que serão transformadas) somente passe pelo circuito em determinado momento (momento da ativação) Sinais Válidos: 1 - Ativação e 0 - Manutenção
25/02/ Exemplificação Visual
25/02/ Em circuitos mais complexos...
25/02/ Observação A duração de um sinal de ativação deve ser suficiente para que o dado de entrada esteja estabilizado na saída. A freqüência (MHz) com que um computador trabalha mede a velocidade com que os circuitos lógicos são ativados. A este sinal de ativação de um circuito lógico chamamos de temporizador ou sinal de clock (relógio)
25/02/ Abstração do Circuito (Caixa Preta)
25/02/ Mais Genericamente temos:
25/02/ Revendo Números Binários Representação de valores decimais em binários. Exemplos: Dec de 2 casas -> Binário de 4 casas
25/02/ Mais um pouco... Dec de 2 casas -> Binário de 4 casas Como fazer genericamente??
25/02/ Regra Básica: Decomponha o número decimal em uma somatória de potências de 2, usando a seguinte fórmula: ND = A n-1.2 n A A A A Assim, ND = A n-1... A 3 A 2 A 1 A 0 Onde A 0, A 1, A 2, A 3... A n-1 {0,1}
25/02/ Regra mais prática: Primeiro passo, faça uma linha com uma seqüência das potências de 2 da direita para a esquerda Na segunda linha, caminhe da esquerda para a direita e vá decompondo o número original em uma somatória de potências. Se a potência acima pode ser contida no número, coloque 1 e decremente a potência do número. Repita a operação até a última potência.
25/02/ Exemplo: Converta o número 29 Potências: Resultado: Assim, 29 = ou Pois 29 =
25/02/ Exercício para Agora: Converta os decimais para binários com 16 dígitos (2 bytes) 1) 97 2) 735 3) 2946
25/02/ Resposta: A conversão ficou: 1) 97 = ) 735 = ) 2946 =
25/02/ Operações Aritméticas com Binários Adição Básica
25/02/ Um exemplo um pouco maior:
25/02/ Exercícios para Agora Efetue a Soma Binária com 8 digitos: a) b) c)
25/02/ Resolvendo temos: a) = b) = c) =
25/02/ Implementando um Circuito Somador Básico de 2 Bits A e B – Entradas S – Saída VE – Vai Um de entrada VS – Vai Um de saída
25/02/ Montando a Tabela Verdade: ABVESVS
25/02/ Simplificando com Karnaugh:
25/02/ Detalhe: Porta lógica Ou Exclusivo ABA xor B A xor B = A´B + AB´
25/02/ Então teremos:
25/02/ Para um somador de 4 bits...
25/02/ Operações Aritméticas com Binários Subtração Básica
25/02/ Um exemplo um pouco maior:
25/02/ Exercícios para Agora Efetue a Subtração Binária com 8 digitos: a) 135 – 49 b) 178 – 111 c) 86 – 26
25/02/ Resolvendo temos: a) – = b) – = c) – =
25/02/ Implementando um Circuito Subtrator Básico de 2 Bits A e B – Entradas S – Saída VE – Vai Um de entrada VS – Vai Um de saída
25/02/ Montando a Tabela Verdade: ABVESVS
25/02/ Simplificando com Karnaugh:
25/02/ Então teremos:
25/02/ Para um subtrator de 4 bits...
25/02/ Decodificador 2 x 4
25/02/ Bit de Memória Flip-Flop RS
25/02/ Palavra de Memória Registrador
25/02/ Sistema de Memória
25/02/ Unidade Lógica e Aritmética Unidade Funcional
25/02/ Unidade de Controle Microprogramada
25/02/ Arquitetura Primitiva (CISC)
25/02/ Algoritmo da CPU Loop 1. RI <- mem(PC); 2. Decodifica(RI); 3. Executa(RI); 4. PC <- PC + 1; Forever;
25/02/ Visão Geral: CPU, MEM e E/S
25/02/ Aprendendo Números Hexadecimais Representação de valores decimais em hexadecimais. Exemplos: Dec de 2 casas -> Hexadecimal com 2 casas
25/02/ Mais um pouco... Dec de 2 casas -> Hexadecimal de 2 casas A 13 0D 15 0F Como fazer genericamente??
25/02/ Regra Básica: Decomponha o número decimal em uma somatória de potências de 16, usando a seguinte fórmula: ND = A n-1.16 n A A A Assim, ND = A n-1... A 3 A 2 A 1 A 0 Onde A 0, A 1, A 2, A 3... A n-1 {0,1, 2..A... F}
25/02/ Regra mais prática: Primeiro passo, faça uma linha com uma seqüência das potências de 16 da direita para a esquerda Na segunda linha, caminhe da esquerda para a direita e vá decompondo o número original em uma somatória de potências. Se a potência acima pode ser contida no número n vezes, coloque n e decremente nxpotência do número. Repita a operação até a última potência.
25/02/ Exemplo: Converta o número Potências: Ou: Res Parcial: Ou 0 E A 6 0 Assim, = EA60 ou EA60 Pois = E
25/02/ Observação: Cada 4 digitos binários corresponde a um digito hexadecimal Exs: 1010 = A = C = F70B
25/02/ Exercício para Agora: Converta os decimais para hexadecimais com 4 dígitos (16 bits ou 2 bytes) 1) 97 2) 735 3) 2946
25/02/ Resposta: A conversão ficou: 1) ) 02DF 3) 0B82
25/02/ Mais Exercícios para Agora: Converta os decimais para Hexadecimais com 4 dígitos (2 bytes) 1) ) ) 24256
25/02/ Resposta: A conversão ficou: 1) F291 2) ) 5EC0
25/02/ Formato das Instruções Cada instrução ocupa 2 bytes (16 bits)
25/02/ Modos de Endereçamento 00 - direto: o segundo byte contém o endereço do operando 01 - indireto: o segundo byte contém o endereço de uma posição de memória que contém o endereço do operando 10 - imediato: o segundo byte contém o próprio operando 11 - indexado: o segundo byte deve ser somado ao conteúdo do registrador X a fim de juntos proverem o endereço do operando.
25/02/ Registradores (Identificadores) 00 = registrador A (uso geral) 01 = registrador B (uso geral) 10 = registrador X (uso geral) 11 = nenhum registrador é selecionado
25/02/ Conjunto de Instruções
25/02/ Exemplo de Instruções: Como fazer? 1. Colocar um dado em um registrador: - Instrução: LDR (load) - Código da Instrução: Registrador:B - Código do registrador:01 - Dado: Modo Imediato:10 Instrução Final: ou:26 10
25/02/ Colocar um dado de registrador na memória: - Instrução: STR (store) - Código da Instrução: Registrador:B - Código do registrador:01 - Endereço de Memória: Modo Imediato:00 Instrução Final: ou:14 FF