Memória convencional

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

IBM PC, PC/XT, 3270 PC and PCjr Memory Blocks[1][2]
bloco-0 1º 64 KB Memória Comum do Usuário até 64 KB (Memória Baixa)
bloco-1 2º 64 KB Memória Comum do Usuário até 128 KB
bloco-2 3º 64 KB Memória Comum do Usuário até 192 KB
bloco-3 4º 64 KB Memória Comum do Usuário até 256 KB
bloco-4 5º 64 KB Memória Comum do Usuário até 320 KB
bloco-5 6º 64 KB Memória Comum do Usuário até 384 KB
bloco-6 7º 64 KB Memória Comum do Usuário até 448 KB
bloco-7 8º 64 KB Memória Comum do Usuário até 512 KB
bloco-8 9º 64 KB Memória Comum do Usuário até 576 KB
bloco-9 10º 64 KB Memória Comum do Usuário até 640 KB
bloco-A 11º 64 KB Memória de Vídeo Estendida (EGA)
bloco-B 12º 64 KB Memória de Vídeo Padrão (MDA/CGA)
bloco-C 13º 64 KB Expansão da ROM(XT, EGA, 3270 PC)
bloco-D 14º 64 KB Uso Livre (PCjr, LIM EMS)
bloco-E 15º 64 KB Uso Livre (PCjr, LIM EMS)
bloco-F 16º 64 KB ROM-BIOS e ROM-BASIC

O primeiro segmento de memória (64 KB) na área de memória convencional, é chamado de memória baixa.

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

  1. Norton, Peter (1986). Inside the IBM PC, Revised and Enlarged, Brady. ISBN 0-89303-583-1, p.108.
  2. Patente E.U.A. 4 926 322 - Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management, Fig. 1