Final answer:
A byte-addressable memory size of 256MB requires 28 bits for each address since 1MB equals 2^20 bytes and thus 256MB equals 2^28 bytes. Each bit in the address doubles the addressable units, leading to the calculation that 28 bits are required to address each of the bytes.
Step-by-step explanation:
If a system has a byte-addressable memory size of 256MB, you need to calculate how many bits are required to address each byte. Since the memory is byte-addressable, each address points to a single byte. To figure out the number of bits needed, we calculate the logarithm to base 2 of the number of bytes in memory, because each bit in the address doubles the number of addressable units.
First, convert the memory size from megabytes to bytes to find out how many bytes need to be addressed:
1 MB = 220 bytes (also known as a megabyte)
256 MB = 256 × 220 = 28 × 220 = 228 bytes
Next, calculate the number of bits required to address 228 different bytes:
This calculation is effectively the inverse of the exponentiation you just did:
2x = 228
x = 28
Therefore, 28 bits are required for each memory address.