Excerpt reactie’s van fabrikanten. no 4 8 maart 1963

Telefunken: Er is een uitgewerktere offerte van een TR4 installatie binnengekomen. Met de opinie van de minister op de achtergrond wilde ik er nu niet te veel tijd aan besteden, temeer omdat op globale, kwantitatieve overwegingen de machine al niet aantrekkelijk lijkt. Met 8092 woorden snel geheugen, 2 magneetbandeenheden, ponsbandlezer en ponsbandponser en besturingsschrijfmachine, plus regeldrukker komt de installatie al boven de 3 milljoen. Voor de rekensnelheid, die aanzienlijk is (enorm, in de tijd, dat over de TR4 de eerste geruchten gingen, en in het licht van de huidige situatie heel behoorlijk), is het bijbehorende geheugen echt te klein en te langzaam. Over de organisatie van de “Ein-Ausgabe register” ben ik niet zo enthousiast, over de opdrachtcode nog minder. Opgemerkt dient, dat ze in de faciliteiten van hun “Verteilerprogram” naar mij voorkomt in het raam van het op deze machine mogelijke een paar heel leuke dingen gedaan hebben. Ik wilde het hierbij laten.

CDC. In tegenstelling dat de toezegging van Amerika, dat de man van CDC Europa contact met ons zou opnemen, is dat niet gebeurd. Een hint via prive-kanalen heeft er voor gezorgd, dat iemand van CDC uit Zurich, die toevallig in Eindhoven was, langs is gekomen. Inderdaad lijkt de 3600 “beyond proportion”, de CDC 1604 A is als candidaat naar vorengeschoven.

Tengunste van de CDC 1604 A pleit, dat de woordlengte 48 bits is, zodat er voor de representatie van drijvende getallen een voldoend aantal bits voor de karakteristiek ter beschikking gesteld kon worden. (Dit in tegenstelling tot de TR4, waar bij een woordlengte van 52 bits er maar 8 voor de karakteristiek overschieten!) Het moment van eerste installatie in aanmerking nemend (1961) is de machine niet langzaam; op de huidige markt zit hij aan de langzame kant.

Tegen de machine pleit wederom de communicatiemogelijkheden, die wel geschikt zijn voor weinig snelle media, maar niet voor meer langzamere; de afwezigheid van een behoorlijke vorm backingstore en onhandige adresmodificatiemogelijkheden. Hij heeft zes “indexregisters”, die echter niet via een geindiceerde opdracht gevuld kunnen worden (dit is dus de zelfde last, als de IBM 7040, met dat verschil, datde laatste er drie heeft). Rommeliger is de manier, waarop een woord ook als twee halve woorden gebruikt kan worden. Er worden twee opdrachten in een woord geborgen, maar sommige opdrachten moeten op de “upper half” staan; er zijn opdrachten, die opereren op een half woord, opdrachten die dan in duplo bestaan. De bit, die onderscheid maakt tussen operatie op de “upper half, dan wel de lower half” staat niet rechts van de minstsignificante adresbit en onttrekt zich tevens aan de adresmodificatie.

Onopgehelderd is het eveneens aangeboden “satelite system”, directe koppeling tussen een 1604 en een CDC160. Uit de gegeven beschrijvingen heb ik niet op kunnen maken, wat de voordelen hiervan zijn, nog volgens wat voor philosophie je dit duo moet bespelen. Opheldering hieromtrent zou een nieuwsgierigheid mijnerzijds bevredigen.

Ferranti Aangeboden is een ATLAS 2, in de prijs van ongeveer 10 millioen gulden, een machine, die we dan maar samen met wat andere nederlandse universiteiten moeten aanschaffen. De machine heeft een “slave store” van 32 woorden op tunneldiodes, wat op zichzelf een leuk idee is. Het onderhoud, dat ik er in Amsterdam over gehad heb met Mr Goldberg was niet bevredigend, ik kreeg sterk de indruk, dat Mr. Goldberg er eigenlijk niet zoveel van afwist. Als we er van uitgaan, dat de prijs en/of de samenwerking met andere universiteiten op het ogenblik niet opportuun is, dan kunnen we ons nu de moeite besparen, hier verder in te duiken. Ik geloof niet, dat ik me erg geroepen voel, dit eigener beweging te gaan doen, de eerste kennismaking was niet zo, dat het onweerstaanbaar naar meer smaakte.

