You are currently viewing Computer Memory | Part 1

Computer Memory | Part 1

A few weeks ago a colleague of mine had serious issues with his computer: it was running very slow. The first thing you think about when you hear something like that is to check the RAM first. After checking RAM performance in Windows Taskbar a diagnosis could be done with 100% certainty: not enough RAM.

RAM stands for Random Access Memory which is the internal memory of a computer. When running spreadsheet programs like Excel frequently, these kinds of issues might appear after some time (when the computer gets older and the Excel file bigger). A quick solution is to add another piece of RAM (if there is space available).

After opening the laptop and putting in the RAM, the performance of the computer improved and the problem was solved:

Addition of 1 RAM DIMM (8GB)

While doing so I was thinking about the good old times when I did exactly the same thing with my Pentium 90: adding more RAM. However, over time, RAM dramatically improved. In this post, I’ll explain how RAM works and how it evolved over the years.

DRAM

DRAM is a set of chips that can hold a certain number of bits. To explain it more clearly, let’s keep into the spreadsheets (which created underperformance on my computer). The chip that stores DRAM can be seen as a spreadsheet with rows that have cells. Every cell can hold a one or a zero (the way how CPUs communicate: see also this post for more details on that). Every row is a line of code that temporarily stores a command for the CPU and every chip has a limited line of codes (rows with 0s and 1s) and every row can handle 8 cells (8-bit) per row or 16 cells (16-bit) per row with 0s and 1s. 

DRAM is not limited to computers and phones. It’s also available in automobiles and other automatic devices (like automatic refrigerators, ovens, TVs, etc.).

Back in the days

One of the first processors (the 8088) that was launched in 1979 had an 8-bit frontside bus. You needed RAM that could store data in 8-bit (which is 1-byte) lines of code so that each time the CPU demanded a line of code, the Memory Controller Chip (MCC) could put an 8-bit row on the data bus. When the first processors launched, a single memory chip contained only 1 bit while the total of memory chips was 8 which formed a row (byte) that was soldered on the motherboard. This was completed in the beginning and boy, times have changed after that.

More DRAM

CPU data buses increased in size during the years which meant that the need for RAM which was wide enough was also there. When data buses became 32-bit wide, you also wanted 32-bit wide DRAM cards. Because that took way too much space on the motherboard, DRAM manufacturers needed to find a solution for this. They started to build wider DRAM chips with x4, x8 and x16 bits and they put them on a small circuit board (stick or module). These were also called single inline memory modules (SIMMs). 

Because modern CPUs get smarter and smarter, commands that are up to 64 bits (8bytes) wide are very common and the frontside bus is at least 64 bits wide as well. Additionally, modern MCCs provide at least 64 bits of data every time the CPU requests information from RAM. This means that RAM manufacturers continuously have the challenge to create extra memory with only limited space available. 

This is why modern DRAM sticks now have 32-bit and 64-bit wide data form factors with a varying number of chips on them. These memory modules are also described by their width: x32 and x 64. Remember? x32 is 4 bytes and x64 is 8 bytes.

SDRAM

Almost all modern systems use a form of synchronous DRAM which is called SDRAM. Synchronous means that it is tied to a system clock (like the CPU and the MCC). This is done because the MCC then knows exactly when data is ready to be taken from SDRAM. This improves efficiency.

Because SDRAM was tied to the system clock, its clock speed matched the frontside bus. Because of this, the RAM speed had to match or exceed the system speed. Otherwise, the computer would be unstable or it wouldn’t work at all.

SDRAM was introduced in the mid-90s on a memory stick that was called DIMM (dual inline memory module). Desktop DIMMS had a 168-pin variety and laptop DIMMs had micro-DIMM packages: a 68-pin, 144-pin and 172-pin variety. You also had small-outline DIMMs (SO-DIMMs): 72-pin, 144-pin, and 200-pin. All these DIMM varieties delivered 64-bit wide data to match the 64-bit data bus.

On laptops that used the 72-pin SO-DIMM, you needed to install two sticks of RAM to make a full bank because each stick only provided half the bus width: 32 bit per stick and 2×32 bit to get a full bank of 64 bit.

I’m putting some extra thought into pins because they are pretty important. Pins are one of the prerequisites for a compatible card in your machine. If you have a card with the wrong number of pins, it can’t be inserted into the memory slot of your motherboard. Well, it can, but only with a hammer which won’t make it work. The first time I bought a memory card (back in the 90s), I had the same problem and I had to go back to the computer shop to switch the card I initially bought for my memory upgrade to get it working.

RDRAM: Rambus and DDR

In the early 00s, Intel launched a new type of RAM which was developed by Rambus. This was called Rambus DRAM (RDRAM). This was done because the current SDRAM just couldn’t keep up with the speed of the Pentium 4 processor. If memory can’t keep up, you create a very unstable system with hiccups and computer crashes. The RIMM (common name of the stick) didn’t stay for long because AMD and the biggest developers of computer memory supported an alternative type of RDRAM that was almost a copy of the RIMM and developed in the same time period as Rambus. They named it Double Data Rate SDRAM (DDR SDRAM). Both Rambus and DDR doubled the throughput of SDRAM by creating two processes for every clock cycle. This had a huge impact on the speed performance of the memory cards which meant that they could easily keep up with the CPU again. 

The memory sticks are called DIMMs and DDR SDRAM has 184-pin DIMMs for desktops. For laptops, you have micro-DIMMs that are 172-pin and SO-DIMMs that are 200-pin. DDR (like Rambus) has a dual-channel architecture. This means that you can use two sticks of RDRAM together to increase the throughput. There are motherboards available with MCCs that support this type of architecture using SDRAM. This means that your motherboard needs to be compatible in order to be able to use this functionality so make sure to check the manual of your motherboard.

If you want to know the throughput of bytes per second you take the width of the DIMM (the DDR stick), which is 8 (bytes). This number you multiply with the MHz speed of the DDR. So if a DDR is 800MHz, the throughput of megabytes is 6.400 MBps (megabytes per second).

DDR2

Because technology never stops, DDR2 was introduced only a few years after its predecessor. DDR2 had a huge speed increase. This was done by clock doubling the input and output circuits on the memory chips. Special buffers of 4 bits (comparable with a cache) were added as well which also contributed to an even bigger increase in speed. 

DDR2 comes with a 240-pin DIMM for desktops and a 200-pin SO-DIMM for laptops. Both DIMMs were not compatible with the original DDR DIMMs.

DDR3

In 2007, DDR3 was developed. This new DIMM improved speed again because of a more efficient architecture of the DIMM. The power consumption was also decreased in comparison with DDR2 (about 30 percent). DDR3 also increased the special buffers to 8 bits which gave a big boost in bandwidth. In addition, a feature called XMP (Extreme Memory Profile) was released. This enables users to overclock their RAM, boosting their memory. Lastly, DDR3 also supports triple-channel architecture and quad-channel architecture. This has the same concept as the dual-channel architecture but then with three or four RAM sticks, you insert them into your motherboard.

Due to the rise of server parks, memory manufacturers saw a new emerging market. They launched a low voltage version of DDR3 which was called DDR3L. This type of memory saved a lot of costs when these units were used in big RAM applications: for instance, the data centers that power Google. Cost savings could get up to 15 percent for server parks. Why? Low voltage means less heat and for server parks (data centers and server farms) this can have a very positive impact on the energy bill because air treatment (air conditioning) can be less extensive. 

DDR3 has also a 240-DIMM pin, like DDR2 but it is slotted completely differently. This makes it almost impossible for users to install a DDR3 in an incompatible motherboard. Laptops use 204-pin SO-DIMMs.

DDR4 

In 2014, DDR4 was introduced. Again, speed improved significantly compared to its predecessor which meant that we switched from megabytes per second (MBps) to mega transfers per second (MT/s). a new term had to be made up to replace MBps. Additionally, the possible memory size improved as well to a max of 512GB compared to the 16GB max of the DDR3. However, 512GB is not required for now. Currently, 32GB and 64GB are common sizes. 

DDR4 has a 288-pin DIMM and laptops use DDR4 SO-DIMMs with 260 pins.

Final thoughts

For me, it was quite interesting to see the development of memory in the past two decades. Huge steps were made since the time I installed my first SIMMs of just a few MBs to improve the performance of my Pentium 90. If you look at the DIMMs of 64GB that are now available you can see that technology made tremendous progress. There’s still more to learn about memory and I will dedicate an additional post to it in the near future.

Feel free to contact me if you have any questions or if you have any additional advice/tips about this SDRAM. If you want to keep in the loop when I upload a new post, don’t forget to subscribe to receive a notification by e-mail. 

Gijs Groenland

I live in San Diego, USA together with my wife, son, and daughter. I work as Chief Financial and Information Officer (CFIO) at a mid-sized company.

Leave a Reply