Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm trying to figure out what a buffer is in RAM, I'm currently learning about RAM and the different types. Could someone please explain to me the importance and purpose of a buffer in say DDR2 memory modules?

share|improve this question
    
Have you thought of Wikipedia? Google? What research have you done on this so far? –  Dave M Nov 28 '12 at 15:48
    
Well I'm on something called LabSim, and it's supposed to prep you for the CompTIA A+ certification exam, and they just don't explain things. I would search it, and I did, but i wanted to let alone hear from someone that may know more. –  JustinD Nov 28 '12 at 15:50
    
And i can't exactly find the answer i'm looking for when i try to search for the answer –  JustinD Nov 28 '12 at 15:51

2 Answers 2

up vote 1 down vote accepted

I think you are referring to unbuffered, buffered and fully buffered RAM. If not please clarify your post.

First, this is how basic RAM works:

enter image description here

Example: CPU want to read something from RAM and load it in a register

  • The address to read from it put on the address bus.
  • The R/W signal is set to 'I want to read from that place'
  • The memory places the desired data on the data lines
  • The CPU copies the data to the register.
  • RAM can be released.

Now that is a simplified example. In praxis there are a few complications.

  • Putting an address on the address bus might take a few clock cycles before it is stable.
  • Ditto for the R/W/ signal
  • The memory will have to do some internal processing to get to the signal. (e.g. select the right chip, assuming it is available and not in the middle of a refresh), etc. etc.

Also note that I explicitly choose an example where the data was read into an on-CPU register. Again, the data was copied from the bus to a place in the CPU. This might be a literal copy, or there may be a buffer at the 'edge' of the CPU where the data is copied to the buffer, and then from the buffer to a register. (Possibly because internal registers and external RAM use different voltages, and the buffer is used to work with both of them).


If I add longer copper traces (long paths between memory and CPU, or more paths to allow for more memory modules) it may become necessary to add buffers at the edge of the memory module.

Instead of feeding the desired data directly from the memory chips output, it would be copied to a buffer near the DIMMs output. Memory modules which have this features are called buffered or registered.

Memory which lacks this is called unbuffered or unregistered.


Note that buffered memory needs to do one extra action and it is typically a clock cycle slower. Buffered memory is usually used in server- or workstation motherboard where more but slightly lower memory is desirable over slightly faster memory. Consumer motherboard on the other hand used unregistered memory.

share|improve this answer

are you sure you mean buffer, and not FSB/CPU-side cache?

if so, see here for a detailed coverage of Disk IO caching/buffering in ram.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.