DE1934365A1 - Automatische Programmschaltung bei Computern mit Multiprogrammierung - Google Patents

Automatische Programmschaltung bei Computern mit Multiprogrammierung

Info

Publication number
DE1934365A1
DE1934365A1 DE19691934365 DE1934365A DE1934365A1 DE 1934365 A1 DE1934365 A1 DE 1934365A1 DE 19691934365 DE19691934365 DE 19691934365 DE 1934365 A DE1934365 A DE 1934365A DE 1934365 A1 DE1934365 A1 DE 1934365A1
Authority
DE
Germany
Prior art keywords
signal
program
computer
central computer
channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19691934365
Other languages
English (en)
Other versions
DE1934365B2 (de
DE1934365C3 (de
Inventor
Kastner William Daniel
Watson William Joseph
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE1934365A1 publication Critical patent/DE1934365A1/de
Publication of DE1934365B2 publication Critical patent/DE1934365B2/de
Application granted granted Critical
Publication of DE1934365C3 publication Critical patent/DE1934365C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor

Description

Die Erfindung betrifft eine Kommunikationsscjialtung^ zwischen einem Zentralrechner und einer Peripheriesteuerung eines Multiprogramm-Computersystems mit einem Speicher zur Speiche'-rung von Daten sowie eines laufenden Programms.
Bis jetzt wurden die Operationsgeschwindigkeiten in datenverarbeitenden Computersystemen seit dem Erscheinen der in der US-Patentschrift 3,12o,6o6 offenbarten Eniac-Maschine laufend erhöht. Dies führte insbesondere als Folge unterschiedlicher Portschritte in der Technologie der Coraputerbauteile dazu, dass nicht mehr die Computerschaltbauteile den die Computergeschwindigkeit begrenzenden Faktor darstellen, sondern die Verbindungskanäle zwischen den Bauteilen,eines Zentralrechners
009818/UeO
A 37 Mo b kl - 137 7.7.69
und weiteren Baugruppen des Computers, insbesondere dann, wenn man zu den Kanälen die Speicher hinzurechnet. So konnte man die Schaltzeit zur Verarbeitung einer logischen Operation oder gewisser arithmetischer Operationen auf eine Spanne von weniger als loo Nanosekunden herabsetzen. Auf diese Weise verbraucht eine in einem Rechner durchgeführte arithmetische oder logische Operation wesentlich weniger Zeit als der den Datenspeicher enthaltende Kanal vom und zum Rechner, indem ein Abruf von Daten aus dem Speicher zum Rechner sowie ein Vorgang des Einschreibens von durch den Rechner erstellten Daten in den Speicher mehr Zeit als die Verarbeitungszeit im Rechner selbst benötigt.
Je umfangreicher nun eine Anlage wird, je mohr verschiedene Speicher und Peripherieorgane sie hat und je höher ihre Speicherkapazität wird, desto häufiger kommt es vor, dass im Verlauf einer Berechnung umfangreiche Anlagenteile stillstehen, weil eine Beendigung von Abläufen an anderen Orten abgewartet werden muss. Um nun eine grosse Anlage ebenfalls wirtschaftlich ausnutzen zu können, indem man diese wenigstens in der Nähe ihrer Verarbeitungskapazität betreibt, welche durch die Verarbeitungsgeschwindigkeit des Zentralrechners innerhalb des Computersystems bestimmt sei, wurden bereits Multiprogrammier- und Multiprozessier-Computer entwickelt, welche eine gleichzeitige oder quasigleichzeitige Bearbeitung mehrer Programme in einer zentralen Recheneinheit bzw. in mehreren Recheneinheiten durchzuführen gestatten. .
In den US-Patentschriften 3,337, 851I und 3,3^6,851 werden Hochgeschwindigkeits-Computer beschrieben, bei welchen eine ze.ntr.ale Verarbeitungseinheit aufgrund eines in ihr ablaufenden Benutzerprogramms periphere Dienstleistungen vermittels interner System-
009818-/U60
7.7.69 *
programme anfordern kann. Nach einer solchen Anforderung wartet der betreffende Computer, bis das Systemprogramm antwortet, indem es dem Benutzerprogramm bzw. der zentralen Datenverarbeitungseinheit anzeigt - und dies nach einer bestimmten Wartezeit -, dass eine Programmumschaltung in Form einer Gefügeumschaltung ( context switching ).von Seiten der zentralen Datenverarbeitungseinheit durchführbar ist.
Die Aufgabe der Erfindung ist nun, eine solche Gefügeumschaltung zu entwickeln, bei der effektiv keine Wartezeiten entstehen.
Diese Aufgabe wird für das Gerät der eingangs erwähnten Art gemäss der vorliegenden Erfindung dadurch gelöst, dass die Peripheriesteuerung einen Kennungsgeber aufweist zur Erstellung einer Kennung bezüglich eines nächsten im Zentral- ' rechner zu verarbeitenden Programms, insbesondere bezüglich des Vorhandenseins eines verarbeitbaren Programms sowie dessen Auswahl, dass ferner eine den Zentralrechner umfassende Teilschaltung vorgesehen ist zur Erstellung und Weiterleitung eines ersten Signals an die Peripheriesteuerung zur Anzeige, dass der Zentralrechner ohne Programmänderung weiterarbeiten kann, dass eine weitere den Zentralrechner umfassende Teilschaltung vorgesehen ist zur Erstellung und Weiterleitung eines zweiten Signals an die ,Peripheriesteuerung zur Anzeige einer erforderlichen Programmänderung im Zentralrechner, und dass schliesslich eine auf die Kennung und das zweite Signal ansprechende Teilschaltung vorgesehen ist zur Umschaltung des Zentralrechners auf das nächste zu verarbeitende Programm.
Durch die Erfindung wird der Vorteil erzielt, dass die durchschnittliche Verarbeitungsgeschwindigkeit im Computersystem
009818/U60
A 37 11o b . . -V-
kl - 137 «f
7.7.69
die Verarbeitungsgeschwindigkeit des Rechners sowie der zentralen Datenverarbeitungseinheit erreichen kann, indem von selten einer peripheren Datenverarbeitungseinheit sämtliche augenblicklich nicht bearbeiteten, jedoch im Computer befindlichen Programme vorsorglich und vorab daraufhin geprüft werden, ob sie zur Weiterverarbeitung bereit und verfügbar sind.
Zwcckmässigerwcise vrird in der erfindungsgemässen Gefügeschaltung von einer weitgehend fest verdrahteten Verknüpfung zwischen der peripheren Verarbeitungseinheit und der zentralen Verarbeitungseinheit Gebrauch gemacht, wodurch die Kommunikationszeit zwischen beiden Einheiten soweit verringert werden kann, dass die bisher übliche, insbesondere durch schwerfällige Programm! erarbeit und längere Wartezeiten gekennzeichnete Kommunikationsvorrichtung vermieden wird. Die erfindungsgemässe Gefügeschaltung ermöglicht also nicht nur die Vermeidung von Wartezeiten bei peripheren Dienstleistungsanforderungen oder Programmumschaltungen, sondern auch infolge einer durch Hardware ersetzten umständlichen Programmierung eine zusätzliche Einsparung von Speicherplatz.
Zweckmässigerweise lautet eine periphere Dienstleistungen anftrdernde Benutzerinstruktion "Anruf und Warten" ( SCW = System call and wait ), welche einen Anruf eines in der zentralen Datenverarbeitungseinheit ablaufenden und dann gestoppten Benutzerprogramms wegen peripherer Dienstleistungen auslöst. Da nun die periphere Datenverarbeitungsoinheit vorab bereits die weiteren, innerhalb der zentralen Datenverarbeitungseinheit in Wartestellung liegenden Programme daraufhin geprüft hat, ob sie augenblicklich weiter betrieben werden könnten, kann sich ein aufgrund des Befehls SCW abspielender Dialog zwischen der zentralen Datenverarbeitungseinheit und der peripheren Daten-
009818/U60
A 37 Mo b ■ '
kl - 137 £
7.7.69
.Verarbeitungseinheit darauf beschränken, das nächstverfügbare Programm zu erfahren, dieses an die Stelle des alten Programms zu setzen, sowie das bisherige alte Programm bezüglich seiner aktuellen Daten in einem vorbestimmten Reservespeicher abzulagern, bis dessen periphere Dienstleistungsanforderung erfüllt ist9 so dass es dann ebenfalls weiter betrieben werden kann. Die Vorbestimmung der Reservespeicheradresse kann durch einen Pestadressenspeicher erfolgen.
Zweckmässigerweise wird durch die erfindungsgemässe Gefüge schaltung auch eine weitere periphere Dienstleistungen anfordernde Instruktion "Anruf und Weiterverarbeitung" ( SCP = System call and proceed ) gebildet. Dieser Befehl fordert zwar periphere Dienstleistungen für das Benutzerprogramm an, indem auch sein aktueller Instruktionsinhalt zur Abfühlung von Seiten der peripheren Datenverarbeitungseinheit in einen eigens dafür vorgesehenen Zwischenspeicher gelangt; der Befehl fordert jedoch nicht eine Programmumschaltung wie im Falle des Befehls SCW. Ein dritter Befehl 'Fehler' zieht aus einem Teil der für den Befehl SCW durchgeführten Festverdrahtung den Nutzen,indem durch sein Signal eine Programmumschaltung ohne periphere Dienstleistungsanforderung erfolgen kann.
Zweckmässigerweise enthält das digitale Datenverarbeitungssystem einen Kanäle für Instruktionen und Daten aufweisenden Rechner, der eine Vielzahl arithmetischer, vorzugsweise einschrittig arbeitender Untereinheiten hat, die jeweils gepuffert sind und für die Lösung spezieller arithmetischer Aufgaben vorgesehen sind, wodurch eine gleichzeitige Verarbeitung einer Vielzahl von Operanden in einer Vielzahl verschiedener Verarbeitungsschritte durch eine Vielzahl von Instruktionen innerhalb des-
009818/1460
193A365
A 37 Mo b kl - 137 7.7.69
selben Rechners möglich wird. Der Rechner ist zweckmässigerweise für eine gleichzeitige Verarbeitung zweier Einzellängen-Operandenpaare oder eines Doppellängen- Operandenpaars in zwei Teile aufgeteilt ( Multiprozessierung).
Durch den Rechner wird es möglich, in einer Art Fliessbaridverfahren vorzugsweise einschrittig, d.h. mit jedem Tastpuls ankommende neue Operanden und Instruktionen fliessond zu verarbeiten und wieder abzuspeichern. Der Rechner vermag insbesondere grosse Datenblöcke mit vorsortierten Daten zu verarbeiten, wobei die erzielte Verarbeitungsgeschwindigkeit gleich der Rechengeschwindigkeit werden kann. Der Rechner kann Teil eines Computers sein, der neben den vorerwähnten Eigenschaften auch konventionelle Verarbeitungsformen aufweist. Der Computer stellt vorzugsweise einen Computer für wissenschaftliche Daten dar, die höchste Verarbeitungsgeschwindigkeiten zweckmässig erscheinen lassen, was durch die erfindungsgemäss erzielte Optimierung zwischen dem Zeitverhalten von Peripheriegeräten und den übrigen Systembaugruppen realisiert werden kann.
Die erfindungsgemässe Gefügeschaltung kann jedoch auch in Zusammenarbeit mit anderen Rechnern optimale Zeitanpassungen zwischen einer peripheren und einer zentralen Verarbeitungseinheit/anderer Computersysteme bewirken.
009818/U60
A 37 442 b
3.7.1969
Weitere Einzelheiten und Merkmale der Erfindung können den beigefügten Ansprüchen und/oder der folgenden Beschreibung entnommen v/erden, die der SrläuterUng eines in der Zeichnung dargestellten Ausführungsbeispiels der Erfindung dient. Es zeigen:
Fig. 1 Sine vorzugsweise Anordnung von Conputereinheiten .und -peripheriegeräten, welche die vorgeschlagene Erfindung enthalten.
Pig. 2 Ein Blockschaltbild zu Fig. 1.
Fig. 3 Ein Blockschaltbild zur Darstellung einer Gefügeschaltung zwischen einem Zentralverarbeiter und ei-. nem Peripherieverarbeiter der Fig. 1 und 2.
Fig. 4 Ein starker detailliertes Blockschaltbild nur Darstellung der Gefügeschaltung der Fig. 3.
Fig. 5 Sin Diagramm zur Darstellung einer Betriebsweise 'des Zentralverarbeiters gemä3 Fig. 1-4.
Fig. 6 Eine Puffereinheit zur geeigneten Einströmung beispielsweise ,von Vektordaten in einen Rechner.
Fig. 7 Ein Blockschaltbild des Zentralverarbeiters genä3 Fig. 1-4.
Fig. θ Einen Ewei-Kanai-Rechner ir. Zentralverarbeiter.
Fig. 9 Bauteile innerhalb des Zentralverarbeiters zur Durchführung der Gefügeschaltung genH3 Fig. 3 und &.
BAD O O 9 818/U 6 O
A 37 442
3.7.1969
Pig. 10 Ein Zeitteilverfahren zwischen Virtualverarbeitern ■ innerhalb des Peripherieverarbeiters gemHß Fig. 1 und 2.
Fig. 11 Ein Blockschaltbild des Peripherieverarbeiters.
Fig. 12 Den Zugang zu Zellen in einen Koramunikationsregis-' ter der Fig. 11.
Fig. 13 Einen Zuordnender Fig. 11.
Zum genauen Verständnis der hier" vorliegenden Erfindung wird es erforderlich} das Computersystem zur vorzugsweisen Verarbeitung naturwissenschaftlicher Daten, an dem die hier vorliegende Erfindung Anteil hat, zuerst allgemein und dann in seinen einzelnen Baugruppen und Bauteilen Ao weit zu beschreiben, daß die Tragweite der Erfindung insbesondere im Zusaramenspiel mit anderen Einheiten innerhalb des gesamten Gomputersystens richtig erkannt wurden kann'.
Zu Fig. 1:
Das Computersystem v/eist einen Zentralverarbeiter CPU 10 (Central Processing Unit) sowie einen Peripherieverarbeiter PPU 11 (Peripheral Processing Unit) auf. Ein Zentralspeicher CEM 12 - 15 (Central Kenory) besteht aus vier Dünnschichtspeicher-Untereinheiten 12 - 15 mit 160 Uano - Sekunden Zykluszeit bei 100 Nano-Sekunden durchschnittlicher Zugriffzeit und hat beispielsweise ein löschendes Speicherverhalten bein Auslesen. Der CEM 10-15 ist an die CPU 10 und an die PPU 11 angeschlossen und kann von konventioneller Bauart sein.
0CS9818/U60
A 37 442 b k-b 3*7.1969
Jede der Untereinheiten 12-15 hat eine 16K Wortkapazität·' von 16384 Worten. Hin Wort hat 32 Bits. 256 Bits = ' 8 χ 32'Bits = 8 Worte heißen "Wortgruppe", was "bedeutet, daß 2048 Wortgruppen ä. 256 Bits in einer Zentralspeicheruntereinheit liegen.
Eine Zentralspeichersteuerung MCU 18 (Memory Control Unit) stellt die' Lese-Schreibsteuerung für den CEIl 12-15 und damit das im allgemeinen notwendige Zwischenstück zwischen dem CEM 12-15 einerseits und der CPU 10 bzw. der PPU 11 ■andererseits dar. Das MCU 18 hat Puffereige'nschaften so-' wie Torrichtungen zur Ein- und Ausblendung (Gating), Kartierung (Mapping) und zum Speicherschutz der. Daten im CEM 12-15. ■
CPU 10, PPU 11, MCU 18 und CEM 12 bis 15 laufen synchron miteinander. Ein CPU-Takt erscheint alle 50 STano-Sekunden, ein PPU-Takt alle 65 ETano-Se künden. Weitere Speichereinheiten bilden Plattenspeicher DS 16, 17 (disc storages) mit einer durchschnittlichen Zugriffszeit von etwa 16 Killi Sekunden; Bandspeicher TS 21 -■ 26 (Tape storage's), von. t denen vorzugsweise die TS 21, 22 Einzollbänder und die TS 23 - 26 Halbzollbänder verarbeiten, wobei alle Bandspeieher zu Arbeitsspeicher- wie auch Ein/Ausgabezwecken verwendet werden können. Ein Kartenleser CR* 19 {card reader) dient zur Eingabe von auf lochkarten gespeicherter Information und ein Kartenstanzer CP 20 (card £uncli) zur Aus*- gäbe von Information auf gestanzte Lochkarten; ein Zeilendrucker t/S 27 (line printer) ist als Drüökerausgabegerftt vorgesehen* . *
Ais weiteres Ein/Ausgabe-Gerät dient eine Bil4»chirmkonsole G3 28 (oaailloSQOps console), !Zwei Bedienungspulte
Ö0S81 87 U60 OR1QfNAL lNSPECTED
/ * ttt it it
9 1 t t
• ) j * * I. I
t f » * J i t t
Ä 37 442 b k-b 3.7.1969
mit zwei beispielsweise Zweistrahlverhalten aufweisenden Bildschirmen und der PPU 11 gekoppelt. Letztere bildet nicht nur die Steuerungseinheit für den OC 28, sondern gleichermaßen auch für die CR 19, CP 20, LP 27 und TS 21 bis 26. Bin Bediener vermag über die OG 28 Befehle in das Computersystem einzugeben, die Prüfzwecken dienen hinsichtlich hardware oder software; gleichermaßen können über die OC Programmunterbrechungen an bestimmten Stellen durchgeführt werden, die es erlauben, den Portgang einer Operation zu überprüfen und aufgrund der erzielten Fortschritte in ihrem weiteren Ablauf zu beeinflussen. Letzteres kann bedeuten, daß man die Operation auf de,ra eingeschlagenen Weg weiterlaufen oder auf andere ¥ege mit eventuell anderen Daten verzweigen läßt.
Wie bei Computersystemen üblich, verfügt der Computer der Pig. 1 über mehrere Speicherh.ierarch.ien, beispielsweise über die folgenden vier: die CPU 10 mit dem schnellsten Speicher, die CBIi 12-15 mit dem etwas weniger schnellen, die DS 16» 17 Jftit dem noch langsameren und die TS 21 - 26 mit dem Speicher» der ia Vergleich, zu den vorerwähnten die größte mittlere Zugriffszeit hat» falls von ihm keine entsprechend vorsortierten Daten abgeru^
ii der fig. 1 verfügt über mehrere Untersystems» die neu sind und eine bemerkenswerte Steigerung der Verarbeitungskapazität speziell für die Fälle aufwei- / füll, bfi denen eine gro,8e Anzahl vorsortierter, in bestimm* t*n Gruppen geordneter Daten zur Verarbeitung anfallen*
erstie solches ujtierayetfna besteht in einer autoiaa« Qdfti&esehaliamg tischen Aer ®2V 10 und der WS ti
UifQ ; ' 0RIQJNÄL INSPEGTEÖ-
A 37 442 b M
Tc-Ta *
3.7.1969
des Computersystems, in welchem mehrere Programme gleichzeitig ablaufen und verarbeitet werden können*
Ein weiteres.solches Untersystem ist in der CPU 10 enthalten, welches es ermöglicht, Daten zur Eingabe in einen Rechner so zu speichern, zu gruppieren und dem Rechner in solcher Reihenfolge anzubieten, daß damit die Verarbeitungsgeschwindigkeit des Computers wesentlich erhöht werden kann.
Ein nächstes solches Untersystem 'betrifft einen Parällelrechner hoher Verarbeitungsgeschwindigkeit und Flexibilität, in welchem die Operanden in einer Art von Fließband-· verfahren verarbeitet werden.
Ein weiteres solches Untersystem schließlich betrifft ein verbessertes time sharing-Verfahren einer Vielzahl von Virtualverarbeitern innerhalb der PPU 11.
Zu Fig.12:
Die Systemorganisation des Computers der Fig. 1 ist durch eine Besprechung der im Blockschaltbild der Fig. 2 aufgezeigten Datenkanäle des Computers leicht zu umreißen. Ein Kanal 29 verbindet die MOU 18 mit einer puffernden Platten- und Trommelsteuerung DCU 30 (drum/disc control unit), von der ein Kanal zur DS 16 und ein anderer zur DS 17 weiterführen. Die DCU 30 ist ein einfacher, fest verdrahteter Biiusweck computer zur alleinigen Bewerkstelligung (Synchronisierung) des Datentransports zwischen dem Bit der HCU 18 verbundenen Zentrmlspeicher CSH 12-15 und den Platten-
009811/1460
A- 37 442 b
3.7.1969
speichern DS 16, 17 über den Kanal 29 nach Erhalt eines diesbezüglichen Peripheriebefehis.
Die soeben .erv/ähnten Kanäle sind bidirektrional, wobei in dem zwischen DS 16 oder 17 und DC 30 liegenden Kanal nur je Wort pro Taktzeit befördert wird. Im Kanal 29 werden dagegen gleichzeitig" 8 Worte, also eine Wortgruppe, zwischen^ der MCU 18 und der DCU 30 transportiert.
Der Anschluß eines Trommelspeichers DS 31 (magnetic drum storage) an die DCU 30 zur Erhöhung der Speicherkapazität mittlerer Zugriffszeiten wäre über einen weiteren bidirektionalen Kanal möglich.
Ein weiterer' 256 Bits simultan übertragender Kanal ist der zwischen der KCU 18 und der PPU 11 liegende bidirektionale Kanal 32, der je eine Wortgruppe zwischen dem Zentralspeicher CEIl 12-15 und dem Peripherieverarbeiter PPU 11 über die HCU 18 befördert.
Wie vielter oben bereits angedeutet, dient die PPU 11 als Vielzweckcomputer, dem u.a. die Steuerung des Datenflusses zu allen anderen Peripheriegeräten außer den DS 16, 17, 31 obliegt und an welchen deren Datenkanäle angeschlossen sind,
Beim nichtzerstörungsfreien Auslesen aus dem Zentralspeicher CETi müssen die ausgelesenen Daten regenerativ wieder eingespeichert werden, während nur eines der acht Worte einer Wortgruppe in der PPU 11 verarbeitet wird. Dies erweist sich schon deshalb als notwendig, da von der PPU 11 infolge der mehr oder weniger Iang3an arbeitenden Peripheriegeräte nur jeweils ein Wort aus der Achv/ortgruppe (maximal) benötigt wird. Ein gängiger Umschlagswert für den
009818/U60
TÖ34365
A 37 442 b
k-b "
3.7.1969
Umschlag von Daten innerhalb der PPU 11 für ein Peripheriegerät liegt nämlich bei etwa 100 000 Worten pro Sekunde.
Die PPU T1 enthält acht' Virtualverarbeiter, deren Mehrzahl so programmiert werden kann, daß jeder beliebige Virtualverarbeiter mit j-edem beliebigen Peripheriegerät gekoppelt werden kann. Die PPU 11 arbeitet mit Hilfe der Virtualverarbeiter gemäß dem im GEM gespeicherten Programm wobei diese'außerdem das in ier CPU 10 laufende Programm überwachen.
Ein Kanal 33 verbindet die CPU 10 mit der MCU 18, die ja ihrerseits durch Datenkanäle mit dem Zentralspeicher CEM 12 bis 15 gekoppelt ist. Im Gegensatz zu dem oben über die • PPU 11 gesagten kann die CPU 10 alle acht Worte einer Wortgruppe aus dem CEM 12-15 verwerten, wobei sie überdies die Fähigkeit besitzt, eine beliebige Kombination dieser acht Worte zu lesen oder zu schreiben. Im Kanal 33 werden vorzugsweise alle 50 Uano-Sekunden drei Worte transportiert, indem zwei Worte in die CPU 10 eingehen und ein Wort zur MCU 18 gelangt. - "
In späteren Abschnitten wird beschrieben, wie die CPU 10 Vektoroperationenen direkt und ohne Übersetzung über irgendeinen Compiler durchführen kann, wodurch lange Befehlsketten vermieden werden, da die CPU 10 solche aufgrund eines einzigen Makrobefehls intern durchführt. Die CPU hat diese Fähigkeit insbesondere deshalb, weil zwischen der MCU 18 und dem Rechner innerhalb der CPU 10 Puffer liegen, welche solche zur Bildung der erforderlichen Befehlsketten benötigten Microbefehle enthalten oder zu bilden gestatten. Zusätzlich enthält die CPU 10 den als sogenannten Schlauchrechner ausgebildeten Rechner.
009818/U60
A 37 442 b 3.7.1969
Ein Kanal 34 am Ausgang der MCU 18 ist zur Erweiterung der Computerkapazität vorgesehen, falls weitere CPU's oder dergleichen zusätzlich angeschlossen v/erden müssen.
Jeder der Kanäle 29 und 32 bis 34 hat über die MCU 18 direkten Zugriff in jede Untereinheit 12 bis 15 des Zentralspeichers CEM. Zur Erhöhung der Verarbeitungsgeschwindigkeiten werden im Computer und insbesondere im Zentralspeicher zeitlich vorzugsweise einander überlappende Arbeitszyklen verwendet. In der MCU 18 ist eine Vorrangsteuerung mit vorzugsweise festen Zuordnungen vorgesehen, um Anfragen an den Zentralspeicher in einer gewünschten Reihenfolge beantworten zu können. So werden Anfragen von den an die Kanäle 29, 32, 33, 34 unmittelbar angrenzenden Einheiten vorzugsweise in dieser Reihenfolge sowie vorrangiger behandelt als solche von Einheiten, die jeden nachgeschaltet sind, wobei Möglichkeiten vorgesehen wurden, die Prioritätsordnung beliebig abzuändern.
Zu Fig. 3:
In einem Blockschaltbild wird eine automatische Gefügeschaltung (context switching) gezeigt, welche eine Verbindung zwischen der PPU 11 und der CPU 10 darstellt und es ermöglicht, daß der Zeithaushalt der CPU 10 vorsorglich so eingeteilt werden kann, daß zeitraubende Dialoge zwischen ihr und der PPU 11 vermieden werden. Die Wirkungsweise der Schaltung basiert darauf, daß in der CPU 10 echt oder' vor- / zugsweise quasi-gleichzeitig mehrere Benutzerprogramme ablaufen können (multiprogramming) und daß andererseits die PPU 11 periphere Anfragen von Seiten dieser Programme zu erledigen hat, wodurch nun der PPU 11 die Aufgabe zukommt, den Ablauf der in der CPU 10 wirksam werdenden Benutzer programme planerisch festzulegen.
009818/1460 '
"V?3f365 fÖ34365
A 37 442 b .
3.7.1969
Durch zweierlei Befehle können die in der CPU 10 ausgeführten Benutzerprogramme von der PPTJ 11 periphere Dienstleistungen anfordern. Ein erstes solches Kommando lautet SGP (system call and proceed), ein zweites SCV/ (system call and wait). Der Befehl SCP kommt dann im Benutzerprogramm«vor, wenn es möglich ist, daß in der Verarbeitung dieses Programms ohne ein Abwarten auf den Vollzug der angeforderten peripheren Dienstleistung von Seiten der PPU 11 weitergegeschnit-ten werden kann; die PPU 11 wird also auf Grund der entsprechend gestellten Anforderung Daten, Adressen oder ein ganzes Programm sicherstellen bzw. zusammenstellen, welche im weiteren Ablauf des innerhalb der CPU weiterver-arbei- taten gleichen Benutzerprogramms erforderlich v/erden. Die PPU 11 überstellt dann das angeforderte Informationsmaterial bei passender Gelegenheit. Der Befehl SCP wird in Pig. 3 über eine Leitung 41 von der CPU 10 an die PPU 11 geführt.
Der Befehl SCW wird dagegen dann von einem Benutzerprogramm ausgegeben, wenn es letzterem nicht möglich ist weiterzuschreiten, ohne die von der PPU 11 angeforderte periphere Dienstleistung erhalten zu haben. Der Befehl SCiT wird über eine leitung 42 aus der CPU 10 an die in Fig. 3 zwischen der CPU 10 und der PPU 11 gelegene eigentliche Gefügeschaltung, geführt. Erfindungsgenäß analysiert die PPU laufend diejenigen Programme innerhalb der CPU 10, die augenblicklich festliegen und nicht weiterverarbeitet werden, um festzustellen, welches Programm davon als nächstes von der CPU 10 weiterverarbeitet werden sollte. Hat sie ein solches Programs gefunden und selektiert, setzt die PPU 11 unmittelbar eine Schaltfahne 44 (automatic switching flag), die hier durch ein Flip-Flop dargestellt wird. Wird nun in der CPU 10 bei Ablauf eines in ihr verarbeiteten Benutzerprogramms .
009818/1460
\A 37 k-b 3.7.1969
ein SCW-Befehl gefunden, entsteht über ein Und-Gatter 1JJ ein Signal "Umschalten" auf einer Leitung. *l5a vorausgesetzt, daß auch die Schaltfahne H^ gesetzt ist, Das Signal "Umschalten" aber verursacht in der CPU 10 die Durchführung der erforderlichen Umschaltung von dem auf den SCW-Befehl aufgelaufenen Benutzerprogramm
009818/U60
A 37 442 b
3.7.1969
•zu jenem Programm, das von der PPU 11 aus der Zahl der in Reserve befindlichen Programme als nächstkommendes selektiert worden war.
Mehr im einzelnen betrachtet spielt sich also folgendes ab: ist die Schaltfahne 44 gesetzt, kann bei Aufkommen eines Befehls SCW von Seiten der CPU 10 über das Und-Gatter 43 der Befehl. " Umschalten M auf der Leitung 45 zur CPU 10 gelangen und damit der CPU anzeigen, daß sie die Möglichkeit hat, statt des auf den Befehl SCY aufgelaufenen und nun vorerst in Wartestellung befindlichen Programms ein ande.-res, bisher in Reserve befindliches Programm oder Programmteil weiterzubearbeiten. Sie wird letzteres automatisch und ohne Verzögerung aufnehmen und betreiben, indem ihr durch Rückfrage bei der PPU 11 von dieser das betreffende Programm oder Programmteil angezeigt wurde. Hat nun aber beispielsweise die PPU 11 - etwa bei Fehlen solcher in Wartestellung befindlicher betriebsbereiter Programme - keine solche Anzeige zu machen, wird sie auch nicht die Schaltfahne gesetzt haben, wodurch von vornherein'ein Aufkommen des Signals "Umschalten" unmöglich gemacht wurde. In diesem Fall beendet bei Aufkommen des Signals SCW die CPU 10 zwar ebenso die Weiterverarbeitung des auf SGW aufgelaufenen Benutzerprogramms, behält dieses jedoch so lange, bis von Seiten" der PPU 11 die Schaltfahne 44 gesetzt wird. Bei Erscheinen des Signals "Umschalten" wird dann das die Schaltfahne 44 realisierende Flip-Flop rückgesetzt.
Durch die so ausgeführte automatische Gefügeschaltung wird ein sonst üblicher zeitraubender Dialog zwischen dem Zentral- und dem Peripherieverarbeiter (CPU und PPU) dadurch vermieden, daß die PPU 11 vorsorglich sämtliche in Reserve befindlichen Programme innerhalb der CPU 10 auf Einsatzbereitschaft, d*h. die Möglichkeit sofort weiterverarbeitet
0Q9818/U60
A 37 442 b 3-7-1969
zu werden, prüft und registriert. Ein weiterer Vorteil
entsteht dadurch, daß der Zentralverarbeiter Keine Schaltkreise zur Durchführung des sonst üblichen Dialogs mehr benötigt.
Zu Pig. 4:
Pig, 4 stellt ein Blockschaltbild dar, in welchem ein wesentlicher erster Teil der Gefügeschaltung der Fig. 3 noch stärker detailliert ist, so daß das Zusammenspiel zwischen CPU 10, PPU 11 und MGU 18 deutlicher wird. In Fig.-4 wird
der betreffende wesentliche Teil, der automatischen Gefügeschaltung als zur PPU 11 gehörig gezeichnet, indem er als
Ausgangsteil (interface section) der PPU 11 in Richtung
CPU 10 und HCU 18 dargestellt wird. Die PPU 11 enthält also in Pig. 4 links einer gestrichelten, senkrechten Linie
die Gefügeschaltung als ein Ausgangsteil der PPU und rechts der gestrichelten Linie die die PPU eigentlich charakterisierenden Schaltkreise, von denen jedoch nur Anschlüsse
zu erkennen sind.
Die Signalleitungen 41 und 42 für die Signale SCP und
führen von der CPU 10 zur PPU 11, indem die Eingänge eines Oder-Gatters 50 Signal SCP sowie Signal SCW aufnehmen, die Eingänge eines anderen Oder-Gatters 51 jedoch Signal SCV/
und ein Fehlersignal auf einer Leitung 53, die ebenfalls
aus der CPU 10 kommt. Die Signale SCP, SCV/ und Fehler ent- f stehen aufgrund bestimmter Programmbefehle im Benützerprograram, wobei im Falle der zwei letzteren Befehle ein Umschalten vom bisherigen 3enutzerprograam zu einen nächsten Programm gewünscht werden kann.
Ein grundsätzlich kurze Zeit nach Erscheinen der Signale
009818/1460
A 37 442 b
3.7.1969
SCP oder SCV/ oder Fehler aufkommender Tastpuls auf einer Leitung 54 verläßt die CPU 10 in Richtung PPU 11, um dort ein Flip-Flop L 73 (C/S loading strobe time) zu setzen. Es sei bemerkt, daß der Tastpuls und das von ihm getastete Flip-Flop L 73 entfallen könnten, wie auch die im folgenden besprochene -Schaltung der Fig. 4 anders aufgebaut v/erden könnte, ohne von dem in Fig. 3 gezeigten Prinzip abzuweichen.
Ein Signal auf einer der Leitungen 41,42 dient als Anfrage seitens der CPU 10 an die PPU 11. um Erlaubnis, daß die CPU 10 einen bestimmten Teil aus den von ihr augenblicklich ausgeführten Programm über den Kanal 33 und die MCU 18 in eine bestimmte, vorzugsweise reservierte Stelle des Zentralspeichers CSM 12 bis 15 einspeichern darf· Dabei erstreckt sich die Zeitspanne, innerhalb derer diese Stelle jenen bestimmten Teil des in diesen Augenblick von der CPU 10 verarbeiteten Programms enthalten soll, über die Zeit, welche die PPU 11 benötigt, diesen Programmteil abzufragen und aufgrund des vorgefundenen Informationsinhalts eine denentsprechende Instruktionsfolge ablaufen zu lassen. In dem hier vorliegenden Ausführungsbeispiel der Erfindung wird für eine solche Steueroperation einer Gefügeschaltung eine Wortstelle im CETi 12 bis 15 reserviert. Ein auf einer Leitung 55 aus der CPU 10 zur PPU 11 geschicktes Signal CCC (CPU call complete) meldet der PPU 11, daß ein mit dem Signal SCP oder SCi/ begonnener Ablauf beendet ist.
Auf einer Leitung 56 erreicht ein Befehl "Betriebserlaubnis" oder R (run) aus der PPU 11 die CPU 10,welcher, wie nachher erläutert wird, dazu verwendet werden kann, den Ablauf innerhalb der CPU 10 abzustoppen, sobald innerhalb der PPU 1t"bestinrate Betriebsbedingungen auftreten.
009818/U60
1934
A 37 442 b -k-b 3.7.1969
Auf einer leitung 57 wird ein Signal PSC (CPU switch com- . plete) als Quittiersignal von der CPU 10 zur PPU 11 aufgrund eines vorausgegangenen SCV7- oder Fehl er signals gesandt.. Die PPU 11 löst eine 0peration3reihe aus, vermittels der die an 'einein Punkt aufgelaufene CPU, an dem sie vorerst nicht weiterschreiten kann, veranlaßt wird, einen bestimmten Informationscode ins CEM zu transferieren, welcher den Gesamtzustand des Programmteils der CPU 10 charakterisiert, bei welchem sie die Verarbeitung des Programms unterbrechen muß. Nach solcher Abspeicherung wird nun die CPU 10 in ei-. nen gänzlich neuen Zustand versetzt, aus dem sie heraus ein neues Programm ausführen kann. Dieses Programm beginnt bei den Zustand, der dem Informationscode entspricht, mit dem die CPU nun versehen wurde. Erscheint also ein solches Signal PSC auf der Leitung 57, kann die PPU 11 wiederum auf den Leitungen 41 , 42 oder 53 nachfolgend erscheinende Signale SCP, SCVi oder "Fehler" beantworten, '/ie noch gezeigt wird, registriert die PPU 11 das auf der Leitung 57 erscheinende Signal und bringt dementsprechend das nächste Programm sowie die von der CPU 10 zu verarbeitende Information in Bewegung, sobald ein SCV/- oder Fehlersignal als nächstes auf den Leitungen 42 bzw. 53 erscheint.
Die Leitung 45 der Fig. 3 und 4 zeigt durch ihr Signal "Umschalten" oder PS (Proceed with switching) der CPU an, daß letztere die Umschaltung von dem einen zu einem andern Benutzerprogramm vornehmen kann.
Ein auf der Leitung 58 von der PPU 11 zur CPU 10 gesandtes Signal "Anrufen" oder PC (proceed with call) sagt letzterer, daß die bestimmte Stelle im GEH verfügbar ist.
Sin Signal 1-3C auf einer Leitung 59 zeigt, die MCU 18 be-
009818/U60
A 37 442 b k-b 3.7.1969
M ■ tt
treffend, an, daß ein Schaltbefehl durchgeführt wurde; das Signal geht von der IIGII 18 zur PPTJ 11 und auf ein Und-Gatter 64, dessen zweiter Singang die das Signal PSO führende Leitung 57 bildet. Bei erfüllter Und-Bedingung an diesem Und-Gatter wird die PPU 11 in die lage versetzt, einen nächsten Zustandsweehsel für die CPU vorzubereiten. Eine von der PPU 11 zur MOU 18 weisende Leitung 60 führt dasselbe Signal " Umschalten" wie die obengenannte Leitung 45; das Signal zeigt der MCU 18 an, daß sie den Schaltbefehl ausführen kann.
Wie bei' der Besprechung der Fig. 2 bereits erwähnt, transportieren die Kanäle 32 und 33 insbesondere acht Worte = 256 Bits gleichzeitig zwischen der PPU und MCU bzw. der CPU und MCU, d.h. jeweils einen ganzen Wortblock.
Wie ebenfalls erwähnt, hat die PPU 11 ein zur Gefügeschaltung gehöriges Ausgangsteil. ZIu letzterem gehören nach Fig. 4 zehn Flip-Plops, das ist ein Flip-Flop C 71 (call request von der CPU), ein Flip-Flop S 72 (switch request von der CPU), das Flip-Flop L 73 (O/S loading strobe tine), ein Flip-Flop CC 74 (call completed) ein Flip-Flop R 75 (run order für CPU), das Flip-Flop AS 44 (automatic switching flag), ein Flip-Flop AG 77 (automatic calling flag), ein Flip-Flop, SC 78 (switch completed), ein Flip-Flop PS 79 (proceed a switch operation) und schließlich ein. Flipr Flop PC 80 (proceed a call operation). Weiterhin gehören zum Ausgangsteil die Oder-Qatter 50, 51, die Und-Gatter 43, 64» weitere Und-Gatter 61» 62» 63, 65,, 66, 67 sowie ein weiteres Oder-Gatter 68«
Die Flip-Flops können einfache gleichstromgekoppelte RS«- Flip-Flapa s,ein, de.ren Setzeingang durch S, Rüoksatzein«
A 37 442 b k-b 3.7.1969
gang durch, R, Ja-Ausgang durch 1 und He in-Ausgang durch 0 gekennzeichnet sei. Die Ja-Ausgänge tragen die Bezeichnung des Flip-Flops, beispielsweise C auf einer Leitung 81 als Ja-Ausgang des Flip-Flops C 71 .
Der Ausgang des Oder-Gatters 50 führt an einen Eingang des Und-Gatters 51. Der Ausgang des Und-Gatters 61 bildet den Setzeingang für das Flip-Flop C 71. Der Hein-Ausgang des letzteren ist mit einem zweiten Eingang des Und-Gatters 61 sowie mit je einem Eingang der Und-Gatter 62 und 63 verbunden, Der Ausgang des Oder-Gatters 51 ist mit dem zweiten Eingang des Und-Gatters 62 verbunden, dessen Ausgang den Setzeingang des Flip-Flops S 72 bildet. Der iTein-Ausgang des letzteren ist mit je einem Eingang der Und-Gatter 61 bis 63 verbunden. Der Tastpuls der Leitung 54 bildet den Setzeingang für das Flip-Flop L 73, dessen Ja-Ausgang an je einen der Eingänge der Und-Gatter 61 bis 63 führt.
Die Wirkungsweise der aus den Flip-Flops 71 bis 73, den Und-Gattern 61 bis 63 und den Oder-Gattern 50 bis 51 bestehenden Baugruppe ist die, daß. auf einer Ausgangsleitung 81 dann ein Signal erstellt wird, wenn ein "Anruf" auszuführen ist, daß andererseits auf. einer Ausgangsleitung des Ja-Ausgangs des Flip-Flops S 72 dann ein Signal S erseheinen soll, wenn eine Schaltfunktion durchzuführen ist. Die Flip-Flops 0 71 und S 72 können erst dann gesetzt werden, wenn auf der Leitung 54 der Tastpuls erscheint, wodurch bei Zwi seilen schaltung des Flip-Plops L 73 dessen Ja- ' Ausgang in Forin eines Zeitblendesignals L an, je einen. Sin-v gang der Und-Gatter 61, 62 wirksam wird. Das den "Anruf" ' ■kennzeichnende F,lip-?lop C 71 kann nur dann gesetzt werden, wenn es selbst und das Flip-Flop S 72 bisher auf Aus wa-
A 37 442 b
3.7.1969
ren. In gleicher Weise wird das Signal 9' auf der Leitung 82 als der Sin-Zustand des Flip-Plops S 72 nur dann zustande kommen, falls es selbst sowie das Flip-Flop C 71 vorher auf AUS waren.
Eine Rücksetzleitung 83 führt zu den Rücksetzeingängen der Flip-Flops C 71 und S 72, wobei diese Leitung Signale entsprechend dem in der PPU 11 laufenden Programm führt, wodurch' *iach Beendigung einer Anruf- oder Schaltfunktion ein solches Rücksetzsignal für diese Flip-Flops erscheint.
Es ist zu beachten, daS die Leitungen 81 und 82 an Anschlüssen 84 a und 84b führen, die zu einer Gruppe von Anschlüssen 84 gehören, welche sämtlich programmzugänglich oder-abhängig sind. So führt der Ja-Ausgang des Flip-Flops CC 74 auf einen entsprechenden Anschluß 84d, der Ja-Ausgang des Flip-Flops R 75 auf einen Anschluß 84e, der Ja-Ausgang des Flip-Flops AS 44 auf einen Anschluß 84f, der Ja-Ausgang des Flip-Flops AC 77 auf einen Anschluß 84g sowie der( Ja-Au3gang des Flip-Flops SC 78 auf einen Anschluß 84h; sämtliche Anschlüsse 84a bis 84h sind also programmzugänglich, was vielter unten näher erläutert wird, soweit dies für ein -Verständnis einer die Ge füge schaltung betreffenden Operation erforderlich ist.
Signal CCC auf Leitung 55 bildet den Setzeingang des Flip- Flops CC 74, welches nach Beendigung eines Anrufs auf 3IIT geht und durch Signal CC am Anschluß 84d dies der PPU meldet, wonach letztere über eine Leitung 85 das Flip-Flop CC 74 rüoksetzt.
Eine den Programm zugängliche Leitung 86 führt zum Setz-
009818/U6 0
A 37 442 b
3.7.1969
eingang des Flip-Flops R 75. Dessen Ja-Ausgang erzeugt im Falle des Ein-Zustandes des Flip-Flops ein R-Signal, .auf der Leitung 56 sowie am Anschluß 84e, v/elcher vom Programm abgefragt werden kann. 3s sollte beachtet werden, daß das Flip-Flop R 75 dann automatisch rückgesetzt wird, wenn das Oder-Gatter 68 ein Ausgangssignal aufweist. Somit ist also die PPU 11 in der Lage, den Zustand des Flip-Flops R 75 zu bestimmen.
Das Flip-Flop AS 44 hat einen Setz- und einen Rücksetzeingang, die über Leitungen 87 bzw. 88 dem Programm zugänglich gemacht sind* Der Hein-Ausgang des Flip-Flops ist mit einem Eingang des Und-Gatters 66 verbunden, während der Ja-Ausgang des Flip-Flops einerseits zum Anschluß 84f führt, welcher programraabfragbar ist, und andererseits über eine Leitung 89 mit einem Eingang des Und-Gatters 43 verbunden ist. Der Ausgang des Und-Gatters 66 führt zu einem Eingang des Oder-Gatters 68, dessen zweiter Eingang mit dem Ausgang -des Und-Gatter£ 67 verbunden ist. 3±n Eingang des Und-Gatters 67 wird aus dem Nein-Ausgang des Flip-Flops AC 77 gespeist, während ein zweiter Eingang des Und-Gatters über die Leitung 81 Verbindung mit dem Ja-Ausgang des Flip-Flops C 71 hat. Sine programmabhängige Eingabeleitung 91 führt zum Setzeingang des Flip-Flops AG 77, während eine entsprechende Leitung 92 an den Rücksetzeingang des Flip-Flops angeschlossen ist. Die '.rirkungswei3e der Flip-Flops AS 44 und AC 77 sowie der ihnen direkt zugeordneten Schalter ist die, daß axt ihrer Hilfe den in der PPU 11 befindlichen Programm ermöglicht wird, entsprechend den zuvor gesetzten Flip-Flop3 C 71 und S 72 die den weiteren Ablauf bestimmenden './eichen zu stellen.
Das Flip-Flop SG 78 ist zur Abfrage für die PPU 11 vorge-
009818/ U60
A 37 442 b
3.7.1969
sehen, wodurch ihr ermöglicht werden soll, zu bestimmen, wann eine Schaltoperation beendet ist. Das Flip-Flop PS erstellt an seinem Ja-Ausgang, d.h. auf den Leitungen 45 und 60 das Signal "Umschalten" oder PS, wodurch der CPU 10 und der MGU 18 angezeigt wird, daß beide die Ausführung des Schaltbefehls in Angriff nehmen sollen. Der Ja-Ausgang des Flip-Flops PC 80 erstellt auf der Leitung 58 ein Signal "Anrufen" (PC), welches der CPU anzeigt, die Ausführung des Anruf-Befehls in Angriff zu nehmen, wobei allerdings das Flip-Flop nur dann auf SIN geht, wenn zuvor die Flip" Flops C 71 und AG 77 gesetzt wurden.
Durch die bisherigen Erläuterungen wurde die Art dargestellt, in v/elcher eine Umschaltung von einem zu einem anderen Programm innerhalb der CPU 10 automatisch durchgeführt wurde unter Berücksichtigung der innerhalb der CPU bestehenden Bedingungen und "in Abhängigkeit von der durch die PPU durchgeführten Steuerung. Der Ablauf soll als Operation einer Ge füge schaltung bezeichnet, v/erden, deren Boole'sehe Gleichungen als Kurzform der obigen Diskussion in der Tabelle I wiedergefunden werden.
Die Besonderheiten der im Ausgangsteil zwischen der CPU und der eigentlichen PPU 11 realisierten Schaltung zur entsprechenden Verarbeitung von SCV/-, SCP- und Fehlersignalen sind:
a) Eine CPU-Anfrage kann sein:
1. Eine durch Fehler verursachte Anfrage an die Gefüge schaltung.
2. ein SCP-Anruf oder
3. ein SGtf-Schaltbefehl.
b) Eine CPU-Anfrage wird .in einer Taktzeit verarbeitet.
009818/USO ;
A 37 442 b *£
k-b ■ . . ■ <t ■
3.7.1969
c) Die Programmumschaltung iind/oder Erledigung eines Anrufs erfolgt automatisch, ohne die eigentlichen Schaltkreise der PPU zu beanspruchen, indem von der eigentlichen PPU getrennte "Schaltfahnen"-Slenente für Anruf und Umschaltung benutzt v/erden.
d) Eine bestimmte Speicherstelle des CSI-I v/ird bei Durchführung einer SOP- und SC'J-Konraunikation verwendet.
e) Bei einem SGVi-Befehl werden getrennte 3rfüllungssignale für Anruf, und Schalten verwendet, wodurch es möglich wird, die Anrufoperation vor der Schaltoperation und unabhängig von. dieser zu Snde zu führen.
f) Eine Steuerung für die Betriebserlaubni3 und da3 Stoppen der CPU wurde vorgesehen.
g) Unterbrechung für die PPU, sobald automatisch gesteuerte CPU-Anfragen erledigt sind. Diese Unterbrechung kann entschleiert werden (mas-ked off).
Ea werden insgesamt zehn Flip-Flops für das Ausgangsteil verwendet und in Tabelle I gemäß der in Pig. 4 gezeigten Schaltung aufgeführt. V,rie später anhand der Pig. 11 erläutert -wird, stellen diese zehn Flip-Flops als sogenannte "CR-Bits" solche Bits dar, die in einem oder mehreren ".'/orten eines Kommunikationsregisters 431 (Fig. 11) enthalten sind.
Um schließlich die bei der Gefügeschaltung vorkommenden Operationen darzustellen, werden in den Tabellen II und III zwei repräsentative Ablaufbeisplele aufgezeichnet., indem in beiden Fällen die Möglichkeiten "nur Anrufen" (Befehl SCP), "nur Schalten" „("Fehler"meldung), wie auch "Anruf und Schalten" (Befehl SC¥) betrachtet werden. ' , '
G0S818/H60
A 37 442 b
3.7.1969
Zu Pig.' 5:
Das. Computersystem der hier vorliegenden Erfindung eignet sich nicht nur für skalare" Operationen, sondern insbesondere auch zur Verarbeitung laufend veränderlicher, vektori-eller Daten (streaming vector data), welche den Rechner insbesondere wiederholt zugeführt werden; das Conputersysten v/eist also eine besondere Eignung für Vektoroperationen auf.
Eine typische Vektoroperation ist die Addition zweier Vektoren ä+B=C (mit A, B und C als n-dinensionalen, linearen Gebilden) in Form einer Addition ihrer Komponenten a.+b.=c.. Die Vektoren A und B werden durch Kanalrechner so hindurchgeführt, daß die entsprechenden Komponenten addiert werden; auf diese Weise ergibt sich der Vektor C.
Eine weitere häufig benutzte Operation innerhalb des Cornputersystens ist die Bildung eines skalaren Produkts (Α·3) =C oder eines Vektorprodukts jCx3j=Ci. Das Resultat wird wiederum so gewonnen, dai? die Vektoren in ihre Komponenten zerlegt und gemäß
c = ΣΖΓ a. b.
i=1 x x
arithmetisch errechnet werden, wobei der Cosinus oder Sinus des Winkels zwischen A und 3 berücksichtigt wird.
Dies "kann auf eine Multiplikation von Determinanten oder Matrizen erweitert werden. Heißt die eine Determinante A, die andere B, so folgt für die resultierende Determinante C in Falle eines dreidinensionalen Raun-s:
BAD ORIGINAL
0 0981 8/ 1 460
A- 37 442 b
3.7.1969
b11 b12 b13 b21 b22 b23 b31 b32 b33
a11 ai2 a13
a21 a22 a23
a31 a32 a33 U31 U32 U33 U31 U32 U33
C21 C22 C23
mit beispielsweise
und allgemein
i 3
wobei ρ der G-rad der Determinante ist.
Die Erzeugung des Elementes C11 kann man als eine Multiplikation der ersten Reihe der Determinante A mit der err. sten Spalte der Determinante 3 durchführen. Sin Element C12 kann als Multiplikation der ersten Reihe der Determinante A mit der zweiten Spa—Ite der Determinante 3 entsprechend erzeugt werden; ein Element C17 aus der Multiplikation der ersten Reihe der Determinante A mit der dritten Spalte der Determinante 3.
Vektoriell ausgedrückt kann man so sagen: der Reihenvektor 1■der Determinante A dient als Operandenvektor für drei Vektoroperationen mit den Spaltenvektor 1 oder 2 oder 3 der Determinante B zur Erzeugung des Reihenvektors 1 der resultierenden Determinante C. In solcher ϊ/eise wird nun noch zweimal verfahren. Ein erstes llalr indem jetzt statt des Reihenvektors 1 der Reihenvektor 2 der Determinante A und ein zweites Mal, indem jetzt der Reihenvektor 3 der De-
terminante A zur Erzeugung der Reihenvektoren 2 bzw. 3 /resultierenden Determinante C verwendet wird.
Eine solche skaläre Vektormultiplikation in Form einer Katrixnultiplikation kann demnach so durchgeführt v/erden, daß zwei verschiedene Schleifen mehrmals durchlaufen werden.
009 818/U60
1934385
A 37 442 b
3.7.1969
Diese Schleifen seien als innere bzw. äußere Schleife
bezeichnet. Pur das Beispiel der Matrixmultiplikätion sei .die innere Schleife zur Indizierung von Element zu Element innerhalb einer Reihe der Matrix C vorgesehen, die äußere Schleife dagegen zum Portschreiten von Reihe zu Reihe innerhalb der Matrix C.
Die in Pig. 5 hinsichtlich ihrer Ablaufschleifen skizzierten Operationen, werden in einer gemäß Pig. 6 aufgebauten
CPU in problemorientierter, optimierter Weise realisiert.
Zu Pig. 6:' . ■
Bei dem hier beschriebenen Computersystem weist die CPU 10 eine hohe Datenverarbeitungskapazität auf, wobei ihre Verarbeitungsgeschwindigkeit wesentlich über der Geschwindigkeit liegt, mit der Daten aus einem Speicher ausgelesen und in diesen wieder eingespeichert werden können. Um nun die
hohe Verarbeitungsgeschwindigkeit innerhalb der CPU 10 zur Bearbeitung großer, vorsortierter Datenblöcke, wie bei Vektoroperationen, ausnutzen zu können, wurde zur diesbezüglichen Anpassung zwischen dem Rechner und dem Speicher ein Zwischenstück geschaffen, das speziell der Forderung auf
höchste Verarbeitungsgeschiirindigkeit Rechnung trägt. Das
Zwischenstück wird im folgenden als Puffer MBU 100 (memory buffer unit) bezeichnet und ist' in Pig. 6 als das zwischen der MCU 1.8 und dem Rechner 101 befindliche Teil erkennbar. Es wird als zur CPU 10 gehörig betrachtet und hat über den Kanal 33 Verbindung mit der MCU 18; andererseits führen
zv/ei Datenkanäle 100a und 100b von der MBU 100 zum Rechner 101, der hier als Vektorrechner bezeichnet werden kann,
sowie ein Datenkanal 10Oe vom Rechner 101 zur M3U 100. Aus den Kanälen 100a und 100b werden Operanden zum Rechner
009819/U6Q
A 37 442 b
3.7.1969
geschafft, während der Kanal 10Oc das in letzterem erstellte Resultat zur MBU 100 zu transportieren gestattet, von wo es beispielsweise über die MCU 18 zum ΜΞΜ 12 bis 15 gelangen kann.
Zu Fig. 7: .
Das anhand der Fig. 6 über den in der CPU 10 enthaltenen Puffer 11BU 100. Gesagte kann anhand der die CPU stärker detaillierenden Pig. 7 in seinem Zusaramenspiel betrachtet werden, um die Hochgeschwindigkeitskommunikation zum und vom Rechner 101 zu erläutern. Wie anfangs erwähnt, befinden sich im Zentralspeicher CM Wortgruppen von 256 Bits d 32 Bit-Worten, wobei jeweils eine Wortgruppe gleichzeitig ausgelesen oder eingeschrieben werden kann. Die Wortgruppen v/erden aus dem CEM über die MCU 18 und den Kanal 33 zu einer Toreinheit MBG 18a (memory bus gating) gebracht. Der MBG 18a ist die ITBU 100 nachgeschaltet, 'tile anhand der Fig. 6 gezeigt, liegen zwischen letzterer und dem Rechner 101 drei Kanäle 100a, 100b und 100c. Der Kanal 100a ist der Ausgangsteil eines Operand A Registerkanals 102, 103, welcher zwei in Serie geschaltete Puffer A1 und A enthält. In gleicher Weise ist der Kanal 100b Ausgangskanal eines Operand B Registerkanals 105, 106 aus zwei seriengeschalteten Puffern B1 und B. Kanal 100c dagegen bildet den Eingangskanal für einen Resultat C Registerkanal 108, 107 aus zv/ei seriengeschalteten Puffern C und G1. Die Reß;ister-
A und B puffern die Operanden kanäleyTür die Operanden/auf dem Weg zwischen CEM und Rech- / ner. Der Resultatregisterkanal dagegen puffert die vom Rechner 101 ausgegebenen Ergebnisse, bevor sie beispielsweise in Wortgruppen gesammelt zum CSM 12" bis 15 zurückgeschafft werden.
Der Puffer 102 ist so gebaut, da8 er insbesondere mit jeder
009 8 1 8/ U6 0
A 37 442 b
k-b ■
3.7.1969
achten Taktzeit auf einmal eine aus acht Y/orten bestehende Wortgruppe empfangen und abspeichern kann. Synchron mit dem Puffer 102 wird jede Gruppe zum Puffer 103 weitergeschafft. .-32 Bit-Worte werden vom Puffer 103 sum Rechner101 so transferiert, daß ein.Wort pro Taktpuls bewegt wird. Es sollte Tieachtet werden, daß je nach Art der Operation, die der Rechner 101 auszuführen hat, zu jeder Taktzeit ein vojn Rechner erstelltes Resultat aus den Puffern 108 und 107 zum.CSM gebracht werden kann. Das Coraputersystein vermag ebenso hochwirksarae Operationen auszuführen wie auch solche mit geringer Befehlsgeschwindigkeit. Ein Beispiel höchster Befehlswirk3ämkeit bei einer Operation der MBU 100 und des Rechners 101 bietet die Addition von Vektoren, bei der die zwei Operanden aus den Puffern 103 und 106 zu jeder Taktzeit zum Rechner 101 geführt werden, und wo vom Rechner 10.1 zu jeder Taktzeit eine Summe erstellt wird, welche unmittelbar vom Puffer 108 aufgenommen wird.
In der CPU 10 befindet sich weiter eine allgemeine Datei Ϊ20 bis 125»welche Register zur Aufnahme von Adressen bzw. adressierbare Register enthält;es sind dies Basisregister 120, 121., Generalregister 122, 123, ein Indexregister 124 sowie eine Register, enthaltende Vektorparaneter-Datei 125. Jedes Register 120 bis 125 hat zum Rechner 101 Zugang über einen geneinsanen Kommunikationskanal 104 und eine Einheit OFS 126 (operand fetch/store ünit), welche insbesondere als Burchgangskanal für Operanden in beiderlei Richtung vorgesehen ist. Sine Einheit CCU 127 (CPU context switching control unit) dient unter anderem der Steuerung des Rechners 101, indem sie ihre Steuersignale aufgrund der von einer Einheit IBU 127a (instruction buffer unit) gelieferten Konnandos bildet. Die Einheit I3TJ 127a dient der Pufferung von Befehlen« die aus einer Instruktions-Datei Ii1U 128 (instruc-
009818/14 6. Ö
A 37-422 b
3.7.1969
tion fetch unit) stanmen. Die IFU 128 beliefert nicht nur •die IBU 127a mit Befehlen, sondern außerdem eine Index-.adressiereinheit IAU 126a mit Adressen, wobei der Ausgang der IAU 126a zur OFS 126 führt. Instrulctionsdateien 129 und 130 bilden puffernde Kanäle für einen Instruktionsfluß vom CEH 12 bis 15 zur instruktionsdatei IPU 128.
Eine Steuereinheit SSH 131 (statur storage and retrieval gating) hat zu allen in Pig. 7 gezeigten Einheiten, außer den Dateien 129 und 13Q, Verbindung, wozu auch eine Leitung
18a
zwischen ihr und der MBG/gehört. Zur Aufgabe der SSR 131 gehört, aufgrund eines Befehls SCV/ oder "Fehler" (Fig. 4) den gesamten augenblicklichen Zustand der CPU 10 vorzugsweise zum CEM 12 bis 15 zu schaffen und dafür einen neuen Zustand in die CPU einzuführen, so daß der Ablauf eines neuen Programme begonnen werden kann.
Die IiBU 100 enthält eine MBU-Datei aus einer Parameter-Datei 132 und einer Arbeits-Dätei 133, welche vorzugsweise Register enthalten. Die Parameter-Datei 132 hat über einen Kanal 134 und den Kommunikationskanal 104 Verbindung zur Vektorparameterdatei 125. Der Inhalt der Vektorparainet erDatei 125 wird in die Parameter-Datei 132 übertragen, sobald eine spezielle Vektorinstruktion z.B. aus dem CEM zur Instruktions-Datei IFU 128 kam* V/ird also beispielsweise von der IFU 128 eine solche Vektorinstruktion aufgenommen, erfolgt unmittelbar in Maschinensprache eine Übertragung der Parameter-Daten aus der Datei 125 zur Datei 132. Die Ausführung der daraufhin erfolgenden Operationen erfolgt nach einen Kanalverfahren vermittels der !Einheiten IAU 126a, IBU 1.27a sowie 0?S 126 und CCU 127. Dies bedeutet im einzelnen, daß während der Zeitspanne, in welcher der Rechner 101 eine bestimmte Operation durchführt, die Sin-
0098 1 8/ U60
A 37 442 b
3.7.1969
hexten OPS 126 und COU 127 die nächste nachfolgende Operation zur Durchführung im Rechner 101 vorbereiten. In derselben Zeitspanne bereiten auch die Einheiten IATJ ί 26ä
und IBU I27a die nächstnachfolgende Operation vor. Schließlich nimmt während derselben Zeitspanne die Instruktionsdatei IPU 128 die daraufhin folgende Instruktion auf. Letztere Instruktion wird somit im Rechner 101 drei Operationen
später als die augenblicklich v/irksame Instruktion ausgeführt. Bei solcher Kanalstruktur werden also vier Instruktionen gleichzeitig verarbeitet, indem jede von ihnen in
einer verschiedenen Verarbeitungsstufe gegenüber der anderen liegt, wie dies in Fig. 4 durch die Zeiten T1, T2 und · T3 und T 4 angedeutet wird.
Es sei darauf hingewiesen, daß die Kombination aus der Vektorparameter-Datei 125 und der Parameter-Datei 132 die Kapazität des Computersystens dahingehend erhöht, daß mit
hoher Geschwindigkeit komplexe Vektoroperationen in Maschinensprache aufgrund des Programms durchgeführt werden können.
Die in der Parameter-Datei 132 und der Arhe'its-Datei 133
vorkommenden Abkürzungen sind in Tabelle IV aufgeführt und erklärt. -
Die Parameter werden vorzugsweise aus dem CEM in die Register vor Ausführung einer Vektroinstruktion eingeladen.
Die Vektoren v/erden im Fließverfahren gemäß den in der CPU enthaltenen Parameterwerten durch den Rechner hindurch .
geschleußt.
Im folgenden wird das durch die eingangs angegebenen GrIei-
009818/1460.
A 37 442 b
3.7.1969
chungen beschriebene Beispiel einer Determinantenmultiplikation durchgeführt, wobei als erstes durch Tabelle V eine Zuordnung zwischen Speicherstellen und den Elementen der Determinanten A, B, G-(auch "Vektoren" genannt) gegeben ist.
Aus Tabelle VI wird schließlich die Adressenfolge und die Art der Vektorrechnung für den Vektor A ersichtlich.
Die Vektoren B und C werden in ähnlicher V/eise bearbeitet. Die Adressenfolge des Vektors B gleicht der Adressenfolge des Vektors A, außer daß 1 statt k Startadresse ist. Die Adressenfolge des Vektors C ist m, m+1 . . . m+8. Die Erzeugung der Adressenfolge ist jeweils von der speziellen Vektorinstruktion abhängig. Das obige Beispiel gilt für eine skalare Multiplikation von Vektoren. Der entsprechende Vektorcode wird zwecks dieser Bestimmung in die MBU 100 eingegeben.
Zu Pig. 8
Durch die obige Beschreibung wurde ersichtlich, daß das der hier vorliegenden Erfindung zugrundeliegende Computersystem gestattet, vorsortierte Daten mit hoher Geschwindigkeit anzuliefern. Es. wird somit wünschenswert, daß der diese Daten verarbeitende Rechner 101 so ausgelegt ist, daß die angelieferten Daten mit derselben Geschwindigkeit verarbeitet werden, die durch die oben beschriebene TIBU (Fig. 6 und 7) realisiert werden kann.-»"
In Fig. 8 wird ein Rechner gezeigt, der eine Anzahl Untereinheiten "aufweist, die auf bestimmte Rechenoperationen spezialisiert sind, an verschiedenen, ausgewählten Stellen
009818/1460
A 37 442 b ai^
k-b 5»
3.7.1969
eines !canal form ig en Gebildes angordnet und in verschiedener Weise miteinander verknüpft werden können. Der hier vorliegende Rechner 101 besteht aus zwei einander im wesentlichen gleichen kanalförmigen Teilen, von denen jede Untereinheit über eigene Zwischenspeicher verfügt. De,r Rechner verwendet Hultipli'ziereinheiten, die gestatten, ein Produkt in einem Taktpuls zu bilden. Im Sechner 101 werden grundsätzlich Verzögerungen vermieden, die bei iterativen Multiplikationsverfahren sonst üblich sind.
Der Rechner enthalt zwei parallele Kanäle 300A und 300B die symmetrisch zu einer Mittellinie 300 angeordnet gezeichnet aind. Die Operandeneingangskanäle wurden mit Bezugszeichen 300a bis 30Od versehen.
Der Rechnerkanal 300A enthalt einen Sxponenten-Subtrahierer 302, zu dem über einen Kanal 303 ein Ausrichter 304 in Reihe geschaltet ist. Dem Ausrichter 304 ist über einen Kanal 305 ein Addierer 306 nachgeschaltet; ein Ausgang des Addierers 306 führt über einen"Kanal 307 zu einem Normalisierer 308, dessen Ausgang über einen Kanal 309 zu einer Ausgangsstufe 310 verbunden ist.
Die Operandeneingangskanäle 300a und 300c sind weiterhin über einen Vornorraalisierer 311 mit einer Kultipliziereinheit 312 verbunden, dessen Ausgang über einen Kanal an einen weiteren Eingang des Addierers 306 führt. Sin Akkumulator 314 hat einen ersten Eingangskanal 315 aus einem weiteren Ausgang des Ausrichters 304 sowie einen zweiten Eingang über einen Kanal 316 aus einer, zweiten Ausgang des Addierers 306. Ein Kanal 317 verbindet überdies den Akkumulator 31* mit einem spiegelbildlich angeordneten Akkumulator 345 des Rechnerkanals 3003. Sin erster Ausgangs-
009818/ueo
Α· 37 442 b 7L
k-b Sb
3.7.1969
!canal 318 aus." dem Akkumulator 314 führt an einen weiteren Eingang des Sxponentensubtrahierers 302, während ein zweiter Ausgang des Akkumulators 314 über einen Kanal 319 mit einem zweiten Eingang der Ausgangsstufe 310 verbunden ist..
Der Exponentensubtrahierer 302 hat an seinem Ausgang einen weiteren Kanal 320,-der es gestattet, direkt an den ersten Eingang der Ausgangsstufe 310 zu gelangen. In gleicher V/eise sind auch die Ausgänge des Ausrichters 304 sowie des. Addierers 306 an den Kanal 320 angeschlossen. Sin Kanal 321 an einem weiteren Ausgang des Addierers 306 verbindet diesen mit einem vierten Eingang des Exponentensubtrahierers 302. Der Addierer 306 verfügt über einen dritten Eingang, der über einen Kanal 322 mit dem Ausgang einer Multipliziereinheit 341 verbunden ist, die im Rechnerkanal 300B spiegelbildlich zur Multipliziereinheit 312 des Rechnerkanals 300A angeordnet ist.
Für den Zweikanalrechner ist die Tatsache hervorzuheben, daß die Operandenkanäle 300a und 300c über Kanäle 323 bzw. 324 direkt an jede Untereinheit des Rechnerkanals 300A herangeführt sind, wobei lediglich der Akkumulator 314 eine Ausnahme macht. Im einzelnen führen die Kanäle 323 und 324 also über Kanäle 325 an die'Multipliziereinheit 312, über Kanäle 326 an den Ausrichter 304, über Kanäle 327 an den Addierer 306, über Kanäle 328 an den Noraalisierer 308, sowie schließlich direkt an die Ausgangsstufe 310. Torsehaltungen öffnen oder schließen die Rechnerkanäle des Zweikanalrechners aufgrund irgendwelcher Maschinen oder Programminstruktionen.
Der Rechnerkanal 300B ist entsprechend dea Rechnerkanal 300A aufgebaut. 3s entsprechen ein Sxponentensubtrahierer
009818/H6Q
A 37 442 b Λ
k-b Sf
3.7.1969
330 dem Exponentensubtrahierer 302, ein Ausrichter 332 dem Ausrichter 304, ein Addierer 334 dem Addierer 306, ein Normalisierer 336 dem ITormalisierer 308, eine Ausgangsstufe 338· der Ausgangsstufe 310, ein Vornormalisierer dem Vornormalisierer 311» die Multipliziereinheit 341 der llultipliziereinheit 312 und der Akkumulator 345 dem Akkumulator 314. '.
Ebenso entsprechen sich die folgenden Kanäle : 300b dem Kanal 300c, 30Od dem Kanal 300a, 331 dem Kanal 303, 333 dem Kanal 305, 335 dem Kanal 307, 337 dem Kanal 309, 342 dem Kanal'324, 343 dem Kanal 323, 346 dem Kanal 318,' 348 dem Kanal 318, 353 dem Kanal 313, 344 dem Kanal 316, 352 dem Kanal 321, 351 dem Kanal 320 und 347 dem Kanal 319. Überdies führt ein Kanal 350 vom Exponentensubtrahierer 330 zum Exponentensubtrahierer 302 sowie ein Kanal 355 von der Ausgangsstufe 338 zur Ausgangsstufe 310.
Wie bereits erwähnt, v-erfügt jede Untereinheit der zwei Rechnerkanäle 300A und 3003 über eigene Zwischenspeicher, wie dies am Beispiel der Ausgangsstufe 310 durch das Kenn-. · zeichen 310a angedeutet ist. Addierer und Exponentensubtrahierer haben eine Bit-Kapazität von 32 Bits, die Multipliziereinheiten dagegen 64 Bits.
Der hier vorliegende Rechner 101 enthält also eine Vielzahl von Speaialeinheiten zur Durchführung einer speziellen arithmetischen Operation. Jede Untereinheit mit Ausnahme des Akkumulators hat eigene Operandeneingänge. Durch Programm- oder ITaschineninstruktionen können die Untereinheiten in der verschiedensten Vieise miteinander verknüpft werden, so daß eine Vielzahl voneinander verschiedener arithmetischer Beziehungen realisiert werden können. Sind die
0 0 9 8 1 87 U S Q
A 37 442 b k-b 3.7.1969
■ 3?
.Verarbeitungswege festgelegt, können die zu verarbeitenden Daten so durch die beiden Rechnerkanäle hindurch geschickt v/erden, daß beispielsweise während, einer Takt zeit unterschiedliche Operanden je eino Untereinheit, also "einschrittige" Untereinheiten durchlaufen, wodurch ermöglicht wird, daß mehrere A- und B-Operandenworte aufeinanderfolgend durch den Rechnerkanal hindurchströmen, indem sie beisüielsweise vier Verarbeitungsstufen innerhalb eines jeden Rechnerkanals unterzogen werden. Ein solches Fließverfahren mittels zweier einander parallel geschalteter Rechnerkanäle mit speziellen Rechenuntereinheiten, die in jeder denkbaren Weise untereinander verknüpft werden können, gewährleistet eine durchschnittlich sehr schnelle Datenverarbeitung innerhalb des Rechners bei entsprechend gleichschnell angelieferten und abfließenden Datenmengen.
Zur Erklärung der Wirkungsweise ist vorauszubemerken, daß Gleitkomma-Addition eine der im Computer am meisten benötigten Operationen ist, und daß diese in vier Schritten durchgeführt v/erden muß: in einer Subtraktion der zwei Exponenten des A- und B-Operanden, in einer Ausrichtung der Mantissen vorzugsweise nach rechts, in einer Addition der Mantissen, sowie in einer eventuellenotwendigen Ilachnormalisierung des Resultats, beispielsweise in Form einer Linksverschiebung. Diese Schritte werden in Tabelle 7 dargestellt.
Bei der Addition zweier Zahlenreihen oder Vektoren ist zu Beginn (Zeit t0) jede Untereinheit des Zweikanalrechners leer. Zu einer nächsten Zeit t* wird das erste Zahlenpaar' a.. und b.j der Exponentensubtraktion unterzogen, die als erstes durchgeführt werden muß. In einer nächsten Zeit t2
0 09 81 8/
A 37 442 b 3a
k-b 3.7.1969
wird ein zweites Zahlenpaar a„ und b dieser Exponentensubtraktion unterzogen, während das erste Zahlenpaar &* und b- eine zweite Stufe in Form der Kantissenausrichtung durchläuft. Dieses Fließverfahren wird in gleichem Sinne fortgeführt, wobei bereits zu einer Zeit t^ der Rechnerkanal dergestalt "angefüllt" ist, daß jede Untergruppe bei jedem Schritt ein Zahlenpaar verarbeitet.
Der Zweikanalrechner 101 ist grundsätzlich 64-3it-orientiert. Alle Untereinheiten der Fig. 8 außer den Kultipliziereinheiten 312 und 341 empfangen 32 Bits und geben 32 Bits an-ihren Ausgängen ab; die T-ultipliziereinheiten geben dagegen 64 Bits ab. Hit Ausnahme einer Multiplikation und Division benötigen alle Funktionen dieselbe Verarbeitungszeit sowohl für Einzel- als auch Doppellängenoperanden.
Festkommasahlen v/erden vorzugsweise in Zweierkomplement dargestellt, während Gleitkommazahlen als Exzess-64-Zahl nach Vorzeichen, Mantisse und Exponent erscheinen.
Ein hervorstechendes Merkmal des Rechners ist sein eine fließende Verarbeitung ermöglichender Aufbau nach Art· eines Verarbeitungskanal^ die insbesondere in Anwendung auf Vektorinstruktionen besonders günstige Eigenschaften hat. Die Anordnung" zweier parallel liegender Rechnerkanäle gestattet, da3 zu jeder Taktpulsseit an jeder Ausgangstufe und 338 ein Resultat erscheint. Jeder Rechnerkanal kann Teile anderer Instruktionen verarbeiten. Jeder Schlauch enthält Untereinheiten» wodurch insbesondere die Additionssse it für G-leitkonma-Addition verkürzt werden kann. Die zueinander insbesondere spiegelbildlichen Untereinheiten der zwei Rechnerkan^.le können jeweils miteinander kombiniert werden; dies gilt allerdings nicht für die I-Iultiplizierein-
0 0 9 818/1 480 ^0 ORiGlNAL
193A365
A 37 442 b
3.7.1969
heiten. Die Exponentensubtrahierer 302, 330 "können eine solche .Verarbeitungsstufe bilden, die in sieh getrennt oder miteinander gekoppel arbeitet, indem sie in letzterem Falle ein Doppellängenwort verarbeitet.
Die Ausrichter 304, 332,können für Rechtsverschiebungen bei Gleitkomma-Addition verwendet werden. Die JTorraalisierer 308, 336 dienen allen Ifornalisierungsfordernissen und also auch Linksverschiebungen. Die Addierer 306, 334 werden vorzugsweise für Hochgeschwindigkeitsoperationen (second level' look ahead operation) zur Ausführung von Gleit- oder Festkomma-Addition verwendet. Sie finden überdies Verwendung zur Addition der sogenannten Pseudosumme mit dem sogenannten P3eudoüberlauf, welche aus der Multipliziereinheit kommen.
Bei der Verarbeitung von Vektoren ist Gleitkomma-Addition zur Anpassung an einen großen dynamischen Bereich wünschenswert. Obzwar der Rechner 101 sowohl Fest- als auch Gleitkomma-Addition durchführen kann, wird seine wirtschaftliche Arbeitsweise hinsichtlich Zeitverbrauch und Bauteileaufwand besonders bei der Gleitkomma-Addition nach Tabelle 7 erkennbar.
Die Multipliziereinheit 312 vermag eine Multiplikation von 32 Bits mit weiteren 32 Bits in einer Taktzeit durchzuführen und stellt also vorzugsweise ein einschrittiges Multiplizierwerk dar. Die Kultipliziereinheiten 312 und341 entsprechen vorzugsweise dem in den folgenden Veröffentlichungen beschriebenen Typ eines schnellen einschrittigen Multiplizierwerks für Parallelnaschinen« Die Veröffentlichungen sind: Wallace "Suggestion for a Fast Multiplier" in I3ES EG 13, S. 14 bis 17, Februar 1964, sowie Speiser "Digitale Rechenanlagen" 1967, Seite 188 bis 190 (Abb. 183). ■
009818/USO
A 37 442 b
3.7.1969
Solche. Multipliziereinheiten gestatten die Ausführung einer Multiplikation während einer einzigen Taktzeit, v/o durch diese Untereinheit mit den übrigen Untereinheiten in Einklang steht, indem die Verarbeitungszeiten grundsätzlich gleich sind.
Die Multipliziereinheiten bilden gleichzeitig die Verarbeitungseinheiten für eine Division. Doppellängenoperationen für Multiplikation oder Division erfordern mehrere Iterationen über die Multipliziereinheit, bevor das Resultat erhalten wird. Festkomma-Multiplikationen und Einzellangengleitkomraa-Multiplikationen werden nach nur einem Durchgang durch die Multipliziereinheit gewonnen. Der Ausgang der Multipliziereinheit 312 bildet zwei Doppellängen-•worte, von je 64 Bits in Form einer Pseudosumme und eines PseudoÜberlaufs; aus diesen Worten ausgewählte Bits werden im Addierer 306 miteinander addiert, um ein Einwortlängenprodukt zu erhalten. Soll mit einer Einzellängenmultiplikation ein Doppellängenprodukt gewonnen werden, erzeugt die Multipliziereinheit 341 eine 64 Bit-Pseudosumme und einen 64 Bit-Pseudoüberlauf, welche dann in den Addierern 3Q6 und 334 addiert werden, wodurch das Doppellängenprodukt gewonnen wird. Eine Doppellängenmultiplikation kann so durchgeführt werden, "daß drei Schritte in der richtigen Reihenfolge durchgeführt werden: Multiplikation in der Multipliziereinheit 341, Addition in den Addierern 306 und sowie Saldierung in den Akkumulatoren 314 und 345. Die Akkumulatoren 314, 345 gleichen den Addierern und werden für spezielle Zwecke verwandt, in denen eine laufende Saldierung erforderlich wird-.
Eine Doppellängenmultiplikation erfordert eine solche lau-
■ ., ■ - BAD
0098187 UtO
A 37 442 b k-b 3.7.1969
. fende Saldierung, da vier getrennte 32 χ 32 Bit-Hultiplikationen durchzuführen sind, wonach deren Zwischenergebnisse (Partialsuramen) stellenrichtig in den Akkumulatoren aufaddiert werden. Eine Doppellängenmultiplikation erfordert deshalb 8 Taktzeiten, bis das richtige Ausgangssignal erscheint, v/ährend eine Sinzellängenmultiplikation nur vier Taktzeiten benötigt. Eine Doppellängennultiplikation bedeutet zv/ei 64-Bit-Gleitkommazahlen (56 Bit-Mantisse), die miteinander multipliziert werden, un ein 64 Bit-Resultat zu erhalten, wobei die niedrigstwertigen Bits nach der Nachnormalisierung abgeschnitten sind. 3ine Pestkommamultiplikation bedeutet eine Multiplikation von 32 χ 32 Bits, und ergibt ein 64 Bit-Resultat.
Eine Division ist die umfangreichste der vom Rechner 101 durchzuführenden Operationen, wobei die Fähigkeit einer schnellen Multiplikation von Vorteil ist. iTach einer Anzahl iterierender Multiplikationen ist der Quotient mit der gewünschten Genauigkeit erstellt. Da dieses Divisionsverfahren keinen Rest als Resultat der zuvorgehenden Multiplikation erstellen kann, wird es erforderlich, hardware- mäßig weiterzurechnen, um den Rest zu bestimmen, falls die ser gewünscht wird. War die Lösung x/y= Q, kann der Rest aus der Beziehung R = x-yQ gewonnen werden, d.h. durch Multiplikation y«Q und anschließende Subtraktion von x. Der Rest wird bis auf so viele Bits genau, als der Divident χ solche enthält. Die erforderliche Zeit zur Bildung des Rests wird direkt zu der Zeit addiert, die zur. Bildung■' des Quotienten erforderlich war.. Die Divisionszeit für Einzellängen wächst von 12 Taktzeiten bis zu 16 Taktzeiten bei Erstellung eines Rests. Der Divisionsalgorhithmus erfordert, daS der Divisor normalisiert wird, bitweise bei festicomnaarihme-fcik oder die höohststellige Hexadezimalzif-
Λ 37 442 Id
3.7.1969
fer bei Gleitkommaarithmetik mit Ausnahme von JIuIl.
Die Ausgangsstufe 310, 338 dient der Sammlung der Ausgangsdaten aus allen Untereinheiten sowie zur Ausführung einfacher Datenverschiebungen, Bool'scher Beziehung u.s.w,, zu deren Durchführung nur eine Taktzeit im Rechner 101 benö-' tigt v/ird.
Die Speichermöglichkeit in jeder Untereinheit des Rechnerkanals ermöglicht eine v/irksame Trennung der einzelnen, in den verschiedenen Untereinheiten getrennt verarbeiteten Da-
ten. Der Rechner arbeitet synchron, indem er eine gemeinsame Taktzeit für alle Schaltkreise anwendet. Deshalb sind in jeder Untereinheit Speicherregister wie das Register 310a enthalten.
Zu Pig. 9:
Nach einer Beschreibung der Se fügeschaltung anhand der Fig.3 und 4 so\^e einer Beschreibung der CPU 10 anhand der Fig.5 bis 8 folgt zweckmässigerweise in einer Beschreibung der Fig. 9 "die Darstellung des Zusannenspiels zwischen CPU 10, PPU 11 und MCU 18 von Seiten der CPU 10 aus, den Teil der Gefügeschaltung betreffend, welcher in der CPU 10 angeordnet ist. Die Fig. 9 und 4 betreffen also ,beide die Gefügeschaltung, wobei Fig. 4 den PPU-seitigen Teil und Fig. 9 den GPU-seitigen Teil der Gefügeschaltung zeigt, welche durch die Kanäle 41, 42 und 53 bis 58 miteinander verbunden sind.
In Fig. 9 weist die Instruktionsdatei IFU 128 ein Ausgangsregister 128a auf, das in einer vorzugsweisen Ausführung Speicherbits hat. Das Register ist in mehrere Abschnitte
009818/H60
934365
A 37 442 b UU
k-b ^
3.7.1969
unterteilt; ein erster Abschnitt 128b mit 8 Bits enthält den Operationscode, ein nächster Abschnitt 128c ein Adressennerkmal von 4 Bits und ein weiterer Abschnitt 128d aus 4 Bits enthält normalerweise Daten zum Betrieb des Rechners 101, mit denen ein.Register bestimmt wird, das nicht zur Gefügeschaltung gehört, weshalb also über diesen Abschnitt nichts/weiteres gesagt zu werden braucht; schließlich ist in einem Abschnitt 128e von 16 Bits ein Adressenfeld einge-' lagert.
Beim'normalen Operatiorisablauf vollführt die Index-Adressiereinheit IAU 126a, welche ein Ausgangsregister 126b hat, einen Schritt im Zeitablauf T1 bis T4. Bei einigen Operationen wird durch sie im Ausgangsregister 126b ein Wort erstellt, das der Summe-aus dem Code im Adressenfeld 128e und dem Code im Indexregister 124 entspricht, wobei letzterer durch das Adressenmerkmal im Abschnitt 128c aufgerufen wurde; eine solche "Indexoperätion" entspricht also der bei Computern üblichen Adressenmodifikation mittels Indizierung. Die Adresse aus dem Ausgangsregister 126b beaufschlagt desweiteren zur Steuerung des Operandenflugses zum und vom Rechner 101 die Einheit OPS 126.
Sobald andererseits im Abschnitt 128b"ein Operationacode SCW oder SCP erseheint, beginnt ein hineiahtlioh der anderen Operationscodes verschiedener Operationt*tilauf, Zuerst wird der 8-3it-Code aus dea Abeohflltt 128b in die Inetruk-■ tionepuffereinheit IBU 127a übertragen, wonach sie in einem Ansgangsregister 127b der IBU 127a ereohtint. AnaohlIe Send wird dieser 8-Blt-Code über *lntn Kanal 200 IUY Steutreinheit CCU 127 gebracht.
ta &*» ecu 127 ve?iirb*it«% üb BitacttMMltr J01
OD9S11/1410
TC- - ■
BAD ORIGINAL
at > I
A 37 442 b
3.7.1969
8-Bit-Cod'; enthielt letzterer einen S CYZ-Be fehl, erscheint auf einer Leitung 202 und damit auf der leitung 42 ein SCW Signal; enthielt dagegen der 8-Bit-Code einen SCP-Befehl, wird eine Leitung 203 und damit die Leitung 41 entsprechend mit einem SCP Signal beaufschlagt.
Fühlt nun die PPU 11 gemäß Fig 4 ein Signal auf der Leitung 41 oder 42 ab, wird sie nach einer bestimmten Zeit über die Leitung 58 an die CCU 127 das Signal "Anrufen" (PC) senden, welches es der CCU 127 ermöglicht, ihrerseits ein Signal auf eine Leitung 204 zum Rechner 101 zu schicken. Letzteres Signal wird auch im folgenden veranlassen, daß eine in einem Register 126d des OI1S 126 befindliche Adresse oder Codierung in eine vorbestimmte Speicherstelle über- \ tragen wird. Diese Übertragung geschieht über einen Kanal 205, über einen Weg 206 innerhalb des Rechners 101, einen Kanal 207, einen Zwischenspeicher 126e, sowie über den Kommunikationskanal 104 zum Speicher.
Die abzuspeichernde Codierung aus dem Register 126e wird in jene Speicherstelle des Speichers eingesehreihen, welehe durch den Inhalt eines Festadressenspeichers 208 bestimmt ist. Der Inhalt dieses Festadressenspeichers kennzeichnet eine Speicheradresse % die vorzugsweise nicht anderweitig .benutzt wird und eigens für solche Zwecke vorgesehen ist. Dies kann"also durch einfaöhe Festverdrahtung innerhalb des Computers erreicirt werden. Die Adresäe at^e dem Festadressenspeicher 208 wird f>ei Beaufschlagung eines : Gatters 209 vermittels des auf der Leitung 2Q4 wirksamen Signals ausgegeben. ;: -v l· ;· ~ r:'_. r J\
Die CCU 127 ist im einzelnen ao aufgebaut, daß die leitungen 202 und 203 je an Btngfisige sines Oder-Ga^ter* geführt sind, dessen Ausgang über eine
000818/1410 ORIGINAL INSPECTED
* t -111
A 37 442 1) k-b.
3.7.1969
■210 den Taktpuls auf der Leitung 54 erzeugt, welcher in de* PPU 11 nach Setzen des Flip-Flops L 73'die Beladung .der Flip-Flop C 71 und/oder S 72 ermöglicht (Fig. 4). Vorzugsweise führt die Fehlerleitung 53 an einen dritten, in Fig. 9 nichtgezeichneten Eingang des Oder-Gatters 211 30-wie nach Eingehen einer Undbedingung mit der PC Signal führenden Leitung 58 an einen ersten ebensowenig gezeichneten Eingang eines OderrGatters 213. Das Oder-Gatter 213, dessen Ausgangsleitung 204 ist, ist an zwei Eingängen mit den Ausgängen von LTnd-Gatter 212, 214 verbunden. Das Und-Gatter 212 hat zwei Eingänge, dessen einer über die Leitung 202 dus SGV/ Signal und dessen zweiter über die Leitung 58 das Signal "Anrufen" (PC) erhält. Das Und-Gatter 214 ist • entsprechend durch die Koinzidenz aus den Signalen SCP und
j "Anrufen" (PC) aussteuerbar.
Um also ein Signal auf der Leitung 204 und damit eine Abspeicherung der im Register 126d befindlichen Codierung in die durch den Inhalt des Speichers 208 bestimmte Speicherstelle zu erzielen, muß außer dem Auftreten der Signale •»Fehler" SGW oder SCP das Signal "Anrufen" (PC) von Seiten der PPU vorhanden sein. Hur bei entsprechendem Signalzustand auf den Leitungen 56, 57, 45,. 58, 55, 53 wird also eine solche Abspeicherung erfolgen können. Der gesamte CPU-Betrieb kann auf diese Weise, unterbrochen werden; andererseits kann der Betrieb während einleitender oder sonstwie vorbereitender Operationen in feilen des Computersystems außerhalb der QPU 10.aufrecht erhalten werden» Diese Entschei dung hang"! yon dem im Ausgan^sregister 128a #er IFU 128 befindlichen Instruktionsgehali ab, ob näialiöä. in dessen Abschnitt 128b der Qperationaoode SCVi, SCP oder anders
Di· Leitung 93 der fig» 4 und 9 führt dann da» Signal
ι ■
«AL· INSPECTED
A 37 442 b
k-b
3*7.1969
"Fehler11, wenn innerhalb der CPU 10 ein Fehler entdeckt wurde. In Fig. 9 wird deshalb durch ein Oder-Gatter 220, dessen Ausgangsleitung 53 ist, angedeutet, daß Fehler innerhalb der CCU-Steuerung über eine Leitung 221 oder innerhalb des Rechner» ein solches Signal erzeugen können. Eine Feh*· lerquelle könnte eine überlaufanzeige im Rechner 101 sein, eine andere Fehleranzeige könnte bei einer Undefinierten Codierung innerhalb der CCU 127 auftreten. Durch eine dritte Eingangsleitung 222 am Eingang des Oder-Gatters 220 wird angedeutet, daß noch weitere Prüfkreise zur Erzeugung dee Fehiersignals herangezogen werden können. Die Einheit . SSR 131 (Fig. 7) steuert die so beschriebene Umschaltung der CPU, welche veranlaßt, daß der bisherige Inhalt der CPU abgespeichert und stattdessen neue Daten in diese eingegeben werden.
Zu Fig. 10:
^ Angaben über die PPU 11 wird ersieht-
lich, daß dieser eine bedeutende Rolle in der Aussteuerung der CPU1 10 zugeteilt wurde» Die PPU 11 ist gemäß der Erfindung in der Lage, im allgemeinen in voraus die Anforderungen der ,CPU 10 und anderer Komponenten des Systems zu ermitteln, indem ein. spezielles Zeitzuteilverfahren (time shearing) zwischen einer Vielzahl von Yirtualverarbeitern .in der PPU 11 angewandt wird. Xe werden nämlich von einer Gruppe von Virtualveraybtitern innerhalb der PPU 11 ProgrfjffiW verarbeitet· Wo turn dl« Programne stark variieren, let •«,vorteilhaft, von einer fest zugeordneten Zeitzuteilung gwieohen den Virtitti&veievtoitern abzugehen.
In {ta* In flg. IQ g«««tgtsn Anordnung ist ee möglich,
S ' " OOtÖ^/Vftio 0R|QtNAi inspected
A ·37 442 b
3.7.1969
einige Virtual verarbeiter v/eit mehr Zeit zubemessen erhal-, ten als andere. Weiterhin sind Vorkehrungen getroffen, die Zeitzuordnungen zv/ischen den Verarbeitern häufig und drastisch zu ändern. ' ■
Aus Fig. 10 wird ersichtlich, daß Virtualverarbeiter PO bis P 7 der PPU 11 von einein PPU-Rechner ARU 400 (Arithmetic Unit) der PPU 11 versorgt werden.
Das allgemeine Time Sharing Prinzip einer Zeitzuteilung, in welchem ein Rechner und Virtualarbeiter zusammen arbeiten,, wird als bekannt vorausgesetzt. Die erfinderische Leistung liegt jedoch in einer höchst flexiblen Zuordnungsmöglichkeit der Elemente des Zeitteilverfahrens und in seiner besonderen Steuerung. Die Virtualverarbeiter PO bis P7 können von der Art sein, wie sie beispielsweise in der US-Patentschrift 3 337 854 beschrieben werden, worin den Virtualverarbeitern feste Zeitspannen zyklisch zugeordnet sind, Für die hier vorliegende Erfindung ist es dagegen kennzeichnend, daß die zeitlichen Zuordnungen von der Natur der vorzugsweise durch Pragramiae gestellten Aufgaben abhängen und somit fließend und steuerbar sind.
Von den acht Virtualverarbeitern P-O bis P7 der PPU 11 (Pig. 10) "kann während einer Taktzeit nur je ein Virtualverarbeiter über den Rechner APJT 400 verfügen, d.h. nur jeweils .ein Virtualverarbeiter ist während jeder Takt zeit mit dem AEu 400 verbunden. Die Auswahl unter den Virtualverarbeitern trifft ein Zuordner 401, der in ?ig. 10 durch einen rotierenden Schalter dargestellt wird* Mit jedem Taktpuls wird der Schalter um eine Schaltstellung weiterbewegt, wobei jede Schaltstellung eina Verarbeitungszeitspanne von dexv-Lmige eines Takt impulses darstellt; insgesamt
009818/U6 0
A 37 4.42 b k-fc
3.7.1.969
16 verschiedene Schaltstellungen "bezeichenen Zeitspannen -O bis 15» der ARtJ 400 wird dabei .jeweils .mit demjenigen Vir-..tualverarbeiter verbunden, der durch den Code (beispielsweise 0 bis 7) bestimmt ist, welcher durch den Schaltfinger des Schalters abgefühlt wird. In einem Extremfall wird-über den ganzen Zyklus nur ein bestimmter Virtualverarbeiter mit dem AHU 400 unter Ausschluß aller übrigen verbunden,-im anderen Extremfall v/erden alle Virtualverarbeiter in gleichen periodischen Zeitabschnitten und Zuordnungsanteilen mit dem ARU 400 gekoppelt. Das eine solche .Vielseitigkeit erlaubende System wird in den Fig. 11 bis. 13 im Detail beschrieben.
Zu Fig. 11:
Der Aufbau der PPU 11 wird aus Fig. 11 ersichtlich. Der Zentralspeicher GEH 12-15 ist mit seiner Steuereinheit MCU 18 und diese über den Kanal 32 mit der PPU 11 verbunden. Die Virtualverarbeiter PO bis P7 weisen einen zum ARU 400 gehenden Ausgangskanal 402 sowie einen-vom ARU 400 zu ihnen führenden Eingangskanal 403 auf. Überdies sind sie" über Kanäle 410 bis 417 mit einem Kommunikationskanal 408 verbunden. Eine Puffereinheit 419 der PPU 11 verfügt über acht einzelne Pufferregister 420 oder SWB 0 bis 427 oder SWB 7; dabei ist ein solches,ein einzelnes Wort aufnehmendes Register ausschließlich jeweils einem der Virtualverarbeiter PO bis P7 zugeordnet. Die Virtualverarbeiter PO bis P7 sind mit einer Zuordnersteuerung 418 versehen, welche die Realisierung eines Teils des in Pig. 10 als Schalter dargestellten Zuordners 401 darstellt. Die Steuerung 418 wird durch Taktpulse, betrieben. Dei Puffereinheit 419'wird durch eine Puffersteuerung 428 ausgesteuert. Ein Kanal erstreckt sich zwischen-dem Kanal 408 und dem ARU 400.
009818/1480
A 37 442 b 50
3.7.1969 ^
Die Yirtuaiverar"beiter P O bis P 7 sind ferner mit einem Festwertspeicher ROH 430 (read only memory) versehen. In einem bevorzugten Ausführungsbeispiel der Erfindung ist der Speicher 430 aus festverdrähteten Diodenanordnungen für schnellen Zugriff aufgebaut.
Koramunikationsregister 431 sind zur Kommunikation zwischen dem Komraunikationskanal 408 , den Peripheriegeräten und weiteren Steuer- und Datenkanälen vorgesehen. Bei dem hier vorliegenden Ausführungsbeispiel enthält die durch die Kennziffer 431 ausgewiesene Einheit insgesamt 64 Kommunikationsregister.
Die an der Zeitzuteilung eigentlich beteiligten Baugruppen sind der ARU 400, der Festwertspeicher ROM 430, die Einheit 431 mit den Kommunikationsregistern CR 0, CR 1...und die Puffereinheit 419 mit den Sinwortpufferregistern SV/B 0 bis SWB 7, wobei die Einheit 419 die Verbindung zwischen PPU 11 und dem Zentralspeicher CEM 12 bis 15 herstellt.
Das ROM430 enthält einen bestimmten Programmvorrat, der nur zugänglich wird, wenn ihn Programmzähler der Virtualverarbeiter erschließen. Der Vorrat enthält ein Grundausführungsprogramm und wenigstens ein Steuerprogramm für jedes Peripheriegerät, das an den Computer angeschlossen ist. Das ROM 430 hat eine 'Zykluszeit von 20 ITano Sekunde η und einen Befehlsvorrat von 32 Bit Instruktionen für die Virtualverarbeiter P 0 bis P 7. Das ROM umfaßt insgesamt 1 024 / Worte für die Programme. Es ist in 256 Wortbaugruppen unterteilt, so daß es möglich ist, Programm abzuändern, ohne das gesamte ROM neu herzustellen oder insgesamt umbauen zu müssen.
Die Peripherieprogramrae enthalten Steuerfunktionen für
00381Ö/U60
A 37 442 b
3.7.1969
einzelnen Peripheriegeräten zugehörige Pufferspeicher sowie Datenübertragungsfunktiqnen. Auf solche Weise können mechanische Bewegungsabläufe in den Peripheriegeräten direkt durch Programme gesteuert werden und benötigen nicht eine jeweils speziell für jedes Peripheriegerät eigens
andere
durchgeführteVFestverdrahtung. Durch das Arbeitsprogramn können Parameter zur Variation eines Grundprogramms vorgesehen werden. Solche Parameter werden im Zentralspeicher OEM 12 bis 15 geführt oder auch in Akkumulatorregistern der Virtualverarbeiter, welche das Programm ausführen-.
Die Instruktionsquelle für die Virtualverarbeiter kann entweder das ROM 430 oder der Zentralspeicher CEIi 12-15 sein. Der vom Programrazähler eines Virtualverarbeiters addressierte Speicher wird durch die Adressierart gesteuert, welche durch Verzweigungsinstruktionen oder durch Löschung des Systems modifiziert werden kann. Jeder Virtualverarbeiter wird in die ROM Betriebsweise eingestellt, wenn das System gelöscht ist·.
Erhält man eine Programmfolge vom Zentralspeicher, so wird diese von der Puffereinheit 419 aufgenommen. Da dies derselbe Zwischenspeicher ist, der für Datentransporte zu und vom Zentralspeicher benutzt wird, und da der Zentralspeichcher größere Zugriffzelten als der ROH-Speicher hat, werden also die Verarbeitungszeiten günstiger, wenn das Programm vom ROH 430 empfangen wurde.
' Ein Zeitabschnitt 0 kann einen der acht Virtualverarbeiter durch einen Schalter auf einen Bedienungspult zugeordnet werden. Diese Zuordnung l:ann durch dä3 Programm nicht kontrolliert werden.. Die restlichen Zeitabschnitte sind anfanglieh nioht zugeordnet. Deshalb arbeitet am Anfang nur
009818/UGO
19.3 ^SS 5
A -37 442 b . £$, · · '
k-b
3.7.1969
der Virtualverarbeiter, der durch diesen Sehalter bestimmt wurde. Da weiterhin die Programmzähler aller Virtualverarbeiter P O bis P 7 ursprünglich auf UuIl standen, beginnt der ausgewählte Virtualverarbeiter sein Programm von der Adresse Null des ROM 430 an auszuführen; letztere aber enthält ein Einleitungsprogramm. Der Wählschalter auf dem Bedienungspult bestimmt ebenso, welches der acht Bits des Kommunikationsregisters 431 durch ein von Bediener erzeugtes Einleitungssignal gesetzt wird.
Die Puffereinheit 419 ermöglicht, daß die Virtualverarbeiter zum Zentralspeicher CEM 12-15 Zugriff haben. Die Puffereinheit 419 besteht aus acht 32-Bit-Datenreglstern, acht 24-Bit-Adressenregistern und entsprechenden Steu&rkreisen. Vom Standpunkt eines einzelnen Virtualverarbeiters aus erscheint die Einheit 419 lediglich als ein einzelnes Datenregister und als .ein einzelnes Adressregister.
Zu irgendeiner Zeit kann die Puffereinheit 419 bis zu acht Speicheranfragen enthalten, und zwar von Jedem Virtualverarbeiter eine. Die Anfragen werden vorzugsweise so verarbeitet, da3 eine feste Prioritätssteuerung sowie eine Prioritätssteuerung nach den Prinzip "v/er zuerst kommt, wird zuerst abgefertigt" (first in-first out) kombiniert werden. Vorzugsweise werden vier Prioritätsebenen festgelegt; werden aber zwei oder mehr Anfragen aus derselben Prioritätsebene gestellt, werden, sie in der Reihenfolge bearbeitet, in der sie zeitlich erscheinen.
Könnt zur Puffereinheit 419 eine Anfrage, so hat sie automatisch eine Prioritäskennung, die durch den Zentralspei eher GEI! 12 - 15 bestimmt ist; Prioritäten v/erden in einem der Register431 festgehalten. Die Prioritäten werden ent-
009818/1460
" "X: . ORIGINAL WSPECTED
A 37 442 b k—b 3.7.1969
sprechend der ITumner des jeweiligen Virtualverarbeiters angeordnet; alle Anfragen von Seiten eines "bestimmten Verarbeiters erhalten die Pri.oritätskennung, welche in zwei Bits des Prioritätenspeichers (Register 431) verschlüsselt ist. Der Inhalt dieses Speichers wird durch das Ausführungsprogramm bestimmt; die Prioritätskennung für jeden Virtualverarbeiter wird durch das auszuführende Programm bestimmt. "Zusätzlich zu diesen zwei Prioritäts-Bits kann eine Zeitkennung mitverwendet werden, um die Fälle gleicher Priorität zu lösen.
Die Register 431 enthalten je 32 Bits. Jedes Register ist von Seifen der Virtualverarbeiter adressierbar und kann von der Einheit ausgelesen oder beschrieben werden, mit der es verbunden ist. Die Register 431 sind Verbindungsglieder zu allen Peripheriegeräten einschließlich der Konsole, indem sie Steuerungsbefehle sowie Daten zwischen Speichern, welche die Verbindung zwischen den Peripheriegeräten,dem übrigen Teil der PPTJ und der CPU herstellen. Einige Parameter zur Steuerung der Systemfunktion v/erden ebenfalls in solchen Kommunikationsregistern 431 gespeichert, von welchen die Steuerung durchgeführt wird.
Zur Fig. 12:
Im Register 431 sind vorzugsweise als Flip-Flops CR realisierte Zellen enthalten, welche gem. Fig. 12 zwei Eingangskanäle aufweisen. Ein Eingangskanal ist mit der PPU 11 verbunden, während der andere Kanal einem Peripherie-Gerät zur Verfugung steht. Daten von Seiten der PPU werden synchron mit dem Taktpuls des Systems in die Zelle eingege-" ben. Eine Eingabe von Daten od. dgl* in die Zelle von Sei-
009813/U60
19343&Ϊ
A 37 442 b k-b 3-7-1969
ten eines Peripherie-Geräts "kann durch Zv/ischenkreise zwischen diesem und der Zelle erfolgen, und zwar nicht notwendig erweise synchron mit den System-Taktpuls.
Zur Fig. 13:
-In Fig. 13 wird eine Anordnung gezeigt, mit Hilfe derer es möglich wird, Zeiten schwerpunktmäßig auf nur einen oder mehrer der Virtualverarbeiter P bis P 7 zu verlagern, indem diese de.n anderen vorgezogen werden, oder umgekehrt Zeitabschnitte auf alle Virtualverarbeiter gleichmäßig aufzuteilen. . .
Die Steuerung der Verteilung der Zeitabschnitt-Zuordnungen :an die einzelnen Verarbeiter P bis P 7 erfolgt mittels zweier Eommunikationsregister 431n und 431m aus der Gesamtzahl der Kommunikationsregister 431 . Diese Register enthalten 32 Bits, welche in acht Segmente von je vier Bits je Segment unterteilt sind. So hat beispielsweise ein Segment 440 des Registers 431n vier Bit3 a - d, welche jeweils an die"Eingänge von Und-Gattern 441 - 444 geführt sind. Sin Segment 445 desselben Kommunikationsregisters hat ebenfalls vier Bits a - d, welche mit Eingängen von Und-Gattern 446 - 449 verbunden sind. Das erste TJnd-Gatter am Ausgang jedes Segments, an welches^ Bit a geführt ist, beispielsweise die TJnd-Gatter 441» 446, führtyan den Eingang eines Oder-Gatters 450. Entsprechend sind alle Und-Gatter 442, 447 .-»-.,-welche durch Bit-b der Segmente gespeist v/erden, ausgangs- / mäßig mit den Eingängen eines Oder-Gatters 451 verbunden* In gleicher Weise erhält ein Oder-Gatter 452 Signale aus den TJnd-Gattern 443f 448...» welche mit den Bits c der Segmente verbunden sind. Schließlich gelten für ein Oder-Gatter 453 die gleichen Beziehungen hinsichtlich der von Bit d
ÖÖ981Ö/U60 ORIGINAL INSPECTED
A 37 442 b
k-b ^
3.7.1969 .3»
gespeis.ten Und-Gatter 444, 449...
Die Ausgänge der Oder-Gatter 450-453 führen zu einem Register 454f dessen Ausgang mit einem Dekodierer455 verbunden ist. Acht Dekoder-Ausgangsleitungen 460-467 steuern
jeweils die Ein- und Ausgänge der Virtualverarbeiter P "bis P7.
Die Zuordnersteuerung 418 erhält über einen Kanal 460 Taktimpulse. Sie arbeitet vorzugsweise als Ringzähler mit 16 Stufen, wobei von jeder Stufe eine Ausgangsleitung wegführt. Eine erste Ausgangsleitung 461 aus der ersten Stufe des Ringzählers führt zu dem zweiten Eingang der Und-Gatter 441 bis 444. In gleicher Weise ist eine zweite Ausgangsleitung 462 aus der zweiten Stufe des Ringzählers mit den. zweiten Eingängen der Und-Gatter 446 bis 449 verbunden. Die restlichen 14 Ausgangsleitungen aus der Steuerung sind entsprechend mit jeweils 4 weiteren Und-Gattern im selben Sinne verbunden.
Drei von den vier Bits des Segments 440, nämlich die Bits "b, c, und d kennzeichnen einen der Virtualverarbeiter P bis P 7 durch ein entsprechendes Signal auf einer der Ausgangsleitungen aus dem Dekodierer 455. Das vierte Bit, m nämlich Bit a' des Segments 440, dient zur Freigabe bzw. Sperrung der Dekodier*ung, so daß ein bestimmter Zeitabschnitt frei, d.h. unbezogen bleiben kann.
Es sollte beachtet werden, daß der ARU 400 über Kanäle 470 mit den Registern 431m und 431n verbunden ist, mit welchen er aufgrund einer Programmsteuerung die gewünschten Zuordnungen in den Registern 431m und 431 η durchführen kann. Entsprechend den Taktpulsen auf Kanal 460 kann also
009818/U60
Ά. 37 442 b -^
k-b ' 50
3.7.1969
der !Decodierer 455 mit jedem Taktpuls von· einem Virtualverarbeiter zum nächsten umschalten. Entsprechend dem Registerinhalt der Register 431m und 431n kann die gesamte Zeit auf einen der Virtualverarbeiter verlegt werden, sie kann gleichmäßig aufgeteilt oder auch ungleichmäßig diesem zugeteilt werden, je nachdem dies die" in den Registern 431m» 431η enthaltene Kodierung bestimmt.
Wenden wir uns nun den Steuerleitungen zu, die aus dem Ausgang des Dekodierers 455 konimenj esist dabei zu beachten, daß die zwischen den Registern 431 n, 431 πι und dem Dekodierer 455 liegenden Schaltkreise Bit-näßig dargestellt wur- . den. Im Gegensatz dazu wird die zwischen dem Dekodierer und dem Rechner 400 liegende Schaltung zur Steuerung der Virtualverarbeiter vijnd. insbesondere zwischen "den Virtualverarbeitern und dem Rechner nicht bitmäßig sondern nur in Blockschaltbildern dargestellt.
Ein Fluß von Verarbeiterdaten auf Kanälen 478 kann durch entsprechende Signale auf den Leitungen 460 bis 467 freigegeben oder verhindert werden. Im einzelnen führt der Ausgangskanal 460 zu einer Koinzidenzschaltung 490, an welche ebenso der Kanal 478 angelegt ist. Eine Koinzidenzschaltung 500 nimnt erstens den Ausgangskanal des Virtualverarbeiters P0 auf und zweitens den Kanal 460. Auf die gleiche Weise arbeiten Koinzidenzschalter 491 bis 497 an den Eingängen, der übrigen Virtualverarbeiter, sowie Koinzidenzschalter 501 bis 507 an deren Ausgängen/Schalter 500 bis 507-speisen eine Oder-Schaltung 508, deren Ausgang den Datenfluß unmittelbar in den ARU 400 schickt. Auf diese "tfeise arbei-
• PQ
tet jeweils nur einer der Virtualverarbeiter/fbis'P 7 während einer Zeitspanne, indem die Auswahl eines bestimmten Virtualverarbeiters dem Inhalt derjenigen Segnente 440, 445.."·
009818/U60
A 37 442 b "*-*#■
k-b ' 5*
3-7-1969
entspricht, welche nach Maßgabe der durch die Taktpulse
betriebene-n zyklisch arbeitenden Zuordnersteuerung gerade angewählt werden.
Eine Beschreibung des Puffers M3U 100 findet man in einer anderen Anmeldung der Anmelderin (ämtl. Aktenzeichen ...).
Eine Beschreibung der Gefügeschaltung findet man in.einer weiteren Anmeldung der Anraelderin (amtl. Aktenzeichen .'..).
Eine Beschreibung der Zeitzuordner gem. Fig. 10-13 findet man wieder in einer anderen Anmeldung der Anmelderin (amtl. Aktenzeichen ....).·
009818/U60
kl - 137 7.7.69
Eine ins einzelne gehende Beschreibung des Rechenpuffers findet man in einer anderen Anmeldung derselben Anmelderin ( amtliches Aktenzeichen: ...)
Eine ins einzelne gehende Beschreibung des Kanalrechners findet man in einer weiteren Anmeldung derselben Anmelderin ( amtliches Aktenzeichen: ...)
Eine in^einzelne gehende Beschreibung des Zeitzuteilsystems ( Pig. Io bis 13) findet man in einer dritten Anmeldung derselben Anmelderin ( amtliches Aktenzeichen: ...)
009818/U60
A 37 442 b.
Tabelle I; Boole'sehe Gleichungen und Funktion des im Ausgangsteil der PPU gemäß Fig.4 befindlichen Teils der Gefügeschaltung.
FF l· 73 " ("Lade· Flop, zur Zeitgabe der Setzimpulse für FFG71
und/oder FFS72):
Setze L = (Tastpuls), wobei (Tastpuls) = verzögertes
SCP- oder SCV/- oder 'Fehlej/signal. . ' Rücksetze L = L.Ü.S"
FF C 71 fAnrufFlop, gesetzt durch SCP+SCW, zur Anzeige der speziellen Programmsituation der CPU)s Setze C = L.C(S)Lc1; wobei c1 '- SCP + SCW. jjtücksetze C von Seiten der PPU am Ende der Operation.
FF S 72 ("Schalt"Flop, gesetzt durch SCV^Fehler', zur Anzeige der speziellen Progranmsituation der CPU): Setze S = L. (C*).5\s·; wobei s1 = SCW+Fehler. Rilcksetze S von Seiten der PPU am Ende der Operation.
FF AC 77 ("toiruf" Fahne):
S^tze AC von Seiten der PPU, zur Anzeige für die CPU, daß eine Anrufoperation durchführbar wäre. Rücksetze AC von Seiten der PPU, zur Anzeige für die CPU, daß eine Anrufoperation nicht möglidi ist.
FF AS 44 (»Schalt"Fahne):
Setze AS von Seiten der PPU, zur Anzeige für die CPU, dass eine Schaltoperation durchführbar wäre. Rücksetze AS von Seiten der PPU, zur Anzeige für die CPU, dass eine Schaltoperation nicht möglich ist.
FF R 75 ("Betriebserlaubnis"):
Setze R von Seiten der PPU, wenn ein Betrieb der CPU
erwünscht ist.
Rücksetze R = XÜ.C+AS.S; dh:
' bei (SU,ÄS).(SCP, SCW, Fehler), also bei fehlender Fahne von Seiten der PPU und Aufkommen einer entsprechenden Anfrage von Seiten der CPU wird die CPU inaktiv^ und abwartend.
FF PC 80 ^Anrufen" Flop, befiehlt den Beginn der CPU-seitigen Anrufoperation (memory call)):
Setze PC = ACC
Rücksetze PC von Seiten der PPU nach Rückstellung der FlipFlop8 C 71 und S 72.
PF PS 71 ("Umschalten" Flop, befählt den Beginn der CPU-seitigen Sehaltoperation):
Setze PS =AS . S
Rücksetze PS von Seiten der PPU nach Rückstellung der FlipFlops C 71 und S 72.
009818/U60
A 37 442 b
FF CO 74 ("Anruf ausgeführt" Flop.zur Rückmeldung an die PPU):
Setze CC = CCC
Rücksetze CC von Seiten der PPU nach Rückstellung der FlipFlops C 71 und S 72.
FF SC 78 ("Umschaltung ausgeführt" Flop,zur Rückmeldung ' an die PPU): ·
Setze SC = PSC ..MSCj wobei ' ,PSC die Rückmeldung "Umschaltung ausgeführt" von
Seiten der CPU und
MSC die Rückmeldung "Umschaltung ausgeführt" von
Seiten der MCU ist.
Rücksetze SC von Seiten der PPU nach Rückstellung
der FlipPlops C 71 und S 72.
009818/U60
Tabelle II: Zelt AC AS PC PS R L OC SC C S AO AS PC PS R L CC SC C S AC AS PC PS R I CC SC C S
II
III
IV
VI
Ί 1 ο
1 1 0
1 1 0
1 1 0
ρ ι ο
0 ί 1
0 1 1
1 1 0
Ö 0 0 0
0 0 0 0
0 0 0 1
0 0 0 1
ί 1 1
110 110 0 10 1
0 0 0 0 1 1 0 0 1 0 0 0 0 0
0 0 0 0 1 1 0 0 1 1 0 0 0 0
0 0 1 0 1 i 0 0 1 ρ 0 0 1 1
0 0 1 0 1 1 1 1 1 0 0 0 1 ί
1 0 1 0 1 1 1 1 1 0 1 Q 1 1
1 1 1 1 1 0 1 Ί 1
Heubeginri der PPTJ
"Fehler" —* S —> "TMs ehalt en"
"SCP"-
"Anrufen"
1SCW" -* C sowie "Anrufen" sowie "Umschalten"
Ablaufdiagramm zur Gefügeschaltung am Beispiel: Automatische TJms ehaltung und Anruf verarbeitung bei fortwährend betriebener CPTJ. Bedeutung der Zeiten I bis VIi ' .
I warten auf eine CPTJ Anfrage "SCP", "SCW" oder "Fehler", il Taetpule
III Beschicken der PlipPlops C 71 und/oder S 72 *
IV Beginn der PCTJ-seitigen Operation V \Anruf ausgeführt' VI : HJmschaltung ausgeführt* -
Tabelle III: AC AS PC PS R L CC SC 1 C S AC AS — '. R L cc SC C S AC AS 0 PC PS H L cc SC - C S
Zeit 0 1 0 0 0 0 0 1 0 PC PS 1 0 0 0 0 0 1 0 0 ο 1 0 0 0 0 o*
-I 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 .0 0 0 0'
II 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 •1 V
III . 0 0 \ t ϋ ϋ 0 ϋ 1 1 0 0 0 1 0 0 0 1 0 1 0 t 1 0 0 0 0 1 is
IV 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1
O V 0 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1
Ο
ΙΟ
VI
«0 Neubeginn der PPU
"Ν* "Fehler"—»B —»«Umschalten' 'BCP11—* C-* "Anrufen" "SCW"-*C sowie s—>
"Anrufen11 sowie 3ha .11
ο ..... met
Ablaufdiagramm eur Gefügeeehaltung am Beispiel: *
Automatische Anrufverarbeitung; verhinderte automatische Umschaltung, indea die CPU nur so *.. lange betrieben wird, bis CPUseitig auf Umschaltung angefragt wird.
Bedeutung der Spalten und Zeiten wie Tabelle II. ·
;Bemerkung zu "A": Die PPU leitet eine (Pseudo) Umschaltung ein, indem das PS PlipPlop EPPS79
auf "Ein" gezwungen wird. -..
Bemerkung zu'"B": Zwar wird hier das PC PlipPlop PFPC80 auf die übliche Art gesetzt, wodurch : :
eine automatische Anrufverarbeitung in Gang kommt; die PPU leitet aber infolge IS" eint (Pseudo)Umschaltung ein, indem das PS FlipFlop FFPS79 auf "Sin" gezwungen wird.
Tabelle IV; MBU-Datei der CPU Io: Parameter-Datei 132t
SA Speicherstartadresse zum Auslesen des Vektors A SB " " " ' " ". . B
SC. " * " Einschreiben des Vektors C
NY Anzahl der Elemente in einer fundamentalen Vektoroperation NI Anzahl der Durchläufe in der Inneren Schleife N0 Anzahl der Durchläufe in der äusseren Schleife
ΔΙ Adresseninkrement für die innere Schleife 60 Adresseninkrement für die iiussere Schleife
Arbeits-Datei 133», „.
AA Arbeltsadresse (laufende Adresse) für Vektor A BB ■" " " " B
VC laufende Zählung der Vektorkomponenten IC " " ■ Innenschleifen 0C " ■ ■ " Aussenschleifen
Tabelle V» Speicherplatzbelegung zur Durchführung einer Multiplikation zweier Determinanten dritten Grads
Speicherstelle für Speicherstelle für Speicherstelle für Determinante A Determinante B Determinante C
m C-11
m+1 C12
m+2 C13
m+3 "C21
Bt+4 C22
1B+5 C23
n+6 C31
m+7 C32
m+8 C33
k+1 a12 l yC+1 b21
k+2 a,3
k+3 a2i : ^
k+4 a22 ^+4 b22
k+5 a23 ' ^+5 b32
k+6 a3i /+6 bl3
k+7 a32 /+7 b23
k+8 a33 /+8 b33
Die Determinante A ist reihenmässig auf die Speicherstellen
k bis k+8 verteilt?
die Determinante B ist spaltenmässig auf die Speicherstellen
t bis ^+ 8 verteilt?
Die Determinante C ist reihenmässig auf die Speicherstellen
m bis m+8 verteilt.
00981S71460
Tabelle V» Fortsetzung
Zu Beginn der Multiplikation wirds SA * ic . NV « 3 ΛΙ * 1 SB * & HI « 3 Δ0 « 3 SC « m N0 * 3
Tabelle Vt % Adressen- und Steuerungsablauf für die Determinante A sur Durchführung der Multiplikation gemäss Tabelle V.
ehr ltt Operation VC IC 0C A Adresse
1 SÄ-*AÄ NV-1—»VC .
NI-I-*IC N0-1-»0C
2 2 2 . k
2 VC-1-»VC I 2 2 k+1
3 vc-fctvc O 2 2 k+2
4 SA-fcAA NV-1—WC 2 1 2 k
5 AA+1—>AA 1 1 2 k+1
AA+1—AA
. VC-Ir-WC
6 1 2 k+2
7 SA—*AA NV-I-^VC
IC-1—»IC
2 O 2 k
8 AÄ+1-»AA
VC-.1—WC
1 O 2 k+1
9 ΑΆ+1—ΐΑΑ
VC-I-^VC
Ö O 2 k+2
Io SA+/10-»AA , SA NV-1-~»VC
NI-1—»IC 0C~i—=>0C
2 2 1 , k+3
11 AA+1—iAA
ve-1—»ve
1 2 1 k+4
12 AA+1-^AA
VC-I-^VC
O 2 1 k+5
009818/ U60 *
Tabelle Vi, Fortsetzung
schritt operation VC IQ 0C Ä Adresse
13 ' 2 X 1 k+3
14 vc-i—wc 1 X 1 k+4
15 AA+l—iAA
VC-I-WC
0 1 1 k+5
16 SA—>AA NV-Ir-WC 2 0 1 k+3
17 AA+1—*&Ä
VC-1—WC
1 0 1 k+4
. 18 AA+l·—sAA
vc-t-wc
0 0 1 k+5
19 SA+A0->AA, SA NV-1W<
NI-1—=>1C 0C-3r-^0C
: 2 2 0 k+6
2o AA+Ür-AA
VC-1—WC
1 2 0 k+7
21 AA+1—*AA
VC-I-^VC
0 2 0 k+8 .
22 SA-^AA NV-1—WC
IC-1—»IC
2 1 O k+6
23 AA+1—^AA
VC-1—WC
1 1 0 k+7
24 AA+1—^AA
vc-i-wc
Ö 1 0 k+8
25 SA—*AA NV-1—WC
ic-i—>ic
2 0 0 k+6 .
26, AA+1—^AA
VC-1—^VC
1 0 0 k+7
27 VC-I-^VC 0 0 0 k+8
009 8-18/U60

Claims (1)

  1. Patentansprüche
    1> Koramunikationsschaltung swiwchen einem Zentralrechner und einer Peripheriesteuerung eines Multiprogramm-Computersystems mit einem Speicher zur Speicherung von Daten sowie eines laufenden Programms,, dadurch gekennzeichnet* dass die Peripheriesteuerung einen Kennungsgeber (4*1,77) aufweist zur Erstellung einer Kennung bezüglich eines nächsten im Zentralrechner zu verarbeitenden Programms, insbesondere bezüglich des Vorhandenseins eines :- ' * -: ■'-. . ^.,.~zu verarbeitbaren Programms, sowie dessen Auswahl, dass ferner eine den Zentralrechner umfassende Teilschaltung (41) vorgesehen ist zur. Erstellung und Weiterleitung eines ersten Signals (SCP) an die Peripheriesteuerung (11) zur Anzeige, dass der Zentralrechner (lo) ohne Programmänderung weiterarbeiten kann, dass eine weitere den Zentralrechner umfassende Teiischaltung (42) vorgesehen ist zur Erstellung und Weiterleitung eines zweiten Signals (SCW) an die Peripheriesteuerung zur Anzeige einer erforderlichen Programmänderung im Zentralrechner, und dass achliesslieh eine auf die Kennung (44,77) und das zweite Signal ansprechende Teilschaltung (43,44,45) vorgesehen ist zur Umschaltung des Zentralrechners auf das
    nächste zu verarbeitende Programm .
    2» Schaltung nach Anspruch I9 dadurch gekennzeichnet, dass mit dem Zentralrechsier (lo) eine Teilschaltung (18,33*55) ver-
    00981 8/ÜSQ
    A 37 *4o b kl - 137 7.7.69
    bunden ist sur Erstellung eines Startbefehls CuCC) für die Peripheriesteuerüng bezüglich deren Ansprechen auf das erste oder zweite Signal ( SCP bzw. SCW) nach einer yorbe- * «tinaten Verzögerungszeit»
    3· Schaltung -nach Anspruch 1 oder 2, gekennzeichnet durch eine ilen Zentralrechner (lo) umfassende Tel !schaltung (53) sur Erzeugung eines Fehlersignals sowie zu dessen Weiterleitung an die Peripheriesteuerung (11) und zur Umschaltung des Zentralrechners vom laufenden auf ein anderes Programm.
    *U . Schaltung nach Anspruch 3» dadurch gekennzeichnet, dass in der Peripheriesteuerung mindestens teilweise derselbe Signalkanal für das zweite Signal (SCW) und das Fehlersigvorgesehen ist.
    Schaltung nach einem oder mehreren der vorstehenden Ansprüche, wobei der Zentralrechner eine arithmetische Einheit (lol), ein Instruktionespeicherregiater (128) zur Übermittlung von Instruktionen an die arithmetische Einheit, sowie einen Adressengenerator (126a) zur Erzeugung eines Steuercodes für die Steuerung des Einspeicherns ■nd Abrufens von Operanden zwischen Speicher und arithmetischer Einheit aufweist» dadurch gekennzeichnet, dass der Speicher eine reservierte Speicheradresse aufweist, dass die Teilschaltungen (41 bzw. 42) für die Erstellung des ersten bzw. zweiten Signals (SCP bzw. SCW) einen Decodierer (2ol) mit zwei Ausgangsleitungen (41,k2) umfassen, der mit dem Register (128) gekuppelt ist, um auf einen besonderen Code anzusprechen, der Teil der Instruktionen ist, sur Erzeugung eines Ausgangssignals, das entweder das erste Signal (SCP) auf einer ersten der beiden Ausgangsleitungen
    0 0 9 8 1 8 / U 6 0
    A 37 44o b #»
    ' kl - 137 **
    7.7.69
    darstellt, wenn der Code einen Abruf- ttnd Weiterbearbeitungsbefehl darstellte oder das das zweite Signal (SCW) auf dem zweiten der beiden Ausgangskanäle (42) darstellt, wenn der Code einen Abruf - und Wartebefehl darstellt, dass üernss· eine Speichersteuerungseinheit (18) vorgesehen ist, die einen vom und zum Speicher führenden Kanal (33) aufweist, der zum Zentralrechner führt, um die Ausgangssignale an die arithmetische Einheit zu bringen, wenn.die reservierte Speicheradresse verfügbar ist, und dass sehliesslich eine von diesem Ausgangssignal gesteuerte Teilschaltung (45,6o) vorgesehen ist zur Weiterleitung des Steuercodes anstelle der Operanden in die reservierte Speicheradresse.
    6. Schaltung nach Anspruch 5$ dadurch gekennzeichnet, dass der Zentralrechner ein Adressenregister (2o3) mit insbesondere festem Inhalt aufweist, das die reservierte Speicheradresse beinhaltet, und dass ein von dem Ausgangssignal gesteuertes Satter (2o9) vorgesehen ist zur Weiterleitung des Steuereödes an die durch die reservierte Speicheradresse bestimmte Stell® des Speichers.
    7· Schaltung nach Anspruch 5 oder β, dadurch gekennzeichnet, dass das Ausgangsteil der Peripherie steuerung zum Zentralrechner feste Verbindungen zum letzteren aufweist, die auch die Ausgangsleitungen in Form eines Kanals zum Anlegen mindestens eines im Zentralrechner erzeugten Steuersignals an die Peripheriesteuerung und feste Leitungen zur Speichersteuerung zur Weiterleitung des Ausgangssignals an die arithmetische Einheit umfassen.
    009818/1460
    A 37 Mo b kl - 137 7.7.69
    8· Verfahren zur Anwendung der Schaltung nach einem oder * mehreren der vorstehenden Ansprüche, dadurch gekennzeichnet, dass in den Zentralrechner eine Instruktion für die Erzeugung eines eine Programmänderung fordernden Steuersignals eingegeben wird, dass dieses Steuersignal an die Peripheriesteuerung weitergereicht wird zur Betätigung der Durchführbarkeit der Programmäiiderung, dass ferner im Speicher eine bestimmte Adresse reserviert wird zur Abspeicherung eines Programmwechselbefehls, dass im Zentrallrechner ein diese Adresse darstellender Code gespeichert wird, und dass aufgrund der Veiterreichung des Steuersignals von der Peripheriesteuerung zum Zentralrechner der Programmwechselbefehl ent- - sprechend diesem Code zum Speicher weitergeleitet wird.
    9· Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass vor der Weiterreichung des Steuersignals mindestens ein Bereitschaftssignal vom Zentralrechner an die Peripheriesteuerung abgegeben wird.
    009818/U6Ö
DE1934365A 1968-07-09 1969-07-07 Umschaltanordnung für eine Multiprogramm-Datenverarbeitungsanlage Expired DE1934365C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US74357268A 1968-07-09 1968-07-09

Publications (3)

Publication Number Publication Date
DE1934365A1 true DE1934365A1 (de) 1970-04-30
DE1934365B2 DE1934365B2 (de) 1973-08-09
DE1934365C3 DE1934365C3 (de) 1974-03-28

Family

ID=24989305

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1934365A Expired DE1934365C3 (de) 1968-07-09 1969-07-07 Umschaltanordnung für eine Multiprogramm-Datenverarbeitungsanlage

Country Status (10)

Country Link
US (1) US3614742A (de)
JP (1) JPS505542B1 (de)
BE (1) BE735858A (de)
CA (1) CA932868A (de)
DE (1) DE1934365C3 (de)
FR (1) FR2012588A1 (de)
GB (1) GB1267384A (de)
MY (1) MY7300347A (de)
NL (1) NL172008B (de)
SE (1) SE364383B (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3725864A (en) * 1971-03-03 1973-04-03 Ibm Input/output control
US3896418A (en) * 1971-08-31 1975-07-22 Texas Instruments Inc Synchronous multi-processor system utilizing a single external memory unit
US3902162A (en) * 1972-11-24 1975-08-26 Honeywell Inf Systems Data communication system incorporating programmable front end processor having multiple peripheral units
US4149244A (en) * 1976-06-07 1979-04-10 Amdahl Corporation Data processing system including a program-executing secondary system controlling a program-executing primary system
US4305124A (en) * 1978-06-09 1981-12-08 Ncr Corporation Pipelined computer
DE2966601D1 (en) * 1978-06-09 1984-03-08 Ncr Co A digital pipelined computer
US4244019A (en) * 1978-06-29 1981-01-06 Amdahl Corporation Data processing system including a program-executing secondary system controlling a program-executing primary system
US4409653A (en) * 1978-07-31 1983-10-11 Motorola, Inc. Method of performing a clear and wait operation with a single instruction
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
JPS6043535B2 (ja) * 1979-12-29 1985-09-28 富士通株式会社 情報処理装置
US4484274A (en) * 1982-09-07 1984-11-20 At&T Bell Laboratories Computer system with improved process switch routine
US4521847A (en) * 1982-09-21 1985-06-04 Xerox Corporation Control system job recovery after a malfunction
US4870644A (en) * 1982-09-21 1989-09-26 Xerox Corporation Control crash diagnostic strategy and RAM display
US4475156A (en) * 1982-09-21 1984-10-02 Xerox Corporation Virtual machine control
US4550382A (en) * 1982-09-21 1985-10-29 Xerox Corporation Filtered inputs
US4514846A (en) * 1982-09-21 1985-04-30 Xerox Corporation Control fault detection for machine recovery and diagnostics prior to malfunction
US4737907A (en) * 1982-09-21 1988-04-12 Xerox Corporation Multiprocessor control synchronization and instruction downloading
US4532584A (en) * 1982-09-21 1985-07-30 Xerox Corporation Race control suspension
US5023779A (en) * 1982-09-21 1991-06-11 Xerox Corporation Distributed processing environment fault isolation
US4698772A (en) * 1982-09-21 1987-10-06 Xerox Corporation Reproduction machine with a chain of sorter modules and a method to perform chaining tasks
US4689739A (en) * 1983-03-28 1987-08-25 Xerox Corporation Method for providing priority interrupts in an electrophotographic machine
US4589093A (en) * 1983-03-28 1986-05-13 Xerox Corporation Timer manager
US4509851A (en) * 1983-03-28 1985-04-09 Xerox Corporation Communication manager
US4562538A (en) * 1983-05-16 1985-12-31 At&T Bell Laboratories Microprocessor having decision pointer to process restore position
US4574348A (en) * 1983-06-01 1986-03-04 The Boeing Company High speed digital signal processor architecture
US5109348A (en) * 1987-09-14 1992-04-28 Visual Information Technologies, Inc. High speed image processing computer
US5146592A (en) * 1987-09-14 1992-09-08 Visual Information Technologies, Inc. High speed image processing computer with overlapping windows-div
US5129060A (en) * 1987-09-14 1992-07-07 Visual Information Technologies, Inc. High speed image processing computer
US4985848A (en) * 1987-09-14 1991-01-15 Visual Information Technologies, Inc. High speed image processing system using separate data processor and address generator
US5201039A (en) * 1987-09-30 1993-04-06 Mitsubishi Denki Kabushiki Kaisha Multiple address-space data processor with addressable register and context switching
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5390329A (en) * 1990-06-11 1995-02-14 Cray Research, Inc. Responding to service requests using minimal system-side context in a multiprocessor environment
WO1992003783A1 (en) * 1990-08-23 1992-03-05 Supercomputer Systems Limited Partnership Method of implementing kernel functions
US5428779A (en) * 1992-11-09 1995-06-27 Seiko Epson Corporation System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions
US5825770A (en) * 1996-06-06 1998-10-20 Northern Telecom Limited Multiple algorithm processing on a plurality of digital signal streams via context switching
US7457671B2 (en) * 2004-09-30 2008-11-25 Rockwell Automation Technologies, Inc. Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3286239A (en) * 1962-11-30 1966-11-15 Burroughs Corp Automatic interrupt system for a data processor
US3283308A (en) * 1963-06-10 1966-11-01 Beckman Instruments Inc Data processing system with autonomous input-output control
US3406380A (en) * 1965-11-26 1968-10-15 Burroughs Corp Input-output data service computer
US3411143A (en) * 1966-01-13 1968-11-12 Ibm Instruction address control by peripheral devices
US3483521A (en) * 1966-05-13 1969-12-09 Gen Electric Program request storage and control apparatus in a multiprogrammed data processing system
US3479647A (en) * 1966-06-03 1969-11-18 Gen Electric Data process system including means responsive to predetermined codes for providing subsystem communication
US3421150A (en) * 1966-08-26 1969-01-07 Sperry Rand Corp Multiprocessor interrupt directory

Also Published As

Publication number Publication date
NL172008B (nl) 1983-01-17
BE735858A (de) 1969-12-16
JPS505542B1 (de) 1975-03-05
SE364383B (de) 1974-02-18
US3614742A (en) 1971-10-19
NL6910536A (de) 1970-01-13
DE1934365B2 (de) 1973-08-09
GB1267384A (en) 1972-03-15
FR2012588A1 (de) 1970-03-20
CA932868A (en) 1973-08-28
MY7300347A (en) 1973-12-31
DE1934365C3 (de) 1974-03-28

Similar Documents

Publication Publication Date Title
DE1934365A1 (de) Automatische Programmschaltung bei Computern mit Multiprogrammierung
DE2251876C3 (de) Elektronische Datenverarbeitungsanlage
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE1942005A1 (de) Zeitzuteiler fuer Multiprogrammier- und Multiprozessier-Computer
EP0048767B1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE2554652C3 (de) Modulare Signalverarbeitungseinrichtung
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE102007025397B4 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE3638572C2 (de)
DE4220698C2 (de) Verfahren zum Betreiben einer Datenverarbeitungsanlage
DE2839726A1 (de) Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system
DE1549523B2 (de) Datenverarbeitungsanlage
DE1200581B (de) Programmunterbrechungssystem fuer eine elektronische Rechenmaschine
DE2457612B2 (de) Mikroprogrammier-Steuereinrichtung
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
EP0134831A1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE3802025C1 (de)
DE2454613C2 (de) Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage
DE2245284A1 (de) Datenverarbeitungsanlage
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen
DE1934441C3 (de) Befehlswerkgesteuertes Rechenwerk für einen Digitalrechner
DE1934439A1 (de) Datenverarbeitungseinrichtung,insbesondere zur Durchfuehrung von Matrixoperationen
DE1774866C3 (de) Schaltung zur Bestimmung der Adresse einer in einem Speicher einer Datenverarbeitungsanlage enthaltenen, gesuchten Information
DE2234192C2 (de) Datenverarbeitungsanlage
DE2804575A1 (de) Datenverarbeitungseinrichtung

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee