The address bus width determines how many addresses can be accessed by the CPU. It also determines the maximum size of your RAM.
For example, if you have an address bus of width 3, you can access 2 ^ 3 = 8
addresses from the memory, which are:
Address0 -> 000
Address1 -> 001
Address2 -> 010
Address3 -> 011
Address4 -> 100
Address5 -> 101
Address6 -> 110
Address7 -> 111
So if you have an address bus width of 10, you can access 2 ^ 10 = 1024
addresses, which is equivalent to 1 KB of RAM memory.
If you have an address bus of width 32, you can access 2 ^ 32 = 4294967296
, addresses, which is around 4 GB of RAM memory.
That's the reason you can't install more than 4 GB memory on a 32-bit system - because the extra-memory cannot be addressed (the registers have a fixed 32-bit size).
Now to your question, if you have a RAM memory of size 16384
, which is around 16KB
, you need an address bus of width log2(16384) = 14
, in order to address this entire space.
You can check this reddit thread for more details.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…