Back

ⓘ Спекулативно извршавање




                                     

ⓘ Спекулативно извршавање

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

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

Циљ нам је да обезбедимо већу конкурентност ако нам је доступно више ресурса. Ова техника се користи у различим областима предвиђање гранања у проточној обради процесорских инструкција, превремено хватање података из меморије енгл. prefetching memory и из фајлова, и оптимистична контрола конкурентности енгл. optimistic concurrency control у базама.

                                     

1. Процесори

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

                                     

2. Компајлери

У огранизацији рачунара за мултипроцесорске системе, спекулативно звршавање укључује код који извршава процесор док је безпослен у следећем блоку процесора, у случају да не постји зависност кода који се може извршити на другом процесору. Корист ове шеме је у томе што се смањује време одговора за индивидуалне процесоре и за укупан систем. Међутим, постоји мрежни пенал за просечне случајеве, пошто у случају лошег улога, проточна обрада треба бити "испрана". Компајлер је ограничен при издавању инструкција спекулативног извршавања, пошто захтева помоћ хардвера да би баферовао ефекте спекулативно извршених инструкција. Без подршке хардвера, компајлер ће моћи да изда само спекулативне инструкције које немају нежене ефекте у случају погрешне спекулације.

                                     

3. Жељно извршавање

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

                                     

4. Лења процена

Лења процена не спекулише. Инкорпорација спекулативног извршавања у имплементацију Haskell-а је тренутна тема истраживања. "Жељни Haskell" је дизајниран око идеје спекулативног извршавања. Скорашње верзије GHC-а подржавају облик спекулативног извршавања са механизмом за абортирање да би се повукао у случају лошег избора званог "оптимистично извршавање".

                                     
  • ванредно извршавање Спекулативно извршавање које омогућава извршавање целих инструкција или делова инструкција пре провере да ли би ова извршавања уопште
  • инструкција протеклих грана, која се још није разрешила, се назива спекулативно извршавање Да ли су инструкције одбачене на централизован ред или на више
  • гранања се користи да се смањи појављивање грана и да се повећа спекулативно извршавање инструкција. У овој функцији, услови грана се конвертују да прикажу
  • укључују способност векторског извршавања Супернитна обрада Истовремена вишенитна обрада SMT Спекулативно извршавање Mike Johnson 1991 Superscalar
  • Међутим, .. ако су у кеш меморији нивоа 1 осетљиви подаци, спекулативно извршавање може да их користи пре него што процесор утврди да нема дозволу
  • унапређења се могу постићи извршавањем инструкција редоследом другачијим од онога како је писано у програму ово се зове извршавање ван реда. Ове све три технике
  • меморија, кеш са побољшаним хит стопама, побољшана грана прогнозе, спекулативно извршавање итд док надамо се не жртвују превише фреквенције сата водећи
  • очекиваних времена извршавања и алгоритамска скалабилност Супернитна обрада Simultaneous multithreading Спекулативно извршавање or Eager execution Threaded
  • Optional VFPv3 FPU Optional NEON Jazelle RCT и DBX, спекулативно суперскаларно извршавање ван реда, 1 4 SMP језгара, контролна јединица SCU генерички
  • које је потребно за извршавање најспоријих под - операција било које инструкције смањење времена циклуса често убрзава извршавање других инструкција. Фокус