Original article: http://www.columbia.edu/cu/computinghistory/650.html
Zdjęcie: US Army Anniston Ordnance Depot, z BRL Report 1115 , 1961 – kliknij zdjęcie, aby powiększyć.
Maszyna do przetwarzania danych z bębnem magnetycznym IBM 650 została ogłoszona 2 lipca 1953 r. (Jako „Kalkulator bębna magnetycznego” lub MDC), ale dostarczono ją dopiero w grudniu 1954 r. (W tym samym czasie co NORC ) . Główny projektant: Frank Hamilton , który również zaprojektował ASCC i SSEC . Dwa IBM 650 zostały zainstalowane w IBM Watson Scientific Computing Laboratory na Columbia University, 612 West 116th Street , począwszy od sierpnia 1955 roku.
IBM czasami odnosi się do 650 jako swojego pierwszego komputera, chociaż poprzedza go co najmniej ASCC (1943) i SSEC (1947), które nie były produktami, oraz 701 (1952), który zdecydowanie był. Być może trafniej byłoby nazwać go pierwszym komercyjnym komputerem biznesowym IBM (ponieważ 701 był przeznaczony do użytku naukowego) i pierwszym komputerem, który przyniósł znaczący zysk. W każdym razie IBM 650 był pierwszym komputerem ogólnego przeznaczenia zainstalowanym i używanym na Uniwersytecie Columbia ( NORC został tu zbudowany w latach 1950-54, ale jedynymi Kolumbijczykami, którzy mogli go używać, było kilku członków Watson Lab [ 61,65 ]). Jak zaznaczono na osi czasu, Watson Lab 650 wspierał ponad 200 projektów badawczych Columbia, a także był używany w serii intensywnych kursów komputerowych. Niestety nie udało mi się zlokalizować zdjęć maszyn Watson Lab.
Podstawowa konfiguracja 650. Od lewej do prawej: zasilacz typu 650; Jednostka konsoli typu 650; Typ 533 Jednostka odczytu-dziurkowania. Zdjęcie: IBM.
650 jest logiką lampową, pamięcią bębna, komputerem dziesiętnym, a nie binarnym. Dane zapisywane są w słowach zawierających dziesięć cyfr dziesiętnych i znak, a instrukcje operują na liczbach zapisanych w tym formacie. IBM nazwał 650 automatycznym kalkulatorem , a nie komputerem:
Jednym z najbardziej ekscytujących osiągnięć naszego pokolenia jest opracowanie elektronicznego automatycznego kalkulatora cyfrowego. Chociaż każdy uczeń może wykonać dowolną operację za pomocą kalkulatora, szybkość i oszczędność, z jaką kalkulator je wykonuje, są tak wielkie, że automatyczne obliczenia rewolucjonizują duże dziedziny nauki, inżynierii, biznesu, przemysłu i obrony. Jeden gigantyczny kalkulator może wykonać więcej działań arytmetycznych niż cała populacja Stanów Zjednoczonych za pomocą ołówka i papieru [ 64 ].
Do połowy lat pięćdziesiątych słowo „komputer” odnosiło się do ludzi wykonujących obliczenia, a nie do maszyn [ 57 ]. Ale zanim minęła dekada, „komputer cyfrowy” miał zastosowanie do 650 i innych „olbrzymich mózgów”, a „kalkulator” był nieporęczną rzeczą na twoim biurku .
Pierwotnie maszyna obsługująca tylko karty, 650 była kompatybilna z popularną linią urządzeń IBM do rejestrowania jednostek ( sortowniki , sortowniki , dziurkacze , maszyny do księgowania itp.), ale postępy, które po raz pierwszy zaobserwowano w serii 700, zostały do niej doposażone przez lata: taśma magnetyczna napędy, drukarki liniowe; Interkonekt IBM 407 , dysk RAMAC , pamięć rdzeniowa . Oto konfiguracja z 1955 roku, jak pokazano w Podręczniku dodatkowych funkcji IBM Type 650:
|
Od lewej do prawej: cztery jednostki taśm magnetycznych typu 727, jednostka sterująca typu 652, maszyna rozliczeniowa typu 407 (pierwszy plan), jednostka pomocnicza typu 653 (szybka pamięć masowa, tył), jednostka konsoli typu 650 (pierwszy plan), jednostka zasilająca typu 655 (z tyłu) oraz jednostkę odczytu-dziurkowania typu 533. KLIKNIJ OBRAZ, aby powiększyć. |
Niektóre zdjęcia IBM 650 znalezione na stronie www.computer-history.info , George A. Michael, Lawrence Livermore National Laboratory (emerytowany), dostęp 2 kwietnia 2021 r.; kliknij każdy, aby powiększyć.
650 był prawdziwym komputerem ogólnego przeznaczenia, naturalną ewolucją CPC (Card Programmed Calculator) do komputera z zapisanym programem z pełnym zestawem dziesiętnych instrukcji arytmetycznych, logicznych i kontrolnych, a także (później) możliwością obsługi alfabetycznej dane. Początkowo został zaprogramowany w języku maszynowym, potem w SOAP (Symbolic Optimal Assembly Program), jego natywny asembler optymalizujący (jeśli „asembler optymalizujący” wydaje ci się oksymoronem, czytaj dalej). SOAP został napisany w 1955 roku w Watson Lab przez Stana Poleya [ 65 ]; nie był to pierwszy asembler, ale było blisko (to zasługa zwykle asemblera Nata Rochestera dla IBM 701 w 1954 roku).
Do 1957 roku dostępny był kompilator FORTRAN ( FORTRANSIT ) (który kompilował FORTRAN do SOAP; natywny kompilator FORTRAN pojawił się w 1959 roku). (Pamiętajcie, że sam FORTRAN był dzieckiem absolwenta Columbia University i Watson Lab, Johna Backusa ). Inne języki używane w 650 to ADES II, BACAIC, BALITAC, BELL, CASE SOAP III, COMTRAN, DRUCO I, DYANA, EASE II , ELI, ESCAPE, FAST, FLAIR, GAT, IPL, IT (tłumacz wewnętrzny), KISS, Bell Labs L1 i L2, MAC, MITILAC, MYSTIC, OMNICODE, RELATIVE, RUNCIBLE (patrz odnośniki poniżej), FORTRUNCIBLE (krzyż FORTRAN i RUNCIBLE), SIR, Speedcoding, SPIT, SPUR. (Podziękowania dla Diarmuida Pigotta za poprawki do listy języków programowania IBM 650.)
Oto ilustracja z sekcji osi czasu z 1958 roku , pokazująca, co to znaczy być maszyną obsługującą tylko karty:
Chociaż FORTRAN — pierwszy język programowania wysokiego poziomu, niezależny od maszyny — stanowił wielki krok naprzód pod względem łatwości obsługi i prawdopodobnie był już dostępny dla modelu 650, warto pamiętać, jak ktoś prowadził pracę w języku FORTRAN we wczesnych dniach. Najpierw wybiłeś swój program FORTRAN na maszynie do wybijania kluczy, wraz z wszelkimi danymi i kartami kontrolnymi. Ale ponieważ 650 nie miał dysku, kompilator FORTRAN nie był rezydentem. Tak więc, aby skompilować swój program, włożyłeś do czytnika karty kompilator FORTRAN, a następnie program źródłowy FORTRAN jako dane. Po pewnym czasie maszyna uderzała w powstałą talię obiektów. Następnie włożyłeś talię obiektów biblioteki czasu wykonywania FORTRAN i talię obiektów swojego programu do czytnika kart, a następnie wszelkie karty danych dla twojego programu. Twój program uruchomiłby się, a wyniki zostałyby przebite na kolejną talię kart. Aby zobaczyć wyniki, włożyłbyś talię wyników do innej maszyny, takiej jak IBM 407 , aby wydrukować ją na papierze (jeśli sam komputer nie miał drukarki, tak jak oryginalne 650-tki).
650 miał pojedynczy 10-cyfrowy akumulator (zwany „Górnym”) do dodawania i odejmowania, z 10-cyfrowym rozszerzeniem („Dolny”) do mnożenia, dzielenia i przesuwania, a także 10-cyfrowy dystrybutor (zasadniczo inny akumulator ) i 1000, 2000 lub 4000 10-cyfrowych słów pamięci bębna. Instrukcje składały się z dziesięciu cyfr: 2-cyfrowego kodu operacyjnego, 4-cyfrowego adresu operandu i 4-cyfrowego adresu następnej instrukcji do wykonania.
Oto próbka zestawu instrukcji. Symboliczne kody operacyjne i inne informacje pochodzą z odnośnika [1] poniżej; różne mnemoniki są używane przez różne asemblery (np. w SOAP II wszystkie mnemoniki składają się z trzech liter).
Mnemoniczny |
Wartość |
Funkcjonować |
Msek |
AU |
10 |
Dodaj górną |
0,4 |
RAU |
60 |
Resetuj Dodaj górną |
0,4 |
SU |
11 |
Odejmij górę |
0,4 |
RSU |
61 |
Resetuj Odejmij górę |
0,4 |
STU |
21 |
Sklep górny |
0,4 |
MPY |
19 |
Zwielokrotniać |
10.0 |
DIV |
14 |
Dzielić |
15.0 |
DIVR |
64 |
Zresetuj podział |
15.0 |
BRNZ |
45 |
Oddział na Nonzero |
0,4 |
BR- |
46 |
Oddział na Minusie |
0,4 |
BROV |
47 |
Oddział na przelewie |
0,4 |
SHRT |
30 |
Przesuń w prawo |
2.5 |
SHRD |
31 |
Runda zmianowa |
2.5 |
SHLT |
35 |
Przesuń w lewo |
2.5 |
TLU |
84 |
Wyszukiwanie tabeli |
|
SPOP |
69 |
Operacja specjalna |
|
R & D |
70 |
Przeczytaj kard |
|
PCH |
71 |
Karta dziurkacza |
|
ZATRZYMYWAĆ SIĘ |
01 |
Zatrzymywać się |
„Reset Add” oznacza wyczyszczenie akumulatora, a następnie dodanie do niego zawartości adresu pamięci. Zatem jedna instrukcja obsługuje zarówno „load”, jak i „add”. SPOP jest używany do wywołań bibliotek (np. gdy funkcja sinusoidalna lub logarytm naturalny jest ładowana pod znanym adresem) lub transferów bloków. Większość instrukcji „górnych” ma partnerów „niższych” (AU/AL, SU/SL itp.), a niektóre odnoszą się również do dystrybutora. Każda instrukcja zawiera wyraźny adres GOTO, wskazujący następną instrukcję do wykonania. Przerwanie przepływu sterowania odbywa się za pomocą instrukcji Branch. Takie rzeczy jak podwójna precyzja lub arytmetyka liczb zespolonych są obsługiwane przez podprogramy. Arytmetyka zmiennoprzecinkowa może być wykonywana za pomocą opcjonalnego sprzętu zmiennoprzecinkowego lub podprogramu. Uwierz lub nie,
Powód, dla którego każda instrukcja zawiera GOTO, ma związek z obracającą się pamięcią bębna 650. W komputerach z pamięcią półprzewodnikową instrukcje są w naturalny sposób przechowywane i wykonywane sekwencyjnie — po każdej instrukcji innej niż Branch licznik programu jest automatycznie zwiększany do adresu następnej. Ale kiedy program jest przechowywany na bębnie, gdzie jest następna instrukcja? Zanim bieżąca instrukcja zostanie zakończona, następna jest poza zasięgiem i musimy poczekać, aż wróci pod głowicę odczytu, aby ją pobrać. Tak więc programowanie 650 było nie tylko kwestią algorytmu i analizy numerycznej, ale także optymalizacji rozmieszczenia instrukcji, aby zapobiec spowolnieniu programu przez opóźnienie bębna. W powyższej tabeli przedstawiono czasy wykonania dla każdej instrukcji. Bęben obraca się z prędkością 12 500 obr./min. Programista ustala, gdzie będzie znajdował się bęben po zakończeniu wykonywania bieżącej instrukcji i umieszcza następną instrukcję w tym miejscu na bębnie. Albo jeszcze lepiej, SOAP, symbolicznyProgram optymalnego montażu automatycznie wybiera lokalizację, jeśli pozostawisz ją pustą.
Peter Capek, użytkownik Columbia 650, obecnie pracujący w IBM, wspomina: „Powód, dla którego maszyna miała pamięć rdzeniową, jest interesujący… bęben i taśmy, które przenosiły się z różną szybkością. Musiałeś więc jawnie odczytywać/zapisywać w rdzeniu, a następnie przesyłać do urządzenia. Można było umieścić program w pamięci rdzenia i uniknąć problemu z czekaniem na obrót bębna, ale ponieważ to było tylko 60 słów, niewiele można było z tym zrobić”.
Z biegiem lat dodawano instrukcje, aż, jak zauważa Jim Thomas z University of Hawaii, „pod koniec swojego życia wykorzystał blisko 100 dostępnych możliwości (co z taśmą, rdzeniem pamięci, jak to opisujesz, 407 itp.)"
Don Knuth, IBM 650 (1958)
IBM spodziewał się wdrożyć tylko około 50 takich systemów, ale popyt ich zaskoczył. 650 był stosunkowo tani, miał dużą zniżkę akademicką, był kompatybilny z istniejącym sprzętem kartowym, mieścił się w jednym pokoju i był „przyjazny dla użytkownika” — arytmetyka dziesiętna, mały zestaw instrukcji, poręczna konsola. Był to jeden z pierwszych komputerów, z których programiści mogli korzystać „praktycznie”. W sumie 2000 zostało zainstalowanych w ciągu dziewięciu lat produkcji (1953-62), przekraczając łączną sprzedaż całej serii 700 . Wsparcie dla 650 zostało wycofane przez IBM w 1969 roku. Model 650 miał następcę, IBM 7070(1959), podobny architektonicznie, ale z tranzystorami zamiast lamp i rdzeniami zamiast bębna, i który był dostarczany nie tylko z czytnikiem kart i dziurkaczem, ale także z konsolą maszyny do pisania i (opcjonalnie) napędami dysków i taśm, drukarkami wierszowymi itp. To wydaje się być popularny we Włoszech — „Il primo sistema elettronico completamente tranzystorizzato”.
W sierpniu 2015 r. Gerardo Cacciari przesłał następującą odpowiedź na powyższe (a także poprawił kilka błędów ortograficznych). Nieprawidłowe odniesienie (i pisownia) pochodzi z tej strony (we Włoszech iw języku włoskim); Powinienem był to zacytować. Jeśli chodzi o bycie pierwszym komputerem z tranzystorami, Gerardo ma rację; 7070 był pierwszym tranzystorowym komputerem IBM ( według IBM ).
Ciekawe jest to, że to twierdzenie (tj. IBM 7070 jako pierwszy w pełni tranzystorowy komputer) nie jest do końca prawdziwe lub przynajmniej powinno być udostępniane innym producentom. Będąc Włochem, najbardziej lubię Olivetti Elea 9003, który był dość zaawansowany jak na swoje czasy. Mógł uruchamiać do trzech równoczesnych programów (był „podzielony na partycje”), miał koncepcję przerwania i był bardzo szybki. Ogłoszono ją w 1955 roku, a pierwszą maszynę produkcyjną wysłano w 1960 roku do dużej fabryki włókienniczej. Drugi wysłano do dużego banku, a kiedy przeszedł na emeryturę (w latach siedemdziesiątych!) został przekazany do szkoły technicznej, która utrzymywała go w celach edukacyjnych. Dziś jest to jedyna zachowana Elea 9003 działająca po ponad pięćdziesięciu latach.
Poniżej znajdują się zdjęcia, które osobiście zrobiłem, odwiedzając je kilka lat temu:
https://www.flickr.com/photos/30299761@N00/albums/72157619791037553/
To są zdjęcia, które mój przyjaciel zrobił tego samego dnia:
https://www.flickr.com/photos/31231773@N02/sets/72157623560120103/
To całkiem dobrze wyjaśnia, jak to działało:
http://www.site.uottawa.ca/~luigi/papers/elea.htm
A to są w celach informacyjnych:
https://en.wikipedia.org/wiki/List_of_transistorized_computers
https://en.wikipedia.org/wiki/Olivetti_Elea
Watson Lab 650 działały do… kiedy? Z pewnością działały w 1962 roku (gdzie wspominają o nich publikacje uniwersyteckie) i zdecydowanie zniknęły do 1970 roku, kiedy IBM opuścił budynek.
Ze strony internetowej Johna H. Clarka pod adresem users.nwark.com (obecnie nieistniejąca), z [poprawkami] Jima Thomasa:
„Procesor miał wymiary 5 na 3 stopy na 6 stóp i ważył 1966 funtów, a wynajmowano go za 3200 USD miesięcznie. Jednostka zasilająca miała wymiary 5 x 3 x 6 i ważyła 2972 funty. lub odjąć w 1,63 milisekundy, pomnożyć w 12,96 ms i podzielić przez 16,90 ms. Pamięć była obrotowym bębnem magnetycznym o pojemności 2000 słów (10 cyfr i znaków) i czasie dostępu losowego 2,496 ms. Za dodatkowe 1500 USD miesięcznie można było dodaj pamięć rdzenia magnetycznego na 60 słów z czasem dostępu 0,096 ms.
„Jedną z fajnych cech programu IBM 650 było użycie [dwóch] adresów; [drugi dla następnej] instrukcji. Oznacza to, że możesz odrzucić swoją talię i tak długo, jak masz pierwszą kartę z przodu, twój program będzie działał. [Chociaż 650 ma instrukcje dwuadresowe, karta języka asemblera zawiera trzeci adres: adres samej instrukcji.]
|
Konsola IBM 650 |
„Chociaż IBM 650 nie był super gorącą maszyną, miał jedną cechę, która sprawiła, że się sprzedawał: wiele migających świateł. Dzięki temu każdy mógł stwierdzić, że coś się dzieje. Niektórzy autorzy przypisują sukces IBM tym migającym lampkom i fakt, że komputer używał tych samych kart, co inne urządzenia rejestrujące jednostki IBM. W rzeczywistości dane wyjściowe twojego programu 650 były dziurkowane na kartach i zabierałeś talię do maszyny księgowej 402, aby uzyskać wydruk . KLIKNIJ OBRAZ, aby zobaczyć zbliżenie i opis konsoli sterującej IBM 650.
Zdjęcia: Podręcznik IBM 650 (patrz Odnośniki poniżej). Kliknij na obrazy, aby powiększyć:
Typ 533 Odczyt-dziurkowanie
Kanały kart IBM 650
Panel sterowania
Jest kilka rzeczy, które mogę dodać za okres 1958-1968 w firmie Watson itp.:
W sierpniu 2005 r., gdy zbliżamy się do 50. rocznicy instalacji 650 w Watson Lab, Melissa Metz z AcIS ujawniła, że jej mama, Claire, fizyk, była w tym czasie w Watson Lab; Klara wspomina:
Latem 1954 roku pracowałem w piwnicy 612 West 116th Street dla IBM, dla Erwina Hahna, który wyjechał na Uniwersytet Kalifornijski w Berkeley (w 1953 roku pracowałem w Pupin dla Gardnera Tuckera i zarabiałem mniej niż chłopaki. Erwin Hahn zadbał o to, abym płacił tyle samo). Badał efekt „echa spinowego”, który doprowadził do rezonansu magnetycznego. Mógł także grać w Yankee Doodle, pukając go w głowę i zmieniając twarz i usta. IBM zdenerwował się, ponieważ nie chciał pracować od 9 do 17, chociaż poświęcał o wiele więcej godzin. Mieli urządzenie z kartą drogową i liczyli czas w setnych częściach godziny (Więcej o zegarze czasu TUTAJ i TUTAJ )Nazywało się wówczas Watson Lab. Ale było wiele laboratoriów IBM, wszystkie nazywały się Watson, o ile pamiętam.
Podczas studiów magisterskich zajmowałem się również programowaniem dla IBM 650. Napisałem mały program po krótkim kursie Watson Lab dla 650, który wziąłem około 1960 r., ale ktoś inny wprowadził go do komputera. Tylko Marian Hamann Biavati i ja, jedyne kobiety na kursie, udało nam się za pierwszym razem.
W październiku 2018 roku Paul Muzio pisze:
W latach 1960-61 Columbia była gospodarzem sponsorowanego przez NSF programu dla uczniów szkół średnich. Musiał zdać test wiosną 1960 roku, aby dostać się do programu. Jedną z wielkich zalet programu było to, że mogłem napisać program komputerowy w języku maszynowym. W twoim piśmie ( Komentarz Mike'a Radowa ) jest dyskusja na temat programu High School Science Honors przy użyciu IBM 1620, myślałem, że musimy użyć IBM 650, ale to było dawno temu. Doskonale pamiętam jednak, co następuje: „Instrukcje 650 składały się z dwucyfrowego kodu operacji, czterocyfrowego adresu danych i czterocyfrowego adresu następnej instrukcji”. Nie przypominam sobie, żebym kiedykolwiek używał SPS.
Bibliografia:
Spinki do mankietów (Ostatnio sprawdzane 31 marca 2021 r.):
Linki, które wygasły od 2003 roku: