A temporary storage device that holds both a program and the data it manipulates while the processor is executing the program. Physically, main memory consists of a collection of DRAM chips. Logically, memory is organized as a linear array of bytes, each with its own unique address starting at 0.