Do all memory modules in a pc fill up equally?

Or does the system wait until one module is full before using subsequent modules? Sorry if that's not clear, hopefully you can understand my question.
 
It tends to be pretty random. Memory gets allocated and deallocated all the time, so you tend to suffer fragmentation.
With virtual memory, you can also map any physical memory to any virtual address space, so what appears to be a linear block of memory to an application may be scattered all over the physical memory.
 
But fragmented data in RAM shouldn't matter, should it? Random access and all.
 
But fragmented data in RAM shouldn't matter, should it? Random access and all.

Well, there are a few issues... eg, the addressing takes some time, so burst transfers are faster than individual read operations of single bytes.
So in theory, if your data is too fragmented, you may lose performance.

However, memory is always allocated per page. On a standard 32-bit x86 OS these pages are usually 4k each. So you don't get fragmentation down to the byte level.
So as long as the application doesn't store its data in a weird fragmented way (which generally isn't a good idea for caching either), it shouldn't matter, and you will get burst transfers from your memory.
 
Back
Top