A CPU não gera diretamente * endereços lógicos da maneira como um gerador de números aleatórios produz números. Em vez disso, o endereço lógico é uma conseqüência das instruções que a CPU executa e a maneira como o sistema operacional gerencia a memória. Aqui está um colapso:
1.
Instrução buscar e decodificar: A CPU recebe instruções da memória. Essas instruções geralmente contêm operandos - dados em que a instrução operará. Os operandos podem ser especificados usando:
*
Registre o endereço indireto: O endereço do operando é armazenado em um registro da CPU. A CPU usa o conteúdo do registro como endereço lógico.
*
Endereço imediato: O operando em si faz parte da instrução. Nenhum cálculo de endereço é necessário.
*
Endereço direto: A instrução especifica diretamente o endereço lógico do operando.
*
Endereço indireto: A instrução especifica um local de memória que * contém * o endereço do operando. A CPU busca o endereço deste local de memória para obter o endereço lógico.
*
Base+Offset Endereço: Um endereço base (geralmente de um registro) é adicionado a um deslocamento (especificado na instrução) para calcular o endereço lógico. Isso é muito comum para acessar elementos ou estruturas da matriz.
*
Endereço indexado: Semelhante ao deslocamento Base+, mas o deslocamento vem de um registro de índice. Útil para acessos de matriz.
2.
Contador de programas (PC): O PC mantém o endereço da próxima instrução a ser executada. Este é um endereço lógico usado implicitamente pelo mecanismo de busca de instruções da CPU. O PC é incrementado após a busca de cada instrução.
3.
envolvimento do sistema operacional (memória virtual): A imagem fica mais complexa quando a memória virtual está envolvida. Nesse caso, o programa não vê os endereços físicos da memória; Ele vê endereços lógicos (também chamados de endereços virtuais). A CPU gera um * endereço lógico * com base na instrução, conforme descrito acima.
*
Unidade de Gerenciamento de Memória (MMU): O MMU é um componente de hardware que traduz o endereço lógico gerado pela CPU em um endereço físico na RAM. Esta tradução envolve procurar o endereço lógico nas tabelas de página, que são mantidas pelo sistema operacional. Essas tabelas mapeiam as páginas lógicas para os quadros físicos.
*
Segmentação: Alguns sistemas usam a segmentação, além da paginação. A segmentação divide a memória em segmentos lógicos, cada um com seu próprio endereço base e limite. A CPU produz um endereço lógico como seletor de segmento e um deslocamento dentro do segmento. O MMU então os usa para encontrar o endereço físico.
Em essência, a CPU não "gera" um endereço lógico em um processo independente. Ele usa o modo de endereço da instrução para calcular o endereço lógico (geralmente com a assistência de registros), que pode ser traduzida ainda mais pelo MMU em um endereço físico. O processo é ditado pela instrução que está sendo executada e pelo esquema de gerenciamento de memória do sistema.