Transcript
Page 1: Arquitetura e organização de computadores

Arquitetura e organização de computadores

Endereçamento de memória.

Aula 04Prof. Diovani Milhorim

Page 2: Arquitetura e organização de computadores

Endereçamento de memória

Interpretação de endereços de memória

Page 3: Arquitetura e organização de computadores

Endereçamento de memória

Interpretação de endereços de memória

Ordem dos bytes

Page 4: Arquitetura e organização de computadores

Endereçamento de memória

Interpretação de endereços de memória

Modos de endereçamento

Page 5: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo registrador

Page 6: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo registrador

Page 7: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo registrador

Modo por registrador diretoO operando aponta para um registrador, o qual contém o dado. 

Modo por registrador indiretoO operando aponta para um registrador, o qual contém um endereço de memória (ponteiro) para o dado. 

Page 8: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo registrador

Vantagens Maior velocidade / rapidez de execução - o acesso ao registrador é muito mais rápido que o acesso à memória.Economia de espaço de armazenamento de instrução (o tamanho da instrução é menor porque como são poucos registradores, são menos bits para seus endereços).

DesvantagemPequeno número de registradores - se forem muitos os dados endereçados por registrador, os registradores disponíveis podem não ser suficientes.

Page 9: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo registradorExemplos Os exemplos usam instruções do Intel 8080:

ADD r (add register) ==> (ACC) <--- (ACC) + (r) - soma o conteúdo do registrador r ao conteúdo do acumulador (endereçamento por registrador, direto) ADD M (add memory) ==> (ACC) <--- (ACC) + ((M)) - soma o conteúdo da posição de memória indicada pelo registrador M ao conteúdo do acumulador (endereçamento por registrador, indireto) INR M (increment memory) ==> ((M)) <--- ((M)) + 1 - incrementa o conteúdo da posição de memória indicada pelo registrador M (endereçamento por registrador, indireto) 

Page 10: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo registradorExemplos Os exemplos usam instruções do Intel 8080:

DCR r (decrement register) ==> (r) <--- (r) - 1 - decrementa o conteúdo do registrador r (endereçamento por registrador, direto) MOV r1, r2 (move register) ==> (r1) <--- (r2) - o conteúdo do registrador r2 é copiado para o registrador r1 (endereçamento por registrador, direto). MOV M, r (move to memory) ==> ((M)) <--- (r) - o conteúdo do registrador r é copiado para a posição de memória cujo endereço está no registrador M (endereçamento por registrador, indireto). 

Page 11: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo Imediato

Page 12: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoMODO IMEDIATO

O valor do campo operando é o próprio dado.

É usado para trabalhar com valores constantes. O operando é dito operando imediato (o operando é o próprio valor a ser operado, ou seja, é o próprio dado a ser processado).

Page 13: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoMODO IMEDIATO

VantagemO operando é obtido durante o ciclo de busca, em apenas 1 acesso. Não é necessário fazer nenhum acesso à MP no ciclo de execução, acarretando maior rapidez na execução. 

Page 14: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoMODO IMEDIATO

Desvantagens a) Este modo de endereçamento não permite flexibilidade para alterar dados que variam a cada execução do programa, portanto não é adequado para variáveis repetidamente operadas com diferentes valores a cada execução do programa.

b) O tamanho do dado fica limitado ao número de bits do operando (campo operando da instrução). A limitação de tamanho do campo operando reduz o valor máximo do dado que pode ser armazenado.

Page 15: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoMODO IMEDIATO

No Intel 8080, o campo Operando tem 8 bits, portanto o maior valor deste campo será limitado a 28 = 256.

Existem instruções que permitem carregar doublewords, isto é, palavras duplas que ocupam 2 células de memória, em que o maior valor será limitado a 216 = 65.536 (64 k).

Page 16: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoMODO IMEDIATO

Utilização- Inicialização de contadores- Constantes- Armazenamento de ponteiros em registradores- Indicação de quantidade de posições em operações de deslocamento de bits (multiplicação e divisão)

ExemplosObs.: Instruções do Intel 8080.LDI Op ==> ACC <--- Op = carrega o valor (hexadecimal) do operando no acumulador.LDI 50 (load immediate) ==> ACC <---- 50 (carrega o valor hexadecimal 50 no acumulador)

Page 17: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo Direto ou Absoluto

Page 18: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo Direto ou Absoluto

Page 19: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo Direto ou Absoluto

