Architektura Systemów Komputerowych

Podobne dokumenty
4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/ / 27

Wprowadzenie do architektury komputerów. Budowa jednostki wykonawczej procesora Potokowa jednostka wykonawcza Przetwarzanie wielopotokowe

Architektura Systemów Komputerowych

Architektura potokowa RISC

Architektura typu Single-Cycle

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Budowa i zasada działania komputera. dr Artur Bartoszewski

Projektowanie. Projektowanie mikroprocesorów

Logiczny model komputera i działanie procesora. Część 1.

Organizacja typowego mikroprocesora

Przetwarzanie potokowe pipelining

Architektura komputerów

LEKCJA TEMAT: Zasada działania komputera.

Architektura systemów komputerowych

LEKCJA TEMAT: Współczesne procesory.

Programowanie Niskopoziomowe

Architektura komputerów

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Architektura Systemów Komputerowych

Programowalne układy logiczne

Architektura systemów komputerowych. dr Artur Bartoszewski

ARCHITEKTURA PROCESORA,

Budowa komputera Komputer computer computare

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura systemów komputerowych. Przetwarzanie potokowe I

Architektura komputerów

Architektura mikroprocesorów z rdzeniem ColdFire

Budowa Mikrokomputera

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

organizacja procesora 8086

Struktura i działanie jednostki centralnej

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Mikroprocesor Operacje wejścia / wyjścia

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Podstawy Techniki Mikroprocesorowej

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Metody optymalizacji soft-procesorów NIOS

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Magistrala systemowa (System Bus)

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

UKŁADY MIKROPROGRAMOWALNE

Lista Rozkazów: Język komputera

Architektura mikroprocesorów TEO 2009/2010

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Architektura komputerów

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Architektura komputerów

Procesory. Schemat budowy procesora

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Architektura typu multi cycle

Zrównoleglenie i przetwarzanie potokowe

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura komputerów

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Architektura komputerów

Architektura komputerów Wykład 2

Stronicowanie w systemie pamięci wirtualnej

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Architektura komputerów

Architektura komputera

Prosty procesor dla framgentu listy rozkazów MIPSa

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

SYSTEM MIKROPROCESOROWY

Architektura komputerów, Informatyka, sem.iii. Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej

Układy kombinacyjne. cz.2

Projekt prostego procesora

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Technika cyfrowa Układy arytmetyczne

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

Mikroprocesory rodziny INTEL 80x86

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

WPROWADZENIE Mikrosterownik mikrokontrolery

Projekt zespołowy. Część1: Projekt potokowej jednostki przetwarzającej przeznaczonej do realizacji algorytmu FFT. Rok akademicki 2008/2009

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.02 Rok akad. 2011/ / 35

Zarządzanie pamięcią w systemie operacyjnym

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

architektura komputerów w. 4 Realizacja sterowania

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Opracował: Jan Front

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

Technika mikroprocesorowa I Wykład 2

Architektura Systemów Komputerowych. Architektura potokowa Klasyfikacja architektur równoległych

Programowanie Niskopoziomowe

Programowanie współbieżne Wykład 2. Iwona Kochańska

Transkrypt:

Architektura Systemów Komputerowych Wykład 6: Budowa jednostki centralnej - CPU Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie

Plan Procesor jednocyklowy Procesor wielocyklowy z jednostką sterującą Procesor potokowy

Procesor jednocyklowy Procesory o prostym modelu programowym można zrealizować w postaci układu sekwencyjnego, który podczas każdej instrukcji zmienia stan tylko jeden raz na końcu instrukcji Całe wykonanie instrukcji odbywa się w układzie kombinacyjnym Założenia dla modelu procesora: Model programowy MIPS (RISC) z uproszczeniami Architektura Harvard rozdzielona pamięć programu (ROM układ kombinacyjny) i danych Instrukcje 32-bitowe zapisane w pamięci o długości słowa 32 bity Bajtowe adresowanie pamięci wymuszone wyrównywanie naturalne danych i instrukcji

