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?

0
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.

5
  • 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 '20 at 6:34

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