Pređi na sadržaj

Instrukcijski ciklus

S Vikipedije, slobodne enciklopedije

Instrukcijski ciklus (ponekad se naziva donesi-i-izvrši ciklus, donesi-dekodiraj-izvrši siklus, ili FDX) je osnovna operacija ciklusa računara. To je proces putem kojeg računar preuzima instrukcije programa iz svoje memorije, određuje koje radnje instrukcija zahteva, i izvršava te radnje. Ovaj ciklus se stalno ponavlja pomoću procesora (CPU), iz pokretača operativnog sistema kada je računar isključen.

Dijagram donesi i izvrši ciklusa.

Upotreba ciklusa

[uredi | uredi izvor]

Ciklusi koji se koriste u procesoru tokom procesorskog ciklusa su:

  • IP (procesor) (PC) - brojač za povećanje koji beleži memorijsku adresu instrukcije koja sledeća treba da se izvrši.
  • Memorijski adresni registar (MAR) - drži adresu bloka memorija koja treba da se pročita ili upiše.
  • Memorijski registar za podatke (MDR) - dvosmerni registar koji sadrži podatke preuzete iz memorije (i spremne da ih procesor obradi) ili sadrži podatke koji čekaju da budu sačuvani u memoriji.
  • Registar za instrukcije (IR) - privrememo drži teren za instrukciju koja je upravo preuzeta iz memorije.
  • Upravljačka jedinica (CU) - dekodira instrukciju programa u IR, selektuje mešinske resurse kao što su registar izvora podatka i određene aritmetičke podatke, i koordinira aktivacijom tih podataka.
  • Aritmetičko-logička jedinica (ALU) - obavlja matematičke i logičke operacije.

Svaki procesor može da ima različite cikluse zasnovane na različitom skupu instrukcija, ali će biti slični sledećem ciklusu:

1. Preuzimanje instrukcija

Sledeća instrukcija je preuzeta iz memorijske adrese koja se trenutno čuva u IP (procesor) (PC), i čuva se u registru za instrukcije (IR). Na kraju operacije preuzimanja, PC ukazuje na sledeće instrukcije koje će biti pročitane u sledećem ciklusu.

2. Dekodiranje instrukcije

Dekoder tumači instrukciju. Tokom ovog ciklusa instrukcija unutar IR (instrukcijskog registra) je dekodirana.

3. U slučaju memorijske instrukcije (direktne ili indirektne) faza izvršenja će biti u sledećem taktu.

Ako instrukcija ima indirektni pristup, efektivna adresa se čita iz glavne memorije, i bilo koji zahtevani podaci su preuzeti iz glavne memorije da bi se obradili i onda stavili u registre podataka (Takt: T3). Ako je instrukcija direktna, ništa nije učinjeno na tom taktu. Ako je u pitanju U/I instrukcija ili instrukcija registra, operacija se odvija (izvršava) na taktu.

4. Izvršavanje instrukcije

Kontrolna jedinica procesora prolazi dekodirane informacije kao niz kontrolnih signala na relevantne jedinice funkcija procesora da bi izvršila radnje koje su zahtevane od strane instrukcija, kao što su čitanje vrednosti iz registara, prolazeći kroz ALU da bi izvršila matematičke ili logičke operacije na njima, i upisuje rezultat nazad u registar. Ako je ALU uključena, ona šalje uslovni signal nazad na procesor.

Generisani rezultat je sačuvan u glavnoj memoriji, ili poslat na neki izlazni uređaj. Na osnovu stanja bilo kakve povratne informacije od ALU, programski brojač može da se ažurira na drugu adresu od koje će sledeća instrukcija biti preuzeta.

Ciklus se zatim ponavlja.

Započinjanje ciklusa

[uredi | uredi izvor]

Ciklus počinje odmah kada se uključi napajanje sistema koristeći početnu PC vrednost koja je unapred definisana za arhihekturu sistema (u Intelovom IA-32 procesoru, na primer, unapred definisana PC vrednost je 0xfffffff0). Tipično ova adresa ukazuje na instrukcije u ROM-u koji počinje proces učitavanja operativnog sistema. (Taj proces učitavanja se zove booting.) [1]

Ciklus donošenja

[uredi | uredi izvor]

Korak 1 Instrukcijskog ciklusa se zove Ciklus donošenja. Ovi koraci su isti za svaku instrukciju. Ciklus donošenja obavlja instrukciju iz reči instrukcije koja sadrži kod operacije.

Dekodiranje

[uredi | uredi izvor]

Korak 2 instrukcijskog ciklusa se zove dekodiranje. Kod operacije donet iz memorije se dekodira za naredne korake i premešta se u odgovarajuće registre.

Čitanje efektivne adrese

[uredi | uredi izvor]

Korak 3 odlučuje koja je to operacija u pitanju. Ako je memorijska operacija - u ovom koraku računar proverava da li je to direktna ili indirektna memorijska opreracija:

  • Direktna memorijska instrukcija - Ništa se ne dešava.
  • Indirektna memorijska instrukcija - Efektivna adresa se čita iz memorije.

Ako je u pitanju U/I ili instrukcija registra - računar proverava tu vrstu i izvršava instrukciju.

Ciklus izvršavanja

[uredi | uredi izvor]

Korak 4 Instrukcijskog ciklusa je Ciklus izvršavanja. Ovi koraci će se menjati sa svakom instrukcijom.

Podaci se prenose između CPU i U/I modula. Dalje, aritmetičke i logičke operacije date u instrukcijama se izvršavaju na osnovu podataka, kao i druge instrukcije, kao što su skakanje na drugu lokaciju na programskom brojaču.

Reference

[uredi | uredi izvor]
  1. ^ Bosky Agarwal (2004). „Instruction Fetch Execute Cycle” (PDF). Arhivirano iz originala 11. 06. 2009. g. Pristupljeno 14. 10. 2012.