Проточност инструкција

37
Проточност Проточност инструкција инструкција Стратегија проточности Стратегија проточности Перформансе проточних Перформансе проточних система система Гранање код проточног Гранање код проточног система система

description

Проточност инструкција. Стратегија проточности Перформансе проточних система Гранање код проточног система. Стратегија проточности. Боље перформансе помоћу: боље технологије, боље организације. Један од распрострањених начина побољшања перформанси је проточност инструкција. - PowerPoint PPT Presentation

Transcript of Проточност инструкција

Проточност Проточност инструкцијаинструкцијаСтратегија проточностиСтратегија проточностиПерформансе проточних Перформансе проточних

системасистемаГранање код проточног Гранање код проточног

системасистема

Стратегија проточностиСтратегија проточности

Боље перформансе помоћу:Боље перформансе помоћу: боље технологије, боље технологије, боље организације.боље организације.

Један од распрострањених начина Један од распрострањених начина побољшања перформанси је побољшања перформанси је проточност инструкцијапроточност инструкција..

Стратегија проточностиСтратегија проточности

Замислимо да се инструкција дели Замислимо да се инструкција дели у две фазе:у две фазе:

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

Стратегија проточностиСтратегија проточности

Постоји време током извршења Постоји време током извршења инструкције када се не приступа инструкције када се не приступа меморији – може се искористити меморији – може се искористити за прибављање наредне за прибављање наредне инструкције паралелно са инструкције паралелно са извршењем текуће!извршењем текуће!

Припрема

Извршење

Инструкција

Инструкција

Резултат

Стратегија проточностиСтратегија проточности

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

Стратегија проточностиСтратегија проточности

Међутим ово удвостручење Међутим ово удвостручење брзине није вероватно из два брзине није вероватно из два разлога:разлога:1.1. Извршење је дуже од припреме.Извршење је дуже од припреме.

2.2. Инструкције условног гранања.Инструкције условног гранања.

Припрема

Извршење

Инструкција

Инструкција

Резултат

чекање

чекање

Нова адреса

Одбаци

Стратегија проточностиСтратегија проточности

Да би се добило веће убрзање Да би се добило веће убрзање проточни систем мора да има проточни систем мора да има више проточних степени.више проточних степени.

Стратегија проточностиСтратегија проточности Размотримо декомпозицију обрадеРазмотримо декомпозицију обраде једне једне

инструкције на следеће фазе:инструкције на следеће фазе: Припрема инструкције (Припрема инструкције (FetchFetch Instruction Instruction – –

FIFI)).. Декодирање инструкције (Декодирање инструкције (Decode Decode

InstructionInstruction - - DIDI)).. Израчунавање операнада (Израчунавање операнада (Calculate Calculate

OperandsOperands - - COCO)).. Припрема операнада (Припрема операнада (Fetch OperandsFetch Operands - - FOFO)).. Извршење инсгтрукције (Извршење инсгтрукције (Execute Execute

InstructionInstruction - - EIEI)) Упис операнада (Упис операнада (Write OperandWrite Operand - - WOWO))..

Стратегија проточностиСтратегија проточности

1 2 3 4 5 6 7 8 9 10

11

12

13

14

FI DI CO FO EI WO

FI DI CO FO EI WO

FI DI CO FO EI WO

FI DI CO FO EI WO

FI DI CO FO EI WO FI DI CO FO EI

WO FI DI CO FO EI WO FI DI CO FO EI

WO

Инструкција 1Инструкција 2Инструкција 3Инструкција 4Инструкција 5Инструкција 6Инструкција 7Инструкција 8Инструкција 9

FI DI CO FO EI WO

Сл. 3. Временски дијаграм рада проточног система.

време

Стратегија проточностиСтратегија проточности Ако све фазе нису једнаког Ако све фазе нису једнаког

трајања постојаће постојаће трајања постојаће постојаће проблем слично примеру са проблем слично примеру са двостепеним системом. двостепеним системом.

Велики проблем су и инструкције Велики проблем су и инструкције условног гранања.условног гранања.

Стратегија проточностиСтратегија проточности Сличан непредвидљиви догађај је Сличан непредвидљиви догађај је

прекид.прекид. Слика 4 илуструје ефекте условног Слика 4 илуструје ефекте условног

гранања на истом програму уз гранања на истом програму уз претпоставку да је инструкција 3 претпоставку да је инструкција 3 условно гранање на инструкцију условно гранање на инструкцију 15.15.

Стратегија проточностиСтратегија проточности

1 2 3 4 5 6 7 8 9 10

11

12

13

14

