The document discusses several difficulties in pipelining processors, including timing variations between stages, data hazards when instructions reference the same data, branching unpredictability, and interrupt effects. It also lists advantages like reduced cycle time and increased throughput, and disadvantages like design complexity. Later, it covers superscalar processors that can execute multiple instructions per cycle using multiple arithmetic logic units and resources, and very long instruction word processors where the compiler statically schedules parallel instructions. Finally, it discusses RISC, CISC, and EPIC commercial processor examples.