In my notes, I found the following quotes from unknown sources:

> 
> a **byte-addressable** 32-bit computer can address 2^32 = 4,294,967,296 bytes of memory, or 4 gibibytes (GiB).
> 
> 
> a system with a 32-bit address bus can address 2^32 (4,294,967,296) memory locations. **If each memory address holds one byte**, the addressable memory space is 4 GB.
> 
> 
> 

what is it in a computer to determine how much memory a memory address holds, i.e., whether the computer is byte-addressable, word-addressable, or xxxx-addressable? Is it the RAM itself, CPU, or something else?

Note: My question has nothing to do with programming. I think it is different from programming perspective, where the amount of memory that the address of an object hold depends on its data type (int, float, ...).

Thanks!