četrtek, 10. januar 2013

Delovanje CPE


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