Architektura Cray-1 | PARALLEL.RU - Centrum Informacji i Analizy dla obliczeń równoległych

Z książki L.N.Koroleva
„Struktury komputerowe i ich oprogramowanie”

W latach 70. były pracownik i jeden z dyrektorów firmy CDC Seymour Cray (Seymour Cray) zorganizował własną firmę, która rozpoczęła projektowanie ultraszybkiego komputera znanego jako Cray-1 z prędkością przekraczającą 150 milionów operacji na sekundę z szerokim wykorzystaniem nowego zintegrowanego technologia.

były pracownik i jeden z dyrektorów firmy CDC Seymour Cray (Seymour Cray) zorganizował własną firmę, która rozpoczęła projektowanie ultraszybkiego komputera znanego jako Cray-1 z prędkością przekraczającą 150 milionów operacji na sekundę z szerokim wykorzystaniem nowego zintegrowanego technologia

Pamięć tego urządzenia składa się z 16 bloków o łącznej pojemności 1 miliona 64-bitowych słów. Dozwolone jest jednoczesne odniesienie do tych bloków w taki sposób, aby rzeczywisty czas cyrkulacji wynosił 12,5 nsec, podczas gdy czas dostępu do jednego bloku wynosi 50 nsec.

Główna pamięć maszyny Cray-1, w przeciwieństwie do innych wysokowydajnych maszyn, nie ma hierarchicznej struktury, jest tak szybka, że ​​nie ma takiej hierarchii. Uważa się, że maszyna Cray-1 jest najszybszą z klasy systemów jednoprocesorowych.

Wskazane jest bardziej szczegółowe opisanie struktury tej maszyny. Prezentacja będzie oparta na interesującym artykule Richarda M. Russella, jednego z twórców tej maszyny, który dostarcza podstawowych danych technicznych, cech architektonicznych i pewnych rozważań leżących u podstaw podjętych decyzji strukturalnych ( Richard M. Russell. System komputerowy CRAY-1. Komunikacja ACM, styczeń 1978, tom 21, numer 1 ).

Russell klasyfikuje maszynę Cray-1 jako super wydajny procesor wektorowy. Ta klasa obejmuje również samochody Illiak-IV, STAR-100, ASC.

Procesor Cray-1 zawiera:

  • pamięć główna, do 1048576 słów, podzielona na 16 niezależnych bloków referencyjnych, o pojemności 64K słów każdy;
  • pamięć rejestru składająca się z pięciu grup szybkich rejestrów przeznaczonych do przechowywania i translacji adresów do przechowywania i przetwarzania wartości wektorowych;
  • moduły funkcjonalne, które obejmują 12 równoległych urządzeń operacyjnych, które służą do wykonywania operacji arytmetycznych i logicznych na adresach, wielkościach skalarnych i wektorowych;
  • urządzenie, które wykonuje funkcje sterowania równoległą pracą modułów, bloków i urządzeń procesora centralnego;
  • 24 kanały I / O zorganizowane w 6 grupach o maksymalnej przepustowości 500 000 słów na sekundę (2 miliony bajtów na sekundę).

Dwanaście funkcjonalnych urządzeń maszyny Cray-1, które pełnią rolę konwerterów logiki arytmetycznej, nie mają bezpośredniego połączenia z pamięcią główną. Podobnie jak w rodzinie maszyn CDC-6000, mają dostęp tylko do szybkich rejestrów operacyjnych, z których wybierane są operandy i do których wysyłane są wyniki po wykonaniu odpowiednich akcji.

Trzy grupy rejestrów operacyjnych bezpośrednio związanych z urządzeniami logiki arytmetycznej nazywane są podstawowymi. Obejmują one osiem tak zwanych rejestrów A , składających się z 24 bitów każdy. Rejestry A są powiązane z dwoma modułami funkcjonalnymi, które wykonują dodawanie (odejmowanie) i mnożenie liczb całkowitych. Operacje te są używane głównie do tłumaczenia adresów, ich bazowania i indeksowania. Służą również do organizowania liczników cykli. W niektórych przypadkach rejestry A mogą być używane do wykonywania operacji arytmetycznych na liczbach całkowitych.

