The functions performed by the control unit vary greatly by the internal
architecture of the CPU, since the control unit really implements this
architecture. On a regular processor that executes x86 instructions natively the
control unit performs the tasks of fetching, decoding, managing execution and
then storing results. On a x86 processor with a
RISCC core, the control unit has significantly more work to do. It manages
the translation of x86 instructions to RISC micro-instructions, manages
scheduling the micro-instructions between the various execution units, and
juggles the output from these units to make sure they end up where they are
supposed to go. On one of these processors the control unit may be broken into
other units (such as a scheduling unit to handle scheduling and a retirement
unit to deal with results coming from the pipeline) due to the complexity of the
job it must perform.