Ця стаття не містить . (серпень 2019) |
EPIC (англ. explicitly parallel instruction computing) — мікропроцесорна архітектура з явним паралелізмом команд. Термін введений в 1997 році альянсом HP і Intel для архітектури Intel Itanium. EPIC дозволяє мікропроцесору виконувати інструкції паралельно, спираючись на роботу компілятора, а не виявляючи можливість паралельної роботи інструкцій за допомогою спеціальних схем. У теорії, це могло спростити масштабування обчислювальної потужності процесора без збільшення тактової частоти.
Витоки в VLIW
У 1989 дослідники компанії HP дійшли висновку, що RISC архітектури мають явну межу інструкцій, виконуваних за такт. Були розпочаті розробки нової архітектури, пізніше названої EPIC. Дослідження ґрунтувалися на архітектурах VLIW, в яких кожне командне слово містить кілька операцій, виконуваних на декількох виконавчих пристроях.
Однією з цілей EPIC був перенесення складної логіки планування інструкцій з мікропроцесора в компілятор, який би планував інструкції статично. Це дозволило б прибрати планувальник інструкцій з процесора, звільнивши місце і потужність для інших елементів, наприклад, додаткових АЛП. Іншою метою було збільшити ступінь паралелізму інструкцій (instruction level parallelism) за рахунок великих можливостей компілятора з пошуку незалежних команд.
VLIW у своїй оригінальній формі мала кілька недоліків, що перешкоджають масовому впровадженню:
- Набори інструкцій VLIW не є зворотньо сумісними між різними поколіннями процесорів. Якщо в більш новому процесорі буде використовуватися більше виконавчих пристроїв (наприклад, АЛП), то програми для нового процесора не можна виконати на старому, вужчому процесорі (з меншою кількістю пристроїв).
- Затримки завантаження даних з ієрархії пам'яті (кешей, DRAM) не є повністю передбачуваними. Через це статичне планування інструкцій завантаження та використання даних стають вкрай складними.
Еволюція VLIW
Архітектура EPIC має такі особливості для усунення недоліків VLIW:
- Кожна група з декількох інструкцій називається бандл (bundle). Кожен бандл може мати стоповий біт, що позначає, що наступна група залежить від результатів роботи даної. Такий біт дозволяє створювати майбутні покоління архітектури з можливістю паралельного запуску декількох бандлів. Інформація про залежності обчислюється компілятором, і тому апаратурі не доведеться проводити додаткову перевірку незалежності операндів.
- Для передпідкачки даних використовується інструкція програмної підкачки (software prefetch). Передпідкачка збільшує ймовірність того, що до моменту виконання команди завантаження, дані вже будуть в кеші. Також, в цій інструкції можуть бути додаткові вказівки для вибору різних рівнів кешу для даних.
- Інструкція спекулятивного завантаження використовується для завантаження даних до того, як стане відомо, чи будуть вони використані (bypassing control dependencies), або чи будуть вони змінені перед використанням (bypassing data dependencies).
- Інструкція перевірки завантаження (check load instruction) допомагає інструкціям спекулятивного завантаження за допомогою перевірок, чи залежала інструкція завантаження від подальшого запису. У разі наявності подібної залежності, спекулятивне завантаження повинно бути повторено.
Архітектура EPIC також включає в себе кілька концепцій (grab-bag) для збільшення ILP (паралелізму інструкцій,англ. Instruction-level parallelism):
- Передбачення розгалужень використовується, щоб знизити частоту переходів і для збільшення спекулятивності виконання інструкцій. В останньому випадку, умовне розгалуження перетворюється в заповнення предикатних регістрів, потім виконуються обидві гілки. Результат тієї гілки, яка не повинна була виконуватися, скасовується за значенням предикатного регістру.
- Відкладені виняткові ситуації, що використовують біт Not a thing в регістрах загального призначення. Вони дозволяють продовжувати спекулятивне виконання навіть після виняткових ситуацій.
- Вкрай великий регістровий файл, щоб уникнути необхідності в перейменуванні регістрів.
В архітектурі Itanium також був доданий обертовий регістровий файл, необхідний для спрощення програмної конвейєризації циклів (software pipelining). За наявності такого файлу зникає необхідність в ручній розкрутці циклів і ручного перейменування регістрів.
Інші розробки і дослідження
Існувала деяка кількість досліджень архітектур EPIC, не пов'язаних з розробками по Itanium.
- Проект IMPACT в університеті Іллінойсу в Urbana-Champaign під керівництвом Wen-mei Hwu сильно вплинув на пізніші дослідження.
- Архітектура PlayDoh від HP-labs.
- Федерація Gelato, співтовариство розробників з розробки більш ефективних компіляторів для Linux на серверах Itanium.
Див. також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno serpen 2019 EPIC angl explicitly parallel instruction computing mikroprocesorna arhitektura z yavnim paralelizmom komand Termin vvedenij v 1997 roci alyansom HP i Intel dlya arhitekturi Intel Itanium EPIC dozvolyaye mikroprocesoru vikonuvati instrukciyi paralelno spirayuchis na robotu kompilyatora a ne viyavlyayuchi mozhlivist paralelnoyi roboti instrukcij za dopomogoyu specialnih shem U teoriyi ce moglo sprostiti masshtabuvannya obchislyuvalnoyi potuzhnosti procesora bez zbilshennya taktovoyi chastoti Vitoki v VLIWU 1989 doslidniki kompaniyi HP dijshli visnovku sho RISC arhitekturi mayut yavnu mezhu instrukcij vikonuvanih za takt Buli rozpochati rozrobki novoyi arhitekturi piznishe nazvanoyi EPIC Doslidzhennya gruntuvalisya na arhitekturah VLIW v yakih kozhne komandne slovo mistit kilka operacij vikonuvanih na dekilkoh vikonavchih pristroyah Odniyeyu z cilej EPIC buv perenesennya skladnoyi logiki planuvannya instrukcij z mikroprocesora v kompilyator yakij bi planuvav instrukciyi statichno Ce dozvolilo b pribrati planuvalnik instrukcij z procesora zvilnivshi misce i potuzhnist dlya inshih elementiv napriklad dodatkovih ALP Inshoyu metoyu bulo zbilshiti stupin paralelizmu instrukcij instruction level parallelism za rahunok velikih mozhlivostej kompilyatora z poshuku nezalezhnih komand VLIW u svoyij originalnij formi mala kilka nedolikiv sho pereshkodzhayut masovomu vprovadzhennyu Nabori instrukcij VLIW ne ye zvorotno sumisnimi mizh riznimi pokolinnyami procesoriv Yaksho v bilsh novomu procesori bude vikoristovuvatisya bilshe vikonavchih pristroyiv napriklad ALP to programi dlya novogo procesora ne mozhna vikonati na staromu vuzhchomu procesori z menshoyu kilkistyu pristroyiv Zatrimki zavantazhennya danih z iyerarhiyi pam yati keshej DRAM ne ye povnistyu peredbachuvanimi Cherez ce statichne planuvannya instrukcij zavantazhennya ta vikoristannya danih stayut vkraj skladnimi Evolyuciya VLIWArhitektura EPIC maye taki osoblivosti dlya usunennya nedolikiv VLIW Kozhna grupa z dekilkoh instrukcij nazivayetsya bandl bundle Kozhen bandl mozhe mati stopovij bit sho poznachaye sho nastupna grupa zalezhit vid rezultativ roboti danoyi Takij bit dozvolyaye stvoryuvati majbutni pokolinnya arhitekturi z mozhlivistyu paralelnogo zapusku dekilkoh bandliv Informaciya pro zalezhnosti obchislyuyetsya kompilyatorom i tomu aparaturi ne dovedetsya provoditi dodatkovu perevirku nezalezhnosti operandiv Dlya peredpidkachki danih vikoristovuyetsya instrukciya programnoyi pidkachki software prefetch Peredpidkachka zbilshuye jmovirnist togo sho do momentu vikonannya komandi zavantazhennya dani vzhe budut v keshi Takozh v cij instrukciyi mozhut buti dodatkovi vkazivki dlya viboru riznih rivniv keshu dlya danih Instrukciya spekulyativnogo zavantazhennya vikoristovuyetsya dlya zavantazhennya danih do togo yak stane vidomo chi budut voni vikoristani bypassing control dependencies abo chi budut voni zmineni pered vikoristannyam bypassing data dependencies Instrukciya perevirki zavantazhennya check load instruction dopomagaye instrukciyam spekulyativnogo zavantazhennya za dopomogoyu perevirok chi zalezhala instrukciya zavantazhennya vid podalshogo zapisu U razi nayavnosti podibnoyi zalezhnosti spekulyativne zavantazhennya povinno buti povtoreno Arhitektura EPIC takozh vklyuchaye v sebe kilka koncepcij grab bag dlya zbilshennya ILP paralelizmu instrukcij angl Instruction level parallelism Peredbachennya rozgaluzhen vikoristovuyetsya shob zniziti chastotu perehodiv i dlya zbilshennya spekulyativnosti vikonannya instrukcij V ostannomu vipadku umovne rozgaluzhennya peretvoryuyetsya v zapovnennya predikatnih registriv potim vikonuyutsya obidvi gilki Rezultat tiyeyi gilki yaka ne povinna bula vikonuvatisya skasovuyetsya za znachennyam predikatnogo registru Vidkladeni vinyatkovi situaciyi sho vikoristovuyut bit Not a thing v registrah zagalnogo priznachennya Voni dozvolyayut prodovzhuvati spekulyativne vikonannya navit pislya vinyatkovih situacij Vkraj velikij registrovij fajl shob uniknuti neobhidnosti v perejmenuvanni registriv V arhitekturi Itanium takozh buv dodanij obertovij registrovij fajl neobhidnij dlya sproshennya programnoyi konvejyerizaciyi cikliv software pipelining Za nayavnosti takogo fajlu znikaye neobhidnist v ruchnij rozkrutci cikliv i ruchnogo perejmenuvannya registriv Inshi rozrobki i doslidzhennyaIsnuvala deyaka kilkist doslidzhen arhitektur EPIC ne pov yazanih z rozrobkami po Itanium Proekt IMPACT v universiteti Illinojsu v Urbana Champaign pid kerivnictvom Wen mei Hwu silno vplinuv na piznishi doslidzhennya Arhitektura PlayDoh vid HP labs Federaciya Gelato spivtovaristvo rozrobnikiv z rozrobki bilsh efektivnih kompilyatoriv dlya Linux na serverah Itanium Div takozhCya stattya ye zagotovkoyu Vi mozhete dopomogti proyektu dorobivshi yiyi Ce povidomlennya varto zaminiti tochnishim