Pipelining is a form of parallelism that allows the processor to use different hardwares for example pipeline a multiplier, in a different clock cycle, the other half will be perfomed in a different clock cycle and is busy for that clock cycle. That way, we can overlap. Processor with more than one computational unit. So both in one processor but P1 is the adder.P2 is the multiplier. Pipelining plus parallelism gives you the best performance.

Pipelining from a hardware perspective

Chapter 4