Što je registar uputa?

U smislu računalnog hardvera, registar instrukcija je element u središnjoj procesnoj jedinici (CPU) računala ili drugog uređaja koji sadrži instrukciju za programiranje koja će se izvršiti na početku sljedećeg ciklusa takta kako to diktiraju drugi dijelovi CPU. Ostali elementi CPU-a, kao što je dekoder instrukcija, oslanjaju se na registar instrukcija za čuvanje ovih informacija kako bi se mogli dekodirati, razriješiti i na kraju izvršiti. Kod nekih tipova arhitekture mikroprocesora može postojati više od jednog registra instrukcija tako da se više instrukcija može obraditi u isto vrijeme, tvoreći montažni stil logike koji je poznat kao cjevovod. Općenito, nove se instrukcije daju registru instrukcija preko drugog dijela CPU-a poznatog kao programski brojač, koji služi vrlo sličnoj svrsi, ali može prijeći na sljedeću instrukciju dok se izvršavaju informacije koje registar instrukcija drži.

Registar je niz fizičkih prekidača na mikroprocesoru ili pločici koji se mogu uključiti ili isključiti, čineći svaki prekidač ekvivalentnim bitu. Kada je nekoliko prekidača, također zvanih zasuni, povezano, oni su u stanju pohraniti binarne podatke kao što su brojevi, koji se mogu pretvoriti u memorijske adrese ili kodove instrukcija. Unutar CPU-a registar instrukcija može sadržavati ili adresu u memoriji računala instrukcije koja se izvršava ili, radi učinkovitosti, može sadržavati samu instrukciju. Ova informacija se prosljeđuje u registar preko drugog registra poznatog kao programski brojač, koji u većini slučajeva skače naprijed na sljedeću instrukciju koja će se izvršiti nakon prolaska trenutne instrukcije.

Tipovi instrukcija koje obrađuju registri općenito su naredbe asemblerskog jezika niske razine koje se na kraju prevode u strojni kod ili bajt kod. One se izrazito razlikuju od instrukcija u programskim jezicima više razine, jer upute za sklapanje djeluju u vrlo malom, izravnom opsegu. Jedan primjer je red koda visoke razine koji zbraja dva broja i pohranjuje rezultate u varijablu, kojoj je za izražavanje potreban samo jedan red koda visoke razine. Kada se kod prevede, može se generirati desetak ili više instrukcija za dovršetak zadatka, pri čemu je svaka instrukcija nešto jednostavno, kao što je miješanje vrijednosti između računalne memorije s slučajnim pristupom (RAM) i pomoćnog registra.

Jednom kada registar instrukcija referencira instrukciju, ona se prosljeđuje dekoderu instrukcija tako da se instrukcija može pretvoriti u strojni kod. Reference na memorijske lokacije koje mogu sadržavati varijable ili druge informacije se rješavaju i te se informacije ponekad stavljaju u druge registre. Konačno, stvarna instrukcija će se izvršiti. Tijekom tog vremena CPU će povećati brojač programa kako bi ukazao na sljedeću instrukciju koju će držati registar instrukcija kako bi se proces mogao ponavljati dok se cijeli program ne izvrši.