Final answer:
The minimum size of the TLB tag is 15 bits.
Step-by-step explanation:
The CPU generates 32-bit virtual addresses with a page size of 4 KB. The TLB, which is the translation look-aside buffer, can hold 128 page table entries and is 4-way set associative. To determine the minimum size of the TLB tag, we need to find the number of bits needed to uniquely identify a single entry in the TLB.
The TLB is 4-way set associative, which means that each set can hold 4 entries. Since the TLB can hold 128 entries in total, there are 32 sets (128/4 = 32). The number of bits needed to uniquely identify a set within the TLB is 5 (log2(32) = 5).
Since the TLB is used to cache page table entries, the tag will need to identify both the page number and the set within the TLB. The remaining bits in the 32-bit virtual address after the page offset (which is log2(4 KB) = 12 bits) will be used for the tag.
Therefore, the minimum size of the TLB tag is 32 bits - 12 bits - 5 bits = 15 bits.