Answer from cs61c-aj (Kevin Li 15855812) for Question 2 The lower bits are set because this will be easier for spatial locality to be taken care of. A small change in the low bits means that the instructions are closer together. A few changes in high-order bits leads to huge distances in the memory. Load to the cache will be easier by using lower bits, because to search for adjacent word to be placed in the cache block a few increment or decrement of the bits is enough. Because block address are mapped using modulo, modulo has the same equivalent as the lower bits and not the high-order bits.