Pipelining is an implementation technique whereby multiple instructions are overlapped in execution. It is not visible to the programmer!
Each step is called a pipe stage or pipe segment.
Pipeline machine cycle: time required to move an instruction one step down the pipeline.
Throughput of an pipeline: number of instructions that can leave the pipeline each cycle.
Latency is the time needed for an instruction to pass through all pipeline stages.