FI DI CO FO EI WO

FI DI CO FO EI WO

FI DI CO FO EI WO

FI DI CO FO

FI DI

FI

FI DI CO FO EI WO FI DI CO FO EI

WO

Инструкција 1Инструкција 2Инструкција 3Инструкција 4Инструкција 5Инструкција 6Инструкција 7Инструкција 15Инструкција 16

FI DI CO

Сл. 4. Ефекат условног гранања на рад проточног система.

време Губитак због гранања

Стратегија проточностиСтратегија проточностиFI

DI

CO

FO

EI

WO

Безусловногранање

Гранање или прекид

Ажурирај PC

Испразни систем

Да

Да Не

Не

Сл. 5. Логика потребна да се обраде прекиди и гранања код шестостепеног проточног система.

Стратегија проточностиСтратегија проточности

Јављају се и други проблеми који Јављају се и други проблеми који се тичу регистарских и се тичу регистарских и меморијских конфликата.меморијских конфликата.

Систем мора да поседује логику Систем мора да поседује логику која разрешава ове проблеме.која разрешава ове проблеме.

Стратегија проточностиСтратегија проточности

Из досадашње дискусије може да Из досадашње дискусије може да произађе да што је већи број произађе да што је већи број степени у проточном систему, то степени у проточном систему, то је и брзина извршења већа.је и брзина извршења већа.

Стратегија проточностиСтратегија проточности

Међутим, постоје фактори који то Међутим, постоје фактори који то оповргавају и који се морају узети оповргавају и који се морају узети у обзир:у обзир:1.1. Губитак приликом преноса података Губитак приликом преноса података

од бафера до бафера.од бафера до бафера.

2.2. Износ управљачке логике расте Износ управљачке логике расте енормно са порастом броја степени.енормно са порастом броја степени.

Перформансе проточних Перформансе проточних системасистема

Време циклуса Време циклуса проточног система проточног система је време потребно за напредовање је време потребно за напредовање једног скупа инструкција за један једног скупа инструкција за један степен кроз систем.степен кроз систем.

= max[= max[i i ] + ] + dd = = mm +d +d, 1, 1 ii kk

где јегде је

mm – – максимално кашњење кроз степен,максимално кашњење кроз степен,

kk – – број проточних степени,број проточних степени,

dd – – кашњење лечева.кашњење лечева.

Перформансе проточних Перформансе проточних системасистема

У општем случају, кашњење У општем случају, кашњење dd је је еквивалентно периоду тактног еквивалентно периоду тактног сигнала док је сигнала док је mm >>>> dd..

Перформансе проточних Перформансе проточних системасистема

Сада претпоставимо да се обрађује Сада претпоставимо да се обрађује nn инструкција без гранања.инструкција без гранања.

Укупно потребно време Укупно потребно време TTkk да се изврши да се изврши свих свих nn инструкција је инструкција је

TTkk = [ = [kk + ( + (nn-1)-1) ]] Убрзање у односу на непроточни систем Убрзање у односу на непроточни систем

