Articles

GeeksforGeeks

aby poprawić wydajność procesora, mamy dwie opcje:
1) ulepsz sprzęt, wprowadzając szybsze obwody.
2) ułóż sprzęt tak, aby można było wykonać więcej niż jedną operację w tym samym czasie.

ponieważ istnieje ograniczenie prędkości sprzętu, a koszt szybszych obwodów jest dość wysoki, musimy przyjąć drugą opcję.

: Pipelining to proces układania elementów sprzętowych procesora w taki sposób, aby zwiększyć jego ogólną wydajność. Jednoczesne wykonanie więcej niż jednej instrukcji odbywa się w procesorze pipelinowanym.

zobaczmy prawdziwy przykład, który działa na koncepcję operacji rurociągowej. Rozważ instalację do pakowania butelek z wodą. Niech będą 3 etapy, przez które powinna przejść butelka, włożenie butelki (I), napełnianie wody w butelce(F) i uszczelnienie butelki(s). Rozważmy te etapy odpowiednio jako etap 1, Etap 2 I Etap 3. Niech każdy etap zajmie 1 minutę, aby zakończyć jego działanie.
teraz, w operacji bez pipeliny, butelka jest najpierw wkładana do rośliny, po 1 minucie jest przenoszona do etapu 2, w którym napełniana jest woda. W pierwszym etapie nic się nie dzieje. Podobnie, gdy butelka przechodzi do etapu 3, zarówno Etap 1, jak i etap 2 są bezczynne. Ale w trybie rurociągowym, gdy butelka znajduje się w etapie 2, kolejna butelka może zostać załadowana na etapie 1. Podobnie, gdy butelka znajduje się w etapie 3, w etapie 1 I etapie 2 może być po jednej butelce. Tak więc, po każdej minucie, otrzymujemy nową butelkę na końcu etapu 3. W związku z tym średni czas produkcji 1 butelki wynosi:

bez pipeliningu = 9/3 minut = 3m

I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)

z pipeliningiem = 5/3 minut = 1,67 m

I F S | || I F S || | I F S (5 minutes)

w ten sposób praca pipeliningiem zwiększa wydajność systemu.

Budowa podstawowego rurociągu

  • w procesorze pipelinowanym, rurociąg ma dwa końce, koniec wejściowy i koniec wyjściowy. Między tymi końcami istnieje wiele stopni / segmentów, takich że wyjście jednego stopnia jest podłączone do wejścia następnego etapu, a każdy etap wykonuje określoną operację.
  • rejestry interfejsu są używane do utrzymywania wyjścia pośredniego między dwoma stopniami. Te rejestry interfejsu są również nazywane zatrzaskiem lub buforem.
  • wszystkie etapy w potoku wraz z rejestrami interfejsu są kontrolowane przez wspólny zegar.

wykonanie w procesorze pipelinowanym
Sekwencja wykonania instrukcji w procesorze pipelinowanym może być wizualizowana za pomocą diagramu czasoprzestrzennego. Na przykład rozważ procesor mający 4 etapy i niech będą 2 instrukcje do wykonania. Sekwencję wykonania możemy zwizualizować za pomocą następujących diagramów czasoprzestrzennych:

wykonanie bez nakładania się:

Stage / Cycle 1 2 3 4 5 6 7 8
S1 I1 I2
S2 I1 I2
S3 I1 I2
S4 I1 I2

Total time = 8 Cycle

Overlapped execution:

Stage / Cycle 1 2 3 4 5
S1 I1 I2
S2 I1 I2
S3 I1 I2
S4 I1 I2

Total time = 5 Cykl

etapy rurociągu

procesor RISC posiada 5-stopniowy rurociąg instrukcji do wykonania wszystkich instrukcji z zestawu instrukcji RISC. Poniżej przedstawiono 5 etapów RISC pipeline z ich odpowiednimi operacjami:

  • Etap 1 (pobieranie instrukcji)
    w tym etapie procesor odczytuje instrukcje z adresu w pamięci, którego wartość jest obecna w liczniku programu.
  • Etap 2 (dekodowanie instrukcji)
    na tym etapie dekodowana jest instrukcja i dostęp do pliku rejestru umożliwia pobranie wartości z rejestrów używanych w instrukcji.
  • Etap 3 (wykonanie instrukcji)
    na tym etapie wykonywane są operacje ALU.
  • Etap 4 (Dostęp do pamięci)
    na tym etapie operandy pamięci są odczytywane i zapisywane z / do pamięci, która jest obecna w instrukcji.
  • Etap 5 (Write Back)
    na tym etapie obliczona / pobrana wartość jest zapisywana z powrotem do rejestru obecnego w instrukcji.

wydajność procesora pipelinowanego
potraktuj rurociąg segmentu ” k „z czasem cyklu zegara jako „Tp”. Niech w pipelinowanym procesorze będzie ” n ” zadań do wykonania. Teraz, pierwsza instrukcja będzie miała cykle „k”, aby wyjść z rurociągu, ale pozostałe instrukcje „n – 1″ będą miały tylko cykl ” 1 „każdy, tj. łącznie cykli „n – 1”. Tak więc, czas potrzebny na wykonanie instrukcji 'n’ w procesorze z pipeliną:

 ETpipeline = k + n – 1 cycles = (k + n – 1) Tp

w tym samym przypadku, dla procesora bez pipeliny, czas wykonania instrukcji 'N’ będzie wynosił:

 ETnon-pipeline = n * k * Tp

tak więc, przyspieszenie (y) procesora z pipeliną nad procesorem bez pipeliny, gdy zadania 'n’ są wykonywany na tym samym procesorze jest:

 S = Performance of pipelined processor / Performance of Non-pipelined processor

ponieważ wydajność procesora jest odwrotnie proporcjonalna do czasu wykonania, mamy,

 S = ETnon-pipeline / ETpipeline => S = / S = / 

gdy liczba zadań 'n’ jest znacznie większa niż k, to znaczy, n >> k

 S = n * k / n S = k

gdzie 'k’ oznacza liczbę etapów w rurociągu.

również, wydajność = podane przyspieszenie / Max prędkość up = S / Smax
wiemy, że, Smax = K

Tak, wydajność = S / k

przepustowość = Liczba instrukcji / Całkowity czas wykonania instrukcji

tak, przepustowość = n / (k + n – 1) * TP

Uwaga: cykle na instrukcję (CPI) wartość idealnego procesora pipelinowanego wynosi 1

Proszę patrz Zestaw 2 Dla zależności i zagrożenia danych oraz zestaw 3 dla typów potoku i przeciągania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *