Przetwarzanie potokowe

Podobne dokumenty
Przetwarzanie potokowe pipelining

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

Prosty procesor dla framgentu listy rozkazów MIPSa

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

Architektura potokowa RISC

Architektura typu multi cycle

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

Architektura typu Single-Cycle

Architektura Systemów Komputerowych

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

Architektura systemów komputerowych. Porównanie architektury jednycyklowej i wielocyklowej Zmiany w ścieŝce danych Cykle

Lista Rozkazów: Język komputera

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

architektura komputerów w. 4 Realizacja sterowania

Organizacja typowego mikroprocesora

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

Adam Korzeniewski p Katedra Systemów Multimedialnych

Programowalne układy logiczne

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

Architektura Systemów Komputerowych

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura systemów komputerowych. Przetwarzanie potokowe I

Budowa i zasada działania komputera. dr Artur Bartoszewski

organizacja procesora 8086

Budowa komputera Komputer computer computare

Architektura Systemów Komputerowych

Struktura i działanie jednostki centralnej

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

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

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

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

Architektura mikroprocesorów z rdzeniem ColdFire

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

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

Programowanie Niskopoziomowe

Algorytmy dla maszyny PRAM

Przetwarzanie instrukcji w mikroprocesorach

Architektura komputerów

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

Architektura komputerów

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Architektura mikroprocesorów TEO 2009/2010

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

Architektura komputerów

LEKCJA TEMAT: Współczesne procesory.

dr inż. Jarosław Forenc

Wydajność obliczeń a architektura procesorów

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

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

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Architektura systemów komputerowych. dr Artur Bartoszewski

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

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

1. Operacje logiczne A B A OR B

Architektura systemów komputerowych

Architektura systemów komputerowych. Moduł kontrolera

Architektura komputerów

Mikroprocesor Operacje wejścia / wyjścia

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

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

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

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

Budowa Mikrokomputera

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

Magistrala systemowa (System Bus)

Projektowanie. Projektowanie mikroprocesorów

Podstawy Techniki Mikroprocesorowej

Architektura komputerów

Adam Korzeniewski p Katedra Systemów Multimedialnych

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Programowanie Mikrokontrolerów

Stronicowanie w systemie pamięci wirtualnej

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Technologie Informacyjne Wykład 3

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

Architektura systemów komputerowych. dr Artur Bartoszewski

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

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

1 Ogolnie o asemblerach. 2 Zarys architektury MIPS

UKŁADY MIKROPROGRAMOWALNE

Algorytm mnożenia sekwencyjnego (wariant 1)

Mikroprocesory rodziny INTEL 80x86

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

Architektury systemów komputerowych

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Kurs Zaawansowany S7. Spis treści. Dzień 1

Podstawy Informatyki Układ sterujący

Procedury. int mult (int mcand, int mlier){ int product = 0; while (mlier > 0) { product = product + mcand; mlier = mlier -1; } return product; }

Projekt prostego procesora

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]

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

ARCHITEKTURA PROCESORA,

Metody optymalizacji soft-procesorów NIOS

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

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Pracownia Komputerowa wykład VI

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

LEKCJA TEMAT: Zasada działania komputera.

Transkrypt:

p. 1/3 Przetwarzanie potokowe (pipelining)

p. 2/3 Przypomnienie - implementacja jednocyklowa 4 Add Add PC Address Instrction Instrction ister # isters Address ister # ister #

p. 3/3 Wstęp W implementacjach prezentowanych tydzień tem w jednym momencie wykonje się tylko jednen rozkaz. Jego wykonanie przebiega w kilk fazach. W każdej fazie żywana jest tylko część kładów logicznych. Pomysł: w momencie gdy pierwszy rozkaz rozpoczyna drga fazę, drgi zaczyna pierwsza; gdy pierwszy zaczyna trzecia, drgi zaczyna drga, a trzeci pierwsza, itd. W efekcie w jednym momencie wykonje się tyle rozkazów ile jest faz. Każdy wykonywany rozkaz znajdje się w innej fazie. Taka technikę nazywamy przetwarzaniem potokowym (ang. pipelining). W przetwarzani potokowym nie przyspieszamy wykonania pojedynczego rozkaz (wręcz przeciwnie!). Zysk dzięki równolegleni wykonywanie operacji.

