Структура векторного процесора
Узагальнена структура векторного процесора приведена на рис.3.4. На схемі показані основні вузли процесора, без деталізації деяких зв'язків між ними.
Особливості векторного процесора:
- обробка всіх n компонентів векторів-операндів задається однією векторною командою;
- елементи векторів представляються числами у формі з плаваючою комою;
- арифметико-логічний пристрій векторного процесора може бути реалізовано у вигляді:
- єдиного конвеєрного пристрою, здатного виконувати всі предбачені операції над числами з плаваючою комою;
- арифметико-логічний пристрій складається з окремих блоків складання і множення, а іноді і блоку для обчислення зворотної величини, коли операція ділення x/y реалізується у вигляді x(1/y). Кожний з таких блоків також конвеєризований.
Рисунок 3.4 – Узагальнена структура векторного процесора
Склад векторної системи:
- скалярный процесор, що дозволяє паралельно виконувати векторні і скалярні команди;
- векторні регістри для зберігання векторів-операндів, які є сукупністю скалярних регістрів, об'єднаних в чергу типу FIFO, здатну зберігати 50-100 чисел з плаваючою комою.
Набір векторних регістрів (Va, Vb, Vc...) є в будь-якому векторному процесорі. Система команд векторного процесора підтримує роботу з векторними регістрами і обов'язково включає команди:
- завантаження векторного регістра вмістом послідовних елементів пам'яті, вказаних адресою першої комірки цієї послідовності;
- виконання операцій над всіма елементами векторів, що знаходяться у векторних регістрах;
- збереження вмісту векторного регістра в послідовності комірок пам’яті, вказаних адресою першої комірки цієї послідовності;
- регістр довжини вектора. Цей регістр визначає, скільки елементів фактично містить оброблюваний в даний момент вектор, тобто скільки індивідуальних операцій з елементами потрібно зробити;
- регістр максимальної довжини вектора, що визначає максимальне число елементів вектора, яке може бути одночасно оброблене апаратурою процесора. Цей регістр використовується при розділенні дуже довгих векторів на сегменти, довжина яких відповідає максимальному числу елементів, що обробляються апаратурою за один прийом;
- регістр маски вектора служить для виконання таких операцій, в яких повинні брати участь не всі елементи векторів. У цьому регістрі кожному елементу вектора відповідає один біт. Установка біта в одиницю дозволяє запис відповідного елемента вектора результату у вихідний векторний регістр, а скидання в нуль - забороняє.
- регістр вектора індексів по структурі аналогічний регістру маски. Служить для виконання операцій упакування/розпаковування для отримання вектора, що містить ненульові елементи і для зворотної операції відповідно. У векторі індексів кожному елементу початкового вектора відповідає один біт. Нульове значення біта свідчить, що відповідний елемент вихідного вектора рівний нулю.
Переваги векторного процесора:
- замість багаторазового вибору одних і тих же команд досить здійснити вибір тільки однієї векторної команди, що дозволяє скоротити витрати за рахунок пристрою управління і зменшити вимоги до пропускної здатності пам'яті;
- векторна команда забезпечує процесор упорядкованими даними. Коли ініціюється векторна команда, КС знає, що їй потрібно вибрати n пар операндів, розташованих в пам'яті впорядкованим чином. Так, процесор може вказати пам'яті на необхідність почати вибір таких пар. Якщо використовується пам'ять з чергуванням адрес, ці пари можуть бути отримані із швидкістю однієї пари за цикл процесора і направлені для обробки в конвеєризованний функціональний блок. За відсутності чергування адрес або інших засобів вибору операндів з високою швидкістю переваги обробки векторів істотно знижуються.