Formaty instrukcji 6 5 5 5 5 6 R: op rs rt rd shamt func 6 5 5 16 I: op rs rt offset op główny kod operacyjny rs rejestr źródłowy rt rejestr źródłowy przeznaczenia rd rejestr przeznaczenia shamt wartość przesunięcia bitowego dla instrukcji przesunięć func rozszerzenie kodu operacyjnego offset stała 16-bitowa argument operacji, przemieszczenie pamięci lub przemieszczenie skoku

Procesor jednocyklowy pobranie instrukcji nextpc 4 PC_Inc incpc PC IM instrukcja

Procesor jednocyklowy pobranie instrukcji Licznik rozkazów PC zrealizowany jako rejestr typu D Zawartość licznika rozkazów podawana jest na: Wejście adresowe pamięci programu IM Wejście inkrementera PC-inc układu kombinacyjnego generującego wartość PC+4 (potencjalny adres następnej instrukcji) Na wyjściu pamięci instrukcji pojawia się binarny obraz instrukcji w postaci słowa 32-bitowego Poszczególne części tego słowa zawierają (w zależności od formatu): kod operacyjny instrukcji (jedno lub dwa pola) 0, 1, 2 lub trzy oznaczenia rejestrów (docelowy, źródłowe) 16-bitową stałą natychmiastową, używaną jako argument operacji lub przemieszczenie adresu 5-bitową wartość przesunięcia bitowego

Procesor jednocyklowy układ sterujący Na wejście układu sterującego podawana jest część słowa instrukcji Główny kod operacyjny pole OP (tylko dla instrukcji w formacie R) pole FUNC Układ sterujący generuje sygnały sterujące pozostałymi częściami procesora, w tym m.in.: Sygnały sterujące multiplekserami Sygnały zezwolenia na odczyt i zapis pamięci danych Sygnał zezwolenia na zapis rejestru docelowego Kod operacji dla jednostki arytmetyczno-logicznej Sygnał zezwolenia na skok warunkowy Sygnał sterujący pracą układu rozszerzania danej natychmiastowej

Procesor jednocyklowy przygotowanie argumentów

Procesor jednocyklowy przygotowanie argumentów Argumenty rejestrowe: Pierwszy argument rejestr o numerze Rs Drugi argument rejestr o numerze Rt (tylko w formacie R) Argument natychmiastowy (format I) uzyskiwany przez rozszerzenie 16-bitowego pola stałej do 32 bitów w układzie rozszerzenia Ext Instrukcje arytmetyczne, skoki warunkowe, odwołania do pamięci rozszerzenie bitem znaku Instrukcje logiczne rozszerzenie zerami Wybór drugiego argumentu realizowany przez multiplekser Mux_ALU, w zależności od instrukcji Jednostka arytmetyczna otrzymuje na wejściach dwa argumenty 32-bitowe Numer rejestru docelowego pochodzi z pola Rt lub Rd

Procesor jednocyklowy ALU, układ skoków, pamięć danych

Procesor jednocyklowy ALU, układ skoków Jednostka arytmetyczno-logiczna wykonuje na argumentach wejściowych operację określoną przez wykonywaną instrukcję Przy instrukcjach odwołań do pamięci jest to sumowanie zawartości rejestru bazowego z przemieszczeniem, którego wynikiem jest adres odwołania Przy instrukcjach skoków warunkowych ALU porównuje dwa argumenty sprawdzając określoną relację, a wartość logiczną relacji wystawia na wyjście warunku COND Sumator skoków generuje potencjalny adres docelowy skoku warunkowego Adres powstaje przez zsumowanie zinkrementowanej zawartości PC z przeskalowanym ( 4) przemieszczeniem zawartym w kodzie instrukcji Multiplekser skoków względnych MUX_BR wybiera adres następnej instrukcji

