The 8-bit system required a 8080 (or Z80) CPU and a minimum of 32 KB of RAM to run, but this left little memory for user applications. In order to support reasonable setups, MP/M allowed for memory to be switched in and out of the machine's "real memory" area. So for instance a program might be loaded into a "bank" of RAM that was not addressable by the CPU, and when it was time for the program to run that bank of RAM would be "switched" to appear in low memory (typically the lower 32 or 48 KB) and thus become visible to the OS. This technique, known as bank switching was subsequently added to the single user version of CP/M with version 3.0.