Паралелізм на рівні команд (англ. Instruction-level parallelism, ILP) — є мірою того, яка кількість операцій в комп'ютерній програмі може виконуватися одночасно. Потенційне поєднання виконання команд називається паралелізмом на рівні команд.
Є два підходи до паралелізму на рівні команд:
Рівень апаратного забезпечення працює на динамічному паралелізмі, тоді як, рівень програмного забезпечення працює на статичному паралелізмі. Процесор Pentium працює на динамічній послідовності паралельного виконання, але Itanium процесор працює на статичному паралелізмі.
Розглянемо наступну програму:
- e = a + b
- f = c + d
- m = e * f
Операція 3 залежить від результатів 1 і 2, тому вона не може бути розрахована, поки обидві з них не будуть завершені. Однак операції 1 і 2 не залежать від будь-якої іншої операції, тому вони можуть бути обчислені одночасно. Якщо припустити, що кожна операція може бути завершена в одну одиницю часу, то ці три інструкції можуть бути завершені в цілому за дві одиниці часу, даючи ILP 3/2.
Мета розробників компілятора і процесора, полягає у виявленні та отриманні від ILP максимально можливої вигоди. Звичайні програми, як правило, написані під послідовну модель виконання, де команди виконуються одна за одною в порядку, встановленому програмістом. ILP дозволяє компілятору і процесору перекривати виконання декількох інструкцій або навіть змінити порядок виконання команд.
Скільки ILP існує в програмах — сильно залежить від області застосування програми. У деяких областях, таких як графіка і наукові обчислення, число може бути дуже великим. Тим не менш, робочі навантаження, такі як криптографія, можуть проявляти набагато менше паралелізму.
Мікроархітектурні методи для забезпечення ILP::
- Обчислювальний конвеєр, де виконання декількох інструкцій може частково перекриватися.
- Суперскалярне виконання, VLIW і тісно пов'язана з ними концепція мікропроцесорної архітектури з явним паралелізмом команд, в якій кілька функціональних блоків використовуються для виконання декількох команд паралельно
- Позачергове виконання, де інструкції виконуються в будь-якому порядку, що не порушує залежності даних. Зверніть увагу, що цей метод не залежить ні від конвеєра, ні від суперскаляра. Поточна реалізація позачергового виконання динамічно (тобто, в той час як програма виконується і без всякої допомоги з боку компілятора) витягує ILP від звичайних програм. Як альтернативу можна витягти цей паралелізм під час компіляції і якось передати цю інформацію до апаратного забезпечення. Через складність техніки перерахунку позачергового виконання, промисловість переглянула набір команд, які явно кодують кілька незалежних операцій в інструкції.
- Перейменування регістрів, яке посилається на метод, який використовується, щоб уникнути непотрібної серіалізації операцій, вироблених програмою, які накладають повторне використання регістрів по цих операціях, використовується для позачергового виконання.
- Спекулятивне виконання, яке дозволяє виконанню повних інструкцій або частин інструкцій переконатися, чи слід цьому виконанню відбутися. Часто використовуваною формою спекулятивного виконання є пропозиція управління потоком, де інструкції пропускають управління потоком інструкцій (наприклад, перехід) і виконуються до того як визначиться мета потоку управління інструкцій. Кілька інших форми спекулятивного виконання були запропоновані і використовуються в тому числі для спекулятивного виконання, обумовлені прогнозуванням значення, прогнозуванням залежностей пам'яті і прогнозування латентності кешу.
- Передбачення переходів, який використовується, щоб уникнути припинення контролю залежностей, які необхідно вирішити. Провісник переходів використовується з спекулятивним виконанням.
Потокові архітектури являють собою інший клас архітектур, де ILP явно вказані. Наприклад, архітектуру TRIPS.
Реалізації
В останні роки методи ILP використовувалися для підвищення продуктивності, незважаючи на зростаючу невідповідність між робочими частотами процесора і часом доступу до пам'яті (ранні реалізації ILP, такі як (IBM System/360 Model 91) використовували методи ILP щоб подолати обмеження, що накладаються відносно невеликого файлу регістрів).
В даний час його втрати кешу в основну пам'ять будуть коштувати кілька сотень циклів процесора. Хоча в принципі можна використовувати ILP допускаючи навіть такі затримки пам'яті зв'язують ресурси і витрати розсіюваної потужності непропорційно. Крім того, складність і часто латентність базового обладнання структур призводить до зниження робочої частоти і подальшого скорочення переваг. Таким чином, вищезазначені методи виявляються недостатніми, щоб стримати процесор від зупинки даних поза кристалом. Замість цього, галузь рухається в бік використання більш високих рівнів паралелізму, які можуть бути використані за допомогою таких методів, як багатопроцесорність і багатопоточність .
Примітки
Посилання
- Approaches to addressing the Memory Wall
- Wired magazine article that refers to the above paper
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Paralelizm na rivni komand angl Instruction level parallelism ILP ye miroyu togo yaka kilkist operacij v komp yuternij programi mozhe vikonuvatisya odnochasno Potencijne poyednannya vikonannya komand nazivayetsya paralelizmom na rivni komand Ye dva pidhodi do paralelizmu na rivni komand aparatnogo zabezpechennya programnogo zabezpechennya Riven aparatnogo zabezpechennya pracyuye na dinamichnomu paralelizmi todi yak riven programnogo zabezpechennya pracyuye na statichnomu paralelizmi Procesor Pentium pracyuye na dinamichnij poslidovnosti paralelnogo vikonannya ale Itanium procesor pracyuye na statichnomu paralelizmi Rozglyanemo nastupnu programu e a b f c d m e f Operaciya 3 zalezhit vid rezultativ 1 i 2 tomu vona ne mozhe buti rozrahovana poki obidvi z nih ne budut zaversheni Odnak operaciyi 1 i 2 ne zalezhat vid bud yakoyi inshoyi operaciyi tomu voni mozhut buti obchisleni odnochasno Yaksho pripustiti sho kozhna operaciya mozhe buti zavershena v odnu odinicyu chasu to ci tri instrukciyi mozhut buti zaversheni v cilomu za dvi odinici chasu dayuchi ILP 3 2 Meta rozrobnikiv kompilyatora i procesora polyagaye u viyavlenni ta otrimanni vid ILP maksimalno mozhlivoyi vigodi Zvichajni programi yak pravilo napisani pid poslidovnu model vikonannya de komandi vikonuyutsya odna za odnoyu v poryadku vstanovlenomu programistom ILP dozvolyaye kompilyatoru i procesoru perekrivati vikonannya dekilkoh instrukcij abo navit zminiti poryadok vikonannya komand Skilki ILP isnuye v programah silno zalezhit vid oblasti zastosuvannya programi U deyakih oblastyah takih yak grafika i naukovi obchislennya chislo mozhe buti duzhe velikim Tim ne mensh robochi navantazhennya taki yak kriptografiya mozhut proyavlyati nabagato menshe paralelizmu Mikroarhitekturni metodi dlya zabezpechennya ILP Obchislyuvalnij konveyer de vikonannya dekilkoh instrukcij mozhe chastkovo perekrivatisya Superskalyarne vikonannya VLIW i tisno pov yazana z nimi koncepciya mikroprocesornoyi arhitekturi z yavnim paralelizmom komand v yakij kilka funkcionalnih blokiv vikoristovuyutsya dlya vikonannya dekilkoh komand paralelno Pozachergove vikonannya de instrukciyi vikonuyutsya v bud yakomu poryadku sho ne porushuye zalezhnosti danih Zvernit uvagu sho cej metod ne zalezhit ni vid konveyera ni vid superskalyara Potochna realizaciya pozachergovogo vikonannya dinamichno tobto v toj chas yak programa vikonuyetsya i bez vsyakoyi dopomogi z boku kompilyatora vityaguye ILP vid zvichajnih program Yak alternativu mozhna vityagti cej paralelizm pid chas kompilyaciyi i yakos peredati cyu informaciyu do aparatnogo zabezpechennya Cherez skladnist tehniki pererahunku pozachergovogo vikonannya promislovist pereglyanula nabir komand yaki yavno koduyut kilka nezalezhnih operacij v instrukciyi Perejmenuvannya registriv yake posilayetsya na metod yakij vikoristovuyetsya shob uniknuti nepotribnoyi serializaciyi operacij viroblenih programoyu yaki nakladayut povtorne vikoristannya registriv po cih operaciyah vikoristovuyetsya dlya pozachergovogo vikonannya Spekulyativne vikonannya yake dozvolyaye vikonannyu povnih instrukcij abo chastin instrukcij perekonatisya chi slid comu vikonannyu vidbutisya Chasto vikoristovuvanoyu formoyu spekulyativnogo vikonannya ye propoziciya upravlinnya potokom de instrukciyi propuskayut upravlinnya potokom instrukcij napriklad perehid i vikonuyutsya do togo yak viznachitsya meta potoku upravlinnya instrukcij Kilka inshih formi spekulyativnogo vikonannya buli zaproponovani i vikoristovuyutsya v tomu chisli dlya spekulyativnogo vikonannya obumovleni prognozuvannyam znachennya prognozuvannyam zalezhnostej pam yati i prognozuvannya latentnosti keshu Peredbachennya perehodiv yakij vikoristovuyetsya shob uniknuti pripinennya kontrolyu zalezhnostej yaki neobhidno virishiti Provisnik perehodiv vikoristovuyetsya z spekulyativnim vikonannyam Potokovi arhitekturi yavlyayut soboyu inshij klas arhitektur de ILP yavno vkazani Napriklad arhitekturu TRIPS RealizaciyiV ostanni roki metodi ILP vikoristovuvalisya dlya pidvishennya produktivnosti nezvazhayuchi na zrostayuchu nevidpovidnist mizh robochimi chastotami procesora i chasom dostupu do pam yati ranni realizaciyi ILP taki yak IBM System 360 Model 91 vikoristovuvali metodi ILP shob podolati obmezhennya sho nakladayutsya vidnosno nevelikogo fajlu registriv V danij chas jogo vtrati keshu v osnovnu pam yat budut koshtuvati kilka soten cikliv procesora Hocha v principi mozhna vikoristovuvati ILP dopuskayuchi navit taki zatrimki pam yati zv yazuyut resursi i vitrati rozsiyuvanoyi potuzhnosti neproporcijno Krim togo skladnist i chasto latentnist bazovogo obladnannya struktur prizvodit do znizhennya robochoyi chastoti i podalshogo skorochennya perevag Takim chinom vishezaznacheni metodi viyavlyayutsya nedostatnimi shob strimati procesor vid zupinki danih poza kristalom Zamist cogo galuz ruhayetsya v bik vikoristannya bilsh visokih rivniv paralelizmu yaki mozhut buti vikoristani za dopomogoyu takih metodiv yak bagatoprocesornist i bagatopotochnist PrimitkiPosilannyaApproaches to addressing the Memory Wall Wired magazine article that refers to the above paper