This does not mean that you are loading the same record in two places in the table - this means that a particular record can be loaded in any of two places in the table. An alternative where you can only map a record in one place in the table is a direct-linked TLB.
The main disadvantage of direct mapping direct TLB arises if you copy from one part of the memory to another and (according to any direct matching scheme used by the processor), translations for both must be mapped to the same place in the TLB. In this case, you end up reloading the TLB entry each time, so the TLB does not work much or not at all. Having the bidirectional association of TLBs, you can guarantee that any two entries can be in TLBs at the same time, therefore (for example) moving a block from point A to point B cannot ruin your day, but if you read from two areas, combine them and write results in the third (if all three used translations that map to the same set of TLB records).
The disadvantage of a multi-user TLB (like any other multi-channel cache) is that you cannot directly calculate which position a particular record can contain at a given time β you basically look at ways to find the desired record. For two, this is rarely a problem, but four methods tend to relate to a useful limit; 8-way associative associations (TLBs | caches) are not common, in part because searching at 8 possible locations for data is starting to become overkill.
Over time, the number of ways that it makes sense to use in the cache or tlb, as a rule, increases. The speed differential between memory and processors continues to grow. The larger the differential, the more cycles the processor can use and still produce the result during one clock cycle of memory (or a certain number of clock cycles of memory, even if it is more than one).
source share