Der hvor vi skal hen bruger man ikke byte-alignment...

Jeg har i en længere periode trættet mine omgivelser, hvilket i stort omfang vil sige min kone, med at Covid-19 ville komme til at stikke helt af efter jul og det lader mere og mere til at jeg får eftertrykkeligt ret.

Derfor begyndte jeg for nogen tid siden at gruble over hvad fa'en jeg skulle tage mig til, hvis vi i praksis er "sneet inde" under Covid19 smittetryk hele januar og februar.

Jeg er derfor begyndt på et puslespil, et rigtigt svært puslespil, nemlig: Hvordan virker en Rational 1000 computer faktisk?

Sporten kort for nye læsere: Datamuseum.dk har takket være en række små mirakler verdens eneste kørende Rational R1000/400 computer.. R1000 computeren er bygget til programmeringssproget Ada, maskinkodens instruktioner er stort set ada-primitiverne, for at kunne afvikle verdens første "Integrated Development Environment" - det er faktisk netop på grund af R1000's "Environment" at vi kalder det sådan den dag idag.

Vi vil kæmpe med næb og kløer for at holde den maskine i live, men som med alt andet hardware kan vi ikke holde den i live for evigt, så der skal naturligvis skrives en emulator mens tide er, dvs. mens vi kan sammenligne emulatoren med den kørende maskine.

Der er bare det problem, at selvom vi har rigtig meget dokumentation, altsammen indskannet, så har vi ikke nogen "Assembly Language Manual", det er faktisk ikke engang sikkert der nogen sinde har existeret en sådan.

Vi har nogle få sider der ligner en slags assembler-lister i kursus-materialet til et "Guru Course" og et dusin linier på side 269 af "Field Engineers Handbook" og så har vi en stak "ExaByte" bånd og et sæt disk-images som også ligger online.

Vi har med andre ord noget der minder om verdens største puslespil og vi ved dårligt nok hvordan en kantbrik overhovedet ville se ud, fordi R1000 opererer med felter af vilkårlig bredde, ikke i bytes, men i bits.

Jeg har tidligere omtalt det "AutoArkæolog" projekt jeg har lavet, den har nu lært en hel del om R1000 båndformaterne og vi har tre udgravninger åbne:

Vi lavede en backup-kopi da Pierre-Alain Muller var på besøg, det indeholder en 1:1 kopi af hvad diskene indeholder, med henblik på hurtig restore og disk-rekonfigurationer. I den udgravning har autoarkælogen fundet tusindevis af kodesegmenter og en stor mængde kildetekster.

Vi har også forskellige installationsbånd og arkivbånd, her er udgravet både kildetekster, kodesegmenter og dokumentation

Endelig har vi en særlig kategori af "DFS" bånd, der indeholder kode, mikrokode, diagnostik-programmer og den helt centrale kernel i Ada-systemet.

Når/hvis I sidder en mørk og stormfuld aften i Januar, allerede har læst alle XKCD og UserFriendly hæfterne 0b101 gange og stadig keder jer, er I velkomne til stikke hovedet forbi vores lille projekt og hjælpe med at pusle et par brikker på plads...

phk

Kommentarer (18)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Ole Kaas

Når særligt "lytter" skal skiftes, er det så muligt at finde nogle komponeneter til overkommelig penge som ikke lider af "planlagt forældelse"? Så det udstyr der pustes liv i kan, atter kan bringes til live igen uden de store arbevægelser i mange år fremover.

Hvordan med ledningsnet? Hvis man kaster sig over opgaven med at sy et komplet nyt harness, må det også hjælpe på motovationen, at opgaven er gjort for de næste generationer.

Iøvrigt - hvis man, som jeg, havde den opfattelse at ESD stort set kun var et problem for halvledere og andre aktive komponenter, er der link til en antikvarisk optagelse nedenfor. Den er pænt underholdende på bedste nørdet vis - så i andre i forvejen oplyste kan også få et godt grin med:

https://youtu.be/Uk5F3rQNUkU

  • 6
  • 0
#4 Poul-Henning Kamp Blogger

Jeg har en kørende radiomodtager anno 1942, så jeg nærmer mig.

Hvis jeg skal være helt ærlig ved jeg faktisk ikke hvilket årstal man skal sætte på "verdens første elektroniske dims".

Det tidlige telefonsystem brugte passive LC filtre, transformatorer og relæer. Det synes jeg ikke rigtig kvalificerer sig til "elektronik", det er mere "elektromekanik".

Den første ikke-forskning anvendelse af radiorør var i "repeatere" i telefonsystemet i USA og de blev rullet ud i 1913.

I så fald er elektronik som disciplin kun 107 år gammel totalt set.

  • 5
  • 0
