Векторний процесор. СПК

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Шаблон:Без джерел
Процесорна плата векторного комп'ютера Cray YMP

Векторний процесор — процесор, в якому операндами деяких команд можуть слугувати впорядковані масиви даних — вектори. Відрізняється від скалярних процесорів, які можуть працювати лише з одним оператором в одиницю часу. Абсолютна більшість процесорів є скалярними або близькими до них. Векторні процесори були розповсюджені в галузі наукових обчислень, де вони були основою більшості суперкомп'ютерів починаючи з 1980х і до 1990х. Але різке збільшення продуктивності і активна розробка нових процесорів призвели до того, що векторні процесори були витіснені зі сфери повсякденних процесорів.

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

Ілюстрація роботи

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

повторити цикл 10 разів
  прочитати наступну інструкцію та декодувати
  отримати перший доданок
  отримати другий доданок
  скласти
  зберегти результат
кінець циклу

Для векторного процесора алгоритм буде значно відрізнятися:

отримати наступну інструкцію і декодувати 
отримати 10 перших доданків
отримати 10 других доданків
додати
зберегти результат

Реалізація фірми Cray (en:Cray) розширила можливості обчислень, що дозволило виконувати декілька різних операцій одразу. Наприклад, розглянемо код, що додає 2 набори чисел і помножає на третій, в Cray ці оперції здійснились би так:

отримати наступну інструкцію і декодувати 
отримати 10 чисел
отримати 10 чисел
отримати 10 чисел
додати і помножити їх
зберегти результат

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

Див. також