p. 4/3 IPS - fazy wykonania rozkaz Wykonanie rozkaz podzielimy na 5 faz: Pobranie rozkaz z pamięci (IF, instrction fetch) - 2ps Dekodowanie rozkaz i odczyt rejestrów (ID, instrction decode) - 1 ps Wykonanie operacji typ R lb wyliczenie adres (EX, eecte) - 2 ps Operacja na pamięci (E, ) - 2 ps Zapis do rejestr (, write back) - 1 ps

p. 5/3 Porównanie Program eection Time order (in instrctions) 2 4 6 8 1 12 14 16 18 lw $1, 1($) lw $2, 2($) lw $3, 3($) Instrction fetch 8 ps access Instrction fetch 8 ps access Instrction fetch 8 ps Program eection Time order (in instrctions) 2 4 6 8 1 12 14 lw $1, 1($) lw $2, 2($) lw $3, 3($) Instrction fetch 2 ps Instrction fetch 2 ps Instrction fetch access access access 2 ps 2 ps 2 ps 2 ps 2 ps

p. 6/3 Projektowanie listy rozkazów Lista rozkazów IPS została zaprojektowana z myśla o przetwarzani potokowym. Stała dłgość rozkazów łatwia ich pobieranie. ała liczba formatów rozkazów. Rejestry źródłowe w tych samych miejscach - rejestry można odczytywać równolegle z dekodowaniem rozkaz. Operacje na pamięci wykonja tylko rozkazy lw, sw (i ich warianty).

p. 7/3 Hazardy Hazardy strktralne Dwa rozkazy chca w tej samej chwili skorzystać z tego samego zasob (np., pamięć, rejestry) W zasadzie problem nie występje w przypadk IPS. Pojawiłby się, gdybyśmy nie rozdzieli pamięci. Hazardy danych. Rozkaz potrzebje rejestr, który zapisje poprzedni rozkaz. Np. add $s, $t, $t1 add $t2, $s, $t3 Hazardy sterowania. W przypadk rozkaz skok nie wiadomo, który rozkaz należy pobrać jako następny. Szczególnie trdne w przypadk skoków warnkowych.

p. 8/3 Hazardy danych Np. add $s, $t, $t1 add $t2, $s, $t3 $s jest zapisywany dopiero w piatej fazie pierwszego rozkaz Drgi rozkaz potrzebje go jż dwa cykle wcześniej! Rozwiazanie kiepskie: opóźnić (jakoś) wykonanie drgiego rozkaz o dwa cykle (dodać dwa babelki ). Rozwiazanie programowe: reorganizacja kod (np. przez kompilator) - trdne. Rozwiazanie sprzętowe: forwarding (bypassing) Program eection order Time (in instrctions) add $s, $t, $t1 IF 2 4 6 8 1 ID EX E sb $t2, $s, $t3 IF ID EX E

p. 9/3 Hazardy danych - cd. Forwarding nie eliminje wszystkich hazardów danych. Program eection order Time (in instrctions) lw $s, 2($t1) IF 2 4 6 8 1 12 14 ID EX E bbble bbble bbble bbble bbble sb $t2, $s, $t3 IF ID EX E

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

p. 11/3 Hazardy sterowania Załóżmy, że potrafimy w drgiej fazie wykonywania beq porównać rejestry, wyliczyć adres i stawić nowy PC Nawet wtedy msimy opóźnić potok: Program eection Time order (in instrctions) 2 4 6 8 1 12 14 add $4, $5, $6 beq $1, $2, 4 or $7, $8, $9 Instrction fetch 2 ps Instrction fetch access Instrction fetch access bbble bbble bbble bbble bbble 4 ps access

