Given address size = 32 bits
Let us calculate number of tag bits in each cache :
a) For direct mapped cache :
No of bits needed for block offset = log2 (No of words in 1 block) = log264 = 6
No of bits needed for indexing (finding block no in cache) = log2(Cache size / cache block size)
= log2(64 KB / 64 B)
= 10
Hence number of bits needed for tag = 32 - 6 - 10
= 16 bits
Hence latency needed = Tag comparator delay [ Mux delay is only for selecting a block given a set hence used in set associative cache only ] = k / 5
= 16 / 5 = 3.2 ns
b) For set associative cache :
Number of blocks = Cache size / Block size
= 64 KB / 64 B
= 210
Hence number of sets = Number of blocks / Associativity
= 210 / 22
= 28
Hence number of tag bits = 32 - 8 - 6
= 18 bits
Hence delay needed = MUX delay + Tag comparator delay
= 0.8 + (18 / 5)
= 4.4 ns
Hence difference in hit latencies of direct mapped and set associative cache = 4.4 - 3.2 ns
= 1.2 ns