Main storage is also called memory or internal memory (to distinguish from external memory, such as hard drives).
RAM
is Random Access Memory, and is the basic kind of internal memory. RAM is
called “random access” because the processor or computer can access any location in memory (as contrasted
with sequential access devices, which must be accessed in order). RAM has been
made from reed relays, transistors, integrated circuits, magnetic core, or
anything that can hold and store binary values (one/zero, plus/minus,
open/close, positive/negative, high/low, etc.). Most modern RAM is made from
integrated circuits. At one time the most common kind of memory in mainframes
was magnetic core, so many older programmers will refer to main memory as core
memory even when the RAM is made from more modern technology. Static RAM
is called static because it will continue to hold and store information even
when power is removed. Magnetic core and reed relays are examples of static
memory. Dynamic RAM is called dynamic because it loses all data when
power is removed. Transistors and integrated circuits are examples of dynamic
memory. It is possible to have battery back up for devices that are normally
dynamic to turn them into static memory.
ROM
is Read Only Memory (it is also random access, but only for reads). ROM is
typically used to store thigns that will never change for the life of the
computer, such as low level portions of an operating system. Some processors
(or variations within processor families) might have RAM and/or ROM built into
the same chip as the processor (normally used for processors used in standalone
devices, such as arcade video games, ATMs, microwave ovens, car ignition
systems, etc.). EPROM is Erasable Programmable Read Only Memory, a
special kind of ROM that can be erased and reprogrammed with specialized
equipment (but not by the processor it is connected to). EPROMs allow makers of
industrial devices (and other similar equipment) to have the benefits of ROM,
yet also allow for updating or upgrading the software without having to buy new
ROM and throw out the old (the EPROMs are collected, erased and rewritten
centrally, then placed back into the machines).
Registers
and flags are a special kind of memory that exists inside a processor.
Typically a processor will have several internal registers that are much faster
than main memory. These registers usually have specialized capabilities for
arithmetic, logic, and other operations. Registers are usually fairly small (8,
16, 32, or 64 bits for integer data, address, and control registers; 32, 64,
96, or 128 bits for floating point registers). Some processors separate integer
data and address registers, while other processors have general purpose
registers that can be used for both data and address purposes. A processor will
typically have one to 32 data or general purpose registers (processors with
separate data and address registers typically split the register set in half).
Many processors have special floating point registers (and some processors have
general purpose registers that can be used for either integer or floating point
arithmetic). Flags are single bit memory used for testing, comparison, and
conditional operations (especially conditional branching).