Ternair getalsysteem. Ternaire computer: Ja, nee, misschien: Logica

Ternair getalsysteem- positioneel getalsysteem met een geheel getalgrondtal gelijk aan 3.

Het is verkrijgbaar in twee versies: asymmetrisch en symmetrisch.

In het asymmetrische ternaire getalsysteem worden de cijfers (0,1,2) het vaakst gebruikt, en in het symmetrische ternaire getallenstelsel de tekens (-,0,+), (-1,0,+1), (1 ,0,1), ( 1,0,1), (i,0,1), (N,O,P), (N,Z,P) en getallen (2,0,1), (7, 0,1). Ternaire cijfers kunnen worden aangegeven met drie willekeurige tekens (A,B,C), maar daarnaast moet u de prioriteit van de tekens aangeven, bijvoorbeeld C>B, B>A.

Het is raadzaam om getallen in het ternair symmetrische systeem aan te duiden met hun tekens, d.w.z. In plaats van 1, 0, -1 schrijf je +, 0, -. Bijvoorbeeld, decimale getallen 13, 7, 6, -6 in een dergelijke ternaire notatie zal zijn:

13 = +++
7 = +-+
b = +-0
-6 = -+0

Het veranderen van het teken van een getal in een symmetrische code is gelijk aan een cijferinversie, d.w.z. waarbij alle “+” worden vervangen door “-” en alle “-” door “+”.

In tegenstelling tot binair is dit rekenkunde met teken, waarbij het teken van een getal het cijfer is van het meest significante (niet-nul) cijfer. Problemen met ondertekende nummers die geen binaire code Er bestaat eenvoudigweg geen perfecte oplossing in de ternaire symmetrische code, wat de fundamentele voordelen ervan verklaart.

In de digitale technologie wordt het basis-b-nummersysteem geïmplementeerd door registers die bestaan ​​uit sets flip-flops, die elk verschillende toestanden kunnen aannemen die de cijfers van een getal coderen. In dit geval is de economie van het getalsysteem van bijzonder belang: het vermogen om een ​​zo groot mogelijk bereik aan getallen weer te geven met zo weinig mogelijk totale toestanden.

Als het totale aantal toestanden gelijk is aan m, dan is het aantal triggers gelijk aan m/b, en het aantal getallen dat ze vertegenwoordigen is respectievelijk b^(m/b). Als functie van b bereikt deze uitdrukking een maximum bij b gelijk aan e = 2,718281828…. Voor gehele waarden van b wordt het maximum bereikt voor b = 3. Het meest economische is dus het ternaire getalsysteem (gebruikt in ternaire computers), gevolgd door het binaire getalsysteem (traditioneel gebruikt in de meest voorkomende computers) en het quaternair getalsysteem.

Een beetje filosofie

Binaire logica, die de basis vormt van het moderne computertechnologie, wordt tegenwoordig gezien als een soort axioma waarvan de waarheid niet in twijfel wordt getrokken. Het coderen van informatie met behulp van de aan- of afwezigheid van een signaal lijkt inderdaad het meest effectief op een passende manier implementatie van digitale systemen. Maar is dit waar?

De regels voor de werking van computers worden bepaald door mensen. Binaire logica gebruiken in computerproces- geen natuurwet, maar een bewuste beslissing die iemand ooit heeft genomen omdat het computerontwerpers, programmeurs en gebruikers tevreden stelde bij het oplossen van hun problemen.

Waarom werd binaire logica de basis? moderne computers? Het antwoord lijkt voor de hand liggend. Historisch gezien berustte de wiskundige logica op het idee van ‘er is geen derde optie’, waardoor het proces van logische gevolgtrekking tot binaire beslissingen werd beperkt.

Dit dogma van de klassieke logica dankt zijn geboorte aan het principe van de bivalentie van logische oordelen, geïntroduceerd door de felle stoïcijnse Chrysippus en ondersteund door het gezag van Aristoteles. “De basis van de dialectiek is de stelling dat elke uitspraak (wat een “axioma” wordt genoemd) waar of onwaar is”, zei Cicero.

De eenvoud van bivalentie beschrijft de logische realiteit van het leven eigenlijk heel goed. Het is de moeite waard om semaforen, oversteekplaatsen voor voetgangers en aan-uit-tuimelschakelaars te onthouden. Binair regeert het dagelijks leven vrij goed.

Laten we twee objecten A en B wegen op een gewone weegschaal. Met de weegschaal kunnen we gemakkelijk twee tegenpolen bepalen: gewicht A > B en gewicht A
Logica het dagelijks leven het is moeilijk om in een zwart-witbeeld van bivalentie te passen - veel denkers beseften dit. Als gevolg hiervan verschenen niet-klassieke logici, die de wet van het uitgesloten midden achter zich lieten. Een van de eerste opties meerwaardige logica in de jaren twintig van de vorige eeuw werd het ontwikkeld door de Poolse wetenschapper Jan Łukasiewicz. In zijn logica met drie waarden verscheen naast de polaire ‘ja’ en ‘nee’ de betekenis ‘mogelijk’. De logische uitspraken met drie waarden van Lukasiewicz lieten een gebrek aan consistentie toe en werden modaal genoemd. Herinner je je het overleg in het sprookje over Pinokkio nog? "De kans is groter dat de patiënt nog leeft dan dood." ‘Liever levend’ is de modale term logische uitspraak.


Lewis Carroll (Charles Lutwidge Dodgson)
In het binaire systeem zijn niet-negatieve of niet-positieve getallen van nature representeerbaar, en aangezien beide nodig zijn, moet men zijn toevlucht nemen tot de twee-complement of inverse code of een speciaal bit van het teken van het getal introduceren ("directe code") . Vergeleken met de ternaire code, waarmee je het teken (+, 0, -) kunt invoeren op het niveau van het trit-element, waardoor alle verdere constructies radicaal worden vereenvoudigd, zijn binaire constructies in principe inferieur, met uitzondering misschien , van de binair-ternaire, die trits in paren bits vertegenwoordigt. Feit is dat getallen (zoals al het andere in de wereld) drievoudig van aard zijn. Positief is immers niet niet-negatief (in tegenstelling tot hoe het in de Engelse literatuur wordt gevonden) en negatief is niet niet-positief, omdat er drie fundamentele klassen van getallen zijn: positief, negatief en nul. Dit is logica met drie waarden (niet Chrysippo-Booleaanse): positief is anti-negatief, en negatief is anti-positief, en complementair aan positief is negatief of nul, enz. Dit is de logica van hekjes, en hoewel er twee zijn (plus, min), zijn er nog steeds drie betekenissen: +, 0, -.

In de Russische historische en wiskundige literatuur staat het ‘gewichtsprobleem’ bekend als het ‘Bachet-Mendeleev-probleem’, genoemd naar de 17e-eeuwse Franse wiskundige. Bachet de Meziriak, die dit probleem plaatste in zijn ‘Verzameling van aangename en onderhoudende problemen’ (1612) en de briljante Russische scheikundige Dmitri Ivanovitsj Mendelejev, die in dit probleem geïnteresseerd was als directeur van de Grote Kamer van Maten en Maten van Rusland.

