Thread: Ram 101
View Single Post
Old 04-02-2005, 08:17 PM   #3 (permalink)
Praetor
Administrator
 
Praetor's Avatar
 
Join Date: Jul 2004
Location: Canada
Age: 26
Posts: 19,953
Default Definitions Part 02

DDR, SDR, DDR2, GDDR etc.
  • SDRAM is a very old design and by modern standards, very slow; commands/responses are done with respect to the rising edge of a clock signal and as such the full designation for this classic architecture is SDR SDRAM for single-data-rate-SDRAM. It doesnt take much to see that by limiting operations exclusively to one side of a clock signal is wasteful (it wasnt required nor noticeable back in the day) and as such, by processing commands on the falling edge provides a significant improvement to performance without all that much complexity: this improved memory design is known as DDR SDRAM for double-data-rate-SDRAM. On it's own, "SDRAM" implies SDR SDRAM and by a similar token, "DDR" implies DDR SDRAM. Differentiating between the two is fairly simple: SDRAM is a 168 pin interface with two notches, DDR memory uses a is a 184 pin interface with a single notch.
  • When talking about clock-speeds, "DDR" can refer to the process of "double-data-rate" (which is available to other things than just the memory). To limit confusion, for the remainder of this guide when using this second interpretation it will be in the form of DDR### denoting the doubled-clockspeed.
  • With CPU clock speeds going through the roof, even the venerable DDR memory is beginning to show signs of becomming a bottleneck, As such, DDR2 was developed with the goal of allowing for significantly improved memory speeds (at a cost of latencies, see VFAQ for more info). DDR2 uses a single notch 240 pin interface
  • The 'G' designation on GDDR (and GDDR2, GDDR3 etc) is there to note that the memoy used is specifically tailored to video cards (this is important because GDDR2 and DDR2 are not the same architecture).

Dual Channel. A popular buzzword, dual channel refers to the idea of running two memory controllers to feed data to the CPU thus providing a theoretical doubling of the throughput capacity (currently only available on select DDR and DDR2 configurations). The reasoning for this is simple:
  • DDR/DDR2 memory uses a 64bit interface to commuinicate with the memory controller. For 200MHz (DDR400) clock, the maximum throughput becomes 64bits x 200MHz x 2 ÷ 8bits/byte = 3200MB/s ~= 3.2GB/s (note here that MB is defined as 1-million)
  • The most straightforward way to improve performance (as demonstrated in the videocard market) is to double the memory interface to 128bits. Doing so would provide for 128bits x 200MHz x 2 ÷ 8bits/byte = 6400MB/s ~= 6.4GB/s of throughput. This however is too electrically complex to be implememented.
  • Now suppose we have two (or four) sticks of memory, each with it's own private connection to a memory controller (i.e., each stick or pair of sticks would have it's own 3.2GB/s connection to the memory controller). This would mean that the aggregate throughput is roughly 6.4GB/s. This is the principle behind dual-channel memory.
  • A comparison of single vs dual-channel memory is in VFAQ

RDRAM. This is an interesting (albeit virtually discontinued) memory architecture introduced by Rambus. Introduced in the era of classic SDRAM (that is, SDR memory), Rambus DRAM (RDRAM) operates on a smaller 16-18bit bus however it operates at significantly increased speeds (much like the principle behind SATA vs PATA). With an (initial) clock speed of 400MHz (DDR800) comapred to 100MHz (and lack of DDR) on the prevelent SDRAM of the time, RDRAM is definitively noted as the choice performance (albeit almost prohibitively expensive) memory of its time and is found on Intel Willimette based systems.

RDRAM is available a RDRAM and Concurrent RDRAM however due to (a) high cost of RDRAM (b) significantly reduced cost of DDR memory which offered passable/comparable performance at its introduction (and significantly improved performance now) and (c) Intel backing out of a deal with Rambus to make RDRAM the memory of choice for it's Pentium4 platform for the above reasons, RDRAM was a very shortlived novelty. Lastly, Rambus's attempts to sue the DDR Consortium because it (Rambus) thinks it has patent rights to DDR resulted in a backlash in the consumer industry and was viewed as a cry-baby move by Rambus. Recent incarnations of RDRAM (it just refuses to die) use a 32bit internal interface an offer DDR level performance however cost-effectiveness remains an issue

Looking at the available bandwidth [classic] Rambus memory has to offer 16bits x 400MHz x 2 ÷ 8bits/byte = 1600MB/s ~= 1.6GB/s. Later revisions of with 32bit interfaces offered 32bits x 600MHz x 2 ÷ 8bits/byte = 4800MB/s ~= 4.8GB/s). Comapred to the zero-point PC3200 systems, RDRAM still seems to be the performance oriented option. Those ideas should be quashed when noting that performance DDR memory can offer in the ballpark of 5.0GB/s and DDR2 in throwing range of 10.0GB/s.

SPD. This is 8bit the serial presence detect chip present on memory and acts very much like an information tag for that stick of memory and stores information such as default clock speed, default timings, manufacturer information, capacity information etc.

DIMM, SIMM, RIMM, SoDIMM. These referr to the physical package the memory conforms to.
  • SIMMs (Single In-line Memory Module) are a 32bit interfaced used to connect older [much] DRAM modules (and they are connected in pairs).
  • DIMMs (Dual In-line Memory Module) are a 64bit interface used to connect current-generation memory modules (essentially any non-Rambus memory marketed with a "PC#" designation).
  • RIMMS (Rambus In-line Memory Module) are a 16-32bit package used to connect Rambus memory
  • SODIMM (Small Outline In-line Memory Module) is a 64bit 144pin version of DIMMs used in laptops

Heatspreaders
Heatspreaders are essentially, a chunk of metal that is in contact with the memory stick to provide a greater surface area for dissipitating heat (much like a heatsink but heatspreaders seems to be a flashier word). When reality kicks in one is quick to note that (a) RAM doesnt give off enough heat to even be remotely in jeopardy -- yes even at 250MHz (b) the argument that if you OC your memory to like 300MHz and push 3.0v+ through it doesnt really hold because if you have memory that can handle that ... it coindicentally has a heatspreader (there arent really any modules that can do that kind of OC and not have heeatspreader)

ECC, Parity, Buffered, Registered Memory
  • Buffered memory refers to memory featuring a mechanism to redrive signals to and from the module (this means that the memory module can have more modules. This term mostly refers to FPM/EDO memory (i.e., very old). In a modern context buffered and registered memory refer to the same thing.
  • Registered memory is a type of buffered memory that has a register (much like a CPU register) which holds data for an extra cycle before passing it on to the rest of the memory. What this means is that all data being sent from the memory controller is received (i.e., the memory isnt 'rushed').
  • In a modern context, Buffered Memory is synonymous with Registered Memory
  • Parity memory used to refer to a type of memory that is able to detect odd-bit errors however it should be noted that parity memory does not have the ability to correct these errors. In a modern context, almost all RAM has some form of error detection capacity and it takes special RAM to be able to correct them
  • ECC or Error-Correcting-Code memory is a step up from parity memory in that it is able to correct (on the fly) errors found with memory transactions. You can telll a memory module has ECC capabilities by looking at it: while most DIMMs will have eight memory chips, an ECC capable stick will have nine
  • To explictly address two common misconceptions, ECC memory is not the same as parity memory (although many manufacturers usually 'affiliate' the two terms) and ECC memory does not have be buffered/registered although that is a very common occurance
  • What does this all mean? If you're looking to build a server system where data integrity is important, the best you can get is registered-ECC memory (second best would probably be registered-non-ECC memory since the odds of getting memory errors is slim as it is and the presence of the data registers helps to minimize that already small chance). If you're not looking for server memory, unbuffered-non-ECC is the way to go (best performance route)

Virtual, Physical Memory
Physical memory refers to the actual memory, physically installed in the computer (i.e., the memory modules). Virtual memory (aka swap, pagefile) refers to harddrive space set aside by the operating system to act like physical memory (so when the physical memory runs out ... i.e., gets full, the OS uses that harddrive space like memory).

SLI Memory
This is a term coined by nVidia. It is unrelated to Scalable Link Interface (making 2 or more video cards work together). SLI Memory is just like normal memory except it has an EPP (Enhanced Performance Profile) programmed into the SPD chip. For motherboards that support it, this profile can set things like more aggressive timings, higher clock speeds and voltage settings for the RAM.
__________________
ASUS P5K Premium WiFi-AP, Q6600@3.7 / ASUS P5ND, E6400@3.8
4GB OCz Platinum XTC 8500 / 4GB CorsairXMS2 6400
5x500GB Seagate 7200.10 / 2x500 Seagate 7200.10
OCz 8800GTX 768MB @ 630/800 / 2x Galaxy 8800GT SLI

Last edited by Cromewell; 12-07-2007 at 03:30 AM.
Praetor is offline