|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Multi-cycle datapath:
instruction execution |
|
|
|
|
|
|
|
Breaking instruction
execution into multiple clock cycles: |
|
|
|
|
Balance amount of work
done in each cycle (minimizes the cycle time) |
|
|
Each step contains at
most one: |
|
|
|
|
Register access |
|
|
|
|
Memory access |
|
|
|
|
|
|
|
ALU operation |
|
|
|
|
|
|
|
Any data values which
are needed in a later clock cycle are stored in a register |
|
|
|
Major state elements: PC,
register file, memory |
|
|
|
|
Temporary registers
written on every cycle: A data, B data, MDR,
ALUOut |
|
|
Temporary registers with
write control: IR |
|
|
|
|
Note that we can read
the current value of a destination register: |
|
|
|
|
New value doesn't get
written until next clock cycle |
|
|
|
Multiple operations can
occur in parallel during same clock cycle |
|
|
|
|
Read instruction and
increment PC |
|
|
|
Other operations occur in
series in separate clock cycles |
|
|
|
Reading or writing
standalone registers (PC, A data, B data, etc.) done in 1 cycle |
|
|
Register file access
requires additional cycle: more overhead for accessing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|