Lukas' Notes

computer-architecture

Definition

Functional Unit

A functional unit is a hardware block in a processor that performs a specific class of operations.

Common functional units are the integer ALU, the floating-point unit (FPU), the load/store unit, the branch unit, and the multiplier/divider.

Types

Pipelined

Definition

Pipelined Functional Unit

A pipelined functional unit is a functional unit whose internal operation is divided into multiple independent stages. Each stage can process a different operation simultaneously, so the unit accepts a new input every clock cycle — even though a single operation takes several cycles to complete.

A pipelined unit has latency cycles but throughput of one operation per cycle. Only dependent operations pay the latency; independent operations benefit from full throughput.

Link to original

Serial

Definition

Serial Functional Unit

A serial functional unit (or unpipelined functional unit) is a functional unit that can process only one operation at a time. An operation occupies the entire unit for its full latency, and no new operation can enter until the current one completes.

A serial unit has throughput operations per cycle, where is the latency. A second operation issued before the first completes causes a structural hazard.

Link to original

Example

CVA6 multiplier

The CVA6 RISC-V core has a multiplier functional unit that contains both a pipelined and a serial sub-unit:

  • Multiply: 2 cycles, fully pipelined (accepts a new multiply every cycle after retiming).
  • Divide: serial, up to 64 cycles in the worst case — blocks the unit until done.

This is pipelined and serial design inside one functional unit.