Ця стаття потребує додаткових для поліпшення її . (січень 2018) |
Спекулятивне виконання — (від лат. specio - погляд) це метод прискорення обчислень, коли комп'ютер маючи виконує обчислення, не чекаючи чи буде виконана умова при яких ці обчислення будуть необхідні. Якщо виявиться що робота не була потрібна то зміни скасовуються та результати ігноруються. Такий підхід використовується в різних областях, у тому числі прогнозування розгалуження в конвеєрах процесорів, упереджувальна вибірка з пам'яті та файлів, і оптимістичне керування паралелізмом у системах баз даних.
Мета полягає в тому, щоб за умови наявності додаткових ресурсів використовувати їх, застосовувати паралелізм, робити декілька різновидів обчислень, які залежать від умови яка на даний момент невідома, проте не витрачати реальний час на очікування допоки умова стане відома.
Огляд
Під терміном «динамічне (спекулятивне) виконання» мається на увазі наступна сукупність можливостей:[]
- Глибоке передбачення розгалужень (з ймовірністю> 90 % можна передбачити 10-15 найближчих переходів).
- Аналіз потоку даних (на 20-30 кроків вперед переглянути програму і визначити залежність команд за даними або ресурсів).
- Випереджувальне виконання команд (процесор може виконувати команди в порядку, відмінному від їх проходження в програмі).
Сучасні конвеєрні мікропроцесори використовують спекулятивне виконання, щоб знизити вартість команд умовного переходу з використанням схем, що передбачають шлях виконання програми. З метою підвищення ефективності та використання ресурсів комп'ютера, інструкції можуть бути заплановані в той час, коли ще не була визначено, що інструкції повинні бути виконані. У оптимізації компіляторів для декількох систем обробки, спекулятивне виконання передбачає дозвільний процесор, що виконує код в наступному блоці процесора, якщо немає залежності від коду, який може бути запущений на інших процесорах. Перевага цієї схеми є скорочення часу відгуку для окремих процесорів і системи в цілому. Компілятор обмежується видачею спекулятивної команди виконання, так як вона вимагає апаратного забезпечення за для буферизації. Без апаратної підтримки, компілятор може видати тільки спекулятивні інструкції, які не мають ніяких побічних ефектів у разі неправильної спекуляції:16.
Нетерпляче обчислення
(Нетерпляче обчислення) (англ. eager evaluation) являє собою форму спекулятивного виконання, де виконуються обидві сторони умовної гілки; проте, залишається лише результат тієї гілки, чий предикат стає вірним.
Наприклад ми перевіряємо Гіпотезу Коллатца на процесорі що має декілька блоків для обчислень. Якщо наступне число парне то ми його ділимо на 2, якщо непарне то множимо на 3 та додаємо 1. В один такт ми можемо одночасно робити ці арифметичні операції, але для перевірки на парність нам необхідно віддати результат на окремий блок, на що витратиться додатковий такт. Тому при нетерплячому обчисленні один блок ділить число послідовності на 2, другий множить на 3 та додає 1, а окремий блок визначає його парність, і в залежності від парності забирає результат з першого або другого блоку. Звісно обидва блоки навантажені роботою, проте ми виграємо в часі.
З необмеженими ресурсами, нетерпляче обчислення (також відоме як пророкування виконання) могло б забезпечити таку ж продуктивність що і передбачення переходів. З обмеженими ресурсами нетерпляче обчислення слід використовувати обережно, тому що кількість необхідних ресурсів зростає з кожним етапом.:148—150
Передбачуване виконання
Передбачуване виконання це різновид спекулятивного виконання, за якого процесор прогнозує результат певної операції та починає виконувати інструкції на основі цього прогнозу. Якщо прогноз виявляється вірним, виконані інструкції зберігаються. Але якщо прогноз виявиться помилковий, процесору доведеться скасовувати виконані інструкції та починати все знову. В загальній формі це називається передбачення значень, та використовується в модулі передбачення переходів та [en].
Ліниві обчислення
Це частина архітектури мови програмування, та моделі обчислень, а не процесора. З точки зору спекулятивного виконання це протилежна стратегія. Ліниві обчислення, або виклик за потребою — це стратегія обчислення при якій обчислення виразу не виконується до того моменту, поки значення виразу не стане потрібним.
Уразливості
Починаючи з 2017 року було знайдено декілька уразливостей, які вдалось реалізувати завдяки реалізації спекулятивного виконання в процесорах.
Примітки
- https://www.bbc.com/news/magazine-35933859 Speculation comes from the Latin word specio, meaning look, which fathered a great tribe of words ranging from "spectacular" to "despicable".
- Butler Lampson (12 грудня 2006). (PDF). OPODIS. Bordeaux, France: Microsoft Research. Архів оригіналу (PDF) за 4 березня 2016. Процитовано 2 грудня 2016.
- Prabhakar Raghavan; Hadas Schachnai; Mira Yaniv (1998). (англ.). IBM, Research Division. Архів оригіналу за 27 листопада 2020. Процитовано 18 січня 2011.
- Kung, H. T.; Robinson, John T. (June 1981). On optimistic methods for concurrency control. ACM Trans. Database Syst. Т. 6, № 2.
- Bernd Krieg-Brückner (1992). . Springer. с. 56—57. ISBN . Архів оригіналу за 12 червня 2014. Процитовано 18 січня 2011.
- Laplante, Phillip A. (2004). Real-Time Systems Design and Analysis (англ.) (вид. 3rd). Wiley-IEEE Press. с. 391. ISBN .
{{}}
:|access-date=
вимагає|url=
() - Lilja, David J.; Bird, Peter L. (31 травня 1994). The Interaction of Compilation Technology and Computer Architecture (англ.). Springer Science & Business Media. ISBN .
- Šilc, Jurij; Robic, Borut; Ungerer, Theo (8 червня 1999). Processor Architecture: From Dataflow to Superscalar and Beyond (англ.). Springer Science & Business Media. ISBN .
Посилання
- «Speculative computation in Multilisp.» [ 7 лютого 2017 у Wayback Machine.]
- Проект спільноти програмістів з документації виявлених уразливостей CPU security bugs caused by speculative execution [ 9 січня 2018 у Wayback Machine.] (Meltdown та Spectre)
Це незавершена стаття про апаратне забезпечення. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2018 Spekulyativne vikonannya vid lat specio poglyad ce metod priskorennya obchislen koli komp yuter mayuchi vikonuye obchislennya ne chekayuchi chi bude vikonana umova pri yakih ci obchislennya budut neobhidni Yaksho viyavitsya sho robota ne bula potribna to zmini skasovuyutsya ta rezultati ignoruyutsya Takij pidhid vikoristovuyetsya v riznih oblastyah u tomu chisli prognozuvannya rozgaluzhennya v konveyerah procesoriv uperedzhuvalna vibirka z pam yati ta fajliv i optimistichne keruvannya paralelizmom u sistemah baz danih Meta polyagaye v tomu shob za umovi nayavnosti dodatkovih resursiv vikoristovuvati yih zastosovuvati paralelizm robiti dekilka riznovidiv obchislen yaki zalezhat vid umovi yaka na danij moment nevidoma prote ne vitrachati realnij chas na ochikuvannya dopoki umova stane vidoma OglyadPid terminom dinamichne spekulyativne vikonannya mayetsya na uvazi nastupna sukupnist mozhlivostej dzherelo Gliboke peredbachennya rozgaluzhen z jmovirnistyu gt 90 mozhna peredbachiti 10 15 najblizhchih perehodiv Analiz potoku danih na 20 30 krokiv vpered pereglyanuti programu i viznachiti zalezhnist komand za danimi abo resursiv Viperedzhuvalne vikonannya komand procesor mozhe vikonuvati komandi v poryadku vidminnomu vid yih prohodzhennya v programi Suchasni konveyerni mikroprocesori vikoristovuyut spekulyativne vikonannya shob zniziti vartist komand umovnogo perehodu z vikoristannyam shem sho peredbachayut shlyah vikonannya programi Z metoyu pidvishennya efektivnosti ta vikoristannya resursiv komp yutera instrukciyi mozhut buti zaplanovani v toj chas koli she ne bula viznacheno sho instrukciyi povinni buti vikonani U optimizaciyi kompilyatoriv dlya dekilkoh sistem obrobki spekulyativne vikonannya peredbachaye dozvilnij procesor sho vikonuye kod v nastupnomu bloci procesora yaksho nemaye zalezhnosti vid kodu yakij mozhe buti zapushenij na inshih procesorah Perevaga ciyeyi shemi ye skorochennya chasu vidguku dlya okremih procesoriv i sistemi v cilomu Kompilyator obmezhuyetsya vidacheyu spekulyativnoyi komandi vikonannya tak yak vona vimagaye aparatnogo zabezpechennya za dlya buferizaciyi Bez aparatnoyi pidtrimki kompilyator mozhe vidati tilki spekulyativni instrukciyi yaki ne mayut niyakih pobichnih efektiv u razi nepravilnoyi spekulyaciyi 16 Neterplyache obchislennyaNeterplyache obchislennya angl eager evaluation yavlyaye soboyu formu spekulyativnogo vikonannya de vikonuyutsya obidvi storoni umovnoyi gilki prote zalishayetsya lishe rezultat tiyeyi gilki chij predikat staye virnim Napriklad mi pereviryayemo Gipotezu Kollatca na procesori sho maye dekilka blokiv dlya obchislen Yaksho nastupne chislo parne to mi jogo dilimo na 2 yaksho neparne to mnozhimo na 3 ta dodayemo 1 V odin takt mi mozhemo odnochasno robiti ci arifmetichni operaciyi ale dlya perevirki na parnist nam neobhidno viddati rezultat na okremij blok na sho vitratitsya dodatkovij takt Tomu pri neterplyachomu obchislenni odin blok dilit chislo poslidovnosti na 2 drugij mnozhit na 3 ta dodaye 1 a okremij blok viznachaye jogo parnist i v zalezhnosti vid parnosti zabiraye rezultat z pershogo abo drugogo bloku Zvisno obidva bloki navantazheni robotoyu prote mi vigrayemo v chasi Z neobmezhenimi resursami neterplyache obchislennya takozh vidome yak prorokuvannya vikonannya moglo b zabezpechiti taku zh produktivnist sho i peredbachennya perehodiv Z obmezhenimi resursami neterplyache obchislennya slid vikoristovuvati oberezhno tomu sho kilkist neobhidnih resursiv zrostaye z kozhnim etapom 148 150Peredbachuvane vikonannyaDokladnishe Konveyer informatika Peredbachuvane vikonannya ce riznovid spekulyativnogo vikonannya za yakogo procesor prognozuye rezultat pevnoyi operaciyi ta pochinaye vikonuvati instrukciyi na osnovi cogo prognozu Yaksho prognoz viyavlyayetsya virnim vikonani instrukciyi zberigayutsya Ale yaksho prognoz viyavitsya pomilkovij procesoru dovedetsya skasovuvati vikonani instrukciyi ta pochinati vse znovu V zagalnij formi ce nazivayetsya peredbachennya znachen ta vikoristovuyetsya v moduli peredbachennya perehodiv ta en Linivi obchislennyaDokladnishe Linivi obchislennya Ce chastina arhitekturi movi programuvannya ta modeli obchislen a ne procesora Z tochki zoru spekulyativnogo vikonannya ce protilezhna strategiya Linivi obchislennya abo viklik za potreboyu ce strategiya obchislennya pri yakij obchislennya virazu ne vikonuyetsya do togo momentu poki znachennya virazu ne stane potribnim UrazlivostiPochinayuchi z 2017 roku bulo znajdeno dekilka urazlivostej yaki vdalos realizuvati zavdyaki realizaciyi spekulyativnogo vikonannya v procesorah Spectre Meltdown en en en Primitkihttps www bbc com news magazine 35933859 Speculation comes from the Latin word specio meaning look which fathered a great tribe of words ranging from spectacular to despicable Butler Lampson 12 grudnya 2006 PDF OPODIS Bordeaux France Microsoft Research Arhiv originalu PDF za 4 bereznya 2016 Procitovano 2 grudnya 2016 Prabhakar Raghavan Hadas Schachnai Mira Yaniv 1998 angl IBM Research Division Arhiv originalu za 27 listopada 2020 Procitovano 18 sichnya 2011 Kung H T Robinson John T June 1981 On optimistic methods for concurrency control ACM Trans Database Syst T 6 2 Bernd Krieg Bruckner 1992 Springer s 56 57 ISBN 978 3 540 55253 6 Arhiv originalu za 12 chervnya 2014 Procitovano 18 sichnya 2011 Laplante Phillip A 2004 Real Time Systems Design and Analysis angl vid 3rd Wiley IEEE Press s 391 ISBN 978 0 471 22855 4 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite book title Shablon Cite book cite book a access date vimagaye url dovidka Lilja David J Bird Peter L 31 travnya 1994 The Interaction of Compilation Technology and Computer Architecture angl Springer Science amp Business Media ISBN 978 0 7923 9451 8 Silc Jurij Robic Borut Ungerer Theo 8 chervnya 1999 Processor Architecture From Dataflow to Superscalar and Beyond angl Springer Science amp Business Media ISBN 978 3 540 64798 0 Posilannya Speculative computation in Multilisp 7 lyutogo 2017 u Wayback Machine Proekt spilnoti programistiv z dokumentaciyi viyavlenih urazlivostej CPU security bugs caused by speculative execution 9 sichnya 2018 u Wayback Machine Meltdown ta Spectre Ce nezavershena stattya pro aparatne zabezpechennya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi