загрузка...
загрузка...
На головну

Конвеєрне виконання операцій

Множинність функціональних пристроїв процесора

Поділ універсального арифметико-логічного пристрою (АЛП), що виконував широкий набір операцій, на набір пристроїв виконання окремих операцій або груп "родинних" операцій (додавання-віднімання, множення, ділення, зсуву, операцій алгебри логіки і т. П.) - «Функціональних »пристроїв дозволило організувати їх паралельну роботу. Вийшло при цьому помітне збільшення обсягу обладнання мало компенсуватися суттєвою ефективністю такого паралелізму. Для цього в ідеалі потрібно було забезпечити паралельну подачу команд для виконання на цих пристроях і готовність операндів, необхідних для виконання команд.

Затримки при послідовній подачі з УУ на ФУ незалежних по операндам "векторних" команд роботи з масивами даних ( "векторами") при великій довжині масивів не сильно позначаються на можливості паралельного виконання цих команд (при цьому, звичайно, повинні бути готові операнди).

У разі послідовності "скалярних" команд ефективність паралелізму роботи ФУ може бути досягнута тільки за рахунок одночасного завантаження ФУ цими командами. Це реалізується за рахунок вибору з ОП "довгого командного слова", що містить набір команд, відповідний наявного в процесорі набору ФУ. З певними обмеженнями цей підхід реалізується в сучасних «скалярних» процесорах.

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

Ефективне використання конвеєрних ФУ досягається при наявності кожен такт операндів для виконання операції. Це можливо при попередній (до виконання операції) завантаженні їх (як правило, масивів даних - "векторів") з ОП в групу спеціальних регістрів і подальшому прийомі їх з регістрів на вхід конвеєрних ФУ без затримки. Можливий і прийом кожен такт операндів з ОП за рахунок необхідного для цього "розшарування" пам'яті.

При поділі ФУ на K ступенів виконання N операцій на ньому буде здійснено за K + (N-1) тактів.

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

У разі виконання кількох пов'язаних "векторних" операцій можлива організація їх конвеєрного виконання без запам'ятовування на регістрах або в ОП проміжних результатів. Результати виконання операцій будуть надходити з виходів одних ФУ на входи ФУ, що виконують операції, пов'язані з попередніми. Фактично утворюється довгий конвеєр з числом ступенів, що дорівнює сумі кількостей ступенів у всіх пов'язаних таким чином ФУ. Така організація називається "зачепленням" ФУ. Відповідно додатково багаторазово збільшується продуктивність процесора при виконанні послідовності пов'язаних векторних операцій (досягається так звана "супервекторная" продуктивність). Наприклад, при виконанні векторного оператора E = (A + B) x C / D реалізованого послідовністю трьох векторних операцій на ФУ, що мають по 4 ступені, що працюють за 1 такт, загальний час обчислення оператора E дорівнюватиме

12+ (N-1), де N - Число компонент векторів A, B, C, Dи EТобто, для векторів, що містять по 64 компонента, дане обчислення, що вимагає виконання 192-х двомісних операцій, буде виконано всього за 75 тактів.

Вдалим прикладом організації "векторно-конвеєрної" ЕОМ є ЕОМ "Cray-1" (1976 г.), створена компанією Cray Research керівництвом Сеймура Крея (цю машину називають першим суперкомп'ютером у світі).

Представляє також інтерес організація векторно-конвеєрної ЕОМ без регістрів проміжного зберігання «векторних» даних (ЕОМ Cyber-205 фірми CDC і створена в ІТМ і ВТ під керівництвом Андрія Андрійовича Соколова вітчизняна ЕОМ МКП ( "модульний конвеєрний процесор"), яка об'єднує архітектурні рішення ЕОМ Cray -1 і Cyber-205 c організацією багатопоточних обчислень (останнє буде розглянуто також в наступному розділі курсу).

Паралелізм роботи основних пристроїв ЕОМ. «-- попередня | наступна --» Многопроцессорность.
загрузка...
© om.net.ua