Potok
Potok w kontekście przetwarzania komputerowego to technika jednoczesnego wykonywania wielu instrukcji. Procesory komputerowe procesors mogą obsługiwać miliony instrukcji na sekundę. Każda instrukcja przechodzi przez kilka etapów, a każdy z nich jest obsługiwany przez inną część procesora. W każdym cyklu zegara instrukcja przechodzi z jednego etapu do następnego, a gdy jedna instrukcja przechodzi przez jeden etap, inne instrukcje jednocześnie przechodzą przez inne etapy.
Typowy potok CPU obejmuje pięć etapów — pobieranie instrukcji, dekodowanie instrukcji, wykonywanie, dostęp do pamięci i zapis choć może się to różnić w zależności od (architektury). Bez potokowania procesor mógłby obsługiwać tylko jedną instrukcję naraz. Ponieważ przejście każdej instrukcji przez wszystkie etapy zajmuje kilka cykli zegara, większość procesora pozostawałaby bezczynna, gdy pojedyncza instrukcja przechodziłaby z etapu do etapu. Przetwarzanie bez potokowania nie sprawia, że wykonanie pojedynczej instrukcji trwa dłużej, ale oznacza, że procesor może przetwarzać mniej instrukcji na sekundę.
Potokowanie instrukcji działa podobnie jak samochodowa linia montażowa, na której każde stanowisko ma jedno zadanie — montowanie siedzeń, instalowanie silnika, mocowanie kół itd. Jeśli w danym momencie po linii porusza się tylko jeden samochód, większość tych stanowisk pozostaje bezczynna, a fabryka nie będzie w stanie wyprodukować wielu samochodów w ciągu dnia. Jeśli jednak jednocześnie na linii znajduje się kilkadziesiąt pojazdów — wystarczająco dużo, aby każde stanowisko było zajęte — w ciągu jednego dnia zostanie ukończonych znacznie więcej samochodów, mimo że wykonanie każdego z nich nadal zajmuje tyle samo czasu.
Potoki graficzne GPU
Oprócz CPU potokowanie wykorzystują także komputerowe GPU do przetwarzania instrukcji. Potok graficzny GPU jest bardziej złożony i obejmuje kilka wyspecjalizowanych elementów przetwarzających, które wykonują matematyczne funkcje, aby renderować sceny i obiekty 3D na obrazy 2D wyświetlane na ekranie.
Architektury GPU znacznie różnią się między generacjami, ale większość potoków graficznych działa według podobnego schematu. Prosty potok graficzny zaczyna od przekształcenia współrzędnych 3D wierzchołków (rogów trójkątów, z których składa się każdy obiekt 3D) we współrzędne 2D na płaskiej powierzchni ekranu. Następnie przekształca te współrzędne w modele szkieletowe, po czym wypełnia geometrię między tymi wierzchołkami, aby utworzyć kształty. Następnie rasteryzacja przekształca te kształty w piksele, dodając mapy tekstur, oświetlenie i inne efekty modułów cieniujących. Ukryte piksele oraz inne informacje niewidoczne dla „kamery” są odrzucane, a następnie końcowy obraz jest zapisywany w buforze ramki i wyświetlany na ekranie.
Sprawdź swoją wiedzę