Суперскалярність — архітектура обчислювального ядра, що використовує кілька декодерів команд, які можуть навантажувати роботою декілька виконавчих блоків. Планування виконання потоку команд є динамічним і здійснюється самим обчислювальним ядром.
Якщо в процесі роботи команди, що обробляються конвеєром, не суперечать одна одній, і одна не залежить від результату іншої, то такий пристрій може здійснити паралельне виконання команд. У суперскалярних системах рішення про запуск інструкції на виконання приймає сам обчислювальний модуль, що вимагає багато ресурсів. У пізніших системах, таких як Ельбрус і Itanium, використовується статпланування, тобто паралельні інструкції об'єднуються компілятором в довгу команду, в якій наперед відомо, що всі інструкції паралельні (архітектура VLIW).
Суперскалярна архітектура ЦП втілює форму паралелізму відому як паралелізм рівня інструкцій на одному процесорі.
Історія
Існує суперечка щодо того, яку ЕОМ можна вважати першою з використанням суперскалярної архітектури. У західній літературі найчастіше вказується CDC 6600 (1964) розроблена Сеймуром Креєм. У СРСР першою суперскалярною ЕОМ вважався «Ельбрус», розробка якого велася в 1973—1979 роках в . Основною структурною відзнакою Ельбруса від CDC 6600 (крім, природно, абсолютно іншої видимої програмісту системи команд — стекового типу) було те, що всі модулі виконання в ньому були конвеєризовані, як у сучасних суперскалярних мікропроцесорах. На підставі цього факту заявляв про пріоритет радянських ЕОМ у питанні побудови суперскалярних обчислювальних машин, однак його думка позбавлена достатніх підстав, бо вже наступна за CDC 6600 машина фірми Control Data, CDC 7600 1969 року мала конвеєризацію виконавчих пристроїв. Крім того, дещо раніше (1967) фірмою IBM була випущена машина (IBM 360/91), що використовує позачергове виконання, перейменування регістрів і конвеєризацію виконавчих пристроїв. Першим же комерційно широкодоступним суперскалярним мікропроцесором став Intel i960, що вийшов в 1988 році. У 1990-х роках основним виробником суперскалярних мікропроцесорів стала фірма Intel.
Реалізації
Процесори, що підтримують суперскалярність:
Архітектура | Перша реалізація | Рік | Розробник | Примітка |
---|---|---|---|---|
CDC 6600 | CDC 6600 | 1964 | Control Data Corporation | Конвеєр виконання команд, кілька виконуючих пристроїв (але не конвеєризованих) |
(IBM System/360 Model 91) | IBM | 1967 | Повна конвеєризація з динамічним перейменуванням регістрів та динамічним, під час виконання, визначенням порядку команд | |
CDC 7600 | CDC 7600 | 1969 | Control Data Corporation | Повна конвеєризація — і виконання команд, і самих виконуючих пристроїв |
Ельбрус | Ельбрус-1 | 1979 | ИТМиВТ | Повна конвеєризація з динамічним перейменуванням регістрів та динамічним, під час виконання, визначенням порядку команд |
Intel i960 | I960 | 1988 | Intel | |
SPARC | SuperSPARC | 1992 | Sun Microsystems | |
x86 | Pentium | 1993 | Intel | |
MIPS | R8000 | 1994 | MIPS Technologies | |
ARM | Cortex A8 | 2005 | ARM |
Прискорення обчислень
У суперскалярних обчислювальних машинах використовується ряд методів для прискорення обчислень, характерних насамперед для них, однак такі методи можуть використовуватися і в інших типах архітектур:
- Позачергове виконання (англ. Out-of-order execution) — метод, застосовуваний при розробці обчислювальних пристроїв, з метою підвищення продуктивності. Його особливість полягає у тому, що інструкції надходять у виконавчі модулі не в порядку їх слідування, як було в концепції виконання інструкцій по порядку (англ. In-Order execution), а по готовності до виконання. Серед широко відомих машин вперше цей метод була в істотній мірі реалізований в машинах CDC6600 фірми Control Data і IBM 360/91 фірми IBM.
- Перейменування регістрів (англ. Register Renaming) — метод ослаблення взаємозалежностей інструкцій, застосовуваний в процесорах, що здійснюють їх позачергове виконання (англ. Out-of-order execution). У тому випадку, якщо відповідно для двох або більше інструкцій необхідно здійснити запис даних в один регістр, їх коректне позачергове виконання стає неможливим (новіша інструкція не може бути оброблена до завершення більш ранньої) навіть у тому випадку, якщо при цьому немає залежності за даними. Такі взаємозалежності часто називають хибними (у разі істинної залежності існує залежність і за даними). Так як кількість архітектурних регістрів зазвичай обмежена (наприклад, стандартно архітектура х86 передбачає тільки вісім регістрів загального призначення), ймовірність виникнення помилкових взаємозалежностей досить велика, що може призвести до зниження продуктивності процесора. Перейменування регістрів являє собою перетворення програмних посилань на архітектурні регістри в посилання на фізичні регістри і дозволяє послабити вплив помилкових взаємозалежностей за рахунок використання великої кількості фізичних регістрів замість обмеженої кількості архітектурних (так, наприклад, x86-сумісні процесори архітектури Intel P6 містять 40 фізичних регістрів). При цьому процесор відстежує, стан яких фізичних регістрів відповідає стану архітектурних, а видача результатів здійснюється в порядку, який передбачений програмою.
- Об'єднання кількох команд в одну — метод розпаралелювання обчислень на рівні компіляції, що дозволяє одночасно виконувати декілька інструкцій на обладнанні, яке дозволяє паралельну незалежну роботу.
Методики збільшення продуктивності
- Модуль передбачення умовних переходів (англ. Branch Prediction Unit) — пристрій, що входить до складу мікропроцесорів, що мають конвеєрну архітектуру, визначальний напрямок розгалужень (передбачають, чи буде виконаний умовний перехід) в виконуваній програмі. Передбачення розгалужень дозволяє здійснювати попередню вибірку інструкцій і даних з пам'яті, а також виконувати інструкції, що розташовані після умовного переходу, до того, як він буде виконаний. Передбачення переходів є невід'ємною частиною всіх сучасних суперскалярних мікропроцесорів, тому що в більшості випадків (точність передбачення переходів в сучасних процесорах перевищує 90 %) дозволяє оптимально використовувати обчислювальні ресурси процесора.
- Кеш — пристрій, що знаходиться між процесором та оперативною пам'яттю і являє собою швидкодійну програмно недоступну пам'ять, яка забезпечує тимчасове збереження даних з можливістю їх читання та запису без звернення до менш швидкодійної оперативної пам'яті.
- Конвеєр команд — пристрій, що одночасно декодує декілька команд та узгоджує їх можливе одночасне виконання, застосовується в сучасних суперскалярних процесорах.
Література
- Э.Таненбаум Архитектура компьютера = Structured Computer Organization. — 5-е изд.. — СПб.: Питер, 2007. — С. 81-83. — 848 с. — (Классика Computer Science). —
Див. також
Ця стаття не містить . (січень 2016) |
Цю статтю треба для відповідності Вікіпедії. (січень 2016) |
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Superskalyarnist arhitektura obchislyuvalnogo yadra sho vikoristovuye kilka dekoderiv komand yaki mozhut navantazhuvati robotoyu dekilka vikonavchih blokiv Planuvannya vikonannya potoku komand ye dinamichnim i zdijsnyuyetsya samim obchislyuvalnim yadrom Prostij superskalyanij konveyer IF dostavka instrukciyi ID dekoduvannya instrukciyi EX vikonannya MEM dostup do pam yati WB Zapis registra nazad i nomer instrukciyi t cikl tobto chas Yaksho v procesi roboti komandi sho obroblyayutsya konveyerom ne superechat odna odnij i odna ne zalezhit vid rezultatu inshoyi to takij pristrij mozhe zdijsniti paralelne vikonannya komand U superskalyarnih sistemah rishennya pro zapusk instrukciyi na vikonannya prijmaye sam obchislyuvalnij modul sho vimagaye bagato resursiv U piznishih sistemah takih yak Elbrus i Itanium vikoristovuyetsya statplanuvannya tobto paralelni instrukciyi ob yednuyutsya kompilyatorom v dovgu komandu v yakij napered vidomo sho vsi instrukciyi paralelni arhitektura VLIW Superskalyarna arhitektura CP vtilyuye formu paralelizmu vidomu yak paralelizm rivnya instrukcij na odnomu procesori IstoriyaIsnuye superechka shodo togo yaku EOM mozhna vvazhati pershoyu z vikoristannyam superskalyarnoyi arhitekturi U zahidnij literaturi najchastishe vkazuyetsya CDC 6600 1964 rozroblena Sejmurom Kreyem U SRSR pershoyu superskalyarnoyu EOM vvazhavsya Elbrus rozrobka yakogo velasya v 1973 1979 rokah v Osnovnoyu strukturnoyu vidznakoyu Elbrusa vid CDC 6600 krim prirodno absolyutno inshoyi vidimoyi programistu sistemi komand stekovogo tipu bulo te sho vsi moduli vikonannya v nomu buli konveyerizovani yak u suchasnih superskalyarnih mikroprocesorah Na pidstavi cogo faktu zayavlyav pro prioritet radyanskih EOM u pitanni pobudovi superskalyarnih obchislyuvalnih mashin odnak jogo dumka pozbavlena dostatnih pidstav bo vzhe nastupna za CDC 6600 mashina firmi Control Data CDC 7600 1969 roku mala konveyerizaciyu vikonavchih pristroyiv Krim togo desho ranishe 1967 firmoyu IBM bula vipushena mashina IBM 360 91 sho vikoristovuye pozachergove vikonannya perejmenuvannya registriv i konveyerizaciyu vikonavchih pristroyiv Pershim zhe komercijno shirokodostupnim superskalyarnim mikroprocesorom stav Intel i960 sho vijshov v 1988 roci U 1990 h rokah osnovnim virobnikom superskalyarnih mikroprocesoriv stala firma Intel RealizaciyiProcesori sho pidtrimuyut superskalyarnist Arhitektura Persha realizaciya Rik Rozrobnik PrimitkaCDC 6600 CDC 6600 1964 Control Data Corporation Konveyer vikonannya komand kilka vikonuyuchih pristroyiv ale ne konveyerizovanih IBM System 360 Model 91 IBM 1967 Povna konveyerizaciya z dinamichnim perejmenuvannyam registriv ta dinamichnim pid chas vikonannya viznachennyam poryadku komandCDC 7600 CDC 7600 1969 Control Data Corporation Povna konveyerizaciya i vikonannya komand i samih vikonuyuchih pristroyivElbrus Elbrus 1 1979 ITMiVT Povna konveyerizaciya z dinamichnim perejmenuvannyam registriv ta dinamichnim pid chas vikonannya viznachennyam poryadku komandIntel i960 I960 1988 IntelSPARC SuperSPARC 1992 Sun Microsystemsx86 Pentium 1993 IntelMIPS R8000 1994 MIPS TechnologiesARM Cortex A8 2005 ARMPriskorennya obchislenU superskalyarnih obchislyuvalnih mashinah vikoristovuyetsya ryad metodiv dlya priskorennya obchislen harakternih nasampered dlya nih odnak taki metodi mozhut vikoristovuvatisya i v inshih tipah arhitektur Pozachergove vikonannya angl Out of order execution metod zastosovuvanij pri rozrobci obchislyuvalnih pristroyiv z metoyu pidvishennya produktivnosti Jogo osoblivist polyagaye u tomu sho instrukciyi nadhodyat u vikonavchi moduli ne v poryadku yih sliduvannya yak bulo v koncepciyi vikonannya instrukcij po poryadku angl In Order execution a po gotovnosti do vikonannya Sered shiroko vidomih mashin vpershe cej metod bula v istotnij miri realizovanij v mashinah CDC6600 firmi Control Data i IBM 360 91 firmi IBM Perejmenuvannya registriv angl Register Renaming metod oslablennya vzayemozalezhnostej instrukcij zastosovuvanij v procesorah sho zdijsnyuyut yih pozachergove vikonannya angl Out of order execution U tomu vipadku yaksho vidpovidno dlya dvoh abo bilshe instrukcij neobhidno zdijsniti zapis danih v odin registr yih korektne pozachergove vikonannya staye nemozhlivim novisha instrukciya ne mozhe buti obroblena do zavershennya bilsh rannoyi navit u tomu vipadku yaksho pri comu nemaye zalezhnosti za danimi Taki vzayemozalezhnosti chasto nazivayut hibnimi u razi istinnoyi zalezhnosti isnuye zalezhnist i za danimi Tak yak kilkist arhitekturnih registriv zazvichaj obmezhena napriklad standartno arhitektura h86 peredbachaye tilki visim registriv zagalnogo priznachennya jmovirnist viniknennya pomilkovih vzayemozalezhnostej dosit velika sho mozhe prizvesti do znizhennya produktivnosti procesora Perejmenuvannya registriv yavlyaye soboyu peretvorennya programnih posilan na arhitekturni registri v posilannya na fizichni registri i dozvolyaye poslabiti vpliv pomilkovih vzayemozalezhnostej za rahunok vikoristannya velikoyi kilkosti fizichnih registriv zamist obmezhenoyi kilkosti arhitekturnih tak napriklad x86 sumisni procesori arhitekturi Intel P6 mistyat 40 fizichnih registriv Pri comu procesor vidstezhuye stan yakih fizichnih registriv vidpovidaye stanu arhitekturnih a vidacha rezultativ zdijsnyuyetsya v poryadku yakij peredbachenij programoyu Ob yednannya kilkoh komand v odnu metod rozparalelyuvannya obchislen na rivni kompilyaciyi sho dozvolyaye odnochasno vikonuvati dekilka instrukcij na obladnanni yake dozvolyaye paralelnu nezalezhnu robotu Metodiki zbilshennya produktivnostiModul peredbachennya umovnih perehodiv angl Branch Prediction Unit pristrij sho vhodit do skladu mikroprocesoriv sho mayut konveyernu arhitekturu viznachalnij napryamok rozgaluzhen peredbachayut chi bude vikonanij umovnij perehid v vikonuvanij programi Peredbachennya rozgaluzhen dozvolyaye zdijsnyuvati poperednyu vibirku instrukcij i danih z pam yati a takozh vikonuvati instrukciyi sho roztashovani pislya umovnogo perehodu do togo yak vin bude vikonanij Peredbachennya perehodiv ye nevid yemnoyu chastinoyu vsih suchasnih superskalyarnih mikroprocesoriv tomu sho v bilshosti vipadkiv tochnist peredbachennya perehodiv v suchasnih procesorah perevishuye 90 dozvolyaye optimalno vikoristovuvati obchislyuvalni resursi procesora Kesh pristrij sho znahoditsya mizh procesorom ta operativnoyu pam yattyu i yavlyaye soboyu shvidkodijnu programno nedostupnu pam yat yaka zabezpechuye timchasove zberezhennya danih z mozhlivistyu yih chitannya ta zapisu bez zvernennya do mensh shvidkodijnoyi operativnoyi pam yati Konveyer komand pristrij sho odnochasno dekoduye dekilka komand ta uzgodzhuye yih mozhlive odnochasne vikonannya zastosovuyetsya v suchasnih superskalyarnih procesorah LiteraturaE Tanenbaum Arhitektura kompyutera Structured Computer Organization 5 e izd SPb Piter 2007 S 81 83 848 s Klassika Computer Science ISBN 5 469 01274 3Div takozhCya 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 sichen 2016 Cyu stattyu treba vikifikuvati dlya vidpovidnosti standartam yakosti Vikipediyi Bud laska dopomozhit dodavannyam dorechnih vnutrishnih posilan abo vdoskonalennyam rozmitki statti sichen 2016 Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi