utorak, 30. rujna 2008.

Izvođenje naredbi unutar mikroprocesora

Pokušajmo slijediti na koji način mikroprocesor izvodi program. Program je skup naredbi nanizanih u određenom redoslijedu koje određuju što ce mikroprocesor činiti. Te naredbe su pohranjene u memoriji koja se nalazi izvan samog mikroprocesora (obično u RAM memoriji).
Dobava naredbe
Prvi korak izvođenja naredbe je dobava naredbe. Nazvat ćemo taj korak: dobavi (engl. fetch).
Vanjska memorija ima podatke pohranjene na određenim lokacijama ili mjestima. Svaka lokacija ima svoju adresu, pa je stoga potrebno znati adresu nekog podatka ili naredbe želi li se dobaviti u mikroprocesor. To je dužnost programskog brojila. Programsko brojilo u svakom trenu mora „znati“ adresu naredbe ili podatka koji se želi dobaviti i mora "pokazivati" upravo adresu tog podatka.
Neka u našem primjeru to bude adresa 2103. Za vrijeme dok programski brojilo pokazuje na adresu 2103 mikroprocesor (MPU) daje naredbu: čitaj memoriju. Ta naredba će omogućiti da podatak s adrese 2103 (označen kao xxxx) uđe u mikroprocesor ili točnije u njegov spremnik naredbe (IR).
Time je obavljena prva zadaća, a to je dobava naredbe iz vanjskog svijeta u mikroprocesor. Naredba se sada nalazi u mikroprocesoru i sve je spremno je za drugi korak.
Upamtimo da je korak DOBAVI uvijek prvi korak pri izvođenju naredbe. Jasno je i zbog čega. Sve vrijeme dok se naredba ne nalazi unutar mikroprocesora, ona mu je nepoznata, pa i ne zna kakav postupak treba obaviti. Obratimo pozornost i na programsko brojilo (PC), koje određuje redoslijed izvođenja naredbi. Jednom dobavljena naredba i pohranjena u spremniku, mora biti odgonetnuta ili dekodirana. To je drugi korak pri izvođenju programa.
Odgonetavanje naredbe
Naredba je u spremniku naredbe pohranjena kao niz logičkih nula i jedinica. U drugom koraku potrebno je odgonetnuti značenje tih nula i jedinica i potaknuti odgovarajuće sklopove na izvršenje. Naredba se odgonetava u sklopu koji se zove dekoder. Ovisno o kombinaciji i jedinica koje su ušle u dekoder, aktivirat ce se jedna od izlaznih komandnih linija, označenih na slici brojevima. Svaka od tako odgonetnutih ili dekodiranih naredbi potaknut će odgovarajući sklop na izvršenje (primjerice, naredba ZBROJI). Na kraju ostalo je još da se naredba izvrši. To je treći korak kojeg nazivamo: izvršenje naredbe.

Izvršenje naredbe
Ovim korakom će se odgonetnuta naredba izvršiti. Tipičan primjer je zbrajanje dva broja, spremanje sadržaja pojedine memorijske lokacije u akumulator itd. Pojednostavljeno se može reći da će dekoder uključiti jednu od svojih izlaznih linija ovisno o kombinaciji nula i jedinca koje su u njega došle (tj. ovisno o naredbi).
Vremensko vođenje (generator takta, engl. clock)
Kao što se moglo do sada uočiti, pojedine operacije su se obavljale u vremenskom slijedu, tj. jedna iza druge. Da bi mikroprocesor mogao obavljati naredbe vremenski jednu iza druge, potreban mu je takt (engl. clock), tj. slijed vremenski promjenjivih veličina. Budući da se mikroprocesor napaja istosmjernim naponom, a taj je napon nepromjenjiv, mora postojati dodatni izvor izmjeničnog signala. Kao izvor izmjeničnog signala koristi se kod mikroprocesora kvarcni oscilator. Kvarcni oscilator se rabi kako bi se osigurala stabilnost frekvencije, te nam je tako u svakom trenu s velikom točnošću poznato vrijeme potrebno za izvođenje pojedine naredbe.
Brzina promjene stanja u jedinici vremena (tj. frekvencija) određuje kojom ce se brzinom izvršavati naredbe. Mjeri se u Hz, odnosno većim jedinicama MHz i GHz. Teži se za što višim frekvencijama, kako bi vrijeme za izvršenje pojedinih naredbi bilo što kraće. Ograničenje je sporost sklopova mikroprocesora koji ne mogu prihvatiti promjenjivu veličinu iznad neke granice.
Taktni impulsi grupirani su u skupine od po nekoliko impulsa (u našem primjeru pet) i nazivaju se strojni ili radni ciklus. Radni ciklus se ovisno o mikroprocesoru sastoji od nekoliko taktnih impulsa (obično tri do pet). Za izvršenje jedne naredbe potreban je najmanje jedan radni ciklus. Za neke naredbe može biti potrebno i više od jednog radnog ciklusa. Taktni impulsi su cijelo vrijeme prisutni i mikroprocesor bez njih ne može raditi. Sve se odvija u ritmu taktnih impulsa.

Nema komentara: