I had nothing to do so I decided to write this guide. I find many people who are posting builds with overkill in RAM or people who post threads asking why their RAM is performing at level x. This guide will help you understand where this bottleneck comes from and it will help you better understand readings you get off programs such as Everest. Additionally, to keep this guide simple, I will only explain today's technology and I will skip evolutions in the development of RAM.
Warning: The following information only applies to Intel processors, a later guide will explain the AMD bottleneck (which for the time being I don't understand 100%).
Before we begin:
- RAM and Memory will be used interchangibly
- Frequency and speed will be used interchangibly
First, let's define RAM
. RAM stands for Random-Access Memory
. Its task in a computer is to temporarily hold information and data being used. It is called Random-Access
memory because the CPU (Central Processing Unit
) does not use it in a predefined order or pattern. Whenever you run a program, temporary data is stored in this memory. Every time you turn your computer off or "log out", this memory "cache" is cleared. The more RAM you have, the more programs you can run simultaneously.
Today's RAM follow a DDR2 (Double Data Rate 2
) standard. (The "2" after the DDR only states that this is a "second batch" of faster sticks. Memory rated at DDR 400MHz will have the "same speed" as DDR2 400MHz. I quote "same speed" because it's slightly slower due to improved interfacing. Also, later, I will refer to frequencies and when I say DDR400Mhz or DDR2 800Mhz it will just be for the sake of the example. I want to stress that DDR2 is not twice as fast as DDR. You have to look at the frequency. The number immediately following DDR [such as the 2 in DDR2] is only a way of identifying RAM with more up-to-date interfacing)
The DDR technology allows the memory to send and receive data simoutaenously. To better picture this, just imagine a two-way street. You have cars going and coming. Prior to this advancement, memory could only receive or send data. Additionally, if you were to talk using older principles, you could say that DDR 400MHz actually runs at 800MHz; you have 400MHz of information going per cycle and 400MHz on information coming per cycle. (cycles are explained later in the guide)
. If you're reading speeds described in a program such as Everest and you see that 400MHz is listed, but you own DDR2 800MHz RAM, don't fret over it. Your RAM is not being bottlenecked, the program just shows the speed per pump. (pumps are explained later also)
The memory and the CPU exchange information through an object called the Memory Controller
. All the memory controller does is write and read information from the memory to the CPU. Today's Intel CPUs are quad-pumped. Meaning they "pump" information to and from the RAM four times per cycle. The frequency (speed) of these "transactions" are defined by the CPU's FSB (Front Side Bus
). To demonstrate:
Suppose you have an Intel Core 2 Duo E8400. The E8400 has a 1333MHz FSB. Being quad-pumped, it will access the memory with a frequency of 333MHz (1333/4) per pump.
In order to be fully effective of your FSB, your RAM will have to perform at exact speeds:
In order to match the E8400's 333MHz per pump, you will need RAM able to send/receive at a frequency of 333MHz per pump. Remember that RAM, today, can send and receive data simoultaenously. Taking that into account you only need memory that can send/receive 167Mhz. Now multiply that by 4 (to satisfy the 4 pumps) and you get 667Mhz. So in order to match the E8400's 1333MHz FSB you need RAM with a 667MHz frequency.By now, I hope that you can see how the RAM or the CPU can be a bottleneck to your system:
If you buy RAM listed at DDR2 800Mhz and you own a E8400 you will only be using 667Mhz of the 800Mhz in your RAM. In this case, the bottlenecking component of your computer is the CPU. Inversely, if you have an E8400 and you have DDR2 400Mhz RAM, your CPU is forced to send/receive data at a rate of 200MHz per pump instead of the full 333Mhz. In this case, the bottlenecking component is the RAM.To those who are computer savvy: Yes, I know, you don't need 1:1 ratio. I'm getting to it =p
What I have just demonstrated occurs if you want your RAM:CPU frequency ratio to be 1:1. It is possible to have your CPU running at 1333MHz FSB and have 400MHz RAM. The only thing that will change is that your RAM:CPU frequency ratio will now be 2:3. But you may ask so why does the bottle neck even occur if I can change the ratio? Well, the reason is simple. The closer the ratio is to 1:1 the more stable the system is going to be. If you can manage to change the ratio and keep your system stable, then kudos for you!
I hope this guide has been of help. I know that I had many questions over these things, but nobody went to an explanation that was deep enough to satisfy me. If you have any questions or comments please post. Also if you have any additional information, POST! Lastly, if you know the ratio in AMDs please send me an explanation over PM.
Thank you for reading this. If there's any spelling mistakes please excuse me, I don't know what happened to the Mozilla spell checker.