BESK

Från Wikipedia
Hoppa till navigering Hoppa till sök
Kontrollpanelen till BESK. I mitten upptill sitter 3 gånger 40 lampor som visar innehållet i BESKs tre register i binär form: uppifrån och ned MD, MR och AR. Därunder visas innehållet i AS och OP. Under dessa lampor sitter 3 x 5 + 2 rektangulära fönster. Bakom dessa fönster sitter nixierör som visar innehållet i AR (de två översta raderna, 2 gånger 5 fönster), AS (de tre första fönstren på tredje raden), OP (de två sista på tredje raden) och KR (de tre sista fönstren längst ned) i form av hexadecimala tal. Till höger sitter funktionsskrivaren vilken består av två katodstrålerör som kunde rita matematiska kurvor. Framför det ena katodstråleröret sitter en kamera monterad för att ta bilder av de utritade funktionerna "screenshots".

Besk eller BESK (Binär Elektronisk SekvensKalkylator) var Sveriges andra dator (efter BARK), som då kallades matematikmaskin eller elektronhjärna. BESK var en elektronisk dator baserad på radiorör. Matematikmaskinnämnden beslöt att påbörja utvecklingen av BESK år 1950[1] i början parallellt med utvecklingen av BARK och maskinen färdigställdes 1953. BESK var i drift till 1966 då den demonterades och donerades till Tekniska museet.[2]

Under några veckor var BESK den snabbaste datorn i världen,[3] och fyllde ett rum i Gamla tekniska högskolans lokaler på Drottninggatan 95 A i Stockholm. Man förde under dessa år en diskussion om det behövdes två eller tre datorer för Sveriges behov.

Bakgrund[redigera | redigera wikitext]

BESKs manöverpanel, två Williamsminnen, det magnetiska trumminnet och i bakgrunden ferritkärneminnetTekniska museet.

Ingenjörsvetenskapsakademien (IVA) hade efter andra världskriget fått kunskap om de datorer som USA utvecklat, i synnerhet ENIAC, och skickat Stig Ekelöf på rekognosceringstur till USA. Pådrivande i frågan var Försvarets Radioanstalt samt Kungliga Marinförvaltningen. Dessa såg tillämpningar inom kryptologi respektive beräkning av kulbanor.[4] Som en reaktion på Ekelöfs rapporter beslutade IVA att sända fem stipendiater till USA för att utbildas i den nya datortekniken. Detta skedde i ett fönster 1946–1947 mellan avspänningen efter andra världskriget och innan kalla krigets början.[5]

Två av stipendiaterna, Erik Stemme och Carl-Erik Fröberg hade gjort praktik hos Herman GoldstinePrinceton University där de involverades i arbetet på IAS-maskinen. Erik Stemme placerades i gruppen under Jan A. Rajchman på RCA-laboratoriet där man arbetade med selektronröret, som var den minnesteknik von Neumann föreslagit för IAS-maskinen. Stemme kallade selektronminnet "det mest avancerade elektronrör som någonsin tillverkats".[5]

I mars 1948 utvärderades stipendiaternas arbete i USA och det fanns en konsensus om att Sverige ännu inte kunde köpa några datorer från USA eftersom de kommersiella modellerna inte var färdiga. Kjellberg ansåg att Sverige borde bygga något i stil med Harvard Mark III, vilket Carl-Erik Fröberg höll med om men han ansåg att vad Sverige i längden behövde var något i stil med IAS-maskinen i Princeton. Den 23 mars lade Conny Palm backad av professorerna Hilding Faxén, Hannes Alfvén och Torbern Laurent fram ett förslag om att bygga en "elektrosiffermaskin" som hade stora likheter med Harvard Mark III. Detta förslag blev aldrig genomfört.[5]

