У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


порівняння порядків (С), зсув мантиси одного з доданків (S), додавання мантис (А) і нормалізація суми (N), Послідовності чисел (вектори доданків) подаються на вхід блоку виконання першої фази. Надалі, у міру того як процес обробки просувається, у блоках виконання різних фаз виявляються чотири пари чисел – елементів сумованих векторів.

Очевидно, що така організація цілком підходить для обробки векторів. Щоб переконатися в цьому, згадайте опис методики конвеєрної обробки машинних команд у главі 11: процесор виконує повторювані операції зчитування й обробки команд із послідовних комірок пам'яті, і під час відсутності команд розгалуження конвеєр завжди заповнений. Точно так само і конвеєрний АЛП повинен увесь час заповнюватись даними – послідовними елементами оброблюваних векторів. Якщо буде виконуватися окрема арифметична операція, такий АЛП ніякого підвищення продуктивності не дасть. Завантаженням АЛП – передачею в нього елементів векторів – займається пристрій керування.

Можна удосконалити конвеєр – витягати елементи векторів з регістрів, а не з пам'яті. Саме це зображено на схемі, представленій на рис. 6.1,а. Елементи кожного операнду-вектора завантажуються єдиним блоком у векторний регістр, що являє собою не що інше, як великий набір однакових регістрів. Результат також поміщується у векторний регістр. Таким чином, більшість операцій включає тільки звертання до регістрів, а звертання до пам'яті відбувається винятково при виконанні команд завантаження і збереження.

Структуру, зображену на рис. 6.2, можна назвати внутріопераційним конвеєром. Цей конвеєр виконує єдину арифметичну операцію з двома векторними операндами (у даному випадку С = А + В) таким чином, що кілька елементів операндів-векторів обробляються паралельно. Внутріопераційний конвеєр можна доповнити міжопераційним конвеєром, що дозволяє прискорити виконання певної послідовності арифметичних операцій з векторними операндами. Один з методів організації міжопераційного конвеєра, що отримав назву зачеплення (chaining) векторних операцій, використовується в суперкомп'ютерах сімейства CRAY. Суть його в тому, що векторна операція може починатися, як тільки готові перші елементи пари векторів-операндів і функціональний елемент, що виконує операцію (додавання, віднімання, множення і т.п.), вільний. Тому результат, сформований одним функціональним вузлом, що побудований за схемою внутріопераційного конвеєра, негайно передається на вхід наступного функціонального вузла. При цьому як проміжні ланки ланцюга використовуються векторні регістри, і вся послідовність операцій виконується без збереження проміжних результатів у пам'яті.

Нехай, наприклад, потрібно обчислити С = (s хА) + В, де С, А и В – вектори, as – скаляр. У CRAY одночасно виконуються всі три операції: елементи, що завантажуються з пам'яті у векторні регістри операндів, негайно надходять у конвеєрний помножувач, результат передається в конвеєрний суматор, і елементи вектора суми передаються у векторний регістр результату відразу ж після їхнього обчислення.

Команди 2 і 3 можуть виконуватися паралельно, оскільки вони звертаються до різних регістрів і комірок пам'яті. Команді 4 необхідні результати виконання команд 2 і 3, і блок виконання цієї команди включається в ланцюжок після них. Як тільки перші елементи векторів будуть передані у векторні регістри VR2 і VR3, почнеться виконання команди 4.

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

І нарешті, третій метод організації обробки векторів – використання багатьох паралельно працюючих процесорів. У цьому випадку необхідно розділити задачу на багато окремих процесів, які можна було б виконувати паралельно. Використання такого варіанту має сенс тільки в тому випадку, якщо операційна система й апаратні засоби дозволяють чітко координувати паралельне виконання окремих підзадач. В даний час у цій області активно ведуться дослідження (див., наприклад, [GEHR88]).

Тепер ми можемо розширити класифікацію обчислювальних систем, приведену в розділі 1, і включити в неї описані вище структури (рис. 6.3). Можна розділити обчислювальні системи по ознаці наявності в складі системи одного або декількох пристроїв керування. Наявність багатьох пристроїв керування припускає наявність багатьох процесорів. Як випливає з наших міркувань, багато процесорів можуть спільно виконувати певну задачу, і в цьому випадку ми говоримо про паралельні процесори.

Хочу звернути увагу читачів на те, що в літературі часто зустрічаються не зовсім вдалі терміни, що стосуються мультипроцесорних систем. Термін векторний процесор (vector processor) часто позначає АЛП з конвеєрною організацією, хоча системи з паралельно працюючими АЛП точно так само використовуються для обробки векторів. Під терміном обробка масивів (array processing) також часто розуміється використання паралельних АЛП, у той час як усі три варіанти розглянутих структур прекрасно підходять для обробки масивів. Термін матричний процесор (array processor), як правило, позначає співпроцесор, що підключається до процесора загального призначення для виконання операцій над векторами.

В даний час на ринку суперкомп'ютерів домінують системи з конвеєрними АЛП, найбільш простими в порівнянні з двома іншими варіантами, розглянутими в цьому розділі. Конструкції пристроїв керування й операційних систем для них досить добре відпрацьовані і забезпечують ефективне використання наявних обчислювальних ресурсів. Нижче ми розглянемо конкретні реалізації обчислювальних систем для векторних обчислень.

2. Векторний співпроцесор IBM 3090

Гарним прикладом використання конвеєрного АЛП для обробки векторів є векторний співпроцесор IBM 3090, розроблений як один з


Сторінки: 1 2 3