actually basic concept behind pipelining is to reduce the execution speed of the processors.
normally execution of instruction takes place one after the other , but in pipeling concept, when the execution goes to the 2 nd cycle of first instruction ,at the same time the execution of the 1st cylce of the second instruction takes place.. so that the execution speed is almost reduced to half .
Pipelining is good to increase the MHz speed of a design as the reg-to-reg paths are shorter.
However, the downside is that it takes more clocks to get the result (latency) and if it is a processor you take a bigger hit when you have to flush the pipeline (for example in a unpredicted branch).
So... it is not necessary a good thing... but in many cases it is...
Pipeline help to get more throughputs.But the data to process must not have releationship ,or the pipeline may not be able to execute.In cpu, not all instructions have same pipeline depth , it is difficult to relize the prediction circuit. In asic design , the approach is to gain process rate with area penalty .