De essentie van het “Bachet-Mendelejev-probleem” is het volgende: met welk systeem van gewichten, als je ze één voor één hebt, kunnen alle mogelijke lasten Q worden gewogen van 0 tot de maximale last Qmax, zodat de waarde van de maximale last Qmax zou de grootste zijn van alle mogelijke variaties? Er zijn twee bekende oplossingen voor dit probleem: (1) wanneer de gewichten op een vrije weegschaal mogen worden geplaatst; (2) wanneer gewichten op beide weegschalen mogen worden geplaatst. In het eerste geval" optimaal systeem gewichten” wordt gereduceerd tot het binaire getalsysteem: 1, 2, 4, 8, 16, ..., en het “optimale” algoritme of de meetmethode die verschijnt geeft aanleiding tot het binaire getalsysteem dat ten grondslag ligt aan moderne computers. In het tweede geval is het beste het ternaire systeem van gewichten: 1, 3, 9, 27, 81,…

Chronologie


Voordelen van ternaire computers

Ternaire computers (computers) hebben een aantal voordelen ten opzichte van binaire computers (computers).

Bij het optellen van trits in ternaire half-adders en ternaire optellers is het aantal optellingen ongeveer 1,5 keer minder dan bij het optellen van bits in binaire half-adders en binaire optellers, en daarom is de optellingssnelheid ongeveer 1,5 keer groter.

Bij gebruik van een symmetrisch ternair getalsysteem worden zowel optellen als aftrekken uitgevoerd in dezelfde halve optellers-half-aftrekkers met twee argumenten (twee operands) of volledige optellers-aftrekkers met drie argumenten (drie operands), zonder negatieve getallen om te zetten in extra codes, dat wil zeggen iets sneller dan bij binaire half-optellers en bij binaire volledige optellers met conversie van negatieve getallen in twee-complementcodes.

De informatie waarmee een computer werkt, wordt op de een of andere manier opgesplitst in enen en nullen: afbeeldingen, muziek, teksten, programma-algoritmen. Alles is eenvoudig en duidelijk: "aan" - "uit", "er is een signaal" - "geen signaal". Ofwel ‘waar’ of ‘onwaar’ is binaire logica. Ondertussen lanceerde de Sovjet-Unie in 1961, het jaar van de eerste bemande ruimtevlucht, de productie van ongebruikelijke computers, die niet binair werkte, maar ternaire logica

‘Extra’ variabele De dubbelzinnigheid van de logica gaat terug tot de grondlegger van de eerste volledige logische theorie – Aristoteles, die tussen affirmatie en anti-assertie een derde ‘incidenteel’ plaatste: ‘misschien wel, misschien niet’. In de daaropvolgende ontwikkeling werd de logica vereenvoudigd door deze derde toestand te verlaten, en in deze vorm bleek deze ongewoon vasthoudend te zijn, ondanks haar inconsistentie met de vage realiteit die niet altijd uiteenvalt in ‘ja’ en ‘nee’. In verschillende eeuwen probeerden Occam, Leibniz, Hegel, Carroll en enkele andere denkers de logica in haar uiteindelijke vorm te ‘uitbreiden’; de driewaardige logica werd aan het begin van de 20e eeuw ontwikkeld door de Poolse wetenschapper Jan Łukasiewicz.


“Setun” Ondanks het feit dat het team van Brusentsov vervolgens het tweede model “Setun-70” ontwikkelde, en in de VS in de jaren zeventig werd gewerkt aan een soortgelijke Ternac-computer, bleef “Setun” de enige ternaire computer in de geschiedenis die massaal werd gebruikt. geproduceerd.

In principe had het ternaire getallenstelsel niet minder kans dan het binaire getallenstelsel. Wie weet welke ontwikkelingsweg de technische vooruitgang zou hebben gevolgd als de ‘eigenschappen’ hadden gezegevierd over de ‘bytes’. Hoe zouden ze eruitzien? moderne smartphones of GPS-navigatiesystemen, hoe zou de waarde ‘misschien’ hun prestaties beïnvloeden? Het is moeilijk te zeggen. We zullen dit probleem analyseren en u de gelegenheid geven uw eigen conclusies te trekken.

Fowler's auto

Om eerlijk te zijn moet meteen worden opgemerkt: de eerste computer met een ternair getalsysteem, lang vóór de Sovjet-ontwerpers, werd in 1840 gebouwd door de Engelse autodidactische uitvinder Thomas Fowler. Zijn auto was mechanisch en volledig van hout.

Thomas Fowler werkte als bankmedewerker en moest vanwege zijn werk complexe berekeningen maken. Om zijn werk gemakkelijker en sneller te maken, maakte hij tabellen voor het tellen in de machten van twee en drie, en publiceerde deze tabellen later in de vorm van een brochure.

Toen ging hij verder en besloot hij berekeningen volledig te automatiseren met behulp van tabellen, en bouwde hij een rekenmachine. Het Engelse patentsysteem van die tijd was onvolmaakt. Fowlers vorige uitvinding (de thermosyfon voor stoomverwarmingssystemen) werd met minimale wijzigingen gekopieerd en gepatenteerd door vele gewetenloze "uitvinders", dus uit angst dat zijn idee opnieuw zou kunnen worden gestolen, besloot hij om een enkel exemplaar van de machine en - gemaakt van hout. Omdat hout een onbetrouwbaar materiaal is, moest Fowler, om voldoende nauwkeurigheid van de berekeningen te garanderen, de machine erg omvangrijk maken, ongeveer 2 meter lang. Echter, zoals de uitvinder zelf in het begeleidende briefje schreef, stuurde hij de auto naar Londen koninklijk college, “Als het van metaal zou kunnen zijn, zou het niet groter zijn dan een typemachine.”

De machine van Fowler was eenvoudig, effectief en maakte gebruik van een innovatieve aanpak: in plaats van met het decimale getalsysteem werkte het met "drieklanken", dat wil zeggen machten van drie. Helaas bleef de opmerkelijke uitvinding onopgemerkt, het origineel van de machine is tot op de dag van vandaag niet bewaard gebleven en de structuur ervan is alleen bekend uit het werk van Fowler Jr., die een biografie van zijn vader schreef.

EerstSovjet-ervaringen

OVER praktisch gebruik Het ternaire getallensysteem werd meer dan honderd jaar vergeten. De volgende die op dit idee terugkeerde waren ingenieurs van de afdeling Computationele Wiskunde van de Faculteit Mechanica en Wiskunde van de Staatsuniversiteit van Moskou.

Het begon allemaal in 1954: de afdeling zou een elektronische M-2-computer krijgen, maar dat lukte niet. En ze wachtten op de auto en bereidden zich voor om hem te installeren en af ​​te stellen, er waren bepaalde verwachtingen en plannen aan verbonden. En iemand stelde voor: laten we onze eigen bouwen.

Ze namen het en bouwden het, gelukkig waren er in die tijd enkele theoretische ontwikkelingen aan de Staatsuniversiteit van Moskou. Nikolai Petrovich Brusentsov werd benoemd tot hoofd van de groep die de machine ontwierp en vervaardigde. De taak was deze: de auto uiterst eenvoudig en goedkoop maken (omdat het project geen speciale financiering had). In eerste instantie wilden ze een binaire computer maken, maar later – juist om redenen van zuinigheid en eenvoud van de architectuur – kwamen ze tot de beslissing dat deze ternair zou zijn, met gebruikmaking van een “natuurlijke” ternaire symmetrische code, de eenvoudigste van de symmetrische codes.

