IBM 650 - IBM 650

Část prvního počítače IBM 650 v Norsku (1959), známého jako „EMMA“. Konzolová jednotka 650 (vpravo, vnější boční panel je otevřený), 533 Jednotka pro čtení karet (střední, vstup-výstup). Chybí napájecí jednotka 655. Děrovač děrných karet (vlevo, není součástí 650). Nyní v Norském muzeu vědy a technologie v Oslu .
IBM 650 na Texas A&M University. Jednotka IBM 533 Card Read Punch je vpravo.
Panel konzoly IBM 650 zobrazující bi-kvinární indikátory. (At House for the History of IBM Data Processing (closed), Sindelfingen)
Detailní záběr na biquinární ukazatele
Paměťový buben z IBM 650
Boční pohled na konzolovou jednotku IBM 650. První počítač ve Španělsku (1959) nyní v Národním muzeu vědy a technologie v A Coruña

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).

IBM 650 ve společnosti Texas A&M, otevřená, aby ukázala zadní část předního panelu, moduly elektronek a úložný buben
Vakuový elektronkový obvodový typ používaný v 650
Učebna v roce 1960 na Bronx High School of Science s instrukční tabulkou IBM 650 nad tabulí, vpravo nahoře

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
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
  • 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é

Poznámky a reference

Další čtení

externí odkazy