Vantagensa) É aplicado em mais situações que o modo imediato; b) Requer apenas uma referência à memória para busca do dado (além de uma para a busca da instrução), sendo mais rápido que o modo indireto.

Desvantagensa) Limitação do endereço da MP que pode ser indicado pelo tamanho do campo operando. b) É mais lento que o modo imediato.

UtillizaçãoQuando o dado varia de valor a cada execução

Page 20: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo Direto ou Absoluto

Exemplos de Instruções do Intel 8080:

LDA Op (”load accumulator”), sendo Op um endereço na memória ==> ACC <--- (Op) 

(carrega o conteúdo da posição de memória indicada pelo operando no acumulador).

LDA 978A ===> ACC <--- (978A) = carrega no acumulador o conteúdo da posição de memória 978A.

Page 21: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo Direto ou Absoluto

Exemplos de Instruções do Intel 8080:

JMP Op ("jump") ==> CI <--- (Op) JMP 1000H ==> CI<--- (1000H) = causa um desvio para o endereço contido nas posições 1000 e 1001 (hexadecimal) da memória, carregando o conteúdo das posições 1000 e 1001H no CI

Obs: como no processador 8080 o C I contém 16 bits (um endereço), serão necessárias DUAS células de memória (uma célula contém 8 bits), o que requer dois ciclos de busca à memória.

Page 22: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo Direto ou Absoluto

Exemplos de Instruções do Intel 8080:

MOV R, Op ==> R <--- (Op) MOV B, 7AC1 ==> B <--- (7AC1), move o conteúdo da posição de memória (8 bits) indicada pelo operando - 7AC1 - para o registrador B (8 bits).

Page 23: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo indireto de memória

Page 24: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo indireto de memória

Page 25: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo indireto de memória

Exemplo: 

LDID Op ==> ACC <--- ((Op))

São necessários 3 ou mais acessos à memória: 1 para buscar o opcode, 1 (ou 2, quando for uma referência à memória) para buscar o operando (Op) e mais 1 para buscar o dado ((Op)) propriamente dito (ou 2, quando o dado for um endereço de memória; por exemplo, quando for uma instrução de desvio).

Page 26: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo indireto de memória

Vantagem a) Permite implementar estruturas de organização de dados mais complexas, mais sofisticadas.b) Elimina a limitação de células endereçáveis.

DesvantagemRequer maior quantidade de acessos à MP para completar o ciclo de execução da instrução, acarretando que o tempo requerido para a execução da instrução é maior.

Obs.1: É possível haver várias indireções. Em algumas máquinas, existe 1 bit que sinaliza no caso de existirem várias Indireções. Enquanto este bit for 0, continua com as indireções, até encontrá-lo ligado.

Page 27: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo indireto de memória

UtilizaçãoManutenção de ponteiro de dados

Exemplo: Relação de dados a serem movimentados para novas posições de memória (por exemplo, elementos de vetores), basta modificar o valor da célula endereçada pela instrução (não é necessário mudar o valor do operando).

Page 28: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo indireto registrador

Page 29: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo indireto registrador

Page 30: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo indireto registrador

Vantagens Maior velocidade / rapidez de execução - o acesso ao registrador é muito mais rápido que o acesso à memória.Economia de espaço de armazenamento de instrução (o tamanho da instrução é menor porque como são poucos registradores, são menos bits para seus endereços).

DesvantagemNão são adequados para transferência de variáveis da MP para ULA.Pequeno número de registradores - se forem muitos os dados endereçados por registrador, os registradores disponíveis podem não ser suficientes

Page 31: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo indireto registrador

Utilização Implementação de contadores.

Exemplo de uso: vetor E(1) ... E (100)Ri contém E ( i ) para incrementar e percorrer o vetor

Obs.: No Intel 8080, a identificação do registrador envolvido na operação faz parte do próprio opcode.

Page 32: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo indireto registrador

Exemplos Os exemplos usam instruções do Intel 8080:ADD r (add register) ==> (ACC) <--- (ACC) + (r) - soma o conteúdo do registrador r ao conteúdo do acumulador (endereçamento por registrador, direto) 

ADD M (add memory) ==> (ACC) <--- (ACC) + ((M)) - soma o conteúdo da posição de memória indicada pelo registrador M ao conteúdo do acumulador (endereçamento por registrador, indireto)

 INR M (increment memory) ==> ((M)) <--- ((M)) + 1 - incrementa o conteúdo da posição de memória indicada pelo registrador M (endereçamento por registrador, indireto) 