Eind 1958 werd het eerste exemplaar van de machine voltooid, dat de naam "Setun" kreeg - naar de naam van een rivier in Moskou. “Setun” was relatief klein voor computers van die generatie en besloeg een oppervlakte van 25-30 m2. Dankzij de elegante architectuur kon het 2000-4500 bewerkingen per seconde uitvoeren, had het 162 negen-trite RAM-cellen en een magnetisch drumopslagapparaat met een capaciteit van 36-72 pagina's van elk 54 cellen. Er waren slechts 27 machineopdrachten (en drie bleven niet geclaimd), waardoor programmacode bleek erg zuinig; direct in programmeren machinecodes was zo eenvoudig dat ze niet eens hun eigen assembler voor Setun ontwikkelden. Gegevens werden vanaf geperforeerd papier in de machine ingevoerd, de resultaten werden naar een teletype uitgevoerd (en merkwaardig genoeg werden negatieve cijfers zoals gewoonlijk afgedrukt, maar ondersteboven gedraaid). Tijdens het gebruik toonde de machine 95-98% van de nuttige tijd (besteed aan het oplossen van problemen, en niet aan het oplossen van problemen en het oplossen van problemen), en in die tijd was het erg goed resultaat er werd overwogen of de machine minimaal 60% kon geven.

Bij interdepartementale tests in 1960 werd het voertuig erkend als geschikt voor massaal gebruik in ontwerpbureaus, laboratoria en universiteiten, gevolgd door een bestelling serieproductie"Setuni" in de fabriek voor wiskundige machines in Kazan. Van 1961 tot 1965 werden er door het hele land 50 exemplaren gebouwd en geëxploiteerd. Vervolgens werd de productie ingeperkt. Waarom stopten ze met de productie van Setun als het overal met succes werd gebruikt, van Kaliningrad tot Jakoetsk? Een van mogelijke redenen het feit dat de computer te goedkoop bleek om te produceren en daardoor onrendabel voor de fabriek. Een andere reden is de rigiditeit van de bureaucratische structuren;

Vervolgens ontwikkelden Nikolay Brusentsov en Evgeny Zhogolev meer moderne versie een machine die dezelfde principes van de drie-eenheid gebruikte - "Setun-70", maar die nooit in massaproductie ging; het enige prototype werkte tot 1987 aan de Staatsuniversiteit van Moskou.

Driewaardige logica

De tweewaardige wiskundige logica, die overal in de wereld van de computer en andere ‘intellectuele’ technologie heerst, komt volgens de maker van de ternaire computer Nikolai Brusentsov niet overeen. gezond verstand: de ‘wet van het uitgesloten midden’ sluit andere conclusies dan ‘waarheid’ en ‘niet-waarheid’ af, en toch wordt het proces van menselijke kennis van de werkelijkheid geenszins gereduceerd tot een ‘ja/nee’-dichotomie. Daarom betoogt Brusentsov dat een computer, om intelligent te worden, ternair moet zijn.

Driewaardige logica verschilt van tweewaardige logica doordat er naast de betekenissen ‘waar’ en ‘onwaar’ nog een derde is, die wordt opgevat als ‘ongedefinieerd’, ‘neutraal’ of ‘misschien’. Tegelijkertijd blijft de compatibiliteit met tweewaardige logica behouden - logische operaties met "bekende" waarden geven dezelfde resultaten.

Logica die met drie waarden werkt, komt uiteraard overeen met het ternaire getalsysteem - ternair symmetrisch, of, preciezer gezegd, het eenvoudigste symmetrische systeem. Fibonacci wendde zich eerst tot dit systeem om zijn ‘probleem van de gewichten’ op te lossen.

Het ternair symmetrische systeem gebruikt de getallen: -1, 0 en 1 (of, zoals ze ook wel worden genoemd, -, 0 en +). De voordelen als symmetrisch systeem zijn dat het in de eerste plaats niet nodig is om speciaal het teken van het getal te markeren - een getal is negatief als het eerste cijfer negatief is, en omgekeerd, en inversie (tekenverandering) van een getal is gedaan door alle cijfers om te keren; ten tweede vereist het afronden hier geen speciale regels en wordt het uitgevoerd door eenvoudigweg de cijfers van lage orde terug te zetten op nul.

Bovendien, van allemaal positioneringssystemen ternaire notatie is het meest economisch: er kan in worden geschreven meer cijfers dan in enig ander systeem, waarbij een gelijk aantal tekens wordt gebruikt: bijvoorbeeld in decimaal systeem Om getallen van 0 tot 999 weer te geven, heb je 30 tekens nodig (drie cijfers, tien mogelijke waarden voor elk); in het binaire systeem kunnen dezelfde dertig tekens getallen coderen in het bereik van 0 tot 32767, en in het ternaire systeem; systeem - van 0 tot 59048. Het meest economische getalsysteem zou een grondtal hebben dat gelijk is aan het getal van Euler (e = 2,718...), en 3 is het dichtstbijzijnde gehele getal.

Als het in ons gebruikelijke geval is binaire computers Omdat informatie wordt gemeten in bits en bytes, werken computers die het ternaire getalsysteem gebruiken met nieuwe eenheden: trits en trites. Trit is één ternair cijfer; net zoals een bit de waarden 0 en 1 kan aannemen ("false" en "true"), kan een trit (+), (0) of (-) zijn (dat wil zeggen "true", "unknown" of "vals").

Eén eigenschap is traditioneel (zoals het was op “Setuni”) gelijk aan zes trits en kan 729 verschillende waarden aannemen (een byte is slechts 256). Misschien zullen eigenschappen in de toekomst echter 9- of 27-bits worden, wat natuurlijker is, aangezien dit machten van drie zijn.

Cadeauen de toekomst van ternaire computers

Na Setun werden er verschillende experimentele projecten uitgevoerd door enthousiastelingen (zoals de Amerikaanse Ternac en TCA2), maar dit waren óf zeer onvolmaakte machines, verre van hun binaire tegenhangers, óf zelfs software-emulaties op binaire hardware.

De belangrijkste reden is dat het gebruik van ternaire elementen in computers nog geen significante voordelen biedt ten opzichte van binaire elementen: deze laatste worden massaal geproduceerd, ze zijn eenvoudiger en goedkoper in prijs. Zelfs als er nu een ternaire computer zou worden gebouwd, die goedkoop is en qua kenmerken vergelijkbaar is met binaire computers, zou deze er volledig compatibel mee moeten zijn. De ontwikkelaars van Setuni-70 werden al geconfronteerd met de noodzaak om compatibiliteit te garanderen: om informatie uit te wisselen met andere universiteitsmachines, moesten ze de mogelijkheid toevoegen om binaire gegevens van ponsbanden te lezen en de gegevens bij het uitvoeren ook om te zetten in binair formaat.

Er kan echter niet worden gezegd dat het ternaire principe in de computertechniek een hopeloos anachronisme is. De afgelopen tien jaar is er behoefte ontstaan ​​aan nieuwe ontwikkelingen computertechnologie, en sommige van deze technologieën liggen op het gebied van de drie-eenheid.

