Pipelining

Pipelining, zřetězené zpracování či překrývání strojových instrukcí je způsob zvýšení výkonu procesoru současným prováděním různých částí několika strojových instrukcí. Základní myšlenkou je rozdělení zpracování jedné instrukce mezi různé části procesoru a tím i umožnění zpracovávat více instrukcí najednou. Fáze zpracování je rozdělena minimálně na 2 úseky:

  1. Načtení a dekódování instrukce
  2. Provedení instrukce a případné uložení výsledku

To vedlo k vytvoření procesoru složeného ze dvou spolupracujících subprocesorů (skalární architektura), kdy každá část realizuje danou fázi zpracování. Procesor má části – EU (Execution Unit) a BIU (Bus Interface Unit). Zřetězení se stále vylepšuje a u novějších procesorů se již můžeme setkat stále s více řetězci rozpracovaných informací (více pipelines). Z toho vyplývá, že je možno dokončit více než 1 instrukci za 1 hodinový cyklus (takt procesoru).

Zřetězené zpracování je technika používaná při návrhu počítačů pro zvýšení jejich instrukčního průchodu (počet instrukcí, které mohou být vykonány za jednotku času). Základní instrukční cyklus je rozdělen na série zvané vedení. Místo zpracovávání každé instrukce postupně (dokončení jedné instrukce před začátkem další), každá instrukce je rozdělena na sled kroků, takže různé kroky mohou být vykonány současně a paralelně (jiným okruhem).

Zřetězení zvyšuje instrukční průtok prováděním více operací současně, ale nesnižuje instrukční latenci (čas pro provedení instrukce od začátku do konce), jelikož stále musí provést všechny kroky. Vskutku, může to zvyšovat latenci kvůli přídavné režii z rozdělení výpočtů na oddělené kroky a hůře, zřetězení se může zdržet (případně potřebovat proplach), což dále zvyšuje latenci. Zřetězení tedy zvyšuje průtok za cenu latence a je často používáno v CPU, ale nikoliv v realtime systémech, které jsou na latenci těžce závislé.

Každá instrukce je rozdělena do posloupnosti závislých kroků. Prvním krokem je vždy načtení instrukce z paměti, posledním krokem je většinou zápis výsledku do registru nebo paměti. Zřetězení se snaží umožnit procesoru pracovat na tolika instrukcích zároveň, kolik je závislých kroků, stejně jako montážní linka sestavuje několik vozidel současně, místo aby čekala, až jedno projde celou linkou, než začne s dalším. Stejně jako cílem montážní linky je udržet každou součást produktivní v každém okamžiku, zřetězení chce udržet každou část procesoru zaneprázdněnou s nějakou instrukcí. Zřetězení v počítači umožňuje, že čas cyklu je čas nejpomalejšího kroku a ideálně je v každém cyklu dokončena jedna strojová instrukce.

Pojem pipeline je analogií faktu, že v potrubí je v každém úseku kapalina, stejně jako je každá část procesoru zatížena prací.


From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne