Register renaming
De techniek waarbij de weinige architecturale registers die de instructieset toont (bijvoorbeeld 16 in x86-64) worden afgebeeld op een veel grotere pool fysieke registers. Het elimineert "valse" dataafhankelijkheden en is een voorwaarde voor goede out-of-order-uitvoering.
Het probleem: programma's hergebruiken steeds dezelfde paar registers, wat valse afhankelijkheden (WAR en WAW) oplevert. Twee instructies die toevallig dezelfde registernaam beschrijven lijken van elkaar af te hangen terwijl dat logisch niet zo is, en zouden onnodig na elkaar moeten lopen. Renaming lost dat op: bij elke schrijfactie krijgt het register een nieuw fysiek register uit de pool (honderden achter de weinige architecturale). De valse afhankelijkheden verdwijnen en de instructies kunnen parallel of out of order lopen. Alleen de ware afhankelijkheden (RAW, read after write) blijven over.
Dit is de kern van waarom moderne kernen zoveel parallellisme weten te halen. Klassieke techniek: het algoritme van Tomasulo.