was saying. It's not so much a problem with modern computers because generally, a processor's address space is larger than the amount of RAM it will sensibly have. He was using a simple computer that could address only 1,048,576 bytes of memory. Given that, if you put a 1,000,000 byte chip into the computer, then you have wasted 48,576 bytes of the address space.
Furthermore, if you stack two 500,000 byte chips, then the memory bus must do division to figure out which chip it must access. If each chip is guaranteed to have an amount of memory that is an even power of two, then the memory bus can figure out which chip to access simply by bit shifting and comparing. This is very important for two reasons: it reduces the complexity of the memory bus, and it makes it faster. You don't have to implement division logic, and a bit shift is significantly faster than a division. The reason is that the fastest known division algorithm is a variation on long division that you learned in high school, so division of a 32-bit number by an n-bit number requires approximately (32 - n) bit shifts and subtractions/additions. |