Jump to content

My question is a bit specific but here it goes :

Is ram (DDR specifically) accessed in a stripe (data written and accessed to any part of the amount of sticks) or does it fill a stick and move to the next?

Main Gaming PC - i9 10850k @ 5GHz - EVGA XC Ultra 2080ti with Heatkiller 4 - Asrock Z490 Taichi - Corsair H115i - 32GB GSkill Ripjaws V 3600 CL16 OC'd to 3733 - HX850i - Samsung NVME 256GB SSD - Samsung 3.2TB PCIe 8x Enterprise NVMe - Toshiba 3TB 7200RPM HD - Lian Li Air

 

Proxmox Server - i7 8700k @ 4.5Ghz - 32GB EVGA 3000 CL15 OC'd to 3200 - Asus Strix Z370-E Gaming - Oracle F80 800GB Enterprise SSD, LSI SAS running 3 4TB and 2 6TB (Both Raid Z0), Samsung 840Pro 120GB - Phanteks Enthoo Pro

 

Super Server - i9 7980Xe @ 4.5GHz - 64GB 3200MHz Cl16 - Asrock X299 Professional - Nvidia Telsa K20 -Sandisk 512GB Enterprise SATA SSD, 128GB Seagate SATA SSD, 1.5TB WD Green (Over 9 years of power on time) - Phanteks Enthoo Pro 2

 

Laptop - 2019 Macbook Pro 16" - i7 - 16GB - 512GB - 5500M 8GB - Thermal Pads and Graphite Tape modded

 

Smart Phones - iPhone X - 64GB, AT&T, iOS 13.3 iPhone 6 : 16gb, AT&T, iOS 12 iPhone 4 : 16gb, AT&T Go Phone, iOS 7.1.1 Jailbroken. iPhone 3G : 8gb, AT&T Go Phone, iOS 4.2.1 Jailbroken.

 

Link to comment
https://linustechtips.com/topic/608009-ram-data-access/
Share on other sites

Link to post
Share on other sites

7 minutes ago, Hunter259 said:

My question is a bit specific but here it goes :

Is ram (DDR specifically) accessed in a stripe (data written and accessed to any part of the amount of sticks) or does it fill a stick and move to the next?

I think dual channel stripes it so you can get effectively double the speed, othewise i think it fills by stick number 

CPU: i5-4690K @ 4.0GHz GPU: Gigabyte Gtx 970 WindForce MOBO: Gigabyte Z97 Gaming-3 CASE: Corsair Carbide 200R PSU: Corsair RM750

 

RAM: Corsair Vengeance 4GBx4  MOUSE: CM Mizar KEYBOARD: Logitec G110

 

Link to comment
https://linustechtips.com/topic/608009-ram-data-access/#findComment-7870053
Share on other sites

Link to post
Share on other sites

This is over my head, but @MageTank

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
https://linustechtips.com/topic/608009-ram-data-access/#findComment-7870103
Share on other sites

Link to post
Share on other sites

I don't believe so, while dual channel and ddr are double the bandwidth and theoretically double the speeds, such are striped raids, its not technically twice the speed per process just per system.

I may be off base here, and I look for a mod to correct and inform me, but I'm fairly sure in ram a particular bit(pun) of data or variable is only in one spot/cell and therefore not striped. The doubled bandwidth is only applicable between multiple processes or threads, leaving the true speed the same. 

The striping in raid is to add speed for a single read or write and larger data, ram is concerned with speed already and handles simpler data, adding striping would require a more advanced memory controller and add latency. So, I'm pretty sure the data of any given task is still stored on the same dimm or cell(s) in a metaphorical solid block and the other cells or dimms are used as needed. 

                     .
                   _/ V\
                  / /  /
                <<    |
                ,/    ]
              ,/      ]
            ,/        |
           /    \  \ /
          /      | | |
    ______|   __/_/| |
   /_______\______}\__}  

Spoiler

[I5-12600k | 32gb DDR5 6000 | RTX5070 | 2x1tb M.2]

 

[Ryzen 5 1600 | 16gb DDR4 3200 | GTX1030 | 4x 8tb HDD] 

 

Link to comment
https://linustechtips.com/topic/608009-ram-data-access/#findComment-7870245
Share on other sites

Link to post
Share on other sites

7 hours ago, Hunter259 said:

My question is a bit specific but here it goes :

Is ram (DDR specifically) accessed in a stripe (data written and accessed to any part of the amount of sticks) or does it fill a stick and move to the next?

For the most part, RAM is random (hence the name, Random Access Memory). It has a ton of pages to allocate, and is constantly dumping data that is no longer being accessed, and filling back up with different data being accessed. That being said, the IMC often favors pages that are next to other pages, because switching rows costs more time (back to back CAS, or RRSR).

 

Some data structures must remain contiguous though. For example: An array of Nth elements with a base address of 0xYYYYYYYY, each subsequent element must be allocated next to the previous. 

 

I hope this mess of information is somewhat useful to you, as I have never actually been asked this question before. Explaining it is not exactly easy.

