A processor core and method of executing instructions, both of which
utilizes schedules, are presented. Each of the schedules includes a
sequence of instructions, an address of a first of the instructions in
the schedule, an order vector of an original order of the instructions in
the schedule, a rename map of registers for each register in the
schedule, and a list of register names used in the schedule. The schedule
exploits instruction-level parallelism in executing out-of-order
instructions. The processor core includes a schedule cache that is
configured to store schedules, a shared cache configured to store both
I-side and D-side cache data, and an execution resource for requesting a
schedule to be executed from the schedule cache. The processor core
further includes a scheduler disposed between the schedule cache and the
cache. The scheduler creating the schedule using branch execution history
from a branch history table to create the instructions when the schedule
requested by the execution resource is not found in the schedule cache.
The processor core executes the instructions according to the schedule
being executed. The method includes requesting a schedule from a schedule
cache. The method further includes fetching the schedule, when the
schedule is found in the schedule cache; and creating the schedule, when
the schedule is not found in the schedule cache. The method also includes
renaming the registers in the schedule to avoid false dependencies in a
processor core, mapping registers to renamed registers in the schedule,
and stitching register values in and out of another schedule according to
the list of register names and the rename map of registers.