Memória convencional

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

A expressão memória convencional refere-se aos primeiros 640 kibibytes da memória de um computador IBM PC. A cunhagem do termo deveu-se à forma como o MS-DOS (um dos sistemas operativos mais proeminentes do início da era do computador pessoal) fazia o endereçamento da memória para correr as aplicações.

Na verdade, esta limitação foi imposta pelos CPUs Intel 8088, o processador original do IBM PC. O 8086 (e sua versão mais barata o 8088) permitiam o endereçamento de, apenas, 1024 KiB de memória (220), já que o processador disponibilizava apenas 20 linhas de endereçamento. Destes 1024 KiB, a IBM reservava 394 KiB para o sistema — o bloco UMA, traduzido para Upper Memory Area), o que deixava disponíveis apenas 640 KiB para programas e dados do utilizador.

Em 1981, quando saiu o primeiro PC, os 640 KiB pareciam mais do que suficientes para o utilizador típico e, com efeito, seriam necessários mais alguns anos até esta premissa deixar de ser verdadeira. Até lá, muitos computadores não chegavam sequer a ter essa capacidade (como o Amstrad PC1512, por exemplo).

Para manter a compatibilidade entre os vários SO's que iam aparecendo, a barreira dos 640 KiB manteve-se na concepção dos PC's mesmo depois do 8088 ter sido substituído pelos Intel 286, que já podiam endereçar até 16 MiB de memória. Na verdade, a barreira persiste se o computador estiver a utilizar MS-DOS e, mesmo nos computadores modernos, pode ocorrer que a área entre os 640 e os 1024 KiB esteja oculta, embora o problema seja indiferente para as aplicações graças à paginação e memória virtual[carece de fontes?].

Limite dos 640 KB[editar | editar código-fonte]

Uma técnica utilizada nos primeiros computadores IBM PC-XT com ecrãs MDA (Monochrome Display Adapter) ou CGA (Color Graphics Adapter) permitia a adição de mais memória na motherboard através da instalação de uma PROM que a disponibilizasse a partir dos 640 KiB; esta solução permitia deslocar a barreira para os 704 KiB[1].

Já nos sistemas 386, surgiram os gestores de memória, como o QEMM ou MemoryMax no DR-DOS, que conseguiam o mesmo efeito, permitindo expandir a barreira para os 704 KiB ou 736 KiB. No entanto, apenas o CGA podia ser utilizado neste cenário, já que o EGA fazia uso da memória para si próprio.

Outra solução, o add-on AllCard, um MMU concebido para computadores da classe XT, possibilitavam o mapeamento da memória normal no intervalo A0000-EFFFF (hex), disponibilizando até 952 KiB para os programas DOS. Programas que acediam à memória vídeo directamente, como o Lotus 1-2-3, precisavam de ser ajustados para suportar o novo design.

Como seria de esperar mais tarde ou mais cedo, a barreira dos 640 KiB foi eventualmente vencida à custa da quebra de compatibilidade do hardware. Actualmente, a maioria dos sistemas operativos modernos e a tecnologia a 32-bit tornaram a distinção entre memória convencional e memória estendida praticamente irrelevante, já que a memória torna-se acessível uniformemente no modo protegido. Hoje em dia, a grande maioria dos utilizadores não se apercebe sequer do significado especial que os primeiros 640 KiB de memória tiveram no desenvolvimento dos computadores pessoais.

Ver também[editar | editar código-fonte]