Siemens Met ir.Groothof (?) van de nederlandse vertegenwoordiging een vriendelijk, maar weinig concreet gesprek gevoerd. Weinig concreet, omdat hij ons wel kon verzekeren, dat Siemens iets op de pennen had, maar dat hij daar niets over mocht vertellen. De motivering voor deze zwijgzaamheid verzwakte zijn uitspraak, dat naar zijn mening het nieuwe product van Siemens aan al onze eisen zal voldoen. Zijn enthousiasme voor het voor de S2002 ontwikkelde programmeringssysteem PROSA was niet bemoedigend. Hij was niet verbaasd, dat ik hem er op wees, dat het feit, dat een fabrikant zich tot de zg.ALCOR-conventies beperkt, uitgelegd kan worden als een testimonium paupertatis. (Dat Siemens zich bij de ALCOR-groep had aangesloten was practisch het enige stuk concrete informatie dat hij prijs gaf.)

Het antwoord op de Letter was klaar, maar mocht alleen nog niet verstuurd worden. Hij dacht, dat de brief eind april, begin mei verstuurd zou mogen worden. Als we pressie op hem uitoefenen, kunnen we de reactie waarschijnlijk wel eerder lospeuteren. Ik geloof, dit alleen te moeten adviseren, als de keuze tussen wat wel aangeboden wordt, te moeilijk blijkt. (Ik word het excerperen een beetje moe nl.) Waar ik een klein beetje huiverig door ben geworden is de herhaalde verzekering (die als compensatie of verontschuldiging voor de zwijgzaamheid gegeven werd), dat Siemens heel lang en heel degelijk placht binnenskamers te ontwikkelen, voordat ze er over spraken “en dat ze aan het ontwerp van deze machine meer dan vijf jaar geleden begonnen waren”. Een klein rekensommetje leert, dat dit eind 1957 of begin 1958 geweest is. Gezien de stormachtige ontwikkelingen in de afgelopen drie jaar moeten ze toen bij Siemens heel vooruitstrevend geweest zijn, als ze nu met iets moderns willen komen. ’t Is mogelijk.....

Bull. Bezoek van dr.J.Berghuis, in zijn hoedanigheid van afgezant ven Raison, Parijs. Deze onderhandelingen lopen niet over Bull Nederland, de directe connectie met de bron is beslist aantrekkelijk. (De heer Raison is Directeur Etude Générale.)

De hoge mate van vertrouwelijkheid brengt bescheiden documentatie met zich mee. De machine wekt de indruk technisch conventioneel, organisatorisch hier en daar geavanceerd te zijn. Enige karakteristieken:

Woordlengte van 36 bits, met 1 opdracht per woord. Ingebouwde drijvende arithmetiek, waarbij voor de exponent de gebruikelijk 1+7 bits ter beschikking worden gesteld. (Dit vind ik, zoals bekend, aan de krappe kant.) Geheugencyclus duurt 5 mms, fixed point optelling 10 mms. Communicatie als bij de CDC via maximaal drie kanalen. (Ik weet niet, of deze kanalen simultaan een invoer en een uitvoerkanaal zijn; er lopen dus maximaal zes of drie apparaten.) Geheugen op kernen in eerste instantie 32768 woorden, de adreslengte beslaat 15 bits. Het kerngeheugen kan worden uitgebreid tot het dubbele, maar de informatie in de tweede helft is dan alleen accessibel via bloktransportopdrachten tussen de beide helften. (Ik vind dit een beetje vreemd; het is voor ons nu niet zo actueel, omdat ik me voorstel aan 32768 wel genoeg te hebben. Wie werkelijk die tweede helft nodig heeft, zou heel terecht kunnen opmerken, dat het dan ook de overweging waard geweest zou zijn, om de woordlengte met een bit uit te breiden.)

Opdrachtstructuur heeft leuke dingen, die ten duidelijkste op compilerervaringen geent zijn. Ik noem bv.de inverse deling en de inverse aftrekking. Adresmodificatie verdient speciale vermelding. Vijf bits geven het indexregister aan, waarmee het adresgedeelte van de opdracht gemodificeerd wordt; de configuratie 00000 duidt op “geen correctie”, er zijn dus 31 indexregisters. Deze indexregisters zijn uitgevoerd als gewone geheugenplaatsen, die evenwel speciaal accessibel zijn in allerlei opdrachten. De opdrachten, die een indexregister uit het geheugen vullen, doen dit zonder verstoring van de inhoud van de accumulator of het multiplier-quotientregister, maar via een directe geheugen-hegheugentransport; deze opdrachten zijn zelf gelukkig wel indiceerbaar!

Een nette indruk maakt de mogelijkheid tot indirecte adressering. Deze is nl. met indicering compatibel: na de eventuele adresmodificatie wordt op grond van de indirecte adresseringsbit uit de aangewezen plaats een nieuw adres + indexgedeelte + indirect adresseringbit aangehaald en het proces herhaalt zich, totdat eindelijk een keer een woord met een non-indirect adresbit gepakt wordt. (Wat je er precies mee moet, is me niet duidelijk. maar de faciliteit maakt zo’n nette indruk, netter dan bv. de CDC 1604 A, waar indirecte adressering en adresmodificatie elkaar uitsluiten.)

Ik heb op de zojuist beschreven indicerings— en substitueringsmogelijkheid twee aanmerkingen.

De eerste is, dat het —althans voorzover ik heb kunnen ontdekken— niet mogelijk is, om in het functiegedeelte aan te geven, dat de boven beschreven ketting van geheugencontacten een stap eerder onderbroken moet worden: je hebt wel de mogelijkheid om op een vrij ingewikkeld gelocaliseerde operand te opereren, maar ik zie niet de mogelijkheid, om het uiteindelijk adres van zo’n operand te isoleren. Deze “onherroepelijkheid” van dit laatste geheugencontact kon wel eens heel hinderlijk zijn.

De tweede is, dat deze 31 indexregisters, die in het kerngeheugen zijn afgebeeld, zijn afgebeeld op 31 vaste plaatsen. Het zou veel aantrekkelijker geweest zijn, als de plaats van dit 31-tal afhing van de inhoud van een enkel “super-8-register”; nu deze correctiefunctie aan vaste plaatsen gebonden is, ben je genoodzaakt tot uitgebreide reden herstelprocedures, iedere keer, wanneer de besturing van de ene context naar de andere overgaat. (De adresmodificatiemogelijkheid isafgezien van de indirecte adresseringsmogelijkheid— identiek aan de “DISPLAY” van de MC-ALGOL-vertaler, die voor de ALGOL-vertaler van de Gamma 60 modelgestaan heeft; de DISPLAY moet je echter rekenen tot “statusinformatie van het rekenorgaan”; deze was er onder andere voor verantwoordelijk, dat het draaien van twee ALGOL-programma’s door elkaar heen wat extra problemen opwierp. zoveel, dat we er toen maar vanafgezien hebben. Dit bezwaar telt bij mij heel zwaar.)

Hierenboven bevat de opdrachtcode een vrij rijke varieteit aan mogelijkheden, om de test op de inhoud van een (index)register te koppelen aan een voorafgaande wijziging van de absolute waarde met plus of min 1; of dit nu dingen zijn om zo voor warm te lopen, weet ik nog niet zo precies. Tenslotte bevat de code een aantal opdrachten, die zich over twee opeenvolgende woorden uitstrekken, waarmee woordrijen, karakterrijen of bitrijen getransporteerd, vergeleken kunnen worden. Volgens Berhuis waren deze opdrachten ingelast met het oog op bepaalde administratieve toepassingen; ik neem dit op zijn gezag aan, direct emplooi zie ik er nu niet zo voor.

Het interruptiesysteem maakt een uiterst gezonde indruk, simpel. overzichtelijk en betrouwbaar; moet in geval van interruptie de oorzaak geidentificeerd worden door de mogelijke oorzaken individueel af te tasten? De documentatie suggereert zulks.

