IBM 650 - IBM 650
IBM 650 Magnetic Drum zpracování dat je časný digitální počítač produkoval IBM v polovině-1950. Jednalo se o první sériově vyráběný počítač na světě. Bylo vyrobeno téměř 2 000 systémů, poslední v roce 1962, a byl to první počítač se smysluplným ziskem. První byl nainstalován na konci roku 1954 a byl to nejpopulárnější počítač padesátých let.
650 byl uveden na trh pro obchodní, vědecké a technické uživatele jako obecná verze počítačů IBM 701 a IBM 702, které byly určeny pro vědecké a obchodní účely. Byl také uveden na trh pro uživatele strojů s děrnými kartami, kteří upgradovali z výpočtu razníků , jako je IBM 604 , na počítače.
Vzhledem ke svým relativně nízkým nákladům a snadnému programování byl 650 použit k průkopnictví široké škály aplikací, od modelování výkonu posádky ponorek až po výuku počítačového programování středních a vysokých škol. IBM 650 se stal velmi populární na univerzitách, kde se generace studentů poprvé naučila programovat.
Byl oznámen v roce 1953 a v roce 1956 vylepšen jako IBM 650 RAMAC s přidáním až čtyř diskových úložných jednotek. Podpora pro 650 a jeho součásti byla v roce 1969 stažena.
650 byl dvě adresy , bi-quinary kódovanou desítkovou počítač (jak data a adresy byly desítkově), s pamětí na rotující magnetický buben . Podpora znaků byla poskytována vstupními/výstupními jednotkami převádějícími abecední a speciální znaková kódování děrných štítků na/z dvoumístného desetinného kódu.
Dějiny
První 650 byl instalován na 8. prosince 1954 v řadiči ‚s oddělením John Hancock Vzájemné Life Insurance Company v Bostonu.
Očekává se, že IBM 7070 (podepsaná desetimístnými desetinnými slovy) z roku 1958 bude „společným nástupcem minimálně 650 a [IBM] 705 “. IBM 1620 (s proměnnou délkou desítkově), který byl zaveden v roce 1959, které je určeno na dolní konec trhu. UNIVAC Solid State (dva adresa počítače, která byla podepsána 10místné desetinná slov) byl oznámen Sperry Rand v prosinci 1958 jako reakci na 650. Žádný z nich mělo 650 kompatibilní s instrukční sadu.
Hardware
Základní systém 650 se skládal ze tří jednotek:
- V konzole IBM 650 Console Unit bylo umístěno magnetické úložiště bubnu, aritmetické zařízení (pomocí elektronek) a konzole operátora.
- Napájecí jednotka IBM 655
- IBM 533 nebo IBM 537 Card Read Punch Unit IBM 533 měla oddělené kanály pro čtení a děrování; IBM 537 měl jeden feed, takže mohl číst a pak vrazit do stejné karty.
Hmotnost: 5 400–6 263 liber (2,7–3,1 čistých tun; 2,4–2,8 t).
Volitelné jednotky:
- Děrovačka IBM 46 Tape To Card, Model 3
- IBM 47 Punch to Card Printing Punch, Model 3
- Systémy IBM 355 Disk Storage Unit System s diskovou jednotkou byly známy jako IBM 650 RAMAC Data Processing Systems
- Účetní stroj IBM 407
- Jednotka čtečky karet IBM 543
- Děrovací jednotka karty IBM 544
- Řídicí jednotka IBM 652 (magnetická páska, disk)
- Úložná jednotka IBM 653 (magnetická páska, disk, jádrové úložiště, rejstříky, aritmetika s plovoucí desetinnou čárkou)
- Pomocná abecední jednotka IBM 654
- Jednotka magnetické pásky IBM 727
- Informační stanice IBM 838
Hlavní paměť
Rotující paměť bubnu poskytovala 1 000, 2 000 nebo 4 000 slov paměti (podepsané 10místné číslo nebo pět znaků na slovo) na adresách 0000 až 0999, 1999 nebo 3999. Slova na bubnech byla uspořádána v pásmech kolem bubnu, padesát slov na pásmo a 20, 40 nebo 80 pásem pro příslušné modely. Ke slovu bylo možné přistupovat, když jeho umístění na povrchu bubnu během otáčení prošlo pod čtecími/zapisovacími hlavami (při otáčení 12 500 ot/min byla neoptimalizovaná průměrná doba přístupu 2,5 ms ). Kvůli tomuto načasování byla druhou adresou každé instrukce adresa další instrukce. Programy by pak mohly být optimalizovány umístěním pokynů na adresy, které by byly okamžitě přístupné po dokončení provádění předchozí instrukce. IBM poskytla formulář s deseti sloupci a 200 řádky, který programátorům umožňuje sledovat, kam vkládají pokyny a data. Později byl poskytnut assembler , SOAP (Symbolic Optimal Assembly Program), který prováděl hrubou optimalizaci.
LGP-30 , Bendix G-15 a IBM 305 RAMAC počítače používané elektronky a paměť válce také, ale byly zcela odlišné od IBM 650.
Instrukce načtené z bubnu šly do registru programu (v aktuální terminologii registr instrukcí ). Data načtená z bubnu prošla desetimístným distributorem. 650 měl 20místný akumulátor , rozdělený na 10místný spodní a horní akumulátor se společným znakem. Aritmetiku prováděl jednociferný sčítač. Konzole (10místné přepínače, přepínač s jedním znakem a 10 biquinárních displejů), distributor, spodní a horní akumulátory byly adresovatelné; 8000, 8001, 8002, 8003.
Úložná jednotka IBM 653
Volitelná úložná jednotka IBM 653 byla představena 3. května 1955 a nakonec poskytla až pět funkcí:
- Řadič magnetické pásky (pro jednotky magnetické pásky IBM 727) (10 dalších provozních kódů)
- Řadič úložiště na disku (vylepšení 1956 pro tehdy novou jednotku IBM 355 Disk Storage Unit) (5 dalších provozních kódů)
- Šedesát 10místných slov paměti magnetického jádra na adresách 9000 až 9059; malá rychlá paměť (toto zařízení poskytlo přístupový čas do paměti 96 µs , 26násobné hrubé zlepšení vzhledem k rotujícímu bubnu), potřebné pro I/O buffer pro pásku a disk. (5 dalších provozních kódů)
- Tři čtyřciferné rejstříkové rejstříky na adresách 8005 až 8007; adresy bubnů byly indexovány přidáním 2000, 4000 nebo 6000 k nim, adresy jádra byly indexovány přidáním 0200, 0400 nebo 0600 k nim. Pokud měl systém buben 4000 slov, indexovalo se přidáním 4000 na první adresu indexového registru A, přidáním 4000 na druhou adresu indexového registru B a přidáním 4000 na každou ze dvou adres indexového registru C ( indexování pro systémy se 4 000 slovy se vztahuje pouze na první adresu). Systémy o délce 4000 slov vyžadovaly tranzistorové čtecí/zapisovací obvody pro paměť bubnu a byly k dispozici před rokem 1963. (18 dalších operačních kódů)
- Floating point -aritmetické instrukce podporovaly osmimístnou mantisu a dvoucifernou charakteristiku (ofsetový exponent) -MMMMMMMMCC , poskytující rozsah ± 0,00000001E-50 až ± 0,99999999E+49. (sedm dalších provozních kódů)
Instrukční sada
650 instrukcí se skládalo z dvoumístného operačního kódu , čtyřmístné datové adresy a čtyřmístné adresy další instrukce. Na základním stroji byl znak ignorován, ale byl použit na strojích s volitelnými funkcemi. Základní stroj měl 44 operačních kódů. K možnostem byly poskytnuty další provozní kódy, jako je plovoucí desetinná čárka, základní úložiště, rejstříkové registry a další I/O zařízení. Se všemi nainstalovanými doplňky bylo 97 provozních kódů.
Instrukce TLU (Table lookup) by mohla velmi dobře porovnat odkazované 10místné slovo se 48 po sobě jdoucími slovy na stejném bubnovém pásmu během jedné 5ms otáčky a poté přepnout na další pásmo v čase pro dalších 48 slov. Tento výkon představoval zhruba třetinu rychlosti tisíckrát rychlejšího binárního stroje v roce 1963 (1 500 mikrosekund u IBM 7040 až 5 000 mikrosekund na 650) pro vyhledávání 46 záznamů, pokud byly oba naprogramovány v assembleru. K dispozici byla volitelná instrukce Table Lookup Equal se stejným výkonem.
Instrukce Read (RD) přečte kartu s 80 sloupci číselných dat do deseti paměťových slov; rozdělení číslic na slova určené kabeláží ovládacího panelu čtečky karet . Při použití s abecedním zařízením jednotky 533 Reader Punch bylo možné přečíst kombinaci číselných a alfanumerických sloupců (maximálně 30 alfanumerických sloupců). Funkce rozšíření umožňovala více alfanumerických sloupců, ale rozhodně ne více než 50, protože na buben bylo pomocí operace čtení karty uloženo pouze deset slov (pět znaků na slovo).
Kódy provozu základního stroje byly:
17 | AABL | Přidejte absolutní k nižšímu akumulátoru |
15 | AL | Přidat do spodního akumulátoru |
10 | AU | Přidat do horního akumulátoru |
45 | BRNZ | Větev na akumulátor nenulová |
46 | BRMIN | Větev na mínus akumulátor |
44 | BRNZU | Větev na nenulové v horním akumulátoru |
47 | BROV | Pobočka na přetečení |
90-99 | BRD | Pobočka na 8 v pozicích distributorů 1-10 ** |
14 | DIV | Rozdělit |
64 | DIVRU | Rozdělte a resetujte horní akumulátor |
69 | LD | Rozdělovač zatížení |
19 | MULT | Násobit |
00 | NE-OP | Žádná operace |
71 | PCH | Vyrazte kartu |
70 | RD | Přečtěte si kartu |
67 | RAABL | Resetujte akumulátor a přidejte absolutní k nižšímu akumulátoru |
65 | RAL | Resetujte akumulátor a přidejte jej do spodního akumulátoru |
60 | RAU | Resetujte akumulátor a přidejte jej do horního akumulátoru |
68 | RSABL | Resetujte akumulátor a odečtěte absolutní od spodního akumulátoru |
66 | RSL | Resetujte akumulátor a odečtěte od spodního akumulátoru |
61 | RSU | Resetujte akumulátor a odečtěte od horního akumulátoru |
35 | SLT | Směnný akumulátor vlevo |
36 | SCT | Směnný akumulátor doleva a počet *** |
30 | SRT | Řadový akumulátor vpravo |
31 | SRD | Směrový akumulátor vpravo a kulatý akumulátor |
01 | STOP | Zastavit, pokud je přepínač konzoly nastaven na zastavení, jinak pokračujte jako NO-OP |
24 | STD | Uložte distributora do paměti |
22 | STDA | Uložte nižší datovou adresu akumulátoru do distributoru
Poté uložte distributora do paměti |
23 | STIA | Uložte adresu instrukce pro nižší akumulátor do distributora
Poté uložte distributora do paměti |
20 | STL | Uložte spodní akumulátor do paměti |
21 | STU | Uložit horní akumulátor do paměti * |
18 | SABL | Odečtěte absolutní od spodního akumulátoru |
16 | SL | Odečtěte od spodního akumulátoru |
11 | SU | Odečtěte od horního akumulátoru |
84 | TLU | Vyhledání stolu |
Poznámky:
- * Uložená hodnota má znaménko akumulátoru, kromě operace dělení; pak je uložen znak zbytku.
- ** Používá se k povolení 533 ústředny signalizovat CPU.
- *** Počítá nuly vysokého řádu v horním akumulátoru
Volby IBM 653 by mohly implementovat další instrukční kódy.
Ukázkový program
Tento program s jednou kartou, převzatý z 650 Programming Bulletin 5, IBM, 1956, 22-6314-0 , nastaví většinu bubnového úložiště na mínus nuly. Program obsahuje příklady pokynů prováděných z přepínačů konzoly a z akumulátoru.
Nejprve se načte zaváděcí karta s 80 po sobě jdoucími číslicemi (druhý sloupec níže), takže při čtení bude obsah bubnu 0001 až 0008 zobrazen tak, jak je znázorněno.
0001 0000010000 0002 0000000000- 0003 1000018003 0004 6100080007 0005 2400008003 0006 0100008000 0007 6900060005 0008 2019990003
Digitální přepínače konzoly (adresa 8000) jsou ručně nastaveny na instrukci Číst s datovou adresou 0004.
loc- op|data|next ation |addr|instruction | |addr
8000 RD 70 0004 xxxx Read load card into 1st band read area
Každý buben má pásmo pro čtení; tyto oblasti čtení jsou v místech 0001-0010, 0051-0060, 0101-0110 a tak dále. K identifikaci tohoto pásma pro instrukci čtení lze použít libovolnou adresu v pásmu; adresa 0004 identifikuje 1. pásmo. Spustí se spuštění z konzoly načtením 8 slov na zaváděcí kartě do míst 0001-0008 1. paměťového pásma. V případě načtení zaváděcí karty je „adresa další instrukce“ převzata z pole adresy dat, nikoli z pole adresy další instrukce (zobrazené výše jako xxxx). Poprava tedy pokračuje 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.
Nyní se spustí dvě instrukční smyčky:
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)
Datová adresa STL bude nakonec snížena na 0003 a instrukce AU ... na 0003 bude přepsána nulami. Když k tomu dojde (další adresa instrukce STL zůstává 0003), provádění pokračuje následujícím způsobem:
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)
Série knih Donalda Knutha Umění počítačového programování je skvěle věnována číslu 650.
Software
Software napsaný pro IBM 650 obsahuje:
- Montéři
- Symbolic Optimal Assembly Program (SOAP) - An assembler
- Technical Assembly System (TASS) - Makro assembler .
- Interpretační systémy
- Balíček virtuálního stroje pro interpretační aplikaci původně publikovaný jako „Complete Floating Decimal Interpretive System for the IBM 650 Magnetic Drum Calculator“. Toto bylo známé pod několika jmény:
- tlumočník Wolontis – Bell Labs, systém Bell, tlumočník Bell, interpretační systém Bell nebo BLIS - interpretační systém Bell Lab
- L1 a (později) L2 - mimo Bell Labs známé mimo jiné jako „Bell 1“ a „Bell 2“ (viz výše)
- Syntetický programovací systém pro komerční aplikace
- Algebraické jazyky / překladače
- Internal Translator (IT) - kompilátor
- Revidovaný sjednocený nový překladač IT Basic Language Extended (RUNCIBLE) - Rozšíření IT na Case
- FOR TRANSIT - Verze Fortranu, která byla kompilována do IT a která byla následně kompilována do SOAP
- FORTRAN
- GATE - Jednoduchý překladač s názvy znaků s jedním znakem
- IPL - první jazyk pro zpracování seznamu. Nejznámější verzí byla IPL-V.
- SPACE (zjednodušené programování, které si může užít každý)-Dvoufázový překladač zaměřený na podnikání prostřednictvím protokolu SOAP
Viz také
- Historie IBM#1946–1959: Poválečná obnova, vzestup obchodní výpočetní techniky, průzkum vesmíru, studená válka
- Solid State UNIVAC oznámil Sperry Rand v prosinci 1958 jako reakci na IBM 650. V červnu 1959 Remington Rand oznámil, že napsal program emulátoru IBM 650, který má usnadnit převod.
- Řada IBM 700/7000
Poznámky a reference
Další čtení
- Andree, Richard V. (1958). Programování počítače IBM 650 Magnetic Drum Computer and Data-Processing Machine (PDF) .
- IBM (1955). Návod k obsluze stroje na zpracování dat magnetického bubnu IBM 650 (PDF) . 22-6060.
- IBM (1956). IBM 650 Data-Processing System, Customer Engineering Manual of Instruction (PDF) . 22-6284-1.
- IBM (1955). IBM představuje stroj 650 Processing Data Magnetic Drum Data Processing Machine (PDF) . 32-6770. Archivováno z originálu (PDF) dne 2012-02-05 . Citováno 2006-09-24 .
- Knuth, Donald E. (leden – březen 1986). „IBM 650: Ocenění z pole“ (PDF) . IEEE Annals of the History of Computing . 8 (1): 50–55. doi : 10.1109/MAHC.1986.10010 .
externí odkazy
- Bitsavers.org: Dokumenty IBM 650 (soubory PDF)
- Columbia University: IBM 650 na Columbia University
- Archivy IBM IBM 650: Workhorse of Modern Industry Obsahuje chronologii, technické specifikace, fotografie, reprezentativní zákazníky a aplikace, pro které byl 650 používán.
- Videoklip IBM 650 a RAMAC v provozu , alternativní verze
- Weik, Martin H. (březen 1961). Třetí průzkum domácích elektronických digitálních počítačových systémů . Laboratoře balistického výzkumu (BRL). Zpráva č. 1115. Obsahuje asi 40 stran podrobného průzkumu IBM 650: zákazníci, aplikace, specifikace a náklady.