Następująca grupa głównych rejestrów operacyjnych obejmuje osiem 64-bitowych rejestrów S połączonych bezpośrednio z urządzeniami funkcjonalnymi do wykonywania operacji arytmetycznych z wartościami skalarnymi reprezentowanymi przez zmienne stałe i zmiennoprzecinkowe. Te rejestry S są podobne pod względem przeznaczenia do rejestrów X operandów w maszynie CDC-6600. Szczególnie interesujące jest osiem 64-elementowych rejestrów wektorowych, które są przeznaczone do przechowywania ośmiu wektorów operandów. Każdy taki operand składa się z 64 komponentów (elementów). Z kolei każdy składnik jest 64-bitowym słowem, które przechowuje liczbę ze zmiennym lub stałym przecinkiem. Komponenty wektorowe mogą być również elementami określonej tabeli. System poleceń maszynowych zapewnia specjalne operacje, których operandy są wektorami wieloskładnikowymi. Nie wszystkie zadania muszą przetwarzać wektory o wymiarze 64. Specjalny rejestr sterujący procesora centralnego określa wymagany wymiar (liczbę elementów). Rejestr ten jest sterowany programowo, co pozwala na wymiarowanie wektorów, które mają być przetwarzane podczas procesu obliczania. Ponadto w centralnym procesorze zapewniony jest rejestr maski, za pomocą którego możliwe jest blokowanie wykonywania działań arytmetyczno-logicznych na niektórych komponentach wektora, tj. Wykonywanie działań selektywnych pod względem komponentów. Rejestr maski jest podobny w swoim celu do rejestru maski maszyny Illyak-IV.

W metodach obliczeniowych algebry liniowej często stwierdza się, że rząd macierzy (wszystkie elementy rzędu macierzy) jest mnożony przez pewną wartość skalarną, a następnie odejmowany od elementów innego rzędu w celu uzyskania, na przykład, współczynnika zerowego z pewnymi nieznanymi. Metoda eliminacji Gaussa dla rozwiązywania układów równań liniowych algebraicznych opiera się na tej procedurze. Wykonanie takiej procedury można połączyć równolegle na dwa nieco różne sposoby, prowadząc naturalnie do tego samego wyniku.

Ponieważ w maszynie Cray-1 urządzenia, które wykonują mnożenie i odejmowanie, mogą działać jednocześnie, procedura ta może być na nim równoległa. Pomnóż pierwszą składową pierwszego wektora przez wartość skalarną, a następnie wykonaj operację odejmowania wyniku od pierwszego składnika drugiego wektora, podczas gdy to odejmowanie występuje, wykonaj operację mnożenia skalara przez drugi składnik pierwszego wektora równolegle. Ten mechanizm, który umożliwia łączenie różnych operacji arytmetycznych, nazywany jest łańcuchem w artykule Russella. W literaturze ta zasada organizacji równoległości jest czasami nazywana przenośnikiem. Połączenie równoległości potokowej z „pod względem komponentów”, w opinii twórców maszyny Cray-1, jest jedną z ważnych cech i zalet organizacji strukturalnej.

Pamięć rejestru procesora centralnego zawiera dwie grupy rejestrów buforów pomocniczych, które zmniejszają liczbę dostępów do pamięci głównej. Pierwsza grupa obejmuje 64 tak zwane rejestry B, które są używane do gromadzenia argumentów pochodzących z rejestrów A lub wysyłanych do rejestrów A z pamięci głównej. Druga grupa obejmuje 64 rejestry buforowe argumentów związanych z rejestrami S. Nazywane są rejestrami T i służą tym samym celom pamięci głównej, co rejestry B. Razem rejestry B i T mogą być postrzegane jako pojedynczy bufor do przechowywania często używanych argumentów i ich adresów.

Ponieważ rejestry B i T mogą być dostępne z programu, można je uznać za pośrednią, dostępną dla programu pamięć przechowującą 24-bitowe operandy (rejestry B) i 64-bitowe operandy (rejestry T). Transfery między pamięcią a rejestrami B i T są kontrolowane przez programy użytkownika. Oznacza to, że rejestry B i T można uznać za bufory sterowane programowo. Różni się to od mechanizmu zarządzania pamięcią buforową, przyjętego na przykład w maszynach IBM-370, który jest implementowany sprzętowo.

