Quoting for Wikipedia:
The control unit (CU) is a component of a computer's central processing unit (CPU) that directs the operation of the processor. A CU typically uses a binary decoder to convert coded instructions into timing and control signals that direct the operation of the other units (memory, arithmetic logic unit and input and output devices, etc.).
Lets take the diagram of the 8086 family CPU
Suppose a program is currently been executed without pipelining.
In the first clock cycle the instruction will be loaded from the main memory into the instruction register and the program counter will be increased by 1(fetch):
In the second cycle the instruction decoder will decode the value of the instruction register into some other value(decode):
- In the third cycle that converted value will be stored in the Control Unit.
- In the fourth cycle depending on the instruction some values will be loaded into the internal bus of the CPU .
- In the fifth cycle the values will be loaded into the input registers
- In the sixth cycle the ALU performs the operation based on the operands and the opcode(Execute)
- In the seventh cycle the value of the output register is loaded into the internal bus of the CPU(Write)
I get that if the instruction is in assembly language e.g loop then the CU is responsible for updating the counter of repetition until a condition is met however what kind of "timing signals" can the CU produce?