DE2505843A1 - Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung - Google Patents

Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung

Info

Publication number
DE2505843A1
DE2505843A1 DE19752505843 DE2505843A DE2505843A1 DE 2505843 A1 DE2505843 A1 DE 2505843A1 DE 19752505843 DE19752505843 DE 19752505843 DE 2505843 A DE2505843 A DE 2505843A DE 2505843 A1 DE2505843 A1 DE 2505843A1
Authority
DE
Germany
Prior art keywords
unit
programmable
data
units
data segment
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.)
Withdrawn
Application number
DE19752505843
Other languages
English (en)
Inventor
Robert Stanley Barton
Alan Lynn Davis
Erwin Hauck
Don Martin Lyle
Lloyd Drayton Turner
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.)
Unisys Corp
Original Assignee
Burroughs Corp
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 Burroughs Corp filed Critical Burroughs Corp
Publication of DE2505843A1 publication Critical patent/DE2505843A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control

Description

\ NACHGEREÜCHT
EISENFUHR& SPEISER £/7^ Patentanwälte
' DiPL.-lNG. GÜNTHER EIStNF1Ii1WR
DiPL-Ing. DIETER K. SPEISER BREMEN DR RER. NAT. HORST ZINNGREBE
UNS. ZEICHEN : B 305
ANMELDER/INH: BURROUGHS CORPORATION
Aktenzeichen: Neuanmeldung i 24 O S «<(:>. 1 " Datum: 4. November 197;
BURROUGHS CORPORATION, eine Gesellschaft nach den Gesetzen des Staates Michigan, Burroughs Place, Detroit, Michigan 48232, V.St.A.
Datenverarbeitungsanlage mit datenstromgesteuerter Simultanverarbeitung
Die' Erfindung beschäftigt sich mit einem datenstromgesteuerten Netzwerk zur Simultanverarbeitung von Programmen in einer Datenverarbeitungsanlage, und insbesondere beschäftigt sie sich mit einem Netzwerk» das sowohl verteilte Verarbeitungselemente wie auch verteilte Speicherelemente aufweist.
Bekannte Datenverarbeitungsanlagen wurden mit einer in erheblichem Umfang zentralisierten Organisation und Steuerung ausgerüstet, die in Einheiten wie dem Zentralprozessor und den Hauptspeichereinheiten verkörpert sind. Diese hohe Zentralisierung war eine Folge der für die Schaltung aufzuwendenden Kosten, der Schaltungsgrößen und der Versuche, die Ausnutzung dieser Komponenten zu optimieren. Weiter wurden System-Gperationsalgorithmen in zentralisierter Orientierung als Gegenstück zur dezen-
HZ/gs 509836/0 66 8
D 2800 BREMEN 1 EDUARD-GRUMOW-STRASSE 27 - TELEFON ( 0421 ) "7 20
TELEGRAMWEFERROPAT · TELEX 02 44 020 FEPAT · BREMER BANK 100 9072 ■ POSTSCHECK HAMBURG 25 57
tralisierten Steuerung geschaffen und die Algorithmen und Sprachen waren auf die sequentielle Bearbeitung von Problemen ausgerichtet» In derartig zentralisierten Systemen waren die einzelnen Einrichtungen der Erle-_ digung spezieller Funktionen gewidmet und das Unterteilen des Systems zwischen verschiedenen Programmen oder Verfahren war bestenfalls unregelmäßig. Große Operations-S'/steme wurden entwickelt, um die Ausnutzung der verschiedenen Systernkomponenien und -Geräte au optimieren und sie über eine Anzahl von Programmen und zu erledigenden Aufgaben möglichst nutzbringend zu verteilen« Derartig hochzentralisierte Systeme sind jedoch nicht imstande, aus den inzwischen stattgefundenen technischen Weiterentwicklungen, wie sie beispielsweise in der LSI-Technik vorliegt, optimalen Nutzen zu ziehen. Diese LSI-Technik bezieht sich insbesondere auf die integrierten Modul-Großschaltungen, die in Weiterführung der IC-Technik auf kleinen Chips untergebracht werden können (LSI=modular large scale integrated circuit chips).
Um eine größere Flexibilität zur Anpassung an laufende Prozesse, Programme und Bearbeitungen von Aufgaben zu schaffen, wurden in bekannter Weise zentralisierte Systeme in Mehrprogramm und Simultan-Verarbeitungssysterae welter entwickelt, die aus Netzwerken und Feldern von Einheiten bestehen, die in gewissem Umfang modul-mäßig aufgebaut sind« Das bedeutet, daß die Verarbeitungs-Leistungsfähigkeit durch Hinzufügen zusätzlicher zentraler Verarbeitungseinheiten gespeichert werden kann, daß der Hauptspeicher durch Hinzufügen zusätzlicher Speichermoduln vergrößert werden kann und daß die E/A-Leistungsfähigkeiten durch Hinzufügen weiterer E/A-Kanäle oder -Steuereinheiten erhöht werden kann (E/A = Eingabe/Ausgabe)« Da jedoch die einzelnen Verarbeitungseinheiten und. E/A-Steuereinheiten noch immer auf die sequentielle Ausführung von Aufgaben ausgerichtet sind, bleibt die Systemsteuerung
509835/0 668 °*MNal inspected
dennoch relativ zentralisiert und das Unterteilen der verschiedenen Einheiten in dem System für die Behandlung verschiedener gleichlaufender Ausgaben ist nach wie vor relativ unregelmäßig.
Weiterentwicklungen in der LSI-Schaltungstechnik haben einige Einflüsse beseitigen können, die sich aus der stark zentralisierten Steuerung in Datenverarbeitungsanlagen ergaben. Die LSI-Technologie erfordert Regelmäßigkeit und eine Nicht—Zuweisung spezialisierter oder komplizierter Algorithmen und Funktionen zu den einzelnen Schaltungs-Chips. Außerdem sind die IC-Speicher schnitts'tellenkompatibel mit Logikschaltungen und daher kann die registerorientierte Prozessorstruktur durch Verteilen der IC-Speicher über das gesamte System eliminiert werden. Ferner haben die Weiterentwicklungen an periodischen Speichergeräten wie beispielsweise Platten, Plattenstapel, Verzögerungsleitungen und dergleichen zu einer sehr unergiebigen Speicherform geführt. Während die Zugriffszeiten derartiger periodischer oder dynamischer Speicher relativ langsam verglichen mit den IC-Speichern sind, erlaubt die Verteilung derartiger periodischer Speicher über das System das Nutzbarmachen einer nahezu unbegrenzten Speicherkapazität, für die die Zugriffszeit nicht größer ist als die Zugriffszeit für einen einzelnen Speicher. ·
Um die Modulbauweise der in IC-Schaltungen ausgeführten Einheiten zu schaffen, gestattet die Verwendung der Mikro— Programmiertechnik, daß das System aus einer großen Anzahl ähnlicher Prozessor-Chips aufgebaut werden kann, von denen jedes einer speziellen Aufgabe durch das in seinem Mikroprogrammspeicher gespeicherte Mikroprogramm gewidmet ist. So kann eine Anzahl ähnlicher, in IC-Technik ausgeführter Prozessoren jeweils Aufgaben wie die arithmetischen Operationen, Eingabe/Ausgabe-Operationen, und dergleichen übernehmen.
5098::;;/0^68
Ein spezielles Strukturmerkmal, das die Entwicklung hochzentralisierter Systeme beeinflußt hat, besteht in der Verwendung von bitparallelen Datenwegen und dem bitparallelen Zugriff auf den Speicher. Eine derartige parallele Datenübertragung erfordert eine gewisse gleichförmige Breite der Datensegmente, die ihrerseits sich nicht leicht verschiedenen Benutzeranforderungen anpassen lassen. Jedoch paßt sich die Verwendung einer bitseriellen oder zeichenseriellen Datenübertragung leicht Datensegmenten beliebiger Länge an und vermeidet die Forderung, daß die Datenwege, Register und Speicherstellen gleichförmig miteinander verdrahtet sein müssen.
Das vielleicht bemerkenswerteste Einzelmerkmal bekannter Systeme, das zur Entwicklung zentralisierter Systemsteuerungen und sequentieller Problemlösungen geführt hat, besteht wohl darin, daß eine die Befehlsausführung dirigierende Steuerung verwendet wurde. Das bedeutet, daß' in den meisten bekannten Systemen eine ein Programm oder eine Prozedur in einem Programm repräsentierende Befehlskette durch das sequentielle Weiterzählen eines Programmzählers aufgerufen wurde, und die für die Befehlskette erforderlichen Operanden so zusammengestellt werden mußten, daß sie am Prozessor rechtzeitig zur Ausführung der einzelnen Befehle in der Kette zur Verfügung standen. Da die Anwesenheit der benötigten Operanden nicht derjenige Umstand war, der die Befehlsausführung aufrief, wurden eine Anzahl ausgeklügelter und umständlicher Verfahren geschaffen, um sicherzustellen, daß die benötigten Operanden tatsächlich zur Verfügung stehen.
Im Gegensatz zu solchen steuerungsabhängigen Systemen sind die vom Datenstrom gesteuerten Systeme solche, bei denen die speziellen Befehle in Abhängigkeit von der Ankunft jeweiliger Datensegmente an "einer speziellen Verarbeitungseinheit 'zur Ausführung aufgerufen werden. In
509836/0668
solchen datenstromgesteuerten Systemen ist ein Programm- ■ zähler für die Systemsteuerung nicht notwendig, wie auch nicht länger eine Notwendigkeit für eine zentralisierte Systemsteuerung besteht. In solchen datenstromgesteuerten Systemen können die ein Programm bildenden verschiedenen Befehle verschiedenen Prozessoren zugeordnet werden und ihre Ausführung v-ürde in Sequenz stattfinden, wenn· die jeweiligen Daten von einem Prozessor zum anderen übertragen worden si id. Auf diese Weise kann das System.sehr leicht so unterteilt werden, daß es sich vollkommen gleichlaufenden oder nicht zusammenhängenden Prozeduren anpassen kann. Wenn andererseits eine Anzahl von Verarbeitungshandlungen an ähnlichen Datensegmenten ausgeführt werden sollen, kann der Strom derartiger Datensegmente von einem Prozessor zu einem anderen weitergeleitet werden und damit eine Art "pipeline"-Effekt schaffen, der nur durch die Übertragungsgeschwindigkeiten von einem Prozessor zu dem anderen begrenzt ist. .
Der Erfindung liegt daher die Aufgabe zugrunde, ein Informationsverarbeitungssystem zu schaffen, das eine natürlichere Organisation der Arbeitsabläufe besitzt als diejenige, die in den bekannten steuerungsabhängigen Systemen angetroffen wird. Weiter soll die Erfindung ein Informationsverarbeitungssystem schaffen, dessen Verteilung von Funktionseinheiten und Speichereinheiten eine zentralisierte Systemsteuerung überflüssig macht» Ferner soll das erfindungsgemäß verbesserte Informations-Verarbeitungssystem dynamisch unterteilbar sein, um gleichlaufenden Prozeduren, Programmen und Aufgabenlösungen angepaßt werden zu können. Schließlich soll das erfindungsgemäi verbesserte Informationsverarbeitungssystem eine beliebige Anzahl ähnlicher Funktionseinheiten umfassen, die dann verschiedenen Aufgaben zugewiesen werden können, die von dem System jeweils zu bearbeiten sind· Schließlich
509836/0668
und endlich soll das erfindungsgemäß verbesserte Informationsverarbeitungssystem einen verteilten Speicher besitzen, der ohne Beschränkung erweiterungsfähig ist, ohne daß gleichzeitig die Zugriffszeit zu ihm verlängert wird.
Zur Lösung der genannten Aufgabe schafft die Erfindung ein Netzwerk von Verarbeitungs- oder Funktionsmoduln, von denen jeder mit seinem eigenen örtlichen Speicher ausgerüstet ist und wobei die Hauptspeicherfunktion von der Vielheit der verschiedenen örtlichen Speicher erfüllt wird. Die Datenübertragung zwischen verschiedenen Funktionsmoduln findet asynchron in einer bitseriellen oder zeichenseriellen Weise statt. Die Ausführung durch jeden Funktionsmodul wird durch die Ankunft sämtlicher Datenposten ausgelöst, die von einem der Knoten eines Programmnetzwerks (oder Netzes) gebraucht werden und in der lokalen Speichereinheit enthalten sind, die mit dem Funktionsmodul gekoppelt ist. Die jeweils erforderlichen Datenposten bilden die zugehörigen Datenstrukturen. Eine dieser Datenstrukturen ist ein Befehls- oder Operator-(Operand)-Knoten und mehrere solcher Knoten sind in einem oder mehreren örtlichen Speichern gespeichert und bilden ein Programm-Netzwerk. Die andere Datenstruktur umfaßt Übergangs-Datenposten, die eine Verbindung zwischen den Knotenpunkten des Programm-Netzes bilden. Die Übergangsdatenposten enthalten wenigstens einen Operanden (Operator) und eine Adresse, die auf die Stelle in einem örtlichen Speicher des Befehls-oder Operator-(Operand)-Knotens weist, der ausgeführt werden soll. Sowohl monadische wie dyadische Operationsknoten werden behandelt. Die Operatorknoten sind mit einer Bestimmungsadresse versehen, an welche die Operationsergebnisse übertragen werden sollen. Der Funktionsmodul wird dann datenstromgetrieben und es besteht kein Bedarf für ein umfangreiches Operationssystem, um einen Fahrplan zur Lösung von Aufgaben oder einer Bestimmung von
509836/0668
Unterbrechungsvorrang zu schaffen.
Um eine gleichlaufende Datenübertragung zwischen Funk— tionsmoduln zu schaffen, sind die Eingangs- und Ausgangsleitungen mehrerer solcher Funktionsmoduln an eine Vermittlung angeschlossen, und jede Vermittlung kann in einer rekursiven Hierarchie an eine weitere Vermittlung auf höherer Stufe angeschlossen sein, so daß jede beliebige Anzahl von Funktionsmoduln und zugehöriger örtlicher Speicher je nach Anforderung bedient werden können. Einige Funktionsmoduln sind mit verschiedenen Arten von E/ASchnittstellen ausgerüstet und die jeweiligen Funktionsmoduln sind so mikroprogrammiert, daß verschiedene Funktionsmoduln speziellen Operationsaufgaben wie beispielsweise E/A-Steuerung u.dgl. zugewiesen werden können.
Ein Merkmal der Erfindung besteht demzufolge in einem Informationsverarbeitungssystem, das aus einem Netzwerk gebildet wird, welches mehrere Funktionsmoduln und mehrere örtliche Speichereinheiten aufweist, wobei jede Speichereinheit mit einem anderen Funktionsmodul für die Zusammenarbeit mit diesem verbunden ist. Jeder Funktionsmodul ist mikroprograrnmierbar und die darin ausgeführten Ausführungen und Handlungen finden in Abhängigkeit von einem Paar zugeordneter Datenstrukturen statt, von denen eine ein Operator-(Operand)-Knoten ist, der normalerweise in der lokalen Speichereinheit gespeichert ist und von denen die andere einen Adressenteil und einen Argumententeil aufweist, die Übergangsdatenposten sind, welche die Knotenpunkte eines Programmnetzes verbinden. Der Adressen teil zeigt auf diejenige Stelle in einer örtlichen Speichereinheit, an der sich der erforderliche Operator (Operand) befindet.
Ein weiteres Merkmal der Erfindung ist in einem Netzwerk von Funktionsmoduln und örtlichen Speichereinheiten ver—
£09836/0668
25Q5843
körpert und umfaßt mehrere Vermittlungseinheiten, und zwar eine für jede Gruppe derartiger Funktionseinheiten, wobei jede Vermittlungseinheit in einer Hierarchie mit einer nächsten Vermittlungseinheit auf höherer Stufe verbunden ist, um jede erforderliche Anzahl von Funktionseinheiten aufnehmen zu können.
Ein weiteres Merkmal der Erfindung besteht in einem Informationsverarbeitungssystem, bei dem die örtlichen Speichereinheiten zyklisch sind und bei dem die Informationsübertragung zwischen den Funktionseinheiten asynchron entweder bitseriell oder zeichenseriell stattfindet.
Die Erfindung wird nachstehend anhand der beigefügten Zeichnungen im einzelnen beschrieben. Es zeigen:
Fig. 1 ein schematisches Diagramm des erfindungsgemäßen, datenstromgesteuerten Netzwerkes;
■Fig. 2 eine Tabelle mit einem Satz von Zeichen, die von einem erfindungsgemäßen Modul verwendet werden;
Fig. 3a und 3b Darstellungen der in der Erfindung verwendeten Datenstrukturformate;
Fig. 4 ein Diagramm eines Programmnetzes zur Erläuterung der Arbeitsweise des erfindungsgemäßen Systems;
Fig. 5 ein schematisches Diagramm eines im Rahmen der Erfindung verwendeten Funktionsmoduls;
Fig. 6 eine schematische Darstellung der Eingangsschlange aus Fig. 5;
Fig. 7 eine schematische Darstellung der in Fig.5 dargestellten Logikeinheit;
Fig. 8 eine schematische Darstellung der in Fig.5 angegebenen Ausgangsschlange;
Fig. 9 eine schematische Darstellung des Speicherschnittstellen-Adapters aus Fig.5;
509836/0668
Fig. 10 ein schematisches Diagramm einer Steuereinheit aus Fig.5; und
Fig. 11 ein schematisches Diagramm einer Vermittlung gemäß Fig. 1.
Das erfindungsgemäße System macht vollen Gebrauch von der LSI-Technologie und schafft demzufolge ein flexibles System, das dann entsprechend den verschiedenen gleichlaufenden Anforderungen dynamisch gegliedert werden kann. Die Erfindung kommt insbesondore ohne den üblichen zentralen Verarbei 1-ungir» ahmen, oi.ne Hauptspeicher und ohne E/A-Steuereinheihen aus. Das .".ystem umfaßt ein Netzwerk von Funktionsmoduln, von denen jeder seine eigene, lokale Speichereinheit besitzt. Die Funktion des üblichen Hauptspeichers wird von der Summe sämtlicher verschiedenen lokalen Speichereinheiten erfüllt. Gewisse Funktionsmoduln können E/A-Funktionen durch spezielle, in ihren lokalen Speichereinheiten gespeicherte Befehle und durch Schnittstellenadapter zugewiesen werden, die mit jenen Funktionseinheiten verbunden sind.
Das System wird datenstromgesteuert genannt, womit ausgedrückt sein soll, daß die einzelnen Befehle eines in den örtlichen Speichereinheiten verschiedener Funktionsmoduln gespeicherten Programms, welche Knoten in einem Programmnetz bilden, dann aufgerufen werden, wenn die geeigneten Daten an der speziellen Funktionseinheit angekommen sind. Somit sind die Befehle eines speziellen Programms über eine bestimmte Anzahl von Funktionsmoduln verteilt, welche Befehle in Abhängigkeit von der Ankunft der zugehörigen Daten ausgeführt werden, statt daß sie in einer rein sequentiellen Weise unter der Direktion einer Steuerung eines Programmzählers ausgeführt werden, wie das in bekannten, zentralisierten Systemen der Fall ist.
Ein die Erfindung verkörpendes System zeigt Fig. 1. Dieses
509836/0 6 6 8
System besteht aus einem Feld von Funktionsmoduln 10, bei denen die interne Datenübertragung synchron abläuft. Jedoch findet die Datenübertragung zwischen den Moduln asynchron statt. Wie nachstehend im einzelnen beschrieben werden wird, kann die Datenübertragung als bitseriell angesehen werden; da jedoch Zweibit—Zeichensätze verwendet werden, ist die Datenübertragung tatsächlich zeichenseriell.
Zu jedem Funktionsmodul 10 gehört eine örtliche Speichereinheit 11, wobei jede örtliche Speichereinheit normalerweise von zyklischer Natur ist, so daß sie sehr leicht an die bitserielle Datenübertragung angepaßt werden kann. Die verschiedenen örtlichen Speichereinheiten können hinsichtlich der Speicherkapazität und der Zugriffszeit unterschiedlich sein, so daß sie sich verschiedenen Programmoder Aufgaben-Anforderungen anpassen. So können die örtlichen Speichereinheiten aus einer Anzahl verschiedener Speicher wie etwa Platten, Stapel, Plattenpackungen, Verzögerungsleitungen, ladungsgekoppelter Geräte, Blasenspeicher oder dergleichen bestehen. In gewissen Fällen jedoch können die örtlichen Speichereinheiten 11 Random- . Access-Speicer sein, die aus Kernen oder ICs bestehen können.
Zur Anpassung an asynchrone Datenübertragung zwischen Funktionsmoduln weist die Funktionsmodulschni.ttstelle Ausgangsleitungen 10a und Eingangsleitungen 10b auf, die den jeweiligen Funktionsmoduln 10 mit einer Vermittlung 12 von erster Stufe verbinden. Die Vermittlung 12 ist ein Schaltsystem, das im einzelnen weiter unten beschrieben wird· Wenn die in einem speziellen System erforderliche Anzahl von Funktionsmoduln diejenige Anzahl übersteigt, die von einer speziellen Vermittlung übernommen werden kann, dann können mehrere Vermittlungen 12 von erster Stufe mit einer Vermittlung 16 von zweiter Stufe über eine Vermittlungsschnittstelle 13 verbunden sein, die jeder Vermittlung von erster Stufe zugeordnet ist. Um solche Daten-
509836/0668
übertragung zu puffern, ist die Vermittlungsschnittstelle 13 mit einer Ausgangsschlange 14 und einer Ein-.gangsschlange 15 ausgerüstet. Es ist in Fig. 1 nicht ausdrücklich dargestellt, daß mehrere derartige Vermittlungen 16 von zweiter Stufe mit einer Vermittlung : von einer nächst höheren Stufe verbunden sein können, und zwar über eine Vermittlunqsschnittstelle 13; dieses System kann natürlich beliebig fortgesetzt werden. So kann eine belir.l i ge Anzahl v<--·.. Funktionsmoduln von einer Hierarchie von vernetzten Vermittlungen aufgenommen werden. Die Vermittlungen IG der ver.1; niedenen Stufen sind ähnlich zur Vermittlung 12 von der ersten Stufe. Es versteht sich, daß dann, wenn die Anzahl der erforderlichen Funktionsmoduln von zwei Vermittlungen 12 von erster Stufe bedient werden können, die beiden Vermittlungen über eine einzige Vermittlungsschnittstelle 13 verbunden sein können, bei welcher dann die Ausgangsschlange 14 für eine Vermittlung die Eingangsschlange 15 für die andere Vermittlung wird. Wie in Fig. 1 weiter dargestellt, können gewisse Funktionsmoduln 10 mit einer gemeinsamen Sammelleitung 10c verbunden sein.
Fig. 1 zeigt weiter die Hierarchie der vernetzten Vermittlungen, die von rekursiver Natur ist. Das bedeutet, jeder Funktionsmodul 10 kann durch eine Vermittlungsschnittstelle 13 und eine Vermittlung 12 ersetzt werden, die mit mehreren Funktionsmoduln 10 und umgekehrt verbunden ist. Man bemerke in Fig. 1, daß zwei Vermittlungen 12 mit einer Vermittlung 16 über die Vermittlungsschnittstelle 13 verbunden sind, und daß ferner ein Funktionsmodul 10 mit einer Vermittlung 16 über die Sammelleitungen 1Of und 1Oe verbunden ist.
Zur Anpassung der Datenübertragung und anderer Kommunikation mit bezüglich des Systems außen befindlichen Geräten ist einer oder sin'd mehrere Funktionsmoduln mit einem E/A-
5 098 36/0 66 8
Adapter 17 ausgerüstet, wobei die Datenübertragung unter Steuerung spezieller, in dem örtlichen Speicher des entsprechenden Funktionsmoduls gespeicherter Befehle stattfindet. Wenn die Peripheriegeräte, die extern zu dem System sind, ihre eigenen Steuereinheiten enthalten, dann können natürlich jene Geräte direkt mit einer Vermittlung von erster Stufe in gleicher Weise wie die Funktionsmoduln, die dem E/A-Adapter 17 zugeordnet sind, verbunden werden.
Vor der Beschreibung der Arbeitsweise des Systems und der Knotenform des Programmnetzwerkes wird jetzt das Befehlsformat erläutert, das einen definierbaren Feldmechanismus umfaßt. D.h., die Datenfelder und Befehle sind von variabler Länge. Man erinnere sich, daß die Informationsübertragung so betrachtet werden kann, als wäre sie bitseriell und daß daher keinerlei Beschränkungen für die Länge der Informationssegmente bestehen, wie sie typischerweise in Maschinen vorliegen, bei denen Datenwege fester Breite vorliegen. Die Informationsstrukturen werden von einer Rei-he von Zeichen gebildet, die in Fig. 2 dargestellt sind. Jedes Zeichen umfaßt zwei Bits, das vier verschiedene Zeichen ermöglicht, di.e gemäß Fig. 2 die Zeichen (,), 0 und 1 sind. Für die weitere Beschreibung werden die Klammern als solche benannt, wobei natürlich Einigkeit darüber besteht, daß diese beiden Ausdrücke auch vertauscht werden können.
Das Datenstrukturformat, das von diesem Zeichensatz gebildet wird, wird jetzt im Zusammenhang mit den Fig. 3 und 4 erläutert. Diese Strukturformate definieren eine Reihe sogenannter Datenzellen. Gewisse Aufbauregeln müssen bei der Interpretation eines derartigen Formats bedacht werden. Beispielsweise zeigt ein nebeneinander stehendes Paar offener Klammern den Anfang einer Datenstruktur an und ein nebeneinander stehendes Paar von geschlossenen Klammern zeigt das' Ende der Struktur an. Die verschiedenen
509836/0668
Felder innerhalb der Datenstruktur werden durch Paare von öffnenden und schließenden Klammern definiert« Somit können die Struktur wie auch.die verschiedenen Felder innerhalb der Strukturen von beliebiger Länge sein. Definitionsgemäß können Daten zwischen Paaren gleichartiger Klammern nicht existieren.
Wie die Fig. 3a und 3b zeigen, stellt der Inhalt eines Paares von Schließklammern Daten dar, während der Außen-Inhalt oder die einem Klammerausdruck vorangehenden Information ein Zeichen (tag) ist, das die Bedeutung des Innen-Inhalts jenes Ausdrucks definiert. Ein repräsentativer Satz von Zeichen (tags) kann wie folgt definiert werden: 0 zeigt an, daß der folgende Innen—Inhalt eine Funktionsmoduladresse bestimmt; 1 zeigt an, daß der folgende Innen-Inhalt eine örtliche Speicheradresse konstituiert; 2 zeigt an, daß der folgende Innen-Inhalt ein Index-Adressen-Kennzeichner ist; 3 zeigt an, daß der folgende Innen-Inhalt ein Namen-Adressen-Kennzeichner ist; 4 zeigt an, daß der folgende Innen-Inhalt ein Operanden-Modifizierer ist; 5 zeigt an, daß der folgende Innen-Inhalt ein Operator-Code oder ein Zellentyp-Bezeichner ist; 6 zeigt an, daß der folgende Innen-Inhalt eine Bestimmungsadresse ist; und 7 zeigt an, daß der folgende Innen-Inhalt ein Operandenfeld ist. Ein mehr ins einzelne gehendes Beispiel von Zeichen (tags), das gemäß der vorliegenden Erfindung verwendet werden kann, wird weiter unten stehend gegeben. Eine ins einzelne gehende Erläuterung der Fig. 3a und 3b wird ebenfalls noch weiter unten mitgeteilt*
Ein besonderes Merkmal des Zeichensatzes (character set) gemäß Fig. 2 ist die Paritäts-Prüfung. Man bemerke, daß für jedes Klammerzeichen in einer Struktur oder in einem Feld ein entgegengesetztes Klammerzeichen existiert, wobei jedes Zeichen ein einziges Eins-Bit Umfaßt· Weiter haben die Datenzeichen (data chracters) entweder keine Eins-Bits
509836/0668
oder zwei Eins-Bits. Somit besitzen sämtliche Strukturen oder Felder innerhalb einer Struktur eine geradzahlige Anzahl von Eins-Bits, wenn der Befehl richtig kodiert wurde. Das ergibt ein geradzahliges Paritäts-Prüfungsschema.
Es wurde bereits oben erwähnt, daß das erfindungsgemäße System datenstromgetrieben ist. Statt durch einen Programmzähler aufgerufen zu werden, wird ein Operator aufgerufen und ausgeführt nur dann, wenn die geeigneten Daten an dem Funktionsmodul angekommen sind. Wenn der Befehl die Kombination zweier Datenposten vorschreibt, d.h. A und B, wird der Befehl nur dann ausgeführt, wenn beide Datenposten an dem Funktionsmodul angekommen sind, und zwar unabhängig von der Reihenfolge, in welcher sie empfangen wurden. Der Befehl wird nicht zur Ausführung aufgerufen, ehe beide Datenposten am Funktionsmodul angekommen sind. Mit einem derartigen datenstrombetriebenen System kann"das Programm dann als ein Programmnetzwerk dargestellt werden, in welchem die einzelnen Befehle des Programms Knoten in dem Netz bilden. Ein beispielshaftes Programmnetz zeigt Fig. 4. Das durch dieses Netz .repräsentierte Programm soll die Werte von X,Y und Z entsprechend der folgenden algebraischen Gleichung berechnen:
X= ((A +B) (C- D))/(E +F) Y = X + G
Z = X . X
In dem baumartig verzweigten Programmnetz der Fig. 4 stellt der Knoten N0 die Operation A + B dar, der Knoten Nl stellt die Operation C-D dar, der Knoten N2 stellt die Operation E + F dar, der Knoten N3 stellt die Multiplikation von A + B und C-D dar, der Knoten 4N stellt die Division jenes Multiplikationsproduktes durch E + F dar, der Knoten N5 stellt die Multiplikation von X mal X und der Knoten N6 stellt die Addition von X und G dar.
509836/0668
Wenn man sie als FORTRAN-statements nimmt, kompilieren die obigen Gleichungen in 23 bekannte, sequentielle Befehle in Großrechnersprache. Wenn jetzt ein Funktionsmodul des Systems gemäß der Erfindung benutzt wird, um die erforderlichen Berechnungen auszuführen, und wenn die Übergangszeit iib«r pinen Knoten als eine Zeiteinheit betrachtet wird, würde die Ausfuhrungszeit für die obigen Gleichungen si-1 en Γ iteinheiten betragen. Dabei wird angenommen, daß r.imtl.iche für die jeweiligen Operationen erforderlichen ί of ei le, d.h. ;lle säen Knoten des Proi!ramm,s, in der örtlichem Spz !chereinh· it des Funktionsmodulsn, speichert sind und daß sämtliche Eingänge zur Verfügu·· stehen.
Man entnimmt weiter dem baumartig strukturierten Progs ■ >ranetz aus Fig. 4, daß die Knoten NO, Nl, und N2 gleichzt itin oder sequentiell in beliebiger Ordnung und Reihenfolge ausgeführt werden können, so daß sie also im echten Sinne simultan sind. In ähnlicher Weise sind die Knoten N5 und N6 simultan. Von zwei Aufgaben sagt man, daß sie simultan (concurrent) seien, dann und nur dann, wenn sie gleichzeitig oder sequentiell in beliebiger Reihenfolge ausgeführt werden können, ohne daß sich das Endergebnis verändert. ·.
Wenn ein Feld von Funktionsmoduln, etwa wie das in Fig.l dargestellte, zur Berechnung der obigen Ausdrücke verwendet wird, würden drei Funktionsmoduln erforderlich sein, wobei die die Knoten NO,Nl und N2 repräsentierenden Befehle in verschiedenen Fuhktionsmoduln angesiedelt sind und die Knoten N5 und N6 in verschiedenen Moduln residieren. Wie man aus dem Programmnetz gemäß Fig. 4 erkennen kann, wäre die Ausführungszeit für die Berechnung der obigen algebraischen Gleichungen dann insgesamt vier Zeiteinheiten. Die Verwendung von mehr als drei Funktionsmoduln würde keinen Einfluß auf die Geschwindigkeit dieses Algorithmus haben.
BAD
50983 6/0668
Man entnimmt weiter dem Programmnetz aus Fig. 4, daß verschiedene Operationen an A und an B ausgeführt werden, wenn Daten zum Knoten NO bis zum Knoten N3, zum Knoten N4 usw. laufen. Es ergibt sich somit ein "pipe-line"-Effekt in dem an den Daten ausgeführten Operationen, wenn die Daten von Knoten zu Knoten oder von Funktionsmodul zu Funktionsmodul übertragen werden. Das Ausmaß,bis zu welchem der pipe-line-Effekt erreicht wird, hängt natürlich von der Übertragungsgeschwindigkeit zwischen den Funktionsmoduln ab. Es dürfte deutlich sein, daß das in Fig. 4 dargestellte Programmnetz so ausgedehnt werden kann, daß es so viele Knoten enthält, wie notwendig, um ein beliebiges gegebenes Programm oder Gruppen von Programmen darzustellen. D.h. das System kann so ausgedehnt werden, daß es in einfacher Weise an das Multiprogrammieren anpaßbar ist, das in diesem System zufälligerweise das Mehrfachverarbeiten umfaßt.
Wie soweit beschrieben, umfaßt das erfindungsgemäße System ein Feld von Funktionsmoduln, die so programmiert werden können, daß sie an einer Anzahl von verschiedenen Programmnetzwerken angepaßt werden können. Wie oben erläutert, können die verschiedenen örtlichen Speichereinheiten von Plattenspeichern zu Plattenpaketen usw.reichen. Somit kann das Betriebsverhalten jedes Funktionsmoduls sich so von dem anderer unterscheiden, wie das" von dem darzustellenden Programm gefordert wird. D.h. es kann eine Einsparung an Speicherkapazität gegenüber der·Geschwindigkeit gemacht werden, wie das für viele Anwendungsfälle erforderlich sein kann.
EINZELBESCHREIBUNG DER ERFINDUNG
Nachdem das die Erfindung verkörpende System in seinen Grund.zügen beschrieben wurde, wird jetzt eine genauere Beschreibung des Funktionsmoduls 10 aus Fig. 1 geboten.
509836/0 668
Diese Funktionsmoduln sind die Bausteine, aus denen das System gemäß Fig. 1 gebildet wurde. Wie Fig. 5 zeigt, besteht der Funktionsmodul aus einer Anzahl von funktionalen Einheiten, die zusammenarbeiten und die oben erwähnten Funktionen ausführen.. Diese Einheiten weisen eine Eingangsschlange 20, eine Lr.qLkeinhei. t 3U, eine Ausgangsschlange 40, einen örtlichen SoeicherScIin i ttstellen-Adapter 50 unrt eine Steuereinheit 60 auf.
Die Eingangsnchl angr empfängt Daten aus beispie] .sweise der Vermittlung 12 (r'ig.l) über Ihren entsprechenden Eingangsbus und speichert die Daten, während sie wartet, bis die Steuereinheit 60 verfügbar wird. - - "_
Wenn eine Datenstruktur den oberen Teil einer Eingangsschlange 20 erreicht, verarbeitet die Steuereinheit 60 die Datenstruktur in Verbindung mit einem Knoten oder einem Befehl in der zugehörigen örtlichen Speichereinheit. 11 (Fig.1). 'Die Steuereinheit 60 kann die Logikeinheit 30-benutzen, um die notwendige Operation auszuführen. Das Ergebnis der Operation kann dann zur Ausgangsschlange ' 40 zusammen mit einer Bestimmungsadresse gesandt werden. Wenn dieses Ergebnis das obere Ende der Ausgangsschlange 40 erreicht, wird es zur gewünschten Bestimmung gesandt, und zwar über die Funktionsmodul-Schnittstelle, die die AusgangsSammelleitung 10a sowie die Vermittlung 12 von erster Stufe (Fig.l) umfaßt.
Die Eingangsschlange 20 ist im einzelnen in Fig.6 gezeigt und weist einen Eingangsschlangenspeicher 22 sowie eine Logik zur Steuerung des Datenübertragung zwischen dem Funktionsmodul-Schnittstellen-Bus 10b und dem Eingangsschlangenspeicher 22 auf. Die Schnittstellenlogik umfaßt eine Synchronisationslogik 21, die die ankommenden Daten mit einem Eingangsschlangenspeichertakt synchronisiert· Eine Einheit 23 zu'r Feststellung von Klammern und ein
ÖAD ORiGtNAt 509836/0668
Klammernzähler 24 führen die Fehlerfeststellung für die Schnittstelle aus* Man erinnere sich aus der allgemeinen Beschreibung der Datenstrukturformate, die oben gegeben wurde, daß für jede öffnende Klammer in jener Struktur auch eine schließende Klammer vorhanden sein sollte. Der Klammernzähler 24 ist ein binärer Auf/Ab-Zähler und wird für jede öffnende Klammer um einen Schritt weiter gestellt, die von der Klammernfeststelleinheit 23 festgestellt wurde, und wird um einen Schritt zurückgestellt durch jede schließende Klammer, wenn sie festgestellt wurde. Somit sollte der Inhalt des Klammernzählers 24 vor und nach dem Empfang eines vollständigen Befehlsformats Null sein. Wenn nicht, wird von der Synchronisationslogik 21 ein Fehler bemerkt, der seinerseits einen erneuten Versuch der Übertragung einkommender Daten auslöst.
Die Synchronisationslogik 21 dient zur Übertragung der ankommenden Daten in den Eingangsschlangenspeicher 22 und von' dort zur Steuereinheit 60 gemäß Fig. 5. Der Eingangsschlangenspeicher 22 kann bei Verlangen von der Funktionsmodulschnittstelle 10b durch Schreiben angesteuert werden und kann von der Funktionsmodul-Steuereinheit 60 (Fig.5) bei Anforderung durch Lesen angesteuert werden. Bei Empfang einer Schreibaufforderung aktiviert die Speicherzyklus-Steuerung 25 Gatter 29 zur Übertragung einer Adresse von dem Schreibzeiger 27 zum Eingangsschlangenspeicher 22. Wenneine Leseaufforderung empfangen wurde, werden die Gatter 29 aktiviert, um eine Adresse vom Lesezeiger 26 zu demEingangsschlangenspeicher 22 zu übertragen. Die Vergleichseinheit 28 ist vorgesehen, um die Werte des Schreibzeigers 27 und Lesezeigers 26 zu vergleichen. Wenn die Werte nicht gleich sind, signalisiert eine Vergleichseinheit 28 der Steuereinheit 60, daß Daten in dem Eingangsschlangenspeicher vorhanden' sind. Wenn die jeweiligen Werte gleich sind,, signalisiert die Vergleichseinheit 28
50 9836/06 68
der Steuereinheit 60,. daß entweder der Eingangsschlangenspeicher 22 voll oder leer ist, je nachdem, ob die letzte Speicheroperation schreiben oder lesen umfaßte.
Die Logikeinheit 30 nach Fig. 5 ist in weiteren Einzelheiten in Fig. 7 dargestellt. Die Addier- und Logikeinheit 32 führt alle Logikoperationen aus, die von dem Funktionsmodul ausgeführt werden sollen und stellt in einer bevorzugten Auiiführungsform der Erfindung einen zwexdimensionalen Tabellenspeicher dar. Der Akkumulator 39 soll bei den arithmetischen Operationen unterstützend helfen, die, wie man sich erinnert, seriell ausgeführt werden. Die Ausführung der verschiedenen Operationen wird durch eine MikroSteuerung 31 ausgelöst, die die Operationscodes in dem Operationscode-Register 33 entschlüsselt. Ein C-Feld-Register 35 liefert die modifizierende Information,ob das Resultat der logischen Operationen zur Ausgangsschlange übertragen werden soll oder zurück zur lokalen Speichereinheit 11 gemäß Fig. 1 übertragen werden soll. Die MikroSteuerung 31 weist einen Zähler 31a auf, der jede Vergrößerung oder Verkleinerung ausführt, die für die Steuerinformation erforderlich sein sollte. Die Operationscodes werden dem Operationscode-Register 33 von der lokalen Speichereinheit 11 (Fig.1) über Gatter 36 und 37 zugeführt. Die Steuerinformation wird im C-Feld-Register 35 entweder von der örtlichen Speichereinheit oder von der Eingangsschlange 60 (Fig.5) über Gatter 36 und 38 zugeführt. Die MikroSteuerung 31 weist weiter ein zweites Register 34 auf, das einen Zwischenspeicher bildet, der eine Kapazität von 1024 Zei*: chen besitzt.
Wie man nochmal aus Fig. 5 entnimmt, ist die Ausgangs— schlange 40 im wesentlichen ein Puffer für die Botschaften, die aus einem speziellen Funktionsmodul zu einem anderen
509836/0668
Funktionsmodul gesandt werden. Weiter kann die Ausgangsschlange 40 an die Eingangsschlange 20 vermöge der Funktionsmodul-Schnittstelle angeschlossen werden, die eine Ausgangssammelleitung 10a, eine Eingangssammelleitung 10b und die Vermittlung 12 umfaßt. Die Ausgangsschlange ist im einzelnen in Fig. 8 dargestellt. Die Ausgangsschlange besteht aus zwei unabhängigen Schlangen, und zwar eine für die Operanden und eine für die Bestimmungsadressen. Die erstere zeigt Fig. 8 in Form eines Operandenspeichers 42, während die letztere in Fig. 8 als Bestimmungsspeicher 41 zu erkennen ist. Das Lesezeigerregister 45 enthält die Adresse, an welcher der Bestimmungsspeicher 41 zum Ablesen von Operationen angesteuert werden soll, während das Schreibzeigerregister 46 die Adresse enthält, bei welcher der Bestimmungsspeicher 41für eine Schreiboperation angesteuert werden soll. In ähnlicher Weise enthalten das Lesezeigerregister 47 und das Schreibzeigerregister 48 die Adressen, bei welchen der Operandenspeicher 42 zum Lesen und Schreiben von Operationen angesteuert werden soll. Die Eingangssteuereinheit 43 nimmt die Operanden und Bestimmungsadressen aus der Logikeinheit 30 zur Übertragung entweder zum Bestimmungsspeicher 41 oder zum Operandenspeicher 42 auf.
Die Ausgangssteuereinheit 44 empfängt Operanden und Bestimmungsadressen aus den jeweiligen Speichern und schafft die Datenstruktur, die über die Ausgangssammelleitung 10a der Funktionsmodulschnittstelle übertragen werden soll. Die Datenübertragung aus der Ausgangsschlange beginnt durch Einleitung der Übertragung der Bestimmungsadresse. Die Ausgangsschlan_ge bestimmt dann die geeignete Position in j.ener Datenstruktur, an welcher der Operand eingesetzt werden soll.
Der Speicherschnittstellenadapter 50 (Fig.5) ist im einzelnen in Fig. 9 dargestellt. Dieser Adapter empfängt
509836/0668
Adressen und Daten zur Übertragung zur lokalen Speichereinheit. Der in Fig. 9 speziell dargestellte Adapter liefert parallele Zugriffsmöglichkeit zu einem Randomaccess-Speicher. Dazu ist das Pufferregister 51 ein 16— Zeichen-Register (16-tag-register), das ein Wort aus solchen Zeichen (character) parallel von der Speicherschnittstelle 54 zur Übertragung au einem Multiplexer 53 empfangen kann, wo eine Umwandlung in eine serielle Kette solcher Zeichen (character) stat hfin let. Diese Umwandlung wird durch Auslesen der verschi edi-.-:.-m Zei chenstellen in dem' Multiplexer
53 bewirkt, und zwar entsprechend den vier niedrigststelligen Zeichen der örtlichen Speicheradresse im Adressen— register 56. Für die Datenübertragungen zum Speicher werden die Zeichen seriell von dem D-Multiplexer 52 empfangen, in welchem sie in 16 Zeichenwörter zusammengestellt werden, und zwar bei Zeichenstellen, die von den niedrigststelligen vier Zeichen im Adressenregister 56 bestimmt sind. Die.zusammengestellten Wörter von dem D-Multiplexer 52 zum Pufferregister 51 und von dort zur·Speieherschnittstelle 54 übertragen. Die verbleibenden Teile des Adressenregisters 56 werden ebenfalls zur Speicherschnittstelle
54 übertragen und ergeben die Speicheradresse zum Zugriff auf die örtliche Speichereinheit. Die Adapter-Steuereinheit 55 dient zur Einleitung einer Adressenübertragung vom Adressenregister 56 zur Speicherschnittstelle 54 und ferner zum Weiterstellen bzw. schrittweisen Vergrößern oder Verkleinern der Adressensteuerung.
Man bemerke, daß bei Verwendung anderer Speicherarten als periodische oder zyklischer Speicher eine andere Speicherschnittstelle und ein anderer örtlicher Speicheradapter verwendet werden würden. Jedoch würde die Schnitt-, stelle zwischen dem Adapter und dem Funktionsmodul die gleiche sein und würde gemäß Fig. 9 enthalten.: eine zeichenserielle Datenleitung vom Funktionsmodul, eine zeichenserielle Datenleitung zum Funktionsmodul, eine
5 09 83 6/0668 bad original
bitserielle Adressenleitung vom Funktionsmodul, eine bitserielle Adressenleitung zum Funktionsmodul, eine Lese/Schreibe-Steuerleitung, eine Steuerleitung zum schrittweisen Vergrößern oder Verkleinern der Adresse sowie eine Steuerleitung zur Übertragung der Adresse.
Wie man nochmal der Fig. 5 entnimmt, dient die Steuereinheit 60 zur Verarbeitung von Markierungen (tags) und zum Absenden von Daten gemäß Definition durch die Markierungen, zur Logikeinheit 30, wenn jene Daten entweder ein Operator oder ein Operand sind, oder zur Ausgangsschlange 40, wenn jene Daten eine Bestimmungsadresse sind, und zur örtlichen Speichereinheit 11 (Fig.l), wenn jene Daten ein Operand oder eine Adresse sind, die in dem örtlichen Speicher gespeichert werden sollen. Sämtliche Datei aus der Eingangsschlange 20 durchlaufen zuerst die Steuereinheit 60. Der Dateneingang wird entweder von der Eingangsschlange 20 oder der örtlichen Speichereinheit 11 (Fig.l) als jeweilige Quelle aufgenommen.
Die Steuereinheit 60 ist im einzelnen in Fig. 10 dargestellt. Wie man sieht, werden Daten von der .Eingangsschlange und von der örtlichen Speichereinheit von dem Klammernzähler 71 für die Eingangsschlange bzw. von dem Klammernzähler 70 für den örtlichen Speicher entnommen. Die Klammernzählung bestimmt, ob die Daten den inneren oder den äußeren Inhalt der Datenstruktur darstellen. Wenn die Daten eine innere Struktur sind, stellen sie einen Operator dar oder auch einen Operanden oder auch eine andere Information undwerden zur Datenpfad-Auswahl-Einheit 72 übertragen entweder über den Innen-Inhalt-Detektor 68 oder den Außen-Inhalt-Detektor 69, je nachdem, ob die Daten von dem örtlichen Speicher oder der Eingangsschlange empfangen wurde. Wenn die Daten ein äußerer Inhalt sind, stellen sie eine Markierung dar und werden zu
509836/0868
dem Markierungsregister 67 für den örtlichen Speicher oder dem Markierungsregister 66 für die Eingangsschlange übertragen,wiederum je nachdem ob sie aus der örtlichen Speichereinheit oder von der Eingangsschlange kommen. Der Inhalt des Markierungsregisters 66 für die Eingangsschlange und des Markierungsregisters 67 für den örtlichen Speicher werden durch das Auswahlgatter 65 ausgewählt und zwar zur Übertragung auf einen Markierungs,-rfolge-Verifizierer 6 3, oder sde können in einem Markierungs-Bewahr-Register b4 aufbewahrt werden, um späterhin annpsprochen zu werden. Ein Mikrosteuerungs-Schrittzähler C-1 ist ein Tabellen-Such-Lesespeicher (ROM = read only mc·. ι:γ) und liefert die verschiedenen Sequenzen an Steuersignal n, die zum Einleiten der jeweiligen Operationen in den andren Einheiten des Funktionsmoduls unter Steuerung des Markierungssequenz-Verifizierers 6 3 erforderlich sind und liefert andere modifizierende Daten, wie sie von dies. ·.■ anderen Einheiten empfangen werden, wie auch Daten vom Zähler 73 und vom Zustand-Flip-Flop 62, die den speziellen Maschinenzustand anzeigen,in welcher der Funktionsmodul sich befindet.Die Zustands-Flip-Flops 62 werden von der MikroSteuerung" entsprechend der jeweiligen Sequenz gesetzt, die von dem Markierungsoperator aufgerufen wurde.
Die jeweiligen Vermittlungen 12 und 16 (Fig.1) sind im einzelnen in Fig. 11 wiedergegeben. Wie oben erwähnt, enthält jede Datenstruktur, die über eine Schnittstellen-Sammelleitung übertragen wurde, eine Funktionsmodul-Bezeichnung als das erste Feld oder ersten Datenposten in jener Datenstruktur. Diese Funktionsmodul-Bestimmung ist eine Adresse, durch welche eine Datenstruktur dem geeigneten Funktionsmodul durch die Vermittlung zugeführt wird. In Fig. 11 werden Datenstrukturen über die jeweilige Sammelleitung 10a durch einen entsprechenden Adressen-Dekoder 80 empfangen. Jener Adressen-Dekoder entschlüsselt die
509836/0668
Funktionsmodulbezeichnung und die Zustände 1 auf den Übertragungsgattern 81, um die geeignete Sammelleitung 1OB zur Übertragung zum bezeichneten Funktionsmodul auszuwählen und zu ermöglichen.
Die jeweiligen Adress-Kodierer 80 sind durch eine Prioritätsbestimmungs- und Sperrschaltung (in Fig.11 nicht dargestellt) verbunden, so daß zwei gleichzeitige Daten-Strukturübertragungen nicht c1» η gleichen Funktionsmodul angeben können. Die jeweiligen Sammelleitungen 10a sind mit Wiederholungs-Signalleitungen ausgerüstet, um dem übertragenden Funktionsmodul anzuzeigen, daß die Datenübertragung erneut eingeleitet werden muß.
In derjenigen Situation, wenn zwei oder mehrere Funktioi.. moduln an die gleichen Schnittstellen—Sammelleitungen angeschlossen sind, wird jeder Funktionsmodul mit seinem eigenen Bezeichnungs-Dekoder versehen sein und die jeweiligen Bezeichnungs-Dekoder 80 in Fig. 11 würden die gleiche Ausgangssammelleitung 10b in Abhängigkeit von zwei oder mehreren verschiedenen Funktionsmodulbezeichnungen auswählen. Wenn ein System zwei oder mehrere Vermittlungen 12 von erster Stufe verwendet, die dann an eine Vermittlung 16, zweite Stufe, angeschlossen sind, wird das Funktionsmodul-Bezeichnungsfeld in seiner Länge gedehnt sein und die jeweiligen Dekoder 80 der Vermittlung 16 können so ausgelegt werden, daß sie nur einen Teil des Bezeichnungsfeldes dekodieren, so daß eine geeignete Vermittlung 12 von erster Stufe ausgewählt werden kann. Die jeweiligen Dekoder 80 der Vermittlung 12 würden nur einen zweiten Teil des Bezeichnungsfeldes dekodieren, um den geeigneten Funktionsmodul aufzufinden. Wenn drei Stufen an Vermittlungen verwendet werden, würde das Bezeichnungsfeld erneut vergrößert werden usw.
5098 3 6/0668
BETRIEBSVERHALTEN DES FUNKTIONSMODULS
Die Befehlsinterpretation beginnt zunächst durch Analysieren des Datenpostens der von der Eingangsschlange dargeboten wird. Die Eingangsschlangenanalyse setzt sich fort, bis ein unr.uf riedengestellter Zustand festgestellt wird, woraufhin eile Analyse de·'. Datenpostens des örtlichen Speichers beginnt. Die Befehlsinterpretation setzt sich fort, bis das vollständige Paar an Zellen interpretiert wurde (Klammereshlung 0) oder ein bedeutungsloser Zustand festgestellt wurde. Der normale Bcfehlsinterpretationazyklus geht zuende, wenn die Kl arüuerzählung gleich 0 .i-sf und aktiviert dann die Interpretation des nächsten Eingangsschlangendatenposten oder der nächsten Zelle. Die Befehlsinterpretationszyklen-Beendigung wegen der Feststellung eines bedeutungslosen Zustandes führt zu einer nie:.;chinener zeug ten Unterbrechung. Die tatsächliche Maschinenausführung wird unter Steuerung der MikromaschiTien-Befehle ausgeführt, die aus dem Lesespeicher des Mikro-steuerungsschrittmachers 61 (vgl.Fig.10) der Steuereinheit abgeleitet wurden, durch Interpretation durch die Steuereinheit sowohl des Innen-Inhalts wie auch des Außeninhalts der Datenzeilpaare, die durch die Eingangsschlange und ein örtliches Speicherfeld angeboten wurden.
Der Funktionsmodul gemäß Fig. 5 führt von einem Paar zugeordneter Datenstrukturen aus aus, und zwar einer in der Eingangsschlange 20 und einer in der örtlichen Speichereinheit 11 (Fig.l). Jede Struktur in der Eingangsschlange 20 besteht aus einem Adressenteil und einem Argument enteil . Der Adressenteil zeigt auf die örtliche Speicherstelle und ermöglicht die Zuordnung der zwei Datenstrukturen. Die Steuerung beginnt mit dem ersten Teil (construct) der Eingangsschlangendatenstruktur und setzt sich fort, bis ein Teil (construct) angetroffen wird, der kein gültiger Nachfolger des vorhergehenden Teils ist gemäß Definition durch die Abfolge der gültigen Sequenz.
509836/0668
Der letzte Teil (construct) wird dann aufbewahrt und die Steuerung wird an den nächsten Teil in der örtlichen Speichereinheit 11 übergeben, die als möglicher gültiger Nachfolger geprüft wird. Wenn sie es nicht ist, dann • tritt ein Fehler auf. Wenn der nächste Teil (construct) ein gültiger Nachfolger ist, bleibt die Steuerung innerhalb der örtlichen Speichereinheit und setzt sich fort, bis ein nicht-gültiger Nachfolger angetroffen wird, zu welchem Zeitpunkt die Steuerung dann zurück zur Eingangsschlange 20 gegeben wird.
Es kann eintreten, daß die Eingangsschlange 20 und der örtliche Speicher 11 gleichzeitig abgetastet werden. Dies tritt während einer dyadischen Operation auf, wenn beide Operanden in den jeweiligen Einheiten vorhanden sind. Bei Abschluß des gleichzeitigen Abtastens wird die Steuerung an die örtliche Speichereinheit übertragen. Dieses Verfahren setzt sich fort, bis das Ende der Eingangsschlangendatenstruktur festgestellt wird, in welchem Fall dann die Operation abgeschlossen ist.
Da die Prozedur des Abtastens der jeweiligen Strukturen gleichzeitig stattfindet, ist das Prüfen der Gültigkeit der Datenstruktur durch sich selbst bedeutungslos. Daher sollten die jeweiligen Strukturen als bedeutungsvolle Paare betrachtet werden. Gültige Strukturen sind Paare von Datenstrukturen, eine Struktur in der Eingangsschlange und eine in dem örtlichen Speicher, der nach Abtasten in der oben beschriebenen Weise zu einer gültigen Sequenz von Teilen (constructs) führt. Eine gültige Folge von Teilen (constructs) wird als gültige Sequenz von Markierungen definiert. Beim Interpretieren der gültigen Sequenz flüsse ist es nicht nowendigerweise die Sequenz des tatsächlichen Antreffens von Markierungen, die wichtig ist, sondern vielmehr die Sequenz, in welcher sie ausgeführt werden sollen. Wegen der Abtastregeln und der Natur der
509836/0668
Strukturen, müssen die in die Eingangsschlange eingegebenen Datenstrukturen die Form haben (()0( )!■(.) ).
In jener Struktur zeigen die Klammern vor dem Numeral
.0 den Anfang einer Datenstruktur an, der Inhalt der
Klammern nach dem Numeral 0 repräsentiert eine Funktions—" moduladresse und der inhalt der Klammern nach dem Numeral 1 repräsentiert di.e Adresse in der örtlichen Speichereinheit der zugehörigen Hatenstruktur, die erforderlich ist, um die Co-Routine vollständig zu machen. Die restlichen
Teile (constructs) in jener Datenstruktur können eine
beliebige Sequenz von Teilen (constructs) sein, die eine ausgeglichene Klammernzählung besitzen und die zu einer
gültigen Markierungssequenz führen. In ähnlicher Weise
müssen die in der örtlichen Speichereinheit enthaltenen
Datenstrukturen die Form haben (() ). Während der Datenübertragung von der Eingangsschlange zu anderen Einheiten des Funktionsmoduls, unter Einschluß des örtlichen Speichers, werden die Felder einzeln übertragen, wobei die offene
Klammerstruktur weggenommen ist. Die Klammerstruktur wird dann zu der Datenstruktur wieder hinzugefügt, wenn sie in dem örtlichen Speicher gebildet wird.
Die Datenstrukturen können in beiden Richtungen bearbeitet werden, von links nach rechts oder von rechts nach links. Die Verarbeitungsrichtung ist bestimmt durch die Anfangsklammer, die in der örtlichen Speichereinheit adressiert ist. Eine Abtastung von rechts nach links wird als Spiegelbild einer Abtastung von links nach rechts interpretiert. Während einer links nach rechts Abtastung werden die Datenzeichen beim Abtasten direkt interpretiert und linke sowie rechte Klammern werden jeweils als linke und rechte Klammern gedeutet. Die Datenstrukturen werden stets mit Beginn bei einer Klammer adressiert. Die Richtung der Abtastung kann nur durch einen expliziten Befehl geändert werden. · Wie soweit beschrieben, werden die Operanden- und Steuerdatensätze, die sich auf einen integralen Maschinenbefehls-
509836/0668
zyklus beziehen, durch die Datenposten geliefert, die sowohl durch die Eingangsschlange 20 wie auch durch die örtliche Speichereinheit 11 gegeben sind. Der Prozessormodul wird zu einem Befehlsinterpretationszyklus bei Feststellung des Vorliegens eines Datenpostens am oberen Ende der Eingangsschlange simuliert. Der durch die Eingangsschlange dargestellte Datenposten geht eine Adresse voraus, die ihn mit seinem verwandten Datenposten in der örtlichen Speichereinheit des Funktionsmoduls verbindet.
Fig. 3a zeigt ein Beispiel einer Datenstruktur, die nc·- · malerweise in der örtlichen Speichereinheit gespeicher' wird, während Fig. 3b eine Datenstruktur darstellt, dit· normalerweise als Eingangsinformation empfangen wird. Man bemerke aus den Fig. 3a und 3b, daß jede Datenstrii' · ;r bei einer Abtastung von links nach rechts mit zwei Anf klammern beginnt und von zwei Zu-Klammern gefolgt wir·:. Das erste Feld, dem das Numeral 5 vorhergeht, ist ein Bedingungsfeld, das als ein N-bahn-Abzweig zu einer der N-Bestimmungsadressenlisten verwendet wird. Jede Adressenliste kann mehrfache Bestimmungsadressen enthalten, wie Fig.3a zeigt. Das zweite Feld in der Datenstruktur von Fig.3a folgt dem Zeichen C, das anzeigt, daß der Inneninhalt der Zelle eine Steuerinformation darstellt. Das dritte Feld in Fig.3a ist ein Operand, angezeigt durch den Außen-Inhalt oder die Markierung 7 (tag 7), wie weiter oben allgemein beschrieben ist. Die restlichen Felder sind Bestimmungsadressen.
In Fig. 3b ist das erste Feld nach dem Anfang der Datenstruktur eine Funktionsmodul-Bezeichnung, was aus der vorangehenden Markierung (tag) 0 oder dem vorangehenden Außen-Inhalt hervorgeht. Das zweite Feld stellt die örtliche Speichereinheit-Adresse einer zugeordneten Datenstruktur dar, wie Fig. 3a zeigt. In Fig.3b ist diese örtliche Spei-
509836/0668 BAD ORIGINAL
chereinheit-Adresse durch den vorhergehenden Außen-Inhalt oder die Markierung 1 bezeichnet. Das nächste Feld in der Datenstruktur aus Fig.3b ist ein Adressen-Qualifizierer, was durch den Außeninhalt oder die Markierung AQ bezeichnet ist. Das letzte Feld in der Datenstruktur der Fig.3b ist ein Operand.
FELDMARKIFJRUNGEN UND FORM/TE
Die verschiedenen Arten oder Markierungen oder Außen-Inhalte werden nachstehend beschrieben. Difrse Markierung -ti umfassen Adressen-Markierungen, Stufen-Markierungen, Adressen-Modifizierer-Markierungen, Operator- und Steuer-Markierungen, Operanden-Markierungen, Bestimmungsadiöl. -n-Markierungen, Mikroketten-Operator-Markierungen sowie ' Status—Information.
Die Adressen-Markierungen umfassen die Funktionsmodul Adresse, die örtliche Speicheradresse und die Adressen-Qualifizierer. Andere Adressen-Markierungen werden jet: '-beschrieben. Die dyadische Operations-Markierung (Dyadic ops tag) zeigt an, daß der Innen-Inhalt des folgenden Klammerausdruckes angibt, daß der folgende Operand ein linker oder rechter Operand ist. Die Bedingungsfeld— Markierung zeigt an, daß einer der folgenden Innen-Inhalte angibt, ob der begleitende Operand als ein Bool·scher Ausdruck oder als Operand zu behandeln ist.. Die Kompositions-Feldmarkierung zeigt an, daß der folgende Innen-Inhalt den Index des Anwesenheitsbits im zugehörigen Operandenfeld angibt, in welches der Operand eingeschrieben werden soll. Die Zerlegungsfeld-Markierung zeigt an, daß der folgende Innen-Inhalt die Anzahl von Bits 'angibt, die aus dem Operandenfeld der Eingangsschlange ausgewählt werden soll. Diese Bits werden als Indexzeiger zur Auswahl einer Mikrokette verwendet. Die Arretierungsfeld-Markierung zeigt an, daß der folgende I-nnen-Inhalt angibt, ob das von dem Arre-
- SAD 509836/0668
tierungsfeld geschützte Netzwerk arretiert oder freigegeben werden soll.
Stufen-Markierungen werden durch das alphanumerische Zeichen L angezeigt und zeigen an, daß der folgende Innen-Inhalt eines Klammerausdruckes eine Stufeninformation bildet, Diese Information wird vom Funktionsmodul ignoriert.
Die Adressen-Modifizierer-Markierungen sind die Knoten-Index-Markierung, die Namen-Markierung und die Adressen-Modifizierer-Markierung. Die Knoten-Index-Markierung wird durch das Numeral 2 (durch die Ziffer 2) angezeigt und gibt an, daß die örtliche Speicheradresse auf den angezeigten Knoten der laufenden Stufe weitergestellt werden soll. Nach Abschluß erniedrigt sich die Interpretationsstufe um einen St'ufenwert. Die Namenmarkierung wird durch das Numeral 3 (durch die Ziffer 3) angezeigt und gibt an, daß die örtliche Speicheradresse dadurch auf den ange-. zeigten Knoten weitergestellt werden soll, daß die Namen-Markierung mit dem Außen-Inhalt der Adressen-Struktur der laufenden Stufe verglichen wird. Nach Abschluß erniedrigt sich die Interpretationsstufe um eine Stufe. Die Adressen-Modifizierer-Markierung wird durch die Zeichen AM repräsentiert und zeigt an, daß der folgende Innen-Inhalt einen Operatorcode bildet, der als Adressen—Modifizierer für die örtliche Speicheradresse verwendet werden soll.
Die Operator-und Steuer-Markierungen werden jetzt beschrieben. Das Numeral 4 (die Ziffer 4) zeigt an, daß der Innen-Inhalt des folgenden Klammerausdruckes einen Operanden-Modifizierer-Operatorcode bildet. Das Numeral 5 zeigt an, daß der- folgende Innen-Inhalt einen dyadischen Operatorcode, einen monadischen Operatorcode oder eine Zeil-Type bildet. Das Zeichen A zeigt an, daß der folgende Innen-Inhalt einen Akkumulator-Dyaden-Operatorcode darstellt. Das Zeichen I zeig't an, daß der folgende Innen-Inhalt einen
509836/0668
indizierten dyadischen Operatorcode bildet. Das Zeichen Z zeigt an, daß der folgende Innen-Inhalt einen dyadischen Operatorcode "zap" bildet. Die Zeichen ZA zeigen an, daß der folgende Innen-Inhalt einen akkumulierten dyadischen Operatorcode "zap" bildet. Die Zeichen ZI zeigen an, daß der folgende Innen-Inhalt einen Index-Operatorcode "zap" bildet. Die Zeichen MS zeigen an, daß der folgende Innen-Inhalt einen Mikrokettencode bilden, der bei der Zerlegungsfunktion verwendet wird. Das Zeichen C zeigt an, daß die folgenden Innen-Inhalte Steuerfunktion darstellen, und zwar für einen speziellen Operator oder eine spezielle Zelle.
Die Mikrokettenoperator-Markierungen werden jetzt beschrieben. Das Zeichen " zeigt an, daß der Innen-Inhalt des folgenden Ausdruckes einen Literal (Buchstaben) darstellt, der zur Ausgangsschlange zu übertragen ist. Das Zeichen E zeigt an, daß der folgende Inneninhalt einen Operanden ohne Vorzeichen bildet, der den Sprungwert für das örtliche Speicheradressen-Register definiert. Der Sprung ist der gleiche wie die laufende Richtung. (Der Sprung findet in der Richtung statt, die die gerade gültige ist). Das Zeichen F zeigt an, daß der folgende Innen-Inhalt einen Operanden ohne Vorzeichen bildet, der einen Sprungwert für das Eingangsschlangen-Adressenregister definiert. Die Richtung des .Sprunges ist von links nach rechts. Das Zeichen B zeigt an, daß der folgende Innen-Inhalt einen Operanden bildet, der die Anzahl der von dem Operanden in der Eingangsschlange zur Ausgangsschlange zu übertragenden Bits angibt. Das Zeichen M zeigt an, daß der folgende Innen-Inhalt einen Operatorcode bildet, der in einer Mikrokel.te verwendet werden soll.
Man sieht, daß die folgenden Felder als Operanden betrachtet werden: Die Funktionsmodul-Bezeichnung, die örtliche Speichereinheiten-Adresse, der Knoten-Index, der Adressen-
50983 6/0668
Modifizierer, die Mikroketten-Operatoren, die oben so definiert sind, als seien sie durch die Zeichen ",E,F und B bezeichnet, wie auch das Operandenfeld selbst. Die Operanden-Markierung 7 dient auch für Strukturen, die durch die Lese- und Schreiboperatoren behandelt werden.
Die mit Vorzeichen versehenen Operanden haben das Format (S AOAl...An), wobei AO das niedrigstwertige Bit und S das Vorzeichenbit sind und S=O Positive bedeutet. Nicht mit Vorzeichen versehene Operanden haben das Format (AOAl...An). Die Länge des Feldes ist variable bis zu einem angegebenen Betrag. Da der Innen-Inhalt eines Feldes Operanden darstellt, sind Klammern innerhalb des Operandenfeldes nicht erlaubt. Die folgenden Felder besitzen Formate, die demjenigen der nicht mit Vorzeichen versehenen Operanden gleich sind: Namen-Markierung-Adressen-Modifizierer, Operanden-Modifizierer-Operatorcode, dyadischer/monadischer Operatorcode oder Zeil-Typ, der Akkumulator-Dyaden-Operatorcode, der Index-Dyaden-Operatorcode, der "zap"-Dyaden-Operatorcode, der "zap" akkumulierte dyadische Operatorcode, der "zap"-Index-Operatorcode, die Bestimmungsadressen, der Adressen-Modifizierer und der Operatorcode, der in einer Mikrokette verwendet werden soll.
Das Steuerfeld kann eine Bedingungs-Zelle, eine Positions-Zelle, eine Arretierungs-Zelle oder einen dyadischen Operator enthalten. Die Bedingung hat das Format C(R,CO,PB, BO,Bl,...,Bn). R ist ein Rücksetzbit, das, wenn gesetzt anzeigt, daß der nächste Operand, der sich auf diesen Knoten bezieht, ignoriert werden sollte und daß die einzige erforderliche Aktion im Rückstellen des Rücksetz-Bits besteht. PB ist ein Bool'sches Anwesenheits-Bit. PO ist ein Operandenanwesenheitsbit, CO ist ein Operandenkonstantbit, BO...Bn sind Bool'sche Ausdrücke der minimalen Länge eines Zeichens und der Maximal-Lange von acht Zeichen.
509836/06 6 8
Die Kompositionszelle als ein Steuerfeld besitzt das Format C (CO,PO,Cl Pl,...,CnPn), wobei das Cn ein Konstantbit für den nten Operanden und Pn das Anwesenheitsbit für den nten Operanten sind. Die Arretierungszelle besitzt ein einziges Arretierungsbit und hat das Format C(L). Der dyadische Operator hat das Format C(R,C,PL,PR), wobei C das Konstant!ih und wenn gleich eins, anzeigt, daß das P Bit nichl: zurückgesetzt werden soll, PL ist das Anwesenheitsbit i'.'-c den linken Operanden und PR ist das Anwesenheitsbit für Jen rechten Operanden.
Die Adressen-Qualifizierer-Felder umfassen eine Kompositions-Zelle, eine Bedingungs-Zelle, dyadische Operatoren (ops), eine Zerlegungszelle und eine Arretierungs-Zeile. Die Kompositions-Zelle besitzt das Format AQ(n), wobei η ein Operand ohne Vorzeichen ist, dessen Länge ein Maximum von acht Bits umfaßt. Die Bedingüngszelle ist eine Ein-Bit-Zelle des Formats AQ(n), wobei η gleich 0 einen Bool' sehen Ausdruck und η gleich 1 einen Opranden anzeigt. Dyadische Operatoren (ops) sind vom Format AQ(n), wobei η = 0 anzeigt, daß ein linker Operand vorliegt und η = 1 einen rechten Operanden anzeigt. Die Zerlegungs-Zelle ist von dem Format AQ(n), wobei η ein Operand ohne Vorzeichen mit einer maximalen Länge von 10 Bits ist. Die Arretierungs-Zelle ist eine Ein-Bit-Zelle vom Format AQ(n), wobei η gleich 0 Arretierung und η gleich 1 Freigabe angibt.
Die Bestiinmungsadresse ist eine Struktur, die das Format 6(()0()l(LS)...) haben muß, wobei die einzige Beschränkung für die Daten, die einer örtlichen Speicheradresse LS folgen, darin besteht, daß die Daten und der Knoten, auf den die Bestimmungsadresse gerichtet ist, den Syntax-Anforderungen für die Datenstrukturen genügen müssen. Die einzige Ausnahme für das oben angegebene Bestimmungsadressen-Format besteht in der Null-Adresse, die das Format 6(O) hat.
509836/0668
Eine Mikrokette ist eine Struktur, die das Format NS(())...) haben muß. Die Mikrokette kann nur Markierungen von sechs für konditionale Zellen enthalten. Für Zerlegungszellen kann die Mikrokette Kombinationen der folgenden Markierungen enthalten: ",B,E,F,M,AQ,MS, and 6, welche Markierungen oben definiert worden sind.
ZELLEN UND OPERATOREN
Die Konditionalzelle oder Bedingungszelle wird als N-bahn-Verzweigung zu einer von N-Bestimmungsadressen-Listen verwendet. Jede Adressenliste kann mehrfache Bestimmungsadressen enthalten. Die Kompositionszelle dient zum Sammeln und dann zum Aufreihen einer Anzahl von Operandenfeldern. Das Ergebnis kann aus einem oder mehreren Operanden bestehen. Wenn samtlicheOperanden angekommen sind, werden die sich ergebenden Operanden zu den Bestimmungen gesandt. Die Zerlegungszelle dient zum Zerlegen des Operanden, der von der Eingangsschlange angeboten wird, wie das durch die Mikrokette der Zelle bestimmt wird. Die Arretierungszelle dient zum Arretieren und Freigeben eines Netzes.
Die arithmetischen/logischen monadischen Operatoren werden jetzt beschrieben. ANY I bewirkt die Übertragung eines Operanden mit einem Wert von "1" zu den geeigneten Bestimmungen, wenn der Operand irgendein Zeichen.mit einem Wert von 1 enthält. Sonst wird eine Null übertragen. ANY 0 bewirkt die Übertragung eines Operanden mit dem Wert von eins an die geeigneten Bestimmungen, wenn der Operand irgendein Zeichen mit dem Wert von 0 enthält. Sonst wird eine Null übertragen. COUNT OF l's bewirkt die Übertragung eines Operanden zu einer geeigneten Bestimmung mit einem Wert, der gleich der Anzahl von "1" Zeichen ist, die in dem Operanden vorhanden sind. COUNT OF O1S bewirkt die übertragung eines Operanden zu "einer geeigneten Bestimmung mit einem Wert, der gleich der Anzahl
509836/0668
der "O" Zeichen ist, die in dem Operanden vorhanden sind.
Es gibt fünf Lese/Schreib-Operatoren, die jetzt beschrieben werden. READ STRUCTURE bewirkt die Übertragung des Inhalts des adressierten örtlichen Speichers zu geeigneten Bestimmungen. Worin der adressierte örtliche Speicher-Unterraum eine Struktur enthält, wird die Struktur als Feld mit der Markierung von 7 überI ragen. DELETE PARENS bewirkt ein Holen der adressierten Struktur und ein Verwerfen sämtlicher Kla?> π ern und Außen-Inhalte. Das Ergebnis wird zu einer geeigneten Bestimmung mit einer Markierung von 7 vertragen. WRITE STRUCTURE bewirkt die Übertragung der Struktur nach dem Operator vom Anfang der Eingangsschlange in den adressierten Unterraum des Örtlichen Speichers. Die Klammern-Definition für beide vor und nach der Übertragung werden auf Gleichheit geprüft. WRITE STRUCTURE TRANSPARENT bewirkt die Übertragung der nächsten.Struktur vom Anfang der Eingangsschlange in den adressierten UnI-orraum des örtlichen Speichers. Die Struktur wird in eingeklammerter Form gespeichert. WRITE VECTOR PARSED bewirkt die Übertragung des nächsten Operanden vom Eingang der Eingangsschlange in den adressierten Unterraum des örtlichen Speichers. Der ankommende Bit-Vector wird (grammatikalisch) analysiert (Englischparsed) auf den örtlichen Speicher, wie das durch die Klammerdefinition des Unterraums des örtlichen Speichers definiert ist. READ CHARACTERS läßt die Zeichen in dem adressierten Unterraum des örtlichen Speichers in den Zeichensatz oder in die Paare übersetzen, die in der Tabelle von Fig. 2 angegeben sind. Das Ergebnis wird als Operand zur geeigneten Bestimmung übertragen. WRITE CHARACTERS bewirkt die Übertragung eines Operanden in der Eingangsschlange aus einer Zeichenpaar-Darstellung in eine Zeichen-Darstellung. Das Ergebnis wird in den adressierten Unterraum des örtlichen Speichers eingeschrieben.
509836/066 8
Die 2-Feld-Beschreibungs-Operatoren werden jetzt beschrieben. MAKE FIELD DESCRIPTION schafft eine Feldbeschreibung vom adressierten Unterraum des örtlichen Speichers, in dem die Klammern und Außen-lnhalte kopiert und die Innen-Inhalte der Struktur durch die Zählung ersetzt wird, die die Anzahl der Zeichen des Innen-Inhaltes repräsentiert. Die sich ergebende Feldbeschreibung wird zur geeigneten Bestimmung übertragen. MAKE STRUCTURE schafft eine Struktur von dem adressierten Unterraum des örtlichen Speichers, der eine Feldbeschreibung enthält. Die sich ergebende Struktur wird an die geeignete Bestimmung übertragen. Die anderen monadischen Operatoren sind der MARK-Operator, der eine Übertragung des Inhalts des örtlichen Speicheradress-Registers zu einer geeigneten Bestimmung bewirkt; die RESET-Operation, die die Anwesenheits-Bits in dem adressierten Teilbereich des örtlichen Speichers in irgendeinem der Anwesenheits-Bits oder einer 1 zurückstellt. Sonst wird das Rückstellbit gesetzt; und der NOOP-Operator, der bewirkt, daß keine Operation eingeleitet, wird. Es gibt sieben Operanden-Modifizierer-Operatoren, die jeweils das erste Bit des Operanden zu Eins oder Null setzen, das Komplement des ersten Bits des Operanden, reihen eine Null oder eine Eins an das niedrigststellige Ende des Operanden ohne Vorzeichen an, lassen das niedrigstwertige Bit des Operanden ohne Vorzeichen weg und das logische Komplement.
Die dyadischen Operatoren führen die normalen arithmetischen und logischen Operationen aus. Die akkumulierten dyadischen Operatoren sind eine Variante einiger der normalen dyadischen Operatoren. Der akkumulierte Operator bewirkt, daß ein Ergebnis zu der geeigneten Bestimmungsadresse und ferner zum Operandenfeld im örtlichen Speicher gesandt wird. Die index-dyadischen Operatoren sind identisch mit den akkumulierten dyadischen Operatoren mit der Ausnahme, daß keine Bestimmungsadressen geliefert werden. Die "zap"
&0 9836/066-8
dyadischen Operatoren sind Varianten der normalen dyadischen Operatoren und werden benutzt, wenn an einem anderen Feld als an einem Operanden eine Operation von dyadischem Typ ausgeführt werden soll.
NACHWORT
Vorstehend wurdf beschrieben, daß das System und das Verfahren gemäß der Erfindung ein Netzwerk von verarbeitenden oder I- inkt ionsmoduln und lokalen Speichereinheiten benu? I, ie jedem Funktionsmodul zugeordnet sind. Die Ausführung durch die Funktionsmoduln wird durch die Anwesenheit sämtlicher erforderlichen Datenstrukturen ausgelöst, von'denen eine normalerweise in dem örtlichen Speicher vorhanden ist und einen Operator enthält, während die andere Datenstruktur von dem Funktionsmodul empfangen wird und ein Argument enthält, sowie eine Adresse, die zu der Stelle des örtlichen Speichers zeigt, bei der die zugehörige Datenstruktur sich befindet. Auf diese Weise kann eine Reihe von Befehlen, die eine Prozedur, ein Programm oder eine Aufgabe bilden, über das Netzwerk verteilt werden, damit die Verarbeitungsleistung durch Anpassung an laufende Prozesse verbessert werden kann. Weiter können die Datenfelder so bearbeitet werden, wie sie von Funktionsmodul zu Funktionsmodul übertragen werden, so daß sich "pipe-line"Effekt ergibt, der lediglich von der Übertragungsgeschwindigkeit zwischen den Funktionsmoduln abhängt. Die Datenübertragung findet zeichenseriell statt und ist synchron innerhalb der Fünktionsrnoduln, jedoch asynchron zwischen den Funktionsmoduln. Die verschiedenen örtlichen Speichereinheiten können in ihrer Natur, Kapazität und Zugriffszeit unterschiedlich sein, so daß sie verschiedenen Verarbeitungsanforderungen angepaßt werden können. Die örtlichen Speichereinheiten sind normalerweise periodischer Natur und können Plattenpackungseinheiten, Plattenstapel, Ver-zögerungsleitungsspeicher, ladungsgekoppeJ AU- OnüysiiW'i---
509836/06 6 8
te Geräte sowie Blasenspeicher aufweisen.. Die örtlichen Speichereinheiten können Random-access-Speicher sein, wenn dies Vorteile bringen sollte.
Das System kann von einem einzigen Funktionsmodul und zugehörigem örtlichem Speicher ausgehend zu einer beliebigen Anzahl solcher Punktionsmoduln und örtlichen Speichereinheiten ausgedehnt werden, die durch ein vernetztes Netzwerk von Vermittlungen angepaßt sind. Auf diese Weise kann eine Familie von Systemen geschaffen werden, so daß sich ein Spektrum von Verarbeitungskapazitäten ergibt, das von einem sehr kleinen System bis zu einem sehr großen System reicht. Jedoch ist die Grundeinheit, auf der solche Systeme aufgebaut sind, insoweit gleichförmig und einheitlich, daß verschiedene Schaltungen und Architektur- oder Organisationspläne nicht geschaffen werden müssen.
Insgesamt wurde ein datenstrom-gesteuertes Netzwerk beschrieben, das aus gleichförmigen Verarbeitungs- oder Funktionsmoduln und örtlichen Speichereinheiten besteht und recht leicht so unterteilt werden kann, daß es verschiedenen gleichlaufenden Operatoren oder Aufgaben angepaßt ist. Die Datenübertragung ist spezieller Natur, so daß die Datensegmente beliebige Länge haben können, die Ausführung durch jeden Funktionsmodul wird durch die Ankunft sämtlicher erforderlichen Datenstrukturen eingeleitet, von denen eine einen Operator enthält und in der zuge^· hörigen örtlichen Speichereinheit gespeichert sein kann. Die anderen Datenstrukturen können Operanden und Modifizierer enthalten. Somit kann die Reihe richtiger Operatoren über das Netzwerk verteilt werden, so daß sich die Verarbeitungsleistung und der Datendurchsatz erhöhen lassen. Schließlich wurde noch ein spezieller Zeichensatz und ein spezielles Datenstruktur-Format beschrieben.
509836/0668

