Arquitetura de Computadores Cap. 10 Conjunto de Instruções: Modos de End. e Formatos
Modos de Endereçamento Imediato Direto Indireto Registrador Indireto Via Registrador Deslocamento (Indexação) Pilha 2
Endereço Efetivo Sistemas Sem Memória Virtual Endereço da Memória Principal ou Registrador Sistemas Com Memória Virtual Endereço Virtual ou Mapeamento para Endereço Físico Mecanismo Específico
Endereçamento Imediato Operando é Parte da Instrução Algoritmo Operando = Campo de Endereço Aplicações Típicas Definição e Uso de Constantes Atribuição de Valores Iniciais a Variáveis Nenhuma Referência à Memória Rápido Magnitude Limitada 3
Diagrama de End. Imediato Instrução Opcode Operando 4
Endereçamento Direto Campo de Endereço End. do Operando Algoritmo End. Efetivo (EA) = Campo de End. (A) Referência Única à Memória Sem Cálculos Adicionais para Obter EA Espaço de Endereçamento Limitado 5
Diagrama de End. Direto Instrução Opcode Endereço A Memória Operando 6
Endereçamento Indireto Campo de Endereço End. de Palavra na Memória End. do Operando Algoritmo EA = (A) Vantagem Tam. da Palavra = N Espaço de End. 2N Desvantagem 2 Acessos à Memória para Obter Operando 7
Diagrama de End. Indireto Instrução Endereço A Opcode Memória Ponteiro p/Op. Operando 9
Endereçamento de Registrador Semelhante ao End. Direto Campo de Endereço Registrador Onde Está Operando Algoritmo EA = R Tipicamente Campo de End. 3-4 bits __ Registradores? 10
Endereçamento de Registrador Vantagem Tamanho do Campo de End. é Pequeno Instruções Pequenas Não Requer Referência à Memória Busca Mais Rápida Desvantagem Espaço de Endereçamento Limitado 11
Diagrama de End. de Registrador Instrução Opcode End. do Registrador R Registradores Operando 12
End. Indireto Via Registrador Semelhante ao End. Indireto Campo de End. Registrador R com End. do Operando Algoritmo EA = (R) Vantagens e Desvantagens Um Acesso à Memória a Menos 13
Diagrama de End. Indireto Via Registrador Instrução Opcode End. do Registrador R Memória Registradores Ponteiro para Op. Operando 14
End. Por Deslocamento Combina Capacidades de End. Direto e Indireto Via Registrador Algoritmo EA = A + (R) Dois Campos de End. A = End. Explícito, Usado Diretamente R = Registrador com Deslocamento 15
Diagrama de End. Por Deslocamento Instrução Opcode Registrador R Endereço A Memória Registradores + Ponteiro para Op. Operando 16
End. Por Deslocamento Três Usos Comuns Endereçamento Relativo End. Via Registrador-Base Indexação
End. Por Deslocamento End. Relativo R = Program Counter, PC EA = A + (PC) Deslocamento Relativo ao End. da Instrução Explora Conceito de Localidade e Uso da Cache Maioria das Referências à Memória Posições Próximas da Instrução Atual Ver Apêndice 4A 17
End. Por Deslocamento End. Via Registrador-Base R = Endereço Base A = Deslocamento Forma Conveniente de Implementar a Segmentação de Memória Referência a R Pode Ser Explícita ou Implícita Ex.: Registradores de Segmento no 80x86 18
End. Por Deslocamento Indexação A = Base R = Deslocamento EA = A + R Conveniente para Acessar Matrizes R++ 19
Indexação – Combinações Pós-Indexação EA = (A) + (R) Pré-Indexação EA = (A+(R)) Diagramas Atividade! 20
Endereçamento à Pilha Topo da Pilha (Implicitamente) Operando Pilha Seqüência Linear de Posições de Memória Bloco Reservado Lista Push-Down Fila LIFO (Last In, First Out) Apontador de Topo da Pilha (Stack Pointer) Registrador Referência à Pilha = End. Indireto Via Registrador 21
Formatos de Instrução Disposição de bits da Instrução Inclui Código de Operação (OpCode) Zero ou Mais Operandos (Implícita ou Explicitamente) Usualmente Mais de Um Formato de Instrução em Um Conjunto de Instrução
Formatos de Instrução Questões Fundamentais Tamanho de Instrução Alocação de bits Instruções de Tamanho Variável
Tamanho de Instrução Afeta e É Afetada por Tamanho da Memória Organização da Memória Estrutura de Barramento Complexidade da CPU Velocidade da CPU Determina Riqueza e Flexibilidade da Máquina para Programador Assembly
Tamanho da Instrução Conflito Demanda dos Programadores Fornecer Repertório de Instruções Poderoso Necessidade de Economizar Espaço Demanda dos Programadores Mais Códigos de Operação Prg. Compacto Mais Operandos Prgs. Mais Compactos Mais Modos de End. Mais Flexibilidade Maior Espaço de Endereçamento
Tamanho da Instrução Instruções Maiores = Desperdício? Espaço Instr. de 32 bits = 2 X Instr. de 16 bits Utilidade É Duas Vezes Maior? Tamanho da Instrução = Unidade de Transferência de Dados Memória-CPU? Nº de Instruções Obtidas em Um Ciclo de Busca
Alocação de bits Conflito Uso de OpCodes de Tamanho Variável Nº de OpCodes Capacidade de Endereçamento Uso de OpCodes de Tamanho Variável Tamanho Mínimo para OpCode
Alocação de bits Fatores de Uso dos bits As Escolhas São Críticas? Número de Modos de Endereçamento Número de Operandos Memória ou Registrador 8 a 32 Registradores Visíveis ao Usuário Número de Conjuntos de Registradores Dois ou Mais: Dados e Deslocamento Faixa de Endereços Granularidade de Endereçamento Tamanho da Palavra X Acesso ao Byte/Palavra As Escolhas São Críticas?
Instruções de Tamanho Variável Instruções de Tamanhos Diferentes X Tamanho Único Custo Principal Complexidade da CPU Tamanhos de Instruções = Múltiplos ou Divisores do Tamanho da Palavra Estratégia Típica: Buscar Sempre o Nº de Bytes do Tamanho da Maior Instrução
Pentium Pesquisar Conclusões Modos de Endereçamento Formatos de Instrução Conclusões Instruction Set = Simples ou Complexa? Compatibilidade e Legado Fornecer ao Desenvolvedor de Compiladores Ferramentas para Produzir Código Eficiente
Por onde estudar ? Computer Organization and Architecture William Stallings Cap. 10