Quite all right, you are trying to learn, and it is actually an interesting question.
Unfortunately, I personally don't have an answer beyond "it is done by the chipset". Actually, even that isn't strictly right - it is done by the memory addressing hardware, which is independent of the chipset proper and which the chipset itself is dependent upon - but I really don't know the details. Some of the details I
can't know, as they would be specific to the particular motherboard, but in this instance, I don't even have a general outline to give for it. Hopefully, someone else here knows more about this than I do.
I will tell you a few things which may help, however. Comments and corrections welcome.
For modern PC-class systems, the CPU is not generally accessing the memory directly, but through the cache, which tries to predict which memory pages are going to be needed by the CPU core proper, in order to fetch them ahead of time and keep them available in the fast cache memory (with level 1 cache usually being the fastest but smallest; level 2 being larger but slightly slower because of light-speed delay - the signals have to travel farther; L3 slightly slower still but significantly larger; and so on for systems with more elaborate caching). It is possible to disable caching (but it is a really bad idea), and a cache miss at the lowest level cache will of course cause it to fetch from off-chip memory, but for the most part, the CPU deals with the RAM indirectly.
The important thing to see here is that the off-chip memory isn't accessed on a byte-per-byte basis, as a rule, but in pages (or blocks of pages, more likely). That is to say, if you are accessing an address in a given page, and it isn't in cache already, then the CPU will fetch that whole page, not just the specific byte or word you needed.
Even with caching off, the memory subsystem always fetches as much memory as the bandwidth allows, since the connection is a parallel one - you can't just fetch one byte, it always has to be the size of the memory bus width. In modern systems, I expect that this is either 128 or 256 bits, as the buses are optimized for transporting pages and page blocks, not individual bytes. You, as the software developer, wouldn't see this (as it is all handled in the hardware), but IIUC, that's what is actually going on.
I can also say that, in most modern systems, the individual DIMMs are not mapped to separate address ranges, at least not if the DIMMs are in paired slots to allow dual-channel access. It is my understanding - and I welcome corrections on this - that for motherboards with dual-channel memory support (which is more or less all of them today), if you have two DIMMs in paired slots (for example, slots 0 and 2, or slots 1 and 3), then the memory will be 'striped' across the two DIMMs to allow greater parallel bandwidth. This means that the page you would be fetching is actually spread across
both DIMMs, with the actual order in which they are stored (e.g., alternating words, sub-page sections, alternating pages) depending on the specific hardware, I think (again, any corrections or clarifications would be welcome).
Note that it is possible to use a single DIMM with most motherboards, and some motherboards will work using two DIMMs even if the memory isn't paired (as in
the infamous Verge build video last September, where the person giving the presentation made this mistake), in which case the memory would be accessed in single channel mode (i.e., roughly half the speed of dual channel). There are also motherboards (mostly for server systems) which support quad-channel, hex-channel, or even octo-channel memory, in which case the memory would again need to be banked appropriately to benefit from it.
Or at least, this is how it works on a stock x86 PC. None of this would apply to a System-on-Chip, in which the memory is in the same package as the CPU, so the details of how the CPU cores and the caching interact with the memory may be wildly different. Even in those single-board computers with separate off-chip memory, if the memory is incorporated directly into the SBC, then the memory access subsystem is likely to be specific to the SBC and have little in common with one for a PC.