La RAM of a computer is one of the most important and most coveted elements, since it brings speed to your system. In addition, there are many types of RAM, and each one has certain characteristics that the user must monitor to know if the module is compatible or not with their equipment or if it will provide more or less performance. Many of these technical characteristics are totally unknown to most users.
Therefore, in this article I show you everything you need to know about RAM memory, so that the next time you buy a module to expand the memory of your computer, it will have no secrets for you. If you want become a true memory "expert" RAM type, keep reading ...
Table of Contents
A little history
HR computers need a memory to store the programs (data and instructions). In the beginning, computers in the 30s used punch cards. They were sheets of cardboard or other material with holes made strategically so that the computer could interpret those holes as binary code. That way the programs were loaded. It was a woman who came up with these punch cards, specifically Ada LovelaceAda Byron. Ada was regarded as the first programmer of history, for his work in making Charles Babbage's famous analytical engine useful.
Little by little the machines evolved. With the arrival of the ENIAC, in 1946, it used vacuum valves to construct memories with flip-flops. These valves caused many problems due to their unreliability, their architecture was similar to light bulbs and they burned like these, so they had to be replaced frequently. In addition, they were heated and consumed large amounts of energy.
Something different was needed in The electronic if you wanted to progress. In 1953, ferrite memories began to be used. And it wasn't until 1968 that 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 64-bit capacity, but the most interesting thing is that the first memory chips were here to stay.
For much of history, different memory formats, such as magnetic tapes, floppy disks, optical media (CD, DVD,…), the first magnetic hard drives (HDD), semiconductor memories (SSD, RAM, registers, buffer / cache, ROM,…), etc.
At this point, it must be said that in the past only one memory level. A central memory that was where the program was. But as computing evolved, other programmable memories of various types were also included until the appearance of fast memories such as RAM.
The arrival of RAM
When RAM came, computers began to have two tiers of memory. On the one hand there was a memory of greater capacity, lower speed and cheaper, as secondary memory. This secondary memory is the hard disk, which has currently evolved from magnetic hard drives (HDD), to current solid-state hard drives based on semiconductors or SSDs.
While main or primary memory is what we call RAM (Random Access Memory or Random Access Memory). This memory is several times faster than secondary memory, but its capacity is considerably lower, since its price is higher and it was not practical to have very large capacities.
Complementing the high-capacity secondary memory to store our programs and data, with a faster intermediate memory between the secondary and the processing unit, extra speed can be provided without sacrificing high capacity. In RAM they will go loading instructions and data from running processes or programs so that the CPU can access them without performing access operations on secondary memory, which would be much slower.
Also, RAM is a type of volatile memory It loses its contents if the power supply is removed. It would not be practical to have only this type of memory, since every time the equipment is turned off, everything would be lost. This is why secondary memories are still so necessary. They are permanent memories that do not need to have a constant power supply to store the values.
If you like history, the RAM timeline summarized is:
- One of the first RAM memories was that of magnetic core of 1949. Each bit was stored in a toroid of ferromagnetic material. Each piece was a few millimeters in diameter, therefore taking up a lot of space and limiting capacity. But it was definitely better than relays and delay lines for this type of random access memory.
- In 1969 the first RAMs created with Intel semiconductors would come. With chips like the 3101 64-bit. The following year he presented DRAM memory of 1 KB (chip 1103), laying the foundations of the current random access memories. In fact, DRAM would become the standard, so IBM's invention had taken over the industry.
- Years later they would continue to be miniaturized, with chips with increasing capacity and performance, until the SIPPs and DIPs began to be discarded to start using the current ones. SIMM modules (Single In-line Memory Module), that is, modules with all contacts on one side. That made it easy to change the RAM and add them as if they were expansion cards.
- In the late 80s, processor technology made processors much faster than RAMs, leading to significant bottleneck. It was necessary to increase the bandwidth and access speed of the lagging memory chips.
- Numerous technologies began to arrive to minimize this bottleneck, such as FPM RAM (Fast Page Mode RAM) technology, inspired by the Burst Mode of the Intel 80486. An addressing mode that improved access, with access times of 70 or 60 ns .
- EDORAM, o Extended Data Output, would come in 1994 with access times of 40 or 30 ns. An improvement based on this was the BEDO, Burst EDO, achieving a 50% improvement over the EDO.
- HR faster memories they were those of microprocessors, such as cell-based registers SRAM (Static RAM). But they are extremely expensive to achieve great capabilities with, so they were not practical despite the tremendous performance they have. That is why they were relegated to small buffers or very small CPU registers. For this reason, the EDO, BEDO, FPM, were still of the DRAM type.
- In 1992, Samsung creates the first commercial chip SDRAM (Synchronous Dynamic RAM), the current standard.
- From here on, all RAMs were based on SDRAM memory cells. One of the first to appear was the Rambus from Intel, which passed without pain or glory in front of the cheaper SDR RAM (Single Data Rate RAM).
- To improve the performance of the previous ones and not raise the price as in the case of Rambus, the DDR would arrive (Dual Data Rate). DDR allowed transferring on two channels at the same time in each clock cycle, doubling the performance of SDR.
- And from the DDR, you know how history has continued with the appearance of the DDR2, DDR3, DDR4, DDR5, ...
... but it wasn't enough
Computing demands more and more performance. The HDDs have evolved to SSDs much faster. And microprocessors began to include their own fast memories between functional units and RAM. That way, they can load them with data and instructions for much more immediate access instead of having to go straight to RAM every time they need something.
These memories that I refer to are cache memory, a buffer that acts as a buffer between the CPU and RAM. It must be said that in the past you could buy cache modules such as RAM, and that you could add if you wanted to your team. Something like the old coprocessors or FPUs, which were not integrated within 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 current microprocessors.
These cache memories have been growing in levels, such as the current L1 (unified or separate for instructions / data), the unified L2, the L3, etc. And not only that, outside of the microprocessor also work is being done to somehow speed up access to data and instructions, such as Intel Octant modules and other types of buffers, but this is another story ...
Having put you in the background, you already know the path taken until the arrival of the current DDR SDRAM. Now, we are going to see 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 support the cheaper DDR. Faced with the sales and performance of AMD-based computers, Intel was forced to adopt DDR as well ...
According to the DDR version
HR DDR versions allow disparate returns:
- DDR: PC-xxxx indicates the bandwidth of the module, if for example it is PC-1600, that results from multiplying 100.000.000 hz (100 Mhz bus) x 2 (being Dual Data Rate) x 8 bytes = 1600 MB / s or 1.6 GB / s 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 transfer.
- 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 maximum transfer.
- DDR2: works with 4 bits per cycle, that is, 2 going and 2 back. That improves the potential of the previous DDR1.
- From DDR2-333 (PC2-2600): it works with 100 Mhz base bus, with 166 Mhz I / O, which gives it a transfer capacity of 2.6 GB / s. 10 ns access time.
- Up to DDR2-1200 (PC2-9600): the bus goes up to 300Mhz, 600Mhz for I / O and 9.6GB / s transfer. 3,3ns access time.
- DDR3: allows higher transfer speed and work 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 transfers. Access time of 7.5 ns.
- Up to DDR3-2200 (PC3-18000): 350 Mhz bus, 1100 Mhz I / O, and 18 GB / s transfers. 3.3 ns access time.
- DDR4: lower supply voltage and higher transfer rate compared to the previous ones. Unfortunately it has a higher latency, which reduces its performance all other things being equal.
- 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 333 Mhz base bus, 2666 Mhz I / O, and 21.3 GB / s transfers.
- DDR5, DDR6, DDR7 ...: the near future.
According to the type of module
All SIMM modules evolved to 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 the ones that use the desktop computers.
- SO-DIMM (Small Outline DIMM)- This is a scaled-down version of regular DIMMs, that is, shorter modules for smaller computers. They are used in notebook computers, motherboards for miniPCs with small form factors such as mini-ITX, etc.
Whether they are DIMMs or SO-DIMMs, they can be of different capacities, characteristics, and types seen above. This does not change anything.
According to the channels
RAM memory modules can be grouped with one or more buses:
- Single Memory Channel: all memory modules are grouped into a single bank of slots, sharing the same bus.
- Dual Memory Channel- Has two separate memory slot banks on the motherboard. The modules can be inserted in these two channels, with two separate buses, providing greater bandwidth, and therefore performance. For example, if you have an APU or an Intel with an integrated GPU, it could bring great benefits by allowing the CPU MMU to access one bus while the GPU memory controller accesses the other without interfering between the two ...
- Quad Memory ChannelWhen the access demands are much higher, it is possible to find motherboards with four channels, although having four channels does not always provide the expected performance if this capacity is not really taken advantage of.
Finally, when you want to expand your RAM, there are a series of features, apart from what has already been seen, that can confuse you when buying the right one. I mean the latencies, that of 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 the manuals of your motherboard to know what 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 it 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 latency. Latency is the time it takes to access (write or read). And there can be the same type of module with different latencies, and this is where users get confused into believing that if they install a module with a different latency it will not be compatible, or if it will affect or not ... That is what I am going to try clarify here.
First you have to be clear about how RAM worksWhen it is required to access a particular memory block, that is, a portion of memory where 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 occur, they need to go through a few cycles to execute actions that delay the operation. That is 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 roughly indicates the time that passes between the processor requesting data from RAM and it locates 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 memory is organized as if it were of a chess board.
- 18: The third number can be found as TRP or RAS Precharge and refers to the time it takes to memory to do a line break, that is, to deactivate the data line you are currently using and activate a new line.
- 35: Finally the fourth value indicates what can appear as TRAS, Active or Active to precharge. Represents the time to wait before memory can access the data again.
When the lower the numbers, the betteras faster it will be. If you have a DDR4 module with a CL11 and a CL9 module, the latter will be much faster, no doubt.
Can you mix modules with different latencies?
This is where it comes from the question of the century, and the confusion of many users. The answer is yes. If you have a DDR4 module, with the same clock frequency, but with a specific CL installed in your computer and you buy another with the same characteristics, but with a different CL, it does not matter. It will work, they will not be incompatible, your team will not reject it. Latency is like capacity or brand, it can be different between modules without anything happening.
So? The only thing that maybe you are not going to achieve optimal performance, or maybe it will lower a little depending on your choice. I will explain it to you with an example. Imagine a practical case, that you have a Kingston DDR4 module of 8 GB at 2400 Mhz and CL14 installed in your computer. But you want to expand your RAM and buy a Corsair DDR4 8GB at 2800Mhz and CL16. You would have two modules that are fully compatible, your team will tolerate it, it will not stop working. You would have 16 GB of RAM working. But ... several things could happen:
- Both RAM modules lower their frequency to default profiles of the JEDEC standard, 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 for the module to match the existing module in latency and frequency. In this case, instead of 2800 Mhz, both would work at 2400Mhz and at the highest CL.
When would you have problems? When you use Dual Channel or Quad Channel. In those cases it is better that you buy identical modules in terms of characteristics (the capacity and brand of the manufacturer may vary).
How much RAM do I need?
Well, summing this up depends on the needs of each user. For example, if you are going to use office software, browse, etc., maybe 4-8 GB is enough. But if you want to play, maybe you need 8-16GB. If you are going to implement several virtual machines you may need 32 GB or more… it is 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 that you are going to use regularly to choose your hardware well ...
There is a formula that helps you choose a minimum base memory, so as not to install less than you should. And goes through multiply 2 GB for each core or core that your CPU has. Therefore, if you have a quadcore you should have at least 8 GB.