астково приховати втрату зазначених двох тактів, і в результаті ефективність виконання переходу виявиться нижче, ніж в інших процесорах.
Коли інструкція переходу потрапить у функціональне пристрій для виконання, буде з'ясовано, правильно передбачений цей перехід, чи ні. У момент її відставки при неправильному пророкуванні переходу всі наступні інструкції будуть скасовані, і почнеться зчитування інструкцій з I-кеша за правильною адресою. Таку процедуру називають скиданням конвеєра, а час (в тактах), яке було витрачено на виконання інструкції переходу з моменту її зчитування з кеша, називають довжиною конвеєра непредсказанного переходу. Це час характеризує чисту втрату в ідеальних умовах, коли інструкція проходила через всі етапи В«гладкоВ» і ніде не затримувалася за зовнішніми причинами. У реальних умовах втрата на неправильно передвіщений перехід може виявитися вище.
Довжина конвеєра непредсказанного переходу не завжди вказується в документації і відома дуже приблизно. Її досить важко заміряти, так як сучасні провісники переходів працюють досить ефективно і не дозволяють домогтися гарантованої частки неправильних пророкувань в тестах. Можна дати наступні приблизні оцінки довжини конвейєра: P-III - 11, PM - 12, P-4 - 20, P-4E - 30, P8 - 14, K8 - 11, PPC970 - 13. Потрібно врахувати, що в процесорах P-4 і P-4E довжина такту менше, ніж в інших процесорах, і втрата на непредсказанний перехід, виражена в В«нормалізованихВ» тактах з урахуванням співвідношення 1:1.4, складе відповідно 15 і 22.
6 Матричні процесори
Конвеєри і суперскалярна архітектура звичайно підвищують швидкість роботи всього лише в 5-10 разів. Щоб збільшити продуктивність в 50, 100 і більше разів, потрібно створювати комп'ютери з декількома процесорами. p> У будь паралельної комп'ютерній системі процесори, що виконують різні частини єдиного завдання, повинні якось взаємодіяти один з одним, щоб обмінюватися інформацією. Як саме має відбуватися обмін? Для цього було запропоновано і реалізовано дві стратегії: мультипроцесори і мультікомпьютери. Ключове відмінність між стратегіями полягає в наявності або відсутності спільної пам'яті. Ця відмінність позначається як на конструкції, пристрої та програмуванні таких систем, так і на їх вартості і розмірах. <В
6.1 Матричні процесори
Багато задач у фізичних і технічних науках припускають використання масивів або інших упорядкованих структур. Часто одні й ті ж обчислення можуть проводитися над різними наборами даних в один і той же час. Впорядкованість і структурованість програм, призначених для виконання такого роду обчислень, дуже зручні в плані прискорення обчислень за рахунок паралельної обробки команд. p> Матричний процесор (array processor) складається з великої кількості подібних процесорів, які виконують одну і ту ж послідовність команд стосовно до різних наборів даних. Першим у світі таким процесором був ILLIAC IV (Університет Іллінойс). Схематично він зображений на малюнку 6.1. Спочатку передбачалося сконструювати машину, що складається з чотирьох квадрантів, кожен з яких містив матрицю розміром 8 х 8 з блоків процесор/пам'ять. Для кожного квадранта був один блок контролю. Він розсилав команди, що виконувались усіма процесорами одночасно, при цьому кожен процесор використовував власні дані з власної пам'яті (завантаження даних відбувалася при ініціалізації). Це рішення, значно відрізняється від стандартної фон-неймановской машини, іноді називають архітектурою SIMD (Single Instruction-stream Multiple Data-stream - один потік команд з декількома потоками даних). Через дуже високої вартості був побудований тільки один такий квадрант, але він міг виконувати 50 млн операцій з плаваючою крапкою в секунду. Якби при створенні машини використовувалося чотири квадранта, вона могла б виконувати 1 млрд операцій з плаваючою крапкою в секунду, і обчислювальні можливості такої машини в два рази перевищували б можливості комп'ютерів усього світу. <В
6.2 Векторний процесор
З крапки зору програміста, векторний процесор (vector processor) дуже схожий на матричний. Як і матричний, він надзвичайно ефективний при виконанні послідовності операцій над парами елементів даних. Однак на відміну від матричного процесору, всі операції складання виконуються в одному блоці підсумовування, який має конвеєрну структуру. Компанія Cray Research, засновником якої був Сеймур Крей, випустила безліч моделей векторних процесорів, починаючи з моделі Сгау-1 A974. p> Обидва типи процесорів працюють з масивами даних. Обидва вони виконують одні й ті ж команди, які, наприклад, попарно складають елементи двох векторів. Проте якщо у матричного процесора стільки ж підсумовуючих пристроїв, скільки елементів у масиві, векторний процесор містить векторний регістр, що з набору умовних регістрів. Ці регістри завантажуються з пам'яті єдиної командою, яка фактично робить це послідовно. Команда додавання п...