IBM 704 är den första massproducerade datorn med hårdvarustöd för flyttalsberäkningar , introducerad av IBM 1954 [1] . IBM 704-manualen [2] beskriver maskinen enligt följande.
Typ 704 elektronisk databehandlingsmaskin är en stor, höghastighets elektronisk dator som styrs av ett internt lagrat program med instruktioner av unicast-typ.
Originaltext (engelska)[ visaDölj] Typ 704 elektronisk databearbetningsmaskin är en storskalig, höghastighets elektronisk kalkylator som styrs av ett internt lagrat program med instruktioner av en adresstyp.704 var en betydande förbättring jämfört med tidigare IBM 701 när det gäller arkitektur och implementering. Som med 701-modellerna byggdes logikkretsarna kring vakuumrör . Ändringar från 701 inkluderade användningen av magnetiskt kärnminne istället för Williams-rör och tillägget av tre indexregister . För att stödja de nya funktionerna har instruktionslängden utökats till full maskinordstorlek (36 bitar). Den nya instruktionsuppsättningen , inkompatibel med Model 701-instruktionsuppsättningen, blev grunden för IBM 700/7000-seriens " vetenskapliga arkitektur "-maskiner.
Modellen 704 kunde utföra upp till 12 000 additioner eller upp till 4 000 flyttalsmultiplikationer per sekund [1] , och exekveringshastigheten för enkla instruktioner kunde nå 40 000 per sekund [2] . IBM sålde cirka 140 modell 704-datorer mellan 1955 och 1960.
Programmeringsspråken Fortran [3] och Lisp [4] utvecklades först för IBM 704.
För IBM 704 utvecklades det första datorprogrammet för digital ljudsyntes, MUSIC , av Max Matthews .
1962 skapade fysikern John Larry Kelly, Jr. , med hjälp av en IBM 704-dator, en av de mest spektakulära demonstrationerna av datorstödd talsyntes i Bell Labs historia . En vocoder (talsynthesizer) programmerad av Kelly spelade den populära låten Daisy Bell med musikaliskt ackompanjemang programmerat av Max Matthews. Originalinspelningen gjordes 1961 [5] . Resultatet av syntesen av tal och musik i digital form spelades in på magnetband och spelades sedan upp med en 12-bitars digital-till-analog-omvandlare [6] . Arthur Clarke , som besökte vännen och kollegan John Pierce vid Bell Labs i Murray Hill , råkade vara på demonstrationen. Clarke var så imponerad att han sex år senare använde detta ögonblick i romanen och manuset till filmen " 2001: A Space Odyssey ": i scenen när astronauten Dave Bowman stänger av HAL 9000 -datorn sjunger datorn samma låt [7 ] .
Edward Thorp , professor i matematik vid Massachusetts Institute of Technology , använde IBM 704 för att utveckla sin blackjack -spelteori som ett forskningsverktyg för att studera vinstsannolikheter [8] [9] . Thorp programmerade sin forskningsmodell i Fortran.
En IBM 704 användes av Smithsonian Astrophysical Observatory för att beräkna omloppsbanan för den första sovjetiska satelliten från data som samlats in av amatörastronomer som en del av Moonwatch-projektet hösten 1957. Forskarna och matematikerna vid Smithsonian Astrophysical Observatory fick hjälp med att beräkna parametrarna för omloppsbanan av fyra IBM-anställda.
IBM 704 innehöll en 38-bitars ackumulator (2 extra bitar Q och P, som används för överflödeskontroll), ett 36-bitars multiplikator/restregister och tre 15-bitars indexregister . Innehållet i indexregistren subtraherades från basadressen, så dessa register kallades också "dekrementeringsregister". Alla tre registren kunde användas samtidigt i en enda instruktion: bitarna i 3-bitars instruktionstaggfältet bestämde vilka indexregister som skulle användas. Innan minskningen utförs lades inte innehållet i registren till, utan kombinerades med en logisk ELLER-operation. Detta beteende fortsatte i senare "vetenskaplig arkitektur"-maskiner (som IBM 709 och IBM 7090 ), fram till IBM 7094 . I IBM 7094, som introducerades 1962, utökades antalet indexregister till sju, och endast ett kunde användas åt gången. Läget för att kombinera innehållet i register med den logiska ELLER-operationen förblev endast tillgängligt i kompatibilitetsläge [10] .
Två instruktionsformat stöddes, kallade "Typ A" och "Typ B" [11] . De flesta instruktionerna var typ B.
Typ A-instruktioner innehöll en sekvens av ett 3-bitars prefix (instruktionskod), ett 15-bitars dekrementfält, ett 3-bitars taggfält och ett 15-bitars adressfält. Typ A inkluderade villkorliga hoppinstruktioner med värden från indexregister som anges i taggfältet. Vissa av dessa instruktioner gjorde det möjligt att subtrahera minskningsfältet från indexregistervärdet. Hårdvaruimplementeringen krävde att den andra eller tredje biten av instruktionskoden inte var noll. Det var alltså möjligt att koda upp till 6 typ A-instruktioner, men det var inte förrän på IBM 709 -maskinen som den sjätte typ A-instruktionen (STR) dök upp.
Typ B-instruktioner innehöll en sekvens av en 12-bitars instruktionskod (den andra och tredje biten måste vara noll, detta var kännetecknet för typ B-instruktioner), ett 2-bitars flaggfält, 4 oanvända bitar, en 3-bitars tagg fält och adresser ett 15-bitars fält.
En egenskap hos instruktionsuppsättningen var möjligheten att modifiera delar av maskinordet. Maskinordet behandlades som en struktur med formatet av en instruktion av typ A. Det fanns instruktioner för att modifiera prefix-, minsknings- och adressfälten, även om det inte fanns någon instruktion för att modifiera taggfältet i IBM 704. Den första implementeringen av Lisp-språket använde adress- och dekrementeringsfält för att lagra huvudet och svansen på en lista . Systemfunktionerna CAR (från det engelska innehållet i adressdelen av register ) och CDR (från det engelska innehållet i den dekrementerande delen av register ) fick sina namn i enlighet med dessa fält [12] . I detta sammanhang betyder termen "register" en minnescell [13] [14] . Den välbekanta förklaringen av funktionsnamnen CAR och CDR som förkortning för innehållet i adressregistret och innehållet i dekrementregistret [15] bör betraktas som en förenkling som inte återspeglar IBM 704-arkitekturen. adressregistret, och de tre adressändringsregistren fick namnet "index" av IBM. Därför är det korrekt att dechiffrera CAR som "Innehållet i adressdelen av registret" och CDR som "Innehållet i registrets nedskärningsdel" ("innehållet i den försämrade delen av registret").
Kringutrustning som medföljer IBM 704 ingår: en modell 711 hålkortsläsare, en modell 716 alfanumerisk skrivare, en modell 721 hålkortshålslagare, fem modell 727 bandenheter och en modell 753 bandkontrollenhet, en modell 733 magnettrumma och en modell 737 minnesenhet med magnetisk kärna. Kalkylatorenheten 704 levererades med en operatörskonsol som innehöll 36 kontrollomkopplare och 36 datainmatningsbrytare (en för varje registerbit). Operatörskonsolen tillhandahöll faktiskt endast inställning av binära värden för registren med hjälp av omkopplare och visning av innehållet i registren med neonljus grupperade med 3 siffror. För att arbeta med en dator var det först nödvändigt att gå in i programmet från hålkort och inte från konsolen. Det mänskliga läsbara resultatet av programmet skickades till skrivaren. En IBM 740 katodstrålerörsutgångsenhet fanns också tillgänglig , innehållande en 21-tums vektorskärm med en fosforbeständighetstid på upp till 20 sekunder för mänsklig visning och en 7-tums kort beständighetsskärm som visar samma bild och avsedd för fotografering genom att fästa till honom med en kamera [16] .
Modell 737 magnetiska kärnminnesblock hade en kapacitet på 4096 36-bitars ord (18432 byte) och användes som RAM [17] . Bandenheten Model 727 gjorde det möjligt för över 5 miljoner sexbitars tecken att lagras på en enda bandrulle.
![]() | |
---|---|
I bibliografiska kataloger |