Nije bas tako. Zamisli da imas radnika koji treba da isece materijal i sastavi policu. Ako mu das gomilu posla, on ce morati da radi jedan po jedan i to tako da prvo isece materijal i onda sastavi policu.
Ako dodje posao koji zahteva samo secenje materijala ili samo sklapanje police taj radnik bi bio zauzet jednim od ta dva posla i nikako ne bi mogao da paralelizuje rad. Jos ako sklapanje police zahteva vise vremena od secenja materijala, eto problema.... posao se gomila.
Da bi optimizovao proces obrade, zaposlis jos jednog radnika koji bi samo sklapao police, a prvi radnik samo sece materijal, mogao bi da delimicno paralelizujes obradu, tako sto prvi radnik isece materijal i to preda drugom radniku na sklapanje i odmah preuzme drugi posao da sece. Na ovaj nacin bi prvi radnik zatrpavao poslom drugog radnika. Medjutim, dok drugi radnik sklapa policu nije u mogucnosti da primi novi materijal za novu policu, tako da prvio radnik mora da ceka. Jedno od resenja je da zaposlis treceg radnika koji radi isti posao kao i drugi radnik (sklapa police) i na taj nacin smanjis opterecenje tog dela proizvodnog procesa.
Mozes optimizovati i redosled poslova. Npr.. postoje poslovi gde se zahteva i secenje i sklapanje, a postoje poslove gde se trazi samo secenje materijala. Preuredjivanjem redosleda poslova, smanjujes opterecenje radnog procesa. Ukoliko je sklapanje polica komplikovan proces pokusas i njega da razbijes na vise jednostavnijih poslova i shodno vremenu potrebnom za obradu svakog od tih poslova zaposlis vise ili manje radnika.
Kada ovo prebacimo na CPU, secenje i sklapanje su 2 dela pipeline-a. U delu gde sam pominjao promenu redosleda poslova da bi smanjio opterecenje proizvodnog procesa sam u stvari mislio na kompajler koji ce da vrsi reordering instukcija tako da njihova obrada prodje sto brze kroz pipeline. Npr.. stizu poslovi koji zahtevaju i secenje i sklapanje a stizu i poslovi koji zahtevaju samo secenje i isporuku isecenog materijala bez sklapanja. Kompajler ce da preuredi redosled izvrsavanja poslova tako da prvo ide posao koji zahteva i secenje i sklapanje, a potom 2-3 posla koji zahtevaju samo secenje. Na ovaj nacin osiguravas da je pipeline uvek pun (svi rade punom parom) a poslovi se efikasno odradjuju.
Pipeline ti omogucava da maksimalno specijalizujes odredjene jedinice za neku vrstu posla. Lakse je naci eksperta za secenje materijala i eksperta zasklapanje, nego jednu osobu koja je ekspert za oba posla..