Skip to main content
13 events
when toggle format what by license comment
Apr 28, 2021 at 14:28 audit First posts
Apr 28, 2021 at 14:28
Apr 25, 2021 at 9:06 history edited pjc50 CC BY-SA 4.0
deleted 6 characters in body
Apr 24, 2021 at 18:26 comment added Criticizing Israel not allowed @jdow Inside a RAM chip is columns and rows and also banks, but from a programming point of view it doesn't matter, you can just imagine it as 1 column and 1 bank and 65536 rows (if it's 16 bit for example).
Apr 24, 2021 at 10:59 comment added pjc50 @jdow Yes, as Rodney says there are rows/columns inside DRAM chips. Memory mapped IO is indeed using the word "mapped" in the same sense; the CPU makes a read/write request on the memory bus, but it gets routed to something that isn't memory, or is inside a peripheral.
Apr 24, 2021 at 8:02 comment added Rodney Actually DRAM chips do have rows, columns and banks (hence the need for the RAS, CAS and bank-select signals). The memory controller logic deals with this, it is abstracted from the CPU.
Apr 24, 2021 at 4:16 comment added Ken Shirriff The answer discusses a "multiplexer", but I think that should be "decoder/demultiplexer".
Apr 23, 2021 at 22:02 comment added Hellion @jdow There's no "column/Row" to be considered. Logically, each RAM chip consists of a series of bytes, numbered sequentially starting at 0. The full address represents "which chip is this byte stored on, and where in the chip is it stored?". For a 12-bit address, you have 16 chips with 256 bytes each; the top 4 bits can be the chip and the lower 8 bits are the address; so address 0x123 means "look on chip 0x1, in address 0x23." If I swap a different chip (of the same type and size) into my motherboard, the new chip still has its bytes numbered sequentially starting at 0.
Apr 23, 2021 at 21:18 comment added jdow Wait, so the address represents the column/row of where the data is stored in RAM, right? So if it was an 8 bit address the 4 bits would be for the column and 4 for the row? So for the address 0xFF0000 that would a 3 byte address. Which once decoded by the multiplexer, addresses the 4080 column/row and the 0 column/row?
Apr 23, 2021 at 20:07 comment added jdow Thank you for clearing that up. It helps to make a lot more sense of things. So if the CPU was requiring data, it would send a read request to the memory controller, right? If so is that what mapping is, or is it something else similar to memory mapped I/O?
Apr 23, 2021 at 19:57 comment added pjc50 The BIOS is in the memory map - but as a ROM (read only memory). So yes, executing the BIOS is done through the CPU's memory interface. The controller doesn't create the addresses, it maps them - ie it defines what happens when a particular address is accessed.
Apr 23, 2021 at 19:39 comment added jdow Thank you for the answer. I have to confess, I'm not good with the electronics side. I do understand when you say the chips don't have an absolute address. I believe the memory controller has a part to play in creating the addresses, but I'm not entirely sure how. Also, you spoke about a sort of scan occurring when the BIOS is loaded, but my understanding is that the memory has already been addressed before the BIOS loads, I could be very wrong though.
Apr 23, 2021 at 15:23 history edited pjc50 CC BY-SA 4.0
added 767 characters in body
Apr 23, 2021 at 15:17 history answered pjc50 CC BY-SA 4.0