Jump to content

How does two dimms per channel work?

Go to solution Solved by mariushm,

There's two memory channels ... in which you can have single rank , dual rank or even quad rank memory sticks (if the memory controller supports quad rank memory sticks) 

 

Single Rank vs Dual Rank vs Quad Rank : 

 

The ram stick is designed to receive or transmit 64 bits at a time to/from the processor. Well, 72 bits if you include ECC data, but for common desktop memory, we're talking 64 bits. 

The tiny memory chips that are on the ram stick are designed to output either 4 bits or 8 bits at a time, these days chips that output 8 bits at a time are the most common.  

So, in order to put 64 bits on the contacts of the ram stick, you need to have a multiple of 8 ram chips. If you use 4 bit ram chips, then you need 64/4 = 16 ram chips on the memory stick, so you'll have a single rank ram stick with 16 memory chips on it, probably 8 on each side. 

If you use 8 bit ram chips, then you need at least 8 ram chips.  Manufacturer can then use either 8 or 16 ram chips to make the ram stick, so you could have a Single Rank ram stick with 8 ram chips on one side, or you could have a Dual Rank ram stick, with 2 groups of 8 ram chips.  (quad rank sticks would use 32 chips, 4x8 chips)

 

The thing with Ranks is the processor can only work with a rank at a time, it can't read or write from both ranks at a time.

But, it can do a think called interleaving.  

Basically each time the processor wants something, it has to tell the ram chips : Guys , I want data at this position in your ram chips, get prepared to give this data to me. 

Then, it takes a few nanoseconds for the ram chips in that rank to be ready to put the data on the ram stick pins, 64 bits at a time. 

The processor can take advantage by this by sending a "get ready to give me data" to a rank right before it starts transferring data from another rank, for which it previously already sent the request to read or write data. 

By the data the processor is done reading from that rank, the other rank spent those few nanoseconds preparing to send data and the processor can switch between ranks right away, without having to send the "get ready to transfer" command and wait nanoseconds doing nothing. 

 

So dual rank ram sticks can give you a very slightly performance increase compared to single rank sticks, because with single rank sticks, every time a transfer is done, the processor has to send that "get ready to transfer" command and wait for the ram chips to being that transfer. With dual or quad rank, it can "chain" / interleave those "get ready calls" and skip on waiting those nanoseconds of time. 

 

When you put two ram sticks on same channel, the memory controller basically treats each ram stick as if they're separate ranks ...  it knows the capacity of each ram stick on that channel and only enables the ram stick rank it wants to talk to. 

 

-

 

With dual channel, the processor takes advantage of having two sticks, one in each channel,  or four sticks , two in each channel, to transfer data to and from memory 128 bits at a time  (2 x 64 bit transfers).

 

It still takes time (nonoseconds) for the "get ready to transfer command" to be "processed"  by the ram chips, but once that's done the processor gets 128 bits at a time, 64 bits from each memory channel. This way, it receives the desired data twice as fast. 

 

Of course, you get most benefit when dealing with large amounts of data, because otherwise those nanoseconds of waiting time each time the processor has to send that "get ready to transfer" command can not be reduced. 

 

For example, let's say it takes 10 ns to get ready and  4 ns to send  512 KB of data.  With dual channel, it would still take 10ns to get ready, but each channel will transfer half (256 KB) in 2ns, so overall it takes 10+2 = 12 ns instead of 14ns to transfer this data.  Dual channel in this case doesn't get you twice the speed, but it is a bit faster.

 

 

Hi all

 

I've been having a good think about things and am curious about ram dimms and memory channels.

 

If a CPU had a 2 channel mem controller

 

How is it some boards have 4 slots?

 

I don't understand that!

Is the motherboard doing the trickery to bring two slots into one channel?

 

Or is the actual memory channel on the CPU allows for two actual sticks of memory.

 

I also read about single and dual rank.. this has something to do with it 

 

Would like some definition here haha

Cheers

Few Systems,

Lenovo Flex 14, Ryzen 3500U, 20GB Ram, 1TB Samsung Evo, 512 GB MicroSD

 

METABOX APLHA-X 17.3" Gaming Laptop, i7 8750H, 24GB DDR4 2400MHz, GTX1060 6GB, 2TB Seagate HDD, 512GB SSD Intel 660p, 17.3" Screen

 

2X COOL CRAZY A$$ WALL COMPUTERS DIY.      Link to my website / pictures of my Wall PC's

 

1st Wall PC, Ryzen 3900X, Gigabyte Gaming 5 X370 32GB Corsair Dom 3200Mhz, 256GB SM951 Samsung SSD, 7x 5TB HDD's, Zotac AMP Extreme GTX 1070, EVGA P2 850Watt PSU

 

2nd Wall PC, i7 8700K @ 4.8GHz, Gigabyte Gaming 7 Z370 16GB Viper 3733Mhz DDR4, 256 Samsung PRO SSD, SM951 Samsung SSD, 1x 4TB HDD, Zotac AMP Extreme GTX 1080ti, EVGA P2 750Watt PSU

 

