Kallutatud kokkuvõte NSV-Liidu infotehnoloogia arengu ajaloost, episood 1

BuranAmeeriklaste arvutimuuseum on päris hästi kajastanud USA kui ühe külma sõja osapoole infotehnoloogia-alast arengut, alates “Silicon Valley” sünnist 2. Maailmasõja aegse radarisegajate tootmispiirkonnana kuni tänapäevani välja. USA infotehnoloogia-sektori üheks külma sõja aegseks saavutuseks saab nimetada tänapäevaseid lennujuhtimis-keskusi, mille ühe esimese realisatsiooni, SAGE arvuti, amtetlik otstarve oli valvata USA-d ümbritsevat õhuruumi NSV-Liidu poolt USA poole välja tulistatud tuumarakettide eest. Too süsteem osutus oma originaal-otstarbes küll mõttetuks, sest venelased panid tuumapommid orbiidile, mille korral tuumapomm sai mitu tiiru ümber maakera teha, sealhulgas kasvõi kümneid kordi üle USA territooriumi lennata, enne kui see sobival hetkel orbiidilt lahkuma suunati, kuid sellist olukorda ei osatud USA rahaasjade üle otsustajad omal ajal ette näha. Siit ka loomulik küsimus, et milline võis olla külma sõja teise osapoole, meile ihule kahjuks lähemal oleva, NSV-Liidu, infotehnoloogiline areng.

Rääkides Vene kosmoserakettidest, siis erinevate, internetiavarustest leitud, allikate põhjal paistab, et enamasti kasutati Vene kosmoserakettides analoog-arvuteid. Analoog-arvutite eripära seisneb selles, et nad baseeruvad “analoogial”: väikeses karbis lastakse kulgeda mõnel füüsikalisel protsessil, näiteks kondensaatori laadumisel, ning sarnaselt füüsika-eksperimentidega üritatakse antud protsessi mõnda parameetrit, näiteks mõnda pinget, mõõta. Kui “väikeses” karbis kulgeva füüsikalise protsessi vastav parameeter muutub _analoogselt_ arvutuste poolt kajastatava protsessi vastva parameetriga, siis saab mõõtmistulemusi kasutada arvutustulemustena. Võrdluseks: vana-aegne vändaga kassa-aparaat kvalifitseerub digitaal-arvutiks, sest see liidab-lahutab diskreetseid väärtusi, selle asemel, et mõne füüsikalise protsessi mõõtmise tulemust arvutustulemuseks lugeda. Vene rakettide hilisemad digitaal-arvutid olevat olnud füüsiliselt suured, õuna-kasti-suurusjärku, kolakad, mille arvutusjõudlus ning mälu-kogus on võrreldavad 2014. aasta mikrokontrolleri parameetritega. Erandiks on vaid ehk Буран(kodulehe all-osas asub 2014_08 seisuga Putini-vastane propaganda).

Буран olevat toiminud Prolog’i-laadse keelega, mis olevat jooksnud NSV-Liidus toodetud, kaalu ja ruumala järgi minimiseeritud, koopial (~5MHz CPU, ~800KB RAM) USA arvutustehnika klassikast, PDP-11’st. Kui päris täpne olla, siis neid arvuteid olevat Буран’is töökindluse suurendamise huvides olnud 4 tükki. Kõik 4 arvutit sama sisendi peale sama koodi jooksutamas ning riistvaralise häältelugemis-süsteemi ülesanne oli demokraatlikult vähemusse jäänud arvuti ehk enamusest töös olevatest arvutitest erineva arvutustulemuse saanud arvuti automaatne väljalülitamine, kuni töösse jääb vaid 2 arvutit, mille tulemuste lahknemise korral olevat häältelugemis-süsteem valinud juhuslikult, kumma neist 2 arvutist töösse jätab, andes sedasi 3 arvuti põrumisel vähemalt 50% tõenäosuse, et Буран’i tarkvara korrektselt jooksutatakse. Taktsignaal (“clock“) olevat kõigil 4 arvutil olnud ühine.

Буран projekti saatus on küll kurb, kuid enamuse NSV-Liidu kosmoseprogrammide tarkvara pidavat 2014_08 seisuga edasi elama DRAKON-nimelise projektina. Väidetavalt pidavat DRAKON olema kasutuses tänapäevastes Vene kosmoseprogrammides. DRAKON-projekti üheks innovatsiooniks on dokumendi salvestamise nupu/menüüvaliku elimineerimine, põhjendusega, et inimese poolt tehtavate dokumendi-redigeerimis-käskluste faili lisamine on tänapäeva arvutite jaoks piisavalt efektiivne ja kiire tegevus, et inimese aega ja tähelepanu ei ole vaja “Ctrl-S” klahvikombinatsiooni “pumpamisele” kulutada. Ettevaatusabinõuna tasub DRAKON’it kui avatud tarkvara jooksutada vaid virtuaalmasinas, sest igasugu raketitehnoloogia on poliitiliselt tundlik teema ning raketi-tarkvara peaks olema ideaalne pahvara varjav trooja-hobune.