Backing store was helaas wat teleurstellend: aangeboden wordt een trommel met 32768 woorden, wat wat klein is, om het echt interessant te maken. Het alternatief is een schijvengeheugen, een medium, waarvoor mijn appreciatie nu ik er wat meer van gezien heb, aanzienlijk gedaald is. Daarenboven is het schijvengeheugen (RCA, waarmee Bull een associatie heeft) vanwege zijn amerikaanse oorsprong relatief heel duur vergeleken bij de machine.

SAAB (aan wie onze aanvraag aan FACIT door de laatste is doorgegeven)

De brief van SAAB was een van de plezierigste, die er naar mijn smaak bij was: “..An emphasis on software aids will be made on the D21 computer, the general philosophy of which is to avoid special functions in hardware and rather build them into standard programs.” Dit klinkt mij als muziek in de oren; als we hun paper tape bekijken, moeten we helaas constateren, dat ze aan dit principe niet voldoende trouw gebleven zijn.

Voorts winden ze er geen doekjes om dat
“The D21 does not, at the present state, comply fully with given requirements on backing store. Three possibilities may be worth studying....”

Over de interruptie:

”The D21 interrupt system is described in chapter 15 of the Systems Description. This system allows efficient use of the central processor and its communicating terminal equipment. In our application studies, however, we have not yet gone much into multi-programming techniques and feel it is too early for us to comment on this subject.” Dit is ook duidelijke, eerlijke taal. Wat ze er niet bij hebben vermeld, is, dat hun hele communicatieorganisatie aanmerkelijk verstandiger is dan gewoonlijk. Met de X8 is dit, voorzover ik nu bedenken kan, de enige machine, waarbij de communicatieorganisatie niet is toegespitst op weinig snelle media; alleen het snelle medium wordt met het dure externa controleapparaat gestuurd. Dit maakt mogelijk, dat zij in hun beschrijving kunnen zeggen “In its basic version the computer allows the inclusion of 32 input and 32 output channels, but when more channels are needed, an easy modification will allow this.”

Over de communicatiemechanismen schrijven zij in hun brief:

”The D21 complies very well with the requirements given. Punched tape is generally preferred by us as compared to punched card ecuipment. The 0D21 punched tape equipment is described in separate brochures. Several units can be connected. An analog-to-digital and digital-to analog- converter system has been developed for the 021 computer system....”

Na het bovenstaande was het voor mij een bittere teleurstelling te moeten ontdekken, dat de actie ven de bandlezer niet code-onafhankelijk is. In geval van meer dan vijfgateband voert de bandlezer een niet onderdrukbare paritycheck uit, bij het ponsen van achtgateband mag de computer maar zeven bits specificeren, want het achtste bit genereert de pariteitsregel er ononderdrukbaar bij en de bandlezer negeert het karakter “tape feed”. Jammer he.

De machine zelf lijkt me technisch leuk in elkaar zitten, zoals je van Scandinaviers kunt verwachten. (Van de vage beschrijvingen krijg je de indruk, dat hij wel op de GIER lijkt.)

De woordlengte is 24 bits, drijvende getallen worden over twee opeenvolgende woorden uitgesmeerd; multilengte opdrachten met vaste komma allen voor de additieve, niet voor de multiplicatieve. Maximum omvang van het kerngeheugen 32768 woorden, cyclustijd 4.8 mms, fixed point addition 9.6 mms.

De opdrachtcode roept de vraag op, of de samenstellers daarvan over voldoende ervaring hebben beschikt. Een voorbeeld is de overflowdetectie: je kunt met een sprongopdracht detecteren of er in de onmiddellijk voorafgaande optelling overflow is opgetreden. Nu komt het heel veel voor, dat je drie getallen bij elkaar moet optellen, en a priori kunt bewijzen, dat er nul of ÈÈn keer overflow is opgetreden; het enige, waarin je dan geinteresseerd bent, of overflow ergens is opgetreden. De code van de D21 dwingt je in die gevallen onderscheid te maken tussen overflow na de eerste en na de tweede optelling, hoewel je dat niets kan schelen.

De mogelijkheden tot adresmanipulatie zijn gering: indirecte adressering met (facultatief) automatisch met 1 ophogen van daarbij geselecteerde adressen. Het logische gat in het ontwerp van BULL (nl. dat je deze ketenvolgerij in het voorlaatste stapje moet kunnen arresteren) is hier gelukkig gedicht. De volslagen afwezigheid van “8-modification” acht ik een onoverkomelijk bezwaar. Dit is des te jammerder, omdat de machine verder zulke leuke dingen heeft.

