I have some doubts all related to the same basic concept of how a computer works.
1) I always thought that the address bus width defines ultimately how many memory locations the CPU can access (point to), therefore the memory range (i.e. in a 32-bit wide address bus, the CPU can access up to 2^32 memory locations, which is 4GB of memory, given that each memory location is a memory block containing 1 byte).
Is this the right understanding?
2) At the same time, I had the impression that the data bus width is also called the word size, and both refer to the amount of data that the CPU can read from or write to memory at a given time.
Is this correct?
3) Lastly, when we say that a CPU is 32-bits, I always thought that this means that the internal CPU registers are 32-bits. Is this correct or do the address/data bus sizes have any direct effect on whether the CPU is 16, or 32 or 64 bits?