Memória segmentada

Memória segmentada é um sistema de endereçamento da memória do computador, que pode ser física ou virtual e pode estar operando em modo real ou protegido.

O sistema de memória segmentada foi usado para expandir o limite de 64KB no espaço de endereços plano da primeira geração. Computadores feitos antes da memória segmentada utilizavam um sistema de endereçamento plano baseado em um código hexadecimal de quatro dígitos. Com hexadecimal, o maior número de 4 dígitos que você pode criar é FFFF (ou 65535), que é igual a 64KB.

Endereçamento de memória segmentada, a alternativa ao esquema plano, é usado em sistemas de 16 bits como o MS-DOS Windows 3.1, para endereçar segmentos de 64KB de memória com um offset para especificar dentro do segmento.

A geração de processador Intel 8086 foi projetada para endereçar até 1MB de memória mas foi prejudicada pelos limites de espaço de endereço plano. Ao invés de redesenhar todo o sistema de memória, a Intel modificou-o para alcançar a maior capacidade através de um endereço composto de 16 bits.

A MMU (unidade de gerenciamento de memória) interpretaria então o segmento, bem como o seu offset, para encontrar o endereço físico. Uma vez localizado o endereço, a MMU perguntaria se as permissões da memória permitiam o pedido e, se o fizessem, o realizariam.

Esquematicamente falando, o espaço de endereço plano utilizado na computação de 32 bits é na verdade segmentado. No entanto, todo o espaço é um único segmento que aborda a totalidade do segmento de 32 bits ou 4GB de espaço de memória.