Electrologica. Nadere gegevens over de X8.

(Aangezien hetvolgende niet een excerpt is van een officiele reactie, past het formeel niet op deze pagina; functioneel wel, vandaar.)

Inmiddels heeft de in de offerte aangekondigde uitbreiding van de opdrachtcode vastere vorm gekregen. Voor practisch alle opdrachten —nl. de opdrachten, waarin de zg. varianten hun algemene betekenis hebben— is de adresinterpretatie-mogelijkheid aanzienlijk uitgebreid, en wel op de volgende manier.

De “C-correctie”, waarvan de dubieuze bruikbaarheid is gebleken, is afgeschaft; de hieraan beantwoordende bit-configuratie in de opdracht heeft nu de functie van “Escape” gekregen. In dit geval nu worden zowel conditiereactie als conditiezetting elk van vier tot twee mogelijkheden teruggebracht. De aldus vrijgemaakte bits worden gebruikt om het onderscheid tussen de volgende vier nieuwe mogelijkheden aan te geven:
a) S-correctie
b) stapelcorrectie
c) 2de orde 8-correctie
d) 2de orde 8-correctie, “absoluut”.

Nadere beschrijving:

a)   in het geval van S-correctie wordt het adresgedeelte van de opdracht met de inhoud van het S-register vermeerderd en het aldus gevormde adres stuurt de geheugenselectie. Dit in eerste instantie ten dienste van adresmodificaties, die via multiplicatieve of logische operatie’s tot stand zijn gekomen.

b)   Stapelcorrectie is een speciale vorm van S-correctie. Als neveneffect wordt S bij vaste, resp. drijvende komma operaties met 1 resp. 2 gewijzigd en wel: addi- tief bij uitopdrachten en subtractief bij inopdrachten. Deze versie is ingevoerd ter stroomlijning van stapel-operaties, ongeacht of deze operatie’s door ingebouwde opdrachten, dan wel door subroutines worden uitgevoerd.

c)  

2de orde 8-correctie. De 15 adresbits worden gesplitst in 5 + 10 ter representatie van twee adrescomponenten n1 (<31) en n2 (<1023). De 2de orde 8-correctie bewerkstelligt geheugenselectie op plaats n′, als n′ gegeven is door

n′ = M(M(8) + n1)+ n2

(waarbij de notatie “M(...)” is gebruikt om aan te geven “de inhoud van...”). Deze versie geeft de mogelijkheid om adrescomponent n2 te modificeren met de inhoud van èèn van 32 opeenvolgende geheugenplaatsen; de keuze in dit 32-tal wordt door n1 bepaald, de absolute ligging door het 8-register.

d)   2de orde adressering “absoluut”: in dit geval fungeert niet als boven M(n'), maar n' zelf als operand. Uit de aard der zaak is deze operatie slechts als in-opdracht zinvol. De versie is ingevoerd om de vorming van een adres n′ niet onherroepelijk aan selectie op plaats n' te koppelen.

Modificatie c) stelt ons in staat geheugenselectie te plegen in hoogstens 32 verschillende “lineaire geheugens”. De macht van deze versie wordt onder andere geillustreerd, dat ALGOL-objectprogramma’s in de X8 ongeveer anderhalf maal zo compact voorgesteld zullen kunnen worden als in de X1. (De berekening van bv. “(a + b)*(c + d)” vergt in de X8 nu vijf opdrachten in het objectprogramma tegen negen in de X1.) Dit, de ingebouwde drijvende opdrachten en de overall snelheidsverhouding maakt, dat de X8 als ALGOL-simulator 40 ȧ 50 maal zo snel zal zijn als de X1.

Versie c) is ingevoerd om geprogrammeerde operaties op de top van de stapel makkelijk als subroutine aan te kunnen roepen; een speciale subroutinesprong zal zijn link onder stapelcorrectie aan de top van de stapel wegzetten.

Van de versie’s a) en d) mag het profijt op een microscopischer niveau gezocht worden.