ScholarGate
Assistente

Modos de Endereçamento

Modos de endereçamento são as regras pelas quais uma instrução especifica onde seus operandos estão localizados — em um registrador, incorporados como um imediato, ou na memória em um endereço calculado a partir de registradores e deslocamentos.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Um modo de endereçamento é um método especificado por uma instrução para determinar a localização de um operando, variando de valores mantidos diretamente em registradores ou na própria instrução a endereços calculados a partir de registradores base, registradores de índice e deslocamentos.

Scope

Este tópico aborda as formas como os operandos são nomeados e localizados: imediato, registrador, indireto por registrador, base-mais-deslocamento, indexado, PC-relativo e modos computados mais complexos. Ele trata de como os modos de endereçamento afetam o tamanho do código, a contagem de instruções e a complexidade do hardware. Exclui como as instruções são codificadas em bits (formatos e codificação de instruções) e a tradução virtual-para-física do sistema (memória virtual e paginação).

Core questions

  • Como cada modo de endereçamento calcula o endereço efetivo ou o valor de um operando?
  • Quais modos de endereçamento são mais frequentemente usados em programas reais e por quê?
  • Como modos de endereçamento mais ricos reduzem a contagem de instruções ao custo de hardware e complexidade de decodificação?
  • Por que as arquiteturas de carga-armazenamento restringem o acesso à memória a alguns modos simples?

Key concepts

  • endereçamento imediato
  • endereçamento por registrador
  • endereçamento indireto por registrador
  • base-mais-deslocamento
  • endereçamento indexado
  • endereçamento PC-relativo
  • cálculo de endereço efetivo
  • restrição de carga-armazenamento

Mechanisms

Cada modo de endereçamento define como o processador deriva um operando. Operandos imediatos são codificados na instrução; operandos de registrador são lidos do arquivo de registradores; operandos de memória têm um endereço efetivo calculado adicionando um registrador base, um índice escalonado opcional e um deslocamento. O endereçamento PC-relativo forma endereços relativos ao contador de programa, o que suporta código independente de posição e alvos de desvio.

Clinical relevance

Os modos de endereçamento moldam como os compiladores geram código: base-mais-deslocamento mapeia naturalmente para campos de estrutura e variáveis de pilha, modos indexados para acesso a arrays, e endereçamento PC-relativo para executáveis independentes de posição e bibliotecas compartilhadas. Projetos RISC de carga-armazenamento mantêm deliberadamente o endereçamento de memória simples para facilitar o pipeline, enquanto máquinas CISC oferecem modos mais ricos para densidade de código.

History

Arquiteturas iniciais e CISC acumularam muitos modos de endereçamento elaborados, incluindo formas indiretas de memória e auto-incremento. Estudos empíricos de uso de instruções mostraram que um pequeno conjunto de modos simples é responsável pela maioria dos acessos, motivando a decisão RISC de suportar apenas alguns modos e confinar o acesso à memória a instruções de carga e armazenamento.

Key figures

  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • patterson2020

Frequently asked questions

Por que as arquiteturas RISC suportam tão poucos modos de endereçamento?
Estudos descobriram que os programas usam predominantemente alguns modos simples. Restringir o acesso à memória a modos indiretos por registrador e base-mais-deslocamento mantém o pipeline simples e o cálculo do endereço efetivo rápido, enquanto os compiladores sintetizam quaisquer padrões de acesso mais ricos a partir desses primitivos.
Para que é usado o endereçamento PC-relativo?
O endereçamento PC-relativo calcula um endereço como um deslocamento a partir do contador de programa. É usado para alvos de desvio e salto e para acessar dados próximos, permitindo código independente de posição que é executado corretamente independentemente de onde é carregado na memória.

Methods for this concept

Related concepts