conventional memory
The first 640 kilobytes of RAM in an IBM-compatible PC.
conventional memory: the first 640KB of PC RAM
Conventional memory is the initial 640 kilobytes of random-access memory available to software running on IBM-compatible personal computers, beginning at address 0x00000 and ending at 0x9FFFF in hexadecimal notation. This boundary exists because early PC architectures, particularly the Intel 8086 processor and the BIOS design of the original IBM PC (1981), reserved the address space above 640 KB for system ROM, video memory, and hardware interrupts. Software compiled to run on these machines could only reliably access this 640 KB segment without specialized memory management.
The 640 KB limit became a hard constraint in real mode operation, the default execution environment for MS-DOS and early Windows versions. Operating systems and application programs loaded into conventional memory competed for the same address space: the DOS kernel itself consumed roughly 50 to 100 KB depending on configuration, leaving 540 to 590 KB for user applications and data. Large industrial control software, CAD packages, and simulation tools frequently required memory managers or memory-extender utilities to overcome this ceiling, loading code and data into extended memory (above 1 megabyte) and swapping segments in and out as needed.
Workarounds and memory managers
When 640 KB became insufficient, manufacturers and software houses developed expansion strategies. Extended memory (XMS), accessed through the extended memory manager (XMM) driver, provided access to memory above 1 megabyte. Expanded memory (EMS), using bank-switching hardware and the expanded memory manager (EMM) driver, allowed larger programs to work within real mode by swapping 64 KB pages in and out of a window in conventional memory. Industrial equipment firmware, SCADA systems, and CNC machine controllers often relied on these layered memory schemes to fit functionality into DOS-era hardware.
The term itself distinguishes this segment from extended memory and expanded memory, a vocabulary that persists in legacy system documentation and embedded firmware even on modern industrial control boards. Technicians maintaining older manufacturing equipment, industrial sensors with built-in processors, or firmware tools that emulate early PC environments still encounter references to conventional memory limits and conventional memory-resident drivers. Understanding this distinction remains relevant when troubleshooting memory conflicts, loading legacy device drivers, or porting industrial software to retro or embedded platforms where 16-bit real mode execution is still present.