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 zrobić, jeśli Powerbeats Pro nie ładują się w etui

Co zrobić, jeśli Powerbeats Pro nie ładują się w etui

Jeśli Twoje Powerbeats Pro się nie ładują, spróbuj użyć innego źródła zasilania i oczyść swoje słuchawki. Pozostaw etui otwarte podczas ładowania słuchawek.

Canon Pixma MG5220: Skanowanie bez atramentu

Canon Pixma MG5220: Skanowanie bez atramentu

Jak włączyć skanowanie w Canon Pixma MG5220, gdy brakuje atramentu.

5 powodów, dla których Twój laptop się przegrzewa

5 powodów, dla których Twój laptop się przegrzewa

Poznaj możliwe przyczyny przegrzewania się laptopa oraz wskazówki, jak temu zapobiegać i utrzymać urządzenie w chłodzie.

Jak naprawić błąd GeForce Now kod 0xC272008F

Jak naprawić błąd GeForce Now kod 0xC272008F

Przygotowujesz się na wieczór gier, a będzie to duży wieczór – właśnie odebrałeś „Star Wars Outlaws” w serwisie GeForce Now. Odkryj jedyny znany sposób na naprawę błędu GeForce Now kod 0xC272008F, aby móc znowu grać w gry Ubisoftu.

Podstawy drukowania 3D: Wskazówki dotyczące utrzymania drukarki 3D

Podstawy drukowania 3D: Wskazówki dotyczące utrzymania drukarki 3D

Utrzymanie drukarek 3D jest bardzo ważne, aby uzyskać najlepsze wyniki. Oto kilka ważnych wskazówek, które warto wziąć pod uwagę.

Jak znaleźć adres IP drukarki

Jak znaleźć adres IP drukarki

Masz problem z ustaleniem, jaki adres IP ma twoja drukarka? Pokażemy ci, jak to zrobić.

Podstawy Druku 3D: Lista Kontrolna Utrzymania, Którą Musisz Przeczytać

Podstawy Druku 3D: Lista Kontrolna Utrzymania, Którą Musisz Przeczytać

Zachowanie sprzętu w dobrym stanie jest kluczowe. Oto kilka przydatnych wskazówek, aby utrzymać swoją drukarkę 3D w doskonałym stanie.

Jak używać AirPods z telefonami Samsung

Jak używać AirPods z telefonami Samsung

Jeśli zastanawiasz się nad zakupem AirPods do swojego telefonu Samsung, ten przewodnik na pewno pomoże. Najważniejsze pytanie to, czy oba urządzenia są ze sobą kompatybilne i odpowiedź brzmi: tak!

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.