Инструкцијски циклус
Инструкцијски циклус (понекад се назива донеси-и-изврши циклус, донеси-декодирај-изврши сиклус, или FDX) је основна операција циклуса рачунара. То је процес путем којег рачунар преузима инструкције програма из своје меморије, одређује које радње инструкција захтева, и извршава те радње. Овај циклус се стално понавља помоћу процесора (CPU), из покретача оперативног система када је рачунар искључен.
Употреба циклуса
[уреди | уреди извор]Циклуси који се користе у процесору током процесорског циклуса су:
- IP (процесор) (PC) - бројач за повећање који бележи меморијску адресу инструкције која следећа треба да се изврши.
- Меморијски адресни регистар (MAR) - држи адресу блока меморија која треба да се прочита или упише.
- Меморијски регистар за податке (MDR) - двосмерни регистар који садржи податке преузете из меморије (и спремне да их процесор обради) или садржи податке који чекају да буду сачувани у меморији.
- Регистар за инструкције (IR) - привремемо држи терен за инструкцију која је управо преузета из меморије.
- Управљачка јединица (CU) - декодира инструкцију програма у IR, селектује мешинске ресурсе као што су регистар извора податка и одређене аритметичке податке, и координира активацијом тих података.
- Аритметичко-логичка јединица (ALU) - обавља математичке и логичке операције.
Сваки процесор може да има различите циклусе засноване на различитом скупу инструкција, али ће бити слични следећем циклусу:
- 1. Преузимање инструкција
Следећа инструкција је преузета из меморијске адресе која се тренутно чува у IP (процесор) (PC), и чува се у регистру за инструкције (IR). На крају операције преузимања, PC указује на следеће инструкције које ће бити прочитане у следећем циклусу.
- 2. Декодирање инструкције
Декодер тумачи инструкцију. Током овог циклуса инструкција унутар IR (инструкцијског регистра) је декодирана.
- 3. У случају меморијске инструкције (директне или индиректне) фаза извршења ће бити у следећем такту.
Ако инструкција има индиректни приступ, ефективна адреса се чита из главне меморије, и било који захтевани подаци су преузети из главне меморије да би се обрадили и онда ставили у регистре података (Такт: T3). Ако је инструкција директна, ништа није учињено на том такту. Ако је у питању У/И инструкција или инструкција регистра, операција се одвија (извршава) на такту.
- 4. Извршавање инструкције
Контролна јединица процесора пролази декодиране информације као низ контролних сигнала на релевантне јединице функција процесора да би извршила радње које су захтеване од стране инструкција, као што су читање вредности из регистара, пролазећи кроз ALU да би извршила математичке или логичке операције на њима, и уписује резултат назад у регистар. Ако је ALU укључена, она шаље условни сигнал назад на процесор.
Генерисани резултат је сачуван у главној меморији, или послат на неки излазни уређај. На основу стања било какве повратне информације од ALU, програмски бројач може да се ажурира на другу адресу од које ће следећа инструкција бити преузета.
Циклус се затим понавља.
Започињање циклуса
[уреди | уреди извор]Циклус почиње одмах када се укључи напајање система користећи почетну PC вредност која је унапред дефинисана за архихектуру система (у Интеловом IA-32 процесору, на пример, унапред дефинисана PC вредност је 0xfffffff0
). Типично ова адреса указује на инструкције у ROM-у који почиње процес учитавања оперативног система. (Тај процес учитавања се зове booting.)
[1]
Циклус доношења
[уреди | уреди извор]Корак 1 Инструкцијског циклуса се зове Циклус доношења. Ови кораци су исти за сваку инструкцију. Циклус доношења обавља инструкцију из речи инструкције која садржи код операције.
Декодирање
[уреди | уреди извор]Корак 2 инструкцијског циклуса се зове декодирање. Код операције донет из меморије се декодира за наредне кораке и премешта се у одговарајуће регистре.
Читање ефективне адресе
[уреди | уреди извор]Корак 3 одлучује која је то операција у питању. Ако је меморијска операција - у овом кораку рачунар проверава да ли је то директна или индиректна меморијска опрерација:
- Директна меморијска инструкција - Ништа се не дешава.
- Индиректна меморијска инструкција - Ефективна адреса се чита из меморије.
Ако је у питању У/И или инструкција регистра - рачунар проверава ту врсту и извршава инструкцију.
Циклус извршавања
[уреди | уреди извор]Корак 4 Инструкцијског циклуса је Циклус извршавања. Ови кораци ће се мењати са сваком инструкцијом.
Подаци се преносе између CPU и У/И модула. Даље, аритметичке и логичке операције дате у инструкцијама се извршавају на основу података, као и друге инструкције, као што су скакање на другу локацију на програмском бројачу.
Референце
[уреди | уреди извор]- ^ Bosky Agarwal (2004). „Instruction Fetch Execute Cycle” (PDF). Архивирано из оригинала 11. 06. 2009. г. Приступљено 14. 10. 2012.