My (incomplete) memory overclocking guide: 

 

Does memory speed impact gaming performance? Click here to find out!

On 1/2/2017 at 9:32 PM, MageTank said:

Sometimes, we all need a little inspiration.

 

 

 

Link to comment
https://linustechtips.com/topic/608009-ram-data-access/#findComment-7871112
Share on other sites

Link to post
Share on other sites

I should add that it's not like Raid0, because Raid0 has a predefined stripe size that it must follow. Ram on the other hand, it's real benefits comes from having more ranks. I don't mean Rank Interleaving either, I mean raw amount of ranks. Ram can only hold one page open per rank, at any given time, being able to open more at the same time is where the extra performance comes from. Rank interleave being the other half, using active ranks while depleted ones are recharging, instead of having to wait. 

 

With multi-channel interleave, its a pool of ranks. Most definitely not like Raid0.  

 

EDIT: There is an exception to this, known as Ganged Mode. Older Dual-Channel used to combine two 64 bit buses into a single 128 bit bus. This is where it would be similar to Raid 0. However, modern Dual Channel no longer does this. I think Wikipedia might have some information on this. https://en.wikipedia.org/wiki/Multi-channel_memory_architecture#Ganged_versus_unganged

 

An easy way to view this, is that it all depends on your IMC. Your IMC dictates absolutely everything about the way your ram works. With each architecture, we see the inner workings of the IMC change, and as a result, the way the data is accessed often changes. The inner latencies change, raw bandwidth is changed, etc. It's why this question is difficult to answer, because it has multiple answers depending on your IMC. 

My (incomplete) memory overclocking guide: 

 

Does memory speed impact gaming performance? Click here to find out!

On 1/2/2017 at 9:32 PM, MageTank said:

Sometimes, we all need a little inspiration.

 

 

 

Link to comment
https://linustechtips.com/topic/608009-ram-data-access/#findComment-7871140
Share on other sites

Link to post
Share on other sites

2 hours ago, MageTank said:

I should add that it's not like Raid0, because Raid0 has a predefined stripe size that it must follow. Ram on the other hand, it's real benefits comes from having more ranks. I don't mean Rank Interleaving either, I mean raw amount of ranks. Ram can only hold one page open per rank, at any given time, being able to open more at the same time is where the extra performance comes from. Rank interleave being the other half, using active ranks while depleted ones are recharging, instead of having to wait. 

 

With multi-channel interleave, its a pool of ranks. Most definitely not like Raid0.  

 

EDIT: There is an exception to this, known as Ganged Mode. Older Dual-Channel used to combine two 64 bit buses into a single 128 bit bus. This is where it would be similar to Raid 0. However, modern Dual Channel no longer does this. I think Wikipedia might have some information on this. https://en.wikipedia.org/wiki/Multi-channel_memory_architecture#Ganged_versus_unganged

 

An easy way to view this, is that it all depends on your IMC. Your IMC dictates absolutely everything about the way your ram works. With each architecture, we see the inner workings of the IMC change, and as a result, the way the data is accessed often changes. The inner latencies change, raw bandwidth is changed, etc. It's why this question is difficult to answer, because it has multiple answers depending on your IMC. 

I had figured that different memory controllers would access it differently. Thanks for the explanation.

Main Gaming PC - i9 10850k @ 5GHz - EVGA XC Ultra 2080ti with Heatkiller 4 - Asrock Z490 Taichi - Corsair H115i - 32GB GSkill Ripjaws V 3600 CL16 OC'd to 3733 - HX850i - Samsung NVME 256GB SSD - Samsung 3.2TB PCIe 8x Enterprise NVMe - Toshiba 3TB 7200RPM HD - Lian Li Air

 

Proxmox Server - i7 8700k @ 4.5Ghz - 32GB EVGA 3000 CL15 OC'd to 3200 - Asus Strix Z370-E Gaming - Oracle F80 800GB Enterprise SSD, LSI SAS running 3 4TB and 2 6TB (Both Raid Z0), Samsung 840Pro 120GB - Phanteks Enthoo Pro

 

Super Server - i9 7980Xe @ 4.5GHz - 64GB 3200MHz Cl16 - Asrock X299 Professional - Nvidia Telsa K20 -Sandisk 512GB Enterprise SATA SSD, 128GB Seagate SATA SSD, 1.5TB WD Green (Over 9 years of power on time) - Phanteks Enthoo Pro 2

 

Laptop - 2019 Macbook Pro 16" - i7 - 16GB - 512GB - 5500M 8GB - Thermal Pads and Graphite Tape modded

 

Smart Phones - iPhone X - 64GB, AT&T, iOS 13.3 iPhone 6 : 16gb, AT&T, iOS 12 iPhone 4 : 16gb, AT&T Go Phone, iOS 7.1.1 Jailbroken. iPhone 3G : 8gb, AT&T Go Phone, iOS 4.2.1 Jailbroken.

 

Link to comment
https://linustechtips.com/topic/608009-ram-data-access/#findComment-7871730
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

×