Types of Primary Storage
Also known as memory or RAM (random access memory), primary storage is where your computer stores instructions and information about programs it is currently running. Primary storage is much faster than hard drives and flash memory, but it cannot be used to store information in the long term. Primary storage is volatile; as soon as the power is turned off, all of the information in it is lost.
DRAM, or dynamic RAM, is the cheapest and most widely used type of memory. It uses a grid of capacitors, each controlled by a switch called a transistor. A capacitor is able to store a small electric charge, a bit like a miniature battery. The computer will store information in DRAM by charging the capacitors. It can then read the information back by checking to see which capacitors have a charge. Unfortunately, capacitors are not very good batteries; they constantly leak and have to be recharged many times every second in something called a refresh cycle. The computer cannot read DRAM while it is being refreshed, which makes this type of memory a bit slower than other kinds.
SRAM, or static RAM, works in a completely different way than DRAM. Each bit uses 6 different transistors to make a circuit called a flip-flop. The flip-flop can be turned into one of two different positions, representing a 1 or a 0. Once the flip-flop is set into a position, it stays there until it is reset. SRAM never has to be refreshed like DRAM, which makes it much faster. Unfortunately, it is also more expensive. SRAM is used for the processor cache and in high-performance computers and applications.
There are several new primary storage technologies in development. One of the most promising is a system called MRAM, or magnetic RAM. Instead of storing information in electric switches or capacitors, MRAM stores it as tiny magnetic fields inside a matrix. When electricity flows through an area with a magnetic field, the field will slightly affect the strength of the current. By measuring the current flow, the MRAM can detect whether a bit has the value 1 or 0.