Co to jest potok instrukcji?

Każda instrukcja procesora ma wiele etapów działania. Każdy z tych etapów zajmuje jeden cykl procesora. Te etapy to pobieranie instrukcji, dekodowanie instrukcji, wykonanie, dostęp do pamięci i zapis zwrotny. Odpowiednio dostają one instrukcję, którą należy wykonać, oddzielają operację od wartości, na których operowana jest wartość, wykonują proces, otwierają rejestr, w którym zostanie zapisany wynik, i zapisują wynik do otwartego rejestru.

Historyczne procesory w kolejności

We wczesnych komputerach procesor nie korzystał z potoku instrukcji. W tych procesorach każda operacja w jednym cyklu musiała nastąpić dla każdej instrukcji. Oznaczało to, że całkowite przetworzenie przeciętnej instrukcji zajęło pięć cykli zegara, zanim można było rozpocząć następną. Niektóre operacje mogą nie wymagać zapisywania wyników w rejestrze, co oznacza, że ​​etapy dostępu do pamięci i zapisu zwrotnego można pominąć.

Co to jest potok instrukcji?

W procesorze subskalarnym bez potoku każda część każdej instrukcji jest wykonywana w określonej kolejności.

Istnieje jednak pewien problem podczas uruchamiania kompletnej instrukcji w kolejności przed przejściem do następnej instrukcji. Problemem jest brak pamięci podręcznej. CPU przechowuje w rejestrze dane, które aktywnie przetwarza. Można to uzyskać z opóźnieniem jednego cyklu. Problem polega na tym, że rejestr jest mały, ponieważ jest wbudowany w rdzeń procesora. Procesor musi przejść do większej, ale wolniejszej pamięci podręcznej L1, jeśli dane nie zostały jeszcze załadowane. Jeśli go tam nie ma, musi ponownie przejść do większej i wolniejszej pamięci podręcznej L2. Następnym krokiem jest pamięć podręczna L3; ostatnią opcją jest systemowa pamięć RAM. Sprawdzenie każdej z tych opcji wymaga coraz większej liczby cykli procesora.

Teraz to dodatkowe opóźnienie może stanowić duży problem w systemie, który musi ukończyć każdą instrukcję w pełnej kolejności przed rozpoczęciem następnej instrukcji. To, co było 5 cyklami na procesor instrukcji, może nagle zawiesić się na jednej instrukcji na dziesiątki lub setki cykli zegara. Przez cały czas nic innego nie może się dziać na komputerze. Technicznie rzecz biorąc, można to nieco złagodzić, mając dwa niezależne rdzenie. Nic jednak nie stoi na przeszkodzie, aby oboje zrobili to samo, potencjalnie jednocześnie. Więc przejście na trasę wielordzeniową tego nie naprawia.

Klasyczny potok RISC

RISC oznacza komputer o zredukowanym zestawie instrukcji . Jest to styl projektowania procesora, który optymalizuje wydajność, ułatwiając dekodowanie każdej instrukcji. Jest to w porównaniu z CISC lub komputerem ze złożonym zestawem instrukcji, który projektuje bardziej złożone zestawy instrukcji, dzięki czemu mniej instrukcji jest potrzebnych do wykonania tych samych zadań.

Klasyczny projekt RISC obejmuje potok instrukcji. Zamiast uruchamiania dowolnego z pięciu etapów instrukcji w dowolnym cyklu, potok umożliwia wykonanie wszystkich pięciu etapów. Oczywiście nie można uruchomić wszystkich pięciu etapów jednej instrukcji w jednym cyklu. Ale możesz ustawić w kolejce pięć kolejnych instrukcji z przesunięciem o jeden etap każda. W ten sposób nowa instrukcja może być zakończona w każdym cyklu zegara. Oferuje potencjalny 5-krotny wzrost wydajności przy stosunkowo niskim wzroście złożoności rdzenia.

Co to jest potok instrukcji?

W skalarnym procesorze potokowym każdy etap wykonania instrukcji może być wykonany raz na cykl zegara. Pozwala to na maksymalną przepustowość jednej ukończonej instrukcji na cykl.

