Архітэктура Cray-1 | PARALLEL.RU - Інфармацыйна-аналітычны цэнтр па паралельных вылічэннях

з кнігі Л.Н.Королева
"Структуры ЭВМ і іх матэматычнае забеспячэнне"

У 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 разрадаў кожны. А-рэгістры звязаныя з двума функцыянальнымі модулямі, якiя выконваюць складанне (адніманне) і множанне цэлых лікаў. Гэтыя аперацыі выкарыстоўваюцца галоўным чынам для пераўтварэння адрасоў, іх базавання і індэксавання. Яны таксама выкарыстоўваюцца для арганізацыі лічыльнікаў цыклаў. У шэрагу выпадкаў А-рэгістры можна выкарыстоўваць для выканання арыфметычных аперацый над цэлымі лікамі.

У наступную групу асноўных аперацыйных рэгістраў уваходзяць восем 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 млн. Аперацый у секунду.

Тэкст воспроизволится па выданні: Структуры ЭВМ і іх матэматычнае забеспячэнне. Каралёў Л.Н. Галоўная рэдакцыя фізіка-матэматычнай літаратуры, М., Навука, 1978. Стар 317-324.

© Лабараторыя паралельнае Інфармацыйных Тэхналогій, НИВЦ МДУ
© Лабараторыя паралельнае Інфармацыйных Тэхналогій, НИВЦ МДУ