Rurociągi komputerowe
Potokowanie komputerowe zostało po raz pierwszy wprowadzone przez firmę Intel w chipie 486. Sposób działania rurociągu jest analogiczny do przemysłowej linii montażowej. W procesorze szereg jednostek obwodów o różnych funkcjach tworzy potok przetwarzania instrukcji; instrukcja x86 jest podzielona na pięć lub sześć kroków, które są następnie wykonywane sekwencyjnie przez te jednostki. Umożliwia to wykonanie instrukcji w pojedynczym cyklu zegara procesora, zwiększając w ten sposób prędkość przetwarzania procesora. W klasycznym procesorze Pentium każdy potok liczb całkowitych składa się z czterech etapów-pobierania instrukcji z wyprzedzeniem, dekodowania, wykonywania i-zapisu zwrotnego-, podczas gdy potok zmiennoprzecinkowy- składa się z ośmiu etapów.
Pipelining to kluczowa technologia szeroko stosowana w mikroprocesorach (CPU). Opisuje metodę wykonywania instrukcji w procesorze; aby zrozumieć potokowanie, należy najpierw zrozumieć instrukcje i proces ich wykonywania.
Instrukcje komputerowe
Instrukcja komputerowa to określony zestaw danych binarnych, który mówi procesorowi, co ma robić. Jeśli procesor porówna się do zakładu produkcyjnego, instrukcja jest podobna do zamówienia klienta; uruchamia serię działań w „fabryce” procesora, ostatecznie dając wynik obliczeniowy-gotowy produkt. Jak to właściwie działa? Po pierwsze, musi istnieć dział odbierający rozkazy-jednostce pobierania instrukcji procesora; po drugie, musi istnieć warsztat, który będzie realizował zamówienia-jednostki wykonawczej instrukcji procesora. W fabryce produkcja przedmiotu jest podzielona na wiele etapów; podobnie instrukcja jest konwertowana na serię odpowiednich mikro-operacji w procesorze. Wykonanie kolejno tych mikro-operacji oznacza wykonanie całej instrukcji.
Wykonanie instrukcji
W słabszych-procesorach wykonywanie instrukcji odbywa się szeregowo; mówiąc najprościej, jedna instrukcja zostaje zakończona, zanim rozpocznie się następna. To tak, jak wspomniana fabryka na początku swojego istnienia, składająca się jedynie z małego warsztatu i jednoosobowego właściciela pracującego samodzielnie: po otrzymaniu zamówienia byłby on w pełni zajęty realizacją pierwszego zamówienia i nie był w stanie przyjąć drugiego. Cykl otrzymywania i realizowania zamówień-lub pobierania i wykonywania instrukcji-jest zatem procesem seryjnym. Później szef odkrył, że przyjmowanie zamówień nie wymaga dużo czasu. Przy pomocy asystenta oboje mogli pracować niezależnie; dzięki temu szef mógł przyjąć nowe zamówienie, jednocześnie kończąc produkty z poprzedniego. Pod względem architektury procesora odpowiada to oddzieleniu jednostki-pobierania instrukcji od jednostki-wykonywania instrukcji. W rezultacie procesor może pobrać następną instrukcję równolegle, wykonując bieżącą. Stanowiło to jakościowy skok w technologii procesorów, przeniesienie operacji z przetwarzania szeregowego na równoległe i ustanowienie prototypu potoku instrukcji.
Gdy procesor wykona wyżej wymieniony etap, pozostałym wyzwaniem będzie zwiększenie możliwości przetwarzania równoległego. Czerpiąc inspirację z fabrycznych linii montażowych, projektanci procesorów podzielili wykonanie pojedynczej instrukcji na wiele odrębnych etapów-lub „mikro-instrukcji”-, znacznie zmniejszając w ten sposób złożoność instrukcji, upraszczając projektowanie logiki i zwiększając prędkość. W procesorach wykorzystujących technologię potokowania, gdy tylko jedna instrukcja zakończy swój pierwszy „etap”, następna instrukcja natychmiast wchodzi do potoku, aby rozpocząć wykonanie. Jest oczywiste, że to podejście polegające na potokowaniu wymaga wielu jednostek wykonawczych-, a funkcja jest zaimplementowana w x86 chipach.
