Endereçamento Endereçamento Técnicas de endereçamento

Propaganda
25/8/2010
Endereçamento
Arquitetura de Computadores
Conjuntos de Instruções: modos de endereçamento
e formatos
Normalmente, os campos de endereço são
relativamente pequenos, impossibilitando a
referência a uma grande quantidade de
posições na memória principal ou virtual
Diferentes técnicas de endereçamento são
empregadas, buscando:
Prof. Marcos Quinet
Universidade Federal Fluminense – P.U.R.O.
◦ Aumentar a quantidade de posições de memória
endereçáveis
◦ Aumentar a flexibilidade do endereçamento ao
número de referências à memória
◦ Minimizar a complexidade do cálculo de
endereços
2
Endereçamento
Técnicas de endereçamento
Praticamente todas as arquiteturas de
computadores fornecem mais de um modo de
endereçamento
◦ O valor do operando é especificado diretamente
na instrução
Instrução
Um ou mais bits do formato de instrução
podem constituir um campo de modo de
endereçamento
Endereço efetivo: em sistemas sem uso de
memória virtual, é um endereço na M.P. ou de
um registrador; já com a utilização de memória
virtual, trata-se de um endereço virtual ou um
registrador
3
Endereçamento imediato
Opcode
Operando
Vantagem: nenhuma referência à memória
Desvantagem: limitada magnitude do operando
4
1
25/8/2010
Técnicas de endereçamento
Técnicas de endereçamento
Endereçamento direto
Instrução
◦ O campo de endereço contém o endereço
efetivo do operando
Opcode
Endereço A
Memória
Ex.: ADD A, representa:
◦ Procura no endereço A na memória um
operando;
◦ Soma o valor do endereço A ao acumulador.
Operando
Método simples, nenhuma outra operação é
necessária para determinar o endereço
Porém, o espaço de endereçamento é limitado
(normalmente, menor do que uma palavra)
5
Técnicas de endereçamento
Técnicas de endereçamento
Endereçamento indireto
Instrução
◦ No campo de endereço está o endereço de uma
palavra de memória, que por sua vez, contém o
endereço do operando
6
Opcode
Endereço A
Memória
Ex.: ADD (A), representa a soma ao acumulador
do conteúdo de memória apontado pelo
endereço representado por A
Com esta técnica, é possível utilizar um grande
espaço de endereçamento (2n, onde n é o
tamanho da palavra, em bits)
Desvantagem: agora são necessários dois
acessos à memória para acessar o conteúdo, o
que torna o processo mais lento
Ponteiro para operando
Operando
7
8
2
25/8/2010
Técnicas de endereçamento
Técnicas de endereçamento
Endereçamento de registrador
Instrução
◦ Semelhante ao endereçamento direto, a referência
ao campo de endereço é a um registrador, e não a
um endereço da M.P.
Opcode
Endereço do registrador R
Registradores
Normalmente, os endereços a registradores tem
de 3 a 4 bits, possibilitando referenciar de 8 a 16
registradores de propósito geral
Vantagens: campo de endereço da instrução é
pequeno e não realiza acesso à memória
(acesso aos registradores é mais rápido)
Desvantagem: espaço de endereçamento muito
limitado
Operando
9
Técnicas de endereçamento
Técnicas de endereçamento
Instrução
Endereçamento indireto via registrador
Opcode
◦ Análogo ao endereçamento indireto usando
memória; o registrador contém uma posição da
memória principal
10
Endereço do registrador R
Memória
Registradores
Assim como no endereçamento indireto (via
memória principal), permite trabalhar com um
maior espaço de endereçamento, porém
requer dois acessos à memória (porém, um
destes é a um registrador, logo, o tempo é
bastante inferior ao da outra técnica)
Ponteiro p/ o operando
11
Operando
12
3
25/8/2010
Técnicas de endereçamento
Técnicas de endereçamento
Instrução
Endereçamento por deslocamento
◦ Método bastante poderoso, pois combina as
técnicas de endereçamento direto +
endereçamento indireto por registrador
Opcode Registrador R
Memória
Registradores
A instrução precisa de dois campos de endereço,
sendo um deles explícito
O outro campo é uma referência implícita,
especifica um registrador cujo conteúdo é
adicionado ao endereço explícito A, produzindo o
endereço efetivo
Pode ser utilizado de três formas (vistas a seguir)
Endereço A
Ponteiro para operando
+
Operando
13
Técnicas de endereçamento
14
Técnicas de endereçamento
Endereçamento relativo
O registrador referenciado implicitamente é o
contador de programa (PC), usado para
produzir o endereço efetivo
O endereço efetivo é um deslocamento relativo
ao endereço da instrução
Explora o conceito da localidade de referência,
o que permite economizar bits de endereço na
instrução
15
Endereçamento via registrador-base
O registrador contém um endereço de memória
e o campo de endereço, um deslocamento em
relação a este endereço
◦ Também explora o princípio da localidade de
referência
◦ Permite a implementação da segmentação da
memória
16
4
25/8/2010
Técnicas de endereçamento
Técnicas de endereçamento
Indexação
Normalmente o campo de endereço contém
um endereço da M.P., e o registrador, um
deslocamento positivo relativo a esse
endereço
Uso na implementação de mecanismos de
operações iterativas
Endereçamento a pilha
◦ É uma forma de endereçamento implícito; a
referência à memória sempre será o topo da pilha
◦ Ex.: acrescentar ‘1’ a cada elemento de uma
lista. O elemento ‘A’, que representa um
endereço de memória a partir do qual está
armazenada a lista é colocado no registrador,
que a cada operação é incrementado de 1
17
O apontador de topo da pilha (stack pointer) é
mantido em um registrador, logo, os acessos as
posições de memória da pilha são feitas por
endereçamento indireto via registrador
Vantagem: sem referências à memória
Desvantagem: aplicabilidade limitada
Ex.: ADD → desempilha dois dados da pilha e os
soma
18
Técnicas de endereçamento
Instrução
Opcode
Implícito
Registrador topo de pilha
19
5
Download