Register renaming
Programs are composed of instructions which operate on values.  The instructions must name these values in order to distinguish them from one another.  A typical instruction might say, add X and Y and put the result in Z.  In this instruction, X, Y, and Z are the names of storage locations.