Ponadto centralny procesor maszyny Cray-1 zawiera pamięć buforową rejestru o znacznej objętości do pośredniego chrapania instrukcji aktualnie wykonywanego programu. Ta pamięć buforowa składa się z czterech sekcji, każda z 16 słowami. Sekwencja poleceń programu wstępnego dociera do tego bufora. Jeśli zawiera przejście warunkowe, wówczas polecenia związane z sekwencją, do której możliwe jest to przejście warunkowe, również gromadzą się w buforze. Bufor poleceń jest środkiem przyspieszającym działanie urządzenia sterującego, ponieważ znacząco minimalizuje czas oczekiwania na polecenia z pamięci głównej.

System poleceń maszyny Cray-1 bezpośrednio odzwierciedla strukturę rejestru centralnego procesora, specyfikę połączenia modułów funkcjonalnych z rejestrami operacyjnymi i ich połączenie z pamięcią główną. Polecenia maszyny Cray-1 w dwóch formatach: krótkie zespoły - 16 bitów i długie - 32 bity.

Pierwsze siedem cyfr definiuje kod operacji, a następnie trzy-cyfrowe pola i, j, k, określając odpowiednio numer rejestru wynikowego i liczbę rejestrów operandów źródłowych.

W jednym komputerze słowo Cray-1 może pomieścić do czterech komend krótkiego formatu. Długie polecenia mogą zaczynać się jednym słowem i kontynuować w następnym. Dzięki temu zespoły mogą być ciasno upakowane w pamięci maszyny i do pewnego stopnia przyspieszają ich wybór.

Główne rejestry sterujące maszyny obejmują: licznik poleceń zdolny do adresowania każdej ćwiartki słowa, rejestr bazowy (BA), który jest używany do utworzenia adresu bezwzględnego podczas uzyskiwania dostępu do pamięci i jednocześnie jest górną granicą przestrzeni adresowej programu; rejestr granic adresów (LA), który zawiera dolną granicę adresów dostępnych dla bieżącego programu, rejestry BA i LA są używane do ochrony pamięci przydzielonej dla programu aktywnego w trybie wieloprogramowym. Zatem w maszynie Cray-1 stosowana jest metoda ochrony granic stosowana w wielu maszynach, w szczególności w maszynie Minsk-32.

Centralny procesor zawiera dziewięciobitowy rejestr F, który rejestruje przyczynę przerwania, a mianowicie: przerwania spowodowane normalnym końcem zadania, zakończone błędem, naprawia przerwania dla wejścia-wyjścia, błędy w argumentach, przepełnienia, znaczniki czasu i sygnały z konsoli operatora . Specjalny rejestr trybów wykonywania programu umożliwia blokowanie niektórych grup przerwań.

System przerwań w samochodzie Cray-1 zbudowany jest na obrazie i podobieństwie do tego, który został zastosowany dla poprzednich maszyn z rodziny CDC, a mianowicie takich samych jak CDC-7600.

Obwody sterujące automatycznie zapamiętują wszystkie rejestry sterowania i główne przerwane programy, gdy wystąpi przerwanie w głównym obszarze pamięci, którego adres początkowy jest określony w specjalnym rejestrze sterowania. Następnie sterowanie jest automatycznie przenoszone do programów systemu operacyjnego, które analizują przyczynę przerwania i, jeśli to konieczne, zapamiętują w pamięci głównej zawartość wszystkich grup rejestrów pośrednich i buforowych (B, T i V). W pamięci głównej dla każdego zadania, które przechodzi w tryb wieloprogramowy, przydzielane są tablice, w których przechowywane są wszystkie informacje niezbędne do kontynuacji przerwanego programu.

Należy pamiętać, że ochrona pamięci i system przerwania są zorganizowane w taki sposób, że znaczna część pracy nad zapamiętywaniem informacji do zwrotu, przy organizacji procesu przełączania z jednego zadania do drugiego, jest przypisana do systemu operacyjnego. Brak wystarczająco rozwiniętej redystrybucji pamięci dynamicznej sprzętu, uproszczone urządzenie do konwersji adresów oprogramowania na adresy fizyczne (oparte na sprzęcie) jest całkiem dopuszczalne w maszynach zaprojektowanych do rozwiązywania głównych problemów naukowych. Ten tryb „naukowych” obliczeń charakteryzuje się stosunkowo rzadkim występowaniem sytuacji, która wymaga przejścia od rozwiązania jednego problemu do drugiego. To z kolei umożliwia wdrożenie ochrony i przerw w inny sposób, bez obawy o ich szybką implementację sprzętową.