Eén van deze onderzoeksgebieden is de zoektocht naar alternatieve manieren om de processorprestaties te verbeteren. Elke 24 maanden verdubbelt het aantal transistors op een processorchip ongeveer - deze trend staat bekend als de “wet van Moore”, en kan niet eeuwig doorgaan: de schaal van elementen en verbindingen kan worden gemeten in nanometers, en zeer binnenkort zullen ontwikkelaars worden geconfronteerd met een aantal technische problemen. Daarnaast zijn er economische overwegingen: hoe kleiner, hoe duurder de ontwikkeling en productie. En op een gegeven moment zal het goedkoper zijn om te kijken alternatieve manieren Processoren krachtiger maken in plaats van de race om nanometers voort te zetten, betekent dat we ons moeten wenden tot technologieën die voorheen als onrendabel werden verlaten. Overgang van homogene siliciumstructuren naar heterojunctiegeleiders bestaande uit lagen verschillende omgevingen en in staat om verschillende signaalniveaus te genereren in plaats van het gebruikelijke ‘is’ en ‘nee’, is dit een kans om de intensiteit van de informatieverwerking te vergroten zonder het aantal elementen te vergroten (en hun omvang verder te verkleinen). In dit geval zullen we moeten overstappen van logica met twee waarden naar logica met meerdere waarden - driewaardig, vierwaardig, enz.

Een andere richting, ook gericht op het verhogen van de productiviteit, zijn de ontwikkelingen op het gebied van asynchrone processors. Het is bekend dat het garanderen van synchronisatie van processen in moderne computers compliceert de architectuur aanzienlijk en verbruikt processorbronnen - tot de helft van alle transistors in de chip werkt om deze synchronisatie te garanderen. Theseus Logic stelt voor om “uitgebreide binaire” (eigenlijk ternaire) logica te gebruiken, waarbij naast de gebruikelijke “true” en “false” waarden er een apart “NULL” signaal is, dat wordt gebruikt om processen zelf te synchroniseren. Verschillende andere onderzoeksgroepen werken in dezelfde richting.

Er zijn ook meer fantastische gebieden waar het gebruik van logica met drie waarden gerechtvaardigd is: optische computers en kwantumcomputers.

Terwijl hij in zijn laatste jaar studeerde en zijn afstudeerproject voorbereidde, werd de toekomstige maker van 's werelds eerste en enige ternaire computer geconfronteerd met de noodzaak om complexe tabellen te berekenen. Zelfs toen beheerste hij numerieke rekenmethoden en stelde hij diffractietabellen samen op een elliptische cilinder (bekend als Brusentsov-tabellen). Zo werd de basis gelegd voor zijn activiteiten op het gebied van computertechnologie aan de Staatsuniversiteit van Moskou.

Zijn wetenschappelijke begeleider, Academicus S.L. Sobolev werd geïnspireerd door het idee om een ​​kleine computer te maken die qua kosten, omvang en betrouwbaarheid geschikt is voor instituutslaboratoria. Hij organiseerde een seminar waaraan M.R. deelnam. Shura-Bura, K.A. Semendyaev, E.A. Zhogolev en natuurlijk Sergei Lvovich zelf. Analyseerde de tekortkomingen bestaande machines, schatte het commandosysteem en de structuur (nu architectuur genoemd), overwoog opties voor technische implementatie, neigde naar magnetische elementen Omdat er nog geen transistors waren, waren buizen uitgesloten en konden kernen en diodes worden verkregen en kon alles door onszelf worden gedaan. Op een van de seminars (23 april 1956) met deelname van S.L. Sobolev formuleerde de belangrijkste technische eisen tot het maken van een kleine computer. N.P. werd benoemd tot hoofd en aanvankelijk de enige uitvoerder van de ontwikkeling van de nieuwe computer. Brusentsov. Merk op dat we het hadden over een machine met een binair getalsysteem op magnetische elementen.

Het was toen dat N.P. Brusentsov kwam op het idee om het ternaire getalsysteem te gebruiken. Het maakte het mogelijk om zeer eenvoudige en betrouwbare elementen te creëren, waardoor het aantal in de auto zeven keer werd verminderd in vergelijking met andere elementen. De vereisten voor de kracht van de voeding, voor de afwijzing van kernen en diodes werden aanzienlijk verminderd, en, belangrijker nog, het werd mogelijk om natuurlijke codering van getallen te gebruiken in plaats van directe, omgekeerde en extra code cijfers.

Het eerste exemplaar van "Setuni" (en de machine is vernoemd naar de rivier die vlakbij de universiteit stroomde) was eind 1958 klaar. Het werd, zou je kunnen zeggen, met hun eigen handen gemaakt door medewerkers van het laboratorium onder leiding van N.P. Brusentsov: E.A. Zhogolev, S.P. Maslov, V.V. Verigin, V.S. Berezin, B. Ya. Op de tiende dag van de complexe aanpassing begon de machine te werken. Dit was in die jaren nog nooit eerder gebeurd in de praktijk van computertechnici die computers ontwikkelden.

Bij decreet van de Sovjet-ministerraad werd de serieproductie van Setun toevertrouwd aan de Kazan Mathematical Machines Plant. De ontwerpdocumentatie voor de machine is ontwikkeld door het Ontwerpbureau van het Instituut voor Cybernetica van de Academie van Wetenschappen van Oekraïne. Het eerste exemplaar van de auto werd gedemonstreerd op de VDNKh in Moskou. De tweede moest bij de fabriek worden ingeleverd, omdat de fabrieksbazen probeerden te bewijzen dat de door de Interdepartementale Commissie aanvaarde en succesvol functionerende machine bij VDNKh niet geschikt was voor productie. “Ik moest met mijn eigen handen het (tweede) fabrieksmonster in overeenstemming brengen met onze documentatie,” herinnert Brusentsov zich, “en tijdens het testen vertoonde het 98% van de bruikbare tijd met een enkele fout (een diode op het telextype was kapot), evenals een stevige marge voor klimaat- en netwerkspanningsvariaties.” Het fabrieksmanagement had geen zin om grootschalige productie op te zetten. Redenen: "Setun" was een te goedkope machine en daarom onrendabel voor de fabriek, en het feit dat deze betrouwbaar en productief werkte in alle klimaatzones van Kaliningrad tot Magadan en van Odessa tot Jakoetsk, zonder enig onderhoud en in wezen zonder reserveonderdelen, werd geen rekening mee gehouden. Het succes van de tests dwong de directeur van de fabriek op 30 november 1961 een wet te ondertekenen, waarmee een einde kwam aan zijn pogingen om de ongewenste auto te begraven.

Ze produceerden slechts 15-20 auto's per jaar, en al snel lieten ze ook dit achterwege. In totaal produceerde de fabriek in Kazan 50 Setun-computers, waarvan er 30 hoger werkten onderwijsinstellingen USSR.

Het moet gezegd dat de auto meteen veel belangstelling trok in het buitenland. Vneshtorg ontving er aanvragen voor uit een aantal Europese landen. Maar geen ervan werd uitgevoerd.

In 1961-1968. Brusentsov ontwikkelde samen met Zhogolev de architectuur nieuwe auto, toen "Setun-70" genoemd. Het was de bedoeling om tegen 1970 een werkend model te ontwikkelen. In april 1970 was het model al in gebruik. Hij werkte aan tests die N.P. Brusentsov moest schrijven omdat Zhogolev zich liet meeslepen door ander werk. Niettemin werd de machine "opgezadeld", met de hulp van programmeur Ramil Alvarez Jose, en een jaar later, nadat ze Setun-70 "enigszins" hadden gemoderniseerd, maakten ze er een gestructureerde programmeermachine van.

