Originally Posted by nleksan
...So sure, DDR3-1600 6-7-6 will have lower latency than 2400 10-12-10, for example, but the latter will be able to transfer a significant amount more data in the same amount of time.
While the 2400mhz ram can transfer the data faster, it doesn't mean overall it will be faster. The reason is that ram can only transfer relatively small chunks of data at a time before it needs to access a new address and you'll have to add the latency in again.
So if your calculated latency shows that the 1600Mhz ram is going to have 10ns latency less than the 2400Mhz ram, and you only make up 7ns with the faster data rate you are still 3ns slower than the 1600Mhz ram.
Originally Posted by tatmMRKIV
what does pi32m test then because my 6-8-6 pi's @ 1700 demolished my samsung yko sticks at 2475mhz
The above example is why your 1700MHz ram demolished your 2475Mhz ram. You weren't transferring enough data per access to have the higher transfer rate matter.NOTE: If anyone reading this is satified by just taking my word for it then stop reading here as the following is explaining the math the goes behind what I wrote.
Here is an example with the math to take this a bit further. I'll use the example that TatnNRKIV started. However, I disagree with his equation. I'm not sure why he is multiplying by 2000. Maybe that would make sense if he was using the single data rate speed, but he is using the double data rate speed in the equation. So let me redifine the equation and explain why it is the way it is.
The timing numbers refer to the number of clock cycles it takes to complete that action. 1600MHz means there are 1600000000 clocks per second (1600Mhz is like saying 1600 Million). So, you take the total number of clocks it takes to complete an action, then divide it by the clocks per second. That leaves you with time in seconds. The math is simple:
(# of clocks)
(# of clocks) / (Second)
When you divide twice as shown above, the second division is the same as multiplying to the numerator (the number on top). So you get:
(# of clocks) X (Second)
(# of clocks)
Both (# of clocks) cancel each other out and you are left with the time in seconds. Remember that this is time in Seconds so it will be very small. And by very small I mean something like 0.000000025 seconds. Which is the same as 25 nano seconds (ns).
Now that we have a proper equation lets do the math to figure out how much data you would need to transfer to in one shot to have the 1866MHz ram actually be faster.
1600MHz has a data rate of 12.8GB/s
1600MHz latency = (7+8+7+20)/1600000000 = 26.25ns
1866MHz has a data rate of 14.9GB/s
1866MHz latency = (9+10+9+28)/1866000000 = 30.0107ns
So, based on the two latencies we have, the 1866MHz ram would need to transfer the data 30.0107 - 26.25 = 3.7607ns faster just to match speeds.
The equation to find out how quickly a set chuck of data is transferred is also very simple:
(Amount of Data)
=========== = Total time to transfer the data
Using some algebra magic you can rearrange the equation to look like this:
(Amount of Data) = (Total time to transfer the data) X (Transfer Speed)
We also need to remember that the 1600 ram has already been transferring data for 7ns. So using the equation above we know that it has already transferred
12.8GB/s x 3.7607ns = 48.14 Bytes (note that it's Bytes, NOT GigaBytes).
So now we need to know how long it will take for the 1866 ram to "catch up" in terms of how much data it has transferred. We know that the 1866 ram transfers data at 2.1GB/s (14.9GB/s - 12.8GB/s) FASTER than the 1600 ram. So if we use the above equation again we get:
(48.14 Bytes) / (2.1GB/s) = 22.92ns.
This means it takes 22.92ns of the 1866 ram transferring data before it catches up to how much data the 1600 ram has sent. (Remember, the 1600 ram had a 3.7607ns head start).
Knowing how long the 1866 ram needs to transfer for before it breaks even we can plug that into the "Amount of Data" equation from before:
(Amount of Data) = 22.92ns X 14.9GB/s
(Amount of Data) = 341.56 Bytes
So, unless you transfer at least 341.56 Bytes every time you access a single address in the ram the 1600 ram with lower timings will be faster.
Now the kicker, how much data can be transferred before you have to access another address? I honestly don't know. I emailed Corsair about this and they said I'll need to call the tech department to get an answer which I haven't done yet. But, being an engineer I know that it can be small like 8 Bytes per access or large like 32MB per access or even larger depending on how they designed the architecture.
I know most of you are probably thinking "I transfer way more than 341 Bytes with all my application. My RAM loads at least 1GB when I start any program." Yes, that is true, but ram is set up like a grid and the latencies refer to how long it takes to access sections of that grid. So if there are only 20 Bytes of data in one section of the grid that you need before you go to another section then you need to add those latencies in again to get to the next section and so forth. So even though you may have only clicked one button on your desktop your ram may be jumping all over the place to get the data.
Hopefully I'll get an answer from Corsair soon as to how much data can be accessed at a time (between latencies). Once I get that we will have a very concrete formula and I will put together an Excel sheet where people can plug in their numbers and have excel just tell them which setup would be faster.
Oh, and a second kicker and the second question I asked Corsair. Does ram have a fixed multiplier of 8? If it does, then that means your max ram speed (even if you set it higher) is going to be your base clock (bclk) multiplied by the ram multiplier. The bclk is typically 100MHz. So:
100MHz X 8 X 2(for double data rate) = 1600MHz.
Now you can increase your bclk to get higher data rates. For example if you increased your bclk to 125MHz then you data rate would be:
125MHz x 8 x 2 = 2000MHz.
I could be wrong as I haven't gotten an answer yet. But if I'm right this explains why people don't see that great of performance gains over 1600MHz, but they saw huge gains going from 1333MHz to 1600MHz.
Sorry for the long winded answer, but there was a lot of math that needed to be explained.
Let me know if anything needs clarification.