Procesor jednocyklowy wymiana danych z pamięcią Moduł wymiany danych z pamięcią jest bezczynny podczas instrukcji innych niż ładowanie i składowanie danych Wartość z wyjścia ALU jest używana jako adres odczytu lub zapisu pamięci W instrukcjach składowania do pamięci jest zapisywana zawartości rejestru Rt Zapis następuje na końcu wykonania instrukcji W instrukcjach ładowania następuje odczyt zawartości pamięci

Procesor jednocyklowy zakończenie wykonania instrukcji Multiplekser wyboru wyniku służy do wybrania wartości, która ma być zapisana do rejestru Albo wartość z wyjścia ALU Albo dana odczytana z pamięci Po przepropagowaniu sygnałów przez wszystkie układy procesora następuje zakończenie wykonywania instrukcji sterowane zboczem sygnału zegarowego Zbocze zegara powoduje: Zapis wartości z wyjścia multipleksera skoków do PC Zapis wyniku operacji (arytmetycznej, logicznej) lub danej odczytanej z pamięci (instrukcja ładowania) do rejestru docelowego Zapis danej odczytanej z rejestru Rt (instrukcje składowania) do pamięci danych Po zboczu zegara następuje rozpoczęcie wykonywania następne instrukcji

Procesor jednocyklowy - ograniczenia Przedstawiony model procesora nie wykonuje wszystkich instrukcji MIPS32, w tym: Skoków ze śladem Skoków w formacie J Operacji na pamięci danych z argumentami krótszymi niż 32 bity Model można uzupełnić, umożliwiając wykonanie wszystkich instrukcji MIPS

Procesor jednocyklowy studium implementacji Przedstawiony procesor można skonstruować ze standardowych układów logicznych Rejestry, bramki, multipleksery, ALU, pamięci ROM i RAM (łatwo dostępne) Zestaw rejestrów można zbudować np. z dwóch układów pamięci o identycznej zawartości Procesor taki można również zsyntetyzować w układzie FPGA (Field Programmable Gate Array) Realistyczne czasy propagacji układów: 5 ns dla prostych układów logicznych oraz t setup 20 ns dla pamięci i dla ALU Wydajność procesora Wynika z najdłuższej ścieżki przepływu sygnałów podczas wykonywania instrukcji 3 20 ns + 4 5 ns = 80 ns f max około 12 MHz

Procesor jednocyklowy - problemy Realizacja jednocyklowa nie była i nie jest stosowana w praktyce Wady dawne: Oddzielenie pamięci wysoki koszt, duże rozmiary, brak programowalności Nadmiarowość kosztownych bloków trzy sumatory (inkrementer PC, ALU, sumator skoków) Wady obecne: Niska wydajność Rozwiązanie inna budowa procesora Dawniej procesor wielocyklowy Obecnie architektury potokowe

Procesor wielocyklowy Architektura wielocyklowa minimalizuje liczbę bloków funkcjonalnych poprzez wielokrotne wykorzystanie bloków podczas każdej instrukcji Implikuje to konieczność rozbicia wykonania instrukcji na kilka faz cykli w każdej fazie każdy blok wykonuje jedną czynność liczba faz wynosi od dwóch do kilkunastu, w zależności od budowy procesora i złożoności danej instrukcji poszczególne instrukcje mają różne czasy wykonania Do sterowania wykonaniem służy skomplikowany układ sterujący, będący złożonym automatem synchronicznym Komplikacja dróg przepływu danych implikuje wzrost liczby multiplekserów

Procesor wielocyklowy c.d. Wspólna pamięć programu i danych architektura Princeton Programowalność dwu- lub trzykrotne użycie pamięci podczas wykonywania instrukcji Wielokrotne wykorzystanie sumatora do inkrementacji PC do wykonania operacji arytmetycznej do wyliczenia adresu docelowego skoku Wielofazowe wykonanie powoduje konieczność zapamiętania pobranej instrukcji służy do tego tzw. rejestr instrukcji (IR instruction register), umieszczony w jednostce sterującej w fazie pobrania rejestr ten jest ładowany obrazem instrukcji pobranym z pamięci

