MM size =$ 64K \times 16 = 2^{16} \times 16 $, i.e, MM has $2^{16} words$
therefore Physical address = PA = 16 bits
<------------16 bits------------>
no. of blocks in cache $= \frac{cache\_size}{block\_size} = \frac{2^{10}}{2^2} = 2^8 =256$
$\therefore$ 8 bits for block
as block size = 4 words = $2^2$ words
$\therefore$ 2 bits for offset
now tag = 16 - 8 - 2 = 6 bits
a) Tag = 6 bits, Index = block = 8 bits, offset = word = 2 bits
b) Memory unit is $64k \times 16 = 2^{16} \times 16$
therefore, 16 bits for Address(MAR) and 16 bits for Data(MBR)
so, each word of cache will contain = Data + tag + valid = 16+6+1 = 23 bits in a word
c) Cache can accommodate 256 blocks