# 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 (2$^{20}$), 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$^[$.

## Limite dos 640 KB

IBM PC, PC/XT, 3270 PC and PCjr Memory Blocks :
| 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.
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.