A computer’s RAM memory is one of the most important and most sought-after elements, bringing speed to your system. In addition, there are many types of RAM memory, and each one has certain characteristics that the user must monitor to know if the module is compatible or not with his computer or if it will provide more or less performance. Many of these technical features are completely unknown to most users.
That’s why in this article I show you everything you need to know about RAM, so that the next time you buy a module to expand your computer’s memory it will have no secrets for you. If you want to become an expert in RAM memory, read on…
A little bit of history
The computers need a memory to store the programs (data and instructions). Originally, computers in the 1930s used punch cards. These were sheets of cardboard or other material with holes strategically made so that the computer could interpret those holes as binary code. That’s how the programs were loaded. It was a woman who devised these punch cards, namely Ada Lovelace (Ada Byron). Ada was considered to be the first programmer in history, for her work in making Charles Babbage’s famous analytical machine useful.
Little by little the machines evolved. With the arrival of the ENIAC, in 1946, it used vacuum valves to build bistable memories. These valves generated many problems because of their unreliability, their architecture was similar to light bulbs and they melted like these, so they had to be replaced frequently. In addition, they heated up and consumed large amounts of energy.
Something different was needed in electronics if progress was to be made. In 1953, the ferrite memories started to be used. And it was not until 1968 when IBM designed the first semiconductor-based memory. This solid state memory solved the problems of the previous ones, providing greater reliability, durability and faster. It had a capacity of 64 bits, but the most interesting thing is that the first memory chips had come to stay.
During a good part of the history different memory formats were used, such as magnetic tapes, diskettes, optical media (CD, DVD,…), the first magnetic hard disks (HDD), semiconductor memories (SSD, RAM, registers, buffer/cache, ROM,…), etc.
At this point, it must be said that in the past only one ‘string’ memory level was used. A central memory that was where the program was located. But as computing evolved, so did other programmable memories of various types until the appearance of fast memories like RAM.
The arrival of RAM
When RAM arrived, computers began to have two levels of memory. On the one hand, there was a higher capacity, lower speed and cheaper memory, such as secondary memory. This secondary memory is the hard disk, which has now evolved from magnetic hard disks (HDDs), to the current semiconductor-based solid state hard disks or SSDs.
While the main or primary memory is what we call RAM (Random Access Memory). This memory is several times faster than the secondary memory, but its capacity is much lower, since its price is higher and it was not practical to have very large capacities.
By complementing the high-capacity secondary memory to store our programs and data, with a faster memory buffer between the secondary and the processing unit, extra speed can be provided without sacrificing high capacity. In the RAM, the instructions and data of the running processes or programs will be loaded so that the CPU can access them without performing access operations on the secondary memory, which would be much slower.
In addition, RAM is a type of volatile memory that loses its content if power is removed. It wouldn’t be practical to have just this kind of memory, since every time the computer is turned off, everything would be lost. That’s why secondary memory is still so necessary. They are permanent memories that do not need to have a constant power supply to store the values.
If you like the story, the RAM timeline is summarized:
- One of the first RAM memories was the magnetic core memory in 1949. Each bit was stored in a toroid of ferromagnetic material. Each piece was a few millimeters in diameter, so it took up a lot of space and limited capacity. But it was certainly better than releś and delay lines for this kind of random access memory.
- In 1969 would come the first RAMs created with Intel semiconductors. With chips like the 3101 of 64 bits. The following year, the 1KB DRAM type memory (1103 chip) was introduced, establishing the basis of the current random access memories. In fact, DRAM would become the standard, so the IBM invention had imposed itself on the industry.
- Years later, they would continue to be miniaturized, with chips with ever greater capacity and performance, until SIPPs and DIPs began to be discarded in order to start using the current SIMM (Single In-line Memory Module), that is, modules with all contacts on one side. This allowed to easily change the RAM and add them as if they were expansion cards.
- In the late 80’s, processor technology made them much faster than RAMs, which generated important bottlenecks. The bandwidth and access speed of the memory chips that were lagging behind needed to be increased.
- Numerous technologies began to arrive to minimize that bottleneck, such as FPM RAM technology (Fast Page Mode RAM), inspired by the Burst Mode of the Intel 80486. An addressing mode that improved access, with access times of 70 or 60 ns.
- EDO RAM, or Extended Data Output, would come in 1994 with access times of 40 or 30 ns. One improvement based on this was BEDO, Burst EDO, achieving a 50% improvement over EDO.
- The fastest memories were those of microprocessors, such as registers based on SRAM cells (Static RAM). But they are extremely expensive to achieve great capacities with them, so they were not practical in spite of the tremendous performance they have. That’s why they were relegated to small buffers or very small CPU registers. That’s why EDO, BEDO, FPM, were still DRAM type.
- In 1992, Samsung creates the first commercial SDRAM chip (Synchronous Dynamic RAM), the current standard).
- From then on, all RAMs were based on memory SDRAM cells. One of the first to appear was Intel’s Rambus, which passed with no glory against the cheaper SDR RAM (Single Data Rate RAM).
- To improve the performance of the previous ones and not to raise the price as in the case of Rambus, the DDR (Dual Data Rate) would arrive. DDR allowed to transfer by two channels at the same time in each clock cycle, doubling the performance of SDR.
- And from DDR, you know how history has followed with the appearance of DDR2, DDR3, DDR4, DDR5,…
…but it wasn’t enough
Computing demands more and more performance. HDDs have evolved into much faster SSDs. And microprocessors began to include their own fast memory between the functional units and the RAM. That way, they can load them with data and instructions for much more immediate access instead of having to go directly into RAM every time they need something.
These memories I am referring to are the cache, an intermediate memory that acts as a buffer between the CPU and the RAM. It must be said that in the past you could buy cache modules like RAM, and you could add them if you wanted to your computer. Something like the old coprocessors or FPUs, that were not integrated inside the CPU chip itself. But over time, they were integrated into the processor package itself (see for example the Intel Pentium Pro) and finally become part of the same IC as in the current microprocessors.
These caches have been growing in levels, such as the current L1 (unified or separate for instructions / data), the unified L2, L3, etc. And not only that, outside the microprocessor we also work to speed up somehow the access to data and instructions, such as the Intel Octante modules and other types of intermediate memories, but this is another story…
Having put you in background, you know the path taken until the arrival of the current DDR SDRAM. Now, let’s look at the types that exist and their characteristics. It must be said, that compared to the Intel Pentium 4 that used their RAMBUS mainly, the AMD Athlon were the first to give support to the DDR, cheaper. Against the sales and performance of AMD-based computers, Intel was forced to adopt DDR as well .
The DDR versions allow different performances:
- DDR: PC-xxxx indicates the module’s bandwidth, if for example it is a PC-1600, that results from multiplying 100,000,000 hz (100 Mhz of bus) x 2 (being Dual Data Rate) x 8 bytes = 1600 MB/s or 1.6 GB/s of transfer.
- DDR-200 (PC-1600): with 100 Mhz bus and 200 Mhz I/O. Its name comes from its 1600 MB/s or 1.6 GB/s transference.
- DDR-266 (PC-2100): with 133 Mhz bus and 266 Mhz I/O. With transfer capacity of 2.1 GB/s.
- DDR-333 (PC-2700): with 166 Mhz bus and 333 Mhz I/O. With a transfer capacity of 2.7 GB/s.
- DDR-400 (PC-3200): with 200 Mhz bus and 400 Mhz I/O. With a total of 3.2 GB/s of maximum transference.
- DDR2: it works with 4 bits per cycle, that is, 2 up and 2 down. This improves the potential of the previous DDR1.
- From DDR2-333 (PC2-2600): it works with 100 Mhz of base bus, with an I/O of 166 Mhz, which gives it a transfer capacity of 2.6 GB/s. Access time of 10 ns.
- Up to DDR2-1200 (PC2-9600): the bus rises to 300 Mhz, 600 Mhz for I/O and 9.6 GB/s transfer. Access time of 3.3ns.
- DDR3: allows higher transfer speed and working speed compared to DDR2, although the latency is higher.
- From DDR3-1066 (PC3-8500): 133 Mhz bus, 533 Mhz I/O, 8.5 GB/s transfer. Access time of 7.5 ns.
- Up to DDR3-2200 (PC3-18000): 350 Mhz bus, 1100 Mhz I/O, and 18 GB/s transfers. Access time of 3.3 ns.
- DDR4: lower supply voltage and higher transfer rate compared to the previous ones. Unfortunately, it has a higher latency, which reduces its performance under equal conditions.
- From DDR4-1600 (PC4-12800): with a 200 Mhz base bus, 1600 Mhz I/O, and 12.8 GB/s transfers.
- Up to DDR4-2666 (PC4-21300): with a 333 Mhz base bus, 2666 Mhz I/O, and 21.3 GB/s transfers.
- DDR5, DDR6, DDR7…: the near future
Depending on the module type
The SIMM modules evolved to the current DIMMs, which are divided into
- DIMM (Dual In-Line Memory Module): a memory module with contacts on both sides, allowing a greater number of contacts. They are used by desktop computers.
- SO-DIMM (Small Outline DIMM): is a reduced version of the normal DIMMs, that is, shorter modules for smaller equipment. They are used in laptops, motherboards for mini PCs with small form factors such as mini-ITX, etc.
Whether DIMM or SO-DIMM, they can be of different capacities, features, and types seen above. This does not change anything.
According to the channels
RAM modules can be grouped with one or more buses:
- Single Memory Channel: all memory modules are grouped in a single bank of slots, sharing the same bus.
- Dual Memory Channel: it has two separate memory slot banks on the motherboard. The modules can be inserted in these two channels, with two separate buses, providing a higher bandwidth, and therefore performance. For example, if you have an APU or an Intel with integrated GPU, it could bring great benefits by allowing the CPU MMU to access one bus while the GPU memory controller accesses the other one without interfering between them .
- Quad Memory Channel: when access demands are much higher, it is possible to find motherboards with four channels, although not always having four channels brings the expected performance if this capacity is not really taken advantage of.
Finally, when you want to expand your RAM, there are a number of features, apart from what we have already seen, that can confuse you when buying the right one. I mean, the latencies, the CAS, RAS, etc. As for the voltages and the type of module, the truth is that this will depend on the compatibility of your motherboard and the type of memory chosen. You should read your motherboard manuals to know which memory your chipset supports and what type of module you have.
You can also look at the memory module or modules that you already have installed to know how to acquire a similar module to expand it, and that is of the same characteristics and compatible.
The speed of a RAM is always related to two factors, one is the clock frequency and the other is the latency. Latency is the time it takes to access (write or read). And there can be the same kind of module with different latencies, and it is here where the users are confused when they believe that if they install a module with a different latency it will not be compatible, or if it will affect or not… That’s what I’m going to try to clarify here.
First you have to have clear how the RAM works, when it is required to access a particular memory block, that is, a portion of memory where a data is stored, the memory is distributed in rows and columns. By activating the appropriate row and column selection lines you can write or read whatever you want. But for these access operations to take place, you need to go through some threads to execute some actions that delay the operation. That’s the latency.
How do I know the latency of a module? Well, you may have noticed that the modules have a mark type 16-18-18-35 or similar, those are the latencies in nanoseconds. Each number has its meaning according to the position it occupies:
- 16: The first value can also appear as CL or CAS Latency, it indicates in general terms the time that passes between the processor requests a data to the RAM memory and this locates it and sends it.
- 18: The second number can be found as TRCD or RAS to CAS Latency, this number represents the time between the location and activation of a memory line (RAS) and a column (CAS), remember that the memory is organized as if it were a chess board.
- 18: The third number can be found as TRP or RAS Precharge and refers to the time it takes for the memory to make a line break, i.e., deactivating the data line you are currently using and activating a new line.
- 35: Finally the fourth value indicates what can appear as TRAS, Active or Active to precharge. It represents the waiting time needed before the memory can perform a new access to the data.
The lower the numbers, the better, because the faster it will be. If you have a DDR4 module with a CL11 and a CL9 module, the second one will be much faster, no doubt.
Can modules with different latencies be mixed?
This is where the question of the century comes in, and the confusion of many users. The answer is yes. If you have a DDR4 module, with the same clock frequency, but with a certain CL installed in your computer and you buy another one with the same characteristics, but with a different CL, it doesn’t matter. It will work, they will not be incompatible, your computer will not reject it. The latency is like the capacity or the brand, it can be different between modules without anything happening.
Then? The only thing you may not get the optimum performance, or it may go down a bit depending on your choice. I’ll give you an example.
- Both RAM modules are lowered to default JEDEC standard profiles, such as 2133 Mhz. That is, your memory would become somewhat slower by reducing its clock frequency, and therefore its transfer rate.
- Another option is that the module is matched with the module that was already there in latency and frequency. In this case, instead of 2800 Mhz, both would work at 2400Mhz and the higher CL.
When would you have problems? When you use Dual Channel or Quad Channel. In those cases it is better to buy identical modules in terms of features (capacity and manufacturer’s brand may vary).
How much RAM do I need?
Well, to summarize this depends on the needs of each user. For example, if you are going to use office software, browsing, etc., maybe 4 to 8 GB is enough. But if you want to play, maybe you need 8-16 GB. If you are going to implement several virtual machines you might need 32 GB or more… it’s something very personal. There is no magic formula for how much you need.
It is very important to see the recommended requirements of the software you are going to use regularly in order to choose your hardware well…
There is a formula that helps you choose a minimum memory base, so you don’t install less than you should. And it goes by multiplying 2 GB for each core that your CPU has. So, if you have a quadcore you should have at least 8 GB.