Skip to main content
28 events
when toggle format what by license comment
Aug 4, 2021 at 6:52 history protected gnat
Aug 4, 2021 at 6:47 answer added Daniel timeline score: 1
Aug 4, 2021 at 3:11 comment added Daniel jdow's concern may be that: Suppose there are 12 dimm slots on the mother board, i.e. slot1, ... slot12. If two DIMM RAM (16GB per DIMM) are mounted on arbitrary slot. Which DIMM will has address 0~16G, and which has address 16G~32G. Who determined this address assignment? And what's the process ?
Apr 30, 2021 at 6:00 history tweeted twitter.com/StackSoftEng/status/1388010225223995394
S Apr 24, 2021 at 7:54 history suggested CommunityBot CC BY-SA 4.0
Noise reduction.
Apr 24, 2021 at 1:05 review Suggested edits
S Apr 24, 2021 at 7:54
Apr 23, 2021 at 22:11 comment added slebetman ... the job of the memory controller is simply to tell the CPU which slots are occupied and how much RAM each slot contains. But this system leaves large gaps of uninstalled RAM in the address space. So the memory controller remaps the physical RAM address (what exists and what is uninstalled) into a linear virtual memory address. But virtual memory is not what you are asking about. You are asking about the physical address of RAM which is simply done by wiring. This is also why Intel CPUs don't support certain high capacity RAM designed for AMD - it is because they don't have the extra pin
Apr 23, 2021 at 22:10 comment added slebetman ... well, we can arrange the 5 bits as 11,111. So the bottom 3 bits will address the bytes 0 to 7 on all chips. This means we can use the top two bits (11,???) to select which chip we want to access. There is a circuit for this, it is called a demultiplexer. Given the top two bits the demultiplexer will convert 00 to 0001, 01 to 0010, 10 to 0100 and 11 to 1000. We wire up the output of the demultiplexer to the chip enable pin of the chips. Assigning address is done by wiring alone.
Apr 23, 2021 at 22:06 comment added slebetman @jdow Let's learn some basic binary number system. The numbers 0 to 7 is 000, 001, 010 ... 111. So 3 wires can carry information that describe numbers 1 to 8. Let's assume that we have RAM chips that contain 8 bytes. Let's design our motherboard to be able to contain 4 chips. That means we can have up to 32 bytes of RAM. Including the address 0 the top most address of RAM is 31. How do we represent 31 in binary? It is 11111. That's 5 wires. So how do we access these 4 RAM chips?...
Apr 23, 2021 at 22:02 comment added slebetman Actual physical DIMM slot. No the memory controller is not responsible for assigning the address. The assignment is done by wiring
Apr 23, 2021 at 19:21 comment added jdow @Slebetman When you say slot do you mean byte block or the actual DIMM slot? Also, would I be right in saying the memory controller is responsible for 'assigning' the address to RAM bytes? Thank you for your answer.
Apr 23, 2021 at 18:34 comment added slebetman There are two very good answers here already so I'm just leaving this as a comment to emphasize them. ALL RAM CHIPS EVER MANUFACTURED HAS ADDRESS THAT STARTS AT 0! It is the responsibility of the motherboard designer to map EACH SLOT of RAM to a memory range. It used to be done using a chip called a memory controller which translates the CPU memory address to physical RAM slot. Nowdays modern CPUs have memory controller built in so it is the responsibility of the CPU designer to give enough features (tools) to motherboard designers for this
Apr 23, 2021 at 18:09 comment added J... @Alexander +1 The breadboard computer series is also excellent.
Apr 23, 2021 at 17:54 history became hot network question
Apr 23, 2021 at 16:40 comment added JimmyJames I found this on one of these stacks a while ago. Might be helpful: "Operating Systems: Three Easy Pieces" specifically starting around section 13
Apr 23, 2021 at 15:59 comment added Alexander I would strongly suggest you check out Ben Eater's Build a 65c02-based computer from scratch series. It goes step by step, building a computer with memory, a display, and a keyboard input. You'll learn about address spaces, assembly, interrupts, clocks and more.
Apr 23, 2021 at 15:57 answer added Alexander timeline score: 11
Apr 23, 2021 at 15:53 answer added JacquesB timeline score: 4
Apr 23, 2021 at 15:37 comment added Erik Eidt Yes, at the lowest physical level, addresses are baked into the physical structure of the memory devices (the memory chips have some address bits baked in and the organization of the chips and the banks of chips adds more baked in address bits), so the only runtime/dynamic variable is the (byte) value held at an address.
Apr 23, 2021 at 15:17 answer added pjc50 timeline score: 24
Apr 23, 2021 at 14:53 comment added jdow @mouviciel Apologies for my naivety. My thoughts were that memory addresses were determined by software, not hardware. I am clearly wrong. I did have a read through the article you referenced, thank you for that.
Apr 23, 2021 at 14:45 comment added Doc Brown @mouviciel: fair enough.
Apr 23, 2021 at 14:41 comment added mouviciel @DocBrown: Therefore, it does not belong to Software engineering... more to Electrical Engineering.
Apr 23, 2021 at 14:37 comment added Doc Brown @mouviciel: worth noting this question is not about virtual memory addressing, only about physical memory adressing
Apr 23, 2021 at 10:20 review Close votes
Apr 30, 2021 at 3:04
Apr 23, 2021 at 10:08 comment added mouviciel Worth a read: Wikipedia's Virtual memory.
Apr 23, 2021 at 10:06 answer added Kilian Foth timeline score: 2
Apr 23, 2021 at 9:48 history asked jdow CC BY-SA 4.0