Який вид галузевого прогнозування важливіший?


11

Я помітив, що у галузевому прогнозуванні є два різних типи станів.

  1. У суперскалярному виконанні, де передбачення гілки дуже важливе, і головним чином це затримка виконання, а не затримка вилучення.

  2. У конвеєрі інструкцій, де вилучення є більшою проблемою, оскільки фактично не виконуються інструкції до цього пізніше.

Що з них є дуже важливим (як, який із цих дійсно має значення в ЦП зараз)? Якщо обидва однаково важливі, або якщо другий важливіший, то чому ми не маємо двох інструкцій (мабуть, половини довжини), а потім залежно від гілок, просто вибираємо один із них і знову починаємо популяцію з початок?


1
Можливо, обидва важливі, залежно від обставин?
Рафаель

Відповіді:


6

Я не знаю, який випадок є поширеним, але я хотів би запропонувати кілька думок щодо вашої пропозиції про подвійні трубопроводи.

Перш за все, вам знадобиться подвійний провід, який споживає вдвічі більше енергії та виробляє вдвічі більше тепла, працюючи. Хоча це і не потрібно, з іншого боку, це було б абсолютно марно. Отже, можна стверджувати, що це не дуже вдале використання ресурсів, які рідкісні для сучасних процесорів.

Більш принципово, якщо ви не віддасте перевагу одній гілці на основі ймовірності, як ви знаєте, через яку версію написати? Якщо цього немає, ви можете нічого не заощадити, тому що, можливо, інші процесори повинні чекати вашого рішення. Якщо ви дотримуєтесь одного з них, у вас є по суті така ж ймовірність відкоту та вартість, як і зараз.

Давайте зробимо приблизний розрахунок. Для простоти, припустимо, що обробка двох трубопроводів замість одного не спричиняє додаткових накладних витрат. Очікувана вартість (наприклад, енергія, тепло) - з одним трубопроводом ( вартість виконання будь-якої альтернативи, ймовірність відкату і витрати на відкат без витрат на виконання іншого альтернатива), але або або навіть - або набагато більше, ніж якщо і порівняно невеликі, іС=c+p(cr+c)cpcr2c2c+pcrСpcrpце, безумовно, є (наскільки я знаю, сучасні галузеві прогнози мають точність понад 90%). І ми не отримуємо багато за ці витрати! Очікувані терміни виконання з одним трубопроводом і t resp. t + p t r з двома; оскільки р невеликий, економія часу незначна.т+p(тr+т)тт+pтrp


Наскільки мені відомо, Intel спробувала "прочитати інструкції для обох сторін гілки" і навіть "виконати інструкції для обох сторін гілки", і перестала це робити. Або тому, що вона нічого не отримала, або тому, що вартість і складність були настільки високими, що вони могли отримати більше прибутків різними способами за одну і ту ж ціну.
gnasher729

@ gnasher729 І це було, ймовірно, раніше, ніж ми дізналися про недоліки безпеки, пов’язані з такими функціями, як ця?
Рафаель

2

В одному сенсі ефект передбачення гілок є більш критичним при отриманні інструкцій, оскільки інструкція, яка не отримана, не може бути виконана.

Що стосується виконання обох контурів гілки, це називається прагненням виконання і було дещо істотно досліджене. Август К. Ухт і Віджай Сіндагі "Нерозбірливі страждання страт: оптимальна форма спекулятивного розстрілу" (1995) може бути вартим уваги.

Швидке виконання має кілька проблем. Для глибоких міркувань кількість шляхів, які необхідно простежити, може зростати експоненціально (кожна роздвоєна стежка гілки може зустріти гілку). Прогнозування гілок також часто дуже точне (> 90% правильне), тому завжди виконувати обидва шляхи було б марно. Швидке виконання може також "забруднити" кеші непотрібним вмістом. (Вищезгаданий документ пропонував розумно обмежене прагнення виконувати, щоб уникнути деяких із цих проблем.) Обмежений нетерплячий пошук альтернативного шляху має менше проблем і може бути дещо привабливим у зменшенні затримки відновлення непередбачуваних скорочень у коротших трубопроводах.

Ще один підхід, який було запропоновано, - це динамічно прогнозувати гілки «гамака» (короткі гілки вперед, які приєднуються до основного шляху потоку інструкцій). Артур Клаузер та ін. "Динамічне прогнозування гамаків для непередбачуваних архітектурних наборів інструкцій" (1998), можливо, варто прочитати цю ідею. («Гілки побажань: поєднання умовного розгалуження та прогнозування для адаптивного прогнозованого виконання» Hyesoon Kim et al. Пропонує додавати до гілок ISA, що полегшує прогнозування гамаків і розширює цей метод прогнозування на важко передбачувані гілки циклу.)


Це дійсно приємна відповідь! Дякую. :-)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.