Claims (20)

Ansprüche
1. Verfahren zur Bearbeitung- von Informationen repräsentierenden Daten in wenigstens einer programmierbaren Einheit einer Datenverarbeitungsanlage entsprechend Befehlen, die in wenigstens einem Speicher der Anlage gespeichert sind, dadurch gekennzeichnet, daß ein Datensegment in einer von mehreren programmierbaren Einheiten aufgenommen wird, wobei jede programmierbare Einheit eine Logik-Einheit aufweist und einer von mehreren Speichereinheiten zugewiesen ist, daß die zu der das Datensegment empfangenen programmierbaren Einheit gehörende Speichereinheit bei Empfang des Datensegments angesteuert wird, um einen Steueroperator aus der Speichereinheit zu holen; und daß die·Logikeinheit in der programmierbaren Einheit zur Ausführung einer Operation entsprechend dem Operator an dem empfangenen Datensegment veranlaßt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß ein Datensegment aus einer Quelle für Datensegmente zu einer der programmierbaren Einheiten zur Ausführung einer Operation an dem batensegment übertragen wird und daß ein zweites Datensegment zu einer anderen programmierbaren Einheit zur gleichzeitigen Ausführung einer Operation an dem anderen Datensegment übertragen wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß ein Datensegment von einer programmierbaren Einheit zu einer zweiten programmierbaren Einheit übertragen wird, damit eine zweite Operation an dem Datensegment ausgeführt werden kann, nachdem die erste Operation an dem Datensegment von der ersten programmierbaren Einheit ausgeführt wurde.
509836/0668
-4ü-
4. Einrichtung zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß zur datenstromgesteuerten Informationsverarbeitung mehrere programmierbare Einheiten sowie Kopplungseinheiten vorgesehen sind, welche die programmierbaren Einheiten zur seriellen übertragung von Datensegmenten unterschiedlicher Längen zwischen den programmierbaren Einheiten verbinden, wobeil jedem Datensegment zeitlich ein Anfangs signal .. vorangeht und ein Ende-Signal nachfolgt ; daß jede programmierbare Einheit eine Empfangseinrichtung aufweist, die mit der Kupplungseinrichtung zum Empfang der Dätensegmente von einer anderen programmierbaren Einheit verbunden ist und eine Feststelleinrichtung zur Feststelllang des Anfangssignals und eine Feststelleinrichtung zur Fests teilung des Endsignals enthält, so daß Anfang und Ende der seriellen Übertragung von unterschiedlichen Datensegmenten feststellbar sind.
5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Datensegmente aus einem Vierer-Zeichensatz gebildet sind und jedes Zeichen aus zwei Binärziffern besteht; daß die Feststelleinrichtung für das Anfangssignal eine Logikschaltung zur Feststellung einer ersten-Differenz zwischen einer ersten und einer zweiten Binärziffer eines Zeichens aufweist und daß die Feststelleinrichtung für das Ende-Signal einer Logikschaltung aufweist, die eine zweite Differenz zwischen der ersten und zweiten Binärziffer eines Zeichens feststellt.
6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß eine Quelle für Datensegmente an die Kupplungseinrichtung angeschlossen ist, und Datensegmente zwei programmierbaren Einheiten zur gleichzeitigen Bearbeitung zuführen kann.
50983 8/0668
7. Einrichtung nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß eine programmierbare Einheit an eine andere programmierbare Einheit angeschlossen ist und ein Datensegment aufnehmen kann, so daß eine Operation an dem Datensegment ausgeführt werden kann, nachdem die andere programmierbare Einheit eine Operation an dem gleichen Datensegment ausgeführt hat.
8. Einrichtung nach einem der Ansprüche 4-7, dadurch gekennzeichnet, c!iß eine Kupplungseinrichtung für mehrere programmierbare Einheiten vorgesehen ist und die Datenübertragung zwischen ihnen ermöglicht; daß mehrere Speichereinheiten vorgesehen sind, von denen die eine Speichereinheit je einer programmierbaren Einheit zugeordnet ist und jede Speichereinheit eine oder mehrere Steueroperatoren gespeichert enthält; daß jede programmierbare Einheit eine Logikeinheit zur Ausführung von Operationen an Datensegmenten, eine an die Logikeinheit angeschlossene Eingangseinheit zur Aufnahme der Datensegmente zur Übertragung zur Logikeinheit sowie eine Steuereinheit aufweist, die an die Eingangseinheit, die Logikeinheit und die Speichereinheit angeschlossen ist und die Speichereinheit zum Holen eines Steueroperators ansteuert in Abhängigkeit von dem Empfang eines Datensegmentes durch die Eingang'seinheit, wonach die Steuereinheit die Ausführung der Operation an dem Datensegment einleitet.
9. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß eine Quelle von Datensegmenten an die Kupplungseinrichtung angeschlossen ist und die Lieferung von Datensegmenten an zwei programmierbare Einheiten zur gleichzeitigen Ausführung von Operationen angeschlossen ist.
10. Einrichtung nach Anspruch 8 oder 9, dadurch gekennzeichnet, daß eine programmierbare Einheit zum Empfang eines Datensegmentes an eine andere programmierbare Einheit
509836/0668
angeschlossen ist und eine Operation an einem Datensegment ausführt, nachdem die andere programmierbare Einheit eine Operation an dem Datensegment ausgeführt hat.
11. Einrichtung nach einem der Ansprüche 8-10, dadurch gekennzeichnet, daß die Kupplungseinrichtung eine Sammelleitung für serielle Datenübertragung aufweist.
12. Einrichtung nach einem der Ansprüche 8-11,dadurch gekennzeichnet, daß eine Peripherie-Datenquelle vorgesehen ist, wobei eine der programmierbaren Einheiten an die Peripherie-Datenquelle angeschlossen ist und die Datenübertragung steuert.
13. Einrichtung nach einem der Ansprüche 8-12, dadurch gekennzeichnet, daß jede Steuereinheit der programmierbaren Einheit einen Speicher aufweist, in welchem Steuersignale gespeichert sind.
14. Einrichtung nach_einem der Ansprüche 8-13, dadurch gekennzeichnet, daß jede programmierbare Einheit eine Ausgangseinrichtung aufweist und eine Vermittlung vorgesehen ist, die die Ausgangseinheiten einer programmierbaren Einheit mit der Eingangseinrichtung einer beliebigen anderen programmierbaren Einheit zum Ermöglichen der Datenübertragung verbindet.
15. Einrichtung nach Anspruch 14, dadurch gekennzeichnet, daß zwei serielle Sammelleitungen vorgesehen sind, wobei eine Sammelleitung die Vermittlung mit der Eingangseinrichtung zweier programmierbarer Einheiten und die andere Sammelleitung mit der Ausgangseinrichtung der zwei programmierbaren Einheiten verbindet.
50983 6/0668
16. Einrichtung nach Anspruch 14, dadurch gekennzeichnet, daß eine E/A-Steuereinheit eine Eingangseinrichtung und eine Ausgangseinrichtung aufweist, die an die Vermittlung angeschlossen ist und eine Datenübertragung zu einer programm iorbaren Einheit ermöglicht; und daß ein Peripherie-Gerät an die E/A-Steuereinheit anqeschlossen ist.
17. Einrichtung nach einem der Ansprüche 4-16, dadurch gekennzeichnet, daß eine von der Vielzahl der programmierbaren Einheiten getrennte programmierbare Einheit eine Eingangs- und ei r*j AuSgangseinrict.tung besitzt; daß eine zweite Vermittlung an die getrennte programmierbare Einheit: angeschlossen ist und die AusgangseJ nrichtung jener piü'jrammierbaren Einheit an die Eingangseinrichtung wahl, weise anschließt; und daß die zweite Vermittlung an eine weitere Vermittlung für die Datenübertragung zwischen der separaten programmierbaren Einheit und einer aus der Vielzahl der.programmierbaren Einheiten angeschlossen ist
18. Einrichtung nach Anspruch 17, dadurch gekennzeichnet, daß zwischen der weiteren Vermittlung und der zweiten Vermittlung eine Verrnittlungsschnittstellen-Einheit zum Puffern der Datenübertragung geschaltet is.t.
19. Einrichtung nach einem der Ansprüche 4-18, dadurch gekennzeichnet, daß eine erste Vermittlung die Vielzahl an programmierbaren Einheiten derart verbindet, daß eine beliebige Alisgangseinrichtung mit einer beliebigen Ein— gangseinrichtung verbindbar ist; und daß eine zweite Vermittlung mit einer eigenen programmierbaren Einheit derart verbunden ist, daß die Ausgangseinrichtung der programmierbaren Einheit mit einer beliebigen Eingangseinrichtung der programmierbaren Einheit verbindbar ist.
509836/0668
20. Einrichtung nach einem der Ansprüche 4-19, dadurch gekennzeichnet, daß eine zweite programmierbare Einheit gegenüber der Vielzahl der programmierbaren Einheiten abgesetzt ist und eine Eingangseinrichtung und eine Ausgangseinrichtung aufweist; und daß eine dritte Vermittlung an die zweite, abgetrennte programmierbare Einheit derart angeschlossen ist, daß die Ausgangseinrichtung der zweiten abgetrennten programmierbaren Einheit mit ihrer Eingantiseinrichtunci verbindbar ist^ und daß die dritte Vermittlung mil der zweiten Vermittlung zur Datenübertragung zwischen der zweiten, programmierbaren Einheit und anderen programmierbaren Einheiten des Systems verbunden ist.
50983B/ÜB68
Leerseite
DE19752505843 1974-02-28 1975-02-12 Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung Withdrawn DE2505843A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/447,040 US3978452A (en) 1974-02-28 1974-02-28 System and method for concurrent and pipeline processing employing a data driven network

