Digitale techniek/elektronica: DMANAGER (1975 – 1982)

DMANAGER (1975 – 1982)

De DMA-maNAGER (DManager) werd ontwikkeld en gebruikt in de periode tussen 1975 en 1982. DManager was een multi-microcomputersysteem voor interfacing.

Tot midden jaren ’70 was interfacing van apparatuur met computers tijdrovend en daardoor kostbaar. Dit omdat door fabrikanten veelal geen open hardware-interfaces en besturingssoftware daarvoor werd geleverd.
Een interface maakt communicatie mogelijk tussen een randapparaat en een computer. Als men de interface zelf als een apparaat beschouwt, moet deze worden aangesloten zowel op de computer als op het randapparaat.
De computeraansluiting bestaat uit drie verschillende functionele delen:

  • een geprogrammeerd kanaal (program channel) waardoor invoer- en uitvoerinstructies worden afgehandeld (start een activiteit),
  • een Direct Memory Access (DMA)-kanaal waardoor directe toegang tot het computergeheugen voor lezen of schrijven mogelijk is,
  • een interrupt-kanaal waarlangs de interrupt-signalen worden getransporteerd.

Een apparaat-interface heeft technisch gezien dus drie kanaalaansluitingen met een computer en één met het te koppelen apparaat.

Het idee ontstond om gebruik te maken van één koppeling (de drie kanaalaansluitingen) met de computer en om meer (rand)apparatuur aan te sluiten op de apparaat-interface, de DMA-manager (DMANAGER). Dan hoeft er alleen nog een specifieke aansluiting voor ieder (rand)apparaat gemaakt te worden. Voor het koppelen van zelfontwikkelde of speciale, gekochte apparatuur binnen de laboratoriumexperimenten zou dat een aanzienlijke tijd- en kostenreductie kunnen opleveren.
Dit idee werd gevoed door de opkomst van de microprocessor die de realisatie van een standaardinterface mogelijk maakte met een zodanige architectuur dat slechts weinig specifieke hardware behoefde te worden toegevoegd. De uiteindelijke werking werd daarbij bepaald door programmatuur. Met een dergelijk standaardisatie hoefden alleen de boven beschreven kanaalaansluitingen en de aansluiting met het randapparaat te worden ontworpen en gemaakt.

De ontwikkelde DMANAGER kon dus meer devices zoals processoren, tape-units, schijfeenheden en displays via één 38-bitsbrede databus op DMA-basis aan elkaar koppelen: 32 databits en een 6-bits addressingscode. De koppeling van ieder (rand)apparaat gebeurde via zijn specifieke Peripheral Oriented Processor (POP), een INTEL 8080 microprocessor met communicatiefaciliteiten, die standaard hardware had voor de aansluiting op de databus voor het informatietransport, de DMA-request signaallijn, de accept-signaallijn en een drie-bits state-bus. Daarnaast had de POP een Device Dependent Unit (DDU) met specifieke hardware om het (rand)apparaat aan te sluiten. Op de databus konden maximaal 60 POPs aangesloten worden; de andere adressen waren gereserveerd voor de prioriteitseenheid en de DMA-buffer eenheid.
De DMANAGER liet (rand)apparaten met elkaar informatie over de bus uitwisselen en via de DMA-buffer met het computergeheugen. Toegang en controle over de databus werd geregeld door een priority-unit.

Typen van communicatie:

  • Program Channel Unit naar een POP – data transport van computer naar randapparaat
  • POP naar DMA Buffer Unit – DMA data transport van (rand)apparaat naar computer
  • DMA buffer unit naar POP – DMA data transport van computer naar (rand)apparaat
  • POP naar interrupt unit – randapparaat stuurt een interrupt naar een computer
  • POP naar POP – datatransport tussen twee randapparaten
DMANAGER structure
DMANAGER structuur

Alle POP’s en de DMA Buffer Unit (‘eenheid’) hadden een variabele, programmeerbare prioriteit (0-127) wat betreft hun bus-transporten. Daardoor kon een unit, die slechts af en toe een tijdkritisch proces afhandelde, slechts gedurende die tijd beslag leggen op de buscapaciteit.
Innovatief was de prioriteitsregeling. Als een POP of de DMA Buffer Unit een transport over de bus aanvroeg werd dat toegewezen als zijn prioriteit op dat moment de hoogste was. Als de aanvoersnelheid groot genoeg was, kreeg de unit een claim op de databus. Was de aanvoersnelheid echter kleiner dan de buscapaciteit, dan deelde deze eenheid de bus met andere eenheden met een lagere prioriteit. Deze methode gaf een optimaal gebruik van de bus en voorkwam onnodig verlies aan buscapaciteit.