Page 33: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo indireto registrador

Exemplos DCR r (decrement register) ==> (r) <--- (r) - 1 - decrementa o conteúdo do registrador r (endereçamento por registrador, direto) 

MOV r1, r2 (move register) ==> (r1) <--- (r2) - o conteúdo do registrador r2 é copiado para o registrador r1 (endereçamento por registrador, direto).

 MOV M, r (move to memory) ==> ((M)) <--- (r) - o conteúdo do registrador r é copiado para a posição de memória cujo endereço está no registrador M (endereçamento por registrador, indireto).

Page 34: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo deslocamento

Page 35: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo deslocamento

Page 36: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo deslocamento

Utiliza um registrador chamado Registrador de Base, que contém o endereço base na MP e um operando, que contém o deslocamento do dado em relação à base.

UtilizaçãoÉ usado para relocação de programas: define endereço inicial da área do programa e o endereço inicial da área de dados (pode ser utilizado um registrador para endereços e um para dados)

Nota: Os microprocessadores Intel (após 8086/8) usam registradores específicos como registradores-base. Estes Registradores de Base são utilizados para implementar o endereçamento de memória e a segmentação da memória em páginas de 64 kbytes.

Page 37: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo indexado

Page 38: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamentoModo indexado

O endereço de cada elemento é obtido através da soma do campo Operando com o conteúdo de um registrador (Registrador de Índice).O endereço de cada elemento (por exemplo, de um vetor) é a soma (antes da colocação do endereço no REM) do valor do campo operando com o conteúdo de um registrador (escolhido como registrador índice).

VantagemRapidez na execução das instruções de acesso aos dados (a alteração dos endereços é realizada na UCP.

UtilizaçãoManipulação de estruturas de dados mais sofisticadas (vetores).

Page 39: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo indexado

VantagemRapidez na execução das instruções de acesso aos dados (a alteração dos endereços é realizada na UCP.

UtilizaçãoManipulação de estruturas de dados mais sofisticadas (vetores).

Page 40: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo indexado

Obs.: O Intel 8080 não possui nenhuma instrução com modo de endereçamento indexado, o qual somente foi introduzido na família Intel a partir do 8086.ExemplosLDX Ri, Op ==> ACC <--- ((Op) + (Ri))ADX Ri, Op ==> ACC <--- ACC + ((Op) + (Ri))

Page 41: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo auto incremento

Page 42: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo auto decremento

Page 43: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Modo escalonado

Page 44: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

IDENTIFICAÇÃO DO MODO DE ENDEREÇAMENTO DA INSTRUÇÃO

O Código de Operação identifica o modo de endereçamento, através de seu mnemônico e do correspondente código binário.

Determinados bits no opcode podem indicar o modo de endereçamento ou a instrução pode possuir um campo específico para indicar o modo de endereçamento, através de códigos em bits. O registrador utilizado no endereçamento também pode ser indicado por bits determinados no opcode.

Page 45: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Efeitos de Temporização dos Modos de Endereçamento

O modo de endereçamento afeta o tempo requerido para executar uma instrução e a memória requerida para seu armazenamento

Instruções que usam endereçamento implícito ou por registrador são executadas muito rápido, pois trabalham direto com o hardware do processador e seus registradores. A instrução toda pode ser buscada (“fetched”) em um único ciclo de busca (um único acesso à memória). O número de acessos à memória é o mais importante fator no consumo de tempo de execução da instrução.

Page 46: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Exercício:

Qual será o valor carregado no acumulador quando forem executadas as seguintes instruções:LDI Op ==> (ACC) <--- Op (modo de endereçamento Imediato)LDA Op ==> (ACC) <--- (Op) (modo de endereçamento direto)LDID Op ==> (ACC) <--- ((Op)) (modo de endereçamento Indireto)LDR Op ==> (ACC) <--- (R) (modo de endereçamento Direto por Registrador)LDIR Op ==> (ACC) <--- ((R)) (modo de endereçamento Indireto por Registrador)LDX Op ==> (ACC) <--- ((Ri) + (Op)) (modo de endereçamento Indexado)LDB Op ==> (ACC) <--- ((Rb) + (Op)) (modo de endereçamento Base + Deslocamento)

Page 47: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Exercício:

Page 48: Arquitetura e organização de computadores

Endereçamento de memória

Modos de endereçamento

Exercício:


Top Related