Erik Stemme arbetade i slutet av 1940-talet på Försvarets Forskningsanstalt med Freda, en analogimaskin, för vilken han konstruerat ett trumminne efter återkomsten från stipendieresan i USA. Selektronrören han arbetat med i USA hade visat sig vara en återvändsgränd som minnesteknik för elektroniska datorer, men efter att han läst en artikel om Williamsminnen publicerad 1948 hade Stemme fått anslag från Matematikmaskinnämnden att experimentera med denna minnesteknik. År 1949 hade han fått ett Williamsrör att fungera och reste till England och diskuterade konstruktionen med Frederic Williams själv.[1]

År 1950 beslutade Matematikmaskinnämnden att inleda arbetet på BESK och år 1951 flyttade Stemme sin verksamhet från FOA till Matematikmaskinnämndens Arbetsgrupp runt Conny Palm och Stig Ekelöf och blev utan formella beslut ledare för konstruktionen av BESK.[1]

Funktionsprincip[redigera | redigera wikitext]

BESK:s utformning är en så kallad IAS-maskin. För en programmerare fungerar BESK och IAS-maskinen likadant.[1] Den ursprungliga IAS-maskinen färdigställdes vid Institute of Advanced Study, Princeton, New Jersey 1951, och var en av de tidigaste datorerna med von Neumann-arkitekturen. BESK programmerades således genom att program laddades in i arbetsminnet, där även in- och utdata kunde lagras. Ritningarna till den ursprungliga IAS-maskinen var vida spridda till skolor, företag och verksamheter som var intresserade av räknande maskiner. IAS-maskiner var inte mjukvarukompatibla, men byggde på ritningar över den ursprungliga IAS-maskinens arkitektur.

BESK hade 2400 elektronrör och 400 germaniumdioder, så den var delvis baserad på halvledarelektronik. Programmen försågs med brytpunkter så att beräkningen kunde återupptas efter att något elektronrör brunnit ut och bytts.

Instruktions- och talrepresentation[redigera | redigera wikitext]

Liksom IAS-maskinen arbetade BESK med 40-bitarsord. Varje instruktion var 20 bitar lång och ett 40-bitarsord kunde således innehålla två instruktioner.

De tal som BESKs instruktioner arbetade med var 40 bitar och kunde tolkas på många vis, men de inbyggda matematikinstruktionerna använde en representation i fixpunktsaritmetik i tvåkomplement i intervallet med bit 0 som teckenbit. Flyttal användes på BESK men först endast i form av flyttalsemulering, dvs program som efterliknade beteendet i en riktig flyttalsenhet.[6] Den 1 maj 1959 utökades emellertid BESK med flyttalsstöd i hårdvara med alla fyra räknesätten och en del stödfunktioner. Denna flyttalsenhet hade 32 bitars heltalsdel (mantissa) i normaliserad tvåkomplementsform resp med binärpunkten mellan bit 0 och 1, samt 8 bitars exponent, så att alla 40 bitarna i ett BESK-ord utnyttjades. Till skillnad från flyttalsenheten i BARK hade exponenten inget tecken.[7]

Den hade tre register som alla var 40 bitar långa: AR (ackumulatorregistret), MD (multiplikandregistret) och MR (multiplikatorregistret). Innehållet i dessa visas tydligt på de 3 gånger 40 lampor som sitter överst i mitten av BESKs kontrollpanel, samt på de senare tillagda hexadecimala nixierören, och på så vis kan operatören följa datorns arbete. Utöver detta finns AS (adressregistret) och OP (operationsregistret).[6]

Exempel på program för BESK[redigera | redigera wikitext]

Utskrift från BESKs funktionsskrivare (vilket var ett katodstrålerör) avfotograferat för nio värden på :

Detta exempel förekommer i manualen Kodning för BESK, exempel 6.10, och är ett exempel på hur man kunde rita kurvor på funktionsskrivaren (vilket var ett katodstrålerör) hexsifforna till vänster är adressen i minnet och hexsifforna till höger instruktioner (förutom delta X som är data). Funktionen som ritas är för nio olika värden på a, och a läses in från hålremsa. Tätheten på x-axeln är och det är det värdet som syns i minnescellerna 118 och 119. Adress och kommentarer fanns inte med på remsan när man matade in programmet i BESK:[6]

    adress  order  kommentar
    ------  -----  ---------
       100  01100  gräns