Procesor wielocyklowy studium implementacji Każda instrukcja wykonuje się w kilku cyklach zegara przyjmijmy średnią liczbę cykli równą 3 Czas cyklu zależy od najdłuższej ścieżki propagacji sygnałów przyjmując parametry analogiczne jak dla modelu procesora jednocyklowego: 20 ns + 3 x 5 ns = 35 ns f max około 30 MHz Średni czas wykonania instrukcji 3 x 35 ns = 105 ns realizacja wielocyklowa jest nieco wolniejsza od jednocyklowej niższe koszty rekompensują niższą wydajność

Procesor wielocyklowy - analiza Wykonanie każdej instrukcji wymaga wykonania sekwencji operacji niektóre operacje mogę być puste dla niektórych instrukcji Przyjmijmy sekwencję faz wykonania: pobranie instrukcji zdekodowanie instrukcji pobranie argumentów wykonanie operacji zapis wyniku Procesory wielocyklowe maję modele programowe CISC argumenty mogą pochodzić z rejestrów lub z pamięci danych wynik zapisywany do rejestru lub pamięci instrukcje mają różne długości pobieranie i dekodowanie ma charakter iteracyjny

Procesor wielocyklowy - budowa W praktyce pamięć jest umieszczona na zewnątrz procesora i jest ona połączona z procesorem tzw. szyną (magistralą, ang. bus) Do współpracy procesora z pamięcią służy jednostka interfejsu szyny, umieszczona wewnątrz Bloki procesora (przykład): Jednostka sterująca zestaw rejestrów jednostka arytmetyczno logiczna jednostka interfejsu szyny

Procesor wielocyklowy działanie W poszczególnych fazach wykonania instrukcji pracuje tylko część bloków wykonawczych procesora: pobranie instrukcji interfejs szyny dekodowanie instrukcji tylko jednostka sterująca odczyt argumentów rejestry lub interfejs szyny wykonanie operacji jednostka arytmetyczno-logiczna zapis wyniku rejestry lub interfejs szyny Przez większość czasu większość bloków procesora jest bezczynna

Procesor wielocyklowy - optymalizacja struktury Liczba faz potrzebnych do wykonania instrukcji zależy od możliwości przesyłania danych wewnątrz procesora Przy jednej ścieżce danych samo pobranie dwóch argumentów z rejestrów zajmuje dwie fazy, a wykonanie prostej instrukcji min. 6 faz Liczbę faz można zwiększyć poprzez zwiększenie liczby niezależnych ścieżek danych wewnątrz procesora Np. przez bezpośrednie połączenie rejestrów z jednostką arytmetyczną Przy trzech ścieżkach danych wykonanie instrukcji z argumentami w rejestrach zajmuje 3 fazy: pobrania, dekodowania i wykonania Większa liczba ścieżek oznacza możliwość szybkiego wykonania bardziej złożonych instrukcji z wieloma argumentami (np. ze złożonymi trybami adresowania)

Procesor wielocyklowy optymalizacja pobrania instrukcji W każdej instrukcji w fazie wykonania bloki wykonawcze są bezczynne W fazie wykonania, a w większości instrukcji również w fazie odczytu argumentów lub zapisu wyniku jest bezczynny interfejs szyny Dekodowanie instrukcji wymaga wcześniejszego jej pobrania Wykonanie instrukcji można przyspieszyć poprzez wcześniejsze pobieranie instrukcji podczas wykonania poprzedniej instrukcji

