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


компонентів сімейства IBM S/370 [PADE88], [TUCK87]. Багато в чому векторні функції IBM 3090 нагадують ті, що реалізовано в суперкомп'ютері CRAY.

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

3. Структура співпроцесора.

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

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

На рис. 6.4 представлена блок-схема векторного співпроцесора. Хоча співпроцесор і є окремим блоком, його архітектура вписується в загальну концепцію сімейства IBM S/370 і сумісна з нею. Інтеграція співпроцесора в IBM S/370 забезпечується в такий спосіб.

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

Команди виконання векторних операцій можуть перериватися, а потім відновлятися після обробки переривання точно так само, як і інші машинні команди S/370.

Набір виняткових ситуацій, зв'язаних з визначеними сполученнями значень операндів, при обробці векторів у співпроцесорі цілком дублює набір виняткових ситуацій у скалярному процесорі S/370. Для їхньої обробки використовуються ті ж підпрограми. Щоб досягти цього, індекс переривання формується таким чином, що вказує стан векторного регістра, у якому з'явилася виняткова ситуація (наприклад, переповнення).

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

Рисунок 6.4 Блок-схема співпроцесора IBM 3090

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

4.Висновок.Якщо бажано, щоб раніше розроблені програми могли скористатися перевагами співпроцесора при виконанні обчислень, у них потрібно внести незначні зміни.Векторні команди, що обробляються співпроцесором, відносяться до типу "регістр-регістр", тобто і операнди і результат зберігаються в регістрах. Цей же підхід використовується й у суперкомп'ютері CRAY. У комп'ютерах фірми Control Data застосовується альтернативний підхід – операнди витягаються безпосередньо з пам'яті. Невелика незручність, створювана обов'язковим використанням регістрів, полягає лише в тому, що програміст або компілятор повинні враховувати особливості структури співпроцесора при підготовці машинної програми. Наприклад, допустимо, що довжина набору векторних регістрів – Kt а розмірність оброблюваних векторів – N>K. У цьому випадку необхідно організувати в програмі цикл, у якому обробляється вектор з К елементів, а кількість повторень цього циклу – N/K.

Який вплив робить на швидкодію співпроцесора використання регістрів, продемонструє приведений нижче приклад (приклад взятий з роботи [PADE88J). мовою FORTRAN програма перемножування двох комплексних векторів виглядає в такий спосіб:

DO 100 J=l,50

CR(J)=AR(J)*BR(J)-AI(J)*BI(J) 100 CI(J)=AR(J)*BI(J)-AI(J)*BR(J)

Програма перемножує вектори А и В і формує результуючий вектор С, причому усі вектори мають дійсну (AR, BR, CR) і уявну (AI, BI, CI) частини. Співпроцесор 3090 може протягом одного машинного циклу виконати одну операцію звертання до пам'яті (читання або запис) або дві операції читання й одну операцію запису в регістр. Крім того, протягом одного машинного циклу в АЛП виконується одна векторна команда.

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

Операція "пам'ять-пам'ять" | К-сть циклів

AR(J)*BR(J)->T1(J) | 3

AI(J)*BI(J)->T2(J) | 3

T1(J)-T2(J)->CR(J) | 3

AR(J)*BI(J)->T3(J) | 3

AI(J)+BR(J)->T4(J) | 3

T3(J)+T4(J)->CI(J) | 3

Всього | 18

Якщо використовувати обчислювальні операції типу "регістр-пам'ять", процес обчислень буде виглядати в такий спосіб:








Список використаної літератури . ……………………………………………………………………
1 Catanzaro B. Multiprocessor System Architectyres. – Mountain View, CA: Sunsoft Press, 1994.

2 Hwang K. Advanced Computer Architecture. – New York : McGraw-Hill, 1993.

3 Lilja D. Cache Coherence in Large-Scale Shared-Memory Multiprocessors : Issues and Comparisons. – ACM Computing Surveys, September 1993.

Pfister G. In Search of Clusters. – Upper Saddle River, NJ : Prentice Hall, 1998. Stone H. High-performance Computer Architecture. – Reading, MA : Addison-Wesley, 1993.
Сторінки: 1 2 3