Przetwarzanie potokowe pipelining



Podobne dokumenty
Przetwarzanie potokowe

Architektura potokowa RISC

Architektura Systemów Komputerowych

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

Architektura mikroprocesorów z rdzeniem ColdFire

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

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

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

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

Architektura typu Single-Cycle

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

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

Architektura systemów komputerowych. dr Artur Bartoszewski

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

Organizacja typowego mikroprocesora

Architektura Systemów Komputerowych

Struktura i działanie jednostki centralnej

Architektura systemów komputerowych. Przetwarzanie potokowe I

Adam Korzeniewski p Katedra Systemów Multimedialnych

Budowa i zasada działania komputera. dr Artur Bartoszewski

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

Programowalne układy logiczne

Architektura typu multi cycle

architektura komputerów w. 4 Realizacja sterowania

Architektura komputerów

Prosty procesor dla framgentu listy rozkazów MIPSa

Architektura Systemów Komputerowych

Algorytmy dla maszyny PRAM

Lista Rozkazów: Język komputera

Architektura komputerów

Budowa komputera Komputer computer computare

Architektura mikroprocesorów TEO 2009/2010

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

Przetwarzanie instrukcji w mikroprocesorach

Programowanie Niskopoziomowe

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Klasyczny cykl pracy procesora sekwencyjnego. współczesne architektury. c Dr inż.

Architektura systemów komputerowych

Projektowanie. Projektowanie mikroprocesorów

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Przetwarzanie potokowe (cd.) oraz zaawansowane organizacje procesorów

Budowa Mikrokomputera

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura komputerów

organizacja procesora 8086

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

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

Architektura komputerów

LEKCJA TEMAT: Współczesne procesory.

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

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]

Jednostka centralna. dr hab. inż. Krzysztof Patan, prof. PWSZ

Zrównoleglenie i przetwarzanie potokowe

Wydajność obliczeń a architektura procesorów

Metody optymalizacji soft-procesorów NIOS

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Mikroprocesory rodziny INTEL 80x86

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Architektury systemów komputerowych

Architektura komputera

Architektura systemów komputerowych. dr Artur Bartoszewski

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

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Mikroprocesor Operacje wejścia / wyjścia

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Architektura komputerów

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

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Magistrala systemowa (System Bus)

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

UKŁADY MIKROPROGRAMOWALNE

Architektura von Neumanna. Jak zbudowany jest współczesny komputer? Schemat architektury typowego PC-ta. Architektura PC wersja techniczna

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Architektura komputerów

Analiza ilościowa w przetwarzaniu równoległym

Architektura komputerów

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Adam Korzeniewski p Katedra Systemów Multimedialnych

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

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Stronicowanie w systemie pamięci wirtualnej

Budowa komputera. Lubię to! - podręcznik

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Projekt prostego procesora

Architektura komputerów

Materiały do wykładu. 4. Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Wykład 4. Środowisko programistyczne

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Architektura komputerów. Asembler procesorów rodziny x86

Transkrypt:

Przetwarzanie potokowe pipelining (część A)

Przypomnienie - implementacja jednocyklowa 4 Add Add PC Address memory ister # isters Address ister # ister # memory

Wstęp W implementacjach prezentowanych tydzień temu w jednym momencie wykonuje się tylko jednen rozkaz. Jego wykonanie przebiega w kilku fazach. W każdej fazie używana jest tylko część układów logicznych. Pomysł: w momencie gdy pierwszy rozkaz rozpoczyna druga fazę, drugi zaczyna pierwsza; gdy pierwszy zaczyna trzecia, drugi zaczyna druga, a trzeci pierwsza, itd. W efekcie w jednym momencie wykonuje się tyle rozkazów ile jest faz. Każdy wykonywany rozkaz znajduje się w innej fazie. Taka technikę nazywamy przetwarzaniem potokowym (ang. pipelining). W przetwarzaniu potokowym nie przyspieszamy wykonania pojedynczego rozkazu (wręcz przeciwnie!). Zysk dzięki urównolegleniu wykonywanie operacji.

MIPS - fazy wykonania rozkazu Wykonanie rozkazu podzielimy na 5 faz: Pobranie rozkazu z pamięci (IF, instruction ) - 200ps Dekodowanie rozkazu i odczyt rejestrów (ID, instruction decode) - 100 ps Wykonanie operacji typu R lub wyliczenie adresu (EX, execute) - 200 ps Operacja na pamięci (MEM, memory) - 200 ps Zapis do rejestru (WB, write back) - 100 ps

Porównanie Program execution Time order (in instructions) 200 400 600 800 1000 1200 1400 1600 1800 lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) 800 ps 800 ps 800 ps Program execution Time order (in instructions) 200 400 600 800 1000 1200 1400 lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) 200 ps 200 ps 200 ps 200 ps 200 ps 200 ps 200 ps

