IBM 650 - IBM 650
IBM 650 Magnetic Drum przetwarzanie danych Maszyna jest wczesnym cyfrowy komputer wyprodukowany przez IBM w połowie 1950 roku. Był to pierwszy na świecie komputer produkowany masowo. Wyprodukowano prawie 2000 systemów, ostatni w 1962 roku i był to pierwszy komputer, który przyniósł znaczący zysk. Pierwszy z nich został zainstalowany pod koniec 1954 roku i był najpopularniejszym komputerem lat 50-tych.
650 był sprzedawany użytkownikom biznesowym, naukowym i inżynieryjnym jako wersja ogólnego przeznaczenia komputerów IBM 701 i IBM 702, które były przeznaczone odpowiednio do celów naukowych i biznesowych. Był również sprzedawany użytkownikom maszyn do kart dziurkowanych, którzy przechodzili z dziurkaczy kalkulacyjnych , takich jak IBM 604 , na komputery.
Ze względu na stosunkowo niski koszt i łatwość programowania , 650 był używany do pionierskich zastosowań, od modelowania wydajności załogi łodzi podwodnej po nauczanie programowania komputerowego uczniów szkół średnich i studentów. IBM 650 stał się bardzo popularny na uniwersytetach, gdzie pokolenie studentów po raz pierwszy uczyło się programowania.
Został ogłoszony w 1953 r., aw 1956 r. ulepszony jako IBM 650 RAMAC z dodaniem do czterech jednostek dyskowych. Wsparcie dla 650 i jego jednostek składowych zostało wycofane w 1969 roku.
650 był komputerem dziesiętnym z dwoma adresami , kodowanym bi-quinarnie (zarówno dane, jak i adresy były dziesiętne), z pamięcią na obracającym się bębnie magnetycznym . Obsługę znaków zapewniały jednostki wejścia/wyjścia konwertujące alfabetyczne i specjalne kodowania znaków kart perforowanych na dwucyfrowy kod dziesiętny.
Historia
Pierwszy 650 został zainstalowany w dniu 8 grudnia 1954 w kontrolerze „s wydziału John Hancock Mutual Life Insurance Company w Bostonie.
IBM 7070 (podpisany 10 cyfr dziesiętnych słowa), ogłosił 1958 spodziewano się „wspólne następcą co najmniej 650, a [IBM] 705 ”. IBM 1620 (o zmiennej długości dziesiętny), wprowadzony w 1959 roku, skierowana dolną część rynku. Solid State UNIVAC (komputer z dwoma adres, podpisał 10-cyfrowe słowa po przecinku) zostało ogłoszone przez Sperry Rand w grudniu 1958 roku jako odpowiedź na 650. Żaden z nich nie miał 650 kompatybilnego zestawu instrukcji.
Sprzęt komputerowy
Podstawowy system 650 składał się z trzech jednostek:
- Konsola IBM 650 mieściła magazyn bębna magnetycznego, urządzenie arytmetyczne (za pomocą rur próżniowych) i konsolę operatora.
- Zasilacz IBM 655
- IBM 533 lub IBM 537 Card Read Punch Unit IBM 533 miał oddzielne kanały do odczytu i dziurkowania; IBM 537 miał jeden kanał, dzięki czemu mógł czytać, a następnie przebijać tę samą kartę.
Waga: 5400-6,263 funtów (2,7-3,1 ton amerykańskich; 2,4-2,8 t).
Jednostki opcjonalne:
- Dziurkacz taśmowy IBM 46 do kart, model 3
- Dziurkacz do drukowania taśmy na kartę IBM 47, model 3
- Systemy IBM 355 Disk Storage Unit z jednostką dyskową były znane jako IBM 650 RAMAC Data Processing Systems
- Maszyna księgowa IBM 407
- Moduł czytnika kart IBM 543
- Moduł dziurkacza kart IBM 544
- Jednostka sterująca IBM 652 (taśma magnetyczna, dysk)
- IBM 653 Storage Unit (taśma magnetyczna, dysk, pamięć rdzeniowa, rejestry indeksowe, arytmetyka zmiennoprzecinkowa)
- IBM 654 Pomocnicza jednostka alfabetyczna
- Jednostka taśmy magnetycznej IBM 727
- Stacja zapytań IBM 838
Pamięć główna
Pamięć z obrotowym bębnem zapewniała 1000, 2000 lub 4000 słów pamięci (10 cyfr ze znakiem lub pięć znaków na słowo) pod adresami odpowiednio od 0000 do 0999, 1999 lub 3999. Słowa na bębnach były zorganizowane w zespoły wokół bębna, po pięćdziesiąt słów na zespół i 20, 40 lub 80 zespołów dla odpowiednich modeli. Dostęp do słowa można było uzyskać, gdy jego lokalizacja na powierzchni bębna przechodziła pod głowicami odczytu/zapisu podczas obrotu (obracanie z prędkością 12500 obr/min , niezoptymalizowany średni czas dostępu wynosił 2,5 ms ). Z tego powodu drugi adres w każdej instrukcji był adresem następnej instrukcji. Programy można następnie zoptymalizować , umieszczając instrukcje pod adresami, które byłyby natychmiast dostępne po zakończeniu wykonywania poprzedniej instrukcji. IBM dostarczył formularz z dziesięcioma kolumnami i 200 wierszami, aby umożliwić programistom śledzenie, gdzie umieszczają instrukcje i dane. Później dostarczono asembler SOAP (Symbolic Optimal Assembly Program), który przeprowadził zgrubną optymalizację.
Komputery LGP-30 , Bendix G-15 i IBM 305 RAMAC również używały lamp próżniowych i pamięci bębnowej, ale różniły się one znacznie od IBM 650.
Instrukcje odczytane z bębna trafiały do rejestru programu (w aktualnej terminologii rejestru instrukcji ). Dane odczytane z bębna przeszły przez 10-cyfrowy dystrybutor. Model 650 miał 20-cyfrowy akumulator , podzielony na 10-cyfrowe akumulatory dolne i górne ze wspólnym znakiem. Arytmetyka została wykonana przez jednocyfrowy sumator. Konsola (10-cyfrowych przełączników, jeden przełącznik znakowy i 10 bi-quinarnych światełek wyświetlacza), rozdzielacz, dolne i górne akumulatory były adresowalne; 8000, 8001, 8002, 8003.
Jednostka pamięci masowej IBM 653
Opcjonalna jednostka pamięci IBM 653 została wprowadzona 3 maja 1955 r., zapewniając ostatecznie do pięciu funkcji:
- Kontroler taśmy magnetycznej (dla jednostek IBM 727 Magnetic Tape) (10 dodatkowych kodów operacji)
- Kontroler pamięci dyskowej (ulepszenie 1956 dla ówczesnej nowej jednostki pamięci dyskowej IBM 355) (5 dodatkowych kodów operacji)
- Sześćdziesiąt 10-cyfrowych słów pamięci z rdzeniem magnetycznym pod adresami od 9000 do 9059; mała szybka pamięć (to urządzenie zapewnia czas dostępu do pamięci 96 µs , 26-krotna poprawa w stosunku do obracającego się bębna), potrzebna dla bufora wejścia/wyjścia taśmy i dysku. (5 dodatkowych kodów operacji)
- Trzy czterocyfrowe rejestry indeksowe pod adresami od 8005 do 8007; adresy perkusyjne były indeksowane przez dodanie do nich 2000, 4000 lub 6000, adresy rdzenia były indeksowane przez dodanie do nich 0200, 0400 lub 0600. Jeśli system miał bęben słów 4000, indeksowanie odbywało się przez dodanie 4000 do pierwszego adresu rejestru indeksów A, dodanie 4000 do drugiego adresu rejestru indeksów B i dodanie 4000 do każdego z dwóch adresów rejestru indeksów C ( indeksowanie dla systemów o długości 4000 słów stosowane tylko do pierwszego adresu). Systemy o długości 4000 słów wymagały tranzystorowych obwodów odczytu/zapisu dla pamięci bębna i były dostępne przed 1963 rokiem. (18 dodatkowych kodów operacyjnych)
- Floating point – instrukcje arytmetyczne obsługują ośmiocyfrową mantysę i dwucyfrową charakterystykę (wykładnik przesunięcia) – MMMMMMMMCC , zapewniając zakres od ±0,00000001E-50 do ±0,99999999E+49. (siedem dodatkowych kodów operacji)
Zestaw instrukcji
650 instrukcji składało się z dwucyfrowego kodu operacji , czterocyfrowego adresu danych i czterocyfrowego adresu następnej instrukcji. Znak został zignorowany na maszynie podstawowej, ale był używany na maszynach z opcjonalnymi funkcjami. Maszyna bazowa miała 44 kody operacyjne. Dostarczono dodatkowe kody operacji dla opcji, takich jak zmiennoprzecinkowa, pamięć rdzeniowa, rejestry indeksowe i dodatkowe urządzenia I/O. Po zainstalowaniu wszystkich opcji było 97 kodów operacji.
Instrukcja Table lookup (TLU) mogłaby porównać przywoływane 10-cyfrowe słowo z 48 kolejnymi słowami na tym samym paśmie perkusyjnym w jednym 5 ms obrocie, a następnie przełączyć się na następne pasmo w czasie dla następnych 48 słów. Ten wyczyn był około jednej trzeciej szybkości tysiąca razy szybszej maszyny binarnej w 1963 (1500 mikrosekund na IBM 7040 do 5000 mikrosekund na 650) przy wyszukiwaniu 46 wpisów, o ile oba zostały zaprogramowane w asemblerze. Dostępna była opcjonalna instrukcja Równa wyszukiwania tabeli, z taką samą wydajnością.
Instrukcja Read (RD) odczytuje 80-kolumnową kartę danych numerycznych do dziesięciu słów pamięci; rozkład cyfr na słowa określone przez okablowanie centrali czytnika kart . W przypadku użycia z urządzeniem Alphabetic modułu 533 Reader Punch można odczytać kombinację kolumn numerycznych i alfanumerycznych (maksymalnie 30 kolumn alfanumerycznych). Funkcja rozszerzania pozwoliła na dodanie większej liczby kolumn alfanumerycznych, ale z pewnością nie ponad 50, ponieważ tylko dziesięć słów (pięć znaków na słowo) było przechowywanych na bębnie przez operację odczytu karty.
Podstawowymi kodami działania maszyny były:
17 | AABL | Dodaj wartość absolutną do niższego akumulatora |
15 | glin | Dodaj do niższego akumulatora |
10 | AU | Dodaj do górnego akumulatora |
45 | BRNZ | Rozgałęzienie na akumulatorze niezerowe |
46 | BRMIN | Gałąź na minusie akumulatora |
44 | BRNZU | Rozgałęzienie na niezerowe w górnym akumulatorze |
47 | BROV | Oddział na przelewie |
90-99 | BRD | Oddział na 8 w pozycjach dystrybutora 1-10 ** |
14 | DIV | Dzielić |
64 | DIVRU | Podziel i zresetuj górny akumulator |
69 | LD | Dystrybutor obciążenia |
19 | MULT | Zwielokrotniać |
00 | NIE-OP | Bez operacji |
71 | PCH | Uderz kartę |
70 | R & D | Przeczytaj kartę |
67 | RAABL | Zresetuj akumulator i dodaj wartość absolutną do niższego akumulatora |
65 | RAL | Zresetuj akumulator i dodaj do niższego akumulatora |
60 | RAU | Zresetuj akumulator i dodaj do górnego akumulatora |
68 | RSABL | Zresetuj akumulator i odejmij wartość bezwzględną od dolnego akumulatora |
66 | RSL | Zresetuj akumulator i odejmij od dolnego akumulatora |
61 | RSU | Zresetuj akumulator i odejmij od górnego akumulatora |
35 | SLT | Przesuń akumulator w lewo |
36 | SCT | Przesuń akumulator w lewo i policz *** |
30 | SRT | Przesuń akumulator w prawo |
31 | SRD | Przesuń akumulator w prawo i okrągły akumulator |
01 | ZATRZYMAĆ | Zatrzymaj się, jeśli przełącznik konsoli jest ustawiony na zatrzymanie, w przeciwnym razie kontynuuj jako NO-OP |
24 | STD | Przechowuj dystrybutora w pamięci |
22 | STDA | Przechowuj dolny adres danych akumulatora w dystrybutorze
Następnie zapisz dystrybutora w pamięci |
23 | STIA | Przechowuj dolny adres instrukcji akumulatora w dystrybutorze
Następnie zapisz dystrybutora w pamięci |
20 | STL | Przechowuj dolny akumulator w pamięci |
21 | STU | Zapisz górny akumulator w pamięci * |
18 | SABL | Odejmij wartość bezwzględną od dolnego akumulatora |
16 | SL | Odejmij od dolnego akumulatora |
11 | SU | Odejmij od górnego akumulatora |
84 | TLU | Wyszukiwanie tabeli |
Uwagi:
- * Przechowywana wartość przyjmuje znak akumulatora, z wyjątkiem operacji dzielenia; następnie znak reszty jest przechowywany.
- ** Służy do umożliwienia centrali 533 sygnalizowania CPU.
- *** Zlicza zera wyższego rzędu w górnym akumulatorze
Opcje IBM 653 mogą implementować dodatkowe kody instrukcji.
Przykładowy program
Ten jednokartowy program, zaczerpnięty z 650 Programming Bulletin 5, IBM, 1956, 22-6314-0 , ustawi większość pamięci bębna na minus zera. Program zawiera przykłady instrukcji wykonywanych z przełączników konsoli oraz z akumulatora.
Aby rozpocząć, karta załadowcza jest dziurkowana z 80 kolejnymi cyframi (druga kolumna poniżej), tak że po odczycie lokalizacje bębnów od 0001 do 0008 będą takie, jak pokazano.
0001 0000010000 0002 0000000000- 0003 1000018003 0004 6100080007 0005 2400008003 0006 0100008000 0007 6900060005 0008 2019990003
Cyfrowe przełączniki konsoli (adres 8000) są ręcznie ustawiane na instrukcję odczytu z adresem danych 0004.
loc- op|data|next ation |addr|instruction | |addr
8000 RD 70 0004 xxxx Read load card into 1st band read area
Każdy zespół perkusyjny ma obszar odczytu; te obszary odczytu znajdują się w lokalizacjach 0001-0010, 0051-0060, 0101-0110 i tak dalej. Do identyfikacji tego pasma dla instrukcji odczytu można użyć dowolnego adresu w paśmie; adres 0004 identyfikuje pierwsze pasmo. Rozpoczyna się wtedy wykonanie z konsoli odczytem 8 słów na karcie obciążenia do lokacji 0001-0008 1. pasma pamięci. W przypadku odczytu karty obciążenia, „adres następnej instrukcji” jest pobierany z pola adresu danych, a nie z pola adresu następnej instrukcji (pokazanego powyżej jako xxxx). W ten sposób egzekucja jest kontynuowana na 0004
0004 RSU 61 0008 0007 Reset entire accumulator, subtract into upper (8003) the value 2019990003 0007 LD 69 0006 0005 Load distributor with 0100008000 0005 STD 24 0000 8003 Store distributor in location 0000, next instruction is in 8003 (the upper accumulator) Note: the moving of data or instructions from one drum location to another requires two instructions: LD, STD.
Teraz wykonywana jest pętla dwóch instrukcji:
8003 STL 20 1999 0003 Store lower accumulator (that accumulator was reset to 0- by the RSU instruction above) The "1999" data address is decremented, below, on each iteration. This instruction was placed in the upper accumulator by the RSU instruction above. Note: this instruction, now in the upper accumulator, will be decremented and then executed again while still in the accumulator.
0003 AU 10 0001 8003 Decrement data address of the instruction in the accumulator by 1 (by adding 10000 to a negative number)
Adres danych STL zostanie ostatecznie zmniejszony do 0003, a instrukcja AU ... pod adresem 0003 zostanie nadpisana zerami. Kiedy to nastąpi (następny adres instrukcji STL pozostaje 0003), wykonanie przebiega w następujący sposób:
0003 NOOP 00 0000 0000 No-operation instruction, next instruction address is 0000 0000 HALT 01 0000 8000 Halt, next instruction address is the console (this Halt instruction was stored in 0000 by the STD instruction above)
Seria książek Donalda Knutha The Art of Computer Programming jest słynna z serii 650.
Oprogramowanie
Oprogramowanie napisane dla IBM 650 zawierało:
- Monterzy
- Symboliczny program optymalnego montażu (SOAP) — asembler
- Technical Assembly System (TASS) — Asembler makr .
- Systemy interpretacyjne
- Interpretacyjny pakiet maszyny wirtualnej aplikacji pierwotnie opublikowany jako "Complete Floating Decimal Interpretive System for the IBM 650 Magnetic Drum Calculator". Było to znane pod kilkoma nazwami:
- Interpreter Wolontis-Bell Labs, system Bell, interpreter Bell, system interpretacyjny Bell lub BLIS — system interpretacyjny Bell Lab
- L1 i (później) L2 - znane poza Bell Labs jako "Bell 1" i "Bell 2", między innymi (patrz wyżej)
- Syntetyczny system programowania do zastosowań komercyjnych
- Języki algebraiczne / kompilatory
- Tłumacz wewnętrzny (IT) — kompilator
- Zmieniony zunifikowany nowy kompilator IT Basic Language Extended (RUNCIBLE) — rozszerzenie IT w Case
- FOR TRANSIT — Wersja Fortranu skompilowana do IT, która z kolei została skompilowana do SOAP
- FORTRAN
- GATE — Prosty kompilator z jednoznakowymi nazwami zmiennych
- IPL — Pierwszy język przetwarzania listy. Najbardziej znaną wersją był IPL-V.
- SPACE (uproszczone programowanie, którym każdy może się cieszyć) — dwuetapowy kompilator zorientowany na biznes dzięki SOAP
Zobacz też
- Historia IBM # 1946-1959: odbudowa powojenna, rozwój komputerów biznesowych, eksploracja kosmosu, zimna wojna
- UNIVAC Solid State ogłoszony przez Sperry Rand w grudniu 1958 jako odpowiedź na IBM 650. W czerwcu 1959 Remington Rand ogłosił, że napisał program emulatora IBM 650, aby ułatwić konwersję.
- Seria IBM 700/7000
Uwagi i referencje
Dalsza lektura
- Andree, Richard V. (1958). Programowanie komputera z bębnem magnetycznym IBM 650 i maszyny do przetwarzania danych (PDF) .
- IBM (1955). Instrukcja obsługi maszyny do przetwarzania danych z bębnem magnetycznym IBM 650 (PDF) . 22-6060.
- IBM (1956). System przetwarzania danych IBM 650, Podręcznik obsługi klienta (PDF) . 22-6284-1.
- IBM (1955). IBM przedstawia maszynę do przetwarzania danych z bębnem magnetycznym 650 (PDF) . 32-6770. Zarchiwizowane z oryginału (PDF) dnia 2012-02-05 . Źródło 2006-09-24 .
- Knuth, Donald E. (styczeń-marzec 1986). „IBM 650: uznanie z pola” (PDF) . Roczniki historii informatyki IEEE . 8 (1): 50–55. doi : 10.1109/MAHC.1986.10010 .
Zewnętrzne linki
- Bitsavers.org: dokumenty IBM 650 (pliki PDF)
- Uniwersytet Columbia: IBM 650 na Uniwersytecie Columbia
- Archiwa IBM IBM 650: koń pociągowy nowoczesnego przemysłu Zawiera chronologię, specyfikacje techniczne, zdjęcia, reprezentatywnych klientów i aplikacje, do których 650 był używany.
- Klip wideo IBM 650 i RAMAC w działaniu , wersja alternatywna
- Weik, Martin H. (marzec 1961). Trzecie badanie krajowych elektronicznych systemów przetwarzania cyfrowego . Laboratoria Badań Balistycznych (BRL). Raport nr 1115. Zawiera około 40 stron szczegółowych danych ankiety IBM 650: klienci, aplikacje, specyfikacje i koszty.