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.



Leave a Comment

Co to jest DHCP?

Co to jest DHCP?

Kiedy łączysz się z siecią, zazwyczaj masz adres IP przypisywany automatycznie przez router dzięki usłudze DHCP.

Jak uruchomić dwa komputery na jednym monitorze?

Jak uruchomić dwa komputery na jednym monitorze?

Przestrzeń może być na wagę złota. Dowiedz się, jak połączyć dwa komputery za pomocą jednego wyświetlacza. Poznaj najlepsze rozwiązania.

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.

Co to jest GDDR6X?

Co to jest GDDR6X?

GDDR6X to nowoczesny typ pamięci graficznej, który oferuje wyjątkową prędkość transferu i efektywność energetyczną.

Jak sprawdzić, czy Twój pracodawca monitoruje Twój komputer?

Jak sprawdzić, czy Twój pracodawca monitoruje Twój komputer?

Sprawdź, czy Twój pracodawca monitoruje Twój komputer, korzystając z Menedżera zadań lub Monitorowania aktywności. Dowiedz się więcej!

Jak znaleźć adres MAC drukarki

Jak znaleźć adres MAC drukarki

Dwa sposoby na znalezienie adresu MAC drukarki Canon Pixma MG5200 i dodatkowe praktyczne porady.

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?

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.