Het was een machine waarin RISC-ideeën, destijds onbekend (1966-1968), werden gecombineerd met de voordelen van driewaardige logica, ternaire code en gestructureerd programmeren van E. Dijkstra. Er is een interactief gestructureerd programmeersysteem voor gemaakt en het bevat veel zeer efficiënte, betrouwbare en compacte producten - zoals cross-systemen voor het programmeren van microcomputers, systemen voor het ontwikkelen van hardware op basis van microprocessors met één chip, tekstverwerkingssystemen, besturing van robotmanipulatoren , medische monitoring en nog veel meer.

De machine is zo ontworpen dat deze voorzag effectieve kans zijn softwareontwikkeling. Trinity speelde daarin sleutelrol. Er waren geen teams in de traditionele zin van het woord: ze bestonden vrijwel uit lettergrepen. De lengte en het adres van opdrachten variëren indien nodig, te beginnen met een nuladres. In feite denkt de programmeur niet aan commando's, maar schrijft hij expressies in postfix-vorm (POLIZ) die berekeningen op de operandstack specificeren. Voor de processor zijn deze algebraïsche uitdrukkingen dat wel kant-en-klaar programma, maar de algebra wordt aangevuld met test-, controle- en input-output-bewerkingen. De gebruiker kan de reeks lettergrepen aanvullen met zijn eigen bewerkingen en postfix-procedures introduceren (definiëren), waarvan het gebruik de prestaties praktisch niet vermindert, maar ideale omstandigheden biedt voor gestructureerd programmeren. Het resultaat is dat de complexiteit van programma's vijf tot tien keer is afgenomen met een ongekende betrouwbaarheid, begrijpelijkheid, aanpasbaarheid, enz., evenals compactheid en snelheid.

Helaas werd het laboratorium van N.P. Brusentsov na de creatie van de Setun-70-machine uit het pand van het Moskou State University Computing Center verdreven naar de zolder van een studentenflat. Waarschijnlijk was de reden dat dit op de achtergrond gebeurde binaire computers Met haar drie-eenheid zag ze eruit als een zwart schaap. Het eerste geesteskind van Nikolai Petrovich - de Setun-machine (een experimenteel model dat 17 jaar lang feilloos werkte) werd op barbaarse wijze vernietigd - hij werd in stukken gesneden en op een stortplaats gegooid. Het laboratoriumpersoneel nam "Setun-70" mee naar zolder en daar creëerden ze op basis daarvan "Mentor" - een prachtig computerondersteund trainingssysteem.

In de menselijke samenleving is de afwijzing van het nieuwe de orde der dingen, en N.P. Brusentsov kwam er gemakkelijk vanaf. Maar William Ockham, die in de 13e eeuw de logica met drie waarden predikte, ontsnapte met grote moeite aan het vuur. Niettemin is N.P. Brusentsov ervan overtuigd dat de volwaardige computerwetenschap zich niet kan beperken tot wat vandaag de dag algemeen aanvaard wordt technische redenen binair systeem - de basis moet ternair zijn.

Momenteel is Nikolai Petrovich Brusentsov het hoofd van het computerlaboratorium van de Faculteit Computationele Wiskunde en Cybernetica van Moskou staatsuniversiteit hen. M.V. Lomonosov. De belangrijkste richtingen wetenschappelijke activiteit- architectuur van digitale machines, geautomatiseerde trainingssystemen, programmeersystemen voor mini- en microcomputers. De Setun-70 computer wordt nog steeds met succes gebruikt educatief proces aan de Staatsuniversiteit van Moskou. N.P. Brusentsov is de wetenschappelijk directeur van onderwerpen die verband houden met de creatie van microcomputertrainingssystemen en programmeersystemen.

N.P. Brusentsov zei: “...er is overtuigend bewijs voor de juistheid van het open pad. Met welk gemak werd Setun gemaakt, hoe gemakkelijk werd het onder de knie en op alle gebieden productief gebruikt, en hoe programmeurs spuugden als ze moesten overstappen op binaire machines. De hoogste prestatie van vandaag is de RISC-architectuur - machines met een beperkte set instructies (meestal 150), maar waar zijn ze vergeleken met Setun, waarvan de 24 commando's volledige veelzijdigheid en efficiëntie en programmeergemak garandeerden, ongebruikelijk voor RISC!

Echte RISC kan alleen ternair zijn.

N.P. Brusentsov, Ramil Alvarez Jose

Begin 1956, op initiatief van Academicus S.L. Sobolev, hoofd van de afdeling Computationele Wiskunde aan de Faculteit Mechanica en Wiskunde van de Universiteit van Moskou, werd een elektronica-afdeling opgericht in het computercentrum van de Staatsuniversiteit van Moskou en er begon een seminar te werken met als doel een praktisch voorbeeld van een digitale computer te creëren bedoeld voor gebruik in universiteiten, maar ook in laboratoria en ontwerpbureaus van industriële ondernemingen. Het was noodzakelijk om een ​​kleine computer te ontwikkelen die gemakkelijk te leren en te gebruiken, betrouwbaar, goedkoop en tegelijkertijd effectief zou zijn in een breed scala aan taken.

Een gedetailleerd onderzoek gedurende een jaar van de computers die op dat moment beschikbaar waren technische mogelijkheden de implementatie ervan heeft geleid niet-standaard oplossing gebruik binnen de machine die wordt gemaakt geen binaire, maar een ternaire symmetrische code, die dat zeer evenwichtige getallensysteem implementeert, dat D. Knuth twintig jaar later misschien wel het meest elegante zou noemen en waarvan, zoals het later bekend werd, de voordelen ervan in 1950 door K. Shannon werden geïdentificeerd. 121.

In tegenstelling tot de in moderne computers algemeen aanvaarde binaire code met de cijfers 0, 1, die rekenkundig inferieur is vanwege de onmogelijkheid om er direct negatieve getallen in weer te geven, biedt de ternaire code met de cijfers -1, 0, 1 de optimale constructie van de rekenkunde van ondertekende getallen. Tegelijkertijd is er niet alleen geen behoefte aan kunstmatige en onvolmaakte aanvullende, directe of omgekeerde codes getallen, maar rekenen verkrijgt een aantal belangrijke voordelen: uniformiteit van de getalcode, variabele lengte van de operanden, uniekheid van de ploegendienst, driecijferige functie van het teken van het getal, optimale afronding van getallen door simpelweg de onderste getallen af ​​te snijden cijfers, onderlinge compensatie van afrondingsfouten in het rekenproces.

De ternaire computer Setun, waarvan een prototype eind 1958 werd ontwikkeld, geassembleerd en in gebruik genomen door medewerkers van de elektronicaafdeling, zoals blijkt uit de ervaring met de ontwikkeling, softwareapparatuur en verschillende praktische toepassingen, voldeed volledig aan alle eisen vastgelegd in de taak voor de ontwikkeling ervan. Dit succes, rekening houdend met het feit dat de ontwikkeling van een ternaire computer voor het eerst werd uitgevoerd, werd uitgevoerd door een klein team van beginnende medewerkers (8 afgestudeerden van het Moskouse Power Engineering Institute en de Moskouse Staatsuniversiteit, 12 technici en laboratoriumassistenten ) en werd voltooid in korte termijn, getuigt duidelijk van de genade van de Drie-eenheid digitale technologie. Ten koste van de complexiteit vergeleken met binaire geheugenelementen en elementaire operaties er wordt een aanzienlijke vereenvoudiging en vooral natuurlijkheid van de architectuur van ternaire apparaten bereikt.

