Vous êtes sur la page 1sur 5

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

Endereamento

O Campo de endereo em uma instruo pequeno. Para referenciar uma faixa de


endereos maior na memria principal, ou em alguns sistemas, na memria virtual.
Examinaremos as tcnicas mais comuns de endereamento:

- Imediato.
- Direto.
- Indireto.
- Por registro.
- Indireto por Registro
- Deslocamento.
- Pilha.

Notao:
A Contedo de um campo de endereos da instruo.
R Contedo de um campo de endereos que se refere a um registro.
EA Endereo real (efetivo) da posio contendo o operando.
(X) Contedo da posio X.

Comentrios:

- Praticamente toda arquitetura de computadores fornece mais de um modo de


endereamento. Com freqncia, opcodes diferentes utilizam diferentes modos de
endereamento. Outra possibilidade utilizar um ou mais bits no formato da
instruo podendo ser usados como um campo de modos.
- Num sistemas de memria virtual o endereo efetivo ser um endereo da memria
principal ou de um registro. Num sistema com memria virtual, o endereo efetivo
um endereo virtual ou um registro. O mapeamento do endereo fsico real funo
do mecanismo de planejamento e invisvel ao programador.

Endereo Imediato: na forma mais simples de endereamento o operando est


presente na instruo:
OPERANDO = A
Este modo utilizado para definir e utilizar constantes ou inicializar variveis. O bit
mais esquerda utilizado como bit de sinal em complemento de dois geralmente.
Quando transferido para um registro, o bit de sinal estendido para a esquerda para
completar os campos da palavra.
Vantagens: no h necessidade de outra referencia memria alm
da instruo.
Desvantagem: o tamanho do numero restrito ao tamanho do campo
de endereamento.

Endereamento Direto: neste modo o campo do endereo contm o endereo


efetivo do operando:
EA = A
Vantagem: requer apenas uma referencia memria e no necessita clculo
Desvantagem: fornece um espao limitado de endereamento.

Endereamento Indireto: neste modo o campo do endereo referencia um


endereo de memria que por sua vez contm um endereo de palavra inteira do
operando:
EA = (A)
Vantagem: para um campo de tamanho N, um espao de endereamento de
2N est disponvel.
Desvantagem: duas buscas na memria para buscar o operando, uma busca
para buscar o endereo e outra para o prprio operando.

Apesar de poder enderear 2N posies, apenas 2K podero ser referenciados de


uma nica vez (K o nmero de bits do campo do endereo na instruo).
Um sistema com memria virtual os endereos podem ser confinados a pagina
0(zero) de qualquer processo. O campo de endereo da instruo pequeno,
portanto produzir endereos com valor baixo que aparecero na pagina 0, fazendo
com que esta permanea na memria real. Em geral, uma referencia indireta
memria envolver um nico page fault ao invs de dois.
Raramente usada a variante de um endereamento indireto cascateado:
EA = (...(A)...)
Neste caso, um bit reservado para indicar o endereo(A). Quando o bit vale 1,
o valor contido na palavra o endereo da prxima posio a ser buscada. Quando o
bit for zero, o valor da palavra ser o valor do operando.

Endereamento por Registro: similar ao endereamento direto. O campo de


endereo contm o endereo de um registro:
EA = R
Vantagens: endereo pequeno (3 a 4 bits em geral). No h necessidade de
referenciar a memria. O tempo de acesso muito menor que o de acesso
memria principal.
Desvantagens: o espao de endereamento pequeno.

Se o endereamento ao registro for muito pequeno num conjunto de instruo os


registros da CPU sero muito utilizados. Por causa do numero muito limitado de
registros , seu uso s faz sentido se for feito de maneira eficiente. Se cada
operando for trazido para um registro de memria, for utilizado em uma nica
operao, e mandado de volta memria, ento um passo intermedirio custoso
ter sido adicionado. Porm se o operando permanecer no registro e em uso por
varias operaes, uma economia real ser atingida.

Endereamento Indireto por Registro: Anlogo ao endereamento indireto:


EA = (R)
Mesmas vantagens e desvantagens que o endereamento indireto. Usa uma
referencia a menos que o endereamento indireto.

Endereamento por Deslocamento: um modo muito poderoso, que combina as


capacidades de endereamento direto e endereamento indireto por registro:
EA = A + (R)
Dois endereos so necessrios sendo que ao menos um explicito. O valor contido
no campo do endereo usado diretamente. O outro campo de endereos, ou
referencia implcita baseado no opcode, refere-se a um registro cujo contedo ser
adicionado a A para produzir o endereo efetivo.
Trs dos modos mais comuns do endereamento por deslocamento sero descritos:
- Endereamento Relativo.
- Endereamento por Base Endereo.
- Indexao

