II dio Mikroprocesor
2.10. Registri

2.10.2. Specijalizovani registri

Ovi registri se koriste pri izvršavanju operacija, njihovoj kontroli, kao i za prikaz tekućeg stanja procesora i programa koji se izvršava.
• Većina ovih registara nije direktno dostupna korisničkim programima.
• Neke od njih koriste samo programi operativnog sistema, dok su drugi dostupni samo na nivou mikrokoda.

Neki od specijalnih registara i njihove funkcije su:

Instrukcioni registar, (IR) koji sadrži posljednju pročitanu instrukciju.

Registar memorijskih adresa, (RMA) koji sadrži adresu u memoriji iz koje treba prenijeti sadržaj u PRM ili u koju treba upisati sadržaj iz PRM.
Prihvatni registar memorije, (PRM). Sadrži riječ koja je posljednja pročitana iz memorije ili koju treba upisati u memoriju na adresu koja je sadržana u RMA.

Brojač instrukcija, (PC) koji sadrži adresu sljedeće instrukcije koju treba prenijeti u procesor.

Registar koji sadrži status programa koji se trenutno izvršava, PSW (eng. Program Status Word). Informacije koje sadrži ovaj registar a odnose se na program koji se trenutno izvršava uključuju:
Uslovne kodove (eng. Condition codes, CC) pri izvršavaju aritmetičkih i logičkih operacija. Ovi kodovi mogu da označavaju npr.

  • Da li je rezultat jednak, manji ili veći od nule
  • Pojavu prekoračenja pri izvršavanju aritmetičkih operacija
  • Da li su vrijednosti koje se porede jednake, ili je prva veća ili manja od druge, itd.

Postojanje prenosa pri aritmetičkim operacijama.
Prekoračenje pri aritmetičkim operacijama i vrstu podataka nad kojima je došlo do prekoračenja (cijeli brojevi, BCD brojevi).
Prekoračenje i potkoračenje pri izvođenju operacija nad realnim brojevima u ne-IEEE 754 zapisu.
Indikatore da li je dozvoljen prekid kao i tip prekida koji je dozvoljen.
Indikator da li je tekući program u supervizorskom ili korisničkom režimu rada.
Indikator da li je tekuća adresa realna ili je potrebno preračunavati adrese iz programa da bi se dobile realne adrese.
Indikator da li je CPU u stanju čekanja kada ne izvršava ni jednu instrukciju. Ovo stanje može da se promijeni jedino pojavom prekida.
Pored ovih, PSW uključuje i informacije koje su specifične za svaku pojedinačnu arhitekturu procesora. Tako npr. PSW može da sadrži i adresu naredne instrukcije (za program koji se trenutno izvršava), itd. PSW može fizički da se realizuje kao jedan ili kao skup više registara. Korisnički program može da pristupi PSW i provjeri trenutno stanje programa očitavanjem vrijednosti bitova koji sadrže vrijednosti indikatora. Korisnik ne može da postavi vrijednosti u PSW; vrijednosti nekih bitova mogu da budu postavljeni isključivo od strane programa koji rade u supervizorskom režimu rada.

Kontrolni registar pri izvršavanju operacija u pokretnom zarezu, FPC (eng. Floating Point Control). Ovaj registar sadrži informacije vezane za izračunavanja u pokretnom zarezu (tačnije IEEE 754 aritmetiku).

Kontrolne registre koji sadrže specifične informacije za svaku mašinu: tekuće stanje mašine, vektor prekida, postojanje/nepostojanje FPU (npr. na Pentiumu ili PowerPC procesoru), rad u posebnom režimu izvršavanja instrukcija (npr. protected/real mod kod Pentium procesora), itd.

Na nekim procesorima postoji specijalizovan registar koji se koristi kao pokazivač steka. Time se postiže smanjenje veličine instrukcija koje rade sa stekom jer u njima nema potrebe za eksplicitnim navođenjem ovog registra. Sa druge strane, postojanje takvih registara ograničava fleksibilnost programera.

Registri opšte namjene    <    Index    >    2.11. Instrukcioni ciklus