0

I have a question regarding (RAM) memory units:

for a cpu architecture x32, we will have 32bit size cpu registers, as well as data bus to ram of 32 wire and address bus of 32 wire. so the maximum memory address unit is 2^32 = 4,294,967,296

on other words we have 4,294,967,296 memory units, and for each memory unit, data bus (32) size should be writable so for each memory unit its size should be 32bit to handle the data bus

if i concluded right which i doubt, (Ram) total memory size should be = no of memory units * size each = 4,294,967,296 * 32 = 137,438,953,472‬ bit. which is not true

after research, i found out, rams unit memory are standardized to be 8 bit per each memory unit, so if this is the case, how come single memory unit (8bit) can store (32bit data bus) ?

Peter Cordes
  • 328,167
  • 45
  • 605
  • 847
  • Yes, `# memory units * size` is right, so the answer depends on whether your machine is word addressable or byte addressable (every 32-bit word is 4 addresses apart, and is composed of 4 separate bytes that a byte-load instruction could access separately). Also, being a 32-bit architecture doesn't imply data or address bus width, only (usually) the register width. e.g. P5 Pentium had a 64-bit memory bus, and real-world address buses usually aren't 32 wires. (e.g. DDR SDRAM row/column addresses multiplexed over about half that many wires.) It's only *logically* N bits wide. – Peter Cordes Feb 08 '21 at 00:49

1 Answers1

0

Indeed what is true, is that if you won't have 32 bit data, what this tells you is that the memory can hold 2^32 addresses for memory. However for each memory what you have is a byte, or eight bits, then you will have about 4 GiB = 4*2^30 Bytes = 2^32 bits.