Projektowanie listy rozkazów Lista rozkazów MIPS została zaprojektowana z myśla o przetwarzaniu potokowym. Stała długość rozkazów ułatwia ich pobieranie. Mała liczba formatów rozkazów. Rejestry źródłowe w tych samych miejscach - rejestry można odczytywać równolegle z dekodowaniem rozkazu. Operacje na pamięci wykonuja tylko rozkazy lw, sw (i ich warianty).

Hazardy Hazardy strukturalne Dwa rozkazy chca w tej samej chwili skorzystać z tego samego zasobu (np., pamięć, rejestry) Hazardy danych. Rozkaz potrzebuje rejestru, który zapisuje poprzedni rozkaz. Np. add $s0, $t0, $t1 add $t2, $s0, $t3 Hazardy sterowania. W przypadku rozkazu skoku nie wiadomo, który rozkaz należy pobrać jako następny. Szczególnie trudne w przypadku skoków warunkowych.

Hazardy strukturalne W zasadzie problem nie występuje w przypadku MIPS. Pojawiłby się, gdybyśmy nie rozdzieli pamięci: gdy lw, sw próbuja odczytać dana z pamięci kolejny rozkaz nie może się pobrać. Rozdzielenie pamięci na pamięć rozkazów i danych pomaga zatem projektować przetwarzanie potokowe. W praktyce rozdziela się nie tyle pamięć główna co pamięć podręczna.

Hazardy danych Np. add $s0, $t0, $t1 add $t2, $s0, $t3 $s0 jest zapisywany dopiero w piatej fazie pierwszego rozkazu Drugi rozkaz potrzebuje go już dwa cykle wcześniej! Rozwiazanie kiepskie: opóźnić (jakoś) wykonanie drugiego rozkazu o dwa cykle (dodać dwa babelki ). Rozwiazanie programowe: reorganizacja kodu (np. przez kompilator) - trudne. Rozwiazanie sprzętowe: forwarding (bypassing) Program execution order Time (in instructions) add $s0, $t0, $t1 IF 200 400 600 800 1000 ID EX MEM WB sub $t2, $s0, $t3 IF ID EX MEM WB

Hazardy danych - cd. Forwarding nie eliminuje wszystkich hazardów danych. Program execution order Time (in instructions) lw $s0, 20($t1) IF 200 400 600 800 1000 1200 1400 ID EX MEM WB bubble bubble bubble bubble bubble sub $t2, $s0, $t3 IF ID EX MEM WB

Hazardy danych - reorganizacja kodu lw $t1, 0($t0) lw $t1, 0($t0) lw $t2, 4($t0) lw $t2, 4($t0) add $t3, $t1, $t2 lw $t4, 8($t0) sw $t3, 12($t0) add $t3, $t1, $t2 lw $t4, 8($t0) sw $t3, 12($t0) add $t5, $t1, $t4 add $t5, $t1, $t4 sw $t5, 16($t0) sw $t5, 16($t0) Z lewej strony 2 hazardy (rozkazy add) pozostałe eliminowane przez forwarding. Z prawej brak hazardów.

Hazardy sterowania Załóżmy, że potrafimy w drugiej fazie wykonywania beq porównać rejestry, wyliczyć adres i ustawić nowy PC Nawet wtedy musimy opóźnić potok: Program execution Time order (in instructions) 200 400 600 800 1000 1200 1400 add $4, $5, $6 beq $1, $2, 40 or $7, $8, $9 200 ps bubble bubble bubble bubble bubble 400 ps

Hazardy sterowania - przewidywanie skoków Jedno z rozwiazań: przewidywanie skoków Np. zakładamy, że skoki się nie wykonuja Program execution Time order (in instructions) 200 400 600 800 1000 1200 1400 add $4, $5, $6 beq $1, $2, 40 lw $3, 300($0) 200 ps 200 ps Program execution Time order (in instructions) 200 400 600 800 1000 1200 1400 add $4, $5, $6 beq $1, $2, 40 or $7, $8, $9 200 ps bubble bubble bubble bubble bubble 400 ps

Hazardy sterowania - przewidywanie skoków Można zakładać, że niektóre skoki się wykonuja (np. te skaczace wstecz), a inne nie. Przewidywanie może być też dynamiczne jeśli podczas poprzedniego przejścia przez rozkaz skok się wykonał, to teraz też zakładamy, że się wykona. Można prowadzić historię kilku ostatnich wykonań. Potrzebne oczywiście dodatkowe układy logiczne. Dobrze zorganizowane przewidywanie dynamiczne daje ponad 90% skuteczność! Inne rozwiazanie: skoki opóźnione (stosowane naprawdę w MIPS, ale niewidoczne dla programisty asemblerowego).

Przetwarzanie potokowe: podsumowanie Przetwarzanie potokowe (pipelining) poprawia wydajność dzięki urównolegleniu wykonywania rozkazów. Pojedynczy rozkaz nie wykonuje się szybciej niż w procesorze jednocyklowym (a wręcz przeciwnie, bo przetwarzanie potokowe wprowadza pewne opóźnienia) Źródła problemów: współdzielenie pewnych układów, dane, sterowanie. Projektujac listę rozkazów trzeba robić to pod katem przetwarzania potokowego.