Bafer za promenu redosleda

S Vikipedije, slobodne enciklopedije

Bafer za promenu redosleda (engl. re-order buffer (ROB)) se koristi u Tomasulo algoritmu za vanredno izvršavanje instrukcija. On dozvoljava instrukcijama da budu privržene u redu.

Obično postoje tri faze instrukcija: izdavanje, izvršavanje i pisanje rezultata. U Tomasulo algoritmu, postoji dodatna faza "privrženje". U ovoj fazi, rezultati instrukcija će biti sačuvani u registru ili memoriji. U fazi pisanja rezultata, rezultati se stave u bafer za promenu redosleda. Ceo sadržaj ovog bafera se onda može koristiti pri izvršavanju drugih instrukcija koje zavise od ove.

Postoje dodatna polja u svakom unosu u bafer:

  • Tip instrukcije (skok, postavljanje u memoriju, postavljanje u registar)
  • Destinacija (adresa memorije ili registarski broj)
  • Rezultat (vrednost koja ide u destinaciju ili indikacija (ne)uspešnog skoka)
  • Validnost (da li rezultat već postoji)

Dodatne prednosti ovog bafera su omogućavanje preciznih izuzetaka i jednostavne rollback kontrole ciljnih adresnih predviđanja (grananje ili skok). ROB radi tako što čuva instrukcije redom kojim ih je uvezao. ROB-u takođe može da se pristupi sa strane jer svaka rezervaciona stanica ima dodatni parametar koji pokazuje na instrukciju u ROB-u. Kada predviđanje skoka nije tačno, ili se desi nepopravivi izuzetak u instrukcijskom toku, ROB se prazni tako da ne sadrži instrukcije i rezervacione stanice su postavljene na početak.

Literatura[uredi | uredi izvor]