A number of groups from main memory array is loaded into the GRP memory. GRP memory acts as storage of group numbers. When processor looks for an address to be read its divided into 3 fields. The fields are tag, group and byte. First field which gets decoded is group number, its then matched with content of GRP memory of cache. Once the group is matched with a particular GRP memory location then second level of decode happens. The second level of decode involves matching of tag field of address to match with content of matched GRP location. The GRP location can only contain one TAG. If the Tag of GRP memory matches the TAG field of address its a CACHE HIT else CACHE MISS.
With CACHE hit third level of decode happens. In this step the corresponding cache line is read out and a particular byte is selected from it to match the byte field of address. The output of final step is shown above at output of multiplexor. The value is then sent out as read response to processor.