Преклапање инструкција

Сам термин преклапање (енг. pipelining) означава могућност истовременог извршавања различитих фаза машинске инструкције.

Начини извршавања инструкција

Шематски приказ неких техника извршавања машинских инструкција је дат на слици:

preklapanjeinstrukcija

технике извршавања машинских инструкција

Претпоставимо да се извршавање машинске инструкције може поделити у 6 корака:
1. Дохватање инструкције (eng. Fetch)
2. Декодирање операционог кода инструкције (eng. Decode)
3. Одређивање адресе операнада (eng. Address calculation)
4. Дохватање операнада (eng. Read operands)
5. Извршавање (eng. Execute)
6. Упис резултата (eng. Write results)

Најједноставнији начин реализовања извршавања инструкција је секвенцијално, када се најпре изврши једна инструкција, па тек након њеног окончања почиње се са извршавањем следеће инструкције.
Следећи начин је преклапање где се различите инструкције извршавају истовремено, али свака од њих је у различитим фазама извршавања.
Уколико постоје две извршне јединице могуће је реализовати два паралелна низа инструкција, само је потребно обезбедити да инструкције у једном низу не зависе једна од друге, како би могле да се несметано извршавају „паралелно“. На тај начин се остварује тзв. суперскаларни рад, који је присутан код савремених процесора.

Сваки корак је на слици означен као уоквирени квадрат у коме је уписан назив корака. Ради поједностављења, обрада прекида није приказана на слици. Такође, претпоставка је да су времена потребна за извршавање свих корака једнака и да се сваки од корака извршава у једном циклусу часовника (ова претпоставка не важи у реалним ситуацијама).

Преклапање фаза инструкције теоријски је омогућило пропроционално смањење времена потребног за њено извршавање. Међутим, у реалним ситуацијама ово се не достиже из најмање два разлога:
1. Време потребно за извршавање је дуже од времена потребног за дохватање инструкције.
2. Наилазак на инструкцију условног гранања доводи до тога да није позната адреса наредне инструкције коју треба дохватити. У фази извршавање те инструкције се у бројач инструкција уписује нова вредност, тако да инструкције које су биле прибављене пре тог тренутка треба одбацити, прибавити нову инструкцију и кренути са поновним прибављањем инструкција.
Први разлог се може донекле неутралисати поделом инструкције на већи број корака. Процесори су, у каснијем периоду коришћења ове технологије, делили инструкцију често на 10 и више корака.

 

ефекат извршавања инструкције условног гранања

ефекат извршавања инструкције условног гранања

Негативни ефекти који настају услед инструкција условног гранања се не могу елиминисати из програма већ само ублажити. Значајно повећање броја корака у извршавају инструкције није оствариво из следећа два разлога:
1. Између свака два корака машинске инструкције се одређени интервал времена користи за пребацивање података из бафера у бафер и различите врсте припрема за извршавање наредног корака. Збир ових времена може у значајној мери да продужи извршавање инструкције.
2. Број логичких кола неопходан за контролу и разрешење меморијских и регистарских конфликата нагло расте са повећањем броја корака у инструкцији. То доводи до опасности да логичка кола постану комплекснија (и троше више времена) од корака инструкције које треба да контролишу.
Због тога се прибегава техникама за предвиђање која ће инструкција следећа бити дохваћена и извршена. Код савремених процесора постоје јединице за предвиђање гранања чиме се покушавају смањити проблеми са преклапањем инструкција приликом гранања.

Advertisements

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

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

WordPress.com лого

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

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

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

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

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

Google+ photo

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

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