јеје

)1()]1([1

nk

nk

nk

nk

T

TS

kk

Гранање код проточног Гранање код проточног системасистема

Један од основних проблема код Један од основних проблема код пројектовања проточног система је пројектовања проточног система је обезбеђивање стабилног дотока обезбеђивање стабилног дотока инструкција у почетни степен.инструкција у почетни степен.

Основну сметњу представљају Основну сметњу представљају инструкције условног гранања, јер инструкције условног гранања, јер у току извршења инструкције није у току извршења инструкције није могуће одредити хоће ли се могуће одредити хоће ли се гранање извршити или не.гранање извршити или не.

Гранање код проточног Гранање код проточног системасистема

Постоји више приступа за Постоји више приступа за руковање инструкцијама условног руковање инструкцијама условног гранања:гранања: Вишеструки токови.Вишеструки токови. Прибављање циља гранања унапред.Прибављање циља гранања унапред. Бафер петљи.Бафер петљи. Предвиђање гранања.Предвиђање гранања. Закашњено гранање.Закашњено гранање.

Гранање код проточног Гранање код проточног системасистема

Вишеструки токовиВишеструки токови. Приступ грубе силе је . Приступ грубе силе је да се копира почетни део проточног да се копира почетни део проточног система и омогући систему да прибави обе система и омогући систему да прибави обе инструкције формирајући тинструкције формирајући тaaко два низа.ко два низа.

Два су проблема:Два су проблема: Кашњење због надметања у приступу Кашњење због надметања у приступу

регистрима и меморији. регистрима и меморији. Друга инструкција гранања може да уђе у Друга инструкција гранања може да уђе у

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

Упркос недостацима може да унапреди Упркос недостацима може да унапреди паралелизам. Примери машина које паралелизам. Примери машина које користе два проточна тока су користе два проточна тока су IBM 370/168 IBM 370/168 и и IBM 3033IBM 3033..

Гранање код проточног Гранање код проточног системасистема

Прибављање циља гранања унапредПрибављање циља гранања унапред. Када . Када се препозна условно гранање, циљ се препозна условно гранање, циљ гранања се унапред прибавља, поред гранања се унапред прибавља, поред прибављања инструкције која следи иза прибављања инструкције која следи иза гранања. гранања.

Циљна инструкција се памти док се Циљна инструкција се памти док се инструкција не изврши. Ако се деси инструкција не изврши. Ако се деси гранање, циљна инструкција је већ гранање, циљна инструкција је већ прибављена.прибављена.

Овај приступ користи рачунар Овај приступ користи рачунар IBM 360/91.IBM 360/91.

Гранање код проточног Гранање код проточног системасистема

Бафер петљиБафер петљи. Ради се о малој брзој . Ради се о малој брзој меморији којом управља степен меморији којом управља степен припреме инструкције и која садржи припреме инструкције и која садржи nn најскорије прибављених најскорије прибављених инструкција у секвенци.инструкција у секвенци.

Ако се деси гранање, хардвер најпре Ако се деси гранање, хардвер најпре проверава да ли је циљна инструкција проверава да ли је циљна инструкција у баферу. Ако јесте, следећа у баферу. Ако јесте, следећа инструкција се прибавља из бафера.инструкција се прибавља из бафера.

Гранање код проточног Гранање код проточног системасистема

Бафер петљи има три предности:Бафер петљи има три предности:1.1. Када се користи прибављање унапред, бафер Када се користи прибављање унапред, бафер

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

2.2. Ако је циљна инструкција свега неколико Ако је циљна инструкција свега неколико локација испред инструкције гранања, она је локација испред инструкције гранања, она је онда већ у баферу. То је чест случај код онда већ у баферу. То је чест случај код IF-IF-THEN THEN и и IF-THEN-ELSEIF-THEN-ELSE секвенци. секвенци.

3.3. Ова стратегија је нарочито погодна за рад се Ова стратегија је нарочито погодна за рад се петљама, нарочито ако је бафер довољно петљама, нарочито ако је бафер довољно велики да прими све инструкције из тела велики да прими све инструкције из тела петље.петље.

Гранање код проточног Гранање код проточног системасистема

Бафер петљи је у суштини сличан кешу Бафер петљи је у суштини сличан кешу инструкција, само што садржи инструкције у инструкција, само што садржи инструкције у секвенци и много је мањи (тиме и јефтинији).секвенци и много је мањи (тиме и јефтинији).

Бафер петљи(256 бајтова)

8

Инструкција која се декодира у случају поготка.

Битови највеће тежине адресе се пореде ради одређивања поготка.

Адреса гранања

Сл. 6. Бафер петљи.

Гранање код проточног Гранање код проточног системасистема

ПримерПример машина које користемашина које користе бафер петљи су неке од машина бафер петљи су неке од машина фирме фирме CDC (Star-100, 6600, 7600).CDC (Star-100, 6600, 7600).

Специфични облик бафера петљи Специфични облик бафера петљи се среће и код процесора се среће и код процесора Motorola Motorola 6801068010 за извршавање петљи од три за извршавање петљи од три инструкције.инструкције.

Гранање код проточног Гранање код проточног системасистема

Предвиђање гранања.Предвиђање гранања. Користе се Користе се разне технике за предвиђање хоће ли разне технике за предвиђање хоће ли бити гранања међу којима су бити гранања међу којима су најактуелније:најактуелније: Предвиђање да се никад не врши гранање.Предвиђање да се никад не врши гранање. Предвиђање да се увек врши гранање.Предвиђање да се увек врши гранање. Предвиђање на основу кôда операције.Предвиђање на основу кôда операције. Коришћење прекидача има/нема гранања.Коришћење прекидача има/нема гранања. Коришћење табеле историје гранања.Коришћење табеле историје гранања.

Гранање код проточног Гранање код проточног системасистема

Прва три приступа су статичка и не Прва три приступа су статичка и не зависе од историје извршења до зависе од историје извршења до момента када се наиђе на инструкцију момента када се наиђе на инструкцију гранања.гранања.

Последња два приступа су динамичка Последња два приступа су динамичка и зависе од историје извршења.и зависе од историје извршења.

Прва два приступа су Прва два приступа су најједноставнија. Ту се претпоставља најједноставнија. Ту се претпоставља да се гранање увек (не) дешава. 68020 да се гранање увек (не) дешава. 68020 и и VAX 11/780 VAX 11/780 користе приступ да се користе приступ да се гранање никад не дешава.гранање никад не дешава.

Гранање код проточног Гранање код проточног системасистема

Анализа програма показала је да се Анализа програма показала је да се условно гранање заиста одиграва у условно гранање заиста одиграва у више од 50% случајева, па је, при више од 50% случајева, па је, при истој цени прибављања једне од истој цени прибављања једне од инструкција, боље прибављати циљну инструкција, боље прибављати циљну инструкцију гранања.инструкцију гранања.

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

Гранање код проточног Гранање код проточног системасистема

Предвиђање на основу кода Предвиђање на основу кода операције састоји се у томе да операције састоји се у томе да процесор претпоставља да ће се процесор претпоставља да ће се гранање заиста обавити за неке гранање заиста обавити за неке кодове операција док за друге не.кодове операција док за друге не.

Анализе показују да се у више од Анализе показују да се у више од 75% случајева овакво предвиђање 75% случајева овакво предвиђање показује успешним.показује успешним.

Гранање код проточног Гранање код проточног системасистема

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

Један или више битова (прекидачи Један или више битова (прекидачи има/нема гранања) се могу има/нема гранања) се могу придружити свакој инструкцији придружити свакој инструкцији условног гранања било у привременој условног гранања било у привременој брзој меморији или у кешу.брзој меморији или у кешу.

Гранање код проточног Гранање код проточног системасистема

Прочитај следећуинструкцију

условног гранања

Предвиђање има гранања

Гранањеизвршено

Прочитај следећуинструкцију

условног гранања

Предвиђање има гранања

Гранањеизвршено

да

да

не

не

Прочитај следећуинструкцију

условног гранања

Предвиђање нема гранања

Гранањеизвршено

Прочитај следећуинструкцију

условног гранања

Предвиђање нема гранања

Гранањеизвршено

не

не

да

да

Сл. 7. Дијаграм тока предвиђања гранања.

Гранање код проточног Гранање код проточног системасистема

Предвиђањеима гранања

Предвиђањенема гранања

Предвиђањенема гранања

Предвиђањеима гранања

Им

а

гран

ањ

а

Има гранања

Има гранањ

а

Има гранања

Нема гранања

Нема гранања

Нем

агр

ан

ањ

а

Нема гранања

Сл. 8. Дијаграм стања предвиђања гранања.

Гранање код проточног Гранање код проточног системасистема

Коришћење битова историје гранања Коришћење битова историје гранања има један недостатак. Ако је услов има један недостатак. Ако је услов гранања испуњен циљна инструкција гранања испуњен циљна инструкција се не може прибавити пре него се се не може прибавити пре него се декодира циљна адреса.декодира циљна адреса.

Већа ефикасност се може постићи ако Већа ефикасност се може постићи ако би се прибављање инструкције би се прибављање инструкције започело чим се донесе одлука о започело чим се донесе одлука о гранању. Да би ово било могуће мора гранању. Да би ово било могуће мора да се памти више информација а та да се памти више информација а та шема је позната као бафер циљева шема је позната као бафер циљева гранања или табела историје гранања.гранања или табела историје гранања.

Гранање код проточног Гранање код проточног системасистема

Табела историје гранања је мала Табела историје гранања је мала кеш меморија придружена степену кеш меморија придружена степену припреме инструкције.припреме инструкције.

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

памте стање употребе те инструкције, памте стање употребе те инструкције, ии

информације о циљној инструкцији.информације о циљној инструкцији.

Гранање код проточног Гранање код проточног системасистема

У већини имплементација треће поље У већини имплементација треће поље садржи адресу циљне инструкције. садржи адресу циљне инструкције. Друга могућност је да то поље садржи Друга могућност је да то поље садржи циљну инструкцију.циљну инструкцију.

Памћење циљне адресе даје мању Памћење циљне адресе даје мању табелу али дуже време припреме табелу али дуже време припреме инструкције него када се памти сама инструкције него када се памти сама циљна инструкција!циљна инструкција!

Последња динамичка шема састоји се Последња динамичка шема састоји се од преуређивања инструкција од преуређивања инструкција програма тако да се инструкција програма тако да се инструкција гранања јавља касније него што је гранања јавља касније него што је стварна намера (стварна намера (закашњено гранањезакашњено гранање).).