Media Centre PC's AMD R5 1600, 8GB, just a tv system ITX Based

 

Workstation, Portable disk cloner DIY Construction with screen in chassis. Ryzen 2200G 8GB DDR4

 

Blender RENDERBOX, Ryzen Threadripper 2970WX, 32GB DDR4 2933 HyperX, 4X 1070 GTX, Seasonic 1000Watt Psu

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, toxsickcity said:

Is the motherboard doing the trickery to bring two slots into one channel?

Pretty much. You can have multiple sticks per channel. So you have two channels, and two sticks per channel.

 

If you have a dual rank stick, this is basically the same as two single rank sticks sharing the same channel.

 

Independent channels means the CPU can read from both sticks at once (dual channel), which is why you get double the theoretical bandwidth. You can maybe imagine two sticks in one channel as simply a larger stick (both "added together" to form a larger stick)

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

11 minutes ago, toxsickcity said:

How is it some boards have 4 slots?

To install more memory. Yes you can have two sticks per channel.

Link to comment
Share on other sites

Link to post
Share on other sites

There's two memory channels ... in which you can have single rank , dual rank or even quad rank memory sticks (if the memory controller supports quad rank memory sticks) 

 

Single Rank vs Dual Rank vs Quad Rank : 

 

The ram stick is designed to receive or transmit 64 bits at a time to/from the processor. Well, 72 bits if you include ECC data, but for common desktop memory, we're talking 64 bits. 

The tiny memory chips that are on the ram stick are designed to output either 4 bits or 8 bits at a time, these days chips that output 8 bits at a time are the most common.  

So, in order to put 64 bits on the contacts of the ram stick, you need to have a multiple of 8 ram chips. If you use 4 bit ram chips, then you need 64/4 = 16 ram chips on the memory stick, so you'll have a single rank ram stick with 16 memory chips on it, probably 8 on each side. 

If you use 8 bit ram chips, then you need at least 8 ram chips.  Manufacturer can then use either 8 or 16 ram chips to make the ram stick, so you could have a Single Rank ram stick with 8 ram chips on one side, or you could have a Dual Rank ram stick, with 2 groups of 8 ram chips.  (quad rank sticks would use 32 chips, 4x8 chips)

 

The thing with Ranks is the processor can only work with a rank at a time, it can't read or write from both ranks at a time.

But, it can do a think called interleaving.  

Basically each time the processor wants something, it has to tell the ram chips : Guys , I want data at this position in your ram chips, get prepared to give this data to me. 

Then, it takes a few nanoseconds for the ram chips in that rank to be ready to put the data on the ram stick pins, 64 bits at a time. 

The processor can take advantage by this by sending a "get ready to give me data" to a rank right before it starts transferring data from another rank, for which it previously already sent the request to read or write data. 

By the data the processor is done reading from that rank, the other rank spent those few nanoseconds preparing to send data and the processor can switch between ranks right away, without having to send the "get ready to transfer" command and wait nanoseconds doing nothing. 

 

So dual rank ram sticks can give you a very slightly performance increase compared to single rank sticks, because with single rank sticks, every time a transfer is done, the processor has to send that "get ready to transfer" command and wait for the ram chips to being that transfer. With dual or quad rank, it can "chain" / interleave those "get ready calls" and skip on waiting those nanoseconds of time. 

 

When you put two ram sticks on same channel, the memory controller basically treats each ram stick as if they're separate ranks ...  it knows the capacity of each ram stick on that channel and only enables the ram stick rank it wants to talk to. 

 

-

 

With dual channel, the processor takes advantage of having two sticks, one in each channel,  or four sticks , two in each channel, to transfer data to and from memory 128 bits at a time  (2 x 64 bit transfers).

 

It still takes time (nonoseconds) for the "get ready to transfer command" to be "processed"  by the ram chips, but once that's done the processor gets 128 bits at a time, 64 bits from each memory channel. This way, it receives the desired data twice as fast. 

 

Of course, you get most benefit when dealing with large amounts of data, because otherwise those nanoseconds of waiting time each time the processor has to send that "get ready to transfer" command can not be reduced. 

 

For example, let's say it takes 10 ns to get ready and  4 ns to send  512 KB of data.  With dual channel, it would still take 10ns to get ready, but each channel will transfer half (256 KB) in 2ns, so overall it takes 10+2 = 12 ns instead of 14ns to transfer this data.  Dual channel in this case doesn't get you twice the speed, but it is a bit faster.

 

 

Edited by mariushm
small typos
Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, mariushm said:

There's two memory channels ... in which you can have single rank , dual rank or even quad rank memory sticks (if the memory controller supports quad rank memory sticks) 

 

Single Rank vs Dual Rank vs Quad Rank : 

 

The ram stick is designed to receive or transmit 64 bits at a time to/from the processor. Well, 72 bits if you include ECC data, but for common desktop memory, we're talking 64 bits. 

The tiny memory chips that are on the ram stick are designed to output either 4 bits or 8 bits at a time, these days chips that output 8 bits at a time are the most common.  

