Позачергове виконання (англ. Out-of-order execution) — парадигма, що застосовується при розробці процесорів з метою підвищення продуктивності. Її особливість в тому, що інструкції надходять до виконавчих модулів не в порядку їх слідування, як було в концепції виконання інструкцій по порядку (англ. In-Order execution), а за готовністю до виконання. Серед широко відомих машин вперше ця парадигма була в істотній мірі реалізована в машинах CDC 6600 компанії Control Data і (IBM System/360 Model 91) компанії IBM.
Концепція
Виконання інструкцій по порядку (In-order)
- Зчитування інструкції
- Якщо всі операнди інструкції доступні, то вона передається на виконання відповідного виконавчого модуля, інакше процесор зупиняється, чекаючи готовності операндів.
- Інструкція виконується у відповідному модулі.
- Модуль записує результат назад в регістровий файл.
Позачергове виконання (Out-of-order)
- Зчитування інструкції
- Поміщення інструкції в чергу
- Інструкція знаходиться в черзі до тих пір, поки її операнди не стануть доступні. Таким чином інструкція може покинути чергу перш, ніж та, що потрапила туди раніше.
- Вибрана з черги інструкція виконується у відповідному модулі.
- Результат поміщається в чергу.
- Тільки після того, як всі інструкції, які були в черзі попереду даної, виконаються, її результат поміщається в регістровий файл.
Ключова ідея позачергового виконання полягає в можливості уникнути простою процесора в тих випадках, коли дані, необхідні для виконання чергової інструкції, недоступні. Як можна бачити вище, процесор уникає простоїв, які виникають в пункті 2 для чергового виконання інструкцій в разі, коли інструкція не може бути виконана через недоступність її операндів.
Процесор із позачерговим виконанням коду виконує ті інструкції, які готові, незалежно від їх порядку проходження в коді програми. Інструкції виконуються не в порядку їх слідування в коді програми, а в порядку доступності даних в регістрах процесора. Після виконання процесор змінює порядок результатів виконання інструкцій так, щоб створювалася видимість нормального, чергового виконання.
Позачергове виконання тим ефективніше, чим довший конвеєр процесора, і чим більша різниця в швидкості між пам'яттю (оперативною або кешем) і процесором. У сучасних комп'ютерах процесори працюють набагато швидше пам'яті, тому під час очікування надходження даних процесор може виконати безліч інструкцій, операнди яких доступні.
Див. також
Література
- , . Архівована копія. з джерела 13 вересня 2016 (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Pozachergove vikonannya angl Out of order execution paradigma sho zastosovuyetsya pri rozrobci procesoriv z metoyu pidvishennya produktivnosti Yiyi osoblivist v tomu sho instrukciyi nadhodyat do vikonavchih moduliv ne v poryadku yih sliduvannya yak bulo v koncepciyi vikonannya instrukcij po poryadku angl In Order execution a za gotovnistyu do vikonannya Sered shiroko vidomih mashin vpershe cya paradigma bula v istotnij miri realizovana v mashinah CDC 6600 kompaniyi Control Data i IBM System 360 Model 91 kompaniyi IBM KoncepciyaVikonannya instrukcij po poryadku In order Zchituvannya instrukciyi Yaksho vsi operandi instrukciyi dostupni to vona peredayetsya na vikonannya vidpovidnogo vikonavchogo modulya inakshe procesor zupinyayetsya chekayuchi gotovnosti operandiv Instrukciya vikonuyetsya u vidpovidnomu moduli Modul zapisuye rezultat nazad v registrovij fajl Pozachergove vikonannya Out of order Zchituvannya instrukciyi Pomishennya instrukciyi v chergu Instrukciya znahoditsya v cherzi do tih pir poki yiyi operandi ne stanut dostupni Takim chinom instrukciya mozhe pokinuti chergu persh nizh ta sho potrapila tudi ranishe Vibrana z chergi instrukciya vikonuyetsya u vidpovidnomu moduli Rezultat pomishayetsya v chergu Tilki pislya togo yak vsi instrukciyi yaki buli v cherzi poperedu danoyi vikonayutsya yiyi rezultat pomishayetsya v registrovij fajl Klyuchova ideya pozachergovogo vikonannya polyagaye v mozhlivosti uniknuti prostoyu procesora v tih vipadkah koli dani neobhidni dlya vikonannya chergovoyi instrukciyi nedostupni Yak mozhna bachiti vishe procesor unikaye prostoyiv yaki vinikayut v punkti 2 dlya chergovogo vikonannya instrukcij v razi koli instrukciya ne mozhe buti vikonana cherez nedostupnist yiyi operandiv Procesor iz pozachergovim vikonannyam kodu vikonuye ti instrukciyi yaki gotovi nezalezhno vid yih poryadku prohodzhennya v kodi programi Instrukciyi vikonuyutsya ne v poryadku yih sliduvannya v kodi programi a v poryadku dostupnosti danih v registrah procesora Pislya vikonannya procesor zminyuye poryadok rezultativ vikonannya instrukcij tak shob stvoryuvalasya vidimist normalnogo chergovogo vikonannya Pozachergove vikonannya tim efektivnishe chim dovshij konveyer procesora i chim bilsha riznicya v shvidkosti mizh pam yattyu operativnoyu abo keshem i procesorom U suchasnih komp yuterah procesori pracyuyut nabagato shvidshe pam yati tomu pid chas ochikuvannya nadhodzhennya danih procesor mozhe vikonati bezlich instrukcij operandi yakih dostupni Div takozhAlgoritm Tomasulo Meltdown urazlivist Literatura Arhivovana kopiya z dzherela 13 veresnya 2016 angl