#7 Martin Hansen

I.f.t. den elektronik der anvendes i computere (hvis vi fraser dem baseret på radiorør) dukkede vel først op i slut-40'erne, transistorer o.s.v. så der er vel max 70 års erfaring med komponenter der bare begynder at minde om hvad man kan finde selv i gamle computere. Og indenfor komponenttyperne er der vel en kæmpe udvikling. Transistorer var oprindeligt af germanium men gik så over til silicium og med flere typer af transistorer udenfor CMOS. Udviklingen er meget synlig med det blotte øje - bare for 20 år siden var næsten alle de klassiske kondensatorer på et computer-bundkort egentlige elektrolytter (og især nogle årgange, aldeles skrøbelige), mens de fleste vel efterhånden er "solid state" caps, som vel antageligt holder længere - men hvor meget? Derudover er der langt større brug af SMD (hvilken type kondensatorer anvendes her?!). Så der er vel kun 50-70 års

For integrerede kredsløb er erfaringsgrundlet endnu kortere - skal vi vel tilbage til 60'erne for de første mainstream, men også her er der sket en enorm udvikling i teknologier.

Intuitivt tænker man på computerkomponenter som ekstremt stable. Men når man tænker nærmere efter virker det uforståeligt... tænk en moderne IC på f.eks. 14nm eller mindre. Der må da - selv uden brug - opstå kemiske forandringer i plastik, for ikke at tale om de stokatiske ændringer i siliciumen. Tingene er nu så små, at der skal ikke skydes mange atomer før f.eks. en transistor pludselig er ødelagt. Jeg forestiller mig de gamle komponenter på sin vis har været mere robuste på det punkt. En af de opringelige DRAM celler har jo været kæmpe kondensatorer med en ordentlig snaps af elektroner (i opladet tilstand) - der sker ikke pludselig et bit flip fra 1 til 0. Sådan er det ikke med moderne komponenter, hvor f.eks. kosmisk stråling kan flippe en bit.

  • 2
  • 0
#8 Poul-Henning Kamp Blogger

Tingene er nu så små, at der skal ikke skydes mange atomer før f.eks. en transistor pludselig er ødelagt.

Ordet du leder efter er "elektromigration" og ja, det er et seriøst problem, Intel havde f.eks en serie CPU'er (C2000?) der alle tabte et clocksignal på den måde.

R1000 er bygget i tidlig firser-stil, bageplade-store printkort med 74x kredse og PAL'er.

Vi skal være meget heldige hvis en maskine af den komplexitet stadig virker når den bliver 100år.

  • 4
  • 0
#9 Martin Hansen

Tak for info med R1000 o.s.v. Jeg kendte godt fænomenet med electromigration, men det er jo navnlig når kredsløbet er tændt. Men jeg tænkte sådan set at der vel også må være aging knyttet bare til at tiden går. Plastikken/epoxye der degenererer/smelter/deformerer eller selve silicium'en får skader p.g.a. tilfældige bevægelser af atomerne, kosmisk stråling o.s.v. Med så mange mia. transistorer i en chip og uden egentlig redundans (pånær cache-lagre m.m. som ofte har ECC) så er det næsten et mirakel en computer fungerer så længe. MTBF på hver transistor må være ekstremt lang, men det siger jo intet om fænomener relateret til slitage/tidens tand.

  • 2
  • 0
#10 Poul-Henning Kamp Blogger

så er det næsten et mirakel en computer fungerer så længe.

Helt enig: En 3GHz-klasse CPU der kører døgnet rundt når igennem ca. 100.000.000.000.000.000 clock-cycles på et år.

Den gang jeg startede i branchen lagde jeg mærke til at datablade havde ting som "udetekterede fejl: Mindre end 1e-12" og tænkte "Ok, glem alt om det".

Idag har vi diskdrev hvor det svarer til at få en læsefejl hver gang man læser hele disken fra ende til anden.

  • 5
  • 0
#11 Ditlev Petersen

OT: Når folk fantaserer om, at vi skal byygge et "generationsskib" for at kunne sprede arten til andre solsystemer, så vil det stille ret usædvanlige krav til maskineriet og den løbende vedligeholdelse. Vi kan ikke engang lave en vandhane, der kan fungere i mere end hundrede år.

  • 6
  • 0
#12 Søren Koch

Yep. Skulle man lave noget i den stil ville det kræve et fuldt produktionsapparat med, dvs ALT (inklusiv produktions-system) skulle kunne laves ombord

Dvs der skulle også en fuld IC-produktionslinie m.m. med for ikke at snakke om et fuldt petrokemisk produktionssystem for at lave alle de underlige kemikalier mm der bruges til produktion af diverse forburgs og fremstilligs ting.

