Arquitetura e organizao de computadores Endereamento de memria

  • Slides: 48
Download presentation
Arquitetura e organização de computadores Endereçamento de memória. Aula 04 Prof. Diovani Milhorim

Arquitetura e organização de computadores Endereçamento de memória. Aula 04 Prof. Diovani Milhorim

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

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

Endereçamento de memória Interpretação de endereços de memória Ordem dos bytes

Endereçamento de memória Interpretação de endereços de memória Ordem dos bytes

Endereçamento de memória Interpretação de endereços de memória Modos de endereçamento

Endereçamento de memória Interpretação de endereços de memória Modos de endereçamento

Endereçamento de memória Modos de endereçamento Modo registrador

Endereçamento de memória Modos de endereçamento Modo registrador

Endereçamento de memória Modos de endereçamento Modo registrador

Endereçamento de memória Modos de endereçamento Modo registrador

Endereçamento de memória Modos de endereçamento Modo registrador Modo por registrador direto O operando

Endereçamento de memória Modos de endereçamento Modo registrador Modo por registrador direto O operando aponta para um registrador, o qual contém o dado. Modo por registrador indireto O operando aponta para um registrador, o qual contém um endereço de memória (ponteiro) para o dado.

Endereçamento de memória Modos de endereçamento Modo registrador Vantagens Maior velocidade / rapidez de

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). Desvantagem Pequeno número de registradores - se forem muitos os dados endereçados por registrador, os registradores disponíveis podem não ser suficientes.

Endereçamento de memória Modos de endereçamento Modo registrador Exemplos Os exemplos usam instruções do

Endereçamento de memória Modos de endereçamento Modo 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)

Endereçamento de memória Modos de endereçamento Modo registrador Exemplos Os exemplos usam instruções do

Endereçamento de memória Modos de endereçamento Modo registrador Exemplos 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 r 1, r 2 (move register) ==> (r 1) <--- (r 2) - o conteúdo do registrador r 2 é copiado para o registrador r 1 (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).

Endereçamento de memória Modos de endereçamento Modo Imediato

Endereçamento de memória Modos de endereçamento Modo Imediato

Endereçamento de memória Modos de endereçamento MODO IMEDIATO O valor do campo operando é

Endereçamento de memória Modos de endereçamento MODO 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).

Endereçamento de memória Modos de endereçamento MODO IMEDIATO Vantagem O operando é obtido durante

Endereçamento de memória Modos de endereçamento MODO IMEDIATO Vantagem O 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.

Endereçamento de memória Modos de endereçamento MODO IMEDIATO Desvantagens a) Este modo de endereçamento

Endereçamento de memória Modos de endereçamento MODO 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.

Endereçamento de memória Modos de endereçamento MODO IMEDIATO No Intel 8080, o campo Operando

Endereçamento de memória Modos de endereçamento MODO 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).

Endereçamento de memória Modos de endereçamento MODO IMEDIATO Utilização - Inicialização de contadores -

Endereçamento de memória Modos de endereçamento MODO 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) Exemplos Obs. : 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)

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto Vantagens a) É aplicado

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto Vantagens a) É 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. Desvantagens a) Limitação do endereço da MP que pode ser indicado pelo tamanho do campo operando. b) É mais lento que o modo imediato. Utillização Quando o dado varia de valor a cada execução

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto Exemplos de Instruções do

Endereçamento de memória Modos de endereçamento Modo 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 978 A ===> ACC <--- (978 A) = carrega no acumulador o conteúdo da posição de memória 978 A.

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto Exemplos de Instruções do

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto Exemplos de Instruções do Intel 8080: JMP Op ("jump") ==> CI <--- (Op) JMP 1000 H ==> CI<--- (1000 H) = 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 1001 H 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.

Endereçamento de memória Modos de endereçamento Modo Direto ou Absoluto Exemplos de Instruções do

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, 7 AC 1 ==> B <--- (7 AC 1), move o conteúdo da posição de memória (8 bits) indicada pelo operando - 7 AC 1 - para o registrador B (8 bits).

Endereçamento de memória Modos de endereçamento Modo indireto de memória

Endereçamento de memória Modos de endereçamento Modo indireto de memória

Endereçamento de memória Modos de endereçamento Modo indireto de memória

Endereçamento de memória Modos de endereçamento Modo indireto de memória

Endereçamento de memória Modos de endereçamento Modo indireto de memória Exemplo: LDID Op ==>

