Various types of FUs classified as:
- single-cycle (latency of one) or
- multiple-cycle (latency more than one) units.
Single-cycle units produce a result one cycle after an instruction started execution. Usually they are also able to accept a new instruction each cycle (throughput of one).
Multi-cycle units perform more complex operations that cannot be implemented within a single cycle.
- can be pipelined to accept a new operation each cycle or each other cycle
- or they are non-pipelined.
Another class of units exists that perform the operations with variable cycle times.