Arquitetura de Computadores Cap. 10 Conjunto de Instruções: Modos de End. e Formatos.

Post on 16-Apr-2015

113 views 3 download

Transcript of Arquitetura de Computadores Cap. 10 Conjunto de Instruções: Modos de End. e Formatos.

Arquitetura de Computadores

Cap. 10Conjunto de Instruções:Modos de End. e Formatos

Modos de Endereçamento

ImediatoDiretoIndiretoRegistradorIndireto Via RegistradorDeslocamento (Indexação)Pilha

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 Registrador Mapeamento para Endereço Físico

Mecanismo Específico

Endereçamento Imediato

Operando é Parte da InstruçãoAlgoritmo

Operando = Campo de EndereçoAplicaçõ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

Diagrama de End. Imediato

OperandoOpcode

Instrução

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

Endereçamento Direto

Diagrama de End. Direto

Endereço AOpcode

Instrução

Memória

Operando

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

Diagrama de End. Indireto

OpcodeMemória

Operando

Ponteiro p/Op.

Endereço A

Instrução

Endereçamento de Registrador

Semelhante ao End. DiretoCampo de Endereço Registrador

Onde Está OperandoAlgoritmo

EA = RTipicamente

Campo de End. 3-4 bits __ Registradores?

Endereçamento de Registrador

Vantagem Tamanho do Campo de End. é Pequeno

Instruções Pequenas Não Requer Referência à Memória

Busca Mais RápidaDesvantagem

Espaço de Endereçamento Limitado

Diagrama de End. de Registrador

End. do Registrador ROpcode

Instrução

Registradores

Operando

End. Indireto Via Registrador

Semelhante ao End. IndiretoCampo de End. Registrador R com

End. do OperandoAlgoritmo

EA = (R)Vantagens e Desvantagens

Semelhante ao End. Indireto Um Acesso à Memória a Menos

Diagrama de End. IndiretoVia Registrador

End. do Registrador ROpcode

Instrução

Memória

OperandoPonteiro para Op.

Registradores

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

Diagrama de End.Por Deslocamento

Registrador ROpcode

Instrução

Memória

OperandoPonteiro para Op.

Registradores

Endereço A

+

End. Por Deslocamento

Três Usos Comuns Endereçamento Relativo End. Via Registrador-Base Indexação

End. Por DeslocamentoEnd. Relativo

R = Program Counter, PCEA = A + (PC)Deslocamento Relativo ao End. da

InstruçãoExplora Conceito de Localidade e Uso da

Cache Maioria das Referências à Memória

Posições Próximas da Instrução AtualVer Apêndice 4A

End. Por Deslocamento End. Via Registrador-Base

R = Endereço BaseA = DeslocamentoForma Conveniente de Implementar a

Segmentação de MemóriaReferência a R Pode Ser Explícita ou

ImplícitaEx.: Registradores de Segmento no

80x86

End. Por Deslocamento Indexação

A = BaseR = DeslocamentoEA = A + RConveniente para Acessar Matrizes

EA = A + R R++

Indexação – Combinações

Pós-Indexação EA = (A) + (R)

Pré-Indexação EA = (A+(R))

Diagramas Atividade!

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)

RegistradorReferência à Pilha = End. Indireto Via Registrador

Formatos de Instrução

Disposição de bits da InstruçãoInclui

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 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 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 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/PalavraAs 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 Modos de Endereçamento Formatos de Instrução

Conclusões Instruction Set = Simples ou Complexa?

Compatibilidade e LegadoFornecer ao Desenvolvedor de

Compiladores Ferramentas para Produzir Código Eficiente

Por onde estudar ?

Computer Organization and Architecture William Stallings

Cap. 10