Delovanje centralno procesne enote
Glavna funkcija centralno procesne enote je izvajanje
zaporedja zapomnjenih ukazov, ki jim pravimo program. Ta program je sestavljen
iz zaporedja števil, ki so zapomnjena v računalniškem pomnilniku. Pri izvajanju
posameznega ukaza zasledimo naslednje korake:
·
Pridobitev ukaza (fetch),
·
Dekodiranje ukaza (decode),
·
Izvedba ukaza (execute),
·
Zapis rezultata (writeback).
V prvem
koraku (fetch) pridobimo iz programa, zapisanega v pomnilniku, naslednji ukaz,
ki je sestavljen iz številčne kode. Lokacijo ukaza v pomnilniku določa
programski števec. Ta hrani številko, ki je enaka naslovu tekoče postavitve v
pomnilniku. Programski števec torej kaže sled v tekočem programu. Ko CPE dobi ukaz, se programski števec poveča za
dolžino ukaza (lahko je dolg tudi več bytov) in tako kaže na naslednji ukaz.
Ukaz, ki ga je CPE poiskala v pomnilniku, je uporabljen
za to, da se ugotovi, kaj naj CPE sedaj izvede in kako naj to izvede. Del
ukaza, ki mu pravimo operacijska koda, pokaže zahtevano operacijo (seštevanje,
odštevanje, premik podatka ipd.), preostali del ukaza pa pove, kje se ti podatki
nahajajo (npr. v registru, lahko pa jih moramo še potegniti iz pomnilnika; ali
pa so kar konstanta, ki je del samega ukaza).
Zato,
ker so operandi lahko tudi v kakšnem registru ali pomnilniku, je potrebno tako
lokacijo primerno nasloviti. To pa določa ti. “način naslavljanja”, ki je prav
tako zakodiran v ukazu.
Za
korakom dekodiranja sledi korak izvajanja ukaza. Z aritmetično logično enoto (ALE)
se kot vhodi in izhodi povežejo tiste komponente (predvsem registri), ki so
potrebne za izvedbo zahtevane operacije. Kot že samo ime pove, so to lahko
različne računske operacije, premiki med registri ali logične operacije na
posameznih biti. CPE si v posebnem registru zapomni tudi stanje operacije, ki
je bila zadnja zahtevana (ali je bil rezultat negativen ali nič, ali je prišlo
do overflowa - prekoračitve dolžine rezultata ipd.)
Če je
potrebno, vsemu temu sledi še en korak (writeback), ki morebitni rezultat
izvedene operacije prepiše nazaj na lokacijo v pomnilniku. Po izvedbi ukaza se
celoten proces ponovi tudi z naslednjim ukazom. Pri tem programski števec
“koraka” od ukaza do ukaza, ki so zapomnjeni kot program v pomnilniku.
Ni komentarjev:
Objavite komentar