Tutaj chciałbym jeszcze raz podkreślić wpływ na strukturalną organizację komputerów, które mają klasę zadań do rozwiązania. Ciekawy sposób reprezentowania liczb zmiennoprzecinkowych, przyjęty w maszynie Cray-1. 49 cyfr jest przypisanych do mantysy ze znakiem. 15 bitów jest przydzielanych do porządku binarnego. Tak więc cena kategorii niskiego rzędu wynosi 2-48 (~ 10-17), a zakres liczb reprezentatywnych szacuje się w przybliżeniu na 102500. Na pierwszy rzut oka może wydawać się dziwne zwiększenie zakresu reprezentowanych liczb do tak ogromnych granic. Jednakże, aby rozwiązać niektóre problemy algebry liniowej, takie rozszerzenie zakresu może być konieczne.

Oprogramowanie maszyny Cray-1, jak również jej poprzednich maszyn firmy CDC, jest „zorientowane na Fortran”. Oznacza to, że Fortran, który jest najintensywniej wykorzystywany w obliczeniach naukowych, jest wybierany jako główny język wejściowy. Dla maszyny Cray-1 stworzono specjalny translator optymalizujący ze standardowego Fortrana, który uwzględnia specyfikę tej maszyny wektorowej. W pewnych warunkach nałożonych na program ten translator zapewnia równoległość potoku i przygotowuje programy obiektowe, które efektywnie wykorzystują te możliwości maszyny. Trwają prace nad nową wersją kompilatora, która zoptymalizuje programy Fortran, skompilowane bez żadnych ograniczeń.

Oprogramowanie zawiera również CAL makro-asemblera (Cray Assembler Language) i bibliotekę standardowych programów utworzonych w tym języku i koncentruje się na wykorzystaniu równoległych narzędzi obliczeniowych właściwych dla tego komputera.

System operacyjny COS (Cray Operating System) jest przeznaczony do przetwarzania wsadowego i zdalnego przetwarzania wsadowego zadań otrzymanych ze zdalnych terminali. System operacyjny jest przeznaczony do wieloprogramowego przetwarzania jednocześnie do 63 aktywnych zadań. Aby zapewnić działanie w trybie zdalnego dostępu, miniaturowy Eclipse jest używany jako urządzenie satelitarne systemu obliczeniowego Cray-1. Zewnętrzne kanały centralnego komputera są połączone z tym urządzeniem za pomocą specjalnych urządzeń interfejsowych. Mini-magistrali przypisuje się funkcje kontrolowania odbioru-transmisji informacji, sterowania liniami komunikacyjnymi, tj. Funkcjami procesora transmisji danych. W tym celu Cray rozwija swój własny wyspecjalizowany mikrokomputer, który w niedalekiej przyszłości powinien zastąpić mini-bar innej firmy. Maszyna Cray-1, jak już wspomniano, jest dziś uważana za najszybszą w klasie komputerów mainframe do obliczeń naukowych. Jego wydajność zależy w dużym stopniu od charakteru rozwiązywanego problemu. Weryfikacja eksperymentalna wykazała, że ​​wynosi od 20 do 160 milionów operacji na sekundę. Podczas wykonywania operacji zmiennoprzecinkowych jego zakres prędkości szacuje się na od 20 do 60 milionów operacji na sekundę.

Tekst jest reprodukowany z publikacji: Struktury komputerowe i ich oprogramowanie. Korolev L.N. Główni redaktorzy literatury fizycznej i matematycznej, M., Science, 1978. str. 317-324.

© Laboratorium równoległych technologii informacyjnych, Centrum Badawcze Moskiewskiego Uniwersytetu Państwowego
© Laboratorium równoległych technologii informacyjnych, Centrum Badawcze Moskiewskiego Uniwersytetu Państwowego