start  101  11A47  sätt n = 0
       102  11C39  läs in a från remsa
       103  00470  x = -1 + 2^-39
       104  11E31  dito till W(x)
       105  11E68  x till MR
       106  00018  x till F skriv ej
       107  11E63  x^2 i AR
       108  00408  x^2 -1 i MR
       109  11C63  y = a(x^2 - 1) i AR
       10A  00C18  y till F, skriv
       10B  11870  delta x i AR
       10C  11E26  nytt x
       10D  10F0A  är x > +1?
       10E  1050C  annars räkna ny punkt
       10F  0046B  skriv separat:
       110  00018  x = +1 - 2^-39
       111  00C58  y = 0
       112  10370  stopp
       113  11A46  öka n med 2
       114  1000B  n - gräns
       115  1024E  nytt a, om n < 11
       116  1012C  annars slut-STOPP
       117  00000  används ej
       118  00800  delta x
       119  00000

I exemplet används adresserna 11A, 11B, 11C, 11D, 11E och 11F som arbetsceller. Aktuellt värde på ligger i 11A, ligger i 11C och aktuellt värde på i 11E. När kommentaren anger "till W(x) betyder det att värdet lagras i 11E nästa klockcykel. Det går därför ganska lätt att se hur adressen BESK arbetar på ligger i de tre första nybblarna följt av en instruktion på två nybblar (en byte) om vad som ska göras med värdet från den adressen. Order 112 "stopp" är ekvivalent mot "tryck på en knapp", och man kunde då trycka på knappen "start med hopp" så ritas kurvan om, men trycker man på "start" ritas nästa kurva.

Williamsminnet[redigera | redigera wikitext]

Principskiss för BESKs Williamsminne som visar metoden med cirklar och punkter inuti cirklarna.

Som arbetsminne användes ursprungligen ett elektrostatiskt Williamsminne, vilket var ett brittiskt patent på det första RAM-minnet. Det var baserat på 40 Williamsrör, samt 8 reservrör. Varje Williamsrör var ett katodstrålerör som kunde lagra 512 binära bitar i form av "punkter" i olika positioner på en skärm. Totalt var minnet alltså 20 kilobit (2,5 kByte). När katodstrålen träffade en punkt uppstod en potentialbrunn kring denna, baserat på en effekt som kallas sekundäremission. Potentialbrunnen avlästes med en platta, och nollställdes genom att låta katodstråleröret rita ett streck bredvid punkten. Rören kunde behålla lagrade data i bråkdelen av en sekund, och måste därför avläsas och återskrivas periodiskt, på liknande sätt som man gör i moderna dynamiska RAM-minnen (DRAM).[8]

BESK innehöll ett eget Williamsminne som konstruerats av Gunnar Stenudd. Istället för att enbart lagra enstaka punkter upptäckte man under konstruktionen av Williamsminnet till BESK att det var bättre att låta en nolla representeras av en cirkel, och en etta av en cirkel med en punkt inuti. Elektroniken fick skärmas och kapslas i metall för att undvika elektrostatiska störningar. Utöver detta system införde Stenudd en rad med referensettor längst ned på varje minnesmatris, vilka användes för att kalibrera intensiteten i elektronstrålen mot bildrörets fosforskikt så att skillnaden i amplitud ut vid läsning kunde minimeras. Williamsrören behövde en daglig driftkontroll på 30 minuter. Williamsminnet användes de första 3–4 åren av BESKs drifttid.[8]

Ferritkärneminnet[redigera | redigera wikitext]

BESKs ferritkärneminne monterat i frontpanel.

