By a strange design glitch the Intel 80x86 processors can actually address 17×64 KB minus 16 bytes of memory (from 0000:0000 to FFFF:FFFF, written in PC memory segment notation with hexadecimal numbers) in real mode. In the Intel 8086 and Intel 8088 processors, unable to handle more than 1 megabyte of memory, addressing wrapped around, that is, address FFFF:0010 became equivalent to 0000:0000. For compatibility reasons, later processors still wrapped around by default, but this feature could be switched off.
So-called A20 handlers can control the addressing mode dynamically, thereby allowing programs to load themselves into the 1024–1088 KB region and run in real mode. Starting with version 5.0 of DR-DOS, parts of most MS-DOS versions can be loaded into HMA as well, freeing up to 46 KB of conventional memory.
Memory chips therefore need to be operating at something like 20ns to keep up, assuming that the CPU needs only one clock cycle for each one from the memory bus; one internal cycle for each external one.
Interleaved memory, which divides memory into two or four portions that process data alternately; that is, the CPU sends information to one section while another goes through a refresh cycle; a typical installation will have odd addresses on one side and even on the other (you can have word or block interleave).
Memory addresses on a PC are 20 bits long, and are calculated by shifting the contents of a 16-bit register 4 bits to the left, and adding it to a 16-bit offset.
Short for HighMemory Area, HMA is the first 64KB (65,520 bytes) of extended memory above the first 1MB of memory found on IBM compatible computers.
The HMA can be used to swap programs from conventional memory into HMA causing the computer to think more conventional memory is available on the computer.
Additional information about the PC memory as well as a diagram can be found on RAM Diagram page.