Please explain the details of cache circuit addressing
Yes, that's exactly what the tag is for. With 2-way associativity, you have two comparators so that you can tell which of the two blocks (if any) contains the data you're looking for. Each tag and each comparator needs to be wide enough to handle all of the address bits left over after you remove the byte-index and cache-index bits. In your case that would be 32 &#150; 3 &#150; 2 = 27 bits.