Williamsminnet blev snabbt otillräckligt och ersattes redan 1956 med ett kärnminne konstruerat av Carl-Ivar Bergman och Gert Persson. Speciell testutrustning konstruerades för att testa ferritkärnorna, och hemmafruar med erfarenhet av att sticka anställdes för att sätta samman kärnminnet som bestod av 40 matriser med 1024 kärnor i varje, det vill säga 40 kilobit (5 kByte) och därmed dubbelt så stort som Williamsminnet. Varje matris kunde adresseras parallellt så att BESK läste eller skrev ett helt 40-bitarsord i en cykel.[9]

Trumminnet[redigera | redigera wikitext]

En viktig spin off-effekt från utvecklingen av BESK var det magnetiska trumminnet, som användes som sekundärminne i datorn. Minnet baserades på ett magnetiskt fenomen, som upptäckts av Olle Karlqvist och som kallades Karlqvist gap.

Driftstid[redigera | redigera wikitext]

BESK togs i drift 1953 och först 13 år senare, år 1966 togs BESK ur drift. BESK:s kontrollpanel[10], en dubbelenhet från Williamsminnet[11] samt trummor[12][13] ur trumminnet finns sedan 1966 på Tekniska museet i Stockholm.

Prestanda[redigera | redigera wikitext]

BESK genomförde en addition på 56 μs och en multiplikation på 350 μs.

Arbetsminnet kunde lagra 512 ord med en ordlängd om 40 bit, det vill säga 2560 byte. Instruktionslängden var 20 bit, så två instruktioner kunde lagras på varje adress i arbetsminnet.

Effektförbrukningen var 15 kVA.

Under de två första åren var körtiden i genomsnitt 5 minuter innan ett elektronrör gick sönder och behövde bytas, men hållbarheten förbättrades därefter.

Användning[redigera | redigera wikitext]

Det programbibliotek som utvecklats för BESK var inriktade på olika numeriska metoder för att lösa matematiska problem: polynomapproximation med minstakvadratmetoden, lösning av reella eller komplexa rötter till algebraiska ekvationer, lösning av linjära ekvationssystem med upp till 255 obekanta, lösning av definita linjära ekvationssystem med konjugatgradientmetoden (Stiefel-Hestenes metod), invertering av matriser med Gausselimination (Gauss-Jordans metod), lösning av överbestämda linjära ekvationssystem med minstakvadratmetoden, egenvärdesproblem så som egenvärden och egenvektorer till symmetriska matriser, fouriertransform osv. I princip sådana problem som idag löses med program som MATLAB eller GNU Octave.[6]

De första beräkningarna gjordes den 1 april 1954. BESK hanterade vingprofiler med mera för Saab 32 Lansen, väderdata för Carl-Gustaf Rossby och SMHI meteorologiska byrå, statistik för Televerket och vägprofiler för Vägverket. Under nätterna utnyttjade Försvarets radioanstalt (FRA) BESK för att knäcka krypterade radiomeddelanden (av Per-Erik Persson med flera). BESK användes också för beräkningar för den svenska kärnkraftsindustrin, till exempel Monte Carlo-simuleringar av neutronspektrum (även det av Per-Erik Persson med flera). De flesta datorberäkningar för det svenska kärnvapenprogrammet gjordes emellertid med efterföljaren SMIL. År 1957 använde Hans Riesel BESK för att upptäcka ett Mersenneprimtal bestående av 969 siffror – det största kända vid den tiden.

Programspråk[redigera | redigera wikitext]

BESK programmerades i maskinkod, via strömställare på panelen och hålremsa. Då arbetet blev tidskrävande, krångligt och repetitivt utvecklades efter hand så kallade autokodningssystem (eng autocode). Ett lågnivåspråk utvecklat av Gunnar Hellström hette Fiktiva Adresser (FA) och motsvarar våra dagars symbolisk assembler. Denna utvecklades i flera versioner med namn som FA4 och FA5. 1957 utvecklade beräkningsfirman Autocode AB vad som kallades ALFAKOD för BESK, vilket också var en symbolisk makroassembler. I dessa lågnivåspråk fanns subrutiner för exempelvis kvadratrot, och trigonometriska funktioner som sinus och cosinus.[14]

