конвеєрна обробка
Конвеєрна обробка - спосіб виконання команд процесором, при якому виконання наступної команди починається до повного закінчення виконання попередньої команди (в припущенні відсутності розгалуження).
Можливість конвеєрної обробки пов'язана з поділом процесу виконання команд на послідовні етапи. вибірки команди, дешифрування, вибірки операндів, виконання команди, запис результату в пам'ять.
Особливості архітектури суперскалярні процесорів
Термін «суперскалярна архітектура» позначає процессорную архітектуру, яка містить більше одного обчислювального блоку. Ці обчислювальні блоки, або конвеєри, є вузлами, де відбуваються всі основні процеси обробки даних і команд.
Суперскалярная архітектура є розвитком скалярною архітектури SISD (Single Instruction Single Date) - один потік команд управляє одним потоком даних.
Як відомо, продуктивність будь-якого процесора при виконанні заданої програми залежить від трьох параметрів: такту (або частоти) синхронізації, середньої кількості команд, які виконуються за один такт, а також загальна кількість виконуваних у програмі команд. Неможливо змінити жоден із зазначених параметрів незалежно від інших, оскільки відповідні базові технології взаємопов'язані: частота синхронізації визначається досягнутим рівнем технології інтегральних схем і функціональної організацією процесора, середня кількість тактів на команду залежить від функціональної організації та архітектури системи команд, а кількість виконуваних у програмі команд визначається архітектурою системи команд і технологією компіляторів.
З цього видно, що створення нового високопродуктивного процесора вимагає вирішення складних питань у всіх трьох напрямках розробки. При цьому ефективна з точки зору вартості конструкція не може покладатися тільки на збільшення тактової частоти. Економічні міркування змушують розробників приймати рішення, основою яких є масова технологія.
Що потрібно для того, щоб мікропроцесор працював швидко на будь-яких додатках? Висока тактова частота, велика кількість паралельно працюючих функціональних виконавчих пристроїв (ФІУ); «Вміння» завантажити роботою всі ці пристрої на самих різних додатках; кеш-пам'ять великої ємності з високою пропускною здатністю (ПС) і низькими затримками при зверненні, причому бажано, щоб в неї містилося робоче безліч сторінок додатку; системна шина з високою ПС і т.д.
Через обмеження сучасної технології ці вимоги часто знаходяться в протиріччі між собою і, звичайно, з вимогою отримати досить високий вихід придатних чіпів при досить низькій ціні. Якщо піднімається тактова частота, то важко виконати складні операції за 1 такт, тому конвеєри часто розбиваються на більше число ступенів (суперконвейерная підхід, характерний, наприклад, для Alpha 21064). Але при цьому зростає час, необхідне для заповнення довгих конвеєрів.
Якщо збільшується число ФІУ (суперскалярний підхід), то виникає задача забезпечення їх завантаження, для чого використовується, зокрема, техніка позачергового (out - of - order) і «спекулятивного» (speculative) (на основі передбачення, в яку гілку програми відбудеться умовний перехід) виконання команд. При цьому зростає складність мікропроцесора і відповідно його площа, що загрожує зменшенням виходу придатних чіпів. Як приклади такого підходу можна навести мікропроцесори IBM з архітектурою POWER / P 2 SC і SGI / MIPS R 10000; сюди ж відноситься і HP PA -8000.