Met een minimale set opdrachten (in totaal 24 unicast-opdrachten) bood Setun de mogelijkheid om te rekenen met vaste en drijvende komma, en had hij een indexregister waarvan de waarde kan worden opgeteld of afgetrokken bij het wijzigen van het adres, op voorwaarde van een optelbewerking met een product, het optimaliseren van de berekening van polynomen, een bitsgewijze vermenigvuldigingsoperatie en drie voorwaardelijke sprongopdrachten gebaseerd op het teken van het resultaat. De eenvoudige en effectieve architectuur maakte het, dankzij de inspanningen van een kleine groep programmeurs, mogelijk om de machine eind 1959 uit te rusten met een programmeersysteem en een reeks applicatieprogramma's, voldoende voor het uitvoeren van interdepartementale tests van een prototype in april 1960.

Op basis van de resultaten van deze tests werd "Setun" erkend als het eerste werkende model van een universele computer op basis van lamploze elementen, die wordt gekenmerkt door " hoge prestaties, voldoende betrouwbaarheid, kleine afmetingen en eenvoud onderhoud" Op aanbeveling van de Interdepartementale Commissie heeft de Raad van Ministers van de USSR een resolutie aangenomen over de serieproductie van Setun in de Kazan Mathematical Machines Plant. Maar om de een of andere reden was de ternaire computer niet naar de zin van de functionarissen van de radio-elektronische afdeling: ze zorgden niet voor de ontwikkeling van een serieel model van de machine, en nadat deze toch was geïmplementeerd met behulp van de constructies van de M- Met de door de fabriek geproduceerde machine droegen ze niet bij aan de verhoging van de productie in overeenstemming met de groei van het aantal orders, vooral uit het buitenland, maar integendeel, ze beperkten de productie strikt, weigerden orders en stopten deze volledig in 1965, en verhinderde de ontwikkeling van de machine in Tsjechoslowakije, dat de grootschalige productie ervan plande. De reden voor dit vreemde beleid zou een record kunnen zijn lage prijs"Setuni" - 27,5 duizend roebel, vanwege de foutloze productie van zijn magnetisch digitale elementen in de Astrakhan-fabriek van EA en EP, elk 3 roebel. 50 kopeken per element (er zaten ongeveer tweeduizend elementen in de auto). Het is veelzeggend dat de elektromagnetische elementen van “Setuni” het mogelijk maakten om de drempelimplementatie van driewaardige logica op een uiterst economische, natuurlijke en betrouwbare manier te implementeren. Een prototype van de machine voor 17 jaar gebruik in het computercentrum van de Staatsuniversiteit van Moskou, na het vervangen van drie elementen door defecte onderdelen in het eerste jaar, vereiste geen reparaties interne apparaten en werd vernietigd in een staat van volledige functionaliteit. Productievoertuigen functioneerden stabiel in verschillende klimaatzones, van Odessa en Asjchabad tot Jakoetsk en Krasnojarsk, zonder enige service of reserveonderdelen.

Dankzij de eenvoud en natuurlijkheid van de architectuur, evenals een rationeel opgebouwd programmeersysteem, inclusief tolksystemen: IP-2 (zwevende komma, 8 decimalen), IP-3 (zwevende komma, 6 decimalen), IP-4 ( complexe getallen, 8 decimalen), IP-5 (zwevende komma, 12 decimalen), autocode POLIZ met besturingssysteem en een bibliotheek met standaard subroutines (zwevende komma, 6 decimalen), werden Setun-machines met succes onder de knie door gebruikers in universiteiten, industriële ondernemingen en onderzoeksinstituten, en bleken ze effectieve middelen het oplossen van praktisch belangrijke problemen op verschillende gebieden, van onderzoeksmodellering en ontwerpberekeningen tot weersvoorspellingen en optimalisatie van bedrijfsbeheer. Op seminars voor gebruikers van “Setun”-computers, gehouden aan de Staatsuniversiteit van Moskou (1965), in de Ljoedinovo-diesellocomotieffabriek (1968) en aan het Irkoetsk Polytechnisch Instituut (1969), verschenen tientallen rapporten over de effectieve nationale economische toepassingen van deze machines werden gepresenteerd. Dankzij de natuurlijkheid van de ternaire symmetrische code is “Setun” een werkelijk universeel, gemakkelijk programmeerbaar en zeer effectief computerhulpmiddel gebleken, dat zich vooral positief heeft bewezen als technische middelen het onderwijzen van computationele wiskunde aan meer dan dertig universiteiten. En op de Air Force Engineering Academy. Zhukovsky werd voor het eerst geïmplementeerd bij “Setun” geautomatiseerd systeem computeropleiding.

Het ternaire getalsysteem is gebaseerd op hetzelfde positionele getalcoderingsprincipe als dat wat in moderne computers wordt gebruikt binair systeem, echter het gewicht i De e positie (cijfer) daarin is niet gelijk aan 2 i , maar aan 3 i . Bovendien zijn de cijfers zelf niet uit twee cijfers (geen bits), maar uit drie cijfers (trites) - naast 0 en 1 laten ze een derde waarde toe, die in een symmetrisch systeem -1 is, waardoor beide positieve en negatieve getallen kunnen uniform worden weergegeven. De waarde van een n-tritisch geheel getal N wordt op dezelfde manier bepaald als de waarde van een n-bit geheel getal:

waarbij a i ∈ (1, 0, -1) de waarde is van het i-de cijfer.

Het is raadzaam om getallen in het ternair symmetrische systeem aan te duiden met hun tekens, d.w.z. In plaats van 1, 0, -1 schrijf je +, 0, -. De decimale getallen 13, 7, 6, -6 in deze ternaire notatie zijn bijvoorbeeld: 13 = +++, 7 = +-+, b = +-0, -6 = -+0. Het veranderen van het teken van een getal in een symmetrische code is gelijk aan een cijferinversie, d.w.z. waarbij alle “+” worden vervangen door “-” en alle “-” door “+”. De bewerkingen van optellen en vermenigvuldigen in de ternaire symmetrische code worden gedefinieerd door de tabellen:

In tegenstelling tot binair is dit rekenkunde met teken, waarbij het teken van een getal het cijfer is van het meest significante (niet-nul) cijfer. Het probleem van getallen met teken, waarvoor geen perfecte oplossing bestaat in de binaire code, bestaat eenvoudigweg niet in de ternaire symmetrische code, wat de fundamentele voordelen ervan verklaart.

De Setun-machine kan worden gekarakteriseerd als unicast, opeenvolgende actie, met 9 trit-instructiecode, 18 trit-optellerregisters S en vermenigvuldiger R, 5-terit adreswijzigingsindexregister F en een tegenindicator van uitgevoerde opdrachten C, evenals een één-bit tekenindicator van het resultaat ? , het beheersen van voorwaardelijke overgangen.

RAM - 162 9-trit-cellen - verdeeld in 3 pagina's van 54 cellen voor pagina-voor-pagina-uitwisseling met het hoofdgeheugen - magnetische trommel met een capaciteit van 36 of 72 pagina's. Lezen en schrijven naar RAM 18-trit en 9-trit woorden zijn mogelijk, waarbij een 9-trit woord overeenkomt met de hogere helft van een 18-trit in registers S En R. De inhoud van deze registers wordt geïnterpreteerd als een getal met een vaste decimale punt na het op één na belangrijkste cijfer, d.w.z. in modulus is deze minder dan 4,5. Bij drijvende-kommaberekeningen voldoet de mantisse M van het genormaliseerde getal aan de voorwaarde 0,5< |М| <1,5, а порядок представлен отдельным 5-тритным словом, интерпретируемым как целое со знаком.

