II dio Mikroprocesor
2.12. Preklapanje instrukcija

2.12.2. Obrada uslovnog grananja

Obrada instrukcije uslovnog grananja u programu može da uzrokuje da već dohvaćene i možda dekodirane instrukcije ne treba da se izvrše. Slična situacija važi i u slučaju pojave prekida. Na primjer, na slici 20 instrukcija 3 zahtijeva uslovno grananje na instrukciju 12. Sve do obrade uslova izvršavanja instrukcije 3 ne zna se koja će se instrukcija naredna izvršiti. Zbog toga se naredne instrukcije u nizu dohvataju i smještaju u vod gdje se vrši njihova dalja obrada. Kada se završi korak izvršenja instrukcije uslovnog grananja, vod mora da se isprazni od nepotrebnog sadržaja i da se napune nove instrukcije. Gubitak je dvostruk: dohvatane su instrukcije koje ne treba da se izvrše i, sa druge strane, postoji određen vremenski interval u kome se ne završava faza izvršenja ni jedne instrukcije. Taj interval se naziva kazna zbog instrukcije skoka (eng. branch penalty).


Slika 20: Efekat izvršavanja instrukcije uslovnog grananja

Osim ova dva problema, pri izvršavanju instrukcija se mogu javiti i problemi oko korišćenja istih registara u različitim koracima izvršavanja instrukcije i njihove međusobne zavisnosti, kao i problemi istovremenog pristupa memoriji.

Na prvi pogled se većina ovih nedostataka može ukloniti ili ublažiti povećanjem broja koraka na koje se dijeli izvršavanje instrukcije. Međutim, značajno povećanje broja koraka nije ostvarivo iz sljedeća dva razloga:

1. Između svaka dva koraka mašinske instrukcije se određeni interval vremena koristi za prebacivanje podataka iz bafera u bafer i različite vrste priprema za izvršavanje narednog koraka. Zbir ovih vremena može u značajnoj mjeri da produži izvršavanje instrukcije.

2. Broj logičkih kola neophodan za kontrolu i razrešenje memorijskih i registarskih konflikata naglo raste sa povećanjem broja koraka u instrukciji. To dovodi do opasnosti da logička kola postanu kompleksnija (i troše više vremena) od koraka instrukcije koje treba da kontrolišu.

Zbog toga se pribjegava tehnikama za predviđanje koja će instrukcija sljedeća biti dohvaćena i izvršena. Neke od tih tehnika su:

    • predčitanje instrukcija
    • upotreba više vodova instrukcija
    • bafer za petlje
    • predviđanje adrese grananja
    • odloženo grananje

    Preklapanje instrukcija - Raspareno superskalarno izvršavanje    <    Index    >    Predčitanje instrukcija