Модуль передбачення переходів: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Shynkar (обговорення | внесок)
Немає опису редагування
шаблон Технології CPU
Рядок 1:
'''Модуль передбачення умовних переході ''' ({{lang-en|Branch Prediction Unit}})  — пристрій, який визначає напрям [[Умовний перехід|розгалужень]] (передбачає, виконається [[Умовний перехід|умовний перехід]], чи ні) в [[Комп'ютерна програма|програмі]], що наразі виконується. Входить до складу мікропроцесорів, які мають [[Конвеєр команд|конвеєрну]] архітектуру. Передбачення розгалужень дозволяє робити попередню вибірку інструкцій та даних з пам'яті, а також виконувати [[Інструкція (програмування)|інструкції]], які розташовані після умовного переходу до того, коли він буде виконаний. Модуль передбачення є невід'ємною частиною усіх сучасних [[Суперскалярність|суперскалярних]] мікропроцесорів, бо в більшості випадків (точність передбачення переходів в сучасних [[мікропроцесор|процесорах]] перевищує 90%) дозволяє оптимально використовувати обчислювальні ресурси процесора.
 
Існує два базових методи передбачення переходів: статичний і динамічний.
Рядок 5:
== Статичне передбачення ==
 
Статичні методи передбачення розгалужень є найпростішими. Робота цих методів базується на припущенні, що різні типи переходів або виконуються завжди, або не виконуються ніколи. В сучасних процесах статичні методи використовуються лише тоді, коли неможливе використання динамічного передбачення.
 
Прикладами статичного передбачення можуть бути тривіальне передбачення переходів, яке використовувалося в ранніх процесорах архітектури SPARC та MIPS (припускається, що умовні переходи ніколи не виконується), а також статичне передбачення, яке використовується в сучасних процесорах в якості підстрахування (припускається, що будь-який зворотний перехід, тобто перехід на молодші [[Адресація пам'яті|адреси]], є [[Цикл (програмування)|циклом]] і виконується, а будь-який прямий перехід, тобто на старші адреси, не виконується).
Рядок 13:
Динамічні методи, які широко використовують в сучасних процесах, використовують аналіз історії розгалужень. Прикладом динамічного передбачення є дворівневий адаптивний історичний [[алгоритм]] ({{lang-en|Bimodal branch prediction}}), який використовувався процесорами архітектури [[Intel P6]] (аналізується таблиця історії переходів, що містить молодші значущі [[біт]]и адреси [[Інструкція (програмування)|інструкції]] і відповідну імовірність умовного переходу: «скоріш за все, буде виконаний», «можливо, буде виконаний», «можливо, не буде виконаний», «скоріш за все, не буде виконаний» та оновлюється після кожного переходу).
 
{{Технології CPU}}
{{compu-stub}}
[[Категорія:Архітектура комп'ютера]]