# 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?

Asked by fariedthemanimal (8) December 12th, 2012

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

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.

gasman (11264)

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.

PhiNotPi (12644)
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.

dabbler (15827)

or