Does the databus size matter for determining the range of the memory addresses

addressingcomputer-architecturecpumemoryprocessor

If you have byte addressable memory, does it matter if you have a 32 bit or 64 bit databus for the range of the memory addresses for the words of the memory?

E.g.
: Assume a 32-bit word. If you have a processor connected to a byte addressable \$2^{32}\$ byte memory,

Would the address of the lowest word be 0 and the address of the highest word simply be \$2^{32}-4\$ (0xFFFFFFFC) regardless of whether your databus size is 32 bit or 64 bit?

What difference would it make when you assume a 64-bit word or a 16-bit word?

Best Answer

The data bus width has no correlation to the range of memory addresses. The address bus and the data bus are separate entities.

For example, if your data bus is 32 bits wide, and your address bus is 16 bits wide, you can have 2^16 memory addresses that are each 32 bits wide. 2^16x32 = 64k x 32bits.

In my example, the lowest memory address is $0000, and the highest memory address is $FFFF. In your example, the lowest would be $00000000 and the highest would be $FFFFFFFF. Each memory address points to a group of bits (32 bits in both of our examples). If you changed your data bus width to 64 bits, and kept your address bus the same width, your memory address span would stay the same. Each address would simply point to 64 bits instead.