Endereçamento de memória Modos de endereçamento Modo 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).

Endereçamento de memória Modos de endereçamento Modo indireto de memória Vantagem a) Permite implementar

Endereçamento de memória Modos de endereçamento Modo 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. Desvantagem Requer 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.

Endereçamento de memória Modos de endereçamento Modo indireto de memória Utilização Manutenção de ponteiro

Endereçamento de memória Modos de endereçamento Modo indireto de memória Utilização Manutençã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).

Endereçamento de memória Modos de endereçamento Modo indireto registrador

Endereçamento de memória Modos de endereçamento Modo indireto registrador

Endereçamento de memória Modos de endereçamento Modo indireto registrador

Endereçamento de memória Modos de endereçamento Modo indireto registrador

Endereçamento de memória Modos de endereçamento Modo indireto registrador Vantagens Maior velocidade / rapidez

Endereçamento de memória Modos de endereçamento Modo 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). Desvantagem Nã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

Endereçamento de memória Modos de endereçamento Modo indireto registrador Utilização Implementação de contadores. Exemplo

Endereçamento de memória Modos de endereçamento Modo 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.

Endereçamento de memória Modos de endereçamento Modo indireto registrador Exemplos Os exemplos usam instruções

Endereçamento de memória Modos de endereçamento Modo 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)

Endereçamento de memória Modos de endereçamento Modo indireto registrador Exemplos DCR r (decrement register)

Endereçamento de memória Modos de endereçamento Modo indireto registrador Exemplos DCR r (decrement register) ==> (r) <--- (r) - 1 - decrementa o conteúdo do registrador r (endereçamento por registrador, direto) MOV r 1, r 2 (move register) ==> (r 1) <--- (r 2) - o conteúdo do registrador r 2 é copiado para o registrador r 1 (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).

Endereçamento de memória Modos de endereçamento Modo deslocamento

Endereçamento de memória Modos de endereçamento Modo deslocamento

Endereçamento de memória Modos de endereçamento Modo deslocamento

Endereçamento de memória Modos de endereçamento Modo deslocamento

Endereçamento de memória Modos de endereçamento Modo deslocamento Utiliza um registrador chamado Registrador de

Endereçamento de memória Modos de endereçamento Modo 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.

Endereçamento de memória Modos de endereçamento Modo indexado

Endereçamento de memória Modos de endereçamento Modo indexado

Endereçamento de memória Modos de endereçamento Modo indexado O endereço de cada elemento é

Endereçamento de memória Modos de endereçamento Modo 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). Vantagem Rapidez na execução das instruções de acesso aos dados (a alteração dos endereços é realizada na UCP. Utilização Manipulação de estruturas de dados mais sofisticadas (vetores).

Endereçamento de memória Modos de endereçamento Modo indexado Vantagem Rapidez na execução das instruções

Endereçamento de memória Modos de endereçamento Modo indexado Vantagem Rapidez na execução das instruções de acesso aos dados (a alteração dos endereços é realizada na UCP. Utilização Manipulação de estruturas de dados mais sofisticadas (vetores).

Endereçamento de memória Modos de endereçamento Modo indexado Obs. : O Intel 8080 não

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. Exemplos LDX Ri, Op ==> ACC <--- ((Op) + (Ri)) ADX Ri, Op ==> ACC <--- ACC + ((Op) + (Ri))

Endereçamento de memória Modos de endereçamento Modo auto incremento

Endereçamento de memória Modos de endereçamento Modo auto incremento

Endereçamento de memória Modos de endereçamento Modo auto decremento

Endereçamento de memória Modos de endereçamento Modo auto decremento

Endereçamento de memória Modos de endereçamento Modo escalonado

Endereçamento de memória Modos de endereçamento Modo escalonado

Endereçamento de memória Modos de endereçamento IDENTIFICAÇÃO DO MODO DE ENDEREÇAMENTO DA INSTRUÇÃO O

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.

Endereçamento de memória Modos de endereçamento Efeitos de Temporização dos Modos de Endereçamento O

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.

Endereçamento de memória Modos de endereçamento Exercício: l Qual será o valor carregado no

Endereçamento de memória Modos de endereçamento Exercício: l 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)

Endereçamento de memória Modos de endereçamento Exercício:

Endereçamento de memória Modos de endereçamento Exercício:

Endereçamento de memória Modos de endereçamento Exercício:

Endereçamento de memória Modos de endereçamento Exercício: