BARK (Binär Automatisk Relä-Kalkylator) var Sveriges första dator och stod klar februari 1950 till en kostnad av 400 000 kronor. BARK var en 32-bitarsdator[1] och utförde en addition på 150 ms och en multiplikation på 250 ms. Den hade ett minne på 50 register och 100 konstanter. I en senare utbyggnad fördubblades minnet. BARK var uppbyggd av standardtelefonreläer. BARK invigdes den 28 april 1950, var i drift till juli 1955 och demonterades sedan.[2]

Tekn. dr Conny Palm framför den av honom konstruerade matematikmaskinen BARK, några månader före hans död 1951.

BARK utvecklades av Matematikmaskinnämnden parallellt med BESK.

Förarbeten redigera

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.[3] 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.[4]

Två av stipendiaterna, Göran Kjellberg och Gösta Neovius hade gjort praktik hos Howard Aiken på The Computation Laboratory vid Harvard University under 1947. På Harvard hade man färdigställt Harvard Mark I och var i full färd med att färdigställa Harvard Mark II, båda reläbaserade digitala datorer, i Sverige vid denna tid kallade "siffermaskiner". Kjellberg arbetade med konstruktionsdetaljer för Harvard Mark III som skulle bli en elektronisk (ej reläbaserad) efterföljare färdigställd 1949 och var en av de första svenskar som lärde sig boolesk algebra. Neovius var med och designade Mark III:s kretsar för addition och multiplikation och fick vid hemfärden till Sverige viss materiel i gåva av Aiken.[4][5][6]

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.[4]

Starten för BARK redigera

 
Edy Velander var den som drev igenom bygget av BARK.

När stipendiaterna återkommit till Sverige år 1948 försökte FRA och Marinen att köpa en dator från USA, men detta visade sig så omöjligt eftersom USA infört exportembargo på grund av det förvärrade världsläget i och med berlinblockaden. Den 16 december konstaterade Sigurd Lagerman i den då konstituerade Matematikmaskinnämndens första möte att dörren till inköp från USA var stängd. Han berättade också att Howard Aiken på direkt fråga sagt att han trodde att Gösta Neovius var fullt kapabel att konstruera en svensk dator. Edy Velander ansåg att Sverige borde utse Conny Palm att bygga en relämaskin i samarbete med Televerket vilket också beslutades. Palm hade skissat på en sådan maskin redan 1947.[4]

BARK hette ursprungligen relämaskinprojektet. Palm trodde att arbetet skulle ta 8 månader och kosta cirka 163 500 kronor, och han tillsattes som chef för Matematikmaskinnämndens Arbetsgrupp, MNA. Efter att planerna för BARK klubbats rekryterades stipendiaterna Gösta Neovius, Arne Lindberger och Göran Kjellberg för att arbeta med konstruktionen. Gösta Neovius blev chefskonstruktör och beskriver konstruktionen så att "vi utgick delvis från Palms idékoncept". För det praktiska arbetet med reläerna rekryterades Olle Karlqvist, Björn Lind och Harry Freese. Carl-Erik Fröberg, Per Petersson och Madeline Wallmark bidrog också på olika vis till konstruktionen. Maskinen byggdes i en ritsal på gamla KTH på Drottninggatan 95A i Stockholm.[2][1]

Användningsområden redigera

Det huvudsakliga användningsområdet för BARK var beräkning av projektilbanor och skjuttabeller för Kungliga Marinförvaltningen vilket programmerades och administrerades av Arne Lindberger, tillsammans med banberäkningar för Robotvapenbyrån och Bofors utjorde dessa huvuddelen av alla BARKs körtimmar.[7]

Utöver det gjordes kryptologiska beräkningar för Försvarets Radioanstalt under ledning av Stig Comét under tio dagar år 1950. FRA:s körningar på BARK blev inte framgångsrika och huvuddelen av det kryptologiska arbetet inriktades på efterföljaren BESK.[2][5][8] Maskinen användes även för geodesiproblem.[6]

Konstruktionen redigera

Konstruktionen av BARK var uppskissad av Palm som bland annat bestämt att maskinen skulle programmeras med propptavlor med 12000 jackar (i praktiken en modifierad telefonväxel) i likhet med ENIAC, och med utdata på en teleprinter. Ett separat stativ hade 1100 rattar för inställning av konstanter för beräkningarna. Neovius konstruerade den egentliga aritmetisk logiska enheten med utgångspunkt från ritningar för Harvard Mark II. Han konstruerade även styrkretsar för in- och utmatning på teleprinter och hålremsa.[2]

När maskinen var klar bestod den av 5200 reläer monterade i 33 stativ (rack). Den kunde addera två tal på 0,15 sekunder, och multiplicera två tal på 0,25 sekunder.

Datorarkitektur redigera

 
I harvardarkitekturen på BARK var instruktionsminnet 840 ord, och dataminnet delat i 100 konstanter och 50 reläregister.

BARK var en utpräglad harvardarkitektur med program och data i separata minnen. Detta är föga förvånande med tanke på att maskinen byggdes med Harvard Mark II som förebild, och Harvardmaskinerna har gett namn till harvardarkitekturen.

Talrepresentation redigera

Talrepresentationen var binär och använde 32-bitars flyttalsaritmetik med 7 bitar exponent (6 bitar plus tecken) och 25 bitar mantissa (24 bitar plus tecken). Formatet på flyttalen skiljer sig från senare tiders standardiserade flyttal, och är som följer:[2][9]

  Exponent ( )   Mantissa ( )
Bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Motsvarande decimala tal är:

 

Eftersom det största tal som kan representeras i 6 bitar är 63 och det största tal som kan representeras i 24 bitar är   betyder att det största positiva tal som kan representeras är:

 

och det minsta positiva tal över noll som kan representeras är:

 

spannet är detsamma med omvänt tecken för negativa tal. Precisionen motsvarar cirka 7 decimala siffror.[2]

Minnesrymd redigera

 
Översikt av BARKs arkitektur med de tre bussarna A, B och C, aritmetisk enhet, rörliga (relä) register, fasta (konstant) register och specialregister för in- och utmatning. Det som betecknas som styrorgan i bilden är själva programminnet som innehöll det program som kördes.

Maskinens minne var uppdelat enligt följande:[1][2]

  • Reläregistret även kallat det rörliga register (RAM) hade plats för 50 ord, senare utbyggt till 100 ord. Dessa var anslutna till A-, B- och C-bussen och kunde alltså användas för beräkningar med två variabler som tilldelas en tredje variabel.
  • Konstantminnet även kallat fasta register (ROM) hade plats för 100 ord, senare utbyggt till 200 ord, som matades in på paneler med vridreglage med åtta positioner så att 10 siffror i oktal form kunde matas in. Eftersom varje oktalt tal motsvarar 3 bitar blir detta alltså 3 x 10 = 30 bitar. För varje ord fanns dessutom ett vridreglage med 4 positioner för att ställa in tecken på exponent och mantissa vilket satte värdet på det sista två bitarna och formade ett 32-bitarstal. Dessa register var anslutna till A-bussen och vid en beräkning kunde alltså ena delen av exempelvis en överföring (transfer) eller addition vara en konstant.
  • Specialregister var i princip minnesmappad I/O och bestod av register som kunde mata in och ut tecken på hålremsa eller teleprinter. Specialregistren var anslutna till B- och C-bussen och kunde alltså utgöra ena delen av en artitmetisk operation in- eller ut.
  • Programminnet även kallat styrorgan hade plats för 840 instruktioner, senare utbyggt till 1200 instruktioner, vilka kopplades upp med proppar i en propptavla. Villkorliga hopp i programmet kopplades upp på en separat panel.

Instruktionsuppsättning redigera

Instruktionerna i BARK var till skillnad från databussarna inte 32 bitar utan hårt definierade genom de sladdar som kopplades upp på kontrollpanelen. Det var alltså inte möjligt att köra program från externa lagringsmedia. Instruktionerna hade följande format:[1][2]

n A op B C D
Nummer (läge) för instruktionen Pekare till invärde A T Transfer
A Addition
M Multiplikation
E Entalsoperation
Pekare till invärde B Pekare till utvärde C Nummer för nästa instruktion

Intruktionerna utfördes normal i linjär sekvens från instruktion n till n+1, men kunde även utföra hopp. Hoppen kunde bara utföras från jämna till udda instruktioner, vilket ledde till att man ibland fick lägga till nonsensinstruktioner i programmet. Villkorliga hopp kunde också utföras med hjälp av så kallade "väljare" vilket var reläer som utförde en logisk jämförelseoperation med utdata från den aritmetiska enheten.[1]

Se även redigera

Externa länkar redigera

Referenser redigera

  1. ^ [a b c d e] Kjellberg, Göran; Neovius, Gösta (1951-01). ”The BARK, A Swedish General Purpose Relay Computer”. Mathematical Tables and Other Aids to Computation V (33): sid. 29-34. http://www.treinno.se/pers/okq/bark_spec.pdf. Läst 3 mars 2020. 
  2. ^ [a b c d e f g h] Hallberg, Tord Jöran (2007). ”Bark”. IT-gryning. Studentlitteratur. sid. 135-148. ISBN 978-91-44-03501-7 
  3. ^ Hallberg, Tord Jöran (2007). ”Pionjären Ekelöf”. IT-gryning. Studentlitteratur. sid. 91-93. ISBN 978-91-44-03501-7 
  4. ^ [a b c d] Hallberg, Tord Jöran (2007). ”Grabbarna i USA”. IT-gryning. Studentlitteratur. sid. 127-131. ISBN 978-91-44-03501-7 
  5. ^ [a b] Rittsel, Pär (8 september 2010). ”Barks byggare berättar”. IDG.se (IDG). https://www.idg.se/2.10186/1.217249/barks-byggare-berattar. Läst 7 mars 2020. 
  6. ^ [a b] Sjöblom, Gustav (5 september 2008). Göran Kjellberg - En intervju av Gustav Sjöblom. Teknik och samhälle, Chalmers tekniska högskola. https://wwwtekniskamusee.cdn.triggerfish.cloud/uploads/2017/08/132-goran-kjellberg.pdf. Läst 7 mars 2020. 
  7. ^ Kaijser, Arne; Gustav Sjöblom, Johan Gribbe, Per Lundin (2024). ”Bark och Besk - datorerna där allting började”. Maktens maskiner. Lund: Arkiv förlag. sid. 34. Libris q8wpc6pznhbd5tqb. ISBN 9789179243876. https://arkiv.nu/wp-content/uploads/9789179243883.pdf. Läst 14 april 2024 
  8. ^ Rittsel, Pär (28 mars 2006). ”Hemligt FRA visar historien”. IDG.se. https://www.idg.se/2.10186/1.9946/hemligt-fra-visar-historien. Läst 7 mars 2020. 
  9. ^ Neovius, Gösta (1949). ”Den aritmetiska enheten i en matematikmaskin”. Svenska Fysikerförbundets publikation Kosmos (Svenska Fysikerförbundet): sid. 47-67. ISSN 0368-6213. Läst 30 april 2021.  Libris 8262138