Endereamento Relativo: O registro referenciado implicitamente o PC.


Tipicamente, o campo de endereo tratado como complemento de dois.
Este modelo utiliza o conceito de localidade. Na maioria das referncias a
memria, estas esto prximas da instruo a ser executada.
Endereamento por Base Endereo: o registro contm um endereo de
memria e o campo de endereos contm um deslocamento para este
endereo. A referencia ao registro pode ser explicita ao implcita.
Indexao: O campo do endereo referencia uma posio de memria e o
registro contm um deslocamento positivo a partir desta posio. A maneira
de representar os endereos o oposto da maneira base-endereo. No
entanto a maneira de calcular o endereo a mesma nos dois casos.

Uma utilizao importante: executar operaes iterativas.


EA = A + R registro de ndice (auto-indexao)
R (R) + 1

Em algumas maquinas indexao e endereamento indireto podem ser usados


em conjunto. Quando a indexao acontece depois da indireo, esta
chamada ps-indexao:
EA = (A) +(R)
Este modo pode ser usado para acessar um, de diversos blocos de dados com um
formato fixo, e referenciar os dados dentro deste.
Pr-indexao:
EA = (A+(R)) endereo e no valor
Pode-se construir uma tabela de endereos.

Pilha:
- A pilha um bloco reservado de posies.
- Associado a pilha esta um ponteiro cujo endereo o topo da pilha.
- Alternativamente, os dois elementos do topo da pilha podem estar num
registro da CPU. Neste caso o ponteiro apontar o terceiro elemento da
pilha.
- O ponteiro mantido em um registroportanto as referencias ao topo da
pilha( endereamento implcito) so registros de endereo indireto.
Formatos de Instruo

OPCODE + (0 ou +) operandos (implcitos ou explcitos)

Detalhes Fundamentais de Design.

Comprimento da instruo:
Depende de:
- Tamanho da memria.
- Organizao da memria.
- Estrutura do bus.
- Complexidade e velocidade da CPU.
Determina a flexibilidade e a riqueza da maquina.

Desafios de Design:
Conjunto poderoso Necessidade de
de instrues salvar espao
Maior no de OPCODES

Programas mais curtos

no de opes de
endereamento maior
Comprimento maior
Maior flexibilidade na
implementao de funes,
manipulao de tabelas e X Maior no de instrues
por unidade de tempo
desvios ou ciclo de execuo

maior espao de
endereamento

endereamento de um
no maior de variveis

Tamanho da memria e do BUS devem ser iguais ou mltiplos um do outro

Velocidade de transferncia de dados da memria no cresce com a dos processadores



Gargalo de velocidade

instrues menores: maior no de instrues por ciclo
Porm, v16 bits 2 v32 bits

Tamanho da instruo

Mltiplo do tamanho de uma palavra (e em geral, mltiplo de 8 bits)
Alocao de Bits:

Desafio: Quantos bits alocar para a instruo, para o endereamento e em que


ordem.

Elementos importantes para a definio do design:


- N de modos de endereamento.
Endereamento pode ser implcito. Exemplo: Certos opcodes
podem sempre ser chamados por indexao. Em outros casos os
enereamentos devem ser explcitos e um ou mais bits sero
necessrios para definir os modos.
- N de operandos: menos endereos. Programas mais longos
Instrues tpicas: Dois operandos. Cada endereo de operando
pode requerer um indicador de modo ou o uso deste pode ser
limitado a um nico operando.
- Registrador versus memria:
Registradores so necessrios para a CPU processar.
Um nico registrador visvelendereo implcito sem
necessidade de bits alocados. Programas grandes.
Mltiplos registradores. Poucos bits necessrios.
Estudos indicam que o numero desejvel de 8 a 32 registradores
visveis.
- N de conjunto de registradores.
Tipicamente: um conjunto de registradores de uso geral com
cerca de 8 a 16 registradoresendereos, deslocamentos ou
dados.
Tendncia: dois ou mais conjuntos especializados (dados ou
endereos). Vantagem: um nmero maior de bits necessrio
para indicar o registro.
- Faixa de endereo:
Endereo direto limitado pelo n de bits.
Endereo indireto com deslocamento pelos registradoresfaixa
maior.
Aumento do n de bits dos registradores Faixa maior.
- Granularidade de endereamento.

[1] William Stallings - Computer Architecture and Organization, Pearson, 5 th Edition

Vous aimerez peut-être aussi