Thursday, February 5, 2015

Inc Random Access Memory (RAM)

Random Access Memory(RAM) is one of the three pieces of the “did I get it right” puzzle. Matching just the bare minimum with RAM, Processor and motherboards may ensure functionality, but what most people do not realize is there is a lot of efficiency as well as money potentially wasted if even small mismatches exist. When reviewing RAM there are really four things that should be looked at:
  1. Frequency (RAM Cycle Speed) 
  2. Supported Channels
  3. Timings
  4. Size (Because it matters)
Since we selected the Intel - Core i7-5960X i’m going to use the memory specifications from the Intel Ark page as an example for numbers.



Intel - Core i7-5960X Ark

If we select a processor first (which we did) we should start by looking at the memory specification for that processor. Why? Because this is the optimal RAM setup for that CPU. If we buy RAM outside of these specs we are probably wasting money. Not saying it won't work but odds are it will be downscaled considerably to match the specs above.

When purchasing RAM usually it is labeled as DDR#-####. DDR stands for Double Data Rate and the number immediately following the DDR indicates the version. The final four digits are the frequency.

 So what does this all mean?
Let’s start with frequency. Frequency is defined as the rate at which something occurs or is repeated over a particular period of time or given sample. (This should be familiar because it was used in the CPU article as well) Usually frequency comes in the form of a wave.

If you aren't familiar with frequence waves and how they work I recommend playing with waves graph using - Fun Frequency Graph

When you think about a single wave (one cycle) there are two sides (up and down). Initially a single command/response was used per full cycle. The double data rate came from using both sides of the wave for transmitting data, thus two commands/responses could be sent for a single cycle. This effectively doubled the rate (DDR) at which data could be transmitted.

With each version iteration of DDR more and more features and logic have been added to improve not only the efficiency but also the capacity. DDR4 the most recent version iteration is no exception. It delivers a considerable amount of benefits over DDR3 ranging from reduced power consumption to incredible gains in DIMM capacity. How big? DDR4’s DIMM capacity is 8 times the size of DDR3’s. Not double, not triple...but 8 times the capacity. Specifically DDR4 has an available capacity of 128 GB, where as it’s predecessor DDR3 a mere DIMM size of 16 GB.

More capacity = better performance = size matters

Capacity doesn't do much unless we can get it to the processor. Inc memory channels! Memory channels are essentially groups of DIMMS that are utilized to boost transfer rates of data between memory banks and the memory controller (previously located in northbridge, but now within the processor)

Dual Channel Example:



Key things to remember when populating DIMM Slots: 
  • DIMM1 must always be filled (On most motherboards)
  • DIMM Colors depend on vendor - Refer to the motherboard guide (In above example A1 and B1 should be populated)
  • Both channels have to match memory size - if Channel A has 4 GB then Channel B must also have 4 GB (This is just a good point of reference - read further down for more information on this)
For the sake of simplicity - use the same vendor and size memory. If possible a memory kit matched with the processor and motherboard is usually the best option - Note - it is possible to mix and match memory; however, it is fairly tricky and often results in degraded performance.

Max Bandwidth - this is where most of the waste comes into play in addition to a lot of math.

Each channel is considered a 64-bit device (Notice this is relevant to system architecture). That means each data transfer cycle 64 bits of data can pass. Since we have four channels (64x4) there are 256 total bits per data transfer cycle.

 Once again to keep things simple - some motherboards have multiple memory module slots on a single channel. Only one of those memory modules is able to use the bus during each cycle. (Example above shows two slots/dimms per channel - if all four are populated only A1 or A2 can pass data on the Channel A bus and only B1 or B2 can pass data over the Channel B bus during a single cycle.)

Since the ram used is DDR (Double Data Rate) two data chunks are transferred for a single memory clock cycle. This means a single data chunk is transferred in half the listed frequency of the RAM.

Example:
We are using DDR4-1600 a single data chunk is delivered in 800 MHz real clock speed. So in a single 1600 MHz cycle 64 x 2 data is actually transferred.

Bandwidth = 800 MHz x 64 b

Since a single cycle is actually 2 of these we double it

Bandwidth = 2(800 x 64)

Since it is calculated in bytes we divide by 8 (8 bits in a byte)

Bandwidth = (2(800 x 64))/8

Bandwidth = 12800 MB/s or 12.5 GB/s

For DDR4-2133 (Which is the highest frequency RAM recommended for our selected processor)  each stick would be 16.6640625 x 4 (channels) = 66.65625 GB/s - thus DDR4-2133 is the highest frequency RAM based on the Max Bandwidth.

The final thing to look at when picking out ram are the timings. Essentially timings are the amount of cycles it takes to complete certain actions. They are often referred to as CAS timings, but CAS latency is only a small portion of it. I’m not going to go into too much detail here - just know the lower the number is the better. Additionally it is possible to modify these numbers but one does this at the risk of losing stability.

I promise I’ll write a more in depth article on RAM - it is truly fascinating and shares a lot of the same technologies as Solid State Drives. In the next post I’ll most likely review motherboards - and following that article I review both RAM and motherboard selections.

No comments:

Post a Comment