1 / 37

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Стратегија проточности • Замислимо да се инструкција дели у две фазе: • Припрема инструкције • Извршење инструкције

  4. Резултат Инструкција Инструкција Припрема Извршење Стратегија проточности • Постоји време током извршења инструкције када се не приступа меморији – може се искористити за прибављање наредне инструкције паралелно са извршењем текуће!

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

  6. Нова адреса чекање чекање Резултат Инструкција Инструкција Припрема Извршење Одбаци Стратегија проточности • Међутим ово удвостручење брзине није вероватно из два разлога: • Извршење је дуже од припреме. • Инструкције условног гранања.

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

  8. Стратегија проточности • Размотримо декомпозицију обрадеједне инструкције на следеће фазе: • Припрема инструкције (FetchInstruction – FI). • Декодирање инструкције (Decode Instruction - DI). • Израчунавање операнада (Calculate Operands - CO). • Припрема операнада (Fetch Operands - FO). • Извршење инсгтрукције (Execute Instruction - EI) • Упис операнада (Write Operand - WO).

  9. време 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Инструкција 1 Инструкција 2 Инструкција 3 Инструкција 4 Инструкција 5 Инструкција 6 Инструкција 7 Инструкција 8 Инструкција 9 Сл. 3. Временски дијаграм рада проточног система. 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 FI DI CO FO EI WO Стратегија проточности

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

  11. Стратегија проточности • Сличан непредвидљиви догађај је прекид. • Слика 4 илуструје ефекте условног гранања на истом програму уз претпоставку да је инструкција 3 условно гранање на инструкцију 15.

  12. време Губитак због гранања 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Инструкција 1 Инструкција 2 Инструкција 3 FI DI CO FO Инструкција 4 FI DI CO Инструкција 5 FI DI Инструкција 6 FI Инструкција 7 Инструкција 15 Инструкција 16 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 Сл. 4. Ефекат условног гранања на рад проточног система. Стратегија проточности

  13. FI DI CO Да Безусловно гранање Не FO EI Ажурирај PC WO Не Испразни систем Да Гранање или прекид Сл. 5. Логика потребна да се обраде прекиди и гранања код шестостепеног проточног система. Стратегија проточности

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

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

  16. Стратегија проточности • Међутим, постоје фактори који то оповргавају и који се морају узети у обзир: • Губитак приликом преноса података од бафера до бафера. • Износ управљачке логике расте енормно са порастом броја степени.

  17. Перформансе проточних система • Време циклуса  проточног система је време потребно за напредовање једног скупа инструкција за један степен кроз систем.  = max[i ] + d = m +d, 1 i  k где је m– максимално кашњење кроз степен, k– број проточних степени, d– кашњење лечева.

  18. Перформансе проточних система • У општем случају, кашњење d је еквивалентно периоду тактног сигнала док је m>>d.

  19. Перформансе проточних система • Сада претпоставимо да се обрађује n инструкција без гранања. • Укупно потребно време Tk да се изврши свих n инструкција је Tk = [k + (n-1)] • Убрзање у односу на непроточни систем је

  20. Гранање код проточног система • Један од основних проблема код пројектовања проточног система је обезбеђивање стабилног дотока инструкција у почетни степен. • Основну сметњу представљају инструкције условног гранања, јер у току извршења инструкције није могуће одредити хоће ли се гранање извршити или не.

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

  22. Гранање код проточног система • Вишеструки токови. Приступ грубе силе је да се копира почетни део проточног система и омогући систему да прибави обе инструкције формирајући тaко два низа. • Два су проблема: • Кашњење због надметања у приступу регистрима и меморији. • Друга инструкција гранања може да уђе у систем (у оба тока) пре него што се одлука о гранању донесе. Свака нова инструкција гранања захтева додатне токове. • Упркос недостацима може да унапреди паралелизам. Примери машина које користе два проточна тока су IBM 370/168 и IBM 3033.

  23. Гранање код проточног система • Прибављање циља гранања унапред. Када се препозна условно гранање, циљ гранања се унапред прибавља, поред прибављања инструкције која следи иза гранања. • Циљна инструкција се памти док се инструкција не изврши. Ако се деси гранање, циљна инструкција је већ прибављена. • Овај приступ користи рачунар IBM 360/91.

  24. Гранање код проточног система • Бафер петљи. Ради се о малој брзој меморији којом управља степен припреме инструкције и која садржи n најскорије прибављених инструкција у секвенци. • Ако се деси гранање, хардвер најпре проверава да ли је циљна инструкција у баферу. Ако јесте, следећа инструкција се прибавља из бафера.

  25. Гранање код проточног система • Бафер петљи има три предности: • Када се користи прибављање унапред, бафер петљи ће садржати неке инструкције које су секвенцијално испред инструкције која се прибавља. Дакле, инструкције прибављене у секвенци су расположиве без коришћења уобичајеног времена за приступ меморији. • Ако је циљна инструкција свега неколико локација испред инструкције гранања, она је онда већ у баферу. То је чест случај код IF-THEN и IF-THEN-ELSE секвенци. • Ова стратегија је нарочито погодна за рад се петљама, нарочито ако је бафер довољно велики да прими све инструкције из тела петље.

  26. Адреса гранања Инструкција која се декодира у случају поготка. Бафер петљи (256 бајтова) 8 Битови највеће тежине адресе се пореде ради одређивања поготка. Сл. 6. Бафер петљи. Гранање код проточног система • Бафер петљи је у суштини сличан кешу инструкција, само што садржи инструкције у секвенци и много је мањи (тиме и јефтинији).

  27. Гранање код проточног система • Примермашина које користебафер петљи су неке од машина фирме CDC (Star-100, 6600, 7600). • Специфични облик бафера петљи се среће и код процесора Motorola 68010 за извршавање петљи од три инструкције.

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

  29. Гранање код проточног система • Прва три приступа су статичка и не зависе од историје извршења до момента када се наиђе на инструкцију гранања. • Последња два приступа су динамичка и зависе од историје извршења. • Прва два приступа су најједноставнија. Ту се претпоставља да се гранање увек (не) дешава. 68020 и VAX 11/780 користе приступ да се гранање никад не дешава.

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

  31. Гранање код проточног система • Предвиђање на основу кода операције састоји се у томе да процесор претпоставља да ће се гранање заиста обавити за неке кодове операција док за друге не. • Анализе показују да се у више од 75% случајева овакво предвиђање показује успешним.

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

  33. Прочитај следећу инструкцију условног гранања Прочитај следећу инструкцију условног гранања Предвиђање има гранања Предвиђање нема гранања да Гранање извршено не Гранање извршено не да Прочитај следећу инструкцију условног гранања Прочитај следећу инструкцију условног гранања Предвиђање има гранања Предвиђање нема гранања да Гранање извршено не не Гранање извршено да Сл. 7. Дијаграм тока предвиђања гранања. Гранање код проточног система

  34. Има гранања Предвиђање има гранања Предвиђање има гранања Нема гранања Има гранања Има гранања Нема гранања Предвиђање нема гранања Предвиђање нема гранања Нема гранања Нема гранања Има гранања Сл. 8. Дијаграм стања предвиђања гранања. Гранање код проточног система

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

  36. Гранање код проточног система • Табела историје гранања је мала кеш меморија придружена степену припреме инструкције. • Свака ставка у табели се састоји од три елемента: • адресе инструкције гранања, • извесног броја битова историје који памте стање употребе те инструкције, и • информације о циљној инструкцији.

  37. Гранање код проточног система • У већини имплементација треће поље садржи адресу циљне инструкције. Друга могућност је да то поље садржи циљну инструкцију. • Памћење циљне адресе даје мању табелу али дуже време припреме инструкције него када се памти сама циљна инструкција! • Последња динамичка шема састоји се од преуређивања инструкција програма тако да се инструкција гранања јавља касније него што је стварна намера (закашњено гранање).

More Related