Pobranie z wyprzedzeniem - prefetch Realizacja pobierania z wyprzedzeniem dodatkowe elementy procesora: dodatkowy rejestr PC, zwany scanpc i umieszczony w jednostce interfejsu szyny rejestr instrukcji pobieranej na zapas (ang. prefetch register) w jednostce interfejsu szyny Działanie: w fazie, w której interfejs szyny byłby bezczynny (zwykle faza dekodowania), samoczynnie wykonuje on cykl pobrania instrukcji spod adresu zawartego w scanpc i zapisania jej do rejestru prefetch jednocześnie inkrementowany jest rejestr scanpc. jednostka sterująca może zwykle pominąć fazę pobrania, pobierając następną instrukcję z rejestru prefetch nie wymaga to oddzielnej fazy Efekt: pominięcie fazy pobrania instrukcji

Prefetch implementacja, problemy Mechanizm prefetch zrealizowano m.in. w mikroprocesorach MC68000 (rok 1979) przed rozpoczęciem wykonania instrukcji procesor pobiera następną instrukcję W procesorach CISC instrukcje mają różne długości mechanizm prefetch pobiera do rejestru tylko jedno słowo z pamięci przy dłuższych instrukcjach konieczna jest kontynuacja pobierania Po wykonaniu skoku scanpc różni się od nextpc, a w rejestrze prefetch znajduje się instrukcja położona za instrukcją skoku należy skopiować wartość nextpc do scan PC i unieważnić zawartość rejestru prefetch przy wykonywaniu następnej instrukcji po skoku nie można pominąć fazy pobrania jednostka sterująca musi czekać na pobranie instrukcji z pamięci

Kolejka instrukcji Instrukcje procesorów CISC mają różne długości Podczas wykonania instrukcji jednostka interfejsu szyny może być bezczynna przez kilka faz mogłaby ona pobrać kilka kolejnych słów, o ile byłoby gdzie je przechować Rozwiązanie zastąpienie pojedynczego rejestru prefetch buforem FIFO tzw. kolejką instrukcji (ang. instruction queue) jeśli w kolejce jest wolne miejsce. jednostka interfejsu szyny pobiera do niej kolejne słowo w każdym cyklu bezczynności i inkrementuje scanpc Po wykonaniu skoku należy unieważnić zawartość kolejki i skopiować nextpc do scanpc Kolejki instrukcji stosowano m.in. W procesorach MC68010, Intel8086, 80286, i386

Opóźnienie skoków w procesorach z kolejką instrukcji Niemożność pominięcia fazy pobrania po wykonaniu skoku oznacza, że instrukcja skoku wykonuje się dłużej, niż instrukcje niemodyfikujące PC Różnica pomiędzy czasem wykonania instrukcji skoku i czasem wykonania innych instrukcji nazywa się opóźnieniem skoku (ang. branch penalty) Statystycznie skoki stanowią od 7 do 14% wszystkich instrukcji wykonywanych przez procesor opóźnienie skoków jest poważnym problemem obniżającym wydajność procesora Należy dążyć do redukcji opóźnienia wynikającego z wykonywania skoków

Redukcja opóźnienia skoków w procesorach wielocyklowych Opóźnienie skoków wynika z konieczności przeładowywania kolejki instrukcji Opóźnienie można ograniczyć przez ograniczenie liczby skoków w programie odpowiednie techniki programowania użycie instrukcji iteracyjnych Wykrywanie krótkich pętli (M C68010) seria M68k nie ma instrukcji iteracyjnych krótkie pętle mieszczą się w trzech słowach 16-bitowych jedno słowo instrukcji zawartej w pętli dwa słowa instrukcji zamknięcia pętli po wykryciu w kolejce krótkiej pętli kolejka zmienia się w bufor cykliczny i wykonanie pętli następuje bez pobierania instrukcji z pamięci. Inne rozwiązania zostaną omówione później

