An associative cache has a block size of 16 words. The capacity of the cache is 32 Kbytes and main memory can store 4 Mbytes. The word (the addressable unit) size is 2 bytes.
I'm unsure how to find the tag and word number and was wondering if someone could describe how the main memory address is divided into the tag and word number and how to find the number of bits for each.
Also in the answer, I have for this question the tag and word together equaLS 21 bits. From my understating is should be 22 as 2^22 = 4Mbytes. So an explanation as to why it's 21, not 22 would be very helpful.