Eenheden die een transport wilden doen vroegen hierom door hun prioriteit op de bus te zetten. Deze aanvraag werd verwerkt door de Priority Unit. Die wees daarna de eenheid voor datatransport aan welke de hoogste prioriteit had. Daarna stuurde deze geaddresseerde eenheid één woord waarmee het antwoord gaf of het datatransport zou kunnen plaatsvinden.

DMANAGER concept
DMANAGER architectuur

Voor transporten van de DMA Buffer Unit (van en naar het computergeheugen) en andere bustransporten werd onderscheid gemaakt. DMA Buffer Unit transporten hadden altijd prioriteit boven andere transporten. Dataverkeer van de DMA Buffer Unit naar de aanvrager, dat is het resultaat van DMA-leesoperaties op het computergeheugen, hadden de allerhoogste prioriteit. Het ontwerp van de DMANAGER ging ervan uit dat deze gelijktijdige datatransporten moest kunnen faciliteren met een computergeheugen met een cyclustijd van 600 nanoseconden en met datatransporten van POP’s onderling.
Een noodzakelijke voorwaarde voor deze bustransportorganisatie op woordbasis was een snelle selectie van de volgende POP of andere eenheid die data wilde transporteren. Hiervoor moest de prioriteit van 64 eenheden kunnen worden vergeleken. De snelste selectiemethode was een parallelle scan via 128 buslijnen, terwijl de data-transportformaten konden volstaan met 40 lijnen. Een optimum werd gevonden in een verdeelde beslissingscapaciteit, één deel centraal in de Priority Unit en het andere in elke gekoppelde eenheid aan de bus. De prioriteiten werden daardoor verdeeld in vier groepen van 32. Het 7-bits prioriteitswoord van een unit kon dan worden opgevat als een 2-bits groepsaanduiding (0-3) en een 5-bits (0-31) niveau-aanduiding binnen die groep. De bus werd opgedeeld in een 32-bits niveauveld en een 4-bits groepveld. Een eenheid gaf te kennen een bustransport te wensen door in de systeemtoestand Bus Scan in het groepveld van de bus een van de vier bits te selecteren en in het 32-bits niveauveld het overeenkomstige prioriteitsniveau bit aan te wijzen dat overeenkwam met het niveau binnen zijn groep.
De beslissingstaak van de POP bestond uit het onderzoeken van het groepsveld naar hogere groepen en het intrekken van zijn aanvraag bij constatering van een hogere groep. Na stabilisatie bleef de hoogste groep van 32 (sub)prioriteiten op de bus en hieruit zocht de Priority Unit het hoogste actieve niveau. In de Priority Grant toestand zond de Priority Unit de hoogste prioriteit in gecodeerde vorm naar alle eenheden.

Omdat er geen handshaking plaatsvond, moest iedere verzendende eenheid bij elk transport, behalve de (32 bits) informatie tevens een adresseringscode op de bus zetten. De eenheid die de addresseringscode als de zijne herkend, plukte dan de datastroom van de bus. Indien dat niet mogelijk was, gaf de eenheid dat aan door een signaal op de ACCEPT-lijn te zetten.

Bij het ontwerp van de DMANAGER werrd gebruik gemaakt van de programmeertaal SIMULA waarmee de parallelle processen konden worden gesimuleerd op de Control Data 6400. Met modellen werd nagegaan of het basisontwerp van de DMANAGER geen timing of andere logische fouten had.

DMANAGER simulatieuitvoer
DMANAGER simulatieuitvoer

De DMANAGER is vanaf eind 1975 gebruikt voor de sturing en de verwerking van de informatie van het experimentele Phased Array radarsysteem FUCAS (voor FUCAS zie radarontwikkelingen). De DMANAGER-borden waren 18.5 bij 15.5 inch groot zodat ze in een 19″ rek pasten. Als hoofdcomputer voor FUCAS werd een Data General NOVA Eclipse S/200 gebruikt. Het ontwikkelen en testen van de hardware zorgde voor de nodige wirewrap-modificaties van de bedrading tussen de TTL-chips. Eens in de week werd een nieuwe tekening geproduceerd; tussentijdse wijzigingen werden op het schema aangegeven met een vierkleurenpen, voor iedere dag van de week een andere kleur.

CAIISA/FUCAS antenne
De CAIISA/FUCAS antenne

In 1981 werd programmatuur ontwikkeld om de hardware van de DMANAGER eenheden zoals de POP’s automatisch te controleren.

DMANAGER for the DG NOVA Eclipse
DMANAGER voor de DG NOVA Eclipse

 

DMANAGER board
Twee van de DMANAGER elektronicaborden met dip switches