Let’s head back to our slow laundry day.
There’s an easier way to accomplish all this laundry by overlapping our cycles. For example, one load of clothes would be in the washer while another load is placed in the dryer at the same time. If we wanted to maximize efficiency, we could fold clothes as they came out of the dryer and then put our next load in the washer so that the washer and dryer would finish their next load at the same time.
If we approached laundry this way, each load would still take 80 minutes, but the entire series would no longer take 320 minutes; instead, it would now take 200 minutes. If we started at noon, laundry would finish up by 3:20pm, saving us two hours of time.
Computers take this same concept we covered for optimizing laundry and apply it to the instructions they run in a process we call pipelining.
In a more general sense, the overall concept of a system trying to process as many instructions as possible at the same time is known as instruction parallelism. The specific strategy to accomplish that we are looking at here is pipelining.
Take a look at the image to the right. By overlapping tasks, we improve the time efficiency of completing the four loads of laundry. Compare this pipelined version of doing laundry to the earlier example. Note the improvement in overall throughput.