AOR1/Avgust 2022

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu
Ovaj rok nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

1. zadatak

Postavka

[15p] Posmatra se procesor pipeline organizacije dat na slici 1. Svaka faza izvršavanja instrukcije traje jednu periodu signala takta uključujući i fazu 2 u kojoj se čita iz registarskog fajla (Registers) i fazu 5 u kojoj se upisuje u registarski fajl (Registers).

  1. [5p] Dati primer programskog segmenta kod koga je potrebno realizovati prosleđivanje u stepen MEM protočne obrade, a da dato prosleđivanje nije bilo moguće realizovati u EX stepenu a da se ne napravi zaustavljanje protočne obrade. Nacrtati kompletah[sic] hardver za realizaciju datog prosleđivanja.
  2. [5p] Dati primer programskog segmenta kod koga je potrebno zaustaviti protočnu obradu jer se samo prosleđivanjem ne može otkloniti hazard. Nacrtati internu strukturu dela procesora koji generiše signal za zaustavljanje protočne obrade u datom primeru.
  3. [5p] Dati procesor treba da podrži i instrukciju skoka na potprogram. Potprogram može da počne počev od bilo koje memorijske lokacije. Predložiti format instrukcije skoka na potprograma[sic]. Šta je potrebno modifikovati u procesoru sa slike 1 (nacrtati i objasniti) tako da se i ova instrukcija izvršava u 5 faza kao i ostale instrukcije.

2. zadatak

Postavka

[15p] Posmatra se sistem sa standardnom protočnom obradom sa slike 1 kod koga postoji hardver za prosleđivanje (forwarding), određivanje adrese skoka i uslova skoka se obavlja u ID stepenu i koji koristi statičku predikciju da skok nije prihvaćen (branch non-taken prediction). Izvršava se sledeći programski segment:

loop:   LW   R1, (R2)100      ;R1=MEM[R2+100]
        SUBI R1, R1, #1       ;R1=R1-1
        SW   R1, (R2)105      ;MEM[R2+105]=R1
        BEQZ R1, loop         ;if(R1 == 0) goto loop
        LW   R3, (R2)101      ;R3=MEM[R2+101]
        ADD  R3, R1, R3       ;R3=R1+R3
        SUBI R3, R3, #1       ;R3=R3-1
        BNEZ R3, next         ;if(R3 != 0) goto next
        XOR  R3, R3, R2       ;R3=R3^R2
        SW   R3, (R2)106      ;MEM[R2+106]=R3
        LW   R1, (R2)106      ;R1=MEM[R2+106]
next:   BNEZ R3, loop         ;if(R3 != 0) goto loop
        ADD  R3, R1, R1       ;R3=R1+R1
        OR   R1, R3, R1       ;R1=R3 or R1
        SUBI R3, R3, #1       ;R3=R3-1

Početna vrednost registra R2 je 0h a izgled dela memorije počev od adrese 100h je prikazan na slici 2. Iz memorije se čita i u nju upisuje 32-bitne reč po reč. Početna adresa programa je 1000h, a svaka instrukcija zauzima tačno jednu adresu, adresiranje je na nivou 32-bitne reči.

Slika 2. Izgled dela memorije
Adresa 100 101 102 103 104 105 106 107 108 109 10A 10B
Sadržaj 2 1 3 3 2 5 6 2 1 3 3 2
  1. Prikazati tabelarno šta se dešava u kojoj fazi za prvih 10 instrukcija datog programa koje se izvrše.
  2. Posmatra se modifikovan procesor pipeline organizacije kod kojeg se utvrđivanje da li se radi o instrukciji skoka i utvrđivanje adresa skoka obavlja u fazi 1 (IF). Uslov skoka se utvrđuje na isti način kao kod procesora sa slike 1. Prikazati tabelarno šta se dešava u kojoj fazi za prvih 10 instrukcija datog programa koje se izvrše u slučaju da u fazi 1 (IF) postoji jedinica sa baferom predviđanja sa 4 ulaza i dva bita za predikciju skoka po ulazu. Predikcija 11 označava jaku predikciju da će biti skoka, 10 slabu predikciju da će biti skoka, 00 označava jaku predikciju da neće biti skoka, a 01 slabu predikciju da neće biti skoka. Jedinica sa baferom predviđanja dozvoljava i čitanje i upis u istom taktu, a za određivanje ulaza koriste se odgovarajući najniži biti. Izgled jedinice sa baferom predviđanja pre izvršavanja datog programskog segmenta prikazana je na slici 3.
  3. Dati tabelarno prikaz jedinice sa baferom predviđanja nakon završetka 10 instrukcija datog programa i skicirati šemu za predviđanje koja je korišćena u tački b).
Slika 3. Izgled jedinice sa baferom predviđanja
ulaz Predikcija
0 01
1 10
2 01
3 10