Random-access memory (RAM) is a form of computer data storage which stores frequently used program instructions to increase the general speed of a system. A random-access memory device allows data items to be read or written in almost the same amount of time irrespective of the physical location of data inside the memory. In contrast, with other direct-access data storage media such as hard disks, CD-RWs, DVD-RWs and the older drum memory, the time required to read and write data items varies significantly depending on their physical locations on the recording medium, due to mechanical limitations such as media rotation speeds and arm movement.
RAM also known as Random Access Memory, acts as a middle ground between the small, super-fast cache in your CPU and the large, super-slow storage of your hard drive or SSD. It’s used to temporarily store working parts of the operating system and data being actively used by applications. It’s not used for permanent storage.
If you think of your computer like an office, the hard drive is the filing cabinet in the corner, the RAM is like an entire office workstation, and the CPU cache is like the actual working area where you’re actively work on a document.
Synchronous Dynamic RAM (SDRAM) is typically what people mean when they’re talking about RAM for computers, and it’s what we mean when we discuss RAM in the rest of this article. For most desktops and laptops, it appears as sticks that can be inserted into the motherboard.
Unfortunately, there’s a rising trend for super thin and light laptops to have the RAM soldered directly to the motherboard in the interest of saving space, but this sacrifices upgradability and repairability.
SDRAM is not to be confused with SRAM, which stands for Static RAM. This is the memory used for CPU caches, among other things. It’s much faster but also limited in its capacity, making it unsuitable as a replacement for SDRAM.
For the most part, RAM comes in two sizes: DIMM (Dual In Line Memory Module), which is found in desktops and servers, and SO-DIMM (Small Outline DIMM), which you’ll see in laptops and small form factor computers.
The RAM you use in your computer operates using Double Data Rate (DDR), which means that two transfers happen per clock cycle. Newer types of RAM are updated versions of the same technology, hence why RAM modules are labeled as DDR, DDR2, DDR3 and so on.
While all RAM generations are exactly the same size and shape, they still aren’t compatible. You can’t use DDR3 RAM in a motherboard that only supports DDR2, or vice versa.
Thankfully, each generation has a notch cut in the pins at different locations so they physically won’t fit. Even if you accidentally buy the wrong kind, you won’t have to worry about accidentally damaging your RAM or your motherboard when inserting the sticks.
DDR2 is the oldest kind of RAM that you’re likely to come across today. It has 240 pins (200 for SO-DIMM). It’s been well and truly superseded, but you can still buy it in limited quantities to upgrade older machines when necessary. Otherwise, it’s obsolete.
DDR3 was released all the way back in 2007 and is the current standard, but is currently being superseded by DDR4. While DDR3 DIMMs have the same number of pins as DDR2 (DDR3 SO-DIMMs have 204 pins vs. DDR2’s 200 pins), they run at lower voltages and higher timings so aren’t compatible.
You may have seen RAM referred to by two sets of numbers, like DDR3-1600 and PC3-12800. These both reference and allude to the generation of the RAM and its transfer speed. The number after DDR/PC and before the hyphen refers to the generation: DDR2 is PC2, DDR3 is PC3, DDR4 is PC4.
The number paired after DDR refers to the number of megatransfers (MT) per second. (For example, DDR3-1600 RAM operates at 1600 MT/s). The number paired after PC refers to the theoretical bandwidth in megabytes per second. (For example, PC3-12800 operates at 12800 MB/s).
It’s possible to overclock RAM, just like you can overclock a CPU or graphics card, to increase the RAM’s bandwidth. Manufacturers sometimes sell RAM that’s already overclocked, but you can overclock it yourself. Just make sure that your motherboard supports the higher clock speed!
Pro Tip: You can mix and match RAM modules of different clock speeds, but they’ll all run at the clock speed of the slowest module. If you want to make use of that faster RAM, don’t mix it with just any old RAM lying around.
You’ll sometimes see RAM modules with a series of numbers like 9-10-9-27, which are referred to as timings. This is a measurement of the performance of the RAM in nanoseconds. The lower the numbers, the quicker the RAM can react to requests.
The first number (9, in the example) is the CAS latency, or the number of clock cycles it takes for data requested by the memory controller to become available to a data pin.
You’ll notice that DDR3 RAM generally has higher timing numbers than DDR2, and DDR4 RAM generally has higher timing numbers than DDR3 — yet DDR4 is faster than DDR3 which is faster than DDR2. Weird, right?
We can explain this using DDR3 and DDR4 as examples. The lowest speed DDR3 RAM runs at 533 MHz, which means a clock cycle of 1/533000000, or 1.87 ns. With a CAS latency of 7 cycles, total latency is 1.87 x 7 = 13.09 ns.
Whereas the lowest speed DDR4 RAM runs at 800 MHz, which means a clock cycle of 1/800000000, or 1.25 ns. Even if it has a higher CAS of 9 cycles, total latency is 1.25 x 9 = 11.25 ns. That’s why it’s faster!
But for most people, capacity trumps clock speed and latency every time. You’ll get much more benefit from 16 GB of DDR4-1600 RAM than you’ll get from 8 GB of DDR4-2400 RAM. In most cases, timing and latency should be the last points of consideration.
Error Correcting Code (ECC) RAM is a special kind that aims to detect and correct data corruption. It’s used in servers where errors in mission critical data could be disastrous, such as personal or financial information stored in RAM while being manipulated in a database.
ECC-compatible RAM isn’t supported by the vast majority of consumer motherboards and processors, so unless you’re planning to build a server that specifically requires ECC RAM, you should stay away from it.