|
The control unit (often called a
control system or central controller) directs the various
components of a computer. It reads and interprets (decodes)
instructions in the program one by one. The control system
decodes each instruction and turns it into a series of control
signals that operate the other parts of the computer.[11]
Control systems in advanced computers may change the order of
some instructions so as to improve performance.
A key component common to all CPUs is the program counter, a
special memory cell (a register) that keeps track of which
location in memory the next instruction is to be read from.[12]
Diagram showing how a particular MIPS architecture instruction
would be decoded by the control system.
Diagram showing how a particular MIPS architecture instruction
would be decoded by the control system.
The control system's function is as follows — note that this is
a simplified description and some of these steps may be
performed concurrently or in a different order depending on the
type of CPU:
1. Read the code for the next instruction from the cell
indicated by the program counter.
2. Decode the numerical code for the instruction into a set of
commands or signals for each of the other systems.
3. Increment the program counter so it points to the next
instruction.
4. Read whatever data the instruction requires from cells in
memory (or perhaps from an input device). The location of this
required data is typically stored within the instruction code.
5. Provide the necessary data to an ALU or register.
6. If the instruction requires an ALU or specialized hardware to
complete, instruct the hardware to perform the requested
operation.
7. Write the result from the ALU back to a memory location or to
a register or perhaps an output device.
8. Jump back to step (1).
Since the program counter is (conceptually) just another set of
memory cells, it can be changed by calculations done in the ALU.
Adding 100 to the program counter would cause the next
instruction to be read from a place 100 locations further down
the program. Instructions that modify the program counter are
often known as "jumps" and allow for loops (instructions that
are repeated by the computer) and often conditional instruction
execution (both examples of control flow).
It is noticeable that the sequence of operations that the
control unit goes through to process an instruction is in itself
like a short computer program - and indeed, in some more complex
CPU designs, there is another yet smaller computer called a
microsequencer that runs a microcode program that causes all of
these events to happen. |