Jo mere man tænker på den slags jo mere utopisk synes ideen om et 'generationskib' at blive....

  • 3
  • 0
#13 Poul-Henning Kamp Blogger

Jo mere man tænker på den slags jo mere utopisk synes ideen om et 'generationskib' at blive....

Så bare vent til du regner på ablationsraten for alle tænkelige udvendige overflade-materialer: For alle realistiske rejser vil dit generationsskib være fordampet inden du når nogen relevante steder hen.

Vi er født med ét, og kun ét, rumskib der kan holde os i live og det er på tide at vi begynder at passer rigtig godt på det.

  • 15
  • 0
#15 Maciej Szeliga

Interessant, som diskussionen kom til at dreje sig meget lidt om R1000 :-)

Maskinen er ret unik og sproget er udviklet til US DoD så mængden af dansktalende eksperter er forholdsvis begrænset, jeg er ikke engang sikker på om ADA blev brugt af andre NATO lande, det skulle vist være ret fantastisk sprog af det jeg har hørt - på den anden side så er kirkegården med afdøde programmeringssprog fyldt af fantastiske sprog som aldrig nåede WinTel og derfor uddøde.

For at bore i R1000, der må da være "nogen" indikation hvor mange bits som bruges, hvordan skulle maskinen ellers finde ud af det?

  • 0
  • 0
#17 Per Dalgas Jakobsen

jeg er ikke engang sikker på om ADA blev brugt af andre NATO lande, det skulle vist være ret fantastisk sprog af det jeg har hørt - på den anden side så er kirkegården med afdøde programmeringssprog fyldt af fantastiske sprog som aldrig nåede WinTel og derfor uddøde.

Sproget skrives: Ada (et navn efter Lady Ada Lovelace, ikke en forkortelse).

Sproget er ikke uddødt: men der er bestemt alt for få der bruger det og endnu færre der reklamerer med at de gør det. Det er f.eks. nok ikke så kendt at NVIDIA er ved at porte fra C til Ada/SPARK for nogle af deres produkter.

Ja, det er et fantastisk general purpose sprog.

Og R1000'eren er et fantastisk IDE. Tre hurtige om IDE'et:

  • Kodesnipets i den kontekst-sensitive hjælp kan selvfølgelig eksekveres in-place.

  • Har man behov for at prøve et metode-kald, gør man det bare - Kommandolinjen er "ikke andet" end direkte eksekvering af Ada-snippets.

  • Code-completion er ikke bare en one-step-at-a-time, f.eks. kunne indtastningen "c.d.v(m);" efter tryk på "complete"-knappen blive til "Container.Decode.Visit (My_Visitor);" (forudsat ingen tvetydigheder findes). Endnu et sted hvor Ada's stærke typer kommer til sin ret: det gør det nemmere at indsnævre hvilke parametre der kan være tale om.

Og det er 30 år siden man kunne det...

  • 5
  • 1
#18 Ditlev Petersen

på den anden side så er kirkegården med afdøde programmeringssprog fyldt af fantastiske sprog som aldrig nåede WinTel og derfor uddøde.

Mange af dem fungerede vel også som inspiration for andre og mere fantastiske sprog. Men der er sikkert mange udviklere, der undrer sig dybt over, hvorfor bestemte (gyselige) sprog klarede sig bedre? Ofte vil sprog, der tillader at spytte middelmådig kode ud tjept, foretrækkes frem for mere elegante sprog. Det hævner sig så mange år senere. Noget vigtigt er, at det er nemt at lære, og det vil sige det skal gøre nogle kendte ting på en genkendelig måde. Det skal ikke opfinde noget helt nyt, som kræver modifikation af rygmarvsreflekserne.

Der er måske en tendens til at ville skabe det perfekte sprog, perfekt til alle opgaver (det er svært - Pl/1 og Ada er rimelige bud, C og C++ er nok for low-level til ... "quick and dirty-udvikling" men glimrende, når tingene skal gøres tæt på maskinen). Måden man skrev programmer på i 60'erne var meget anderledes end i 70'erne (og sådan fortsætter det), det påvirker sprogets syntaks, compilerne, et evt. IDE - bare ikke de udviklere, der er vokset op i forrige årti (jeg er 58, så jeg begynder at kunne se det). Ikke før de får et lille puf. Selv om man får et moderne IDE, så tager det tid at lære, en periode hvor det er som at vandre gennem et kar med sirup. Så bruger man hellere en banal editor af stor ælde - man kender den, de fif der er. Og så lever man med, at den crasher af og til (det gør det nye IDE også, mere "af" end "til").

  • 0
  • 0
Log ind eller Opret konto for at kommentere