Андрей Николаевич Терехов nimeline Peterburi akadeemik annab ülevaate NSV-Liidu aegsest infotehnoloogia ajaloost. Videoloengus kirjeldab ta detailselt 1987. aastal 1. versioonina valminud, tol ajal NSV-Liidu uusimatel tuumarakettidel rakendust leidvat, NSV-Liidu aegsete kommete kohaselt sõjasaladusena peetud, Samson-nimelist arvutit, mis olevat oma nime saanud tolle arvuti sünni ajal Peterburi võimsaima purskkaevu tiitlit kandva kunstiteose järgi. Samson-arvuti sünnilugu olevat alguse saanud olukorrast, kus Андрей Николаевич Терехов kui ülikooli laborijuhataja sai õnneliku inimesena pärast 10 (kümmet) aastat lobimist ja ootamist oma laborile Moskvast tolle aja kohta uusima ja vingeima arvuti “eraldamise loa”. (Sügaval kommunismi-ajal teatud juhtudel asju ei ostetud vaid partei “eraldas” riigi-asutustele ressursse ning ametlikult erasektori asutusi seoses nende keelustatusega üldse ei eksisteerinudki.) Õnn jäi paraku lühikeseks, sest too arvuti vajas üüratut vesijahtust ning oli õhuniiskuse suhtes üli-kapriissne: liiga kuivas õhus kärssas arvuti läbi seoses elekriliste läbilöökidega, kuid liiga niiskes õhus kärssas arvuti läbi seoses veega, mis jahutussüsteemi abil kondenseerus ning lühistusi tekitas. Kuna isegi raha analoogi, “eraldamisloa”, olemasolu ei aidanud ning selle raha analoogi eest saadav, uusim, uhkeim, arvuti ei kõlvanud, piltlikult öeldes, kassi saba allagi, siis tuli hakata mõtlema, kuidas ikkagi ülikoolile uut arvutit saada.

Esimene mõte: elimineerida tülikas ja kallis vesijahutus. Viis, kuidas vesijahutust elimineerida: vähendada arvuti elekritarvet. Viis, kuidas elekritarvet vähendada: vähendada arvutis olevat elekroonika kogust. Viis, kuidas arvutis olevat elekroonika kogust vähendada: vaadata üle arvuti arhitektuur, visates arvutist välja kõik ebaolulisena tunduv. Kuna tol ajal riistvara oli oluliselt ebatöökindlam kui tarkvara, siis riistvaraliste erindite korral, mille viskamist saab kompilaatori abil garanteeritult vältida, on võimalik nende erindite riistvaraline viskamine ära jätta, vähendades elekroonika kogust ja seega elekritarvet veelgi. Osade riistvaraliste erindite kompilaatori poolele üle viimise kõrvalmõjuks oli, et 2014. aastal Linux’i kerneli programmeerimiskeeleks olev C ei olnud töökindlalt toetatud, kuid see oli kohe algusest saadik teadlikult valitud kompromiss, mis olukorras, kus Pascal ning Ada on töökindlalt toetatud, ei olegi nii väga ekstreemne. Kombineeritult mikrokoodi optimiseerimisega olevat tulemuseks olnud olukord, kus Samson-arvuti kasutas kohati ühe ASM’i käsu täitmiseks vähemalt 6x vähem taktsignaali (“clock”) takte kui tollane IBM-PC. Kõrval-efektina võimaldades Samson-arvuti jooksutada sama koodi kiiremini kui temast mitu korda suurema taktsagedusega toimiv IBM-PC.

Oletan, et tänapäeva mõistes peaks Samson-arvuti arhitektuur võimaldama põhimõtteliselt vähemat voolutarvet kui laialt levinud ARM, sest ARM toetab C keele töökindlat jooksutamist, kuid seoses kompromisslahendusega vajab Samson-arvuti kohati põhimõtteliselt vähem elekroonikat. Kui lähtuda väitest, et just Ada on enam-vähem ainuke tööstuslikult kasutatav programmeerimiskeel, mis toetab formaalset verifitseerimist, siis võibolla see C programmeerimiskeele asendamine Ada-ga polegi nii problemaatiline kompromiss. Ada on see programmeerimiskeel, millele USA sõjatööstus pikemat aega standardiseerunud on. Kui veebitarkvara ning muu sarnane kirjutatakse nii ehk naa mõnes dünaamilises keeles, siis ei tohiks eriti vahet olla, kas operatsioonisüsteem on kirjutatud C-s või mõnes muus süsteemi-programmeerimis-keeles. Künaamiliste keelte, Ruby, PHP, JavaScript, jne., interpretaatorid saab C asemel Ada-s, minugi poolest kasvõi Pascalis, kirjutata. Kui Андрей Николаевич Терехов poolt räägitu tõele vastab, siis peaks olema nii, et Samson-arvutid, realiseerituna tänapäeva elekroonikas, võimaldavad sama voolutarve ning elektroonika koguse juures jooksutada suuremat arvu CPU-sid. Mida rohkem CPU-sid, seda rohkem saab tarkvaras ära teha. Kuigi, korrektsuse huvides möönan, et C-keele verifitseerimistöövahendite ning kompilaatorite arenduses üht-teist siiski toimub.

