Memory is word adddressable
No. of words in physical memory = 4GB/4B = 1G
So no of bits required for Physical Address = 30 Bits
No. of bits required for block offset = 3 bits
No. of words in cache = 16KB/4B = 4KB
No. of blocks in cache = 4KB/8 = 512
No. of sets in cache = 512/4 = 128
So, no.of bits required to represent sets = 7 bits
Remaining bits are to represent TAG, so remaining bits are 30-(7+3) = 20 bits.