NCR-315 - geheugen / printer

Ferriet-kern geheugen

Het hoofdgeheugen van de 315 was een ferrietkerngeheugen. Het bestond uit kleine ijzermetalen ringetjes van ca 1 mm doorsnee, die op een raamwerk van zeer dunne draadjes waren gevlochten.
Elk ringetje kon op twee manieren gemagnetiseerd worden. De status van de magnetisatie werd voorgesteld door een '0' of een '1', en werd een binary digit (bit) genoemd. Binary is de engelse term voor tweetallig (een nul of een één).
Op een printplaat van 32 x 32 cm kon een hoeveel van 208 slabs worden geweven. Dit 'weven' mag u best letterlijk nemen, want een geheugenmatje bestond uit een vlechtwerk van 52 x 52 ringetjes en door elk ringetje gaan 4 uiterst dunne draadjes. Deze matjes werden handmatig in elkaar gezet door Chinese meisjes. Volgens zeggen de enigen die in staat waren dit zeer fijne handwerk uit te voeren op dagelijkse basis.
Om 10.000 slabs geheugen te krijgen had je ca 50 printplaten nodig die in bijna mans hoge kasten in frames geprikt waren.



geheugenplaat NCR-315





closeup van de geheugenplaat, de ferrietkernen zijn goed zichtbaar


Dit soort geheugen was niet het meest snelle. Het had namelijk ook nog eens de eigenaardigheid dat als je de status van een bit ging uitlezen, dit bit gelijk een neutrale magnetische waarde kreeg; daarna moest je de gelezen inhoud terug schrijven om de originele waarde weer terug te krijgen.

De voortdurende stroomstootjes wekten niet alleen een magneetveld op, maar zorgde ook voor radiostraling met een golflengte in het 700 Kilohertz gebied (de bekende 'Middengolf' op de radio).

parity

Hierboven werd al verteld dat een geheugenplaat uit 52 x 52 bits bestond en 208 slabs vormden.
Een kleine bereking leert echter dat 52 x 52 = 2704 bits : 208 een getal oplevert van 13 !
Dat komt omdat intern een slab uit 13 bits bestond: de 12 informatie bits plus een controle bit, het parity bit. Dit parity bit werd gebruikt om mogelijke fouten in het geheugen te kunnen opsporen. Het aantal bits in een slab met een '1'-waarde diende namelijk altijd oneven te zijn. Dit werd bij het wegschrijven van een slab zo door de hardware geregeld. Bij het uitlezen van een slab diende het aantal '1'-bits weer oneven te zijn, anders volgde er direct een machine stop en ging er een rood lampje (ME - Memory Error) branden op het console, zodat de technicus fouten kon gaan opsporen en herstellen.

Christmas Carols





Iemand heeft een keer ontdekt dat als er een radio op de geheugenkast staat en er een programma werd uitgevoerd op de 315, op een bepaalde golflengte een muzikale 'storing' ontstond.

Een paar techneuten vonden uit dat als je sommige computerinstructies achter elkaar herhaalde, er een fluittoon van een bepaalde toonhoogte werd opgewekt. Andere groepen instructies hadden een andere toonhoogte. Toen de toonladder eenmaal gevonden was, duurde het niet lang voordat er “muziekstukken” werden geschreven.

Een van de allerbekendste en meest verspreide programma's was: 'Christmas Carols', die zoals de naam ongetwijfeld al deed vermoeden, een aantal zeer populaire kerstliedjes ten gehore bracht.

Auxiliary memory

Behalve het normale interne hoofdgeheugen waarin programma’s draaien, had de 315 ook nog een hulpgeheugen, het auxiliary memory, bestaande uit:
  • 64 registers van elk 18 bits plus 1 parity bit
  • Accumulator van 8 slabs, elk bestaande uit 12 bits plus 1 parity
Het auxiliary memory maakte een integraal onderdeel uit van de processor en bestond, net zoals het hoofdgeheugen, uit een magneetkerngeheugen.
Om alle 40.000 slabs van het interne geheugen te benaderen, zijn 18 bits nodig (00.000 t/m 39.999), wat ook de lengte is van de registers. De registers werden gebruikt voor relatieve adresseringshandelingen en konden zodoende het adres van elke slab in het hoofdgeheugen bevatten.
De accumulator werd bij bijna elke handeling van de processor betrokken, ondanks dat dit nooit expliciet vermeld werd. Hij werd voornamelijk gebruikt om het tussen- en eindresultaat van berekeningen tijdelijk op te slaan.

Command Array

De lengte van een commando in de 315 was twee (single stage) of vier (double stage) slabs groot. Deze hardware commando's werden als volgt verwerkt.

Register 31 bevat op enig moment het adres van het volgende uit te voeren commando. De eerste slab wordt ingelezen en afhankelijk van wat hierin staat wordt de functie van de volgende cycle bepaald. In die volgende cycle wordt weer bepaald wat de functie van de hierop volgende cycle is enz. Van belang is te realiseren dat een commando niet in één klokcycle (6 µsec) kon worden uitgevoerd. Er waren afhankelijk van het commando meerdere cycles (van 6 µsec) nodig om een commando uit te voeren.

Iedere specifieke cycle had een nummer (count) en aan zo'n count waren een aantal termen (elektronische signalen) verbonden die op hun beurt weer de logic aanstuurden om het gewenste resultaat te bereiken.

De "termen" werden opgewekt in de (transformator) kernen die op het Command Array Board te zien zijn. Door één draad (door zo'n kern) wordt een puls gestuurd en de andere draden (termen) die door dezelfde kern lopen vangen die puls op. Veel termen liepen door meerdere kernen omdat een bepaalde functionaliteit in verschillende cycles (counts) nodig kon zijn. Iedere specifieke count had dus zijn eigen (transformator) kern.


Command Array Board




Printer

Behalve dat op deze afdrukmachine serieuze zaken geprint werden, zoals polissen, groene kaarten, en dergelijke, waren er ook enkele programma's voorhanden voor het leukere werk, zoals het aan het einde van het jaar afdrukken van een nieuwe kalender met illustratie:



kalender 1976




lees verder Computers:NCR-315 (3)