Narodziny radzieckiego systemu obrony przeciwrakietowej. Największy radziecki komputer
Monopol Lebiediew
Od razu zastrzegamy, że BESM-6 to duże auto w każdym tego słowa znaczeniu. Dlatego, żeby o tym krótko napisać - to się nie uda. Ze względu na obfitość materiału musiałem podzielić ogromny artykuł na trzy części, a każda z nich jest kontynuacją poprzedniej, więc dla pełnego zanurzenia zaleca się studiowanie wszystkiego po kolei.
W 1958 roku Lebiediew jednocześnie wprowadził do serii dwie wersje swojego BESM - wojskową, szybszą M-20 i cywilną, wolniejszą BESM-2. W tym momencie faktycznie zajął legendarne miejsce, podobnie jak Kałasznikow, wśród producentów komputerów.
Związek Radziecki kochał monopole nie gorzej niż gnijący kapitalizm, ale w naszym kraju szkoły różnych generalnych projektantów, należące do różnych ministerstw, były swego rodzaju odpowiednikiem korporacji.
Maszyny ITMiVT budowano w ogromnym nakładzie jak na standardy ZSRR - w sumie kilka tysięcy egzemplarzy, z czego kilkaset superkomputerów. Stali wszędzie - w Dubnej, w Arzamasie, na Uniwersytecie Moskiewskim, w Centralnym Centrum Dowodzenia, w systemie obrony przeciwrakietowej A-135, w S-300 - łatwiej wymienić, gdzie ich nie było.
Szkoła Lebiediewa osiągnęła taki monopol, że nadal żyjemy ich dziedzictwem, podobnie jak wieczną i trwałą AK.
Jak ITMiVT doszedł do tej pozycji?
Do 1958 roku Lebiediew miał dwóch ulubionych uczniów i spadkobierców - Władimira Andriejewicza Mielnikowa i Wsiewołoda Siergiejewicza Burcewa. Drugi zasługuje na osobne omówienie w związku z Elbrusem, na razie rozważmy losy i dzieło Mielnikowa.
W 1951 r. w MPEI odbyła się pierwsza matura studentów specjalności „Przyrządy i przyrządy matematyczno-rachunkowe” iw tym samym roku utworzono katedrę. Ukończenie studiów odbyło się dlatego, że studenci de facto studiowali już budowę komputerów analogowych w ramach specjalności „Automatyka i Telemechanika”. O maszynach cyfrowych nie było wtedy mowy, kierownik katedry, profesor G.M. Żdanow specjalizował się, jak prawie wszyscy naukowcy tego pokolenia, tylko na maszynach analogowych, w 1956 roku ukazał się jego podręcznik „Maszyny matematyczne i urządzenia ciągłe”.
Pomimo takiego konserwatyzmu Żdanow przyciągnął także ekspertów w dziedzinie architektury komputerowej, aby nauczali w szczególności dwóch absolwentów wydziału inżynierii radiowej MPEI - naszych starych znajomych Kartseva i Matyukhina. Słysząc o takim przypadku, wielu innych nie pozostało z boku - także znany nam Kitov, Rameev i oczywiście Lebiediew, który dopiero rozpoczynał swoją drogę do zostania guru domowej inżynierii komputerowej.
Jak już wspomnieliśmy, Lebiediew był znakomitym inżynierem elektrykiem, początkowo specjalizował się w problemach energetycznych, a nawet zbudował maszynę analogową w 1945 r., aby uprościć obliczenia sieciowe, pracując w Zakładzie Zabezpieczeń Przekaźnikowych i Automatyzacji Systemów Elektroenergetycznych MPEI.
Jeszcze w 1939 r., sprzeciwiając się rozprawie prof. AV Netushil (przyszły dziekan Wydziału Automatyki i Inżynierii Komputerowej) Lebedev przestudiował jej temat „Analiza elementów wyzwalających szybkich liczników impulsów” i pomyślał o dość nietypowej architekturze cyfrowej komórki obliczeniowej.
Obrona nastąpiła dopiero po wojnie, a po 3 latach Lebiediew wyjechał do Kijowa na budowę MESM (swoją drogą Chruszczow był pierwszym sekretarzem KC KP(b) Ukraińskiej SRR, a to było początek ich przyjaźni). Kiedy Ławrientiew wyciągnął go stamtąd z powrotem do Moskwy (właściwie zaprosił go tam wcześniej na stanowisko dyrektora całego instytutu, co w Moskwie było trudne do osiągnięcia), Lebiediew miał, jak pamiętamy, szkice architektury duża maszyna.
Równolegle z tworzeniem BESM kontynuował nauczanie w MPEI i tam wśród pierwszych absolwentów zwerbował swój pierwotny zespół – doktorantów, którym zlecał zaprojektowanie węzłów swojego nowego komputera (wcześniej studenci mieli dyplomy o wiele bardziej interesujące: jako ostateczna praca, rozwiń węzeł Europa - to nie jest skrzynka transformatorowa dla wioski wakacyjnej do obliczenia).
Do najwybitniejszych w 1951 roku należeli V.A. Melnikov i V.S. Burcew, ten ostatni miał w ogóle ciężkie życie, stracił rodziców na wojnie i traktował Lebiediewa jak ojca. Oprócz tej pary A.G. Laut, ID Vizun, A.S. Fiodorow i L.A. Orłow.
Ogólnie rzecz biorąc, Lebiediew miał dwie bardzo mocne strony.
Po pierwsze, był pierwszorzędnym organizatorem, któremu udało się w jak najkrótszym czasie pozyskać zasób ludzki i po mistrzowsku przystosować go do pracy, w tym tylko Brook mógł się z nim równać.
Po drugie, i tutaj nikt nie mógł się z nim równać, pomimo zewnętrznej surowości, Lebiediew był niezwykle uroczą, spokojną, elastyczną i taktowną osobą - cech, których brakowało poprzecznemu Kitowowi, Potokowi, Ramejewowi, Kartsewowi, Judyckiemu - i ogólnie prawie wszyscy domowi projektanci, którzy przegrali ze szkołą Lebiediewa.
Lebiediew jest jedynym, któremu pod jego ścisłym kierownictwem udało się zamienić rozwój komputerów w rodzaj rurociągu. Sam zaprojektował (najlepiej, jak potrafił, w duchu starej szkoły) podstawowe komórki logiczne i wymyślił system dowodzenia (ściśle klasyczny w duchu lat 1940., a właściwie wymyślił tylko dwa z nich - jeden używany w MESM/BESM/M-20, a drugi w BESM-6), a wszystko inne wykonali jego uczniowie, właściwie budując samochód.
Był również odpowiedzialny za niezwykle ważną część każdego rozwoju radzieckiego - interakcję z partokratami.
Lebiediew był swego rodzaju Jobbsem ZSRR – podobnie jak Korolow potrafił przepchnąć się praktycznie przez wszystko, wszędzie, na wszystkich poziomach sowieckiego systemu, ale w przeciwieństwie do Korolewa był tak piękny i subtelny, że nie gromadził się aż do śmierci (w przeciwieństwie do wszystkich innych projektantów) ani jednego rodu, a był kochany i szanowany nawet przez tych, którzy przegrali z jego szkołą.
W rezultacie do końca 1951 r. absolwenci MPEI stanowili podstawę Laboratorium nr 1, do 1953 r. kończąc montaż BESM Lebiediewa. Mielnikow był zaangażowany w rozwój urządzenia sterującego i odniósł taki sukces, że jeśli chodzi o montaż BESM-2, został de facto jego głównym konstruktorem, a także konstruktorem BESM-6.
Prawie nic nie wiadomo o początkowych etapach rozwoju BESM-6 (nie jest nawet jasne, dlaczego 6 i gdzie poszło 5), sensowne wzmianki znaleziono dopiero od 1964 roku.
Rzucenie kropli światła pomoże w badaniu porównywalnych zachodnich architektur.
IBM 7030 Rozciąganie
W 1959 roku wypuszczono niezwykle potężny komputer szeregowy IBM 7090 do obliczeń naukowych i pojawiły się pierwsze dwa prawdziwe superkomputery - IBM 7030 Stretch i Remington Rand UNIVAC LARC. Specjalny tor LARC Historie nie odszedł, ale IBM 7030 stał się prawdziwą ikoną.
Przede wszystkim jako pierwszy osiągnął ponad milion operacji na sekundę – 1,2 MIPS w 1959 roku to szalona liczba; jako pierwsi skorzystali z systemu SMS - standardowe karty modułowe; pierwszy, w trakcie którego odkryto i zastosowano podstawowe zasady hierarchicznego projektowania sprzętu, począwszy od opracowania optymalnego systemu dowodzenia, a skończywszy na implementacji poszczególnych modułów na standardowych komórkach.
Stretch był pierwszym komputerem głównego nurtu, w którym zastosowano standardowe ferrytowe moduły pamięci, z chłodzeniem zanurzonym w oleju, kolejną innowacją. Dodatkowo Stretch mógł odczytywać i zapisywać do pamięci w sześciu równoległych wątkach, co pozwalało na osiągnięcie szybkości pracy z pamięcią RAM na poziomie 2 MIPS (tak, w tamtych czasach możliwe było, że pamięć była szybsza od procesora ).
Ośmiobitowy bajt i pojemność słów maszynowych 8/32/64 bitów, co jest najwygodniejsze i stało się dotychczas standardem (w przeciwieństwie do dzikich słów maszynowych o pojemności od 22 do 50 bajtów, często nawet nie wielokrotność rozmiaru adresowalnych komórek pamięci), również pojawił się właśnie w nim, przy czym procesor Stretch był w pełni 64-bitowy na długo przed Intel Core. Ponadto komputer posiadał sprzętowe wsparcie pracy z polami bitowymi, co umożliwiało pracę z typami danych o zmiennej długości.
Rozciągnięcie obsługiwało arytmetykę rzeczywistą, arytmetykę liczb całkowitych i znaki alfanumeryczne. Ponadto jako pierwszy zaimplementował multiprogramowanie, aw ramach tego ochronę pamięci i standardowe przerwania.
Stretch był pierwszym na świecie, który został zmontowany na układach logicznych sprzężonych z emiterami, supermocnych i wymagających dobrego chłodzenia, ale tak szybko, jak to możliwe, logika ECL w różnych formach stała się standardem sprzętu superkomputerowego aż do lat 1980-tych.
Pierwsze użycie trzyetapowego standardowego potoku w procesorze (klasyczne kroki Fetch, Decode, Execute). Porozmawiamy o rurociągu osobno poniżej. Po raz pierwszy na świecie zastosowano najbardziej elastyczną i wydajną (choć nie tanią) uniwersalną implementację pracy z urządzeniami peryferyjnymi, która stała się dotychczas główną cechą komputerów typu mainframe.
Wyspecjalizowany koprocesor wymiany danych (ESC - wyspecjalizowany komputer wymiany, tak, wtedy jeszcze nie było wyraźnego rozróżnienia terminologicznego, na przykład w LARC każdy z dwóch procesorów nazywano „komputerem”, a podsystem we / wy nazywano „procesor”) działał jako główny przełącznik, zapewniając komunikację między 32 kanałami I / O a pamięcią RAM, odciążając w ten sposób centralny procesor. Schemat ten okazał się na tyle skuteczny, że migrował do IBM S/360 i nadal jest używany w dużych komputerach.
Ponadto wartość Stretch polegała na tym, że była w pełni kompatybilna z kolosalną listą sprzętu IBM - od napędów magnetycznych wszystkich typów po maszyny do pisania i dziurkacze, a dzięki koprocesorowi kanałowemu cała ta ekonomia zawsze działała równolegle na pełnych obrotach , i został podłączony za pomocą prostej wtyczki wymaganego kabla.
Radzieccy inżynierowie, którzy cierpieli, próbując upchnąć to, co niezrozumiałe (bo prawie każde nietrywialne połączenie dużego komputera z urządzeniami peryferyjnymi wymagało monstrualnych kul), płakaliby z ulgi, gdyby zdarzyło im się skonfigurować Stretcha.
System instrukcji Stretch był niezwykle postępowy, wiele pomysłów odkrytych podczas procesu opracowywania przez Gene'a Amdahla, Steve'a Danville'a, Freda Brooksa i Johna Cocke'a jest dosłownie wykorzystywanych w nowoczesnych mikroprocesorach i stało się standardem od lat 1960. wszędzie. Obejmują one wstępne dekodowanie instrukcji i wstępne pobieranie operandów (pierwsza w historii forma wykonywania spekulatywnego oparta na przewidywaniu rozgałęzień), ponowne ładowanie potoku po błędnych skokach, rozbudowane rejestry indeksów i nie tylko.
Blok dekodowania i przewidywania w procesorze Stretch był w rzeczywistości oddzielnym komputerem z własnym potokiem. Z tego powodu, formalnie pozostając jednoprocesorowym, Stretch wymagał tylko 4 instrukcji do mnożenia macierzy. Między innymi - maszyna okazała się kompaktowa, będąc 35 razy mocniejsza od IBM 704, Stretch wymagał tej samej maszyny. hala o powierzchni 185 mkw. m. i zużył mniej więcej taką samą ilość energii.
W sumie można długo opisywać zalety tej maszyny, najważniejsze jest to, że to wszystko jest rok 1959, a wszystko to jest opisane w otwartych źródłach tamtych czasów, a także projekt UNIVAC LARC.
Najciekawsza część historii
A teraz najciekawsza część historii – Lebiediew, jako członek grupy sowieckich specjalistów, przybywa w sierpniu 1959 roku do USA do IBM, aby studiować najlepsze praktyki inżynierii komputerowej. Delegacja radziecka przez dwa tygodnie zwiedzała fabryki MIT i IBM, zapoznawała się z komputerem naukowym 7090 i ogólnie z organizacją produkcji i interakcjami między firmą komputerową a klientami uczelni. Najprawdopodobniej w tym momencie ukształtował się super-pomysł - powtórzyć to samo w ZSRR. Stworzenie jednej potężnej architektury komputerowej dla ośrodków naukowych.
Rolę IBM miał odegrać ITMiVT, a Amdalla i Brooksa Lebiediew i Mielnikow. Pozostaje wybrać prototyp samochodu, którego rolę miał pełnić przyszły BESM-6.
Nawiasem mówiąc, Lebiediew odwiedził wiele miejsc - zarówno w Niemczech, a nawet w 1965 roku w Japonii, a jego protegowany Mielnikow - w Indiach i Chinach, i nic nie rosło razem z Indiami, ale w Chinach pomógł opanować produkcję chińskiego klonu BESM-2 .
Nie było mowy o klonowaniu Stretcha - maszyna była potwornie złożona, taki radziecki przemysł by nie pociągnął. Ponadto wiele szczegółów implementacyjnych było ukrytych, a samo w sobie zajmowało nieco inną niszę, w którą celował Lebiediew i której Sowieci naprawdę potrzebowali.
ZSRR rozpaczliwie potrzebował potężnego (dużo potężniejszego niż cokolwiek, co znajdowało się wówczas w instytucie badawczym), uniwersalnego, niedrogiego (stosunkowo) komputera naukowego, który można by masowo reprodukować. Było wiele punktów jego zastosowania - Instytut Kurczatowa, Moskiewski Uniwersytet Państwowy, Baumanka, Dubna, Nowosybirsk, Arzamas i tak dalej, wszystkie związane z badaniami jądrowymi. BESM-2 i M-20 nie pociągnęły - wszystkie ośrodki naukowe zażądały analogu 7090, samochodu o prędkości co najmniej 200 KIPS.
W tym przypadku Lebiediew odbył podróż służbową do Stanów Zjednoczonych, wszyscy rozumieli, że konieczne jest przestudiowanie najlepszych praktyk.
W tym celu on, ulubieniec Akademii Nauk, ministrów i Chruszczowa, wybił fundusze i zebrał zespół. Nastroje były różowe, wszyscy pięli się w górę – ZSRR wkrótce pozna tajniki efektywnego rozwoju komputerów naukowych i wreszcie stworzy własny, zamiast niekompatybilnych ze sobą ogrodów zoologicznych w Mińsku, Nairi, Urałowie i innych , wydany mały obieg i niewystarczająco mocny.
Lebiediew w pewnym sensie bardzo chciał zostać kałasznikowem z komputera - stworzyć referencyjną implementację, symbol sowieckiej potęgi, który można ostemplować setkami.
Czy spełnił swoje zadanie?
Nie będzie spoilerem stwierdzenie, że nie.
Dlaczego więc Lebiediewowi się nie udało i skąd wziął się mit BESM-6?
Aby odpowiedzieć na to pytanie, trzeba najpierw udać się jeszcze dalej na Zachód.
Tak więc w 1959 roku Lebedev zainspirował się do rozpoczęcia opracowywania własnej architektury - nie tylko dużej maszyny, ale naukowej supermaszyny zbudowanej według zupełnie innych zasad niż MESM i BESM, która wyglądała jak kalkulatory sklepowe na tle monstrualnego 7030.
Nie było wątpliwości, kto będzie kierował rozwojem, oczywiście Mielnikow, który dobrze sprawdził się w BESM i BESM-2.
Kto rozwinie węzły, było również oczywiste, grupa Mielnikowa.
Lebiediew, jak zawsze, wziął na siebie sprawy organizacyjne, zbieranie funduszy i ogólne wsparcie wzdłuż linii partyjnej, a także studiowanie światowych modeli inżynierii komputerowej i opracowanie systemu poleceń dla nowej maszyny. I było tam coś do studiowania - trzeba było zdecydować się na prototyp do skopiowania.
W 1946 roku Marynarka Wojenna Stanów Zjednoczonych utworzyła małą firmę ERA (Engineering Research Associates) składającą się z inżynierów, którzy pracowali w latach wojny nad dekoderami japońskich kodów morskich. Firma opracowała kilka samolotów cywilnych, w tym ERA 1103, ale Kongres potępił Flotę za działalność komercyjną, a firma została sprzedana firmie Remington Rand w 1952 roku. Następnie Sperry (będący już wówczas właścicielem UNIVAC) z kolei kupił Remington i wydzielił dział komputerowy Sperry UNIVAC, wypuszczając przeprojektowaną ERA jako konkurenta dla IBM 704 - UNIVAC 1103.
CDC 1604
Sperry najwyraźniej dążył do stworzenia masowego komercyjnego komputera typu mainframe, zdeterminowany, by stać się drugim graczem na tym rynku po IBM, aw 1957 roku grupa byłych inżynierów wojskowych miała tego dość. William Norris, Robert Perkins, William R. Keye, Howard Shekels, Robert Kisch i Seymour Roger Cray opuścili Sperry, dołożyli 5 dolarów i zarejestrowali swoją firmę, która stała się legendą - Control Data Corporation.
Cray, jeden z największych architektów komputerowych w historii, został głównym inżynierem, człowiekiem, którego bez ironii nazywa się Ojcem wszystkich superkomputerów.
Jednak jego pierwszym dziełem była znacznie prostsza maszyna - CDC 1604. Stworzony jako komputer naukowy i komercyjny, w warunkach braku pieniędzy (firma start-up nie miała nawet funduszy na zwykłe tranzystory), Cray zmontował prototyp z wadliwych, które mógł kupić po okazyjnej cenie w lokalnych sklepach z częściami do radia), od razu obnażył niesamowitą moc geniuszu Craya.
Kilkukrotnie tańszy CDC 1604 od monstrualnego naukowego IBM 7090 okazał się od niego szybszy, stając się na pewien czas najpotężniejszym komputerem ogólnego przeznaczenia na planecie z wydajnością około 200 KIPS.
CDC 1604 miał architekturę sumatora typową dla amerykańskich maszyn dużej mocy z lat pięćdziesiątych, a nie bardziej zaawansowane rejestry ogólnego przeznaczenia (był tylko sam rejestr sumatora, czyli akumulator, jak to się czasem nazywa, 1950 rejestrów indeksowych, licznik programu i pomocniczy rejestr arytmetyczny) i , odpowiednio, były emisją pojedynczą, 6-bitowe słowo maszynowe zawierało dwie 48-bitowe instrukcje. Maszyna miała arytmetykę całkowitą i rzeczywistą.
Ciekawą funkcją było wskazanie pracy. Górne trzy bity baterii mogły być odczytywane przez DAC i odtwarzane przez głośnik za pomocą wzmacniacza lampowego wbudowanego w konsolę. Obwód ten można zaprogramować tak, aby generował różnorodne efekty dźwiękowe i ostrzeżenia dla operatora maszyny. Każdy, kto dobrze znał architekturę CDC 1604 i program wykonywalny, mógł od razu rozpoznać po dźwięku, gdzie wystąpił błąd.
Tak więc prototyp został znaleziony.
CDC 1604 był tańszy i szybszy niż IBM 7090, miał prostszą architekturę iw ciągu roku został sprzedany w ogromnych ilościach w amerykańskich laboratoriach. Oznaczało to, że do 1961 roku napisano dla niego ogromną liczbę programów w języku Fortran, wśród których za najbardziej wartościowe uznano pożądane oprogramowanie dla atomistów.
Kradzież programów jest znacznie łatwiejsza niż sprzętu, więc celem było osiągnięcie binarnej kompatybilności z CDC 1604 od samego początku.
Nawet w ZSRR zrozumieli, że oprogramowanie jest ważniejsze niż sprzęt, komputery można rozwijać, ale skąd wziąć miliony roboczogodzin na napisanie dla nich oprogramowania?
W latach 1960. miała nastąpić rewolucja – miał pojawić się radziecki komputer z szeregiem aplikacji nie ustępujących amerykańskim (a co z tego, że miały zostać skradzione).
W zasadzie taki plan miałby szansę powodzenia, ale Crayowi się nie udało.
W trakcie przygotowań do sklonowania CDC 1604, 22 sierpnia 1963 roku firma Control Data ogłosiła CDC 6600, jedną z największych maszyn w historii.
IBM był zawstydzony, nie skończyli jeszcze wysyłać swojego Stretcha do wszystkich klientów, a komputer Craya już wysłał go z powrotem do epoki kamienia łupanego w informatyce. Zgodnie z tradycją był znacznie bardziej kompaktowy i tańszy od potwora IBM i 3,5 razy szybszy - ponad 3 megaFLOPS.
Pierwszy w historii superskalarny procesor, 10 peryferyjnych koprocesorów, chłodzenie freonem (również pierwsze na świecie) najbardziej kompaktowych płyt montowanych przy użyciu autorskiej technologii cordwood na najnowszych płaskich tranzystorach krzemowych (400 000 sztuk!), zaawansowany wielozadaniowy system operacyjny SIPROS (Simultaneous Processing Operating Operating System) — to tylko niektóre z innowacji maszyny. Pierwszymi klientami komputera były Komisja Energii Atomowej i Biuro Pogody, a do 1967 roku 63 CDC 6600 trafiły w ręce elitarnych klientów i stały się podstawą ówczesnych badań naukowych.
Atlant
W tym samym czasie w Wielkiej Brytanii pojawił się trzeci kultowy superkomputer tamtych czasów – słynny Atlas („Atlant”), opracowany i wyprodukowany wspólnie przez Uniwersytet w Manchesterze, kolebkę całej brytyjskiej informatyki, oraz Ferranti i Plessey na zlecenie przez rząd do wykorzystania w tym samym trudnym zadaniu, co CDS i BESM do rozwoju broni jądrowej.
Atlas został zbudowany na dość starożytnych germanowych tranzystorach bipolarnych, ale miał niesamowicie postępową architekturę, stając się trzecim filarem nowoczesnych maszyn, wraz z IBM 7030 Stretch i CDC 6600. W sumie wykonano 3 oryginalne Atlasy i dwa kolejne ulepszone Atlas 2 Tytan.
Atlas wykorzystał drugi popularny schemat słów maszynowych, który był również używany w CDC - format 2/12/24 bitów, zamiast standardu IBM 48/8/16 bitów (jak wiemy, tym wygodniejszy wygrał IBM). 32-bitowe słowo maszynowe może zawierać jedną liczbę zmiennoprzecinkową, jedną instrukcję, dwa 48-bitowe adresy lub liczby całkowite ze znakiem lub osiem 24-bitowych znaków.
Innowacje Atlasa obejmowały nadzorcę (trzy własne rejestry dla licznika programu) oraz pamięć wirtualną (pełnowartościową), pracę z urządzeniami zewnętrznymi zorganizowano w bardzo oryginalny sposób, poprzez osobne rejestry do komunikacji z wejściami/wyjściami, maszyna posiadała niesamowita liczba rejestrów indeksowych w tamtym czasie - już 128. Ponadto procesor Atlas miał unikalny potok asynchroniczny, który działał na żądanie, a nie taktowany jak zwykle.
Z tego powodu jego wydajność była trudna do oceny, ale w testach była mniej więcej na równi z Stretch (Atlas dodał dwie liczby zmiennoprzecinkowe w około 1,59 µs, a Stretch w 1,38-1,5 µs). Dopiero w 1964 roku, kiedy wprowadzono CDC 6600, Atlas został znacznie zdeklasowany, a Cray przyznał później, że to opis prototypu tej maszyny dał mu pomysły, które pozwoliły ukończyć 6600 z dużym wyprzedzeniem harmonogramu.
Także tzw. extracodes - to, co teraz można by nazwać oprogramowaniem układowym, to oni umożliwili zbudowanie systemu operacyjnego, który przewyższa maszynę IBM pod względem szybkości i funkcjonalności. Ekstrakody służyły do wywoływania procedur matematycznych, które byłyby zbyt nieefektywne do zaimplementowania sprzętowego, takich jak sinus, logarytm i pierwiastek kwadratowy, około 150 ekstrakodów odpowiadało za funkcje nadzorcze, co pozwoliło znacznie zwiększyć wydajność i bezpieczeństwo pracy system operacyjny
Brytyjscy naukowcy okazali się tak przyjaźni, że sami odwiedzili ZSRR w 1963 roku, a nawet wygłosili kilka zamkniętych wykładów na temat maszyny Atlas, na podstawie ich wyników wydano w tym samym roku niewielką broszurę. W rezultacie prace nad BESM-6 poszły na marne, jak łabędź, rak i szczupak. Zaczęto go wyrywać z CDC 1604, aby skorzystać z ogromnej biblioteki oprogramowania, a wiele cech architektonicznych oryginalnego projektu, które zostały uwzględnione w ostatecznej wersji, służy jako dowód tego.
W obu przypadkach podstawą elementu były tranzystory (co jest normalne dla 1960, ale tak dziwne, jak to możliwe dla 1968), adresowanie było pojedyncze, szerokość słowa wynosiła 48 bitów, długość polecenia wynosiła 24 bity, 2 polecenia były spakowane w słowo, długość bitu sumatora również wynosiła 48 bitów, długość bitu adresu 15 bitów, rejestry ogólnego przeznaczenia 1 + 1 rejestr akumulatora, obwód dodawania akumulatora, nawet ilość pamięci RAM była taka sama do bitu - 32.768 słów.
Oczywiście to wszystko nie było dziełem przypadku – zaczęto oczywiście projektować architekturę, skupiając się na CDC 1604. Co jest niesamowite – rozmiar płytek drukowanych BESM-6 wynosił cal (konkretnie 6x8 cali), i ogólnie tylko sprzęt był metryczny. Architektura samego TEZ (typowego elementu zastępczego, jak nazywaliśmy moduły elementarne, z których złożono maszynę) również została opracowana wyraźnie z myślą o płytach kordowych, choć z około 6-krotnie mniejszą gęstością montażu. W ZSRR było to trudne z tranzystorami, więc samą logiką była dioda, a tranzystory służyły tylko do wzmacniania i odwracania sygnału. W rezultacie potrzebowali tylko 60 000, ale diod - 180 000 (CDC zmontowano na 400 000 tranzystorów).
A potem ucierpiał Lebiediew, którego wina była zarówno jego wyobraźni, jak i Atlasu i CDC 6600, które pojawiły się w procesie tworzenia BESM-6.
Od pierwszego chciał ekstrakodów i pamięci wirtualnej, od drugiego superskalarnego procesora potokowego z ortogonalnym systemem instrukcji. Odrzucono też wiele rozwiązań technicznych – na przykład pomysł pracy kanałowej z peryferiami, który w maszynach IBM odniósł prawdziwy sukces. Rzucanie trwało od 1960 do 1963 roku - uruchomimy jeden samochód, kontynuujemy drugi, dołożymy żetony do trzeciego.
W rezultacie rogi i nogi pozostały z oryginalnego projektu CDC 1604.
Lebiediew wyrzucił z maszyny arytmetykę liczb całkowitych, ponieważ nie mógł osiągnąć stabilnej pracy jednostki ALU całkowitoliczbowo-rzeczywistej, zmienił format liczb rzeczywistych (znak 1 bitu, wykładnik 11 bitów, mantysa 36 bitów dla CDC 1604, kolejność 7 bitów, 1 znak bitowy, 40-bitowa mantysa dla BESM-6) i struktura poleceń (6-bitowy kod operacji, 3-bitowy indeks lub warunek przejścia, 15-bitowy adres lub operand dla CDC 1604 oraz dwie możliwe opcje: 4-bitowy rejestr indeksu, 6-bitowy kod operacji, 12-bitowy adres/operand lub 4-bitowy rejestr indeksu, 4-bitowy kod operacji, 15-bitowy adres/operand dla BESM-6). W związku z próbą uporządkowania pamięci wirtualnej zwiększono liczbę rejestrów indeksowych z 6 do 15.
System dowodzenia został całkowicie zmieniony.
CDC 1604 miał 11 instrukcji całkowitych i 4 rzeczywiste, 9 instrukcji przesunięcia, 8 instrukcji logicznych, 15 instrukcji pamięci, 6 instrukcji arytmetycznych indeksów, 4 instrukcje skoku i 3 instrukcje we / wy, w sumie 57 sztuk. BESM-6 miał 12 poleceń rzeczywistych, 2 polecenia przesunięcia, 7 poleceń logicznych, 5 poleceń pamięci, 8 poleceń arytmetycznych indeksów, 7 poleceń przejścia i jedno (!) polecenie I/O, w sumie 41.
Ciekawostką BESM-6 były specjalne polecenia bitowe, w tym „OBLICZ LICZBĘ JEDNOSTEK” i „OBLICZ HOMEPA NAJWYŻSZEJ JEDNOSTKI”. Komendy te zostały bezpośrednio zgrane z CDC 6600 i reprezentują tzw. „Instrukcja NSA” – instrukcje dodawane na żądanie NSA do procesorów superkomputerów dla wygody kryptografów.
Na przykład obliczanie liczby jedynek to instrukcja popcount, powiedzmy popcount (10100110) = 4. Po raz pierwszy pojawiła się w procesorze IBM Stretch, a następnie była wbudowana we wszystkie starsze maszyny CDC i Cray aż do lat 1980. Era wojny i klasyczne superkomputery.
Dlaczego jest potrzebny?
Oblicz odległość Hamminga od łańcucha zerowego w kodowaniu binarnym. NSA przeprowadziła kryptograficzną analizę przechwyconych wiadomości, a ponieważ CDC 6600 miał 60-bitowe słowa, jedno słowo wystarczyło do zapisania większości interesujących ich alfabetów.
Kryptoanalitycy podzielili wiadomość na wiersze, oznaczyli każdy unikalny znak w wierszu pojedynczym bitem, obliczyli odległość Hamminga za pomocą licznika popcount i wykorzystali go jako hash do dalszej kryptoanalizy. Niestety nie wiadomo, czy przynajmniej jeden BESM-6 był używany przez GRU czy KGB, autor mocno w to wątpi i uważa, że te instrukcje były podarte, raczej w celach prezentacyjnych - popatrz, nasz samochód to potrafi!
Instrukcje „ASSEMBLE” i „DISASSEMBLY” to wybór pewnych bitów według maski, skręconych specjalnie w celu zorganizowania przynajmniej jakiegoś rozsądnego wejścia-wyjścia drukowanych znaków, jak wspominają starzy wyjadacze, na przykład te polecenia były używane do transponować matryce 80x12 do pracy z kartami perforowanymi. Konwersja słowa na tekstową reprezentację ósemkową została wykonana przez rozłożenie na grupy po trzy bity w każdym bajcie, w kodowaniu GOST natychmiast uzyskano kody cyfrowe. Zespół przekonwertował tekstową reprezentację liczb ósemkowych na rzeczywistą liczbę.
Oczywiście nie można było złożyć ani Atlasa, ani CDC na sowieckiej bazie elementów, musieliśmy zrobić masę łat i kul. Jeden z projektantów V.N. opowiada o tym z dumą (pokonał!) Louth:
[Tutaj niestety Laut jest przebiegły, ponieważ wtedy ich nie tylko tam było, ale montowano na nich seryjne komputery, w tym w ZSRR, Lebiediew po prostu nie uważał za konieczne z pewnych filozoficznych powodów ich używać ].
[Znowu było kilka całkiem przyzwoitych silikonowych, ale…]
Diody te miały krótkie czasy przełączania, wielokrotnie lepsze niż tranzystory. Jednak elementy oparte na diodach tunelowych okazały się mieć słabą obciążalność, co prowadziło do komplikacji obwodów maszyn i szybko z nich zrezygnowaliśmy. Trudność w stosowaniu tranzystorów polegała na tym, że były one bardzo wolne w trybie nasycenia, a elementy logiczne z nienasyconymi triodami okazały się skomplikowane ze względu na konieczność dopasowania poziomów sygnałów wejściowych i wyjściowych. I nie tylko skomplikowane, ale także zawodne. Od jakiegoś czasu nie widzieliśmy wyjścia z impasu. Ale wtedy powstał zupełnie nowy pomysł, nigdy wcześniej nigdzie nie opisywany, przynajmniej dla elementów technologii komputerowej.
Moim zdaniem po raz pierwszy wyraził to A.A. Sokołow. Istotą pomysłu było wprowadzenie do znanego elementu „wyłącznika prądowego” autonomicznego źródła zasilania, nie połączonego galwanicznie z innymi obwodami zasilającymi. Można do tego celu wykorzystać na przykład miniaturową baterię z zegarka elektronicznego.
Włączenie baterii między kolektor tranzystora a obciążenie kolektora (rezystor) sprawiło, że przełącznik stał się elementem o stałych poziomach sygnałów wejściowych i wyjściowych, a autonomicznemu źródłu zasilania nie narzucono szczególnie trudnych wymagań. Oczywiście nie można było zainstalować baterii, która by się w końcu rozładowała, więc w prawdziwym obwodzie zastąpiono ją maleńkim prostownikiem, składającym się z miniaturowego transformatora na pierścieniu ferrytowym, dwóch diod półprzewodnikowych i kondensatora.
Nazwali te prostowniki „zasilaczem podwieszanym” (PIP). Wyjścia parafazowe łączników prądowych, wyposażone w wtórniki emiterowe, mogą pracować na wejściach układów logicznych „AND”, „OR”. Pojawiły się następujące obwody: pasywna logika kombinatoryczna na komponentach diodowo-rezystorowych
[Do tego czasu cały świat przeszedł na TTL i ECL.]
Ogólnie rzecz biorąc, baza elementarna pierwszej wersji BESM-6, jak widać, była monstrualna nawet jak na tamte czasy (a nawet jak na standardy ZSRR, co jest jeszcze bardziej uderzające!), Ale mimo to, jak zwykle, mamy dobry powód do dumy z tego, jak po mistrzowsku pokonujemy trudności, które sami stworzyliśmy.
Doświadcz mocnych i skutecznych rezultatów
Rezultatem tego wszystkiego było pojawienie się prawdziwego mutanta, z zewnątrz (czyli pod względem szerokości magistrali, długości słowa maszynowego itp.) podobnego do CDC 1604, ale złożonego z elementów Atlas i CDC 6600, doprawionego szczyptą unikatowej wizji Lebiediewa i postawili na sprzętową implementację, wypaczoną nawet standardami ZSRR.
W 1963 roku studenci zaczęli modelować węzły przyszłego BESM-6, najpierw ćwicząc technologię pracy z tranzystorami, o której w tamtym czasie nie mieli szczególnego pojęcia w ITMiVT. Wszystko kończy się tym, że według wspomnień najmłodszego ucznia Lebiediewa (kaliber mniejszy niż Mielnikow) A.A. Gryzłowa po prostu zaimplementowali węzły z M-20 na tranzystorach, nazywając powstałe stworzenie BESM-3.
Niespodziewanie, jak już powiedzieliśmy, jego inicjatywa została poparta przez szefa grupy i doczekała się premiery w miniserialu, więc na drzewie ITMiVT pojawia się poboczna sesja - BESM-4, z którą Lebiediew nie miał nic wspólnego. Według jego wspomnień sam Lebiediew nie był zbyt zadowolony z takiej samowolki, nie przejmował się BESM-4, całą swoją uwagę i siły pochłaniał projekt BESM-6, ale nie ingerował w młodości, a nawet nacisnął kilka dźwigni w partii, co pozwoliło mu wystrzelić czwórkę w małych seriach z rekordową prędkością.
W 1964 roku instytut zmontował już prototyp BESM-6, który miał tylko jedną kostkę pamięci, aw elementach logicznych zastosowano wolniejsze tranzystory. W 1966 roku prototyp, który miał pamięć RAM o połowie pojemności (4 kostki zamiast 8), ale na nowoczesnych tranzystorach i diodach, pracujących z częstotliwością zegara projektowego, był już w zasadzie debugowany, a jesienią przeprowadzono na nim testy fabryczne, aw maju 1967 roku zakończono państwowe testy.
BESM-6 był produkowany seryjnie od 1968 do 1987 roku, łącznie wyprodukowano 355 maszyn, maszynę w Dubnej wyłączono w 1992 roku, przedostatnią (w Biurze Konstrukcyjnym Mikojana) wyłączono i zdemontowano w 1995 roku, ale najnowszy ...
BESM-6 nr 345
BESM-6 nr 345 został wyprodukowany w 1980 r. Pełnowymiarowy symulator „Diana-Bars”, opracowany przez specjalistów z NITI im. AP Aleksandrowa. Do 1981 roku kontynuowano jego debugowanie.
Zwróćcie przy okazji uwagę na typowo radzieckie, imponujące podejście do instalacji, które wiele mówi o jakości architektury i wyposażenia. Instalacja maszyny trwała rok, kolejny rok zajęło niespieszne debugowanie oprogramowania (pomimo tego, że do lat 1980. doświadczenie i oprogramowanie skumulowano już od 10 lat!), kolejne trzy lata zajęto symulatorowi, w rezultacie maszyna była w stanie obliczyć coś użytecznego dopiero po sześciu (!) latach od jej wypuszczenia.
I to zostało uznane za zwykły tryb instalacji! W tym samym czasie przeklęty kapitalizm zgnił do takiego stopnia, że zapowiedź kilkumiesięcznego opóźnienia w instalacji konkretnej maszyny stała się powodem do zerwania umowy z wysokimi karami.
Orientacyjny w tym względzie jest los Cray-3, który miał być kupiony przez Livermore w 1991 roku, ale laboratorium natychmiast wycofało się z umowy, gdy tylko dowiedziało się o opóźnieniu w dostawie, a niewywiązanie się z umowy uderzyło w Craya reputację tak złą, że mógł sprzedać tylko swój superkomputer Amerykańskie Narodowe Centrum Badań Atmosfery (NCAR), wojsko i laboratoria odmówiły współpracy z nim, pomimo wcześniejszych zasług.
W 1993 roku Cray-3 został zainstalowany w NCAR, ale po roku nie był w stanie osiągnąć stabilnej pracy, po czym został zdemontowany, a Cray Research zbankrutował.
W ZSRR instalacja i debugowanie nawet komputera szeregowego, który był już w produkcji od 13 lat, mogło z łatwością zająć pięć lat niespiesznego wykończenia i było to postrzegane jako absolutna norma - wydaje się, że Unia nie spieszył się.
Wracając do BESM-6 nr 345, zwodowanego w 1986 roku, działał… do 2008 roku!
To coś poza dobrem, złem i zdrowym rozsądkiem. Był używany jako komputer do symulatora załogi okrętu podwodnego i przez ostatnie 10 lat pracował dosłownie na uczciwym niedrukowalnym słowie, personel robił wszystko, co w jego mocy, aby muzealne antyki były w stanie roboczym daleko poza jego oficjalny okres użytkowania.
Dalsze losy rzadkości są nieznane - być może to ona BESM-6 z Muzeum Politechnicznego, być może staruszka zakończyła życie w piecu na złom.
Jednocześnie zwróć uwagę na magię Lebiediewa - od opracowania samego BESM-6 do serii minęły zaledwie 3 lata i to z czysto obiektywnych powodów, majstrowania przy dokumentacji samochodu, debugowania itp., podczas gdy Kartsev był przewożony przez urzędników partyjnych od urzędu do urzędu przez sześć lat i doprowadził go do zawału serca, a po jego śmierci personelowi zajęło kolejne 1,5 roku, aby zakończyć wypuszczanie M-13!
Łączny
I wreszcie palące pytanie, czy to się stało?
Czy udało Ci się stworzyć niszowy komputer, który zaspokoi potrzeby sowieckich instytutów badawczych? Odpowiednik CDC 1604, który uruchomi wszystkie potrzebne programy?
Niestety, nie, tutaj Lebiediew wszystko zrujnował.
Próba skupienia się na trzech źródłach i trzech elementach architektury naraz zakończyła się fiaskiem – BESM-6 stracił kompatybilność z CDC 1604 na tyle, by z dumą uznać go za odrębną architekturę i na tyle, że upragnione miliony linii amerykańskiego kodu, m.in. co wszyscy i zaczęli.
Lebedev był zbyt sprytny, w wyniku czego nie udało się osiągnąć kompatybilności binarnej - programy Fortran, które skompilowały się i działały doskonale na CDC, wypadły na BESM-6 w najbardziej nieoczekiwanych miejscach. Aby je poprawić, zaczęli nawet pisać całe podręczniki i monografie (na przykład Borovin G.K., Komarov M.M., Yaroshevsky V.S. „Błędy-pułapki w programowaniu Fortran”), ale cenny czas uciekał, zadania były stojące.
W rezultacie kolosalny projekt zakończył się z mieszanymi uczuciami, nawet na etapie testów w 1966 roku.
Pozostaje pytanie – co teraz zrobić?
Konsekwencje były takie.
Po pierwsze, zdecydowanie postanowiono nie zniekształcać, ale po prostu i dokładnie kopiować całe zachodnie architektury, aby osiągnąć kompatybilność binarną. Sam Lebiediew, co trzeba przyznać, zrozumiał swój błąd i nie miał już ochoty niczego projektować, a ponadto na posiedzeniu Akademii Nauk poparł pomysł pożyczenia S/360 (należy to omówić osobno).
Po drugie, Mielnikow nie mógł się już rozwijać samodzielnie. Projekt BESM-10 nawet się nie zaczął, przetrwały jedynie opisy i szkice, a Elektronika SS BIS, za którą odpowiadał aż do śmierci, miała stać się klonem Cray-1.
Po trzecie, w najważniejszym ośrodku nuklearnym kraju, Dubnej, trzeba było pilnie dostarczyć coś, co działa z amerykańskim oprogramowaniem, w efekcie zaangażowała się dyplomacja i próbowano kupić lub ukraść, wywożąc przez kraje neutralne, takie jak Szwajcaria , prawdziwy CDC 1604, a także lepszy - CDC 6600. Próby zakończyły się tylko częściowym sukcesem.
CDC 1604 był używany przez marynarkę wojenną Stanów Zjednoczonych, a także do kontrolowania startu Minutemana I, więc była to technologia wojskowa, ale do 1968 roku była wycofana z produkcji i przestarzała, więc Komisja Kontroli nie sprzeciwiła się jej dostawie. W 1968 r. (równocześnie z BESM-6) CDC osiedliło się również w ZIBJ.
Szczególnie interesujący jest fakt, że samo CDC nie sprzeciwiało się sprzedaży czegokolwiek gdziekolwiek, nawet do Korei Północnej, a jej dyrektor William Norris napisał specjalny list do swojego kongresmana Richarda T. Hanny, prosząc go o usprawiedliwienie korporacji z oskarżeń o współpraca z komunistami:
Wszystkie kraje, w tym socjaliści, dysponują pokaźną bazą technologii sprzętu komputerowego, na której można budować dalsze postępy w najnowocześniejszym stanie techniki. Główną siłą Stanów Zjednoczonych w technologii komputerowej jest ich zdolność do wprowadzania na rynek systemów komputerowych o doskonałym stosunku ceny do wydajności dla szerokiego zakresu zastosowań. Nie oznacza to, że dla dowolnej aplikacji lub grupy aplikacji inny kraj nie może zbudować odpowiednika pod względem wydajności, a nawet przewyższyć to, co mają do dyspozycji Stany Zjednoczone. Ponadto, według mojej wiedzy, nie ma dowodów na to, że ZSRR kiedykolwiek uniemożliwiono realizację projektu wojskowego z powodu braku odpowiedniej technologii komputerowej…
Zwracamy się z uprzejmą prośbą, aby Wasza Komisja zapoznała się z powyższymi punktami i rozważyła włączenie ich do protokołu. Bylibyśmy zadowoleni mogąc wystąpić przed Waszą Komisją, aby przedstawić bardziej szczegółowe poglądy na temat tych potencjalnych stosunków z krajami socjalistycznymi oraz przedstawić nasze powody popierające inicjatywy i cele handlowe Administracji i Kongresu.
List od Williama C. Norrisa, prezesa
Control Data Corporation do kongresmana
Richard T. Hanna, 1973.
Maszyna została dostarczona z kompilatorem z Fortranem i kodami źródłowymi, a zespół programistów JINR kierowany przez Nikołaja Nikołajewicza Govoruna zainspirował się nimi i próbował napisać analog dla BESM-6, ponieważ odmówił bezpośredniej pracy.
W rezultacie musiałem najpierw napisać asembler (autokod z mnemonikami Lebiediewa był na tyle niewygodny, że nie był używany w praktyce), potem program ładujący, obsługę bibliotek i resztę systemu operacyjnego, który otrzymał logiczną nazwę „Dubna ".
Oczywiście był to zasłużony powód do dumy - złożoną pracę działu profesjonalnych programistów wykonali fizycy i inżynierowie-amatorzy, wynik był ogólnie zadowalający.
Bezpośredni ciąg dalszy tej historii czeka nas w następnym artykule.
informacja