Några högre programspråk utvecklades inte för BESK, men för den besläktade datorn SMIL utvecklades en kompilator för ALGOL 60.

Efterföljare[redigera | redigera wikitext]

Lunds universitet byggde 1956 en icke programkompatibel variant av BESK, som gick under namnet SMIL (Siffermaskinen i Lund)[15] och 1957 färdigställde Saab i Linköping den icke-kompatibla varianten SARA (Saabs räkneautomat), som var dubbelt så snabb som BESK. Saab var en av de största användarna av den ursprungliga BESK. Verksamheten inom Saab utvecklades till Datasaab.

År 1956 lämnade flera nyckelpersoner, däribland Erik Stemme Matematikmaskinnämnden och började arbeta på Åtvidabergs Industrier, senare Facit AB med att tillverka Facit EDB (1958) och senare Facit EDB-3, som var programvarukompatibla med BESK. Facit EDB tillverkades i nio exemplar och var Sveriges första serietillverkade dator. Facits stordatorverksamhet lades ned 1963.

Runt 1957 fanns planer på en "superbesk" som skulle blivit en större och snabbare maskin än BESK. Primärminnet skulle vara större, 12000 ord, och exekveringen skulle snabbas upp c:a 10 gånger med hjälp av pipelining, och självständiga I/O-enheter med eget buffertminne. Man ville även snabba upp arbetet med nya program med hjälp av så kallad "autokodning" (i princip en symbolisk makroassembler), virtuellt minne och tidsdelning. Gunnar Erlandsson nämner Atlasdatorn, Stretch, Gamma 60 och Ramo Woolridge 400 som datorer man inspirerades av.[16] Ett konkret förslag att börja utveckla Superbesk framlades till Statskontoret år 1961. Superbesk beräknades kosta totalt 7 miljoner kronor att utveckla, den första fungerande varianten skulle kosta c:a 1,5 miljoner, och första året budgeterade man 600.000 kr i materialkostnader. Förslaget avslogs i statsverksproposition 1961/1.[17]

Matematiknämnden började 1960 utveckla en transistoriserad ersättare till BESK, den kom dock att slutföras 1965 av AB Datasystem för Atomforskningsinstitutets räkning och fick beteckningen TRASK. När Matematikmaskinnämnden lades ner 1963 lämnade många kring BESK den statliga anställningen.

Se även[redigera | redigera wikitext]

  • BARK – Binär Automatisk Relä-Kalkylator – Sveriges första dator.
  • SMIL – Siffermaskinen i Lund.
  • Facit EDB – Sveriges första serietillverkade dator, baserad på BESK
  • Datasaab D2 – transistorbaserad
  • TRASK – TRAnsistoriserad SekvensKalkylator