Procesory, które nie mają potoku, mogą być tylko podskalarne, ponieważ nie mogą wykonać jednej kompletnej instrukcji na cykl. Dzięki temu podstawowemu pięcioetapowemu potokowi możesz stworzyć skalarny procesor, który może wykonać instrukcję dla każdego procesu. Tworząc jeszcze bardziej rozległe potoki, możesz tworzyć superskalarne procesory, które mogą wykonywać więcej niż jedną instrukcję na cykl zegara. Oczywiście nadal istnieją potencjalne problemy.

Nadal sekwencyjne

Nic z tego nie rozwiązuje problemu czekania przez wiele cykli na odpowiedź, gdy trzeba zapytać o różne poziomy pamięci podręcznej i pamięci RAM. Wprowadza też nowy problem. Co jeśli jedna instrukcja opiera się na danych wyjściowych poprzedniej instrukcji? Te problemy są niezależnie rozwiązywane za pomocą zaawansowanego dyspozytora. Starannie planuje kolejność wykonywania, aby żadne instrukcje, które opierają się na danych wyjściowych innej, nie były zbyt blisko siebie. Obsługuje również braki w pamięci podręcznej, parkując instrukcję i zastępując ją w potoku innymi instrukcjami, które są gotowe do wykonania i nie wymagają wyniku, wznawiając instrukcję, gdy jest gotowa.

Rozwiązania te mogą działać na procesorach bez potoku, ale są wymagane w przypadku procesora superskalarnego, który wykonuje więcej niż jedną instrukcję na zegar. Predyktor rozgałęzień jest również bardzo przydatny, ponieważ może próbować przewidzieć wynik instrukcji z więcej niż jednym potencjalnym wynikiem i nadal zakładać, że jest poprawny, chyba że udowodniono inaczej.

Wniosek

Potok umożliwia wykorzystanie wszystkich odrębnych możliwości procesora w każdym cyklu. Robi to, uruchamiając jednocześnie różne etapy różnych instrukcji. To nawet nie zwiększa złożoności projektu procesora. Toruje również drogę do umożliwienia więcej niż jednej instrukcji wykonywania jednego etapu na cykl.



Jak sklonować dysk twardy

Jak sklonować dysk twardy

We współczesnej epoce cyfrowej, gdzie dane są cennym zasobem, klonowanie dysku twardego w systemie Windows może być dla wielu kluczowych procesów. Ten obszerny przewodnik

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Czy podczas uruchamiania komputera pojawia się komunikat o błędzie informujący, że nie udało się załadować sterownika WUDFRd na Twój komputer?

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Czy na pulpicie pojawia się błąd NVIDIA GeForce o kodzie 0x0003? Jeśli tak, przeczytaj blog, aby dowiedzieć się, jak szybko i łatwo naprawić ten błąd.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Czy musisz usunąć GPU z komputera? Dołącz do mnie, gdy wyjaśnię, jak usunąć procesor graficzny z komputera w tym przewodniku krok po kroku.

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Kupiłeś nowy dysk SSD NVMe M.2, ale nie wiesz, jak go zainstalować? Czytaj dalej, aby dowiedzieć się, jak zainstalować dysk SSD NVMe na laptopie lub komputerze stacjonarnym.

Co to jest bomba logiczna?

Co to jest bomba logiczna?

Bomba logiczna to incydent związany z bezpieczeństwem, w którym osoba atakująca przeprowadza opóźnioną akcję. Czytaj dalej, aby dowiedzieć się więcej.

Co to jest SoC?

Co to jest SoC?

Jeśli kiedykolwiek zajrzałeś do wnętrza wieży PC, możesz zobaczyć, że jest tam wiele różnych komponentów. Twój przeciętny laptop zawiera większość tych samych komponentów

Co to jest szyfrowanie asymetryczne?

Co to jest szyfrowanie asymetryczne?

Algorytmy szyfrowania asymetrycznego wykorzystują dwa różne klucze. Jeden klucz służy do szyfrowania, a drugi do deszyfrowania.

Steam Deck: Jak sformatować kartę SD

Steam Deck: Jak sformatować kartę SD

Steam Deck jest dostępny w trzech opcjach przechowywania: 64 GB eMMC, 256 GB NVMe SSD i 512 GB NVMe SSD. W zależności od biblioteki gier i rozmiaru gier