Инструкциони циклус

Рад рачунара састоји се у извршавању програма. Сваки програм се састоји од низа инструкција које се извршавају у одређеном редоследу. Извршавање сваке инструкције може се поделити у неколико фаза:

дохватање инструкције – пребацивање инструкције из меморије у регистар инструкција
декодирање операције – дефинисање низа управљачких сигнала који се прослеђују аритметичко-логичкој јединици како би се извршила задата операција
израчунавање адресе операнада – на основу референце задате у инструкцији
дохватање операнада – пребацивање операнда из меморије у прихватни регистар (или неки од општих регистара)
извршавање задате операције – активира се аритметичко-логичка јединица, на њене улазе доводе се операнди, на управљачке линије доводи се код операције, и након одређеног времена на излазу аритметичко-логичке јединице смешта се резултат
израчунавање адресе резултата
смештање резултата – резултат се са излаза аритметичко-логичке јединице смешта најпре у прихватни регистар, а након тога на одговарајућу меморијску локацију
израчунавање адресе следеће инструкције

Све ове фазе приказане су дијаграмом стања инструкције, који је приказан на слици:

дијаграм стања инструкцијског циклуса

дијаграм стања инструкцијског циклуса

Операнди извора и резултата могу да се налазе у једној од следеће три области:
1. Главна или виртуелна меморија,
2. Регистри процесора,
3. У/И уређаји (у случају меморијски пресликаног улаза/излаза представља адресу у главној меморији која је резервисана за дати уређај).

Извршавање свих фаза машинских инструкција чини процес који се назива инструкциони циклус.
Свака од фаза машинског циклуса се може рашчланити на различит број корака (подфаза). Који од ових корака ће бити укључени у извршавање инструкције зависи од саме инструкције. Једно од могућих рашчлањења фаза машинске инструкције је:

izvrsavanjeinstrukcije

блок дијаграм инструкционог циклуса


1. Фаза дохватања:

Инструкција коју треба извршити смештена је у оперативној меморији, а њена адреса се налази у бројачу инструкција BI. Да би она могла управљати извршењем операције, потребно је да се позове у регистар инструкција RI.

Израчунавање адресе инструкције, при чему се одређује адреса наредне инструкције која треба да се изврши. Обично мје адреса наредне инструкције већ уписана у бројачу инструкција, тако да се садржај бројача инструкција шаље се у адресни регистар AR, чиме се поставља адреса одговарајуће меморијске локације на адресну магистралу.
Дохватање инструкције. У овом кораку се чита инструкција из меморије и преноси у CPU: са меморијске локације претходно уписане на адресну магистралу чита се садржај и уписује у прихватни регистар PR; након тога се садржај PR шаље се у регистар инструкција RI, одакле ће инструкција управљати извршењем операције
Декодирање операционог кода инструкције. На основу анализе операционог кода одређује се тип операције и број аргумената инструкције.
Израчунавање адресе операнада. За сваки од евентуалних операнада инструкције се одређује где је смештен (регистар или меморија). Ако се користи индиректно адресирање тада одређивање адресе операнда укључује додатно обраћање меморији за одређивање адресе операнда – фаза индирекције.
Дохватање операнда у коме се врши дохватање операнда из меморије – код свих инструкција, осим скокова и позива потпрограма:
AR <- адреса операнда, у адресни регистар се уписује адреса операнда
PR <- вредност прочитана са локације „адреса операнда“, у прихватни регистар се уписује садржај прочитане локације, а тек након тога се пребацује у одговарајући регистар.

Повећава се садржај бројача инструкција за дужину позване инструкције L, чиме се у бројач инструкција уписује адреса наредне инструкције. Овај корак се УВЕК извршава у фази припреме инструкције. Ако је у питању инструкција скока или преласка у потпрограм онда она (у фази извршавања) уписује у бројач инструкција адресу следеће инструкције бришући претходно уписани садржај код инструкције скока или памтећи претходни садржај на стеку код позива потпрограма.

2. Фаза извршавања:

Извршавање операције која је захтевана операционим кодом.
Чување резултата у меморији или на улазно/излазним уређајима. Ако се и у овом кораку користи индиректно адресирање тада је за сваки од операнада који представљају резултат потребно додатно обраћање меморији за одређивање његове адресе.

3. Фаза прекида:

Провера да ли се у међувремену десио прекид.
• Ако је било прекида, тада се врши обрада прекида.

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s