p. 12/3 Hazardy sterowania - przewidywanie skoków Jedno z rozwiazań: przewidywanie skoków Np. zakładamy, że skoki się nie wykonja Program eection Time order (in instrctions) 2 4 6 8 1 12 14 add $4, $5, $6 beq $1, $2, 4 lw $3, 3($) Instrction fetch 2 ps Instrction fetch 2 ps Instrction fetch access access access Program eection Time order (in instrctions) 2 4 6 8 1 12 14 add $4, $5, $6 beq $1, $2, 4 or $7, $8, $9 Instrction fetch 2 ps Instrction fetch access Instrction fetch access bbble bbble bbble bbble bbble 4 ps access

p. 13/3 Hazardy sterowania - przewidywanie skoków ożna zakładać, że niektóre skoki się wykonja (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. ożna prowadzić historię kilk ostatnich wykonań. Potrzebne oczywiście dodatkowe kłady logiczne. Dobrze zorganizowane przewidywanie dynamiczne daje ponad 9% skteczność! Inne rozwiazanie: skoki opóźnione (stosowane naprawdę w IPS, ale niewidoczne dla programisty asemblerowego).

p. 14/3 odel procesora potokowego Rozważamy listę rozkazów taka jak tydzień tem, ale bez j. Nowość - rejestry rozdzielajace poszczególne fazy. Na poczatek nie przejmjemy się hazardami. IF/ID ID/EX EX/E E/ Add 4 Shift left 2 Add Add reslt 1 PC Address Instrction Instrction register 1 register 2 isters Write register Write data data 1 data 2 1 Zero reslt Address data 1 Write data 16 Sign 32 etend

p. 15/3 odel procesora potokowego poprawka Skad bierzemy nmer rejestr do zapisania (dla lw)? IF/ID ID/EX EX/E E/ Add 4 Shift left 2 Add Add reslt 1 PC Address Instrction Instrction register 1 register 2 isters Write register Write data data 1 data 2 1 Zero reslt Address data 1 Write data 16 Sign 32 etend

p. 16/3 odel procesora potokowego - sygnały sterjące PCSrc IF/ID ID/EX EX/E E/ Add 4 Shift left 2 Add Add reslt Branch 1 PC Address Instrction Instrction register 1 register 2 isters Write register Write data Write data 1 data 2 Src 1 Zero Add reslt Address emwrite data emto 1 Write data Instrction (15 ) 16 Sign 32 6 etend control em Instrction (2 16) Op Instrction (15 11) 1 Dst

p. 17/3 odel procesora potokowego sterowanie Sygnały sterjace podobne jak w rozwiazani jednocyklowym Brak specjalnych sygnałów dla dwóch pierwszych faz (niezależne od rozkaz) Instrction Control EX IF/ID ID/EX EX/E E/

p. 18/3 PCSrc ID/EX EX/E Control E/ IF/ID EX Add 1 PC 4 Address Instrction Instrction register 1 register 2 isters Write register Write data rite W data 1 data 2 Shift left 2 1 Add Add reslt Src Zero reslt Branch Address emwrite data emto 1 Write data Instrction [15 ] 16 Sign 32 6 etend control em Instrction [2 16] Instrction [15 11] 1 Dst Op

p. 19/3 Hazardy danych i forwarding Time (in clock cycles) Vale of CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 register $2: 1 1 1 1 1/ 2 2 2 2 2 Program eection order (in instrctions) sb $2, $1, $3 I D and $12, $2, $5 I D or $13, $6, $2 I D add $14, $2, $2 I D sw $15, 1($2) I D

p. 2/3 Forwarding Rejestry rozdzielajace fazy potok przechowja m.in. nmery rejestów źródłowych (rs, rt) oraz przeznaczenia (rd) bioracych dział w operacji. Cztery sytacje: EX/E.Rd = ID/EX.Rs EX/E.Rd = ID/EX.Rt E/.Rd = ID/EX.Rs E/.Rd = ID/EX.Rt

p. 21/3 ID/EX EX/E E/ isters a. No forwarding ID/EX EX/E E/ isters ForwardA ForwardB Rs Rt Rt Rd EX/E.isterRd Forwarding nit E/.isterRd b. With forwarding

p. 22/3 Sterowanie dla forwarding ID/EX EX/E Control E/ IF/ID EX PC Instrction Instrction isters IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd Rs Rt Rt Rd Forwarding nit EX/E.isterRd E/.isterRd

p. 23/3 Hazardy nieswalne lw $2, 2($1) add $4, $2, $5 Dana jest potrzebna na jeden cykl przed odczytem z pamięci simy stracić jeden cykl - dodajemy pojedynczy babelek Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 CC 1 Program eection order (in instrctions) lw $2, 2($1) I D bbble and becomes nop I D add $4, $2, $5 I D or $8, $2, $6 I D add $9, $4, $2 I D

p. 24/3 Hazard detection nit ID/EX.em PCWrite IF/DWrtite IF/ID Control ID/EX EX/E EX E/ PC Instrction Instrction isters IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd Rt Rd ID/EX.isterRt Rs Rt Forwarding nit

p. 25/3 Hazardy sterowania Przeswamy wyliczanie adres skok oraz sprawdzanie, czy skok się wykona do drgiej fazy. Zakładamy, że skok się nie wykona pobieramy do potok kolejny rozkaz. Jeśli skok się jednak wykonał msimy wstawić jeden babelek oraz wyczyścić rejestr IF/ID

and $12, $2, $5 beq $1, $3, 7 sb $1, $4, $8 before<1> before<2> IF.Flsh Hazard detection nit ID/EX 4 + 48 IF/ID 44 Control 28 + 72 Shift left 2 $1 EX $4 EX/E E/ PC 72 44 Instrction 7 isters = $3 $8 Sign etend 1 Forwarding nit Clock 3 lw $4, 5($7) IF.Flsh bbble (nop) beq $1, $3, 7 sb $1,... before<1> Hazard detection nit ID/EX 4 + 76 IF/ID 72 Control + Shift left 2 EX $1 EX/E E/ 76 PC 72 Instrction isters = $3 Sign etend 1 Forwarding nit p. 26/3

p. 27/3 Krok dalej: sperskalarność Nowoczesne procesory maja zazwyczaj po kilka równoległych potoków. Takie procesory nazywamy sperskalarnymi. aja wobec tego po kilka jednostek wykonawczych (np. kilka kopii ) Układy zarzadzaj ace przydziałem rozkazów do poszczególnych potoków oraz wykrywajace/swaj ace hazardy robia się bardzo skomplikowane.

p. 28/3 VLIW Inny pomysł zrzcić problem rozdzielania rozkazów do potoków na kompilator Very Large Instrction Word: dłga paczka rozkazów składajaca się z kilk prostych rozkazów Kompilator zapewnia, że rozkazy z jednej paczki moga być wykonane równolegle (czasem oczywiście nie da się wypełnić całej paczki i trzeba zostawić wolne pola). Przykładem sa procesory Itanim (architektra IA-64), chociaż intel klasyfikje je jako EPIC (Eplicitly Parallel Instrction Compters).

p. 29/3 Potoki w procesorach Intela potok pojawia się w model 486 Pentim jest jż sperskalarny: dwa 5-etapowe potoki (wczytywanie, dekodowanie, generowanie adres, wykonanie, zapisanie); za zapełnienie obydw potoków odpowiadał kompilator. Pentim II miało jż 12 etapów potok, Pentim III - 14, a Pentim IV - 24. dla odmiany 64-bitowy procesor Itanim ma tylko 1 etapów potok;

p. 3/3 Itanim 2 Dżo rejestrów. Potrafi wykonywać jednocześnie do 6 rozkazów Rozkazy 128-bitowe (3 sloty po 41 bitów + 5 bitów dodatkowych) Potoki 8-etapowe Jednostki wykonawcze: 6 jednostek całkowitoliczbowych, 1 przeswajaca 2 * 2 jednostki zmiennopozycyjne (dod/mnoż, inne) 6 jednostek wektorowych dla rozkazów mltimedialnych 3 jednostki skoków. Itanim 2 taktowany zegarem 1,5GH jest szybszy od procesorów sperskalarnych taktowanych dwkrotnie szybszym zegarem!