Home

potokowanie

Potokowanie (z ang. pipelining) to technika organizacji przetwarzania danych polegająca na podziale zadania na serię kolejnych etapów, z których każdy wykonuje część pracy i przekazuje wynik następnemu etapowi. Dzięki temu wiele elementów danych może być przetwarzanych jednocześnie na różnych fazach, co zwiększa przepustowość układu bez proporcjonalnego powiększania czasu całkowitego potrzebnego na zakończenie pojedynczego zadania.

Mechanizm opiera się na podziale na etapy oraz buforach lub rejestrach między nimi. Każdy etap wykonuje pracę

Najczęściej potokowanie kojarzy się z architekturą komputerową, gdzie używa się instrukcyjnych potoków łączących fazy pobierania instrukcji,

Korzyści obejmują wyższą przepustowość i lepsze wykorzystanie zasobów przy zachowaniu niższej latencji jednego elementu. Ograniczenia wynikają

Zobacz także: potoki danych, przetwarzanie strumieniowe, architektura potokowa, równoległość.

w
stałym
czasie,
więc
po
wypełnieniu
potoku
teoretyczna
przepustowość
równa
jest
jednej
porcji
danych
na
cykl
(dla
odpowiednio
zbalansowanego
potoku).
W
praktyce
występują
opóźnienia
zwane
hazardami:
zależności
danych,
gałęzie
sterujące
i
ograniczenia
pamięci,
które
mogą
powodować
przestoje
i
obniżać
efektywność.
dekodowania
i
wykonania.
Znaczenie
ma
również
w
grafice
komputerowej,
obróbce
multimediów,
systemach
przetwarzania
strumieniowego
i
kompilatorach
optymalizujących
kod
pod
kątem
równoległego
przetwarzania.
z
konieczności
utrzymania
synchronizacji
między
etapami
i
z
ograniczeń
pamięciowych,
co
może
prowadzić
do
przeciążeń.