De tweetraps geheugenstructuur van de pagina met woord-voor-woord-adressering binnen drie pagina's RAM, met behulp van 5-trit-adressen en dienovereenkomstig 9-trit-instructies, bepaalde de buitengewone compactheid van programma's en tegelijkertijd de hoge snelheid van de machine , ondanks het feit dat bij tolksystemen de magnetische trommel als operationeel geheugen fungeert.

In 1967-1969. Gebaseerd op de ervaring met het creëren en praktische toepassingen van de "Setun" -machine, werd een verbeterde ternaire digitale machine "Setun 70" ontwikkeld, waarvan een prototype in april 1970 in gebruik werd genomen. Het was een machine met een onconventionele twee-stack-architectuur , gericht op het scheppen van gunstige voorwaarden voor de verdere ontwikkeling van zijn capaciteiten met behulp van de interpretatieve methodesystemen

De adoptie van een rekenkundige stapel (een stapel van 18 trite operanden) is te danken aan het gebruik van de zogenaamde Poolse inverse programmanotatie (POLIZ) als machinetaal, die zich positief heeft bewezen in de gelijknamige tolk op Setun. Een POLYZ-programma bestaat niet uit commando's van het ene of het andere adres, maar is een reeks korte woorden - 6-trite kenmerken (ternaire bytes). Als programma-element kan een eigenschap adresgebaseerd of operationeel zijn. De adreseigenschap wordt ofwel gebruikt als een operand door de voorgaande operationele, of wordt gezien als een instructie om het geadresseerde woord van één naar drie kenmerken vanuit RAM naar de operandstapel te duwen. Er zijn slechts 9 pagina's met 81 kenmerken in het RAM, en er zijn momenteel drie pagina's open voor toegang, waarvan de nummers worden aangegeven in de zogenaamde "registerregisters".

Een operationele eigenschap specificeert bewerkingen, of beter gezegd procedures, die worden uitgevoerd op de operandstapel, evenals op processorregisters. Er zijn in totaal 81 bewerkingen mogelijk: 27 hoofd-, 27 service- en 27 door de gebruiker programmeerbare.

De tweede (systeem)stack, die retouradressen bevat bij het verwerken van interrupts en bij het uitvoeren van geneste subroutines, maakte het mogelijk om E. Dijkstra's idee van gestructureerd programmeren op Setun 70 met succes te implementeren, waarbij de bewerkingen werden geïntroduceerd van het aanroepen van een subroutine, aanroepen op voorwaarde, en het cyclisch uitvoeren van subroutines. Procedureel gestructureerd programmeren dat op deze manier in de praktijk werd uitgevoerd, bevestigde de voordelen van zijn door Dijkstra verklaarde methode: de arbeidsintensiteit van het maken van programma's werd vijf tot zeven keer verminderd, dankzij de eliminatie van traditioneel debuggen door te testen op specifieke voorbeelden, en de programma's de juiste betrouwbaarheid, ordelijkheid, begrijpelijkheid en aanpasbaarheid verworven. Vervolgens dienden deze kenmerken van de “Setuni 70”-architectuur als basis voor het interactieve gestructureerde programmeersysteem DSSP, geïmplementeerd op machines uit de DVK-serie en op daaropvolgende personal computers.

Helaas werd de verdere ontwikkeling van de mogelijkheden die inherent zijn aan "Setuni 70" door de ontwikkeling van de software stopgezet op administratief bevel. Ik moest me opnieuw richten op de automatisering van het onderwijs. “Setun 70” werd de basis voor de ontwikkeling en implementatie van het geautomatiseerde onderwijssysteem “Mentor”, dat de principes van de “Grote Didactiek” van John Amos Comenius belichaamde. Het doel van de computer in dit systeem is niet het “elektronisch omslaan van pagina’s” of multimedia-effecten, maar om het juiste begrip van de student te controleren van wat hij leert, om tijdig misvattingen te overwinnen en om echte beheersing van het studieonderwerp te garanderen door middel van redelijk voorgeschreven oefeningen. Tegelijkertijd registreert de computer de voortgang van de les, waardoor de ontwikkelaar van lesmateriaal de mogelijkheid krijgt om de effectiviteit van de gebruikte didactische technieken te evalueren en te verbeteren.

Het educatieve materiaal in "Mentor" wordt in gedrukte vorm aan studenten verstrekt met genummerde secties, alinea's, oefeningen en hulp bij foutieve antwoorden, waardoor, met behulp van een eenvoudige terminal met een numeriek toetsenbord en een rekenmachine-indicator, een computer zonder hypertekstweergave communiceert gemakkelijk en onschadelijk met de student, waardoor het boek haar vermogen tot dialoog met de lezer mist. Het maken van educatief materiaal voor de 'mentor' houdt geen verband met computerprogrammering, en zoals de praktijk heeft aangetoond, ligt de ontwikkeling van zeer bevredigende handleidingen in wiskunde, natuurkunde, Engels en andere onderwerpen binnen de mogelijkheden van leraren op school. De didactische effectiviteit van dit eenvoudige systeem bleek extreem hoog. Zo werd de cursus "Basis Fortran" in 10-15 uur voltooid door studenten van de Faculteit Computationele Wiskunde en Informatica van de Staatsuniversiteit van Moskou in "Mentor", studenten van de Faculteit der Economische Wetenschappen - in 15-20 uur, en toonde vervolgens in de workshop een meer gevorderd vermogen om in Fortran te programmeren dan na een reguliere semestercursus.

Het in 'Mentor' geïmplementeerde 'boekcomputer'-principe bepaalde in bijna alle opzichten het optimale gebruik van de computer als leermiddel: de benodigde apparatuur (een microcomputer en 3-4 dozijn terminals die erop waren aangesloten, vergelijkbaar met een eenvoudige rekenmachine) is extreem goedkoop, betrouwbaar en gemakkelijk te beheersen door zowel studenten als docenten. Het werken in dialoog met een boek is onvermoeibaar, opwindend en garandeert, met de juiste organisatie van de presentatie, een snelle en volledige assimilatie van het onderwerp dat wordt bestudeerd. Toepassing van het systeem aan de Moskouse Staatsuniversiteit, Moskou Luchtvaart Instituut, vernoemd naar VIA. Kuibyshev bevestigde op de middelbare school en voor beroepsopleiding bij ZIL de hoge effectiviteit ervan in een breed scala aan onderwerpen en studieniveaus. Tegelijkertijd wordt "Mentor" al meer dan 30 jaar voortdurend gebruikt bij de Faculteit Computerwetenschappen en Technologie voor geautomatiseerde tests, evenals voor het testen van degenen die zijn toegelaten tot de faculteit, die het niveau van de Engelse taalvaardigheid voor rekrutering bepaalt homogene studiegroepen.

Maar gezien de ogenschijnlijk dringende noodzaak om het leerproces in ons informatietijdperk effectief te verbeteren, was er geen vraag naar ‘Mentor’. Blijkbaar is het te simpel en goedkoop, en wat voor soort computersysteem is het - zonder beeldscherm, muis en hypertekst. IT-apparatuur in het onderwijsproces wordt immers meestal nog steeds niet beoordeeld op basis van het niveau en de kwaliteit van de training, maar op basis van het aantal en de kracht van de computers die erbij betrokken zijn.

Besturingssysteem van de "Setun" -machine

Literatuur

  1. Shannonc. E.A Symmetrische notatie voor getallen.- “De Amerikaanse Mathematical Monthly”, 1950, 57, N 2, p, 90 - 93,
  2. Reid J.B.
  3. Brief aan de redactie. - “Comm. ACM”, 1960, 3, N3, p. A12 - A13. Howden R.F.
  4. De techniek voor het tellen van wegen is sneller dan binair. - “Elektronica”, 1974, 48, N 24, p. 121 - 122. Baytser B.
  5. Architectuur van computersystemen, deel 1. M., “Mir”, 1974.
  6. Proceedings van het Zesde Internationale Symposium over Meerwaardige Logica , Mau 25 - 28 1976. IEEE Press, 1976. Croisier A.
  7. Inleiding tot pseudoternaire transmissiecodes. - “IBM Journal of Research and Development”, 1970, 14, N 4, p. 354 - 367. Brusentsov N.P.
  8. Elektromagnetische digitale apparaten met eendraadsoverdracht van driecijferige signalen.
  9. Inleiding tot pseudoternaire transmissiecodes. - In het boek: Magnetische elementen van automatisering en computertechnologie. XIV All-Union Conference (Moskou, september 1972). M., “Wetenschap”, 1972, p. 242 - 244.- In het boek: Computertechnologie en kwesties van cybernetica, vol. 13. Uitgeverij van de Staatsuniversiteit van Moskou, 1976, p. 164-182.
  10. Inleiding tot programmeren. PDP-8 handboekenserie. Digitale Apparatuur Corporation, 1972.

Proceedings van de internationale conferentie SORUCOM 2006 (3-7 juli 2006)
Ontwikkeling van computertechnologie in Rusland en de landen van de voormalige USSR: geschiedenis en vooruitzichten
Het artikel is met toestemming van de auteur op 31 oktober 2007 in het museum geplaatst

In 1959 ontwikkelde N.P. Brusentsov een unieke computer "Setun" voor de Staatsuniversiteit van Moskou. Het was gebaseerd op het ternaire getalsysteem, en hoewel de elementenbasis gedeeltelijk binair was, wat leidde tot overmatig verbruik van onderdelen, profileerde de machine zich als zuinig en betrouwbaar. Tegenwoordig is de ternaire machine alleen in een museum te zien; de binaire code heeft gewonnen.

Communicatie met de buitenwereld vindt plaats door te schrijven naar een geheugencel met een vooraf ingesteld adres met een waarde die door de host-uitvoerder zal worden verwerkt. U kunt op deze manier bijvoorbeeld een primitieve foutopsporingsconsole implementeren.
Omdat we een webapplicatie hebben, zullen we deze console weergeven in een authentiek zwart venster met witte letters. Om dit te doen, zullen we een kant-en-klaar onderdeel en de mogelijkheden van de standaard Dart-bibliotheek voor het beheren van webinhoud gebruiken.

+-0. Eerste stappen

Omdat ik de code al van een werkende virtuele machine had, zal ik kort de kenmerken van de uitvoering ervan beschrijven.

Om de voltooide code in het geheugen te flashen, zullen we dus een loader-klasse beschrijven die code van de server downloadt en naar het geheugen schrijft. De code is in JSON-formaat, vreemd maar waar, omdat elk binair opnameformaat niet volledig compatibel zou zijn met ternaire code.

Volgens de canons van het Oberon-systeem voert de lader een wijziging uit van de sprongadressen; eenvoudige wiskunde voert een correctie uit in de code voor de offset van de geladen modulecode ten opzichte van de nulpositie, die door de compiler wordt gespecificeerd tijdens het compileren.

Bootstrap is een aparte module; dit zijn verschillende opdrachten die machineconstanten in het geheugen instellen (geheugengrootte, moduletabeladres, enz.) en de processor overbrengen naar het adres van de eerste uitvoerbare opdracht. Bootstrap werd handmatig voorbereid.

De Core-module is gemaakt naar het beeld en de gelijkenis van de Oberon-systeemkernel, de Kernel-module, aangezien dit de kernel is, heeft deze veel directe geheugenbewerkingen, de implementatie van een allocator van dynamische structuren (soms met fouten), de implementatie van een uitzonderingsinterceptor, enz.
Het is in de Core-module dat we de meest primitieve console implementeren. Om tekenreeksen en getallen uit te voeren, schrijven we de symboolwaarden in een geheugencel, zoals hierboven beschreven. De platformafhankelijke module SYSTEM is virtueel; de compiler vertaalt zijn oproepen rechtstreeks in machinecode.

Niet-indrukwekkende schermafbeelding.
U kunt hier de prestaties van de resulterende virtuele machine controleren. Natuurlijk leidde het complexe debuggen van zowel de processor als de compiler tegelijkertijd tot enkele bugs (die ik nog niet heb gevonden), maar als proof of concept leek het resultaat van het werk mij voldoende.

+-+. Resultaten

Als resultaat ontvingen we een volledig functionele, uitbreidbare analoog van de N. Wirth-processor van het Oberon 2013-project met een aanpassing voor het ternaire getalsysteem en ternaire code en verschillende modules om in het resulterende systeem te werken.

In de oorspronkelijke tolk heb ik een poging gedaan om voort te bouwen op dit succes en communicatie met de buitenwereld te implementeren met behulp van een analoog van de RS232-poort, met een bestandssysteem gebaseerd op het 9p-protocol. En dit is wat ik tegenkwam. Hoewel beide technologieën als platformonafhankelijk worden bestempeld, verliezen ze snel hun platformonafhankelijke karakter wanneer er trits en kenmerken in het concept van platforms worden geïntroduceerd. De byte- en bitbasis maakt het porten van dergelijke technologieën een niet-triviale taak.

Natuurlijk kun je hier beweren dat de betekenis en prevalentie van ternaire systemen nul is, maar hier, zoals in de grap over Vovochka, is er sprake van ternaire systemen, maar er zijn geen woorden over platformonafhankelijk. Misschien is dit een soort rem op de verspreiding van ternaire systemen. Alles werkt tenslotte zo.

Persoonlijk heb ik slechts één gerechtvaardigd gebruik van ternaire machines gezien: de organisatie van tegen inbraak beveiligde communicatiekanalen. Zelfs als er directe toegang tot het kanaal is, heeft een hacker immers op zijn minst een hardware-signaaldecoder nodig, die nog moet worden ontwikkeld. Zo kan de strijd tussen pantser en projectiel leven geven aan de industriële toepassing van de beschreven technologieën.

+0-. Koppelingen

Nou ja, misschien een paar links voor degenen die geïnteresseerd zijn.
  • trinary.ru is een prachtige site met rekenmachines, kalenders en een besturingssysteemsimulator van de originele Setunya.
  • ternarycomp.cs.msu.ru is een serieuzere site, met een beschrijving van patenten en algoritmen
  • www.inf.ethz.ch/personal/wirth/ProjectOberon/index.html auteurspagina van het Oberon 2013-project.
  • github.com/kpmy/tri projectrepository
  • bitbucket.org/petryxa/trisc-repository van de originele emulator

+00. P.S.

N.P. Brusentsov stierf op 4 december 2014. Ik hoop dat zijn levenswerk niet zal worden vergeten.

Tags: tags toevoegen