Zgradba  in delovanje centralne procesne enote


Funkcija


Centralna procesna enota (CPE)  predstavlja možgane računalnika. Pravimo ji tudi centralni procesor. To je elektronsko vezje znotraj računalnika, ki s svojo  osnovno aritmetično-logično in krmilno enoto izvaja ukaze, zapisane v računalniškem programu  in krmili vhodno izhodne operacije.  Tradicionalno se izraz "CPE" nanaša na procesor, natančneje na njegovo procesno enoto in krmilno enoto in razlikuje te ključne elemente računalnika od zunanjih komponent, kot so glavni pomnilnik in vhodno-izhodna vezja.



Glavni pomnilnik sicer ni neposredno del CPU, vendar je za njeno delovanje prav tako pomemben, kot je za delovanje možganov pomembno, da imamo spomin.

V pomnilniku so namreč shranjena (na sosednjih lokacijah) zaporedja ukazov, ki naj bi jih CPE izvajala. Načeloma izvaja naenkrat en ukaz, na katerega kaže programski števec v CPE. V splošnem je posamezen ukaz dolg tudi več bajtov.

Programski števec je v bistvu eden od registrov CPE. Lahko rečemo, da računalnih "koraka" po programu. Ukaz, na katerega kaže programski števec, se prepiše iz pomnilnika v ukazni register CPE.


370px-ABasicComputer

Osnovna funkcija  centralne procesnih enote (CPE) je izvajanje zaporedja shranjenih ukazov (instrukcij), ki jim pravimo program. Ukazi so pomnjeni v računalniškem pomnilniku. Vsak ukaz mora prebrati (iz pomnilnika), ga dekodirati in izvesti. Tem trem korakom pravimo  cikel ukaza.

CPE pri izvajanju ukaza običajno uporablja tudi nekatere svoje delovne registre in aritmetično-logično enoto.Delovnih registrov je več. Nekateri so splošno namenski. Vsaj eden od njih ima vlogo akumulatorja. To je register, v katerem dobimo rezultat neke aritmetične ali logične operacije.

Po izvedbi ukaza se celoten proces ponovi z naslednjim ukazom.

Več o branju posameznih ukazov in njihovem dekodiranju ter izvedbi v nadaljevanju.



instruction_format

Na hitro nekaj o ukazih:

Strojni ukazi so zapisani v dvojiškem sistemu. Vsak strojni ukaz je tipično  sestavljen iz dveh delov: kode operacije in operanda.

Binarni vzorec, ki se pojavlja v kodi operacije, pove, katera od osnovnih operacij naj se izvede v naslednjem programskem koraku.

 Binarni vzorec v polju operanda podaja dodatne informacije za ukaz. Na primer, kje leži podatek, ki ga moramo uporabiti.



Krmilna enota

Povezana slika

Krmilna enota je del centralne procesne enote računalnika (CPE), ki usmerja delovanje procesorja.

Krmilna enota deluje tako, da dekodira obravnavani ukaz (ki je v ukaznem registru)  in (tudi glede na stanje procesorja) tvori različne signale za ustrezno krmiljenje aritmetično logične enote oziroma vhodno-izhodnih naprav. Stanju procesorja pravimo tudi "zastavice" (flags)
Krmilni enoti daje takt računalnikova ura, ki ima običajno več podtaktov.

Obstajata dve vrsti krmilnih enot: Ožičene krmilne enote in krmilne enote, ki jih je mogoče upravljati z mikroprogramom.

Ožičene krmilne enote so narejene z uporabo kombinacijskih logičnih vezij. Njihova zasnova uporablja fiksno arhitekturo, ki bi za spremembe terjala spremembe v ožičenju. Njihov nabor možnih ukazov je zato omejen, delo pa hitrejše.

Enote, ki jih je mogoče mikroprogramirati, uporabljajo mikroprograme kot vmesno raven za izvajanje ukazov, ki jo lahko enostavno sporemenimo.  Mikroprogrami so  zaporedje mikroinstrukcij in shranjeni v posebnem nadzornem spominu.  Glavna prednost krmilne enote z mikroprogramom je enostavnost njegove strukture.

Funkcije, ki jih nadzorna enota izvaja, so odvisne od tipa CPE-ja, saj se zgradba procesorja razlikuje od proizvajalca do proizvajalca.



Aritmetično logična enota (ALE)

290px-ALU_block

Aritmetično logična enota izvaja celoštevilčne aritmetične operacije in logične oparacije na bitih. Vhod v ALE so podatkovne besede (ki jim pravimo operandi), podatki o statusu (predhodnih operacij) in koda iz krmilne enote, ki nakazuje zahtevano operacijo.

Glede na izvajani ukaz lahko prihajajo operandi iz katerega od internih (delovnih) registrov CPE ali iz glavnega pomnilnika. Lahko pa so to kar konstante, ki jih tvori sama ALE.

Rezultat izvedene operacije se lahko pojavi na izhodu ALE in pomni v kakšnem od njenih registrov (tipično v akumulatorju) ali pa v glavnem pomnilniku. Glede rezultat operacije se nastavijo tudi statusne zastavice.


Aritmetično logična enota ima, kot že njeno ime pove, dve sekciji:
Funkcija aritmetične sekcije je izvajanje aritmrtičnih operacij, kot so seštevanje, odštevanje, množenje in deljenje. Vse, bolj kompleksne operacije so sestavljene iz teh osnovnih operacij-

Logična sekcija pa opravlja operacije, kot so primerjanje besed in posameznih bitov, logične operacije na bitih in premikanje bitov.



Registri

Registri so zelo hitra pomnilna področja v CPE. Vse podatke, ki jih želimo obdelati, moramo najprej shraniti v registre. Primeri takih registrov so:

MAR Memory Address Register Pomni naslov v pomnilniku, kjer leži podatek, do katerega dostopamo
MDR Memory Data Register Pomni podatke, ki so bili prenešeni iz pomnilnika in so nato spet prenešeni v pomnilnik. 
AC Accumulator V akumulatorju se shranijo vmesni rezultati aritmetičnih oziroma logičnih operacij
PC Program Counter Programski števec vsebuje naslov naslednjega ukaza, ki bo izvajan
IR Instruction Register Ukazni register: Hrani trenutno izvajani ukaz


Pomnilnik

Glavni pomnilnik sicer ni del centralne procesne enote, je pa za njeno delovanje zelo pomemben. Povezan je z  njo s takoimenovanim vodilom (bus). Vodilo je skupek povezav (lahko bi rekli "žic") , za vsak bit ima eno povezavo. Imamo podatkovno vodilo, po katerem se v eno ali drugo smer prenašajo podatki med pomnilnikom in CPE. In ima naslovno vodilo, preko katerega CPE pove pomnilniku, katera lokacija v pomnilniku jo zanima. In imamo še povezave za posredovanje krmilnih signalov pomnilnika.

Tako si lahko ogledamo nekoliko bolj podrobno splošno shemo centralne procesne enote in njeno povezavo z glavnim pomnilnikom. Na tej sliki so povezave z vhodno izhodnimi enotami opuščene.