Assume a 2^20 byte memory:
a) What are the lowest and highest addresses if memory is byte-addressable?
b) What are the lowest and highest addresses if memory is word-addressable, assuming a 16-bit word?
c) What are the lowest and highest addresses if memory is word-addressable, assuming a 32-bit word?
a)
If memory is byte-addressable, the lowest address would be 0 and the highest address would be(220 - 1).
This is because each byte in memory is assigned a unique address, starting from 0 and incrementing up to (220 - 1).
b)
f memory is word-addressable with a 16-bit word, each word would occupy 2 bytes.
Therefore, the lowest address would be 0, and the highest address would be ((220) / 2) - 1.
The division by 2 is because each word occupies 2 bytes, so the total number of words in the memory is halved compared to byte-addressable memory.
c)
If memory is word-addressable with a 32-bit word, each word would occupy 4 bytes.
In this case, the lowest address would be 0, and the highest address would be ((220) / 4) - 1.
Again, the division by 4 is because each word occupies 4 bytes, so the total number of words in the memory is a quarter of the byte-addressable memory.