Конвеєрна обробка команд

Як вже говорилося вище, обробка команди, або цикл процесора може бути розділена на кілька основних етапів (микрокоманд), яких як мінімум п'ять (вибірка, декодування, читання вихідних даних, виконання, запис результату).

Кожна операція вимагає для свого виконання часу, рівного такту генератора процесора (tick of the internal clock). Відзначимо, що до довгих операцій (плаваюча точка) це не має відношення. Всі етапи команди задіюються тільки один раз і завжди в одному і тому ж порядку - одна за одною. Це, зокрема, означає, що якщо логічна схема першої мікрокоманд виконала свою роботу і передала результати другої, то для виконання поточної команди вона більше не знадобиться, і, отже, може приступити до виконання наступної команди.

Така технологія обробки команд носить назву конвеєрної (pipeline), обробки. Кожна частина пристрою називається щаблем (стадією) конвеєра, а загальне число ступенів - довжиною лінії конвеєра.

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

Наведений приклад процесора (5 микроопераций) є гіпотетичним - в реальних ЦП конвеєр обробки команд складніше і включає більшу кількість ступенів. Причина збільшення довжини конвеєра полягає в тому, що багато команд є досить складними і не можуть бути виконані за один такт процесора, особливо при високих тактових частотах. Тому кожна зі згаданих п'яти стадій обробки команд в свою чергу може складатися з декількох ступенів конвеєра.

З ростом числа ліній конвеєра і збільшенням числа ступенів на лінії збільшується пропускна здатність процесора при незмінній тактовій частоті. Навпаки, чим більше ступенів налічується в конвеєрі, тим менша робота виконується за такт і тим вище можна піднімати частоту процесора.

Суперскалярізація. Процесори з декількома лініями конвеєра отримали назву суперскалярні. Pentium - перший суперскалярний процесор Intel. Тут дві лінії, що дозволяє йому при однакових частотах бути вдвічі продуктивніше i80486, виконуючи відразу дві інструкції за такт.

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

Схожі статті