У 70-х роках колишній співробітник і один з керівників фірми CDC Seymour Cray (Сеймур Крей) організував власну фірму, яка зайнялася проектуванням надшвидкодіючої ЕОМ, відомої під назвою Cray-1 з швидкодією, що перевершує 150 млн. Операцій в секунду з широким використанням нової інтегральної технології.
Пам'ять цієї машини виконана у вигляді 16 блоків, загальною ємністю в 1 млн. 64 розрядних слів. Допускається одночасне звернення до цих блокам таким чином, що реальний час звернення стає рівним 12,5 нсек, в той час як час звернення до одного блоку дорівнює 50 нсек.
Основна пам'ять машини Cray-1 на відміну від інших високопродуктивних машин не має ієрархічну структуру, вона настільки швидка що в такій ієрархії відпала необхідність. Вважається, що машина Cray-1 є найбільш швидкодіючої з класу однопроцесорних систем.
Про структурної організації цієї машини доцільно розповісти більш докладно. Виклад буде засновано на цікавій статті Річарда М. Расселла, одного з розробників цієї машини, в якій наведено основні технічні дані, архітектурні особливості та деякі міркування, покладені в основу прийнятих структурних рішень (Richard М. Russell. The CRAY-1 Computer System. Communication of the ACM. January 1978, Volume 21, Number 1).
Расселл відносить машину Cray-1 до класу сверхвисокопроізводітельних векторних процесорів. До цього класу належать також машини Ілліак-IV, STAR-100, ASC.
До складу центрального процесора Cray-1 входять:
головна пам'ять, об'ємом до 1048576 слів, розділена на 16 незалежних за зверненням блоків, ємністю 64К слів кожен;
реєстрова пам'ять, що складається з п'яти груп швидких регістрів, призначених для зберігання і перетворення адрес, для зберігання і обробки векторних величин;
функціональні модулі, до складу яких входять 12 паралельно працюючих пристроїв, що служать для виконання арифметичних і логічних операцій над адресами, скалярними і векторними величинами;
пристрій, що виконує функції управління паралельною роботою модулів, блоків і пристроїв центрального процесора;
24 каналу введення-виведення, організовані в 6 груп з максимальною пропускною здатністю 500000 слів в секунду (2 млн. Байт в сек.).
Дванадцять функціональних пристроїв машини Cray-1, які відіграють роль арифметико-логічних перетворювачів, не мають безпосереднього зв'язку з головною пам'яттю. Так само як і в машинах сімейства CDC-6000, вони мають доступ тільки до швидких операційним регістрів, з яких вибираються операнди і на які засилають результати після виконання відповідних дій.
Три групи операційних регістрів, безпосередньо пов'язані з арифметико-логічними пристроями, називаються основними. До них відносяться вісім так званих А-регістрів, що складаються з 24 розрядів кожен. А-регістри пов'язані з двома функціональними модулями, які виконують додавання (віднімання) і множення цілих чисел. Ці операції використовуються головним чином для перетворення адрес, їх базування і індексування. Вони також використовуються для організації лічильників циклів. У ряді випадків А-регістри можна використовувати для виконання арифметичних операцій над цілими числами.
У наступну групу основних операційних регістрів входять вісім 64-розрядних S-регістрів, безпосередньо пов'язаних з функціональними пристроями виконання арифметичних дій зі скалярними величинами, представленими з фіксованою і плаваючою комою. Ці S-регістри аналогічні за призначенням Х-регістрів операндів в машині CDC-6600. Особливий інтерес представляють вісім 64-елементних векторних регістрів, які призначені для зберігання восьми операндів-векторів. Кожен такий операнд складається з 64 компонент (елементів). У свою чергу кожна компонента являє собою 64-розрядне слово, в якому зберігається число з плаваючою або фіксованою комою. Компоненти вектора можуть являти собою також елементи деякої таблиці. В системі команд машини передбачені спеціальні операції, в якості операндів яких виступають багатокомпонентні вектори. Не у всіх завданнях потрібно обробляти вектори розмірності 64. Спеціальний керуючий регістр центрального процесора задає необхідну розмірність (число елементів). Цей регістр програмно керований, що дозволяє в процесі обчислень змінювати розмірність оброблюваних векторів. Крім того, в центральному процесорі передбачений регістр маски, за допомогою якого можна блокувати виконання арифметико логічних дій над деякими компонентами вектора, т. Е. Здійснювати вибіркові покомпонентно дії. Регістр маски за своїм призначенням аналогічний регістру маски машини Ілліак-IV.
В обчислювальних методах лінійної алгебри часто зустрічається процедура, яка полягає в тому, що її рядок (всі елементи рядка матриці) множать на деяку скалярну величину і потім віднімають з елементів іншого рядка, з тим щоб отримати, наприклад, нульовий коефіцієнт при деякому невідомому. На цій процедурі заснований метод виключення Гаусса при вирішенні систем лінійних алгебраїчних рівнянь. Виконання такої процедури можна запараллелить двома кілька різними способами, що приводять, природно, до однакового результату.
Оскільки в машині Cray-1 пристрої, що виконують операції множення і віднімання, можуть працювати одночасно, то цю процедуру на ній можна запараллелить так. Помножити першу компоненту першого вектора на скалярну величину, після цього приступити до виконання операції віднімання результату з першої компоненти другого вектора, а поки відбувається це віднімання, паралельно виконати операцію множення скаляра на другу компоненту першого вектора. Цей механізм, що дозволяє поєднувати різні арифметичні дії, в статті Расселла названий ланцюжком. У літературі цей принцип організації паралелізму іноді називають конвеєрні. Поєднання конвеєрного паралелізму з "покомпонентним", на думку розробників машини Cray-1, становить одну з важливих особливостей і переваг її структурної організації.
До складу реєстрової пам'яті центрального процесора входять дві групи допоміжних буферних регістрів, що скорочують число звернень до головної пам'яті. До першої групи входять 64 так званих В-регістра, які служать для накопичення операндів, що надходять з А-регістрів або направляються в А- регістри з головною пам'яті. До другої групи входять 64 буферних регістру операндів, пов'язаних з S-регістрами. Вони називаються Т-регістрами і служать тим же цілям щодо головної пам'яті, що і В-регістри. Спільно В-і Т регістри можна розглядати як єдиний буфер для зберігання часто використовуваних операндів і їх адрес.
Оскільки до регістрів В і Т можна звертатися з програми, то їх можна розглядати як проміжну, доступну для програми пам'ять, що зберігає 24-розрядні операнди (В-регістри) і 64-розрядні операнди (Т регістри). Пересилками між пам'яттю до В- і Т-регістрами управляють програми користувача. Це означає, що В-і Т-регістри можна розглядати як програмно керовані буфери. У цьому полягає відмінність від механізму управління буферною пам'яттю, прийнятого, наприклад, в машинах IBM-370, який реалізований апаратним шляхом.
Крім того, до складу центрального процесора машини Cray-1 входить реєстрова буферна пам'ять значного обсягу для проміжного Величне команд програми, що виконується в даний момент. Ця буферна пам'ять складається з чотирьох секцій, кожна по 16 слів. Послідовність команд програми попередньо надходить цей буфер. Якщо вона містить умовний перехід, то в буфері накопичуються також команди, які стосуються послідовності, на яку можливий цей умовний перехід. Буфер команд є засобом прискорення роботи пристрою управління, так як помітно мінімізує час очікування команд з головної пам'яті.
Система команд машини Cray-1 прямо відображає реєстрову структуру центрального процесора, своєрідність зв'язку функціональних модулів з операційними регістрами та зв'язку їх з головною пам'яттю. Команди машини Cray-1 двох форматів: короткі команди - 16 розрядів і довгі - 32 розряду.
Сім перших розрядів визначають код операції, потім слідують Трехразрядное поля i, j, k, що визначають відповідно номер регістра результату і номери регістрів вихідних операндів.
В одному слові машини Cray-1 може розміщуватися до чотирьох команд короткого формату. Довгі команди можуть починатися в одному слові і тривати в наступному. Це дозволяє щільно упаковувати команди в пам'яті машини і в якійсь мірі прискорює їх вибірку.
До головним керуючим регістрів машини відносяться наступні: лічильник команд, здатний адресувати кожну четверту частину слова, регістр бази (ВА), який служить для утворення абсолютної адреси при зверненні до пам'яті і одночасно є верхньою межею адресного простору програми; регістр кордону адрес (LA), що містить нижню межу доступних для поточної програми адрес, регістри ВА і LA служать для захисту пам'яті, виділеної для програми, активної в мультипрограммном режимі. Тим самим в машині Cray-1 застосований метод захисту по межах, використовуваний в багатьох машинах, зокрема в машині Мінськ-32.
У складі центрального процесора є девятіразрядний регістр F, що фіксує причину переривань, а саме: переривання по нормальному закінченню завдання, закінчення помилково, фіксує переривання по вводу- висновку, по появі помилок в операндах, по переповнених, матюками часу і сигналами з пульта оператора машини . Спеціальний регістр режимів виконання програм дозволяє блокувати деякі групи переривань.
Система переривань в машині Cray-1 побудована за образом і подобою такої, прийнятої для машин-попередників сімейства CDC, а саме, така ж, як у CDC-7600.
Схемами управління автоматично запам'ятовуються всі керуючі і основні операційні регістри перерваної програми при появі переривання в область головній пам'яті, адреса початку якої зазначений у спеціальному регістрі. Після цього управління автоматично передається програмами операційної системи, які аналізують причину переривання і при необхідності запам'ятовують в головній пам'яті вміст всіх груп проміжних і буферних регістрів (В, Т і V). У головній пам'яті для кожного завдання, що йде в мультипрограммном режимі, виділені масиви, в яких зберігається вся інформація, необхідна для продовження перерваної програми.
Відзначимо, що захист пам'яті і система переривань організовані так, що значна частка роботи із запам'ятовування інформації для повернення, з організації процесу перемикання з одного завдання на інше покладається на операційну систему. Відсутність достатньо розвинених апаратних засобів динамічного перерозподілу пам'яті, спрощений апарат перетворення програмних адрес в фізичні (апаратне базування) цілком припустимі в машинах, призначених для вирішення великих наукових завдань. Цей режим "наукових" обчислень характерний порівняно рідкісним появою ситуації, що вимагають перемикання з вирішення однієї задачі на іншу. Це в свою чергу дозволяє по-іншому реалізувати захист і переривання, не піклуючись про швидке апаратній їх виконанні.
Тут хотілося б ще раз наголосити на тому вплив на структурну організацію ЕОМ, яке надає клас розв'язуваних задач. Цікавий спосіб представлення чисел з плаваючою комою, прийнятий в машині Cray-1. На мантиссу зі знаком виділено 49 розрядів. На двійковий порядок виділено 15 розрядів. Тим самим ціна молодшого розряду 2-48 (~ 10-17), а діапазон представимо чисел приблизно оцінюється величиною 102500. Може здатися на перший погляд дивним збільшення діапазону представимо чисел до таких величезних меж. Однак для вирішення деяких завдань лінійної алгебри таке розширення діапазону може виявитися необхідним.
Математичне забезпечення машини Cray-1, так само як і у її попередників машин фірми CDC, "Фортран-орієнтоване".Це означає, що в якості основного вхідного мови обраний фортран, найбільш інтенсивно використовується в наукових розрахунках. Для машини Cray-1 створений спеціальний оптимізуючий транслятор зі стандартного Фортрану, що враховує специфіку цієї векторної машини. При деяких умовах, накладених на програму, даний транслятор забезпечує конвеєрний паралелізм і готує об'єктні програми, ефективно використовують ці можливості машини. Ведуться роботи над новою версією транслятора, який буде оптимізувати фортран програми, складені без будь-яких обмежень.
До складу математичного забезпечення входить також макроассемблер CAL (Cray Assembler Language) і бібліотека стандартних програм, складена на цій мові і орієнтована на використання коштів паралельних обчислень, властивих даній машині.
Операційна система COS (Cray Operating System) призначена для режиму пакетної обробки і дистанційної пакетної обробки завдань, отриманих з віддалених терміналів. Операційна система розрахована на мультипрограмне обробку одночасно до 63 активних завдань. Для забезпечення роботи в режимі дистанційного доступу в якості машини-сателіта обчислювальної системи Cray-1 використовується минимашин "Eclipse". З цією машиною пов'язані зовнішні канали центрального обчислювача за допомогою спеціальних сполучають пристроїв. На минимашин покладаються функції управління прийомом-передачею інформації, управління лініями зв'язку, т. Е. Функції процесора передачі даних. Фірма Cray розробляє для цих цілей власний спеціалізований мікрокомп'ютер, який в недалекому майбутньому повинен замінити минимашин іншої фірми. Машина Cray-1, як уже говорилося, на сьогоднішній день вважається найбільш швидкодіючої в класі універсальних ЕОМ для наукових розрахунків. Її продуктивність сильно залежить від характеру вирішуваних завдань. Експериментальна перевірка показала, що вона коливається від 20 до 160 млн. Операцій в секунду. При виконанні операцій з плаваючою комою діапазон її швидкодії оцінюється в межах від 20 до 60 млн. Операцій в секунду.
|