Praca procesora jednocyklowego Podczas wykonywania pojedynczej instrukcji następuje propagacja sygnałów przez połączone układy kombinacyjne Po jednokrotnej zmianie stanu wyjścia każdego układu, stan wyjścia pozostaje stały do zakończenia wykonywania instrukcji Każdy układ aktywnie pracuje tylko przez krótki czas, przez pozostały czas utrzymuje ustaloną wartość na wyjściu Do utrzymywania ustalonych wartości można użyć rejestrów Procesor jednocyklowy można podzielić na fragmenty o podobnych czasach propagacji sygnałów, np.: PC i pamięć programu zestaw rejestrów i układ rozszerzania danej ALU i sumator skoków pamięć danych układ zapisu wyniku

Od procesora jednocyklowego do potoku W miejscach linii cięcia umieszczamy rejestry typu D Wykonanie instrukcji po zmianie PC, po czasie potrzebnym na propagację sygnałów przez pamięć programu, zapamiętujemy stan wszystkich sygnałów (zinkrementowaną wartość PC i wyjście pamięci programu) w rejestrze, poprzez podanie zbocza zegara po przepropagowaniu sygnałów przez każdy kolejny fragment procesora zapamiętujemy wszystkie sygnały wychodzące z tego bloku w rejestrze umieszczonym na końcu danego bloku po przepropagowaniu sygnałów z ostatniego bloku na wejścia PC i zestawu rejestrów podajemy zbocze zegara kończące wykonanie instrukcji Przepływ sygnałów pozostał bez zmian, dodano 4 rejestry Wykonanie instrukcji zajmuje 5 faz, czas wykonania instrukcji nieco wzrósł, potrzeba 5 przebiegów synchronizujących gdzie tu jest zysk?

Od procesora jednocyklowego do potoku c.d. Po zapamiętaniu stanu wyjść fragmentu procesora, fragment ten staje się bezczynny nie jest już potrzebny do wykonania danej instrukcji, a wynik jego pracy jest zapamiętany w rejestrze Zwolniony fragment można wykorzystać do wykonania następnej instrukcji Wystarczy w tym celu użyć jednego. wspólnego przebiegu zegarowego do sterowania wszystkich rejestrów Wykonanie pojedynczej instrukcji zajmuje 5 cykli zegarowych czas tych cykli jest znacznie krótszy niż w wariancie jednocyklowym W każdym cyklu procesor rozpoczyna wykonanie nowej instrukcji W każdym cyklu procesor kończy wykonanie kolejnej instrukcji Widziana na zewnątrz wydajność - jedna instrukcja na cykl

Struktura przykładowego potoku stopnie IF (instruction fetch) pobranie instrukcji RD (read) dekodowanie i odczyt argumentów z rejestrów ALU (arithmetic-logic unit) obliczenie wyniku w jednostce arytmetyczno-logicznej MEM (memory) wymiana danych z pamięcią WB (write back) zwrotny zapis wyniku do rejestrów

Wykonanie instrukcji w potoku Instrukcja Cykl T1 T2 T3 T4 T5 T6 T7 T8 T9 I1 IF RD ALU MEM WB I2 IF RD ALU MEM WB I3 IF RD ALU MEM WB I4 IF RD ALU MEM WB I5 IF RD ALU MEM WB I6 IF RD ALU MEM I7 IF RD ALU

Procesor potokowy Uzyskaną strukturę nazywamy procesorem potokowym lub potokiem Efektywna teoretyczna wydajność procesora potokowego wynosi jeden cykl na instrukcję Przyjmując wcześniejsze wartości parametrów czasowych: czas cyklu wynosi ok 30 ns czas wykonania pojedynczej instrukcji to150 ns częstotliwość wykonywania instrukcji ok. 33 MHz Niemal wszystkie procesory budowane od połowy lat 80- tych XX wieku bazują na potokowych jednostkach wykonawczych Zrównoleglenie wykonania instrukcji oprócz podwyższenia wydajności powoduje również pojawienie się problemów synchronizacyjnych, którymi zajmiemy się w następnym wykładzie

DZIĘKUJĘ ZA UWAGĘ!