19

Countless of times I've heard and read that RAM-memory can have different speeds - denoted as MHz (e.g. 1066 MHz). However, what this frequency really is has never been explained to me and I'm having trouble finding an answer. My best guess is that - since frequency basically means "how many times per second" - the MHz means how many times per second the RAM can communicate with the CPU. Please do correct me if I am wrong. Also: how can you put this in a relationship to the size of the data being processed per second? E.g. how much data in mega-/kilobytes are sent to the CPU from the RAM per second in a scenario where its being pushed to the limit?

15

Yes, it's the maximum number of clock cycles per second that the RAM operates on. With Double Data Rate (DDR) RAM, it actually communicates twice per cycle. So for DDR:

200 MHz clock rate × 2 (for DDR, 1 for SDR) × 8 Bytes = 3,200 MB/s bandwidth

This is why chips are now named for their bandwidth, not their frequency alone. Above chip module is called PC-3200, not 200 Mhz. It's still necessary to know the clock rate, to ensure that the motherboard/CPU can operate at that clock.

See the Wikipedia article on DDR SDRAM for more information.

| improve this answer | |
  • Actually I did manage to find it in one of my textbooks now, and a SDR would give 200*8 = 1600 MB/s and a DDR would give twice that: 3200 MB/s. – Axel Kennedal Apr 1 '14 at 16:49
  • 2
    Actually, RAM chips aren't named based on frequency at all, but on data rate, which is measured in millions of transfers per second (MT/s), and for DDR RAM is double the clock frequency. So PC-3200 (3200 MB/s) corresponds to DDR-400 (400 MT/s), not DDR-200. – Indrek Apr 1 '14 at 17:11
  • 1
    It clearly says the 200 Mhz is regarding clock rate. The "frequency alone" is in reference to how chips used to be named, before DDR came into place. – Madball73 Apr 1 '14 at 17:23
  • Makes sense, but wait, how did you convert bytes into megabytes because 16 bytes in each cycle since it is DDR, and as you mentioned there are 200 cycles in a second so in total we have 16 bytes x 200 MHz = 3200 bytes being transferred in a second ? In other metrics, it is 3200 bytes/1024 bytes = 3.2 megabytes ? – VM_AI Jan 30 '19 at 17:54
  • @VM_AI You've got units wrong. 1 MHz = 1 million times / second. 16 bytes × 200 millions / second = 3200 millions / second. – gronostaj May 5 at 6:34

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