ARCHITEKTURA SYSTEÓW KOPUTEROWYCH strktry procesorów ASK SP.2 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2/22 Procesor IPS R3 Potokowe wykonywanie instrkcji Konflikty w potok 2 Poprawa wydajności procesorów Procesory sperpotokowe 3 Procesory potokowe CISC Procesor CISC z transkodowaniem do RISC Potokowa realizacja CISC Literatra c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 2 / 35 Procesor IPS R3 Procesor IPS R3 Procesor IPS R3 strktra potokowa architektra typ RISC (985 r.) potok 5. stopniowy ( cykle zegara) IF, ID/OF, EX, E, IF, (po /2 cykl) ID/OF, EX, E (po cykl) architektra Harvard-Princeton rozdzielone górne warstwy hierarchii pamięci wspólna pamięć operacyjna R IF ID/OF RD EX E I D niektóre operacje realizowane przez połowę cykl pobranie instrkcji w pierwszej połowie cykl zapis wynik w pierwszej połowie cykl odczyt z rejestrów w drgiej połowie cykl do rejestrów potokowych przekazywane niezbędne informacje: sygnały sterjące nmery rejestrów dane c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 3 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 / 35
Procesor IPS R3 schemat strktralny Procesor IPS R3 przykład: potokowa interpretacja instrkcji LW Potokowe wykonywanie instrkcji Instrction fetch EX/E E/ EX/E E/ reslt reslt ress Instrction Instrction fetch Instrction 6 2 etend reslt ress ress Instrction Instrction 6 2 etend reslt ress EX/E E/ c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 5 / 35 ress Instrction Procesor IPS R3 2 Procesory potokowe RISC etend przykład: potokowa interpretacja instrkcji LW Instrction 6 reslt reslt ress Potokowe wykonywanie instrkcji c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 6 / 35 Instrction decode Procesor IPS R3 przykład: potokowa interpretacja instrkcji LW Potokowe wykonywanie instrkcji reslt EX/E E/ 978/Patterson Figre 6.2 Instrction decode ress Instrction Instrction 6 2 etend reslt Eection ress EX/E E/ EX/E E/ reslt reslt ress Instrction Instrction 6 2 etend reslt ress ress Instrction Instrction 6 2 etend reslt ress c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 7 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 8 / 35
Procesor IPS R3 przykład: potokowa interpretacja instrkcji LW Potokowe wykonywanie instrkcji Instrction Procesor IPS R3 przykład: potokowa interpretacja instrkcji LW Instr 6 2 etend reslt Potokowe wykonywanie instrkcji ress emory back EX/E E/ EX/E E/ reslt reslt ress Instrction Instrction 6 2 etend reslt ress ress Instrction Instrction 6 2 etend reslt ress c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 9 / 35 back c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 / 35 EX/E Potokowe wykonywanie instrkcji E/ Potokowe wykonywanie instrkcji Procesor IPS R3 przykład: instrkcja SW na etapie EX ress Instrction Instrction 6 2 etend reslt reslt sw Eection ress 978/Patterson Procesor IPS R3 Figre 6.5 przykład: instrkcja SW na etapie E sw emory EX/E E/ EX/E E/ reslt reslt ress Instrction Instrction 2 reslt ress ress Instrction Instrction 2 reslt ress 978/Patterson Figre 6.5 6 etend 6 etend c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 / 35 sw c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 back 2 / 35
ress Instrction Procesor IPS R3 Procesory potokowe RISC przykład: instrkcja SW na etapie Instrction 6 2 etend Potokowe wykonywanie instrkcji reslt ress Procesor IPS R3 przekazywanie nmer rejestr docelowego w potok Potokowe wykonywanie instrkcji sw back EX/E E/ EX/E E/ reslt reslt ress Instrction Instrction 2 reslt ress ress Instrction Instrction 2 reslt ress 6 etend 6 etend c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 3 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 / 35 Potokowe wykonywanie instrkcji Potokowe wykonywanie instrkcji Procesor IPS R3 dwie kolejne instrkcje w programie Procesor IPS R3 pobranie pierwszej instrkcji LW $, 2($) Instrction fetch Program eection order (in instrctions) Time ( in clock cycles) CC CC 2 CC 3 CC CC 5 CC 6 EX/E E/ reslt $, $2($) sb $, $2, $3 Instrction fetch Instrction decode Instrction fetch Eection Instrction decode access Eection back access back ress Instrction Instrction 2 reslt ress 6 etend Clock c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 5 / 35 sb $, $2, $3 $, 2($) c Dr inż. Ignacy Instrction Pardyka fetch (Inf.UJK) Instrction decode ASK SP.2 Rok akad. 2/22 6 / 35
EX/E E/ Instrction Procesor IPS R3 Procesory potokowe RISC wprowadzenie do potok drgiej instrkcji Clock Ins 6 2 etend Potokowe wykonywanie instrkcji reslt ress Procesor IPS R3 kolejne etapy dwóch instrkcji w potok Potokowe wykonywanie instrkcji sb $, $2, $3 Instrction fetch $, 2($) Instrction decode sb $, $2, $3 Instrction decode $, 2($) Eection EX/E E/ EX/E E/ reslt reslt ress Instrction Instrction 2 sb $, $2, $3 Instrction decode 6 etend $, 2($) reslt Eection ress ress Instrction Instrction 6 2 etend reslt ress Clock 2 EX/E E/ Clock 3 reslt c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 7 / 35 ress Instrction Procesor IPS R3 kolejne etapy dwóch instrkcji w potok Clock 3 Instrction 6 2 etend Potokowe wykonywanie instrkcji reslt sb $, $2, $3 Eection ress $, 2($) emory c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 sb $, $2, $3 $, Rok2($) akad. 2/22 8 / 35 Eection emory Procesor IPS R3 ress Instrction kolejne etapy dwóch instrkcji w potok EX/E E/ Instrction 6 2 etend Potokowe wykonywanie instrkcji reslt reslt ress sb $, $2, $3 emory $, 2($) back EX/E E/ Clock EX/E E/ reslt reslt ress Instrction Instrction 6 2 etend reslt ress ress Instrction Instrction 6 2 etend reslt ress Clock 5 Clock c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 9 / 35 sb $, $2, $3 back c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 2 / 35
ress Instrction Procesor IPS R36 etap drgiej instrkcji Clock 5 Instrctio 2 Procesory potokowe RISC etend reslt ress Potokowe wykonywanie instrkcji Procesor IPS R3 sygnały sterjące Src sb $, $2, $3 back EX/E E/ EX/E E/ ress Instrction Clock 6 Instrction 6 2 etend reslt reslt ress ress Instrction Instrction 2 Instrction [5 ] Instrction [2 6] Instrction [5 ] Reg 6 etend Src 6 reslt control Op reslt Branch em ress em emtoreg RegDst c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 2 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 22 / 35 Procesor IPS R3 generowanie i przekazywanie sygnałów w potok Procesor IPS R3 wykorzystanie sygnałów sterjących Src Control EX/E E/ Instrction Control EX reslt EX ress Instrction Instrction Reg 2 Src reslt Branch ress em emtoreg Instrction [5 ] 6 etend 6 control em EX/E E/ Instrction [2 6] Instrction [5 ] RegDst Op c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 23 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 2 / 35
Konflikty w potok Konflikty w potok Procesor IPS R3 analiza wykonania dwóch instrkcji Procesor IPS R3 zależnienia instrkcji w potok dwie kolejne instrkcje sb $2,$,$3 and $2,$2,$5 drga instrkcja korzysta z argment źródłowego $2 rejestr $2 jest docelowym dla instrkcji pierwszej instrkcje zapisją wynik na etapie odczyt argmentów na etapie ID/OF gdy drga jest na etapie ID/OF, to pierwsza jest dopiero na etapie EX dane dla drgiej instrkcji są nieprawidłowe! to samo może dotyczyć kolejnych instrkcji w potok wystąpienie przerwania wprowadza opóźnienie i rezltat będzie poprawny, jednak program jest niedeterministyczny: hazard danych Time (in clock cycles) Vale of CC CC 2 CC 3 CC CC 5 CC 6 CC 7 CC 8 CC 9 $2: / 2 2 2 2 2 Program eection order (in instrctions) sb $2, $, $3 and $2, $2, $5 or $3, $6, $2 add $, $2, $2 sw $5, ($2) I Reg I Reg D Reg D Reg I Reg D Reg I Reg D Reg I Reg D Reg c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 25 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 26 / 35 Konflikty w potok Konflikty w potok Hazardy hazard R-A-W Sktki boczne instrkcji skok opóźnienie skok instrkcja odczytjąca rejestr występje w programie tż po instrkcji zapisjącej do tego rejestr read-after-write swanie hazard R-A-W wymagany odstęp 2 instrkcji (np. NOP, NOP) sprzętowe wykrywanie hazard i blokowanie realizacji instrkcji na etapie ID/OF (także zatrzymanie pracy etap IF) sktek: spadek wydajności efektywna eliminacja hazard za pomocą obejść (bypass) wynik operacji arytmetycznej dostępny na etapie EX wtedy drga instrkcja jest na etapie ID/OF implementacja dodatkowej szyny do przesłania nmer rejestr docelowego i rezltat operacji analogiczny bypass z etap E (ale nie dla instrkcji LW) sprawdzenie warnk skok i obliczenie adres docelowego skok dopiero na etapie EX (wymaga ) w tym czasie następna (domyślnie) instrkcja program jest na etapie ID/OF jeśli warnek spełniony to zostanie załadowane adresem docelowym na etapie pobrana domyślnie instrkcja, będąca jż na etapie ID/OF jest niepotrzebna strata czas pracy procesora redkcja opóźnienia skok kompilator mieszcza tż za instrkcją skok inne instrkcje, które miały być wykonane bezwarnkowo przed skokiem w ten slot opóźnienia może być wkładana instrkcja psta c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 27 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 28 / 35
Poprawa wydajności procesorów Procesor IPS R3 Potokowe wykonywanie instrkcji Konflikty w potok 2 Poprawa wydajności procesorów Procesory sperpotokowe 3 Procesory potokowe CISC Procesor CISC z transkodowaniem do RISC Potokowa realizacja CISC Poprawa wydajności procesorów jedna instrkcja w każdym cykl? niestety, nie! czynniki powodjące opóźnienie hazardy swane inaczej niż obejściami pobieranie operandów z pamięci skoki (bezwarnkowe, warnkowe, ze śladem) wydajność praktyczna.2 cykl na instrkcję metody poprawiania wydajności zwiększanie liczby stopni potok sperpotok skracanie czas dostęp do pamięci Literatra c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 29 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 3 / 35 Poprawa wydajności procesorów Procesory sperpotokowe Procesory sperpotokowe IPS 6-bitowy (989 r.) stopnie potok IF początek pobrania instrkcji IS zakończenie pobrania instrkcji RD dekodowanie instrkcji i odczyt rejestrów EX operacje w DF dostęp do danych (I etap) DS dostęp do danych (II etap) DTC dostęp do danych (III etap) zapis do rejestr wydajność.5 cykl na instrkcję niezbędna dża liczba obejść (bajpasów) Procesory potokowe CISC Procesor IPS R3 Potokowe wykonywanie instrkcji Konflikty w potok 2 Poprawa wydajności procesorów Procesory sperpotokowe 3 Procesory potokowe CISC Procesor CISC z transkodowaniem do RISC Potokowa realizacja CISC Literatra c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 3 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 / 35
Procesory potokowe CISC Procesor CISC z transkodowaniem do RISC Procesory potokowe CISC Potokowa realizacja CISC CISC z transkodowaniem do RISC Potok CISC CISC nie spełnia postlatów potokowości, ponieważ: brak stałej sekwencji czynności dla wszystkich instrkcji zmienna dłgość instrkcji złożone dekodowanie instrkcji instrkcje wymagają wielokrotnego dostęp do pamięci rozwiązanie problem: podział procesora CISC na dwie jednostki: jednostka pobierająca instrkcje i transkodjąca je na prymitywy RISC wykonawcza jednostka RISC zastosowanie np. w Intel 86 podejmowano próby bezpośredniej realizacji potok dla CISC etapy potok podobne do stosowanych w RISC, ale złożoność ich dżo większa realizacja etap może wymagać kilk cykli zegarowych poszczególne instrkcje w różnej liczbie cykli zegarowych wydajność 2 cykli na instrkcję (ale instrkcje są złożone) skomplikowana strktra procesora stosowano np. w Intel i86, otorola C68 (989) c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 33 / 35 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 3 / 35 Literatra Literatra A. S. Tanenbam, Strktralna organizacja systemów kompterowych, Helion, 26. J. Biernat, Architektra kompterów, OWPW, 25. D. Patterson, J. Hennessy, Compter organization and design, Elsevier 25. G. azr, Architektra systemów kompterowych, http://wazniak.mimw.ed.pl. R. Hyde, Profesjonalne programowanie, Helion, 25. R. Hyde, Asembler. Sztka programowania, Helion, 2. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.2 Rok akad. 2/22 35 / 35