Referenser[redigera | redigera wikitext]

  1. ^ [a b c d] Hallberg, Tord Jöran (2007). ”Besk och Smil”. IT-gryning. Studentlitteratur. sid. 151–173. ISBN 978-91-44-03501-7 
  2. ^ https://digitaltmuseum.se/021026493600/manoverbord
  3. ^ ”Det svenska dataundret”. Internetmuseum / Mediabruket / Datamuseet IT-ceum. 23 maj 2017. https://www.youtube.com/watch?time_continue=1&v=sGRNycH8T-0. Läst 27 mars 2019. 
  4. ^ Hallberg, Tord Jöran (2007). ”Pionjären Ekelöf”. IT-gryning. Studentlitteratur. sid. 91-93. ISBN 978-91-44-03501-7 
  5. ^ [a b c] Hallberg, Tord Jöran (2007). ”Grabbarna i USA”. IT-gryning. Studentlitteratur. sid. 127–131. ISBN 978-91-44-03501-7 
  6. ^ [a b c d] Dahlquist, Germund (1958-05-02). Kodning för BESK (2). Stockholm: Matematikmaskinnämndens arbetsgrupp. Libris 1212080. http://user.it.uu.se/~foy/Documents/Kodning_for_BESK_2a_uppl_1958-05-02_HELA.pdf. Läst 10 november 2021 
  7. ^ Ehrling, Gunnar (1959-05-28). Inbyggda operationer med flytande komma i BESK. "PEP:s samling I:26" (2). Stockholm: Matematikmaskinnämndens arbetsgrupp 
  8. ^ [a b] Lundin, Per (2006). Att arbeta med 1950-talets matematikmaskiner: Transkript av ett vittnesseminarium vid Tekniska museet i Stockholm den 12 september 2005. Stockholm: KTH, School of Architecture and the Built Environment (ABE), Philosophy and History of Technology. sid. 10–11. ISBN 91-7178-359-8. http://kth.diva-portal.org/smash/get/diva2:10842/FULLTEXT01.pdf 
  9. ^ Lundin, Per (2006). Att arbeta med 1950-talets matematikmaskiner: Transkript av ett vittnesseminarium vid Tekniska museet i Stockholm den 12 september 2005. Stockholm: KTH, School of Architecture and the Built Environment (ABE), Philosophy and History of Technology. sid. 12. ISBN 91-7178-359-8. http://kth.diva-portal.org/smash/get/diva2:10842/FULLTEXT01.pdf 
  10. ^ ”Kontrollpanel för BESK i Tekniska museets samling”. http://www.kringla.nu/kringla/objekt?referens=S-TEK/object/TEKS0032367. Läst 29 juni 2016. 
  11. ^ ”Williamsminne från BESK i Tekniska museets samling”. http://www.kringla.nu/kringla/objekt?referens=S-TEK/object/TEKS0032368. Läst 29 juni 2016. 
  12. ^ ”Trumminne från BESK i Tekniska museets samling”. http://www.kringla.nu/kringla/objekt?referens=S-TEK/object/TEKS0032369. Läst 29 juni 2016. 
  13. ^ ”Trumminne från BESK i Tekniska museets samling”. http://www.kringla.nu/kringla/objekt?referens=S-TEK/object/TEKS0032370. Läst 29 juni 2016. 
  14. ^ Lundin, Per (2007). Martin Emanuel. red. ”Tidig programmering, Transkript av ett vittnesseminarium vid Tekniska museet i Stockholm den 16 mars 2006”. Working Papers from the Division of History of Science and Technology (Kungl. Tekniska Högskolan) TRITA-HST 2007/1: sid. 14. ISSN 1103-5277. http://kth.diva-portal.org/smash/get/diva2:12337/FULLTEXT01.pdf. Läst 15 juni 2022. 
  15. ^ ”Berättelsen om den första svenska datorn – BESK”. Arkiverad från originalet den 4 mars 2016. https://web.archive.org/web/20160304123937/http://www.idt.mdh.se/kurser/ct3620/ht03/vetenskap%20inlup%204/1_BESK-fundberg_gustavsson_final.pdf. Läst 14 augusti 2018. 
  16. ^ Erlandsson, Gunnar (31 augusti 1960). Niels Ivar Bech. red. ”Några synpunkter på projektet superbesk”. NordSAM 60 (Regnecentralen, København) 1: sid. 10.1-10.4.  Libris 1159868
  17. ^ ”Bilaga 9”. Kungl. Maj:t proposition till riksdagen angående statsverkets tillstånd och behov under budgetåret 1961/62. Stockholm: Isaac Marcus Boktryckeri Aktiebolag. 1961. sid. 77. https://filedn.com/ljdBas5OJsrLJOq6KhtBYC4/forarbeten/prop/1961/prop-1961-1.pdf. Läst 16 juni 2022 

Externa länkar[redigera | redigera wikitext]