Eesti infotehnoloogia ajaloo lugemiseks tasub otsimootoritesse sisestada fraas “arvutustehnika erikonstrueerimisbüroo “. 2010. aasta Horisondi artikli põhjal olevat Tallinnas NSV-Liidu uusimad ja võimsaimad arvutid praktiliselt alati võtta olnud ning 2014. aastal Reformierakonna, IRL’i, sotside ning kesikute teenindamisele keskenduv Cybernetica AS olevat sündinud oma-aegsete arvuti-gurude seltskonna rakenduslikumat suunda esindavast seltskonnast. 90-ndatel teismelisena Saaremaal elanud inimesena olen 2014_08 seisukohal, et eestis toodetud arvuti Juku võis oma parameetrite poolest (~2Mhz CPU, ~64KB RAM) lääne uusimatele arvutitele kõvasti alla jääda, kuid põhjus, miks selle kasutus jäi Kuressaares kõvasti alla USA-s aset leidnud PC-revolutsiooni algusaastate arvutikasutusele, seisnes kindlalt lihtlabases kompetentsi puuduses. Inimeste IT-alased teadmised olid puudulikud ning vähemalt ühes koolis, mille nime jätan praegu meelega nimetamata, kus Jukud olemas olid, polnud töötajaskonna hulgas ainsatki inimest, kes oleks osanud primitiivsematki tarkvara kirjutada, rääkimata arvuti ehituse tundmisest. Hea, kui lõpp-kasutaja tasemel arvutit kasutada osati ning Juku-suguste arvutite korral ei tasu “kasutusmugavusest” mitte-IT-taustaga inimese silmes eriti rääkida.

Tänan lugemast. :-)

4 arvamust “Kallutatud kokkuvõte NSV-Liidu infotehnoloogia arengu ajaloost, episood 1” kohta

  1. Kui ma ennist rääkisin, miks sarnaselt ühe-tuumalistelt CPU-delt mitmetuumalistele CPU-dele üleminekuga tuli tarkvara arhitektuur üle vaadata ning kuidas Moor’i seaduse ammendudes tuleb CPU-de kiirust tõsta CPU-de arhitektuuri muutmise kaudu, alustades siinses artiklis kirjeldatud Samson-arvuti arhitektuuri matkimisest, siis mu praeguse kommentaari eesmärk on jagada 2 leidu, mis näivad viitavat oletusele, et C ja C++ stiilis vaba mälu-kasutus on, lisaks arvutiturbe klassikale, fundamentaalselt “energiamahukad”.

    viide #1: prügikoristaja-vaba, “dünaamiline”, mäluhaldus;

    viide #2: mälulekete vähendamiseks tehtavad “torutööd” ei ole tasuta;

    Praeguse kommentaari kirjutamise hetkel pole ma kumbagi neist lahendustest põhjalikumalt uurinud, kuid oletan, et viites #1 kirjeldatu võiks mõnel primitiivsemal kujul sarnaneda C/C++ lokaalsete muutujate (int, double, jne.) mäluhaldusega. Fakt on, et isegi C++ progrejad ei mõtle int-tüüpi muutujatele mälu allokeerimise/deallokeerimise peale, vaid see tehakse nende eest automaatselt ära.

  2. Saatsin artiklis mainitud Андрей Николаевич Терехов nimelisele inimesele kirja ettepanekuga muuta Samson CPU opencores.org stiilis avatud riistvara projektiks ning sain talt vastuse, kus ta väidab, et see oleks hea mõte, kui Ta vaid suudaks selleks šweitslase, Niklaus Wirth’i, kombel ressursse leida. Samas e-kirjas väidab Андрей Николаевич Терехов , et tema doktoritöö üheks läbivaatajaks oli Enn Tõugu ning et ta olevat 2014. aasta seisuga ligikaudu 30 aastat tagasi (2014-30=2004-20=1984) tundnud asutusest, mida ta inglise keeles kirjeldab kui “Estonian Institute of Cybernetics”, palju teadlasi.

    Tsitaat e-kirjast (minu poolt lisatud teksti paksuse kaudu markeeritud rõhuasetusega):
    “Nevertheless I will think about your idea because it would be interesting to show our architecture ideas, microprogramming tools based on Algol 68 (not microassembler), our compiler techniques. “

Kommenteerimine on suletud