Memória convencional

Origem: Wikipédia, a enciclopédia livre.

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]

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 | editar código-fonte]

  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