So, in order to put 64 bits on the contacts of the ram stick, you need to have a multiple of 8 ram chips. If you use 4 bit ram chips, then you need 64/4 = 16 ram chips on the memory stick, so you'll have a single rank ram stick with 16 memory chips on it, probably 8 on each side. 

If you use 8 bit ram chips, then you need at least 8 ram chips.  Manufacturer can then use either 8 or 16 ram chips to make the ram stick, so you could have a Single Rank ram stick with 8 ram chips on one side, or you could have a Dual Rank ram stick, with 2 groups of 8 ram chips.  (quad rank sticks would use 32 chips, 4x8 chips)

 

The thing with Ranks is the processor can only work with a rank at a time, it can't read or write from both ranks at a time.

But, it can do a think called interleaving.  

Basically each time the processor wants something, it has to tell the ram chips : Guys , I want data at this position in your ram chips, get prepared to give this data to me. 

Then, it takes a few nanoseconds for the ram chips in that rank to be ready to put the data on the ram stick pins, 64 bits at a time. 

The processor can take advantage by this by sending a "get ready to give me data" to a rank right before it starts transferring data from another rank, for which it previously already sent the request to read or write data. 

By the data the processor is done reading from that rank, the other rank spent those few nanoseconds preparing to send data and the processor can switch between ranks right away, without having to send the "get ready to transfer" command and wait nanoseconds doing nothing. 

 

So dual rank ram sticks can give you a very slightly performance increase compared to single rank sticks, because with single rank sticks, every time a transfer is done, the processor has to send that "get ready to transfer" command and wait for the ram chips to being that transfer. With dual or quad rank, it can "chain" / interleave those "get ready calls" and skip on waiting those nanoseconds of time. 

 

When you put two ram sticks on same channel, the memory controller basically treats each ram stick as if they're separate ranks ...  it knows the capacity of each ram stick on that channel and only enables the ram stick rank it wants to talk to. 

 

-

 

With dual channel, the processor takes advantage of having two sticks, one in each channel,  or four sticks , two in each channel, to transfer data to and from memory 128 bits at a time  (2 x 64 bit transfers).

 

It still takes time (nonoseconds) for the "get ready to transfer command" to be "processed"  by the ram chips, but once that's done the processor gets 128 bits at a time, 64 bits from each memory channel. This way, it receives the desired data twice as fast. 

 

Of course, you get most benefit when dealing with large amounts of data, because otherwise those nanoseconds of waiting time each time the processor has to send that "get ready to transfer" command can not be reduced. 

 

For example, let's say it takes 10 ns to get ready and  4 ns to send  512 KB of data.  With dual channel, it would still take 10ns to get ready, but each channel will transfer half (256 KB) in 2ns, so overall it takes 10+2 = 12 ns instead of 14ns to transfer this data.  Dual channel in this case doesn't get you twice the speed, but it is a bit faster.

 

 

Reply of the year!

Thankyou mate, you explained this like a champ!

 

Totally makes sense and was a great read!

 

Good to know the benefits of dual rank dimms.

 

I remember a review where they tested dual channel with 2 vs 4 dimms populated! And results were interesting. Performance was slightly better which surprised me.

 

Would that benefit you mentioned about dual rank skipping the calls / nanoseconds of time.. etc?

That would maybe apply to 2x DIMMs on a single channel / 4x DIMMs on dual channel?

 

I also saw diagrams where ddr5 have two channels on a single dimm.. 

Is this server memory?

spacer.png

 

 

Few Systems,

Lenovo Flex 14, Ryzen 3500U, 20GB Ram, 1TB Samsung Evo, 512 GB MicroSD

 

METABOX APLHA-X 17.3" Gaming Laptop, i7 8750H, 24GB DDR4 2400MHz, GTX1060 6GB, 2TB Seagate HDD, 512GB SSD Intel 660p, 17.3" Screen

 

2X COOL CRAZY A$$ WALL COMPUTERS DIY.      Link to my website / pictures of my Wall PC's

 

1st Wall PC, Ryzen 3900X, Gigabyte Gaming 5 X370 32GB Corsair Dom 3200Mhz, 256GB SM951 Samsung SSD, 7x 5TB HDD's, Zotac AMP Extreme GTX 1070, EVGA P2 850Watt PSU

 

2nd Wall PC, i7 8700K @ 4.8GHz, Gigabyte Gaming 7 Z370 16GB Viper 3733Mhz DDR4, 256 Samsung PRO SSD, SM951 Samsung SSD, 1x 4TB HDD, Zotac AMP Extreme GTX 1080ti, EVGA P2 750Watt PSU

 

Media Centre PC's AMD R5 1600, 8GB, just a tv system ITX Based

 

Workstation, Portable disk cloner DIY Construction with screen in chassis. Ryzen 2200G 8GB DDR4

 

Blender RENDERBOX, Ryzen Threadripper 2970WX, 32GB DDR4 2933 HyperX, 4X 1070 GTX, Seasonic 1000Watt Psu

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×