Publications (1)

Publication Number Publication Date
DE2505843A1 true DE2505843A1 (de) 1975-09-04

Family

ID=23774763

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752505843 Withdrawn DE2505843A1 (de) 1974-02-28 1975-02-12 Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung

Country Status (16)

Country Link
US (1) US3978452A (de)
JP (1) JPS50120746A (de)
AR (1) AR207238A1 (de)
BE (1) BE825391A (de)
CA (1) CA1031077A (de)
DE (1) DE2505843A1 (de)
DK (1) DK664374A (de)
ES (1) ES434283A1 (de)
FR (1) FR2262833B1 (de)
GB (1) GB1481392A (de)
IE (1) IE41213B1 (de)
IT (1) IT1031728B (de)
NL (1) NL7501336A (de)
NO (1) NO750339L (de)
SE (1) SE410060B (de)
ZA (1) ZA75808B (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4153932A (en) * 1974-03-29 1979-05-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
FR2337376A1 (fr) * 1975-12-31 1977-07-29 Honeywell Bull Soc Ind Appareil permettant le transfert de blocs de donnees de longueur variable entre deux interfaces de largeur differente
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
GB1527289A (en) * 1976-08-17 1978-10-04 Int Computers Ltd Data processing systems
US4197589A (en) * 1977-12-05 1980-04-08 Texas Instruments Incorporated Operation sequencing mechanism
US4245299A (en) * 1978-01-05 1981-01-13 Honeywell Information Systems Inc. System providing adaptive response in information requesting unit
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
US4251861A (en) * 1978-10-27 1981-02-17 Mago Gyula A Cellular network of processors
JPS5621242A (en) * 1979-07-28 1981-02-27 Fujitsu Ltd Pipeline control method for computer operation
US4390969A (en) * 1980-04-21 1983-06-28 Burroughs Corporation Asynchronous data transmission system with state variable memory and handshaking protocol circuits
US4467409A (en) * 1980-08-05 1984-08-21 Burroughs Corporation Flexible computer architecture using arrays of standardized microprocessors customized for pipeline and parallel operations
JPS588359A (ja) * 1981-07-07 1983-01-18 バロース コーポレーション 還元プロセサの同時処理回路網および処理方法
JPS58149541A (ja) * 1982-03-01 1983-09-05 Hitachi Ltd デ−タ処理装置
JPS5936857A (ja) * 1982-08-25 1984-02-29 Nec Corp プロセツサユニツト
US4550382A (en) * 1982-09-21 1985-10-29 Xerox Corporation Filtered inputs
US4870644A (en) * 1982-09-21 1989-09-26 Xerox Corporation Control crash diagnostic strategy and RAM display
US4521847A (en) * 1982-09-21 1985-06-04 Xerox Corporation Control system job recovery after a malfunction
US4514846A (en) * 1982-09-21 1985-04-30 Xerox Corporation Control fault detection for machine recovery and diagnostics prior to malfunction
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
US4475156A (en) * 1982-09-21 1984-10-02 Xerox Corporation Virtual machine control
US4737907A (en) * 1982-09-21 1988-04-12 Xerox Corporation Multiprocessor control synchronization and instruction downloading
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
JPS59139455A (ja) * 1982-12-28 1984-08-10 Fujitsu Ltd デ−タ処理方式
US4509851A (en) * 1983-03-28 1985-04-09 Xerox Corporation Communication manager
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
GB8329509D0 (en) * 1983-11-04 1983-12-07 Inmos Ltd Computer
JPS60101644A (ja) * 1983-11-07 1985-06-05 Masahiro Sowa ノイマン型コンピュータプログラムを実行するコントロールフローコンピュータ
EP0168054B1 (de) * 1984-07-11 1991-10-09 Hitachi, Ltd. Datenflussgesteuertes Informationsverarbeitungsverfahren und -system
US4694416A (en) * 1985-02-25 1987-09-15 General Electric Company VLSI programmable digital signal processor
EP0233866A1 (de) * 1985-09-03 1987-09-02 FARNUM, Henry Merritt Universelle konstruktionsvorrichtung für modelle, bühnentechnik, modelle von matrizen und dergleichen
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5127104A (en) * 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation
US4893234A (en) * 1987-01-15 1990-01-09 United States Department Of Energy Multi-processor including data flow accelerator module
US5117489A (en) * 1987-04-22 1992-05-26 Mitsubishi Denki Kabushiki Kaisha Data-driven processor having an internal tag-generating system for generating a distinct tagged information and assembling with un-tagged information of an input/output data packet
US5163142A (en) * 1988-10-28 1992-11-10 Hewlett-Packard Company Efficient cache write technique through deferred tag modification
US5327569A (en) * 1989-08-28 1994-07-05 Mitsubishi Denki Kabushiki Kaisha Data driven type processor including a generation management system
US5175843A (en) * 1989-10-30 1992-12-29 General Electric Company Computer-aided design method for restructuring computational networks to minimize shimming delays
US5028186A (en) * 1990-01-29 1991-07-02 Mechanical Plastics Corp. Hollow wall anchor with enhanced holding strength
US5787432A (en) * 1990-12-06 1998-07-28 Prime Arithmethics, Inc. Method and apparatus for the generation, manipulation and display of data structures
IE920032A1 (en) * 1991-01-11 1992-07-15 Marconi Gec Ltd Parallel processing apparatus
DE69327504T2 (de) * 1992-10-19 2000-08-10 Koninkl Philips Electronics Nv Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
US5701120A (en) * 1992-12-13 1997-12-23 Siemens Business Communication Systems, Inc. Partitioned point-to-point communications networks
JP3182591B2 (ja) * 1993-01-20 2001-07-03 株式会社日立製作所 マイクロプロセッサ
US5481743A (en) * 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
GB2286067A (en) * 1993-12-23 1995-08-02 Motorola Inc A processor system
AU2003256699A1 (en) * 2002-07-23 2004-02-09 Gatechange Technologies, Inc. Self-configuring processing element
US20040019765A1 (en) * 2002-07-23 2004-01-29 Klein Robert C. Pipelined reconfigurable dynamic instruction set processor
US7895560B2 (en) * 2006-10-02 2011-02-22 William Stuart Lovell Continuous flow instant logic binary circuitry actively structured by code-generated pass transistor interconnects
WO2009146267A1 (en) * 2008-05-27 2009-12-03 Stillwater Supercomputing, Inc. Execution engine
US9501448B2 (en) 2008-05-27 2016-11-22 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies
US8385971B2 (en) 2008-08-19 2013-02-26 Digimarc Corporation Methods and systems for content processing
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3047228A (en) * 1957-03-30 1962-07-31 Bauer Friedrich Ludwig Automatic computing machines and method of operation
US3287703A (en) * 1962-12-04 1966-11-22 Westinghouse Electric Corp Computer
US3308436A (en) * 1963-08-05 1967-03-07 Westinghouse Electric Corp Parallel computer system control
US3383661A (en) * 1964-09-30 1968-05-14 Bell Telephone Labor Inc Arrangement for generating permutations
US3473160A (en) * 1966-10-10 1969-10-14 Stanford Research Inst Electronically controlled microelectronic cellular logic array
GB1281167A (en) * 1969-01-02 1972-07-12 Plessey Telecomm Res Ltd Improvements relating to data processing systems
US3614745A (en) * 1969-09-15 1971-10-19 Ibm Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof
US3646523A (en) * 1969-09-24 1972-02-29 Ibm Computer

Also Published As

Publication number Publication date
NL7501336A (nl) 1975-09-01
US3978452A (en) 1976-08-31
FR2262833B1 (de) 1979-02-09
IE41213B1 (en) 1979-11-07
DK664374A (de) 1975-10-27
AU7666774A (en) 1976-06-24
AR207238A1 (es) 1976-09-22
IT1031728B (it) 1979-05-10
SE7501533L (de) 1975-08-29
GB1481392A (en) 1977-07-27
IE41213L (en) 1975-08-28
JPS50120746A (de) 1975-09-22
ES434283A1 (es) 1977-03-16
FR2262833A1 (de) 1975-09-26
CA1031077A (en) 1978-05-09
BE825391A (fr) 1975-05-29
NO750339L (de) 1975-08-29
ZA75808B (en) 1976-01-28
SE410060B (sv) 1979-09-17

Similar Documents

Publication Publication Date Title
DE2505843A1 (de) Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung
DE60011797T2 (de) Ausführung von mehreren fäden in einem parallelprozessor
DE60006270T2 (de) Parallele prozessorarchitektur
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE2317870C2 (de) Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE3638572C2 (de)
DE102014011332A1 (de) Priorisieren von anweisungen basierend auf typ
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE19506435C2 (de) Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten
DE2855106A1 (de) Einrichtung zur durchfuehrung von instruktionsverzweigungen
DE19735348A1 (de) Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern
DE1474095B1 (de) Programmgesteuerte Datenverarbeitungsanlage
DE1929010B2 (de) Modular aufgebaute datenverarbeitungsanlage
DE2054835A1 (de) Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE2556641A1 (de) Datenverarbeiter
DE1549474B2 (de) Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE2556617A1 (de) Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes
DE2548720C2 (de) Mikroprogramm-Steuerwerk
DE2739525C2 (de) Rechner
EP0130269A2 (de) Speicherprogrammierbare Steuerung
DE102004009610A1 (de) Heterogener paralleler Multithread-Prozessor (HPMT) mit geteilten Kontexten
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen

Legal Events

Date Code Title Description
8141 Disposal/no request for examination