A memory unit stores 2^16 bytes in 32-bit words. How many address bits are necessary in order to retrieve a single word from this memory unit?
The answer, as given, is 14.
2^16 bytes implies that there are 16 address bits, no? So why isn’t it 16?
Observing members:
0
Composing members:
0
5 Answers
Each word is 4 bytes, which occupies 4 consecutive addresses at 16 bits each. The first 14 bits of these addresses will be the same, differing only in the two least significant bits. You only need to specify the first 14 bits, because there are only 2^14 words occupying those 2^16 bytes.
There are 2^16 bytes, and each word contains 4 bytes (32 bytes), then there must be 2^16 / 4 = 2^14 words. This requires 14 bits of memory to form an address.
Response moderated (Spam)
Response moderated (Spam)
The key word is “necessary”, i.e. minimal number that would allow you access to all the memory, a word at a time. In which case 14 is the correct answer.
The system would have to fetch the whole word if only a byte of data is needed.
Answer this question 
This question is in the General Section. Responses must be helpful and on-topic.