Hello tgaljar;
Physical memory in S7 PLCs is devided in 2 banks (one of them is now the MMC card):
-work memory, in which the actual CPU program is processed; this is a fixed value data bank, non-upgradable (except in very high-end S7-414 CPUs) and determined by the CPU model you are using;
-load memory, into which you download the program from your programmer. For the newer CPUs, such as the CPU313C-3DP you are using, a MMC card must be used for load memory, and inserted in the MMC slot of the CPU. Without it, thwere is no place for the program blocks to be downloaded to the CPU. It must be present, and be at least 1.5 times the size of the work memory for the CPU model used. It can be expanded at will, and the larger sized MMC cards can also hold the program archives, pdf files for the project...
The reason for this arrangement is to allow online modifications tom a downloaded program while the CPU is running. You download to the load memory, without disturbing the CPU, running on the work memmory version on the blocks. Any new block in the load memory is transfered to the work memory at the beginning of a new scan cycle.
This of course is the short, S7 memory for Dummies version; there are more complex description of this process in the different S7 programming manuals available on Siemens' support website.
Hope this helps,
Daniel Chartier