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