170 likes | 346 Views
STATIČKO PREDVIĐANJE GRANANJA. Učinak odgođenog grananja djelimično zavisi od toga može li se predvidjeti uslov kompajlerom se može smanjiti uticaj i upravlja č kih hazarda. Primjer. LW R1, 0(R2) SUB R1, R1, R2 BEQZ R1, L OR R4, R5, R6 . . . L: ADD R7, R8, R9.
E N D
STATIČKO PREDVIĐANJE GRANANJA • Učinak odgođenog grananja djelimično zavisi od toga može li se predvidjeti uslov • kompajlerom se može smanjiti uticaj i upravljačkih hazarda
Primjer LW R1, 0(R2) SUB R1, R1, R2 BEQZ R1, L ORR4, R5, R6 . . . L: ADD R7, R8, R9
SUB i BEQZ zavise od LW - potreban je zastoj iza LW • Ako se zna da se grananje u glavnom, dešava a da R7 nije potreban ako se ne desi, program se može ubrzati prebacivanjem ADD iza LW • Ako se zna da se grananje rijetko dešava, a R4 nije potrebno nakon grananja, ubrzanje se postiže prebacivanjem OR iza LW
2 načina statičkog predviđanja • ispitivanjem ponašanja programa, i • korištenjem informacija prikupljenih prilikom ranijih izvršavanja programa
PREKIDI/IZUZECI U PROTOČNOJ STRUKTURI • - zahtjev U/I uređaja, • - zahtjev korisničkog programa za servisom OS-a, • - izvršavanje instrukcija korak-po-korak (eng. tracing), • - programerski prekidi (eng. breakpoints), • - aritmetičke int. i FP anomalije (prekoračenja, podbačaji …), • - promašaj stranice virtuelne memorije, • - neporavnat pristup memoriji, • - pokušaj pristupa zaštićenom dijelu memorije • (eng. memory protection violation), • - nedefinisana instrukcija, • - HW - greške, • - greška napajanja …
Kategorije izuzetaka • Sinhroni/asinhroni • Traženi/prinudni • Prekidi koji se mogu/ne mogu maskirati • Unutar/između instrukcija • Nastavljivi/završni
Događaj - izuzetak IBM 360 VAX Motorola 680x0 Intel 80x86 Zahtjev U/I uređaja U/I prekid Prekid od uređaja Izuzetak (Nivo 0...7 autovektor) Vektorisani prekid Poziv OS-servisa od strane korisničkog programa Prekid zbog supervizor poziva Izuzetak (promjena mode-a supervizor trap) Izuzetak (nepostojeća instrukcija) - na Macintosh-u Prekid (INT instrukcija) Praćenje izvršenja instrukcija Ne postoji Izuzetak (trace greška) Izuzetak (trace) Prekid (korak-po-korak trap) Prekidna tačka Ne postoji Izuzetak (greška prekidne tačke) Izuzetak (ilegalna instrukcija ili prekidna tačka) Prekid (trap prekidne tačke) Prekoračenje ili podbačaj kod cjelobrojne aritmetike; FP trap Prekid izvođenja programa (izuzetak prekoračenja ili podbačaja) Izuzetak (cjelobrojno prekoračenje trap ili greška FP podbačaja) Izuzetak (greške FP-koprocesora) Prekid (trap prekoračenja ili izuzetak FPU-a) Greška stranice u memoriji (nije u glavnoj memoriji) Ne postoji (samo kod 370) Izuzetak (greška kod translacije) Izuzetak (greška MMU) Prekid (greška stranice) Neporavnati pristup memoriji Prekid izvođenja programa (specification exception) Ne postoji Izuzetak (greška adrese) Ne postoji Pristup zabranjenoj zoni u memoriji Prekid izvođenja programa (protection exception) Izuzetak (greška -narušavanje prava pristupa) Izuzetak (greška na sabirnici) Prekid (protection exception) Korištenje nedefinisane instrukcije Prekid izvođenja programa (operation exception) Izuzetak (opcode privileged/reserved fault) Izuzetak (ilegalna instrukcija ili prekidna tačka) Prekid (nekorektan opkod) Hardverske greške Machine-check prekid Izuzetak (machine-check abort) Izuzetak (greška na sabirnici) Ne postoji Greška napajanja Machine-check prekid Hitni prekid Ne postoji NMI
U trenutku prekida je potrebno: • 1. ubaciti TRAP instrukciju u IF PS-e, • 2. zabraniti sve upise pri izvršavanju zatečenih instrukcija u PS-i, • 3. pozvana rutina za obradu izuzetaka treba sačuvati PC instrukcije koja je izazvala prekid
Tip izuzetka Sinhrono ili asinhrono Traženi ili prinudni Mogu se maskirati ili ne Unutar ili između instrukcija Prolazni ili neprolazni Zahtjev U/I uređaja Asinhrono Prinudni Ne mogu Između Prolazni Poziv OS-a Sinhrono Traženi Ne mogu Između Prolazni Praćenje izvršenja instrukcija Sinhrono Traženi Mogu Između Prolazni Prekidna tačka Sinhrono Traženi Mogu Između Prolazni Prekoračenje kod cjelobrojne aritmetike Sinhrono Prinudni Mogu Unutar Prolazni Prekoračenje ili podbačaj kod FP aritmetike Sinhrono Prinudni Mogu Unutar Prolazni Greška stranice u memoriji Sinhrono Prinudni Ne mogu Unutar Prolazni Neporavnat pristup memoriji Sinhrono Prinudni Mogu Unutar Prolazni Narušavanje memorijske zaštite Sinhrono Prinudni Ne mogu Unutar Prolazni Nedefinisana instrukcija Sinhrono Prinudni Ne mogu Unutar Neprolazni Greška hardvera Asinhrono Prinudni Ne mogu Unutar Neprolazni Greška napajanja Asinhrono Prinudni Ne mogu Unutar Neprolazni
Segment PS-e Problemi i izuzeci koji se javljaju IF Greška stranice u memoriji pri dobavljanju instrukcije; neporavnat pristup memoriji; narušavanje zaštite memorije ID nedefinisan ili ilegalni opkod EX Aritmetički izuzetak MEM Greška stranice u memoriji pri dobavljanju podatka; neporavnat pristup memoriji; narušavanje zaštite memorije WB Ne postoje IZUZECI KOD OGLEDNE ARHITEKTURE Izuzeci se mogu pojaviti i mimo reda izvršavanja instrukcija!!!
Funkcionalna jedinica Kašnjenje Interval pokretanja Cjelobrojna ALU 0 1 Memorija podataka (cjelobrojnih i FP) 1 1 FP sabiranje 3 1 FP množenje (i cjelobrojno) 6 1 FP dijeljenje (i cjelobrojno dijeljenje i FP korjenovanje) 24 24 OGLEDNA ARHITEKTURA I VIŠECIKLUSNE OPERACIJE
Ogledna PS sa tri dodatne neprotočne FP funkcionalne jedinice
MULTD IF ID M1 M2 M3 M4 M5 M6 M7 MEM WB ADDD IF ID A1 A2 A3 A4 MEM WB LD IF ID EX MEM WB SD IF ID EX MEM WB Slijed skupa nezavisnih FP operacija u PS-i
Instrukcija Broj ciklusa sata 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 LD F4, 0(R2) IF ID EX MEM WB MULTD F0, F4, F6 IF ID stall M1 M2 M3 M4 M5 M6 M7 MEM WB ADDD F2, F0, F8 IF ID stall stall stall stall stall A1 A2 A3 A4 MEM SD F2, 0(R2) IF stall stall stall stall stall stall stall stall stall MEM Sekvenca FP koda pokazuje zastoje zbog RAW hazarda
Instrukcija Broj ciklusa sata 1 2 3 4 5 6 7 8 9 10 11 MULTD F0, F4, F6 IF ID M1 M2 M3 M4 M5 M6 M7 MEM WB ... IF ID EX MEM WB ... IF ID EX MEM WB ADDD F2, F4, F6 IF ID A1 A2 A3 A4 MEM WB ... IF ID EX MEM WB ... IF ID EX MEM WB LD F8, 0(R2) IF ID EX MEM WB Tri instrukcije hoće da izvrše upis nazad u FP registre istovremeno u ciklusu 11 !!!
Dibina PS i njen uticaj na postignuto ubrzanje(prevaziđeno - P IV)